diff options
1246 files changed, 31096 insertions, 11430 deletions
diff --git a/.gitignore b/.gitignore index fb2190c61af..de6344e1570 100644 --- a/.gitignore +++ b/.gitignore | |||
@@ -37,6 +37,7 @@ modules.builtin | |||
37 | tags | 37 | tags |
38 | TAGS | 38 | TAGS |
39 | vmlinux | 39 | vmlinux |
40 | vmlinuz | ||
40 | System.map | 41 | System.map |
41 | Module.markers | 42 | Module.markers |
42 | Module.symvers | 43 | Module.symvers |
diff --git a/Documentation/DocBook/mtdnand.tmpl b/Documentation/DocBook/mtdnand.tmpl index f508a8a27fe..5e7d84b4850 100644 --- a/Documentation/DocBook/mtdnand.tmpl +++ b/Documentation/DocBook/mtdnand.tmpl | |||
@@ -174,7 +174,7 @@ | |||
174 | </para> | 174 | </para> |
175 | <programlisting> | 175 | <programlisting> |
176 | static struct mtd_info *board_mtd; | 176 | static struct mtd_info *board_mtd; |
177 | static unsigned long baseaddr; | 177 | static void __iomem *baseaddr; |
178 | </programlisting> | 178 | </programlisting> |
179 | <para> | 179 | <para> |
180 | Static example | 180 | Static example |
@@ -182,7 +182,7 @@ static unsigned long baseaddr; | |||
182 | <programlisting> | 182 | <programlisting> |
183 | static struct mtd_info board_mtd; | 183 | static struct mtd_info board_mtd; |
184 | static struct nand_chip board_chip; | 184 | static struct nand_chip board_chip; |
185 | static unsigned long baseaddr; | 185 | static void __iomem *baseaddr; |
186 | </programlisting> | 186 | </programlisting> |
187 | </sect1> | 187 | </sect1> |
188 | <sect1 id="Partition_defines"> | 188 | <sect1 id="Partition_defines"> |
@@ -283,8 +283,8 @@ int __init board_init (void) | |||
283 | } | 283 | } |
284 | 284 | ||
285 | /* map physical address */ | 285 | /* map physical address */ |
286 | baseaddr = (unsigned long)ioremap(CHIP_PHYSICAL_ADDRESS, 1024); | 286 | baseaddr = ioremap(CHIP_PHYSICAL_ADDRESS, 1024); |
287 | if(!baseaddr){ | 287 | if (!baseaddr) { |
288 | printk("Ioremap to access NAND chip failed\n"); | 288 | printk("Ioremap to access NAND chip failed\n"); |
289 | err = -EIO; | 289 | err = -EIO; |
290 | goto out_mtd; | 290 | goto out_mtd; |
@@ -316,7 +316,7 @@ int __init board_init (void) | |||
316 | goto out; | 316 | goto out; |
317 | 317 | ||
318 | out_ior: | 318 | out_ior: |
319 | iounmap((void *)baseaddr); | 319 | iounmap(baseaddr); |
320 | out_mtd: | 320 | out_mtd: |
321 | kfree (board_mtd); | 321 | kfree (board_mtd); |
322 | out: | 322 | out: |
@@ -341,7 +341,7 @@ static void __exit board_cleanup (void) | |||
341 | nand_release (board_mtd); | 341 | nand_release (board_mtd); |
342 | 342 | ||
343 | /* unmap physical address */ | 343 | /* unmap physical address */ |
344 | iounmap((void *)baseaddr); | 344 | iounmap(baseaddr); |
345 | 345 | ||
346 | /* Free the MTD device structure */ | 346 | /* Free the MTD device structure */ |
347 | kfree (board_mtd); | 347 | kfree (board_mtd); |
diff --git a/Documentation/IO-mapping.txt b/Documentation/IO-mapping.txt index 78a440695e1..1b5aa10df84 100644 --- a/Documentation/IO-mapping.txt +++ b/Documentation/IO-mapping.txt | |||
@@ -157,7 +157,7 @@ For such memory, you can do things like | |||
157 | * access only the 640k-1MB area, so anything else | 157 | * access only the 640k-1MB area, so anything else |
158 | * has to be remapped. | 158 | * has to be remapped. |
159 | */ | 159 | */ |
160 | char * baseptr = ioremap(0xFC000000, 1024*1024); | 160 | void __iomem *baseptr = ioremap(0xFC000000, 1024*1024); |
161 | 161 | ||
162 | /* write a 'A' to the offset 10 of the area */ | 162 | /* write a 'A' to the offset 10 of the area */ |
163 | writeb('A',baseptr+10); | 163 | writeb('A',baseptr+10); |
diff --git a/Documentation/DMA-mapping.txt b/Documentation/PCI/PCI-DMA-mapping.txt index ecad88d9fe5..ecad88d9fe5 100644 --- a/Documentation/DMA-mapping.txt +++ b/Documentation/PCI/PCI-DMA-mapping.txt | |||
diff --git a/Documentation/block/00-INDEX b/Documentation/block/00-INDEX index 961a0513f8c..a406286f6f3 100644 --- a/Documentation/block/00-INDEX +++ b/Documentation/block/00-INDEX | |||
@@ -1,7 +1,5 @@ | |||
1 | 00-INDEX | 1 | 00-INDEX |
2 | - This file | 2 | - This file |
3 | as-iosched.txt | ||
4 | - Anticipatory IO scheduler | ||
5 | barrier.txt | 3 | barrier.txt |
6 | - I/O Barriers | 4 | - I/O Barriers |
7 | biodoc.txt | 5 | biodoc.txt |
diff --git a/Documentation/block/as-iosched.txt b/Documentation/block/as-iosched.txt deleted file mode 100644 index 738b72be128..00000000000 --- a/Documentation/block/as-iosched.txt +++ /dev/null | |||
@@ -1,172 +0,0 @@ | |||
1 | Anticipatory IO scheduler | ||
2 | ------------------------- | ||
3 | Nick Piggin <piggin@cyberone.com.au> 13 Sep 2003 | ||
4 | |||
5 | Attention! Database servers, especially those using "TCQ" disks should | ||
6 | investigate performance with the 'deadline' IO scheduler. Any system with high | ||
7 | disk performance requirements should do so, in fact. | ||
8 | |||
9 | If you see unusual performance characteristics of your disk systems, or you | ||
10 | see big performance regressions versus the deadline scheduler, please email | ||
11 | me. Database users don't bother unless you're willing to test a lot of patches | ||
12 | from me ;) its a known issue. | ||
13 | |||
14 | Also, users with hardware RAID controllers, doing striping, may find | ||
15 | highly variable performance results with using the as-iosched. The | ||
16 | as-iosched anticipatory implementation is based on the notion that a disk | ||
17 | device has only one physical seeking head. A striped RAID controller | ||
18 | actually has a head for each physical device in the logical RAID device. | ||
19 | |||
20 | However, setting the antic_expire (see tunable parameters below) produces | ||
21 | very similar behavior to the deadline IO scheduler. | ||
22 | |||
23 | Selecting IO schedulers | ||
24 | ----------------------- | ||
25 | Refer to Documentation/block/switching-sched.txt for information on | ||
26 | selecting an io scheduler on a per-device basis. | ||
27 | |||
28 | Anticipatory IO scheduler Policies | ||
29 | ---------------------------------- | ||
30 | The as-iosched implementation implements several layers of policies | ||
31 | to determine when an IO request is dispatched to the disk controller. | ||
32 | Here are the policies outlined, in order of application. | ||
33 | |||
34 | 1. one-way Elevator algorithm. | ||
35 | |||
36 | The elevator algorithm is similar to that used in deadline scheduler, with | ||
37 | the addition that it allows limited backward movement of the elevator | ||
38 | (i.e. seeks backwards). A seek backwards can occur when choosing between | ||
39 | two IO requests where one is behind the elevator's current position, and | ||
40 | the other is in front of the elevator's position. If the seek distance to | ||
41 | the request in back of the elevator is less than half the seek distance to | ||
42 | the request in front of the elevator, then the request in back can be chosen. | ||
43 | Backward seeks are also limited to a maximum of MAXBACK (1024*1024) sectors. | ||
44 | This favors forward movement of the elevator, while allowing opportunistic | ||
45 | "short" backward seeks. | ||
46 | |||
47 | 2. FIFO expiration times for reads and for writes. | ||
48 | |||
49 | This is again very similar to the deadline IO scheduler. The expiration | ||
50 | times for requests on these lists is tunable using the parameters read_expire | ||
51 | and write_expire discussed below. When a read or a write expires in this way, | ||
52 | the IO scheduler will interrupt its current elevator sweep or read anticipation | ||
53 | to service the expired request. | ||
54 | |||
55 | 3. Read and write request batching | ||
56 | |||
57 | A batch is a collection of read requests or a collection of write | ||
58 | requests. The as scheduler alternates dispatching read and write batches | ||
59 | to the driver. In the case a read batch, the scheduler submits read | ||
60 | requests to the driver as long as there are read requests to submit, and | ||
61 | the read batch time limit has not been exceeded (read_batch_expire). | ||
62 | The read batch time limit begins counting down only when there are | ||
63 | competing write requests pending. | ||
64 | |||
65 | In the case of a write batch, the scheduler submits write requests to | ||
66 | the driver as long as there are write requests available, and the | ||
67 | write batch time limit has not been exceeded (write_batch_expire). | ||
68 | However, the length of write batches will be gradually shortened | ||
69 | when read batches frequently exceed their time limit. | ||
70 | |||
71 | When changing between batch types, the scheduler waits for all requests | ||
72 | from the previous batch to complete before scheduling requests for the | ||
73 | next batch. | ||
74 | |||
75 | The read and write fifo expiration times described in policy 2 above | ||
76 | are checked only when in scheduling IO of a batch for the corresponding | ||
77 | (read/write) type. So for example, the read FIFO timeout values are | ||
78 | tested only during read batches. Likewise, the write FIFO timeout | ||
79 | values are tested only during write batches. For this reason, | ||
80 | it is generally not recommended for the read batch time | ||
81 | to be longer than the write expiration time, nor for the write batch | ||
82 | time to exceed the read expiration time (see tunable parameters below). | ||
83 | |||
84 | When the IO scheduler changes from a read to a write batch, | ||
85 | it begins the elevator from the request that is on the head of the | ||
86 | write expiration FIFO. Likewise, when changing from a write batch to | ||
87 | a read batch, scheduler begins the elevator from the first entry | ||
88 | on the read expiration FIFO. | ||
89 | |||
90 | 4. Read anticipation. | ||
91 | |||
92 | Read anticipation occurs only when scheduling a read batch. | ||
93 | This implementation of read anticipation allows only one read request | ||
94 | to be dispatched to the disk controller at a time. In | ||
95 | contrast, many write requests may be dispatched to the disk controller | ||
96 | at a time during a write batch. It is this characteristic that can make | ||
97 | the anticipatory scheduler perform anomalously with controllers supporting | ||
98 | TCQ, or with hardware striped RAID devices. Setting the antic_expire | ||
99 | queue parameter (see below) to zero disables this behavior, and the | ||
100 | anticipatory scheduler behaves essentially like the deadline scheduler. | ||
101 | |||
102 | When read anticipation is enabled (antic_expire is not zero), reads | ||
103 | are dispatched to the disk controller one at a time. | ||
104 | At the end of each read request, the IO scheduler examines its next | ||
105 | candidate read request from its sorted read list. If that next request | ||
106 | is from the same process as the request that just completed, | ||
107 | or if the next request in the queue is "very close" to the | ||
108 | just completed request, it is dispatched immediately. Otherwise, | ||
109 | statistics (average think time, average seek distance) on the process | ||
110 | that submitted the just completed request are examined. If it seems | ||
111 | likely that that process will submit another request soon, and that | ||
112 | request is likely to be near the just completed request, then the IO | ||
113 | scheduler will stop dispatching more read requests for up to (antic_expire) | ||
114 | milliseconds, hoping that process will submit a new request near the one | ||
115 | that just completed. If such a request is made, then it is dispatched | ||
116 | immediately. If the antic_expire wait time expires, then the IO scheduler | ||
117 | will dispatch the next read request from the sorted read queue. | ||
118 | |||
119 | To decide whether an anticipatory wait is worthwhile, the scheduler | ||
120 | maintains statistics for each process that can be used to compute | ||
121 | mean "think time" (the time between read requests), and mean seek | ||
122 | distance for that process. One observation is that these statistics | ||
123 | are associated with each process, but those statistics are not associated | ||
124 | with a specific IO device. So for example, if a process is doing IO | ||
125 | on several file systems on separate devices, the statistics will be | ||
126 | a combination of IO behavior from all those devices. | ||
127 | |||
128 | |||
129 | Tuning the anticipatory IO scheduler | ||
130 | ------------------------------------ | ||
131 | When using 'as', the anticipatory IO scheduler there are 5 parameters under | ||
132 | /sys/block/*/queue/iosched/. All are units of milliseconds. | ||
133 | |||
134 | The parameters are: | ||
135 | * read_expire | ||
136 | Controls how long until a read request becomes "expired". It also controls the | ||
137 | interval between which expired requests are served, so set to 50, a request | ||
138 | might take anywhere < 100ms to be serviced _if_ it is the next on the | ||
139 | expired list. Obviously request expiration strategies won't make the disk | ||
140 | go faster. The result basically equates to the timeslice a single reader | ||
141 | gets in the presence of other IO. 100*((seek time / read_expire) + 1) is | ||
142 | very roughly the % streaming read efficiency your disk should get with | ||
143 | multiple readers. | ||
144 | |||
145 | * read_batch_expire | ||
146 | Controls how much time a batch of reads is given before pending writes are | ||
147 | served. A higher value is more efficient. This might be set below read_expire | ||
148 | if writes are to be given higher priority than reads, but reads are to be | ||
149 | as efficient as possible when there are no writes. Generally though, it | ||
150 | should be some multiple of read_expire. | ||
151 | |||
152 | * write_expire, and | ||
153 | * write_batch_expire are equivalent to the above, for writes. | ||
154 | |||
155 | * antic_expire | ||
156 | Controls the maximum amount of time we can anticipate a good read (one | ||
157 | with a short seek distance from the most recently completed request) before | ||
158 | giving up. Many other factors may cause anticipation to be stopped early, | ||
159 | or some processes will not be "anticipated" at all. Should be a bit higher | ||
160 | for big seek time devices though not a linear correspondence - most | ||
161 | processes have only a few ms thinktime. | ||
162 | |||
163 | In addition to the tunables above there is a read-only file named est_time | ||
164 | which, when read, will show: | ||
165 | |||
166 | - The probability of a task exiting without a cooperating task | ||
167 | submitting an anticipated IO. | ||
168 | |||
169 | - The current mean think time. | ||
170 | |||
171 | - The seek distance used to determine if an incoming IO is better. | ||
172 | |||
diff --git a/Documentation/block/biodoc.txt b/Documentation/block/biodoc.txt index 8d2158a1c6a..6fab97ea7e6 100644 --- a/Documentation/block/biodoc.txt +++ b/Documentation/block/biodoc.txt | |||
@@ -186,7 +186,7 @@ a virtual address mapping (unlike the earlier scheme of virtual address | |||
186 | do not have a corresponding kernel virtual address space mapping) and | 186 | do not have a corresponding kernel virtual address space mapping) and |
187 | low-memory pages. | 187 | low-memory pages. |
188 | 188 | ||
189 | Note: Please refer to Documentation/DMA-mapping.txt for a discussion | 189 | Note: Please refer to Documentation/PCI/PCI-DMA-mapping.txt for a discussion |
190 | on PCI high mem DMA aspects and mapping of scatter gather lists, and support | 190 | on PCI high mem DMA aspects and mapping of scatter gather lists, and support |
191 | for 64 bit PCI. | 191 | for 64 bit PCI. |
192 | 192 | ||
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 870d190fe61..0a46833c1b7 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -493,3 +493,52 @@ Why: These two features use non-standard interfaces. There are the | |||
493 | Who: Corentin Chary <corentin.chary@gmail.com> | 493 | Who: Corentin Chary <corentin.chary@gmail.com> |
494 | 494 | ||
495 | ---------------------------- | 495 | ---------------------------- |
496 | |||
497 | What: usbvideo quickcam_messenger driver | ||
498 | When: 2.6.35 | ||
499 | Files: drivers/media/video/usbvideo/quickcam_messenger.[ch] | ||
500 | Why: obsolete v4l1 driver replaced by gspca_stv06xx | ||
501 | Who: Hans de Goede <hdegoede@redhat.com> | ||
502 | |||
503 | ---------------------------- | ||
504 | |||
505 | What: ov511 v4l1 driver | ||
506 | When: 2.6.35 | ||
507 | Files: drivers/media/video/ov511.[ch] | ||
508 | Why: obsolete v4l1 driver replaced by gspca_ov519 | ||
509 | Who: Hans de Goede <hdegoede@redhat.com> | ||
510 | |||
511 | ---------------------------- | ||
512 | |||
513 | What: w9968cf v4l1 driver | ||
514 | When: 2.6.35 | ||
515 | Files: drivers/media/video/w9968cf*.[ch] | ||
516 | Why: obsolete v4l1 driver replaced by gspca_ov519 | ||
517 | Who: Hans de Goede <hdegoede@redhat.com> | ||
518 | |||
519 | ---------------------------- | ||
520 | |||
521 | What: ovcamchip sensor framework | ||
522 | When: 2.6.35 | ||
523 | Files: drivers/media/video/ovcamchip/* | ||
524 | Why: Only used by obsoleted v4l1 drivers | ||
525 | Who: Hans de Goede <hdegoede@redhat.com> | ||
526 | |||
527 | ---------------------------- | ||
528 | |||
529 | What: stv680 v4l1 driver | ||
530 | When: 2.6.35 | ||
531 | Files: drivers/media/video/stv680.[ch] | ||
532 | Why: obsolete v4l1 driver replaced by gspca_stv0680 | ||
533 | Who: Hans de Goede <hdegoede@redhat.com> | ||
534 | |||
535 | ---------------------------- | ||
536 | |||
537 | What: zc0301 v4l driver | ||
538 | When: 2.6.35 | ||
539 | Files: drivers/media/video/zc0301/* | ||
540 | Why: Duplicate functionality with the gspca_zc3xx driver, zc0301 only | ||
541 | supports 2 USB-ID's (because it only supports a limited set of | ||
542 | sensors) wich are also supported by the gspca_zc3xx driver | ||
543 | (which supports 53 USB-ID's in total) | ||
544 | Who: Hans de Goede <hdegoede@redhat.com> | ||
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt index af6885c3c82..e1def1786e5 100644 --- a/Documentation/filesystems/ext4.txt +++ b/Documentation/filesystems/ext4.txt | |||
@@ -196,7 +196,7 @@ nobarrier This also requires an IO stack which can support | |||
196 | also be used to enable or disable barriers, for | 196 | also be used to enable or disable barriers, for |
197 | consistency with other ext4 mount options. | 197 | consistency with other ext4 mount options. |
198 | 198 | ||
199 | inode_readahead=n This tuning parameter controls the maximum | 199 | inode_readahead_blks=n This tuning parameter controls the maximum |
200 | number of inode table blocks that ext4's inode | 200 | number of inode table blocks that ext4's inode |
201 | table readahead algorithm will pre-read into | 201 | table readahead algorithm will pre-read into |
202 | the buffer cache. The default value is 32 blocks. | 202 | the buffer cache. The default value is 32 blocks. |
diff --git a/Documentation/filesystems/nilfs2.txt b/Documentation/filesystems/nilfs2.txt index 4949fcaa6b6..839efd8a8a8 100644 --- a/Documentation/filesystems/nilfs2.txt +++ b/Documentation/filesystems/nilfs2.txt | |||
@@ -28,7 +28,7 @@ described in the man pages included in the package. | |||
28 | Project web page: http://www.nilfs.org/en/ | 28 | Project web page: http://www.nilfs.org/en/ |
29 | Download page: http://www.nilfs.org/en/download.html | 29 | Download page: http://www.nilfs.org/en/download.html |
30 | Git tree web page: http://www.nilfs.org/git/ | 30 | Git tree web page: http://www.nilfs.org/git/ |
31 | NILFS mailing lists: http://www.nilfs.org/mailman/listinfo/users | 31 | List info: http://vger.kernel.org/vger-lists.html#linux-nilfs |
32 | 32 | ||
33 | Caveats | 33 | Caveats |
34 | ======= | 34 | ======= |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 220cc6376ef..0d07513a67a 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -177,7 +177,6 @@ read the file /proc/PID/status: | |||
177 | CapBnd: ffffffffffffffff | 177 | CapBnd: ffffffffffffffff |
178 | voluntary_ctxt_switches: 0 | 178 | voluntary_ctxt_switches: 0 |
179 | nonvoluntary_ctxt_switches: 1 | 179 | nonvoluntary_ctxt_switches: 1 |
180 | Stack usage: 12 kB | ||
181 | 180 | ||
182 | This shows you nearly the same information you would get if you viewed it with | 181 | This shows you nearly the same information you would get if you viewed it with |
183 | the ps command. In fact, ps uses the proc file system to obtain its | 182 | the ps command. In fact, ps uses the proc file system to obtain its |
@@ -231,7 +230,6 @@ Table 1-2: Contents of the statm files (as of 2.6.30-rc7) | |||
231 | Mems_allowed_list Same as previous, but in "list format" | 230 | Mems_allowed_list Same as previous, but in "list format" |
232 | voluntary_ctxt_switches number of voluntary context switches | 231 | voluntary_ctxt_switches number of voluntary context switches |
233 | nonvoluntary_ctxt_switches number of non voluntary context switches | 232 | nonvoluntary_ctxt_switches number of non voluntary context switches |
234 | Stack usage: stack usage high water mark (round up to page size) | ||
235 | .............................................................................. | 233 | .............................................................................. |
236 | 234 | ||
237 | Table 1-3: Contents of the statm files (as of 2.6.8-rc3) | 235 | Table 1-3: Contents of the statm files (as of 2.6.8-rc3) |
diff --git a/Documentation/hwmon/amc6821 b/Documentation/hwmon/amc6821 new file mode 100644 index 00000000000..ced8359c50f --- /dev/null +++ b/Documentation/hwmon/amc6821 | |||
@@ -0,0 +1,102 @@ | |||
1 | Kernel driver amc6821 | ||
2 | ===================== | ||
3 | |||
4 | Supported chips: | ||
5 | Texas Instruments AMC6821 | ||
6 | Prefix: 'amc6821' | ||
7 | Addresses scanned: 0x18, 0x19, 0x1a, 0x2c, 0x2d, 0x2e, 0x4c, 0x4d, 0x4e | ||
8 | Datasheet: http://focus.ti.com/docs/prod/folders/print/amc6821.html | ||
9 | |||
10 | Authors: | ||
11 | Tomaz Mertelj <tomaz.mertelj@guest.arnes.si> | ||
12 | |||
13 | |||
14 | Description | ||
15 | ----------- | ||
16 | |||
17 | This driver implements support for the Texas Instruments amc6821 chip. | ||
18 | The chip has one on-chip and one remote temperature sensor and one pwm fan | ||
19 | regulator. | ||
20 | The pwm can be controlled either from software or automatically. | ||
21 | |||
22 | The driver provides the following sensor accesses in sysfs: | ||
23 | |||
24 | temp1_input ro on-chip temperature | ||
25 | temp1_min rw " | ||
26 | temp1_max rw " | ||
27 | temp1_crit rw " | ||
28 | temp1_min_alarm ro " | ||
29 | temp1_max_alarm ro " | ||
30 | temp1_crit_alarm ro " | ||
31 | |||
32 | temp2_input ro remote temperature | ||
33 | temp2_min rw " | ||
34 | temp2_max rw " | ||
35 | temp2_crit rw " | ||
36 | temp2_min_alarm ro " | ||
37 | temp2_max_alarm ro " | ||
38 | temp2_crit_alarm ro " | ||
39 | temp2_fault ro " | ||
40 | |||
41 | fan1_input ro tachometer speed | ||
42 | fan1_min rw " | ||
43 | fan1_max rw " | ||
44 | fan1_fault ro " | ||
45 | fan1_div rw Fan divisor can be either 2 or 4. | ||
46 | |||
47 | pwm1 rw pwm1 | ||
48 | pwm1_enable rw regulator mode, 1=open loop, 2=fan controlled | ||
49 | by remote temperature, 3=fan controlled by | ||
50 | combination of the on-chip temperature and | ||
51 | remote-sensor temperature, | ||
52 | pwm1_auto_channels_temp ro 1 if pwm_enable==2, 3 if pwm_enable==3 | ||
53 | pwm1_auto_point1_pwm ro Hardwired to 0, shared for both | ||
54 | temperature channels. | ||
55 | pwm1_auto_point2_pwm rw This value is shared for both temperature | ||
56 | channels. | ||
57 | pwm1_auto_point3_pwm rw Hardwired to 255, shared for both | ||
58 | temperature channels. | ||
59 | |||
60 | temp1_auto_point1_temp ro Hardwired to temp2_auto_point1_temp | ||
61 | which is rw. Below this temperature fan stops. | ||
62 | temp1_auto_point2_temp rw The low-temperature limit of the proportional | ||
63 | range. Below this temperature | ||
64 | pwm1 = pwm1_auto_point2_pwm. It can go from | ||
65 | 0 degree C to 124 degree C in steps of | ||
66 | 4 degree C. Read it out after writing to get | ||
67 | the actual value. | ||
68 | temp1_auto_point3_temp rw Above this temperature fan runs at maximum | ||
69 | speed. It can go from temp1_auto_point2_temp. | ||
70 | It can only have certain discrete values | ||
71 | which depend on temp1_auto_point2_temp and | ||
72 | pwm1_auto_point2_pwm. Read it out after | ||
73 | writing to get the actual value. | ||
74 | |||
75 | temp2_auto_point1_temp rw Must be between 0 degree C and 63 degree C and | ||
76 | it defines the passive cooling temperature. | ||
77 | Below this temperature the fan stops in | ||
78 | the closed loop mode. | ||
79 | temp2_auto_point2_temp rw The low-temperature limit of the proportional | ||
80 | range. Below this temperature | ||
81 | pwm1 = pwm1_auto_point2_pwm. It can go from | ||
82 | 0 degree C to 124 degree C in steps | ||
83 | of 4 degree C. | ||
84 | |||
85 | temp2_auto_point3_temp rw Above this temperature fan runs at maximum | ||
86 | speed. It can only have certain discrete | ||
87 | values which depend on temp2_auto_point2_temp | ||
88 | and pwm1_auto_point2_pwm. Read it out after | ||
89 | writing to get actual value. | ||
90 | |||
91 | |||
92 | Module parameters | ||
93 | ----------------- | ||
94 | |||
95 | If your board has a BIOS that initializes the amc6821 correctly, you should | ||
96 | load the module with: init=0. | ||
97 | |||
98 | If your board BIOS doesn't initialize the chip, or you want | ||
99 | different settings, you can set the following parameters: | ||
100 | init=1, | ||
101 | pwminv: 0 default pwm output, 1 inverts pwm output. | ||
102 | |||
diff --git a/Documentation/hwmon/k10temp b/Documentation/hwmon/k10temp index a7a18d453a5..6526eee525a 100644 --- a/Documentation/hwmon/k10temp +++ b/Documentation/hwmon/k10temp | |||
@@ -3,8 +3,8 @@ Kernel driver k10temp | |||
3 | 3 | ||
4 | Supported chips: | 4 | Supported chips: |
5 | * AMD Family 10h processors: | 5 | * AMD Family 10h processors: |
6 | Socket F: Quad-Core/Six-Core/Embedded Opteron | 6 | Socket F: Quad-Core/Six-Core/Embedded Opteron (but see below) |
7 | Socket AM2+: Opteron, Phenom (II) X3/X4 | 7 | Socket AM2+: Quad-Core Opteron, Phenom (II) X3/X4, Athlon X2 (but see below) |
8 | Socket AM3: Quad-Core Opteron, Athlon/Phenom II X2/X3/X4, Sempron II | 8 | Socket AM3: Quad-Core Opteron, Athlon/Phenom II X2/X3/X4, Sempron II |
9 | Socket S1G3: Athlon II, Sempron, Turion II | 9 | Socket S1G3: Athlon II, Sempron, Turion II |
10 | * AMD Family 11h processors: | 10 | * AMD Family 11h processors: |
@@ -36,10 +36,15 @@ Description | |||
36 | This driver permits reading of the internal temperature sensor of AMD | 36 | This driver permits reading of the internal temperature sensor of AMD |
37 | Family 10h and 11h processors. | 37 | Family 10h and 11h processors. |
38 | 38 | ||
39 | All these processors have a sensor, but on older revisions of Family 10h | 39 | All these processors have a sensor, but on those for Socket F or AM2+, |
40 | processors, the sensor may return inconsistent values (erratum 319). The | 40 | the sensor may return inconsistent values (erratum 319). The driver |
41 | driver will refuse to load on these revisions unless you specify the | 41 | will refuse to load on these revisions unless you specify the "force=1" |
42 | "force=1" module parameter. | 42 | module parameter. |
43 | |||
44 | Due to technical reasons, the driver can detect only the mainboard's | ||
45 | socket type, not the processor's actual capabilities. Therefore, if you | ||
46 | are using an AM3 processor on an AM2+ mainboard, you can safely use the | ||
47 | "force=1" parameter. | ||
43 | 48 | ||
44 | There is one temperature measurement value, available as temp1_input in | 49 | There is one temperature measurement value, available as temp1_input in |
45 | sysfs. It is measured in degrees Celsius with a resolution of 1/8th degree. | 50 | sysfs. It is measured in degrees Celsius with a resolution of 1/8th degree. |
diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt index 947374977ca..35cf64d4436 100644 --- a/Documentation/ioctl/ioctl-number.txt +++ b/Documentation/ioctl/ioctl-number.txt | |||
@@ -56,10 +56,11 @@ Following this convention is good because: | |||
56 | (5) When following the convention, the driver code can use generic | 56 | (5) When following the convention, the driver code can use generic |
57 | code to copy the parameters between user and kernel space. | 57 | code to copy the parameters between user and kernel space. |
58 | 58 | ||
59 | This table lists ioctls visible from user land for Linux/i386. It contains | 59 | This table lists ioctls visible from user land for Linux/x86. It contains |
60 | most drivers up to 2.3.14, but I know I am missing some. | 60 | most drivers up to 2.6.31, but I know I am missing some. There has been |
61 | no attempt to list non-X86 architectures or ioctls from drivers/staging/. | ||
61 | 62 | ||
62 | Code Seq# Include File Comments | 63 | Code Seq#(hex) Include File Comments |
63 | ======================================================== | 64 | ======================================================== |
64 | 0x00 00-1F linux/fs.h conflict! | 65 | 0x00 00-1F linux/fs.h conflict! |
65 | 0x00 00-1F scsi/scsi_ioctl.h conflict! | 66 | 0x00 00-1F scsi/scsi_ioctl.h conflict! |
@@ -69,119 +70,228 @@ Code Seq# Include File Comments | |||
69 | 0x03 all linux/hdreg.h | 70 | 0x03 all linux/hdreg.h |
70 | 0x04 D2-DC linux/umsdos_fs.h Dead since 2.6.11, but don't reuse these. | 71 | 0x04 D2-DC linux/umsdos_fs.h Dead since 2.6.11, but don't reuse these. |
71 | 0x06 all linux/lp.h | 72 | 0x06 all linux/lp.h |
72 | 0x09 all linux/md.h | 73 | 0x09 all linux/raid/md_u.h |
74 | 0x10 00-0F drivers/char/s390/vmcp.h | ||
73 | 0x12 all linux/fs.h | 75 | 0x12 all linux/fs.h |
74 | linux/blkpg.h | 76 | linux/blkpg.h |
75 | 0x1b all InfiniBand Subsystem <http://www.openib.org/> | 77 | 0x1b all InfiniBand Subsystem <http://www.openib.org/> |
76 | 0x20 all drivers/cdrom/cm206.h | 78 | 0x20 all drivers/cdrom/cm206.h |
77 | 0x22 all scsi/sg.h | 79 | 0x22 all scsi/sg.h |
78 | '#' 00-3F IEEE 1394 Subsystem Block for the entire subsystem | 80 | '#' 00-3F IEEE 1394 Subsystem Block for the entire subsystem |
81 | '$' 00-0F linux/perf_counter.h, linux/perf_event.h | ||
79 | '1' 00-1F <linux/timepps.h> PPS kit from Ulrich Windl | 82 | '1' 00-1F <linux/timepps.h> PPS kit from Ulrich Windl |
80 | <ftp://ftp.de.kernel.org/pub/linux/daemons/ntp/PPS/> | 83 | <ftp://ftp.de.kernel.org/pub/linux/daemons/ntp/PPS/> |
84 | '2' 01-04 linux/i2o.h | ||
85 | '3' 00-0F drivers/s390/char/raw3270.h conflict! | ||
86 | '3' 00-1F linux/suspend_ioctls.h conflict! | ||
87 | and kernel/power/user.c | ||
81 | '8' all SNP8023 advanced NIC card | 88 | '8' all SNP8023 advanced NIC card |
82 | <mailto:mcr@solidum.com> | 89 | <mailto:mcr@solidum.com> |
83 | 'A' 00-1F linux/apm_bios.h | 90 | '@' 00-0F linux/radeonfb.h conflict! |
91 | '@' 00-0F drivers/video/aty/aty128fb.c conflict! | ||
92 | 'A' 00-1F linux/apm_bios.h conflict! | ||
93 | 'A' 00-0F linux/agpgart.h conflict! | ||
94 | and drivers/char/agp/compat_ioctl.h | ||
95 | 'A' 00-7F sound/asound.h conflict! | ||
96 | 'B' 00-1F linux/cciss_ioctl.h conflict! | ||
97 | 'B' 00-0F include/linux/pmu.h conflict! | ||
84 | 'B' C0-FF advanced bbus | 98 | 'B' C0-FF advanced bbus |
85 | <mailto:maassen@uni-freiburg.de> | 99 | <mailto:maassen@uni-freiburg.de> |
86 | 'C' all linux/soundcard.h | 100 | 'C' all linux/soundcard.h conflict! |
101 | 'C' 01-2F linux/capi.h conflict! | ||
102 | 'C' F0-FF drivers/net/wan/cosa.h conflict! | ||
87 | 'D' all arch/s390/include/asm/dasd.h | 103 | 'D' all arch/s390/include/asm/dasd.h |
88 | 'E' all linux/input.h | 104 | 'D' 40-5F drivers/scsi/dpt/dtpi_ioctl.h |
89 | 'F' all linux/fb.h | 105 | 'D' 05 drivers/scsi/pmcraid.h |
90 | 'H' all linux/hiddev.h | 106 | 'E' all linux/input.h conflict! |
91 | 'I' all linux/isdn.h | 107 | 'E' 00-0F xen/evtchn.h conflict! |
108 | 'F' all linux/fb.h conflict! | ||
109 | 'F' 01-02 drivers/scsi/pmcraid.h conflict! | ||
110 | 'F' 20 drivers/video/fsl-diu-fb.h conflict! | ||
111 | 'F' 20 drivers/video/intelfb/intelfb.h conflict! | ||
112 | 'F' 20 linux/ivtvfb.h conflict! | ||
113 | 'F' 20 linux/matroxfb.h conflict! | ||
114 | 'F' 20 drivers/video/aty/atyfb_base.c conflict! | ||
115 | 'F' 00-0F video/da8xx-fb.h conflict! | ||
116 | 'F' 80-8F linux/arcfb.h conflict! | ||
117 | 'F' DD video/sstfb.h conflict! | ||
118 | 'G' 00-3F drivers/misc/sgi-gru/grulib.h conflict! | ||
119 | 'G' 00-0F linux/gigaset_dev.h conflict! | ||
120 | 'H' 00-7F linux/hiddev.h conflict! | ||
121 | 'H' 00-0F linux/hidraw.h conflict! | ||
122 | 'H' 00-0F sound/asound.h conflict! | ||
123 | 'H' 20-40 sound/asound_fm.h conflict! | ||
124 | 'H' 80-8F sound/sfnt_info.h conflict! | ||
125 | 'H' 10-8F sound/emu10k1.h conflict! | ||
126 | 'H' 10-1F sound/sb16_csp.h conflict! | ||
127 | 'H' 10-1F sound/hda_hwdep.h conflict! | ||
128 | 'H' 40-4F sound/hdspm.h conflict! | ||
129 | 'H' 40-4F sound/hdsp.h conflict! | ||
130 | 'H' 90 sound/usb/usx2y/usb_stream.h | ||
131 | 'H' C0-F0 net/bluetooth/hci.h conflict! | ||
132 | 'H' C0-DF net/bluetooth/hidp/hidp.h conflict! | ||
133 | 'H' C0-DF net/bluetooth/cmtp/cmtp.h conflict! | ||
134 | 'H' C0-DF net/bluetooth/bnep/bnep.h conflict! | ||
135 | 'I' all linux/isdn.h conflict! | ||
136 | 'I' 00-0F drivers/isdn/divert/isdn_divert.h conflict! | ||
137 | 'I' 40-4F linux/mISDNif.h conflict! | ||
92 | 'J' 00-1F drivers/scsi/gdth_ioctl.h | 138 | 'J' 00-1F drivers/scsi/gdth_ioctl.h |
93 | 'K' all linux/kd.h | 139 | 'K' all linux/kd.h |
94 | 'L' 00-1F linux/loop.h | 140 | 'L' 00-1F linux/loop.h conflict! |
95 | 'L' 20-2F driver/usb/misc/vstusb.h | 141 | 'L' 10-1F drivers/scsi/mpt2sas/mpt2sas_ctl.h conflict! |
142 | 'L' 20-2F linux/usb/vstusb.h | ||
96 | 'L' E0-FF linux/ppdd.h encrypted disk device driver | 143 | 'L' E0-FF linux/ppdd.h encrypted disk device driver |
97 | <http://linux01.gwdg.de/~alatham/ppdd.html> | 144 | <http://linux01.gwdg.de/~alatham/ppdd.html> |
98 | 'M' all linux/soundcard.h | 145 | 'M' all linux/soundcard.h conflict! |
146 | 'M' 01-16 mtd/mtd-abi.h conflict! | ||
147 | and drivers/mtd/mtdchar.c | ||
148 | 'M' 01-03 drivers/scsi/megaraid/megaraid_sas.h | ||
149 | 'M' 00-0F drivers/video/fsl-diu-fb.h conflict! | ||
99 | 'N' 00-1F drivers/usb/scanner.h | 150 | 'N' 00-1F drivers/usb/scanner.h |
100 | 'O' 00-02 include/mtd/ubi-user.h UBI | 151 | 'O' 00-06 mtd/ubi-user.h UBI |
101 | 'P' all linux/soundcard.h | 152 | 'P' all linux/soundcard.h conflict! |
153 | 'P' 60-6F sound/sscape_ioctl.h conflict! | ||
154 | 'P' 00-0F drivers/usb/class/usblp.c conflict! | ||
102 | 'Q' all linux/soundcard.h | 155 | 'Q' all linux/soundcard.h |
103 | 'R' 00-1F linux/random.h | 156 | 'R' 00-1F linux/random.h conflict! |
157 | 'R' 01 linux/rfkill.h conflict! | ||
158 | 'R' 01-0F media/rds.h conflict! | ||
159 | 'R' C0-DF net/bluetooth/rfcomm.h | ||
104 | 'S' all linux/cdrom.h conflict! | 160 | 'S' all linux/cdrom.h conflict! |
105 | 'S' 80-81 scsi/scsi_ioctl.h conflict! | 161 | 'S' 80-81 scsi/scsi_ioctl.h conflict! |
106 | 'S' 82-FF scsi/scsi.h conflict! | 162 | 'S' 82-FF scsi/scsi.h conflict! |
163 | 'S' 00-7F sound/asequencer.h conflict! | ||
107 | 'T' all linux/soundcard.h conflict! | 164 | 'T' all linux/soundcard.h conflict! |
165 | 'T' 00-AF sound/asound.h conflict! | ||
108 | 'T' all arch/x86/include/asm/ioctls.h conflict! | 166 | 'T' all arch/x86/include/asm/ioctls.h conflict! |
109 | 'U' 00-EF linux/drivers/usb/usb.h | 167 | 'T' C0-DF linux/if_tun.h conflict! |
110 | 'V' all linux/vt.h | 168 | 'U' all sound/asound.h conflict! |
169 | 'U' 00-0F drivers/media/video/uvc/uvcvideo.h conflict! | ||
170 | 'U' 00-CF linux/uinput.h conflict! | ||
171 | 'U' 00-EF linux/usbdevice_fs.h | ||
172 | 'U' C0-CF drivers/bluetooth/hci_uart.h | ||
173 | 'V' all linux/vt.h conflict! | ||
174 | 'V' all linux/videodev2.h conflict! | ||
175 | 'V' C0 linux/ivtvfb.h conflict! | ||
176 | 'V' C0 linux/ivtv.h conflict! | ||
177 | 'V' C0 media/davinci/vpfe_capture.h conflict! | ||
178 | 'V' C0 media/si4713.h conflict! | ||
179 | 'V' C0-CF drivers/media/video/mxb.h conflict! | ||
111 | 'W' 00-1F linux/watchdog.h conflict! | 180 | 'W' 00-1F linux/watchdog.h conflict! |
112 | 'W' 00-1F linux/wanrouter.h conflict! | 181 | 'W' 00-1F linux/wanrouter.h conflict! |
113 | 'X' all linux/xfs_fs.h | 182 | 'W' 00-3F sound/asound.h conflict! |
183 | 'X' all fs/xfs/xfs_fs.h conflict! | ||
184 | and fs/xfs/linux-2.6/xfs_ioctl32.h | ||
185 | and include/linux/falloc.h | ||
186 | and linux/fs.h | ||
187 | 'X' all fs/ocfs2/ocfs_fs.h conflict! | ||
188 | 'X' 01 linux/pktcdvd.h conflict! | ||
114 | 'Y' all linux/cyclades.h | 189 | 'Y' all linux/cyclades.h |
115 | '[' 00-07 linux/usb/usbtmc.h USB Test and Measurement Devices | 190 | 'Z' 14-15 drivers/message/fusion/mptctl.h |
191 | '[' 00-07 linux/usb/tmc.h USB Test and Measurement Devices | ||
116 | <mailto:gregkh@suse.de> | 192 | <mailto:gregkh@suse.de> |
117 | 'a' all ATM on linux | 193 | 'a' all linux/atm*.h, linux/sonet.h ATM on linux |
118 | <http://lrcwww.epfl.ch/linux-atm/magic.html> | 194 | <http://lrcwww.epfl.ch/linux-atm/magic.html> |
119 | 'b' 00-FF bit3 vme host bridge | 195 | 'b' 00-FF conflict! bit3 vme host bridge |
120 | <mailto:natalia@nikhefk.nikhef.nl> | 196 | <mailto:natalia@nikhefk.nikhef.nl> |
197 | 'b' 00-0F media/bt819.h conflict! | ||
198 | 'c' all linux/cm4000_cs.h conflict! | ||
121 | 'c' 00-7F linux/comstats.h conflict! | 199 | 'c' 00-7F linux/comstats.h conflict! |
122 | 'c' 00-7F linux/coda.h conflict! | 200 | 'c' 00-7F linux/coda.h conflict! |
123 | 'c' 80-9F arch/s390/include/asm/chsc.h | 201 | 'c' 00-1F linux/chio.h conflict! |
124 | 'c' A0-AF arch/x86/include/asm/msr.h | 202 | 'c' 80-9F arch/s390/include/asm/chsc.h conflict! |
203 | 'c' A0-AF arch/x86/include/asm/msr.h conflict! | ||
125 | 'd' 00-FF linux/char/drm/drm/h conflict! | 204 | 'd' 00-FF linux/char/drm/drm/h conflict! |
205 | 'd' 02-40 pcmcia/ds.h conflict! | ||
206 | 'd' 10-3F drivers/media/video/dabusb.h conflict! | ||
207 | 'd' C0-CF drivers/media/video/saa7191.h conflict! | ||
126 | 'd' F0-FF linux/digi1.h | 208 | 'd' F0-FF linux/digi1.h |
127 | 'e' all linux/digi1.h conflict! | 209 | 'e' all linux/digi1.h conflict! |
128 | 'e' 00-1F net/irda/irtty.h conflict! | 210 | 'e' 00-1F drivers/net/irda/irtty-sir.h conflict! |
129 | 'f' 00-1F linux/ext2_fs.h | 211 | 'f' 00-1F linux/ext2_fs.h conflict! |
130 | 'h' 00-7F Charon filesystem | 212 | 'f' 00-1F linux/ext3_fs.h conflict! |
213 | 'f' 00-0F fs/jfs/jfs_dinode.h conflict! | ||
214 | 'f' 00-0F fs/ext4/ext4.h conflict! | ||
215 | 'f' 00-0F linux/fs.h conflict! | ||
216 | 'f' 00-0F fs/ocfs2/ocfs2_fs.h conflict! | ||
217 | 'g' 00-0F linux/usb/gadgetfs.h | ||
218 | 'g' 20-2F linux/usb/g_printer.h | ||
219 | 'h' 00-7F conflict! Charon filesystem | ||
131 | <mailto:zapman@interlan.net> | 220 | <mailto:zapman@interlan.net> |
132 | 'i' 00-3F linux/i2o.h | 221 | 'h' 00-1F linux/hpet.h conflict! |
222 | 'i' 00-3F linux/i2o-dev.h conflict! | ||
223 | 'i' 0B-1F linux/ipmi.h conflict! | ||
224 | 'i' 80-8F linux/i8k.h | ||
133 | 'j' 00-3F linux/joystick.h | 225 | 'j' 00-3F linux/joystick.h |
226 | 'k' 00-0F linux/spi/spidev.h conflict! | ||
227 | 'k' 00-05 video/kyro.h conflict! | ||
134 | 'l' 00-3F linux/tcfs_fs.h transparent cryptographic file system | 228 | 'l' 00-3F linux/tcfs_fs.h transparent cryptographic file system |
135 | <http://mikonos.dia.unisa.it/tcfs> | 229 | <http://mikonos.dia.unisa.it/tcfs> |
136 | 'l' 40-7F linux/udf_fs_i.h in development: | 230 | 'l' 40-7F linux/udf_fs_i.h in development: |
137 | <http://sourceforge.net/projects/linux-udf/> | 231 | <http://sourceforge.net/projects/linux-udf/> |
138 | 'm' 00-09 linux/mmtimer.h | 232 | 'm' 00-09 linux/mmtimer.h conflict! |
139 | 'm' all linux/mtio.h conflict! | 233 | 'm' all linux/mtio.h conflict! |
140 | 'm' all linux/soundcard.h conflict! | 234 | 'm' all linux/soundcard.h conflict! |
141 | 'm' all linux/synclink.h conflict! | 235 | 'm' all linux/synclink.h conflict! |
236 | 'm' 00-19 drivers/message/fusion/mptctl.h conflict! | ||
237 | 'm' 00 drivers/scsi/megaraid/megaraid_ioctl.h conflict! | ||
142 | 'm' 00-1F net/irda/irmod.h conflict! | 238 | 'm' 00-1F net/irda/irmod.h conflict! |
143 | 'n' 00-7F linux/ncp_fs.h | 239 | 'n' 00-7F linux/ncp_fs.h and fs/ncpfs/ioctl.c |
144 | 'n' 80-8F linux/nilfs2_fs.h NILFS2 | 240 | 'n' 80-8F linux/nilfs2_fs.h NILFS2 |
145 | 'n' E0-FF video/matrox.h matroxfb | 241 | 'n' E0-FF linux/matroxfb.h matroxfb |
146 | 'o' 00-1F fs/ocfs2/ocfs2_fs.h OCFS2 | 242 | 'o' 00-1F fs/ocfs2/ocfs2_fs.h OCFS2 |
147 | 'o' 00-03 include/mtd/ubi-user.h conflict! (OCFS2 and UBI overlaps) | 243 | 'o' 00-03 mtd/ubi-user.h conflict! (OCFS2 and UBI overlaps) |
148 | 'o' 40-41 include/mtd/ubi-user.h UBI | 244 | 'o' 40-41 mtd/ubi-user.h UBI |
149 | 'o' 01-A1 include/linux/dvb/*.h DVB | 245 | 'o' 01-A1 linux/dvb/*.h DVB |
150 | 'p' 00-0F linux/phantom.h conflict! (OpenHaptics needs this) | 246 | 'p' 00-0F linux/phantom.h conflict! (OpenHaptics needs this) |
247 | 'p' 00-1F linux/rtc.h conflict! | ||
151 | 'p' 00-3F linux/mc146818rtc.h conflict! | 248 | 'p' 00-3F linux/mc146818rtc.h conflict! |
152 | 'p' 40-7F linux/nvram.h | 249 | 'p' 40-7F linux/nvram.h |
153 | 'p' 80-9F user-space parport | 250 | 'p' 80-9F linux/ppdev.h user-space parport |
154 | <mailto:tim@cyberelk.net> | 251 | <mailto:tim@cyberelk.net> |
155 | 'p' a1-a4 linux/pps.h LinuxPPS | 252 | 'p' A1-A4 linux/pps.h LinuxPPS |
156 | <mailto:giometti@linux.it> | 253 | <mailto:giometti@linux.it> |
157 | 'q' 00-1F linux/serio.h | 254 | 'q' 00-1F linux/serio.h |
158 | 'q' 80-FF Internet PhoneJACK, Internet LineJACK | 255 | 'q' 80-FF linux/telephony.h Internet PhoneJACK, Internet LineJACK |
159 | <http://www.quicknet.net> | 256 | linux/ixjuser.h <http://www.quicknet.net> |
160 | 'r' 00-1F linux/msdos_fs.h | 257 | 'r' 00-1F linux/msdos_fs.h and fs/fat/dir.c |
161 | 's' all linux/cdk.h | 258 | 's' all linux/cdk.h |
162 | 't' 00-7F linux/if_ppp.h | 259 | 't' 00-7F linux/if_ppp.h |
163 | 't' 80-8F linux/isdn_ppp.h | 260 | 't' 80-8F linux/isdn_ppp.h |
261 | 't' 90 linux/toshiba.h | ||
164 | 'u' 00-1F linux/smb_fs.h | 262 | 'u' 00-1F linux/smb_fs.h |
165 | 'v' 00-1F linux/ext2_fs.h conflict! | ||
166 | 'v' all linux/videodev.h conflict! | 263 | 'v' all linux/videodev.h conflict! |
264 | 'v' 00-1F linux/ext2_fs.h conflict! | ||
265 | 'v' 00-1F linux/fs.h conflict! | ||
266 | 'v' 00-0F linux/sonypi.h conflict! | ||
267 | 'v' C0-CF drivers/media/video/ov511.h conflict! | ||
268 | 'v' C0-DF media/pwc-ioctl.h conflict! | ||
269 | 'v' C0-FF linux/meye.h conflict! | ||
270 | 'v' C0-CF drivers/media/video/zoran/zoran.h conflict! | ||
271 | 'v' D0-DF drivers/media/video/cpia2/cpia2dev.h conflict! | ||
167 | 'w' all CERN SCI driver | 272 | 'w' all CERN SCI driver |
168 | 'y' 00-1F packet based user level communications | 273 | 'y' 00-1F packet based user level communications |
169 | <mailto:zapman@interlan.net> | 274 | <mailto:zapman@interlan.net> |
170 | 'z' 00-3F CAN bus card | 275 | 'z' 00-3F CAN bus card conflict! |
171 | <mailto:hdstich@connectu.ulm.circular.de> | 276 | <mailto:hdstich@connectu.ulm.circular.de> |
172 | 'z' 40-7F CAN bus card | 277 | 'z' 40-7F CAN bus card conflict! |
173 | <mailto:oe@port.de> | 278 | <mailto:oe@port.de> |
279 | 'z' 10-4F drivers/s390/crypto/zcrypt_api.h conflict! | ||
174 | 0x80 00-1F linux/fb.h | 280 | 0x80 00-1F linux/fb.h |
175 | 0x81 00-1F linux/videotext.h | 281 | 0x81 00-1F linux/videotext.h |
282 | 0x88 00-3F media/ovcamchip.h | ||
176 | 0x89 00-06 arch/x86/include/asm/sockios.h | 283 | 0x89 00-06 arch/x86/include/asm/sockios.h |
177 | 0x89 0B-DF linux/sockios.h | 284 | 0x89 0B-DF linux/sockios.h |
178 | 0x89 E0-EF linux/sockios.h SIOCPROTOPRIVATE range | 285 | 0x89 E0-EF linux/sockios.h SIOCPROTOPRIVATE range |
286 | 0x89 E0-EF linux/dn.h PROTOPRIVATE range | ||
179 | 0x89 F0-FF linux/sockios.h SIOCDEVPRIVATE range | 287 | 0x89 F0-FF linux/sockios.h SIOCDEVPRIVATE range |
180 | 0x8B all linux/wireless.h | 288 | 0x8B all linux/wireless.h |
181 | 0x8C 00-3F WiNRADiO driver | 289 | 0x8C 00-3F WiNRADiO driver |
182 | <http://www.proximity.com.au/~brian/winradio/> | 290 | <http://www.proximity.com.au/~brian/winradio/> |
183 | 0x90 00 drivers/cdrom/sbpcd.h | 291 | 0x90 00 drivers/cdrom/sbpcd.h |
292 | 0x92 00-0F drivers/usb/mon/mon_bin.c | ||
184 | 0x93 60-7F linux/auto_fs.h | 293 | 0x93 60-7F linux/auto_fs.h |
294 | 0x94 all fs/btrfs/ioctl.h | ||
185 | 0x99 00-0F 537-Addinboard driver | 295 | 0x99 00-0F 537-Addinboard driver |
186 | <mailto:buk@buks.ipn.de> | 296 | <mailto:buk@buks.ipn.de> |
187 | 0xA0 all linux/sdp/sdp.h Industrial Device Project | 297 | 0xA0 all linux/sdp/sdp.h Industrial Device Project |
@@ -192,17 +302,22 @@ Code Seq# Include File Comments | |||
192 | 0xAB 00-1F linux/nbd.h | 302 | 0xAB 00-1F linux/nbd.h |
193 | 0xAC 00-1F linux/raw.h | 303 | 0xAC 00-1F linux/raw.h |
194 | 0xAD 00 Netfilter device in development: | 304 | 0xAD 00 Netfilter device in development: |
195 | <mailto:rusty@rustcorp.com.au> | 305 | <mailto:rusty@rustcorp.com.au> |
196 | 0xAE all linux/kvm.h Kernel-based Virtual Machine | 306 | 0xAE all linux/kvm.h Kernel-based Virtual Machine |
197 | <mailto:kvm@vger.kernel.org> | 307 | <mailto:kvm@vger.kernel.org> |
198 | 0xB0 all RATIO devices in development: | 308 | 0xB0 all RATIO devices in development: |
199 | <mailto:vgo@ratio.de> | 309 | <mailto:vgo@ratio.de> |
200 | 0xB1 00-1F PPPoX <mailto:mostrows@styx.uwaterloo.ca> | 310 | 0xB1 00-1F PPPoX <mailto:mostrows@styx.uwaterloo.ca> |
311 | 0xC0 00-0F linux/usb/iowarrior.h | ||
201 | 0xCB 00-1F CBM serial IEC bus in development: | 312 | 0xCB 00-1F CBM serial IEC bus in development: |
202 | <mailto:michael.klein@puffin.lb.shuttle.de> | 313 | <mailto:michael.klein@puffin.lb.shuttle.de> |
314 | 0xCD 01 linux/reiserfs_fs.h | ||
315 | 0xCF 02 fs/cifs/ioctl.c | ||
316 | 0xDB 00-0F drivers/char/mwave/mwavepub.h | ||
203 | 0xDD 00-3F ZFCP device driver see drivers/s390/scsi/ | 317 | 0xDD 00-3F ZFCP device driver see drivers/s390/scsi/ |
204 | <mailto:aherrman@de.ibm.com> | 318 | <mailto:aherrman@de.ibm.com> |
205 | 0xF3 00-3F video/sisfb.h sisfb (in development) | 319 | 0xF3 00-3F drivers/usb/misc/sisusbvga/sisusb.h sisfb (in development) |
206 | <mailto:thomas@winischhofer.net> | 320 | <mailto:thomas@winischhofer.net> |
207 | 0xF4 00-1F video/mbxfb.h mbxfb | 321 | 0xF4 00-1F video/mbxfb.h mbxfb |
208 | <mailto:raph@8d.com> | 322 | <mailto:raph@8d.com> |
323 | 0xFD all linux/dm-ioctl.h | ||
diff --git a/Documentation/kernel-doc-nano-HOWTO.txt b/Documentation/kernel-doc-nano-HOWTO.txt index 348b9e5e28f..27a52b35d55 100644 --- a/Documentation/kernel-doc-nano-HOWTO.txt +++ b/Documentation/kernel-doc-nano-HOWTO.txt | |||
@@ -214,11 +214,13 @@ The format of the block comment is like this: | |||
214 | * (section header: (section description)? )* | 214 | * (section header: (section description)? )* |
215 | (*)?*/ | 215 | (*)?*/ |
216 | 216 | ||
217 | The short function description ***cannot be multiline***, but the other | 217 | All "description" text can span multiple lines, although the |
218 | descriptions can be (and they can contain blank lines). If you continue | 218 | function_name & its short description are traditionally on a single line. |
219 | that initial short description onto a second line, that second line will | 219 | Description text may also contain blank lines (i.e., lines that contain |
220 | appear further down at the beginning of the description section, which is | 220 | only a "*"). |
221 | almost certainly not what you had in mind. | 221 | |
222 | "section header:" names must be unique per function (or struct, | ||
223 | union, typedef, enum). | ||
222 | 224 | ||
223 | Avoid putting a spurious blank line after the function name, or else the | 225 | Avoid putting a spurious blank line after the function name, or else the |
224 | description will be repeated! | 226 | description will be repeated! |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 5ba4d9dff11..736d4560288 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -240,7 +240,7 @@ and is between 256 and 4096 characters. It is defined in the file | |||
240 | 240 | ||
241 | acpi_sleep= [HW,ACPI] Sleep options | 241 | acpi_sleep= [HW,ACPI] Sleep options |
242 | Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig, | 242 | Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig, |
243 | old_ordering, s4_nonvs } | 243 | old_ordering, s4_nonvs, sci_force_enable } |
244 | See Documentation/power/video.txt for information on | 244 | See Documentation/power/video.txt for information on |
245 | s3_bios and s3_mode. | 245 | s3_bios and s3_mode. |
246 | s3_beep is for debugging; it makes the PC's speaker beep | 246 | s3_beep is for debugging; it makes the PC's speaker beep |
@@ -253,6 +253,9 @@ and is between 256 and 4096 characters. It is defined in the file | |||
253 | of _PTS is used by default). | 253 | of _PTS is used by default). |
254 | s4_nonvs prevents the kernel from saving/restoring the | 254 | s4_nonvs prevents the kernel from saving/restoring the |
255 | ACPI NVS memory during hibernation. | 255 | ACPI NVS memory during hibernation. |
256 | sci_force_enable causes the kernel to set SCI_EN directly | ||
257 | on resume from S1/S3 (which is against the ACPI spec, | ||
258 | but some broken systems don't work without it). | ||
256 | 259 | ||
257 | acpi_use_timer_override [HW,ACPI] | 260 | acpi_use_timer_override [HW,ACPI] |
258 | Use timer override. For some broken Nvidia NF5 boards | 261 | Use timer override. For some broken Nvidia NF5 boards |
diff --git a/Documentation/kvm/api.txt b/Documentation/kvm/api.txt index e1a11416102..2811e452f75 100644 --- a/Documentation/kvm/api.txt +++ b/Documentation/kvm/api.txt | |||
@@ -685,7 +685,7 @@ struct kvm_vcpu_events { | |||
685 | __u8 pad; | 685 | __u8 pad; |
686 | } nmi; | 686 | } nmi; |
687 | __u32 sipi_vector; | 687 | __u32 sipi_vector; |
688 | __u32 flags; /* must be zero */ | 688 | __u32 flags; |
689 | }; | 689 | }; |
690 | 690 | ||
691 | 4.30 KVM_SET_VCPU_EVENTS | 691 | 4.30 KVM_SET_VCPU_EVENTS |
@@ -701,6 +701,14 @@ vcpu. | |||
701 | 701 | ||
702 | See KVM_GET_VCPU_EVENTS for the data structure. | 702 | See KVM_GET_VCPU_EVENTS for the data structure. |
703 | 703 | ||
704 | Fields that may be modified asynchronously by running VCPUs can be excluded | ||
705 | from the update. These fields are nmi.pending and sipi_vector. Keep the | ||
706 | corresponding bits in the flags field cleared to suppress overwriting the | ||
707 | current in-kernel state. The bits are: | ||
708 | |||
709 | KVM_VCPUEVENT_VALID_NMI_PENDING - transfer nmi.pending to the kernel | ||
710 | KVM_VCPUEVENT_VALID_SIPI_VECTOR - transfer sipi_vector | ||
711 | |||
704 | 712 | ||
705 | 5. The kvm_run structure | 713 | 5. The kvm_run structure |
706 | 714 | ||
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt index 169091f75e6..75afa1229fd 100644 --- a/Documentation/laptops/thinkpad-acpi.txt +++ b/Documentation/laptops/thinkpad-acpi.txt | |||
@@ -1092,8 +1092,8 @@ WARNING: | |||
1092 | its level up and down at every change. | 1092 | its level up and down at every change. |
1093 | 1093 | ||
1094 | 1094 | ||
1095 | Volume control | 1095 | Volume control (Console Audio control) |
1096 | -------------- | 1096 | -------------------------------------- |
1097 | 1097 | ||
1098 | procfs: /proc/acpi/ibm/volume | 1098 | procfs: /proc/acpi/ibm/volume |
1099 | ALSA: "ThinkPad Console Audio Control", default ID: "ThinkPadEC" | 1099 | ALSA: "ThinkPad Console Audio Control", default ID: "ThinkPadEC" |
@@ -1110,9 +1110,53 @@ the desktop environment to just provide on-screen-display feedback. | |||
1110 | Software volume control should be done only in the main AC97/HDA | 1110 | Software volume control should be done only in the main AC97/HDA |
1111 | mixer. | 1111 | mixer. |
1112 | 1112 | ||
1113 | This feature allows volume control on ThinkPad models with a digital | 1113 | |
1114 | volume knob (when available, not all models have it), as well as | 1114 | About the ThinkPad Console Audio control: |
1115 | mute/unmute control. The available commands are: | 1115 | |
1116 | ThinkPads have a built-in amplifier and muting circuit that drives the | ||
1117 | console headphone and speakers. This circuit is after the main AC97 | ||
1118 | or HDA mixer in the audio path, and under exclusive control of the | ||
1119 | firmware. | ||
1120 | |||
1121 | ThinkPads have three special hotkeys to interact with the console | ||
1122 | audio control: volume up, volume down and mute. | ||
1123 | |||
1124 | It is worth noting that the normal way the mute function works (on | ||
1125 | ThinkPads that do not have a "mute LED") is: | ||
1126 | |||
1127 | 1. Press mute to mute. It will *always* mute, you can press it as | ||
1128 | many times as you want, and the sound will remain mute. | ||
1129 | |||
1130 | 2. Press either volume key to unmute the ThinkPad (it will _not_ | ||
1131 | change the volume, it will just unmute). | ||
1132 | |||
1133 | This is a very superior design when compared to the cheap software-only | ||
1134 | mute-toggle solution found on normal consumer laptops: you can be | ||
1135 | absolutely sure the ThinkPad will not make noise if you press the mute | ||
1136 | button, no matter the previous state. | ||
1137 | |||
1138 | The IBM ThinkPads, and the earlier Lenovo ThinkPads have variable-gain | ||
1139 | amplifiers driving the speakers and headphone output, and the firmware | ||
1140 | also handles volume control for the headphone and speakers on these | ||
1141 | ThinkPads without any help from the operating system (this volume | ||
1142 | control stage exists after the main AC97 or HDA mixer in the audio | ||
1143 | path). | ||
1144 | |||
1145 | The newer Lenovo models only have firmware mute control, and depend on | ||
1146 | the main HDA mixer to do volume control (which is done by the operating | ||
1147 | system). In this case, the volume keys are filtered out for unmute | ||
1148 | key press (there are some firmware bugs in this area) and delivered as | ||
1149 | normal key presses to the operating system (thinkpad-acpi is not | ||
1150 | involved). | ||
1151 | |||
1152 | |||
1153 | The ThinkPad-ACPI volume control: | ||
1154 | |||
1155 | The preferred way to interact with the Console Audio control is the | ||
1156 | ALSA interface. | ||
1157 | |||
1158 | The legacy procfs interface allows one to read the current state, | ||
1159 | and if volume control is enabled, accepts the following commands: | ||
1116 | 1160 | ||
1117 | echo up >/proc/acpi/ibm/volume | 1161 | echo up >/proc/acpi/ibm/volume |
1118 | echo down >/proc/acpi/ibm/volume | 1162 | echo down >/proc/acpi/ibm/volume |
@@ -1121,12 +1165,10 @@ mute/unmute control. The available commands are: | |||
1121 | echo 'level <level>' >/proc/acpi/ibm/volume | 1165 | echo 'level <level>' >/proc/acpi/ibm/volume |
1122 | 1166 | ||
1123 | The <level> number range is 0 to 14 although not all of them may be | 1167 | The <level> number range is 0 to 14 although not all of them may be |
1124 | distinct. The unmute the volume after the mute command, use either the | 1168 | distinct. To unmute the volume after the mute command, use either the |
1125 | up or down command (the level command will not unmute the volume), or | 1169 | up or down command (the level command will not unmute the volume), or |
1126 | the unmute command. | 1170 | the unmute command. |
1127 | 1171 | ||
1128 | The current volume level and mute state is shown in the file. | ||
1129 | |||
1130 | You can use the volume_capabilities parameter to tell the driver | 1172 | You can use the volume_capabilities parameter to tell the driver |
1131 | whether your thinkpad has volume control or mute-only control: | 1173 | whether your thinkpad has volume control or mute-only control: |
1132 | volume_capabilities=1 for mixers with mute and volume control, | 1174 | volume_capabilities=1 for mixers with mute and volume control, |
diff --git a/Documentation/networking/3c509.txt b/Documentation/networking/3c509.txt index 0643e3b7168..3c45d5dcd63 100644 --- a/Documentation/networking/3c509.txt +++ b/Documentation/networking/3c509.txt | |||
@@ -48,11 +48,11 @@ for LILO parameters for doing this: | |||
48 | This configures the first found 3c509 card for IRQ 10, base I/O 0x310, and | 48 | This configures the first found 3c509 card for IRQ 10, base I/O 0x310, and |
49 | transceiver type 3 (10base2). The flag "0x3c509" must be set to avoid conflicts | 49 | transceiver type 3 (10base2). The flag "0x3c509" must be set to avoid conflicts |
50 | with other card types when overriding the I/O address. When the driver is | 50 | with other card types when overriding the I/O address. When the driver is |
51 | loaded as a module, only the IRQ and transceiver setting may be overridden. | 51 | loaded as a module, only the IRQ may be overridden. For example, |
52 | For example, setting two cards to 10base2/IRQ10 and AUI/IRQ11 is done by using | 52 | setting two cards to IRQ10 and IRQ11 is done by using the irq module |
53 | the xcvr and irq module options: | 53 | option: |
54 | 54 | ||
55 | options 3c509 xcvr=3,1 irq=10,11 | 55 | options 3c509 irq=10,11 |
56 | 56 | ||
57 | 57 | ||
58 | (2) Full-duplex mode | 58 | (2) Full-duplex mode |
@@ -77,6 +77,8 @@ operation. | |||
77 | itself full-duplex capable. This is almost certainly one of two things: a full- | 77 | itself full-duplex capable. This is almost certainly one of two things: a full- |
78 | duplex-capable Ethernet switch (*not* a hub), or a full-duplex-capable NIC on | 78 | duplex-capable Ethernet switch (*not* a hub), or a full-duplex-capable NIC on |
79 | another system that's connected directly to the 3c509B via a crossover cable. | 79 | another system that's connected directly to the 3c509B via a crossover cable. |
80 | |||
81 | Full-duplex mode can be enabled using 'ethtool'. | ||
80 | 82 | ||
81 | /////Extremely important caution concerning full-duplex mode///// | 83 | /////Extremely important caution concerning full-duplex mode///// |
82 | Understand that the 3c509B's hardware's full-duplex support is much more | 84 | Understand that the 3c509B's hardware's full-duplex support is much more |
@@ -113,6 +115,8 @@ This insured that merely upgrading the driver from an earlier version would | |||
113 | never automatically enable full-duplex mode in an existing installation; | 115 | never automatically enable full-duplex mode in an existing installation; |
114 | it must always be explicitly enabled via one of these code in order to be | 116 | it must always be explicitly enabled via one of these code in order to be |
115 | activated. | 117 | activated. |
118 | |||
119 | The transceiver type can be changed using 'ethtool'. | ||
116 | 120 | ||
117 | 121 | ||
118 | (4a) Interpretation of error messages and common problems | 122 | (4a) Interpretation of error messages and common problems |
diff --git a/Documentation/sound/alsa/Procfile.txt b/Documentation/sound/alsa/Procfile.txt index 719a819f8cc..07301de12cc 100644 --- a/Documentation/sound/alsa/Procfile.txt +++ b/Documentation/sound/alsa/Procfile.txt | |||
@@ -95,7 +95,7 @@ card*/pcm*/xrun_debug | |||
95 | It takes an integer value, can be changed by writing to this | 95 | It takes an integer value, can be changed by writing to this |
96 | file, such as | 96 | file, such as |
97 | 97 | ||
98 | # cat 5 > /proc/asound/card0/pcm0p/xrun_debug | 98 | # echo 5 > /proc/asound/card0/pcm0p/xrun_debug |
99 | 99 | ||
100 | The value consists of the following bit flags: | 100 | The value consists of the following bit flags: |
101 | bit 0 = Enable XRUN/jiffies debug messages | 101 | bit 0 = Enable XRUN/jiffies debug messages |
diff --git a/Documentation/trace/ftrace-design.txt b/Documentation/trace/ftrace-design.txt index 641a1ef2a7f..239f14b2b55 100644 --- a/Documentation/trace/ftrace-design.txt +++ b/Documentation/trace/ftrace-design.txt | |||
@@ -53,14 +53,14 @@ size of the mcount call that is embedded in the function). | |||
53 | For example, if the function foo() calls bar(), when the bar() function calls | 53 | For example, if the function foo() calls bar(), when the bar() function calls |
54 | mcount(), the arguments mcount() will pass to the tracer are: | 54 | mcount(), the arguments mcount() will pass to the tracer are: |
55 | "frompc" - the address bar() will use to return to foo() | 55 | "frompc" - the address bar() will use to return to foo() |
56 | "selfpc" - the address bar() (with _mcount() size adjustment) | 56 | "selfpc" - the address bar() (with mcount() size adjustment) |
57 | 57 | ||
58 | Also keep in mind that this mcount function will be called *a lot*, so | 58 | Also keep in mind that this mcount function will be called *a lot*, so |
59 | optimizing for the default case of no tracer will help the smooth running of | 59 | optimizing for the default case of no tracer will help the smooth running of |
60 | your system when tracing is disabled. So the start of the mcount function is | 60 | your system when tracing is disabled. So the start of the mcount function is |
61 | typically the bare min with checking things before returning. That also means | 61 | typically the bare minimum with checking things before returning. That also |
62 | the code flow should usually kept linear (i.e. no branching in the nop case). | 62 | means the code flow should usually be kept linear (i.e. no branching in the nop |
63 | This is of course an optimization and not a hard requirement. | 63 | case). This is of course an optimization and not a hard requirement. |
64 | 64 | ||
65 | Here is some pseudo code that should help (these functions should actually be | 65 | Here is some pseudo code that should help (these functions should actually be |
66 | implemented in assembly): | 66 | implemented in assembly): |
@@ -131,10 +131,10 @@ some functions to save (hijack) and restore the return address. | |||
131 | 131 | ||
132 | The mcount function should check the function pointers ftrace_graph_return | 132 | The mcount function should check the function pointers ftrace_graph_return |
133 | (compare to ftrace_stub) and ftrace_graph_entry (compare to | 133 | (compare to ftrace_stub) and ftrace_graph_entry (compare to |
134 | ftrace_graph_entry_stub). If either of those are not set to the relevant stub | 134 | ftrace_graph_entry_stub). If either of those is not set to the relevant stub |
135 | function, call the arch-specific function ftrace_graph_caller which in turn | 135 | function, call the arch-specific function ftrace_graph_caller which in turn |
136 | calls the arch-specific function prepare_ftrace_return. Neither of these | 136 | calls the arch-specific function prepare_ftrace_return. Neither of these |
137 | function names are strictly required, but you should use them anyways to stay | 137 | function names is strictly required, but you should use them anyway to stay |
138 | consistent across the architecture ports -- easier to compare & contrast | 138 | consistent across the architecture ports -- easier to compare & contrast |
139 | things. | 139 | things. |
140 | 140 | ||
@@ -144,7 +144,7 @@ but the first argument should be a pointer to the "frompc". Typically this is | |||
144 | located on the stack. This allows the function to hijack the return address | 144 | located on the stack. This allows the function to hijack the return address |
145 | temporarily to have it point to the arch-specific function return_to_handler. | 145 | temporarily to have it point to the arch-specific function return_to_handler. |
146 | That function will simply call the common ftrace_return_to_handler function and | 146 | That function will simply call the common ftrace_return_to_handler function and |
147 | that will return the original return address with which, you can return to the | 147 | that will return the original return address with which you can return to the |
148 | original call site. | 148 | original call site. |
149 | 149 | ||
150 | Here is the updated mcount pseudo code: | 150 | Here is the updated mcount pseudo code: |
diff --git a/Documentation/trace/mmiotrace.txt b/Documentation/trace/mmiotrace.txt index 162effbfbde..664e7386d89 100644 --- a/Documentation/trace/mmiotrace.txt +++ b/Documentation/trace/mmiotrace.txt | |||
@@ -44,7 +44,8 @@ Check for lost events. | |||
44 | Usage | 44 | Usage |
45 | ----- | 45 | ----- |
46 | 46 | ||
47 | Make sure debugfs is mounted to /sys/kernel/debug. If not, (requires root privileges) | 47 | Make sure debugfs is mounted to /sys/kernel/debug. |
48 | If not (requires root privileges): | ||
48 | $ mount -t debugfs debugfs /sys/kernel/debug | 49 | $ mount -t debugfs debugfs /sys/kernel/debug |
49 | 50 | ||
50 | Check that the driver you are about to trace is not loaded. | 51 | Check that the driver you are about to trace is not loaded. |
@@ -91,7 +92,7 @@ $ dmesg > dmesg.txt | |||
91 | $ tar zcf pciid-nick-mmiotrace.tar.gz mydump.txt lspci.txt dmesg.txt | 92 | $ tar zcf pciid-nick-mmiotrace.tar.gz mydump.txt lspci.txt dmesg.txt |
92 | and then send the .tar.gz file. The trace compresses considerably. Replace | 93 | and then send the .tar.gz file. The trace compresses considerably. Replace |
93 | "pciid" and "nick" with the PCI ID or model name of your piece of hardware | 94 | "pciid" and "nick" with the PCI ID or model name of your piece of hardware |
94 | under investigation and your nick name. | 95 | under investigation and your nickname. |
95 | 96 | ||
96 | 97 | ||
97 | How Mmiotrace Works | 98 | How Mmiotrace Works |
@@ -100,7 +101,7 @@ How Mmiotrace Works | |||
100 | Access to hardware IO-memory is gained by mapping addresses from PCI bus by | 101 | Access to hardware IO-memory is gained by mapping addresses from PCI bus by |
101 | calling one of the ioremap_*() functions. Mmiotrace is hooked into the | 102 | calling one of the ioremap_*() functions. Mmiotrace is hooked into the |
102 | __ioremap() function and gets called whenever a mapping is created. Mapping is | 103 | __ioremap() function and gets called whenever a mapping is created. Mapping is |
103 | an event that is recorded into the trace log. Note, that ISA range mappings | 104 | an event that is recorded into the trace log. Note that ISA range mappings |
104 | are not caught, since the mapping always exists and is returned directly. | 105 | are not caught, since the mapping always exists and is returned directly. |
105 | 106 | ||
106 | MMIO accesses are recorded via page faults. Just before __ioremap() returns, | 107 | MMIO accesses are recorded via page faults. Just before __ioremap() returns, |
@@ -122,11 +123,11 @@ Trace Log Format | |||
122 | ---------------- | 123 | ---------------- |
123 | 124 | ||
124 | The raw log is text and easily filtered with e.g. grep and awk. One record is | 125 | The raw log is text and easily filtered with e.g. grep and awk. One record is |
125 | one line in the log. A record starts with a keyword, followed by keyword | 126 | one line in the log. A record starts with a keyword, followed by keyword- |
126 | dependant arguments. Arguments are separated by a space, or continue until the | 127 | dependent arguments. Arguments are separated by a space, or continue until the |
127 | end of line. The format for version 20070824 is as follows: | 128 | end of line. The format for version 20070824 is as follows: |
128 | 129 | ||
129 | Explanation Keyword Space separated arguments | 130 | Explanation Keyword Space-separated arguments |
130 | --------------------------------------------------------------------------- | 131 | --------------------------------------------------------------------------- |
131 | 132 | ||
132 | read event R width, timestamp, map id, physical, value, PC, PID | 133 | read event R width, timestamp, map id, physical, value, PC, PID |
@@ -136,7 +137,7 @@ iounmap event UNMAP timestamp, map id, PC, PID | |||
136 | marker MARK timestamp, text | 137 | marker MARK timestamp, text |
137 | version VERSION the string "20070824" | 138 | version VERSION the string "20070824" |
138 | info for reader LSPCI one line from lspci -v | 139 | info for reader LSPCI one line from lspci -v |
139 | PCI address map PCIDEV space separated /proc/bus/pci/devices data | 140 | PCI address map PCIDEV space-separated /proc/bus/pci/devices data |
140 | unk. opcode UNKNOWN timestamp, map id, physical, data, PC, PID | 141 | unk. opcode UNKNOWN timestamp, map id, physical, data, PC, PID |
141 | 142 | ||
142 | Timestamp is in seconds with decimals. Physical is a PCI bus address, virtual | 143 | Timestamp is in seconds with decimals. Physical is a PCI bus address, virtual |
diff --git a/Documentation/trace/ring-buffer-design.txt b/Documentation/trace/ring-buffer-design.txt index 5b1d23d604c..d299ff31df5 100644 --- a/Documentation/trace/ring-buffer-design.txt +++ b/Documentation/trace/ring-buffer-design.txt | |||
@@ -33,9 +33,9 @@ head_page - a pointer to the page that the reader will use next | |||
33 | 33 | ||
34 | tail_page - a pointer to the page that will be written to next | 34 | tail_page - a pointer to the page that will be written to next |
35 | 35 | ||
36 | commit_page - a pointer to the page with the last finished non nested write. | 36 | commit_page - a pointer to the page with the last finished non-nested write. |
37 | 37 | ||
38 | cmpxchg - hardware assisted atomic transaction that performs the following: | 38 | cmpxchg - hardware-assisted atomic transaction that performs the following: |
39 | 39 | ||
40 | A = B iff previous A == C | 40 | A = B iff previous A == C |
41 | 41 | ||
@@ -52,15 +52,15 @@ The Generic Ring Buffer | |||
52 | The ring buffer can be used in either an overwrite mode or in | 52 | The ring buffer can be used in either an overwrite mode or in |
53 | producer/consumer mode. | 53 | producer/consumer mode. |
54 | 54 | ||
55 | Producer/consumer mode is where the producer were to fill up the | 55 | Producer/consumer mode is where if the producer were to fill up the |
56 | buffer before the consumer could free up anything, the producer | 56 | buffer before the consumer could free up anything, the producer |
57 | will stop writing to the buffer. This will lose most recent events. | 57 | will stop writing to the buffer. This will lose most recent events. |
58 | 58 | ||
59 | Overwrite mode is where the produce were to fill up the buffer | 59 | Overwrite mode is where if the producer were to fill up the buffer |
60 | before the consumer could free up anything, the producer will | 60 | before the consumer could free up anything, the producer will |
61 | overwrite the older data. This will lose the oldest events. | 61 | overwrite the older data. This will lose the oldest events. |
62 | 62 | ||
63 | No two writers can write at the same time (on the same per cpu buffer), | 63 | No two writers can write at the same time (on the same per-cpu buffer), |
64 | but a writer may interrupt another writer, but it must finish writing | 64 | but a writer may interrupt another writer, but it must finish writing |
65 | before the previous writer may continue. This is very important to the | 65 | before the previous writer may continue. This is very important to the |
66 | algorithm. The writers act like a "stack". The way interrupts works | 66 | algorithm. The writers act like a "stack". The way interrupts works |
@@ -79,16 +79,16 @@ the interrupt doing a write as well. | |||
79 | 79 | ||
80 | Readers can happen at any time. But no two readers may run at the | 80 | Readers can happen at any time. But no two readers may run at the |
81 | same time, nor can a reader preempt/interrupt another reader. A reader | 81 | same time, nor can a reader preempt/interrupt another reader. A reader |
82 | can not preempt/interrupt a writer, but it may read/consume from the | 82 | cannot preempt/interrupt a writer, but it may read/consume from the |
83 | buffer at the same time as a writer is writing, but the reader must be | 83 | buffer at the same time as a writer is writing, but the reader must be |
84 | on another processor to do so. A reader may read on its own processor | 84 | on another processor to do so. A reader may read on its own processor |
85 | and can be preempted by a writer. | 85 | and can be preempted by a writer. |
86 | 86 | ||
87 | A writer can preempt a reader, but a reader can not preempt a writer. | 87 | A writer can preempt a reader, but a reader cannot preempt a writer. |
88 | But a reader can read the buffer at the same time (on another processor) | 88 | But a reader can read the buffer at the same time (on another processor) |
89 | as a writer. | 89 | as a writer. |
90 | 90 | ||
91 | The ring buffer is made up of a list of pages held together by a link list. | 91 | The ring buffer is made up of a list of pages held together by a linked list. |
92 | 92 | ||
93 | At initialization a reader page is allocated for the reader that is not | 93 | At initialization a reader page is allocated for the reader that is not |
94 | part of the ring buffer. | 94 | part of the ring buffer. |
@@ -102,7 +102,7 @@ the head page. | |||
102 | 102 | ||
103 | The reader has its own page to use. At start up time, this page is | 103 | The reader has its own page to use. At start up time, this page is |
104 | allocated but is not attached to the list. When the reader wants | 104 | allocated but is not attached to the list. When the reader wants |
105 | to read from the buffer, if its page is empty (like it is on start up) | 105 | to read from the buffer, if its page is empty (like it is on start-up), |
106 | it will swap its page with the head_page. The old reader page will | 106 | it will swap its page with the head_page. The old reader page will |
107 | become part of the ring buffer and the head_page will be removed. | 107 | become part of the ring buffer and the head_page will be removed. |
108 | The page after the inserted page (old reader_page) will become the | 108 | The page after the inserted page (old reader_page) will become the |
@@ -206,7 +206,7 @@ The main pointers: | |||
206 | 206 | ||
207 | commit page - the page that last finished a write. | 207 | commit page - the page that last finished a write. |
208 | 208 | ||
209 | The commit page only is updated by the outer most writer in the | 209 | The commit page only is updated by the outermost writer in the |
210 | writer stack. A writer that preempts another writer will not move the | 210 | writer stack. A writer that preempts another writer will not move the |
211 | commit page. | 211 | commit page. |
212 | 212 | ||
@@ -281,7 +281,7 @@ with the previous write. | |||
281 | The commit pointer points to the last write location that was | 281 | The commit pointer points to the last write location that was |
282 | committed without preempting another write. When a write that | 282 | committed without preempting another write. When a write that |
283 | preempted another write is committed, it only becomes a pending commit | 283 | preempted another write is committed, it only becomes a pending commit |
284 | and will not be a full commit till all writes have been committed. | 284 | and will not be a full commit until all writes have been committed. |
285 | 285 | ||
286 | The commit page points to the page that has the last full commit. | 286 | The commit page points to the page that has the last full commit. |
287 | The tail page points to the page with the last write (before | 287 | The tail page points to the page with the last write (before |
@@ -292,7 +292,7 @@ be several pages ahead. If the tail page catches up to the commit | |||
292 | page then no more writes may take place (regardless of the mode | 292 | page then no more writes may take place (regardless of the mode |
293 | of the ring buffer: overwrite and produce/consumer). | 293 | of the ring buffer: overwrite and produce/consumer). |
294 | 294 | ||
295 | The order of pages are: | 295 | The order of pages is: |
296 | 296 | ||
297 | head page | 297 | head page |
298 | commit page | 298 | commit page |
@@ -311,7 +311,7 @@ Possible scenario: | |||
311 | There is a special case that the head page is after either the commit page | 311 | There is a special case that the head page is after either the commit page |
312 | and possibly the tail page. That is when the commit (and tail) page has been | 312 | and possibly the tail page. That is when the commit (and tail) page has been |
313 | swapped with the reader page. This is because the head page is always | 313 | swapped with the reader page. This is because the head page is always |
314 | part of the ring buffer, but the reader page is not. When ever there | 314 | part of the ring buffer, but the reader page is not. Whenever there |
315 | has been less than a full page that has been committed inside the ring buffer, | 315 | has been less than a full page that has been committed inside the ring buffer, |
316 | and a reader swaps out a page, it will be swapping out the commit page. | 316 | and a reader swaps out a page, it will be swapping out the commit page. |
317 | 317 | ||
@@ -338,7 +338,7 @@ and a reader swaps out a page, it will be swapping out the commit page. | |||
338 | In this case, the head page will not move when the tail and commit | 338 | In this case, the head page will not move when the tail and commit |
339 | move back into the ring buffer. | 339 | move back into the ring buffer. |
340 | 340 | ||
341 | The reader can not swap a page into the ring buffer if the commit page | 341 | The reader cannot swap a page into the ring buffer if the commit page |
342 | is still on that page. If the read meets the last commit (real commit | 342 | is still on that page. If the read meets the last commit (real commit |
343 | not pending or reserved), then there is nothing more to read. | 343 | not pending or reserved), then there is nothing more to read. |
344 | The buffer is considered empty until another full commit finishes. | 344 | The buffer is considered empty until another full commit finishes. |
@@ -395,7 +395,7 @@ The main idea behind the lockless algorithm is to combine the moving | |||
395 | of the head_page pointer with the swapping of pages with the reader. | 395 | of the head_page pointer with the swapping of pages with the reader. |
396 | State flags are placed inside the pointer to the page. To do this, | 396 | State flags are placed inside the pointer to the page. To do this, |
397 | each page must be aligned in memory by 4 bytes. This will allow the 2 | 397 | each page must be aligned in memory by 4 bytes. This will allow the 2 |
398 | least significant bits of the address to be used as flags. Since | 398 | least significant bits of the address to be used as flags, since |
399 | they will always be zero for the address. To get the address, | 399 | they will always be zero for the address. To get the address, |
400 | simply mask out the flags. | 400 | simply mask out the flags. |
401 | 401 | ||
@@ -460,7 +460,7 @@ When the reader tries to swap the page with the ring buffer, it | |||
460 | will also use cmpxchg. If the flag bit in the pointer to the | 460 | will also use cmpxchg. If the flag bit in the pointer to the |
461 | head page does not have the HEADER flag set, the compare will fail | 461 | head page does not have the HEADER flag set, the compare will fail |
462 | and the reader will need to look for the new head page and try again. | 462 | and the reader will need to look for the new head page and try again. |
463 | Note, the flag UPDATE and HEADER are never set at the same time. | 463 | Note, the flags UPDATE and HEADER are never set at the same time. |
464 | 464 | ||
465 | The reader swaps the reader page as follows: | 465 | The reader swaps the reader page as follows: |
466 | 466 | ||
@@ -539,7 +539,7 @@ updated to the reader page. | |||
539 | | +-----------------------------+ | | 539 | | +-----------------------------+ | |
540 | +------------------------------------+ | 540 | +------------------------------------+ |
541 | 541 | ||
542 | Another important point. The page that the reader page points back to | 542 | Another important point: The page that the reader page points back to |
543 | by its previous pointer (the one that now points to the new head page) | 543 | by its previous pointer (the one that now points to the new head page) |
544 | never points back to the reader page. That is because the reader page is | 544 | never points back to the reader page. That is because the reader page is |
545 | not part of the ring buffer. Traversing the ring buffer via the next pointers | 545 | not part of the ring buffer. Traversing the ring buffer via the next pointers |
@@ -572,7 +572,7 @@ not be able to swap the head page from the buffer, nor will it be able to | |||
572 | move the head page, until the writer is finished with the move. | 572 | move the head page, until the writer is finished with the move. |
573 | 573 | ||
574 | This eliminates any races that the reader can have on the writer. The reader | 574 | This eliminates any races that the reader can have on the writer. The reader |
575 | must spin, and this is why the reader can not preempt the writer. | 575 | must spin, and this is why the reader cannot preempt the writer. |
576 | 576 | ||
577 | tail page | 577 | tail page |
578 | | | 578 | | |
@@ -659,9 +659,9 @@ before pushing the head page. If it is, then it can be assumed that the | |||
659 | tail page wrapped the buffer, and we must drop new writes. | 659 | tail page wrapped the buffer, and we must drop new writes. |
660 | 660 | ||
661 | This is not a race condition, because the commit page can only be moved | 661 | This is not a race condition, because the commit page can only be moved |
662 | by the outter most writer (the writer that was preempted). | 662 | by the outermost writer (the writer that was preempted). |
663 | This means that the commit will not move while a writer is moving the | 663 | This means that the commit will not move while a writer is moving the |
664 | tail page. The reader can not swap the reader page if it is also being | 664 | tail page. The reader cannot swap the reader page if it is also being |
665 | used as the commit page. The reader can simply check that the commit | 665 | used as the commit page. The reader can simply check that the commit |
666 | is off the reader page. Once the commit page leaves the reader page | 666 | is off the reader page. Once the commit page leaves the reader page |
667 | it will never go back on it unless a reader does another swap with the | 667 | it will never go back on it unless a reader does another swap with the |
@@ -733,7 +733,7 @@ The write converts the head page pointer to UPDATE. | |||
733 | --->| |<---| |<---| |<---| |<--- | 733 | --->| |<---| |<---| |<---| |<--- |
734 | +---+ +---+ +---+ +---+ | 734 | +---+ +---+ +---+ +---+ |
735 | 735 | ||
736 | But if a nested writer preempts here. It will see that the next | 736 | But if a nested writer preempts here, it will see that the next |
737 | page is a head page, but it is also nested. It will detect that | 737 | page is a head page, but it is also nested. It will detect that |
738 | it is nested and will save that information. The detection is the | 738 | it is nested and will save that information. The detection is the |
739 | fact that it sees the UPDATE flag instead of a HEADER or NORMAL | 739 | fact that it sees the UPDATE flag instead of a HEADER or NORMAL |
@@ -761,7 +761,7 @@ to NORMAL. | |||
761 | --->| |<---| |<---| |<---| |<--- | 761 | --->| |<---| |<---| |<---| |<--- |
762 | +---+ +---+ +---+ +---+ | 762 | +---+ +---+ +---+ +---+ |
763 | 763 | ||
764 | After the nested writer finishes, the outer most writer will convert | 764 | After the nested writer finishes, the outermost writer will convert |
765 | the UPDATE pointer to NORMAL. | 765 | the UPDATE pointer to NORMAL. |
766 | 766 | ||
767 | 767 | ||
@@ -812,7 +812,7 @@ head page. | |||
812 | +---+ +---+ +---+ +---+ | 812 | +---+ +---+ +---+ +---+ |
813 | 813 | ||
814 | The nested writer moves the tail page forward. But does not set the old | 814 | The nested writer moves the tail page forward. But does not set the old |
815 | update page to NORMAL because it is not the outer most writer. | 815 | update page to NORMAL because it is not the outermost writer. |
816 | 816 | ||
817 | tail page | 817 | tail page |
818 | | | 818 | | |
@@ -892,7 +892,7 @@ It will return to the first writer. | |||
892 | --->| |<---| |<---| |<---| |<--- | 892 | --->| |<---| |<---| |<---| |<--- |
893 | +---+ +---+ +---+ +---+ | 893 | +---+ +---+ +---+ +---+ |
894 | 894 | ||
895 | The first writer can not know atomically test if the tail page moved | 895 | The first writer cannot know atomically if the tail page moved |
896 | while it updates the HEAD page. It will then update the head page to | 896 | while it updates the HEAD page. It will then update the head page to |
897 | what it thinks is the new head page. | 897 | what it thinks is the new head page. |
898 | 898 | ||
@@ -923,9 +923,9 @@ if the tail page is either where it use to be or on the next page: | |||
923 | --->| |<---| |<---| |<---| |<--- | 923 | --->| |<---| |<---| |<---| |<--- |
924 | +---+ +---+ +---+ +---+ | 924 | +---+ +---+ +---+ +---+ |
925 | 925 | ||
926 | If tail page != A and tail page does not equal B, then it must reset the | 926 | If tail page != A and tail page != B, then it must reset the pointer |
927 | pointer back to NORMAL. The fact that it only needs to worry about | 927 | back to NORMAL. The fact that it only needs to worry about nested |
928 | nested writers, it only needs to check this after setting the HEAD page. | 928 | writers means that it only needs to check this after setting the HEAD page. |
929 | 929 | ||
930 | 930 | ||
931 | (first writer) | 931 | (first writer) |
@@ -939,7 +939,7 @@ nested writers, it only needs to check this after setting the HEAD page. | |||
939 | +---+ +---+ +---+ +---+ | 939 | +---+ +---+ +---+ +---+ |
940 | 940 | ||
941 | Now the writer can update the head page. This is also why the head page must | 941 | Now the writer can update the head page. This is also why the head page must |
942 | remain in UPDATE and only reset by the outer most writer. This prevents | 942 | remain in UPDATE and only reset by the outermost writer. This prevents |
943 | the reader from seeing the incorrect head page. | 943 | the reader from seeing the incorrect head page. |
944 | 944 | ||
945 | 945 | ||
diff --git a/Documentation/trace/tracepoint-analysis.txt b/Documentation/trace/tracepoint-analysis.txt index 5eb4e487e66..87bee3c129b 100644 --- a/Documentation/trace/tracepoint-analysis.txt +++ b/Documentation/trace/tracepoint-analysis.txt | |||
@@ -10,8 +10,8 @@ Tracepoints (see Documentation/trace/tracepoints.txt) can be used without | |||
10 | creating custom kernel modules to register probe functions using the event | 10 | creating custom kernel modules to register probe functions using the event |
11 | tracing infrastructure. | 11 | tracing infrastructure. |
12 | 12 | ||
13 | Simplistically, tracepoints will represent an important event that when can | 13 | Simplistically, tracepoints represent important events that can be |
14 | be taken in conjunction with other tracepoints to build a "Big Picture" of | 14 | taken in conjunction with other tracepoints to build a "Big Picture" of |
15 | what is going on within the system. There are a large number of methods for | 15 | what is going on within the system. There are a large number of methods for |
16 | gathering and interpreting these events. Lacking any current Best Practises, | 16 | gathering and interpreting these events. Lacking any current Best Practises, |
17 | this document describes some of the methods that can be used. | 17 | this document describes some of the methods that can be used. |
@@ -33,12 +33,12 @@ calling | |||
33 | 33 | ||
34 | will give a fair indication of the number of events available. | 34 | will give a fair indication of the number of events available. |
35 | 35 | ||
36 | 2.2 PCL | 36 | 2.2 PCL (Performance Counters for Linux) |
37 | ------- | 37 | ------- |
38 | 38 | ||
39 | Discovery and enumeration of all counters and events, including tracepoints | 39 | Discovery and enumeration of all counters and events, including tracepoints, |
40 | are available with the perf tool. Getting a list of available events is a | 40 | are available with the perf tool. Getting a list of available events is a |
41 | simple case of | 41 | simple case of: |
42 | 42 | ||
43 | $ perf list 2>&1 | grep Tracepoint | 43 | $ perf list 2>&1 | grep Tracepoint |
44 | ext4:ext4_free_inode [Tracepoint event] | 44 | ext4:ext4_free_inode [Tracepoint event] |
@@ -49,19 +49,19 @@ simple case of | |||
49 | [ .... remaining output snipped .... ] | 49 | [ .... remaining output snipped .... ] |
50 | 50 | ||
51 | 51 | ||
52 | 2. Enabling Events | 52 | 3. Enabling Events |
53 | ================== | 53 | ================== |
54 | 54 | ||
55 | 2.1 System-Wide Event Enabling | 55 | 3.1 System-Wide Event Enabling |
56 | ------------------------------ | 56 | ------------------------------ |
57 | 57 | ||
58 | See Documentation/trace/events.txt for a proper description on how events | 58 | See Documentation/trace/events.txt for a proper description on how events |
59 | can be enabled system-wide. A short example of enabling all events related | 59 | can be enabled system-wide. A short example of enabling all events related |
60 | to page allocation would look something like | 60 | to page allocation would look something like: |
61 | 61 | ||
62 | $ for i in `find /sys/kernel/debug/tracing/events -name "enable" | grep mm_`; do echo 1 > $i; done | 62 | $ for i in `find /sys/kernel/debug/tracing/events -name "enable" | grep mm_`; do echo 1 > $i; done |
63 | 63 | ||
64 | 2.2 System-Wide Event Enabling with SystemTap | 64 | 3.2 System-Wide Event Enabling with SystemTap |
65 | --------------------------------------------- | 65 | --------------------------------------------- |
66 | 66 | ||
67 | In SystemTap, tracepoints are accessible using the kernel.trace() function | 67 | In SystemTap, tracepoints are accessible using the kernel.trace() function |
@@ -86,7 +86,7 @@ were allocating the pages. | |||
86 | print_count() | 86 | print_count() |
87 | } | 87 | } |
88 | 88 | ||
89 | 2.3 System-Wide Event Enabling with PCL | 89 | 3.3 System-Wide Event Enabling with PCL |
90 | --------------------------------------- | 90 | --------------------------------------- |
91 | 91 | ||
92 | By specifying the -a switch and analysing sleep, the system-wide events | 92 | By specifying the -a switch and analysing sleep, the system-wide events |
@@ -107,16 +107,16 @@ for a duration of time can be examined. | |||
107 | Similarly, one could execute a shell and exit it as desired to get a report | 107 | Similarly, one could execute a shell and exit it as desired to get a report |
108 | at that point. | 108 | at that point. |
109 | 109 | ||
110 | 2.4 Local Event Enabling | 110 | 3.4 Local Event Enabling |
111 | ------------------------ | 111 | ------------------------ |
112 | 112 | ||
113 | Documentation/trace/ftrace.txt describes how to enable events on a per-thread | 113 | Documentation/trace/ftrace.txt describes how to enable events on a per-thread |
114 | basis using set_ftrace_pid. | 114 | basis using set_ftrace_pid. |
115 | 115 | ||
116 | 2.5 Local Event Enablement with PCL | 116 | 3.5 Local Event Enablement with PCL |
117 | ----------------------------------- | 117 | ----------------------------------- |
118 | 118 | ||
119 | Events can be activate and tracked for the duration of a process on a local | 119 | Events can be activated and tracked for the duration of a process on a local |
120 | basis using PCL such as follows. | 120 | basis using PCL such as follows. |
121 | 121 | ||
122 | $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ | 122 | $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ |
@@ -131,18 +131,18 @@ basis using PCL such as follows. | |||
131 | 131 | ||
132 | 0.973913387 seconds time elapsed | 132 | 0.973913387 seconds time elapsed |
133 | 133 | ||
134 | 3. Event Filtering | 134 | 4. Event Filtering |
135 | ================== | 135 | ================== |
136 | 136 | ||
137 | Documentation/trace/ftrace.txt covers in-depth how to filter events in | 137 | Documentation/trace/ftrace.txt covers in-depth how to filter events in |
138 | ftrace. Obviously using grep and awk of trace_pipe is an option as well | 138 | ftrace. Obviously using grep and awk of trace_pipe is an option as well |
139 | as any script reading trace_pipe. | 139 | as any script reading trace_pipe. |
140 | 140 | ||
141 | 4. Analysing Event Variances with PCL | 141 | 5. Analysing Event Variances with PCL |
142 | ===================================== | 142 | ===================================== |
143 | 143 | ||
144 | Any workload can exhibit variances between runs and it can be important | 144 | Any workload can exhibit variances between runs and it can be important |
145 | to know what the standard deviation in. By and large, this is left to the | 145 | to know what the standard deviation is. By and large, this is left to the |
146 | performance analyst to do it by hand. In the event that the discrete event | 146 | performance analyst to do it by hand. In the event that the discrete event |
147 | occurrences are useful to the performance analyst, then perf can be used. | 147 | occurrences are useful to the performance analyst, then perf can be used. |
148 | 148 | ||
@@ -166,7 +166,7 @@ In the event that some higher-level event is required that depends on some | |||
166 | aggregation of discrete events, then a script would need to be developed. | 166 | aggregation of discrete events, then a script would need to be developed. |
167 | 167 | ||
168 | Using --repeat, it is also possible to view how events are fluctuating over | 168 | Using --repeat, it is also possible to view how events are fluctuating over |
169 | time on a system wide basis using -a and sleep. | 169 | time on a system-wide basis using -a and sleep. |
170 | 170 | ||
171 | $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ | 171 | $ perf stat -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ |
172 | -e kmem:mm_pagevec_free \ | 172 | -e kmem:mm_pagevec_free \ |
@@ -180,7 +180,7 @@ time on a system wide basis using -a and sleep. | |||
180 | 180 | ||
181 | 1.002251757 seconds time elapsed ( +- 0.005% ) | 181 | 1.002251757 seconds time elapsed ( +- 0.005% ) |
182 | 182 | ||
183 | 5. Higher-Level Analysis with Helper Scripts | 183 | 6. Higher-Level Analysis with Helper Scripts |
184 | ============================================ | 184 | ============================================ |
185 | 185 | ||
186 | When events are enabled the events that are triggering can be read from | 186 | When events are enabled the events that are triggering can be read from |
@@ -190,11 +190,11 @@ be gathered on-line as appropriate. Examples of post-processing might include | |||
190 | 190 | ||
191 | o Reading information from /proc for the PID that triggered the event | 191 | o Reading information from /proc for the PID that triggered the event |
192 | o Deriving a higher-level event from a series of lower-level events. | 192 | o Deriving a higher-level event from a series of lower-level events. |
193 | o Calculate latencies between two events | 193 | o Calculating latencies between two events |
194 | 194 | ||
195 | Documentation/trace/postprocess/trace-pagealloc-postprocess.pl is an example | 195 | Documentation/trace/postprocess/trace-pagealloc-postprocess.pl is an example |
196 | script that can read trace_pipe from STDIN or a copy of a trace. When used | 196 | script that can read trace_pipe from STDIN or a copy of a trace. When used |
197 | on-line, it can be interrupted once to generate a report without existing | 197 | on-line, it can be interrupted once to generate a report without exiting |
198 | and twice to exit. | 198 | and twice to exit. |
199 | 199 | ||
200 | Simplistically, the script just reads STDIN and counts up events but it | 200 | Simplistically, the script just reads STDIN and counts up events but it |
@@ -212,12 +212,12 @@ also can do more such as | |||
212 | processes, the parent process responsible for creating all the helpers | 212 | processes, the parent process responsible for creating all the helpers |
213 | can be identified | 213 | can be identified |
214 | 214 | ||
215 | 6. Lower-Level Analysis with PCL | 215 | 7. Lower-Level Analysis with PCL |
216 | ================================ | 216 | ================================ |
217 | 217 | ||
218 | There may also be a requirement to identify what functions with a program | 218 | There may also be a requirement to identify what functions within a program |
219 | were generating events within the kernel. To begin this sort of analysis, the | 219 | were generating events within the kernel. To begin this sort of analysis, the |
220 | data must be recorded. At the time of writing, this required root | 220 | data must be recorded. At the time of writing, this required root: |
221 | 221 | ||
222 | $ perf record -c 1 \ | 222 | $ perf record -c 1 \ |
223 | -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ | 223 | -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ |
@@ -253,11 +253,11 @@ perf report. | |||
253 | # (For more details, try: perf report --sort comm,dso,symbol) | 253 | # (For more details, try: perf report --sort comm,dso,symbol) |
254 | # | 254 | # |
255 | 255 | ||
256 | According to this, the vast majority of events occured triggered on events | 256 | According to this, the vast majority of events triggered on events |
257 | within the VDSO. With simple binaries, this will often be the case so lets | 257 | within the VDSO. With simple binaries, this will often be the case so let's |
258 | take a slightly different example. In the course of writing this, it was | 258 | take a slightly different example. In the course of writing this, it was |
259 | noticed that X was generating an insane amount of page allocations so lets look | 259 | noticed that X was generating an insane amount of page allocations so let's look |
260 | at it | 260 | at it: |
261 | 261 | ||
262 | $ perf record -c 1 -f \ | 262 | $ perf record -c 1 -f \ |
263 | -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ | 263 | -e kmem:mm_page_alloc -e kmem:mm_page_free_direct \ |
@@ -280,8 +280,8 @@ This was interrupted after a few seconds and | |||
280 | # (For more details, try: perf report --sort comm,dso,symbol) | 280 | # (For more details, try: perf report --sort comm,dso,symbol) |
281 | # | 281 | # |
282 | 282 | ||
283 | So, almost half of the events are occuring in a library. To get an idea which | 283 | So, almost half of the events are occurring in a library. To get an idea which |
284 | symbol. | 284 | symbol: |
285 | 285 | ||
286 | $ perf report --sort comm,dso,symbol | 286 | $ perf report --sort comm,dso,symbol |
287 | # Samples: 27666 | 287 | # Samples: 27666 |
@@ -297,7 +297,7 @@ symbol. | |||
297 | 0.01% Xorg /opt/gfx-test/lib/libpixman-1.so.0.13.1 [.] get_fast_path | 297 | 0.01% Xorg /opt/gfx-test/lib/libpixman-1.so.0.13.1 [.] get_fast_path |
298 | 0.00% Xorg [kernel] [k] ftrace_trace_userstack | 298 | 0.00% Xorg [kernel] [k] ftrace_trace_userstack |
299 | 299 | ||
300 | To see where within the function pixmanFillsse2 things are going wrong | 300 | To see where within the function pixmanFillsse2 things are going wrong: |
301 | 301 | ||
302 | $ perf annotate pixmanFillsse2 | 302 | $ perf annotate pixmanFillsse2 |
303 | [ ... ] | 303 | [ ... ] |
diff --git a/Documentation/vgaarbiter.txt b/Documentation/vgaarbiter.txt index 987f9b0a5ec..43a9b0694fd 100644 --- a/Documentation/vgaarbiter.txt +++ b/Documentation/vgaarbiter.txt | |||
@@ -103,7 +103,7 @@ I.2 libpciaccess | |||
103 | ---------------- | 103 | ---------------- |
104 | 104 | ||
105 | To use the vga arbiter char device it was implemented an API inside the | 105 | To use the vga arbiter char device it was implemented an API inside the |
106 | libpciaccess library. One fieldd was added to struct pci_device (each device | 106 | libpciaccess library. One field was added to struct pci_device (each device |
107 | on the system): | 107 | on the system): |
108 | 108 | ||
109 | /* the type of resource decoded by the device */ | 109 | /* the type of resource decoded by the device */ |
diff --git a/MAINTAINERS b/MAINTAINERS index 66f5f7dab28..1858646b52e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -410,9 +410,8 @@ F: drivers/i2c/busses/i2c-ali1563.c | |||
410 | 410 | ||
411 | ALPHA PORT | 411 | ALPHA PORT |
412 | M: Richard Henderson <rth@twiddle.net> | 412 | M: Richard Henderson <rth@twiddle.net> |
413 | S: Odd Fixes for 2.4; Maintained for 2.6. | ||
414 | M: Ivan Kokshaysky <ink@jurassic.park.msu.ru> | 413 | M: Ivan Kokshaysky <ink@jurassic.park.msu.ru> |
415 | S: Maintained for 2.4; PCI support for 2.6. | 414 | M: Matt Turner <mattst88@gmail.com> |
416 | L: linux-alpha@vger.kernel.org | 415 | L: linux-alpha@vger.kernel.org |
417 | F: arch/alpha/ | 416 | F: arch/alpha/ |
418 | 417 | ||
@@ -1638,9 +1637,8 @@ S: Maintained | |||
1638 | F: sound/pci/cs5535audio/ | 1637 | F: sound/pci/cs5535audio/ |
1639 | 1638 | ||
1640 | CX18 VIDEO4LINUX DRIVER | 1639 | CX18 VIDEO4LINUX DRIVER |
1641 | M: Hans Verkuil <hverkuil@xs4all.nl> | ||
1642 | M: Andy Walls <awalls@radix.net> | 1640 | M: Andy Walls <awalls@radix.net> |
1643 | L: ivtv-devel@ivtvdriver.org | 1641 | L: ivtv-devel@ivtvdriver.org (moderated for non-subscribers) |
1644 | L: linux-media@vger.kernel.org | 1642 | L: linux-media@vger.kernel.org |
1645 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git | 1643 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git |
1646 | W: http://linuxtv.org | 1644 | W: http://linuxtv.org |
@@ -2169,10 +2167,9 @@ F: drivers/hwmon/f75375s.c | |||
2169 | F: include/linux/f75375s.h | 2167 | F: include/linux/f75375s.h |
2170 | 2168 | ||
2171 | FIREWIRE SUBSYSTEM | 2169 | FIREWIRE SUBSYSTEM |
2172 | M: Kristian Hoegsberg <krh@redhat.com> | ||
2173 | M: Stefan Richter <stefanr@s5r6.in-berlin.de> | 2170 | M: Stefan Richter <stefanr@s5r6.in-berlin.de> |
2174 | L: linux1394-devel@lists.sourceforge.net | 2171 | L: linux1394-devel@lists.sourceforge.net |
2175 | W: http://www.linux1394.org/ | 2172 | W: http://ieee1394.wiki.kernel.org/ |
2176 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git | 2173 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git |
2177 | S: Maintained | 2174 | S: Maintained |
2178 | F: drivers/firewire/ | 2175 | F: drivers/firewire/ |
@@ -2705,22 +2702,14 @@ S: Supported | |||
2705 | F: drivers/idle/i7300_idle.c | 2702 | F: drivers/idle/i7300_idle.c |
2706 | 2703 | ||
2707 | IEEE 1394 SUBSYSTEM | 2704 | IEEE 1394 SUBSYSTEM |
2708 | M: Ben Collins <ben.collins@ubuntu.com> | ||
2709 | M: Stefan Richter <stefanr@s5r6.in-berlin.de> | 2705 | M: Stefan Richter <stefanr@s5r6.in-berlin.de> |
2710 | L: linux1394-devel@lists.sourceforge.net | 2706 | L: linux1394-devel@lists.sourceforge.net |
2711 | W: http://www.linux1394.org/ | 2707 | W: http://ieee1394.wiki.kernel.org/ |
2712 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git | 2708 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git |
2713 | S: Maintained | 2709 | S: Obsolete |
2714 | F: Documentation/debugging-via-ohci1394.txt | 2710 | F: Documentation/debugging-via-ohci1394.txt |
2715 | F: drivers/ieee1394/ | 2711 | F: drivers/ieee1394/ |
2716 | 2712 | ||
2717 | IEEE 1394 RAW I/O DRIVER | ||
2718 | M: Dan Dennedy <dan@dennedy.org> | ||
2719 | M: Stefan Richter <stefanr@s5r6.in-berlin.de> | ||
2720 | L: linux1394-devel@lists.sourceforge.net | ||
2721 | S: Maintained | ||
2722 | F: drivers/ieee1394/raw1394* | ||
2723 | |||
2724 | IEEE 802.15.4 SUBSYSTEM | 2713 | IEEE 802.15.4 SUBSYSTEM |
2725 | M: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2714 | M: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> |
2726 | M: Sergey Lapin <slapin@ossfans.org> | 2715 | M: Sergey Lapin <slapin@ossfans.org> |
@@ -3021,8 +3010,8 @@ S: Maintained | |||
3021 | F: drivers/isdn/hardware/eicon/ | 3010 | F: drivers/isdn/hardware/eicon/ |
3022 | 3011 | ||
3023 | IVTV VIDEO4LINUX DRIVER | 3012 | IVTV VIDEO4LINUX DRIVER |
3024 | M: Hans Verkuil <hverkuil@xs4all.nl> | 3013 | M: Andy Walls <awalls@radix.net> |
3025 | L: ivtv-devel@ivtvdriver.org | 3014 | L: ivtv-devel@ivtvdriver.org (moderated for non-subscribers) |
3026 | L: linux-media@vger.kernel.org | 3015 | L: linux-media@vger.kernel.org |
3027 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git | 3016 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6.git |
3028 | W: http://www.ivtvdriver.org | 3017 | W: http://www.ivtvdriver.org |
@@ -3882,7 +3871,7 @@ F: drivers/net/ni5010.* | |||
3882 | 3871 | ||
3883 | NILFS2 FILESYSTEM | 3872 | NILFS2 FILESYSTEM |
3884 | M: KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp> | 3873 | M: KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp> |
3885 | L: users@nilfs.org | 3874 | L: linux-nilfs@vger.kernel.org |
3886 | W: http://www.nilfs.org/en/ | 3875 | W: http://www.nilfs.org/en/ |
3887 | S: Supported | 3876 | S: Supported |
3888 | F: Documentation/filesystems/nilfs2.txt | 3877 | F: Documentation/filesystems/nilfs2.txt |
@@ -3949,29 +3938,20 @@ S: Maintained | |||
3949 | F: sound/soc/omap/ | 3938 | F: sound/soc/omap/ |
3950 | 3939 | ||
3951 | OMAP FRAMEBUFFER SUPPORT | 3940 | OMAP FRAMEBUFFER SUPPORT |
3952 | M: Imre Deak <imre.deak@nokia.com> | 3941 | M: Tomi Valkeinen <tomi.valkeinen@nokia.com> |
3953 | L: linux-fbdev@vger.kernel.org | 3942 | L: linux-fbdev@vger.kernel.org |
3954 | L: linux-omap@vger.kernel.org | 3943 | L: linux-omap@vger.kernel.org |
3955 | S: Maintained | 3944 | S: Maintained |
3956 | F: drivers/video/omap/ | 3945 | F: drivers/video/omap/ |
3957 | 3946 | ||
3958 | OMAP DISPLAY SUBSYSTEM SUPPORT (DSS2) | 3947 | OMAP DISPLAY SUBSYSTEM and FRAMEBUFFER SUPPORT (DSS2) |
3959 | M: Tomi Valkeinen <tomi.valkeinen@nokia.com> | 3948 | M: Tomi Valkeinen <tomi.valkeinen@nokia.com> |
3960 | L: linux-omap@vger.kernel.org | 3949 | L: linux-omap@vger.kernel.org |
3961 | L: linux-fbdev@vger.kernel.org (moderated for non-subscribers) | 3950 | L: linux-fbdev@vger.kernel.org |
3962 | S: Maintained | 3951 | S: Maintained |
3963 | F: drivers/video/omap2/dss/ | 3952 | F: drivers/video/omap2/ |
3964 | F: drivers/video/omap2/vrfb.c | ||
3965 | F: drivers/video/omap2/vram.c | ||
3966 | F: Documentation/arm/OMAP/DSS | 3953 | F: Documentation/arm/OMAP/DSS |
3967 | 3954 | ||
3968 | OMAP FRAMEBUFFER SUPPORT (FOR DSS2) | ||
3969 | M: Tomi Valkeinen <tomi.valkeinen@nokia.com> | ||
3970 | L: linux-omap@vger.kernel.org | ||
3971 | L: linux-fbdev@vger.kernel.org (moderated for non-subscribers) | ||
3972 | S: Maintained | ||
3973 | F: drivers/video/omap2/omapfb/ | ||
3974 | |||
3975 | OMAP MMC SUPPORT | 3955 | OMAP MMC SUPPORT |
3976 | M: Jarkko Lavinen <jarkko.lavinen@nokia.com> | 3956 | M: Jarkko Lavinen <jarkko.lavinen@nokia.com> |
3977 | L: linux-omap@vger.kernel.org | 3957 | L: linux-omap@vger.kernel.org |
@@ -1,7 +1,7 @@ | |||
1 | VERSION = 2 | 1 | VERSION = 2 |
2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
3 | SUBLEVEL = 33 | 3 | SUBLEVEL = 33 |
4 | EXTRAVERSION = -rc2 | 4 | EXTRAVERSION = -rc5 |
5 | NAME = Man-Eating Seals of Antiquity | 5 | NAME = Man-Eating Seals of Antiquity |
6 | 6 | ||
7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
@@ -18,10 +18,9 @@ MAKEFLAGS += -rR --no-print-directory | |||
18 | 18 | ||
19 | # Avoid funny character set dependencies | 19 | # Avoid funny character set dependencies |
20 | unexport LC_ALL | 20 | unexport LC_ALL |
21 | LC_CTYPE=C | ||
22 | LC_COLLATE=C | 21 | LC_COLLATE=C |
23 | LC_NUMERIC=C | 22 | LC_NUMERIC=C |
24 | export LC_CTYPE LC_COLLATE LC_NUMERIC | 23 | export LC_COLLATE LC_NUMERIC |
25 | 24 | ||
26 | # We are using a recursive build, so we need to do a little thinking | 25 | # We are using a recursive build, so we need to do a little thinking |
27 | # to get the ordering right. | 26 | # to get the ordering right. |
diff --git a/arch/alpha/include/asm/topology.h b/arch/alpha/include/asm/topology.h index 36b3a30ba0e..9251e13e144 100644 --- a/arch/alpha/include/asm/topology.h +++ b/arch/alpha/include/asm/topology.h | |||
@@ -28,6 +28,9 @@ static const struct cpumask *cpumask_of_node(int node) | |||
28 | { | 28 | { |
29 | int cpu; | 29 | int cpu; |
30 | 30 | ||
31 | if (node == -1) | ||
32 | return cpu_all_mask; | ||
33 | |||
31 | cpumask_clear(&node_to_cpumask_map[node]); | 34 | cpumask_clear(&node_to_cpumask_map[node]); |
32 | 35 | ||
33 | for_each_online_cpu(cpu) { | 36 | for_each_online_cpu(cpu) { |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 233a222752c..4c33ca82f9b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -18,6 +18,8 @@ config ARM | |||
18 | select HAVE_KRETPROBES if (HAVE_KPROBES) | 18 | select HAVE_KRETPROBES if (HAVE_KPROBES) |
19 | select HAVE_FUNCTION_TRACER if (!XIP_KERNEL) | 19 | select HAVE_FUNCTION_TRACER if (!XIP_KERNEL) |
20 | select HAVE_GENERIC_DMA_COHERENT | 20 | select HAVE_GENERIC_DMA_COHERENT |
21 | select HAVE_KERNEL_GZIP | ||
22 | select HAVE_KERNEL_LZO | ||
21 | help | 23 | help |
22 | The ARM series is a line of low-power-consumption RISC chip designs | 24 | The ARM series is a line of low-power-consumption RISC chip designs |
23 | licensed by ARM Ltd and targeted at embedded applications and | 25 | licensed by ARM Ltd and targeted at embedded applications and |
@@ -688,6 +690,7 @@ config ARCH_DAVINCI | |||
688 | select HAVE_IDE | 690 | select HAVE_IDE |
689 | select COMMON_CLKDEV | 691 | select COMMON_CLKDEV |
690 | select GENERIC_ALLOCATOR | 692 | select GENERIC_ALLOCATOR |
693 | select ARCH_HAS_HOLES_MEMORYMODEL | ||
691 | help | 694 | help |
692 | Support for TI's DaVinci platform. | 695 | Support for TI's DaVinci platform. |
693 | 696 | ||
@@ -726,14 +729,26 @@ config ARCH_U8500 | |||
726 | 729 | ||
727 | endchoice | 730 | endchoice |
728 | 731 | ||
732 | source "arch/arm/mach-aaec2000/Kconfig" | ||
733 | |||
734 | source "arch/arm/mach-at91/Kconfig" | ||
735 | |||
736 | source "arch/arm/mach-bcmring/Kconfig" | ||
737 | |||
729 | source "arch/arm/mach-clps711x/Kconfig" | 738 | source "arch/arm/mach-clps711x/Kconfig" |
730 | 739 | ||
740 | source "arch/arm/mach-davinci/Kconfig" | ||
741 | |||
742 | source "arch/arm/mach-dove/Kconfig" | ||
743 | |||
731 | source "arch/arm/mach-ep93xx/Kconfig" | 744 | source "arch/arm/mach-ep93xx/Kconfig" |
732 | 745 | ||
733 | source "arch/arm/mach-footbridge/Kconfig" | 746 | source "arch/arm/mach-footbridge/Kconfig" |
734 | 747 | ||
735 | source "arch/arm/mach-gemini/Kconfig" | 748 | source "arch/arm/mach-gemini/Kconfig" |
736 | 749 | ||
750 | source "arch/arm/mach-h720x/Kconfig" | ||
751 | |||
737 | source "arch/arm/mach-integrator/Kconfig" | 752 | source "arch/arm/mach-integrator/Kconfig" |
738 | 753 | ||
739 | source "arch/arm/mach-iop32x/Kconfig" | 754 | source "arch/arm/mach-iop32x/Kconfig" |
@@ -748,16 +763,26 @@ source "arch/arm/mach-ixp2000/Kconfig" | |||
748 | 763 | ||
749 | source "arch/arm/mach-ixp23xx/Kconfig" | 764 | source "arch/arm/mach-ixp23xx/Kconfig" |
750 | 765 | ||
766 | source "arch/arm/mach-kirkwood/Kconfig" | ||
767 | |||
768 | source "arch/arm/mach-ks8695/Kconfig" | ||
769 | |||
770 | source "arch/arm/mach-lh7a40x/Kconfig" | ||
771 | |||
751 | source "arch/arm/mach-loki/Kconfig" | 772 | source "arch/arm/mach-loki/Kconfig" |
752 | 773 | ||
774 | source "arch/arm/mach-msm/Kconfig" | ||
775 | |||
753 | source "arch/arm/mach-mv78xx0/Kconfig" | 776 | source "arch/arm/mach-mv78xx0/Kconfig" |
754 | 777 | ||
755 | source "arch/arm/mach-pxa/Kconfig" | 778 | source "arch/arm/plat-mxc/Kconfig" |
756 | source "arch/arm/plat-pxa/Kconfig" | ||
757 | 779 | ||
758 | source "arch/arm/mach-mmp/Kconfig" | 780 | source "arch/arm/mach-netx/Kconfig" |
759 | 781 | ||
760 | source "arch/arm/mach-sa1100/Kconfig" | 782 | source "arch/arm/mach-nomadik/Kconfig" |
783 | source "arch/arm/plat-nomadik/Kconfig" | ||
784 | |||
785 | source "arch/arm/mach-ns9xxx/Kconfig" | ||
761 | 786 | ||
762 | source "arch/arm/plat-omap/Kconfig" | 787 | source "arch/arm/plat-omap/Kconfig" |
763 | 788 | ||
@@ -767,9 +792,14 @@ source "arch/arm/mach-omap2/Kconfig" | |||
767 | 792 | ||
768 | source "arch/arm/mach-orion5x/Kconfig" | 793 | source "arch/arm/mach-orion5x/Kconfig" |
769 | 794 | ||
770 | source "arch/arm/mach-kirkwood/Kconfig" | 795 | source "arch/arm/mach-pxa/Kconfig" |
796 | source "arch/arm/plat-pxa/Kconfig" | ||
771 | 797 | ||
772 | source "arch/arm/mach-dove/Kconfig" | 798 | source "arch/arm/mach-mmp/Kconfig" |
799 | |||
800 | source "arch/arm/mach-realview/Kconfig" | ||
801 | |||
802 | source "arch/arm/mach-sa1100/Kconfig" | ||
773 | 803 | ||
774 | source "arch/arm/plat-samsung/Kconfig" | 804 | source "arch/arm/plat-samsung/Kconfig" |
775 | source "arch/arm/plat-s3c24xx/Kconfig" | 805 | source "arch/arm/plat-s3c24xx/Kconfig" |
@@ -797,41 +827,14 @@ if ARCH_S5PC1XX | |||
797 | source "arch/arm/mach-s5pc100/Kconfig" | 827 | source "arch/arm/mach-s5pc100/Kconfig" |
798 | endif | 828 | endif |
799 | 829 | ||
800 | source "arch/arm/mach-lh7a40x/Kconfig" | 830 | source "arch/arm/mach-u300/Kconfig" |
801 | 831 | ||
802 | source "arch/arm/mach-h720x/Kconfig" | 832 | source "arch/arm/mach-ux500/Kconfig" |
803 | 833 | ||
804 | source "arch/arm/mach-versatile/Kconfig" | 834 | source "arch/arm/mach-versatile/Kconfig" |
805 | 835 | ||
806 | source "arch/arm/mach-aaec2000/Kconfig" | ||
807 | |||
808 | source "arch/arm/mach-realview/Kconfig" | ||
809 | |||
810 | source "arch/arm/mach-at91/Kconfig" | ||
811 | |||
812 | source "arch/arm/plat-mxc/Kconfig" | ||
813 | |||
814 | source "arch/arm/mach-nomadik/Kconfig" | ||
815 | source "arch/arm/plat-nomadik/Kconfig" | ||
816 | |||
817 | source "arch/arm/mach-netx/Kconfig" | ||
818 | |||
819 | source "arch/arm/mach-ns9xxx/Kconfig" | ||
820 | |||
821 | source "arch/arm/mach-davinci/Kconfig" | ||
822 | |||
823 | source "arch/arm/mach-ks8695/Kconfig" | ||
824 | |||
825 | source "arch/arm/mach-msm/Kconfig" | ||
826 | |||
827 | source "arch/arm/mach-u300/Kconfig" | ||
828 | |||
829 | source "arch/arm/mach-w90x900/Kconfig" | 836 | source "arch/arm/mach-w90x900/Kconfig" |
830 | 837 | ||
831 | source "arch/arm/mach-bcmring/Kconfig" | ||
832 | |||
833 | source "arch/arm/mach-ux500/Kconfig" | ||
834 | |||
835 | # Definitions to make life easier | 838 | # Definitions to make life easier |
836 | config ARCH_ACORN | 839 | config ARCH_ACORN |
837 | bool | 840 | bool |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index e9da08483b3..9e758257274 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -146,6 +146,7 @@ machine-$(CONFIG_ARCH_MX1) := mx1 | |||
146 | machine-$(CONFIG_ARCH_MX2) := mx2 | 146 | machine-$(CONFIG_ARCH_MX2) := mx2 |
147 | machine-$(CONFIG_ARCH_MX25) := mx25 | 147 | machine-$(CONFIG_ARCH_MX25) := mx25 |
148 | machine-$(CONFIG_ARCH_MX3) := mx3 | 148 | machine-$(CONFIG_ARCH_MX3) := mx3 |
149 | machine-$(CONFIG_ARCH_MXC91231) := mxc91231 | ||
149 | machine-$(CONFIG_ARCH_NETX) := netx | 150 | machine-$(CONFIG_ARCH_NETX) := netx |
150 | machine-$(CONFIG_ARCH_NOMADIK) := nomadik | 151 | machine-$(CONFIG_ARCH_NOMADIK) := nomadik |
151 | machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx | 152 | machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx |
@@ -171,12 +172,12 @@ machine-$(CONFIG_ARCH_U8500) := ux500 | |||
171 | machine-$(CONFIG_ARCH_VERSATILE) := versatile | 172 | machine-$(CONFIG_ARCH_VERSATILE) := versatile |
172 | machine-$(CONFIG_ARCH_W90X900) := w90x900 | 173 | machine-$(CONFIG_ARCH_W90X900) := w90x900 |
173 | machine-$(CONFIG_FOOTBRIDGE) := footbridge | 174 | machine-$(CONFIG_FOOTBRIDGE) := footbridge |
174 | machine-$(CONFIG_ARCH_MXC91231) := mxc91231 | ||
175 | 175 | ||
176 | # Platform directory name. This list is sorted alphanumerically | 176 | # Platform directory name. This list is sorted alphanumerically |
177 | # by CONFIG_* macro name. | 177 | # by CONFIG_* macro name. |
178 | plat-$(CONFIG_ARCH_MXC) := mxc | 178 | plat-$(CONFIG_ARCH_MXC) := mxc |
179 | plat-$(CONFIG_ARCH_OMAP) := omap | 179 | plat-$(CONFIG_ARCH_OMAP) := omap |
180 | plat-$(CONFIG_ARCH_STMP3XXX) := stmp3xxx | ||
180 | plat-$(CONFIG_PLAT_IOP) := iop | 181 | plat-$(CONFIG_PLAT_IOP) := iop |
181 | plat-$(CONFIG_PLAT_NOMADIK) := nomadik | 182 | plat-$(CONFIG_PLAT_NOMADIK) := nomadik |
182 | plat-$(CONFIG_PLAT_ORION) := orion | 183 | plat-$(CONFIG_PLAT_ORION) := orion |
@@ -184,7 +185,6 @@ plat-$(CONFIG_PLAT_PXA) := pxa | |||
184 | plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx s3c samsung | 185 | plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx s3c samsung |
185 | plat-$(CONFIG_PLAT_S3C64XX) := s3c64xx s3c samsung | 186 | plat-$(CONFIG_PLAT_S3C64XX) := s3c64xx s3c samsung |
186 | plat-$(CONFIG_PLAT_S5PC1XX) := s5pc1xx s3c samsung | 187 | plat-$(CONFIG_PLAT_S5PC1XX) := s5pc1xx s3c samsung |
187 | plat-$(CONFIG_ARCH_STMP3XXX) := stmp3xxx | ||
188 | 188 | ||
189 | ifeq ($(CONFIG_ARCH_EBSA110),y) | 189 | ifeq ($(CONFIG_ARCH_EBSA110),y) |
190 | # This is what happens if you forget the IOCS16 line. | 190 | # This is what happens if you forget the IOCS16 line. |
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index ce39dc54008..2d4d88ba73b 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile | |||
@@ -63,8 +63,12 @@ endif | |||
63 | 63 | ||
64 | SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/BSS_START/$(ZBSSADDR)/ | 64 | SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/BSS_START/$(ZBSSADDR)/ |
65 | 65 | ||
66 | targets := vmlinux vmlinux.lds piggy.gz piggy.o font.o font.c \ | 66 | suffix_$(CONFIG_KERNEL_GZIP) = gzip |
67 | head.o misc.o $(OBJS) | 67 | suffix_$(CONFIG_KERNEL_LZO) = lzo |
68 | |||
69 | targets := vmlinux vmlinux.lds \ | ||
70 | piggy.$(suffix_y) piggy.$(suffix_y).o \ | ||
71 | font.o font.c head.o misc.o $(OBJS) | ||
68 | 72 | ||
69 | ifeq ($(CONFIG_FUNCTION_TRACER),y) | 73 | ifeq ($(CONFIG_FUNCTION_TRACER),y) |
70 | ORIG_CFLAGS := $(KBUILD_CFLAGS) | 74 | ORIG_CFLAGS := $(KBUILD_CFLAGS) |
@@ -87,22 +91,34 @@ endif | |||
87 | ifneq ($(PARAMS_PHYS),) | 91 | ifneq ($(PARAMS_PHYS),) |
88 | LDFLAGS_vmlinux += --defsym params_phys=$(PARAMS_PHYS) | 92 | LDFLAGS_vmlinux += --defsym params_phys=$(PARAMS_PHYS) |
89 | endif | 93 | endif |
90 | LDFLAGS_vmlinux += -p --no-undefined -X \ | 94 | # ? |
91 | $(shell $(CC) $(KBUILD_CFLAGS) --print-libgcc-file-name) -T | 95 | LDFLAGS_vmlinux += -p |
96 | # Report unresolved symbol references | ||
97 | LDFLAGS_vmlinux += --no-undefined | ||
98 | # Delete all temporary local symbols | ||
99 | LDFLAGS_vmlinux += -X | ||
100 | # Next argument is a linker script | ||
101 | LDFLAGS_vmlinux += -T | ||
102 | |||
103 | # For __aeabi_uidivmod | ||
104 | lib1funcs = $(obj)/lib1funcs.o | ||
105 | |||
106 | $(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S FORCE | ||
107 | $(call cmd,shipped) | ||
92 | 108 | ||
93 | # Don't allow any static data in misc.o, which | 109 | # Don't allow any static data in misc.o, which |
94 | # would otherwise mess up our GOT table | 110 | # would otherwise mess up our GOT table |
95 | CFLAGS_misc.o := -Dstatic= | 111 | CFLAGS_misc.o := -Dstatic= |
96 | 112 | ||
97 | $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.o \ | 113 | $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \ |
98 | $(addprefix $(obj)/, $(OBJS)) FORCE | 114 | $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) FORCE |
99 | $(call if_changed,ld) | 115 | $(call if_changed,ld) |
100 | @: | 116 | @: |
101 | 117 | ||
102 | $(obj)/piggy.gz: $(obj)/../Image FORCE | 118 | $(obj)/piggy.$(suffix_y): $(obj)/../Image FORCE |
103 | $(call if_changed,gzip) | 119 | $(call if_changed,$(suffix_y)) |
104 | 120 | ||
105 | $(obj)/piggy.o: $(obj)/piggy.gz FORCE | 121 | $(obj)/piggy.$(suffix_y).o: $(obj)/piggy.$(suffix_y) FORCE |
106 | 122 | ||
107 | CFLAGS_font.o := -Dstatic= | 123 | CFLAGS_font.o := -Dstatic= |
108 | 124 | ||
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index d356af7cef8..4fddc509e78 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
@@ -27,6 +27,14 @@ | |||
27 | .macro writeb, ch, rb | 27 | .macro writeb, ch, rb |
28 | mcr p14, 0, \ch, c0, c5, 0 | 28 | mcr p14, 0, \ch, c0, c5, 0 |
29 | .endm | 29 | .endm |
30 | #elif defined(CONFIG_CPU_V7) | ||
31 | .macro loadsp, rb | ||
32 | .endm | ||
33 | .macro writeb, ch, rb | ||
34 | wait: mrc p14, 0, pc, c0, c1, 0 | ||
35 | bcs wait | ||
36 | mcr p14, 0, \ch, c0, c5, 0 | ||
37 | .endm | ||
30 | #elif defined(CONFIG_CPU_XSCALE) | 38 | #elif defined(CONFIG_CPU_XSCALE) |
31 | .macro loadsp, rb | 39 | .macro loadsp, rb |
32 | .endm | 40 | .endm |
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index 17153b54613..56a0d116d27 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c | |||
@@ -18,10 +18,15 @@ | |||
18 | 18 | ||
19 | unsigned int __machine_arch_type; | 19 | unsigned int __machine_arch_type; |
20 | 20 | ||
21 | #define _LINUX_STRING_H_ | ||
22 | |||
21 | #include <linux/compiler.h> /* for inline */ | 23 | #include <linux/compiler.h> /* for inline */ |
22 | #include <linux/types.h> /* for size_t */ | 24 | #include <linux/types.h> /* for size_t */ |
23 | #include <linux/stddef.h> /* for NULL */ | 25 | #include <linux/stddef.h> /* for NULL */ |
24 | #include <asm/string.h> | 26 | #include <asm/string.h> |
27 | #include <linux/linkage.h> | ||
28 | |||
29 | #include <asm/unaligned.h> | ||
25 | 30 | ||
26 | #ifdef STANDALONE_DEBUG | 31 | #ifdef STANDALONE_DEBUG |
27 | #define putstr printf | 32 | #define putstr printf |
@@ -48,6 +53,18 @@ static void icedcc_putc(int ch) | |||
48 | 53 | ||
49 | asm("mcr p14, 0, %0, c0, c5, 0" : : "r" (ch)); | 54 | asm("mcr p14, 0, %0, c0, c5, 0" : : "r" (ch)); |
50 | } | 55 | } |
56 | |||
57 | #elif defined(CONFIG_CPU_V7) | ||
58 | |||
59 | static void icedcc_putc(int ch) | ||
60 | { | ||
61 | asm( | ||
62 | "wait: mrc p14, 0, pc, c0, c1, 0 \n\ | ||
63 | bcs wait \n\ | ||
64 | mcr p14, 0, %0, c0, c5, 0 " | ||
65 | : : "r" (ch)); | ||
66 | } | ||
67 | |||
51 | #elif defined(CONFIG_CPU_XSCALE) | 68 | #elif defined(CONFIG_CPU_XSCALE) |
52 | 69 | ||
53 | static void icedcc_putc(int ch) | 70 | static void icedcc_putc(int ch) |
@@ -83,7 +100,6 @@ static void icedcc_putc(int ch) | |||
83 | #endif | 100 | #endif |
84 | 101 | ||
85 | #define putc(ch) icedcc_putc(ch) | 102 | #define putc(ch) icedcc_putc(ch) |
86 | #define flush() do { } while (0) | ||
87 | #endif | 103 | #endif |
88 | 104 | ||
89 | static void putstr(const char *ptr) | 105 | static void putstr(const char *ptr) |
@@ -188,34 +204,8 @@ static inline __ptr_t memcpy(__ptr_t __dest, __const __ptr_t __src, | |||
188 | /* | 204 | /* |
189 | * gzip delarations | 205 | * gzip delarations |
190 | */ | 206 | */ |
191 | #define OF(args) args | ||
192 | #define STATIC static | 207 | #define STATIC static |
193 | 208 | ||
194 | typedef unsigned char uch; | ||
195 | typedef unsigned short ush; | ||
196 | typedef unsigned long ulg; | ||
197 | |||
198 | #define WSIZE 0x8000 /* Window size must be at least 32k, */ | ||
199 | /* and a power of two */ | ||
200 | |||
201 | static uch *inbuf; /* input buffer */ | ||
202 | static uch window[WSIZE]; /* Sliding window buffer */ | ||
203 | |||
204 | static unsigned insize; /* valid bytes in inbuf */ | ||
205 | static unsigned inptr; /* index of next byte to be processed in inbuf */ | ||
206 | static unsigned outcnt; /* bytes in output buffer */ | ||
207 | |||
208 | /* gzip flag byte */ | ||
209 | #define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */ | ||
210 | #define CONTINUATION 0x02 /* bit 1 set: continuation of multi-part gzip file */ | ||
211 | #define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */ | ||
212 | #define ORIG_NAME 0x08 /* bit 3 set: original file name present */ | ||
213 | #define COMMENT 0x10 /* bit 4 set: file comment present */ | ||
214 | #define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */ | ||
215 | #define RESERVED 0xC0 /* bit 6,7: reserved */ | ||
216 | |||
217 | #define get_byte() (inptr < insize ? inbuf[inptr++] : fill_inbuf()) | ||
218 | |||
219 | /* Diagnostic functions */ | 209 | /* Diagnostic functions */ |
220 | #ifdef DEBUG | 210 | #ifdef DEBUG |
221 | # define Assert(cond,msg) {if(!(cond)) error(msg);} | 211 | # define Assert(cond,msg) {if(!(cond)) error(msg);} |
@@ -233,24 +223,20 @@ static unsigned outcnt; /* bytes in output buffer */ | |||
233 | # define Tracecv(c,x) | 223 | # define Tracecv(c,x) |
234 | #endif | 224 | #endif |
235 | 225 | ||
236 | static int fill_inbuf(void); | ||
237 | static void flush_window(void); | ||
238 | static void error(char *m); | 226 | static void error(char *m); |
239 | 227 | ||
240 | extern char input_data[]; | 228 | extern char input_data[]; |
241 | extern char input_data_end[]; | 229 | extern char input_data_end[]; |
242 | 230 | ||
243 | static uch *output_data; | 231 | static unsigned char *output_data; |
244 | static ulg output_ptr; | 232 | static unsigned long output_ptr; |
245 | static ulg bytes_out; | ||
246 | 233 | ||
247 | static void error(char *m); | 234 | static void error(char *m); |
248 | 235 | ||
249 | static void putstr(const char *); | 236 | static void putstr(const char *); |
250 | 237 | ||
251 | extern int end; | 238 | static unsigned long free_mem_ptr; |
252 | static ulg free_mem_ptr; | 239 | static unsigned long free_mem_end_ptr; |
253 | static ulg free_mem_end_ptr; | ||
254 | 240 | ||
255 | #ifdef STANDALONE_DEBUG | 241 | #ifdef STANDALONE_DEBUG |
256 | #define NO_INFLATE_MALLOC | 242 | #define NO_INFLATE_MALLOC |
@@ -258,46 +244,13 @@ static ulg free_mem_end_ptr; | |||
258 | 244 | ||
259 | #define ARCH_HAS_DECOMP_WDOG | 245 | #define ARCH_HAS_DECOMP_WDOG |
260 | 246 | ||
261 | #include "../../../../lib/inflate.c" | 247 | #ifdef CONFIG_KERNEL_GZIP |
262 | 248 | #include "../../../../lib/decompress_inflate.c" | |
263 | /* =========================================================================== | 249 | #endif |
264 | * Fill the input buffer. This is called only when the buffer is empty | ||
265 | * and at least one byte is really needed. | ||
266 | */ | ||
267 | int fill_inbuf(void) | ||
268 | { | ||
269 | if (insize != 0) | ||
270 | error("ran out of input data"); | ||
271 | |||
272 | inbuf = input_data; | ||
273 | insize = &input_data_end[0] - &input_data[0]; | ||
274 | |||
275 | inptr = 1; | ||
276 | return inbuf[0]; | ||
277 | } | ||
278 | 250 | ||
279 | /* =========================================================================== | 251 | #ifdef CONFIG_KERNEL_LZO |
280 | * Write the output window window[0..outcnt-1] and update crc and bytes_out. | 252 | #include "../../../../lib/decompress_unlzo.c" |
281 | * (Used for the decompressed data only.) | 253 | #endif |
282 | */ | ||
283 | void flush_window(void) | ||
284 | { | ||
285 | ulg c = crc; | ||
286 | unsigned n; | ||
287 | uch *in, *out, ch; | ||
288 | |||
289 | in = window; | ||
290 | out = &output_data[output_ptr]; | ||
291 | for (n = 0; n < outcnt; n++) { | ||
292 | ch = *out++ = *in++; | ||
293 | c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8); | ||
294 | } | ||
295 | crc = c; | ||
296 | bytes_out += (ulg)outcnt; | ||
297 | output_ptr += (ulg)outcnt; | ||
298 | outcnt = 0; | ||
299 | putstr("."); | ||
300 | } | ||
301 | 254 | ||
302 | #ifndef arch_error | 255 | #ifndef arch_error |
303 | #define arch_error(x) | 256 | #define arch_error(x) |
@@ -314,22 +267,33 @@ static void error(char *x) | |||
314 | while(1); /* Halt */ | 267 | while(1); /* Halt */ |
315 | } | 268 | } |
316 | 269 | ||
270 | asmlinkage void __div0(void) | ||
271 | { | ||
272 | error("Attempting division by 0!"); | ||
273 | } | ||
274 | |||
317 | #ifndef STANDALONE_DEBUG | 275 | #ifndef STANDALONE_DEBUG |
318 | 276 | ||
319 | ulg | 277 | unsigned long |
320 | decompress_kernel(ulg output_start, ulg free_mem_ptr_p, ulg free_mem_ptr_end_p, | 278 | decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p, |
321 | int arch_id) | 279 | unsigned long free_mem_ptr_end_p, |
280 | int arch_id) | ||
322 | { | 281 | { |
323 | output_data = (uch *)output_start; /* Points to kernel start */ | 282 | unsigned char *tmp; |
283 | |||
284 | output_data = (unsigned char *)output_start; | ||
324 | free_mem_ptr = free_mem_ptr_p; | 285 | free_mem_ptr = free_mem_ptr_p; |
325 | free_mem_end_ptr = free_mem_ptr_end_p; | 286 | free_mem_end_ptr = free_mem_ptr_end_p; |
326 | __machine_arch_type = arch_id; | 287 | __machine_arch_type = arch_id; |
327 | 288 | ||
328 | arch_decomp_setup(); | 289 | arch_decomp_setup(); |
329 | 290 | ||
330 | makecrc(); | 291 | tmp = (unsigned char *) (((unsigned long)input_data_end) - 4); |
292 | output_ptr = get_unaligned_le32(tmp); | ||
293 | |||
331 | putstr("Uncompressing Linux..."); | 294 | putstr("Uncompressing Linux..."); |
332 | gunzip(); | 295 | decompress(input_data, input_data_end - input_data, |
296 | NULL, NULL, output_data, NULL, error); | ||
333 | putstr(" done, booting the kernel.\n"); | 297 | putstr(" done, booting the kernel.\n"); |
334 | return output_ptr; | 298 | return output_ptr; |
335 | } | 299 | } |
@@ -341,11 +305,10 @@ int main() | |||
341 | { | 305 | { |
342 | output_data = output_buffer; | 306 | output_data = output_buffer; |
343 | 307 | ||
344 | makecrc(); | ||
345 | putstr("Uncompressing Linux..."); | 308 | putstr("Uncompressing Linux..."); |
346 | gunzip(); | 309 | decompress(input_data, input_data_end - input_data, |
310 | NULL, NULL, output_data, NULL, error); | ||
347 | putstr("done.\n"); | 311 | putstr("done.\n"); |
348 | return 0; | 312 | return 0; |
349 | } | 313 | } |
350 | #endif | 314 | #endif |
351 | |||
diff --git a/arch/arm/boot/compressed/piggy.gzip.S b/arch/arm/boot/compressed/piggy.gzip.S new file mode 100644 index 00000000000..a68adf91a16 --- /dev/null +++ b/arch/arm/boot/compressed/piggy.gzip.S | |||
@@ -0,0 +1,6 @@ | |||
1 | .section .piggydata,#alloc | ||
2 | .globl input_data | ||
3 | input_data: | ||
4 | .incbin "arch/arm/boot/compressed/piggy.gzip" | ||
5 | .globl input_data_end | ||
6 | input_data_end: | ||
diff --git a/arch/arm/boot/compressed/piggy.S b/arch/arm/boot/compressed/piggy.lzo.S index 54c951800eb..a425ad95959 100644 --- a/arch/arm/boot/compressed/piggy.S +++ b/arch/arm/boot/compressed/piggy.lzo.S | |||
@@ -1,6 +1,6 @@ | |||
1 | .section .piggydata,#alloc | 1 | .section .piggydata,#alloc |
2 | .globl input_data | 2 | .globl input_data |
3 | input_data: | 3 | input_data: |
4 | .incbin "arch/arm/boot/compressed/piggy.gz" | 4 | .incbin "arch/arm/boot/compressed/piggy.lzo" |
5 | .globl input_data_end | 5 | .globl input_data_end |
6 | input_data_end: | 6 | input_data_end: |
diff --git a/arch/arm/configs/u300_defconfig b/arch/arm/configs/u300_defconfig index 610ac3c47b0..9155196e623 100644 --- a/arch/arm/configs/u300_defconfig +++ b/arch/arm/configs/u300_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Sat Oct 17 23:32:24 2009 | 4 | # Wed Jan 6 00:01:36 2010 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | 7 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y |
@@ -46,6 +46,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
46 | # | 46 | # |
47 | CONFIG_TREE_RCU=y | 47 | CONFIG_TREE_RCU=y |
48 | # CONFIG_TREE_PREEMPT_RCU is not set | 48 | # CONFIG_TREE_PREEMPT_RCU is not set |
49 | # CONFIG_TINY_RCU is not set | ||
49 | # CONFIG_RCU_TRACE is not set | 50 | # CONFIG_RCU_TRACE is not set |
50 | CONFIG_RCU_FANOUT=32 | 51 | CONFIG_RCU_FANOUT=32 |
51 | # CONFIG_RCU_FANOUT_EXACT is not set | 52 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -119,14 +120,41 @@ CONFIG_BLOCK=y | |||
119 | # IO Schedulers | 120 | # IO Schedulers |
120 | # | 121 | # |
121 | CONFIG_IOSCHED_NOOP=y | 122 | CONFIG_IOSCHED_NOOP=y |
122 | # CONFIG_IOSCHED_AS is not set | ||
123 | CONFIG_IOSCHED_DEADLINE=y | 123 | CONFIG_IOSCHED_DEADLINE=y |
124 | # CONFIG_IOSCHED_CFQ is not set | 124 | # CONFIG_IOSCHED_CFQ is not set |
125 | # CONFIG_DEFAULT_AS is not set | ||
126 | CONFIG_DEFAULT_DEADLINE=y | 125 | CONFIG_DEFAULT_DEADLINE=y |
127 | # CONFIG_DEFAULT_CFQ is not set | 126 | # CONFIG_DEFAULT_CFQ is not set |
128 | # CONFIG_DEFAULT_NOOP is not set | 127 | # CONFIG_DEFAULT_NOOP is not set |
129 | CONFIG_DEFAULT_IOSCHED="deadline" | 128 | CONFIG_DEFAULT_IOSCHED="deadline" |
129 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
130 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
131 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
132 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
133 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
134 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
135 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
136 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
137 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
138 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
139 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
140 | # CONFIG_INLINE_READ_LOCK is not set | ||
141 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
142 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
143 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
144 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
145 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
146 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
147 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
148 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
149 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
150 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
151 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
152 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
153 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
154 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
155 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
156 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
157 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
130 | # CONFIG_FREEZER is not set | 158 | # CONFIG_FREEZER is not set |
131 | 159 | ||
132 | # | 160 | # |
@@ -155,6 +183,7 @@ CONFIG_MMU=y | |||
155 | # CONFIG_ARCH_IXP2000 is not set | 183 | # CONFIG_ARCH_IXP2000 is not set |
156 | # CONFIG_ARCH_IXP4XX is not set | 184 | # CONFIG_ARCH_IXP4XX is not set |
157 | # CONFIG_ARCH_L7200 is not set | 185 | # CONFIG_ARCH_L7200 is not set |
186 | # CONFIG_ARCH_DOVE is not set | ||
158 | # CONFIG_ARCH_KIRKWOOD is not set | 187 | # CONFIG_ARCH_KIRKWOOD is not set |
159 | # CONFIG_ARCH_LOKI is not set | 188 | # CONFIG_ARCH_LOKI is not set |
160 | # CONFIG_ARCH_MV78XX0 is not set | 189 | # CONFIG_ARCH_MV78XX0 is not set |
@@ -177,6 +206,7 @@ CONFIG_ARCH_U300=y | |||
177 | # CONFIG_ARCH_DAVINCI is not set | 206 | # CONFIG_ARCH_DAVINCI is not set |
178 | # CONFIG_ARCH_OMAP is not set | 207 | # CONFIG_ARCH_OMAP is not set |
179 | # CONFIG_ARCH_BCMRING is not set | 208 | # CONFIG_ARCH_BCMRING is not set |
209 | # CONFIG_ARCH_U8500 is not set | ||
180 | 210 | ||
181 | # | 211 | # |
182 | # ST-Ericsson AB U300/U330/U335/U365 Platform | 212 | # ST-Ericsson AB U300/U330/U335/U365 Platform |
@@ -265,12 +295,10 @@ CONFIG_FLATMEM_MANUAL=y | |||
265 | CONFIG_FLATMEM=y | 295 | CONFIG_FLATMEM=y |
266 | CONFIG_FLAT_NODE_MEM_MAP=y | 296 | CONFIG_FLAT_NODE_MEM_MAP=y |
267 | CONFIG_PAGEFLAGS_EXTENDED=y | 297 | CONFIG_PAGEFLAGS_EXTENDED=y |
268 | CONFIG_SPLIT_PTLOCK_CPUS=4096 | 298 | CONFIG_SPLIT_PTLOCK_CPUS=999999 |
269 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 299 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
270 | CONFIG_ZONE_DMA_FLAG=0 | 300 | CONFIG_ZONE_DMA_FLAG=0 |
271 | CONFIG_VIRT_TO_BUS=y | 301 | CONFIG_VIRT_TO_BUS=y |
272 | CONFIG_HAVE_MLOCK=y | ||
273 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
274 | # CONFIG_KSM is not set | 302 | # CONFIG_KSM is not set |
275 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 303 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
276 | CONFIG_ALIGNMENT_TRAP=y | 304 | CONFIG_ALIGNMENT_TRAP=y |
@@ -499,14 +527,21 @@ CONFIG_MTD_NAND_IDS=y | |||
499 | CONFIG_BLK_DEV=y | 527 | CONFIG_BLK_DEV=y |
500 | # CONFIG_BLK_DEV_COW_COMMON is not set | 528 | # CONFIG_BLK_DEV_COW_COMMON is not set |
501 | # CONFIG_BLK_DEV_LOOP is not set | 529 | # CONFIG_BLK_DEV_LOOP is not set |
530 | |||
531 | # | ||
532 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
533 | # | ||
502 | # CONFIG_BLK_DEV_NBD is not set | 534 | # CONFIG_BLK_DEV_NBD is not set |
503 | # CONFIG_BLK_DEV_RAM is not set | 535 | # CONFIG_BLK_DEV_RAM is not set |
504 | # CONFIG_CDROM_PKTCDVD is not set | 536 | # CONFIG_CDROM_PKTCDVD is not set |
505 | # CONFIG_ATA_OVER_ETH is not set | 537 | # CONFIG_ATA_OVER_ETH is not set |
506 | CONFIG_MISC_DEVICES=y | 538 | CONFIG_MISC_DEVICES=y |
539 | # CONFIG_AD525X_DPOT is not set | ||
507 | # CONFIG_ICS932S401 is not set | 540 | # CONFIG_ICS932S401 is not set |
508 | # CONFIG_ENCLOSURE_SERVICES is not set | 541 | # CONFIG_ENCLOSURE_SERVICES is not set |
509 | # CONFIG_ISL29003 is not set | 542 | # CONFIG_ISL29003 is not set |
543 | # CONFIG_DS1682 is not set | ||
544 | # CONFIG_TI_DAC7512 is not set | ||
510 | # CONFIG_C2PORT is not set | 545 | # CONFIG_C2PORT is not set |
511 | 546 | ||
512 | # | 547 | # |
@@ -517,6 +552,7 @@ CONFIG_MISC_DEVICES=y | |||
517 | # CONFIG_EEPROM_LEGACY is not set | 552 | # CONFIG_EEPROM_LEGACY is not set |
518 | # CONFIG_EEPROM_MAX6875 is not set | 553 | # CONFIG_EEPROM_MAX6875 is not set |
519 | # CONFIG_EEPROM_93CX6 is not set | 554 | # CONFIG_EEPROM_93CX6 is not set |
555 | # CONFIG_IWMC3200TOP is not set | ||
520 | CONFIG_HAVE_IDE=y | 556 | CONFIG_HAVE_IDE=y |
521 | # CONFIG_IDE is not set | 557 | # CONFIG_IDE is not set |
522 | 558 | ||
@@ -539,6 +575,7 @@ CONFIG_HAVE_IDE=y | |||
539 | CONFIG_INPUT=y | 575 | CONFIG_INPUT=y |
540 | # CONFIG_INPUT_FF_MEMLESS is not set | 576 | # CONFIG_INPUT_FF_MEMLESS is not set |
541 | # CONFIG_INPUT_POLLDEV is not set | 577 | # CONFIG_INPUT_POLLDEV is not set |
578 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
542 | 579 | ||
543 | # | 580 | # |
544 | # Userland interfaces | 581 | # Userland interfaces |
@@ -645,7 +682,6 @@ CONFIG_I2C_STU300=y | |||
645 | # | 682 | # |
646 | # Miscellaneous I2C Chip support | 683 | # Miscellaneous I2C Chip support |
647 | # | 684 | # |
648 | # CONFIG_DS1682 is not set | ||
649 | # CONFIG_SENSORS_TSL2550 is not set | 685 | # CONFIG_SENSORS_TSL2550 is not set |
650 | # CONFIG_I2C_DEBUG_CORE is not set | 686 | # CONFIG_I2C_DEBUG_CORE is not set |
651 | # CONFIG_I2C_DEBUG_ALGO is not set | 687 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -661,6 +697,8 @@ CONFIG_SPI_MASTER=y | |||
661 | # CONFIG_SPI_BITBANG is not set | 697 | # CONFIG_SPI_BITBANG is not set |
662 | # CONFIG_SPI_GPIO is not set | 698 | # CONFIG_SPI_GPIO is not set |
663 | CONFIG_SPI_PL022=y | 699 | CONFIG_SPI_PL022=y |
700 | # CONFIG_SPI_XILINX is not set | ||
701 | # CONFIG_SPI_DESIGNWARE is not set | ||
664 | 702 | ||
665 | # | 703 | # |
666 | # SPI Protocol Masters | 704 | # SPI Protocol Masters |
@@ -708,6 +746,7 @@ CONFIG_SSB_POSSIBLE=y | |||
708 | # CONFIG_MFD_T7L66XB is not set | 746 | # CONFIG_MFD_T7L66XB is not set |
709 | # CONFIG_MFD_TC6387XB is not set | 747 | # CONFIG_MFD_TC6387XB is not set |
710 | # CONFIG_PMIC_DA903X is not set | 748 | # CONFIG_PMIC_DA903X is not set |
749 | # CONFIG_PMIC_ADP5520 is not set | ||
711 | # CONFIG_MFD_WM8400 is not set | 750 | # CONFIG_MFD_WM8400 is not set |
712 | # CONFIG_MFD_WM831X is not set | 751 | # CONFIG_MFD_WM831X is not set |
713 | # CONFIG_MFD_WM8350_I2C is not set | 752 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -716,6 +755,8 @@ CONFIG_SSB_POSSIBLE=y | |||
716 | CONFIG_AB3100_CORE=y | 755 | CONFIG_AB3100_CORE=y |
717 | CONFIG_AB3100_OTP=y | 756 | CONFIG_AB3100_OTP=y |
718 | # CONFIG_EZX_PCAP is not set | 757 | # CONFIG_EZX_PCAP is not set |
758 | # CONFIG_MFD_88PM8607 is not set | ||
759 | # CONFIG_AB4500_CORE is not set | ||
719 | CONFIG_REGULATOR=y | 760 | CONFIG_REGULATOR=y |
720 | # CONFIG_REGULATOR_DEBUG is not set | 761 | # CONFIG_REGULATOR_DEBUG is not set |
721 | # CONFIG_REGULATOR_FIXED_VOLTAGE is not set | 762 | # CONFIG_REGULATOR_FIXED_VOLTAGE is not set |
@@ -723,6 +764,7 @@ CONFIG_REGULATOR=y | |||
723 | # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set | 764 | # CONFIG_REGULATOR_USERSPACE_CONSUMER is not set |
724 | # CONFIG_REGULATOR_BQ24022 is not set | 765 | # CONFIG_REGULATOR_BQ24022 is not set |
725 | # CONFIG_REGULATOR_MAX1586 is not set | 766 | # CONFIG_REGULATOR_MAX1586 is not set |
767 | # CONFIG_REGULATOR_MAX8660 is not set | ||
726 | # CONFIG_REGULATOR_LP3971 is not set | 768 | # CONFIG_REGULATOR_LP3971 is not set |
727 | CONFIG_REGULATOR_AB3100=y | 769 | CONFIG_REGULATOR_AB3100=y |
728 | # CONFIG_REGULATOR_TPS65023 is not set | 770 | # CONFIG_REGULATOR_TPS65023 is not set |
@@ -840,7 +882,9 @@ CONFIG_LEDS_CLASS=y | |||
840 | # CONFIG_LEDS_LP3944 is not set | 882 | # CONFIG_LEDS_LP3944 is not set |
841 | # CONFIG_LEDS_PCA955X is not set | 883 | # CONFIG_LEDS_PCA955X is not set |
842 | # CONFIG_LEDS_DAC124S085 is not set | 884 | # CONFIG_LEDS_DAC124S085 is not set |
885 | # CONFIG_LEDS_REGULATOR is not set | ||
843 | # CONFIG_LEDS_BD2802 is not set | 886 | # CONFIG_LEDS_BD2802 is not set |
887 | # CONFIG_LEDS_LT3593 is not set | ||
844 | 888 | ||
845 | # | 889 | # |
846 | # LED Triggers | 890 | # LED Triggers |
@@ -882,6 +926,7 @@ CONFIG_RTC_INTF_DEV=y | |||
882 | # CONFIG_RTC_DRV_PCF8563 is not set | 926 | # CONFIG_RTC_DRV_PCF8563 is not set |
883 | # CONFIG_RTC_DRV_PCF8583 is not set | 927 | # CONFIG_RTC_DRV_PCF8583 is not set |
884 | # CONFIG_RTC_DRV_M41T80 is not set | 928 | # CONFIG_RTC_DRV_M41T80 is not set |
929 | # CONFIG_RTC_DRV_BQ32K is not set | ||
885 | # CONFIG_RTC_DRV_S35390A is not set | 930 | # CONFIG_RTC_DRV_S35390A is not set |
886 | # CONFIG_RTC_DRV_FM3130 is not set | 931 | # CONFIG_RTC_DRV_FM3130 is not set |
887 | # CONFIG_RTC_DRV_RX8581 is not set | 932 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -911,7 +956,9 @@ CONFIG_RTC_INTF_DEV=y | |||
911 | # CONFIG_RTC_DRV_M48T86 is not set | 956 | # CONFIG_RTC_DRV_M48T86 is not set |
912 | # CONFIG_RTC_DRV_M48T35 is not set | 957 | # CONFIG_RTC_DRV_M48T35 is not set |
913 | # CONFIG_RTC_DRV_M48T59 is not set | 958 | # CONFIG_RTC_DRV_M48T59 is not set |
959 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
914 | # CONFIG_RTC_DRV_BQ4802 is not set | 960 | # CONFIG_RTC_DRV_BQ4802 is not set |
961 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
915 | # CONFIG_RTC_DRV_V3020 is not set | 962 | # CONFIG_RTC_DRV_V3020 is not set |
916 | CONFIG_RTC_DRV_AB3100=y | 963 | CONFIG_RTC_DRV_AB3100=y |
917 | 964 | ||
@@ -926,6 +973,15 @@ CONFIG_DMADEVICES=y | |||
926 | # | 973 | # |
927 | # DMA Devices | 974 | # DMA Devices |
928 | # | 975 | # |
976 | CONFIG_COH901318=y | ||
977 | CONFIG_DMA_ENGINE=y | ||
978 | |||
979 | # | ||
980 | # DMA Clients | ||
981 | # | ||
982 | # CONFIG_NET_DMA is not set | ||
983 | # CONFIG_ASYNC_TX_DMA is not set | ||
984 | # CONFIG_DMATEST is not set | ||
929 | # CONFIG_AUXDISPLAY is not set | 985 | # CONFIG_AUXDISPLAY is not set |
930 | # CONFIG_UIO is not set | 986 | # CONFIG_UIO is not set |
931 | 987 | ||
@@ -1018,7 +1074,7 @@ CONFIG_MISC_FILESYSTEMS=y | |||
1018 | CONFIG_MSDOS_PARTITION=y | 1074 | CONFIG_MSDOS_PARTITION=y |
1019 | CONFIG_NLS=y | 1075 | CONFIG_NLS=y |
1020 | CONFIG_NLS_DEFAULT="iso8859-1" | 1076 | CONFIG_NLS_DEFAULT="iso8859-1" |
1021 | # CONFIG_NLS_CODEPAGE_437 is not set | 1077 | CONFIG_NLS_CODEPAGE_437=y |
1022 | # CONFIG_NLS_CODEPAGE_737 is not set | 1078 | # CONFIG_NLS_CODEPAGE_737 is not set |
1023 | # CONFIG_NLS_CODEPAGE_775 is not set | 1079 | # CONFIG_NLS_CODEPAGE_775 is not set |
1024 | # CONFIG_NLS_CODEPAGE_850 is not set | 1080 | # CONFIG_NLS_CODEPAGE_850 is not set |
@@ -1135,6 +1191,7 @@ CONFIG_ARM_UNWIND=y | |||
1135 | # CONFIG_DEBUG_ERRORS is not set | 1191 | # CONFIG_DEBUG_ERRORS is not set |
1136 | # CONFIG_DEBUG_STACK_USAGE is not set | 1192 | # CONFIG_DEBUG_STACK_USAGE is not set |
1137 | # CONFIG_DEBUG_LL is not set | 1193 | # CONFIG_DEBUG_LL is not set |
1194 | # CONFIG_OC_ETM is not set | ||
1138 | 1195 | ||
1139 | # | 1196 | # |
1140 | # Security options | 1197 | # Security options |
@@ -1142,7 +1199,11 @@ CONFIG_ARM_UNWIND=y | |||
1142 | # CONFIG_KEYS is not set | 1199 | # CONFIG_KEYS is not set |
1143 | # CONFIG_SECURITY is not set | 1200 | # CONFIG_SECURITY is not set |
1144 | # CONFIG_SECURITYFS is not set | 1201 | # CONFIG_SECURITYFS is not set |
1145 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1202 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1203 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1204 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1205 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1206 | CONFIG_DEFAULT_SECURITY="" | ||
1146 | # CONFIG_CRYPTO is not set | 1207 | # CONFIG_CRYPTO is not set |
1147 | # CONFIG_BINARY_PRINTF is not set | 1208 | # CONFIG_BINARY_PRINTF is not set |
1148 | 1209 | ||
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h index 730aefcfbee..c77d2fa1f6e 100644 --- a/arch/arm/include/asm/cacheflush.h +++ b/arch/arm/include/asm/cacheflush.h | |||
@@ -154,16 +154,16 @@ | |||
154 | * Please note that the implementation of these, and the required | 154 | * Please note that the implementation of these, and the required |
155 | * effects are cache-type (VIVT/VIPT/PIPT) specific. | 155 | * effects are cache-type (VIVT/VIPT/PIPT) specific. |
156 | * | 156 | * |
157 | * flush_cache_kern_all() | 157 | * flush_kern_all() |
158 | * | 158 | * |
159 | * Unconditionally clean and invalidate the entire cache. | 159 | * Unconditionally clean and invalidate the entire cache. |
160 | * | 160 | * |
161 | * flush_cache_user_mm(mm) | 161 | * flush_user_all() |
162 | * | 162 | * |
163 | * Clean and invalidate all user space cache entries | 163 | * Clean and invalidate all user space cache entries |
164 | * before a change of page tables. | 164 | * before a change of page tables. |
165 | * | 165 | * |
166 | * flush_cache_user_range(start, end, flags) | 166 | * flush_user_range(start, end, flags) |
167 | * | 167 | * |
168 | * Clean and invalidate a range of cache entries in the | 168 | * Clean and invalidate a range of cache entries in the |
169 | * specified address space before a change of page tables. | 169 | * specified address space before a change of page tables. |
@@ -179,6 +179,20 @@ | |||
179 | * - start - virtual start address | 179 | * - start - virtual start address |
180 | * - end - virtual end address | 180 | * - end - virtual end address |
181 | * | 181 | * |
182 | * coherent_user_range(start, end) | ||
183 | * | ||
184 | * Ensure coherency between the Icache and the Dcache in the | ||
185 | * region described by start, end. If you have non-snooping | ||
186 | * Harvard caches, you need to implement this function. | ||
187 | * - start - virtual start address | ||
188 | * - end - virtual end address | ||
189 | * | ||
190 | * flush_kern_dcache_area(kaddr, size) | ||
191 | * | ||
192 | * Ensure that the data held in page is written back. | ||
193 | * - kaddr - page address | ||
194 | * - size - region size | ||
195 | * | ||
182 | * DMA Cache Coherency | 196 | * DMA Cache Coherency |
183 | * =================== | 197 | * =================== |
184 | * | 198 | * |
diff --git a/arch/arm/include/asm/cpu.h b/arch/arm/include/asm/cpu.h index 634b2d7c612..793968173be 100644 --- a/arch/arm/include/asm/cpu.h +++ b/arch/arm/include/asm/cpu.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #define __ASM_ARM_CPU_H | 11 | #define __ASM_ARM_CPU_H |
12 | 12 | ||
13 | #include <linux/percpu.h> | 13 | #include <linux/percpu.h> |
14 | #include <linux/cpu.h> | ||
14 | 15 | ||
15 | struct cpuinfo_arm { | 16 | struct cpuinfo_arm { |
16 | struct cpu cpu; | 17 | struct cpu cpu; |
diff --git a/arch/arm/include/asm/dma.h b/arch/arm/include/asm/dma.h index 7edf3536df2..ca51143f97f 100644 --- a/arch/arm/include/asm/dma.h +++ b/arch/arm/include/asm/dma.h | |||
@@ -138,12 +138,12 @@ extern int get_dma_residue(unsigned int chan); | |||
138 | #define NO_DMA 255 | 138 | #define NO_DMA 255 |
139 | #endif | 139 | #endif |
140 | 140 | ||
141 | #endif /* CONFIG_ISA_DMA_API */ | ||
142 | |||
141 | #ifdef CONFIG_PCI | 143 | #ifdef CONFIG_PCI |
142 | extern int isa_dma_bridge_buggy; | 144 | extern int isa_dma_bridge_buggy; |
143 | #else | 145 | #else |
144 | #define isa_dma_bridge_buggy (0) | 146 | #define isa_dma_bridge_buggy (0) |
145 | #endif | 147 | #endif |
146 | 148 | ||
147 | #endif /* CONFIG_ISA_DMA_API */ | ||
148 | |||
149 | #endif /* __ASM_ARM_DMA_H */ | 149 | #endif /* __ASM_ARM_DMA_H */ |
diff --git a/arch/arm/include/asm/ptrace.h b/arch/arm/include/asm/ptrace.h index bbecccda76d..eec6e897ceb 100644 --- a/arch/arm/include/asm/ptrace.h +++ b/arch/arm/include/asm/ptrace.h | |||
@@ -97,9 +97,15 @@ | |||
97 | * stack during a system call. Note that sizeof(struct pt_regs) | 97 | * stack during a system call. Note that sizeof(struct pt_regs) |
98 | * has to be a multiple of 8. | 98 | * has to be a multiple of 8. |
99 | */ | 99 | */ |
100 | #ifndef __KERNEL__ | ||
100 | struct pt_regs { | 101 | struct pt_regs { |
101 | long uregs[18]; | 102 | long uregs[18]; |
102 | }; | 103 | }; |
104 | #else /* __KERNEL__ */ | ||
105 | struct pt_regs { | ||
106 | unsigned long uregs[18]; | ||
107 | }; | ||
108 | #endif /* __KERNEL__ */ | ||
103 | 109 | ||
104 | #define ARM_cpsr uregs[16] | 110 | #define ARM_cpsr uregs[16] |
105 | #define ARM_pc uregs[15] | 111 | #define ARM_pc uregs[15] |
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h index 4e506d09e5f..cf9cdaa2d4d 100644 --- a/arch/arm/include/asm/unistd.h +++ b/arch/arm/include/asm/unistd.h | |||
@@ -391,6 +391,7 @@ | |||
391 | #define __NR_pwritev (__NR_SYSCALL_BASE+362) | 391 | #define __NR_pwritev (__NR_SYSCALL_BASE+362) |
392 | #define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE+363) | 392 | #define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE+363) |
393 | #define __NR_perf_event_open (__NR_SYSCALL_BASE+364) | 393 | #define __NR_perf_event_open (__NR_SYSCALL_BASE+364) |
394 | #define __NR_recvmmsg (__NR_SYSCALL_BASE+365) | ||
394 | 395 | ||
395 | /* | 396 | /* |
396 | * The following SWIs are ARM private. | 397 | * The following SWIs are ARM private. |
diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S index b121b6053cc..5c91addcaeb 100644 --- a/arch/arm/kernel/debug.S +++ b/arch/arm/kernel/debug.S | |||
@@ -49,6 +49,26 @@ | |||
49 | 1002: | 49 | 1002: |
50 | .endm | 50 | .endm |
51 | 51 | ||
52 | #elif defined(CONFIG_CPU_V7) | ||
53 | |||
54 | .macro addruart, rx | ||
55 | .endm | ||
56 | |||
57 | .macro senduart, rd, rx | ||
58 | mcr p14, 0, \rd, c0, c5, 0 | ||
59 | .endm | ||
60 | |||
61 | .macro busyuart, rd, rx | ||
62 | busy: mrc p14, 0, pc, c0, c1, 0 | ||
63 | bcs busy | ||
64 | .endm | ||
65 | |||
66 | .macro waituart, rd, rx | ||
67 | wait: mrc p14, 0, pc, c0, c1, 0 | ||
68 | bcs wait | ||
69 | |||
70 | .endm | ||
71 | |||
52 | #elif defined(CONFIG_CPU_XSCALE) | 72 | #elif defined(CONFIG_CPU_XSCALE) |
53 | 73 | ||
54 | .macro addruart, rx | 74 | .macro addruart, rx |
diff --git a/arch/arm/kernel/elf.c b/arch/arm/kernel/elf.c index 950391f194c..d4a0da1e48f 100644 --- a/arch/arm/kernel/elf.c +++ b/arch/arm/kernel/elf.c | |||
@@ -78,15 +78,6 @@ int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack) | |||
78 | return 1; | 78 | return 1; |
79 | if (cpu_architecture() < CPU_ARCH_ARMv6) | 79 | if (cpu_architecture() < CPU_ARCH_ARMv6) |
80 | return 1; | 80 | return 1; |
81 | #if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT) | ||
82 | /* | ||
83 | * If we have support for OABI programs, we can never allow NX | ||
84 | * support - our signal syscall restart mechanism relies upon | ||
85 | * being able to execute code placed on the user stack. | ||
86 | */ | ||
87 | return 1; | ||
88 | #else | ||
89 | return 0; | 81 | return 0; |
90 | #endif | ||
91 | } | 82 | } |
92 | EXPORT_SYMBOL(arm_elf_read_implies_exec); | 83 | EXPORT_SYMBOL(arm_elf_read_implies_exec); |
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index d2903e3bc86..6c5cf369183 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -957,9 +957,7 @@ kuser_cmpxchg_fixup: | |||
957 | 957 | ||
958 | #else | 958 | #else |
959 | 959 | ||
960 | #ifdef CONFIG_SMP | 960 | smp_dmb |
961 | mcr p15, 0, r0, c7, c10, 5 @ dmb | ||
962 | #endif | ||
963 | 1: ldrex r3, [r2] | 961 | 1: ldrex r3, [r2] |
964 | subs r3, r3, r0 | 962 | subs r3, r3, r0 |
965 | strexeq r3, r1, [r2] | 963 | strexeq r3, r1, [r2] |
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 67304138a2c..ba2adefa53f 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -212,7 +212,8 @@ void __show_regs(struct pt_regs *regs) | |||
212 | char buf[64]; | 212 | char buf[64]; |
213 | 213 | ||
214 | printk("CPU: %d %s (%s %.*s)\n", | 214 | printk("CPU: %d %s (%s %.*s)\n", |
215 | smp_processor_id(), print_tainted(), init_utsname()->release, | 215 | raw_smp_processor_id(), print_tainted(), |
216 | init_utsname()->release, | ||
216 | (int)strcspn(init_utsname()->version, " "), | 217 | (int)strcspn(init_utsname()->version, " "), |
217 | init_utsname()->version); | 218 | init_utsname()->version); |
218 | print_symbol("PC is at %s\n", instruction_pointer(regs)); | 219 | print_symbol("PC is at %s\n", instruction_pointer(regs)); |
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c index a9b650dcc17..077ecf4fecd 100644 --- a/arch/arm/mach-davinci/board-dm355-evm.c +++ b/arch/arm/mach-davinci/board-dm355-evm.c | |||
@@ -236,6 +236,7 @@ static struct vpfe_subdev_info vpfe_sub_devs[] = { | |||
236 | 236 | ||
237 | static struct vpfe_config vpfe_cfg = { | 237 | static struct vpfe_config vpfe_cfg = { |
238 | .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), | 238 | .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), |
239 | .i2c_adapter_id = 1, | ||
239 | .sub_devs = vpfe_sub_devs, | 240 | .sub_devs = vpfe_sub_devs, |
240 | .card_name = "DM355 EVM", | 241 | .card_name = "DM355 EVM", |
241 | .ccdc = "DM355 CCDC", | 242 | .ccdc = "DM355 CCDC", |
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c index 289fe1b7d25..b476395d2cd 100644 --- a/arch/arm/mach-davinci/board-dm365-evm.c +++ b/arch/arm/mach-davinci/board-dm365-evm.c | |||
@@ -192,7 +192,11 @@ static struct davinci_i2c_platform_data i2c_pdata = { | |||
192 | .bus_delay = 0 /* usec */, | 192 | .bus_delay = 0 /* usec */, |
193 | }; | 193 | }; |
194 | 194 | ||
195 | #ifdef CONFIG_KEYBOARD_DAVINCI | 195 | static int dm365evm_keyscan_enable(struct device *dev) |
196 | { | ||
197 | return davinci_cfg_reg(DM365_KEYSCAN); | ||
198 | } | ||
199 | |||
196 | static unsigned short dm365evm_keymap[] = { | 200 | static unsigned short dm365evm_keymap[] = { |
197 | KEY_KP2, | 201 | KEY_KP2, |
198 | KEY_LEFT, | 202 | KEY_LEFT, |
@@ -214,6 +218,7 @@ static unsigned short dm365evm_keymap[] = { | |||
214 | }; | 218 | }; |
215 | 219 | ||
216 | static struct davinci_ks_platform_data dm365evm_ks_data = { | 220 | static struct davinci_ks_platform_data dm365evm_ks_data = { |
221 | .device_enable = dm365evm_keyscan_enable, | ||
217 | .keymap = dm365evm_keymap, | 222 | .keymap = dm365evm_keymap, |
218 | .keymapsize = ARRAY_SIZE(dm365evm_keymap), | 223 | .keymapsize = ARRAY_SIZE(dm365evm_keymap), |
219 | .rep = 1, | 224 | .rep = 1, |
@@ -222,7 +227,6 @@ static struct davinci_ks_platform_data dm365evm_ks_data = { | |||
222 | .interval = 0x2, | 227 | .interval = 0x2, |
223 | .matrix_type = DAVINCI_KEYSCAN_MATRIX_4X4, | 228 | .matrix_type = DAVINCI_KEYSCAN_MATRIX_4X4, |
224 | }; | 229 | }; |
225 | #endif | ||
226 | 230 | ||
227 | static int cpld_mmc_get_cd(int module) | 231 | static int cpld_mmc_get_cd(int module) |
228 | { | 232 | { |
@@ -511,10 +515,7 @@ static __init void dm365_evm_init(void) | |||
511 | 515 | ||
512 | dm365_init_asp(&dm365_evm_snd_data); | 516 | dm365_init_asp(&dm365_evm_snd_data); |
513 | dm365_init_rtc(); | 517 | dm365_init_rtc(); |
514 | |||
515 | #ifdef CONFIG_KEYBOARD_DAVINCI | ||
516 | dm365_init_ks(&dm365evm_ks_data); | 518 | dm365_init_ks(&dm365evm_ks_data); |
517 | #endif | ||
518 | } | 519 | } |
519 | 520 | ||
520 | static __init void dm365_evm_irq_init(void) | 521 | static __init void dm365_evm_irq_init(void) |
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c index fd0398bc6db..e9612cf727b 100644 --- a/arch/arm/mach-davinci/board-dm644x-evm.c +++ b/arch/arm/mach-davinci/board-dm644x-evm.c | |||
@@ -247,6 +247,7 @@ static struct vpfe_subdev_info vpfe_sub_devs[] = { | |||
247 | 247 | ||
248 | static struct vpfe_config vpfe_cfg = { | 248 | static struct vpfe_config vpfe_cfg = { |
249 | .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), | 249 | .num_subdevs = ARRAY_SIZE(vpfe_sub_devs), |
250 | .i2c_adapter_id = 1, | ||
250 | .sub_devs = vpfe_sub_devs, | 251 | .sub_devs = vpfe_sub_devs, |
251 | .card_name = "DM6446 EVM", | 252 | .card_name = "DM6446 EVM", |
252 | .ccdc = "DM6446 CCDC", | 253 | .ccdc = "DM6446 CCDC", |
diff --git a/arch/arm/mach-davinci/cp_intc.c b/arch/arm/mach-davinci/cp_intc.c index 52b287cf3a4..37311d1830e 100644 --- a/arch/arm/mach-davinci/cp_intc.c +++ b/arch/arm/mach-davinci/cp_intc.c | |||
@@ -81,12 +81,23 @@ static int cp_intc_set_irq_type(unsigned int irq, unsigned int flow_type) | |||
81 | return 0; | 81 | return 0; |
82 | } | 82 | } |
83 | 83 | ||
84 | /* | ||
85 | * Faking this allows us to to work with suspend functions of | ||
86 | * generic drivers which call {enable|disable}_irq_wake for | ||
87 | * wake up interrupt sources (eg RTC on DA850). | ||
88 | */ | ||
89 | static int cp_intc_set_wake(unsigned int irq, unsigned int on) | ||
90 | { | ||
91 | return 0; | ||
92 | } | ||
93 | |||
84 | static struct irq_chip cp_intc_irq_chip = { | 94 | static struct irq_chip cp_intc_irq_chip = { |
85 | .name = "cp_intc", | 95 | .name = "cp_intc", |
86 | .ack = cp_intc_ack_irq, | 96 | .ack = cp_intc_ack_irq, |
87 | .mask = cp_intc_mask_irq, | 97 | .mask = cp_intc_mask_irq, |
88 | .unmask = cp_intc_unmask_irq, | 98 | .unmask = cp_intc_unmask_irq, |
89 | .set_type = cp_intc_set_irq_type, | 99 | .set_type = cp_intc_set_irq_type, |
100 | .set_wake = cp_intc_set_wake, | ||
90 | }; | 101 | }; |
91 | 102 | ||
92 | void __init cp_intc_init(void __iomem *base, unsigned short num_irq, | 103 | void __init cp_intc_init(void __iomem *base, unsigned short num_irq, |
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c index dd2d32c4ce8..a5105f03fd8 100644 --- a/arch/arm/mach-davinci/devices-da8xx.c +++ b/arch/arm/mach-davinci/devices-da8xx.c | |||
@@ -481,11 +481,18 @@ static struct platform_device da8xx_rtc_device = { | |||
481 | 481 | ||
482 | int da8xx_register_rtc(void) | 482 | int da8xx_register_rtc(void) |
483 | { | 483 | { |
484 | int ret; | ||
485 | |||
484 | /* Unlock the rtc's registers */ | 486 | /* Unlock the rtc's registers */ |
485 | __raw_writel(0x83e70b13, IO_ADDRESS(DA8XX_RTC_BASE + 0x6c)); | 487 | __raw_writel(0x83e70b13, IO_ADDRESS(DA8XX_RTC_BASE + 0x6c)); |
486 | __raw_writel(0x95a4f1e0, IO_ADDRESS(DA8XX_RTC_BASE + 0x70)); | 488 | __raw_writel(0x95a4f1e0, IO_ADDRESS(DA8XX_RTC_BASE + 0x70)); |
487 | 489 | ||
488 | return platform_device_register(&da8xx_rtc_device); | 490 | ret = platform_device_register(&da8xx_rtc_device); |
491 | if (!ret) | ||
492 | /* Atleast on DA850, RTC is a wakeup source */ | ||
493 | device_init_wakeup(&da8xx_rtc_device.dev, true); | ||
494 | |||
495 | return ret; | ||
489 | } | 496 | } |
490 | 497 | ||
491 | static struct resource da8xx_cpuidle_resources[] = { | 498 | static struct resource da8xx_cpuidle_resources[] = { |
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c index 2ec619ec165..f53735cb922 100644 --- a/arch/arm/mach-davinci/dm365.c +++ b/arch/arm/mach-davinci/dm365.c | |||
@@ -993,7 +993,6 @@ void __init dm365_init_asp(struct snd_platform_data *pdata) | |||
993 | 993 | ||
994 | void __init dm365_init_ks(struct davinci_ks_platform_data *pdata) | 994 | void __init dm365_init_ks(struct davinci_ks_platform_data *pdata) |
995 | { | 995 | { |
996 | davinci_cfg_reg(DM365_KEYSCAN); | ||
997 | dm365_ks_device.dev.platform_data = pdata; | 996 | dm365_ks_device.dev.platform_data = pdata; |
998 | platform_device_register(&dm365_ks_device); | 997 | platform_device_register(&dm365_ks_device); |
999 | } | 998 | } |
diff --git a/arch/arm/mach-davinci/include/mach/keyscan.h b/arch/arm/mach-davinci/include/mach/keyscan.h index b4e21a2976d..7a560e05bda 100644 --- a/arch/arm/mach-davinci/include/mach/keyscan.h +++ b/arch/arm/mach-davinci/include/mach/keyscan.h | |||
@@ -29,6 +29,7 @@ enum davinci_matrix_types { | |||
29 | }; | 29 | }; |
30 | 30 | ||
31 | struct davinci_ks_platform_data { | 31 | struct davinci_ks_platform_data { |
32 | int (*device_enable)(struct device *dev); | ||
32 | unsigned short *keymap; | 33 | unsigned short *keymap; |
33 | u32 keymapsize; | 34 | u32 keymapsize; |
34 | u8 rep:1; | 35 | u8 rep:1; |
diff --git a/arch/arm/mach-gemini/include/mach/uncompress.h b/arch/arm/mach-gemini/include/mach/uncompress.h index 59c5df7e716..5483f61a806 100644 --- a/arch/arm/mach-gemini/include/mach/uncompress.h +++ b/arch/arm/mach-gemini/include/mach/uncompress.h | |||
@@ -30,7 +30,9 @@ static inline void putc(char c) | |||
30 | UART[UART_TX] = c; | 30 | UART[UART_TX] = c; |
31 | } | 31 | } |
32 | 32 | ||
33 | #define flush() do { } while (0) | 33 | static inline void flush(void) |
34 | { | ||
35 | } | ||
34 | 36 | ||
35 | /* | 37 | /* |
36 | * nothing to do | 38 | * nothing to do |
diff --git a/arch/arm/mach-lh7a40x/clocks.c b/arch/arm/mach-lh7a40x/clocks.c index fcaf876f19b..0651f96653f 100644 --- a/arch/arm/mach-lh7a40x/clocks.c +++ b/arch/arm/mach-lh7a40x/clocks.c | |||
@@ -10,6 +10,8 @@ | |||
10 | #include <mach/hardware.h> | 10 | #include <mach/hardware.h> |
11 | #include <mach/clocks.h> | 11 | #include <mach/clocks.h> |
12 | #include <linux/err.h> | 12 | #include <linux/err.h> |
13 | #include <linux/device.h> | ||
14 | #include <linux/string.h> | ||
13 | 15 | ||
14 | struct module; | 16 | struct module; |
15 | 17 | ||
diff --git a/arch/arm/mach-mmp/ttc_dkb.c b/arch/arm/mach-mmp/ttc_dkb.c index 8f49b2b1260..b22dec4abf7 100644 --- a/arch/arm/mach-mmp/ttc_dkb.c +++ b/arch/arm/mach-mmp/ttc_dkb.c | |||
@@ -24,8 +24,6 @@ | |||
24 | 24 | ||
25 | #include "common.h" | 25 | #include "common.h" |
26 | 26 | ||
27 | #define ARRAY_AND_SIZE(x) (x), ARRAY_SIZE(x) | ||
28 | |||
29 | static unsigned long ttc_dkb_pin_config[] __initdata = { | 27 | static unsigned long ttc_dkb_pin_config[] __initdata = { |
30 | /* UART2 */ | 28 | /* UART2 */ |
31 | GPIO47_UART2_RXD, | 29 | GPIO47_UART2_RXD, |
diff --git a/arch/arm/mach-mx2/mxt_td60.c b/arch/arm/mach-mx2/mxt_td60.c index 03dbbdc9895..8bcc1a5b882 100644 --- a/arch/arm/mach-mx2/mxt_td60.c +++ b/arch/arm/mach-mx2/mxt_td60.c | |||
@@ -58,21 +58,6 @@ static unsigned int mxt_td60_pins[] __initdata = { | |||
58 | PE9_PF_UART3_RXD, | 58 | PE9_PF_UART3_RXD, |
59 | PE10_PF_UART3_CTS, | 59 | PE10_PF_UART3_CTS, |
60 | PE11_PF_UART3_RTS, | 60 | PE11_PF_UART3_RTS, |
61 | /* UART3 */ | ||
62 | PB26_AF_UART4_RTS, | ||
63 | PB28_AF_UART4_TXD, | ||
64 | PB29_AF_UART4_CTS, | ||
65 | PB31_AF_UART4_RXD, | ||
66 | /* UART4 */ | ||
67 | PB18_AF_UART5_TXD, | ||
68 | PB19_AF_UART5_RXD, | ||
69 | PB20_AF_UART5_CTS, | ||
70 | PB21_AF_UART5_RTS, | ||
71 | /* UART5 */ | ||
72 | PB10_AF_UART6_TXD, | ||
73 | PB12_AF_UART6_CTS, | ||
74 | PB11_AF_UART6_RXD, | ||
75 | PB13_AF_UART6_RTS, | ||
76 | /* FEC */ | 61 | /* FEC */ |
77 | PD0_AIN_FEC_TXD0, | 62 | PD0_AIN_FEC_TXD0, |
78 | PD1_AIN_FEC_TXD1, | 63 | PD1_AIN_FEC_TXD1, |
@@ -261,12 +246,6 @@ static struct imxuart_platform_data uart_pdata[] = { | |||
261 | .flags = IMXUART_HAVE_RTSCTS, | 246 | .flags = IMXUART_HAVE_RTSCTS, |
262 | }, { | 247 | }, { |
263 | .flags = IMXUART_HAVE_RTSCTS, | 248 | .flags = IMXUART_HAVE_RTSCTS, |
264 | }, { | ||
265 | .flags = IMXUART_HAVE_RTSCTS, | ||
266 | }, { | ||
267 | .flags = IMXUART_HAVE_RTSCTS, | ||
268 | }, { | ||
269 | .flags = IMXUART_HAVE_RTSCTS, | ||
270 | }, | 249 | }, |
271 | }; | 250 | }; |
272 | 251 | ||
@@ -278,9 +257,6 @@ static void __init mxt_td60_board_init(void) | |||
278 | mxc_register_device(&mxc_uart_device0, &uart_pdata[0]); | 257 | mxc_register_device(&mxc_uart_device0, &uart_pdata[0]); |
279 | mxc_register_device(&mxc_uart_device1, &uart_pdata[1]); | 258 | mxc_register_device(&mxc_uart_device1, &uart_pdata[1]); |
280 | mxc_register_device(&mxc_uart_device2, &uart_pdata[2]); | 259 | mxc_register_device(&mxc_uart_device2, &uart_pdata[2]); |
281 | mxc_register_device(&mxc_uart_device3, &uart_pdata[3]); | ||
282 | mxc_register_device(&mxc_uart_device4, &uart_pdata[4]); | ||
283 | mxc_register_device(&mxc_uart_device5, &uart_pdata[5]); | ||
284 | mxc_register_device(&mxc_nand_device, &mxt_td60_nand_board_info); | 260 | mxc_register_device(&mxc_nand_device, &mxt_td60_nand_board_info); |
285 | 261 | ||
286 | i2c_register_board_info(0, mxt_td60_i2c_devices, | 262 | i2c_register_board_info(0, mxt_td60_i2c_devices, |
diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c index ef26951a527..6e838b85771 100644 --- a/arch/arm/mach-mx25/clock.c +++ b/arch/arm/mach-mx25/clock.c | |||
@@ -173,6 +173,7 @@ DEFINE_CLOCK(pwm4_clk, 0, CCM_CGCR2, 2, get_rate_ipg, NULL); | |||
173 | DEFINE_CLOCK(kpp_clk, 0, CCM_CGCR1, 28, get_rate_ipg, NULL); | 173 | DEFINE_CLOCK(kpp_clk, 0, CCM_CGCR1, 28, get_rate_ipg, NULL); |
174 | DEFINE_CLOCK(tsc_clk, 0, CCM_CGCR2, 13, get_rate_ipg, NULL); | 174 | DEFINE_CLOCK(tsc_clk, 0, CCM_CGCR2, 13, get_rate_ipg, NULL); |
175 | DEFINE_CLOCK(i2c_clk, 0, CCM_CGCR0, 6, get_rate_i2c, NULL); | 175 | DEFINE_CLOCK(i2c_clk, 0, CCM_CGCR0, 6, get_rate_i2c, NULL); |
176 | DEFINE_CLOCK(fec_clk, 0, CCM_CGCR0, 23, get_rate_ipg, NULL); | ||
176 | 177 | ||
177 | #define _REGISTER_CLOCK(d, n, c) \ | 178 | #define _REGISTER_CLOCK(d, n, c) \ |
178 | { \ | 179 | { \ |
@@ -204,6 +205,7 @@ static struct clk_lookup lookups[] = { | |||
204 | _REGISTER_CLOCK("imx-i2c.0", NULL, i2c_clk) | 205 | _REGISTER_CLOCK("imx-i2c.0", NULL, i2c_clk) |
205 | _REGISTER_CLOCK("imx-i2c.1", NULL, i2c_clk) | 206 | _REGISTER_CLOCK("imx-i2c.1", NULL, i2c_clk) |
206 | _REGISTER_CLOCK("imx-i2c.2", NULL, i2c_clk) | 207 | _REGISTER_CLOCK("imx-i2c.2", NULL, i2c_clk) |
208 | _REGISTER_CLOCK("fec.0", NULL, fec_clk) | ||
207 | }; | 209 | }; |
208 | 210 | ||
209 | int __init mx25_clocks_init(unsigned long fref) | 211 | int __init mx25_clocks_init(unsigned long fref) |
diff --git a/arch/arm/mach-mx25/devices.c b/arch/arm/mach-mx25/devices.c index 63511de3a55..9fdeea1c083 100644 --- a/arch/arm/mach-mx25/devices.c +++ b/arch/arm/mach-mx25/devices.c | |||
@@ -419,3 +419,22 @@ int __init mxc_register_gpios(void) | |||
419 | return mxc_gpio_init(imx_gpio_ports, ARRAY_SIZE(imx_gpio_ports)); | 419 | return mxc_gpio_init(imx_gpio_ports, ARRAY_SIZE(imx_gpio_ports)); |
420 | } | 420 | } |
421 | 421 | ||
422 | static struct resource mx25_fec_resources[] = { | ||
423 | { | ||
424 | .start = MX25_FEC_BASE_ADDR, | ||
425 | .end = MX25_FEC_BASE_ADDR + 0xfff, | ||
426 | .flags = IORESOURCE_MEM, | ||
427 | }, | ||
428 | { | ||
429 | .start = MX25_INT_FEC, | ||
430 | .end = MX25_INT_FEC, | ||
431 | .flags = IORESOURCE_IRQ, | ||
432 | }, | ||
433 | }; | ||
434 | |||
435 | struct platform_device mx25_fec_device = { | ||
436 | .name = "fec", | ||
437 | .id = 0, | ||
438 | .num_resources = ARRAY_SIZE(mx25_fec_resources), | ||
439 | .resource = mx25_fec_resources, | ||
440 | }; | ||
diff --git a/arch/arm/mach-mx25/devices.h b/arch/arm/mach-mx25/devices.h index fe6bf88ad1d..fe5420fcd11 100644 --- a/arch/arm/mach-mx25/devices.h +++ b/arch/arm/mach-mx25/devices.h | |||
@@ -17,3 +17,4 @@ extern struct platform_device mxc_keypad_device; | |||
17 | extern struct platform_device mxc_i2c_device0; | 17 | extern struct platform_device mxc_i2c_device0; |
18 | extern struct platform_device mxc_i2c_device1; | 18 | extern struct platform_device mxc_i2c_device1; |
19 | extern struct platform_device mxc_i2c_device2; | 19 | extern struct platform_device mxc_i2c_device2; |
20 | extern struct platform_device mx25_fec_device; | ||
diff --git a/arch/arm/mach-mx25/mx25pdk.c b/arch/arm/mach-mx25/mx25pdk.c index d23ae571c03..921bc99ea23 100644 --- a/arch/arm/mach-mx25/mx25pdk.c +++ b/arch/arm/mach-mx25/mx25pdk.c | |||
@@ -18,10 +18,11 @@ | |||
18 | 18 | ||
19 | #include <linux/types.h> | 19 | #include <linux/types.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/delay.h> | ||
21 | #include <linux/clk.h> | 22 | #include <linux/clk.h> |
22 | #include <linux/irq.h> | 23 | #include <linux/irq.h> |
23 | #include <linux/gpio.h> | 24 | #include <linux/gpio.h> |
24 | #include <linux/smsc911x.h> | 25 | #include <linux/fec.h> |
25 | #include <linux/platform_device.h> | 26 | #include <linux/platform_device.h> |
26 | 27 | ||
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
@@ -35,16 +36,57 @@ | |||
35 | #include <mach/mx25.h> | 36 | #include <mach/mx25.h> |
36 | #include <mach/mxc_nand.h> | 37 | #include <mach/mxc_nand.h> |
37 | #include "devices.h" | 38 | #include "devices.h" |
38 | #include <mach/iomux-v3.h> | 39 | #include <mach/iomux.h> |
39 | 40 | ||
40 | static struct imxuart_platform_data uart_pdata = { | 41 | static struct imxuart_platform_data uart_pdata = { |
41 | .flags = IMXUART_HAVE_RTSCTS, | 42 | .flags = IMXUART_HAVE_RTSCTS, |
42 | }; | 43 | }; |
43 | 44 | ||
45 | static struct pad_desc mx25pdk_pads[] = { | ||
46 | MX25_PAD_FEC_MDC__FEC_MDC, | ||
47 | MX25_PAD_FEC_MDIO__FEC_MDIO, | ||
48 | MX25_PAD_FEC_TDATA0__FEC_TDATA0, | ||
49 | MX25_PAD_FEC_TDATA1__FEC_TDATA1, | ||
50 | MX25_PAD_FEC_TX_EN__FEC_TX_EN, | ||
51 | MX25_PAD_FEC_RDATA0__FEC_RDATA0, | ||
52 | MX25_PAD_FEC_RDATA1__FEC_RDATA1, | ||
53 | MX25_PAD_FEC_RX_DV__FEC_RX_DV, | ||
54 | MX25_PAD_FEC_TX_CLK__FEC_TX_CLK, | ||
55 | MX25_PAD_A17__GPIO_2_3, /* FEC_EN, GPIO 35 */ | ||
56 | MX25_PAD_D12__GPIO_4_8, /* FEC_RESET_B, GPIO 104 */ | ||
57 | }; | ||
58 | |||
59 | static struct fec_platform_data mx25_fec_pdata = { | ||
60 | .phy = PHY_INTERFACE_MODE_RMII, | ||
61 | }; | ||
62 | |||
63 | #define FEC_ENABLE_GPIO 35 | ||
64 | #define FEC_RESET_B_GPIO 104 | ||
65 | |||
66 | static void __init mx25pdk_fec_reset(void) | ||
67 | { | ||
68 | gpio_request(FEC_ENABLE_GPIO, "FEC PHY enable"); | ||
69 | gpio_request(FEC_RESET_B_GPIO, "FEC PHY reset"); | ||
70 | |||
71 | gpio_direction_output(FEC_ENABLE_GPIO, 0); /* drop PHY power */ | ||
72 | gpio_direction_output(FEC_RESET_B_GPIO, 0); /* assert reset */ | ||
73 | udelay(2); | ||
74 | |||
75 | /* turn on PHY power and lift reset */ | ||
76 | gpio_set_value(FEC_ENABLE_GPIO, 1); | ||
77 | gpio_set_value(FEC_RESET_B_GPIO, 1); | ||
78 | } | ||
79 | |||
44 | static void __init mx25pdk_init(void) | 80 | static void __init mx25pdk_init(void) |
45 | { | 81 | { |
82 | mxc_iomux_v3_setup_multiple_pads(mx25pdk_pads, | ||
83 | ARRAY_SIZE(mx25pdk_pads)); | ||
84 | |||
46 | mxc_register_device(&mxc_uart_device0, &uart_pdata); | 85 | mxc_register_device(&mxc_uart_device0, &uart_pdata); |
47 | mxc_register_device(&mxc_usbh2, NULL); | 86 | mxc_register_device(&mxc_usbh2, NULL); |
87 | |||
88 | mx25pdk_fec_reset(); | ||
89 | mxc_register_device(&mx25_fec_device, &mx25_fec_pdata); | ||
48 | } | 90 | } |
49 | 91 | ||
50 | static void __init mx25pdk_timer_init(void) | 92 | static void __init mx25pdk_timer_init(void) |
diff --git a/arch/arm/mach-mx3/Kconfig b/arch/arm/mach-mx3/Kconfig index ea8ed109a7c..28294416b0a 100644 --- a/arch/arm/mach-mx3/Kconfig +++ b/arch/arm/mach-mx3/Kconfig | |||
@@ -49,6 +49,7 @@ config MACH_PCM037_EET | |||
49 | config MACH_MX31LITE | 49 | config MACH_MX31LITE |
50 | bool "Support MX31 LITEKIT (LogicPD)" | 50 | bool "Support MX31 LITEKIT (LogicPD)" |
51 | select ARCH_MX31 | 51 | select ARCH_MX31 |
52 | select MXC_ULPI if USB_ULPI | ||
52 | help | 53 | help |
53 | Include support for MX31 LITEKIT platform. This includes specific | 54 | Include support for MX31 LITEKIT platform. This includes specific |
54 | configurations for the board and its peripherals. | 55 | configurations for the board and its peripherals. |
@@ -63,7 +64,7 @@ config MACH_MX31_3DS | |||
63 | config MACH_MX31MOBOARD | 64 | config MACH_MX31MOBOARD |
64 | bool "Support mx31moboard platforms (EPFL Mobots group)" | 65 | bool "Support mx31moboard platforms (EPFL Mobots group)" |
65 | select ARCH_MX31 | 66 | select ARCH_MX31 |
66 | select MXC_ULPI | 67 | select MXC_ULPI if USB_ULPI |
67 | help | 68 | help |
68 | Include support for mx31moboard platform. This includes specific | 69 | Include support for mx31moboard platform. This includes specific |
69 | configurations for the board and its peripherals. | 70 | configurations for the board and its peripherals. |
diff --git a/arch/arm/mach-mx3/mm.c b/arch/arm/mach-mx3/mm.c index bedf5b8d976..6858a4f9806 100644 --- a/arch/arm/mach-mx3/mm.c +++ b/arch/arm/mach-mx3/mm.c | |||
@@ -65,6 +65,11 @@ static struct map_desc mxc_io_desc[] __initdata = { | |||
65 | .pfn = __phys_to_pfn(AIPS2_BASE_ADDR), | 65 | .pfn = __phys_to_pfn(AIPS2_BASE_ADDR), |
66 | .length = AIPS2_SIZE, | 66 | .length = AIPS2_SIZE, |
67 | .type = MT_DEVICE_NONSHARED | 67 | .type = MT_DEVICE_NONSHARED |
68 | }, { | ||
69 | .virtual = SPBA0_BASE_ADDR_VIRT, | ||
70 | .pfn = __phys_to_pfn(SPBA0_BASE_ADDR), | ||
71 | .length = SPBA0_SIZE, | ||
72 | .type = MT_DEVICE_NONSHARED | ||
68 | }, | 73 | }, |
69 | }; | 74 | }; |
70 | 75 | ||
diff --git a/arch/arm/mach-mx3/mx31ads.c b/arch/arm/mach-mx3/mx31ads.c index 0497c152be1..3e7bafa2ddb 100644 --- a/arch/arm/mach-mx3/mx31ads.c +++ b/arch/arm/mach-mx3/mx31ads.c | |||
@@ -494,11 +494,6 @@ static void mxc_init_i2c(void) | |||
494 | */ | 494 | */ |
495 | static struct map_desc mx31ads_io_desc[] __initdata = { | 495 | static struct map_desc mx31ads_io_desc[] __initdata = { |
496 | { | 496 | { |
497 | .virtual = SPBA0_BASE_ADDR_VIRT, | ||
498 | .pfn = __phys_to_pfn(SPBA0_BASE_ADDR), | ||
499 | .length = SPBA0_SIZE, | ||
500 | .type = MT_DEVICE_NONSHARED | ||
501 | }, { | ||
502 | .virtual = CS4_BASE_ADDR_VIRT, | 497 | .virtual = CS4_BASE_ADDR_VIRT, |
503 | .pfn = __phys_to_pfn(CS4_BASE_ADDR), | 498 | .pfn = __phys_to_pfn(CS4_BASE_ADDR), |
504 | .length = CS4_SIZE / 2, | 499 | .length = CS4_SIZE / 2, |
diff --git a/arch/arm/mach-mx3/mx31lite.c b/arch/arm/mach-mx3/mx31lite.c index def6b673659..789b20d1730 100644 --- a/arch/arm/mach-mx3/mx31lite.c +++ b/arch/arm/mach-mx3/mx31lite.c | |||
@@ -135,6 +135,7 @@ static struct spi_board_info mc13783_spi_dev __initdata = { | |||
135 | * USB | 135 | * USB |
136 | */ | 136 | */ |
137 | 137 | ||
138 | #if defined(CONFIG_USB_ULPI) | ||
138 | #define USB_PAD_CFG (PAD_CTL_DRV_MAX | PAD_CTL_SRE_FAST | PAD_CTL_HYS_CMOS | \ | 139 | #define USB_PAD_CFG (PAD_CTL_DRV_MAX | PAD_CTL_SRE_FAST | PAD_CTL_HYS_CMOS | \ |
139 | PAD_CTL_ODE_CMOS | PAD_CTL_100K_PU) | 140 | PAD_CTL_ODE_CMOS | PAD_CTL_100K_PU) |
140 | 141 | ||
@@ -180,6 +181,7 @@ static struct mxc_usbh_platform_data usbh2_pdata = { | |||
180 | .portsc = MXC_EHCI_MODE_ULPI | MXC_EHCI_UTMI_8BIT, | 181 | .portsc = MXC_EHCI_MODE_ULPI | MXC_EHCI_UTMI_8BIT, |
181 | .flags = MXC_EHCI_POWER_PINS_ENABLED, | 182 | .flags = MXC_EHCI_POWER_PINS_ENABLED, |
182 | }; | 183 | }; |
184 | #endif | ||
183 | 185 | ||
184 | /* | 186 | /* |
185 | * NOR flash | 187 | * NOR flash |
@@ -212,11 +214,6 @@ static struct platform_device physmap_flash_device = { | |||
212 | */ | 214 | */ |
213 | static struct map_desc mx31lite_io_desc[] __initdata = { | 215 | static struct map_desc mx31lite_io_desc[] __initdata = { |
214 | { | 216 | { |
215 | .virtual = SPBA0_BASE_ADDR_VIRT, | ||
216 | .pfn = __phys_to_pfn(SPBA0_BASE_ADDR), | ||
217 | .length = SPBA0_SIZE, | ||
218 | .type = MT_DEVICE_NONSHARED | ||
219 | }, { | ||
220 | .virtual = CS4_BASE_ADDR_VIRT, | 217 | .virtual = CS4_BASE_ADDR_VIRT, |
221 | .pfn = __phys_to_pfn(CS4_BASE_ADDR), | 218 | .pfn = __phys_to_pfn(CS4_BASE_ADDR), |
222 | .length = CS4_SIZE, | 219 | .length = CS4_SIZE, |
@@ -261,11 +258,13 @@ static void __init mxc_board_init(void) | |||
261 | mxc_register_device(&mxc_spi_device1, &spi1_pdata); | 258 | mxc_register_device(&mxc_spi_device1, &spi1_pdata); |
262 | spi_register_board_info(&mc13783_spi_dev, 1); | 259 | spi_register_board_info(&mc13783_spi_dev, 1); |
263 | 260 | ||
261 | #if defined(CONFIG_USB_ULPI) | ||
264 | /* USB */ | 262 | /* USB */ |
265 | usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, | 263 | usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, |
266 | USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT); | 264 | USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT); |
267 | 265 | ||
268 | mxc_register_device(&mxc_usbh2, &usbh2_pdata); | 266 | mxc_register_device(&mxc_usbh2, &usbh2_pdata); |
267 | #endif | ||
269 | 268 | ||
270 | /* SMSC9117 IRQ pin */ | 269 | /* SMSC9117 IRQ pin */ |
271 | ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_SFS6), "sms9117-irq"); | 270 | ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_SFS6), "sms9117-irq"); |
diff --git a/arch/arm/mach-mx3/mx31moboard-devboard.c b/arch/arm/mach-mx3/mx31moboard-devboard.c index 8fc624f141c..438428eaf76 100644 --- a/arch/arm/mach-mx3/mx31moboard-devboard.c +++ b/arch/arm/mach-mx3/mx31moboard-devboard.c | |||
@@ -179,7 +179,7 @@ static int __init devboard_usbh1_init(void) | |||
179 | 179 | ||
180 | usbh1_pdata.otg = otg; | 180 | usbh1_pdata.otg = otg; |
181 | 181 | ||
182 | return mxc_register_device(&mx31_usbh1, &usbh1_pdata); | 182 | return mxc_register_device(&mxc_usbh1, &usbh1_pdata); |
183 | } | 183 | } |
184 | 184 | ||
185 | /* | 185 | /* |
diff --git a/arch/arm/mach-mx3/mx31moboard-marxbot.c b/arch/arm/mach-mx3/mx31moboard-marxbot.c index 85184a35e67..1f44b9ccbb0 100644 --- a/arch/arm/mach-mx3/mx31moboard-marxbot.c +++ b/arch/arm/mach-mx3/mx31moboard-marxbot.c | |||
@@ -294,7 +294,7 @@ static int __init marxbot_usbh1_init(void) | |||
294 | 294 | ||
295 | usbh1_pdata.otg = otg; | 295 | usbh1_pdata.otg = otg; |
296 | 296 | ||
297 | return mxc_register_device(&mx31_usbh1, &usbh1_pdata); | 297 | return mxc_register_device(&mxc_usbh1, &usbh1_pdata); |
298 | } | 298 | } |
299 | 299 | ||
300 | /* | 300 | /* |
diff --git a/arch/arm/mach-mx3/mx31moboard.c b/arch/arm/mach-mx3/mx31moboard.c index b7052914593..cfd605d078e 100644 --- a/arch/arm/mach-mx3/mx31moboard.c +++ b/arch/arm/mach-mx3/mx31moboard.c | |||
@@ -346,6 +346,8 @@ static struct fsl_usb2_platform_data usb_pdata = { | |||
346 | .phy_mode = FSL_USB2_PHY_ULPI, | 346 | .phy_mode = FSL_USB2_PHY_ULPI, |
347 | }; | 347 | }; |
348 | 348 | ||
349 | #if defined(CONFIG_USB_ULPI) | ||
350 | |||
349 | #define USBH2_EN_B IOMUX_TO_GPIO(MX31_PIN_SCK6) | 351 | #define USBH2_EN_B IOMUX_TO_GPIO(MX31_PIN_SCK6) |
350 | 352 | ||
351 | static int moboard_usbh2_hw_init(struct platform_device *pdev) | 353 | static int moboard_usbh2_hw_init(struct platform_device *pdev) |
@@ -392,8 +394,11 @@ static int __init moboard_usbh2_init(void) | |||
392 | usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, | 394 | usbh2_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, |
393 | USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT); | 395 | USB_OTG_DRV_VBUS | USB_OTG_DRV_VBUS_EXT); |
394 | 396 | ||
395 | return mxc_register_device(&mx31_usbh2, &usbh2_pdata); | 397 | return mxc_register_device(&mxc_usbh2, &usbh2_pdata); |
396 | } | 398 | } |
399 | #else | ||
400 | static inline int moboard_usbh2_init(void) { return 0; } | ||
401 | #endif | ||
397 | 402 | ||
398 | 403 | ||
399 | static struct gpio_led mx31moboard_leds[] = { | 404 | static struct gpio_led mx31moboard_leds[] = { |
diff --git a/arch/arm/mach-mx3/mx31pdk.c b/arch/arm/mach-mx3/mx31pdk.c index 0f7a2f06bc2..18715f1aa7e 100644 --- a/arch/arm/mach-mx3/mx31pdk.c +++ b/arch/arm/mach-mx3/mx31pdk.c | |||
@@ -211,11 +211,6 @@ static int __init mx31pdk_init_expio(void) | |||
211 | */ | 211 | */ |
212 | static struct map_desc mx31pdk_io_desc[] __initdata = { | 212 | static struct map_desc mx31pdk_io_desc[] __initdata = { |
213 | { | 213 | { |
214 | .virtual = SPBA0_BASE_ADDR_VIRT, | ||
215 | .pfn = __phys_to_pfn(SPBA0_BASE_ADDR), | ||
216 | .length = SPBA0_SIZE, | ||
217 | .type = MT_DEVICE_NONSHARED, | ||
218 | }, { | ||
219 | .virtual = CS5_BASE_ADDR_VIRT, | 214 | .virtual = CS5_BASE_ADDR_VIRT, |
220 | .pfn = __phys_to_pfn(CS5_BASE_ADDR), | 215 | .pfn = __phys_to_pfn(CS5_BASE_ADDR), |
221 | .length = CS5_SIZE, | 216 | .length = CS5_SIZE, |
diff --git a/arch/arm/mach-mx3/pcm037.c b/arch/arm/mach-mx3/pcm037.c index 6cbaabedf38..5be396917c9 100644 --- a/arch/arm/mach-mx3/pcm037.c +++ b/arch/arm/mach-mx3/pcm037.c | |||
@@ -322,16 +322,25 @@ static int pcm037_camera_power(struct device *dev, int on) | |||
322 | return 0; | 322 | return 0; |
323 | } | 323 | } |
324 | 324 | ||
325 | static struct i2c_board_info pcm037_i2c_2_devices[] = { | 325 | static struct i2c_board_info pcm037_i2c_camera[] = { |
326 | { | 326 | { |
327 | I2C_BOARD_INFO("mt9t031", 0x5d), | 327 | I2C_BOARD_INFO("mt9t031", 0x5d), |
328 | }, { | ||
329 | I2C_BOARD_INFO("mt9v022", 0x48), | ||
328 | }, | 330 | }, |
329 | }; | 331 | }; |
330 | 332 | ||
331 | static struct soc_camera_link iclink = { | 333 | static struct soc_camera_link iclink_mt9v022 = { |
334 | .bus_id = 0, /* Must match with the camera ID */ | ||
335 | .board_info = &pcm037_i2c_camera[1], | ||
336 | .i2c_adapter_id = 2, | ||
337 | .module_name = "mt9v022", | ||
338 | }; | ||
339 | |||
340 | static struct soc_camera_link iclink_mt9t031 = { | ||
332 | .bus_id = 0, /* Must match with the camera ID */ | 341 | .bus_id = 0, /* Must match with the camera ID */ |
333 | .power = pcm037_camera_power, | 342 | .power = pcm037_camera_power, |
334 | .board_info = &pcm037_i2c_2_devices[0], | 343 | .board_info = &pcm037_i2c_camera[0], |
335 | .i2c_adapter_id = 2, | 344 | .i2c_adapter_id = 2, |
336 | .module_name = "mt9t031", | 345 | .module_name = "mt9t031", |
337 | }; | 346 | }; |
@@ -345,11 +354,19 @@ static struct i2c_board_info pcm037_i2c_devices[] = { | |||
345 | } | 354 | } |
346 | }; | 355 | }; |
347 | 356 | ||
348 | static struct platform_device pcm037_camera = { | 357 | static struct platform_device pcm037_mt9t031 = { |
349 | .name = "soc-camera-pdrv", | 358 | .name = "soc-camera-pdrv", |
350 | .id = 0, | 359 | .id = 0, |
351 | .dev = { | 360 | .dev = { |
352 | .platform_data = &iclink, | 361 | .platform_data = &iclink_mt9t031, |
362 | }, | ||
363 | }; | ||
364 | |||
365 | static struct platform_device pcm037_mt9v022 = { | ||
366 | .name = "soc-camera-pdrv", | ||
367 | .id = 1, | ||
368 | .dev = { | ||
369 | .platform_data = &iclink_mt9v022, | ||
353 | }, | 370 | }, |
354 | }; | 371 | }; |
355 | 372 | ||
@@ -449,7 +466,8 @@ static int __init pcm037_camera_alloc_dma(const size_t buf_size) | |||
449 | static struct platform_device *devices[] __initdata = { | 466 | static struct platform_device *devices[] __initdata = { |
450 | &pcm037_flash, | 467 | &pcm037_flash, |
451 | &pcm037_sram_device, | 468 | &pcm037_sram_device, |
452 | &pcm037_camera, | 469 | &pcm037_mt9t031, |
470 | &pcm037_mt9v022, | ||
453 | }; | 471 | }; |
454 | 472 | ||
455 | static struct ipu_platform_data mx3_ipu_data = { | 473 | static struct ipu_platform_data mx3_ipu_data = { |
@@ -599,7 +617,7 @@ static void __init mxc_board_init(void) | |||
599 | if (!ret) | 617 | if (!ret) |
600 | gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), 1); | 618 | gpio_direction_output(IOMUX_TO_GPIO(MX31_PIN_CSI_D5), 1); |
601 | else | 619 | else |
602 | iclink.power = NULL; | 620 | iclink_mt9t031.power = NULL; |
603 | 621 | ||
604 | if (!pcm037_camera_alloc_dma(4 * 1024 * 1024)) | 622 | if (!pcm037_camera_alloc_dma(4 * 1024 * 1024)) |
605 | mxc_register_device(&mx3_camera, &camera_pdata); | 623 | mxc_register_device(&mx3_camera, &camera_pdata); |
diff --git a/arch/arm/mach-omap1/clock_data.c b/arch/arm/mach-omap1/clock_data.c index ab995a9c606..65e7b5b85d8 100644 --- a/arch/arm/mach-omap1/clock_data.c +++ b/arch/arm/mach-omap1/clock_data.c | |||
@@ -599,7 +599,7 @@ static struct clk i2c_ick = { | |||
599 | static struct omap_clk omap_clks[] = { | 599 | static struct omap_clk omap_clks[] = { |
600 | /* non-ULPD clocks */ | 600 | /* non-ULPD clocks */ |
601 | CLK(NULL, "ck_ref", &ck_ref, CK_16XX | CK_1510 | CK_310 | CK_7XX), | 601 | CLK(NULL, "ck_ref", &ck_ref, CK_16XX | CK_1510 | CK_310 | CK_7XX), |
602 | CLK(NULL, "ck_dpll1", &ck_dpll1, CK_16XX | CK_1510 | CK_310), | 602 | CLK(NULL, "ck_dpll1", &ck_dpll1, CK_16XX | CK_1510 | CK_310 | CK_7XX), |
603 | /* CK_GEN1 clocks */ | 603 | /* CK_GEN1 clocks */ |
604 | CLK(NULL, "ck_dpll1out", &ck_dpll1out.clk, CK_16XX), | 604 | CLK(NULL, "ck_dpll1out", &ck_dpll1out.clk, CK_16XX), |
605 | CLK(NULL, "ck_sossi", &sossi_ck, CK_16XX), | 605 | CLK(NULL, "ck_sossi", &sossi_ck, CK_16XX), |
@@ -627,7 +627,7 @@ static struct omap_clk omap_clks[] = { | |||
627 | CLK(NULL, "tc2_ck", &tc2_ck, CK_16XX), | 627 | CLK(NULL, "tc2_ck", &tc2_ck, CK_16XX), |
628 | CLK(NULL, "dma_ck", &dma_ck, CK_16XX | CK_1510 | CK_310), | 628 | CLK(NULL, "dma_ck", &dma_ck, CK_16XX | CK_1510 | CK_310), |
629 | CLK(NULL, "dma_lcdfree_ck", &dma_lcdfree_ck, CK_16XX), | 629 | CLK(NULL, "dma_lcdfree_ck", &dma_lcdfree_ck, CK_16XX), |
630 | CLK(NULL, "api_ck", &api_ck.clk, CK_16XX | CK_1510 | CK_310), | 630 | CLK(NULL, "api_ck", &api_ck.clk, CK_16XX | CK_1510 | CK_310 | CK_7XX), |
631 | CLK(NULL, "lb_ck", &lb_ck.clk, CK_1510 | CK_310), | 631 | CLK(NULL, "lb_ck", &lb_ck.clk, CK_1510 | CK_310), |
632 | CLK(NULL, "rhea1_ck", &rhea1_ck, CK_16XX), | 632 | CLK(NULL, "rhea1_ck", &rhea1_ck, CK_16XX), |
633 | CLK(NULL, "rhea2_ck", &rhea2_ck, CK_16XX), | 633 | CLK(NULL, "rhea2_ck", &rhea2_ck, CK_16XX), |
@@ -658,6 +658,10 @@ static struct omap_clk omap_clks[] = { | |||
658 | CLK("i2c_omap.1", "fck", &i2c_fck, CK_16XX | CK_1510 | CK_310 | CK_7XX), | 658 | CLK("i2c_omap.1", "fck", &i2c_fck, CK_16XX | CK_1510 | CK_310 | CK_7XX), |
659 | CLK("i2c_omap.1", "ick", &i2c_ick, CK_16XX), | 659 | CLK("i2c_omap.1", "ick", &i2c_ick, CK_16XX), |
660 | CLK("i2c_omap.1", "ick", &dummy_ck, CK_1510 | CK_310 | CK_7XX), | 660 | CLK("i2c_omap.1", "ick", &dummy_ck, CK_1510 | CK_310 | CK_7XX), |
661 | CLK("omap1_spi100k.1", "fck", &dummy_ck, CK_7XX), | ||
662 | CLK("omap1_spi100k.1", "ick", &dummy_ck, CK_7XX), | ||
663 | CLK("omap1_spi100k.2", "fck", &dummy_ck, CK_7XX), | ||
664 | CLK("omap1_spi100k.2", "ick", &dummy_ck, CK_7XX), | ||
661 | CLK("omap_uwire", "fck", &armxor_ck.clk, CK_16XX | CK_1510 | CK_310), | 665 | CLK("omap_uwire", "fck", &armxor_ck.clk, CK_16XX | CK_1510 | CK_310), |
662 | CLK("omap-mcbsp.1", "ick", &dspper_ck, CK_16XX), | 666 | CLK("omap-mcbsp.1", "ick", &dspper_ck, CK_16XX), |
663 | CLK("omap-mcbsp.1", "ick", &dummy_ck, CK_1510 | CK_310), | 667 | CLK("omap-mcbsp.1", "ick", &dummy_ck, CK_1510 | CK_310), |
@@ -674,7 +678,7 @@ static struct omap_clk omap_clks[] = { | |||
674 | * init | 678 | * init |
675 | */ | 679 | */ |
676 | 680 | ||
677 | static struct clk_functions omap1_clk_functions __initdata = { | 681 | static struct clk_functions omap1_clk_functions = { |
678 | .clk_enable = omap1_clk_enable, | 682 | .clk_enable = omap1_clk_enable, |
679 | .clk_disable = omap1_clk_disable, | 683 | .clk_disable = omap1_clk_disable, |
680 | .clk_round_rate = omap1_clk_round_rate, | 684 | .clk_round_rate = omap1_clk_round_rate, |
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c index 23ded2d4960..a2d07aa75c9 100644 --- a/arch/arm/mach-omap1/devices.c +++ b/arch/arm/mach-omap1/devices.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
16 | #include <linux/io.h> | 16 | #include <linux/io.h> |
17 | #include <linux/spi/spi.h> | ||
17 | 18 | ||
18 | #include <mach/hardware.h> | 19 | #include <mach/hardware.h> |
19 | #include <asm/mach/map.h> | 20 | #include <asm/mach/map.h> |
@@ -23,6 +24,7 @@ | |||
23 | #include <plat/mux.h> | 24 | #include <plat/mux.h> |
24 | #include <mach/gpio.h> | 25 | #include <mach/gpio.h> |
25 | #include <plat/mmc.h> | 26 | #include <plat/mmc.h> |
27 | #include <plat/omap7xx.h> | ||
26 | 28 | ||
27 | /*-------------------------------------------------------------------------*/ | 29 | /*-------------------------------------------------------------------------*/ |
28 | 30 | ||
@@ -196,6 +198,38 @@ void __init omap1_init_mmc(struct omap_mmc_platform_data **mmc_data, | |||
196 | 198 | ||
197 | /*-------------------------------------------------------------------------*/ | 199 | /*-------------------------------------------------------------------------*/ |
198 | 200 | ||
201 | /* OMAP7xx SPI support */ | ||
202 | #if defined(CONFIG_SPI_OMAP_100K) || defined(CONFIG_SPI_OMAP_100K_MODULE) | ||
203 | |||
204 | struct platform_device omap_spi1 = { | ||
205 | .name = "omap1_spi100k", | ||
206 | .id = 1, | ||
207 | }; | ||
208 | |||
209 | struct platform_device omap_spi2 = { | ||
210 | .name = "omap1_spi100k", | ||
211 | .id = 2, | ||
212 | }; | ||
213 | |||
214 | static void omap_init_spi100k(void) | ||
215 | { | ||
216 | omap_spi1.dev.platform_data = ioremap(OMAP7XX_SPI1_BASE, 0x7ff); | ||
217 | if (omap_spi1.dev.platform_data) | ||
218 | platform_device_register(&omap_spi1); | ||
219 | |||
220 | omap_spi2.dev.platform_data = ioremap(OMAP7XX_SPI2_BASE, 0x7ff); | ||
221 | if (omap_spi2.dev.platform_data) | ||
222 | platform_device_register(&omap_spi2); | ||
223 | } | ||
224 | |||
225 | #else | ||
226 | static inline void omap_init_spi100k(void) | ||
227 | { | ||
228 | } | ||
229 | #endif | ||
230 | |||
231 | /*-------------------------------------------------------------------------*/ | ||
232 | |||
199 | #if defined(CONFIG_OMAP_STI) | 233 | #if defined(CONFIG_OMAP_STI) |
200 | 234 | ||
201 | #define OMAP1_STI_BASE 0xfffea000 | 235 | #define OMAP1_STI_BASE 0xfffea000 |
@@ -263,6 +297,7 @@ static int __init omap1_init_devices(void) | |||
263 | 297 | ||
264 | omap_init_mbox(); | 298 | omap_init_mbox(); |
265 | omap_init_rtc(); | 299 | omap_init_rtc(); |
300 | omap_init_spi100k(); | ||
266 | omap_init_sti(); | 301 | omap_init_sti(); |
267 | 302 | ||
268 | return 0; | 303 | return 0; |
diff --git a/arch/arm/mach-omap1/mux.c b/arch/arm/mach-omap1/mux.c index 07212cc621a..84341377232 100644 --- a/arch/arm/mach-omap1/mux.c +++ b/arch/arm/mach-omap1/mux.c | |||
@@ -62,6 +62,14 @@ MUX_CFG_7XX("MMC_7XX_DAT0", 2, 17, 0, 16, 1, 0) | |||
62 | /* I2C interface */ | 62 | /* I2C interface */ |
63 | MUX_CFG_7XX("I2C_7XX_SCL", 5, 1, 0, 0, 1, 0) | 63 | MUX_CFG_7XX("I2C_7XX_SCL", 5, 1, 0, 0, 1, 0) |
64 | MUX_CFG_7XX("I2C_7XX_SDA", 5, 5, 0, 0, 1, 0) | 64 | MUX_CFG_7XX("I2C_7XX_SDA", 5, 5, 0, 0, 1, 0) |
65 | |||
66 | /* SPI pins */ | ||
67 | MUX_CFG_7XX("SPI_7XX_1", 6, 5, 4, 4, 1, 0) | ||
68 | MUX_CFG_7XX("SPI_7XX_2", 6, 9, 4, 8, 1, 0) | ||
69 | MUX_CFG_7XX("SPI_7XX_3", 6, 13, 4, 12, 1, 0) | ||
70 | MUX_CFG_7XX("SPI_7XX_4", 6, 17, 4, 16, 1, 0) | ||
71 | MUX_CFG_7XX("SPI_7XX_5", 8, 25, 0, 24, 0, 0) | ||
72 | MUX_CFG_7XX("SPI_7XX_6", 9, 5, 0, 4, 0, 0) | ||
65 | }; | 73 | }; |
66 | #define OMAP7XX_PINS_SZ ARRAY_SIZE(omap7xx_pins) | 74 | #define OMAP7XX_PINS_SZ ARRAY_SIZE(omap7xx_pins) |
67 | #else | 75 | #else |
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 10eafa70a90..606bf04f51b 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
@@ -80,6 +80,7 @@ config MACH_OVERO | |||
80 | config MACH_OMAP3EVM | 80 | config MACH_OMAP3EVM |
81 | bool "OMAP 3530 EVM board" | 81 | bool "OMAP 3530 EVM board" |
82 | depends on ARCH_OMAP3 && ARCH_OMAP34XX | 82 | depends on ARCH_OMAP3 && ARCH_OMAP34XX |
83 | select OMAP_PACKAGE_CBB | ||
83 | 84 | ||
84 | config MACH_OMAP3517EVM | 85 | config MACH_OMAP3517EVM |
85 | bool "OMAP3517/ AM3517 EVM board" | 86 | bool "OMAP3517/ AM3517 EVM board" |
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c index 8dd277c3666..1e3dfb652ac 100755 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c | |||
@@ -63,21 +63,21 @@ static int board_keymap[] = { | |||
63 | KEY(5, 1, KEY_H), | 63 | KEY(5, 1, KEY_H), |
64 | KEY(5, 2, KEY_J), | 64 | KEY(5, 2, KEY_J), |
65 | KEY(5, 3, KEY_F3), | 65 | KEY(5, 3, KEY_F3), |
66 | KEY(5, 4, KEY_UNKNOWN), | ||
66 | KEY(5, 5, KEY_VOLUMEDOWN), | 67 | KEY(5, 5, KEY_VOLUMEDOWN), |
67 | KEY(5, 6, KEY_M), | 68 | KEY(5, 6, KEY_M), |
68 | KEY(5, 7, KEY_ENTER), | 69 | KEY(5, 7, KEY_RIGHT), |
69 | KEY(6, 0, KEY_Q), | 70 | KEY(6, 0, KEY_Q), |
70 | KEY(6, 1, KEY_A), | 71 | KEY(6, 1, KEY_A), |
71 | KEY(6, 2, KEY_N), | 72 | KEY(6, 2, KEY_N), |
72 | KEY(6, 3, KEY_BACKSPACE), | 73 | KEY(6, 3, KEY_BACKSPACE), |
73 | KEY(6, 6, KEY_P), | 74 | KEY(6, 6, KEY_P), |
74 | KEY(6, 7, KEY_SELECT), | 75 | KEY(6, 7, KEY_UP), |
75 | KEY(7, 0, KEY_PROG1), /*MACRO 1 <User defined> */ | 76 | KEY(7, 0, KEY_PROG1), /*MACRO 1 <User defined> */ |
76 | KEY(7, 1, KEY_PROG2), /*MACRO 2 <User defined> */ | 77 | KEY(7, 1, KEY_PROG2), /*MACRO 2 <User defined> */ |
77 | KEY(7, 2, KEY_PROG3), /*MACRO 3 <User defined> */ | 78 | KEY(7, 2, KEY_PROG3), /*MACRO 3 <User defined> */ |
78 | KEY(7, 3, KEY_PROG4), /*MACRO 4 <User defined> */ | 79 | KEY(7, 3, KEY_PROG4), /*MACRO 4 <User defined> */ |
79 | KEY(7, 5, KEY_RIGHT), | 80 | KEY(7, 6, KEY_SELECT), |
80 | KEY(7, 6, KEY_UP), | ||
81 | KEY(7, 7, KEY_DOWN) | 81 | KEY(7, 7, KEY_DOWN) |
82 | }; | 82 | }; |
83 | 83 | ||
diff --git a/arch/arm/mach-omap2/clock2xxx.c b/arch/arm/mach-omap2/clock2xxx.c index d0e3fb7f929..5420356eb40 100644 --- a/arch/arm/mach-omap2/clock2xxx.c +++ b/arch/arm/mach-omap2/clock2xxx.c | |||
@@ -449,40 +449,78 @@ int omap2_select_table_rate(struct clk *clk, unsigned long rate) | |||
449 | #ifdef CONFIG_CPU_FREQ | 449 | #ifdef CONFIG_CPU_FREQ |
450 | /* | 450 | /* |
451 | * Walk PRCM rate table and fillout cpufreq freq_table | 451 | * Walk PRCM rate table and fillout cpufreq freq_table |
452 | * XXX This should be replaced by an OPP layer in the near future | ||
452 | */ | 453 | */ |
453 | static struct cpufreq_frequency_table freq_table[ARRAY_SIZE(rate_table)]; | 454 | static struct cpufreq_frequency_table *freq_table; |
454 | 455 | ||
455 | void omap2_clk_init_cpufreq_table(struct cpufreq_frequency_table **table) | 456 | void omap2_clk_init_cpufreq_table(struct cpufreq_frequency_table **table) |
456 | { | 457 | { |
457 | struct prcm_config *prcm; | 458 | const struct prcm_config *prcm; |
459 | long sys_ck_rate; | ||
458 | int i = 0; | 460 | int i = 0; |
461 | int tbl_sz = 0; | ||
462 | |||
463 | sys_ck_rate = clk_get_rate(sclk); | ||
459 | 464 | ||
460 | for (prcm = rate_table; prcm->mpu_speed; prcm++) { | 465 | for (prcm = rate_table; prcm->mpu_speed; prcm++) { |
461 | if (!(prcm->flags & cpu_mask)) | 466 | if (!(prcm->flags & cpu_mask)) |
462 | continue; | 467 | continue; |
463 | if (prcm->xtal_speed != sys_ck.rate) | 468 | if (prcm->xtal_speed != sys_ck_rate) |
464 | continue; | 469 | continue; |
465 | 470 | ||
466 | /* don't put bypass rates in table */ | 471 | /* don't put bypass rates in table */ |
467 | if (prcm->dpll_speed == prcm->xtal_speed) | 472 | if (prcm->dpll_speed == prcm->xtal_speed) |
468 | continue; | 473 | continue; |
469 | 474 | ||
470 | freq_table[i].index = i; | 475 | tbl_sz++; |
471 | freq_table[i].frequency = prcm->mpu_speed / 1000; | ||
472 | i++; | ||
473 | } | 476 | } |
474 | 477 | ||
475 | if (i == 0) { | 478 | /* |
476 | printk(KERN_WARNING "%s: failed to initialize frequency " | 479 | * XXX Ensure that we're doing what CPUFreq expects for this error |
477 | "table\n", __func__); | 480 | * case and the following one |
481 | */ | ||
482 | if (tbl_sz == 0) { | ||
483 | pr_warning("%s: no matching entries in rate_table\n", | ||
484 | __func__); | ||
485 | return; | ||
486 | } | ||
487 | |||
488 | /* Include the CPUFREQ_TABLE_END terminator entry */ | ||
489 | tbl_sz++; | ||
490 | |||
491 | freq_table = kzalloc(sizeof(struct cpufreq_frequency_table) * tbl_sz, | ||
492 | GFP_ATOMIC); | ||
493 | if (!freq_table) { | ||
494 | pr_err("%s: could not kzalloc frequency table\n", __func__); | ||
478 | return; | 495 | return; |
479 | } | 496 | } |
480 | 497 | ||
498 | for (prcm = rate_table; prcm->mpu_speed; prcm++) { | ||
499 | if (!(prcm->flags & cpu_mask)) | ||
500 | continue; | ||
501 | if (prcm->xtal_speed != sys_ck_rate) | ||
502 | continue; | ||
503 | |||
504 | /* don't put bypass rates in table */ | ||
505 | if (prcm->dpll_speed == prcm->xtal_speed) | ||
506 | continue; | ||
507 | |||
508 | freq_table[i].index = i; | ||
509 | freq_table[i].frequency = prcm->mpu_speed / 1000; | ||
510 | i++; | ||
511 | } | ||
512 | |||
481 | freq_table[i].index = i; | 513 | freq_table[i].index = i; |
482 | freq_table[i].frequency = CPUFREQ_TABLE_END; | 514 | freq_table[i].frequency = CPUFREQ_TABLE_END; |
483 | 515 | ||
484 | *table = &freq_table[0]; | 516 | *table = &freq_table[0]; |
485 | } | 517 | } |
518 | |||
519 | void omap2_clk_exit_cpufreq_table(struct cpufreq_frequency_table **table) | ||
520 | { | ||
521 | kfree(freq_table); | ||
522 | } | ||
523 | |||
486 | #endif | 524 | #endif |
487 | 525 | ||
488 | struct clk_functions omap2_clk_functions = { | 526 | struct clk_functions omap2_clk_functions = { |
@@ -494,6 +532,7 @@ struct clk_functions omap2_clk_functions = { | |||
494 | .clk_disable_unused = omap2_clk_disable_unused, | 532 | .clk_disable_unused = omap2_clk_disable_unused, |
495 | #ifdef CONFIG_CPU_FREQ | 533 | #ifdef CONFIG_CPU_FREQ |
496 | .clk_init_cpufreq_table = omap2_clk_init_cpufreq_table, | 534 | .clk_init_cpufreq_table = omap2_clk_init_cpufreq_table, |
535 | .clk_exit_cpufreq_table = omap2_clk_exit_cpufreq_table, | ||
497 | #endif | 536 | #endif |
498 | }; | 537 | }; |
499 | 538 | ||
diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c index ded32364f32..d4217b93e10 100644 --- a/arch/arm/mach-omap2/clock34xx.c +++ b/arch/arm/mach-omap2/clock34xx.c | |||
@@ -34,7 +34,6 @@ | |||
34 | #include <asm/div64.h> | 34 | #include <asm/div64.h> |
35 | #include <asm/clkdev.h> | 35 | #include <asm/clkdev.h> |
36 | 36 | ||
37 | #include <plat/sdrc.h> | ||
38 | #include "clock.h" | 37 | #include "clock.h" |
39 | #include "clock34xx.h" | 38 | #include "clock34xx.h" |
40 | #include "sdrc.h" | 39 | #include "sdrc.h" |
diff --git a/arch/arm/mach-omap2/clock34xx_data.c b/arch/arm/mach-omap2/clock34xx_data.c index 8bdcc9cc7f9..c6031d74d6f 100644 --- a/arch/arm/mach-omap2/clock34xx_data.c +++ b/arch/arm/mach-omap2/clock34xx_data.c | |||
@@ -776,6 +776,8 @@ static struct clk dpll4_m5_ck = { | |||
776 | .clksel_mask = OMAP3430_CLKSEL_CAM_MASK, | 776 | .clksel_mask = OMAP3430_CLKSEL_CAM_MASK, |
777 | .clksel = div16_dpll4_clksel, | 777 | .clksel = div16_dpll4_clksel, |
778 | .clkdm_name = "dpll4_clkdm", | 778 | .clkdm_name = "dpll4_clkdm", |
779 | .set_rate = &omap2_clksel_set_rate, | ||
780 | .round_rate = &omap2_clksel_round_rate, | ||
779 | .recalc = &omap2_clksel_recalc, | 781 | .recalc = &omap2_clksel_recalc, |
780 | }; | 782 | }; |
781 | 783 | ||
@@ -1500,6 +1502,7 @@ static struct clk uart2_fck = { | |||
1500 | .parent = &core_48m_fck, | 1502 | .parent = &core_48m_fck, |
1501 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1), | 1503 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1), |
1502 | .enable_bit = OMAP3430_EN_UART2_SHIFT, | 1504 | .enable_bit = OMAP3430_EN_UART2_SHIFT, |
1505 | .clkdm_name = "core_l4_clkdm", | ||
1503 | .recalc = &followparent_recalc, | 1506 | .recalc = &followparent_recalc, |
1504 | }; | 1507 | }; |
1505 | 1508 | ||
@@ -1509,6 +1512,7 @@ static struct clk uart1_fck = { | |||
1509 | .parent = &core_48m_fck, | 1512 | .parent = &core_48m_fck, |
1510 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1), | 1513 | .enable_reg = OMAP_CM_REGADDR(CORE_MOD, CM_FCLKEN1), |
1511 | .enable_bit = OMAP3430_EN_UART1_SHIFT, | 1514 | .enable_bit = OMAP3430_EN_UART1_SHIFT, |
1515 | .clkdm_name = "core_l4_clkdm", | ||
1512 | .recalc = &followparent_recalc, | 1516 | .recalc = &followparent_recalc, |
1513 | }; | 1517 | }; |
1514 | 1518 | ||
@@ -2745,7 +2749,7 @@ static struct clk mcbsp4_ick = { | |||
2745 | }; | 2749 | }; |
2746 | 2750 | ||
2747 | static const struct clksel mcbsp_234_clksel[] = { | 2751 | static const struct clksel mcbsp_234_clksel[] = { |
2748 | { .parent = &core_96m_fck, .rates = common_mcbsp_96m_rates }, | 2752 | { .parent = &per_96m_fck, .rates = common_mcbsp_96m_rates }, |
2749 | { .parent = &mcbsp_clks, .rates = common_mcbsp_mcbsp_rates }, | 2753 | { .parent = &mcbsp_clks, .rates = common_mcbsp_mcbsp_rates }, |
2750 | { .parent = NULL } | 2754 | { .parent = NULL } |
2751 | }; | 2755 | }; |
diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c index 1a45ed1e8ba..dd285f00146 100644 --- a/arch/arm/mach-omap2/clockdomain.c +++ b/arch/arm/mach-omap2/clockdomain.c | |||
@@ -559,7 +559,7 @@ int omap2_clkdm_clk_enable(struct clockdomain *clkdm, struct clk *clk) | |||
559 | * downstream clocks for debugging purposes? | 559 | * downstream clocks for debugging purposes? |
560 | */ | 560 | */ |
561 | 561 | ||
562 | if (!clkdm || !clk) | 562 | if (!clkdm || !clk || !clkdm->clktrctrl_mask) |
563 | return -EINVAL; | 563 | return -EINVAL; |
564 | 564 | ||
565 | if (atomic_inc_return(&clkdm->usecount) > 1) | 565 | if (atomic_inc_return(&clkdm->usecount) > 1) |
@@ -610,7 +610,7 @@ int omap2_clkdm_clk_disable(struct clockdomain *clkdm, struct clk *clk) | |||
610 | * downstream clocks for debugging purposes? | 610 | * downstream clocks for debugging purposes? |
611 | */ | 611 | */ |
612 | 612 | ||
613 | if (!clkdm || !clk) | 613 | if (!clkdm || !clk || !clkdm->clktrctrl_mask) |
614 | return -EINVAL; | 614 | return -EINVAL; |
615 | 615 | ||
616 | #ifdef DEBUG | 616 | #ifdef DEBUG |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index a8749e8017b..5a7996402c5 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -33,7 +33,6 @@ | |||
33 | #include <plat/sdrc.h> | 33 | #include <plat/sdrc.h> |
34 | #include <plat/gpmc.h> | 34 | #include <plat/gpmc.h> |
35 | #include <plat/serial.h> | 35 | #include <plat/serial.h> |
36 | #include <plat/mux.h> | ||
37 | #include <plat/vram.h> | 36 | #include <plat/vram.h> |
38 | 37 | ||
39 | #include "clock.h" | 38 | #include "clock.h" |
@@ -73,21 +72,21 @@ static struct map_desc omap24xx_io_desc[] __initdata = { | |||
73 | #ifdef CONFIG_ARCH_OMAP2420 | 72 | #ifdef CONFIG_ARCH_OMAP2420 |
74 | static struct map_desc omap242x_io_desc[] __initdata = { | 73 | static struct map_desc omap242x_io_desc[] __initdata = { |
75 | { | 74 | { |
76 | .virtual = DSP_MEM_24XX_VIRT, | 75 | .virtual = DSP_MEM_2420_VIRT, |
77 | .pfn = __phys_to_pfn(DSP_MEM_24XX_PHYS), | 76 | .pfn = __phys_to_pfn(DSP_MEM_2420_PHYS), |
78 | .length = DSP_MEM_24XX_SIZE, | 77 | .length = DSP_MEM_2420_SIZE, |
79 | .type = MT_DEVICE | 78 | .type = MT_DEVICE |
80 | }, | 79 | }, |
81 | { | 80 | { |
82 | .virtual = DSP_IPI_24XX_VIRT, | 81 | .virtual = DSP_IPI_2420_VIRT, |
83 | .pfn = __phys_to_pfn(DSP_IPI_24XX_PHYS), | 82 | .pfn = __phys_to_pfn(DSP_IPI_2420_PHYS), |
84 | .length = DSP_IPI_24XX_SIZE, | 83 | .length = DSP_IPI_2420_SIZE, |
85 | .type = MT_DEVICE | 84 | .type = MT_DEVICE |
86 | }, | 85 | }, |
87 | { | 86 | { |
88 | .virtual = DSP_MMU_24XX_VIRT, | 87 | .virtual = DSP_MMU_2420_VIRT, |
89 | .pfn = __phys_to_pfn(DSP_MMU_24XX_PHYS), | 88 | .pfn = __phys_to_pfn(DSP_MMU_2420_PHYS), |
90 | .length = DSP_MMU_24XX_SIZE, | 89 | .length = DSP_MMU_2420_SIZE, |
91 | .type = MT_DEVICE | 90 | .type = MT_DEVICE |
92 | }, | 91 | }, |
93 | }; | 92 | }; |
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index e071b3fd187..459ef23ab8a 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c | |||
@@ -994,8 +994,10 @@ int __init omap_mux_init(u32 mux_pbase, u32 mux_size, | |||
994 | } | 994 | } |
995 | 995 | ||
996 | #ifdef CONFIG_OMAP_MUX | 996 | #ifdef CONFIG_OMAP_MUX |
997 | omap_mux_package_fixup(package_subset, superset); | 997 | if (package_subset) |
998 | omap_mux_package_init_balls(package_balls, superset); | 998 | omap_mux_package_fixup(package_subset, superset); |
999 | if (package_balls) | ||
1000 | omap_mux_package_init_balls(package_balls, superset); | ||
999 | omap_mux_set_cmdline_signals(); | 1001 | omap_mux_set_cmdline_signals(); |
1000 | omap_mux_set_board_signals(board_mux); | 1002 | omap_mux_set_board_signals(board_mux); |
1001 | #endif | 1003 | #endif |
diff --git a/arch/arm/mach-omap2/opp2420_data.c b/arch/arm/mach-omap2/opp2420_data.c index 126a9396b3a..e6dda694fd5 100644 --- a/arch/arm/mach-omap2/opp2420_data.c +++ b/arch/arm/mach-omap2/opp2420_data.c | |||
@@ -9,45 +9,47 @@ | |||
9 | * The OMAP2 processor can be run at several discrete 'PRCM configurations'. | 9 | * The OMAP2 processor can be run at several discrete 'PRCM configurations'. |
10 | * These configurations are characterized by voltage and speed for clocks. | 10 | * These configurations are characterized by voltage and speed for clocks. |
11 | * The device is only validated for certain combinations. One way to express | 11 | * The device is only validated for certain combinations. One way to express |
12 | * these combinations is via the 'ratio's' which the clocks operate with | 12 | * these combinations is via the 'ratios' which the clocks operate with |
13 | * respect to each other. These ratio sets are for a given voltage/DPLL | 13 | * respect to each other. These ratio sets are for a given voltage/DPLL |
14 | * setting. All configurations can be described by a DPLL setting and a ratio | 14 | * setting. All configurations can be described by a DPLL setting and a ratio. |
15 | * There are 3 ratio sets for the 2430 and X ratio sets for 2420. | ||
16 | * | ||
17 | * 2430 differs from 2420 in that there are no more phase synchronizers used. | ||
18 | * They both have a slightly different clock domain setup. 2420(iva1,dsp) vs | ||
19 | * 2430 (iva2.1, NOdsp, mdm) | ||
20 | * | 15 | * |
21 | * XXX Missing voltage data. | 16 | * XXX Missing voltage data. |
17 | * XXX Missing 19.2MHz sys_clk rate sets (needed for N800/N810) | ||
22 | * | 18 | * |
23 | * THe format described in this file is deprecated. Once a reasonable | 19 | * THe format described in this file is deprecated. Once a reasonable |
24 | * OPP API exists, the data in this file should be converted to use it. | 20 | * OPP API exists, the data in this file should be converted to use it. |
25 | * | 21 | * |
26 | * This is technically part of the OMAP2xxx clock code. | 22 | * This is technically part of the OMAP2xxx clock code. |
23 | * | ||
24 | * Considerable work is still needed to fully support dynamic frequency | ||
25 | * changes on OMAP2xxx-series chips. Readers interested in such a | ||
26 | * project are encouraged to review the Maemo Diablo RX-34 and RX-44 | ||
27 | * kernel source at: | ||
28 | * http://repository.maemo.org/pool/diablo/free/k/kernel-source-diablo/ | ||
27 | */ | 29 | */ |
28 | 30 | ||
29 | #include "opp2xxx.h" | 31 | #include "opp2xxx.h" |
30 | #include "sdrc.h" | 32 | #include "sdrc.h" |
31 | #include "clock.h" | 33 | #include "clock.h" |
32 | 34 | ||
33 | /*------------------------------------------------------------------------- | 35 | /* |
34 | * Key dividers which make up a PRCM set. Ratio's for a PRCM are mandated. | 36 | * Key dividers which make up a PRCM set. Ratios for a PRCM are mandated. |
35 | * xtal_speed, dpll_speed, mpu_speed, CM_CLKSEL_MPU, | 37 | * xtal_speed, dpll_speed, mpu_speed, CM_CLKSEL_MPU, |
36 | * CM_CLKSEL_DSP, CM_CLKSEL_GFX, CM_CLKSEL1_CORE, CM_CLKSEL1_PLL, | 38 | * CM_CLKSEL_DSP, CM_CLKSEL_GFX, CM_CLKSEL1_CORE, CM_CLKSEL1_PLL, |
37 | * CM_CLKSEL2_PLL, CM_CLKSEL_MDM | 39 | * CM_CLKSEL2_PLL, CM_CLKSEL_MDM |
38 | * | 40 | * |
39 | * Filling in table based on H4 boards and 2430-SDPs variants available. | 41 | * Filling in table based on H4 boards available. There are quite a |
40 | * There are quite a few more rates combinations which could be defined. | 42 | * few more rate combinations which could be defined. |
41 | * | 43 | * |
42 | * When multiple values are defined the start up will try and choose the | 44 | * When multiple values are defined the start up will try and choose |
43 | * fastest one. If a 'fast' value is defined, then automatically, the /2 | 45 | * the fastest one. If a 'fast' value is defined, then automatically, |
44 | * one should be included as it can be used. Generally having more that | 46 | * the /2 one should be included as it can be used. Generally having |
45 | * one fast set does not make sense, as static timings need to be changed | 47 | * more than one fast set does not make sense, as static timings need |
46 | * to change the set. The exception is the bypass setting which is | 48 | * to be changed to change the set. The exception is the bypass |
47 | * availble for low power bypass. | 49 | * setting which is available for low power bypass. |
48 | * | 50 | * |
49 | * Note: This table needs to be sorted, fastest to slowest. | 51 | * Note: This table needs to be sorted, fastest to slowest. |
50 | *-------------------------------------------------------------------------*/ | 52 | **/ |
51 | const struct prcm_config omap2420_rate_table[] = { | 53 | const struct prcm_config omap2420_rate_table[] = { |
52 | /* PRCM I - FAST */ | 54 | /* PRCM I - FAST */ |
53 | {S12M, S660M, S330M, RI_CM_CLKSEL_MPU_VAL, /* 330MHz ARM */ | 55 | {S12M, S660M, S330M, RI_CM_CLKSEL_MPU_VAL, /* 330MHz ARM */ |
diff --git a/arch/arm/mach-omap2/opp2430_data.c b/arch/arm/mach-omap2/opp2430_data.c index edb81672c84..1b9596ae201 100644 --- a/arch/arm/mach-omap2/opp2430_data.c +++ b/arch/arm/mach-omap2/opp2430_data.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * opp2420_data.c - old-style "OPP" table for OMAP2420 | 2 | * opp2430_data.c - old-style "OPP" table for OMAP2430 |
3 | * | 3 | * |
4 | * Copyright (C) 2005-2009 Texas Instruments, Inc. | 4 | * Copyright (C) 2005-2009 Texas Instruments, Inc. |
5 | * Copyright (C) 2004-2009 Nokia Corporation | 5 | * Copyright (C) 2004-2009 Nokia Corporation |
@@ -9,16 +9,16 @@ | |||
9 | * The OMAP2 processor can be run at several discrete 'PRCM configurations'. | 9 | * The OMAP2 processor can be run at several discrete 'PRCM configurations'. |
10 | * These configurations are characterized by voltage and speed for clocks. | 10 | * These configurations are characterized by voltage and speed for clocks. |
11 | * The device is only validated for certain combinations. One way to express | 11 | * The device is only validated for certain combinations. One way to express |
12 | * these combinations is via the 'ratio's' which the clocks operate with | 12 | * these combinations is via the 'ratios' which the clocks operate with |
13 | * respect to each other. These ratio sets are for a given voltage/DPLL | 13 | * respect to each other. These ratio sets are for a given voltage/DPLL |
14 | * setting. All configurations can be described by a DPLL setting and a ratio | 14 | * setting. All configurations can be described by a DPLL setting and a ratio. |
15 | * There are 3 ratio sets for the 2430 and X ratio sets for 2420. | ||
16 | * | 15 | * |
17 | * 2430 differs from 2420 in that there are no more phase synchronizers used. | 16 | * 2430 differs from 2420 in that there are no more phase synchronizers used. |
18 | * They both have a slightly different clock domain setup. 2420(iva1,dsp) vs | 17 | * They both have a slightly different clock domain setup. 2420(iva1,dsp) vs |
19 | * 2430 (iva2.1, NOdsp, mdm) | 18 | * 2430 (iva2.1, NOdsp, mdm) |
20 | * | 19 | * |
21 | * XXX Missing voltage data. | 20 | * XXX Missing voltage data. |
21 | * XXX Missing 19.2MHz sys_clk rate sets. | ||
22 | * | 22 | * |
23 | * THe format described in this file is deprecated. Once a reasonable | 23 | * THe format described in this file is deprecated. Once a reasonable |
24 | * OPP API exists, the data in this file should be converted to use it. | 24 | * OPP API exists, the data in this file should be converted to use it. |
@@ -30,24 +30,24 @@ | |||
30 | #include "sdrc.h" | 30 | #include "sdrc.h" |
31 | #include "clock.h" | 31 | #include "clock.h" |
32 | 32 | ||
33 | /*------------------------------------------------------------------------- | 33 | /* |
34 | * Key dividers which make up a PRCM set. Ratio's for a PRCM are mandated. | 34 | * Key dividers which make up a PRCM set. Ratios for a PRCM are mandated. |
35 | * xtal_speed, dpll_speed, mpu_speed, CM_CLKSEL_MPU, | 35 | * xtal_speed, dpll_speed, mpu_speed, CM_CLKSEL_MPU, |
36 | * CM_CLKSEL_DSP, CM_CLKSEL_GFX, CM_CLKSEL1_CORE, CM_CLKSEL1_PLL, | 36 | * CM_CLKSEL_DSP, CM_CLKSEL_GFX, CM_CLKSEL1_CORE, CM_CLKSEL1_PLL, |
37 | * CM_CLKSEL2_PLL, CM_CLKSEL_MDM | 37 | * CM_CLKSEL2_PLL, CM_CLKSEL_MDM |
38 | * | 38 | * |
39 | * Filling in table based on H4 boards and 2430-SDPs variants available. | 39 | * Filling in table based on 2430-SDPs variants available. There are |
40 | * There are quite a few more rates combinations which could be defined. | 40 | * quite a few more rate combinations which could be defined. |
41 | * | 41 | * |
42 | * When multiple values are defined the start up will try and choose the | 42 | * When multiple values are defined the start up will try and choose |
43 | * fastest one. If a 'fast' value is defined, then automatically, the /2 | 43 | * the fastest one. If a 'fast' value is defined, then automatically, |
44 | * one should be included as it can be used. Generally having more that | 44 | * the /2 one should be included as it can be used. Generally having |
45 | * one fast set does not make sense, as static timings need to be changed | 45 | * more than one fast set does not make sense, as static timings need |
46 | * to change the set. The exception is the bypass setting which is | 46 | * to be changed to change the set. The exception is the bypass |
47 | * availble for low power bypass. | 47 | * setting which is available for low power bypass. |
48 | * | 48 | * |
49 | * Note: This table needs to be sorted, fastest to slowest. | 49 | * Note: This table needs to be sorted, fastest to slowest. |
50 | *-------------------------------------------------------------------------*/ | 50 | */ |
51 | const struct prcm_config omap2430_rate_table[] = { | 51 | const struct prcm_config omap2430_rate_table[] = { |
52 | /* PRCM #4 - ratio2 (ES2.1) - FAST */ | 52 | /* PRCM #4 - ratio2 (ES2.1) - FAST */ |
53 | {S13M, S798M, S399M, R2_CM_CLKSEL_MPU_VAL, /* 399MHz ARM */ | 53 | {S13M, S798M, S399M, R2_CM_CLKSEL_MPU_VAL, /* 399MHz ARM */ |
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 81ed252a0f8..c6cc809afb7 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -124,8 +124,8 @@ static void omap3_core_save_context(void) | |||
124 | control_padconf_off |= START_PADCONF_SAVE; | 124 | control_padconf_off |= START_PADCONF_SAVE; |
125 | omap_ctrl_writel(control_padconf_off, OMAP343X_CONTROL_PADCONF_OFF); | 125 | omap_ctrl_writel(control_padconf_off, OMAP343X_CONTROL_PADCONF_OFF); |
126 | /* wait for the save to complete */ | 126 | /* wait for the save to complete */ |
127 | while (!omap_ctrl_readl(OMAP343X_CONTROL_GENERAL_PURPOSE_STATUS) | 127 | while (!(omap_ctrl_readl(OMAP343X_CONTROL_GENERAL_PURPOSE_STATUS) |
128 | & PADCONF_SAVE_DONE) | 128 | & PADCONF_SAVE_DONE)) |
129 | ; | 129 | ; |
130 | /* Save the Interrupt controller context */ | 130 | /* Save the Interrupt controller context */ |
131 | omap_intc_save_context(); | 131 | omap_intc_save_context(); |
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index 19805a7de06..8c964bec815 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
@@ -125,6 +125,13 @@ static struct plat_serial8250_port serial_platform_data3[] = { | |||
125 | } | 125 | } |
126 | }; | 126 | }; |
127 | #endif | 127 | #endif |
128 | static inline unsigned int __serial_read_reg(struct uart_port *up, | ||
129 | int offset) | ||
130 | { | ||
131 | offset <<= up->regshift; | ||
132 | return (unsigned int)__raw_readb(up->membase + offset); | ||
133 | } | ||
134 | |||
128 | static inline unsigned int serial_read_reg(struct plat_serial8250_port *up, | 135 | static inline unsigned int serial_read_reg(struct plat_serial8250_port *up, |
129 | int offset) | 136 | int offset) |
130 | { | 137 | { |
@@ -583,11 +590,12 @@ static unsigned int serial_in_override(struct uart_port *up, int offset) | |||
583 | { | 590 | { |
584 | if (UART_RX == offset) { | 591 | if (UART_RX == offset) { |
585 | unsigned int lsr; | 592 | unsigned int lsr; |
586 | lsr = serial_read_reg(omap_uart[up->line].p, UART_LSR); | 593 | lsr = __serial_read_reg(up, UART_LSR); |
587 | if (!(lsr & UART_LSR_DR)) | 594 | if (!(lsr & UART_LSR_DR)) |
588 | return -EPERM; | 595 | return -EPERM; |
589 | } | 596 | } |
590 | return serial_read_reg(omap_uart[up->line].p, offset); | 597 | |
598 | return __serial_read_reg(up, offset); | ||
591 | } | 599 | } |
592 | 600 | ||
593 | void __init omap_serial_early_init(void) | 601 | void __init omap_serial_early_init(void) |
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig index 8a0837ea029..dee92182749 100644 --- a/arch/arm/mach-pxa/Kconfig +++ b/arch/arm/mach-pxa/Kconfig | |||
@@ -37,6 +37,8 @@ config MACH_ZYLONITE320 | |||
37 | config MACH_LITTLETON | 37 | config MACH_LITTLETON |
38 | bool "PXA3xx Form Factor Platform (aka Littleton)" | 38 | bool "PXA3xx Form Factor Platform (aka Littleton)" |
39 | select PXA3xx | 39 | select PXA3xx |
40 | select CPU_PXA300 | ||
41 | select CPU_PXA310 | ||
40 | select PXA_SSP | 42 | select PXA_SSP |
41 | 43 | ||
42 | config MACH_TAVOREVB | 44 | config MACH_TAVOREVB |
diff --git a/arch/arm/mach-pxa/include/mach/hardware.h b/arch/arm/mach-pxa/include/mach/hardware.h index 50f1297bf5a..e741bf1bfb2 100644 --- a/arch/arm/mach-pxa/include/mach/hardware.h +++ b/arch/arm/mach-pxa/include/mach/hardware.h | |||
@@ -250,20 +250,17 @@ | |||
250 | 250 | ||
251 | #define cpu_is_pxa930() \ | 251 | #define cpu_is_pxa930() \ |
252 | ({ \ | 252 | ({ \ |
253 | unsigned int id = read_cpuid(CPUID_ID); \ | 253 | __cpu_is_pxa930(read_cpuid_id()); \ |
254 | __cpu_is_pxa930(id); \ | ||
255 | }) | 254 | }) |
256 | 255 | ||
257 | #define cpu_is_pxa935() \ | 256 | #define cpu_is_pxa935() \ |
258 | ({ \ | 257 | ({ \ |
259 | unsigned int id = read_cpuid(CPUID_ID); \ | 258 | __cpu_is_pxa935(read_cpuid_id()); \ |
260 | __cpu_is_pxa935(id); \ | ||
261 | }) | 259 | }) |
262 | 260 | ||
263 | #define cpu_is_pxa950() \ | 261 | #define cpu_is_pxa950() \ |
264 | ({ \ | 262 | ({ \ |
265 | unsigned int id = read_cpuid(CPUID_ID); \ | 263 | __cpu_is_pxa950(read_cpuid_id()); \ |
266 | __cpu_is_pxa950(id); \ | ||
267 | }) | 264 | }) |
268 | 265 | ||
269 | 266 | ||
diff --git a/arch/arm/mach-pxa/include/mach/zylonite.h b/arch/arm/mach-pxa/include/mach/zylonite.h index bf6785adccf..9edf645368d 100644 --- a/arch/arm/mach-pxa/include/mach/zylonite.h +++ b/arch/arm/mach-pxa/include/mach/zylonite.h | |||
@@ -8,13 +8,6 @@ | |||
8 | /* the following variables are processor specific and initialized | 8 | /* the following variables are processor specific and initialized |
9 | * by the corresponding zylonite_pxa3xx_init() | 9 | * by the corresponding zylonite_pxa3xx_init() |
10 | */ | 10 | */ |
11 | struct platform_mmc_slot { | ||
12 | int gpio_cd; | ||
13 | int gpio_wp; | ||
14 | }; | ||
15 | |||
16 | extern struct platform_mmc_slot zylonite_mmc_slot[]; | ||
17 | |||
18 | extern int gpio_eth_irq; | 11 | extern int gpio_eth_irq; |
19 | extern int gpio_debug_led1; | 12 | extern int gpio_debug_led1; |
20 | extern int gpio_debug_led2; | 13 | extern int gpio_debug_led2; |
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c index f28c1715b91..fa527b258d6 100644 --- a/arch/arm/mach-pxa/littleton.c +++ b/arch/arm/mach-pxa/littleton.c | |||
@@ -110,6 +110,12 @@ static mfp_cfg_t littleton_mfp_cfg[] __initdata = { | |||
110 | GPIO7_MMC1_CLK, | 110 | GPIO7_MMC1_CLK, |
111 | GPIO8_MMC1_CMD, | 111 | GPIO8_MMC1_CMD, |
112 | GPIO15_GPIO, /* card detect */ | 112 | GPIO15_GPIO, /* card detect */ |
113 | |||
114 | /* UART3 */ | ||
115 | GPIO107_UART3_CTS, | ||
116 | GPIO108_UART3_RTS, | ||
117 | GPIO109_UART3_TXD, | ||
118 | GPIO110_UART3_RXD, | ||
113 | }; | 119 | }; |
114 | 120 | ||
115 | static struct resource smc91x_resources[] = { | 121 | static struct resource smc91x_resources[] = { |
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c index 8a38d604dc7..189f330719a 100644 --- a/arch/arm/mach-pxa/magician.c +++ b/arch/arm/mach-pxa/magician.c | |||
@@ -381,7 +381,7 @@ err: | |||
381 | return ret; | 381 | return ret; |
382 | } | 382 | } |
383 | 383 | ||
384 | static int magician_backlight_notify(int brightness) | 384 | static int magician_backlight_notify(struct device *dev, int brightness) |
385 | { | 385 | { |
386 | gpio_set_value(EGPIO_MAGICIAN_BL_POWER, brightness); | 386 | gpio_set_value(EGPIO_MAGICIAN_BL_POWER, brightness); |
387 | if (brightness >= 200) { | 387 | if (brightness >= 200) { |
diff --git a/arch/arm/mach-pxa/palmld.c b/arch/arm/mach-pxa/palmld.c index 59140217890..e100af78b16 100644 --- a/arch/arm/mach-pxa/palmld.c +++ b/arch/arm/mach-pxa/palmld.c | |||
@@ -270,7 +270,7 @@ err: | |||
270 | return ret; | 270 | return ret; |
271 | } | 271 | } |
272 | 272 | ||
273 | static int palmld_backlight_notify(int brightness) | 273 | static int palmld_backlight_notify(struct device *dev, int brightness) |
274 | { | 274 | { |
275 | gpio_set_value(GPIO_NR_PALMLD_BL_POWER, brightness); | 275 | gpio_set_value(GPIO_NR_PALMLD_BL_POWER, brightness); |
276 | gpio_set_value(GPIO_NR_PALMLD_LCD_POWER, brightness); | 276 | gpio_set_value(GPIO_NR_PALMLD_LCD_POWER, brightness); |
diff --git a/arch/arm/mach-pxa/palmt5.c b/arch/arm/mach-pxa/palmt5.c index 7f89ca20f13..8fe3ec27568 100644 --- a/arch/arm/mach-pxa/palmt5.c +++ b/arch/arm/mach-pxa/palmt5.c | |||
@@ -209,7 +209,7 @@ err: | |||
209 | return ret; | 209 | return ret; |
210 | } | 210 | } |
211 | 211 | ||
212 | static int palmt5_backlight_notify(int brightness) | 212 | static int palmt5_backlight_notify(struct device *dev, int brightness) |
213 | { | 213 | { |
214 | gpio_set_value(GPIO_NR_PALMT5_BL_POWER, brightness); | 214 | gpio_set_value(GPIO_NR_PALMT5_BL_POWER, brightness); |
215 | gpio_set_value(GPIO_NR_PALMT5_LCD_POWER, brightness); | 215 | gpio_set_value(GPIO_NR_PALMT5_LCD_POWER, brightness); |
diff --git a/arch/arm/mach-pxa/palmtc.c b/arch/arm/mach-pxa/palmtc.c index 30841759200..b992f07ece2 100644 --- a/arch/arm/mach-pxa/palmtc.c +++ b/arch/arm/mach-pxa/palmtc.c | |||
@@ -185,7 +185,7 @@ err: | |||
185 | return ret; | 185 | return ret; |
186 | } | 186 | } |
187 | 187 | ||
188 | static int palmtc_backlight_notify(int brightness) | 188 | static int palmtc_backlight_notify(struct device *dev, int brightness) |
189 | { | 189 | { |
190 | /* backlight is on when GPIO16 AF0 is high */ | 190 | /* backlight is on when GPIO16 AF0 is high */ |
191 | gpio_set_value(GPIO_NR_PALMTC_BL_POWER, brightness); | 191 | gpio_set_value(GPIO_NR_PALMTC_BL_POWER, brightness); |
diff --git a/arch/arm/mach-pxa/palmte2.c b/arch/arm/mach-pxa/palmte2.c index 265d62bae7d..dc728d6ab94 100644 --- a/arch/arm/mach-pxa/palmte2.c +++ b/arch/arm/mach-pxa/palmte2.c | |||
@@ -181,7 +181,7 @@ err: | |||
181 | return ret; | 181 | return ret; |
182 | } | 182 | } |
183 | 183 | ||
184 | static int palmte2_backlight_notify(int brightness) | 184 | static int palmte2_backlight_notify(struct device *dev, int brightness) |
185 | { | 185 | { |
186 | gpio_set_value(GPIO_NR_PALMTE2_BL_POWER, brightness); | 186 | gpio_set_value(GPIO_NR_PALMTE2_BL_POWER, brightness); |
187 | gpio_set_value(GPIO_NR_PALMTE2_LCD_POWER, brightness); | 187 | gpio_set_value(GPIO_NR_PALMTE2_LCD_POWER, brightness); |
diff --git a/arch/arm/mach-pxa/palmtreo.c b/arch/arm/mach-pxa/palmtreo.c index 606eb7e8a17..b433bb49671 100644 --- a/arch/arm/mach-pxa/palmtreo.c +++ b/arch/arm/mach-pxa/palmtreo.c | |||
@@ -375,7 +375,7 @@ err: | |||
375 | return ret; | 375 | return ret; |
376 | } | 376 | } |
377 | 377 | ||
378 | static int treo_backlight_notify(int brightness) | 378 | static int treo_backlight_notify(struct device *dev, int brightness) |
379 | { | 379 | { |
380 | gpio_set_value(GPIO_NR_TREO_BL_POWER, brightness); | 380 | gpio_set_value(GPIO_NR_TREO_BL_POWER, brightness); |
381 | return TREO_MAX_INTENSITY - brightness; | 381 | return TREO_MAX_INTENSITY - brightness; |
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c index 7bf18c2f002..b37a025c0b7 100644 --- a/arch/arm/mach-pxa/palmtx.c +++ b/arch/arm/mach-pxa/palmtx.c | |||
@@ -269,7 +269,7 @@ err: | |||
269 | return ret; | 269 | return ret; |
270 | } | 270 | } |
271 | 271 | ||
272 | static int palmtx_backlight_notify(int brightness) | 272 | static int palmtx_backlight_notify(struct device *dev, int brightness) |
273 | { | 273 | { |
274 | gpio_set_value(GPIO_NR_PALMTX_BL_POWER, brightness); | 274 | gpio_set_value(GPIO_NR_PALMTX_BL_POWER, brightness); |
275 | gpio_set_value(GPIO_NR_PALMTX_LCD_POWER, brightness); | 275 | gpio_set_value(GPIO_NR_PALMTX_LCD_POWER, brightness); |
diff --git a/arch/arm/mach-pxa/palmz72.c b/arch/arm/mach-pxa/palmz72.c index d787ac7cfdd..1c5d68a9451 100644 --- a/arch/arm/mach-pxa/palmz72.c +++ b/arch/arm/mach-pxa/palmz72.c | |||
@@ -196,7 +196,7 @@ err: | |||
196 | return ret; | 196 | return ret; |
197 | } | 197 | } |
198 | 198 | ||
199 | static int palmz72_backlight_notify(int brightness) | 199 | static int palmz72_backlight_notify(struct device *dev, int brightness) |
200 | { | 200 | { |
201 | gpio_set_value(GPIO_NR_PALMZ72_BL_POWER, brightness); | 201 | gpio_set_value(GPIO_NR_PALMZ72_BL_POWER, brightness); |
202 | gpio_set_value(GPIO_NR_PALMZ72_LCD_POWER, brightness); | 202 | gpio_set_value(GPIO_NR_PALMZ72_LCD_POWER, brightness); |
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c index e5eeb3a62d0..c2b938a4d5c 100644 --- a/arch/arm/mach-pxa/poodle.c +++ b/arch/arm/mach-pxa/poodle.c | |||
@@ -293,7 +293,7 @@ static struct pxamci_platform_data poodle_mci_platform_data = { | |||
293 | .init = poodle_mci_init, | 293 | .init = poodle_mci_init, |
294 | .setpower = poodle_mci_setpower, | 294 | .setpower = poodle_mci_setpower, |
295 | .exit = poodle_mci_exit, | 295 | .exit = poodle_mci_exit, |
296 | .gpio_card_detect = POODLE_IRQ_GPIO_nSD_DETECT, | 296 | .gpio_card_detect = POODLE_GPIO_nSD_DETECT, |
297 | .gpio_card_ro = POODLE_GPIO_nSD_WP, | 297 | .gpio_card_ro = POODLE_GPIO_nSD_WP, |
298 | .gpio_power = -1, | 298 | .gpio_power = -1, |
299 | }; | 299 | }; |
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 4b50f144fa4..28352c0b8c3 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
@@ -389,13 +389,13 @@ static struct gpio_keys_button spitz_gpio_keys[] = { | |||
389 | .type = EV_SW, | 389 | .type = EV_SW, |
390 | .code = 0, | 390 | .code = 0, |
391 | .gpio = SPITZ_GPIO_SWA, | 391 | .gpio = SPITZ_GPIO_SWA, |
392 | .desc = "Display Down", | 392 | .desc = "Display Down", |
393 | }, | 393 | }, |
394 | { | 394 | { |
395 | .type = EV_SW, | 395 | .type = EV_SW, |
396 | .code = 1, | 396 | .code = 1, |
397 | .gpio = SPITZ_GPIO_SWB, | 397 | .gpio = SPITZ_GPIO_SWB, |
398 | .desc = "Lid Closed", | 398 | .desc = "Lid Closed", |
399 | }, | 399 | }, |
400 | }; | 400 | }; |
401 | 401 | ||
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c index 5352b4e5a7d..89f258c9e12 100644 --- a/arch/arm/mach-pxa/viper.c +++ b/arch/arm/mach-pxa/viper.c | |||
@@ -379,7 +379,7 @@ err_request_bckl: | |||
379 | return ret; | 379 | return ret; |
380 | } | 380 | } |
381 | 381 | ||
382 | static int viper_backlight_notify(int brightness) | 382 | static int viper_backlight_notify(struct device *dev, int brightness) |
383 | { | 383 | { |
384 | gpio_set_value(VIPER_LCD_EN_GPIO, !!brightness); | 384 | gpio_set_value(VIPER_LCD_EN_GPIO, !!brightness); |
385 | gpio_set_value(VIPER_BCKLIGHT_EN_GPIO, !!brightness); | 385 | gpio_set_value(VIPER_BCKLIGHT_EN_GPIO, !!brightness); |
diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c index 5b986a8bd9e..75f2a37f945 100644 --- a/arch/arm/mach-pxa/zeus.c +++ b/arch/arm/mach-pxa/zeus.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/mtd/physmap.h> | 25 | #include <linux/mtd/physmap.h> |
26 | #include <linux/i2c.h> | 26 | #include <linux/i2c.h> |
27 | #include <linux/i2c/pca953x.h> | 27 | #include <linux/i2c/pca953x.h> |
28 | #include <linux/apm-emulation.h> | ||
28 | 29 | ||
29 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
30 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
@@ -626,8 +627,27 @@ static void zeus_power_off(void) | |||
626 | pxa27x_cpu_suspend(PWRMODE_DEEPSLEEP); | 627 | pxa27x_cpu_suspend(PWRMODE_DEEPSLEEP); |
627 | } | 628 | } |
628 | 629 | ||
629 | int zeus_get_pcb_info(struct i2c_client *client, unsigned gpio, | 630 | #ifdef CONFIG_APM_EMULATION |
630 | unsigned ngpio, void *context) | 631 | static void zeus_get_power_status(struct apm_power_info *info) |
632 | { | ||
633 | /* Power supply is always present */ | ||
634 | info->ac_line_status = APM_AC_ONLINE; | ||
635 | info->battery_status = APM_BATTERY_STATUS_NOT_PRESENT; | ||
636 | info->battery_flag = APM_BATTERY_FLAG_NOT_PRESENT; | ||
637 | } | ||
638 | |||
639 | static inline void zeus_setup_apm(void) | ||
640 | { | ||
641 | apm_get_power_status = zeus_get_power_status; | ||
642 | } | ||
643 | #else | ||
644 | static inline void zeus_setup_apm(void) | ||
645 | { | ||
646 | } | ||
647 | #endif | ||
648 | |||
649 | static int zeus_get_pcb_info(struct i2c_client *client, unsigned gpio, | ||
650 | unsigned ngpio, void *context) | ||
631 | { | 651 | { |
632 | int i; | 652 | int i; |
633 | u8 pcb_info = 0; | 653 | u8 pcb_info = 0; |
@@ -726,9 +746,18 @@ static mfp_cfg_t zeus_pin_config[] __initdata = { | |||
726 | GPIO99_GPIO, /* CF RDY */ | 746 | GPIO99_GPIO, /* CF RDY */ |
727 | }; | 747 | }; |
728 | 748 | ||
749 | /* | ||
750 | * DM9k MSCx settings: SRAM, 16 bits | ||
751 | * 17 cycles delay first access | ||
752 | * 5 cycles delay next access | ||
753 | * 13 cycles recovery time | ||
754 | * faster device | ||
755 | */ | ||
756 | #define DM9K_MSC_VALUE 0xe4c9 | ||
757 | |||
729 | static void __init zeus_init(void) | 758 | static void __init zeus_init(void) |
730 | { | 759 | { |
731 | u16 dm9000_msc = 0xe279; | 760 | u16 dm9000_msc = DM9K_MSC_VALUE; |
732 | 761 | ||
733 | system_rev = __raw_readw(ZEUS_CPLD_VERSION); | 762 | system_rev = __raw_readw(ZEUS_CPLD_VERSION); |
734 | pr_info("Zeus CPLD V%dI%d\n", (system_rev & 0xf0) >> 4, (system_rev & 0x0f)); | 763 | pr_info("Zeus CPLD V%dI%d\n", (system_rev & 0xf0) >> 4, (system_rev & 0x0f)); |
@@ -738,6 +767,7 @@ static void __init zeus_init(void) | |||
738 | MSC1 = (MSC1 & 0xffff0000) | dm9000_msc; | 767 | MSC1 = (MSC1 & 0xffff0000) | dm9000_msc; |
739 | 768 | ||
740 | pm_power_off = zeus_power_off; | 769 | pm_power_off = zeus_power_off; |
770 | zeus_setup_apm(); | ||
741 | 771 | ||
742 | pxa2xx_mfp_config(ARRAY_AND_SIZE(zeus_pin_config)); | 772 | pxa2xx_mfp_config(ARRAY_AND_SIZE(zeus_pin_config)); |
743 | 773 | ||
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c index b66e9e2d06e..2b4043c04d0 100644 --- a/arch/arm/mach-pxa/zylonite.c +++ b/arch/arm/mach-pxa/zylonite.c | |||
@@ -36,9 +36,6 @@ | |||
36 | #include "devices.h" | 36 | #include "devices.h" |
37 | #include "generic.h" | 37 | #include "generic.h" |
38 | 38 | ||
39 | #define MAX_SLOTS 3 | ||
40 | struct platform_mmc_slot zylonite_mmc_slot[MAX_SLOTS]; | ||
41 | |||
42 | int gpio_eth_irq; | 39 | int gpio_eth_irq; |
43 | int gpio_debug_led1; | 40 | int gpio_debug_led1; |
44 | int gpio_debug_led2; | 41 | int gpio_debug_led2; |
@@ -220,84 +217,28 @@ static inline void zylonite_init_lcd(void) {} | |||
220 | #endif | 217 | #endif |
221 | 218 | ||
222 | #if defined(CONFIG_MMC) | 219 | #if defined(CONFIG_MMC) |
223 | static int zylonite_mci_ro(struct device *dev) | ||
224 | { | ||
225 | struct platform_device *pdev = to_platform_device(dev); | ||
226 | |||
227 | return gpio_get_value(zylonite_mmc_slot[pdev->id].gpio_wp); | ||
228 | } | ||
229 | |||
230 | static int zylonite_mci_init(struct device *dev, | ||
231 | irq_handler_t zylonite_detect_int, | ||
232 | void *data) | ||
233 | { | ||
234 | struct platform_device *pdev = to_platform_device(dev); | ||
235 | int err, cd_irq, gpio_cd, gpio_wp; | ||
236 | |||
237 | cd_irq = gpio_to_irq(zylonite_mmc_slot[pdev->id].gpio_cd); | ||
238 | gpio_cd = zylonite_mmc_slot[pdev->id].gpio_cd; | ||
239 | gpio_wp = zylonite_mmc_slot[pdev->id].gpio_wp; | ||
240 | |||
241 | /* | ||
242 | * setup GPIO for Zylonite MMC controller | ||
243 | */ | ||
244 | err = gpio_request(gpio_cd, "mmc card detect"); | ||
245 | if (err) | ||
246 | goto err_request_cd; | ||
247 | gpio_direction_input(gpio_cd); | ||
248 | |||
249 | err = gpio_request(gpio_wp, "mmc write protect"); | ||
250 | if (err) | ||
251 | goto err_request_wp; | ||
252 | gpio_direction_input(gpio_wp); | ||
253 | |||
254 | err = request_irq(cd_irq, zylonite_detect_int, | ||
255 | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, | ||
256 | "MMC card detect", data); | ||
257 | if (err) { | ||
258 | printk(KERN_ERR "%s: MMC/SD/SDIO: " | ||
259 | "can't request card detect IRQ\n", __func__); | ||
260 | goto err_request_irq; | ||
261 | } | ||
262 | |||
263 | return 0; | ||
264 | |||
265 | err_request_irq: | ||
266 | gpio_free(gpio_wp); | ||
267 | err_request_wp: | ||
268 | gpio_free(gpio_cd); | ||
269 | err_request_cd: | ||
270 | return err; | ||
271 | } | ||
272 | |||
273 | static void zylonite_mci_exit(struct device *dev, void *data) | ||
274 | { | ||
275 | struct platform_device *pdev = to_platform_device(dev); | ||
276 | int cd_irq, gpio_cd, gpio_wp; | ||
277 | |||
278 | cd_irq = gpio_to_irq(zylonite_mmc_slot[pdev->id].gpio_cd); | ||
279 | gpio_cd = zylonite_mmc_slot[pdev->id].gpio_cd; | ||
280 | gpio_wp = zylonite_mmc_slot[pdev->id].gpio_wp; | ||
281 | |||
282 | free_irq(cd_irq, data); | ||
283 | gpio_free(gpio_cd); | ||
284 | gpio_free(gpio_wp); | ||
285 | } | ||
286 | |||
287 | static struct pxamci_platform_data zylonite_mci_platform_data = { | 220 | static struct pxamci_platform_data zylonite_mci_platform_data = { |
288 | .detect_delay = 20, | 221 | .detect_delay = 20, |
289 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, | 222 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, |
290 | .init = zylonite_mci_init, | 223 | .gpio_card_detect = EXT_GPIO(0), |
291 | .exit = zylonite_mci_exit, | 224 | .gpio_card_ro = EXT_GPIO(2), |
292 | .get_ro = zylonite_mci_ro, | ||
293 | .gpio_card_detect = -1, | ||
294 | .gpio_card_ro = -1, | ||
295 | .gpio_power = -1, | 225 | .gpio_power = -1, |
296 | }; | 226 | }; |
297 | 227 | ||
298 | static struct pxamci_platform_data zylonite_mci2_platform_data = { | 228 | static struct pxamci_platform_data zylonite_mci2_platform_data = { |
299 | .detect_delay = 20, | 229 | .detect_delay = 20, |
300 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, | 230 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, |
231 | .gpio_card_detect = EXT_GPIO(1), | ||
232 | .gpio_card_ro = EXT_GPIO(3), | ||
233 | .gpio_power = -1, | ||
234 | }; | ||
235 | |||
236 | static struct pxamci_platform_data zylonite_mci3_platform_data = { | ||
237 | .detect_delay = 20, | ||
238 | .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, | ||
239 | .gpio_card_detect = EXT_GPIO(30), | ||
240 | .gpio_card_ro = EXT_GPIO(31), | ||
241 | .gpio_power = -1, | ||
301 | }; | 242 | }; |
302 | 243 | ||
303 | static void __init zylonite_init_mmc(void) | 244 | static void __init zylonite_init_mmc(void) |
@@ -305,7 +246,7 @@ static void __init zylonite_init_mmc(void) | |||
305 | pxa_set_mci_info(&zylonite_mci_platform_data); | 246 | pxa_set_mci_info(&zylonite_mci_platform_data); |
306 | pxa3xx_set_mci2_info(&zylonite_mci2_platform_data); | 247 | pxa3xx_set_mci2_info(&zylonite_mci2_platform_data); |
307 | if (cpu_is_pxa310()) | 248 | if (cpu_is_pxa310()) |
308 | pxa3xx_set_mci3_info(&zylonite_mci_platform_data); | 249 | pxa3xx_set_mci3_info(&zylonite_mci3_platform_data); |
309 | } | 250 | } |
310 | #else | 251 | #else |
311 | static inline void zylonite_init_mmc(void) {} | 252 | static inline void zylonite_init_mmc(void) {} |
diff --git a/arch/arm/mach-pxa/zylonite_pxa300.c b/arch/arm/mach-pxa/zylonite_pxa300.c index 84095440a87..3aa73b3e33f 100644 --- a/arch/arm/mach-pxa/zylonite_pxa300.c +++ b/arch/arm/mach-pxa/zylonite_pxa300.c | |||
@@ -129,8 +129,8 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = { | |||
129 | GPIO22_I2C_SDA, | 129 | GPIO22_I2C_SDA, |
130 | 130 | ||
131 | /* GPIO */ | 131 | /* GPIO */ |
132 | GPIO18_GPIO, /* GPIO Expander #0 INT_N */ | 132 | GPIO18_GPIO | MFP_PULL_HIGH, /* GPIO Expander #0 INT_N */ |
133 | GPIO19_GPIO, /* GPIO Expander #1 INT_N */ | 133 | GPIO19_GPIO | MFP_PULL_HIGH, /* GPIO Expander #1 INT_N */ |
134 | }; | 134 | }; |
135 | 135 | ||
136 | static mfp_cfg_t pxa300_mfp_cfg[] __initdata = { | 136 | static mfp_cfg_t pxa300_mfp_cfg[] __initdata = { |
@@ -258,10 +258,6 @@ void __init zylonite_pxa300_init(void) | |||
258 | /* detect LCD panel */ | 258 | /* detect LCD panel */ |
259 | zylonite_detect_lcd_panel(); | 259 | zylonite_detect_lcd_panel(); |
260 | 260 | ||
261 | /* MMC card detect & write protect for controller 0 */ | ||
262 | zylonite_mmc_slot[0].gpio_cd = EXT_GPIO(0); | ||
263 | zylonite_mmc_slot[0].gpio_wp = EXT_GPIO(2); | ||
264 | |||
265 | /* WM9713 IRQ */ | 261 | /* WM9713 IRQ */ |
266 | wm9713_irq = mfp_to_gpio(MFP_PIN_GPIO26); | 262 | wm9713_irq = mfp_to_gpio(MFP_PIN_GPIO26); |
267 | 263 | ||
@@ -276,10 +272,6 @@ void __init zylonite_pxa300_init(void) | |||
276 | if (cpu_is_pxa310()) { | 272 | if (cpu_is_pxa310()) { |
277 | pxa3xx_mfp_config(ARRAY_AND_SIZE(pxa310_mfp_cfg)); | 273 | pxa3xx_mfp_config(ARRAY_AND_SIZE(pxa310_mfp_cfg)); |
278 | gpio_eth_irq = mfp_to_gpio(MFP_PIN_GPIO102); | 274 | gpio_eth_irq = mfp_to_gpio(MFP_PIN_GPIO102); |
279 | |||
280 | /* MMC card detect & write protect for controller 2 */ | ||
281 | zylonite_mmc_slot[2].gpio_cd = EXT_GPIO(30); | ||
282 | zylonite_mmc_slot[2].gpio_wp = EXT_GPIO(31); | ||
283 | } | 275 | } |
284 | 276 | ||
285 | /* GPIOs for Debug LEDs */ | 277 | /* GPIOs for Debug LEDs */ |
diff --git a/arch/arm/mach-pxa/zylonite_pxa320.c b/arch/arm/mach-pxa/zylonite_pxa320.c index 60d08f23f5e..9942bac4cf7 100644 --- a/arch/arm/mach-pxa/zylonite_pxa320.c +++ b/arch/arm/mach-pxa/zylonite_pxa320.c | |||
@@ -209,10 +209,6 @@ void __init zylonite_pxa320_init(void) | |||
209 | gpio_debug_led1 = mfp_to_gpio(MFP_PIN_GPIO1_2); | 209 | gpio_debug_led1 = mfp_to_gpio(MFP_PIN_GPIO1_2); |
210 | gpio_debug_led2 = mfp_to_gpio(MFP_PIN_GPIO4_2); | 210 | gpio_debug_led2 = mfp_to_gpio(MFP_PIN_GPIO4_2); |
211 | 211 | ||
212 | /* MMC card detect & write protect for controller 0 */ | ||
213 | zylonite_mmc_slot[0].gpio_cd = mfp_to_gpio(MFP_PIN_GPIO1); | ||
214 | zylonite_mmc_slot[0].gpio_wp = mfp_to_gpio(MFP_PIN_GPIO5); | ||
215 | |||
216 | /* WM9713 IRQ */ | 212 | /* WM9713 IRQ */ |
217 | wm9713_irq = mfp_to_gpio(MFP_PIN_GPIO15); | 213 | wm9713_irq = mfp_to_gpio(MFP_PIN_GPIO15); |
218 | } | 214 | } |
diff --git a/arch/arm/mach-realview/include/mach/board-pb1176.h b/arch/arm/mach-realview/include/mach/board-pb1176.h index 34b80b7d40b..2f5ccb29885 100644 --- a/arch/arm/mach-realview/include/mach/board-pb1176.h +++ b/arch/arm/mach-realview/include/mach/board-pb1176.h | |||
@@ -74,8 +74,8 @@ | |||
74 | #define REALVIEW_PB1176_L220_BASE 0x10110000 /* L220 registers */ | 74 | #define REALVIEW_PB1176_L220_BASE 0x10110000 /* L220 registers */ |
75 | 75 | ||
76 | /* | 76 | /* |
77 | * Control register SYS_RESETCTL is set to 1 to force a soft reset | 77 | * Control register SYS_RESETCTL Bit 8 is set to 1 to force a soft reset |
78 | */ | 78 | */ |
79 | #define REALVIEW_PB1176_SYS_LOCKVAL_RSTCTL 0x0100 | 79 | #define REALVIEW_PB1176_SYS_SOFT_RESET 0x0100 |
80 | 80 | ||
81 | #endif /* __ASM_ARCH_BOARD_PB1176_H */ | 81 | #endif /* __ASM_ARCH_BOARD_PB1176_H */ |
diff --git a/arch/arm/mach-realview/include/mach/platform.h b/arch/arm/mach-realview/include/mach/platform.h index 4f46bf71e75..86c0c4435a4 100644 --- a/arch/arm/mach-realview/include/mach/platform.h +++ b/arch/arm/mach-realview/include/mach/platform.h | |||
@@ -140,7 +140,7 @@ | |||
140 | * SYS_CLD, SYS_BOOTCS | 140 | * SYS_CLD, SYS_BOOTCS |
141 | */ | 141 | */ |
142 | #define REALVIEW_SYS_LOCK_LOCKED (1 << 16) | 142 | #define REALVIEW_SYS_LOCK_LOCKED (1 << 16) |
143 | #define REALVIEW_SYS_LOCKVAL_MASK 0xA05F /* Enable write access */ | 143 | #define REALVIEW_SYS_LOCK_VAL 0xA05F /* Enable write access */ |
144 | 144 | ||
145 | /* | 145 | /* |
146 | * REALVIEW_SYS_FLASH | 146 | * REALVIEW_SYS_FLASH |
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 917f8ca3abf..7d857d30055 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c | |||
@@ -381,6 +381,20 @@ static struct sys_timer realview_eb_timer = { | |||
381 | .init = realview_eb_timer_init, | 381 | .init = realview_eb_timer_init, |
382 | }; | 382 | }; |
383 | 383 | ||
384 | static void realview_eb_reset(char mode) | ||
385 | { | ||
386 | void __iomem *reset_ctrl = __io_address(REALVIEW_SYS_RESETCTL); | ||
387 | void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK); | ||
388 | |||
389 | /* | ||
390 | * To reset, we hit the on-board reset register | ||
391 | * in the system FPGA | ||
392 | */ | ||
393 | __raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl); | ||
394 | if (core_tile_eb11mp()) | ||
395 | __raw_writel(0x0008, reset_ctrl); | ||
396 | } | ||
397 | |||
384 | static void __init realview_eb_init(void) | 398 | static void __init realview_eb_init(void) |
385 | { | 399 | { |
386 | int i; | 400 | int i; |
@@ -408,6 +422,7 @@ static void __init realview_eb_init(void) | |||
408 | #ifdef CONFIG_LEDS | 422 | #ifdef CONFIG_LEDS |
409 | leds_event = realview_leds_event; | 423 | leds_event = realview_leds_event; |
410 | #endif | 424 | #endif |
425 | realview_reset = realview_eb_reset; | ||
411 | } | 426 | } |
412 | 427 | ||
413 | MACHINE_START(REALVIEW_EB, "ARM-RealView EB") | 428 | MACHINE_START(REALVIEW_EB, "ARM-RealView EB") |
diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c index 7fb726d5f8b..44392e51dd5 100644 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c | |||
@@ -292,12 +292,10 @@ static struct sys_timer realview_pb1176_timer = { | |||
292 | 292 | ||
293 | static void realview_pb1176_reset(char mode) | 293 | static void realview_pb1176_reset(char mode) |
294 | { | 294 | { |
295 | void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + | 295 | void __iomem *reset_ctrl = __io_address(REALVIEW_SYS_RESETCTL); |
296 | REALVIEW_SYS_RESETCTL_OFFSET; | 296 | void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK); |
297 | void __iomem *rst_hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + | 297 | __raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl); |
298 | REALVIEW_SYS_LOCK_OFFSET; | 298 | __raw_writel(REALVIEW_PB1176_SYS_SOFT_RESET, reset_ctrl); |
299 | __raw_writel(REALVIEW_SYS_LOCKVAL_MASK, rst_hdr_ctrl); | ||
300 | __raw_writel(REALVIEW_PB1176_SYS_LOCKVAL_RSTCTL, hdr_ctrl); | ||
301 | } | 299 | } |
302 | 300 | ||
303 | static void realview_pb1176_fixup(struct machine_desc *mdesc, | 301 | static void realview_pb1176_fixup(struct machine_desc *mdesc, |
diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c index 9bbbfc05f22..3e02731af95 100644 --- a/arch/arm/mach-realview/realview_pb11mp.c +++ b/arch/arm/mach-realview/realview_pb11mp.c | |||
@@ -301,17 +301,16 @@ static struct sys_timer realview_pb11mp_timer = { | |||
301 | 301 | ||
302 | static void realview_pb11mp_reset(char mode) | 302 | static void realview_pb11mp_reset(char mode) |
303 | { | 303 | { |
304 | void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + | 304 | void __iomem *reset_ctrl = __io_address(REALVIEW_SYS_RESETCTL); |
305 | REALVIEW_SYS_RESETCTL_OFFSET; | 305 | void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK); |
306 | unsigned int val; | ||
307 | 306 | ||
308 | /* | 307 | /* |
309 | * To reset, we hit the on-board reset register | 308 | * To reset, we hit the on-board reset register |
310 | * in the system FPGA | 309 | * in the system FPGA |
311 | */ | 310 | */ |
312 | val = __raw_readl(hdr_ctrl); | 311 | __raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl); |
313 | val |= REALVIEW_PB11MP_SYS_CTRL_RESET_CONFIGCLR; | 312 | __raw_writel(0x0000, reset_ctrl); |
314 | __raw_writel(val, hdr_ctrl); | 313 | __raw_writel(0x0004, reset_ctrl); |
315 | } | 314 | } |
316 | 315 | ||
317 | static void __init realview_pb11mp_init(void) | 316 | static void __init realview_pb11mp_init(void) |
diff --git a/arch/arm/mach-realview/realview_pba8.c b/arch/arm/mach-realview/realview_pba8.c index fe861e96c56..fe4e25c4201 100644 --- a/arch/arm/mach-realview/realview_pba8.c +++ b/arch/arm/mach-realview/realview_pba8.c | |||
@@ -272,6 +272,20 @@ static struct sys_timer realview_pba8_timer = { | |||
272 | .init = realview_pba8_timer_init, | 272 | .init = realview_pba8_timer_init, |
273 | }; | 273 | }; |
274 | 274 | ||
275 | static void realview_pba8_reset(char mode) | ||
276 | { | ||
277 | void __iomem *reset_ctrl = __io_address(REALVIEW_SYS_RESETCTL); | ||
278 | void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK); | ||
279 | |||
280 | /* | ||
281 | * To reset, we hit the on-board reset register | ||
282 | * in the system FPGA | ||
283 | */ | ||
284 | __raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl); | ||
285 | __raw_writel(0x0000, reset_ctrl); | ||
286 | __raw_writel(0x0004, reset_ctrl); | ||
287 | } | ||
288 | |||
275 | static void __init realview_pba8_init(void) | 289 | static void __init realview_pba8_init(void) |
276 | { | 290 | { |
277 | int i; | 291 | int i; |
@@ -291,6 +305,7 @@ static void __init realview_pba8_init(void) | |||
291 | #ifdef CONFIG_LEDS | 305 | #ifdef CONFIG_LEDS |
292 | leds_event = realview_leds_event; | 306 | leds_event = realview_leds_event; |
293 | #endif | 307 | #endif |
308 | realview_reset = realview_pba8_reset; | ||
294 | } | 309 | } |
295 | 310 | ||
296 | MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") | 311 | MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") |
diff --git a/arch/arm/mach-realview/realview_pbx.c b/arch/arm/mach-realview/realview_pbx.c index ec39488e2b4..a21a4b395f7 100644 --- a/arch/arm/mach-realview/realview_pbx.c +++ b/arch/arm/mach-realview/realview_pbx.c | |||
@@ -324,6 +324,20 @@ static void realview_pbx_fixup(struct machine_desc *mdesc, struct tag *tags, | |||
324 | #endif | 324 | #endif |
325 | } | 325 | } |
326 | 326 | ||
327 | static void realview_pbx_reset(char mode) | ||
328 | { | ||
329 | void __iomem *reset_ctrl = __io_address(REALVIEW_SYS_RESETCTL); | ||
330 | void __iomem *lock_ctrl = __io_address(REALVIEW_SYS_LOCK); | ||
331 | |||
332 | /* | ||
333 | * To reset, we hit the on-board reset register | ||
334 | * in the system FPGA | ||
335 | */ | ||
336 | __raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl); | ||
337 | __raw_writel(0x0000, reset_ctrl); | ||
338 | __raw_writel(0x0004, reset_ctrl); | ||
339 | } | ||
340 | |||
327 | static void __init realview_pbx_init(void) | 341 | static void __init realview_pbx_init(void) |
328 | { | 342 | { |
329 | int i; | 343 | int i; |
@@ -358,6 +372,7 @@ static void __init realview_pbx_init(void) | |||
358 | #ifdef CONFIG_LEDS | 372 | #ifdef CONFIG_LEDS |
359 | leds_event = realview_leds_event; | 373 | leds_event = realview_leds_event; |
360 | #endif | 374 | #endif |
375 | realview_reset = realview_pbx_reset; | ||
361 | } | 376 | } |
362 | 377 | ||
363 | MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") | 378 | MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") |
diff --git a/arch/arm/mach-s3c2410/include/mach/ts.h b/arch/arm/mach-s3c2410/include/mach/ts.h new file mode 100644 index 00000000000..dc361700d69 --- /dev/null +++ b/arch/arm/mach-s3c2410/include/mach/ts.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* linux/include/asm/arch-s3c2410/ts.h | ||
2 | * | ||
3 | * Copyright (c) 2005 Arnaud Patard <arnaud.patard@rtp-net.org> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License version 2 as | ||
7 | * published by the Free Software Foundation. | ||
8 | */ | ||
9 | |||
10 | #ifndef __ASM_ARM_TS_H | ||
11 | #define __ASM_ARM_TS_H | ||
12 | |||
13 | struct s3c2410_ts_mach_info { | ||
14 | int delay; | ||
15 | int presc; | ||
16 | int oversampling_shift; | ||
17 | }; | ||
18 | |||
19 | extern void s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *); | ||
20 | |||
21 | #endif /* __ASM_ARM_TS_H */ | ||
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index 4c79ac8a6c3..97162fdd059 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
@@ -279,6 +279,7 @@ static struct s3c2410_nand_set __initdata bast_nand_sets[] = { | |||
279 | .name = "SmartMedia", | 279 | .name = "SmartMedia", |
280 | .nr_chips = 1, | 280 | .nr_chips = 1, |
281 | .nr_map = smartmedia_map, | 281 | .nr_map = smartmedia_map, |
282 | .options = NAND_SCAN_SILENT_NODEV, | ||
282 | .nr_partitions = ARRAY_SIZE(bast_default_nand_part), | 283 | .nr_partitions = ARRAY_SIZE(bast_default_nand_part), |
283 | .partitions = bast_default_nand_part, | 284 | .partitions = bast_default_nand_part, |
284 | }, | 285 | }, |
@@ -293,6 +294,7 @@ static struct s3c2410_nand_set __initdata bast_nand_sets[] = { | |||
293 | .name = "chip1", | 294 | .name = "chip1", |
294 | .nr_chips = 1, | 295 | .nr_chips = 1, |
295 | .nr_map = chip1_map, | 296 | .nr_map = chip1_map, |
297 | .options = NAND_SCAN_SILENT_NODEV, | ||
296 | .nr_partitions = ARRAY_SIZE(bast_default_nand_part), | 298 | .nr_partitions = ARRAY_SIZE(bast_default_nand_part), |
297 | .partitions = bast_default_nand_part, | 299 | .partitions = bast_default_nand_part, |
298 | }, | 300 | }, |
@@ -300,6 +302,7 @@ static struct s3c2410_nand_set __initdata bast_nand_sets[] = { | |||
300 | .name = "chip2", | 302 | .name = "chip2", |
301 | .nr_chips = 1, | 303 | .nr_chips = 1, |
302 | .nr_map = chip2_map, | 304 | .nr_map = chip2_map, |
305 | .options = NAND_SCAN_SILENT_NODEV, | ||
303 | .nr_partitions = ARRAY_SIZE(bast_default_nand_part), | 306 | .nr_partitions = ARRAY_SIZE(bast_default_nand_part), |
304 | .partitions = bast_default_nand_part, | 307 | .partitions = bast_default_nand_part, |
305 | } | 308 | } |
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index 49053254c98..1e34abe1a19 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c | |||
@@ -46,6 +46,7 @@ | |||
46 | #include <mach/h1940.h> | 46 | #include <mach/h1940.h> |
47 | #include <mach/h1940-latch.h> | 47 | #include <mach/h1940-latch.h> |
48 | #include <mach/fb.h> | 48 | #include <mach/fb.h> |
49 | #include <mach/ts.h> | ||
49 | #include <plat/udc.h> | 50 | #include <plat/udc.h> |
50 | #include <plat/iic.h> | 51 | #include <plat/iic.h> |
51 | 52 | ||
@@ -140,6 +141,11 @@ static struct s3c2410_udc_mach_info h1940_udc_cfg __initdata = { | |||
140 | .vbus_pin_inverted = 1, | 141 | .vbus_pin_inverted = 1, |
141 | }; | 142 | }; |
142 | 143 | ||
144 | static struct s3c2410_ts_mach_info h1940_ts_cfg __initdata = { | ||
145 | .delay = 10000, | ||
146 | .presc = 49, | ||
147 | .oversampling_shift = 2, | ||
148 | }; | ||
143 | 149 | ||
144 | /** | 150 | /** |
145 | * Set lcd on or off | 151 | * Set lcd on or off |
@@ -265,6 +271,7 @@ static struct platform_device h1940_lcd_powerdev = { | |||
265 | }; | 271 | }; |
266 | 272 | ||
267 | static struct platform_device *h1940_devices[] __initdata = { | 273 | static struct platform_device *h1940_devices[] __initdata = { |
274 | &s3c_device_ts, | ||
268 | &s3c_device_usb, | 275 | &s3c_device_usb, |
269 | &s3c_device_lcd, | 276 | &s3c_device_lcd, |
270 | &s3c_device_wdt, | 277 | &s3c_device_wdt, |
@@ -305,6 +312,7 @@ static void __init h1940_init(void) | |||
305 | 312 | ||
306 | s3c24xx_fb_set_platdata(&h1940_fb_info); | 313 | s3c24xx_fb_set_platdata(&h1940_fb_info); |
307 | s3c24xx_udc_set_platdata(&h1940_udc_cfg); | 314 | s3c24xx_udc_set_platdata(&h1940_udc_cfg); |
315 | s3c24xx_ts_set_platdata(&h1940_ts_cfg); | ||
308 | s3c_i2c0_set_platdata(NULL); | 316 | s3c_i2c0_set_platdata(NULL); |
309 | 317 | ||
310 | s3c_device_sdi.dev.platform_data = &h1940_mmc_cfg; | 318 | s3c_device_sdi.dev.platform_data = &h1940_mmc_cfg; |
diff --git a/arch/arm/mach-s3c2440/mach-mini2440.c b/arch/arm/mach-s3c2440/mach-mini2440.c index 547d4fc9913..2068e9096a4 100644 --- a/arch/arm/mach-s3c2440/mach-mini2440.c +++ b/arch/arm/mach-s3c2440/mach-mini2440.c | |||
@@ -288,7 +288,7 @@ static struct s3c2410_platform_nand mini2440_nand_info __initdata = { | |||
288 | 288 | ||
289 | /* DM9000AEP 10/100 ethernet controller */ | 289 | /* DM9000AEP 10/100 ethernet controller */ |
290 | 290 | ||
291 | static struct resource mini2440_dm9k_resource[] __initdata = { | 291 | static struct resource mini2440_dm9k_resource[] = { |
292 | [0] = { | 292 | [0] = { |
293 | .start = MACH_MINI2440_DM9K_BASE, | 293 | .start = MACH_MINI2440_DM9K_BASE, |
294 | .end = MACH_MINI2440_DM9K_BASE + 3, | 294 | .end = MACH_MINI2440_DM9K_BASE + 3, |
@@ -310,11 +310,11 @@ static struct resource mini2440_dm9k_resource[] __initdata = { | |||
310 | * The DM9000 has no eeprom, and it's MAC address is set by | 310 | * The DM9000 has no eeprom, and it's MAC address is set by |
311 | * the bootloader before starting the kernel. | 311 | * the bootloader before starting the kernel. |
312 | */ | 312 | */ |
313 | static struct dm9000_plat_data mini2440_dm9k_pdata __initdata = { | 313 | static struct dm9000_plat_data mini2440_dm9k_pdata = { |
314 | .flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM), | 314 | .flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM), |
315 | }; | 315 | }; |
316 | 316 | ||
317 | static struct platform_device mini2440_device_eth __initdata = { | 317 | static struct platform_device mini2440_device_eth = { |
318 | .name = "dm9000", | 318 | .name = "dm9000", |
319 | .id = -1, | 319 | .id = -1, |
320 | .num_resources = ARRAY_SIZE(mini2440_dm9k_resource), | 320 | .num_resources = ARRAY_SIZE(mini2440_dm9k_resource), |
@@ -341,7 +341,7 @@ static struct platform_device mini2440_device_eth __initdata = { | |||
341 | * | | +----+ +----+ | 341 | * | | +----+ +----+ |
342 | * ..... | 342 | * ..... |
343 | */ | 343 | */ |
344 | static struct gpio_keys_button mini2440_buttons[] __initdata = { | 344 | static struct gpio_keys_button mini2440_buttons[] = { |
345 | { | 345 | { |
346 | .gpio = S3C2410_GPG(0), /* K1 */ | 346 | .gpio = S3C2410_GPG(0), /* K1 */ |
347 | .code = KEY_F1, | 347 | .code = KEY_F1, |
@@ -384,12 +384,12 @@ static struct gpio_keys_button mini2440_buttons[] __initdata = { | |||
384 | #endif | 384 | #endif |
385 | }; | 385 | }; |
386 | 386 | ||
387 | static struct gpio_keys_platform_data mini2440_button_data __initdata = { | 387 | static struct gpio_keys_platform_data mini2440_button_data = { |
388 | .buttons = mini2440_buttons, | 388 | .buttons = mini2440_buttons, |
389 | .nbuttons = ARRAY_SIZE(mini2440_buttons), | 389 | .nbuttons = ARRAY_SIZE(mini2440_buttons), |
390 | }; | 390 | }; |
391 | 391 | ||
392 | static struct platform_device mini2440_button_device __initdata = { | 392 | static struct platform_device mini2440_button_device = { |
393 | .name = "gpio-keys", | 393 | .name = "gpio-keys", |
394 | .id = -1, | 394 | .id = -1, |
395 | .dev = { | 395 | .dev = { |
@@ -399,41 +399,41 @@ static struct platform_device mini2440_button_device __initdata = { | |||
399 | 399 | ||
400 | /* LEDS */ | 400 | /* LEDS */ |
401 | 401 | ||
402 | static struct s3c24xx_led_platdata mini2440_led1_pdata __initdata = { | 402 | static struct s3c24xx_led_platdata mini2440_led1_pdata = { |
403 | .name = "led1", | 403 | .name = "led1", |
404 | .gpio = S3C2410_GPB(5), | 404 | .gpio = S3C2410_GPB(5), |
405 | .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, | 405 | .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, |
406 | .def_trigger = "heartbeat", | 406 | .def_trigger = "heartbeat", |
407 | }; | 407 | }; |
408 | 408 | ||
409 | static struct s3c24xx_led_platdata mini2440_led2_pdata __initdata = { | 409 | static struct s3c24xx_led_platdata mini2440_led2_pdata = { |
410 | .name = "led2", | 410 | .name = "led2", |
411 | .gpio = S3C2410_GPB(6), | 411 | .gpio = S3C2410_GPB(6), |
412 | .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, | 412 | .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, |
413 | .def_trigger = "nand-disk", | 413 | .def_trigger = "nand-disk", |
414 | }; | 414 | }; |
415 | 415 | ||
416 | static struct s3c24xx_led_platdata mini2440_led3_pdata __initdata = { | 416 | static struct s3c24xx_led_platdata mini2440_led3_pdata = { |
417 | .name = "led3", | 417 | .name = "led3", |
418 | .gpio = S3C2410_GPB(7), | 418 | .gpio = S3C2410_GPB(7), |
419 | .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, | 419 | .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, |
420 | .def_trigger = "mmc0", | 420 | .def_trigger = "mmc0", |
421 | }; | 421 | }; |
422 | 422 | ||
423 | static struct s3c24xx_led_platdata mini2440_led4_pdata __initdata = { | 423 | static struct s3c24xx_led_platdata mini2440_led4_pdata = { |
424 | .name = "led4", | 424 | .name = "led4", |
425 | .gpio = S3C2410_GPB(8), | 425 | .gpio = S3C2410_GPB(8), |
426 | .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, | 426 | .flags = S3C24XX_LEDF_ACTLOW | S3C24XX_LEDF_TRISTATE, |
427 | .def_trigger = "", | 427 | .def_trigger = "", |
428 | }; | 428 | }; |
429 | 429 | ||
430 | static struct s3c24xx_led_platdata mini2440_led_backlight_pdata __initdata = { | 430 | static struct s3c24xx_led_platdata mini2440_led_backlight_pdata = { |
431 | .name = "backlight", | 431 | .name = "backlight", |
432 | .gpio = S3C2410_GPG(4), | 432 | .gpio = S3C2410_GPG(4), |
433 | .def_trigger = "backlight", | 433 | .def_trigger = "backlight", |
434 | }; | 434 | }; |
435 | 435 | ||
436 | static struct platform_device mini2440_led1 __initdata = { | 436 | static struct platform_device mini2440_led1 = { |
437 | .name = "s3c24xx_led", | 437 | .name = "s3c24xx_led", |
438 | .id = 1, | 438 | .id = 1, |
439 | .dev = { | 439 | .dev = { |
@@ -441,7 +441,7 @@ static struct platform_device mini2440_led1 __initdata = { | |||
441 | }, | 441 | }, |
442 | }; | 442 | }; |
443 | 443 | ||
444 | static struct platform_device mini2440_led2 __initdata = { | 444 | static struct platform_device mini2440_led2 = { |
445 | .name = "s3c24xx_led", | 445 | .name = "s3c24xx_led", |
446 | .id = 2, | 446 | .id = 2, |
447 | .dev = { | 447 | .dev = { |
@@ -449,7 +449,7 @@ static struct platform_device mini2440_led2 __initdata = { | |||
449 | }, | 449 | }, |
450 | }; | 450 | }; |
451 | 451 | ||
452 | static struct platform_device mini2440_led3 __initdata = { | 452 | static struct platform_device mini2440_led3 = { |
453 | .name = "s3c24xx_led", | 453 | .name = "s3c24xx_led", |
454 | .id = 3, | 454 | .id = 3, |
455 | .dev = { | 455 | .dev = { |
@@ -457,7 +457,7 @@ static struct platform_device mini2440_led3 __initdata = { | |||
457 | }, | 457 | }, |
458 | }; | 458 | }; |
459 | 459 | ||
460 | static struct platform_device mini2440_led4 __initdata = { | 460 | static struct platform_device mini2440_led4 = { |
461 | .name = "s3c24xx_led", | 461 | .name = "s3c24xx_led", |
462 | .id = 4, | 462 | .id = 4, |
463 | .dev = { | 463 | .dev = { |
@@ -465,7 +465,7 @@ static struct platform_device mini2440_led4 __initdata = { | |||
465 | }, | 465 | }, |
466 | }; | 466 | }; |
467 | 467 | ||
468 | static struct platform_device mini2440_led_backlight __initdata = { | 468 | static struct platform_device mini2440_led_backlight = { |
469 | .name = "s3c24xx_led", | 469 | .name = "s3c24xx_led", |
470 | .id = 5, | 470 | .id = 5, |
471 | .dev = { | 471 | .dev = { |
@@ -475,14 +475,14 @@ static struct platform_device mini2440_led_backlight __initdata = { | |||
475 | 475 | ||
476 | /* AUDIO */ | 476 | /* AUDIO */ |
477 | 477 | ||
478 | static struct s3c24xx_uda134x_platform_data mini2440_audio_pins __initdata = { | 478 | static struct s3c24xx_uda134x_platform_data mini2440_audio_pins = { |
479 | .l3_clk = S3C2410_GPB(4), | 479 | .l3_clk = S3C2410_GPB(4), |
480 | .l3_mode = S3C2410_GPB(2), | 480 | .l3_mode = S3C2410_GPB(2), |
481 | .l3_data = S3C2410_GPB(3), | 481 | .l3_data = S3C2410_GPB(3), |
482 | .model = UDA134X_UDA1341 | 482 | .model = UDA134X_UDA1341 |
483 | }; | 483 | }; |
484 | 484 | ||
485 | static struct platform_device mini2440_audio __initdata = { | 485 | static struct platform_device mini2440_audio = { |
486 | .name = "s3c24xx_uda134x", | 486 | .name = "s3c24xx_uda134x", |
487 | .id = 0, | 487 | .id = 0, |
488 | .dev = { | 488 | .dev = { |
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c index 015dfb2a80d..f35371db33f 100644 --- a/arch/arm/mach-s3c2440/mach-osiris.c +++ b/arch/arm/mach-s3c2440/mach-osiris.c | |||
@@ -208,6 +208,7 @@ static struct s3c2410_nand_set __initdata osiris_nand_sets[] = { | |||
208 | .name = "External", | 208 | .name = "External", |
209 | .nr_chips = 1, | 209 | .nr_chips = 1, |
210 | .nr_map = external_map, | 210 | .nr_map = external_map, |
211 | .options = NAND_SCAN_SILENT_NODEV, | ||
211 | .nr_partitions = ARRAY_SIZE(osiris_default_nand_part), | 212 | .nr_partitions = ARRAY_SIZE(osiris_default_nand_part), |
212 | .partitions = osiris_default_nand_part, | 213 | .partitions = osiris_default_nand_part, |
213 | }, | 214 | }, |
@@ -222,6 +223,7 @@ static struct s3c2410_nand_set __initdata osiris_nand_sets[] = { | |||
222 | .name = "chip1", | 223 | .name = "chip1", |
223 | .nr_chips = 1, | 224 | .nr_chips = 1, |
224 | .nr_map = chip1_map, | 225 | .nr_map = chip1_map, |
226 | .options = NAND_SCAN_SILENT_NODEV, | ||
225 | .nr_partitions = ARRAY_SIZE(osiris_default_nand_part), | 227 | .nr_partitions = ARRAY_SIZE(osiris_default_nand_part), |
226 | .partitions = osiris_default_nand_part, | 228 | .partitions = osiris_default_nand_part, |
227 | }, | 229 | }, |
diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c index 480d297c1de..8969fe73b83 100644 --- a/arch/arm/mach-s3c6410/mach-smdk6410.c +++ b/arch/arm/mach-s3c6410/mach-smdk6410.c | |||
@@ -211,6 +211,7 @@ static struct fixed_voltage_config smdk6410_b_pwr_5v_pdata = { | |||
211 | .supply_name = "B_PWR_5V", | 211 | .supply_name = "B_PWR_5V", |
212 | .microvolts = 5000000, | 212 | .microvolts = 5000000, |
213 | .init_data = &smdk6410_b_pwr_5v_data, | 213 | .init_data = &smdk6410_b_pwr_5v_data, |
214 | .gpio = -EINVAL, | ||
214 | }; | 215 | }; |
215 | 216 | ||
216 | static struct platform_device smdk6410_b_pwr_5v = { | 217 | static struct platform_device smdk6410_b_pwr_5v = { |
diff --git a/arch/arm/mach-w90x900/include/mach/system.h b/arch/arm/mach-w90x900/include/mach/system.h index 94064006685..ce228bdc66d 100644 --- a/arch/arm/mach-w90x900/include/mach/system.h +++ b/arch/arm/mach-w90x900/include/mach/system.h | |||
@@ -15,7 +15,15 @@ | |||
15 | * | 15 | * |
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/io.h> | ||
18 | #include <asm/proc-fns.h> | 19 | #include <asm/proc-fns.h> |
20 | #include <mach/map.h> | ||
21 | #include <mach/regs-timer.h> | ||
22 | |||
23 | #define WTCR (TMR_BA + 0x1C) | ||
24 | #define WTCLK (1 << 10) | ||
25 | #define WTE (1 << 7) | ||
26 | #define WTRE (1 << 1) | ||
19 | 27 | ||
20 | static void arch_idle(void) | 28 | static void arch_idle(void) |
21 | { | 29 | { |
@@ -23,6 +31,11 @@ static void arch_idle(void) | |||
23 | 31 | ||
24 | static void arch_reset(char mode, const char *cmd) | 32 | static void arch_reset(char mode, const char *cmd) |
25 | { | 33 | { |
26 | cpu_reset(0); | 34 | if (mode == 's') { |
35 | /* Jump into ROM at address 0 */ | ||
36 | cpu_reset(0); | ||
37 | } else { | ||
38 | __raw_writel(WTE | WTRE | WTCLK, WTCR); | ||
39 | } | ||
27 | } | 40 | } |
28 | 41 | ||
diff --git a/arch/arm/mach-w90x900/time.c b/arch/arm/mach-w90x900/time.c index 4128af870b4..b80f769bc13 100644 --- a/arch/arm/mach-w90x900/time.c +++ b/arch/arm/mach-w90x900/time.c | |||
@@ -42,7 +42,10 @@ | |||
42 | #define TICKS_PER_SEC 100 | 42 | #define TICKS_PER_SEC 100 |
43 | #define PRESCALE 0x63 /* Divider = prescale + 1 */ | 43 | #define PRESCALE 0x63 /* Divider = prescale + 1 */ |
44 | 44 | ||
45 | unsigned int timer0_load; | 45 | #define TDR_SHIFT 24 |
46 | #define TDR_MASK ((1 << TDR_SHIFT) - 1) | ||
47 | |||
48 | static unsigned int timer0_load; | ||
46 | 49 | ||
47 | static void nuc900_clockevent_setmode(enum clock_event_mode mode, | 50 | static void nuc900_clockevent_setmode(enum clock_event_mode mode, |
48 | struct clock_event_device *clk) | 51 | struct clock_event_device *clk) |
@@ -88,7 +91,7 @@ static int nuc900_clockevent_setnextevent(unsigned long evt, | |||
88 | static struct clock_event_device nuc900_clockevent_device = { | 91 | static struct clock_event_device nuc900_clockevent_device = { |
89 | .name = "nuc900-timer0", | 92 | .name = "nuc900-timer0", |
90 | .shift = 32, | 93 | .shift = 32, |
91 | .features = CLOCK_EVT_MODE_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, | 94 | .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, |
92 | .set_mode = nuc900_clockevent_setmode, | 95 | .set_mode = nuc900_clockevent_setmode, |
93 | .set_next_event = nuc900_clockevent_setnextevent, | 96 | .set_next_event = nuc900_clockevent_setnextevent, |
94 | .rating = 300, | 97 | .rating = 300, |
@@ -112,8 +115,23 @@ static struct irqaction nuc900_timer0_irq = { | |||
112 | .handler = nuc900_timer0_interrupt, | 115 | .handler = nuc900_timer0_interrupt, |
113 | }; | 116 | }; |
114 | 117 | ||
115 | static void __init nuc900_clockevents_init(unsigned int rate) | 118 | static void __init nuc900_clockevents_init(void) |
116 | { | 119 | { |
120 | unsigned int rate; | ||
121 | struct clk *clk = clk_get(NULL, "timer0"); | ||
122 | |||
123 | BUG_ON(IS_ERR(clk)); | ||
124 | |||
125 | __raw_writel(0x00, REG_TCSR0); | ||
126 | |||
127 | clk_enable(clk); | ||
128 | rate = clk_get_rate(clk) / (PRESCALE + 1); | ||
129 | |||
130 | timer0_load = (rate / TICKS_PER_SEC); | ||
131 | |||
132 | __raw_writel(RESETINT, REG_TISR); | ||
133 | setup_irq(IRQ_TIMER0, &nuc900_timer0_irq); | ||
134 | |||
117 | nuc900_clockevent_device.mult = div_sc(rate, NSEC_PER_SEC, | 135 | nuc900_clockevent_device.mult = div_sc(rate, NSEC_PER_SEC, |
118 | nuc900_clockevent_device.shift); | 136 | nuc900_clockevent_device.shift); |
119 | nuc900_clockevent_device.max_delta_ns = clockevent_delta2ns(0xffffffff, | 137 | nuc900_clockevent_device.max_delta_ns = clockevent_delta2ns(0xffffffff, |
@@ -127,26 +145,35 @@ static void __init nuc900_clockevents_init(unsigned int rate) | |||
127 | 145 | ||
128 | static cycle_t nuc900_get_cycles(struct clocksource *cs) | 146 | static cycle_t nuc900_get_cycles(struct clocksource *cs) |
129 | { | 147 | { |
130 | return ~__raw_readl(REG_TDR1); | 148 | return (~__raw_readl(REG_TDR1)) & TDR_MASK; |
131 | } | 149 | } |
132 | 150 | ||
133 | static struct clocksource clocksource_nuc900 = { | 151 | static struct clocksource clocksource_nuc900 = { |
134 | .name = "nuc900-timer1", | 152 | .name = "nuc900-timer1", |
135 | .rating = 200, | 153 | .rating = 200, |
136 | .read = nuc900_get_cycles, | 154 | .read = nuc900_get_cycles, |
137 | .mask = CLOCKSOURCE_MASK(32), | 155 | .mask = CLOCKSOURCE_MASK(TDR_SHIFT), |
138 | .shift = 20, | 156 | .shift = 10, |
139 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | 157 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, |
140 | }; | 158 | }; |
141 | 159 | ||
142 | static void __init nuc900_clocksource_init(unsigned int rate) | 160 | static void __init nuc900_clocksource_init(void) |
143 | { | 161 | { |
144 | unsigned int val; | 162 | unsigned int val; |
163 | unsigned int rate; | ||
164 | struct clk *clk = clk_get(NULL, "timer1"); | ||
165 | |||
166 | BUG_ON(IS_ERR(clk)); | ||
167 | |||
168 | __raw_writel(0x00, REG_TCSR1); | ||
169 | |||
170 | clk_enable(clk); | ||
171 | rate = clk_get_rate(clk) / (PRESCALE + 1); | ||
145 | 172 | ||
146 | __raw_writel(0xffffffff, REG_TICR1); | 173 | __raw_writel(0xffffffff, REG_TICR1); |
147 | 174 | ||
148 | val = __raw_readl(REG_TCSR1); | 175 | val = __raw_readl(REG_TCSR1); |
149 | val |= (COUNTEN | PERIOD); | 176 | val |= (COUNTEN | PERIOD | PRESCALE); |
150 | __raw_writel(val, REG_TCSR1); | 177 | __raw_writel(val, REG_TCSR1); |
151 | 178 | ||
152 | clocksource_nuc900.mult = | 179 | clocksource_nuc900.mult = |
@@ -156,25 +183,8 @@ static void __init nuc900_clocksource_init(unsigned int rate) | |||
156 | 183 | ||
157 | static void __init nuc900_timer_init(void) | 184 | static void __init nuc900_timer_init(void) |
158 | { | 185 | { |
159 | struct clk *ck_ext = clk_get(NULL, "ext"); | 186 | nuc900_clocksource_init(); |
160 | unsigned int rate; | 187 | nuc900_clockevents_init(); |
161 | |||
162 | BUG_ON(IS_ERR(ck_ext)); | ||
163 | |||
164 | rate = clk_get_rate(ck_ext); | ||
165 | clk_put(ck_ext); | ||
166 | rate = rate / (PRESCALE + 0x01); | ||
167 | |||
168 | /* set a known state */ | ||
169 | __raw_writel(0x00, REG_TCSR0); | ||
170 | __raw_writel(0x00, REG_TCSR1); | ||
171 | __raw_writel(RESETINT, REG_TISR); | ||
172 | timer0_load = (rate / TICKS_PER_SEC); | ||
173 | |||
174 | setup_irq(IRQ_TIMER0, &nuc900_timer0_irq); | ||
175 | |||
176 | nuc900_clocksource_init(rate); | ||
177 | nuc900_clockevents_init(rate); | ||
178 | } | 188 | } |
179 | 189 | ||
180 | struct sys_timer nuc900_timer = { | 190 | struct sys_timer nuc900_timer = { |
diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile index 827e238e5d4..e8d34a80851 100644 --- a/arch/arm/mm/Makefile +++ b/arch/arm/mm/Makefile | |||
@@ -27,6 +27,9 @@ obj-$(CONFIG_CPU_ABRT_EV5TJ) += abort-ev5tj.o | |||
27 | obj-$(CONFIG_CPU_ABRT_EV6) += abort-ev6.o | 27 | obj-$(CONFIG_CPU_ABRT_EV6) += abort-ev6.o |
28 | obj-$(CONFIG_CPU_ABRT_EV7) += abort-ev7.o | 28 | obj-$(CONFIG_CPU_ABRT_EV7) += abort-ev7.o |
29 | 29 | ||
30 | AFLAGS_abort-ev6.o :=-Wa,-march=armv6k | ||
31 | AFLAGS_abort-ev7.o :=-Wa,-march=armv7-a | ||
32 | |||
30 | obj-$(CONFIG_CPU_PABRT_LEGACY) += pabort-legacy.o | 33 | obj-$(CONFIG_CPU_PABRT_LEGACY) += pabort-legacy.o |
31 | obj-$(CONFIG_CPU_PABRT_V6) += pabort-v6.o | 34 | obj-$(CONFIG_CPU_PABRT_V6) += pabort-v6.o |
32 | obj-$(CONFIG_CPU_PABRT_V7) += pabort-v7.o | 35 | obj-$(CONFIG_CPU_PABRT_V7) += pabort-v7.o |
@@ -39,6 +42,9 @@ obj-$(CONFIG_CPU_CACHE_V6) += cache-v6.o | |||
39 | obj-$(CONFIG_CPU_CACHE_V7) += cache-v7.o | 42 | obj-$(CONFIG_CPU_CACHE_V7) += cache-v7.o |
40 | obj-$(CONFIG_CPU_CACHE_FA) += cache-fa.o | 43 | obj-$(CONFIG_CPU_CACHE_FA) += cache-fa.o |
41 | 44 | ||
45 | AFLAGS_cache-v6.o :=-Wa,-march=armv6 | ||
46 | AFLAGS_cache-v7.o :=-Wa,-march=armv7-a | ||
47 | |||
42 | obj-$(CONFIG_CPU_COPY_V3) += copypage-v3.o | 48 | obj-$(CONFIG_CPU_COPY_V3) += copypage-v3.o |
43 | obj-$(CONFIG_CPU_COPY_V4WT) += copypage-v4wt.o | 49 | obj-$(CONFIG_CPU_COPY_V4WT) += copypage-v4wt.o |
44 | obj-$(CONFIG_CPU_COPY_V4WB) += copypage-v4wb.o | 50 | obj-$(CONFIG_CPU_COPY_V4WB) += copypage-v4wb.o |
@@ -58,6 +64,9 @@ obj-$(CONFIG_CPU_TLB_V6) += tlb-v6.o | |||
58 | obj-$(CONFIG_CPU_TLB_V7) += tlb-v7.o | 64 | obj-$(CONFIG_CPU_TLB_V7) += tlb-v7.o |
59 | obj-$(CONFIG_CPU_TLB_FA) += tlb-fa.o | 65 | obj-$(CONFIG_CPU_TLB_FA) += tlb-fa.o |
60 | 66 | ||
67 | AFLAGS_tlb-v6.o :=-Wa,-march=armv6 | ||
68 | AFLAGS_tlb-v7.o :=-Wa,-march=armv7-a | ||
69 | |||
61 | obj-$(CONFIG_CPU_ARM610) += proc-arm6_7.o | 70 | obj-$(CONFIG_CPU_ARM610) += proc-arm6_7.o |
62 | obj-$(CONFIG_CPU_ARM710) += proc-arm6_7.o | 71 | obj-$(CONFIG_CPU_ARM710) += proc-arm6_7.o |
63 | obj-$(CONFIG_CPU_ARM7TDMI) += proc-arm7tdmi.o | 72 | obj-$(CONFIG_CPU_ARM7TDMI) += proc-arm7tdmi.o |
@@ -84,6 +93,9 @@ obj-$(CONFIG_CPU_FEROCEON) += proc-feroceon.o | |||
84 | obj-$(CONFIG_CPU_V6) += proc-v6.o | 93 | obj-$(CONFIG_CPU_V6) += proc-v6.o |
85 | obj-$(CONFIG_CPU_V7) += proc-v7.o | 94 | obj-$(CONFIG_CPU_V7) += proc-v7.o |
86 | 95 | ||
96 | AFLAGS_proc-v6.o :=-Wa,-march=armv6 | ||
97 | AFLAGS_proc-v7.o :=-Wa,-march=armv7-a | ||
98 | |||
87 | obj-$(CONFIG_CACHE_FEROCEON_L2) += cache-feroceon-l2.o | 99 | obj-$(CONFIG_CACHE_FEROCEON_L2) += cache-feroceon-l2.o |
88 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o | 100 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o |
89 | obj-$(CONFIG_CACHE_XSC3L2) += cache-xsc3l2.o | 101 | obj-$(CONFIG_CACHE_XSC3L2) += cache-xsc3l2.o |
diff --git a/arch/arm/mm/cache-xsc3l2.c b/arch/arm/mm/cache-xsc3l2.c index 5d180cb0bd9..c3154928bcc 100644 --- a/arch/arm/mm/cache-xsc3l2.c +++ b/arch/arm/mm/cache-xsc3l2.c | |||
@@ -221,15 +221,14 @@ static int __init xsc3_l2_init(void) | |||
221 | if (!cpu_is_xsc3() || !xsc3_l2_present()) | 221 | if (!cpu_is_xsc3() || !xsc3_l2_present()) |
222 | return 0; | 222 | return 0; |
223 | 223 | ||
224 | if (!(get_cr() & CR_L2)) { | 224 | if (get_cr() & CR_L2) { |
225 | pr_info("XScale3 L2 cache enabled.\n"); | 225 | pr_info("XScale3 L2 cache enabled.\n"); |
226 | adjust_cr(CR_L2, CR_L2); | ||
227 | xsc3_l2_inv_all(); | 226 | xsc3_l2_inv_all(); |
228 | } | ||
229 | 227 | ||
230 | outer_cache.inv_range = xsc3_l2_inv_range; | 228 | outer_cache.inv_range = xsc3_l2_inv_range; |
231 | outer_cache.clean_range = xsc3_l2_clean_range; | 229 | outer_cache.clean_range = xsc3_l2_clean_range; |
232 | outer_cache.flush_range = xsc3_l2_flush_range; | 230 | outer_cache.flush_range = xsc3_l2_flush_range; |
231 | } | ||
233 | 232 | ||
234 | return 0; | 233 | return 0; |
235 | } | 234 | } |
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 52c40d15567..a04ffbbbe25 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
@@ -616,7 +616,7 @@ void __init mem_init(void) | |||
616 | "%dK data, %dK init, %luK highmem)\n", | 616 | "%dK data, %dK init, %luK highmem)\n", |
617 | nr_free_pages() << (PAGE_SHIFT-10), codesize >> 10, | 617 | nr_free_pages() << (PAGE_SHIFT-10), codesize >> 10, |
618 | datasize >> 10, initsize >> 10, | 618 | datasize >> 10, initsize >> 10, |
619 | (unsigned long) (totalhigh_pages << (PAGE_SHIFT-10))); | 619 | totalhigh_pages << (PAGE_SHIFT-10)); |
620 | 620 | ||
621 | if (PAGE_SIZE >= 16384 && num_physpages <= 128) { | 621 | if (PAGE_SIZE >= 16384 && num_physpages <= 128) { |
622 | extern int sysctl_overcommit_memory; | 622 | extern int sysctl_overcommit_memory; |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 1708da82da9..761ffede6a2 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -1067,4 +1067,6 @@ void setup_mm_for_reboot(char mode) | |||
1067 | pmd[1] = __pmd(pmdval + (1 << (PGDIR_SHIFT - 1))); | 1067 | pmd[1] = __pmd(pmdval + (1 << (PGDIR_SHIFT - 1))); |
1068 | flush_pmd_entry(pmd); | 1068 | flush_pmd_entry(pmd); |
1069 | } | 1069 | } |
1070 | |||
1071 | local_flush_tlb_all(); | ||
1070 | } | 1072 | } |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index 395cc90c661..7a5337ed7d6 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -59,8 +59,6 @@ ENTRY(cpu_v6_proc_fin) | |||
59 | * to what would be the reset vector. | 59 | * to what would be the reset vector. |
60 | * | 60 | * |
61 | * - loc - location to jump to for soft reset | 61 | * - loc - location to jump to for soft reset |
62 | * | ||
63 | * It is assumed that: | ||
64 | */ | 62 | */ |
65 | .align 5 | 63 | .align 5 |
66 | ENTRY(cpu_v6_reset) | 64 | ENTRY(cpu_v6_reset) |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index 3a285218fd1..7aaf88a3b7a 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -45,7 +45,14 @@ ENTRY(cpu_v7_proc_init) | |||
45 | ENDPROC(cpu_v7_proc_init) | 45 | ENDPROC(cpu_v7_proc_init) |
46 | 46 | ||
47 | ENTRY(cpu_v7_proc_fin) | 47 | ENTRY(cpu_v7_proc_fin) |
48 | mov pc, lr | 48 | stmfd sp!, {lr} |
49 | cpsid if @ disable interrupts | ||
50 | bl v7_flush_kern_cache_all | ||
51 | mrc p15, 0, r0, c1, c0, 0 @ ctrl register | ||
52 | bic r0, r0, #0x1000 @ ...i............ | ||
53 | bic r0, r0, #0x0006 @ .............ca. | ||
54 | mcr p15, 0, r0, c1, c0, 0 @ disable caches | ||
55 | ldmfd sp!, {pc} | ||
49 | ENDPROC(cpu_v7_proc_fin) | 56 | ENDPROC(cpu_v7_proc_fin) |
50 | 57 | ||
51 | /* | 58 | /* |
@@ -56,8 +63,6 @@ ENDPROC(cpu_v7_proc_fin) | |||
56 | * to what would be the reset vector. | 63 | * to what would be the reset vector. |
57 | * | 64 | * |
58 | * - loc - location to jump to for soft reset | 65 | * - loc - location to jump to for soft reset |
59 | * | ||
60 | * It is assumed that: | ||
61 | */ | 66 | */ |
62 | .align 5 | 67 | .align 5 |
63 | ENTRY(cpu_v7_reset) | 68 | ENTRY(cpu_v7_reset) |
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index 96456f54879..8e4f6dca899 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
@@ -407,6 +407,13 @@ __xsc3_setup: | |||
407 | 407 | ||
408 | adr r5, xsc3_crval | 408 | adr r5, xsc3_crval |
409 | ldmia r5, {r5, r6} | 409 | ldmia r5, {r5, r6} |
410 | |||
411 | #ifdef CONFIG_CACHE_XSC3L2 | ||
412 | mrc p15, 1, r0, c0, c0, 1 @ get L2 present information | ||
413 | ands r0, r0, #0xf8 | ||
414 | orrne r6, r6, #(1 << 26) @ enable L2 if present | ||
415 | #endif | ||
416 | |||
410 | mrc p15, 0, r0, c1, c0, 0 @ get control register | 417 | mrc p15, 0, r0, c1, c0, 0 @ get control register |
411 | bic r0, r0, r5 @ ..V. ..R. .... ..A. | 418 | bic r0, r0, r5 @ ..V. ..R. .... ..A. |
412 | orr r0, r0, r6 @ ..VI Z..S .... .C.M (mmu) | 419 | orr r0, r0, r6 @ ..VI Z..S .... .C.M (mmu) |
diff --git a/arch/arm/mm/tlb-v7.S b/arch/arm/mm/tlb-v7.S index a26a605b73b..0cb1848bd87 100644 --- a/arch/arm/mm/tlb-v7.S +++ b/arch/arm/mm/tlb-v7.S | |||
@@ -40,7 +40,6 @@ ENTRY(v7wbi_flush_user_tlb_range) | |||
40 | asid r3, r3 @ mask ASID | 40 | asid r3, r3 @ mask ASID |
41 | orr r0, r3, r0, lsl #PAGE_SHIFT @ Create initial MVA | 41 | orr r0, r3, r0, lsl #PAGE_SHIFT @ Create initial MVA |
42 | mov r1, r1, lsl #PAGE_SHIFT | 42 | mov r1, r1, lsl #PAGE_SHIFT |
43 | vma_vm_flags r2, r2 @ get vma->vm_flags | ||
44 | 1: | 43 | 1: |
45 | #ifdef CONFIG_SMP | 44 | #ifdef CONFIG_SMP |
46 | mcr p15, 0, r0, c8, c3, 1 @ TLB invalidate U MVA (shareable) | 45 | mcr p15, 0, r0, c8, c3, 1 @ TLB invalidate U MVA (shareable) |
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx25.h b/arch/arm/plat-mxc/include/mach/iomux-mx25.h index 810c47f56e7..9af494f0ab3 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx25.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx25.h | |||
@@ -58,19 +58,19 @@ | |||
58 | 58 | ||
59 | #define MX25_PAD_A18__A18 IOMUX_PAD(0x23c, 0x020, 0x10, 0, 0, NO_PAD_CTRL) | 59 | #define MX25_PAD_A18__A18 IOMUX_PAD(0x23c, 0x020, 0x10, 0, 0, NO_PAD_CTRL) |
60 | #define MX25_PAD_A18__GPIO_2_4 IOMUX_PAD(0x23c, 0x020, 0x15, 0, 0, NO_PAD_CTRL) | 60 | #define MX25_PAD_A18__GPIO_2_4 IOMUX_PAD(0x23c, 0x020, 0x15, 0, 0, NO_PAD_CTRL) |
61 | #define MX25_PAD_A18__FEC_COL IOMUX_PAD(0x23c, 0x020, 0x17, 0x504, 0, NO_PAD_CTL) | 61 | #define MX25_PAD_A18__FEC_COL IOMUX_PAD(0x23c, 0x020, 0x17, 0x504, 0, NO_PAD_CTRL) |
62 | 62 | ||
63 | #define MX25_PAD_A19__A19 IOMUX_PAD(0x240, 0x024, 0x10, 0, 0, NO_PAD_CTRL) | 63 | #define MX25_PAD_A19__A19 IOMUX_PAD(0x240, 0x024, 0x10, 0, 0, NO_PAD_CTRL) |
64 | #define MX25_PAD_A19__FEC_RX_ER IOMUX_PAD(0x240, 0x024, 0x17, 0x518, 0, NO_PAD_CTL) | 64 | #define MX25_PAD_A19__FEC_RX_ER IOMUX_PAD(0x240, 0x024, 0x17, 0x518, 0, NO_PAD_CTRL) |
65 | #define MX25_PAD_A19__GPIO_2_5 IOMUX_PAD(0x240, 0x024, 0x15, 0, 0, NO_PAD_CTRL) | 65 | #define MX25_PAD_A19__GPIO_2_5 IOMUX_PAD(0x240, 0x024, 0x15, 0, 0, NO_PAD_CTRL) |
66 | 66 | ||
67 | #define MX25_PAD_A20__A20 IOMUX_PAD(0x244, 0x028, 0x10, 0, 0, NO_PAD_CTRL) | 67 | #define MX25_PAD_A20__A20 IOMUX_PAD(0x244, 0x028, 0x10, 0, 0, NO_PAD_CTRL) |
68 | #define MX25_PAD_A20__GPIO_2_6 IOMUX_PAD(0x244, 0x028, 0x15, 0, 0, NO_PAD_CTRL) | 68 | #define MX25_PAD_A20__GPIO_2_6 IOMUX_PAD(0x244, 0x028, 0x15, 0, 0, NO_PAD_CTRL) |
69 | #define MX25_PAD_A20__FEC_RDATA2 IOMUX_PAD(0x244, 0x028, 0x17, 0x50c, 0, NO_PAD_CTL) | 69 | #define MX25_PAD_A20__FEC_RDATA2 IOMUX_PAD(0x244, 0x028, 0x17, 0x50c, 0, NO_PAD_CTRL) |
70 | 70 | ||
71 | #define MX25_PAD_A21__A21 IOMUX_PAD(0x248, 0x02c, 0x10, 0, 0, NO_PAD_CTRL) | 71 | #define MX25_PAD_A21__A21 IOMUX_PAD(0x248, 0x02c, 0x10, 0, 0, NO_PAD_CTRL) |
72 | #define MX25_PAD_A21__GPIO_2_7 IOMUX_PAD(0x248, 0x02c, 0x15, 0, 0, NO_PAD_CTRL) | 72 | #define MX25_PAD_A21__GPIO_2_7 IOMUX_PAD(0x248, 0x02c, 0x15, 0, 0, NO_PAD_CTRL) |
73 | #define MX25_PAD_A21__FEC_RDATA3 IOMUX_PAD(0x248, 0x02c, 0x17, 0x510, 0, NO_PAD_CTL) | 73 | #define MX25_PAD_A21__FEC_RDATA3 IOMUX_PAD(0x248, 0x02c, 0x17, 0x510, 0, NO_PAD_CTRL) |
74 | 74 | ||
75 | #define MX25_PAD_A22__A22 IOMUX_PAD(0x000, 0x030, 0x10, 0, 0, NO_PAD_CTRL) | 75 | #define MX25_PAD_A22__A22 IOMUX_PAD(0x000, 0x030, 0x10, 0, 0, NO_PAD_CTRL) |
76 | #define MX25_PAD_A22__GPIO_2_8 IOMUX_PAD(0x000, 0x030, 0x15, 0, 0, NO_PAD_CTRL) | 76 | #define MX25_PAD_A22__GPIO_2_8 IOMUX_PAD(0x000, 0x030, 0x15, 0, 0, NO_PAD_CTRL) |
@@ -80,11 +80,11 @@ | |||
80 | 80 | ||
81 | #define MX25_PAD_A24__A24 IOMUX_PAD(0x250, 0x038, 0x10, 0, 0, NO_PAD_CTRL) | 81 | #define MX25_PAD_A24__A24 IOMUX_PAD(0x250, 0x038, 0x10, 0, 0, NO_PAD_CTRL) |
82 | #define MX25_PAD_A24__GPIO_2_10 IOMUX_PAD(0x250, 0x038, 0x15, 0, 0, NO_PAD_CTRL) | 82 | #define MX25_PAD_A24__GPIO_2_10 IOMUX_PAD(0x250, 0x038, 0x15, 0, 0, NO_PAD_CTRL) |
83 | #define MX25_PAD_A24__FEC_RX_CLK IOMUX_PAD(0x250, 0x038, 0x17, 0x514, 0, NO_PAD_CTL) | 83 | #define MX25_PAD_A24__FEC_RX_CLK IOMUX_PAD(0x250, 0x038, 0x17, 0x514, 0, NO_PAD_CTRL) |
84 | 84 | ||
85 | #define MX25_PAD_A25__A25 IOMUX_PAD(0x254, 0x03c, 0x10, 0, 0, NO_PAD_CTRL) | 85 | #define MX25_PAD_A25__A25 IOMUX_PAD(0x254, 0x03c, 0x10, 0, 0, NO_PAD_CTRL) |
86 | #define MX25_PAD_A25__GPIO_2_11 IOMUX_PAD(0x254, 0x03c, 0x15, 0, 0, NO_PAD_CTRL) | 86 | #define MX25_PAD_A25__GPIO_2_11 IOMUX_PAD(0x254, 0x03c, 0x15, 0, 0, NO_PAD_CTRL) |
87 | #define MX25_PAD_A25__FEC_CRS IOMUX_PAD(0x254, 0x03c, 0x17, 0x508, 0, NO_PAD_CTL) | 87 | #define MX25_PAD_A25__FEC_CRS IOMUX_PAD(0x254, 0x03c, 0x17, 0x508, 0, NO_PAD_CTRL) |
88 | 88 | ||
89 | #define MX25_PAD_EB0__EB0 IOMUX_PAD(0x258, 0x040, 0x10, 0, 0, NO_PAD_CTRL) | 89 | #define MX25_PAD_EB0__EB0 IOMUX_PAD(0x258, 0x040, 0x10, 0, 0, NO_PAD_CTRL) |
90 | #define MX25_PAD_EB0__AUD4_TXD IOMUX_PAD(0x258, 0x040, 0x14, 0x464, 0, NO_PAD_CTRL) | 90 | #define MX25_PAD_EB0__AUD4_TXD IOMUX_PAD(0x258, 0x040, 0x14, 0x464, 0, NO_PAD_CTRL) |
@@ -112,7 +112,7 @@ | |||
112 | #define MX25_PAD_CS5__UART5_RTS IOMUX_PAD(0x268, 0x058, 0x13, 0x574, 0, NO_PAD_CTRL) | 112 | #define MX25_PAD_CS5__UART5_RTS IOMUX_PAD(0x268, 0x058, 0x13, 0x574, 0, NO_PAD_CTRL) |
113 | #define MX25_PAD_CS5__GPIO_3_21 IOMUX_PAD(0x268, 0x058, 0x15, 0, 0, NO_PAD_CTRL) | 113 | #define MX25_PAD_CS5__GPIO_3_21 IOMUX_PAD(0x268, 0x058, 0x15, 0, 0, NO_PAD_CTRL) |
114 | 114 | ||
115 | #define MX25_PAD_NF_CE0__NF_CE0 IOMUX_PAD(0x26c, 0x05c, 0x10, 0, 0, NO_PAD_CTL) | 115 | #define MX25_PAD_NF_CE0__NF_CE0 IOMUX_PAD(0x26c, 0x05c, 0x10, 0, 0, NO_PAD_CTRL) |
116 | #define MX25_PAD_NF_CE0__GPIO_3_22 IOMUX_PAD(0x26c, 0x05c, 0x15, 0, 0, NO_PAD_CTRL) | 116 | #define MX25_PAD_NF_CE0__GPIO_3_22 IOMUX_PAD(0x26c, 0x05c, 0x15, 0, 0, NO_PAD_CTRL) |
117 | 117 | ||
118 | #define MX25_PAD_ECB__ECB IOMUX_PAD(0x270, 0x060, 0x10, 0, 0, NO_PAD_CTRL) | 118 | #define MX25_PAD_ECB__ECB IOMUX_PAD(0x270, 0x060, 0x10, 0, 0, NO_PAD_CTRL) |
@@ -229,28 +229,28 @@ | |||
229 | #define MX25_PAD_LD7__GPIO_1_21 IOMUX_PAD(0x2dc, 0x0e4, 0x15, 0, 0, NO_PAD_CTRL) | 229 | #define MX25_PAD_LD7__GPIO_1_21 IOMUX_PAD(0x2dc, 0x0e4, 0x15, 0, 0, NO_PAD_CTRL) |
230 | 230 | ||
231 | #define MX25_PAD_LD8__LD8 IOMUX_PAD(0x2e0, 0x0e8, 0x10, 0, 0, NO_PAD_CTRL) | 231 | #define MX25_PAD_LD8__LD8 IOMUX_PAD(0x2e0, 0x0e8, 0x10, 0, 0, NO_PAD_CTRL) |
232 | #define MX25_PAD_LD8__FEC_TX_ERR IOMUX_PAD(0x2e0, 0x0e8, 0x15, 0, 0, NO_PAD_CTL) | 232 | #define MX25_PAD_LD8__FEC_TX_ERR IOMUX_PAD(0x2e0, 0x0e8, 0x15, 0, 0, NO_PAD_CTRL) |
233 | 233 | ||
234 | #define MX25_PAD_LD9__LD9 IOMUX_PAD(0x2e4, 0x0ec, 0x10, 0, 0, NO_PAD_CTRL) | 234 | #define MX25_PAD_LD9__LD9 IOMUX_PAD(0x2e4, 0x0ec, 0x10, 0, 0, NO_PAD_CTRL) |
235 | #define MX25_PAD_LD9__FEC_COL IOMUX_PAD(0x2e4, 0x0ec, 0x15, 0x504, 1, NO_PAD_CTL) | 235 | #define MX25_PAD_LD9__FEC_COL IOMUX_PAD(0x2e4, 0x0ec, 0x15, 0x504, 1, NO_PAD_CTRL) |
236 | 236 | ||
237 | #define MX25_PAD_LD10__LD10 IOMUX_PAD(0x2e8, 0x0f0, 0x10, 0, 0, NO_PAD_CTRL) | 237 | #define MX25_PAD_LD10__LD10 IOMUX_PAD(0x2e8, 0x0f0, 0x10, 0, 0, NO_PAD_CTRL) |
238 | #define MX25_PAD_LD10__FEC_RX_ER IOMUX_PAD(0x2e8, 0x0f0, 0x15, 0x518, 1, NO_PAD_CTL) | 238 | #define MX25_PAD_LD10__FEC_RX_ER IOMUX_PAD(0x2e8, 0x0f0, 0x15, 0x518, 1, NO_PAD_CTRL) |
239 | 239 | ||
240 | #define MX25_PAD_LD11__LD11 IOMUX_PAD(0x2ec, 0x0f4, 0x10, 0, 0, NO_PAD_CTRL) | 240 | #define MX25_PAD_LD11__LD11 IOMUX_PAD(0x2ec, 0x0f4, 0x10, 0, 0, NO_PAD_CTRL) |
241 | #define MX25_PAD_LD11__FEC_RDATA2 IOMUX_PAD(0x2ec, 0x0f4, 0x15, 0x50c, 1, NO_PAD_CTL) | 241 | #define MX25_PAD_LD11__FEC_RDATA2 IOMUX_PAD(0x2ec, 0x0f4, 0x15, 0x50c, 1, NO_PAD_CTRL) |
242 | 242 | ||
243 | #define MX25_PAD_LD12__LD12 IOMUX_PAD(0x2f0, 0x0f8, 0x10, 0, 0, NO_PAD_CTRL) | 243 | #define MX25_PAD_LD12__LD12 IOMUX_PAD(0x2f0, 0x0f8, 0x10, 0, 0, NO_PAD_CTRL) |
244 | #define MX25_PAD_LD12__FEC_RDATA3 IOMUX_PAD(0x2f0, 0x0f8, 0x15, 0x510, 1, NO_PAD_CTL) | 244 | #define MX25_PAD_LD12__FEC_RDATA3 IOMUX_PAD(0x2f0, 0x0f8, 0x15, 0x510, 1, NO_PAD_CTRL) |
245 | 245 | ||
246 | #define MX25_PAD_LD13__LD13 IOMUX_PAD(0x2f4, 0x0fc, 0x10, 0, 0, NO_PAD_CTRL) | 246 | #define MX25_PAD_LD13__LD13 IOMUX_PAD(0x2f4, 0x0fc, 0x10, 0, 0, NO_PAD_CTRL) |
247 | #define MX25_PAD_LD13__FEC_TDATA2 IOMUX_PAD(0x2f4, 0x0fc, 0x15, 0, 0, NO_PAD_CTL) | 247 | #define MX25_PAD_LD13__FEC_TDATA2 IOMUX_PAD(0x2f4, 0x0fc, 0x15, 0, 0, NO_PAD_CTRL) |
248 | 248 | ||
249 | #define MX25_PAD_LD14__LD14 IOMUX_PAD(0x2f8, 0x100, 0x10, 0, 0, NO_PAD_CTRL) | 249 | #define MX25_PAD_LD14__LD14 IOMUX_PAD(0x2f8, 0x100, 0x10, 0, 0, NO_PAD_CTRL) |
250 | #define MX25_PAD_LD14__FEC_TDATA3 IOMUX_PAD(0x2f8, 0x100, 0x15, 0, 0, NO_PAD_CTL) | 250 | #define MX25_PAD_LD14__FEC_TDATA3 IOMUX_PAD(0x2f8, 0x100, 0x15, 0, 0, NO_PAD_CTRL) |
251 | 251 | ||
252 | #define MX25_PAD_LD15__LD15 IOMUX_PAD(0x2fc, 0x104, 0x10, 0, 0, NO_PAD_CTRL) | 252 | #define MX25_PAD_LD15__LD15 IOMUX_PAD(0x2fc, 0x104, 0x10, 0, 0, NO_PAD_CTRL) |
253 | #define MX25_PAD_LD15__FEC_RX_CLK IOMUX_PAD(0x2fc, 0x104, 0x15, 0x514, 1, NO_PAD_CTL) | 253 | #define MX25_PAD_LD15__FEC_RX_CLK IOMUX_PAD(0x2fc, 0x104, 0x15, 0x514, 1, NO_PAD_CTRL) |
254 | 254 | ||
255 | #define MX25_PAD_HSYNC__HSYNC IOMUX_PAD(0x300, 0x108, 0x10, 0, 0, NO_PAD_CTRL) | 255 | #define MX25_PAD_HSYNC__HSYNC IOMUX_PAD(0x300, 0x108, 0x10, 0, 0, NO_PAD_CTRL) |
256 | #define MX25_PAD_HSYNC__GPIO_1_22 IOMUX_PAD(0x300, 0x108, 0x15, 0, 0, NO_PAD_CTRL) | 256 | #define MX25_PAD_HSYNC__GPIO_1_22 IOMUX_PAD(0x300, 0x108, 0x15, 0, 0, NO_PAD_CTRL) |
@@ -265,7 +265,7 @@ | |||
265 | #define MX25_PAD_OE_ACD__GPIO_1_25 IOMUX_PAD(0x30c, 0x114, 0x15, 0, 0, NO_PAD_CTRL) | 265 | #define MX25_PAD_OE_ACD__GPIO_1_25 IOMUX_PAD(0x30c, 0x114, 0x15, 0, 0, NO_PAD_CTRL) |
266 | 266 | ||
267 | #define MX25_PAD_CONTRAST__CONTRAST IOMUX_PAD(0x310, 0x118, 0x10, 0, 0, NO_PAD_CTRL) | 267 | #define MX25_PAD_CONTRAST__CONTRAST IOMUX_PAD(0x310, 0x118, 0x10, 0, 0, NO_PAD_CTRL) |
268 | #define MX25_PAD_CONTRAST__FEC_CRS IOMUX_PAD(0x310, 0x118, 0x15, 0x508, 1, NO_PAD_CTL) | 268 | #define MX25_PAD_CONTRAST__FEC_CRS IOMUX_PAD(0x310, 0x118, 0x15, 0x508, 1, NO_PAD_CTRL) |
269 | 269 | ||
270 | #define MX25_PAD_PWM__PWM IOMUX_PAD(0x314, 0x11c, 0x10, 0, 0, NO_PAD_CTRL) | 270 | #define MX25_PAD_PWM__PWM IOMUX_PAD(0x314, 0x11c, 0x10, 0, 0, NO_PAD_CTRL) |
271 | #define MX25_PAD_PWM__GPIO_1_26 IOMUX_PAD(0x314, 0x11c, 0x15, 0, 0, NO_PAD_CTRL) | 271 | #define MX25_PAD_PWM__GPIO_1_26 IOMUX_PAD(0x314, 0x11c, 0x15, 0, 0, NO_PAD_CTRL) |
@@ -354,19 +354,19 @@ | |||
354 | #define MX25_PAD_UART2_TXD__GPIO_4_27 IOMUX_PAD(0x37c, 0x184, 0x15, 0, 0, NO_PAD_CTRL) | 354 | #define MX25_PAD_UART2_TXD__GPIO_4_27 IOMUX_PAD(0x37c, 0x184, 0x15, 0, 0, NO_PAD_CTRL) |
355 | 355 | ||
356 | #define MX25_PAD_UART2_RTS__UART2_RTS IOMUX_PAD(0x380, 0x188, 0x10, 0, 0, NO_PAD_CTRL) | 356 | #define MX25_PAD_UART2_RTS__UART2_RTS IOMUX_PAD(0x380, 0x188, 0x10, 0, 0, NO_PAD_CTRL) |
357 | #define MX25_PAD_UART2_RTS__FEC_COL IOMUX_PAD(0x380, 0x188, 0x12, 0x504, 2, NO_PAD_CTL) | 357 | #define MX25_PAD_UART2_RTS__FEC_COL IOMUX_PAD(0x380, 0x188, 0x12, 0x504, 2, NO_PAD_CTRL) |
358 | #define MX25_PAD_UART2_RTS__GPIO_4_28 IOMUX_PAD(0x380, 0x188, 0x15, 0, 0, NO_PAD_CTRL) | 358 | #define MX25_PAD_UART2_RTS__GPIO_4_28 IOMUX_PAD(0x380, 0x188, 0x15, 0, 0, NO_PAD_CTRL) |
359 | 359 | ||
360 | #define MX25_PAD_UART2_CTS__FEC_RX_ER IOMUX_PAD(0x384, 0x18c, 0x12, 0x518, 2, NO_PAD_CTL) | 360 | #define MX25_PAD_UART2_CTS__FEC_RX_ER IOMUX_PAD(0x384, 0x18c, 0x12, 0x518, 2, NO_PAD_CTRL) |
361 | #define MX25_PAD_UART2_CTS__UART2_CTS IOMUX_PAD(0x384, 0x18c, 0x10, 0, 0, NO_PAD_CTRL) | 361 | #define MX25_PAD_UART2_CTS__UART2_CTS IOMUX_PAD(0x384, 0x18c, 0x10, 0, 0, NO_PAD_CTRL) |
362 | #define MX25_PAD_UART2_CTS__GPIO_4_29 IOMUX_PAD(0x384, 0x18c, 0x15, 0, 0, NO_PAD_CTRL) | 362 | #define MX25_PAD_UART2_CTS__GPIO_4_29 IOMUX_PAD(0x384, 0x18c, 0x15, 0, 0, NO_PAD_CTRL) |
363 | 363 | ||
364 | #define MX25_PAD_SD1_CMD__SD1_CMD IOMUX_PAD(0x388, 0x190, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) | 364 | #define MX25_PAD_SD1_CMD__SD1_CMD IOMUX_PAD(0x388, 0x190, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) |
365 | #define MX25_PAD_SD1_CMD__FEC_RDATA2 IOMUX_PAD(0x388, 0x190, 0x12, 0x50c, 2, NO_PAD_CTL) | 365 | #define MX25_PAD_SD1_CMD__FEC_RDATA2 IOMUX_PAD(0x388, 0x190, 0x12, 0x50c, 2, NO_PAD_CTRL) |
366 | #define MX25_PAD_SD1_CMD__GPIO_2_23 IOMUX_PAD(0x388, 0x190, 0x15, 0, 0, NO_PAD_CTRL) | 366 | #define MX25_PAD_SD1_CMD__GPIO_2_23 IOMUX_PAD(0x388, 0x190, 0x15, 0, 0, NO_PAD_CTRL) |
367 | 367 | ||
368 | #define MX25_PAD_SD1_CLK__SD1_CLK IOMUX_PAD(0x38c, 0x194, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) | 368 | #define MX25_PAD_SD1_CLK__SD1_CLK IOMUX_PAD(0x38c, 0x194, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) |
369 | #define MX25_PAD_SD1_CLK__FEC_RDATA3 IOMUX_PAD(0x38c, 0x194, 0x12, 0x510, 2, NO_PAD_CTL) | 369 | #define MX25_PAD_SD1_CLK__FEC_RDATA3 IOMUX_PAD(0x38c, 0x194, 0x12, 0x510, 2, NO_PAD_CTRL) |
370 | #define MX25_PAD_SD1_CLK__GPIO_2_24 IOMUX_PAD(0x38c, 0x194, 0x15, 0, 0, NO_PAD_CTRL) | 370 | #define MX25_PAD_SD1_CLK__GPIO_2_24 IOMUX_PAD(0x38c, 0x194, 0x15, 0, 0, NO_PAD_CTRL) |
371 | 371 | ||
372 | #define MX25_PAD_SD1_DATA0__SD1_DATA0 IOMUX_PAD(0x390, 0x198, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) | 372 | #define MX25_PAD_SD1_DATA0__SD1_DATA0 IOMUX_PAD(0x390, 0x198, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) |
@@ -377,11 +377,11 @@ | |||
377 | #define MX25_PAD_SD1_DATA1__GPIO_2_26 IOMUX_PAD(0x394, 0x19c, 0x15, 0, 0, NO_PAD_CTRL) | 377 | #define MX25_PAD_SD1_DATA1__GPIO_2_26 IOMUX_PAD(0x394, 0x19c, 0x15, 0, 0, NO_PAD_CTRL) |
378 | 378 | ||
379 | #define MX25_PAD_SD1_DATA2__SD1_DATA2 IOMUX_PAD(0x398, 0x1a0, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) | 379 | #define MX25_PAD_SD1_DATA2__SD1_DATA2 IOMUX_PAD(0x398, 0x1a0, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) |
380 | #define MX25_PAD_SD1_DATA2__FEC_RX_CLK IOMUX_PAD(0x398, 0x1a0, 0x15, 0x514, 2, NO_PAD_CTL) | 380 | #define MX25_PAD_SD1_DATA2__FEC_RX_CLK IOMUX_PAD(0x398, 0x1a0, 0x15, 0x514, 2, NO_PAD_CTRL) |
381 | #define MX25_PAD_SD1_DATA2__GPIO_2_27 IOMUX_PAD(0x398, 0x1a0, 0x15, 0, 0, NO_PAD_CTRL) | 381 | #define MX25_PAD_SD1_DATA2__GPIO_2_27 IOMUX_PAD(0x398, 0x1a0, 0x15, 0, 0, NO_PAD_CTRL) |
382 | 382 | ||
383 | #define MX25_PAD_SD1_DATA3__SD1_DATA3 IOMUX_PAD(0x39c, 0x1a4, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) | 383 | #define MX25_PAD_SD1_DATA3__SD1_DATA3 IOMUX_PAD(0x39c, 0x1a4, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) |
384 | #define MX25_PAD_SD1_DATA3__FEC_CRS IOMUX_PAD(0x39c, 0x1a4, 0x10, 0x508, 2, NO_PAD_CTL) | 384 | #define MX25_PAD_SD1_DATA3__FEC_CRS IOMUX_PAD(0x39c, 0x1a4, 0x10, 0x508, 2, NO_PAD_CTRL) |
385 | #define MX25_PAD_SD1_DATA3__GPIO_2_28 IOMUX_PAD(0x39c, 0x1a4, 0x15, 0, 0, NO_PAD_CTRL) | 385 | #define MX25_PAD_SD1_DATA3__GPIO_2_28 IOMUX_PAD(0x39c, 0x1a4, 0x15, 0, 0, NO_PAD_CTRL) |
386 | 386 | ||
387 | #define MX25_PAD_KPP_ROW0__KPP_ROW0 IOMUX_PAD(0x3a0, 0x1a8, 0x10, 0, 0, PAD_CTL_PKE) | 387 | #define MX25_PAD_KPP_ROW0__KPP_ROW0 IOMUX_PAD(0x3a0, 0x1a8, 0x10, 0, 0, PAD_CTL_PKE) |
@@ -410,7 +410,7 @@ | |||
410 | #define MX25_PAD_KPP_COL3__KPP_COL3 IOMUX_PAD(0x3bc, 0x1c4, 0x10, 0, 0, PAD_CTL_PKE | PAD_CTL_ODE) | 410 | #define MX25_PAD_KPP_COL3__KPP_COL3 IOMUX_PAD(0x3bc, 0x1c4, 0x10, 0, 0, PAD_CTL_PKE | PAD_CTL_ODE) |
411 | #define MX25_PAD_KPP_COL3__GPIO_3_4 IOMUX_PAD(0x3bc, 0x1c4, 0x15, 0, 0, NO_PAD_CTRL) | 411 | #define MX25_PAD_KPP_COL3__GPIO_3_4 IOMUX_PAD(0x3bc, 0x1c4, 0x15, 0, 0, NO_PAD_CTRL) |
412 | 412 | ||
413 | #define MX25_PAD_FEC_MDC__FEC_MDC IOMUX_PAD(0x3c0, 0x1c8, 0x10, 0, 0, NO_PAD_CTL) | 413 | #define MX25_PAD_FEC_MDC__FEC_MDC IOMUX_PAD(0x3c0, 0x1c8, 0x10, 0, 0, NO_PAD_CTRL) |
414 | #define MX25_PAD_FEC_MDC__AUD4_TXD IOMUX_PAD(0x3c0, 0x1c8, 0x12, 0x464, 1, NO_PAD_CTRL) | 414 | #define MX25_PAD_FEC_MDC__AUD4_TXD IOMUX_PAD(0x3c0, 0x1c8, 0x12, 0x464, 1, NO_PAD_CTRL) |
415 | #define MX25_PAD_FEC_MDC__GPIO_3_5 IOMUX_PAD(0x3c0, 0x1c8, 0x15, 0, 0, NO_PAD_CTRL) | 415 | #define MX25_PAD_FEC_MDC__GPIO_3_5 IOMUX_PAD(0x3c0, 0x1c8, 0x15, 0, 0, NO_PAD_CTRL) |
416 | 416 | ||
@@ -418,23 +418,23 @@ | |||
418 | #define MX25_PAD_FEC_MDIO__AUD4_RXD IOMUX_PAD(0x3c4, 0x1cc, 0x12, 0x460, 1, NO_PAD_CTRL) | 418 | #define MX25_PAD_FEC_MDIO__AUD4_RXD IOMUX_PAD(0x3c4, 0x1cc, 0x12, 0x460, 1, NO_PAD_CTRL) |
419 | #define MX25_PAD_FEC_MDIO__GPIO_3_6 IOMUX_PAD(0x3c4, 0x1cc, 0x15, 0, 0, NO_PAD_CTRL) | 419 | #define MX25_PAD_FEC_MDIO__GPIO_3_6 IOMUX_PAD(0x3c4, 0x1cc, 0x15, 0, 0, NO_PAD_CTRL) |
420 | 420 | ||
421 | #define MX25_PAD_FEC_TDATA0__FEC_TDATA0 IOMUX_PAD(0x3c8, 0x1d0, 0x10, 0, 0, NO_PAD_CTL) | 421 | #define MX25_PAD_FEC_TDATA0__FEC_TDATA0 IOMUX_PAD(0x3c8, 0x1d0, 0x10, 0, 0, NO_PAD_CTRL) |
422 | #define MX25_PAD_FEC_TDATA0__GPIO_3_7 IOMUX_PAD(0x3c8, 0x1d0, 0x15, 0, 0, NO_PAD_CTRL) | 422 | #define MX25_PAD_FEC_TDATA0__GPIO_3_7 IOMUX_PAD(0x3c8, 0x1d0, 0x15, 0, 0, NO_PAD_CTRL) |
423 | 423 | ||
424 | #define MX25_PAD_FEC_TDATA1__FEC_TDATA1 IOMUX_PAD(0x3cc, 0x1d4, 0x10, 0, 0, NO_PAD_CTL) | 424 | #define MX25_PAD_FEC_TDATA1__FEC_TDATA1 IOMUX_PAD(0x3cc, 0x1d4, 0x10, 0, 0, NO_PAD_CTRL) |
425 | #define MX25_PAD_FEC_TDATA1__AUD4_TXFS IOMUX_PAD(0x3cc, 0x1d4, 0x12, 0x474, 1, NO_PAD_CTRL) | 425 | #define MX25_PAD_FEC_TDATA1__AUD4_TXFS IOMUX_PAD(0x3cc, 0x1d4, 0x12, 0x474, 1, NO_PAD_CTRL) |
426 | #define MX25_PAD_FEC_TDATA1__GPIO_3_8 IOMUX_PAD(0x3cc, 0x1d4, 0x15, 0, 0, NO_PAD_CTRL) | 426 | #define MX25_PAD_FEC_TDATA1__GPIO_3_8 IOMUX_PAD(0x3cc, 0x1d4, 0x15, 0, 0, NO_PAD_CTRL) |
427 | 427 | ||
428 | #define MX25_PAD_FEC_TX_EN__FEC_TX_EN IOMUX_PAD(0x3d0, 0x1d8, 0x10, 0, 0, NO_PAD_CTL) | 428 | #define MX25_PAD_FEC_TX_EN__FEC_TX_EN IOMUX_PAD(0x3d0, 0x1d8, 0x10, 0, 0, NO_PAD_CTRL) |
429 | #define MX25_PAD_FEC_TX_EN__GPIO_3_9 IOMUX_PAD(0x3d0, 0x1d8, 0x15, 0, 0, NO_PAD_CTRL) | 429 | #define MX25_PAD_FEC_TX_EN__GPIO_3_9 IOMUX_PAD(0x3d0, 0x1d8, 0x15, 0, 0, NO_PAD_CTRL) |
430 | 430 | ||
431 | #define MX25_PAD_FEC_RDATA0__FEC_RDATA0 IOMUX_PAD(0x3d4, 0x1dc, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTL) | 431 | #define MX25_PAD_FEC_RDATA0__FEC_RDATA0 IOMUX_PAD(0x3d4, 0x1dc, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTRL) |
432 | #define MX25_PAD_FEC_RDATA0__GPIO_3_10 IOMUX_PAD(0x3d4, 0x1dc, 0x15, 0, 0, NO_PAD_CTRL) | 432 | #define MX25_PAD_FEC_RDATA0__GPIO_3_10 IOMUX_PAD(0x3d4, 0x1dc, 0x15, 0, 0, NO_PAD_CTRL) |
433 | 433 | ||
434 | #define MX25_PAD_FEC_RDATA1__FEC_RDATA1 IOMUX_PAD(0x3d8, 0x1e0, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTL) | 434 | #define MX25_PAD_FEC_RDATA1__FEC_RDATA1 IOMUX_PAD(0x3d8, 0x1e0, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTRL) |
435 | #define MX25_PAD_FEC_RDATA1__GPIO_3_11 IOMUX_PAD(0x3d8, 0x1e0, 0x15, 0, 0, NO_PAD_CTRL) | 435 | #define MX25_PAD_FEC_RDATA1__GPIO_3_11 IOMUX_PAD(0x3d8, 0x1e0, 0x15, 0, 0, NO_PAD_CTRL) |
436 | 436 | ||
437 | #define MX25_PAD_FEC_RX_DV__FEC_RX_DV IOMUX_PAD(0x3dc, 0x1e4, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTL) | 437 | #define MX25_PAD_FEC_RX_DV__FEC_RX_DV IOMUX_PAD(0x3dc, 0x1e4, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTRL) |
438 | #define MX25_PAD_FEC_RX_DV__CAN2_RX IOMUX_PAD(0x3dc, 0x1e4, 0x14, 0x484, 0, PAD_CTL_PUS_22K_UP) | 438 | #define MX25_PAD_FEC_RX_DV__CAN2_RX IOMUX_PAD(0x3dc, 0x1e4, 0x14, 0x484, 0, PAD_CTL_PUS_22K_UP) |
439 | #define MX25_PAD_FEC_RX_DV__GPIO_3_12 IOMUX_PAD(0x3dc, 0x1e4, 0x15, 0, 0, NO_PAD_CTRL) | 439 | #define MX25_PAD_FEC_RX_DV__GPIO_3_12 IOMUX_PAD(0x3dc, 0x1e4, 0x15, 0, 0, NO_PAD_CTRL) |
440 | 440 | ||
diff --git a/arch/arm/plat-mxc/include/mach/mx25.h b/arch/arm/plat-mxc/include/mach/mx25.h index 91e73814480..854e2dc5848 100644 --- a/arch/arm/plat-mxc/include/mach/mx25.h +++ b/arch/arm/plat-mxc/include/mach/mx25.h | |||
@@ -41,4 +41,8 @@ | |||
41 | #define UART1_BASE_ADDR 0x43f90000 | 41 | #define UART1_BASE_ADDR 0x43f90000 |
42 | #define UART2_BASE_ADDR 0x43f94000 | 42 | #define UART2_BASE_ADDR 0x43f94000 |
43 | 43 | ||
44 | #define MX25_FEC_BASE_ADDR 0x50038000 | ||
45 | |||
46 | #define MX25_INT_FEC 57 | ||
47 | |||
44 | #endif /* __MACH_MX25_H__ */ | 48 | #endif /* __MACH_MX25_H__ */ |
diff --git a/arch/arm/plat-mxc/include/mach/uncompress.h b/arch/arm/plat-mxc/include/mach/uncompress.h index 4d5d395ad63..d49384cb1e9 100644 --- a/arch/arm/plat-mxc/include/mach/uncompress.h +++ b/arch/arm/plat-mxc/include/mach/uncompress.h | |||
@@ -60,7 +60,9 @@ static void putc(int ch) | |||
60 | UART(TXR) = ch; | 60 | UART(TXR) = ch; |
61 | } | 61 | } |
62 | 62 | ||
63 | #define flush() do { } while (0) | 63 | static inline void flush(void) |
64 | { | ||
65 | } | ||
64 | 66 | ||
65 | #define MX1_UART1_BASE_ADDR 0x00206000 | 67 | #define MX1_UART1_BASE_ADDR 0x00206000 |
66 | #define MX25_UART1_BASE_ADDR 0x43f90000 | 68 | #define MX25_UART1_BASE_ADDR 0x43f90000 |
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c index 89cafc93724..d9f8c844c38 100644 --- a/arch/arm/plat-omap/clock.c +++ b/arch/arm/plat-omap/clock.c | |||
@@ -36,10 +36,6 @@ static struct clk_functions *arch_clock; | |||
36 | * Standard clock functions defined in include/linux/clk.h | 36 | * Standard clock functions defined in include/linux/clk.h |
37 | *-------------------------------------------------------------------------*/ | 37 | *-------------------------------------------------------------------------*/ |
38 | 38 | ||
39 | /* This functions is moved to arch/arm/common/clkdev.c. For OMAP4 since | ||
40 | * clock framework is not up , it is defined here to avoid rework in | ||
41 | * every driver. Also dummy prcm reset function is added */ | ||
42 | |||
43 | int clk_enable(struct clk *clk) | 39 | int clk_enable(struct clk *clk) |
44 | { | 40 | { |
45 | unsigned long flags; | 41 | unsigned long flags; |
@@ -305,7 +301,6 @@ void clk_enable_init_clocks(void) | |||
305 | clk_enable(clkp); | 301 | clk_enable(clkp); |
306 | } | 302 | } |
307 | } | 303 | } |
308 | EXPORT_SYMBOL(clk_enable_init_clocks); | ||
309 | 304 | ||
310 | /* | 305 | /* |
311 | * Low level helpers | 306 | * Low level helpers |
@@ -334,7 +329,16 @@ void clk_init_cpufreq_table(struct cpufreq_frequency_table **table) | |||
334 | arch_clock->clk_init_cpufreq_table(table); | 329 | arch_clock->clk_init_cpufreq_table(table); |
335 | spin_unlock_irqrestore(&clockfw_lock, flags); | 330 | spin_unlock_irqrestore(&clockfw_lock, flags); |
336 | } | 331 | } |
337 | EXPORT_SYMBOL(clk_init_cpufreq_table); | 332 | |
333 | void clk_exit_cpufreq_table(struct cpufreq_frequency_table **table) | ||
334 | { | ||
335 | unsigned long flags; | ||
336 | |||
337 | spin_lock_irqsave(&clockfw_lock, flags); | ||
338 | if (arch_clock->clk_exit_cpufreq_table) | ||
339 | arch_clock->clk_exit_cpufreq_table(table); | ||
340 | spin_unlock_irqrestore(&clockfw_lock, flags); | ||
341 | } | ||
338 | #endif | 342 | #endif |
339 | 343 | ||
340 | /*-------------------------------------------------------------------------*/ | 344 | /*-------------------------------------------------------------------------*/ |
diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c index f8ddbdd8b07..6d3d3336005 100644 --- a/arch/arm/plat-omap/cpu-omap.c +++ b/arch/arm/plat-omap/cpu-omap.c | |||
@@ -134,6 +134,7 @@ static int __init omap_cpu_init(struct cpufreq_policy *policy) | |||
134 | 134 | ||
135 | static int omap_cpu_exit(struct cpufreq_policy *policy) | 135 | static int omap_cpu_exit(struct cpufreq_policy *policy) |
136 | { | 136 | { |
137 | clk_exit_cpufreq_table(&freq_table); | ||
137 | clk_put(mpu_clk); | 138 | clk_put(mpu_clk); |
138 | return 0; | 139 | return 0; |
139 | } | 140 | } |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 04846811d0a..d17620c50c2 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -192,6 +192,7 @@ struct gpio_bank { | |||
192 | u32 saved_risingdetect; | 192 | u32 saved_risingdetect; |
193 | #endif | 193 | #endif |
194 | u32 level_mask; | 194 | u32 level_mask; |
195 | u32 toggle_mask; | ||
195 | spinlock_t lock; | 196 | spinlock_t lock; |
196 | struct gpio_chip chip; | 197 | struct gpio_chip chip; |
197 | struct clk *dbck; | 198 | struct clk *dbck; |
@@ -749,6 +750,44 @@ static inline void set_24xx_gpio_triggering(struct gpio_bank *bank, int gpio, | |||
749 | } | 750 | } |
750 | #endif | 751 | #endif |
751 | 752 | ||
753 | /* | ||
754 | * This only applies to chips that can't do both rising and falling edge | ||
755 | * detection at once. For all other chips, this function is a noop. | ||
756 | */ | ||
757 | static void _toggle_gpio_edge_triggering(struct gpio_bank *bank, int gpio) | ||
758 | { | ||
759 | void __iomem *reg = bank->base; | ||
760 | u32 l = 0; | ||
761 | |||
762 | switch (bank->method) { | ||
763 | #ifdef CONFIG_ARCH_OMAP1 | ||
764 | case METHOD_MPUIO: | ||
765 | reg += OMAP_MPUIO_GPIO_INT_EDGE; | ||
766 | break; | ||
767 | #endif | ||
768 | #ifdef CONFIG_ARCH_OMAP15XX | ||
769 | case METHOD_GPIO_1510: | ||
770 | reg += OMAP1510_GPIO_INT_CONTROL; | ||
771 | break; | ||
772 | #endif | ||
773 | #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) | ||
774 | case METHOD_GPIO_7XX: | ||
775 | reg += OMAP7XX_GPIO_INT_CONTROL; | ||
776 | break; | ||
777 | #endif | ||
778 | default: | ||
779 | return; | ||
780 | } | ||
781 | |||
782 | l = __raw_readl(reg); | ||
783 | if ((l >> gpio) & 1) | ||
784 | l &= ~(1 << gpio); | ||
785 | else | ||
786 | l |= 1 << gpio; | ||
787 | |||
788 | __raw_writel(l, reg); | ||
789 | } | ||
790 | |||
752 | static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) | 791 | static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) |
753 | { | 792 | { |
754 | void __iomem *reg = bank->base; | 793 | void __iomem *reg = bank->base; |
@@ -759,6 +798,8 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) | |||
759 | case METHOD_MPUIO: | 798 | case METHOD_MPUIO: |
760 | reg += OMAP_MPUIO_GPIO_INT_EDGE; | 799 | reg += OMAP_MPUIO_GPIO_INT_EDGE; |
761 | l = __raw_readl(reg); | 800 | l = __raw_readl(reg); |
801 | if (trigger & IRQ_TYPE_EDGE_BOTH) | ||
802 | bank->toggle_mask |= 1 << gpio; | ||
762 | if (trigger & IRQ_TYPE_EDGE_RISING) | 803 | if (trigger & IRQ_TYPE_EDGE_RISING) |
763 | l |= 1 << gpio; | 804 | l |= 1 << gpio; |
764 | else if (trigger & IRQ_TYPE_EDGE_FALLING) | 805 | else if (trigger & IRQ_TYPE_EDGE_FALLING) |
@@ -771,6 +812,8 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) | |||
771 | case METHOD_GPIO_1510: | 812 | case METHOD_GPIO_1510: |
772 | reg += OMAP1510_GPIO_INT_CONTROL; | 813 | reg += OMAP1510_GPIO_INT_CONTROL; |
773 | l = __raw_readl(reg); | 814 | l = __raw_readl(reg); |
815 | if (trigger & IRQ_TYPE_EDGE_BOTH) | ||
816 | bank->toggle_mask |= 1 << gpio; | ||
774 | if (trigger & IRQ_TYPE_EDGE_RISING) | 817 | if (trigger & IRQ_TYPE_EDGE_RISING) |
775 | l |= 1 << gpio; | 818 | l |= 1 << gpio; |
776 | else if (trigger & IRQ_TYPE_EDGE_FALLING) | 819 | else if (trigger & IRQ_TYPE_EDGE_FALLING) |
@@ -803,6 +846,8 @@ static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) | |||
803 | case METHOD_GPIO_7XX: | 846 | case METHOD_GPIO_7XX: |
804 | reg += OMAP7XX_GPIO_INT_CONTROL; | 847 | reg += OMAP7XX_GPIO_INT_CONTROL; |
805 | l = __raw_readl(reg); | 848 | l = __raw_readl(reg); |
849 | if (trigger & IRQ_TYPE_EDGE_BOTH) | ||
850 | bank->toggle_mask |= 1 << gpio; | ||
806 | if (trigger & IRQ_TYPE_EDGE_RISING) | 851 | if (trigger & IRQ_TYPE_EDGE_RISING) |
807 | l |= 1 << gpio; | 852 | l |= 1 << gpio; |
808 | else if (trigger & IRQ_TYPE_EDGE_FALLING) | 853 | else if (trigger & IRQ_TYPE_EDGE_FALLING) |
@@ -1072,7 +1117,7 @@ static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int ena | |||
1072 | */ | 1117 | */ |
1073 | static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) | 1118 | static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable) |
1074 | { | 1119 | { |
1075 | unsigned long flags; | 1120 | unsigned long uninitialized_var(flags); |
1076 | 1121 | ||
1077 | switch (bank->method) { | 1122 | switch (bank->method) { |
1078 | #ifdef CONFIG_ARCH_OMAP16XX | 1123 | #ifdef CONFIG_ARCH_OMAP16XX |
@@ -1217,7 +1262,7 @@ static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) | |||
1217 | { | 1262 | { |
1218 | void __iomem *isr_reg = NULL; | 1263 | void __iomem *isr_reg = NULL; |
1219 | u32 isr; | 1264 | u32 isr; |
1220 | unsigned int gpio_irq; | 1265 | unsigned int gpio_irq, gpio_index; |
1221 | struct gpio_bank *bank; | 1266 | struct gpio_bank *bank; |
1222 | u32 retrigger = 0; | 1267 | u32 retrigger = 0; |
1223 | int unmasked = 0; | 1268 | int unmasked = 0; |
@@ -1284,9 +1329,23 @@ static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) | |||
1284 | 1329 | ||
1285 | gpio_irq = bank->virtual_irq_start; | 1330 | gpio_irq = bank->virtual_irq_start; |
1286 | for (; isr != 0; isr >>= 1, gpio_irq++) { | 1331 | for (; isr != 0; isr >>= 1, gpio_irq++) { |
1332 | gpio_index = get_gpio_index(irq_to_gpio(gpio_irq)); | ||
1333 | |||
1287 | if (!(isr & 1)) | 1334 | if (!(isr & 1)) |
1288 | continue; | 1335 | continue; |
1289 | 1336 | ||
1337 | #ifdef CONFIG_ARCH_OMAP1 | ||
1338 | /* | ||
1339 | * Some chips can't respond to both rising and falling | ||
1340 | * at the same time. If this irq was requested with | ||
1341 | * both flags, we need to flip the ICR data for the IRQ | ||
1342 | * to respond to the IRQ for the opposite direction. | ||
1343 | * This will be indicated in the bank toggle_mask. | ||
1344 | */ | ||
1345 | if (bank->toggle_mask & (1 << gpio_index)) | ||
1346 | _toggle_gpio_edge_triggering(bank, gpio_index); | ||
1347 | #endif | ||
1348 | |||
1290 | generic_handle_irq(gpio_irq); | 1349 | generic_handle_irq(gpio_irq); |
1291 | } | 1350 | } |
1292 | } | 1351 | } |
diff --git a/arch/arm/plat-omap/include/plat/board.h b/arch/arm/plat-omap/include/plat/board.h index 376ce18216f..5cd622039da 100644 --- a/arch/arm/plat-omap/include/plat/board.h +++ b/arch/arm/plat-omap/include/plat/board.h | |||
@@ -99,7 +99,6 @@ struct fb_info; | |||
99 | struct omap_backlight_config { | 99 | struct omap_backlight_config { |
100 | int default_intensity; | 100 | int default_intensity; |
101 | int (*set_power)(struct device *dev, int state); | 101 | int (*set_power)(struct device *dev, int state); |
102 | int (*check_fb)(struct fb_info *fb); | ||
103 | }; | 102 | }; |
104 | 103 | ||
105 | struct omap_fbmem_config { | 104 | struct omap_fbmem_config { |
diff --git a/arch/arm/plat-omap/include/plat/clock.h b/arch/arm/plat-omap/include/plat/clock.h index 309b6d1dccd..94fe2a0ce40 100644 --- a/arch/arm/plat-omap/include/plat/clock.h +++ b/arch/arm/plat-omap/include/plat/clock.h | |||
@@ -119,6 +119,7 @@ struct clk_functions { | |||
119 | void (*clk_disable_unused)(struct clk *clk); | 119 | void (*clk_disable_unused)(struct clk *clk); |
120 | #ifdef CONFIG_CPU_FREQ | 120 | #ifdef CONFIG_CPU_FREQ |
121 | void (*clk_init_cpufreq_table)(struct cpufreq_frequency_table **); | 121 | void (*clk_init_cpufreq_table)(struct cpufreq_frequency_table **); |
122 | void (*clk_exit_cpufreq_table)(struct cpufreq_frequency_table **); | ||
122 | #endif | 123 | #endif |
123 | }; | 124 | }; |
124 | 125 | ||
@@ -135,6 +136,7 @@ extern unsigned long followparent_recalc(struct clk *clk); | |||
135 | extern void clk_enable_init_clocks(void); | 136 | extern void clk_enable_init_clocks(void); |
136 | #ifdef CONFIG_CPU_FREQ | 137 | #ifdef CONFIG_CPU_FREQ |
137 | extern void clk_init_cpufreq_table(struct cpufreq_frequency_table **table); | 138 | extern void clk_init_cpufreq_table(struct cpufreq_frequency_table **table); |
139 | extern void clk_exit_cpufreq_table(struct cpufreq_frequency_table **table); | ||
138 | #endif | 140 | #endif |
139 | 141 | ||
140 | extern const struct clkops clkops_null; | 142 | extern const struct clkops clkops_null; |
diff --git a/arch/arm/plat-omap/include/plat/control.h b/arch/arm/plat-omap/include/plat/control.h index 2ae88437863..a745d62fad0 100644 --- a/arch/arm/plat-omap/include/plat/control.h +++ b/arch/arm/plat-omap/include/plat/control.h | |||
@@ -147,7 +147,7 @@ | |||
147 | #define OMAP343X_CONTROL_IVA2_BOOTADDR (OMAP2_CONTROL_GENERAL + 0x0190) | 147 | #define OMAP343X_CONTROL_IVA2_BOOTADDR (OMAP2_CONTROL_GENERAL + 0x0190) |
148 | #define OMAP343X_CONTROL_IVA2_BOOTMOD (OMAP2_CONTROL_GENERAL + 0x0194) | 148 | #define OMAP343X_CONTROL_IVA2_BOOTMOD (OMAP2_CONTROL_GENERAL + 0x0194) |
149 | #define OMAP343X_CONTROL_DEBOBS(i) (OMAP2_CONTROL_GENERAL + 0x01B0 \ | 149 | #define OMAP343X_CONTROL_DEBOBS(i) (OMAP2_CONTROL_GENERAL + 0x01B0 \ |
150 | + ((i) >> 1) * 4 + (!(i) & 1) * 2) | 150 | + ((i) >> 1) * 4 + (!((i) & 1)) * 2) |
151 | #define OMAP343X_CONTROL_PROG_IO0 (OMAP2_CONTROL_GENERAL + 0x01D4) | 151 | #define OMAP343X_CONTROL_PROG_IO0 (OMAP2_CONTROL_GENERAL + 0x01D4) |
152 | #define OMAP343X_CONTROL_PROG_IO1 (OMAP2_CONTROL_GENERAL + 0x01D8) | 152 | #define OMAP343X_CONTROL_PROG_IO1 (OMAP2_CONTROL_GENERAL + 0x01D8) |
153 | #define OMAP343X_CONTROL_DSS_DPLL_SPREADING (OMAP2_CONTROL_GENERAL + 0x01E0) | 153 | #define OMAP343X_CONTROL_DSS_DPLL_SPREADING (OMAP2_CONTROL_GENERAL + 0x01E0) |
diff --git a/arch/arm/plat-omap/include/plat/io.h b/arch/arm/plat-omap/include/plat/io.h index 7e5319f907d..a3e7b471bcb 100644 --- a/arch/arm/plat-omap/include/plat/io.h +++ b/arch/arm/plat-omap/include/plat/io.h | |||
@@ -122,16 +122,21 @@ | |||
122 | #define OMAP243X_SMS_VIRT (OMAP243X_SMS_PHYS + OMAP2_L3_IO_OFFSET) | 122 | #define OMAP243X_SMS_VIRT (OMAP243X_SMS_PHYS + OMAP2_L3_IO_OFFSET) |
123 | #define OMAP243X_SMS_SIZE SZ_1M | 123 | #define OMAP243X_SMS_SIZE SZ_1M |
124 | 124 | ||
125 | /* DSP */ | 125 | /* 2420 IVA */ |
126 | #define DSP_MEM_24XX_PHYS OMAP2420_DSP_MEM_BASE /* 0x58000000 */ | 126 | #define DSP_MEM_2420_PHYS OMAP2420_DSP_MEM_BASE |
127 | #define DSP_MEM_24XX_VIRT 0xe0000000 | 127 | /* 0x58000000 --> 0xfc100000 */ |
128 | #define DSP_MEM_24XX_SIZE 0x28000 | 128 | #define DSP_MEM_2420_VIRT 0xfc100000 |
129 | #define DSP_IPI_24XX_PHYS OMAP2420_DSP_IPI_BASE /* 0x59000000 */ | 129 | #define DSP_MEM_2420_SIZE 0x28000 |
130 | #define DSP_IPI_24XX_VIRT 0xe1000000 | 130 | #define DSP_IPI_2420_PHYS OMAP2420_DSP_IPI_BASE |
131 | #define DSP_IPI_24XX_SIZE SZ_4K | 131 | /* 0x59000000 --> 0xfc128000 */ |
132 | #define DSP_MMU_24XX_PHYS OMAP2420_DSP_MMU_BASE /* 0x5a000000 */ | 132 | #define DSP_IPI_2420_VIRT 0xfc128000 |
133 | #define DSP_MMU_24XX_VIRT 0xe2000000 | 133 | #define DSP_IPI_2420_SIZE SZ_4K |
134 | #define DSP_MMU_24XX_SIZE SZ_4K | 134 | #define DSP_MMU_2420_PHYS OMAP2420_DSP_MMU_BASE |
135 | /* 0x5a000000 --> 0xfc129000 */ | ||
136 | #define DSP_MMU_2420_VIRT 0xfc129000 | ||
137 | #define DSP_MMU_2420_SIZE SZ_4K | ||
138 | |||
139 | /* 2430 IVA2.1 - currently unmapped */ | ||
135 | 140 | ||
136 | /* | 141 | /* |
137 | * ---------------------------------------------------------------------------- | 142 | * ---------------------------------------------------------------------------- |
@@ -182,16 +187,7 @@ | |||
182 | #define OMAP343X_SDRC_VIRT (OMAP343X_SDRC_PHYS + OMAP2_L3_IO_OFFSET) | 187 | #define OMAP343X_SDRC_VIRT (OMAP343X_SDRC_PHYS + OMAP2_L3_IO_OFFSET) |
183 | #define OMAP343X_SDRC_SIZE SZ_1M | 188 | #define OMAP343X_SDRC_SIZE SZ_1M |
184 | 189 | ||
185 | /* DSP */ | 190 | /* 3430 IVA - currently unmapped */ |
186 | #define DSP_MEM_34XX_PHYS OMAP34XX_DSP_MEM_BASE /* 0x58000000 */ | ||
187 | #define DSP_MEM_34XX_VIRT 0xe0000000 | ||
188 | #define DSP_MEM_34XX_SIZE 0x28000 | ||
189 | #define DSP_IPI_34XX_PHYS OMAP34XX_DSP_IPI_BASE /* 0x59000000 */ | ||
190 | #define DSP_IPI_34XX_VIRT 0xe1000000 | ||
191 | #define DSP_IPI_34XX_SIZE SZ_4K | ||
192 | #define DSP_MMU_34XX_PHYS OMAP34XX_DSP_MMU_BASE /* 0x5a000000 */ | ||
193 | #define DSP_MMU_34XX_VIRT 0xe2000000 | ||
194 | #define DSP_MMU_34XX_SIZE SZ_4K | ||
195 | 191 | ||
196 | /* | 192 | /* |
197 | * ---------------------------------------------------------------------------- | 193 | * ---------------------------------------------------------------------------- |
diff --git a/arch/arm/plat-omap/include/plat/mux.h b/arch/arm/plat-omap/include/plat/mux.h index 8f069cc8035..692c90e89ac 100644 --- a/arch/arm/plat-omap/include/plat/mux.h +++ b/arch/arm/plat-omap/include/plat/mux.h | |||
@@ -183,6 +183,14 @@ enum omap7xx_index { | |||
183 | /* I2C */ | 183 | /* I2C */ |
184 | I2C_7XX_SCL, | 184 | I2C_7XX_SCL, |
185 | I2C_7XX_SDA, | 185 | I2C_7XX_SDA, |
186 | |||
187 | /* SPI */ | ||
188 | SPI_7XX_1, | ||
189 | SPI_7XX_2, | ||
190 | SPI_7XX_3, | ||
191 | SPI_7XX_4, | ||
192 | SPI_7XX_5, | ||
193 | SPI_7XX_6, | ||
186 | }; | 194 | }; |
187 | 195 | ||
188 | enum omap1xxx_index { | 196 | enum omap1xxx_index { |
diff --git a/arch/arm/plat-omap/include/plat/omap7xx.h b/arch/arm/plat-omap/include/plat/omap7xx.h index 53f52414b0e..48e4757e1e3 100644 --- a/arch/arm/plat-omap/include/plat/omap7xx.h +++ b/arch/arm/plat-omap/include/plat/omap7xx.h | |||
@@ -46,6 +46,9 @@ | |||
46 | #define OMAP7XX_DSPREG_SIZE SZ_128K | 46 | #define OMAP7XX_DSPREG_SIZE SZ_128K |
47 | #define OMAP7XX_DSPREG_START 0xE1000000 | 47 | #define OMAP7XX_DSPREG_START 0xE1000000 |
48 | 48 | ||
49 | #define OMAP7XX_SPI1_BASE 0xfffc0800 | ||
50 | #define OMAP7XX_SPI2_BASE 0xfffc1000 | ||
51 | |||
49 | /* | 52 | /* |
50 | * ---------------------------------------------------------------------------- | 53 | * ---------------------------------------------------------------------------- |
51 | * OMAP7XX specific configuration registers | 54 | * OMAP7XX specific configuration registers |
diff --git a/arch/arm/plat-omap/io.c b/arch/arm/plat-omap/io.c index 11f5d7961c7..0cfd54f519c 100644 --- a/arch/arm/plat-omap/io.c +++ b/arch/arm/plat-omap/io.c | |||
@@ -66,12 +66,12 @@ void __iomem *omap_ioremap(unsigned long p, size_t size, unsigned int type) | |||
66 | return XLATE(p, L4_24XX_PHYS, L4_24XX_VIRT); | 66 | return XLATE(p, L4_24XX_PHYS, L4_24XX_VIRT); |
67 | } | 67 | } |
68 | if (cpu_is_omap2420()) { | 68 | if (cpu_is_omap2420()) { |
69 | if (BETWEEN(p, DSP_MEM_24XX_PHYS, DSP_MEM_24XX_SIZE)) | 69 | if (BETWEEN(p, DSP_MEM_2420_PHYS, DSP_MEM_2420_SIZE)) |
70 | return XLATE(p, DSP_MEM_24XX_PHYS, DSP_MEM_24XX_VIRT); | 70 | return XLATE(p, DSP_MEM_2420_PHYS, DSP_MEM_2420_VIRT); |
71 | if (BETWEEN(p, DSP_IPI_24XX_PHYS, DSP_IPI_24XX_SIZE)) | 71 | if (BETWEEN(p, DSP_IPI_2420_PHYS, DSP_IPI_2420_SIZE)) |
72 | return XLATE(p, DSP_IPI_24XX_PHYS, DSP_IPI_24XX_SIZE); | 72 | return XLATE(p, DSP_IPI_2420_PHYS, DSP_IPI_2420_SIZE); |
73 | if (BETWEEN(p, DSP_MMU_24XX_PHYS, DSP_MMU_24XX_SIZE)) | 73 | if (BETWEEN(p, DSP_MMU_2420_PHYS, DSP_MMU_2420_SIZE)) |
74 | return XLATE(p, DSP_MMU_24XX_PHYS, DSP_MMU_24XX_VIRT); | 74 | return XLATE(p, DSP_MMU_2420_PHYS, DSP_MMU_2420_VIRT); |
75 | } | 75 | } |
76 | if (cpu_is_omap2430()) { | 76 | if (cpu_is_omap2430()) { |
77 | if (BETWEEN(p, L4_WK_243X_PHYS, L4_WK_243X_SIZE)) | 77 | if (BETWEEN(p, L4_WK_243X_PHYS, L4_WK_243X_SIZE)) |
diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c index c0ff1e39d89..463d6386aff 100644 --- a/arch/arm/plat-omap/iommu.c +++ b/arch/arm/plat-omap/iommu.c | |||
@@ -827,7 +827,7 @@ EXPORT_SYMBOL_GPL(iommu_get); | |||
827 | **/ | 827 | **/ |
828 | void iommu_put(struct iommu *obj) | 828 | void iommu_put(struct iommu *obj) |
829 | { | 829 | { |
830 | if (!obj && IS_ERR(obj)) | 830 | if (!obj || IS_ERR(obj)) |
831 | return; | 831 | return; |
832 | 832 | ||
833 | mutex_lock(&obj->iommu_lock); | 833 | mutex_lock(&obj->iommu_lock); |
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c index 2cc1cc328ba..f75767278fc 100644 --- a/arch/arm/plat-omap/mcbsp.c +++ b/arch/arm/plat-omap/mcbsp.c | |||
@@ -436,7 +436,7 @@ int omap_mcbsp_request(unsigned int id) | |||
436 | dev_err(mcbsp->dev, "Unable to request TX IRQ %d " | 436 | dev_err(mcbsp->dev, "Unable to request TX IRQ %d " |
437 | "for McBSP%d\n", mcbsp->tx_irq, | 437 | "for McBSP%d\n", mcbsp->tx_irq, |
438 | mcbsp->id); | 438 | mcbsp->id); |
439 | return err; | 439 | goto error; |
440 | } | 440 | } |
441 | 441 | ||
442 | init_completion(&mcbsp->rx_irq_completion); | 442 | init_completion(&mcbsp->rx_irq_completion); |
@@ -446,12 +446,26 @@ int omap_mcbsp_request(unsigned int id) | |||
446 | dev_err(mcbsp->dev, "Unable to request RX IRQ %d " | 446 | dev_err(mcbsp->dev, "Unable to request RX IRQ %d " |
447 | "for McBSP%d\n", mcbsp->rx_irq, | 447 | "for McBSP%d\n", mcbsp->rx_irq, |
448 | mcbsp->id); | 448 | mcbsp->id); |
449 | free_irq(mcbsp->tx_irq, (void *)mcbsp); | 449 | goto tx_irq; |
450 | return err; | ||
451 | } | 450 | } |
452 | } | 451 | } |
453 | 452 | ||
454 | return 0; | 453 | return 0; |
454 | tx_irq: | ||
455 | free_irq(mcbsp->tx_irq, (void *)mcbsp); | ||
456 | error: | ||
457 | if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->free) | ||
458 | mcbsp->pdata->ops->free(id); | ||
459 | |||
460 | /* Do procedure specific to omap34xx arch, if applicable */ | ||
461 | omap34xx_mcbsp_free(mcbsp); | ||
462 | |||
463 | clk_disable(mcbsp->fclk); | ||
464 | clk_disable(mcbsp->iclk); | ||
465 | |||
466 | mcbsp->free = 1; | ||
467 | |||
468 | return err; | ||
455 | } | 469 | } |
456 | EXPORT_SYMBOL(omap_mcbsp_request); | 470 | EXPORT_SYMBOL(omap_mcbsp_request); |
457 | 471 | ||
diff --git a/arch/arm/plat-pxa/pwm.c b/arch/arm/plat-pxa/pwm.c index a9eabdcfa16..51dc5c8106c 100644 --- a/arch/arm/plat-pxa/pwm.c +++ b/arch/arm/plat-pxa/pwm.c | |||
@@ -204,14 +204,14 @@ static int __devinit pwm_probe(struct platform_device *pdev) | |||
204 | goto err_free_clk; | 204 | goto err_free_clk; |
205 | } | 205 | } |
206 | 206 | ||
207 | r = request_mem_region(r->start, r->end - r->start + 1, pdev->name); | 207 | r = request_mem_region(r->start, resource_size(r), pdev->name); |
208 | if (r == NULL) { | 208 | if (r == NULL) { |
209 | dev_err(&pdev->dev, "failed to request memory resource\n"); | 209 | dev_err(&pdev->dev, "failed to request memory resource\n"); |
210 | ret = -EBUSY; | 210 | ret = -EBUSY; |
211 | goto err_free_clk; | 211 | goto err_free_clk; |
212 | } | 212 | } |
213 | 213 | ||
214 | pwm->mmio_base = ioremap(r->start, r->end - r->start + 1); | 214 | pwm->mmio_base = ioremap(r->start, resource_size(r)); |
215 | if (pwm->mmio_base == NULL) { | 215 | if (pwm->mmio_base == NULL) { |
216 | dev_err(&pdev->dev, "failed to ioremap() registers\n"); | 216 | dev_err(&pdev->dev, "failed to ioremap() registers\n"); |
217 | ret = -ENODEV; | 217 | ret = -ENODEV; |
@@ -241,7 +241,7 @@ static int __devinit pwm_probe(struct platform_device *pdev) | |||
241 | return 0; | 241 | return 0; |
242 | 242 | ||
243 | err_free_mem: | 243 | err_free_mem: |
244 | release_mem_region(r->start, r->end - r->start + 1); | 244 | release_mem_region(r->start, resource_size(r)); |
245 | err_free_clk: | 245 | err_free_clk: |
246 | clk_put(pwm->clk); | 246 | clk_put(pwm->clk); |
247 | err_free: | 247 | err_free: |
@@ -271,7 +271,7 @@ static int __devexit pwm_remove(struct platform_device *pdev) | |||
271 | iounmap(pwm->mmio_base); | 271 | iounmap(pwm->mmio_base); |
272 | 272 | ||
273 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 273 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
274 | release_mem_region(r->start, r->end - r->start + 1); | 274 | release_mem_region(r->start, resource_size(r)); |
275 | 275 | ||
276 | clk_put(pwm->clk); | 276 | clk_put(pwm->clk); |
277 | kfree(pwm); | 277 | kfree(pwm); |
diff --git a/arch/arm/plat-s3c/dev-nand.c b/arch/arm/plat-s3c/dev-nand.c index e771e77dcd5..a52fb6cf618 100644 --- a/arch/arm/plat-s3c/dev-nand.c +++ b/arch/arm/plat-s3c/dev-nand.c | |||
@@ -58,8 +58,8 @@ static int __init s3c_nand_copy_set(struct s3c2410_nand_set *set) | |||
58 | return -ENOMEM; | 58 | return -ENOMEM; |
59 | } | 59 | } |
60 | 60 | ||
61 | size = sizeof(int) * set->nr_chips; | 61 | if (set->nr_map && set->nr_chips) { |
62 | if (size) { | 62 | size = sizeof(int) * set->nr_chips; |
63 | ptr = kmemdup(set->nr_map, size, GFP_KERNEL); | 63 | ptr = kmemdup(set->nr_map, size, GFP_KERNEL); |
64 | set->nr_map = ptr; | 64 | set->nr_map = ptr; |
65 | 65 | ||
@@ -114,7 +114,7 @@ void __init s3c_nand_set_platdata(struct s3c2410_platform_nand *nand) | |||
114 | 114 | ||
115 | for (i = 0; i < npd->nr_sets; i++) { | 115 | for (i = 0; i < npd->nr_sets; i++) { |
116 | ret = s3c_nand_copy_set(to); | 116 | ret = s3c_nand_copy_set(to); |
117 | if (!ret) { | 117 | if (ret) { |
118 | printk(KERN_ERR "%s: failed to copy set %d\n", | 118 | printk(KERN_ERR "%s: failed to copy set %d\n", |
119 | __func__, i); | 119 | __func__, i); |
120 | return; | 120 | return; |
@@ -122,6 +122,8 @@ void __init s3c_nand_set_platdata(struct s3c2410_platform_nand *nand) | |||
122 | to++; | 122 | to++; |
123 | } | 123 | } |
124 | } | 124 | } |
125 | |||
126 | s3c_device_nand.dev.platform_data = npd; | ||
125 | } | 127 | } |
126 | 128 | ||
127 | EXPORT_SYMBOL_GPL(s3c_nand_set_platdata); | 129 | EXPORT_SYMBOL_GPL(s3c_nand_set_platdata); |
diff --git a/arch/arm/plat-s3c/include/plat/devs.h b/arch/arm/plat-s3c/include/plat/devs.h index 932cbbbb427..c1c20b02391 100644 --- a/arch/arm/plat-s3c/include/plat/devs.h +++ b/arch/arm/plat-s3c/include/plat/devs.h | |||
@@ -31,6 +31,7 @@ extern struct platform_device s3c64xx_device_iisv4; | |||
31 | extern struct platform_device s3c64xx_device_pcm0; | 31 | extern struct platform_device s3c64xx_device_pcm0; |
32 | extern struct platform_device s3c64xx_device_pcm1; | 32 | extern struct platform_device s3c64xx_device_pcm1; |
33 | 33 | ||
34 | extern struct platform_device s3c_device_ts; | ||
34 | extern struct platform_device s3c_device_fb; | 35 | extern struct platform_device s3c_device_fb; |
35 | extern struct platform_device s3c_device_usb; | 36 | extern struct platform_device s3c_device_usb; |
36 | extern struct platform_device s3c_device_lcd; | 37 | extern struct platform_device s3c_device_lcd; |
diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c index f52a92ce8dd..7f686a31e67 100644 --- a/arch/arm/plat-s3c24xx/devs.c +++ b/arch/arm/plat-s3c24xx/devs.c | |||
@@ -37,6 +37,8 @@ | |||
37 | #include <plat/cpu.h> | 37 | #include <plat/cpu.h> |
38 | #include <plat/regs-spi.h> | 38 | #include <plat/regs-spi.h> |
39 | 39 | ||
40 | #include <mach/ts.h> | ||
41 | |||
40 | /* Serial port registrations */ | 42 | /* Serial port registrations */ |
41 | 43 | ||
42 | static struct resource s3c2410_uart0_resource[] = { | 44 | static struct resource s3c2410_uart0_resource[] = { |
@@ -182,6 +184,22 @@ void __init s3c24xx_fb_set_platdata(struct s3c2410fb_mach_info *pd) | |||
182 | } | 184 | } |
183 | } | 185 | } |
184 | 186 | ||
187 | /* Touchscreen */ | ||
188 | struct platform_device s3c_device_ts = { | ||
189 | .name = "s3c2410-ts", | ||
190 | .id = -1, | ||
191 | }; | ||
192 | EXPORT_SYMBOL(s3c_device_ts); | ||
193 | |||
194 | static struct s3c2410_ts_mach_info s3c2410ts_info; | ||
195 | |||
196 | void __init s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *hard_s3c2410ts_info) | ||
197 | { | ||
198 | memcpy(&s3c2410ts_info, hard_s3c2410ts_info, sizeof(struct s3c2410_ts_mach_info)); | ||
199 | s3c_device_ts.dev.platform_data = &s3c2410ts_info; | ||
200 | } | ||
201 | EXPORT_SYMBOL(s3c24xx_ts_set_platdata); | ||
202 | |||
185 | /* USB Device (Gadget)*/ | 203 | /* USB Device (Gadget)*/ |
186 | 204 | ||
187 | static struct resource s3c_usbgadget_resource[] = { | 205 | static struct resource s3c_usbgadget_resource[] = { |
diff --git a/arch/arm/plat-s3c24xx/s3c244x.c b/arch/arm/plat-s3c24xx/s3c244x.c index 1364317d421..12623a474b5 100644 --- a/arch/arm/plat-s3c24xx/s3c244x.c +++ b/arch/arm/plat-s3c24xx/s3c244x.c | |||
@@ -70,6 +70,7 @@ void __init s3c244x_map_io(void) | |||
70 | s3c_device_sdi.name = "s3c2440-sdi"; | 70 | s3c_device_sdi.name = "s3c2440-sdi"; |
71 | s3c_device_i2c0.name = "s3c2440-i2c"; | 71 | s3c_device_i2c0.name = "s3c2440-i2c"; |
72 | s3c_device_nand.name = "s3c2440-nand"; | 72 | s3c_device_nand.name = "s3c2440-nand"; |
73 | s3c_device_ts.name = "s3c2440-ts"; | ||
73 | s3c_device_usbgadget.name = "s3c2440-usbgadget"; | 74 | s3c_device_usbgadget.name = "s3c2440-usbgadget"; |
74 | } | 75 | } |
75 | 76 | ||
diff --git a/arch/arm/plat-s3c64xx/s3c6400-clock.c b/arch/arm/plat-s3c64xx/s3c6400-clock.c index 6ffa21eb1b9..ffd56deb9e8 100644 --- a/arch/arm/plat-s3c64xx/s3c6400-clock.c +++ b/arch/arm/plat-s3c64xx/s3c6400-clock.c | |||
@@ -46,6 +46,7 @@ static struct clk clk_ext_xtal_mux = { | |||
46 | #define clk_fin_epll clk_ext_xtal_mux | 46 | #define clk_fin_epll clk_ext_xtal_mux |
47 | 47 | ||
48 | #define clk_fout_mpll clk_mpll | 48 | #define clk_fout_mpll clk_mpll |
49 | #define clk_fout_epll clk_epll | ||
49 | 50 | ||
50 | struct clk_sources { | 51 | struct clk_sources { |
51 | unsigned int nr_sources; | 52 | unsigned int nr_sources; |
@@ -88,11 +89,6 @@ static struct clksrc_clk clk_mout_apll = { | |||
88 | .sources = &clk_src_apll, | 89 | .sources = &clk_src_apll, |
89 | }; | 90 | }; |
90 | 91 | ||
91 | static struct clk clk_fout_epll = { | ||
92 | .name = "fout_epll", | ||
93 | .id = -1, | ||
94 | }; | ||
95 | |||
96 | static struct clk *clk_src_epll_list[] = { | 92 | static struct clk *clk_src_epll_list[] = { |
97 | [0] = &clk_fin_epll, | 93 | [0] = &clk_fin_epll, |
98 | [1] = &clk_fout_epll, | 94 | [1] = &clk_fout_epll, |
@@ -715,7 +711,6 @@ static struct clk *clks[] __initdata = { | |||
715 | &clk_iis_cd1, | 711 | &clk_iis_cd1, |
716 | &clk_pcm_cd, | 712 | &clk_pcm_cd, |
717 | &clk_mout_epll.clk, | 713 | &clk_mout_epll.clk, |
718 | &clk_fout_epll, | ||
719 | &clk_mout_mpll.clk, | 714 | &clk_mout_mpll.clk, |
720 | &clk_dout_mpll, | 715 | &clk_dout_mpll, |
721 | &clk_mmc0.clk, | 716 | &clk_mmc0.clk, |
@@ -760,7 +755,4 @@ void __init s3c6400_register_clocks(unsigned armclk_divlimit) | |||
760 | clkp->name, ret); | 755 | clkp->name, ret); |
761 | } | 756 | } |
762 | } | 757 | } |
763 | |||
764 | clk_mpll.parent = &clk_mout_mpll.clk; | ||
765 | clk_epll.parent = &clk_mout_epll.clk; | ||
766 | } | 758 | } |
diff --git a/arch/blackfin/include/asm/page.h b/arch/blackfin/include/asm/page.h index 944a07c6cfd..1d04e407834 100644 --- a/arch/blackfin/include/asm/page.h +++ b/arch/blackfin/include/asm/page.h | |||
@@ -10,4 +10,9 @@ | |||
10 | #include <asm-generic/page.h> | 10 | #include <asm-generic/page.h> |
11 | #define MAP_NR(addr) (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT) | 11 | #define MAP_NR(addr) (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT) |
12 | 12 | ||
13 | #define VM_DATA_DEFAULT_FLAGS \ | ||
14 | (VM_READ | VM_WRITE | \ | ||
15 | ((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \ | ||
16 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | ||
17 | |||
13 | #endif | 18 | #endif |
diff --git a/arch/blackfin/kernel/kgdb.c b/arch/blackfin/kernel/kgdb.c index f1036b6b929..34c7c3ed2c9 100644 --- a/arch/blackfin/kernel/kgdb.c +++ b/arch/blackfin/kernel/kgdb.c | |||
@@ -6,23 +6,9 @@ | |||
6 | * Licensed under the GPL-2 or later. | 6 | * Licensed under the GPL-2 or later. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/string.h> | ||
10 | #include <linux/kernel.h> | ||
11 | #include <linux/sched.h> | ||
12 | #include <linux/smp.h> | ||
13 | #include <linux/spinlock.h> | ||
14 | #include <linux/delay.h> | ||
15 | #include <linux/ptrace.h> /* for linux pt_regs struct */ | 9 | #include <linux/ptrace.h> /* for linux pt_regs struct */ |
16 | #include <linux/kgdb.h> | 10 | #include <linux/kgdb.h> |
17 | #include <linux/console.h> | ||
18 | #include <linux/init.h> | ||
19 | #include <linux/errno.h> | ||
20 | #include <linux/irq.h> | ||
21 | #include <linux/uaccess.h> | 11 | #include <linux/uaccess.h> |
22 | #include <asm/system.h> | ||
23 | #include <asm/traps.h> | ||
24 | #include <asm/blackfin.h> | ||
25 | #include <asm/dma.h> | ||
26 | 12 | ||
27 | void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs) | 13 | void pt_regs_to_gdb_regs(unsigned long *gdb_regs, struct pt_regs *regs) |
28 | { | 14 | { |
@@ -147,7 +133,7 @@ void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs) | |||
147 | regs->lb1 = gdb_regs[BFIN_LB1]; | 133 | regs->lb1 = gdb_regs[BFIN_LB1]; |
148 | regs->usp = gdb_regs[BFIN_USP]; | 134 | regs->usp = gdb_regs[BFIN_USP]; |
149 | regs->syscfg = gdb_regs[BFIN_SYSCFG]; | 135 | regs->syscfg = gdb_regs[BFIN_SYSCFG]; |
150 | regs->retx = gdb_regs[BFIN_PC]; | 136 | regs->retx = gdb_regs[BFIN_RETX]; |
151 | regs->retn = gdb_regs[BFIN_RETN]; | 137 | regs->retn = gdb_regs[BFIN_RETN]; |
152 | regs->rete = gdb_regs[BFIN_RETE]; | 138 | regs->rete = gdb_regs[BFIN_RETE]; |
153 | regs->pc = gdb_regs[BFIN_PC]; | 139 | regs->pc = gdb_regs[BFIN_PC]; |
@@ -424,182 +410,6 @@ struct kgdb_arch arch_kgdb_ops = { | |||
424 | .correct_hw_break = bfin_correct_hw_break, | 410 | .correct_hw_break = bfin_correct_hw_break, |
425 | }; | 411 | }; |
426 | 412 | ||
427 | static int hex(char ch) | ||
428 | { | ||
429 | if ((ch >= 'a') && (ch <= 'f')) | ||
430 | return ch - 'a' + 10; | ||
431 | if ((ch >= '0') && (ch <= '9')) | ||
432 | return ch - '0'; | ||
433 | if ((ch >= 'A') && (ch <= 'F')) | ||
434 | return ch - 'A' + 10; | ||
435 | return -1; | ||
436 | } | ||
437 | |||
438 | static int validate_memory_access_address(unsigned long addr, int size) | ||
439 | { | ||
440 | if (size < 0 || addr == 0) | ||
441 | return -EFAULT; | ||
442 | return bfin_mem_access_type(addr, size); | ||
443 | } | ||
444 | |||
445 | static int bfin_probe_kernel_read(char *dst, char *src, int size) | ||
446 | { | ||
447 | unsigned long lsrc = (unsigned long)src; | ||
448 | int mem_type; | ||
449 | |||
450 | mem_type = validate_memory_access_address(lsrc, size); | ||
451 | if (mem_type < 0) | ||
452 | return mem_type; | ||
453 | |||
454 | if (lsrc >= SYSMMR_BASE) { | ||
455 | if (size == 2 && lsrc % 2 == 0) { | ||
456 | u16 mmr = bfin_read16(src); | ||
457 | memcpy(dst, &mmr, sizeof(mmr)); | ||
458 | return 0; | ||
459 | } else if (size == 4 && lsrc % 4 == 0) { | ||
460 | u32 mmr = bfin_read32(src); | ||
461 | memcpy(dst, &mmr, sizeof(mmr)); | ||
462 | return 0; | ||
463 | } | ||
464 | } else { | ||
465 | switch (mem_type) { | ||
466 | case BFIN_MEM_ACCESS_CORE: | ||
467 | case BFIN_MEM_ACCESS_CORE_ONLY: | ||
468 | return probe_kernel_read(dst, src, size); | ||
469 | /* XXX: should support IDMA here with SMP */ | ||
470 | case BFIN_MEM_ACCESS_DMA: | ||
471 | if (dma_memcpy(dst, src, size)) | ||
472 | return 0; | ||
473 | break; | ||
474 | case BFIN_MEM_ACCESS_ITEST: | ||
475 | if (isram_memcpy(dst, src, size)) | ||
476 | return 0; | ||
477 | break; | ||
478 | } | ||
479 | } | ||
480 | |||
481 | return -EFAULT; | ||
482 | } | ||
483 | |||
484 | static int bfin_probe_kernel_write(char *dst, char *src, int size) | ||
485 | { | ||
486 | unsigned long ldst = (unsigned long)dst; | ||
487 | int mem_type; | ||
488 | |||
489 | mem_type = validate_memory_access_address(ldst, size); | ||
490 | if (mem_type < 0) | ||
491 | return mem_type; | ||
492 | |||
493 | if (ldst >= SYSMMR_BASE) { | ||
494 | if (size == 2 && ldst % 2 == 0) { | ||
495 | u16 mmr; | ||
496 | memcpy(&mmr, src, sizeof(mmr)); | ||
497 | bfin_write16(dst, mmr); | ||
498 | return 0; | ||
499 | } else if (size == 4 && ldst % 4 == 0) { | ||
500 | u32 mmr; | ||
501 | memcpy(&mmr, src, sizeof(mmr)); | ||
502 | bfin_write32(dst, mmr); | ||
503 | return 0; | ||
504 | } | ||
505 | } else { | ||
506 | switch (mem_type) { | ||
507 | case BFIN_MEM_ACCESS_CORE: | ||
508 | case BFIN_MEM_ACCESS_CORE_ONLY: | ||
509 | return probe_kernel_write(dst, src, size); | ||
510 | /* XXX: should support IDMA here with SMP */ | ||
511 | case BFIN_MEM_ACCESS_DMA: | ||
512 | if (dma_memcpy(dst, src, size)) | ||
513 | return 0; | ||
514 | break; | ||
515 | case BFIN_MEM_ACCESS_ITEST: | ||
516 | if (isram_memcpy(dst, src, size)) | ||
517 | return 0; | ||
518 | break; | ||
519 | } | ||
520 | } | ||
521 | |||
522 | return -EFAULT; | ||
523 | } | ||
524 | |||
525 | /* | ||
526 | * Convert the memory pointed to by mem into hex, placing result in buf. | ||
527 | * Return a pointer to the last char put in buf (null). May return an error. | ||
528 | */ | ||
529 | int kgdb_mem2hex(char *mem, char *buf, int count) | ||
530 | { | ||
531 | char *tmp; | ||
532 | int err; | ||
533 | |||
534 | /* | ||
535 | * We use the upper half of buf as an intermediate buffer for the | ||
536 | * raw memory copy. Hex conversion will work against this one. | ||
537 | */ | ||
538 | tmp = buf + count; | ||
539 | |||
540 | err = bfin_probe_kernel_read(tmp, mem, count); | ||
541 | if (!err) { | ||
542 | while (count > 0) { | ||
543 | buf = pack_hex_byte(buf, *tmp); | ||
544 | tmp++; | ||
545 | count--; | ||
546 | } | ||
547 | |||
548 | *buf = 0; | ||
549 | } | ||
550 | |||
551 | return err; | ||
552 | } | ||
553 | |||
554 | /* | ||
555 | * Copy the binary array pointed to by buf into mem. Fix $, #, and | ||
556 | * 0x7d escaped with 0x7d. Return a pointer to the character after | ||
557 | * the last byte written. | ||
558 | */ | ||
559 | int kgdb_ebin2mem(char *buf, char *mem, int count) | ||
560 | { | ||
561 | char *tmp_old, *tmp_new; | ||
562 | int size; | ||
563 | |||
564 | tmp_old = tmp_new = buf; | ||
565 | |||
566 | for (size = 0; size < count; ++size) { | ||
567 | if (*tmp_old == 0x7d) | ||
568 | *tmp_new = *(++tmp_old) ^ 0x20; | ||
569 | else | ||
570 | *tmp_new = *tmp_old; | ||
571 | tmp_new++; | ||
572 | tmp_old++; | ||
573 | } | ||
574 | |||
575 | return bfin_probe_kernel_write(mem, buf, count); | ||
576 | } | ||
577 | |||
578 | /* | ||
579 | * Convert the hex array pointed to by buf into binary to be placed in mem. | ||
580 | * Return a pointer to the character AFTER the last byte written. | ||
581 | * May return an error. | ||
582 | */ | ||
583 | int kgdb_hex2mem(char *buf, char *mem, int count) | ||
584 | { | ||
585 | char *tmp_raw, *tmp_hex; | ||
586 | |||
587 | /* | ||
588 | * We use the upper half of buf as an intermediate buffer for the | ||
589 | * raw memory that is converted from hex. | ||
590 | */ | ||
591 | tmp_raw = buf + count * 2; | ||
592 | |||
593 | tmp_hex = tmp_raw - 1; | ||
594 | while (tmp_hex >= buf) { | ||
595 | tmp_raw--; | ||
596 | *tmp_raw = hex(*tmp_hex--); | ||
597 | *tmp_raw |= hex(*tmp_hex--) << 4; | ||
598 | } | ||
599 | |||
600 | return bfin_probe_kernel_write(mem, tmp_raw, count); | ||
601 | } | ||
602 | |||
603 | #define IN_MEM(addr, size, l1_addr, l1_size) \ | 413 | #define IN_MEM(addr, size, l1_addr, l1_size) \ |
604 | ({ \ | 414 | ({ \ |
605 | unsigned long __addr = (unsigned long)(addr); \ | 415 | unsigned long __addr = (unsigned long)(addr); \ |
@@ -629,21 +439,6 @@ int kgdb_validate_break_address(unsigned long addr) | |||
629 | return -EFAULT; | 439 | return -EFAULT; |
630 | } | 440 | } |
631 | 441 | ||
632 | int kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr) | ||
633 | { | ||
634 | int err = bfin_probe_kernel_read(saved_instr, (char *)addr, | ||
635 | BREAK_INSTR_SIZE); | ||
636 | if (err) | ||
637 | return err; | ||
638 | return bfin_probe_kernel_write((char *)addr, arch_kgdb_ops.gdb_bpt_instr, | ||
639 | BREAK_INSTR_SIZE); | ||
640 | } | ||
641 | |||
642 | int kgdb_arch_remove_breakpoint(unsigned long addr, char *bundle) | ||
643 | { | ||
644 | return bfin_probe_kernel_write((char *)addr, bundle, BREAK_INSTR_SIZE); | ||
645 | } | ||
646 | |||
647 | int kgdb_arch_init(void) | 442 | int kgdb_arch_init(void) |
648 | { | 443 | { |
649 | kgdb_single_step = 0; | 444 | kgdb_single_step = 0; |
diff --git a/arch/blackfin/mm/Makefile b/arch/blackfin/mm/Makefile index d489f894f4b..4c011b1f661 100644 --- a/arch/blackfin/mm/Makefile +++ b/arch/blackfin/mm/Makefile | |||
@@ -2,4 +2,4 @@ | |||
2 | # arch/blackfin/mm/Makefile | 2 | # arch/blackfin/mm/Makefile |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := sram-alloc.o isram-driver.o init.o | 5 | obj-y := sram-alloc.o isram-driver.o init.o maccess.o |
diff --git a/arch/blackfin/mm/maccess.c b/arch/blackfin/mm/maccess.c new file mode 100644 index 00000000000..b71cebc1f8a --- /dev/null +++ b/arch/blackfin/mm/maccess.c | |||
@@ -0,0 +1,97 @@ | |||
1 | /* | ||
2 | * safe read and write memory routines callable while atomic | ||
3 | * | ||
4 | * Copyright 2005-2008 Analog Devices Inc. | ||
5 | * | ||
6 | * Licensed under the GPL-2 or later. | ||
7 | */ | ||
8 | |||
9 | #include <linux/uaccess.h> | ||
10 | #include <asm/dma.h> | ||
11 | |||
12 | static int validate_memory_access_address(unsigned long addr, int size) | ||
13 | { | ||
14 | if (size < 0 || addr == 0) | ||
15 | return -EFAULT; | ||
16 | return bfin_mem_access_type(addr, size); | ||
17 | } | ||
18 | |||
19 | long probe_kernel_read(void *dst, void *src, size_t size) | ||
20 | { | ||
21 | unsigned long lsrc = (unsigned long)src; | ||
22 | int mem_type; | ||
23 | |||
24 | mem_type = validate_memory_access_address(lsrc, size); | ||
25 | if (mem_type < 0) | ||
26 | return mem_type; | ||
27 | |||
28 | if (lsrc >= SYSMMR_BASE) { | ||
29 | if (size == 2 && lsrc % 2 == 0) { | ||
30 | u16 mmr = bfin_read16(src); | ||
31 | memcpy(dst, &mmr, sizeof(mmr)); | ||
32 | return 0; | ||
33 | } else if (size == 4 && lsrc % 4 == 0) { | ||
34 | u32 mmr = bfin_read32(src); | ||
35 | memcpy(dst, &mmr, sizeof(mmr)); | ||
36 | return 0; | ||
37 | } | ||
38 | } else { | ||
39 | switch (mem_type) { | ||
40 | case BFIN_MEM_ACCESS_CORE: | ||
41 | case BFIN_MEM_ACCESS_CORE_ONLY: | ||
42 | return __probe_kernel_read(dst, src, size); | ||
43 | /* XXX: should support IDMA here with SMP */ | ||
44 | case BFIN_MEM_ACCESS_DMA: | ||
45 | if (dma_memcpy(dst, src, size)) | ||
46 | return 0; | ||
47 | break; | ||
48 | case BFIN_MEM_ACCESS_ITEST: | ||
49 | if (isram_memcpy(dst, src, size)) | ||
50 | return 0; | ||
51 | break; | ||
52 | } | ||
53 | } | ||
54 | |||
55 | return -EFAULT; | ||
56 | } | ||
57 | |||
58 | long probe_kernel_write(void *dst, void *src, size_t size) | ||
59 | { | ||
60 | unsigned long ldst = (unsigned long)dst; | ||
61 | int mem_type; | ||
62 | |||
63 | mem_type = validate_memory_access_address(ldst, size); | ||
64 | if (mem_type < 0) | ||
65 | return mem_type; | ||
66 | |||
67 | if (ldst >= SYSMMR_BASE) { | ||
68 | if (size == 2 && ldst % 2 == 0) { | ||
69 | u16 mmr; | ||
70 | memcpy(&mmr, src, sizeof(mmr)); | ||
71 | bfin_write16(dst, mmr); | ||
72 | return 0; | ||
73 | } else if (size == 4 && ldst % 4 == 0) { | ||
74 | u32 mmr; | ||
75 | memcpy(&mmr, src, sizeof(mmr)); | ||
76 | bfin_write32(dst, mmr); | ||
77 | return 0; | ||
78 | } | ||
79 | } else { | ||
80 | switch (mem_type) { | ||
81 | case BFIN_MEM_ACCESS_CORE: | ||
82 | case BFIN_MEM_ACCESS_CORE_ONLY: | ||
83 | return __probe_kernel_write(dst, src, size); | ||
84 | /* XXX: should support IDMA here with SMP */ | ||
85 | case BFIN_MEM_ACCESS_DMA: | ||
86 | if (dma_memcpy(dst, src, size)) | ||
87 | return 0; | ||
88 | break; | ||
89 | case BFIN_MEM_ACCESS_ITEST: | ||
90 | if (isram_memcpy(dst, src, size)) | ||
91 | return 0; | ||
92 | break; | ||
93 | } | ||
94 | } | ||
95 | |||
96 | return -EFAULT; | ||
97 | } | ||
diff --git a/arch/frv/include/asm/page.h b/arch/frv/include/asm/page.h index 25c6a500235..8c97068ac8f 100644 --- a/arch/frv/include/asm/page.h +++ b/arch/frv/include/asm/page.h | |||
@@ -63,12 +63,10 @@ extern unsigned long max_pfn; | |||
63 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) | 63 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) |
64 | 64 | ||
65 | 65 | ||
66 | #ifdef CONFIG_MMU | ||
67 | #define VM_DATA_DEFAULT_FLAGS \ | 66 | #define VM_DATA_DEFAULT_FLAGS \ |
68 | (VM_READ | VM_WRITE | \ | 67 | (VM_READ | VM_WRITE | \ |
69 | ((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \ | 68 | ((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \ |
70 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | 69 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) |
71 | #endif | ||
72 | 70 | ||
73 | #endif /* __ASSEMBLY__ */ | 71 | #endif /* __ASSEMBLY__ */ |
74 | 72 | ||
diff --git a/arch/ia64/include/asm/ftrace.h b/arch/ia64/include/asm/ftrace.h index d20db3c2a65..fbd1a2470ca 100644 --- a/arch/ia64/include/asm/ftrace.h +++ b/arch/ia64/include/asm/ftrace.h | |||
@@ -8,7 +8,6 @@ | |||
8 | extern void _mcount(unsigned long pfs, unsigned long r1, unsigned long b0, unsigned long r0); | 8 | extern void _mcount(unsigned long pfs, unsigned long r1, unsigned long b0, unsigned long r0); |
9 | #define mcount _mcount | 9 | #define mcount _mcount |
10 | 10 | ||
11 | #include <asm/kprobes.h> | ||
12 | /* In IA64, MCOUNT_ADDR is set in link time, so it's not a constant at compile time */ | 11 | /* In IA64, MCOUNT_ADDR is set in link time, so it's not a constant at compile time */ |
13 | #define MCOUNT_ADDR (((struct fnptr *)mcount)->ip) | 12 | #define MCOUNT_ADDR (((struct fnptr *)mcount)->ip) |
14 | #define FTRACE_ADDR (((struct fnptr *)ftrace_caller)->ip) | 13 | #define FTRACE_ADDR (((struct fnptr *)ftrace_caller)->ip) |
diff --git a/arch/ia64/include/asm/kprobes.h b/arch/ia64/include/asm/kprobes.h index dbf83fb28db..d5505d6f238 100644 --- a/arch/ia64/include/asm/kprobes.h +++ b/arch/ia64/include/asm/kprobes.h | |||
@@ -103,11 +103,6 @@ typedef struct kprobe_opcode { | |||
103 | bundle_t bundle; | 103 | bundle_t bundle; |
104 | } kprobe_opcode_t; | 104 | } kprobe_opcode_t; |
105 | 105 | ||
106 | struct fnptr { | ||
107 | unsigned long ip; | ||
108 | unsigned long gp; | ||
109 | }; | ||
110 | |||
111 | /* Architecture specific copy of original instruction*/ | 106 | /* Architecture specific copy of original instruction*/ |
112 | struct arch_specific_insn { | 107 | struct arch_specific_insn { |
113 | /* copy of the instruction to be emulated */ | 108 | /* copy of the instruction to be emulated */ |
diff --git a/arch/ia64/include/asm/tlb.h b/arch/ia64/include/asm/tlb.h index 85d965cb19a..23cce999eb1 100644 --- a/arch/ia64/include/asm/tlb.h +++ b/arch/ia64/include/asm/tlb.h | |||
@@ -74,7 +74,7 @@ struct ia64_tr_entry { | |||
74 | extern int ia64_itr_entry(u64 target_mask, u64 va, u64 pte, u64 log_size); | 74 | extern int ia64_itr_entry(u64 target_mask, u64 va, u64 pte, u64 log_size); |
75 | extern void ia64_ptr_entry(u64 target_mask, int slot); | 75 | extern void ia64_ptr_entry(u64 target_mask, int slot); |
76 | 76 | ||
77 | extern struct ia64_tr_entry __per_cpu_idtrs[NR_CPUS][2][IA64_TR_ALLOC_MAX]; | 77 | extern struct ia64_tr_entry *ia64_idtrs[NR_CPUS]; |
78 | 78 | ||
79 | /* | 79 | /* |
80 | region register macros | 80 | region register macros |
diff --git a/arch/ia64/include/asm/topology.h b/arch/ia64/include/asm/topology.h index 3ddb4e709db..d323071d0f9 100644 --- a/arch/ia64/include/asm/topology.h +++ b/arch/ia64/include/asm/topology.h | |||
@@ -33,7 +33,9 @@ | |||
33 | /* | 33 | /* |
34 | * Returns a bitmask of CPUs on Node 'node'. | 34 | * Returns a bitmask of CPUs on Node 'node'. |
35 | */ | 35 | */ |
36 | #define cpumask_of_node(node) (&node_to_cpu_mask[node]) | 36 | #define cpumask_of_node(node) ((node) == -1 ? \ |
37 | cpu_all_mask : \ | ||
38 | &node_to_cpu_mask[node]) | ||
37 | 39 | ||
38 | /* | 40 | /* |
39 | * Returns the number of the node containing Node 'nid'. | 41 | * Returns the number of the node containing Node 'nid'. |
diff --git a/arch/ia64/include/asm/types.h b/arch/ia64/include/asm/types.h index bcd260e597d..93773fd37be 100644 --- a/arch/ia64/include/asm/types.h +++ b/arch/ia64/include/asm/types.h | |||
@@ -35,6 +35,11 @@ typedef unsigned int umode_t; | |||
35 | */ | 35 | */ |
36 | # ifdef __KERNEL__ | 36 | # ifdef __KERNEL__ |
37 | 37 | ||
38 | struct fnptr { | ||
39 | unsigned long ip; | ||
40 | unsigned long gp; | ||
41 | }; | ||
42 | |||
38 | /* DMA addresses are 64-bits wide, in general. */ | 43 | /* DMA addresses are 64-bits wide, in general. */ |
39 | typedef u64 dma_addr_t; | 44 | typedef u64 dma_addr_t; |
40 | 45 | ||
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index 32f2639e9b0..378b4833024 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -1225,9 +1225,12 @@ static void mca_insert_tr(u64 iord) | |||
1225 | unsigned long psr; | 1225 | unsigned long psr; |
1226 | int cpu = smp_processor_id(); | 1226 | int cpu = smp_processor_id(); |
1227 | 1227 | ||
1228 | if (!ia64_idtrs[cpu]) | ||
1229 | return; | ||
1230 | |||
1228 | psr = ia64_clear_ic(); | 1231 | psr = ia64_clear_ic(); |
1229 | for (i = IA64_TR_ALLOC_BASE; i < IA64_TR_ALLOC_MAX; i++) { | 1232 | for (i = IA64_TR_ALLOC_BASE; i < IA64_TR_ALLOC_MAX; i++) { |
1230 | p = &__per_cpu_idtrs[cpu][iord-1][i]; | 1233 | p = ia64_idtrs[cpu] + (iord - 1) * IA64_TR_ALLOC_MAX; |
1231 | if (p->pte & 0x1) { | 1234 | if (p->pte & 0x1) { |
1232 | old_rr = ia64_get_rr(p->ifa); | 1235 | old_rr = ia64_get_rr(p->ifa); |
1233 | if (old_rr != p->rr) { | 1236 | if (old_rr != p->rr) { |
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index 5246285a95f..6bcbe215b9a 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -2293,7 +2293,7 @@ pfm_smpl_buffer_alloc(struct task_struct *task, struct file *filp, pfm_context_t | |||
2293 | * if ((mm->total_vm << PAGE_SHIFT) + len> task->rlim[RLIMIT_AS].rlim_cur) | 2293 | * if ((mm->total_vm << PAGE_SHIFT) + len> task->rlim[RLIMIT_AS].rlim_cur) |
2294 | * return -ENOMEM; | 2294 | * return -ENOMEM; |
2295 | */ | 2295 | */ |
2296 | if (size > task->signal->rlim[RLIMIT_MEMLOCK].rlim_cur) | 2296 | if (size > task_rlimit(task, RLIMIT_MEMLOCK)) |
2297 | return -ENOMEM; | 2297 | return -ENOMEM; |
2298 | 2298 | ||
2299 | /* | 2299 | /* |
diff --git a/arch/ia64/kvm/vcpu.h b/arch/ia64/kvm/vcpu.h index 360724d3ae6..988911b4cc7 100644 --- a/arch/ia64/kvm/vcpu.h +++ b/arch/ia64/kvm/vcpu.h | |||
@@ -388,6 +388,9 @@ static inline u64 __gpfn_is_io(u64 gpfn) | |||
388 | #define _vmm_raw_spin_lock(x) do {}while(0) | 388 | #define _vmm_raw_spin_lock(x) do {}while(0) |
389 | #define _vmm_raw_spin_unlock(x) do {}while(0) | 389 | #define _vmm_raw_spin_unlock(x) do {}while(0) |
390 | #else | 390 | #else |
391 | typedef struct { | ||
392 | volatile unsigned int lock; | ||
393 | } vmm_spinlock_t; | ||
391 | #define _vmm_raw_spin_lock(x) \ | 394 | #define _vmm_raw_spin_lock(x) \ |
392 | do { \ | 395 | do { \ |
393 | __u32 *ia64_spinlock_ptr = (__u32 *) (x); \ | 396 | __u32 *ia64_spinlock_ptr = (__u32 *) (x); \ |
@@ -405,12 +408,12 @@ static inline u64 __gpfn_is_io(u64 gpfn) | |||
405 | 408 | ||
406 | #define _vmm_raw_spin_unlock(x) \ | 409 | #define _vmm_raw_spin_unlock(x) \ |
407 | do { barrier(); \ | 410 | do { barrier(); \ |
408 | ((spinlock_t *)x)->raw_lock.lock = 0; } \ | 411 | ((vmm_spinlock_t *)x)->lock = 0; } \ |
409 | while (0) | 412 | while (0) |
410 | #endif | 413 | #endif |
411 | 414 | ||
412 | void vmm_spin_lock(spinlock_t *lock); | 415 | void vmm_spin_lock(vmm_spinlock_t *lock); |
413 | void vmm_spin_unlock(spinlock_t *lock); | 416 | void vmm_spin_unlock(vmm_spinlock_t *lock); |
414 | enum { | 417 | enum { |
415 | I_TLB = 1, | 418 | I_TLB = 1, |
416 | D_TLB = 2 | 419 | D_TLB = 2 |
diff --git a/arch/ia64/kvm/vmm.c b/arch/ia64/kvm/vmm.c index f4b4c899bb6..7a62f75778c 100644 --- a/arch/ia64/kvm/vmm.c +++ b/arch/ia64/kvm/vmm.c | |||
@@ -60,12 +60,12 @@ static void __exit kvm_vmm_exit(void) | |||
60 | return ; | 60 | return ; |
61 | } | 61 | } |
62 | 62 | ||
63 | void vmm_spin_lock(spinlock_t *lock) | 63 | void vmm_spin_lock(vmm_spinlock_t *lock) |
64 | { | 64 | { |
65 | _vmm_raw_spin_lock(lock); | 65 | _vmm_raw_spin_lock(lock); |
66 | } | 66 | } |
67 | 67 | ||
68 | void vmm_spin_unlock(spinlock_t *lock) | 68 | void vmm_spin_unlock(vmm_spinlock_t *lock) |
69 | { | 69 | { |
70 | _vmm_raw_spin_unlock(lock); | 70 | _vmm_raw_spin_unlock(lock); |
71 | } | 71 | } |
diff --git a/arch/ia64/kvm/vtlb.c b/arch/ia64/kvm/vtlb.c index 20b3852f7a6..4332f7ee520 100644 --- a/arch/ia64/kvm/vtlb.c +++ b/arch/ia64/kvm/vtlb.c | |||
@@ -182,7 +182,7 @@ void mark_pages_dirty(struct kvm_vcpu *v, u64 pte, u64 ps) | |||
182 | { | 182 | { |
183 | u64 i, dirty_pages = 1; | 183 | u64 i, dirty_pages = 1; |
184 | u64 base_gfn = (pte&_PAGE_PPN_MASK) >> PAGE_SHIFT; | 184 | u64 base_gfn = (pte&_PAGE_PPN_MASK) >> PAGE_SHIFT; |
185 | spinlock_t *lock = __kvm_va(v->arch.dirty_log_lock_pa); | 185 | vmm_spinlock_t *lock = __kvm_va(v->arch.dirty_log_lock_pa); |
186 | void *dirty_bitmap = (void *)KVM_MEM_DIRTY_LOG_BASE; | 186 | void *dirty_bitmap = (void *)KVM_MEM_DIRTY_LOG_BASE; |
187 | 187 | ||
188 | dirty_pages <<= ps <= PAGE_SHIFT ? 0 : ps - PAGE_SHIFT; | 188 | dirty_pages <<= ps <= PAGE_SHIFT ? 0 : ps - PAGE_SHIFT; |
diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c index b9609c69343..7c0d4814a68 100644 --- a/arch/ia64/mm/init.c +++ b/arch/ia64/mm/init.c | |||
@@ -91,7 +91,7 @@ dma_mark_clean(void *addr, size_t size) | |||
91 | inline void | 91 | inline void |
92 | ia64_set_rbs_bot (void) | 92 | ia64_set_rbs_bot (void) |
93 | { | 93 | { |
94 | unsigned long stack_size = current->signal->rlim[RLIMIT_STACK].rlim_max & -16; | 94 | unsigned long stack_size = rlimit_max(RLIMIT_STACK) & -16; |
95 | 95 | ||
96 | if (stack_size > MAX_USER_STACK_SIZE) | 96 | if (stack_size > MAX_USER_STACK_SIZE) |
97 | stack_size = MAX_USER_STACK_SIZE; | 97 | stack_size = MAX_USER_STACK_SIZE; |
diff --git a/arch/ia64/mm/tlb.c b/arch/ia64/mm/tlb.c index ee09d261f2e..f3de9d7a98b 100644 --- a/arch/ia64/mm/tlb.c +++ b/arch/ia64/mm/tlb.c | |||
@@ -48,7 +48,7 @@ DEFINE_PER_CPU(u8, ia64_need_tlb_flush); | |||
48 | DEFINE_PER_CPU(u8, ia64_tr_num); /*Number of TR slots in current processor*/ | 48 | DEFINE_PER_CPU(u8, ia64_tr_num); /*Number of TR slots in current processor*/ |
49 | DEFINE_PER_CPU(u8, ia64_tr_used); /*Max Slot number used by kernel*/ | 49 | DEFINE_PER_CPU(u8, ia64_tr_used); /*Max Slot number used by kernel*/ |
50 | 50 | ||
51 | struct ia64_tr_entry __per_cpu_idtrs[NR_CPUS][2][IA64_TR_ALLOC_MAX]; | 51 | struct ia64_tr_entry *ia64_idtrs[NR_CPUS]; |
52 | 52 | ||
53 | /* | 53 | /* |
54 | * Initializes the ia64_ctx.bitmap array based on max_ctx+1. | 54 | * Initializes the ia64_ctx.bitmap array based on max_ctx+1. |
@@ -429,10 +429,16 @@ int ia64_itr_entry(u64 target_mask, u64 va, u64 pte, u64 log_size) | |||
429 | struct ia64_tr_entry *p; | 429 | struct ia64_tr_entry *p; |
430 | int cpu = smp_processor_id(); | 430 | int cpu = smp_processor_id(); |
431 | 431 | ||
432 | if (!ia64_idtrs[cpu]) { | ||
433 | ia64_idtrs[cpu] = kmalloc(2 * IA64_TR_ALLOC_MAX * | ||
434 | sizeof (struct ia64_tr_entry), GFP_KERNEL); | ||
435 | if (!ia64_idtrs[cpu]) | ||
436 | return -ENOMEM; | ||
437 | } | ||
432 | r = -EINVAL; | 438 | r = -EINVAL; |
433 | /*Check overlap with existing TR entries*/ | 439 | /*Check overlap with existing TR entries*/ |
434 | if (target_mask & 0x1) { | 440 | if (target_mask & 0x1) { |
435 | p = &__per_cpu_idtrs[cpu][0][0]; | 441 | p = ia64_idtrs[cpu]; |
436 | for (i = IA64_TR_ALLOC_BASE; i <= per_cpu(ia64_tr_used, cpu); | 442 | for (i = IA64_TR_ALLOC_BASE; i <= per_cpu(ia64_tr_used, cpu); |
437 | i++, p++) { | 443 | i++, p++) { |
438 | if (p->pte & 0x1) | 444 | if (p->pte & 0x1) |
@@ -444,7 +450,7 @@ int ia64_itr_entry(u64 target_mask, u64 va, u64 pte, u64 log_size) | |||
444 | } | 450 | } |
445 | } | 451 | } |
446 | if (target_mask & 0x2) { | 452 | if (target_mask & 0x2) { |
447 | p = &__per_cpu_idtrs[cpu][1][0]; | 453 | p = ia64_idtrs[cpu] + IA64_TR_ALLOC_MAX; |
448 | for (i = IA64_TR_ALLOC_BASE; i <= per_cpu(ia64_tr_used, cpu); | 454 | for (i = IA64_TR_ALLOC_BASE; i <= per_cpu(ia64_tr_used, cpu); |
449 | i++, p++) { | 455 | i++, p++) { |
450 | if (p->pte & 0x1) | 456 | if (p->pte & 0x1) |
@@ -459,16 +465,16 @@ int ia64_itr_entry(u64 target_mask, u64 va, u64 pte, u64 log_size) | |||
459 | for (i = IA64_TR_ALLOC_BASE; i < per_cpu(ia64_tr_num, cpu); i++) { | 465 | for (i = IA64_TR_ALLOC_BASE; i < per_cpu(ia64_tr_num, cpu); i++) { |
460 | switch (target_mask & 0x3) { | 466 | switch (target_mask & 0x3) { |
461 | case 1: | 467 | case 1: |
462 | if (!(__per_cpu_idtrs[cpu][0][i].pte & 0x1)) | 468 | if (!((ia64_idtrs[cpu] + i)->pte & 0x1)) |
463 | goto found; | 469 | goto found; |
464 | continue; | 470 | continue; |
465 | case 2: | 471 | case 2: |
466 | if (!(__per_cpu_idtrs[cpu][1][i].pte & 0x1)) | 472 | if (!((ia64_idtrs[cpu] + IA64_TR_ALLOC_MAX + i)->pte & 0x1)) |
467 | goto found; | 473 | goto found; |
468 | continue; | 474 | continue; |
469 | case 3: | 475 | case 3: |
470 | if (!(__per_cpu_idtrs[cpu][0][i].pte & 0x1) && | 476 | if (!((ia64_idtrs[cpu] + i)->pte & 0x1) && |
471 | !(__per_cpu_idtrs[cpu][1][i].pte & 0x1)) | 477 | !((ia64_idtrs[cpu] + IA64_TR_ALLOC_MAX + i)->pte & 0x1)) |
472 | goto found; | 478 | goto found; |
473 | continue; | 479 | continue; |
474 | default: | 480 | default: |
@@ -488,7 +494,7 @@ found: | |||
488 | if (target_mask & 0x1) { | 494 | if (target_mask & 0x1) { |
489 | ia64_itr(0x1, i, va, pte, log_size); | 495 | ia64_itr(0x1, i, va, pte, log_size); |
490 | ia64_srlz_i(); | 496 | ia64_srlz_i(); |
491 | p = &__per_cpu_idtrs[cpu][0][i]; | 497 | p = ia64_idtrs[cpu] + i; |
492 | p->ifa = va; | 498 | p->ifa = va; |
493 | p->pte = pte; | 499 | p->pte = pte; |
494 | p->itir = log_size << 2; | 500 | p->itir = log_size << 2; |
@@ -497,7 +503,7 @@ found: | |||
497 | if (target_mask & 0x2) { | 503 | if (target_mask & 0x2) { |
498 | ia64_itr(0x2, i, va, pte, log_size); | 504 | ia64_itr(0x2, i, va, pte, log_size); |
499 | ia64_srlz_i(); | 505 | ia64_srlz_i(); |
500 | p = &__per_cpu_idtrs[cpu][1][i]; | 506 | p = ia64_idtrs[cpu] + IA64_TR_ALLOC_MAX + i; |
501 | p->ifa = va; | 507 | p->ifa = va; |
502 | p->pte = pte; | 508 | p->pte = pte; |
503 | p->itir = log_size << 2; | 509 | p->itir = log_size << 2; |
@@ -528,7 +534,7 @@ void ia64_ptr_entry(u64 target_mask, int slot) | |||
528 | return; | 534 | return; |
529 | 535 | ||
530 | if (target_mask & 0x1) { | 536 | if (target_mask & 0x1) { |
531 | p = &__per_cpu_idtrs[cpu][0][slot]; | 537 | p = ia64_idtrs[cpu] + slot; |
532 | if ((p->pte&0x1) && is_tr_overlap(p, p->ifa, p->itir>>2)) { | 538 | if ((p->pte&0x1) && is_tr_overlap(p, p->ifa, p->itir>>2)) { |
533 | p->pte = 0; | 539 | p->pte = 0; |
534 | ia64_ptr(0x1, p->ifa, p->itir>>2); | 540 | ia64_ptr(0x1, p->ifa, p->itir>>2); |
@@ -537,7 +543,7 @@ void ia64_ptr_entry(u64 target_mask, int slot) | |||
537 | } | 543 | } |
538 | 544 | ||
539 | if (target_mask & 0x2) { | 545 | if (target_mask & 0x2) { |
540 | p = &__per_cpu_idtrs[cpu][1][slot]; | 546 | p = ia64_idtrs[cpu] + IA64_TR_ALLOC_MAX + slot; |
541 | if ((p->pte & 0x1) && is_tr_overlap(p, p->ifa, p->itir>>2)) { | 547 | if ((p->pte & 0x1) && is_tr_overlap(p, p->ifa, p->itir>>2)) { |
542 | p->pte = 0; | 548 | p->pte = 0; |
543 | ia64_ptr(0x2, p->ifa, p->itir>>2); | 549 | ia64_ptr(0x2, p->ifa, p->itir>>2); |
@@ -546,8 +552,8 @@ void ia64_ptr_entry(u64 target_mask, int slot) | |||
546 | } | 552 | } |
547 | 553 | ||
548 | for (i = per_cpu(ia64_tr_used, cpu); i >= IA64_TR_ALLOC_BASE; i--) { | 554 | for (i = per_cpu(ia64_tr_used, cpu); i >= IA64_TR_ALLOC_BASE; i--) { |
549 | if ((__per_cpu_idtrs[cpu][0][i].pte & 0x1) || | 555 | if (((ia64_idtrs[cpu] + i)->pte & 0x1) || |
550 | (__per_cpu_idtrs[cpu][1][i].pte & 0x1)) | 556 | ((ia64_idtrs[cpu] + IA64_TR_ALLOC_MAX + i)->pte & 0x1)) |
551 | break; | 557 | break; |
552 | } | 558 | } |
553 | per_cpu(ia64_tr_used, cpu) = i; | 559 | per_cpu(ia64_tr_used, cpu) = i; |
diff --git a/arch/m68k/include/asm/io_no.h b/arch/m68k/include/asm/io_no.h index 7f57436ec18..359065d5a9f 100644 --- a/arch/m68k/include/asm/io_no.h +++ b/arch/m68k/include/asm/io_no.h | |||
@@ -3,6 +3,7 @@ | |||
3 | 3 | ||
4 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
5 | 5 | ||
6 | #include <asm/virtconvert.h> | ||
6 | 7 | ||
7 | /* | 8 | /* |
8 | * These are for ISA/PCI shared memory _only_ and should never be used | 9 | * These are for ISA/PCI shared memory _only_ and should never be used |
@@ -165,19 +166,6 @@ static inline void *ioremap_fullcache(unsigned long physaddr, unsigned long size | |||
165 | 166 | ||
166 | extern void iounmap(void *addr); | 167 | extern void iounmap(void *addr); |
167 | 168 | ||
168 | /* Pages to physical address... */ | ||
169 | #define page_to_phys(page) ((page - mem_map) << PAGE_SHIFT) | ||
170 | #define page_to_bus(page) ((page - mem_map) << PAGE_SHIFT) | ||
171 | |||
172 | /* | ||
173 | * Macros used for converting between virtual and physical mappings. | ||
174 | */ | ||
175 | #define phys_to_virt(vaddr) ((void *) (vaddr)) | ||
176 | #define virt_to_phys(vaddr) ((unsigned long) (vaddr)) | ||
177 | |||
178 | #define virt_to_bus virt_to_phys | ||
179 | #define bus_to_virt phys_to_virt | ||
180 | |||
181 | /* | 169 | /* |
182 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem | 170 | * Convert a physical pointer to a virtual kernel pointer for /dev/mem |
183 | * access | 171 | * access |
diff --git a/arch/m68k/include/asm/page_no.h b/arch/m68k/include/asm/page_no.h index 1f31b060cc8..8029a33e03c 100644 --- a/arch/m68k/include/asm/page_no.h +++ b/arch/m68k/include/asm/page_no.h | |||
@@ -56,8 +56,8 @@ extern unsigned long memory_end; | |||
56 | 56 | ||
57 | #ifndef __ASSEMBLY__ | 57 | #ifndef __ASSEMBLY__ |
58 | 58 | ||
59 | #define __pa(vaddr) virt_to_phys((void *)(vaddr)) | 59 | #define __pa(vaddr) ((unsigned long)(vaddr)) |
60 | #define __va(paddr) phys_to_virt((unsigned long)(paddr)) | 60 | #define __va(paddr) ((void *)(paddr)) |
61 | 61 | ||
62 | #define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) | 62 | #define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) |
63 | #define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) | 63 | #define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) |
diff --git a/arch/m68k/include/asm/virtconvert.h b/arch/m68k/include/asm/virtconvert.h index 22ab05c9c52..3f834b3ab5b 100644 --- a/arch/m68k/include/asm/virtconvert.h +++ b/arch/m68k/include/asm/virtconvert.h | |||
@@ -26,6 +26,7 @@ static inline void *phys_to_virt(unsigned long address) | |||
26 | } | 26 | } |
27 | 27 | ||
28 | /* Permanent address of a page. */ | 28 | /* Permanent address of a page. */ |
29 | #ifdef CONFIG_MMU | ||
29 | #ifdef CONFIG_SINGLE_MEMORY_CHUNK | 30 | #ifdef CONFIG_SINGLE_MEMORY_CHUNK |
30 | #define page_to_phys(page) \ | 31 | #define page_to_phys(page) \ |
31 | __pa(PAGE_OFFSET + (((page) - pg_data_map[0].node_mem_map) << PAGE_SHIFT)) | 32 | __pa(PAGE_OFFSET + (((page) - pg_data_map[0].node_mem_map) << PAGE_SHIFT)) |
@@ -37,6 +38,9 @@ static inline void *phys_to_virt(unsigned long address) | |||
37 | page_to_pfn(__page) << PAGE_SHIFT; \ | 38 | page_to_pfn(__page) << PAGE_SHIFT; \ |
38 | }) | 39 | }) |
39 | #endif | 40 | #endif |
41 | #else | ||
42 | #define page_to_phys(page) (((page) - mem_map) << PAGE_SHIFT) | ||
43 | #endif | ||
40 | 44 | ||
41 | /* | 45 | /* |
42 | * IO bus memory addresses are 1:1 with the physical address, | 46 | * IO bus memory addresses are 1:1 with the physical address, |
diff --git a/arch/m68knommu/platform/coldfire/pit.c b/arch/m68knommu/platform/coldfire/pit.c index d8720ee3451..aebea19abd7 100644 --- a/arch/m68knommu/platform/coldfire/pit.c +++ b/arch/m68knommu/platform/coldfire/pit.c | |||
@@ -146,7 +146,6 @@ static struct clocksource pit_clk = { | |||
146 | .read = pit_read_clk, | 146 | .read = pit_read_clk, |
147 | .shift = 20, | 147 | .shift = 20, |
148 | .mask = CLOCKSOURCE_MASK(32), | 148 | .mask = CLOCKSOURCE_MASK(32), |
149 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | ||
150 | }; | 149 | }; |
151 | 150 | ||
152 | /***************************************************************************/ | 151 | /***************************************************************************/ |
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig index fd53e500be6..cd5837e298b 100644 --- a/arch/microblaze/Kconfig +++ b/arch/microblaze/Kconfig | |||
@@ -90,7 +90,7 @@ source "arch/microblaze/platform/Kconfig.platform" | |||
90 | 90 | ||
91 | menu "Processor type and features" | 91 | menu "Processor type and features" |
92 | 92 | ||
93 | source kernel/time/Kconfig | 93 | source "kernel/time/Kconfig" |
94 | 94 | ||
95 | source "kernel/Kconfig.preempt" | 95 | source "kernel/Kconfig.preempt" |
96 | 96 | ||
diff --git a/arch/microblaze/include/asm/ptrace.h b/arch/microblaze/include/asm/ptrace.h index a917dc51773..d74dbfb92c0 100644 --- a/arch/microblaze/include/asm/ptrace.h +++ b/arch/microblaze/include/asm/ptrace.h | |||
@@ -54,6 +54,7 @@ struct pt_regs { | |||
54 | int pt_mode; | 54 | int pt_mode; |
55 | }; | 55 | }; |
56 | 56 | ||
57 | #ifdef __KERNEL__ | ||
57 | #define kernel_mode(regs) ((regs)->pt_mode) | 58 | #define kernel_mode(regs) ((regs)->pt_mode) |
58 | #define user_mode(regs) (!kernel_mode(regs)) | 59 | #define user_mode(regs) (!kernel_mode(regs)) |
59 | 60 | ||
@@ -62,6 +63,19 @@ struct pt_regs { | |||
62 | 63 | ||
63 | void show_regs(struct pt_regs *); | 64 | void show_regs(struct pt_regs *); |
64 | 65 | ||
66 | #else /* __KERNEL__ */ | ||
67 | |||
68 | /* pt_regs offsets used by gdbserver etc in ptrace syscalls */ | ||
69 | #define PT_GPR(n) ((n) * sizeof(microblaze_reg_t)) | ||
70 | #define PT_PC (32 * sizeof(microblaze_reg_t)) | ||
71 | #define PT_MSR (33 * sizeof(microblaze_reg_t)) | ||
72 | #define PT_EAR (34 * sizeof(microblaze_reg_t)) | ||
73 | #define PT_ESR (35 * sizeof(microblaze_reg_t)) | ||
74 | #define PT_FSR (36 * sizeof(microblaze_reg_t)) | ||
75 | #define PT_KERNEL_MODE (37 * sizeof(microblaze_reg_t)) | ||
76 | |||
77 | #endif /* __KERNEL */ | ||
78 | |||
65 | #endif /* __ASSEMBLY__ */ | 79 | #endif /* __ASSEMBLY__ */ |
66 | 80 | ||
67 | #endif /* _ASM_MICROBLAZE_PTRACE_H */ | 81 | #endif /* _ASM_MICROBLAZE_PTRACE_H */ |
diff --git a/arch/microblaze/include/asm/unistd.h b/arch/microblaze/include/asm/unistd.h index cb05a07e55e..2b67e92a773 100644 --- a/arch/microblaze/include/asm/unistd.h +++ b/arch/microblaze/include/asm/unistd.h | |||
@@ -377,13 +377,14 @@ | |||
377 | #define __NR_shutdown 359 /* new */ | 377 | #define __NR_shutdown 359 /* new */ |
378 | #define __NR_sendmsg 360 /* new */ | 378 | #define __NR_sendmsg 360 /* new */ |
379 | #define __NR_recvmsg 361 /* new */ | 379 | #define __NR_recvmsg 361 /* new */ |
380 | #define __NR_accept04 362 /* new */ | 380 | #define __NR_accept4 362 /* new */ |
381 | #define __NR_preadv 363 /* new */ | 381 | #define __NR_preadv 363 /* new */ |
382 | #define __NR_pwritev 364 /* new */ | 382 | #define __NR_pwritev 364 /* new */ |
383 | #define __NR_rt_tgsigqueueinfo 365 /* new */ | 383 | #define __NR_rt_tgsigqueueinfo 365 /* new */ |
384 | #define __NR_perf_event_open 366 /* new */ | 384 | #define __NR_perf_event_open 366 /* new */ |
385 | #define __NR_recvmmsg 367 /* new */ | ||
385 | 386 | ||
386 | #define __NR_syscalls 367 | 387 | #define __NR_syscalls 368 |
387 | 388 | ||
388 | #ifdef __KERNEL__ | 389 | #ifdef __KERNEL__ |
389 | #ifndef __ASSEMBLY__ | 390 | #ifndef __ASSEMBLY__ |
diff --git a/arch/microblaze/kernel/prom_parse.c b/arch/microblaze/kernel/prom_parse.c index ae0352ecd5a..bf7e6c27e31 100644 --- a/arch/microblaze/kernel/prom_parse.c +++ b/arch/microblaze/kernel/prom_parse.c | |||
@@ -256,7 +256,7 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq) | |||
256 | if (ppdev == NULL) { | 256 | if (ppdev == NULL) { |
257 | struct pci_controller *host; | 257 | struct pci_controller *host; |
258 | host = pci_bus_to_host(pdev->bus); | 258 | host = pci_bus_to_host(pdev->bus); |
259 | ppnode = host ? host->arch_data : NULL; | 259 | ppnode = host ? host->dn : NULL; |
260 | /* No node for host bridge ? give up */ | 260 | /* No node for host bridge ? give up */ |
261 | if (ppnode == NULL) | 261 | if (ppnode == NULL) |
262 | return -EINVAL; | 262 | return -EINVAL; |
diff --git a/arch/microblaze/kernel/syscall_table.S b/arch/microblaze/kernel/syscall_table.S index 4088be7d4e2..03376dc814c 100644 --- a/arch/microblaze/kernel/syscall_table.S +++ b/arch/microblaze/kernel/syscall_table.S | |||
@@ -366,7 +366,7 @@ ENTRY(sys_call_table) | |||
366 | .long sys_shutdown | 366 | .long sys_shutdown |
367 | .long sys_sendmsg /* 360 */ | 367 | .long sys_sendmsg /* 360 */ |
368 | .long sys_recvmsg | 368 | .long sys_recvmsg |
369 | .long sys_ni_syscall | 369 | .long sys_accept4 |
370 | .long sys_ni_syscall | 370 | .long sys_ni_syscall |
371 | .long sys_ni_syscall | 371 | .long sys_ni_syscall |
372 | .long sys_rt_tgsigqueueinfo /* 365 */ | 372 | .long sys_rt_tgsigqueueinfo /* 365 */ |
diff --git a/arch/mips/alchemy/common/dbdma.c b/arch/mips/alchemy/common/dbdma.c index 19c1c82849f..5c68569344c 100644 --- a/arch/mips/alchemy/common/dbdma.c +++ b/arch/mips/alchemy/common/dbdma.c | |||
@@ -613,7 +613,7 @@ u32 _au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes, u32 flags) | |||
613 | dma_cache_wback_inv((unsigned long)buf, nbytes); | 613 | dma_cache_wback_inv((unsigned long)buf, nbytes); |
614 | dp->dscr_cmd0 |= DSCR_CMD0_V; /* Let it rip */ | 614 | dp->dscr_cmd0 |= DSCR_CMD0_V; /* Let it rip */ |
615 | au_sync(); | 615 | au_sync(); |
616 | dma_cache_wback_inv((unsigned long)dp, sizeof(dp)); | 616 | dma_cache_wback_inv((unsigned long)dp, sizeof(*dp)); |
617 | ctp->chan_ptr->ddma_dbell = 0; | 617 | ctp->chan_ptr->ddma_dbell = 0; |
618 | 618 | ||
619 | /* Get next descriptor pointer. */ | 619 | /* Get next descriptor pointer. */ |
@@ -676,7 +676,7 @@ _au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes, u32 flags) | |||
676 | dma_cache_inv((unsigned long)buf, nbytes); | 676 | dma_cache_inv((unsigned long)buf, nbytes); |
677 | dp->dscr_cmd0 |= DSCR_CMD0_V; /* Let it rip */ | 677 | dp->dscr_cmd0 |= DSCR_CMD0_V; /* Let it rip */ |
678 | au_sync(); | 678 | au_sync(); |
679 | dma_cache_wback_inv((unsigned long)dp, sizeof(dp)); | 679 | dma_cache_wback_inv((unsigned long)dp, sizeof(*dp)); |
680 | ctp->chan_ptr->ddma_dbell = 0; | 680 | ctp->chan_ptr->ddma_dbell = 0; |
681 | 681 | ||
682 | /* Get next descriptor pointer. */ | 682 | /* Get next descriptor pointer. */ |
diff --git a/arch/mips/ar7/prom.c b/arch/mips/ar7/prom.c index 5ad6f1db656..c1fdd368281 100644 --- a/arch/mips/ar7/prom.c +++ b/arch/mips/ar7/prom.c | |||
@@ -219,14 +219,6 @@ static void __init console_config(void) | |||
219 | if (strstr(prom_getcmdline(), "console=")) | 219 | if (strstr(prom_getcmdline(), "console=")) |
220 | return; | 220 | return; |
221 | 221 | ||
222 | #ifdef CONFIG_KGDB | ||
223 | if (!strstr(prom_getcmdline(), "nokgdb")) { | ||
224 | strcat(prom_getcmdline(), " console=kgdb"); | ||
225 | kgdb_enabled = 1; | ||
226 | return; | ||
227 | } | ||
228 | #endif | ||
229 | |||
230 | s = prom_getenv("modetty0"); | 222 | s = prom_getenv("modetty0"); |
231 | if (s) { | 223 | if (s) { |
232 | baud = simple_strtoul(s, &p, 10); | 224 | baud = simple_strtoul(s, &p, 10); |
@@ -280,13 +272,6 @@ static inline void serial_out(int offset, int value) | |||
280 | writel(value, (void *)PORT(offset)); | 272 | writel(value, (void *)PORT(offset)); |
281 | } | 273 | } |
282 | 274 | ||
283 | char prom_getchar(void) | ||
284 | { | ||
285 | while (!(serial_in(UART_LSR) & UART_LSR_DR)) | ||
286 | ; | ||
287 | return serial_in(UART_RX); | ||
288 | } | ||
289 | |||
290 | int prom_putchar(char c) | 275 | int prom_putchar(char c) |
291 | { | 276 | { |
292 | while ((serial_in(UART_LSR) & UART_LSR_TEMT) == 0) | 277 | while ((serial_in(UART_LSR) & UART_LSR_TEMT) == 0) |
diff --git a/arch/mips/bcm63xx/boards/board_bcm963xx.c b/arch/mips/bcm63xx/boards/board_bcm963xx.c index 05a35cf5963..1fe412c4317 100644 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c | |||
@@ -346,27 +346,26 @@ static struct board_info __initdata board_96348gw = { | |||
346 | }; | 346 | }; |
347 | 347 | ||
348 | static struct board_info __initdata board_FAST2404 = { | 348 | static struct board_info __initdata board_FAST2404 = { |
349 | .name = "F@ST2404", | 349 | .name = "F@ST2404", |
350 | .expected_cpu_id = 0x6348, | 350 | .expected_cpu_id = 0x6348, |
351 | |||
352 | .has_enet0 = 1, | ||
353 | .has_enet1 = 1, | ||
354 | .has_pci = 1, | ||
355 | 351 | ||
356 | .enet0 = { | 352 | .has_enet0 = 1, |
357 | .has_phy = 1, | 353 | .has_enet1 = 1, |
358 | .use_internal_phy = 1, | 354 | .has_pci = 1, |
359 | }, | ||
360 | 355 | ||
361 | .enet1 = { | 356 | .enet0 = { |
362 | .force_speed_100 = 1, | 357 | .has_phy = 1, |
363 | .force_duplex_full = 1, | 358 | .use_internal_phy = 1, |
364 | }, | 359 | }, |
365 | 360 | ||
361 | .enet1 = { | ||
362 | .force_speed_100 = 1, | ||
363 | .force_duplex_full = 1, | ||
364 | }, | ||
366 | 365 | ||
367 | .has_ohci0 = 1, | 366 | .has_ohci0 = 1, |
368 | .has_pccard = 1, | 367 | .has_pccard = 1, |
369 | .has_ehci0 = 1, | 368 | .has_ehci0 = 1, |
370 | }; | 369 | }; |
371 | 370 | ||
372 | static struct board_info __initdata board_DV201AMR = { | 371 | static struct board_info __initdata board_DV201AMR = { |
diff --git a/arch/mips/bcm63xx/prom.c b/arch/mips/bcm63xx/prom.c index fb284fbc585..be252efa075 100644 --- a/arch/mips/bcm63xx/prom.c +++ b/arch/mips/bcm63xx/prom.c | |||
@@ -40,9 +40,6 @@ void __init prom_init(void) | |||
40 | reg &= ~mask; | 40 | reg &= ~mask; |
41 | bcm_perf_writel(reg, PERF_CKCTL_REG); | 41 | bcm_perf_writel(reg, PERF_CKCTL_REG); |
42 | 42 | ||
43 | /* assign command line from kernel config */ | ||
44 | strcpy(arcs_cmdline, CONFIG_CMDLINE); | ||
45 | |||
46 | /* register gpiochip */ | 43 | /* register gpiochip */ |
47 | bcm63xx_gpio_init(); | 44 | bcm63xx_gpio_init(); |
48 | 45 | ||
diff --git a/arch/mips/boot/.gitignore b/arch/mips/boot/.gitignore index ba63401c6e1..4667a5f9280 100644 --- a/arch/mips/boot/.gitignore +++ b/arch/mips/boot/.gitignore | |||
@@ -1,4 +1,5 @@ | |||
1 | mkboot | 1 | mkboot |
2 | elf2ecoff | 2 | elf2ecoff |
3 | vmlinux.* | ||
3 | zImage | 4 | zImage |
4 | zImage.tmp | 5 | zImage.tmp |
diff --git a/arch/mips/boot/Makefile b/arch/mips/boot/Makefile index 094bc84765a..e39a08edcaa 100644 --- a/arch/mips/boot/Makefile +++ b/arch/mips/boot/Makefile | |||
@@ -28,7 +28,7 @@ VMLINUX = vmlinux | |||
28 | all: vmlinux.ecoff vmlinux.srec | 28 | all: vmlinux.ecoff vmlinux.srec |
29 | 29 | ||
30 | vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX) | 30 | vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX) |
31 | $(obj)/elf2ecoff $(VMLINUX) vmlinux.ecoff $(E2EFLAGS) | 31 | $(obj)/elf2ecoff $(VMLINUX) $(obj)/vmlinux.ecoff $(E2EFLAGS) |
32 | 32 | ||
33 | $(obj)/elf2ecoff: $(obj)/elf2ecoff.c | 33 | $(obj)/elf2ecoff: $(obj)/elf2ecoff.c |
34 | $(HOSTCC) -o $@ $^ | 34 | $(HOSTCC) -o $@ $^ |
diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile index e27f40bbd4e..671d3448fad 100644 --- a/arch/mips/boot/compressed/Makefile +++ b/arch/mips/boot/compressed/Makefile | |||
@@ -56,7 +56,7 @@ $(obj)/piggy.o: $(obj)/vmlinux.$(suffix_y) $(obj)/dummy.o | |||
56 | LDFLAGS_vmlinuz := $(LDFLAGS) -Ttext $(VMLINUZ_LOAD_ADDRESS) -T | 56 | LDFLAGS_vmlinuz := $(LDFLAGS) -Ttext $(VMLINUZ_LOAD_ADDRESS) -T |
57 | vmlinuz: $(src)/ld.script $(obj-y) $(obj)/piggy.o | 57 | vmlinuz: $(src)/ld.script $(obj-y) $(obj)/piggy.o |
58 | $(call if_changed,ld) | 58 | $(call if_changed,ld) |
59 | $(Q)$(OBJCOPY) $(OBJCOPYFLAGS) -R .comment -R .stab -R .stabstr -R .initrd -R .sysmap $@ | 59 | $(Q)$(OBJCOPY) $(OBJCOPYFLAGS) $@ |
60 | 60 | ||
61 | # | 61 | # |
62 | # Some DECstations need all possible sections of an ECOFF executable | 62 | # Some DECstations need all possible sections of an ECOFF executable |
@@ -84,14 +84,11 @@ vmlinuz.ecoff: $(obj)/../elf2ecoff $(VMLINUZ) | |||
84 | $(obj)/../elf2ecoff: $(src)/../elf2ecoff.c | 84 | $(obj)/../elf2ecoff: $(src)/../elf2ecoff.c |
85 | $(Q)$(HOSTCC) -o $@ $^ | 85 | $(Q)$(HOSTCC) -o $@ $^ |
86 | 86 | ||
87 | drop-sections = .reginfo .mdebug .comment .note .pdr .options .MIPS.options | 87 | OBJCOPYFLAGS_vmlinuz.bin := $(OBJCOPYFLAGS) -O binary |
88 | strip-flags = $(addprefix --remove-section=,$(drop-sections)) | ||
89 | |||
90 | OBJCOPYFLAGS_vmlinuz.bin := $(OBJCOPYFLAGS) -O binary $(strip-flags) | ||
91 | vmlinuz.bin: vmlinuz | 88 | vmlinuz.bin: vmlinuz |
92 | $(call if_changed,objcopy) | 89 | $(call if_changed,objcopy) |
93 | 90 | ||
94 | OBJCOPYFLAGS_vmlinuz.srec := $(OBJCOPYFLAGS) -S -O srec $(strip-flags) | 91 | OBJCOPYFLAGS_vmlinuz.srec := $(OBJCOPYFLAGS) -S -O srec |
95 | vmlinuz.srec: vmlinuz | 92 | vmlinuz.srec: vmlinuz |
96 | $(call if_changed,objcopy) | 93 | $(call if_changed,objcopy) |
97 | 94 | ||
diff --git a/arch/mips/boot/compressed/decompress.c b/arch/mips/boot/compressed/decompress.c index 67330c2f731..e48fd72898a 100644 --- a/arch/mips/boot/compressed/decompress.c +++ b/arch/mips/boot/compressed/decompress.c | |||
@@ -28,8 +28,6 @@ char *zimage_start; | |||
28 | 28 | ||
29 | /* The linker tells us where the image is. */ | 29 | /* The linker tells us where the image is. */ |
30 | extern unsigned char __image_begin, __image_end; | 30 | extern unsigned char __image_begin, __image_end; |
31 | extern unsigned char __ramdisk_begin, __ramdisk_end; | ||
32 | unsigned long initrd_size; | ||
33 | 31 | ||
34 | /* debug interfaces */ | 32 | /* debug interfaces */ |
35 | extern void puts(const char *s); | 33 | extern void puts(const char *s); |
@@ -102,14 +100,6 @@ void decompress_kernel(unsigned long boot_heap_start) | |||
102 | puthex((unsigned long)(zimage_size + zimage_start)); | 100 | puthex((unsigned long)(zimage_size + zimage_start)); |
103 | puts("\n"); | 101 | puts("\n"); |
104 | 102 | ||
105 | if (initrd_size) { | ||
106 | puts("initrd at: "); | ||
107 | puthex((unsigned long)(&__ramdisk_begin)); | ||
108 | puts(" "); | ||
109 | puthex((unsigned long)(&__ramdisk_end)); | ||
110 | puts("\n"); | ||
111 | } | ||
112 | |||
113 | /* this area are prepared for mallocing when decompressing */ | 103 | /* this area are prepared for mallocing when decompressing */ |
114 | free_mem_ptr = boot_heap_start; | 104 | free_mem_ptr = boot_heap_start; |
115 | free_mem_end_ptr = boot_heap_start + BOOT_HEAP_SIZE; | 105 | free_mem_end_ptr = boot_heap_start + BOOT_HEAP_SIZE; |
diff --git a/arch/mips/boot/compressed/ld.script b/arch/mips/boot/compressed/ld.script index 29e9f4c0d5d..613a35b02f5 100644 --- a/arch/mips/boot/compressed/ld.script +++ b/arch/mips/boot/compressed/ld.script | |||
@@ -1,150 +1,67 @@ | |||
1 | /* | ||
2 | * ld.script for compressed kernel support of MIPS | ||
3 | * | ||
4 | * Copyright (C) 2009 Lemote Inc. | ||
5 | * Author: Wu Zhangjin <wuzj@lemote.com> | ||
6 | */ | ||
7 | |||
1 | OUTPUT_ARCH(mips) | 8 | OUTPUT_ARCH(mips) |
2 | ENTRY(start) | 9 | ENTRY(start) |
3 | SECTIONS | 10 | SECTIONS |
4 | { | 11 | { |
5 | /* Read-only sections, merged into text segment: */ | 12 | /* . = VMLINUZ_LOAD_ADDRESS */ |
6 | .init : { *(.init) } =0 | 13 | /* read-only */ |
7 | .text : | 14 | _text = .; /* Text and read-only data */ |
8 | { | 15 | .text : { |
9 | _ftext = . ; | 16 | _ftext = . ; |
10 | *(.text) | 17 | *(.text) |
11 | *(.rodata) | 18 | *(.rodata) |
12 | *(.rodata1) | 19 | } = 0 |
13 | /* .gnu.warning sections are handled specially by elf32.em. */ | 20 | _etext = .; /* End of text section */ |
14 | *(.gnu.warning) | ||
15 | } =0 | ||
16 | .kstrtab : { *(.kstrtab) } | ||
17 | |||
18 | . = ALIGN(16); /* Exception table */ | ||
19 | __start___ex_table = .; | ||
20 | __ex_table : { *(__ex_table) } | ||
21 | __stop___ex_table = .; | ||
22 | |||
23 | __start___dbe_table = .; /* Exception table for data bus errors */ | ||
24 | __dbe_table : { *(__dbe_table) } | ||
25 | __stop___dbe_table = .; | ||
26 | |||
27 | __start___ksymtab = .; /* Kernel symbol table */ | ||
28 | __ksymtab : { *(__ksymtab) } | ||
29 | __stop___ksymtab = .; | ||
30 | |||
31 | _etext = .; | ||
32 | |||
33 | . = ALIGN(8192); | ||
34 | .data.init_task : { *(.data.init_task) } | ||
35 | |||
36 | /* Startup code */ | ||
37 | . = ALIGN(4096); | ||
38 | __init_begin = .; | ||
39 | .text.init : { *(.text.init) } | ||
40 | .data.init : { *(.data.init) } | ||
41 | . = ALIGN(16); | ||
42 | __setup_start = .; | ||
43 | .setup.init : { *(.setup.init) } | ||
44 | __setup_end = .; | ||
45 | __initcall_start = .; | ||
46 | .initcall.init : { *(.initcall.init) } | ||
47 | __initcall_end = .; | ||
48 | . = ALIGN(4096); /* Align double page for init_task_union */ | ||
49 | __init_end = .; | ||
50 | |||
51 | . = ALIGN(4096); | ||
52 | .data.page_aligned : { *(.data.idt) } | ||
53 | |||
54 | . = ALIGN(32); | ||
55 | .data.cacheline_aligned : { *(.data.cacheline_aligned) } | ||
56 | 21 | ||
57 | .fini : { *(.fini) } =0 | 22 | /* writable */ |
58 | .reginfo : { *(.reginfo) } | 23 | .data : { /* Data */ |
59 | /* Adjust the address for the data segment. We want to adjust up to | 24 | _fdata = . ; |
60 | the same address within the page on the next page up. It would | 25 | *(.data) |
61 | be more correct to do this: | 26 | /* Put the compressed image here, so bss is on the end. */ |
62 | . = .; | 27 | __image_begin = .; |
63 | The current expression does not correctly handle the case of a | 28 | *(.image) |
64 | text segment ending precisely at the end of a page; it causes the | 29 | __image_end = .; |
65 | data segment to skip a page. The above expression does not have | 30 | CONSTRUCTORS |
66 | this problem, but it will currently (2/95) cause BFD to allocate | 31 | } |
67 | a single segment, combining both text and data, for this case. | 32 | .sdata : { *(.sdata) } |
68 | This will prevent the text segment from being shared among | 33 | . = ALIGN(4); |
69 | multiple executions of the program; I think that is more | 34 | _edata = .; /* End of data section */ |
70 | important than losing a page of the virtual address space (note | ||
71 | that no actual memory is lost; the page which is skipped can not | ||
72 | be referenced). */ | ||
73 | . = .; | ||
74 | .data : | ||
75 | { | ||
76 | _fdata = . ; | ||
77 | *(.data) | ||
78 | 35 | ||
79 | /* Put the compressed image here, so bss is on the end. */ | 36 | /* BSS */ |
80 | __image_begin = .; | 37 | __bss_start = .; |
81 | *(.image) | 38 | _fbss = .; |
82 | __image_end = .; | 39 | .sbss : { *(.sbss) *(.scommon) } |
83 | /* Align the initial ramdisk image (INITRD) on page boundaries. */ | 40 | .bss : { |
84 | . = ALIGN(4096); | 41 | *(.dynbss) |
85 | __ramdisk_begin = .; | 42 | *(.bss) |
86 | *(.initrd) | 43 | *(COMMON) |
87 | __ramdisk_end = .; | 44 | } |
88 | . = ALIGN(4096); | 45 | . = ALIGN(4); |
46 | _end = . ; | ||
89 | 47 | ||
90 | CONSTRUCTORS | 48 | /* These are needed for ELF backends which have not yet been converted |
91 | } | 49 | * to the new style linker. */ |
92 | .data1 : { *(.data1) } | ||
93 | _gp = . + 0x8000; | ||
94 | .lit8 : { *(.lit8) } | ||
95 | .lit4 : { *(.lit4) } | ||
96 | .ctors : { *(.ctors) } | ||
97 | .dtors : { *(.dtors) } | ||
98 | .got : { *(.got.plt) *(.got) } | ||
99 | .dynamic : { *(.dynamic) } | ||
100 | /* We want the small data sections together, so single-instruction offsets | ||
101 | can access them all, and initialized data all before uninitialized, so | ||
102 | we can shorten the on-disk segment size. */ | ||
103 | .sdata : { *(.sdata) } | ||
104 | . = ALIGN(4); | ||
105 | _edata = .; | ||
106 | PROVIDE (edata = .); | ||
107 | 50 | ||
108 | __bss_start = .; | 51 | .stab 0 : { *(.stab) } |
109 | _fbss = .; | 52 | .stabstr 0 : { *(.stabstr) } |
110 | .sbss : { *(.sbss) *(.scommon) } | ||
111 | .bss : | ||
112 | { | ||
113 | *(.dynbss) | ||
114 | *(.bss) | ||
115 | *(COMMON) | ||
116 | . = ALIGN(4); | ||
117 | _end = . ; | ||
118 | PROVIDE (end = .); | ||
119 | } | ||
120 | 53 | ||
121 | /* Sections to be discarded */ | 54 | /* These must appear regardless of . */ |
122 | /DISCARD/ : | 55 | .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } |
123 | { | 56 | .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } |
124 | *(.text.exit) | ||
125 | *(.data.exit) | ||
126 | *(.exitcall.exit) | ||
127 | } | ||
128 | 57 | ||
129 | /* This is the MIPS specific mdebug section. */ | 58 | /* Sections to be discarded */ |
130 | .mdebug : { *(.mdebug) } | 59 | /DISCARD/ : { |
131 | /* These are needed for ELF backends which have not yet been | 60 | *(.MIPS.options) |
132 | converted to the new style linker. */ | 61 | *(.options) |
133 | .stab 0 : { *(.stab) } | 62 | *(.pdr) |
134 | .stabstr 0 : { *(.stabstr) } | 63 | *(.reginfo) |
135 | /* DWARF debug sections. | 64 | *(.comment) |
136 | Symbols in the .debug DWARF section are relative to the beginning of the | 65 | *(.note) |
137 | section so we begin .debug at 0. It's not clear yet what needs to happen | 66 | } |
138 | for the others. */ | ||
139 | .debug 0 : { *(.debug) } | ||
140 | .debug_srcinfo 0 : { *(.debug_srcinfo) } | ||
141 | .debug_aranges 0 : { *(.debug_aranges) } | ||
142 | .debug_pubnames 0 : { *(.debug_pubnames) } | ||
143 | .debug_sfnames 0 : { *(.debug_sfnames) } | ||
144 | .line 0 : { *(.line) } | ||
145 | /* These must appear regardless of . */ | ||
146 | .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } | ||
147 | .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } | ||
148 | .comment : { *(.comment) } | ||
149 | .note : { *(.note) } | ||
150 | } | 67 | } |
diff --git a/arch/mips/cavium-octeon/csrc-octeon.c b/arch/mips/cavium-octeon/csrc-octeon.c index 96110f217dc..0bf4bbe04ae 100644 --- a/arch/mips/cavium-octeon/csrc-octeon.c +++ b/arch/mips/cavium-octeon/csrc-octeon.c | |||
@@ -50,6 +50,38 @@ static struct clocksource clocksource_mips = { | |||
50 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, | 50 | .flags = CLOCK_SOURCE_IS_CONTINUOUS, |
51 | }; | 51 | }; |
52 | 52 | ||
53 | unsigned long long notrace sched_clock(void) | ||
54 | { | ||
55 | /* 64-bit arithmatic can overflow, so use 128-bit. */ | ||
56 | #if (__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ <= 3)) | ||
57 | u64 t1, t2, t3; | ||
58 | unsigned long long rv; | ||
59 | u64 mult = clocksource_mips.mult; | ||
60 | u64 shift = clocksource_mips.shift; | ||
61 | u64 cnt = read_c0_cvmcount(); | ||
62 | |||
63 | asm ( | ||
64 | "dmultu\t%[cnt],%[mult]\n\t" | ||
65 | "nor\t%[t1],$0,%[shift]\n\t" | ||
66 | "mfhi\t%[t2]\n\t" | ||
67 | "mflo\t%[t3]\n\t" | ||
68 | "dsll\t%[t2],%[t2],1\n\t" | ||
69 | "dsrlv\t%[rv],%[t3],%[shift]\n\t" | ||
70 | "dsllv\t%[t1],%[t2],%[t1]\n\t" | ||
71 | "or\t%[rv],%[t1],%[rv]\n\t" | ||
72 | : [rv] "=&r" (rv), [t1] "=&r" (t1), [t2] "=&r" (t2), [t3] "=&r" (t3) | ||
73 | : [cnt] "r" (cnt), [mult] "r" (mult), [shift] "r" (shift) | ||
74 | : "hi", "lo"); | ||
75 | return rv; | ||
76 | #else | ||
77 | /* GCC > 4.3 do it the easy way. */ | ||
78 | unsigned int __attribute__((mode(TI))) t; | ||
79 | t = read_c0_cvmcount(); | ||
80 | t = t * clocksource_mips.mult; | ||
81 | return (unsigned long long)(t >> clocksource_mips.shift); | ||
82 | #endif | ||
83 | } | ||
84 | |||
53 | void __init plat_time_init(void) | 85 | void __init plat_time_init(void) |
54 | { | 86 | { |
55 | clocksource_mips.rating = 300; | 87 | clocksource_mips.rating = 300; |
diff --git a/arch/mips/cobalt/setup.c b/arch/mips/cobalt/setup.c index b5164422724..ec3b2c417f7 100644 --- a/arch/mips/cobalt/setup.c +++ b/arch/mips/cobalt/setup.c | |||
@@ -97,26 +97,18 @@ void __init plat_mem_setup(void) | |||
97 | 97 | ||
98 | void __init prom_init(void) | 98 | void __init prom_init(void) |
99 | { | 99 | { |
100 | int narg, indx, posn, nchr; | ||
101 | unsigned long memsz; | 100 | unsigned long memsz; |
101 | int argc, i; | ||
102 | char **argv; | 102 | char **argv; |
103 | 103 | ||
104 | memsz = fw_arg0 & 0x7fff0000; | 104 | memsz = fw_arg0 & 0x7fff0000; |
105 | narg = fw_arg0 & 0x0000ffff; | 105 | argc = fw_arg0 & 0x0000ffff; |
106 | 106 | argv = (char **)fw_arg1; | |
107 | if (narg) { | 107 | |
108 | arcs_cmdline[0] = '\0'; | 108 | for (i = 1; i < argc; i++) { |
109 | argv = (char **) fw_arg1; | 109 | strlcat(arcs_cmdline, argv[i], COMMAND_LINE_SIZE); |
110 | posn = 0; | 110 | if (i < (argc - 1)) |
111 | for (indx = 1; indx < narg; ++indx) { | 111 | strlcat(arcs_cmdline, " ", COMMAND_LINE_SIZE); |
112 | nchr = strlen(argv[indx]); | ||
113 | if (posn + 1 + nchr + 1 > sizeof(arcs_cmdline)) | ||
114 | break; | ||
115 | if (posn) | ||
116 | arcs_cmdline[posn++] = ' '; | ||
117 | strcpy(arcs_cmdline + posn, argv[indx]); | ||
118 | posn += nchr; | ||
119 | } | ||
120 | } | 112 | } |
121 | 113 | ||
122 | add_memory_region(0x0, memsz, BOOT_MEM_RAM); | 114 | add_memory_region(0x0, memsz, BOOT_MEM_RAM); |
diff --git a/arch/mips/include/asm/mach-ip27/topology.h b/arch/mips/include/asm/mach-ip27/topology.h index 09a59bcc1b0..1b1a7d1632b 100644 --- a/arch/mips/include/asm/mach-ip27/topology.h +++ b/arch/mips/include/asm/mach-ip27/topology.h | |||
@@ -24,7 +24,9 @@ extern struct cpuinfo_ip27 sn_cpu_info[NR_CPUS]; | |||
24 | 24 | ||
25 | #define cpu_to_node(cpu) (sn_cpu_info[(cpu)].p_nodeid) | 25 | #define cpu_to_node(cpu) (sn_cpu_info[(cpu)].p_nodeid) |
26 | #define parent_node(node) (node) | 26 | #define parent_node(node) (node) |
27 | #define cpumask_of_node(node) (&hub_data(node)->h_cpus) | 27 | #define cpumask_of_node(node) ((node) == -1 ? \ |
28 | cpu_all_mask : \ | ||
29 | &hub_data(node)->h_cpus) | ||
28 | struct pci_bus; | 30 | struct pci_bus; |
29 | extern int pcibus_to_node(struct pci_bus *); | 31 | extern int pcibus_to_node(struct pci_bus *); |
30 | 32 | ||
diff --git a/arch/mips/mipssim/sim_setup.c b/arch/mips/mipssim/sim_setup.c index 0824f6af477..55f22a3afe6 100644 --- a/arch/mips/mipssim/sim_setup.c +++ b/arch/mips/mipssim/sim_setup.c | |||
@@ -49,9 +49,6 @@ void __init plat_mem_setup(void) | |||
49 | set_io_port_base(0xbfd00000); | 49 | set_io_port_base(0xbfd00000); |
50 | 50 | ||
51 | serial_init(); | 51 | serial_init(); |
52 | |||
53 | pr_info("Linux started...\n"); | ||
54 | |||
55 | } | 52 | } |
56 | 53 | ||
57 | extern struct plat_smp_ops ssmtc_smp_ops; | 54 | extern struct plat_smp_ops ssmtc_smp_ops; |
@@ -60,7 +57,6 @@ void __init prom_init(void) | |||
60 | { | 57 | { |
61 | set_io_port_base(0xbfd00000); | 58 | set_io_port_base(0xbfd00000); |
62 | 59 | ||
63 | pr_info("\nLINUX started...\n"); | ||
64 | prom_meminit(); | 60 | prom_meminit(); |
65 | 61 | ||
66 | #ifdef CONFIG_MIPS_MT_SMP | 62 | #ifdef CONFIG_MIPS_MT_SMP |
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index 9e8d00389ee..1651942f7fe 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c | |||
@@ -424,7 +424,7 @@ void __init mem_init(void) | |||
424 | reservedpages << (PAGE_SHIFT-10), | 424 | reservedpages << (PAGE_SHIFT-10), |
425 | datasize >> 10, | 425 | datasize >> 10, |
426 | initsize >> 10, | 426 | initsize >> 10, |
427 | (unsigned long) (totalhigh_pages << (PAGE_SHIFT-10))); | 427 | totalhigh_pages << (PAGE_SHIFT-10)); |
428 | } | 428 | } |
429 | #endif /* !CONFIG_NEED_MULTIPLE_NODES */ | 429 | #endif /* !CONFIG_NEED_MULTIPLE_NODES */ |
430 | 430 | ||
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c index 3d0baa4a842..badcf5e8d69 100644 --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c | |||
@@ -73,9 +73,6 @@ static int __cpuinit m4kc_tlbp_war(void) | |||
73 | enum label_id { | 73 | enum label_id { |
74 | label_second_part = 1, | 74 | label_second_part = 1, |
75 | label_leave, | 75 | label_leave, |
76 | #ifdef MODULE_START | ||
77 | label_module_alloc, | ||
78 | #endif | ||
79 | label_vmalloc, | 76 | label_vmalloc, |
80 | label_vmalloc_done, | 77 | label_vmalloc_done, |
81 | label_tlbw_hazard, | 78 | label_tlbw_hazard, |
@@ -92,9 +89,6 @@ enum label_id { | |||
92 | 89 | ||
93 | UASM_L_LA(_second_part) | 90 | UASM_L_LA(_second_part) |
94 | UASM_L_LA(_leave) | 91 | UASM_L_LA(_leave) |
95 | #ifdef MODULE_START | ||
96 | UASM_L_LA(_module_alloc) | ||
97 | #endif | ||
98 | UASM_L_LA(_vmalloc) | 92 | UASM_L_LA(_vmalloc) |
99 | UASM_L_LA(_vmalloc_done) | 93 | UASM_L_LA(_vmalloc_done) |
100 | UASM_L_LA(_tlbw_hazard) | 94 | UASM_L_LA(_tlbw_hazard) |
@@ -818,8 +812,6 @@ static void __cpuinit build_r4000_tlb_refill_handler(void) | |||
818 | } else { | 812 | } else { |
819 | #if defined(CONFIG_HUGETLB_PAGE) | 813 | #if defined(CONFIG_HUGETLB_PAGE) |
820 | const enum label_id ls = label_tlb_huge_update; | 814 | const enum label_id ls = label_tlb_huge_update; |
821 | #elif defined(MODULE_START) | ||
822 | const enum label_id ls = label_module_alloc; | ||
823 | #else | 815 | #else |
824 | const enum label_id ls = label_vmalloc; | 816 | const enum label_id ls = label_vmalloc; |
825 | #endif | 817 | #endif |
diff --git a/arch/mips/mti-malta/malta-init.c b/arch/mips/mti-malta/malta-init.c index f1b14c8a4a1..414f0c99b19 100644 --- a/arch/mips/mti-malta/malta-init.c +++ b/arch/mips/mti-malta/malta-init.c | |||
@@ -355,7 +355,6 @@ void __init prom_init(void) | |||
355 | board_nmi_handler_setup = mips_nmi_setup; | 355 | board_nmi_handler_setup = mips_nmi_setup; |
356 | board_ejtag_handler_setup = mips_ejtag_setup; | 356 | board_ejtag_handler_setup = mips_ejtag_setup; |
357 | 357 | ||
358 | pr_info("\nLINUX started...\n"); | ||
359 | prom_init_cmdline(); | 358 | prom_init_cmdline(); |
360 | prom_meminit(); | 359 | prom_meminit(); |
361 | #ifdef CONFIG_SERIAL_8250_CONSOLE | 360 | #ifdef CONFIG_SERIAL_8250_CONSOLE |
diff --git a/arch/mips/powertv/Makefile b/arch/mips/powertv/Makefile index 2c516718aff..0a0d73c0564 100644 --- a/arch/mips/powertv/Makefile +++ b/arch/mips/powertv/Makefile | |||
@@ -23,6 +23,6 @@ | |||
23 | # under Linux. | 23 | # under Linux. |
24 | # | 24 | # |
25 | 25 | ||
26 | obj-y += cmdline.o init.o memory.o reset.o time.o powertv_setup.o asic/ pci/ | 26 | obj-y += init.o memory.o reset.o time.o powertv_setup.o asic/ pci/ |
27 | 27 | ||
28 | EXTRA_CFLAGS += -Wall -Werror | 28 | EXTRA_CFLAGS += -Wall -Werror |
diff --git a/arch/mips/powertv/cmdline.c b/arch/mips/powertv/cmdline.c deleted file mode 100644 index 98d73cb0d45..00000000000 --- a/arch/mips/powertv/cmdline.c +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | /* | ||
2 | * Carsten Langgaard, carstenl@mips.com | ||
3 | * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved. | ||
4 | * Portions copyright (C) 2009 Cisco Systems, Inc. | ||
5 | * | ||
6 | * This program is free software; you can distribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License (Version 2) as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
11 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
12 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
13 | * for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public License along | ||
16 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
17 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
18 | * | ||
19 | * Kernel command line creation using the prom monitor (YAMON) argc/argv. | ||
20 | */ | ||
21 | #include <linux/init.h> | ||
22 | #include <linux/string.h> | ||
23 | |||
24 | #include <asm/bootinfo.h> | ||
25 | |||
26 | #include "init.h" | ||
27 | |||
28 | /* | ||
29 | * YAMON (32-bit PROM) pass arguments and environment as 32-bit pointer. | ||
30 | * This macro take care of sign extension. | ||
31 | */ | ||
32 | #define prom_argv(index) ((char *)(long)_prom_argv[(index)]) | ||
33 | |||
34 | char * __init prom_getcmdline(void) | ||
35 | { | ||
36 | return &(arcs_cmdline[0]); | ||
37 | } | ||
38 | |||
39 | void __init prom_init_cmdline(void) | ||
40 | { | ||
41 | int len; | ||
42 | |||
43 | if (prom_argc != 1) | ||
44 | return; | ||
45 | |||
46 | len = strlen(arcs_cmdline); | ||
47 | |||
48 | arcs_cmdline[len] = ' '; | ||
49 | |||
50 | strlcpy(arcs_cmdline + len + 1, (char *)_prom_argv, | ||
51 | COMMAND_LINE_SIZE - len - 1); | ||
52 | } | ||
diff --git a/arch/mips/powertv/init.c b/arch/mips/powertv/init.c index 5f4e4c304e4..0afe227f1d0 100644 --- a/arch/mips/powertv/init.c +++ b/arch/mips/powertv/init.c | |||
@@ -34,10 +34,7 @@ | |||
34 | #include <asm/mips-boards/generic.h> | 34 | #include <asm/mips-boards/generic.h> |
35 | #include <asm/mach-powertv/asic.h> | 35 | #include <asm/mach-powertv/asic.h> |
36 | 36 | ||
37 | #include "init.h" | 37 | static int *_prom_envp; |
38 | |||
39 | int prom_argc; | ||
40 | int *_prom_argv, *_prom_envp; | ||
41 | unsigned long _prom_memsize; | 38 | unsigned long _prom_memsize; |
42 | 39 | ||
43 | /* | 40 | /* |
@@ -109,16 +106,20 @@ static void __init mips_ejtag_setup(void) | |||
109 | 106 | ||
110 | void __init prom_init(void) | 107 | void __init prom_init(void) |
111 | { | 108 | { |
109 | int prom_argc; | ||
110 | char *prom_argv; | ||
111 | |||
112 | prom_argc = fw_arg0; | 112 | prom_argc = fw_arg0; |
113 | _prom_argv = (int *) fw_arg1; | 113 | prom_argv = (char *) fw_arg1; |
114 | _prom_envp = (int *) fw_arg2; | 114 | _prom_envp = (int *) fw_arg2; |
115 | _prom_memsize = (unsigned long) fw_arg3; | 115 | _prom_memsize = (unsigned long) fw_arg3; |
116 | 116 | ||
117 | board_nmi_handler_setup = mips_nmi_setup; | 117 | board_nmi_handler_setup = mips_nmi_setup; |
118 | board_ejtag_handler_setup = mips_ejtag_setup; | 118 | board_ejtag_handler_setup = mips_ejtag_setup; |
119 | 119 | ||
120 | pr_info("\nLINUX started...\n"); | 120 | if (prom_argc == 1) |
121 | prom_init_cmdline(); | 121 | strlcat(arcs_cmdline, prom_argv, COMMAND_LINE_SIZE); |
122 | |||
122 | configure_platform(); | 123 | configure_platform(); |
123 | prom_meminit(); | 124 | prom_meminit(); |
124 | 125 | ||
diff --git a/arch/mips/powertv/init.h b/arch/mips/powertv/init.h index 7af6bf25008..b194c34ca96 100644 --- a/arch/mips/powertv/init.h +++ b/arch/mips/powertv/init.h | |||
@@ -22,7 +22,5 @@ | |||
22 | 22 | ||
23 | #ifndef _POWERTV_INIT_H | 23 | #ifndef _POWERTV_INIT_H |
24 | #define _POWERTV_INIT_H | 24 | #define _POWERTV_INIT_H |
25 | extern int prom_argc; | ||
26 | extern int *_prom_argv; | ||
27 | extern unsigned long _prom_memsize; | 25 | extern unsigned long _prom_memsize; |
28 | #endif | 26 | #endif |
diff --git a/arch/mips/powertv/memory.c b/arch/mips/powertv/memory.c index 28d06605fff..f49eb3d0358 100644 --- a/arch/mips/powertv/memory.c +++ b/arch/mips/powertv/memory.c | |||
@@ -42,8 +42,6 @@ | |||
42 | #define BOOT_MEM_SIZE KIBIBYTE(256) /* Memory reserved for bldr */ | 42 | #define BOOT_MEM_SIZE KIBIBYTE(256) /* Memory reserved for bldr */ |
43 | #define PHYS_MEM_START 0x10000000 /* Start of physical memory */ | 43 | #define PHYS_MEM_START 0x10000000 /* Start of physical memory */ |
44 | 44 | ||
45 | unsigned long ptv_memsize; | ||
46 | |||
47 | char __initdata cmdline[COMMAND_LINE_SIZE]; | 45 | char __initdata cmdline[COMMAND_LINE_SIZE]; |
48 | 46 | ||
49 | void __init prom_meminit(void) | 47 | void __init prom_meminit(void) |
@@ -87,9 +85,6 @@ void __init prom_meminit(void) | |||
87 | } | 85 | } |
88 | } | 86 | } |
89 | 87 | ||
90 | /* Store memsize for diagnostic purposes */ | ||
91 | ptv_memsize = memsize; | ||
92 | |||
93 | physend = PFN_ALIGN(&_end) - 0x80000000; | 88 | physend = PFN_ALIGN(&_end) - 0x80000000; |
94 | if (memsize > LOW_MEM_MAX) { | 89 | if (memsize > LOW_MEM_MAX) { |
95 | low_mem = LOW_MEM_MAX; | 90 | low_mem = LOW_MEM_MAX; |
diff --git a/arch/mips/powertv/powertv_setup.c b/arch/mips/powertv/powertv_setup.c index bd8ebf128f2..698b1eafbe9 100644 --- a/arch/mips/powertv/powertv_setup.c +++ b/arch/mips/powertv/powertv_setup.c | |||
@@ -64,9 +64,6 @@ | |||
64 | #define REG_SIZE "4" /* In bytes */ | 64 | #define REG_SIZE "4" /* In bytes */ |
65 | #endif | 65 | #endif |
66 | 66 | ||
67 | static struct pt_regs die_regs; | ||
68 | static bool have_die_regs; | ||
69 | |||
70 | static void register_panic_notifier(void); | 67 | static void register_panic_notifier(void); |
71 | static int panic_handler(struct notifier_block *notifier_block, | 68 | static int panic_handler(struct notifier_block *notifier_block, |
72 | unsigned long event, void *cause_string); | 69 | unsigned long event, void *cause_string); |
@@ -218,24 +215,6 @@ static int panic_handler(struct notifier_block *notifier_block, | |||
218 | return NOTIFY_DONE; | 215 | return NOTIFY_DONE; |
219 | } | 216 | } |
220 | 217 | ||
221 | /** | ||
222 | * Platform-specific handling of oops | ||
223 | * @str: Pointer to the oops string | ||
224 | * @regs: Pointer to the oops registers | ||
225 | * All we do here is to save the registers for subsequent printing through | ||
226 | * the panic notifier. | ||
227 | */ | ||
228 | void platform_die(const char *str, const struct pt_regs *regs) | ||
229 | { | ||
230 | /* If we already have saved registers, don't overwrite them as they | ||
231 | * they apply to the initial fault */ | ||
232 | |||
233 | if (!have_die_regs) { | ||
234 | have_die_regs = true; | ||
235 | die_regs = *regs; | ||
236 | } | ||
237 | } | ||
238 | |||
239 | /* Information about the RF MAC address, if one was supplied on the | 218 | /* Information about the RF MAC address, if one was supplied on the |
240 | * command line. */ | 219 | * command line. */ |
241 | static bool have_rfmac; | 220 | static bool have_rfmac; |
diff --git a/arch/mips/powertv/reset.c b/arch/mips/powertv/reset.c index 494c652c984..0007652cb77 100644 --- a/arch/mips/powertv/reset.c +++ b/arch/mips/powertv/reset.c | |||
@@ -28,9 +28,6 @@ | |||
28 | #include <asm/mach-powertv/asic_regs.h> | 28 | #include <asm/mach-powertv/asic_regs.h> |
29 | #include "reset.h" | 29 | #include "reset.h" |
30 | 30 | ||
31 | static void mips_machine_restart(char *command); | ||
32 | static void mips_machine_halt(void); | ||
33 | |||
34 | static void mips_machine_restart(char *command) | 31 | static void mips_machine_restart(char *command) |
35 | { | 32 | { |
36 | #ifdef CONFIG_BOOTLOADER_DRIVER | 33 | #ifdef CONFIG_BOOTLOADER_DRIVER |
@@ -44,22 +41,7 @@ static void mips_machine_restart(char *command) | |||
44 | #endif | 41 | #endif |
45 | } | 42 | } |
46 | 43 | ||
47 | static void mips_machine_halt(void) | ||
48 | { | ||
49 | #ifdef CONFIG_BOOTLOADER_DRIVER | ||
50 | /* | ||
51 | * Call the bootloader's reset function to ensure | ||
52 | * that persistent data is flushed before hard reset | ||
53 | */ | ||
54 | kbldr_SetCauseAndReset(); | ||
55 | #else | ||
56 | writel(0x1, asic_reg_addr(watchdog)); | ||
57 | #endif | ||
58 | } | ||
59 | |||
60 | void mips_reboot_setup(void) | 44 | void mips_reboot_setup(void) |
61 | { | 45 | { |
62 | _machine_restart = mips_machine_restart; | 46 | _machine_restart = mips_machine_restart; |
63 | _machine_halt = mips_machine_halt; | ||
64 | pm_power_off = mips_machine_halt; | ||
65 | } | 47 | } |
diff --git a/arch/mips/powertv/time.c b/arch/mips/powertv/time.c index 1e0a5ef4c8c..9fd7b67f2af 100644 --- a/arch/mips/powertv/time.c +++ b/arch/mips/powertv/time.c | |||
@@ -33,5 +33,4 @@ unsigned int __cpuinit get_c0_compare_int(void) | |||
33 | void __init plat_time_init(void) | 33 | void __init plat_time_init(void) |
34 | { | 34 | { |
35 | powertv_clocksource_init(); | 35 | powertv_clocksource_init(); |
36 | r4k_clockevent_init(); | ||
37 | } | 36 | } |
diff --git a/arch/mips/sgi-ip27/ip27-memory.c b/arch/mips/sgi-ip27/ip27-memory.c index f61c164d1e6..bc1297109cc 100644 --- a/arch/mips/sgi-ip27/ip27-memory.c +++ b/arch/mips/sgi-ip27/ip27-memory.c | |||
@@ -505,5 +505,5 @@ void __init mem_init(void) | |||
505 | (num_physpages - tmp) << (PAGE_SHIFT-10), | 505 | (num_physpages - tmp) << (PAGE_SHIFT-10), |
506 | datasize >> 10, | 506 | datasize >> 10, |
507 | initsize >> 10, | 507 | initsize >> 10, |
508 | (unsigned long) (totalhigh_pages << (PAGE_SHIFT-10))); | 508 | totalhigh_pages << (PAGE_SHIFT-10)); |
509 | } | 509 | } |
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c index 06e801c7e25..e27809b6d04 100644 --- a/arch/mips/txx9/generic/setup.c +++ b/arch/mips/txx9/generic/setup.c | |||
@@ -160,7 +160,6 @@ static void __init prom_init_cmdline(void) | |||
160 | int argc; | 160 | int argc; |
161 | int *argv32; | 161 | int *argv32; |
162 | int i; /* Always ignore the "-c" at argv[0] */ | 162 | int i; /* Always ignore the "-c" at argv[0] */ |
163 | static char builtin[COMMAND_LINE_SIZE] __initdata; | ||
164 | 163 | ||
165 | if (fw_arg0 >= CKSEG0 || fw_arg1 < CKSEG0) { | 164 | if (fw_arg0 >= CKSEG0 || fw_arg1 < CKSEG0) { |
166 | /* | 165 | /* |
@@ -174,20 +173,6 @@ static void __init prom_init_cmdline(void) | |||
174 | argv32 = (int *)fw_arg1; | 173 | argv32 = (int *)fw_arg1; |
175 | } | 174 | } |
176 | 175 | ||
177 | /* ignore all built-in args if any f/w args given */ | ||
178 | /* | ||
179 | * But if built-in strings was started with '+', append them | ||
180 | * to command line args. If built-in was started with '-', | ||
181 | * ignore all f/w args. | ||
182 | */ | ||
183 | builtin[0] = '\0'; | ||
184 | if (arcs_cmdline[0] == '+') | ||
185 | strcpy(builtin, arcs_cmdline + 1); | ||
186 | else if (arcs_cmdline[0] == '-') { | ||
187 | strcpy(builtin, arcs_cmdline + 1); | ||
188 | argc = 0; | ||
189 | } else if (argc <= 1) | ||
190 | strcpy(builtin, arcs_cmdline); | ||
191 | arcs_cmdline[0] = '\0'; | 176 | arcs_cmdline[0] = '\0'; |
192 | 177 | ||
193 | for (i = 1; i < argc; i++) { | 178 | for (i = 1; i < argc; i++) { |
@@ -201,12 +186,6 @@ static void __init prom_init_cmdline(void) | |||
201 | } else | 186 | } else |
202 | strcat(arcs_cmdline, str); | 187 | strcat(arcs_cmdline, str); |
203 | } | 188 | } |
204 | /* append saved builtin args */ | ||
205 | if (builtin[0]) { | ||
206 | if (arcs_cmdline[0]) | ||
207 | strcat(arcs_cmdline, " "); | ||
208 | strcat(arcs_cmdline, builtin); | ||
209 | } | ||
210 | } | 189 | } |
211 | 190 | ||
212 | static int txx9_ic_disable __initdata; | 191 | static int txx9_ic_disable __initdata; |
diff --git a/arch/mips/vr41xx/common/init.c b/arch/mips/vr41xx/common/init.c index 1386e6f081c..23916321cc1 100644 --- a/arch/mips/vr41xx/common/init.c +++ b/arch/mips/vr41xx/common/init.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * init.c, Common initialization routines for NEC VR4100 series. | 2 | * init.c, Common initialization routines for NEC VR4100 series. |
3 | * | 3 | * |
4 | * Copyright (C) 2003-2008 Yoichi Yuasa <yuasa@linux-mips.org> | 4 | * Copyright (C) 2003-2009 Yoichi Yuasa <yuasa@linux-mips.org> |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License as published by | 7 | * it under the terms of the GNU General Public License as published by |
@@ -66,9 +66,9 @@ void __init prom_init(void) | |||
66 | argv = (char **)fw_arg1; | 66 | argv = (char **)fw_arg1; |
67 | 67 | ||
68 | for (i = 1; i < argc; i++) { | 68 | for (i = 1; i < argc; i++) { |
69 | strcat(arcs_cmdline, argv[i]); | 69 | strlcat(arcs_cmdline, argv[i], COMMAND_LINE_SIZE); |
70 | if (i < (argc - 1)) | 70 | if (i < (argc - 1)) |
71 | strcat(arcs_cmdline, " "); | 71 | strlcat(arcs_cmdline, " ", COMMAND_LINE_SIZE); |
72 | } | 72 | } |
73 | } | 73 | } |
74 | 74 | ||
diff --git a/arch/mn10300/Makefile b/arch/mn10300/Makefile index dd0c8ff52a6..ac5c6bdb2f0 100644 --- a/arch/mn10300/Makefile +++ b/arch/mn10300/Makefile | |||
@@ -19,7 +19,7 @@ CCDIR := $(strip $(patsubst %/specs,%,$(CCSPECS))) | |||
19 | KBUILD_CPPFLAGS += -nostdinc -I$(CCDIR)/include | 19 | KBUILD_CPPFLAGS += -nostdinc -I$(CCDIR)/include |
20 | 20 | ||
21 | LDFLAGS := | 21 | LDFLAGS := |
22 | OBJCOPYFLAGS := -O binary -R .note -R .comment -S | 22 | OBJCOPYFLAGS := -O binary -R .note -R .comment -R .GCC-command-line -R .note.gnu.build-id -S |
23 | #LDFLAGS_vmlinux := -Map linkmap.txt | 23 | #LDFLAGS_vmlinux := -Map linkmap.txt |
24 | CHECKFLAGS += | 24 | CHECKFLAGS += |
25 | 25 | ||
diff --git a/arch/mn10300/configs/asb2303_defconfig b/arch/mn10300/configs/asb2303_defconfig index 3acce23708b..441920d8ff5 100644 --- a/arch/mn10300/configs/asb2303_defconfig +++ b/arch/mn10300/configs/asb2303_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.30-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Sat Apr 18 11:13:22 2009 | 4 | # Tue Dec 22 19:26:25 2009 |
5 | # | 5 | # |
6 | CONFIG_MN10300=y | 6 | CONFIG_MN10300=y |
7 | CONFIG_AM33=y | 7 | CONFIG_AM33=y |
@@ -22,6 +22,7 @@ CONFIG_GENERIC_HARDIRQS=y | |||
22 | # CONFIG_HOTPLUG_CPU is not set | 22 | # CONFIG_HOTPLUG_CPU is not set |
23 | CONFIG_HZ=1000 | 23 | CONFIG_HZ=1000 |
24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
25 | CONFIG_CONSTRUCTORS=y | ||
25 | 26 | ||
26 | # | 27 | # |
27 | # General setup | 28 | # General setup |
@@ -43,11 +44,10 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
43 | # | 44 | # |
44 | # RCU Subsystem | 45 | # RCU Subsystem |
45 | # | 46 | # |
46 | CONFIG_CLASSIC_RCU=y | ||
47 | # CONFIG_TREE_RCU is not set | 47 | # CONFIG_TREE_RCU is not set |
48 | # CONFIG_PREEMPT_RCU is not set | 48 | # CONFIG_TREE_PREEMPT_RCU is not set |
49 | CONFIG_TINY_RCU=y | ||
49 | # CONFIG_TREE_RCU_TRACE is not set | 50 | # CONFIG_TREE_RCU_TRACE is not set |
50 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
51 | # CONFIG_IKCONFIG is not set | 51 | # CONFIG_IKCONFIG is not set |
52 | CONFIG_LOG_BUF_SHIFT=14 | 52 | CONFIG_LOG_BUF_SHIFT=14 |
53 | # CONFIG_GROUP_SCHED is not set | 53 | # CONFIG_GROUP_SCHED is not set |
@@ -62,7 +62,6 @@ CONFIG_ANON_INODES=y | |||
62 | CONFIG_EMBEDDED=y | 62 | CONFIG_EMBEDDED=y |
63 | CONFIG_SYSCTL_SYSCALL=y | 63 | CONFIG_SYSCTL_SYSCALL=y |
64 | # CONFIG_KALLSYMS is not set | 64 | # CONFIG_KALLSYMS is not set |
65 | CONFIG_STRIP_ASM_SYMS=y | ||
66 | # CONFIG_HOTPLUG is not set | 65 | # CONFIG_HOTPLUG is not set |
67 | CONFIG_PRINTK=y | 66 | CONFIG_PRINTK=y |
68 | CONFIG_BUG=y | 67 | CONFIG_BUG=y |
@@ -75,14 +74,22 @@ CONFIG_TIMERFD=y | |||
75 | CONFIG_EVENTFD=y | 74 | CONFIG_EVENTFD=y |
76 | CONFIG_SHMEM=y | 75 | CONFIG_SHMEM=y |
77 | CONFIG_AIO=y | 76 | CONFIG_AIO=y |
77 | |||
78 | # | ||
79 | # Kernel Performance Events And Counters | ||
80 | # | ||
78 | # CONFIG_VM_EVENT_COUNTERS is not set | 81 | # CONFIG_VM_EVENT_COUNTERS is not set |
79 | CONFIG_COMPAT_BRK=y | 82 | CONFIG_COMPAT_BRK=y |
80 | CONFIG_SLAB=y | 83 | CONFIG_SLAB=y |
81 | # CONFIG_SLUB is not set | 84 | # CONFIG_SLUB is not set |
82 | # CONFIG_SLOB is not set | 85 | # CONFIG_SLOB is not set |
83 | CONFIG_PROFILING=y | 86 | CONFIG_PROFILING=y |
84 | # CONFIG_MARKERS is not set | ||
85 | CONFIG_HAVE_OPROFILE=y | 87 | CONFIG_HAVE_OPROFILE=y |
88 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
89 | |||
90 | # | ||
91 | # GCOV-based kernel profiling | ||
92 | # | ||
86 | # CONFIG_SLOW_WORK is not set | 93 | # CONFIG_SLOW_WORK is not set |
87 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 94 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
88 | CONFIG_SLABINFO=y | 95 | CONFIG_SLABINFO=y |
@@ -90,6 +97,35 @@ CONFIG_RT_MUTEXES=y | |||
90 | CONFIG_BASE_SMALL=0 | 97 | CONFIG_BASE_SMALL=0 |
91 | # CONFIG_MODULES is not set | 98 | # CONFIG_MODULES is not set |
92 | # CONFIG_BLOCK is not set | 99 | # CONFIG_BLOCK is not set |
100 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
101 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
102 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
103 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
104 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
105 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
106 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
107 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
108 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
109 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
110 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
111 | # CONFIG_INLINE_READ_LOCK is not set | ||
112 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
113 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
114 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
115 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
116 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
117 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
118 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
119 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
120 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
121 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
122 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
123 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
124 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
125 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
126 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
127 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
128 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
93 | # CONFIG_FREEZER is not set | 129 | # CONFIG_FREEZER is not set |
94 | 130 | ||
95 | # | 131 | # |
@@ -145,9 +181,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
145 | CONFIG_ZONE_DMA_FLAG=0 | 181 | CONFIG_ZONE_DMA_FLAG=0 |
146 | CONFIG_NR_QUICK=1 | 182 | CONFIG_NR_QUICK=1 |
147 | CONFIG_VIRT_TO_BUS=y | 183 | CONFIG_VIRT_TO_BUS=y |
148 | CONFIG_UNEVICTABLE_LRU=y | 184 | # CONFIG_KSM is not set |
149 | CONFIG_HAVE_MLOCK=y | 185 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
150 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
151 | 186 | ||
152 | # | 187 | # |
153 | # Power management options | 188 | # Power management options |
@@ -202,6 +237,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
202 | # CONFIG_NETFILTER is not set | 237 | # CONFIG_NETFILTER is not set |
203 | # CONFIG_IP_DCCP is not set | 238 | # CONFIG_IP_DCCP is not set |
204 | # CONFIG_IP_SCTP is not set | 239 | # CONFIG_IP_SCTP is not set |
240 | # CONFIG_RDS is not set | ||
205 | # CONFIG_TIPC is not set | 241 | # CONFIG_TIPC is not set |
206 | # CONFIG_ATM is not set | 242 | # CONFIG_ATM is not set |
207 | # CONFIG_BRIDGE is not set | 243 | # CONFIG_BRIDGE is not set |
@@ -216,6 +252,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
216 | # CONFIG_ECONET is not set | 252 | # CONFIG_ECONET is not set |
217 | # CONFIG_WAN_ROUTER is not set | 253 | # CONFIG_WAN_ROUTER is not set |
218 | # CONFIG_PHONET is not set | 254 | # CONFIG_PHONET is not set |
255 | # CONFIG_IEEE802154 is not set | ||
219 | # CONFIG_NET_SCHED is not set | 256 | # CONFIG_NET_SCHED is not set |
220 | # CONFIG_DCB is not set | 257 | # CONFIG_DCB is not set |
221 | 258 | ||
@@ -341,7 +378,6 @@ CONFIG_MISC_DEVICES=y | |||
341 | # CONFIG_SCSI_DMA is not set | 378 | # CONFIG_SCSI_DMA is not set |
342 | # CONFIG_SCSI_NETLINK is not set | 379 | # CONFIG_SCSI_NETLINK is not set |
343 | CONFIG_NETDEVICES=y | 380 | CONFIG_NETDEVICES=y |
344 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
345 | # CONFIG_DUMMY is not set | 381 | # CONFIG_DUMMY is not set |
346 | # CONFIG_BONDING is not set | 382 | # CONFIG_BONDING is not set |
347 | # CONFIG_MACVLAN is not set | 383 | # CONFIG_MACVLAN is not set |
@@ -362,14 +398,11 @@ CONFIG_SMC91X=y | |||
362 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | 398 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set |
363 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 399 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
364 | # CONFIG_B44 is not set | 400 | # CONFIG_B44 is not set |
401 | # CONFIG_KS8842 is not set | ||
402 | # CONFIG_KS8851_MLL is not set | ||
365 | # CONFIG_NETDEV_1000 is not set | 403 | # CONFIG_NETDEV_1000 is not set |
366 | # CONFIG_NETDEV_10000 is not set | 404 | # CONFIG_NETDEV_10000 is not set |
367 | 405 | # CONFIG_WLAN is not set | |
368 | # | ||
369 | # Wireless LAN | ||
370 | # | ||
371 | # CONFIG_WLAN_PRE80211 is not set | ||
372 | # CONFIG_WLAN_80211 is not set | ||
373 | 406 | ||
374 | # | 407 | # |
375 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 408 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -430,11 +463,15 @@ CONFIG_RTC=y | |||
430 | # CONFIG_TCG_TPM is not set | 463 | # CONFIG_TCG_TPM is not set |
431 | # CONFIG_I2C is not set | 464 | # CONFIG_I2C is not set |
432 | # CONFIG_SPI is not set | 465 | # CONFIG_SPI is not set |
466 | |||
467 | # | ||
468 | # PPS support | ||
469 | # | ||
470 | # CONFIG_PPS is not set | ||
433 | # CONFIG_W1 is not set | 471 | # CONFIG_W1 is not set |
434 | # CONFIG_POWER_SUPPLY is not set | 472 | # CONFIG_POWER_SUPPLY is not set |
435 | # CONFIG_HWMON is not set | 473 | # CONFIG_HWMON is not set |
436 | # CONFIG_THERMAL is not set | 474 | # CONFIG_THERMAL is not set |
437 | # CONFIG_THERMAL_HWMON is not set | ||
438 | # CONFIG_WATCHDOG is not set | 475 | # CONFIG_WATCHDOG is not set |
439 | CONFIG_SSB_POSSIBLE=y | 476 | CONFIG_SSB_POSSIBLE=y |
440 | 477 | ||
@@ -451,22 +488,7 @@ CONFIG_SSB_POSSIBLE=y | |||
451 | # CONFIG_HTC_PASIC3 is not set | 488 | # CONFIG_HTC_PASIC3 is not set |
452 | # CONFIG_MFD_TMIO is not set | 489 | # CONFIG_MFD_TMIO is not set |
453 | # CONFIG_REGULATOR is not set | 490 | # CONFIG_REGULATOR is not set |
454 | 491 | # CONFIG_MEDIA_SUPPORT is not set | |
455 | # | ||
456 | # Multimedia devices | ||
457 | # | ||
458 | |||
459 | # | ||
460 | # Multimedia core support | ||
461 | # | ||
462 | # CONFIG_VIDEO_DEV is not set | ||
463 | # CONFIG_DVB_CORE is not set | ||
464 | # CONFIG_VIDEO_MEDIA is not set | ||
465 | |||
466 | # | ||
467 | # Multimedia drivers | ||
468 | # | ||
469 | # CONFIG_DAB is not set | ||
470 | 492 | ||
471 | # | 493 | # |
472 | # Graphics support | 494 | # Graphics support |
@@ -490,11 +512,17 @@ CONFIG_SSB_POSSIBLE=y | |||
490 | # CONFIG_DMADEVICES is not set | 512 | # CONFIG_DMADEVICES is not set |
491 | # CONFIG_AUXDISPLAY is not set | 513 | # CONFIG_AUXDISPLAY is not set |
492 | # CONFIG_UIO is not set | 514 | # CONFIG_UIO is not set |
515 | |||
516 | # | ||
517 | # TI VLYNQ | ||
518 | # | ||
493 | # CONFIG_STAGING is not set | 519 | # CONFIG_STAGING is not set |
494 | 520 | ||
495 | # | 521 | # |
496 | # File systems | 522 | # File systems |
497 | # | 523 | # |
524 | CONFIG_FILE_LOCKING=y | ||
525 | CONFIG_FSNOTIFY=y | ||
498 | CONFIG_DNOTIFY=y | 526 | CONFIG_DNOTIFY=y |
499 | CONFIG_INOTIFY=y | 527 | CONFIG_INOTIFY=y |
500 | CONFIG_INOTIFY_USER=y | 528 | CONFIG_INOTIFY_USER=y |
@@ -539,6 +567,7 @@ CONFIG_NFS_V3=y | |||
539 | # CONFIG_NFS_V3_ACL is not set | 567 | # CONFIG_NFS_V3_ACL is not set |
540 | # CONFIG_NFS_V4 is not set | 568 | # CONFIG_NFS_V4 is not set |
541 | CONFIG_ROOT_NFS=y | 569 | CONFIG_ROOT_NFS=y |
570 | # CONFIG_NFSD is not set | ||
542 | CONFIG_LOCKD=y | 571 | CONFIG_LOCKD=y |
543 | CONFIG_LOCKD_V4=y | 572 | CONFIG_LOCKD_V4=y |
544 | CONFIG_NFS_COMMON=y | 573 | CONFIG_NFS_COMMON=y |
@@ -561,13 +590,13 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
561 | CONFIG_ENABLE_MUST_CHECK=y | 590 | CONFIG_ENABLE_MUST_CHECK=y |
562 | CONFIG_FRAME_WARN=1024 | 591 | CONFIG_FRAME_WARN=1024 |
563 | CONFIG_MAGIC_SYSRQ=y | 592 | CONFIG_MAGIC_SYSRQ=y |
593 | CONFIG_STRIP_ASM_SYMS=y | ||
564 | # CONFIG_UNUSED_SYMBOLS is not set | 594 | # CONFIG_UNUSED_SYMBOLS is not set |
565 | # CONFIG_DEBUG_FS is not set | 595 | # CONFIG_DEBUG_FS is not set |
566 | # CONFIG_HEADERS_CHECK is not set | 596 | # CONFIG_HEADERS_CHECK is not set |
567 | # CONFIG_DEBUG_KERNEL is not set | 597 | # CONFIG_DEBUG_KERNEL is not set |
568 | # CONFIG_DEBUG_BUGVERBOSE is not set | 598 | CONFIG_DEBUG_BUGVERBOSE=y |
569 | # CONFIG_DEBUG_MEMORY_INIT is not set | 599 | # CONFIG_DEBUG_MEMORY_INIT is not set |
570 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
571 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | 600 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set |
572 | # CONFIG_SAMPLES is not set | 601 | # CONFIG_SAMPLES is not set |
573 | 602 | ||
@@ -577,7 +606,11 @@ CONFIG_MAGIC_SYSRQ=y | |||
577 | # CONFIG_KEYS is not set | 606 | # CONFIG_KEYS is not set |
578 | # CONFIG_SECURITY is not set | 607 | # CONFIG_SECURITY is not set |
579 | # CONFIG_SECURITYFS is not set | 608 | # CONFIG_SECURITYFS is not set |
580 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 609 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
610 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
611 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
612 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
613 | CONFIG_DEFAULT_SECURITY="" | ||
581 | # CONFIG_CRYPTO is not set | 614 | # CONFIG_CRYPTO is not set |
582 | # CONFIG_BINARY_PRINTF is not set | 615 | # CONFIG_BINARY_PRINTF is not set |
583 | 616 | ||
diff --git a/arch/mn10300/include/asm/bitops.h b/arch/mn10300/include/asm/bitops.h index 0b610f482ab..f49ac49e09a 100644 --- a/arch/mn10300/include/asm/bitops.h +++ b/arch/mn10300/include/asm/bitops.h | |||
@@ -165,7 +165,7 @@ static inline __attribute__((const)) | |||
165 | unsigned long __ffs(unsigned long x) | 165 | unsigned long __ffs(unsigned long x) |
166 | { | 166 | { |
167 | int bit; | 167 | int bit; |
168 | asm("bsch %2,%0" : "=r"(bit) : "0"(0), "r"(x & -x)); | 168 | asm("bsch %2,%0" : "=r"(bit) : "0"(0), "r"(x & -x) : "cc"); |
169 | return bit; | 169 | return bit; |
170 | } | 170 | } |
171 | 171 | ||
@@ -177,7 +177,7 @@ static inline __attribute__((const)) | |||
177 | int __ilog2_u32(u32 n) | 177 | int __ilog2_u32(u32 n) |
178 | { | 178 | { |
179 | int bit; | 179 | int bit; |
180 | asm("bsch %2,%0" : "=r"(bit) : "0"(0), "r"(n)); | 180 | asm("bsch %2,%0" : "=r"(bit) : "0"(0), "r"(n) : "cc"); |
181 | return bit; | 181 | return bit; |
182 | } | 182 | } |
183 | 183 | ||
diff --git a/arch/mn10300/include/asm/div64.h b/arch/mn10300/include/asm/div64.h index 3a8329b3e86..34dcb8e6830 100644 --- a/arch/mn10300/include/asm/div64.h +++ b/arch/mn10300/include/asm/div64.h | |||
@@ -72,6 +72,7 @@ unsigned __muldiv64u(unsigned val, unsigned mult, unsigned div) | |||
72 | * MDR = MDR:val%div */ | 72 | * MDR = MDR:val%div */ |
73 | : "=r"(result) | 73 | : "=r"(result) |
74 | : "0"(val), "ir"(mult), "r"(div) | 74 | : "0"(val), "ir"(mult), "r"(div) |
75 | : "cc" | ||
75 | ); | 76 | ); |
76 | 77 | ||
77 | return result; | 78 | return result; |
@@ -92,6 +93,7 @@ signed __muldiv64s(signed val, signed mult, signed div) | |||
92 | * MDR = MDR:val%div */ | 93 | * MDR = MDR:val%div */ |
93 | : "=r"(result) | 94 | : "=r"(result) |
94 | : "0"(val), "ir"(mult), "r"(div) | 95 | : "0"(val), "ir"(mult), "r"(div) |
96 | : "cc" | ||
95 | ); | 97 | ); |
96 | 98 | ||
97 | return result; | 99 | return result; |
diff --git a/arch/mn10300/include/asm/system.h b/arch/mn10300/include/asm/system.h index 8214fb7e7fe..3636c054dcd 100644 --- a/arch/mn10300/include/asm/system.h +++ b/arch/mn10300/include/asm/system.h | |||
@@ -143,6 +143,7 @@ do { \ | |||
143 | " mov %0,epsw \n" \ | 143 | " mov %0,epsw \n" \ |
144 | : "=&d"(tmp) \ | 144 | : "=&d"(tmp) \ |
145 | : "i"(~EPSW_IM), "r"(__mn10300_irq_enabled_epsw) \ | 145 | : "i"(~EPSW_IM), "r"(__mn10300_irq_enabled_epsw) \ |
146 | : "cc" \ | ||
146 | ); \ | 147 | ); \ |
147 | } while (0) | 148 | } while (0) |
148 | 149 | ||
diff --git a/arch/mn10300/include/asm/tlbflush.h b/arch/mn10300/include/asm/tlbflush.h index e0239865abc..1a7e29281c5 100644 --- a/arch/mn10300/include/asm/tlbflush.h +++ b/arch/mn10300/include/asm/tlbflush.h | |||
@@ -22,7 +22,7 @@ do { \ | |||
22 | " mov %0,%1 \n" \ | 22 | " mov %0,%1 \n" \ |
23 | : "=d"(w) \ | 23 | : "=d"(w) \ |
24 | : "m"(MMUCTR), "i"(MMUCTR_IIV|MMUCTR_DIV) \ | 24 | : "m"(MMUCTR), "i"(MMUCTR_IIV|MMUCTR_DIV) \ |
25 | : "memory" \ | 25 | : "cc", "memory" \ |
26 | ); \ | 26 | ); \ |
27 | } while (0) | 27 | } while (0) |
28 | 28 | ||
diff --git a/arch/mn10300/include/asm/uaccess.h b/arch/mn10300/include/asm/uaccess.h index 167e10ff06d..197a7af3dd8 100644 --- a/arch/mn10300/include/asm/uaccess.h +++ b/arch/mn10300/include/asm/uaccess.h | |||
@@ -316,7 +316,7 @@ do { \ | |||
316 | " .previous\n" \ | 316 | " .previous\n" \ |
317 | : "=a"(__from), "=a"(__to), "=r"(size), "=&r"(w)\ | 317 | : "=a"(__from), "=a"(__to), "=r"(size), "=&r"(w)\ |
318 | : "0"(__from), "1"(__to), "2"(size) \ | 318 | : "0"(__from), "1"(__to), "2"(size) \ |
319 | : "memory"); \ | 319 | : "cc", "memory"); \ |
320 | } \ | 320 | } \ |
321 | } while (0) | 321 | } while (0) |
322 | 322 | ||
@@ -352,7 +352,7 @@ do { \ | |||
352 | " .previous\n" \ | 352 | " .previous\n" \ |
353 | : "=a"(__from), "=a"(__to), "=r"(size), "=&r"(w)\ | 353 | : "=a"(__from), "=a"(__to), "=r"(size), "=&r"(w)\ |
354 | : "0"(__from), "1"(__to), "2"(size) \ | 354 | : "0"(__from), "1"(__to), "2"(size) \ |
355 | : "memory"); \ | 355 | : "cc", "memory"); \ |
356 | } \ | 356 | } \ |
357 | } while (0) | 357 | } while (0) |
358 | 358 | ||
diff --git a/arch/mn10300/include/asm/unistd.h b/arch/mn10300/include/asm/unistd.h index 2a983931c11..c05acb95c2a 100644 --- a/arch/mn10300/include/asm/unistd.h +++ b/arch/mn10300/include/asm/unistd.h | |||
@@ -348,10 +348,11 @@ | |||
348 | #define __NR_pwritev 335 | 348 | #define __NR_pwritev 335 |
349 | #define __NR_rt_tgsigqueueinfo 336 | 349 | #define __NR_rt_tgsigqueueinfo 336 |
350 | #define __NR_perf_event_open 337 | 350 | #define __NR_perf_event_open 337 |
351 | #define __NR_recvmmsg 338 | ||
351 | 352 | ||
352 | #ifdef __KERNEL__ | 353 | #ifdef __KERNEL__ |
353 | 354 | ||
354 | #define NR_syscalls 338 | 355 | #define NR_syscalls 339 |
355 | 356 | ||
356 | /* | 357 | /* |
357 | * specify the deprecated syscalls we want to support on this arch | 358 | * specify the deprecated syscalls we want to support on this arch |
diff --git a/arch/mn10300/kernel/entry.S b/arch/mn10300/kernel/entry.S index c9ee6c009d7..88e3e1c3cc2 100644 --- a/arch/mn10300/kernel/entry.S +++ b/arch/mn10300/kernel/entry.S | |||
@@ -724,6 +724,7 @@ ENTRY(sys_call_table) | |||
724 | .long sys_pwritev /* 335 */ | 724 | .long sys_pwritev /* 335 */ |
725 | .long sys_rt_tgsigqueueinfo | 725 | .long sys_rt_tgsigqueueinfo |
726 | .long sys_perf_event_open | 726 | .long sys_perf_event_open |
727 | .long sys_recvmmsg | ||
727 | 728 | ||
728 | 729 | ||
729 | nr_syscalls=(.-sys_call_table)/4 | 730 | nr_syscalls=(.-sys_call_table)/4 |
diff --git a/arch/mn10300/kernel/mn10300-serial.c b/arch/mn10300/kernel/mn10300-serial.c index 229b710fc5d..ef34d5a0f8b 100644 --- a/arch/mn10300/kernel/mn10300-serial.c +++ b/arch/mn10300/kernel/mn10300-serial.c | |||
@@ -380,7 +380,8 @@ static int mask_test_and_clear(volatile u8 *ptr, u8 mask) | |||
380 | u32 epsw; | 380 | u32 epsw; |
381 | asm volatile(" bclr %1,(%2) \n" | 381 | asm volatile(" bclr %1,(%2) \n" |
382 | " mov epsw,%0 \n" | 382 | " mov epsw,%0 \n" |
383 | : "=d"(epsw) : "d"(mask), "a"(ptr)); | 383 | : "=d"(epsw) : "d"(mask), "a"(ptr) |
384 | : "cc", "memory"); | ||
384 | return !(epsw & EPSW_FLAG_Z); | 385 | return !(epsw & EPSW_FLAG_Z); |
385 | } | 386 | } |
386 | 387 | ||
diff --git a/arch/mn10300/kernel/signal.c b/arch/mn10300/kernel/signal.c index a21f43bc68e..717db14c2cc 100644 --- a/arch/mn10300/kernel/signal.c +++ b/arch/mn10300/kernel/signal.c | |||
@@ -264,7 +264,7 @@ static inline void __user *get_sigframe(struct k_sigaction *ka, | |||
264 | 264 | ||
265 | /* this is the X/Open sanctioned signal stack switching. */ | 265 | /* this is the X/Open sanctioned signal stack switching. */ |
266 | if (ka->sa.sa_flags & SA_ONSTACK) { | 266 | if (ka->sa.sa_flags & SA_ONSTACK) { |
267 | if (!on_sig_stack(sp)) | 267 | if (sas_ss_flags(sp) == 0) |
268 | sp = current->sas_ss_sp + current->sas_ss_size; | 268 | sp = current->sas_ss_sp + current->sas_ss_size; |
269 | } | 269 | } |
270 | 270 | ||
diff --git a/arch/mn10300/lib/checksum.c b/arch/mn10300/lib/checksum.c index 274f29ec33c..b6580f5d89e 100644 --- a/arch/mn10300/lib/checksum.c +++ b/arch/mn10300/lib/checksum.c | |||
@@ -22,6 +22,7 @@ static inline unsigned short from32to16(__wsum sum) | |||
22 | " addc 0xffff,%0 \n" | 22 | " addc 0xffff,%0 \n" |
23 | : "=r" (sum) | 23 | : "=r" (sum) |
24 | : "r" (sum << 16), "0" (sum & 0xffff0000) | 24 | : "r" (sum << 16), "0" (sum & 0xffff0000) |
25 | : "cc" | ||
25 | ); | 26 | ); |
26 | return sum >> 16; | 27 | return sum >> 16; |
27 | } | 28 | } |
diff --git a/arch/mn10300/lib/delay.c b/arch/mn10300/lib/delay.c index cce66bc0822..fdf6f710f94 100644 --- a/arch/mn10300/lib/delay.c +++ b/arch/mn10300/lib/delay.c | |||
@@ -28,7 +28,8 @@ void __delay(unsigned long loops) | |||
28 | "2: add -1,%0 \n" | 28 | "2: add -1,%0 \n" |
29 | " bne 2b \n" | 29 | " bne 2b \n" |
30 | : "=&d" (d0) | 30 | : "=&d" (d0) |
31 | : "0" (loops)); | 31 | : "0" (loops) |
32 | : "cc"); | ||
32 | } | 33 | } |
33 | EXPORT_SYMBOL(__delay); | 34 | EXPORT_SYMBOL(__delay); |
34 | 35 | ||
diff --git a/arch/mn10300/lib/usercopy.c b/arch/mn10300/lib/usercopy.c index a75b203059c..7826e6c364e 100644 --- a/arch/mn10300/lib/usercopy.c +++ b/arch/mn10300/lib/usercopy.c | |||
@@ -62,7 +62,7 @@ do { \ | |||
62 | " .previous" \ | 62 | " .previous" \ |
63 | :"=&r"(res), "=r"(count), "=&r"(w) \ | 63 | :"=&r"(res), "=r"(count), "=&r"(w) \ |
64 | :"i"(-EFAULT), "1"(count), "a"(src), "a"(dst) \ | 64 | :"i"(-EFAULT), "1"(count), "a"(src), "a"(dst) \ |
65 | :"memory"); \ | 65 | : "memory", "cc"); \ |
66 | } while (0) | 66 | } while (0) |
67 | 67 | ||
68 | long | 68 | long |
@@ -109,7 +109,7 @@ do { \ | |||
109 | ".previous\n" \ | 109 | ".previous\n" \ |
110 | : "+r"(size), "=&r"(w) \ | 110 | : "+r"(size), "=&r"(w) \ |
111 | : "a"(addr), "d"(0) \ | 111 | : "a"(addr), "d"(0) \ |
112 | : "memory"); \ | 112 | : "memory", "cc"); \ |
113 | } while (0) | 113 | } while (0) |
114 | 114 | ||
115 | unsigned long | 115 | unsigned long |
@@ -161,6 +161,6 @@ long strnlen_user(const char *s, long n) | |||
161 | ".previous\n" | 161 | ".previous\n" |
162 | :"=d"(res), "=&r"(w) | 162 | :"=d"(res), "=&r"(w) |
163 | :"0"(0), "a"(s), "r"(n) | 163 | :"0"(0), "a"(s), "r"(n) |
164 | :"memory"); | 164 | : "memory", "cc"); |
165 | return res; | 165 | return res; |
166 | } | 166 | } |
diff --git a/arch/mn10300/mm/dma-alloc.c b/arch/mn10300/mm/dma-alloc.c index f3649d8f50e..ee82d624b3c 100644 --- a/arch/mn10300/mm/dma-alloc.c +++ b/arch/mn10300/mm/dma-alloc.c | |||
@@ -16,12 +16,24 @@ | |||
16 | #include <linux/pci.h> | 16 | #include <linux/pci.h> |
17 | #include <asm/io.h> | 17 | #include <asm/io.h> |
18 | 18 | ||
19 | static unsigned long pci_sram_allocated = 0xbc000000; | ||
20 | |||
19 | void *dma_alloc_coherent(struct device *dev, size_t size, | 21 | void *dma_alloc_coherent(struct device *dev, size_t size, |
20 | dma_addr_t *dma_handle, int gfp) | 22 | dma_addr_t *dma_handle, int gfp) |
21 | { | 23 | { |
22 | unsigned long addr; | 24 | unsigned long addr; |
23 | void *ret; | 25 | void *ret; |
24 | 26 | ||
27 | printk("dma_alloc_coherent(%s,%zu,,%x)\n", dev_name(dev), size, gfp); | ||
28 | |||
29 | if (0xbe000000 - pci_sram_allocated >= size) { | ||
30 | size = (size + 255) & ~255; | ||
31 | addr = pci_sram_allocated; | ||
32 | pci_sram_allocated += size; | ||
33 | ret = (void *) addr; | ||
34 | goto done; | ||
35 | } | ||
36 | |||
25 | /* ignore region specifiers */ | 37 | /* ignore region specifiers */ |
26 | gfp &= ~(__GFP_DMA | __GFP_HIGHMEM); | 38 | gfp &= ~(__GFP_DMA | __GFP_HIGHMEM); |
27 | 39 | ||
@@ -41,7 +53,9 @@ void *dma_alloc_coherent(struct device *dev, size_t size, | |||
41 | /* write back and evict all cache lines covering this region */ | 53 | /* write back and evict all cache lines covering this region */ |
42 | mn10300_dcache_flush_inv_range2(virt_to_phys((void *) addr), PAGE_SIZE); | 54 | mn10300_dcache_flush_inv_range2(virt_to_phys((void *) addr), PAGE_SIZE); |
43 | 55 | ||
56 | done: | ||
44 | *dma_handle = virt_to_bus((void *) addr); | 57 | *dma_handle = virt_to_bus((void *) addr); |
58 | printk("dma_alloc_coherent() = %p [%x]\n", ret, *dma_handle); | ||
45 | return ret; | 59 | return ret; |
46 | } | 60 | } |
47 | EXPORT_SYMBOL(dma_alloc_coherent); | 61 | EXPORT_SYMBOL(dma_alloc_coherent); |
@@ -51,6 +65,9 @@ void dma_free_coherent(struct device *dev, size_t size, void *vaddr, | |||
51 | { | 65 | { |
52 | unsigned long addr = (unsigned long) vaddr & ~0x20000000; | 66 | unsigned long addr = (unsigned long) vaddr & ~0x20000000; |
53 | 67 | ||
68 | if (addr >= 0x9c000000) | ||
69 | return; | ||
70 | |||
54 | free_pages(addr, get_order(size)); | 71 | free_pages(addr, get_order(size)); |
55 | } | 72 | } |
56 | EXPORT_SYMBOL(dma_free_coherent); | 73 | EXPORT_SYMBOL(dma_free_coherent); |
diff --git a/arch/mn10300/mm/init.c b/arch/mn10300/mm/init.c index ec1420562dc..dd27a9a3515 100644 --- a/arch/mn10300/mm/init.c +++ b/arch/mn10300/mm/init.c | |||
@@ -118,8 +118,7 @@ void __init mem_init(void) | |||
118 | reservedpages << (PAGE_SHIFT - 10), | 118 | reservedpages << (PAGE_SHIFT - 10), |
119 | datasize >> 10, | 119 | datasize >> 10, |
120 | initsize >> 10, | 120 | initsize >> 10, |
121 | (unsigned long) (totalhigh_pages << (PAGE_SHIFT - 10)) | 121 | totalhigh_pages << (PAGE_SHIFT - 10)); |
122 | ); | ||
123 | } | 122 | } |
124 | 123 | ||
125 | /* | 124 | /* |
diff --git a/arch/mn10300/mm/misalignment.c b/arch/mn10300/mm/misalignment.c index 30016251f65..6dffbf97ac2 100644 --- a/arch/mn10300/mm/misalignment.c +++ b/arch/mn10300/mm/misalignment.c | |||
@@ -633,13 +633,13 @@ static int misalignment_addr(unsigned long *registers, unsigned long sp, | |||
633 | goto displace_or_inc; | 633 | goto displace_or_inc; |
634 | case SD24: | 634 | case SD24: |
635 | tmp = disp << 8; | 635 | tmp = disp << 8; |
636 | asm("asr 8,%0" : "=r"(tmp) : "0"(tmp)); | 636 | asm("asr 8,%0" : "=r"(tmp) : "0"(tmp) : "cc"); |
637 | disp = (long) tmp; | 637 | disp = (long) tmp; |
638 | goto displace_or_inc; | 638 | goto displace_or_inc; |
639 | case SIMM4_2: | 639 | case SIMM4_2: |
640 | tmp = opcode >> 4 & 0x0f; | 640 | tmp = opcode >> 4 & 0x0f; |
641 | tmp <<= 28; | 641 | tmp <<= 28; |
642 | asm("asr 28,%0" : "=r"(tmp) : "0"(tmp)); | 642 | asm("asr 28,%0" : "=r"(tmp) : "0"(tmp) : "cc"); |
643 | disp = (long) tmp; | 643 | disp = (long) tmp; |
644 | goto displace_or_inc; | 644 | goto displace_or_inc; |
645 | case IMM8: | 645 | case IMM8: |
diff --git a/arch/mn10300/unit-asb2305/include/unit/serial.h b/arch/mn10300/unit-asb2305/include/unit/serial.h index 3bfc9093878..8086cc092ce 100644 --- a/arch/mn10300/unit-asb2305/include/unit/serial.h +++ b/arch/mn10300/unit-asb2305/include/unit/serial.h | |||
@@ -11,7 +11,7 @@ | |||
11 | #ifndef _ASM_UNIT_SERIAL_H | 11 | #ifndef _ASM_UNIT_SERIAL_H |
12 | #define _ASM_UNIT_SERIAL_H | 12 | #define _ASM_UNIT_SERIAL_H |
13 | 13 | ||
14 | #include <asm/cpu/cpu-regs.h> | 14 | #include <asm/cpu-regs.h> |
15 | #include <proc/irq.h> | 15 | #include <proc/irq.h> |
16 | #include <linux/serial_reg.h> | 16 | #include <linux/serial_reg.h> |
17 | 17 | ||
diff --git a/arch/mn10300/unit-asb2305/include/unit/timex.h b/arch/mn10300/unit-asb2305/include/unit/timex.h index a71c49aa85e..d1c72d59fa9 100644 --- a/arch/mn10300/unit-asb2305/include/unit/timex.h +++ b/arch/mn10300/unit-asb2305/include/unit/timex.h | |||
@@ -15,7 +15,7 @@ | |||
15 | #include <linux/irq.h> | 15 | #include <linux/irq.h> |
16 | #endif /* __ASSEMBLY__ */ | 16 | #endif /* __ASSEMBLY__ */ |
17 | 17 | ||
18 | #include <asm/cpu/timer-regs.h> | 18 | #include <asm/timer-regs.h> |
19 | #include <unit/clock.h> | 19 | #include <unit/clock.h> |
20 | 20 | ||
21 | /* | 21 | /* |
diff --git a/arch/mn10300/unit-asb2305/leds.c b/arch/mn10300/unit-asb2305/leds.c index d345ff9042d..6f8de995402 100644 --- a/arch/mn10300/unit-asb2305/leds.c +++ b/arch/mn10300/unit-asb2305/leds.c | |||
@@ -13,8 +13,8 @@ | |||
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <asm/io.h> | 14 | #include <asm/io.h> |
15 | #include <asm/processor.h> | 15 | #include <asm/processor.h> |
16 | #include <asm/cpu/intctl-regs.h> | 16 | #include <asm/intctl-regs.h> |
17 | #include <asm/cpu/rtc-regs.h> | 17 | #include <asm/rtc-regs.h> |
18 | #include <unit/leds.h> | 18 | #include <unit/leds.h> |
19 | 19 | ||
20 | static const u8 asb2305_led_hex_tbl[16] = { | 20 | static const u8 asb2305_led_hex_tbl[16] = { |
diff --git a/arch/mn10300/unit-asb2305/pci-asb2305.c b/arch/mn10300/unit-asb2305/pci-asb2305.c index d100ca78846..78cd134ddf7 100644 --- a/arch/mn10300/unit-asb2305/pci-asb2305.c +++ b/arch/mn10300/unit-asb2305/pci-asb2305.c | |||
@@ -218,45 +218,6 @@ void __init pcibios_resource_survey(void) | |||
218 | pcibios_allocate_resources(1); | 218 | pcibios_allocate_resources(1); |
219 | } | 219 | } |
220 | 220 | ||
221 | int pcibios_enable_resources(struct pci_dev *dev, int mask) | ||
222 | { | ||
223 | u16 cmd, old_cmd; | ||
224 | int idx; | ||
225 | struct resource *r; | ||
226 | |||
227 | pci_read_config_word(dev, PCI_COMMAND, &cmd); | ||
228 | old_cmd = cmd; | ||
229 | |||
230 | for (idx = 0; idx < 6; idx++) { | ||
231 | /* Only set up the requested stuff */ | ||
232 | if (!(mask & (1 << idx))) | ||
233 | continue; | ||
234 | |||
235 | r = &dev->resource[idx]; | ||
236 | |||
237 | if (!r->start && r->end) { | ||
238 | printk(KERN_ERR | ||
239 | "PCI: Device %s not available because of" | ||
240 | " resource collisions\n", | ||
241 | pci_name(dev)); | ||
242 | return -EINVAL; | ||
243 | } | ||
244 | |||
245 | if (r->flags & IORESOURCE_IO) | ||
246 | cmd |= PCI_COMMAND_IO; | ||
247 | if (r->flags & IORESOURCE_MEM) | ||
248 | cmd |= PCI_COMMAND_MEMORY; | ||
249 | } | ||
250 | |||
251 | if (dev->resource[PCI_ROM_RESOURCE].start) | ||
252 | cmd |= PCI_COMMAND_MEMORY; | ||
253 | |||
254 | if (cmd != old_cmd) | ||
255 | pci_write_config_word(dev, PCI_COMMAND, cmd); | ||
256 | |||
257 | return 0; | ||
258 | } | ||
259 | |||
260 | /* | 221 | /* |
261 | * If we set up a device for bus mastering, we need to check the latency | 222 | * If we set up a device for bus mastering, we need to check the latency |
262 | * timer as certain crappy BIOSes forget to set it properly. | 223 | * timer as certain crappy BIOSes forget to set it properly. |
diff --git a/arch/mn10300/unit-asb2305/pci-asb2305.h b/arch/mn10300/unit-asb2305/pci-asb2305.h index 9763d1ce343..c3fa294b6e2 100644 --- a/arch/mn10300/unit-asb2305/pci-asb2305.h +++ b/arch/mn10300/unit-asb2305/pci-asb2305.h | |||
@@ -34,7 +34,6 @@ extern unsigned int pci_probe; | |||
34 | extern unsigned int pcibios_max_latency; | 34 | extern unsigned int pcibios_max_latency; |
35 | 35 | ||
36 | extern void pcibios_resource_survey(void); | 36 | extern void pcibios_resource_survey(void); |
37 | extern int pcibios_enable_resources(struct pci_dev *dev, int mask); | ||
38 | 37 | ||
39 | /* pci.c */ | 38 | /* pci.c */ |
40 | 39 | ||
diff --git a/arch/mn10300/unit-asb2305/pci.c b/arch/mn10300/unit-asb2305/pci.c index 07dbbcda3b2..2cb7e75ba1c 100644 --- a/arch/mn10300/unit-asb2305/pci.c +++ b/arch/mn10300/unit-asb2305/pci.c | |||
@@ -27,6 +27,29 @@ struct pci_bus *pci_root_bus; | |||
27 | struct pci_ops *pci_root_ops; | 27 | struct pci_ops *pci_root_ops; |
28 | 28 | ||
29 | /* | 29 | /* |
30 | * The accessible PCI window does not cover the entire CPU address space, but | ||
31 | * there are devices we want to access outside of that window, so we need to | ||
32 | * insert specific PCI bus resources instead of using the platform-level bus | ||
33 | * resources directly for the PCI root bus. | ||
34 | * | ||
35 | * These are configured and inserted by pcibios_init() and are attached to the | ||
36 | * root bus by pcibios_fixup_bus(). | ||
37 | */ | ||
38 | static struct resource pci_ioport_resource = { | ||
39 | .name = "PCI IO", | ||
40 | .start = 0xbe000000, | ||
41 | .end = 0xbe03ffff, | ||
42 | .flags = IORESOURCE_IO, | ||
43 | }; | ||
44 | |||
45 | static struct resource pci_iomem_resource = { | ||
46 | .name = "PCI mem", | ||
47 | .start = 0xb8000000, | ||
48 | .end = 0xbbffffff, | ||
49 | .flags = IORESOURCE_MEM, | ||
50 | }; | ||
51 | |||
52 | /* | ||
30 | * Functions for accessing PCI configuration space | 53 | * Functions for accessing PCI configuration space |
31 | */ | 54 | */ |
32 | 55 | ||
@@ -279,7 +302,7 @@ static int __init pci_sanity_check(struct pci_ops *o) | |||
279 | (x == PCI_VENDOR_ID_INTEL || x == PCI_VENDOR_ID_COMPAQ))) | 302 | (x == PCI_VENDOR_ID_INTEL || x == PCI_VENDOR_ID_COMPAQ))) |
280 | return 1; | 303 | return 1; |
281 | 304 | ||
282 | printk(KERN_ERROR "PCI: Sanity check failed\n"); | 305 | printk(KERN_ERR "PCI: Sanity check failed\n"); |
283 | return 0; | 306 | return 0; |
284 | } | 307 | } |
285 | 308 | ||
@@ -297,6 +320,7 @@ static int __init pci_check_direct(void) | |||
297 | printk(KERN_INFO "PCI: Using configuration ampci\n"); | 320 | printk(KERN_INFO "PCI: Using configuration ampci\n"); |
298 | request_mem_region(0xBE040000, 256, "AMPCI bridge"); | 321 | request_mem_region(0xBE040000, 256, "AMPCI bridge"); |
299 | request_mem_region(0xBFFFFFF4, 12, "PCI ampci"); | 322 | request_mem_region(0xBFFFFFF4, 12, "PCI ampci"); |
323 | request_mem_region(0xBC000000, 32 * 1024 * 1024, "PCI SRAM"); | ||
300 | return 0; | 324 | return 0; |
301 | } | 325 | } |
302 | 326 | ||
@@ -358,6 +382,11 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus) | |||
358 | { | 382 | { |
359 | struct pci_dev *dev; | 383 | struct pci_dev *dev; |
360 | 384 | ||
385 | if (bus->number == 0) { | ||
386 | bus->resource[0] = &pci_ioport_resource; | ||
387 | bus->resource[1] = &pci_iomem_resource; | ||
388 | } | ||
389 | |||
361 | if (bus->self) { | 390 | if (bus->self) { |
362 | pci_read_bridge_bases(bus); | 391 | pci_read_bridge_bases(bus); |
363 | pcibios_fixup_device_resources(bus->self); | 392 | pcibios_fixup_device_resources(bus->self); |
@@ -380,6 +409,11 @@ static int __init pcibios_init(void) | |||
380 | iomem_resource.start = 0xA0000000; | 409 | iomem_resource.start = 0xA0000000; |
381 | iomem_resource.end = 0xDFFFFFFF; | 410 | iomem_resource.end = 0xDFFFFFFF; |
382 | 411 | ||
412 | if (insert_resource(&iomem_resource, &pci_iomem_resource) < 0) | ||
413 | panic("Unable to insert PCI IOMEM resource\n"); | ||
414 | if (insert_resource(&ioport_resource, &pci_ioport_resource) < 0) | ||
415 | panic("Unable to insert PCI IOPORT resource\n"); | ||
416 | |||
383 | if (!pci_probe) | 417 | if (!pci_probe) |
384 | return 0; | 418 | return 0; |
385 | 419 | ||
@@ -391,32 +425,11 @@ static int __init pcibios_init(void) | |||
391 | printk(KERN_INFO "PCI: Probing PCI hardware [mempage %08x]\n", | 425 | printk(KERN_INFO "PCI: Probing PCI hardware [mempage %08x]\n", |
392 | MEM_PAGING_REG); | 426 | MEM_PAGING_REG); |
393 | 427 | ||
394 | { | 428 | pci_root_bus = pci_scan_bus(0, &pci_direct_ampci, NULL); |
395 | #if 0 | ||
396 | static struct pci_bus am33_root_bus = { | ||
397 | .children = LIST_HEAD_INIT(am33_root_bus.children), | ||
398 | .devices = LIST_HEAD_INIT(am33_root_bus.devices), | ||
399 | .number = 0, | ||
400 | .secondary = 0, | ||
401 | .resource = { &ioport_resource, &iomem_resource }, | ||
402 | }; | ||
403 | |||
404 | am33_root_bus.ops = pci_root_ops; | ||
405 | list_add_tail(&am33_root_bus.node, &pci_root_buses); | ||
406 | |||
407 | am33_root_bus.subordinate = pci_do_scan_bus(0); | ||
408 | |||
409 | pci_root_bus = &am33_root_bus; | ||
410 | #else | ||
411 | pci_root_bus = pci_scan_bus(0, &pci_direct_ampci, NULL); | ||
412 | #endif | ||
413 | } | ||
414 | 429 | ||
415 | pcibios_irq_init(); | 430 | pcibios_irq_init(); |
416 | pcibios_fixup_irqs(); | 431 | pcibios_fixup_irqs(); |
417 | #if 0 | ||
418 | pcibios_resource_survey(); | 432 | pcibios_resource_survey(); |
419 | #endif | ||
420 | return 0; | 433 | return 0; |
421 | } | 434 | } |
422 | 435 | ||
@@ -440,7 +453,7 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) | |||
440 | { | 453 | { |
441 | int err; | 454 | int err; |
442 | 455 | ||
443 | err = pcibios_enable_resources(dev, mask); | 456 | err = pci_enable_resources(dev, mask); |
444 | if (err == 0) | 457 | if (err == 0) |
445 | pcibios_enable_irq(dev); | 458 | pcibios_enable_irq(dev); |
446 | return err; | 459 | return err; |
@@ -455,6 +468,7 @@ static void __init unit_disable_pcnet(struct pci_bus *bus, struct pci_ops *o) | |||
455 | 468 | ||
456 | bus->number = 0; | 469 | bus->number = 0; |
457 | 470 | ||
471 | o->read (bus, PCI_DEVFN(2, 0), PCI_VENDOR_ID, 4, &x); | ||
458 | o->read (bus, PCI_DEVFN(2, 0), PCI_COMMAND, 2, &x); | 472 | o->read (bus, PCI_DEVFN(2, 0), PCI_COMMAND, 2, &x); |
459 | x |= PCI_COMMAND_MASTER | | 473 | x |= PCI_COMMAND_MASTER | |
460 | PCI_COMMAND_IO | PCI_COMMAND_MEMORY | | 474 | PCI_COMMAND_IO | PCI_COMMAND_MEMORY | |
diff --git a/arch/mn10300/unit-asb2305/unit-init.c b/arch/mn10300/unit-asb2305/unit-init.c index 1c452cc3f6e..a76c8e0ab90 100644 --- a/arch/mn10300/unit-asb2305/unit-init.c +++ b/arch/mn10300/unit-asb2305/unit-init.c | |||
@@ -15,9 +15,8 @@ | |||
15 | #include <asm/io.h> | 15 | #include <asm/io.h> |
16 | #include <asm/setup.h> | 16 | #include <asm/setup.h> |
17 | #include <asm/processor.h> | 17 | #include <asm/processor.h> |
18 | #include <asm/cpu/intctl-regs.h> | 18 | #include <asm/intctl-regs.h> |
19 | #include <asm/cpu/rtc-regs.h> | 19 | #include <asm/serial-regs.h> |
20 | #include <asm/cpu/serial-regs.h> | ||
21 | #include <unit/serial.h> | 20 | #include <unit/serial.h> |
22 | 21 | ||
23 | /* | 22 | /* |
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper index 390512ae7f8..f4594ed09a2 100755 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper | |||
@@ -43,6 +43,9 @@ gzip=.gz | |||
43 | # cross-compilation prefix | 43 | # cross-compilation prefix |
44 | CROSS= | 44 | CROSS= |
45 | 45 | ||
46 | # mkimage wrapper script | ||
47 | MKIMAGE=$srctree/scripts/mkuboot.sh | ||
48 | |||
46 | # directory for object and other files used by this script | 49 | # directory for object and other files used by this script |
47 | object=arch/powerpc/boot | 50 | object=arch/powerpc/boot |
48 | objbin=$object | 51 | objbin=$object |
@@ -267,7 +270,7 @@ membase=`${CROSS}objdump -p "$kernel" | grep -m 1 LOAD | awk '{print $7}'` | |||
267 | case "$platform" in | 270 | case "$platform" in |
268 | uboot) | 271 | uboot) |
269 | rm -f "$ofile" | 272 | rm -f "$ofile" |
270 | mkimage -A ppc -O linux -T kernel -C gzip -a $membase -e $membase \ | 273 | ${MKIMAGE} -A ppc -O linux -T kernel -C gzip -a $membase -e $membase \ |
271 | $uboot_version -d "$vmz" "$ofile" | 274 | $uboot_version -d "$vmz" "$ofile" |
272 | if [ -z "$cacheit" ]; then | 275 | if [ -z "$cacheit" ]; then |
273 | rm -f "$vmz" | 276 | rm -f "$vmz" |
@@ -327,7 +330,7 @@ coff) | |||
327 | ;; | 330 | ;; |
328 | cuboot*) | 331 | cuboot*) |
329 | gzip -f -9 "$ofile" | 332 | gzip -f -9 "$ofile" |
330 | mkimage -A ppc -O linux -T kernel -C gzip -a "$base" -e "$entry" \ | 333 | ${MKIMAGE} -A ppc -O linux -T kernel -C gzip -a "$base" -e "$entry" \ |
331 | $uboot_version -d "$ofile".gz "$ofile" | 334 | $uboot_version -d "$ofile".gz "$ofile" |
332 | ;; | 335 | ;; |
333 | treeboot*) | 336 | treeboot*) |
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig index 0396ce7bffc..ff9bdb28197 100644 --- a/arch/powerpc/configs/52xx/cm5200_defconfig +++ b/arch/powerpc/configs/52xx/cm5200_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc4 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Oct 15 10:33:22 2009 | 4 | # Wed Dec 30 14:45:07 2009 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -58,6 +59,7 @@ CONFIG_AUDIT_ARCH=y | |||
58 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | 60 | CONFIG_DTC=y |
60 | CONFIG_DEFAULT_UIMAGE=y | 61 | CONFIG_DEFAULT_UIMAGE=y |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
61 | # CONFIG_PPC_DCR_NATIVE is not set | 63 | # CONFIG_PPC_DCR_NATIVE is not set |
62 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
63 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -85,6 +87,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
85 | # | 87 | # |
86 | CONFIG_TREE_RCU=y | 88 | CONFIG_TREE_RCU=y |
87 | # CONFIG_TREE_PREEMPT_RCU is not set | 89 | # CONFIG_TREE_PREEMPT_RCU is not set |
90 | # CONFIG_TINY_RCU is not set | ||
88 | # CONFIG_RCU_TRACE is not set | 91 | # CONFIG_RCU_TRACE is not set |
89 | CONFIG_RCU_FANOUT=32 | 92 | CONFIG_RCU_FANOUT=32 |
90 | # CONFIG_RCU_FANOUT_EXACT is not set | 93 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -166,14 +169,41 @@ CONFIG_LBDAF=y | |||
166 | # IO Schedulers | 169 | # IO Schedulers |
167 | # | 170 | # |
168 | CONFIG_IOSCHED_NOOP=y | 171 | CONFIG_IOSCHED_NOOP=y |
169 | CONFIG_IOSCHED_AS=y | ||
170 | CONFIG_IOSCHED_DEADLINE=y | 172 | CONFIG_IOSCHED_DEADLINE=y |
171 | CONFIG_IOSCHED_CFQ=y | 173 | CONFIG_IOSCHED_CFQ=y |
172 | CONFIG_DEFAULT_AS=y | ||
173 | # CONFIG_DEFAULT_DEADLINE is not set | 174 | # CONFIG_DEFAULT_DEADLINE is not set |
174 | # CONFIG_DEFAULT_CFQ is not set | 175 | CONFIG_DEFAULT_CFQ=y |
175 | # CONFIG_DEFAULT_NOOP is not set | 176 | # CONFIG_DEFAULT_NOOP is not set |
176 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 177 | CONFIG_DEFAULT_IOSCHED="cfq" |
178 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
179 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
180 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
181 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
182 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
183 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
184 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
185 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
186 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
187 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
188 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
189 | # CONFIG_INLINE_READ_LOCK is not set | ||
190 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
191 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
192 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
193 | CONFIG_INLINE_READ_UNLOCK=y | ||
194 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
195 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
196 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
197 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
198 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
199 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
200 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
201 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
202 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
203 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
204 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
205 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
206 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
177 | # CONFIG_FREEZER is not set | 207 | # CONFIG_FREEZER is not set |
178 | 208 | ||
179 | # | 209 | # |
@@ -189,6 +219,7 @@ CONFIG_PPC_MPC5200_SIMPLE=y | |||
189 | # CONFIG_PPC_MEDIA5200 is not set | 219 | # CONFIG_PPC_MEDIA5200 is not set |
190 | # CONFIG_PPC_MPC5200_BUGFIX is not set | 220 | # CONFIG_PPC_MPC5200_BUGFIX is not set |
191 | # CONFIG_PPC_MPC5200_GPIO is not set | 221 | # CONFIG_PPC_MPC5200_GPIO is not set |
222 | # CONFIG_PPC_MPC5200_LPBFIFO is not set | ||
192 | # CONFIG_PPC_PMAC is not set | 223 | # CONFIG_PPC_PMAC is not set |
193 | # CONFIG_PPC_CELL is not set | 224 | # CONFIG_PPC_CELL is not set |
194 | # CONFIG_PPC_CELL_NATIVE is not set | 225 | # CONFIG_PPC_CELL_NATIVE is not set |
@@ -243,6 +274,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
243 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 274 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
244 | # CONFIG_KEXEC is not set | 275 | # CONFIG_KEXEC is not set |
245 | # CONFIG_CRASH_DUMP is not set | 276 | # CONFIG_CRASH_DUMP is not set |
277 | CONFIG_SPARSE_IRQ=y | ||
246 | CONFIG_MAX_ACTIVE_REGIONS=32 | 278 | CONFIG_MAX_ACTIVE_REGIONS=32 |
247 | CONFIG_ARCH_FLATMEM_ENABLE=y | 279 | CONFIG_ARCH_FLATMEM_ENABLE=y |
248 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 280 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -259,8 +291,6 @@ CONFIG_MIGRATION=y | |||
259 | CONFIG_ZONE_DMA_FLAG=1 | 291 | CONFIG_ZONE_DMA_FLAG=1 |
260 | CONFIG_BOUNCE=y | 292 | CONFIG_BOUNCE=y |
261 | CONFIG_VIRT_TO_BUS=y | 293 | CONFIG_VIRT_TO_BUS=y |
262 | CONFIG_HAVE_MLOCK=y | ||
263 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
264 | # CONFIG_KSM is not set | 294 | # CONFIG_KSM is not set |
265 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 295 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
266 | CONFIG_PPC_4K_PAGES=y | 296 | CONFIG_PPC_4K_PAGES=y |
@@ -273,6 +303,7 @@ CONFIG_PROC_DEVICETREE=y | |||
273 | CONFIG_EXTRA_TARGETS="" | 303 | CONFIG_EXTRA_TARGETS="" |
274 | CONFIG_PM=y | 304 | CONFIG_PM=y |
275 | # CONFIG_PM_DEBUG is not set | 305 | # CONFIG_PM_DEBUG is not set |
306 | # CONFIG_HIBERNATION is not set | ||
276 | # CONFIG_PM_RUNTIME is not set | 307 | # CONFIG_PM_RUNTIME is not set |
277 | CONFIG_SECCOMP=y | 308 | CONFIG_SECCOMP=y |
278 | CONFIG_ISA_DMA_API=y | 309 | CONFIG_ISA_DMA_API=y |
@@ -378,7 +409,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
378 | # CONFIG_IRDA is not set | 409 | # CONFIG_IRDA is not set |
379 | # CONFIG_BT is not set | 410 | # CONFIG_BT is not set |
380 | # CONFIG_AF_RXRPC is not set | 411 | # CONFIG_AF_RXRPC is not set |
381 | # CONFIG_WIRELESS is not set | 412 | CONFIG_WIRELESS=y |
413 | # CONFIG_CFG80211 is not set | ||
414 | # CONFIG_LIB80211 is not set | ||
415 | |||
416 | # | ||
417 | # CFG80211 needs to be enabled for MAC80211 | ||
418 | # | ||
382 | # CONFIG_WIMAX is not set | 419 | # CONFIG_WIMAX is not set |
383 | # CONFIG_RFKILL is not set | 420 | # CONFIG_RFKILL is not set |
384 | # CONFIG_NET_9P is not set | 421 | # CONFIG_NET_9P is not set |
@@ -489,6 +526,10 @@ CONFIG_BLK_DEV=y | |||
489 | # CONFIG_BLK_DEV_COW_COMMON is not set | 526 | # CONFIG_BLK_DEV_COW_COMMON is not set |
490 | CONFIG_BLK_DEV_LOOP=y | 527 | CONFIG_BLK_DEV_LOOP=y |
491 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 528 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
529 | |||
530 | # | ||
531 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
532 | # | ||
492 | # CONFIG_BLK_DEV_NBD is not set | 533 | # CONFIG_BLK_DEV_NBD is not set |
493 | # CONFIG_BLK_DEV_UB is not set | 534 | # CONFIG_BLK_DEV_UB is not set |
494 | CONFIG_BLK_DEV_RAM=y | 535 | CONFIG_BLK_DEV_RAM=y |
@@ -587,8 +628,8 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
587 | # CONFIG_NETDEV_1000 is not set | 628 | # CONFIG_NETDEV_1000 is not set |
588 | # CONFIG_NETDEV_10000 is not set | 629 | # CONFIG_NETDEV_10000 is not set |
589 | CONFIG_WLAN=y | 630 | CONFIG_WLAN=y |
590 | # CONFIG_WLAN_PRE80211 is not set | 631 | # CONFIG_USB_ZD1201 is not set |
591 | # CONFIG_WLAN_80211 is not set | 632 | # CONFIG_HOSTAP is not set |
592 | 633 | ||
593 | # | 634 | # |
594 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 635 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -643,6 +684,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
643 | CONFIG_SERIAL_MPC52xx=y | 684 | CONFIG_SERIAL_MPC52xx=y |
644 | CONFIG_SERIAL_MPC52xx_CONSOLE=y | 685 | CONFIG_SERIAL_MPC52xx_CONSOLE=y |
645 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=57600 | 686 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=57600 |
687 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
646 | CONFIG_UNIX98_PTYS=y | 688 | CONFIG_UNIX98_PTYS=y |
647 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 689 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
648 | CONFIG_LEGACY_PTYS=y | 690 | CONFIG_LEGACY_PTYS=y |
@@ -688,7 +730,6 @@ CONFIG_I2C_MPC=y | |||
688 | # | 730 | # |
689 | # Miscellaneous I2C Chip support | 731 | # Miscellaneous I2C Chip support |
690 | # | 732 | # |
691 | # CONFIG_DS1682 is not set | ||
692 | # CONFIG_SENSORS_TSL2550 is not set | 733 | # CONFIG_SENSORS_TSL2550 is not set |
693 | # CONFIG_I2C_DEBUG_CORE is not set | 734 | # CONFIG_I2C_DEBUG_CORE is not set |
694 | # CONFIG_I2C_DEBUG_ALGO is not set | 735 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -735,11 +776,13 @@ CONFIG_SSB_POSSIBLE=y | |||
735 | # CONFIG_TWL4030_CORE is not set | 776 | # CONFIG_TWL4030_CORE is not set |
736 | # CONFIG_MFD_TMIO is not set | 777 | # CONFIG_MFD_TMIO is not set |
737 | # CONFIG_PMIC_DA903X is not set | 778 | # CONFIG_PMIC_DA903X is not set |
779 | # CONFIG_PMIC_ADP5520 is not set | ||
738 | # CONFIG_MFD_WM8400 is not set | 780 | # CONFIG_MFD_WM8400 is not set |
739 | # CONFIG_MFD_WM831X is not set | 781 | # CONFIG_MFD_WM831X is not set |
740 | # CONFIG_MFD_WM8350_I2C is not set | 782 | # CONFIG_MFD_WM8350_I2C is not set |
741 | # CONFIG_MFD_PCF50633 is not set | 783 | # CONFIG_MFD_PCF50633 is not set |
742 | # CONFIG_AB3100_CORE is not set | 784 | # CONFIG_AB3100_CORE is not set |
785 | # CONFIG_MFD_88PM8607 is not set | ||
743 | # CONFIG_REGULATOR is not set | 786 | # CONFIG_REGULATOR is not set |
744 | # CONFIG_MEDIA_SUPPORT is not set | 787 | # CONFIG_MEDIA_SUPPORT is not set |
745 | 788 | ||
@@ -797,7 +840,6 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | |||
797 | # CONFIG_USB_SL811_HCD is not set | 840 | # CONFIG_USB_SL811_HCD is not set |
798 | # CONFIG_USB_R8A66597_HCD is not set | 841 | # CONFIG_USB_R8A66597_HCD is not set |
799 | # CONFIG_USB_HWA_HCD is not set | 842 | # CONFIG_USB_HWA_HCD is not set |
800 | # CONFIG_USB_MUSB_HDRC is not set | ||
801 | 843 | ||
802 | # | 844 | # |
803 | # USB Device Class drivers | 845 | # USB Device Class drivers |
@@ -1137,6 +1179,7 @@ CONFIG_SCHED_DEBUG=y | |||
1137 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 1179 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
1138 | # CONFIG_FAULT_INJECTION is not set | 1180 | # CONFIG_FAULT_INJECTION is not set |
1139 | # CONFIG_LATENCYTOP is not set | 1181 | # CONFIG_LATENCYTOP is not set |
1182 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1140 | # CONFIG_DEBUG_PAGEALLOC is not set | 1183 | # CONFIG_DEBUG_PAGEALLOC is not set |
1141 | CONFIG_HAVE_FUNCTION_TRACER=y | 1184 | CONFIG_HAVE_FUNCTION_TRACER=y |
1142 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1185 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1180,7 +1223,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1180 | # CONFIG_KEYS is not set | 1223 | # CONFIG_KEYS is not set |
1181 | # CONFIG_SECURITY is not set | 1224 | # CONFIG_SECURITY is not set |
1182 | # CONFIG_SECURITYFS is not set | 1225 | # CONFIG_SECURITYFS is not set |
1183 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1226 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1227 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1228 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1229 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1230 | CONFIG_DEFAULT_SECURITY="" | ||
1184 | CONFIG_CRYPTO=y | 1231 | CONFIG_CRYPTO=y |
1185 | 1232 | ||
1186 | # | 1233 | # |
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig index f5c07fd7223..7b3f4d0ed40 100644 --- a/arch/powerpc/configs/52xx/lite5200b_defconfig +++ b/arch/powerpc/configs/52xx/lite5200b_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc4 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Oct 15 10:33:24 2009 | 4 | # Wed Dec 30 14:45:09 2009 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -58,6 +59,7 @@ CONFIG_AUDIT_ARCH=y | |||
58 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | 60 | CONFIG_DTC=y |
60 | CONFIG_DEFAULT_UIMAGE=y | 61 | CONFIG_DEFAULT_UIMAGE=y |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
61 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 63 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
62 | # CONFIG_PPC_DCR_NATIVE is not set | 64 | # CONFIG_PPC_DCR_NATIVE is not set |
63 | # CONFIG_PPC_DCR_MMIO is not set | 65 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -86,6 +88,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
86 | # | 88 | # |
87 | CONFIG_TREE_RCU=y | 89 | CONFIG_TREE_RCU=y |
88 | # CONFIG_TREE_PREEMPT_RCU is not set | 90 | # CONFIG_TREE_PREEMPT_RCU is not set |
91 | # CONFIG_TINY_RCU is not set | ||
89 | # CONFIG_RCU_TRACE is not set | 92 | # CONFIG_RCU_TRACE is not set |
90 | CONFIG_RCU_FANOUT=32 | 93 | CONFIG_RCU_FANOUT=32 |
91 | # CONFIG_RCU_FANOUT_EXACT is not set | 94 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -173,14 +176,41 @@ CONFIG_LBDAF=y | |||
173 | # IO Schedulers | 176 | # IO Schedulers |
174 | # | 177 | # |
175 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
176 | CONFIG_IOSCHED_AS=y | ||
177 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
178 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
179 | CONFIG_DEFAULT_AS=y | ||
180 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
181 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
182 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
183 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
184 | CONFIG_FREEZER=y | 214 | CONFIG_FREEZER=y |
185 | 215 | ||
186 | # | 216 | # |
@@ -196,6 +226,7 @@ CONFIG_PPC_LITE5200=y | |||
196 | # CONFIG_PPC_MEDIA5200 is not set | 226 | # CONFIG_PPC_MEDIA5200 is not set |
197 | # CONFIG_PPC_MPC5200_BUGFIX is not set | 227 | # CONFIG_PPC_MPC5200_BUGFIX is not set |
198 | # CONFIG_PPC_MPC5200_GPIO is not set | 228 | # CONFIG_PPC_MPC5200_GPIO is not set |
229 | # CONFIG_PPC_MPC5200_LPBFIFO is not set | ||
199 | # CONFIG_PPC_PMAC is not set | 230 | # CONFIG_PPC_PMAC is not set |
200 | # CONFIG_PPC_CELL is not set | 231 | # CONFIG_PPC_CELL is not set |
201 | # CONFIG_PPC_CELL_NATIVE is not set | 232 | # CONFIG_PPC_CELL_NATIVE is not set |
@@ -252,6 +283,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
252 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
253 | # CONFIG_KEXEC is not set | 284 | # CONFIG_KEXEC is not set |
254 | # CONFIG_CRASH_DUMP is not set | 285 | # CONFIG_CRASH_DUMP is not set |
286 | CONFIG_SPARSE_IRQ=y | ||
255 | CONFIG_MAX_ACTIVE_REGIONS=32 | 287 | CONFIG_MAX_ACTIVE_REGIONS=32 |
256 | CONFIG_ARCH_FLATMEM_ENABLE=y | 288 | CONFIG_ARCH_FLATMEM_ENABLE=y |
257 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 289 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -268,8 +300,6 @@ CONFIG_MIGRATION=y | |||
268 | CONFIG_ZONE_DMA_FLAG=1 | 300 | CONFIG_ZONE_DMA_FLAG=1 |
269 | CONFIG_BOUNCE=y | 301 | CONFIG_BOUNCE=y |
270 | CONFIG_VIRT_TO_BUS=y | 302 | CONFIG_VIRT_TO_BUS=y |
271 | CONFIG_HAVE_MLOCK=y | ||
272 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
273 | # CONFIG_KSM is not set | 303 | # CONFIG_KSM is not set |
274 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 304 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
275 | CONFIG_PPC_4K_PAGES=y | 305 | CONFIG_PPC_4K_PAGES=y |
@@ -285,6 +315,7 @@ CONFIG_PM=y | |||
285 | CONFIG_PM_SLEEP=y | 315 | CONFIG_PM_SLEEP=y |
286 | CONFIG_SUSPEND=y | 316 | CONFIG_SUSPEND=y |
287 | CONFIG_SUSPEND_FREEZER=y | 317 | CONFIG_SUSPEND_FREEZER=y |
318 | # CONFIG_HIBERNATION is not set | ||
288 | # CONFIG_PM_RUNTIME is not set | 319 | # CONFIG_PM_RUNTIME is not set |
289 | CONFIG_SECCOMP=y | 320 | CONFIG_SECCOMP=y |
290 | CONFIG_ISA_DMA_API=y | 321 | CONFIG_ISA_DMA_API=y |
@@ -398,7 +429,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
398 | # CONFIG_IRDA is not set | 429 | # CONFIG_IRDA is not set |
399 | # CONFIG_BT is not set | 430 | # CONFIG_BT is not set |
400 | # CONFIG_AF_RXRPC is not set | 431 | # CONFIG_AF_RXRPC is not set |
401 | # CONFIG_WIRELESS is not set | 432 | CONFIG_WIRELESS=y |
433 | # CONFIG_CFG80211 is not set | ||
434 | # CONFIG_LIB80211 is not set | ||
435 | |||
436 | # | ||
437 | # CFG80211 needs to be enabled for MAC80211 | ||
438 | # | ||
402 | # CONFIG_WIMAX is not set | 439 | # CONFIG_WIMAX is not set |
403 | # CONFIG_RFKILL is not set | 440 | # CONFIG_RFKILL is not set |
404 | # CONFIG_NET_9P is not set | 441 | # CONFIG_NET_9P is not set |
@@ -433,6 +470,10 @@ CONFIG_BLK_DEV=y | |||
433 | # CONFIG_BLK_DEV_COW_COMMON is not set | 470 | # CONFIG_BLK_DEV_COW_COMMON is not set |
434 | CONFIG_BLK_DEV_LOOP=y | 471 | CONFIG_BLK_DEV_LOOP=y |
435 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 472 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
473 | |||
474 | # | ||
475 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
476 | # | ||
436 | # CONFIG_BLK_DEV_NBD is not set | 477 | # CONFIG_BLK_DEV_NBD is not set |
437 | # CONFIG_BLK_DEV_SX8 is not set | 478 | # CONFIG_BLK_DEV_SX8 is not set |
438 | CONFIG_BLK_DEV_RAM=y | 479 | CONFIG_BLK_DEV_RAM=y |
@@ -443,6 +484,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
443 | # CONFIG_ATA_OVER_ETH is not set | 484 | # CONFIG_ATA_OVER_ETH is not set |
444 | # CONFIG_BLK_DEV_HD is not set | 485 | # CONFIG_BLK_DEV_HD is not set |
445 | CONFIG_MISC_DEVICES=y | 486 | CONFIG_MISC_DEVICES=y |
487 | # CONFIG_AD525X_DPOT is not set | ||
446 | # CONFIG_PHANTOM is not set | 488 | # CONFIG_PHANTOM is not set |
447 | # CONFIG_SGI_IOC4 is not set | 489 | # CONFIG_SGI_IOC4 is not set |
448 | # CONFIG_TIFM_CORE is not set | 490 | # CONFIG_TIFM_CORE is not set |
@@ -450,6 +492,7 @@ CONFIG_MISC_DEVICES=y | |||
450 | # CONFIG_ENCLOSURE_SERVICES is not set | 492 | # CONFIG_ENCLOSURE_SERVICES is not set |
451 | # CONFIG_HP_ILO is not set | 493 | # CONFIG_HP_ILO is not set |
452 | # CONFIG_ISL29003 is not set | 494 | # CONFIG_ISL29003 is not set |
495 | # CONFIG_DS1682 is not set | ||
453 | # CONFIG_C2PORT is not set | 496 | # CONFIG_C2PORT is not set |
454 | 497 | ||
455 | # | 498 | # |
@@ -502,7 +545,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
502 | # CONFIG_SCSI_BNX2_ISCSI is not set | 545 | # CONFIG_SCSI_BNX2_ISCSI is not set |
503 | # CONFIG_BE2ISCSI is not set | 546 | # CONFIG_BE2ISCSI is not set |
504 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 547 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
548 | # CONFIG_SCSI_HPSA is not set | ||
505 | # CONFIG_SCSI_3W_9XXX is not set | 549 | # CONFIG_SCSI_3W_9XXX is not set |
550 | # CONFIG_SCSI_3W_SAS is not set | ||
506 | # CONFIG_SCSI_ACARD is not set | 551 | # CONFIG_SCSI_ACARD is not set |
507 | # CONFIG_SCSI_AACRAID is not set | 552 | # CONFIG_SCSI_AACRAID is not set |
508 | # CONFIG_SCSI_AIC7XXX is not set | 553 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -541,6 +586,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
541 | # CONFIG_SCSI_NSP32 is not set | 586 | # CONFIG_SCSI_NSP32 is not set |
542 | # CONFIG_SCSI_DEBUG is not set | 587 | # CONFIG_SCSI_DEBUG is not set |
543 | # CONFIG_SCSI_PMCRAID is not set | 588 | # CONFIG_SCSI_PMCRAID is not set |
589 | # CONFIG_SCSI_PM8001 is not set | ||
544 | # CONFIG_SCSI_SRP is not set | 590 | # CONFIG_SCSI_SRP is not set |
545 | # CONFIG_SCSI_BFA_FC is not set | 591 | # CONFIG_SCSI_BFA_FC is not set |
546 | # CONFIG_SCSI_DH is not set | 592 | # CONFIG_SCSI_DH is not set |
@@ -596,15 +642,16 @@ CONFIG_PATA_MPC52xx=y | |||
596 | # CONFIG_PATA_NS87415 is not set | 642 | # CONFIG_PATA_NS87415 is not set |
597 | # CONFIG_PATA_OPTI is not set | 643 | # CONFIG_PATA_OPTI is not set |
598 | # CONFIG_PATA_OPTIDMA is not set | 644 | # CONFIG_PATA_OPTIDMA is not set |
645 | # CONFIG_PATA_PDC2027X is not set | ||
599 | # CONFIG_PATA_PDC_OLD is not set | 646 | # CONFIG_PATA_PDC_OLD is not set |
600 | # CONFIG_PATA_RADISYS is not set | 647 | # CONFIG_PATA_RADISYS is not set |
601 | # CONFIG_PATA_RDC is not set | 648 | # CONFIG_PATA_RDC is not set |
602 | # CONFIG_PATA_RZ1000 is not set | 649 | # CONFIG_PATA_RZ1000 is not set |
603 | # CONFIG_PATA_SC1200 is not set | 650 | # CONFIG_PATA_SC1200 is not set |
604 | # CONFIG_PATA_SERVERWORKS is not set | 651 | # CONFIG_PATA_SERVERWORKS is not set |
605 | # CONFIG_PATA_PDC2027X is not set | ||
606 | # CONFIG_PATA_SIL680 is not set | 652 | # CONFIG_PATA_SIL680 is not set |
607 | # CONFIG_PATA_SIS is not set | 653 | # CONFIG_PATA_SIS is not set |
654 | # CONFIG_PATA_TOSHIBA is not set | ||
608 | # CONFIG_PATA_VIA is not set | 655 | # CONFIG_PATA_VIA is not set |
609 | # CONFIG_PATA_WINBOND is not set | 656 | # CONFIG_PATA_WINBOND is not set |
610 | # CONFIG_PATA_PLATFORM is not set | 657 | # CONFIG_PATA_PLATFORM is not set |
@@ -726,8 +773,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
726 | # CONFIG_BE2NET is not set | 773 | # CONFIG_BE2NET is not set |
727 | # CONFIG_TR is not set | 774 | # CONFIG_TR is not set |
728 | CONFIG_WLAN=y | 775 | CONFIG_WLAN=y |
729 | # CONFIG_WLAN_PRE80211 is not set | 776 | # CONFIG_AIRO is not set |
730 | # CONFIG_WLAN_80211 is not set | 777 | # CONFIG_ATMEL is not set |
778 | # CONFIG_PRISM54 is not set | ||
779 | # CONFIG_HOSTAP is not set | ||
731 | 780 | ||
732 | # | 781 | # |
733 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 782 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -741,6 +790,7 @@ CONFIG_WLAN=y | |||
741 | # CONFIG_NETCONSOLE is not set | 790 | # CONFIG_NETCONSOLE is not set |
742 | # CONFIG_NETPOLL is not set | 791 | # CONFIG_NETPOLL is not set |
743 | # CONFIG_NET_POLL_CONTROLLER is not set | 792 | # CONFIG_NET_POLL_CONTROLLER is not set |
793 | # CONFIG_VMXNET3 is not set | ||
744 | # CONFIG_ISDN is not set | 794 | # CONFIG_ISDN is not set |
745 | # CONFIG_PHONE is not set | 795 | # CONFIG_PHONE is not set |
746 | 796 | ||
@@ -778,6 +828,7 @@ CONFIG_SERIAL_MPC52xx=y | |||
778 | CONFIG_SERIAL_MPC52xx_CONSOLE=y | 828 | CONFIG_SERIAL_MPC52xx_CONSOLE=y |
779 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 | 829 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 |
780 | # CONFIG_SERIAL_JSM is not set | 830 | # CONFIG_SERIAL_JSM is not set |
831 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
781 | CONFIG_UNIX98_PTYS=y | 832 | CONFIG_UNIX98_PTYS=y |
782 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 833 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
783 | CONFIG_LEGACY_PTYS=y | 834 | CONFIG_LEGACY_PTYS=y |
@@ -836,11 +887,6 @@ CONFIG_I2C_MPC=y | |||
836 | # CONFIG_I2C_TAOS_EVM is not set | 887 | # CONFIG_I2C_TAOS_EVM is not set |
837 | 888 | ||
838 | # | 889 | # |
839 | # Graphics adapter I2C/DDC channel drivers | ||
840 | # | ||
841 | # CONFIG_I2C_VOODOO3 is not set | ||
842 | |||
843 | # | ||
844 | # Other I2C/SMBus bus drivers | 890 | # Other I2C/SMBus bus drivers |
845 | # | 891 | # |
846 | # CONFIG_I2C_PCA_PLATFORM is not set | 892 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -849,7 +895,6 @@ CONFIG_I2C_MPC=y | |||
849 | # | 895 | # |
850 | # Miscellaneous I2C Chip support | 896 | # Miscellaneous I2C Chip support |
851 | # | 897 | # |
852 | # CONFIG_DS1682 is not set | ||
853 | # CONFIG_SENSORS_TSL2550 is not set | 898 | # CONFIG_SENSORS_TSL2550 is not set |
854 | # CONFIG_I2C_DEBUG_CORE is not set | 899 | # CONFIG_I2C_DEBUG_CORE is not set |
855 | # CONFIG_I2C_DEBUG_ALGO is not set | 900 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -884,11 +929,13 @@ CONFIG_SSB_POSSIBLE=y | |||
884 | # CONFIG_TWL4030_CORE is not set | 929 | # CONFIG_TWL4030_CORE is not set |
885 | # CONFIG_MFD_TMIO is not set | 930 | # CONFIG_MFD_TMIO is not set |
886 | # CONFIG_PMIC_DA903X is not set | 931 | # CONFIG_PMIC_DA903X is not set |
932 | # CONFIG_PMIC_ADP5520 is not set | ||
887 | # CONFIG_MFD_WM8400 is not set | 933 | # CONFIG_MFD_WM8400 is not set |
888 | # CONFIG_MFD_WM831X is not set | 934 | # CONFIG_MFD_WM831X is not set |
889 | # CONFIG_MFD_WM8350_I2C is not set | 935 | # CONFIG_MFD_WM8350_I2C is not set |
890 | # CONFIG_MFD_PCF50633 is not set | 936 | # CONFIG_MFD_PCF50633 is not set |
891 | # CONFIG_AB3100_CORE is not set | 937 | # CONFIG_AB3100_CORE is not set |
938 | # CONFIG_MFD_88PM8607 is not set | ||
892 | # CONFIG_REGULATOR is not set | 939 | # CONFIG_REGULATOR is not set |
893 | # CONFIG_MEDIA_SUPPORT is not set | 940 | # CONFIG_MEDIA_SUPPORT is not set |
894 | 941 | ||
@@ -1129,6 +1176,7 @@ CONFIG_DEBUG_INFO=y | |||
1129 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 1176 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
1130 | # CONFIG_FAULT_INJECTION is not set | 1177 | # CONFIG_FAULT_INJECTION is not set |
1131 | # CONFIG_LATENCYTOP is not set | 1178 | # CONFIG_LATENCYTOP is not set |
1179 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1132 | # CONFIG_DEBUG_PAGEALLOC is not set | 1180 | # CONFIG_DEBUG_PAGEALLOC is not set |
1133 | CONFIG_HAVE_FUNCTION_TRACER=y | 1181 | CONFIG_HAVE_FUNCTION_TRACER=y |
1134 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1182 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1172,7 +1220,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1172 | # CONFIG_KEYS is not set | 1220 | # CONFIG_KEYS is not set |
1173 | # CONFIG_SECURITY is not set | 1221 | # CONFIG_SECURITY is not set |
1174 | # CONFIG_SECURITYFS is not set | 1222 | # CONFIG_SECURITYFS is not set |
1175 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1223 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1224 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1225 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1226 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1227 | CONFIG_DEFAULT_SECURITY="" | ||
1176 | CONFIG_CRYPTO=y | 1228 | CONFIG_CRYPTO=y |
1177 | 1229 | ||
1178 | # | 1230 | # |
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig index 4f77a1bdc8f..eaae2d469aa 100644 --- a/arch/powerpc/configs/52xx/motionpro_defconfig +++ b/arch/powerpc/configs/52xx/motionpro_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc4 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Oct 15 10:33:22 2009 | 4 | # Wed Dec 30 14:45:08 2009 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -58,6 +59,7 @@ CONFIG_AUDIT_ARCH=y | |||
58 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | 60 | CONFIG_DTC=y |
60 | CONFIG_DEFAULT_UIMAGE=y | 61 | CONFIG_DEFAULT_UIMAGE=y |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
61 | # CONFIG_PPC_DCR_NATIVE is not set | 63 | # CONFIG_PPC_DCR_NATIVE is not set |
62 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
63 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -85,6 +87,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
85 | # | 87 | # |
86 | CONFIG_TREE_RCU=y | 88 | CONFIG_TREE_RCU=y |
87 | # CONFIG_TREE_PREEMPT_RCU is not set | 89 | # CONFIG_TREE_PREEMPT_RCU is not set |
90 | # CONFIG_TINY_RCU is not set | ||
88 | # CONFIG_RCU_TRACE is not set | 91 | # CONFIG_RCU_TRACE is not set |
89 | CONFIG_RCU_FANOUT=32 | 92 | CONFIG_RCU_FANOUT=32 |
90 | # CONFIG_RCU_FANOUT_EXACT is not set | 93 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -166,14 +169,41 @@ CONFIG_LBDAF=y | |||
166 | # IO Schedulers | 169 | # IO Schedulers |
167 | # | 170 | # |
168 | CONFIG_IOSCHED_NOOP=y | 171 | CONFIG_IOSCHED_NOOP=y |
169 | CONFIG_IOSCHED_AS=y | ||
170 | CONFIG_IOSCHED_DEADLINE=y | 172 | CONFIG_IOSCHED_DEADLINE=y |
171 | CONFIG_IOSCHED_CFQ=y | 173 | CONFIG_IOSCHED_CFQ=y |
172 | CONFIG_DEFAULT_AS=y | ||
173 | # CONFIG_DEFAULT_DEADLINE is not set | 174 | # CONFIG_DEFAULT_DEADLINE is not set |
174 | # CONFIG_DEFAULT_CFQ is not set | 175 | CONFIG_DEFAULT_CFQ=y |
175 | # CONFIG_DEFAULT_NOOP is not set | 176 | # CONFIG_DEFAULT_NOOP is not set |
176 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 177 | CONFIG_DEFAULT_IOSCHED="cfq" |
178 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
179 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
180 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
181 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
182 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
183 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
184 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
185 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
186 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
187 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
188 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
189 | # CONFIG_INLINE_READ_LOCK is not set | ||
190 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
191 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
192 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
193 | CONFIG_INLINE_READ_UNLOCK=y | ||
194 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
195 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
196 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
197 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
198 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
199 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
200 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
201 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
202 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
203 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
204 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
205 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
206 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
177 | # CONFIG_FREEZER is not set | 207 | # CONFIG_FREEZER is not set |
178 | 208 | ||
179 | # | 209 | # |
@@ -189,6 +219,7 @@ CONFIG_PPC_MPC5200_SIMPLE=y | |||
189 | # CONFIG_PPC_MEDIA5200 is not set | 219 | # CONFIG_PPC_MEDIA5200 is not set |
190 | # CONFIG_PPC_MPC5200_BUGFIX is not set | 220 | # CONFIG_PPC_MPC5200_BUGFIX is not set |
191 | # CONFIG_PPC_MPC5200_GPIO is not set | 221 | # CONFIG_PPC_MPC5200_GPIO is not set |
222 | # CONFIG_PPC_MPC5200_LPBFIFO is not set | ||
192 | # CONFIG_PPC_PMAC is not set | 223 | # CONFIG_PPC_PMAC is not set |
193 | # CONFIG_PPC_CELL is not set | 224 | # CONFIG_PPC_CELL is not set |
194 | # CONFIG_PPC_CELL_NATIVE is not set | 225 | # CONFIG_PPC_CELL_NATIVE is not set |
@@ -244,6 +275,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
244 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 275 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
245 | # CONFIG_KEXEC is not set | 276 | # CONFIG_KEXEC is not set |
246 | # CONFIG_CRASH_DUMP is not set | 277 | # CONFIG_CRASH_DUMP is not set |
278 | CONFIG_SPARSE_IRQ=y | ||
247 | CONFIG_MAX_ACTIVE_REGIONS=32 | 279 | CONFIG_MAX_ACTIVE_REGIONS=32 |
248 | CONFIG_ARCH_FLATMEM_ENABLE=y | 280 | CONFIG_ARCH_FLATMEM_ENABLE=y |
249 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 281 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -260,8 +292,6 @@ CONFIG_MIGRATION=y | |||
260 | CONFIG_ZONE_DMA_FLAG=1 | 292 | CONFIG_ZONE_DMA_FLAG=1 |
261 | CONFIG_BOUNCE=y | 293 | CONFIG_BOUNCE=y |
262 | CONFIG_VIRT_TO_BUS=y | 294 | CONFIG_VIRT_TO_BUS=y |
263 | CONFIG_HAVE_MLOCK=y | ||
264 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
265 | # CONFIG_KSM is not set | 295 | # CONFIG_KSM is not set |
266 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 296 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
267 | CONFIG_PPC_4K_PAGES=y | 297 | CONFIG_PPC_4K_PAGES=y |
@@ -274,6 +304,7 @@ CONFIG_PROC_DEVICETREE=y | |||
274 | CONFIG_EXTRA_TARGETS="" | 304 | CONFIG_EXTRA_TARGETS="" |
275 | CONFIG_PM=y | 305 | CONFIG_PM=y |
276 | # CONFIG_PM_DEBUG is not set | 306 | # CONFIG_PM_DEBUG is not set |
307 | # CONFIG_HIBERNATION is not set | ||
277 | # CONFIG_PM_RUNTIME is not set | 308 | # CONFIG_PM_RUNTIME is not set |
278 | CONFIG_SECCOMP=y | 309 | CONFIG_SECCOMP=y |
279 | CONFIG_ISA_DMA_API=y | 310 | CONFIG_ISA_DMA_API=y |
@@ -379,7 +410,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
379 | # CONFIG_IRDA is not set | 410 | # CONFIG_IRDA is not set |
380 | # CONFIG_BT is not set | 411 | # CONFIG_BT is not set |
381 | # CONFIG_AF_RXRPC is not set | 412 | # CONFIG_AF_RXRPC is not set |
382 | # CONFIG_WIRELESS is not set | 413 | CONFIG_WIRELESS=y |
414 | # CONFIG_CFG80211 is not set | ||
415 | # CONFIG_LIB80211 is not set | ||
416 | |||
417 | # | ||
418 | # CFG80211 needs to be enabled for MAC80211 | ||
419 | # | ||
383 | # CONFIG_WIMAX is not set | 420 | # CONFIG_WIMAX is not set |
384 | # CONFIG_RFKILL is not set | 421 | # CONFIG_RFKILL is not set |
385 | # CONFIG_NET_9P is not set | 422 | # CONFIG_NET_9P is not set |
@@ -490,6 +527,10 @@ CONFIG_BLK_DEV=y | |||
490 | # CONFIG_BLK_DEV_COW_COMMON is not set | 527 | # CONFIG_BLK_DEV_COW_COMMON is not set |
491 | CONFIG_BLK_DEV_LOOP=y | 528 | CONFIG_BLK_DEV_LOOP=y |
492 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 529 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
530 | |||
531 | # | ||
532 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
533 | # | ||
493 | # CONFIG_BLK_DEV_NBD is not set | 534 | # CONFIG_BLK_DEV_NBD is not set |
494 | CONFIG_BLK_DEV_RAM=y | 535 | CONFIG_BLK_DEV_RAM=y |
495 | CONFIG_BLK_DEV_RAM_COUNT=16 | 536 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -499,9 +540,11 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
499 | # CONFIG_ATA_OVER_ETH is not set | 540 | # CONFIG_ATA_OVER_ETH is not set |
500 | # CONFIG_BLK_DEV_HD is not set | 541 | # CONFIG_BLK_DEV_HD is not set |
501 | CONFIG_MISC_DEVICES=y | 542 | CONFIG_MISC_DEVICES=y |
543 | # CONFIG_AD525X_DPOT is not set | ||
502 | # CONFIG_ICS932S401 is not set | 544 | # CONFIG_ICS932S401 is not set |
503 | # CONFIG_ENCLOSURE_SERVICES is not set | 545 | # CONFIG_ENCLOSURE_SERVICES is not set |
504 | # CONFIG_ISL29003 is not set | 546 | # CONFIG_ISL29003 is not set |
547 | # CONFIG_DS1682 is not set | ||
505 | # CONFIG_C2PORT is not set | 548 | # CONFIG_C2PORT is not set |
506 | 549 | ||
507 | # | 550 | # |
@@ -610,8 +653,7 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
610 | # CONFIG_NETDEV_1000 is not set | 653 | # CONFIG_NETDEV_1000 is not set |
611 | # CONFIG_NETDEV_10000 is not set | 654 | # CONFIG_NETDEV_10000 is not set |
612 | CONFIG_WLAN=y | 655 | CONFIG_WLAN=y |
613 | # CONFIG_WLAN_PRE80211 is not set | 656 | # CONFIG_HOSTAP is not set |
614 | # CONFIG_WLAN_80211 is not set | ||
615 | 657 | ||
616 | # | 658 | # |
617 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 659 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -657,6 +699,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
657 | CONFIG_SERIAL_MPC52xx=y | 699 | CONFIG_SERIAL_MPC52xx=y |
658 | CONFIG_SERIAL_MPC52xx_CONSOLE=y | 700 | CONFIG_SERIAL_MPC52xx_CONSOLE=y |
659 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 | 701 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 |
702 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
660 | CONFIG_UNIX98_PTYS=y | 703 | CONFIG_UNIX98_PTYS=y |
661 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 704 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
662 | CONFIG_LEGACY_PTYS=y | 705 | CONFIG_LEGACY_PTYS=y |
@@ -700,7 +743,6 @@ CONFIG_I2C_MPC=y | |||
700 | # | 743 | # |
701 | # Miscellaneous I2C Chip support | 744 | # Miscellaneous I2C Chip support |
702 | # | 745 | # |
703 | # CONFIG_DS1682 is not set | ||
704 | # CONFIG_SENSORS_TSL2550 is not set | 746 | # CONFIG_SENSORS_TSL2550 is not set |
705 | # CONFIG_I2C_DEBUG_CORE is not set | 747 | # CONFIG_I2C_DEBUG_CORE is not set |
706 | # CONFIG_I2C_DEBUG_ALGO is not set | 748 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -745,6 +787,7 @@ CONFIG_HWMON=y | |||
745 | # CONFIG_SENSORS_GL520SM is not set | 787 | # CONFIG_SENSORS_GL520SM is not set |
746 | # CONFIG_SENSORS_IT87 is not set | 788 | # CONFIG_SENSORS_IT87 is not set |
747 | # CONFIG_SENSORS_LM63 is not set | 789 | # CONFIG_SENSORS_LM63 is not set |
790 | # CONFIG_SENSORS_LM73 is not set | ||
748 | # CONFIG_SENSORS_LM75 is not set | 791 | # CONFIG_SENSORS_LM75 is not set |
749 | # CONFIG_SENSORS_LM77 is not set | 792 | # CONFIG_SENSORS_LM77 is not set |
750 | # CONFIG_SENSORS_LM78 is not set | 793 | # CONFIG_SENSORS_LM78 is not set |
@@ -805,11 +848,13 @@ CONFIG_SSB_POSSIBLE=y | |||
805 | # CONFIG_TWL4030_CORE is not set | 848 | # CONFIG_TWL4030_CORE is not set |
806 | # CONFIG_MFD_TMIO is not set | 849 | # CONFIG_MFD_TMIO is not set |
807 | # CONFIG_PMIC_DA903X is not set | 850 | # CONFIG_PMIC_DA903X is not set |
851 | # CONFIG_PMIC_ADP5520 is not set | ||
808 | # CONFIG_MFD_WM8400 is not set | 852 | # CONFIG_MFD_WM8400 is not set |
809 | # CONFIG_MFD_WM831X is not set | 853 | # CONFIG_MFD_WM831X is not set |
810 | # CONFIG_MFD_WM8350_I2C is not set | 854 | # CONFIG_MFD_WM8350_I2C is not set |
811 | # CONFIG_MFD_PCF50633 is not set | 855 | # CONFIG_MFD_PCF50633 is not set |
812 | # CONFIG_AB3100_CORE is not set | 856 | # CONFIG_AB3100_CORE is not set |
857 | # CONFIG_MFD_88PM8607 is not set | ||
813 | # CONFIG_REGULATOR is not set | 858 | # CONFIG_REGULATOR is not set |
814 | # CONFIG_MEDIA_SUPPORT is not set | 859 | # CONFIG_MEDIA_SUPPORT is not set |
815 | 860 | ||
@@ -881,6 +926,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
881 | # CONFIG_RTC_DRV_PCF8563 is not set | 926 | # CONFIG_RTC_DRV_PCF8563 is not set |
882 | # CONFIG_RTC_DRV_PCF8583 is not set | 927 | # CONFIG_RTC_DRV_PCF8583 is not set |
883 | # CONFIG_RTC_DRV_M41T80 is not set | 928 | # CONFIG_RTC_DRV_M41T80 is not set |
929 | # CONFIG_RTC_DRV_BQ32K is not set | ||
884 | # CONFIG_RTC_DRV_S35390A is not set | 930 | # CONFIG_RTC_DRV_S35390A is not set |
885 | # CONFIG_RTC_DRV_FM3130 is not set | 931 | # CONFIG_RTC_DRV_FM3130 is not set |
886 | # CONFIG_RTC_DRV_RX8581 is not set | 932 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -902,7 +948,9 @@ CONFIG_RTC_DRV_DS1307=y | |||
902 | # CONFIG_RTC_DRV_M48T86 is not set | 948 | # CONFIG_RTC_DRV_M48T86 is not set |
903 | # CONFIG_RTC_DRV_M48T35 is not set | 949 | # CONFIG_RTC_DRV_M48T35 is not set |
904 | # CONFIG_RTC_DRV_M48T59 is not set | 950 | # CONFIG_RTC_DRV_M48T59 is not set |
951 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
905 | # CONFIG_RTC_DRV_BQ4802 is not set | 952 | # CONFIG_RTC_DRV_BQ4802 is not set |
953 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
906 | # CONFIG_RTC_DRV_V3020 is not set | 954 | # CONFIG_RTC_DRV_V3020 is not set |
907 | 955 | ||
908 | # | 956 | # |
@@ -1172,6 +1220,7 @@ CONFIG_DEBUG_INFO=y | |||
1172 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 1220 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
1173 | # CONFIG_FAULT_INJECTION is not set | 1221 | # CONFIG_FAULT_INJECTION is not set |
1174 | # CONFIG_LATENCYTOP is not set | 1222 | # CONFIG_LATENCYTOP is not set |
1223 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1175 | # CONFIG_DEBUG_PAGEALLOC is not set | 1224 | # CONFIG_DEBUG_PAGEALLOC is not set |
1176 | CONFIG_HAVE_FUNCTION_TRACER=y | 1225 | CONFIG_HAVE_FUNCTION_TRACER=y |
1177 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1226 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1215,7 +1264,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1215 | # CONFIG_KEYS is not set | 1264 | # CONFIG_KEYS is not set |
1216 | # CONFIG_SECURITY is not set | 1265 | # CONFIG_SECURITY is not set |
1217 | # CONFIG_SECURITYFS is not set | 1266 | # CONFIG_SECURITYFS is not set |
1218 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1267 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1268 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1269 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1270 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1271 | CONFIG_DEFAULT_SECURITY="" | ||
1219 | CONFIG_CRYPTO=y | 1272 | CONFIG_CRYPTO=y |
1220 | 1273 | ||
1221 | # | 1274 | # |
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig index f9168c1a2fa..1742c0200b7 100644 --- a/arch/powerpc/configs/52xx/pcm030_defconfig +++ b/arch/powerpc/configs/52xx/pcm030_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc4 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Oct 15 10:33:25 2009 | 4 | # Wed Dec 30 14:45:10 2009 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -58,6 +59,7 @@ CONFIG_AUDIT_ARCH=y | |||
58 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | 60 | CONFIG_DTC=y |
60 | CONFIG_DEFAULT_UIMAGE=y | 61 | CONFIG_DEFAULT_UIMAGE=y |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
61 | # CONFIG_PPC_DCR_NATIVE is not set | 63 | # CONFIG_PPC_DCR_NATIVE is not set |
62 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
63 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -87,6 +89,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -172,14 +175,41 @@ CONFIG_LBDAF=y | |||
172 | # IO Schedulers | 175 | # IO Schedulers |
173 | # | 176 | # |
174 | CONFIG_IOSCHED_NOOP=y | 177 | CONFIG_IOSCHED_NOOP=y |
175 | # CONFIG_IOSCHED_AS is not set | ||
176 | # CONFIG_IOSCHED_DEADLINE is not set | 178 | # CONFIG_IOSCHED_DEADLINE is not set |
177 | # CONFIG_IOSCHED_CFQ is not set | 179 | # CONFIG_IOSCHED_CFQ is not set |
178 | # CONFIG_DEFAULT_AS is not set | ||
179 | # CONFIG_DEFAULT_DEADLINE is not set | 180 | # CONFIG_DEFAULT_DEADLINE is not set |
180 | # CONFIG_DEFAULT_CFQ is not set | 181 | # CONFIG_DEFAULT_CFQ is not set |
181 | CONFIG_DEFAULT_NOOP=y | 182 | CONFIG_DEFAULT_NOOP=y |
182 | CONFIG_DEFAULT_IOSCHED="noop" | 183 | CONFIG_DEFAULT_IOSCHED="noop" |
184 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
185 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
190 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
191 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
194 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
195 | # CONFIG_INLINE_READ_LOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
199 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
200 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
201 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
202 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
203 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
208 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
209 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
212 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
183 | # CONFIG_FREEZER is not set | 213 | # CONFIG_FREEZER is not set |
184 | 214 | ||
185 | # | 215 | # |
@@ -195,6 +225,7 @@ CONFIG_PPC_MPC5200_SIMPLE=y | |||
195 | # CONFIG_PPC_MEDIA5200 is not set | 225 | # CONFIG_PPC_MEDIA5200 is not set |
196 | # CONFIG_PPC_MPC5200_BUGFIX is not set | 226 | # CONFIG_PPC_MPC5200_BUGFIX is not set |
197 | # CONFIG_PPC_MPC5200_GPIO is not set | 227 | # CONFIG_PPC_MPC5200_GPIO is not set |
228 | # CONFIG_PPC_MPC5200_LPBFIFO is not set | ||
198 | # CONFIG_PPC_PMAC is not set | 229 | # CONFIG_PPC_PMAC is not set |
199 | # CONFIG_PPC_CELL is not set | 230 | # CONFIG_PPC_CELL is not set |
200 | # CONFIG_PPC_CELL_NATIVE is not set | 231 | # CONFIG_PPC_CELL_NATIVE is not set |
@@ -251,6 +282,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
251 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 282 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
252 | # CONFIG_KEXEC is not set | 283 | # CONFIG_KEXEC is not set |
253 | # CONFIG_CRASH_DUMP is not set | 284 | # CONFIG_CRASH_DUMP is not set |
285 | CONFIG_SPARSE_IRQ=y | ||
254 | CONFIG_MAX_ACTIVE_REGIONS=32 | 286 | CONFIG_MAX_ACTIVE_REGIONS=32 |
255 | CONFIG_ARCH_FLATMEM_ENABLE=y | 287 | CONFIG_ARCH_FLATMEM_ENABLE=y |
256 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 288 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -267,8 +299,6 @@ CONFIG_MIGRATION=y | |||
267 | CONFIG_ZONE_DMA_FLAG=1 | 299 | CONFIG_ZONE_DMA_FLAG=1 |
268 | CONFIG_BOUNCE=y | 300 | CONFIG_BOUNCE=y |
269 | CONFIG_VIRT_TO_BUS=y | 301 | CONFIG_VIRT_TO_BUS=y |
270 | CONFIG_HAVE_MLOCK=y | ||
271 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
272 | # CONFIG_KSM is not set | 302 | # CONFIG_KSM is not set |
273 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 303 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
274 | CONFIG_PPC_4K_PAGES=y | 304 | CONFIG_PPC_4K_PAGES=y |
@@ -385,7 +415,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
385 | # CONFIG_IRDA is not set | 415 | # CONFIG_IRDA is not set |
386 | # CONFIG_BT is not set | 416 | # CONFIG_BT is not set |
387 | # CONFIG_AF_RXRPC is not set | 417 | # CONFIG_AF_RXRPC is not set |
388 | # CONFIG_WIRELESS is not set | 418 | CONFIG_WIRELESS=y |
419 | # CONFIG_CFG80211 is not set | ||
420 | # CONFIG_LIB80211 is not set | ||
421 | |||
422 | # | ||
423 | # CFG80211 needs to be enabled for MAC80211 | ||
424 | # | ||
389 | # CONFIG_WIMAX is not set | 425 | # CONFIG_WIMAX is not set |
390 | # CONFIG_RFKILL is not set | 426 | # CONFIG_RFKILL is not set |
391 | # CONFIG_NET_9P is not set | 427 | # CONFIG_NET_9P is not set |
@@ -585,15 +621,16 @@ CONFIG_PATA_MPC52xx=m | |||
585 | # CONFIG_PATA_NS87415 is not set | 621 | # CONFIG_PATA_NS87415 is not set |
586 | # CONFIG_PATA_OPTI is not set | 622 | # CONFIG_PATA_OPTI is not set |
587 | # CONFIG_PATA_OPTIDMA is not set | 623 | # CONFIG_PATA_OPTIDMA is not set |
624 | # CONFIG_PATA_PDC2027X is not set | ||
588 | # CONFIG_PATA_PDC_OLD is not set | 625 | # CONFIG_PATA_PDC_OLD is not set |
589 | # CONFIG_PATA_RADISYS is not set | 626 | # CONFIG_PATA_RADISYS is not set |
590 | # CONFIG_PATA_RDC is not set | 627 | # CONFIG_PATA_RDC is not set |
591 | # CONFIG_PATA_RZ1000 is not set | 628 | # CONFIG_PATA_RZ1000 is not set |
592 | # CONFIG_PATA_SC1200 is not set | 629 | # CONFIG_PATA_SC1200 is not set |
593 | # CONFIG_PATA_SERVERWORKS is not set | 630 | # CONFIG_PATA_SERVERWORKS is not set |
594 | # CONFIG_PATA_PDC2027X is not set | ||
595 | # CONFIG_PATA_SIL680 is not set | 631 | # CONFIG_PATA_SIL680 is not set |
596 | # CONFIG_PATA_SIS is not set | 632 | # CONFIG_PATA_SIS is not set |
633 | # CONFIG_PATA_TOSHIBA is not set | ||
597 | # CONFIG_PATA_VIA is not set | 634 | # CONFIG_PATA_VIA is not set |
598 | # CONFIG_PATA_WINBOND is not set | 635 | # CONFIG_PATA_WINBOND is not set |
599 | # CONFIG_PATA_PLATFORM is not set | 636 | # CONFIG_PATA_PLATFORM is not set |
@@ -673,8 +710,11 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
673 | # CONFIG_NETDEV_10000 is not set | 710 | # CONFIG_NETDEV_10000 is not set |
674 | # CONFIG_TR is not set | 711 | # CONFIG_TR is not set |
675 | CONFIG_WLAN=y | 712 | CONFIG_WLAN=y |
676 | # CONFIG_WLAN_PRE80211 is not set | 713 | # CONFIG_AIRO is not set |
677 | # CONFIG_WLAN_80211 is not set | 714 | # CONFIG_ATMEL is not set |
715 | # CONFIG_PRISM54 is not set | ||
716 | # CONFIG_USB_ZD1201 is not set | ||
717 | # CONFIG_HOSTAP is not set | ||
678 | 718 | ||
679 | # | 719 | # |
680 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 720 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -697,6 +737,7 @@ CONFIG_WLAN=y | |||
697 | # CONFIG_NETCONSOLE is not set | 737 | # CONFIG_NETCONSOLE is not set |
698 | # CONFIG_NETPOLL is not set | 738 | # CONFIG_NETPOLL is not set |
699 | # CONFIG_NET_POLL_CONTROLLER is not set | 739 | # CONFIG_NET_POLL_CONTROLLER is not set |
740 | # CONFIG_VMXNET3 is not set | ||
700 | # CONFIG_ISDN is not set | 741 | # CONFIG_ISDN is not set |
701 | # CONFIG_PHONE is not set | 742 | # CONFIG_PHONE is not set |
702 | 743 | ||
@@ -734,6 +775,7 @@ CONFIG_SERIAL_MPC52xx=y | |||
734 | CONFIG_SERIAL_MPC52xx_CONSOLE=y | 775 | CONFIG_SERIAL_MPC52xx_CONSOLE=y |
735 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=9600 | 776 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=9600 |
736 | # CONFIG_SERIAL_JSM is not set | 777 | # CONFIG_SERIAL_JSM is not set |
778 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
737 | CONFIG_UNIX98_PTYS=y | 779 | CONFIG_UNIX98_PTYS=y |
738 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 780 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
739 | # CONFIG_LEGACY_PTYS is not set | 781 | # CONFIG_LEGACY_PTYS is not set |
@@ -791,11 +833,6 @@ CONFIG_I2C_MPC=y | |||
791 | # CONFIG_I2C_TINY_USB is not set | 833 | # CONFIG_I2C_TINY_USB is not set |
792 | 834 | ||
793 | # | 835 | # |
794 | # Graphics adapter I2C/DDC channel drivers | ||
795 | # | ||
796 | # CONFIG_I2C_VOODOO3 is not set | ||
797 | |||
798 | # | ||
799 | # Other I2C/SMBus bus drivers | 836 | # Other I2C/SMBus bus drivers |
800 | # | 837 | # |
801 | # CONFIG_I2C_PCA_PLATFORM is not set | 838 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -804,7 +841,6 @@ CONFIG_I2C_MPC=y | |||
804 | # | 841 | # |
805 | # Miscellaneous I2C Chip support | 842 | # Miscellaneous I2C Chip support |
806 | # | 843 | # |
807 | # CONFIG_DS1682 is not set | ||
808 | # CONFIG_SENSORS_TSL2550 is not set | 844 | # CONFIG_SENSORS_TSL2550 is not set |
809 | # CONFIG_I2C_DEBUG_CORE is not set | 845 | # CONFIG_I2C_DEBUG_CORE is not set |
810 | # CONFIG_I2C_DEBUG_ALGO is not set | 846 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -839,11 +875,13 @@ CONFIG_SSB_POSSIBLE=y | |||
839 | # CONFIG_TWL4030_CORE is not set | 875 | # CONFIG_TWL4030_CORE is not set |
840 | # CONFIG_MFD_TMIO is not set | 876 | # CONFIG_MFD_TMIO is not set |
841 | # CONFIG_PMIC_DA903X is not set | 877 | # CONFIG_PMIC_DA903X is not set |
878 | # CONFIG_PMIC_ADP5520 is not set | ||
842 | # CONFIG_MFD_WM8400 is not set | 879 | # CONFIG_MFD_WM8400 is not set |
843 | # CONFIG_MFD_WM831X is not set | 880 | # CONFIG_MFD_WM831X is not set |
844 | # CONFIG_MFD_WM8350_I2C is not set | 881 | # CONFIG_MFD_WM8350_I2C is not set |
845 | # CONFIG_MFD_PCF50633 is not set | 882 | # CONFIG_MFD_PCF50633 is not set |
846 | # CONFIG_AB3100_CORE is not set | 883 | # CONFIG_AB3100_CORE is not set |
884 | # CONFIG_MFD_88PM8607 is not set | ||
847 | # CONFIG_REGULATOR is not set | 885 | # CONFIG_REGULATOR is not set |
848 | # CONFIG_MEDIA_SUPPORT is not set | 886 | # CONFIG_MEDIA_SUPPORT is not set |
849 | 887 | ||
@@ -908,7 +946,6 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | |||
908 | # CONFIG_USB_R8A66597_HCD is not set | 946 | # CONFIG_USB_R8A66597_HCD is not set |
909 | # CONFIG_USB_WHCI_HCD is not set | 947 | # CONFIG_USB_WHCI_HCD is not set |
910 | # CONFIG_USB_HWA_HCD is not set | 948 | # CONFIG_USB_HWA_HCD is not set |
911 | # CONFIG_USB_MUSB_HDRC is not set | ||
912 | 949 | ||
913 | # | 950 | # |
914 | # USB Device Class drivers | 951 | # USB Device Class drivers |
@@ -1011,6 +1048,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1011 | CONFIG_RTC_DRV_PCF8563=m | 1048 | CONFIG_RTC_DRV_PCF8563=m |
1012 | # CONFIG_RTC_DRV_PCF8583 is not set | 1049 | # CONFIG_RTC_DRV_PCF8583 is not set |
1013 | # CONFIG_RTC_DRV_M41T80 is not set | 1050 | # CONFIG_RTC_DRV_M41T80 is not set |
1051 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1014 | # CONFIG_RTC_DRV_S35390A is not set | 1052 | # CONFIG_RTC_DRV_S35390A is not set |
1015 | # CONFIG_RTC_DRV_FM3130 is not set | 1053 | # CONFIG_RTC_DRV_FM3130 is not set |
1016 | # CONFIG_RTC_DRV_RX8581 is not set | 1054 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1032,7 +1070,9 @@ CONFIG_RTC_DRV_PCF8563=m | |||
1032 | # CONFIG_RTC_DRV_M48T86 is not set | 1070 | # CONFIG_RTC_DRV_M48T86 is not set |
1033 | # CONFIG_RTC_DRV_M48T35 is not set | 1071 | # CONFIG_RTC_DRV_M48T35 is not set |
1034 | # CONFIG_RTC_DRV_M48T59 is not set | 1072 | # CONFIG_RTC_DRV_M48T59 is not set |
1073 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1035 | # CONFIG_RTC_DRV_BQ4802 is not set | 1074 | # CONFIG_RTC_DRV_BQ4802 is not set |
1075 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1036 | # CONFIG_RTC_DRV_V3020 is not set | 1076 | # CONFIG_RTC_DRV_V3020 is not set |
1037 | 1077 | ||
1038 | # | 1078 | # |
@@ -1243,10 +1283,11 @@ CONFIG_FRAME_WARN=1024 | |||
1243 | # CONFIG_DEBUG_FS is not set | 1283 | # CONFIG_DEBUG_FS is not set |
1244 | # CONFIG_HEADERS_CHECK is not set | 1284 | # CONFIG_HEADERS_CHECK is not set |
1245 | # CONFIG_DEBUG_KERNEL is not set | 1285 | # CONFIG_DEBUG_KERNEL is not set |
1246 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1286 | CONFIG_DEBUG_BUGVERBOSE=y |
1247 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1287 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1248 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1288 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1249 | # CONFIG_LATENCYTOP is not set | 1289 | # CONFIG_LATENCYTOP is not set |
1290 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1250 | CONFIG_HAVE_FUNCTION_TRACER=y | 1291 | CONFIG_HAVE_FUNCTION_TRACER=y |
1251 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1292 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
1252 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1293 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
@@ -1269,7 +1310,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1269 | # CONFIG_KEYS is not set | 1310 | # CONFIG_KEYS is not set |
1270 | # CONFIG_SECURITY is not set | 1311 | # CONFIG_SECURITY is not set |
1271 | # CONFIG_SECURITYFS is not set | 1312 | # CONFIG_SECURITYFS is not set |
1272 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1313 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1314 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1315 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1316 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1317 | CONFIG_DEFAULT_SECURITY="" | ||
1273 | # CONFIG_CRYPTO is not set | 1318 | # CONFIG_CRYPTO is not set |
1274 | CONFIG_PPC_CLOCK=y | 1319 | CONFIG_PPC_CLOCK=y |
1275 | CONFIG_PPC_LIB_RHEAP=y | 1320 | CONFIG_PPC_LIB_RHEAP=y |
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig index 75c835c2ae6..3972438db71 100644 --- a/arch/powerpc/configs/52xx/tqm5200_defconfig +++ b/arch/powerpc/configs/52xx/tqm5200_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc4 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Oct 15 10:33:23 2009 | 4 | # Wed Dec 30 14:45:09 2009 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -58,6 +59,7 @@ CONFIG_AUDIT_ARCH=y | |||
58 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | 60 | CONFIG_DTC=y |
60 | CONFIG_DEFAULT_UIMAGE=y | 61 | CONFIG_DEFAULT_UIMAGE=y |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
61 | # CONFIG_PPC_DCR_NATIVE is not set | 63 | # CONFIG_PPC_DCR_NATIVE is not set |
62 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
63 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -85,6 +87,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
85 | # | 87 | # |
86 | CONFIG_TREE_RCU=y | 88 | CONFIG_TREE_RCU=y |
87 | # CONFIG_TREE_PREEMPT_RCU is not set | 89 | # CONFIG_TREE_PREEMPT_RCU is not set |
90 | # CONFIG_TINY_RCU is not set | ||
88 | # CONFIG_RCU_TRACE is not set | 91 | # CONFIG_RCU_TRACE is not set |
89 | CONFIG_RCU_FANOUT=32 | 92 | CONFIG_RCU_FANOUT=32 |
90 | # CONFIG_RCU_FANOUT_EXACT is not set | 93 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -171,14 +174,41 @@ CONFIG_LBDAF=y | |||
171 | # IO Schedulers | 174 | # IO Schedulers |
172 | # | 175 | # |
173 | CONFIG_IOSCHED_NOOP=y | 176 | CONFIG_IOSCHED_NOOP=y |
174 | CONFIG_IOSCHED_AS=y | ||
175 | CONFIG_IOSCHED_DEADLINE=y | 177 | CONFIG_IOSCHED_DEADLINE=y |
176 | CONFIG_IOSCHED_CFQ=y | 178 | CONFIG_IOSCHED_CFQ=y |
177 | CONFIG_DEFAULT_AS=y | ||
178 | # CONFIG_DEFAULT_DEADLINE is not set | 179 | # CONFIG_DEFAULT_DEADLINE is not set |
179 | # CONFIG_DEFAULT_CFQ is not set | 180 | CONFIG_DEFAULT_CFQ=y |
180 | # CONFIG_DEFAULT_NOOP is not set | 181 | # CONFIG_DEFAULT_NOOP is not set |
181 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 182 | CONFIG_DEFAULT_IOSCHED="cfq" |
183 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
184 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
185 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
189 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
190 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
193 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
194 | # CONFIG_INLINE_READ_LOCK is not set | ||
195 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
198 | CONFIG_INLINE_READ_UNLOCK=y | ||
199 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
202 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
203 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
207 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
208 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
211 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
182 | # CONFIG_FREEZER is not set | 212 | # CONFIG_FREEZER is not set |
183 | 213 | ||
184 | # | 214 | # |
@@ -194,6 +224,7 @@ CONFIG_PPC_MPC5200_SIMPLE=y | |||
194 | # CONFIG_PPC_MEDIA5200 is not set | 224 | # CONFIG_PPC_MEDIA5200 is not set |
195 | CONFIG_PPC_MPC5200_BUGFIX=y | 225 | CONFIG_PPC_MPC5200_BUGFIX=y |
196 | # CONFIG_PPC_MPC5200_GPIO is not set | 226 | # CONFIG_PPC_MPC5200_GPIO is not set |
227 | # CONFIG_PPC_MPC5200_LPBFIFO is not set | ||
197 | # CONFIG_PPC_PMAC is not set | 228 | # CONFIG_PPC_PMAC is not set |
198 | # CONFIG_PPC_CELL is not set | 229 | # CONFIG_PPC_CELL is not set |
199 | # CONFIG_PPC_CELL_NATIVE is not set | 230 | # CONFIG_PPC_CELL_NATIVE is not set |
@@ -249,6 +280,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
249 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 280 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
250 | # CONFIG_KEXEC is not set | 281 | # CONFIG_KEXEC is not set |
251 | # CONFIG_CRASH_DUMP is not set | 282 | # CONFIG_CRASH_DUMP is not set |
283 | CONFIG_SPARSE_IRQ=y | ||
252 | CONFIG_MAX_ACTIVE_REGIONS=32 | 284 | CONFIG_MAX_ACTIVE_REGIONS=32 |
253 | CONFIG_ARCH_FLATMEM_ENABLE=y | 285 | CONFIG_ARCH_FLATMEM_ENABLE=y |
254 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 286 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -265,8 +297,6 @@ CONFIG_MIGRATION=y | |||
265 | CONFIG_ZONE_DMA_FLAG=1 | 297 | CONFIG_ZONE_DMA_FLAG=1 |
266 | CONFIG_BOUNCE=y | 298 | CONFIG_BOUNCE=y |
267 | CONFIG_VIRT_TO_BUS=y | 299 | CONFIG_VIRT_TO_BUS=y |
268 | CONFIG_HAVE_MLOCK=y | ||
269 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
270 | # CONFIG_KSM is not set | 300 | # CONFIG_KSM is not set |
271 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 301 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
272 | CONFIG_PPC_4K_PAGES=y | 302 | CONFIG_PPC_4K_PAGES=y |
@@ -279,6 +309,7 @@ CONFIG_PROC_DEVICETREE=y | |||
279 | CONFIG_EXTRA_TARGETS="" | 309 | CONFIG_EXTRA_TARGETS="" |
280 | CONFIG_PM=y | 310 | CONFIG_PM=y |
281 | # CONFIG_PM_DEBUG is not set | 311 | # CONFIG_PM_DEBUG is not set |
312 | # CONFIG_HIBERNATION is not set | ||
282 | # CONFIG_PM_RUNTIME is not set | 313 | # CONFIG_PM_RUNTIME is not set |
283 | CONFIG_SECCOMP=y | 314 | CONFIG_SECCOMP=y |
284 | CONFIG_ISA_DMA_API=y | 315 | CONFIG_ISA_DMA_API=y |
@@ -384,7 +415,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
384 | # CONFIG_IRDA is not set | 415 | # CONFIG_IRDA is not set |
385 | # CONFIG_BT is not set | 416 | # CONFIG_BT is not set |
386 | # CONFIG_AF_RXRPC is not set | 417 | # CONFIG_AF_RXRPC is not set |
387 | # CONFIG_WIRELESS is not set | 418 | CONFIG_WIRELESS=y |
419 | # CONFIG_CFG80211 is not set | ||
420 | # CONFIG_LIB80211 is not set | ||
421 | |||
422 | # | ||
423 | # CFG80211 needs to be enabled for MAC80211 | ||
424 | # | ||
388 | # CONFIG_WIMAX is not set | 425 | # CONFIG_WIMAX is not set |
389 | # CONFIG_RFKILL is not set | 426 | # CONFIG_RFKILL is not set |
390 | # CONFIG_NET_9P is not set | 427 | # CONFIG_NET_9P is not set |
@@ -496,6 +533,10 @@ CONFIG_BLK_DEV=y | |||
496 | # CONFIG_BLK_DEV_COW_COMMON is not set | 533 | # CONFIG_BLK_DEV_COW_COMMON is not set |
497 | CONFIG_BLK_DEV_LOOP=y | 534 | CONFIG_BLK_DEV_LOOP=y |
498 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 535 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
536 | |||
537 | # | ||
538 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
539 | # | ||
499 | # CONFIG_BLK_DEV_NBD is not set | 540 | # CONFIG_BLK_DEV_NBD is not set |
500 | # CONFIG_BLK_DEV_UB is not set | 541 | # CONFIG_BLK_DEV_UB is not set |
501 | CONFIG_BLK_DEV_RAM=y | 542 | CONFIG_BLK_DEV_RAM=y |
@@ -607,8 +648,8 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
607 | # CONFIG_NETDEV_1000 is not set | 648 | # CONFIG_NETDEV_1000 is not set |
608 | # CONFIG_NETDEV_10000 is not set | 649 | # CONFIG_NETDEV_10000 is not set |
609 | CONFIG_WLAN=y | 650 | CONFIG_WLAN=y |
610 | # CONFIG_WLAN_PRE80211 is not set | 651 | # CONFIG_USB_ZD1201 is not set |
611 | # CONFIG_WLAN_80211 is not set | 652 | # CONFIG_HOSTAP is not set |
612 | 653 | ||
613 | # | 654 | # |
614 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 655 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -663,6 +704,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
663 | CONFIG_SERIAL_MPC52xx=y | 704 | CONFIG_SERIAL_MPC52xx=y |
664 | CONFIG_SERIAL_MPC52xx_CONSOLE=y | 705 | CONFIG_SERIAL_MPC52xx_CONSOLE=y |
665 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 | 706 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 |
707 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
666 | CONFIG_UNIX98_PTYS=y | 708 | CONFIG_UNIX98_PTYS=y |
667 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 709 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
668 | CONFIG_LEGACY_PTYS=y | 710 | CONFIG_LEGACY_PTYS=y |
@@ -708,7 +750,6 @@ CONFIG_I2C_MPC=y | |||
708 | # | 750 | # |
709 | # Miscellaneous I2C Chip support | 751 | # Miscellaneous I2C Chip support |
710 | # | 752 | # |
711 | # CONFIG_DS1682 is not set | ||
712 | # CONFIG_SENSORS_TSL2550 is not set | 753 | # CONFIG_SENSORS_TSL2550 is not set |
713 | # CONFIG_I2C_DEBUG_CORE is not set | 754 | # CONFIG_I2C_DEBUG_CORE is not set |
714 | # CONFIG_I2C_DEBUG_ALGO is not set | 755 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -753,6 +794,7 @@ CONFIG_HWMON=y | |||
753 | # CONFIG_SENSORS_GL520SM is not set | 794 | # CONFIG_SENSORS_GL520SM is not set |
754 | # CONFIG_SENSORS_IT87 is not set | 795 | # CONFIG_SENSORS_IT87 is not set |
755 | # CONFIG_SENSORS_LM63 is not set | 796 | # CONFIG_SENSORS_LM63 is not set |
797 | # CONFIG_SENSORS_LM73 is not set | ||
756 | # CONFIG_SENSORS_LM75 is not set | 798 | # CONFIG_SENSORS_LM75 is not set |
757 | # CONFIG_SENSORS_LM77 is not set | 799 | # CONFIG_SENSORS_LM77 is not set |
758 | # CONFIG_SENSORS_LM78 is not set | 800 | # CONFIG_SENSORS_LM78 is not set |
@@ -818,11 +860,13 @@ CONFIG_SSB_POSSIBLE=y | |||
818 | # CONFIG_TWL4030_CORE is not set | 860 | # CONFIG_TWL4030_CORE is not set |
819 | # CONFIG_MFD_TMIO is not set | 861 | # CONFIG_MFD_TMIO is not set |
820 | # CONFIG_PMIC_DA903X is not set | 862 | # CONFIG_PMIC_DA903X is not set |
863 | # CONFIG_PMIC_ADP5520 is not set | ||
821 | # CONFIG_MFD_WM8400 is not set | 864 | # CONFIG_MFD_WM8400 is not set |
822 | # CONFIG_MFD_WM831X is not set | 865 | # CONFIG_MFD_WM831X is not set |
823 | # CONFIG_MFD_WM8350_I2C is not set | 866 | # CONFIG_MFD_WM8350_I2C is not set |
824 | # CONFIG_MFD_PCF50633 is not set | 867 | # CONFIG_MFD_PCF50633 is not set |
825 | # CONFIG_AB3100_CORE is not set | 868 | # CONFIG_AB3100_CORE is not set |
869 | # CONFIG_MFD_88PM8607 is not set | ||
826 | # CONFIG_REGULATOR is not set | 870 | # CONFIG_REGULATOR is not set |
827 | # CONFIG_MEDIA_SUPPORT is not set | 871 | # CONFIG_MEDIA_SUPPORT is not set |
828 | 872 | ||
@@ -880,7 +924,6 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | |||
880 | # CONFIG_USB_SL811_HCD is not set | 924 | # CONFIG_USB_SL811_HCD is not set |
881 | # CONFIG_USB_R8A66597_HCD is not set | 925 | # CONFIG_USB_R8A66597_HCD is not set |
882 | # CONFIG_USB_HWA_HCD is not set | 926 | # CONFIG_USB_HWA_HCD is not set |
883 | # CONFIG_USB_MUSB_HDRC is not set | ||
884 | 927 | ||
885 | # | 928 | # |
886 | # USB Device Class drivers | 929 | # USB Device Class drivers |
@@ -984,6 +1027,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
984 | # CONFIG_RTC_DRV_PCF8563 is not set | 1027 | # CONFIG_RTC_DRV_PCF8563 is not set |
985 | # CONFIG_RTC_DRV_PCF8583 is not set | 1028 | # CONFIG_RTC_DRV_PCF8583 is not set |
986 | # CONFIG_RTC_DRV_M41T80 is not set | 1029 | # CONFIG_RTC_DRV_M41T80 is not set |
1030 | # CONFIG_RTC_DRV_BQ32K is not set | ||
987 | # CONFIG_RTC_DRV_S35390A is not set | 1031 | # CONFIG_RTC_DRV_S35390A is not set |
988 | # CONFIG_RTC_DRV_FM3130 is not set | 1032 | # CONFIG_RTC_DRV_FM3130 is not set |
989 | # CONFIG_RTC_DRV_RX8581 is not set | 1033 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1005,7 +1049,9 @@ CONFIG_RTC_DRV_DS1307=y | |||
1005 | # CONFIG_RTC_DRV_M48T86 is not set | 1049 | # CONFIG_RTC_DRV_M48T86 is not set |
1006 | # CONFIG_RTC_DRV_M48T35 is not set | 1050 | # CONFIG_RTC_DRV_M48T35 is not set |
1007 | # CONFIG_RTC_DRV_M48T59 is not set | 1051 | # CONFIG_RTC_DRV_M48T59 is not set |
1052 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1008 | # CONFIG_RTC_DRV_BQ4802 is not set | 1053 | # CONFIG_RTC_DRV_BQ4802 is not set |
1054 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1009 | # CONFIG_RTC_DRV_V3020 is not set | 1055 | # CONFIG_RTC_DRV_V3020 is not set |
1010 | 1056 | ||
1011 | # | 1057 | # |
@@ -1275,6 +1321,7 @@ CONFIG_DEBUG_INFO=y | |||
1275 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 1321 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
1276 | # CONFIG_FAULT_INJECTION is not set | 1322 | # CONFIG_FAULT_INJECTION is not set |
1277 | # CONFIG_LATENCYTOP is not set | 1323 | # CONFIG_LATENCYTOP is not set |
1324 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1278 | # CONFIG_DEBUG_PAGEALLOC is not set | 1325 | # CONFIG_DEBUG_PAGEALLOC is not set |
1279 | CONFIG_HAVE_FUNCTION_TRACER=y | 1326 | CONFIG_HAVE_FUNCTION_TRACER=y |
1280 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1327 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1318,7 +1365,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1318 | # CONFIG_KEYS is not set | 1365 | # CONFIG_KEYS is not set |
1319 | # CONFIG_SECURITY is not set | 1366 | # CONFIG_SECURITY is not set |
1320 | # CONFIG_SECURITYFS is not set | 1367 | # CONFIG_SECURITYFS is not set |
1321 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1368 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1369 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1370 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1371 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1372 | CONFIG_DEFAULT_SECURITY="" | ||
1322 | CONFIG_CRYPTO=y | 1373 | CONFIG_CRYPTO=y |
1323 | 1374 | ||
1324 | # | 1375 | # |
diff --git a/arch/powerpc/configs/83xx/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig index 466f09ac315..baa2bbb6c09 100644 --- a/arch/powerpc/configs/83xx/asp8347_defconfig +++ b/arch/powerpc/configs/83xx/asp8347_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:20 2009 | 4 | # Wed Jan 6 09:24:14 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -60,6 +61,7 @@ CONFIG_GENERIC_BUG=y | |||
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | # CONFIG_DEFAULT_UIMAGE is not set | 62 | # CONFIG_DEFAULT_UIMAGE is not set |
62 | CONFIG_REDBOOT=y | 63 | CONFIG_REDBOOT=y |
64 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
63 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 65 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
64 | # CONFIG_PPC_DCR_NATIVE is not set | 66 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 67 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -88,6 +90,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
88 | # | 90 | # |
89 | CONFIG_TREE_RCU=y | 91 | CONFIG_TREE_RCU=y |
90 | # CONFIG_TREE_PREEMPT_RCU is not set | 92 | # CONFIG_TREE_PREEMPT_RCU is not set |
93 | # CONFIG_TINY_RCU is not set | ||
91 | # CONFIG_RCU_TRACE is not set | 94 | # CONFIG_RCU_TRACE is not set |
92 | CONFIG_RCU_FANOUT=32 | 95 | CONFIG_RCU_FANOUT=32 |
93 | # CONFIG_RCU_FANOUT_EXACT is not set | 96 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -174,14 +177,41 @@ CONFIG_LBDAF=y | |||
174 | # IO Schedulers | 177 | # IO Schedulers |
175 | # | 178 | # |
176 | CONFIG_IOSCHED_NOOP=y | 179 | CONFIG_IOSCHED_NOOP=y |
177 | CONFIG_IOSCHED_AS=y | ||
178 | CONFIG_IOSCHED_DEADLINE=y | 180 | CONFIG_IOSCHED_DEADLINE=y |
179 | CONFIG_IOSCHED_CFQ=y | 181 | CONFIG_IOSCHED_CFQ=y |
180 | CONFIG_DEFAULT_AS=y | ||
181 | # CONFIG_DEFAULT_DEADLINE is not set | 182 | # CONFIG_DEFAULT_DEADLINE is not set |
182 | # CONFIG_DEFAULT_CFQ is not set | 183 | CONFIG_DEFAULT_CFQ=y |
183 | # CONFIG_DEFAULT_NOOP is not set | 184 | # CONFIG_DEFAULT_NOOP is not set |
184 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 185 | CONFIG_DEFAULT_IOSCHED="cfq" |
186 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
192 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
196 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
201 | CONFIG_INLINE_READ_UNLOCK=y | ||
202 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
205 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
210 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
214 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
185 | # CONFIG_FREEZER is not set | 215 | # CONFIG_FREEZER is not set |
186 | 216 | ||
187 | # | 217 | # |
@@ -260,6 +290,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
260 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 290 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
261 | # CONFIG_KEXEC is not set | 291 | # CONFIG_KEXEC is not set |
262 | # CONFIG_CRASH_DUMP is not set | 292 | # CONFIG_CRASH_DUMP is not set |
293 | CONFIG_SPARSE_IRQ=y | ||
263 | CONFIG_MAX_ACTIVE_REGIONS=32 | 294 | CONFIG_MAX_ACTIVE_REGIONS=32 |
264 | CONFIG_ARCH_FLATMEM_ENABLE=y | 295 | CONFIG_ARCH_FLATMEM_ENABLE=y |
265 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 296 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -276,8 +307,6 @@ CONFIG_MIGRATION=y | |||
276 | CONFIG_ZONE_DMA_FLAG=1 | 307 | CONFIG_ZONE_DMA_FLAG=1 |
277 | CONFIG_BOUNCE=y | 308 | CONFIG_BOUNCE=y |
278 | CONFIG_VIRT_TO_BUS=y | 309 | CONFIG_VIRT_TO_BUS=y |
279 | CONFIG_HAVE_MLOCK=y | ||
280 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
281 | # CONFIG_KSM is not set | 310 | # CONFIG_KSM is not set |
282 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 311 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
283 | CONFIG_PPC_4K_PAGES=y | 312 | CONFIG_PPC_4K_PAGES=y |
@@ -404,9 +433,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
404 | # CONFIG_AF_RXRPC is not set | 433 | # CONFIG_AF_RXRPC is not set |
405 | CONFIG_WIRELESS=y | 434 | CONFIG_WIRELESS=y |
406 | # CONFIG_CFG80211 is not set | 435 | # CONFIG_CFG80211 is not set |
407 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
408 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
409 | # CONFIG_WIRELESS_EXT is not set | ||
410 | # CONFIG_LIB80211 is not set | 436 | # CONFIG_LIB80211 is not set |
411 | 437 | ||
412 | # | 438 | # |
@@ -530,6 +556,10 @@ CONFIG_BLK_DEV=y | |||
530 | # CONFIG_BLK_DEV_COW_COMMON is not set | 556 | # CONFIG_BLK_DEV_COW_COMMON is not set |
531 | CONFIG_BLK_DEV_LOOP=y | 557 | CONFIG_BLK_DEV_LOOP=y |
532 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 558 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
559 | |||
560 | # | ||
561 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
562 | # | ||
533 | # CONFIG_BLK_DEV_NBD is not set | 563 | # CONFIG_BLK_DEV_NBD is not set |
534 | # CONFIG_BLK_DEV_SX8 is not set | 564 | # CONFIG_BLK_DEV_SX8 is not set |
535 | # CONFIG_BLK_DEV_UB is not set | 565 | # CONFIG_BLK_DEV_UB is not set |
@@ -541,6 +571,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
541 | # CONFIG_ATA_OVER_ETH is not set | 571 | # CONFIG_ATA_OVER_ETH is not set |
542 | # CONFIG_BLK_DEV_HD is not set | 572 | # CONFIG_BLK_DEV_HD is not set |
543 | CONFIG_MISC_DEVICES=y | 573 | CONFIG_MISC_DEVICES=y |
574 | # CONFIG_AD525X_DPOT is not set | ||
544 | # CONFIG_PHANTOM is not set | 575 | # CONFIG_PHANTOM is not set |
545 | # CONFIG_SGI_IOC4 is not set | 576 | # CONFIG_SGI_IOC4 is not set |
546 | # CONFIG_TIFM_CORE is not set | 577 | # CONFIG_TIFM_CORE is not set |
@@ -548,6 +579,7 @@ CONFIG_MISC_DEVICES=y | |||
548 | # CONFIG_ENCLOSURE_SERVICES is not set | 579 | # CONFIG_ENCLOSURE_SERVICES is not set |
549 | # CONFIG_HP_ILO is not set | 580 | # CONFIG_HP_ILO is not set |
550 | # CONFIG_ISL29003 is not set | 581 | # CONFIG_ISL29003 is not set |
582 | # CONFIG_DS1682 is not set | ||
551 | # CONFIG_C2PORT is not set | 583 | # CONFIG_C2PORT is not set |
552 | 584 | ||
553 | # | 585 | # |
@@ -581,7 +613,7 @@ CONFIG_HAVE_IDE=y | |||
581 | # | 613 | # |
582 | 614 | ||
583 | # | 615 | # |
584 | # See the help texts for more information. | 616 | # The newer stack is recommended. |
585 | # | 617 | # |
586 | # CONFIG_FIREWIRE is not set | 618 | # CONFIG_FIREWIRE is not set |
587 | # CONFIG_IEEE1394 is not set | 619 | # CONFIG_IEEE1394 is not set |
@@ -668,8 +700,11 @@ CONFIG_GIANFAR=y | |||
668 | # CONFIG_NETDEV_10000 is not set | 700 | # CONFIG_NETDEV_10000 is not set |
669 | # CONFIG_TR is not set | 701 | # CONFIG_TR is not set |
670 | CONFIG_WLAN=y | 702 | CONFIG_WLAN=y |
671 | # CONFIG_WLAN_PRE80211 is not set | 703 | # CONFIG_AIRO is not set |
672 | # CONFIG_WLAN_80211 is not set | 704 | # CONFIG_ATMEL is not set |
705 | # CONFIG_PRISM54 is not set | ||
706 | # CONFIG_USB_ZD1201 is not set | ||
707 | # CONFIG_HOSTAP is not set | ||
673 | 708 | ||
674 | # | 709 | # |
675 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 710 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -691,6 +726,7 @@ CONFIG_WLAN=y | |||
691 | # CONFIG_NETCONSOLE is not set | 726 | # CONFIG_NETCONSOLE is not set |
692 | # CONFIG_NETPOLL is not set | 727 | # CONFIG_NETPOLL is not set |
693 | # CONFIG_NET_POLL_CONTROLLER is not set | 728 | # CONFIG_NET_POLL_CONTROLLER is not set |
729 | # CONFIG_VMXNET3 is not set | ||
694 | # CONFIG_ISDN is not set | 730 | # CONFIG_ISDN is not set |
695 | # CONFIG_PHONE is not set | 731 | # CONFIG_PHONE is not set |
696 | 732 | ||
@@ -700,6 +736,7 @@ CONFIG_WLAN=y | |||
700 | CONFIG_INPUT=y | 736 | CONFIG_INPUT=y |
701 | # CONFIG_INPUT_FF_MEMLESS is not set | 737 | # CONFIG_INPUT_FF_MEMLESS is not set |
702 | # CONFIG_INPUT_POLLDEV is not set | 738 | # CONFIG_INPUT_POLLDEV is not set |
739 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
703 | 740 | ||
704 | # | 741 | # |
705 | # Userland interfaces | 742 | # Userland interfaces |
@@ -751,6 +788,7 @@ CONFIG_SERIAL_CORE=y | |||
751 | CONFIG_SERIAL_CORE_CONSOLE=y | 788 | CONFIG_SERIAL_CORE_CONSOLE=y |
752 | # CONFIG_SERIAL_JSM is not set | 789 | # CONFIG_SERIAL_JSM is not set |
753 | # CONFIG_SERIAL_OF_PLATFORM is not set | 790 | # CONFIG_SERIAL_OF_PLATFORM is not set |
791 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
754 | CONFIG_UNIX98_PTYS=y | 792 | CONFIG_UNIX98_PTYS=y |
755 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 793 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
756 | CONFIG_LEGACY_PTYS=y | 794 | CONFIG_LEGACY_PTYS=y |
@@ -807,11 +845,6 @@ CONFIG_I2C_MPC=y | |||
807 | # CONFIG_I2C_TINY_USB is not set | 845 | # CONFIG_I2C_TINY_USB is not set |
808 | 846 | ||
809 | # | 847 | # |
810 | # Graphics adapter I2C/DDC channel drivers | ||
811 | # | ||
812 | # CONFIG_I2C_VOODOO3 is not set | ||
813 | |||
814 | # | ||
815 | # Other I2C/SMBus bus drivers | 848 | # Other I2C/SMBus bus drivers |
816 | # | 849 | # |
817 | # CONFIG_I2C_PCA_PLATFORM is not set | 850 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -820,7 +853,6 @@ CONFIG_I2C_MPC=y | |||
820 | # | 853 | # |
821 | # Miscellaneous I2C Chip support | 854 | # Miscellaneous I2C Chip support |
822 | # | 855 | # |
823 | # CONFIG_DS1682 is not set | ||
824 | # CONFIG_SENSORS_TSL2550 is not set | 856 | # CONFIG_SENSORS_TSL2550 is not set |
825 | # CONFIG_I2C_DEBUG_CORE is not set | 857 | # CONFIG_I2C_DEBUG_CORE is not set |
826 | # CONFIG_I2C_DEBUG_ALGO is not set | 858 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -866,6 +898,7 @@ CONFIG_HWMON=y | |||
866 | # CONFIG_SENSORS_GL520SM is not set | 898 | # CONFIG_SENSORS_GL520SM is not set |
867 | # CONFIG_SENSORS_IT87 is not set | 899 | # CONFIG_SENSORS_IT87 is not set |
868 | # CONFIG_SENSORS_LM63 is not set | 900 | # CONFIG_SENSORS_LM63 is not set |
901 | # CONFIG_SENSORS_LM73 is not set | ||
869 | # CONFIG_SENSORS_LM75 is not set | 902 | # CONFIG_SENSORS_LM75 is not set |
870 | # CONFIG_SENSORS_LM77 is not set | 903 | # CONFIG_SENSORS_LM77 is not set |
871 | # CONFIG_SENSORS_LM78 is not set | 904 | # CONFIG_SENSORS_LM78 is not set |
@@ -904,6 +937,7 @@ CONFIG_HWMON=y | |||
904 | # CONFIG_SENSORS_W83L786NG is not set | 937 | # CONFIG_SENSORS_W83L786NG is not set |
905 | # CONFIG_SENSORS_W83627HF is not set | 938 | # CONFIG_SENSORS_W83627HF is not set |
906 | # CONFIG_SENSORS_W83627EHF is not set | 939 | # CONFIG_SENSORS_W83627EHF is not set |
940 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
907 | CONFIG_THERMAL=y | 941 | CONFIG_THERMAL=y |
908 | # CONFIG_THERMAL_HWMON is not set | 942 | # CONFIG_THERMAL_HWMON is not set |
909 | CONFIG_WATCHDOG=y | 943 | CONFIG_WATCHDOG=y |
@@ -942,11 +976,13 @@ CONFIG_SSB_POSSIBLE=y | |||
942 | # CONFIG_TWL4030_CORE is not set | 976 | # CONFIG_TWL4030_CORE is not set |
943 | # CONFIG_MFD_TMIO is not set | 977 | # CONFIG_MFD_TMIO is not set |
944 | # CONFIG_PMIC_DA903X is not set | 978 | # CONFIG_PMIC_DA903X is not set |
979 | # CONFIG_PMIC_ADP5520 is not set | ||
945 | # CONFIG_MFD_WM8400 is not set | 980 | # CONFIG_MFD_WM8400 is not set |
946 | # CONFIG_MFD_WM831X is not set | 981 | # CONFIG_MFD_WM831X is not set |
947 | # CONFIG_MFD_WM8350_I2C is not set | 982 | # CONFIG_MFD_WM8350_I2C is not set |
948 | # CONFIG_MFD_PCF50633 is not set | 983 | # CONFIG_MFD_PCF50633 is not set |
949 | # CONFIG_AB3100_CORE is not set | 984 | # CONFIG_AB3100_CORE is not set |
985 | # CONFIG_MFD_88PM8607 is not set | ||
950 | # CONFIG_REGULATOR is not set | 986 | # CONFIG_REGULATOR is not set |
951 | # CONFIG_MEDIA_SUPPORT is not set | 987 | # CONFIG_MEDIA_SUPPORT is not set |
952 | 988 | ||
@@ -996,6 +1032,7 @@ CONFIG_USB_MON=y | |||
996 | CONFIG_USB_EHCI_HCD=y | 1032 | CONFIG_USB_EHCI_HCD=y |
997 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1033 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
998 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1034 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1035 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
999 | CONFIG_USB_EHCI_FSL=y | 1036 | CONFIG_USB_EHCI_FSL=y |
1000 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1037 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1001 | # CONFIG_USB_OXU210HP_HCD is not set | 1038 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1101,6 +1138,7 @@ CONFIG_RTC_DRV_DS1374=y | |||
1101 | # CONFIG_RTC_DRV_PCF8563 is not set | 1138 | # CONFIG_RTC_DRV_PCF8563 is not set |
1102 | # CONFIG_RTC_DRV_PCF8583 is not set | 1139 | # CONFIG_RTC_DRV_PCF8583 is not set |
1103 | # CONFIG_RTC_DRV_M41T80 is not set | 1140 | # CONFIG_RTC_DRV_M41T80 is not set |
1141 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1104 | # CONFIG_RTC_DRV_S35390A is not set | 1142 | # CONFIG_RTC_DRV_S35390A is not set |
1105 | # CONFIG_RTC_DRV_FM3130 is not set | 1143 | # CONFIG_RTC_DRV_FM3130 is not set |
1106 | # CONFIG_RTC_DRV_RX8581 is not set | 1144 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1122,7 +1160,9 @@ CONFIG_RTC_DRV_DS1374=y | |||
1122 | # CONFIG_RTC_DRV_M48T86 is not set | 1160 | # CONFIG_RTC_DRV_M48T86 is not set |
1123 | # CONFIG_RTC_DRV_M48T35 is not set | 1161 | # CONFIG_RTC_DRV_M48T35 is not set |
1124 | # CONFIG_RTC_DRV_M48T59 is not set | 1162 | # CONFIG_RTC_DRV_M48T59 is not set |
1163 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1125 | # CONFIG_RTC_DRV_BQ4802 is not set | 1164 | # CONFIG_RTC_DRV_BQ4802 is not set |
1165 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1126 | # CONFIG_RTC_DRV_V3020 is not set | 1166 | # CONFIG_RTC_DRV_V3020 is not set |
1127 | 1167 | ||
1128 | # | 1168 | # |
@@ -1347,7 +1387,7 @@ CONFIG_FRAME_WARN=1024 | |||
1347 | # CONFIG_DEBUG_KERNEL is not set | 1387 | # CONFIG_DEBUG_KERNEL is not set |
1348 | # CONFIG_SLUB_DEBUG_ON is not set | 1388 | # CONFIG_SLUB_DEBUG_ON is not set |
1349 | # CONFIG_SLUB_STATS is not set | 1389 | # CONFIG_SLUB_STATS is not set |
1350 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1390 | CONFIG_DEBUG_BUGVERBOSE=y |
1351 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1391 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1352 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1392 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1353 | # CONFIG_LATENCYTOP is not set | 1393 | # CONFIG_LATENCYTOP is not set |
@@ -1374,7 +1414,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1374 | # CONFIG_KEYS is not set | 1414 | # CONFIG_KEYS is not set |
1375 | # CONFIG_SECURITY is not set | 1415 | # CONFIG_SECURITY is not set |
1376 | # CONFIG_SECURITYFS is not set | 1416 | # CONFIG_SECURITYFS is not set |
1377 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1417 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1418 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1419 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1420 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1421 | CONFIG_DEFAULT_SECURITY="" | ||
1378 | CONFIG_CRYPTO=y | 1422 | CONFIG_CRYPTO=y |
1379 | 1423 | ||
1380 | # | 1424 | # |
diff --git a/arch/powerpc/configs/83xx/kmeter1_defconfig b/arch/powerpc/configs/83xx/kmeter1_defconfig index 6694fb73cd9..8b1aa806e54 100644 --- a/arch/powerpc/configs/83xx/kmeter1_defconfig +++ b/arch/powerpc/configs/83xx/kmeter1_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:21 2009 | 4 | # Wed Jan 6 09:24:14 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -89,6 +91,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
89 | # | 91 | # |
90 | CONFIG_TREE_RCU=y | 92 | CONFIG_TREE_RCU=y |
91 | # CONFIG_TREE_PREEMPT_RCU is not set | 93 | # CONFIG_TREE_PREEMPT_RCU is not set |
94 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | 95 | # CONFIG_RCU_TRACE is not set |
93 | CONFIG_RCU_FANOUT=32 | 96 | CONFIG_RCU_FANOUT=32 |
94 | # CONFIG_RCU_FANOUT_EXACT is not set | 97 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -168,14 +171,41 @@ CONFIG_LBDAF=y | |||
168 | # IO Schedulers | 171 | # IO Schedulers |
169 | # | 172 | # |
170 | CONFIG_IOSCHED_NOOP=y | 173 | CONFIG_IOSCHED_NOOP=y |
171 | # CONFIG_IOSCHED_AS is not set | ||
172 | # CONFIG_IOSCHED_DEADLINE is not set | 174 | # CONFIG_IOSCHED_DEADLINE is not set |
173 | # CONFIG_IOSCHED_CFQ is not set | 175 | # CONFIG_IOSCHED_CFQ is not set |
174 | # CONFIG_DEFAULT_AS is not set | ||
175 | # CONFIG_DEFAULT_DEADLINE is not set | 176 | # CONFIG_DEFAULT_DEADLINE is not set |
176 | # CONFIG_DEFAULT_CFQ is not set | 177 | # CONFIG_DEFAULT_CFQ is not set |
177 | CONFIG_DEFAULT_NOOP=y | 178 | CONFIG_DEFAULT_NOOP=y |
178 | CONFIG_DEFAULT_IOSCHED="noop" | 179 | CONFIG_DEFAULT_IOSCHED="noop" |
180 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
181 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
182 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
183 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
184 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
185 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
186 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
189 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
190 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
191 | # CONFIG_INLINE_READ_LOCK is not set | ||
192 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
193 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
194 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
195 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
196 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
197 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
198 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
199 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
200 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
201 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
202 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
203 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
204 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
206 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
207 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
208 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
179 | # CONFIG_FREEZER is not set | 209 | # CONFIG_FREEZER is not set |
180 | 210 | ||
181 | # | 211 | # |
@@ -253,6 +283,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
253 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
254 | # CONFIG_KEXEC is not set | 284 | # CONFIG_KEXEC is not set |
255 | # CONFIG_CRASH_DUMP is not set | 285 | # CONFIG_CRASH_DUMP is not set |
286 | CONFIG_SPARSE_IRQ=y | ||
256 | CONFIG_MAX_ACTIVE_REGIONS=32 | 287 | CONFIG_MAX_ACTIVE_REGIONS=32 |
257 | CONFIG_ARCH_FLATMEM_ENABLE=y | 288 | CONFIG_ARCH_FLATMEM_ENABLE=y |
258 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 289 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -269,8 +300,6 @@ CONFIG_MIGRATION=y | |||
269 | CONFIG_ZONE_DMA_FLAG=1 | 300 | CONFIG_ZONE_DMA_FLAG=1 |
270 | CONFIG_BOUNCE=y | 301 | CONFIG_BOUNCE=y |
271 | CONFIG_VIRT_TO_BUS=y | 302 | CONFIG_VIRT_TO_BUS=y |
272 | CONFIG_HAVE_MLOCK=y | ||
273 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
274 | # CONFIG_KSM is not set | 303 | # CONFIG_KSM is not set |
275 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 304 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
276 | CONFIG_PPC_4K_PAGES=y | 305 | CONFIG_PPC_4K_PAGES=y |
@@ -384,7 +413,13 @@ CONFIG_LLC=m | |||
384 | # CONFIG_IRDA is not set | 413 | # CONFIG_IRDA is not set |
385 | # CONFIG_BT is not set | 414 | # CONFIG_BT is not set |
386 | # CONFIG_AF_RXRPC is not set | 415 | # CONFIG_AF_RXRPC is not set |
387 | # CONFIG_WIRELESS is not set | 416 | CONFIG_WIRELESS=y |
417 | # CONFIG_CFG80211 is not set | ||
418 | # CONFIG_LIB80211 is not set | ||
419 | |||
420 | # | ||
421 | # CFG80211 needs to be enabled for MAC80211 | ||
422 | # | ||
388 | # CONFIG_WIMAX is not set | 423 | # CONFIG_WIMAX is not set |
389 | # CONFIG_RFKILL is not set | 424 | # CONFIG_RFKILL is not set |
390 | # CONFIG_NET_9P is not set | 425 | # CONFIG_NET_9P is not set |
@@ -512,6 +547,10 @@ CONFIG_BLK_DEV=y | |||
512 | # CONFIG_BLK_DEV_FD is not set | 547 | # CONFIG_BLK_DEV_FD is not set |
513 | # CONFIG_BLK_DEV_COW_COMMON is not set | 548 | # CONFIG_BLK_DEV_COW_COMMON is not set |
514 | # CONFIG_BLK_DEV_LOOP is not set | 549 | # CONFIG_BLK_DEV_LOOP is not set |
550 | |||
551 | # | ||
552 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
553 | # | ||
515 | # CONFIG_BLK_DEV_NBD is not set | 554 | # CONFIG_BLK_DEV_NBD is not set |
516 | # CONFIG_BLK_DEV_RAM is not set | 555 | # CONFIG_BLK_DEV_RAM is not set |
517 | # CONFIG_CDROM_PKTCDVD is not set | 556 | # CONFIG_CDROM_PKTCDVD is not set |
@@ -581,8 +620,7 @@ CONFIG_UCC_GETH=y | |||
581 | # CONFIG_MV643XX_ETH is not set | 620 | # CONFIG_MV643XX_ETH is not set |
582 | # CONFIG_NETDEV_10000 is not set | 621 | # CONFIG_NETDEV_10000 is not set |
583 | CONFIG_WLAN=y | 622 | CONFIG_WLAN=y |
584 | # CONFIG_WLAN_PRE80211 is not set | 623 | # CONFIG_HOSTAP is not set |
585 | # CONFIG_WLAN_80211 is not set | ||
586 | 624 | ||
587 | # | 625 | # |
588 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 626 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -652,6 +690,7 @@ CONFIG_SERIAL_CORE=y | |||
652 | CONFIG_SERIAL_CORE_CONSOLE=y | 690 | CONFIG_SERIAL_CORE_CONSOLE=y |
653 | # CONFIG_SERIAL_OF_PLATFORM is not set | 691 | # CONFIG_SERIAL_OF_PLATFORM is not set |
654 | # CONFIG_SERIAL_QE is not set | 692 | # CONFIG_SERIAL_QE is not set |
693 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
655 | CONFIG_UNIX98_PTYS=y | 694 | CONFIG_UNIX98_PTYS=y |
656 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 695 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
657 | CONFIG_LEGACY_PTYS=y | 696 | CONFIG_LEGACY_PTYS=y |
@@ -697,7 +736,6 @@ CONFIG_I2C_MPC=y | |||
697 | # | 736 | # |
698 | # Miscellaneous I2C Chip support | 737 | # Miscellaneous I2C Chip support |
699 | # | 738 | # |
700 | # CONFIG_DS1682 is not set | ||
701 | # CONFIG_SENSORS_TSL2550 is not set | 739 | # CONFIG_SENSORS_TSL2550 is not set |
702 | # CONFIG_I2C_DEBUG_CORE is not set | 740 | # CONFIG_I2C_DEBUG_CORE is not set |
703 | # CONFIG_I2C_DEBUG_ALGO is not set | 741 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -732,11 +770,13 @@ CONFIG_SSB_POSSIBLE=y | |||
732 | # CONFIG_TWL4030_CORE is not set | 770 | # CONFIG_TWL4030_CORE is not set |
733 | # CONFIG_MFD_TMIO is not set | 771 | # CONFIG_MFD_TMIO is not set |
734 | # CONFIG_PMIC_DA903X is not set | 772 | # CONFIG_PMIC_DA903X is not set |
773 | # CONFIG_PMIC_ADP5520 is not set | ||
735 | # CONFIG_MFD_WM8400 is not set | 774 | # CONFIG_MFD_WM8400 is not set |
736 | # CONFIG_MFD_WM831X is not set | 775 | # CONFIG_MFD_WM831X is not set |
737 | # CONFIG_MFD_WM8350_I2C is not set | 776 | # CONFIG_MFD_WM8350_I2C is not set |
738 | # CONFIG_MFD_PCF50633 is not set | 777 | # CONFIG_MFD_PCF50633 is not set |
739 | # CONFIG_AB3100_CORE is not set | 778 | # CONFIG_AB3100_CORE is not set |
779 | # CONFIG_MFD_88PM8607 is not set | ||
740 | # CONFIG_REGULATOR is not set | 780 | # CONFIG_REGULATOR is not set |
741 | # CONFIG_MEDIA_SUPPORT is not set | 781 | # CONFIG_MEDIA_SUPPORT is not set |
742 | 782 | ||
@@ -933,7 +973,7 @@ CONFIG_FRAME_WARN=1024 | |||
933 | CONFIG_DEBUG_FS=y | 973 | CONFIG_DEBUG_FS=y |
934 | # CONFIG_HEADERS_CHECK is not set | 974 | # CONFIG_HEADERS_CHECK is not set |
935 | # CONFIG_DEBUG_KERNEL is not set | 975 | # CONFIG_DEBUG_KERNEL is not set |
936 | # CONFIG_DEBUG_BUGVERBOSE is not set | 976 | CONFIG_DEBUG_BUGVERBOSE=y |
937 | # CONFIG_DEBUG_MEMORY_INIT is not set | 977 | # CONFIG_DEBUG_MEMORY_INIT is not set |
938 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 978 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
939 | # CONFIG_LATENCYTOP is not set | 979 | # CONFIG_LATENCYTOP is not set |
@@ -963,7 +1003,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
963 | # CONFIG_KEYS is not set | 1003 | # CONFIG_KEYS is not set |
964 | # CONFIG_SECURITY is not set | 1004 | # CONFIG_SECURITY is not set |
965 | # CONFIG_SECURITYFS is not set | 1005 | # CONFIG_SECURITYFS is not set |
966 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1006 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1007 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1008 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1009 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1010 | CONFIG_DEFAULT_SECURITY="" | ||
967 | # CONFIG_CRYPTO is not set | 1011 | # CONFIG_CRYPTO is not set |
968 | # CONFIG_PPC_CLOCK is not set | 1012 | # CONFIG_PPC_CLOCK is not set |
969 | CONFIG_PPC_LIB_RHEAP=y | 1013 | CONFIG_PPC_LIB_RHEAP=y |
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig index 86df19f041a..2f2d98558e4 100644 --- a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig +++ b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:22 2009 | 4 | # Wed Jan 6 09:24:15 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -173,14 +176,41 @@ CONFIG_LBDAF=y | |||
173 | # IO Schedulers | 176 | # IO Schedulers |
174 | # | 177 | # |
175 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
176 | CONFIG_IOSCHED_AS=y | ||
177 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
178 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
179 | CONFIG_DEFAULT_AS=y | ||
180 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
181 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
182 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
183 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
184 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
185 | 215 | ||
186 | # | 216 | # |
@@ -259,6 +289,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
259 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 289 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
260 | # CONFIG_KEXEC is not set | 290 | # CONFIG_KEXEC is not set |
261 | # CONFIG_CRASH_DUMP is not set | 291 | # CONFIG_CRASH_DUMP is not set |
292 | CONFIG_SPARSE_IRQ=y | ||
262 | CONFIG_MAX_ACTIVE_REGIONS=32 | 293 | CONFIG_MAX_ACTIVE_REGIONS=32 |
263 | CONFIG_ARCH_FLATMEM_ENABLE=y | 294 | CONFIG_ARCH_FLATMEM_ENABLE=y |
264 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 295 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -275,8 +306,6 @@ CONFIG_MIGRATION=y | |||
275 | CONFIG_ZONE_DMA_FLAG=1 | 306 | CONFIG_ZONE_DMA_FLAG=1 |
276 | CONFIG_BOUNCE=y | 307 | CONFIG_BOUNCE=y |
277 | CONFIG_VIRT_TO_BUS=y | 308 | CONFIG_VIRT_TO_BUS=y |
278 | CONFIG_HAVE_MLOCK=y | ||
279 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
280 | # CONFIG_KSM is not set | 309 | # CONFIG_KSM is not set |
281 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 310 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
282 | CONFIG_PPC_4K_PAGES=y | 311 | CONFIG_PPC_4K_PAGES=y |
@@ -404,9 +433,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
404 | # CONFIG_AF_RXRPC is not set | 433 | # CONFIG_AF_RXRPC is not set |
405 | CONFIG_WIRELESS=y | 434 | CONFIG_WIRELESS=y |
406 | # CONFIG_CFG80211 is not set | 435 | # CONFIG_CFG80211 is not set |
407 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
408 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
409 | # CONFIG_WIRELESS_EXT is not set | ||
410 | # CONFIG_LIB80211 is not set | 436 | # CONFIG_LIB80211 is not set |
411 | 437 | ||
412 | # | 438 | # |
@@ -544,6 +570,10 @@ CONFIG_BLK_DEV=y | |||
544 | # CONFIG_BLK_DEV_COW_COMMON is not set | 570 | # CONFIG_BLK_DEV_COW_COMMON is not set |
545 | CONFIG_BLK_DEV_LOOP=y | 571 | CONFIG_BLK_DEV_LOOP=y |
546 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 572 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
573 | |||
574 | # | ||
575 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
576 | # | ||
547 | # CONFIG_BLK_DEV_NBD is not set | 577 | # CONFIG_BLK_DEV_NBD is not set |
548 | # CONFIG_BLK_DEV_SX8 is not set | 578 | # CONFIG_BLK_DEV_SX8 is not set |
549 | # CONFIG_BLK_DEV_UB is not set | 579 | # CONFIG_BLK_DEV_UB is not set |
@@ -555,6 +585,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
555 | # CONFIG_ATA_OVER_ETH is not set | 585 | # CONFIG_ATA_OVER_ETH is not set |
556 | # CONFIG_BLK_DEV_HD is not set | 586 | # CONFIG_BLK_DEV_HD is not set |
557 | CONFIG_MISC_DEVICES=y | 587 | CONFIG_MISC_DEVICES=y |
588 | # CONFIG_AD525X_DPOT is not set | ||
558 | # CONFIG_PHANTOM is not set | 589 | # CONFIG_PHANTOM is not set |
559 | # CONFIG_SGI_IOC4 is not set | 590 | # CONFIG_SGI_IOC4 is not set |
560 | # CONFIG_TIFM_CORE is not set | 591 | # CONFIG_TIFM_CORE is not set |
@@ -562,6 +593,8 @@ CONFIG_MISC_DEVICES=y | |||
562 | # CONFIG_ENCLOSURE_SERVICES is not set | 593 | # CONFIG_ENCLOSURE_SERVICES is not set |
563 | # CONFIG_HP_ILO is not set | 594 | # CONFIG_HP_ILO is not set |
564 | # CONFIG_ISL29003 is not set | 595 | # CONFIG_ISL29003 is not set |
596 | # CONFIG_DS1682 is not set | ||
597 | # CONFIG_TI_DAC7512 is not set | ||
565 | # CONFIG_C2PORT is not set | 598 | # CONFIG_C2PORT is not set |
566 | 599 | ||
567 | # | 600 | # |
@@ -615,7 +648,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
615 | # CONFIG_SCSI_BNX2_ISCSI is not set | 648 | # CONFIG_SCSI_BNX2_ISCSI is not set |
616 | # CONFIG_BE2ISCSI is not set | 649 | # CONFIG_BE2ISCSI is not set |
617 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 650 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
651 | # CONFIG_SCSI_HPSA is not set | ||
618 | # CONFIG_SCSI_3W_9XXX is not set | 652 | # CONFIG_SCSI_3W_9XXX is not set |
653 | # CONFIG_SCSI_3W_SAS is not set | ||
619 | # CONFIG_SCSI_ACARD is not set | 654 | # CONFIG_SCSI_ACARD is not set |
620 | # CONFIG_SCSI_AACRAID is not set | 655 | # CONFIG_SCSI_AACRAID is not set |
621 | # CONFIG_SCSI_AIC7XXX is not set | 656 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -653,6 +688,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
653 | # CONFIG_SCSI_NSP32 is not set | 688 | # CONFIG_SCSI_NSP32 is not set |
654 | # CONFIG_SCSI_DEBUG is not set | 689 | # CONFIG_SCSI_DEBUG is not set |
655 | # CONFIG_SCSI_PMCRAID is not set | 690 | # CONFIG_SCSI_PMCRAID is not set |
691 | # CONFIG_SCSI_PM8001 is not set | ||
656 | # CONFIG_SCSI_SRP is not set | 692 | # CONFIG_SCSI_SRP is not set |
657 | # CONFIG_SCSI_BFA_FC is not set | 693 | # CONFIG_SCSI_BFA_FC is not set |
658 | # CONFIG_SCSI_DH is not set | 694 | # CONFIG_SCSI_DH is not set |
@@ -680,7 +716,7 @@ CONFIG_MD_RAID1=y | |||
680 | # | 716 | # |
681 | 717 | ||
682 | # | 718 | # |
683 | # See the help texts for more information. | 719 | # The newer stack is recommended. |
684 | # | 720 | # |
685 | # CONFIG_FIREWIRE is not set | 721 | # CONFIG_FIREWIRE is not set |
686 | # CONFIG_IEEE1394 is not set | 722 | # CONFIG_IEEE1394 is not set |
@@ -805,8 +841,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
805 | # CONFIG_BE2NET is not set | 841 | # CONFIG_BE2NET is not set |
806 | # CONFIG_TR is not set | 842 | # CONFIG_TR is not set |
807 | CONFIG_WLAN=y | 843 | CONFIG_WLAN=y |
808 | # CONFIG_WLAN_PRE80211 is not set | 844 | # CONFIG_AIRO is not set |
809 | # CONFIG_WLAN_80211 is not set | 845 | # CONFIG_ATMEL is not set |
846 | # CONFIG_PRISM54 is not set | ||
847 | # CONFIG_USB_ZD1201 is not set | ||
848 | # CONFIG_HOSTAP is not set | ||
810 | 849 | ||
811 | # | 850 | # |
812 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 851 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -829,6 +868,7 @@ CONFIG_WLAN=y | |||
829 | # CONFIG_NETCONSOLE is not set | 868 | # CONFIG_NETCONSOLE is not set |
830 | # CONFIG_NETPOLL is not set | 869 | # CONFIG_NETPOLL is not set |
831 | # CONFIG_NET_POLL_CONTROLLER is not set | 870 | # CONFIG_NET_POLL_CONTROLLER is not set |
871 | # CONFIG_VMXNET3 is not set | ||
832 | # CONFIG_ISDN is not set | 872 | # CONFIG_ISDN is not set |
833 | # CONFIG_PHONE is not set | 873 | # CONFIG_PHONE is not set |
834 | 874 | ||
@@ -838,6 +878,7 @@ CONFIG_WLAN=y | |||
838 | CONFIG_INPUT=y | 878 | CONFIG_INPUT=y |
839 | # CONFIG_INPUT_FF_MEMLESS is not set | 879 | # CONFIG_INPUT_FF_MEMLESS is not set |
840 | # CONFIG_INPUT_POLLDEV is not set | 880 | # CONFIG_INPUT_POLLDEV is not set |
881 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
841 | 882 | ||
842 | # | 883 | # |
843 | # Userland interfaces | 884 | # Userland interfaces |
@@ -890,6 +931,7 @@ CONFIG_SERIAL_CORE=y | |||
890 | CONFIG_SERIAL_CORE_CONSOLE=y | 931 | CONFIG_SERIAL_CORE_CONSOLE=y |
891 | # CONFIG_SERIAL_JSM is not set | 932 | # CONFIG_SERIAL_JSM is not set |
892 | # CONFIG_SERIAL_OF_PLATFORM is not set | 933 | # CONFIG_SERIAL_OF_PLATFORM is not set |
934 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
893 | CONFIG_UNIX98_PTYS=y | 935 | CONFIG_UNIX98_PTYS=y |
894 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 936 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
895 | CONFIG_LEGACY_PTYS=y | 937 | CONFIG_LEGACY_PTYS=y |
@@ -947,11 +989,6 @@ CONFIG_I2C_MPC=y | |||
947 | # CONFIG_I2C_TINY_USB is not set | 989 | # CONFIG_I2C_TINY_USB is not set |
948 | 990 | ||
949 | # | 991 | # |
950 | # Graphics adapter I2C/DDC channel drivers | ||
951 | # | ||
952 | # CONFIG_I2C_VOODOO3 is not set | ||
953 | |||
954 | # | ||
955 | # Other I2C/SMBus bus drivers | 992 | # Other I2C/SMBus bus drivers |
956 | # | 993 | # |
957 | # CONFIG_I2C_PCA_PLATFORM is not set | 994 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -960,7 +997,6 @@ CONFIG_I2C_MPC=y | |||
960 | # | 997 | # |
961 | # Miscellaneous I2C Chip support | 998 | # Miscellaneous I2C Chip support |
962 | # | 999 | # |
963 | # CONFIG_DS1682 is not set | ||
964 | # CONFIG_SENSORS_TSL2550 is not set | 1000 | # CONFIG_SENSORS_TSL2550 is not set |
965 | # CONFIG_I2C_DEBUG_CORE is not set | 1001 | # CONFIG_I2C_DEBUG_CORE is not set |
966 | # CONFIG_I2C_DEBUG_ALGO is not set | 1002 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -975,6 +1011,8 @@ CONFIG_SPI_MASTER=y | |||
975 | # | 1011 | # |
976 | CONFIG_SPI_BITBANG=y | 1012 | CONFIG_SPI_BITBANG=y |
977 | # CONFIG_SPI_MPC8xxx is not set | 1013 | # CONFIG_SPI_MPC8xxx is not set |
1014 | # CONFIG_SPI_XILINX is not set | ||
1015 | # CONFIG_SPI_DESIGNWARE is not set | ||
978 | 1016 | ||
979 | # | 1017 | # |
980 | # SPI Protocol Masters | 1018 | # SPI Protocol Masters |
@@ -1022,6 +1060,7 @@ CONFIG_HWMON=y | |||
1022 | # CONFIG_SENSORS_IT87 is not set | 1060 | # CONFIG_SENSORS_IT87 is not set |
1023 | # CONFIG_SENSORS_LM63 is not set | 1061 | # CONFIG_SENSORS_LM63 is not set |
1024 | # CONFIG_SENSORS_LM70 is not set | 1062 | # CONFIG_SENSORS_LM70 is not set |
1063 | # CONFIG_SENSORS_LM73 is not set | ||
1025 | # CONFIG_SENSORS_LM75 is not set | 1064 | # CONFIG_SENSORS_LM75 is not set |
1026 | # CONFIG_SENSORS_LM77 is not set | 1065 | # CONFIG_SENSORS_LM77 is not set |
1027 | # CONFIG_SENSORS_LM78 is not set | 1066 | # CONFIG_SENSORS_LM78 is not set |
@@ -1062,6 +1101,7 @@ CONFIG_HWMON=y | |||
1062 | # CONFIG_SENSORS_W83627HF is not set | 1101 | # CONFIG_SENSORS_W83627HF is not set |
1063 | # CONFIG_SENSORS_W83627EHF is not set | 1102 | # CONFIG_SENSORS_W83627EHF is not set |
1064 | # CONFIG_SENSORS_LIS3_SPI is not set | 1103 | # CONFIG_SENSORS_LIS3_SPI is not set |
1104 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1065 | # CONFIG_THERMAL is not set | 1105 | # CONFIG_THERMAL is not set |
1066 | CONFIG_WATCHDOG=y | 1106 | CONFIG_WATCHDOG=y |
1067 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1107 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1099,6 +1139,7 @@ CONFIG_SSB_POSSIBLE=y | |||
1099 | # CONFIG_TWL4030_CORE is not set | 1139 | # CONFIG_TWL4030_CORE is not set |
1100 | # CONFIG_MFD_TMIO is not set | 1140 | # CONFIG_MFD_TMIO is not set |
1101 | # CONFIG_PMIC_DA903X is not set | 1141 | # CONFIG_PMIC_DA903X is not set |
1142 | # CONFIG_PMIC_ADP5520 is not set | ||
1102 | # CONFIG_MFD_WM8400 is not set | 1143 | # CONFIG_MFD_WM8400 is not set |
1103 | # CONFIG_MFD_WM831X is not set | 1144 | # CONFIG_MFD_WM831X is not set |
1104 | # CONFIG_MFD_WM8350_I2C is not set | 1145 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -1106,6 +1147,8 @@ CONFIG_SSB_POSSIBLE=y | |||
1106 | # CONFIG_MFD_MC13783 is not set | 1147 | # CONFIG_MFD_MC13783 is not set |
1107 | # CONFIG_AB3100_CORE is not set | 1148 | # CONFIG_AB3100_CORE is not set |
1108 | # CONFIG_EZX_PCAP is not set | 1149 | # CONFIG_EZX_PCAP is not set |
1150 | # CONFIG_MFD_88PM8607 is not set | ||
1151 | # CONFIG_AB4500_CORE is not set | ||
1109 | # CONFIG_REGULATOR is not set | 1152 | # CONFIG_REGULATOR is not set |
1110 | # CONFIG_MEDIA_SUPPORT is not set | 1153 | # CONFIG_MEDIA_SUPPORT is not set |
1111 | 1154 | ||
@@ -1173,6 +1216,7 @@ CONFIG_USB_MON=y | |||
1173 | CONFIG_USB_EHCI_HCD=y | 1216 | CONFIG_USB_EHCI_HCD=y |
1174 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1217 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1175 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1218 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1219 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1176 | CONFIG_USB_EHCI_FSL=y | 1220 | CONFIG_USB_EHCI_FSL=y |
1177 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1221 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1178 | # CONFIG_USB_OXU210HP_HCD is not set | 1222 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1287,15 +1331,17 @@ CONFIG_USB_NET2280=y | |||
1287 | CONFIG_USB_GADGET_DUALSPEED=y | 1331 | CONFIG_USB_GADGET_DUALSPEED=y |
1288 | # CONFIG_USB_ZERO is not set | 1332 | # CONFIG_USB_ZERO is not set |
1289 | # CONFIG_USB_AUDIO is not set | 1333 | # CONFIG_USB_AUDIO is not set |
1290 | CONFIG_USB_ETH=y | 1334 | CONFIG_USB_ETH=m |
1291 | CONFIG_USB_ETH_RNDIS=y | 1335 | CONFIG_USB_ETH_RNDIS=y |
1292 | # CONFIG_USB_ETH_EEM is not set | 1336 | # CONFIG_USB_ETH_EEM is not set |
1293 | # CONFIG_USB_GADGETFS is not set | 1337 | # CONFIG_USB_GADGETFS is not set |
1294 | # CONFIG_USB_FILE_STORAGE is not set | 1338 | # CONFIG_USB_FILE_STORAGE is not set |
1339 | # CONFIG_USB_MASS_STORAGE is not set | ||
1295 | # CONFIG_USB_G_SERIAL is not set | 1340 | # CONFIG_USB_G_SERIAL is not set |
1296 | # CONFIG_USB_MIDI_GADGET is not set | 1341 | # CONFIG_USB_MIDI_GADGET is not set |
1297 | # CONFIG_USB_G_PRINTER is not set | 1342 | # CONFIG_USB_G_PRINTER is not set |
1298 | # CONFIG_USB_CDC_COMPOSITE is not set | 1343 | # CONFIG_USB_CDC_COMPOSITE is not set |
1344 | # CONFIG_USB_G_MULTI is not set | ||
1299 | 1345 | ||
1300 | # | 1346 | # |
1301 | # OTG and related infrastructure | 1347 | # OTG and related infrastructure |
@@ -1336,6 +1382,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1336 | # CONFIG_RTC_DRV_PCF8563 is not set | 1382 | # CONFIG_RTC_DRV_PCF8563 is not set |
1337 | # CONFIG_RTC_DRV_PCF8583 is not set | 1383 | # CONFIG_RTC_DRV_PCF8583 is not set |
1338 | # CONFIG_RTC_DRV_M41T80 is not set | 1384 | # CONFIG_RTC_DRV_M41T80 is not set |
1385 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1339 | # CONFIG_RTC_DRV_S35390A is not set | 1386 | # CONFIG_RTC_DRV_S35390A is not set |
1340 | # CONFIG_RTC_DRV_FM3130 is not set | 1387 | # CONFIG_RTC_DRV_FM3130 is not set |
1341 | # CONFIG_RTC_DRV_RX8581 is not set | 1388 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1365,7 +1412,9 @@ CONFIG_RTC_DRV_DS1307=y | |||
1365 | # CONFIG_RTC_DRV_M48T86 is not set | 1412 | # CONFIG_RTC_DRV_M48T86 is not set |
1366 | # CONFIG_RTC_DRV_M48T35 is not set | 1413 | # CONFIG_RTC_DRV_M48T35 is not set |
1367 | # CONFIG_RTC_DRV_M48T59 is not set | 1414 | # CONFIG_RTC_DRV_M48T59 is not set |
1415 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1368 | # CONFIG_RTC_DRV_BQ4802 is not set | 1416 | # CONFIG_RTC_DRV_BQ4802 is not set |
1417 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1369 | # CONFIG_RTC_DRV_V3020 is not set | 1418 | # CONFIG_RTC_DRV_V3020 is not set |
1370 | 1419 | ||
1371 | # | 1420 | # |
@@ -1676,7 +1725,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1676 | # CONFIG_KEYS is not set | 1725 | # CONFIG_KEYS is not set |
1677 | # CONFIG_SECURITY is not set | 1726 | # CONFIG_SECURITY is not set |
1678 | # CONFIG_SECURITYFS is not set | 1727 | # CONFIG_SECURITYFS is not set |
1679 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1728 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1729 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1730 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1731 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1732 | CONFIG_DEFAULT_SECURITY="" | ||
1680 | CONFIG_CRYPTO=y | 1733 | CONFIG_CRYPTO=y |
1681 | 1734 | ||
1682 | # | 1735 | # |
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig index 7bf71d57703..633e6119460 100644 --- a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig +++ b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:23 2009 | 4 | # Wed Jan 6 09:24:16 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -173,14 +176,41 @@ CONFIG_LBDAF=y | |||
173 | # IO Schedulers | 176 | # IO Schedulers |
174 | # | 177 | # |
175 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
176 | CONFIG_IOSCHED_AS=y | ||
177 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
178 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
179 | CONFIG_DEFAULT_AS=y | ||
180 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
181 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
182 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
183 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
184 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
185 | 215 | ||
186 | # | 216 | # |
@@ -259,6 +289,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
259 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 289 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
260 | # CONFIG_KEXEC is not set | 290 | # CONFIG_KEXEC is not set |
261 | # CONFIG_CRASH_DUMP is not set | 291 | # CONFIG_CRASH_DUMP is not set |
292 | CONFIG_SPARSE_IRQ=y | ||
262 | CONFIG_MAX_ACTIVE_REGIONS=32 | 293 | CONFIG_MAX_ACTIVE_REGIONS=32 |
263 | CONFIG_ARCH_FLATMEM_ENABLE=y | 294 | CONFIG_ARCH_FLATMEM_ENABLE=y |
264 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 295 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -275,8 +306,6 @@ CONFIG_MIGRATION=y | |||
275 | CONFIG_ZONE_DMA_FLAG=1 | 306 | CONFIG_ZONE_DMA_FLAG=1 |
276 | CONFIG_BOUNCE=y | 307 | CONFIG_BOUNCE=y |
277 | CONFIG_VIRT_TO_BUS=y | 308 | CONFIG_VIRT_TO_BUS=y |
278 | CONFIG_HAVE_MLOCK=y | ||
279 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
280 | # CONFIG_KSM is not set | 309 | # CONFIG_KSM is not set |
281 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 310 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
282 | CONFIG_PPC_4K_PAGES=y | 311 | CONFIG_PPC_4K_PAGES=y |
@@ -404,9 +433,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
404 | # CONFIG_AF_RXRPC is not set | 433 | # CONFIG_AF_RXRPC is not set |
405 | CONFIG_WIRELESS=y | 434 | CONFIG_WIRELESS=y |
406 | # CONFIG_CFG80211 is not set | 435 | # CONFIG_CFG80211 is not set |
407 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
408 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
409 | # CONFIG_WIRELESS_EXT is not set | ||
410 | # CONFIG_LIB80211 is not set | 436 | # CONFIG_LIB80211 is not set |
411 | 437 | ||
412 | # | 438 | # |
@@ -544,6 +570,10 @@ CONFIG_BLK_DEV=y | |||
544 | # CONFIG_BLK_DEV_COW_COMMON is not set | 570 | # CONFIG_BLK_DEV_COW_COMMON is not set |
545 | CONFIG_BLK_DEV_LOOP=y | 571 | CONFIG_BLK_DEV_LOOP=y |
546 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 572 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
573 | |||
574 | # | ||
575 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
576 | # | ||
547 | # CONFIG_BLK_DEV_NBD is not set | 577 | # CONFIG_BLK_DEV_NBD is not set |
548 | # CONFIG_BLK_DEV_SX8 is not set | 578 | # CONFIG_BLK_DEV_SX8 is not set |
549 | # CONFIG_BLK_DEV_UB is not set | 579 | # CONFIG_BLK_DEV_UB is not set |
@@ -555,6 +585,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
555 | # CONFIG_ATA_OVER_ETH is not set | 585 | # CONFIG_ATA_OVER_ETH is not set |
556 | # CONFIG_BLK_DEV_HD is not set | 586 | # CONFIG_BLK_DEV_HD is not set |
557 | CONFIG_MISC_DEVICES=y | 587 | CONFIG_MISC_DEVICES=y |
588 | # CONFIG_AD525X_DPOT is not set | ||
558 | # CONFIG_PHANTOM is not set | 589 | # CONFIG_PHANTOM is not set |
559 | # CONFIG_SGI_IOC4 is not set | 590 | # CONFIG_SGI_IOC4 is not set |
560 | # CONFIG_TIFM_CORE is not set | 591 | # CONFIG_TIFM_CORE is not set |
@@ -562,6 +593,8 @@ CONFIG_MISC_DEVICES=y | |||
562 | # CONFIG_ENCLOSURE_SERVICES is not set | 593 | # CONFIG_ENCLOSURE_SERVICES is not set |
563 | # CONFIG_HP_ILO is not set | 594 | # CONFIG_HP_ILO is not set |
564 | # CONFIG_ISL29003 is not set | 595 | # CONFIG_ISL29003 is not set |
596 | # CONFIG_DS1682 is not set | ||
597 | # CONFIG_TI_DAC7512 is not set | ||
565 | # CONFIG_C2PORT is not set | 598 | # CONFIG_C2PORT is not set |
566 | 599 | ||
567 | # | 600 | # |
@@ -615,7 +648,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
615 | # CONFIG_SCSI_BNX2_ISCSI is not set | 648 | # CONFIG_SCSI_BNX2_ISCSI is not set |
616 | # CONFIG_BE2ISCSI is not set | 649 | # CONFIG_BE2ISCSI is not set |
617 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 650 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
651 | # CONFIG_SCSI_HPSA is not set | ||
618 | # CONFIG_SCSI_3W_9XXX is not set | 652 | # CONFIG_SCSI_3W_9XXX is not set |
653 | # CONFIG_SCSI_3W_SAS is not set | ||
619 | # CONFIG_SCSI_ACARD is not set | 654 | # CONFIG_SCSI_ACARD is not set |
620 | # CONFIG_SCSI_AACRAID is not set | 655 | # CONFIG_SCSI_AACRAID is not set |
621 | # CONFIG_SCSI_AIC7XXX is not set | 656 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -654,6 +689,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
654 | # CONFIG_SCSI_NSP32 is not set | 689 | # CONFIG_SCSI_NSP32 is not set |
655 | # CONFIG_SCSI_DEBUG is not set | 690 | # CONFIG_SCSI_DEBUG is not set |
656 | # CONFIG_SCSI_PMCRAID is not set | 691 | # CONFIG_SCSI_PMCRAID is not set |
692 | # CONFIG_SCSI_PM8001 is not set | ||
657 | # CONFIG_SCSI_SRP is not set | 693 | # CONFIG_SCSI_SRP is not set |
658 | # CONFIG_SCSI_BFA_FC is not set | 694 | # CONFIG_SCSI_BFA_FC is not set |
659 | # CONFIG_SCSI_DH is not set | 695 | # CONFIG_SCSI_DH is not set |
@@ -709,15 +745,16 @@ CONFIG_ATA_SFF=y | |||
709 | # CONFIG_PATA_NS87415 is not set | 745 | # CONFIG_PATA_NS87415 is not set |
710 | # CONFIG_PATA_OPTI is not set | 746 | # CONFIG_PATA_OPTI is not set |
711 | # CONFIG_PATA_OPTIDMA is not set | 747 | # CONFIG_PATA_OPTIDMA is not set |
748 | # CONFIG_PATA_PDC2027X is not set | ||
712 | # CONFIG_PATA_PDC_OLD is not set | 749 | # CONFIG_PATA_PDC_OLD is not set |
713 | # CONFIG_PATA_RADISYS is not set | 750 | # CONFIG_PATA_RADISYS is not set |
714 | # CONFIG_PATA_RDC is not set | 751 | # CONFIG_PATA_RDC is not set |
715 | # CONFIG_PATA_RZ1000 is not set | 752 | # CONFIG_PATA_RZ1000 is not set |
716 | # CONFIG_PATA_SC1200 is not set | 753 | # CONFIG_PATA_SC1200 is not set |
717 | # CONFIG_PATA_SERVERWORKS is not set | 754 | # CONFIG_PATA_SERVERWORKS is not set |
718 | # CONFIG_PATA_PDC2027X is not set | ||
719 | # CONFIG_PATA_SIL680 is not set | 755 | # CONFIG_PATA_SIL680 is not set |
720 | # CONFIG_PATA_SIS is not set | 756 | # CONFIG_PATA_SIS is not set |
757 | # CONFIG_PATA_TOSHIBA is not set | ||
721 | # CONFIG_PATA_VIA is not set | 758 | # CONFIG_PATA_VIA is not set |
722 | # CONFIG_PATA_WINBOND is not set | 759 | # CONFIG_PATA_WINBOND is not set |
723 | # CONFIG_PATA_PLATFORM is not set | 760 | # CONFIG_PATA_PLATFORM is not set |
@@ -744,7 +781,7 @@ CONFIG_MD_RAID1=y | |||
744 | # | 781 | # |
745 | 782 | ||
746 | # | 783 | # |
747 | # See the help texts for more information. | 784 | # The newer stack is recommended. |
748 | # | 785 | # |
749 | # CONFIG_FIREWIRE is not set | 786 | # CONFIG_FIREWIRE is not set |
750 | # CONFIG_IEEE1394 is not set | 787 | # CONFIG_IEEE1394 is not set |
@@ -869,8 +906,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
869 | # CONFIG_BE2NET is not set | 906 | # CONFIG_BE2NET is not set |
870 | # CONFIG_TR is not set | 907 | # CONFIG_TR is not set |
871 | CONFIG_WLAN=y | 908 | CONFIG_WLAN=y |
872 | # CONFIG_WLAN_PRE80211 is not set | 909 | # CONFIG_AIRO is not set |
873 | # CONFIG_WLAN_80211 is not set | 910 | # CONFIG_ATMEL is not set |
911 | # CONFIG_PRISM54 is not set | ||
912 | # CONFIG_USB_ZD1201 is not set | ||
913 | # CONFIG_HOSTAP is not set | ||
874 | 914 | ||
875 | # | 915 | # |
876 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 916 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -893,6 +933,7 @@ CONFIG_WLAN=y | |||
893 | # CONFIG_NETCONSOLE is not set | 933 | # CONFIG_NETCONSOLE is not set |
894 | # CONFIG_NETPOLL is not set | 934 | # CONFIG_NETPOLL is not set |
895 | # CONFIG_NET_POLL_CONTROLLER is not set | 935 | # CONFIG_NET_POLL_CONTROLLER is not set |
936 | # CONFIG_VMXNET3 is not set | ||
896 | # CONFIG_ISDN is not set | 937 | # CONFIG_ISDN is not set |
897 | # CONFIG_PHONE is not set | 938 | # CONFIG_PHONE is not set |
898 | 939 | ||
@@ -902,6 +943,7 @@ CONFIG_WLAN=y | |||
902 | CONFIG_INPUT=y | 943 | CONFIG_INPUT=y |
903 | # CONFIG_INPUT_FF_MEMLESS is not set | 944 | # CONFIG_INPUT_FF_MEMLESS is not set |
904 | # CONFIG_INPUT_POLLDEV is not set | 945 | # CONFIG_INPUT_POLLDEV is not set |
946 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
905 | 947 | ||
906 | # | 948 | # |
907 | # Userland interfaces | 949 | # Userland interfaces |
@@ -954,6 +996,7 @@ CONFIG_SERIAL_CORE=y | |||
954 | CONFIG_SERIAL_CORE_CONSOLE=y | 996 | CONFIG_SERIAL_CORE_CONSOLE=y |
955 | # CONFIG_SERIAL_JSM is not set | 997 | # CONFIG_SERIAL_JSM is not set |
956 | # CONFIG_SERIAL_OF_PLATFORM is not set | 998 | # CONFIG_SERIAL_OF_PLATFORM is not set |
999 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
957 | CONFIG_UNIX98_PTYS=y | 1000 | CONFIG_UNIX98_PTYS=y |
958 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 1001 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
959 | CONFIG_LEGACY_PTYS=y | 1002 | CONFIG_LEGACY_PTYS=y |
@@ -1011,11 +1054,6 @@ CONFIG_I2C_MPC=y | |||
1011 | # CONFIG_I2C_TINY_USB is not set | 1054 | # CONFIG_I2C_TINY_USB is not set |
1012 | 1055 | ||
1013 | # | 1056 | # |
1014 | # Graphics adapter I2C/DDC channel drivers | ||
1015 | # | ||
1016 | # CONFIG_I2C_VOODOO3 is not set | ||
1017 | |||
1018 | # | ||
1019 | # Other I2C/SMBus bus drivers | 1057 | # Other I2C/SMBus bus drivers |
1020 | # | 1058 | # |
1021 | # CONFIG_I2C_PCA_PLATFORM is not set | 1059 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -1024,7 +1062,6 @@ CONFIG_I2C_MPC=y | |||
1024 | # | 1062 | # |
1025 | # Miscellaneous I2C Chip support | 1063 | # Miscellaneous I2C Chip support |
1026 | # | 1064 | # |
1027 | # CONFIG_DS1682 is not set | ||
1028 | # CONFIG_SENSORS_TSL2550 is not set | 1065 | # CONFIG_SENSORS_TSL2550 is not set |
1029 | # CONFIG_I2C_DEBUG_CORE is not set | 1066 | # CONFIG_I2C_DEBUG_CORE is not set |
1030 | # CONFIG_I2C_DEBUG_ALGO is not set | 1067 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1039,6 +1076,8 @@ CONFIG_SPI_MASTER=y | |||
1039 | # | 1076 | # |
1040 | CONFIG_SPI_BITBANG=y | 1077 | CONFIG_SPI_BITBANG=y |
1041 | # CONFIG_SPI_MPC8xxx is not set | 1078 | # CONFIG_SPI_MPC8xxx is not set |
1079 | # CONFIG_SPI_XILINX is not set | ||
1080 | # CONFIG_SPI_DESIGNWARE is not set | ||
1042 | 1081 | ||
1043 | # | 1082 | # |
1044 | # SPI Protocol Masters | 1083 | # SPI Protocol Masters |
@@ -1086,6 +1125,7 @@ CONFIG_HWMON=y | |||
1086 | # CONFIG_SENSORS_IT87 is not set | 1125 | # CONFIG_SENSORS_IT87 is not set |
1087 | # CONFIG_SENSORS_LM63 is not set | 1126 | # CONFIG_SENSORS_LM63 is not set |
1088 | # CONFIG_SENSORS_LM70 is not set | 1127 | # CONFIG_SENSORS_LM70 is not set |
1128 | # CONFIG_SENSORS_LM73 is not set | ||
1089 | # CONFIG_SENSORS_LM75 is not set | 1129 | # CONFIG_SENSORS_LM75 is not set |
1090 | # CONFIG_SENSORS_LM77 is not set | 1130 | # CONFIG_SENSORS_LM77 is not set |
1091 | # CONFIG_SENSORS_LM78 is not set | 1131 | # CONFIG_SENSORS_LM78 is not set |
@@ -1126,6 +1166,7 @@ CONFIG_HWMON=y | |||
1126 | # CONFIG_SENSORS_W83627HF is not set | 1166 | # CONFIG_SENSORS_W83627HF is not set |
1127 | # CONFIG_SENSORS_W83627EHF is not set | 1167 | # CONFIG_SENSORS_W83627EHF is not set |
1128 | # CONFIG_SENSORS_LIS3_SPI is not set | 1168 | # CONFIG_SENSORS_LIS3_SPI is not set |
1169 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1129 | # CONFIG_THERMAL is not set | 1170 | # CONFIG_THERMAL is not set |
1130 | CONFIG_WATCHDOG=y | 1171 | CONFIG_WATCHDOG=y |
1131 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1172 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1163,6 +1204,7 @@ CONFIG_SSB_POSSIBLE=y | |||
1163 | # CONFIG_TWL4030_CORE is not set | 1204 | # CONFIG_TWL4030_CORE is not set |
1164 | # CONFIG_MFD_TMIO is not set | 1205 | # CONFIG_MFD_TMIO is not set |
1165 | # CONFIG_PMIC_DA903X is not set | 1206 | # CONFIG_PMIC_DA903X is not set |
1207 | # CONFIG_PMIC_ADP5520 is not set | ||
1166 | # CONFIG_MFD_WM8400 is not set | 1208 | # CONFIG_MFD_WM8400 is not set |
1167 | # CONFIG_MFD_WM831X is not set | 1209 | # CONFIG_MFD_WM831X is not set |
1168 | # CONFIG_MFD_WM8350_I2C is not set | 1210 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -1170,6 +1212,8 @@ CONFIG_SSB_POSSIBLE=y | |||
1170 | # CONFIG_MFD_MC13783 is not set | 1212 | # CONFIG_MFD_MC13783 is not set |
1171 | # CONFIG_AB3100_CORE is not set | 1213 | # CONFIG_AB3100_CORE is not set |
1172 | # CONFIG_EZX_PCAP is not set | 1214 | # CONFIG_EZX_PCAP is not set |
1215 | # CONFIG_MFD_88PM8607 is not set | ||
1216 | # CONFIG_AB4500_CORE is not set | ||
1173 | # CONFIG_REGULATOR is not set | 1217 | # CONFIG_REGULATOR is not set |
1174 | # CONFIG_MEDIA_SUPPORT is not set | 1218 | # CONFIG_MEDIA_SUPPORT is not set |
1175 | 1219 | ||
@@ -1237,6 +1281,7 @@ CONFIG_USB_MON=y | |||
1237 | CONFIG_USB_EHCI_HCD=y | 1281 | CONFIG_USB_EHCI_HCD=y |
1238 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1282 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1239 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1283 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1284 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1240 | CONFIG_USB_EHCI_FSL=y | 1285 | CONFIG_USB_EHCI_FSL=y |
1241 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1286 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1242 | # CONFIG_USB_OXU210HP_HCD is not set | 1287 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1351,15 +1396,17 @@ CONFIG_USB_NET2280=y | |||
1351 | CONFIG_USB_GADGET_DUALSPEED=y | 1396 | CONFIG_USB_GADGET_DUALSPEED=y |
1352 | # CONFIG_USB_ZERO is not set | 1397 | # CONFIG_USB_ZERO is not set |
1353 | # CONFIG_USB_AUDIO is not set | 1398 | # CONFIG_USB_AUDIO is not set |
1354 | CONFIG_USB_ETH=y | 1399 | CONFIG_USB_ETH=m |
1355 | CONFIG_USB_ETH_RNDIS=y | 1400 | CONFIG_USB_ETH_RNDIS=y |
1356 | # CONFIG_USB_ETH_EEM is not set | 1401 | # CONFIG_USB_ETH_EEM is not set |
1357 | # CONFIG_USB_GADGETFS is not set | 1402 | # CONFIG_USB_GADGETFS is not set |
1358 | # CONFIG_USB_FILE_STORAGE is not set | 1403 | # CONFIG_USB_FILE_STORAGE is not set |
1404 | # CONFIG_USB_MASS_STORAGE is not set | ||
1359 | # CONFIG_USB_G_SERIAL is not set | 1405 | # CONFIG_USB_G_SERIAL is not set |
1360 | # CONFIG_USB_MIDI_GADGET is not set | 1406 | # CONFIG_USB_MIDI_GADGET is not set |
1361 | # CONFIG_USB_G_PRINTER is not set | 1407 | # CONFIG_USB_G_PRINTER is not set |
1362 | # CONFIG_USB_CDC_COMPOSITE is not set | 1408 | # CONFIG_USB_CDC_COMPOSITE is not set |
1409 | # CONFIG_USB_G_MULTI is not set | ||
1363 | 1410 | ||
1364 | # | 1411 | # |
1365 | # OTG and related infrastructure | 1412 | # OTG and related infrastructure |
@@ -1400,6 +1447,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1400 | # CONFIG_RTC_DRV_PCF8563 is not set | 1447 | # CONFIG_RTC_DRV_PCF8563 is not set |
1401 | # CONFIG_RTC_DRV_PCF8583 is not set | 1448 | # CONFIG_RTC_DRV_PCF8583 is not set |
1402 | # CONFIG_RTC_DRV_M41T80 is not set | 1449 | # CONFIG_RTC_DRV_M41T80 is not set |
1450 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1403 | # CONFIG_RTC_DRV_S35390A is not set | 1451 | # CONFIG_RTC_DRV_S35390A is not set |
1404 | # CONFIG_RTC_DRV_FM3130 is not set | 1452 | # CONFIG_RTC_DRV_FM3130 is not set |
1405 | # CONFIG_RTC_DRV_RX8581 is not set | 1453 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1429,7 +1477,9 @@ CONFIG_RTC_DRV_DS1307=y | |||
1429 | # CONFIG_RTC_DRV_M48T86 is not set | 1477 | # CONFIG_RTC_DRV_M48T86 is not set |
1430 | # CONFIG_RTC_DRV_M48T35 is not set | 1478 | # CONFIG_RTC_DRV_M48T35 is not set |
1431 | # CONFIG_RTC_DRV_M48T59 is not set | 1479 | # CONFIG_RTC_DRV_M48T59 is not set |
1480 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1432 | # CONFIG_RTC_DRV_BQ4802 is not set | 1481 | # CONFIG_RTC_DRV_BQ4802 is not set |
1482 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1433 | # CONFIG_RTC_DRV_V3020 is not set | 1483 | # CONFIG_RTC_DRV_V3020 is not set |
1434 | 1484 | ||
1435 | # | 1485 | # |
@@ -1740,7 +1790,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1740 | # CONFIG_KEYS is not set | 1790 | # CONFIG_KEYS is not set |
1741 | # CONFIG_SECURITY is not set | 1791 | # CONFIG_SECURITY is not set |
1742 | # CONFIG_SECURITYFS is not set | 1792 | # CONFIG_SECURITYFS is not set |
1743 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1793 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1794 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1795 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1796 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1797 | CONFIG_DEFAULT_SECURITY="" | ||
1744 | CONFIG_CRYPTO=y | 1798 | CONFIG_CRYPTO=y |
1745 | 1799 | ||
1746 | # | 1800 | # |
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig index 7def83518a6..0b4262bd491 100644 --- a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig +++ b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:24 2009 | 4 | # Wed Jan 6 09:24:17 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -173,14 +176,41 @@ CONFIG_LBDAF=y | |||
173 | # IO Schedulers | 176 | # IO Schedulers |
174 | # | 177 | # |
175 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
176 | CONFIG_IOSCHED_AS=y | ||
177 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
178 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
179 | CONFIG_DEFAULT_AS=y | ||
180 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
181 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
182 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
183 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
184 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
185 | 215 | ||
186 | # | 216 | # |
@@ -260,6 +290,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
260 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 290 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
261 | # CONFIG_KEXEC is not set | 291 | # CONFIG_KEXEC is not set |
262 | # CONFIG_CRASH_DUMP is not set | 292 | # CONFIG_CRASH_DUMP is not set |
293 | CONFIG_SPARSE_IRQ=y | ||
263 | CONFIG_MAX_ACTIVE_REGIONS=32 | 294 | CONFIG_MAX_ACTIVE_REGIONS=32 |
264 | CONFIG_ARCH_FLATMEM_ENABLE=y | 295 | CONFIG_ARCH_FLATMEM_ENABLE=y |
265 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 296 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -276,8 +307,6 @@ CONFIG_MIGRATION=y | |||
276 | CONFIG_ZONE_DMA_FLAG=1 | 307 | CONFIG_ZONE_DMA_FLAG=1 |
277 | CONFIG_BOUNCE=y | 308 | CONFIG_BOUNCE=y |
278 | CONFIG_VIRT_TO_BUS=y | 309 | CONFIG_VIRT_TO_BUS=y |
279 | CONFIG_HAVE_MLOCK=y | ||
280 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
281 | # CONFIG_KSM is not set | 310 | # CONFIG_KSM is not set |
282 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 311 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
283 | CONFIG_PPC_4K_PAGES=y | 312 | CONFIG_PPC_4K_PAGES=y |
@@ -404,9 +433,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
404 | # CONFIG_AF_RXRPC is not set | 433 | # CONFIG_AF_RXRPC is not set |
405 | CONFIG_WIRELESS=y | 434 | CONFIG_WIRELESS=y |
406 | # CONFIG_CFG80211 is not set | 435 | # CONFIG_CFG80211 is not set |
407 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
408 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
409 | # CONFIG_WIRELESS_EXT is not set | ||
410 | # CONFIG_LIB80211 is not set | 436 | # CONFIG_LIB80211 is not set |
411 | 437 | ||
412 | # | 438 | # |
@@ -444,6 +470,10 @@ CONFIG_BLK_DEV=y | |||
444 | # CONFIG_BLK_DEV_COW_COMMON is not set | 470 | # CONFIG_BLK_DEV_COW_COMMON is not set |
445 | CONFIG_BLK_DEV_LOOP=y | 471 | CONFIG_BLK_DEV_LOOP=y |
446 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 472 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
473 | |||
474 | # | ||
475 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
476 | # | ||
447 | # CONFIG_BLK_DEV_NBD is not set | 477 | # CONFIG_BLK_DEV_NBD is not set |
448 | # CONFIG_BLK_DEV_SX8 is not set | 478 | # CONFIG_BLK_DEV_SX8 is not set |
449 | CONFIG_BLK_DEV_RAM=y | 479 | CONFIG_BLK_DEV_RAM=y |
@@ -454,6 +484,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
454 | # CONFIG_ATA_OVER_ETH is not set | 484 | # CONFIG_ATA_OVER_ETH is not set |
455 | # CONFIG_BLK_DEV_HD is not set | 485 | # CONFIG_BLK_DEV_HD is not set |
456 | CONFIG_MISC_DEVICES=y | 486 | CONFIG_MISC_DEVICES=y |
487 | # CONFIG_AD525X_DPOT is not set | ||
457 | # CONFIG_PHANTOM is not set | 488 | # CONFIG_PHANTOM is not set |
458 | # CONFIG_SGI_IOC4 is not set | 489 | # CONFIG_SGI_IOC4 is not set |
459 | # CONFIG_TIFM_CORE is not set | 490 | # CONFIG_TIFM_CORE is not set |
@@ -461,6 +492,7 @@ CONFIG_MISC_DEVICES=y | |||
461 | # CONFIG_ENCLOSURE_SERVICES is not set | 492 | # CONFIG_ENCLOSURE_SERVICES is not set |
462 | # CONFIG_HP_ILO is not set | 493 | # CONFIG_HP_ILO is not set |
463 | # CONFIG_ISL29003 is not set | 494 | # CONFIG_ISL29003 is not set |
495 | # CONFIG_DS1682 is not set | ||
464 | # CONFIG_C2PORT is not set | 496 | # CONFIG_C2PORT is not set |
465 | 497 | ||
466 | # | 498 | # |
@@ -513,7 +545,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
513 | # CONFIG_SCSI_BNX2_ISCSI is not set | 545 | # CONFIG_SCSI_BNX2_ISCSI is not set |
514 | # CONFIG_BE2ISCSI is not set | 546 | # CONFIG_BE2ISCSI is not set |
515 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 547 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
548 | # CONFIG_SCSI_HPSA is not set | ||
516 | # CONFIG_SCSI_3W_9XXX is not set | 549 | # CONFIG_SCSI_3W_9XXX is not set |
550 | # CONFIG_SCSI_3W_SAS is not set | ||
517 | # CONFIG_SCSI_ACARD is not set | 551 | # CONFIG_SCSI_ACARD is not set |
518 | # CONFIG_SCSI_AACRAID is not set | 552 | # CONFIG_SCSI_AACRAID is not set |
519 | # CONFIG_SCSI_AIC7XXX is not set | 553 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -551,6 +585,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
551 | # CONFIG_SCSI_NSP32 is not set | 585 | # CONFIG_SCSI_NSP32 is not set |
552 | # CONFIG_SCSI_DEBUG is not set | 586 | # CONFIG_SCSI_DEBUG is not set |
553 | # CONFIG_SCSI_PMCRAID is not set | 587 | # CONFIG_SCSI_PMCRAID is not set |
588 | # CONFIG_SCSI_PM8001 is not set | ||
554 | # CONFIG_SCSI_SRP is not set | 589 | # CONFIG_SCSI_SRP is not set |
555 | # CONFIG_SCSI_BFA_FC is not set | 590 | # CONFIG_SCSI_BFA_FC is not set |
556 | # CONFIG_SCSI_DH is not set | 591 | # CONFIG_SCSI_DH is not set |
@@ -568,7 +603,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
568 | # | 603 | # |
569 | 604 | ||
570 | # | 605 | # |
571 | # See the help texts for more information. | 606 | # The newer stack is recommended. |
572 | # | 607 | # |
573 | # CONFIG_FIREWIRE is not set | 608 | # CONFIG_FIREWIRE is not set |
574 | # CONFIG_IEEE1394 is not set | 609 | # CONFIG_IEEE1394 is not set |
@@ -675,8 +710,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
675 | # CONFIG_BE2NET is not set | 710 | # CONFIG_BE2NET is not set |
676 | # CONFIG_TR is not set | 711 | # CONFIG_TR is not set |
677 | CONFIG_WLAN=y | 712 | CONFIG_WLAN=y |
678 | # CONFIG_WLAN_PRE80211 is not set | 713 | # CONFIG_AIRO is not set |
679 | # CONFIG_WLAN_80211 is not set | 714 | # CONFIG_ATMEL is not set |
715 | # CONFIG_PRISM54 is not set | ||
716 | # CONFIG_HOSTAP is not set | ||
680 | 717 | ||
681 | # | 718 | # |
682 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 719 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -690,6 +727,7 @@ CONFIG_WLAN=y | |||
690 | # CONFIG_NETCONSOLE is not set | 727 | # CONFIG_NETCONSOLE is not set |
691 | # CONFIG_NETPOLL is not set | 728 | # CONFIG_NETPOLL is not set |
692 | # CONFIG_NET_POLL_CONTROLLER is not set | 729 | # CONFIG_NET_POLL_CONTROLLER is not set |
730 | # CONFIG_VMXNET3 is not set | ||
693 | # CONFIG_ISDN is not set | 731 | # CONFIG_ISDN is not set |
694 | # CONFIG_PHONE is not set | 732 | # CONFIG_PHONE is not set |
695 | 733 | ||
@@ -699,6 +737,7 @@ CONFIG_WLAN=y | |||
699 | CONFIG_INPUT=y | 737 | CONFIG_INPUT=y |
700 | # CONFIG_INPUT_FF_MEMLESS is not set | 738 | # CONFIG_INPUT_FF_MEMLESS is not set |
701 | # CONFIG_INPUT_POLLDEV is not set | 739 | # CONFIG_INPUT_POLLDEV is not set |
740 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
702 | 741 | ||
703 | # | 742 | # |
704 | # Userland interfaces | 743 | # Userland interfaces |
@@ -751,6 +790,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
751 | # CONFIG_SERIAL_JSM is not set | 790 | # CONFIG_SERIAL_JSM is not set |
752 | # CONFIG_SERIAL_OF_PLATFORM is not set | 791 | # CONFIG_SERIAL_OF_PLATFORM is not set |
753 | # CONFIG_SERIAL_QE is not set | 792 | # CONFIG_SERIAL_QE is not set |
793 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
754 | CONFIG_UNIX98_PTYS=y | 794 | CONFIG_UNIX98_PTYS=y |
755 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 795 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
756 | CONFIG_LEGACY_PTYS=y | 796 | CONFIG_LEGACY_PTYS=y |
@@ -807,11 +847,6 @@ CONFIG_I2C_MPC=y | |||
807 | # CONFIG_I2C_TAOS_EVM is not set | 847 | # CONFIG_I2C_TAOS_EVM is not set |
808 | 848 | ||
809 | # | 849 | # |
810 | # Graphics adapter I2C/DDC channel drivers | ||
811 | # | ||
812 | # CONFIG_I2C_VOODOO3 is not set | ||
813 | |||
814 | # | ||
815 | # Other I2C/SMBus bus drivers | 850 | # Other I2C/SMBus bus drivers |
816 | # | 851 | # |
817 | # CONFIG_I2C_PCA_PLATFORM is not set | 852 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -820,7 +855,6 @@ CONFIG_I2C_MPC=y | |||
820 | # | 855 | # |
821 | # Miscellaneous I2C Chip support | 856 | # Miscellaneous I2C Chip support |
822 | # | 857 | # |
823 | # CONFIG_DS1682 is not set | ||
824 | # CONFIG_SENSORS_TSL2550 is not set | 858 | # CONFIG_SENSORS_TSL2550 is not set |
825 | # CONFIG_I2C_DEBUG_CORE is not set | 859 | # CONFIG_I2C_DEBUG_CORE is not set |
826 | # CONFIG_I2C_DEBUG_ALGO is not set | 860 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -866,6 +900,7 @@ CONFIG_HWMON=y | |||
866 | # CONFIG_SENSORS_GL520SM is not set | 900 | # CONFIG_SENSORS_GL520SM is not set |
867 | # CONFIG_SENSORS_IT87 is not set | 901 | # CONFIG_SENSORS_IT87 is not set |
868 | # CONFIG_SENSORS_LM63 is not set | 902 | # CONFIG_SENSORS_LM63 is not set |
903 | # CONFIG_SENSORS_LM73 is not set | ||
869 | # CONFIG_SENSORS_LM75 is not set | 904 | # CONFIG_SENSORS_LM75 is not set |
870 | # CONFIG_SENSORS_LM77 is not set | 905 | # CONFIG_SENSORS_LM77 is not set |
871 | # CONFIG_SENSORS_LM78 is not set | 906 | # CONFIG_SENSORS_LM78 is not set |
@@ -904,6 +939,7 @@ CONFIG_HWMON=y | |||
904 | # CONFIG_SENSORS_W83L786NG is not set | 939 | # CONFIG_SENSORS_W83L786NG is not set |
905 | # CONFIG_SENSORS_W83627HF is not set | 940 | # CONFIG_SENSORS_W83627HF is not set |
906 | # CONFIG_SENSORS_W83627EHF is not set | 941 | # CONFIG_SENSORS_W83627EHF is not set |
942 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
907 | # CONFIG_THERMAL is not set | 943 | # CONFIG_THERMAL is not set |
908 | CONFIG_WATCHDOG=y | 944 | CONFIG_WATCHDOG=y |
909 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 945 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -936,11 +972,13 @@ CONFIG_SSB_POSSIBLE=y | |||
936 | # CONFIG_TWL4030_CORE is not set | 972 | # CONFIG_TWL4030_CORE is not set |
937 | # CONFIG_MFD_TMIO is not set | 973 | # CONFIG_MFD_TMIO is not set |
938 | # CONFIG_PMIC_DA903X is not set | 974 | # CONFIG_PMIC_DA903X is not set |
975 | # CONFIG_PMIC_ADP5520 is not set | ||
939 | # CONFIG_MFD_WM8400 is not set | 976 | # CONFIG_MFD_WM8400 is not set |
940 | # CONFIG_MFD_WM831X is not set | 977 | # CONFIG_MFD_WM831X is not set |
941 | # CONFIG_MFD_WM8350_I2C is not set | 978 | # CONFIG_MFD_WM8350_I2C is not set |
942 | # CONFIG_MFD_PCF50633 is not set | 979 | # CONFIG_MFD_PCF50633 is not set |
943 | # CONFIG_AB3100_CORE is not set | 980 | # CONFIG_AB3100_CORE is not set |
981 | # CONFIG_MFD_88PM8607 is not set | ||
944 | # CONFIG_REGULATOR is not set | 982 | # CONFIG_REGULATOR is not set |
945 | # CONFIG_MEDIA_SUPPORT is not set | 983 | # CONFIG_MEDIA_SUPPORT is not set |
946 | 984 | ||
@@ -1023,6 +1061,7 @@ CONFIG_RTC_DRV_DS1374=y | |||
1023 | # CONFIG_RTC_DRV_PCF8563 is not set | 1061 | # CONFIG_RTC_DRV_PCF8563 is not set |
1024 | # CONFIG_RTC_DRV_PCF8583 is not set | 1062 | # CONFIG_RTC_DRV_PCF8583 is not set |
1025 | # CONFIG_RTC_DRV_M41T80 is not set | 1063 | # CONFIG_RTC_DRV_M41T80 is not set |
1064 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1026 | # CONFIG_RTC_DRV_S35390A is not set | 1065 | # CONFIG_RTC_DRV_S35390A is not set |
1027 | # CONFIG_RTC_DRV_FM3130 is not set | 1066 | # CONFIG_RTC_DRV_FM3130 is not set |
1028 | # CONFIG_RTC_DRV_RX8581 is not set | 1067 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1044,7 +1083,9 @@ CONFIG_RTC_DRV_DS1374=y | |||
1044 | # CONFIG_RTC_DRV_M48T86 is not set | 1083 | # CONFIG_RTC_DRV_M48T86 is not set |
1045 | # CONFIG_RTC_DRV_M48T35 is not set | 1084 | # CONFIG_RTC_DRV_M48T35 is not set |
1046 | # CONFIG_RTC_DRV_M48T59 is not set | 1085 | # CONFIG_RTC_DRV_M48T59 is not set |
1086 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1047 | # CONFIG_RTC_DRV_BQ4802 is not set | 1087 | # CONFIG_RTC_DRV_BQ4802 is not set |
1088 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1048 | # CONFIG_RTC_DRV_V3020 is not set | 1089 | # CONFIG_RTC_DRV_V3020 is not set |
1049 | 1090 | ||
1050 | # | 1091 | # |
@@ -1220,7 +1261,7 @@ CONFIG_FRAME_WARN=1024 | |||
1220 | # CONFIG_DEBUG_KERNEL is not set | 1261 | # CONFIG_DEBUG_KERNEL is not set |
1221 | # CONFIG_SLUB_DEBUG_ON is not set | 1262 | # CONFIG_SLUB_DEBUG_ON is not set |
1222 | # CONFIG_SLUB_STATS is not set | 1263 | # CONFIG_SLUB_STATS is not set |
1223 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1264 | CONFIG_DEBUG_BUGVERBOSE=y |
1224 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1265 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1225 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1266 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1226 | # CONFIG_LATENCYTOP is not set | 1267 | # CONFIG_LATENCYTOP is not set |
@@ -1247,7 +1288,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1247 | # CONFIG_KEYS is not set | 1288 | # CONFIG_KEYS is not set |
1248 | # CONFIG_SECURITY is not set | 1289 | # CONFIG_SECURITY is not set |
1249 | # CONFIG_SECURITYFS is not set | 1290 | # CONFIG_SECURITYFS is not set |
1250 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1291 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1292 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1293 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1294 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1295 | CONFIG_DEFAULT_SECURITY="" | ||
1251 | CONFIG_CRYPTO=y | 1296 | CONFIG_CRYPTO=y |
1252 | 1297 | ||
1253 | # | 1298 | # |
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig index b398b9b2b63..155af009f7b 100644 --- a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig +++ b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:24 2009 | 4 | # Wed Jan 6 09:24:18 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -173,14 +176,41 @@ CONFIG_LBDAF=y | |||
173 | # IO Schedulers | 176 | # IO Schedulers |
174 | # | 177 | # |
175 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
176 | CONFIG_IOSCHED_AS=y | ||
177 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
178 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
179 | CONFIG_DEFAULT_AS=y | ||
180 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
181 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
182 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
183 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
184 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
185 | 215 | ||
186 | # | 216 | # |
@@ -260,6 +290,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
260 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 290 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
261 | # CONFIG_KEXEC is not set | 291 | # CONFIG_KEXEC is not set |
262 | # CONFIG_CRASH_DUMP is not set | 292 | # CONFIG_CRASH_DUMP is not set |
293 | CONFIG_SPARSE_IRQ=y | ||
263 | CONFIG_MAX_ACTIVE_REGIONS=32 | 294 | CONFIG_MAX_ACTIVE_REGIONS=32 |
264 | CONFIG_ARCH_FLATMEM_ENABLE=y | 295 | CONFIG_ARCH_FLATMEM_ENABLE=y |
265 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 296 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -276,8 +307,6 @@ CONFIG_MIGRATION=y | |||
276 | CONFIG_ZONE_DMA_FLAG=1 | 307 | CONFIG_ZONE_DMA_FLAG=1 |
277 | CONFIG_BOUNCE=y | 308 | CONFIG_BOUNCE=y |
278 | CONFIG_VIRT_TO_BUS=y | 309 | CONFIG_VIRT_TO_BUS=y |
279 | CONFIG_HAVE_MLOCK=y | ||
280 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
281 | # CONFIG_KSM is not set | 310 | # CONFIG_KSM is not set |
282 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 311 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
283 | CONFIG_PPC_4K_PAGES=y | 312 | CONFIG_PPC_4K_PAGES=y |
@@ -404,9 +433,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
404 | # CONFIG_AF_RXRPC is not set | 433 | # CONFIG_AF_RXRPC is not set |
405 | CONFIG_WIRELESS=y | 434 | CONFIG_WIRELESS=y |
406 | # CONFIG_CFG80211 is not set | 435 | # CONFIG_CFG80211 is not set |
407 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
408 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
409 | # CONFIG_WIRELESS_EXT is not set | ||
410 | # CONFIG_LIB80211 is not set | 436 | # CONFIG_LIB80211 is not set |
411 | 437 | ||
412 | # | 438 | # |
@@ -445,6 +471,10 @@ CONFIG_BLK_DEV=y | |||
445 | # CONFIG_BLK_DEV_COW_COMMON is not set | 471 | # CONFIG_BLK_DEV_COW_COMMON is not set |
446 | CONFIG_BLK_DEV_LOOP=y | 472 | CONFIG_BLK_DEV_LOOP=y |
447 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 473 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
474 | |||
475 | # | ||
476 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
477 | # | ||
448 | # CONFIG_BLK_DEV_NBD is not set | 478 | # CONFIG_BLK_DEV_NBD is not set |
449 | # CONFIG_BLK_DEV_SX8 is not set | 479 | # CONFIG_BLK_DEV_SX8 is not set |
450 | # CONFIG_BLK_DEV_UB is not set | 480 | # CONFIG_BLK_DEV_UB is not set |
@@ -456,6 +486,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
456 | # CONFIG_ATA_OVER_ETH is not set | 486 | # CONFIG_ATA_OVER_ETH is not set |
457 | # CONFIG_BLK_DEV_HD is not set | 487 | # CONFIG_BLK_DEV_HD is not set |
458 | CONFIG_MISC_DEVICES=y | 488 | CONFIG_MISC_DEVICES=y |
489 | # CONFIG_AD525X_DPOT is not set | ||
459 | # CONFIG_PHANTOM is not set | 490 | # CONFIG_PHANTOM is not set |
460 | # CONFIG_SGI_IOC4 is not set | 491 | # CONFIG_SGI_IOC4 is not set |
461 | # CONFIG_TIFM_CORE is not set | 492 | # CONFIG_TIFM_CORE is not set |
@@ -463,6 +494,8 @@ CONFIG_MISC_DEVICES=y | |||
463 | # CONFIG_ENCLOSURE_SERVICES is not set | 494 | # CONFIG_ENCLOSURE_SERVICES is not set |
464 | # CONFIG_HP_ILO is not set | 495 | # CONFIG_HP_ILO is not set |
465 | # CONFIG_ISL29003 is not set | 496 | # CONFIG_ISL29003 is not set |
497 | # CONFIG_DS1682 is not set | ||
498 | # CONFIG_TI_DAC7512 is not set | ||
466 | # CONFIG_C2PORT is not set | 499 | # CONFIG_C2PORT is not set |
467 | 500 | ||
468 | # | 501 | # |
@@ -474,6 +507,7 @@ CONFIG_MISC_DEVICES=y | |||
474 | # CONFIG_EEPROM_MAX6875 is not set | 507 | # CONFIG_EEPROM_MAX6875 is not set |
475 | # CONFIG_EEPROM_93CX6 is not set | 508 | # CONFIG_EEPROM_93CX6 is not set |
476 | # CONFIG_CB710_CORE is not set | 509 | # CONFIG_CB710_CORE is not set |
510 | # CONFIG_IWMC3200TOP is not set | ||
477 | CONFIG_HAVE_IDE=y | 511 | CONFIG_HAVE_IDE=y |
478 | # CONFIG_IDE is not set | 512 | # CONFIG_IDE is not set |
479 | 513 | ||
@@ -516,7 +550,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
516 | # CONFIG_SCSI_BNX2_ISCSI is not set | 550 | # CONFIG_SCSI_BNX2_ISCSI is not set |
517 | # CONFIG_BE2ISCSI is not set | 551 | # CONFIG_BE2ISCSI is not set |
518 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 552 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
553 | # CONFIG_SCSI_HPSA is not set | ||
519 | # CONFIG_SCSI_3W_9XXX is not set | 554 | # CONFIG_SCSI_3W_9XXX is not set |
555 | # CONFIG_SCSI_3W_SAS is not set | ||
520 | # CONFIG_SCSI_ACARD is not set | 556 | # CONFIG_SCSI_ACARD is not set |
521 | # CONFIG_SCSI_AACRAID is not set | 557 | # CONFIG_SCSI_AACRAID is not set |
522 | # CONFIG_SCSI_AIC7XXX is not set | 558 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -554,6 +590,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
554 | # CONFIG_SCSI_NSP32 is not set | 590 | # CONFIG_SCSI_NSP32 is not set |
555 | # CONFIG_SCSI_DEBUG is not set | 591 | # CONFIG_SCSI_DEBUG is not set |
556 | # CONFIG_SCSI_PMCRAID is not set | 592 | # CONFIG_SCSI_PMCRAID is not set |
593 | # CONFIG_SCSI_PM8001 is not set | ||
557 | # CONFIG_SCSI_SRP is not set | 594 | # CONFIG_SCSI_SRP is not set |
558 | # CONFIG_SCSI_BFA_FC is not set | 595 | # CONFIG_SCSI_BFA_FC is not set |
559 | # CONFIG_SCSI_DH is not set | 596 | # CONFIG_SCSI_DH is not set |
@@ -571,7 +608,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
571 | # | 608 | # |
572 | 609 | ||
573 | # | 610 | # |
574 | # See the help texts for more information. | 611 | # The newer stack is recommended. |
575 | # | 612 | # |
576 | # CONFIG_FIREWIRE is not set | 613 | # CONFIG_FIREWIRE is not set |
577 | # CONFIG_IEEE1394 is not set | 614 | # CONFIG_IEEE1394 is not set |
@@ -680,8 +717,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
680 | # CONFIG_BE2NET is not set | 717 | # CONFIG_BE2NET is not set |
681 | # CONFIG_TR is not set | 718 | # CONFIG_TR is not set |
682 | CONFIG_WLAN=y | 719 | CONFIG_WLAN=y |
683 | # CONFIG_WLAN_PRE80211 is not set | 720 | # CONFIG_AIRO is not set |
684 | # CONFIG_WLAN_80211 is not set | 721 | # CONFIG_ATMEL is not set |
722 | # CONFIG_PRISM54 is not set | ||
723 | # CONFIG_USB_ZD1201 is not set | ||
724 | # CONFIG_HOSTAP is not set | ||
685 | 725 | ||
686 | # | 726 | # |
687 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 727 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -704,6 +744,7 @@ CONFIG_WLAN=y | |||
704 | # CONFIG_NETCONSOLE is not set | 744 | # CONFIG_NETCONSOLE is not set |
705 | # CONFIG_NETPOLL is not set | 745 | # CONFIG_NETPOLL is not set |
706 | # CONFIG_NET_POLL_CONTROLLER is not set | 746 | # CONFIG_NET_POLL_CONTROLLER is not set |
747 | # CONFIG_VMXNET3 is not set | ||
707 | # CONFIG_ISDN is not set | 748 | # CONFIG_ISDN is not set |
708 | # CONFIG_PHONE is not set | 749 | # CONFIG_PHONE is not set |
709 | 750 | ||
@@ -713,6 +754,7 @@ CONFIG_WLAN=y | |||
713 | CONFIG_INPUT=y | 754 | CONFIG_INPUT=y |
714 | # CONFIG_INPUT_FF_MEMLESS is not set | 755 | # CONFIG_INPUT_FF_MEMLESS is not set |
715 | # CONFIG_INPUT_POLLDEV is not set | 756 | # CONFIG_INPUT_POLLDEV is not set |
757 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
716 | 758 | ||
717 | # | 759 | # |
718 | # Userland interfaces | 760 | # Userland interfaces |
@@ -766,6 +808,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
766 | # CONFIG_SERIAL_JSM is not set | 808 | # CONFIG_SERIAL_JSM is not set |
767 | # CONFIG_SERIAL_OF_PLATFORM is not set | 809 | # CONFIG_SERIAL_OF_PLATFORM is not set |
768 | # CONFIG_SERIAL_QE is not set | 810 | # CONFIG_SERIAL_QE is not set |
811 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
769 | CONFIG_UNIX98_PTYS=y | 812 | CONFIG_UNIX98_PTYS=y |
770 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 813 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
771 | CONFIG_LEGACY_PTYS=y | 814 | CONFIG_LEGACY_PTYS=y |
@@ -825,11 +868,6 @@ CONFIG_I2C_MPC=y | |||
825 | # CONFIG_I2C_TINY_USB is not set | 868 | # CONFIG_I2C_TINY_USB is not set |
826 | 869 | ||
827 | # | 870 | # |
828 | # Graphics adapter I2C/DDC channel drivers | ||
829 | # | ||
830 | # CONFIG_I2C_VOODOO3 is not set | ||
831 | |||
832 | # | ||
833 | # Other I2C/SMBus bus drivers | 871 | # Other I2C/SMBus bus drivers |
834 | # | 872 | # |
835 | # CONFIG_I2C_PCA_PLATFORM is not set | 873 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -838,7 +876,6 @@ CONFIG_I2C_MPC=y | |||
838 | # | 876 | # |
839 | # Miscellaneous I2C Chip support | 877 | # Miscellaneous I2C Chip support |
840 | # | 878 | # |
841 | # CONFIG_DS1682 is not set | ||
842 | # CONFIG_SENSORS_TSL2550 is not set | 879 | # CONFIG_SENSORS_TSL2550 is not set |
843 | # CONFIG_I2C_DEBUG_CORE is not set | 880 | # CONFIG_I2C_DEBUG_CORE is not set |
844 | # CONFIG_I2C_DEBUG_ALGO is not set | 881 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -852,6 +889,8 @@ CONFIG_SPI_MASTER=y | |||
852 | # | 889 | # |
853 | CONFIG_SPI_BITBANG=y | 890 | CONFIG_SPI_BITBANG=y |
854 | # CONFIG_SPI_MPC8xxx is not set | 891 | # CONFIG_SPI_MPC8xxx is not set |
892 | # CONFIG_SPI_XILINX is not set | ||
893 | # CONFIG_SPI_DESIGNWARE is not set | ||
855 | 894 | ||
856 | # | 895 | # |
857 | # SPI Protocol Masters | 896 | # SPI Protocol Masters |
@@ -899,6 +938,7 @@ CONFIG_HWMON=y | |||
899 | # CONFIG_SENSORS_IT87 is not set | 938 | # CONFIG_SENSORS_IT87 is not set |
900 | # CONFIG_SENSORS_LM63 is not set | 939 | # CONFIG_SENSORS_LM63 is not set |
901 | # CONFIG_SENSORS_LM70 is not set | 940 | # CONFIG_SENSORS_LM70 is not set |
941 | # CONFIG_SENSORS_LM73 is not set | ||
902 | # CONFIG_SENSORS_LM75 is not set | 942 | # CONFIG_SENSORS_LM75 is not set |
903 | # CONFIG_SENSORS_LM77 is not set | 943 | # CONFIG_SENSORS_LM77 is not set |
904 | # CONFIG_SENSORS_LM78 is not set | 944 | # CONFIG_SENSORS_LM78 is not set |
@@ -939,6 +979,7 @@ CONFIG_HWMON=y | |||
939 | # CONFIG_SENSORS_W83627HF is not set | 979 | # CONFIG_SENSORS_W83627HF is not set |
940 | # CONFIG_SENSORS_W83627EHF is not set | 980 | # CONFIG_SENSORS_W83627EHF is not set |
941 | # CONFIG_SENSORS_LIS3_SPI is not set | 981 | # CONFIG_SENSORS_LIS3_SPI is not set |
982 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
942 | # CONFIG_THERMAL is not set | 983 | # CONFIG_THERMAL is not set |
943 | CONFIG_WATCHDOG=y | 984 | CONFIG_WATCHDOG=y |
944 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 985 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -976,6 +1017,7 @@ CONFIG_SSB_POSSIBLE=y | |||
976 | # CONFIG_TWL4030_CORE is not set | 1017 | # CONFIG_TWL4030_CORE is not set |
977 | # CONFIG_MFD_TMIO is not set | 1018 | # CONFIG_MFD_TMIO is not set |
978 | # CONFIG_PMIC_DA903X is not set | 1019 | # CONFIG_PMIC_DA903X is not set |
1020 | # CONFIG_PMIC_ADP5520 is not set | ||
979 | # CONFIG_MFD_WM8400 is not set | 1021 | # CONFIG_MFD_WM8400 is not set |
980 | # CONFIG_MFD_WM831X is not set | 1022 | # CONFIG_MFD_WM831X is not set |
981 | # CONFIG_MFD_WM8350_I2C is not set | 1023 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -983,6 +1025,8 @@ CONFIG_SSB_POSSIBLE=y | |||
983 | # CONFIG_MFD_MC13783 is not set | 1025 | # CONFIG_MFD_MC13783 is not set |
984 | # CONFIG_AB3100_CORE is not set | 1026 | # CONFIG_AB3100_CORE is not set |
985 | # CONFIG_EZX_PCAP is not set | 1027 | # CONFIG_EZX_PCAP is not set |
1028 | # CONFIG_MFD_88PM8607 is not set | ||
1029 | # CONFIG_AB4500_CORE is not set | ||
986 | # CONFIG_REGULATOR is not set | 1030 | # CONFIG_REGULATOR is not set |
987 | # CONFIG_MEDIA_SUPPORT is not set | 1031 | # CONFIG_MEDIA_SUPPORT is not set |
988 | 1032 | ||
@@ -1050,6 +1094,7 @@ CONFIG_USB_MON=y | |||
1050 | CONFIG_USB_EHCI_HCD=y | 1094 | CONFIG_USB_EHCI_HCD=y |
1051 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1095 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1052 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1096 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1097 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1053 | # CONFIG_USB_EHCI_FSL is not set | 1098 | # CONFIG_USB_EHCI_FSL is not set |
1054 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1099 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1055 | # CONFIG_USB_OXU210HP_HCD is not set | 1100 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1387,7 +1432,7 @@ CONFIG_FRAME_WARN=1024 | |||
1387 | # CONFIG_DEBUG_KERNEL is not set | 1432 | # CONFIG_DEBUG_KERNEL is not set |
1388 | # CONFIG_SLUB_DEBUG_ON is not set | 1433 | # CONFIG_SLUB_DEBUG_ON is not set |
1389 | # CONFIG_SLUB_STATS is not set | 1434 | # CONFIG_SLUB_STATS is not set |
1390 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1435 | CONFIG_DEBUG_BUGVERBOSE=y |
1391 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1436 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1392 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1437 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1393 | # CONFIG_LATENCYTOP is not set | 1438 | # CONFIG_LATENCYTOP is not set |
@@ -1414,7 +1459,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1414 | # CONFIG_KEYS is not set | 1459 | # CONFIG_KEYS is not set |
1415 | # CONFIG_SECURITY is not set | 1460 | # CONFIG_SECURITY is not set |
1416 | # CONFIG_SECURITYFS is not set | 1461 | # CONFIG_SECURITYFS is not set |
1417 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1462 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1463 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1464 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1465 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1466 | CONFIG_DEFAULT_SECURITY="" | ||
1418 | CONFIG_CRYPTO=y | 1467 | CONFIG_CRYPTO=y |
1419 | 1468 | ||
1420 | # | 1469 | # |
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig index f67317e1934..ff45f490448 100644 --- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig +++ b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:25 2009 | 4 | # Wed Jan 6 09:24:19 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -173,14 +176,41 @@ CONFIG_LBDAF=y | |||
173 | # IO Schedulers | 176 | # IO Schedulers |
174 | # | 177 | # |
175 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
176 | CONFIG_IOSCHED_AS=y | ||
177 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
178 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
179 | CONFIG_DEFAULT_AS=y | ||
180 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
181 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
182 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
183 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
184 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
185 | 215 | ||
186 | # | 216 | # |
@@ -259,6 +289,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
259 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 289 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
260 | # CONFIG_KEXEC is not set | 290 | # CONFIG_KEXEC is not set |
261 | # CONFIG_CRASH_DUMP is not set | 291 | # CONFIG_CRASH_DUMP is not set |
292 | CONFIG_SPARSE_IRQ=y | ||
262 | CONFIG_MAX_ACTIVE_REGIONS=32 | 293 | CONFIG_MAX_ACTIVE_REGIONS=32 |
263 | CONFIG_ARCH_FLATMEM_ENABLE=y | 294 | CONFIG_ARCH_FLATMEM_ENABLE=y |
264 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 295 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -275,8 +306,6 @@ CONFIG_MIGRATION=y | |||
275 | CONFIG_ZONE_DMA_FLAG=1 | 306 | CONFIG_ZONE_DMA_FLAG=1 |
276 | CONFIG_BOUNCE=y | 307 | CONFIG_BOUNCE=y |
277 | CONFIG_VIRT_TO_BUS=y | 308 | CONFIG_VIRT_TO_BUS=y |
278 | CONFIG_HAVE_MLOCK=y | ||
279 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
280 | # CONFIG_KSM is not set | 309 | # CONFIG_KSM is not set |
281 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 310 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
282 | CONFIG_PPC_4K_PAGES=y | 311 | CONFIG_PPC_4K_PAGES=y |
@@ -403,9 +432,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
403 | # CONFIG_AF_RXRPC is not set | 432 | # CONFIG_AF_RXRPC is not set |
404 | CONFIG_WIRELESS=y | 433 | CONFIG_WIRELESS=y |
405 | # CONFIG_CFG80211 is not set | 434 | # CONFIG_CFG80211 is not set |
406 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
407 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
408 | # CONFIG_WIRELESS_EXT is not set | ||
409 | # CONFIG_LIB80211 is not set | 435 | # CONFIG_LIB80211 is not set |
410 | 436 | ||
411 | # | 437 | # |
@@ -528,6 +554,10 @@ CONFIG_BLK_DEV=y | |||
528 | # CONFIG_BLK_DEV_COW_COMMON is not set | 554 | # CONFIG_BLK_DEV_COW_COMMON is not set |
529 | CONFIG_BLK_DEV_LOOP=y | 555 | CONFIG_BLK_DEV_LOOP=y |
530 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 556 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
557 | |||
558 | # | ||
559 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
560 | # | ||
531 | # CONFIG_BLK_DEV_NBD is not set | 561 | # CONFIG_BLK_DEV_NBD is not set |
532 | # CONFIG_BLK_DEV_SX8 is not set | 562 | # CONFIG_BLK_DEV_SX8 is not set |
533 | # CONFIG_BLK_DEV_UB is not set | 563 | # CONFIG_BLK_DEV_UB is not set |
@@ -539,6 +569,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
539 | # CONFIG_ATA_OVER_ETH is not set | 569 | # CONFIG_ATA_OVER_ETH is not set |
540 | # CONFIG_BLK_DEV_HD is not set | 570 | # CONFIG_BLK_DEV_HD is not set |
541 | CONFIG_MISC_DEVICES=y | 571 | CONFIG_MISC_DEVICES=y |
572 | # CONFIG_AD525X_DPOT is not set | ||
542 | # CONFIG_PHANTOM is not set | 573 | # CONFIG_PHANTOM is not set |
543 | # CONFIG_SGI_IOC4 is not set | 574 | # CONFIG_SGI_IOC4 is not set |
544 | # CONFIG_TIFM_CORE is not set | 575 | # CONFIG_TIFM_CORE is not set |
@@ -546,6 +577,8 @@ CONFIG_MISC_DEVICES=y | |||
546 | # CONFIG_ENCLOSURE_SERVICES is not set | 577 | # CONFIG_ENCLOSURE_SERVICES is not set |
547 | # CONFIG_HP_ILO is not set | 578 | # CONFIG_HP_ILO is not set |
548 | # CONFIG_ISL29003 is not set | 579 | # CONFIG_ISL29003 is not set |
580 | # CONFIG_DS1682 is not set | ||
581 | # CONFIG_TI_DAC7512 is not set | ||
549 | # CONFIG_C2PORT is not set | 582 | # CONFIG_C2PORT is not set |
550 | 583 | ||
551 | # | 584 | # |
@@ -647,7 +680,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
647 | # CONFIG_SCSI_BNX2_ISCSI is not set | 680 | # CONFIG_SCSI_BNX2_ISCSI is not set |
648 | # CONFIG_BE2ISCSI is not set | 681 | # CONFIG_BE2ISCSI is not set |
649 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 682 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
683 | # CONFIG_SCSI_HPSA is not set | ||
650 | # CONFIG_SCSI_3W_9XXX is not set | 684 | # CONFIG_SCSI_3W_9XXX is not set |
685 | # CONFIG_SCSI_3W_SAS is not set | ||
651 | # CONFIG_SCSI_ACARD is not set | 686 | # CONFIG_SCSI_ACARD is not set |
652 | # CONFIG_SCSI_AACRAID is not set | 687 | # CONFIG_SCSI_AACRAID is not set |
653 | # CONFIG_SCSI_AIC7XXX is not set | 688 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -686,6 +721,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
686 | # CONFIG_SCSI_NSP32 is not set | 721 | # CONFIG_SCSI_NSP32 is not set |
687 | # CONFIG_SCSI_DEBUG is not set | 722 | # CONFIG_SCSI_DEBUG is not set |
688 | # CONFIG_SCSI_PMCRAID is not set | 723 | # CONFIG_SCSI_PMCRAID is not set |
724 | # CONFIG_SCSI_PM8001 is not set | ||
689 | # CONFIG_SCSI_SRP is not set | 725 | # CONFIG_SCSI_SRP is not set |
690 | # CONFIG_SCSI_BFA_FC is not set | 726 | # CONFIG_SCSI_BFA_FC is not set |
691 | # CONFIG_SCSI_DH is not set | 727 | # CONFIG_SCSI_DH is not set |
@@ -741,15 +777,16 @@ CONFIG_SATA_SIL=y | |||
741 | # CONFIG_PATA_NS87415 is not set | 777 | # CONFIG_PATA_NS87415 is not set |
742 | # CONFIG_PATA_OPTI is not set | 778 | # CONFIG_PATA_OPTI is not set |
743 | # CONFIG_PATA_OPTIDMA is not set | 779 | # CONFIG_PATA_OPTIDMA is not set |
780 | # CONFIG_PATA_PDC2027X is not set | ||
744 | # CONFIG_PATA_PDC_OLD is not set | 781 | # CONFIG_PATA_PDC_OLD is not set |
745 | # CONFIG_PATA_RADISYS is not set | 782 | # CONFIG_PATA_RADISYS is not set |
746 | # CONFIG_PATA_RDC is not set | 783 | # CONFIG_PATA_RDC is not set |
747 | # CONFIG_PATA_RZ1000 is not set | 784 | # CONFIG_PATA_RZ1000 is not set |
748 | # CONFIG_PATA_SC1200 is not set | 785 | # CONFIG_PATA_SC1200 is not set |
749 | # CONFIG_PATA_SERVERWORKS is not set | 786 | # CONFIG_PATA_SERVERWORKS is not set |
750 | # CONFIG_PATA_PDC2027X is not set | ||
751 | # CONFIG_PATA_SIL680 is not set | 787 | # CONFIG_PATA_SIL680 is not set |
752 | # CONFIG_PATA_SIS is not set | 788 | # CONFIG_PATA_SIS is not set |
789 | # CONFIG_PATA_TOSHIBA is not set | ||
753 | # CONFIG_PATA_VIA is not set | 790 | # CONFIG_PATA_VIA is not set |
754 | # CONFIG_PATA_WINBOND is not set | 791 | # CONFIG_PATA_WINBOND is not set |
755 | CONFIG_PATA_PLATFORM=y | 792 | CONFIG_PATA_PLATFORM=y |
@@ -777,7 +814,7 @@ CONFIG_MD_RAID1=y | |||
777 | # | 814 | # |
778 | 815 | ||
779 | # | 816 | # |
780 | # See the help texts for more information. | 817 | # The newer stack is recommended. |
781 | # | 818 | # |
782 | # CONFIG_FIREWIRE is not set | 819 | # CONFIG_FIREWIRE is not set |
783 | # CONFIG_IEEE1394 is not set | 820 | # CONFIG_IEEE1394 is not set |
@@ -860,8 +897,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
860 | # CONFIG_BE2NET is not set | 897 | # CONFIG_BE2NET is not set |
861 | # CONFIG_TR is not set | 898 | # CONFIG_TR is not set |
862 | CONFIG_WLAN=y | 899 | CONFIG_WLAN=y |
863 | # CONFIG_WLAN_PRE80211 is not set | 900 | # CONFIG_AIRO is not set |
864 | # CONFIG_WLAN_80211 is not set | 901 | # CONFIG_ATMEL is not set |
902 | # CONFIG_PRISM54 is not set | ||
903 | # CONFIG_USB_ZD1201 is not set | ||
904 | # CONFIG_HOSTAP is not set | ||
865 | 905 | ||
866 | # | 906 | # |
867 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 907 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -884,6 +924,7 @@ CONFIG_WLAN=y | |||
884 | # CONFIG_NETCONSOLE is not set | 924 | # CONFIG_NETCONSOLE is not set |
885 | # CONFIG_NETPOLL is not set | 925 | # CONFIG_NETPOLL is not set |
886 | # CONFIG_NET_POLL_CONTROLLER is not set | 926 | # CONFIG_NET_POLL_CONTROLLER is not set |
927 | # CONFIG_VMXNET3 is not set | ||
887 | # CONFIG_ISDN is not set | 928 | # CONFIG_ISDN is not set |
888 | # CONFIG_PHONE is not set | 929 | # CONFIG_PHONE is not set |
889 | 930 | ||
@@ -925,6 +966,7 @@ CONFIG_SERIAL_CORE=y | |||
925 | CONFIG_SERIAL_CORE_CONSOLE=y | 966 | CONFIG_SERIAL_CORE_CONSOLE=y |
926 | # CONFIG_SERIAL_JSM is not set | 967 | # CONFIG_SERIAL_JSM is not set |
927 | # CONFIG_SERIAL_OF_PLATFORM is not set | 968 | # CONFIG_SERIAL_OF_PLATFORM is not set |
969 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
928 | CONFIG_UNIX98_PTYS=y | 970 | CONFIG_UNIX98_PTYS=y |
929 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 971 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
930 | CONFIG_LEGACY_PTYS=y | 972 | CONFIG_LEGACY_PTYS=y |
@@ -982,11 +1024,6 @@ CONFIG_I2C_MPC=y | |||
982 | # CONFIG_I2C_TINY_USB is not set | 1024 | # CONFIG_I2C_TINY_USB is not set |
983 | 1025 | ||
984 | # | 1026 | # |
985 | # Graphics adapter I2C/DDC channel drivers | ||
986 | # | ||
987 | # CONFIG_I2C_VOODOO3 is not set | ||
988 | |||
989 | # | ||
990 | # Other I2C/SMBus bus drivers | 1027 | # Other I2C/SMBus bus drivers |
991 | # | 1028 | # |
992 | # CONFIG_I2C_PCA_PLATFORM is not set | 1029 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -995,7 +1032,6 @@ CONFIG_I2C_MPC=y | |||
995 | # | 1032 | # |
996 | # Miscellaneous I2C Chip support | 1033 | # Miscellaneous I2C Chip support |
997 | # | 1034 | # |
998 | # CONFIG_DS1682 is not set | ||
999 | # CONFIG_SENSORS_TSL2550 is not set | 1035 | # CONFIG_SENSORS_TSL2550 is not set |
1000 | # CONFIG_I2C_DEBUG_CORE is not set | 1036 | # CONFIG_I2C_DEBUG_CORE is not set |
1001 | # CONFIG_I2C_DEBUG_ALGO is not set | 1037 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1009,6 +1045,8 @@ CONFIG_SPI_MASTER=y | |||
1009 | # | 1045 | # |
1010 | CONFIG_SPI_BITBANG=y | 1046 | CONFIG_SPI_BITBANG=y |
1011 | # CONFIG_SPI_MPC8xxx is not set | 1047 | # CONFIG_SPI_MPC8xxx is not set |
1048 | # CONFIG_SPI_XILINX is not set | ||
1049 | # CONFIG_SPI_DESIGNWARE is not set | ||
1012 | 1050 | ||
1013 | # | 1051 | # |
1014 | # SPI Protocol Masters | 1052 | # SPI Protocol Masters |
@@ -1062,6 +1100,7 @@ CONFIG_SSB_POSSIBLE=y | |||
1062 | # CONFIG_TWL4030_CORE is not set | 1100 | # CONFIG_TWL4030_CORE is not set |
1063 | # CONFIG_MFD_TMIO is not set | 1101 | # CONFIG_MFD_TMIO is not set |
1064 | # CONFIG_PMIC_DA903X is not set | 1102 | # CONFIG_PMIC_DA903X is not set |
1103 | # CONFIG_PMIC_ADP5520 is not set | ||
1065 | # CONFIG_MFD_WM8400 is not set | 1104 | # CONFIG_MFD_WM8400 is not set |
1066 | # CONFIG_MFD_WM831X is not set | 1105 | # CONFIG_MFD_WM831X is not set |
1067 | # CONFIG_MFD_WM8350_I2C is not set | 1106 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -1069,6 +1108,8 @@ CONFIG_SSB_POSSIBLE=y | |||
1069 | # CONFIG_MFD_MC13783 is not set | 1108 | # CONFIG_MFD_MC13783 is not set |
1070 | # CONFIG_AB3100_CORE is not set | 1109 | # CONFIG_AB3100_CORE is not set |
1071 | # CONFIG_EZX_PCAP is not set | 1110 | # CONFIG_EZX_PCAP is not set |
1111 | # CONFIG_MFD_88PM8607 is not set | ||
1112 | # CONFIG_AB4500_CORE is not set | ||
1072 | # CONFIG_REGULATOR is not set | 1113 | # CONFIG_REGULATOR is not set |
1073 | # CONFIG_MEDIA_SUPPORT is not set | 1114 | # CONFIG_MEDIA_SUPPORT is not set |
1074 | 1115 | ||
@@ -1117,6 +1158,7 @@ CONFIG_USB_MON=y | |||
1117 | CONFIG_USB_EHCI_HCD=y | 1158 | CONFIG_USB_EHCI_HCD=y |
1118 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1159 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1119 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1160 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1161 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1120 | CONFIG_USB_EHCI_FSL=y | 1162 | CONFIG_USB_EHCI_FSL=y |
1121 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1163 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1122 | # CONFIG_USB_OXU210HP_HCD is not set | 1164 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1235,6 +1277,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1235 | # CONFIG_RTC_DRV_PCF8563 is not set | 1277 | # CONFIG_RTC_DRV_PCF8563 is not set |
1236 | # CONFIG_RTC_DRV_PCF8583 is not set | 1278 | # CONFIG_RTC_DRV_PCF8583 is not set |
1237 | # CONFIG_RTC_DRV_M41T80 is not set | 1279 | # CONFIG_RTC_DRV_M41T80 is not set |
1280 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1238 | # CONFIG_RTC_DRV_S35390A is not set | 1281 | # CONFIG_RTC_DRV_S35390A is not set |
1239 | # CONFIG_RTC_DRV_FM3130 is not set | 1282 | # CONFIG_RTC_DRV_FM3130 is not set |
1240 | # CONFIG_RTC_DRV_RX8581 is not set | 1283 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1264,7 +1307,9 @@ CONFIG_RTC_DRV_DS1307=y | |||
1264 | # CONFIG_RTC_DRV_M48T86 is not set | 1307 | # CONFIG_RTC_DRV_M48T86 is not set |
1265 | # CONFIG_RTC_DRV_M48T35 is not set | 1308 | # CONFIG_RTC_DRV_M48T35 is not set |
1266 | # CONFIG_RTC_DRV_M48T59 is not set | 1309 | # CONFIG_RTC_DRV_M48T59 is not set |
1310 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1267 | # CONFIG_RTC_DRV_BQ4802 is not set | 1311 | # CONFIG_RTC_DRV_BQ4802 is not set |
1312 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1268 | # CONFIG_RTC_DRV_V3020 is not set | 1313 | # CONFIG_RTC_DRV_V3020 is not set |
1269 | 1314 | ||
1270 | # | 1315 | # |
@@ -1485,7 +1530,7 @@ CONFIG_FRAME_WARN=1024 | |||
1485 | # CONFIG_DEBUG_KERNEL is not set | 1530 | # CONFIG_DEBUG_KERNEL is not set |
1486 | # CONFIG_SLUB_DEBUG_ON is not set | 1531 | # CONFIG_SLUB_DEBUG_ON is not set |
1487 | # CONFIG_SLUB_STATS is not set | 1532 | # CONFIG_SLUB_STATS is not set |
1488 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1533 | CONFIG_DEBUG_BUGVERBOSE=y |
1489 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1534 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1490 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1535 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1491 | # CONFIG_LATENCYTOP is not set | 1536 | # CONFIG_LATENCYTOP is not set |
@@ -1512,7 +1557,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1512 | # CONFIG_KEYS is not set | 1557 | # CONFIG_KEYS is not set |
1513 | # CONFIG_SECURITY is not set | 1558 | # CONFIG_SECURITY is not set |
1514 | # CONFIG_SECURITYFS is not set | 1559 | # CONFIG_SECURITYFS is not set |
1515 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1560 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1561 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1562 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1563 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1564 | CONFIG_DEFAULT_SECURITY="" | ||
1516 | CONFIG_CRYPTO=y | 1565 | CONFIG_CRYPTO=y |
1517 | 1566 | ||
1518 | # | 1567 | # |
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig index a668110c10f..28d8ff3e8fc 100644 --- a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig +++ b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:26 2009 | 4 | # Wed Jan 6 09:24:20 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -173,14 +176,41 @@ CONFIG_LBDAF=y | |||
173 | # IO Schedulers | 176 | # IO Schedulers |
174 | # | 177 | # |
175 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
176 | CONFIG_IOSCHED_AS=y | ||
177 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
178 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
179 | CONFIG_DEFAULT_AS=y | ||
180 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
181 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
182 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
183 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
184 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
185 | 215 | ||
186 | # | 216 | # |
@@ -259,6 +289,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
259 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 289 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
260 | # CONFIG_KEXEC is not set | 290 | # CONFIG_KEXEC is not set |
261 | # CONFIG_CRASH_DUMP is not set | 291 | # CONFIG_CRASH_DUMP is not set |
292 | CONFIG_SPARSE_IRQ=y | ||
262 | CONFIG_MAX_ACTIVE_REGIONS=32 | 293 | CONFIG_MAX_ACTIVE_REGIONS=32 |
263 | CONFIG_ARCH_FLATMEM_ENABLE=y | 294 | CONFIG_ARCH_FLATMEM_ENABLE=y |
264 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 295 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -275,8 +306,6 @@ CONFIG_MIGRATION=y | |||
275 | CONFIG_ZONE_DMA_FLAG=1 | 306 | CONFIG_ZONE_DMA_FLAG=1 |
276 | CONFIG_BOUNCE=y | 307 | CONFIG_BOUNCE=y |
277 | CONFIG_VIRT_TO_BUS=y | 308 | CONFIG_VIRT_TO_BUS=y |
278 | CONFIG_HAVE_MLOCK=y | ||
279 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
280 | # CONFIG_KSM is not set | 309 | # CONFIG_KSM is not set |
281 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 310 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
282 | CONFIG_PPC_4K_PAGES=y | 311 | CONFIG_PPC_4K_PAGES=y |
@@ -403,9 +432,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
403 | # CONFIG_AF_RXRPC is not set | 432 | # CONFIG_AF_RXRPC is not set |
404 | CONFIG_WIRELESS=y | 433 | CONFIG_WIRELESS=y |
405 | # CONFIG_CFG80211 is not set | 434 | # CONFIG_CFG80211 is not set |
406 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
407 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
408 | # CONFIG_WIRELESS_EXT is not set | ||
409 | # CONFIG_LIB80211 is not set | 435 | # CONFIG_LIB80211 is not set |
410 | 436 | ||
411 | # | 437 | # |
@@ -528,6 +554,10 @@ CONFIG_BLK_DEV=y | |||
528 | # CONFIG_BLK_DEV_COW_COMMON is not set | 554 | # CONFIG_BLK_DEV_COW_COMMON is not set |
529 | CONFIG_BLK_DEV_LOOP=y | 555 | CONFIG_BLK_DEV_LOOP=y |
530 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 556 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
557 | |||
558 | # | ||
559 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
560 | # | ||
531 | # CONFIG_BLK_DEV_NBD is not set | 561 | # CONFIG_BLK_DEV_NBD is not set |
532 | # CONFIG_BLK_DEV_SX8 is not set | 562 | # CONFIG_BLK_DEV_SX8 is not set |
533 | # CONFIG_BLK_DEV_UB is not set | 563 | # CONFIG_BLK_DEV_UB is not set |
@@ -539,6 +569,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
539 | # CONFIG_ATA_OVER_ETH is not set | 569 | # CONFIG_ATA_OVER_ETH is not set |
540 | # CONFIG_BLK_DEV_HD is not set | 570 | # CONFIG_BLK_DEV_HD is not set |
541 | CONFIG_MISC_DEVICES=y | 571 | CONFIG_MISC_DEVICES=y |
572 | # CONFIG_AD525X_DPOT is not set | ||
542 | # CONFIG_PHANTOM is not set | 573 | # CONFIG_PHANTOM is not set |
543 | # CONFIG_SGI_IOC4 is not set | 574 | # CONFIG_SGI_IOC4 is not set |
544 | # CONFIG_TIFM_CORE is not set | 575 | # CONFIG_TIFM_CORE is not set |
@@ -546,6 +577,8 @@ CONFIG_MISC_DEVICES=y | |||
546 | # CONFIG_ENCLOSURE_SERVICES is not set | 577 | # CONFIG_ENCLOSURE_SERVICES is not set |
547 | # CONFIG_HP_ILO is not set | 578 | # CONFIG_HP_ILO is not set |
548 | # CONFIG_ISL29003 is not set | 579 | # CONFIG_ISL29003 is not set |
580 | # CONFIG_DS1682 is not set | ||
581 | # CONFIG_TI_DAC7512 is not set | ||
549 | # CONFIG_C2PORT is not set | 582 | # CONFIG_C2PORT is not set |
550 | 583 | ||
551 | # | 584 | # |
@@ -599,7 +632,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
599 | # CONFIG_SCSI_BNX2_ISCSI is not set | 632 | # CONFIG_SCSI_BNX2_ISCSI is not set |
600 | # CONFIG_BE2ISCSI is not set | 633 | # CONFIG_BE2ISCSI is not set |
601 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 634 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
635 | # CONFIG_SCSI_HPSA is not set | ||
602 | # CONFIG_SCSI_3W_9XXX is not set | 636 | # CONFIG_SCSI_3W_9XXX is not set |
637 | # CONFIG_SCSI_3W_SAS is not set | ||
603 | # CONFIG_SCSI_ACARD is not set | 638 | # CONFIG_SCSI_ACARD is not set |
604 | # CONFIG_SCSI_AACRAID is not set | 639 | # CONFIG_SCSI_AACRAID is not set |
605 | # CONFIG_SCSI_AIC7XXX is not set | 640 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -637,6 +672,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
637 | # CONFIG_SCSI_NSP32 is not set | 672 | # CONFIG_SCSI_NSP32 is not set |
638 | # CONFIG_SCSI_DEBUG is not set | 673 | # CONFIG_SCSI_DEBUG is not set |
639 | # CONFIG_SCSI_PMCRAID is not set | 674 | # CONFIG_SCSI_PMCRAID is not set |
675 | # CONFIG_SCSI_PM8001 is not set | ||
640 | # CONFIG_SCSI_SRP is not set | 676 | # CONFIG_SCSI_SRP is not set |
641 | # CONFIG_SCSI_BFA_FC is not set | 677 | # CONFIG_SCSI_BFA_FC is not set |
642 | # CONFIG_SCSI_DH is not set | 678 | # CONFIG_SCSI_DH is not set |
@@ -654,7 +690,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
654 | # | 690 | # |
655 | 691 | ||
656 | # | 692 | # |
657 | # See the help texts for more information. | 693 | # The newer stack is recommended. |
658 | # | 694 | # |
659 | # CONFIG_FIREWIRE is not set | 695 | # CONFIG_FIREWIRE is not set |
660 | # CONFIG_IEEE1394 is not set | 696 | # CONFIG_IEEE1394 is not set |
@@ -737,8 +773,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
737 | # CONFIG_BE2NET is not set | 773 | # CONFIG_BE2NET is not set |
738 | # CONFIG_TR is not set | 774 | # CONFIG_TR is not set |
739 | CONFIG_WLAN=y | 775 | CONFIG_WLAN=y |
740 | # CONFIG_WLAN_PRE80211 is not set | 776 | # CONFIG_AIRO is not set |
741 | # CONFIG_WLAN_80211 is not set | 777 | # CONFIG_ATMEL is not set |
778 | # CONFIG_PRISM54 is not set | ||
779 | # CONFIG_USB_ZD1201 is not set | ||
780 | # CONFIG_HOSTAP is not set | ||
742 | 781 | ||
743 | # | 782 | # |
744 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 783 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -761,6 +800,7 @@ CONFIG_WLAN=y | |||
761 | # CONFIG_NETCONSOLE is not set | 800 | # CONFIG_NETCONSOLE is not set |
762 | # CONFIG_NETPOLL is not set | 801 | # CONFIG_NETPOLL is not set |
763 | # CONFIG_NET_POLL_CONTROLLER is not set | 802 | # CONFIG_NET_POLL_CONTROLLER is not set |
803 | # CONFIG_VMXNET3 is not set | ||
764 | # CONFIG_ISDN is not set | 804 | # CONFIG_ISDN is not set |
765 | # CONFIG_PHONE is not set | 805 | # CONFIG_PHONE is not set |
766 | 806 | ||
@@ -802,6 +842,7 @@ CONFIG_SERIAL_CORE=y | |||
802 | CONFIG_SERIAL_CORE_CONSOLE=y | 842 | CONFIG_SERIAL_CORE_CONSOLE=y |
803 | # CONFIG_SERIAL_JSM is not set | 843 | # CONFIG_SERIAL_JSM is not set |
804 | # CONFIG_SERIAL_OF_PLATFORM is not set | 844 | # CONFIG_SERIAL_OF_PLATFORM is not set |
845 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
805 | CONFIG_UNIX98_PTYS=y | 846 | CONFIG_UNIX98_PTYS=y |
806 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 847 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
807 | CONFIG_LEGACY_PTYS=y | 848 | CONFIG_LEGACY_PTYS=y |
@@ -859,11 +900,6 @@ CONFIG_I2C_MPC=y | |||
859 | # CONFIG_I2C_TINY_USB is not set | 900 | # CONFIG_I2C_TINY_USB is not set |
860 | 901 | ||
861 | # | 902 | # |
862 | # Graphics adapter I2C/DDC channel drivers | ||
863 | # | ||
864 | # CONFIG_I2C_VOODOO3 is not set | ||
865 | |||
866 | # | ||
867 | # Other I2C/SMBus bus drivers | 903 | # Other I2C/SMBus bus drivers |
868 | # | 904 | # |
869 | # CONFIG_I2C_PCA_PLATFORM is not set | 905 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -872,7 +908,6 @@ CONFIG_I2C_MPC=y | |||
872 | # | 908 | # |
873 | # Miscellaneous I2C Chip support | 909 | # Miscellaneous I2C Chip support |
874 | # | 910 | # |
875 | # CONFIG_DS1682 is not set | ||
876 | # CONFIG_SENSORS_TSL2550 is not set | 911 | # CONFIG_SENSORS_TSL2550 is not set |
877 | # CONFIG_I2C_DEBUG_CORE is not set | 912 | # CONFIG_I2C_DEBUG_CORE is not set |
878 | # CONFIG_I2C_DEBUG_ALGO is not set | 913 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -886,6 +921,8 @@ CONFIG_SPI_MASTER=y | |||
886 | # | 921 | # |
887 | CONFIG_SPI_BITBANG=y | 922 | CONFIG_SPI_BITBANG=y |
888 | # CONFIG_SPI_MPC8xxx is not set | 923 | # CONFIG_SPI_MPC8xxx is not set |
924 | # CONFIG_SPI_XILINX is not set | ||
925 | # CONFIG_SPI_DESIGNWARE is not set | ||
889 | 926 | ||
890 | # | 927 | # |
891 | # SPI Protocol Masters | 928 | # SPI Protocol Masters |
@@ -939,6 +976,7 @@ CONFIG_SSB_POSSIBLE=y | |||
939 | # CONFIG_TWL4030_CORE is not set | 976 | # CONFIG_TWL4030_CORE is not set |
940 | # CONFIG_MFD_TMIO is not set | 977 | # CONFIG_MFD_TMIO is not set |
941 | # CONFIG_PMIC_DA903X is not set | 978 | # CONFIG_PMIC_DA903X is not set |
979 | # CONFIG_PMIC_ADP5520 is not set | ||
942 | # CONFIG_MFD_WM8400 is not set | 980 | # CONFIG_MFD_WM8400 is not set |
943 | # CONFIG_MFD_WM831X is not set | 981 | # CONFIG_MFD_WM831X is not set |
944 | # CONFIG_MFD_WM8350_I2C is not set | 982 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -946,6 +984,8 @@ CONFIG_SSB_POSSIBLE=y | |||
946 | # CONFIG_MFD_MC13783 is not set | 984 | # CONFIG_MFD_MC13783 is not set |
947 | # CONFIG_AB3100_CORE is not set | 985 | # CONFIG_AB3100_CORE is not set |
948 | # CONFIG_EZX_PCAP is not set | 986 | # CONFIG_EZX_PCAP is not set |
987 | # CONFIG_MFD_88PM8607 is not set | ||
988 | # CONFIG_AB4500_CORE is not set | ||
949 | # CONFIG_REGULATOR is not set | 989 | # CONFIG_REGULATOR is not set |
950 | # CONFIG_MEDIA_SUPPORT is not set | 990 | # CONFIG_MEDIA_SUPPORT is not set |
951 | 991 | ||
@@ -994,6 +1034,7 @@ CONFIG_USB_MON=y | |||
994 | CONFIG_USB_EHCI_HCD=y | 1034 | CONFIG_USB_EHCI_HCD=y |
995 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1035 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
996 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1036 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1037 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
997 | CONFIG_USB_EHCI_FSL=y | 1038 | CONFIG_USB_EHCI_FSL=y |
998 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1039 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
999 | # CONFIG_USB_OXU210HP_HCD is not set | 1040 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1112,6 +1153,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1112 | # CONFIG_RTC_DRV_PCF8563 is not set | 1153 | # CONFIG_RTC_DRV_PCF8563 is not set |
1113 | # CONFIG_RTC_DRV_PCF8583 is not set | 1154 | # CONFIG_RTC_DRV_PCF8583 is not set |
1114 | # CONFIG_RTC_DRV_M41T80 is not set | 1155 | # CONFIG_RTC_DRV_M41T80 is not set |
1156 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1115 | # CONFIG_RTC_DRV_S35390A is not set | 1157 | # CONFIG_RTC_DRV_S35390A is not set |
1116 | # CONFIG_RTC_DRV_FM3130 is not set | 1158 | # CONFIG_RTC_DRV_FM3130 is not set |
1117 | # CONFIG_RTC_DRV_RX8581 is not set | 1159 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1141,7 +1183,9 @@ CONFIG_RTC_DRV_DS1307=y | |||
1141 | # CONFIG_RTC_DRV_M48T86 is not set | 1183 | # CONFIG_RTC_DRV_M48T86 is not set |
1142 | # CONFIG_RTC_DRV_M48T35 is not set | 1184 | # CONFIG_RTC_DRV_M48T35 is not set |
1143 | # CONFIG_RTC_DRV_M48T59 is not set | 1185 | # CONFIG_RTC_DRV_M48T59 is not set |
1186 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1144 | # CONFIG_RTC_DRV_BQ4802 is not set | 1187 | # CONFIG_RTC_DRV_BQ4802 is not set |
1188 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1145 | # CONFIG_RTC_DRV_V3020 is not set | 1189 | # CONFIG_RTC_DRV_V3020 is not set |
1146 | 1190 | ||
1147 | # | 1191 | # |
@@ -1362,7 +1406,7 @@ CONFIG_FRAME_WARN=1024 | |||
1362 | # CONFIG_DEBUG_KERNEL is not set | 1406 | # CONFIG_DEBUG_KERNEL is not set |
1363 | # CONFIG_SLUB_DEBUG_ON is not set | 1407 | # CONFIG_SLUB_DEBUG_ON is not set |
1364 | # CONFIG_SLUB_STATS is not set | 1408 | # CONFIG_SLUB_STATS is not set |
1365 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1409 | CONFIG_DEBUG_BUGVERBOSE=y |
1366 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1410 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1367 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1411 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1368 | # CONFIG_LATENCYTOP is not set | 1412 | # CONFIG_LATENCYTOP is not set |
@@ -1389,7 +1433,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1389 | # CONFIG_KEYS is not set | 1433 | # CONFIG_KEYS is not set |
1390 | # CONFIG_SECURITY is not set | 1434 | # CONFIG_SECURITY is not set |
1391 | # CONFIG_SECURITYFS is not set | 1435 | # CONFIG_SECURITYFS is not set |
1392 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1436 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1437 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1438 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1439 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1440 | CONFIG_DEFAULT_SECURITY="" | ||
1393 | CONFIG_CRYPTO=y | 1441 | CONFIG_CRYPTO=y |
1394 | 1442 | ||
1395 | # | 1443 | # |
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig index c4e92ba5c38..6252ab5bf18 100644 --- a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig +++ b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:27 2009 | 4 | # Wed Jan 6 09:24:21 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -173,14 +176,41 @@ CONFIG_LBDAF=y | |||
173 | # IO Schedulers | 176 | # IO Schedulers |
174 | # | 177 | # |
175 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
176 | CONFIG_IOSCHED_AS=y | ||
177 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
178 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
179 | CONFIG_DEFAULT_AS=y | ||
180 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
181 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
182 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
183 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
184 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
185 | 215 | ||
186 | # | 216 | # |
@@ -259,6 +289,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
259 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 289 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
260 | # CONFIG_KEXEC is not set | 290 | # CONFIG_KEXEC is not set |
261 | # CONFIG_CRASH_DUMP is not set | 291 | # CONFIG_CRASH_DUMP is not set |
292 | CONFIG_SPARSE_IRQ=y | ||
262 | CONFIG_MAX_ACTIVE_REGIONS=32 | 293 | CONFIG_MAX_ACTIVE_REGIONS=32 |
263 | CONFIG_ARCH_FLATMEM_ENABLE=y | 294 | CONFIG_ARCH_FLATMEM_ENABLE=y |
264 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 295 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -275,8 +306,6 @@ CONFIG_MIGRATION=y | |||
275 | CONFIG_ZONE_DMA_FLAG=1 | 306 | CONFIG_ZONE_DMA_FLAG=1 |
276 | CONFIG_BOUNCE=y | 307 | CONFIG_BOUNCE=y |
277 | CONFIG_VIRT_TO_BUS=y | 308 | CONFIG_VIRT_TO_BUS=y |
278 | CONFIG_HAVE_MLOCK=y | ||
279 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
280 | # CONFIG_KSM is not set | 309 | # CONFIG_KSM is not set |
281 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 310 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
282 | CONFIG_PPC_4K_PAGES=y | 311 | CONFIG_PPC_4K_PAGES=y |
@@ -403,9 +432,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
403 | # CONFIG_AF_RXRPC is not set | 432 | # CONFIG_AF_RXRPC is not set |
404 | CONFIG_WIRELESS=y | 433 | CONFIG_WIRELESS=y |
405 | # CONFIG_CFG80211 is not set | 434 | # CONFIG_CFG80211 is not set |
406 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
407 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
408 | # CONFIG_WIRELESS_EXT is not set | ||
409 | # CONFIG_LIB80211 is not set | 435 | # CONFIG_LIB80211 is not set |
410 | 436 | ||
411 | # | 437 | # |
@@ -443,6 +469,10 @@ CONFIG_BLK_DEV=y | |||
443 | # CONFIG_BLK_DEV_COW_COMMON is not set | 469 | # CONFIG_BLK_DEV_COW_COMMON is not set |
444 | CONFIG_BLK_DEV_LOOP=y | 470 | CONFIG_BLK_DEV_LOOP=y |
445 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 471 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
472 | |||
473 | # | ||
474 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
475 | # | ||
446 | # CONFIG_BLK_DEV_NBD is not set | 476 | # CONFIG_BLK_DEV_NBD is not set |
447 | # CONFIG_BLK_DEV_SX8 is not set | 477 | # CONFIG_BLK_DEV_SX8 is not set |
448 | CONFIG_BLK_DEV_RAM=y | 478 | CONFIG_BLK_DEV_RAM=y |
@@ -453,6 +483,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
453 | # CONFIG_ATA_OVER_ETH is not set | 483 | # CONFIG_ATA_OVER_ETH is not set |
454 | # CONFIG_BLK_DEV_HD is not set | 484 | # CONFIG_BLK_DEV_HD is not set |
455 | CONFIG_MISC_DEVICES=y | 485 | CONFIG_MISC_DEVICES=y |
486 | # CONFIG_AD525X_DPOT is not set | ||
456 | # CONFIG_PHANTOM is not set | 487 | # CONFIG_PHANTOM is not set |
457 | # CONFIG_SGI_IOC4 is not set | 488 | # CONFIG_SGI_IOC4 is not set |
458 | # CONFIG_TIFM_CORE is not set | 489 | # CONFIG_TIFM_CORE is not set |
@@ -460,6 +491,7 @@ CONFIG_MISC_DEVICES=y | |||
460 | # CONFIG_ENCLOSURE_SERVICES is not set | 491 | # CONFIG_ENCLOSURE_SERVICES is not set |
461 | # CONFIG_HP_ILO is not set | 492 | # CONFIG_HP_ILO is not set |
462 | # CONFIG_ISL29003 is not set | 493 | # CONFIG_ISL29003 is not set |
494 | # CONFIG_DS1682 is not set | ||
463 | # CONFIG_C2PORT is not set | 495 | # CONFIG_C2PORT is not set |
464 | 496 | ||
465 | # | 497 | # |
@@ -493,7 +525,7 @@ CONFIG_HAVE_IDE=y | |||
493 | # | 525 | # |
494 | 526 | ||
495 | # | 527 | # |
496 | # See the help texts for more information. | 528 | # The newer stack is recommended. |
497 | # | 529 | # |
498 | # CONFIG_FIREWIRE is not set | 530 | # CONFIG_FIREWIRE is not set |
499 | # CONFIG_IEEE1394 is not set | 531 | # CONFIG_IEEE1394 is not set |
@@ -616,8 +648,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
616 | # CONFIG_BE2NET is not set | 648 | # CONFIG_BE2NET is not set |
617 | # CONFIG_TR is not set | 649 | # CONFIG_TR is not set |
618 | CONFIG_WLAN=y | 650 | CONFIG_WLAN=y |
619 | # CONFIG_WLAN_PRE80211 is not set | 651 | # CONFIG_AIRO is not set |
620 | # CONFIG_WLAN_80211 is not set | 652 | # CONFIG_ATMEL is not set |
653 | # CONFIG_PRISM54 is not set | ||
654 | # CONFIG_HOSTAP is not set | ||
621 | 655 | ||
622 | # | 656 | # |
623 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 657 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -630,6 +664,7 @@ CONFIG_WLAN=y | |||
630 | # CONFIG_NETCONSOLE is not set | 664 | # CONFIG_NETCONSOLE is not set |
631 | # CONFIG_NETPOLL is not set | 665 | # CONFIG_NETPOLL is not set |
632 | # CONFIG_NET_POLL_CONTROLLER is not set | 666 | # CONFIG_NET_POLL_CONTROLLER is not set |
667 | # CONFIG_VMXNET3 is not set | ||
633 | # CONFIG_ISDN is not set | 668 | # CONFIG_ISDN is not set |
634 | # CONFIG_PHONE is not set | 669 | # CONFIG_PHONE is not set |
635 | 670 | ||
@@ -639,6 +674,7 @@ CONFIG_WLAN=y | |||
639 | CONFIG_INPUT=y | 674 | CONFIG_INPUT=y |
640 | # CONFIG_INPUT_FF_MEMLESS is not set | 675 | # CONFIG_INPUT_FF_MEMLESS is not set |
641 | # CONFIG_INPUT_POLLDEV is not set | 676 | # CONFIG_INPUT_POLLDEV is not set |
677 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
642 | 678 | ||
643 | # | 679 | # |
644 | # Userland interfaces | 680 | # Userland interfaces |
@@ -690,6 +726,7 @@ CONFIG_SERIAL_CORE=y | |||
690 | CONFIG_SERIAL_CORE_CONSOLE=y | 726 | CONFIG_SERIAL_CORE_CONSOLE=y |
691 | # CONFIG_SERIAL_JSM is not set | 727 | # CONFIG_SERIAL_JSM is not set |
692 | # CONFIG_SERIAL_OF_PLATFORM is not set | 728 | # CONFIG_SERIAL_OF_PLATFORM is not set |
729 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
693 | CONFIG_UNIX98_PTYS=y | 730 | CONFIG_UNIX98_PTYS=y |
694 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 731 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
695 | CONFIG_LEGACY_PTYS=y | 732 | CONFIG_LEGACY_PTYS=y |
@@ -745,11 +782,6 @@ CONFIG_I2C_MPC=y | |||
745 | # CONFIG_I2C_TAOS_EVM is not set | 782 | # CONFIG_I2C_TAOS_EVM is not set |
746 | 783 | ||
747 | # | 784 | # |
748 | # Graphics adapter I2C/DDC channel drivers | ||
749 | # | ||
750 | # CONFIG_I2C_VOODOO3 is not set | ||
751 | |||
752 | # | ||
753 | # Other I2C/SMBus bus drivers | 785 | # Other I2C/SMBus bus drivers |
754 | # | 786 | # |
755 | # CONFIG_I2C_PCA_PLATFORM is not set | 787 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -758,7 +790,6 @@ CONFIG_I2C_MPC=y | |||
758 | # | 790 | # |
759 | # Miscellaneous I2C Chip support | 791 | # Miscellaneous I2C Chip support |
760 | # | 792 | # |
761 | # CONFIG_DS1682 is not set | ||
762 | # CONFIG_SENSORS_TSL2550 is not set | 793 | # CONFIG_SENSORS_TSL2550 is not set |
763 | # CONFIG_I2C_DEBUG_CORE is not set | 794 | # CONFIG_I2C_DEBUG_CORE is not set |
764 | # CONFIG_I2C_DEBUG_ALGO is not set | 795 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -804,6 +835,7 @@ CONFIG_HWMON=y | |||
804 | # CONFIG_SENSORS_GL520SM is not set | 835 | # CONFIG_SENSORS_GL520SM is not set |
805 | # CONFIG_SENSORS_IT87 is not set | 836 | # CONFIG_SENSORS_IT87 is not set |
806 | # CONFIG_SENSORS_LM63 is not set | 837 | # CONFIG_SENSORS_LM63 is not set |
838 | # CONFIG_SENSORS_LM73 is not set | ||
807 | # CONFIG_SENSORS_LM75 is not set | 839 | # CONFIG_SENSORS_LM75 is not set |
808 | # CONFIG_SENSORS_LM77 is not set | 840 | # CONFIG_SENSORS_LM77 is not set |
809 | # CONFIG_SENSORS_LM78 is not set | 841 | # CONFIG_SENSORS_LM78 is not set |
@@ -842,6 +874,7 @@ CONFIG_HWMON=y | |||
842 | # CONFIG_SENSORS_W83L786NG is not set | 874 | # CONFIG_SENSORS_W83L786NG is not set |
843 | # CONFIG_SENSORS_W83627HF is not set | 875 | # CONFIG_SENSORS_W83627HF is not set |
844 | # CONFIG_SENSORS_W83627EHF is not set | 876 | # CONFIG_SENSORS_W83627EHF is not set |
877 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
845 | # CONFIG_THERMAL is not set | 878 | # CONFIG_THERMAL is not set |
846 | CONFIG_WATCHDOG=y | 879 | CONFIG_WATCHDOG=y |
847 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 880 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -874,11 +907,13 @@ CONFIG_SSB_POSSIBLE=y | |||
874 | # CONFIG_TWL4030_CORE is not set | 907 | # CONFIG_TWL4030_CORE is not set |
875 | # CONFIG_MFD_TMIO is not set | 908 | # CONFIG_MFD_TMIO is not set |
876 | # CONFIG_PMIC_DA903X is not set | 909 | # CONFIG_PMIC_DA903X is not set |
910 | # CONFIG_PMIC_ADP5520 is not set | ||
877 | # CONFIG_MFD_WM8400 is not set | 911 | # CONFIG_MFD_WM8400 is not set |
878 | # CONFIG_MFD_WM831X is not set | 912 | # CONFIG_MFD_WM831X is not set |
879 | # CONFIG_MFD_WM8350_I2C is not set | 913 | # CONFIG_MFD_WM8350_I2C is not set |
880 | # CONFIG_MFD_PCF50633 is not set | 914 | # CONFIG_MFD_PCF50633 is not set |
881 | # CONFIG_AB3100_CORE is not set | 915 | # CONFIG_AB3100_CORE is not set |
916 | # CONFIG_MFD_88PM8607 is not set | ||
882 | # CONFIG_REGULATOR is not set | 917 | # CONFIG_REGULATOR is not set |
883 | # CONFIG_MEDIA_SUPPORT is not set | 918 | # CONFIG_MEDIA_SUPPORT is not set |
884 | 919 | ||
@@ -961,6 +996,7 @@ CONFIG_RTC_DRV_DS1374=y | |||
961 | # CONFIG_RTC_DRV_PCF8563 is not set | 996 | # CONFIG_RTC_DRV_PCF8563 is not set |
962 | # CONFIG_RTC_DRV_PCF8583 is not set | 997 | # CONFIG_RTC_DRV_PCF8583 is not set |
963 | # CONFIG_RTC_DRV_M41T80 is not set | 998 | # CONFIG_RTC_DRV_M41T80 is not set |
999 | # CONFIG_RTC_DRV_BQ32K is not set | ||
964 | # CONFIG_RTC_DRV_S35390A is not set | 1000 | # CONFIG_RTC_DRV_S35390A is not set |
965 | # CONFIG_RTC_DRV_FM3130 is not set | 1001 | # CONFIG_RTC_DRV_FM3130 is not set |
966 | # CONFIG_RTC_DRV_RX8581 is not set | 1002 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -982,7 +1018,9 @@ CONFIG_RTC_DRV_DS1374=y | |||
982 | # CONFIG_RTC_DRV_M48T86 is not set | 1018 | # CONFIG_RTC_DRV_M48T86 is not set |
983 | # CONFIG_RTC_DRV_M48T35 is not set | 1019 | # CONFIG_RTC_DRV_M48T35 is not set |
984 | # CONFIG_RTC_DRV_M48T59 is not set | 1020 | # CONFIG_RTC_DRV_M48T59 is not set |
1021 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
985 | # CONFIG_RTC_DRV_BQ4802 is not set | 1022 | # CONFIG_RTC_DRV_BQ4802 is not set |
1023 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
986 | # CONFIG_RTC_DRV_V3020 is not set | 1024 | # CONFIG_RTC_DRV_V3020 is not set |
987 | 1025 | ||
988 | # | 1026 | # |
@@ -1156,7 +1194,7 @@ CONFIG_FRAME_WARN=1024 | |||
1156 | # CONFIG_DEBUG_KERNEL is not set | 1194 | # CONFIG_DEBUG_KERNEL is not set |
1157 | # CONFIG_SLUB_DEBUG_ON is not set | 1195 | # CONFIG_SLUB_DEBUG_ON is not set |
1158 | # CONFIG_SLUB_STATS is not set | 1196 | # CONFIG_SLUB_STATS is not set |
1159 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1197 | CONFIG_DEBUG_BUGVERBOSE=y |
1160 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1198 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1161 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1199 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1162 | # CONFIG_LATENCYTOP is not set | 1200 | # CONFIG_LATENCYTOP is not set |
@@ -1183,7 +1221,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1183 | # CONFIG_KEYS is not set | 1221 | # CONFIG_KEYS is not set |
1184 | # CONFIG_SECURITY is not set | 1222 | # CONFIG_SECURITY is not set |
1185 | # CONFIG_SECURITYFS is not set | 1223 | # CONFIG_SECURITYFS is not set |
1186 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1224 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1225 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1226 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1227 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1228 | CONFIG_DEFAULT_SECURITY="" | ||
1187 | CONFIG_CRYPTO=y | 1229 | CONFIG_CRYPTO=y |
1188 | 1230 | ||
1189 | # | 1231 | # |
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig index 4f434b1492f..78227378e67 100644 --- a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig +++ b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:28 2009 | 4 | # Wed Jan 6 09:24:21 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -173,14 +176,41 @@ CONFIG_LBDAF=y | |||
173 | # IO Schedulers | 176 | # IO Schedulers |
174 | # | 177 | # |
175 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
176 | CONFIG_IOSCHED_AS=y | ||
177 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
178 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
179 | CONFIG_DEFAULT_AS=y | ||
180 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
181 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
182 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
183 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
184 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
185 | 215 | ||
186 | # | 216 | # |
@@ -258,6 +288,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
258 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 288 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
259 | # CONFIG_KEXEC is not set | 289 | # CONFIG_KEXEC is not set |
260 | # CONFIG_CRASH_DUMP is not set | 290 | # CONFIG_CRASH_DUMP is not set |
291 | CONFIG_SPARSE_IRQ=y | ||
261 | CONFIG_MAX_ACTIVE_REGIONS=32 | 292 | CONFIG_MAX_ACTIVE_REGIONS=32 |
262 | CONFIG_ARCH_FLATMEM_ENABLE=y | 293 | CONFIG_ARCH_FLATMEM_ENABLE=y |
263 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 294 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -274,8 +305,6 @@ CONFIG_MIGRATION=y | |||
274 | CONFIG_ZONE_DMA_FLAG=1 | 305 | CONFIG_ZONE_DMA_FLAG=1 |
275 | CONFIG_BOUNCE=y | 306 | CONFIG_BOUNCE=y |
276 | CONFIG_VIRT_TO_BUS=y | 307 | CONFIG_VIRT_TO_BUS=y |
277 | CONFIG_HAVE_MLOCK=y | ||
278 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
279 | # CONFIG_KSM is not set | 308 | # CONFIG_KSM is not set |
280 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 309 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
281 | CONFIG_PPC_4K_PAGES=y | 310 | CONFIG_PPC_4K_PAGES=y |
@@ -402,9 +431,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
402 | # CONFIG_AF_RXRPC is not set | 431 | # CONFIG_AF_RXRPC is not set |
403 | CONFIG_WIRELESS=y | 432 | CONFIG_WIRELESS=y |
404 | # CONFIG_CFG80211 is not set | 433 | # CONFIG_CFG80211 is not set |
405 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
406 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
407 | # CONFIG_WIRELESS_EXT is not set | ||
408 | # CONFIG_LIB80211 is not set | 434 | # CONFIG_LIB80211 is not set |
409 | 435 | ||
410 | # | 436 | # |
@@ -525,6 +551,10 @@ CONFIG_BLK_DEV=y | |||
525 | # CONFIG_BLK_DEV_COW_COMMON is not set | 551 | # CONFIG_BLK_DEV_COW_COMMON is not set |
526 | CONFIG_BLK_DEV_LOOP=y | 552 | CONFIG_BLK_DEV_LOOP=y |
527 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 553 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
554 | |||
555 | # | ||
556 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
557 | # | ||
528 | # CONFIG_BLK_DEV_NBD is not set | 558 | # CONFIG_BLK_DEV_NBD is not set |
529 | # CONFIG_BLK_DEV_SX8 is not set | 559 | # CONFIG_BLK_DEV_SX8 is not set |
530 | CONFIG_BLK_DEV_RAM=y | 560 | CONFIG_BLK_DEV_RAM=y |
@@ -535,6 +565,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
535 | # CONFIG_ATA_OVER_ETH is not set | 565 | # CONFIG_ATA_OVER_ETH is not set |
536 | # CONFIG_BLK_DEV_HD is not set | 566 | # CONFIG_BLK_DEV_HD is not set |
537 | CONFIG_MISC_DEVICES=y | 567 | CONFIG_MISC_DEVICES=y |
568 | # CONFIG_AD525X_DPOT is not set | ||
538 | # CONFIG_PHANTOM is not set | 569 | # CONFIG_PHANTOM is not set |
539 | # CONFIG_SGI_IOC4 is not set | 570 | # CONFIG_SGI_IOC4 is not set |
540 | # CONFIG_TIFM_CORE is not set | 571 | # CONFIG_TIFM_CORE is not set |
@@ -542,6 +573,7 @@ CONFIG_MISC_DEVICES=y | |||
542 | # CONFIG_ENCLOSURE_SERVICES is not set | 573 | # CONFIG_ENCLOSURE_SERVICES is not set |
543 | # CONFIG_HP_ILO is not set | 574 | # CONFIG_HP_ILO is not set |
544 | # CONFIG_ISL29003 is not set | 575 | # CONFIG_ISL29003 is not set |
576 | # CONFIG_DS1682 is not set | ||
545 | # CONFIG_C2PORT is not set | 577 | # CONFIG_C2PORT is not set |
546 | 578 | ||
547 | # | 579 | # |
@@ -594,7 +626,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
594 | # CONFIG_SCSI_BNX2_ISCSI is not set | 626 | # CONFIG_SCSI_BNX2_ISCSI is not set |
595 | # CONFIG_BE2ISCSI is not set | 627 | # CONFIG_BE2ISCSI is not set |
596 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 628 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
629 | # CONFIG_SCSI_HPSA is not set | ||
597 | # CONFIG_SCSI_3W_9XXX is not set | 630 | # CONFIG_SCSI_3W_9XXX is not set |
631 | # CONFIG_SCSI_3W_SAS is not set | ||
598 | # CONFIG_SCSI_ACARD is not set | 632 | # CONFIG_SCSI_ACARD is not set |
599 | # CONFIG_SCSI_AACRAID is not set | 633 | # CONFIG_SCSI_AACRAID is not set |
600 | # CONFIG_SCSI_AIC7XXX is not set | 634 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -632,6 +666,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
632 | # CONFIG_SCSI_NSP32 is not set | 666 | # CONFIG_SCSI_NSP32 is not set |
633 | # CONFIG_SCSI_DEBUG is not set | 667 | # CONFIG_SCSI_DEBUG is not set |
634 | # CONFIG_SCSI_PMCRAID is not set | 668 | # CONFIG_SCSI_PMCRAID is not set |
669 | # CONFIG_SCSI_PM8001 is not set | ||
635 | # CONFIG_SCSI_SRP is not set | 670 | # CONFIG_SCSI_SRP is not set |
636 | # CONFIG_SCSI_BFA_FC is not set | 671 | # CONFIG_SCSI_BFA_FC is not set |
637 | # CONFIG_SCSI_DH is not set | 672 | # CONFIG_SCSI_DH is not set |
@@ -649,7 +684,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
649 | # | 684 | # |
650 | 685 | ||
651 | # | 686 | # |
652 | # See the help texts for more information. | 687 | # The newer stack is recommended. |
653 | # | 688 | # |
654 | # CONFIG_FIREWIRE is not set | 689 | # CONFIG_FIREWIRE is not set |
655 | # CONFIG_IEEE1394 is not set | 690 | # CONFIG_IEEE1394 is not set |
@@ -756,8 +791,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
756 | # CONFIG_BE2NET is not set | 791 | # CONFIG_BE2NET is not set |
757 | # CONFIG_TR is not set | 792 | # CONFIG_TR is not set |
758 | CONFIG_WLAN=y | 793 | CONFIG_WLAN=y |
759 | # CONFIG_WLAN_PRE80211 is not set | 794 | # CONFIG_AIRO is not set |
760 | # CONFIG_WLAN_80211 is not set | 795 | # CONFIG_ATMEL is not set |
796 | # CONFIG_PRISM54 is not set | ||
797 | # CONFIG_HOSTAP is not set | ||
761 | 798 | ||
762 | # | 799 | # |
763 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 800 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -771,6 +808,7 @@ CONFIG_WLAN=y | |||
771 | # CONFIG_NETCONSOLE is not set | 808 | # CONFIG_NETCONSOLE is not set |
772 | # CONFIG_NETPOLL is not set | 809 | # CONFIG_NETPOLL is not set |
773 | # CONFIG_NET_POLL_CONTROLLER is not set | 810 | # CONFIG_NET_POLL_CONTROLLER is not set |
811 | # CONFIG_VMXNET3 is not set | ||
774 | # CONFIG_ISDN is not set | 812 | # CONFIG_ISDN is not set |
775 | # CONFIG_PHONE is not set | 813 | # CONFIG_PHONE is not set |
776 | 814 | ||
@@ -780,6 +818,7 @@ CONFIG_WLAN=y | |||
780 | CONFIG_INPUT=y | 818 | CONFIG_INPUT=y |
781 | # CONFIG_INPUT_FF_MEMLESS is not set | 819 | # CONFIG_INPUT_FF_MEMLESS is not set |
782 | # CONFIG_INPUT_POLLDEV is not set | 820 | # CONFIG_INPUT_POLLDEV is not set |
821 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
783 | 822 | ||
784 | # | 823 | # |
785 | # Userland interfaces | 824 | # Userland interfaces |
@@ -832,6 +871,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
832 | # CONFIG_SERIAL_JSM is not set | 871 | # CONFIG_SERIAL_JSM is not set |
833 | # CONFIG_SERIAL_OF_PLATFORM is not set | 872 | # CONFIG_SERIAL_OF_PLATFORM is not set |
834 | # CONFIG_SERIAL_QE is not set | 873 | # CONFIG_SERIAL_QE is not set |
874 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
835 | CONFIG_UNIX98_PTYS=y | 875 | CONFIG_UNIX98_PTYS=y |
836 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 876 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
837 | CONFIG_LEGACY_PTYS=y | 877 | CONFIG_LEGACY_PTYS=y |
@@ -888,11 +928,6 @@ CONFIG_I2C_MPC=y | |||
888 | # CONFIG_I2C_TAOS_EVM is not set | 928 | # CONFIG_I2C_TAOS_EVM is not set |
889 | 929 | ||
890 | # | 930 | # |
891 | # Graphics adapter I2C/DDC channel drivers | ||
892 | # | ||
893 | # CONFIG_I2C_VOODOO3 is not set | ||
894 | |||
895 | # | ||
896 | # Other I2C/SMBus bus drivers | 931 | # Other I2C/SMBus bus drivers |
897 | # | 932 | # |
898 | # CONFIG_I2C_PCA_PLATFORM is not set | 933 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -901,7 +936,6 @@ CONFIG_I2C_MPC=y | |||
901 | # | 936 | # |
902 | # Miscellaneous I2C Chip support | 937 | # Miscellaneous I2C Chip support |
903 | # | 938 | # |
904 | # CONFIG_DS1682 is not set | ||
905 | # CONFIG_SENSORS_TSL2550 is not set | 939 | # CONFIG_SENSORS_TSL2550 is not set |
906 | # CONFIG_I2C_DEBUG_CORE is not set | 940 | # CONFIG_I2C_DEBUG_CORE is not set |
907 | # CONFIG_I2C_DEBUG_ALGO is not set | 941 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -947,6 +981,7 @@ CONFIG_HWMON=y | |||
947 | # CONFIG_SENSORS_GL520SM is not set | 981 | # CONFIG_SENSORS_GL520SM is not set |
948 | # CONFIG_SENSORS_IT87 is not set | 982 | # CONFIG_SENSORS_IT87 is not set |
949 | # CONFIG_SENSORS_LM63 is not set | 983 | # CONFIG_SENSORS_LM63 is not set |
984 | # CONFIG_SENSORS_LM73 is not set | ||
950 | # CONFIG_SENSORS_LM75 is not set | 985 | # CONFIG_SENSORS_LM75 is not set |
951 | # CONFIG_SENSORS_LM77 is not set | 986 | # CONFIG_SENSORS_LM77 is not set |
952 | # CONFIG_SENSORS_LM78 is not set | 987 | # CONFIG_SENSORS_LM78 is not set |
@@ -985,6 +1020,7 @@ CONFIG_HWMON=y | |||
985 | # CONFIG_SENSORS_W83L786NG is not set | 1020 | # CONFIG_SENSORS_W83L786NG is not set |
986 | # CONFIG_SENSORS_W83627HF is not set | 1021 | # CONFIG_SENSORS_W83627HF is not set |
987 | # CONFIG_SENSORS_W83627EHF is not set | 1022 | # CONFIG_SENSORS_W83627EHF is not set |
1023 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
988 | # CONFIG_THERMAL is not set | 1024 | # CONFIG_THERMAL is not set |
989 | CONFIG_WATCHDOG=y | 1025 | CONFIG_WATCHDOG=y |
990 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1026 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1017,11 +1053,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1017 | # CONFIG_TWL4030_CORE is not set | 1053 | # CONFIG_TWL4030_CORE is not set |
1018 | # CONFIG_MFD_TMIO is not set | 1054 | # CONFIG_MFD_TMIO is not set |
1019 | # CONFIG_PMIC_DA903X is not set | 1055 | # CONFIG_PMIC_DA903X is not set |
1056 | # CONFIG_PMIC_ADP5520 is not set | ||
1020 | # CONFIG_MFD_WM8400 is not set | 1057 | # CONFIG_MFD_WM8400 is not set |
1021 | # CONFIG_MFD_WM831X is not set | 1058 | # CONFIG_MFD_WM831X is not set |
1022 | # CONFIG_MFD_WM8350_I2C is not set | 1059 | # CONFIG_MFD_WM8350_I2C is not set |
1023 | # CONFIG_MFD_PCF50633 is not set | 1060 | # CONFIG_MFD_PCF50633 is not set |
1024 | # CONFIG_AB3100_CORE is not set | 1061 | # CONFIG_AB3100_CORE is not set |
1062 | # CONFIG_MFD_88PM8607 is not set | ||
1025 | # CONFIG_REGULATOR is not set | 1063 | # CONFIG_REGULATOR is not set |
1026 | # CONFIG_MEDIA_SUPPORT is not set | 1064 | # CONFIG_MEDIA_SUPPORT is not set |
1027 | 1065 | ||
@@ -1104,6 +1142,7 @@ CONFIG_RTC_DRV_DS1374=y | |||
1104 | # CONFIG_RTC_DRV_PCF8563 is not set | 1142 | # CONFIG_RTC_DRV_PCF8563 is not set |
1105 | # CONFIG_RTC_DRV_PCF8583 is not set | 1143 | # CONFIG_RTC_DRV_PCF8583 is not set |
1106 | # CONFIG_RTC_DRV_M41T80 is not set | 1144 | # CONFIG_RTC_DRV_M41T80 is not set |
1145 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1107 | # CONFIG_RTC_DRV_S35390A is not set | 1146 | # CONFIG_RTC_DRV_S35390A is not set |
1108 | # CONFIG_RTC_DRV_FM3130 is not set | 1147 | # CONFIG_RTC_DRV_FM3130 is not set |
1109 | # CONFIG_RTC_DRV_RX8581 is not set | 1148 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1125,7 +1164,9 @@ CONFIG_RTC_DRV_DS1374=y | |||
1125 | # CONFIG_RTC_DRV_M48T86 is not set | 1164 | # CONFIG_RTC_DRV_M48T86 is not set |
1126 | # CONFIG_RTC_DRV_M48T35 is not set | 1165 | # CONFIG_RTC_DRV_M48T35 is not set |
1127 | # CONFIG_RTC_DRV_M48T59 is not set | 1166 | # CONFIG_RTC_DRV_M48T59 is not set |
1167 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1128 | # CONFIG_RTC_DRV_BQ4802 is not set | 1168 | # CONFIG_RTC_DRV_BQ4802 is not set |
1169 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1129 | # CONFIG_RTC_DRV_V3020 is not set | 1170 | # CONFIG_RTC_DRV_V3020 is not set |
1130 | 1171 | ||
1131 | # | 1172 | # |
@@ -1302,7 +1343,7 @@ CONFIG_FRAME_WARN=1024 | |||
1302 | # CONFIG_DEBUG_KERNEL is not set | 1343 | # CONFIG_DEBUG_KERNEL is not set |
1303 | # CONFIG_SLUB_DEBUG_ON is not set | 1344 | # CONFIG_SLUB_DEBUG_ON is not set |
1304 | # CONFIG_SLUB_STATS is not set | 1345 | # CONFIG_SLUB_STATS is not set |
1305 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1346 | CONFIG_DEBUG_BUGVERBOSE=y |
1306 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1347 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1307 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1348 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1308 | # CONFIG_LATENCYTOP is not set | 1349 | # CONFIG_LATENCYTOP is not set |
@@ -1329,7 +1370,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1329 | # CONFIG_KEYS is not set | 1370 | # CONFIG_KEYS is not set |
1330 | # CONFIG_SECURITY is not set | 1371 | # CONFIG_SECURITY is not set |
1331 | # CONFIG_SECURITYFS is not set | 1372 | # CONFIG_SECURITYFS is not set |
1332 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1373 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1374 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1375 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1376 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1377 | CONFIG_DEFAULT_SECURITY="" | ||
1333 | CONFIG_CRYPTO=y | 1378 | CONFIG_CRYPTO=y |
1334 | 1379 | ||
1335 | # | 1380 | # |
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig index b52ec086167..9451d6e5c80 100644 --- a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig +++ b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:30 2009 | 4 | # Wed Jan 6 09:24:23 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -60,6 +61,7 @@ CONFIG_AUDIT_ARCH=y | |||
60 | CONFIG_GENERIC_BUG=y | 61 | CONFIG_GENERIC_BUG=y |
61 | CONFIG_DTC=y | 62 | CONFIG_DTC=y |
62 | CONFIG_DEFAULT_UIMAGE=y | 63 | CONFIG_DEFAULT_UIMAGE=y |
64 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
63 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 65 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
64 | # CONFIG_PPC_DCR_NATIVE is not set | 66 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 67 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -88,6 +90,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
88 | # | 90 | # |
89 | CONFIG_TREE_RCU=y | 91 | CONFIG_TREE_RCU=y |
90 | # CONFIG_TREE_PREEMPT_RCU is not set | 92 | # CONFIG_TREE_PREEMPT_RCU is not set |
93 | # CONFIG_TINY_RCU is not set | ||
91 | # CONFIG_RCU_TRACE is not set | 94 | # CONFIG_RCU_TRACE is not set |
92 | CONFIG_RCU_FANOUT=32 | 95 | CONFIG_RCU_FANOUT=32 |
93 | # CONFIG_RCU_FANOUT_EXACT is not set | 96 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -174,14 +177,41 @@ CONFIG_LBDAF=y | |||
174 | # IO Schedulers | 177 | # IO Schedulers |
175 | # | 178 | # |
176 | CONFIG_IOSCHED_NOOP=y | 179 | CONFIG_IOSCHED_NOOP=y |
177 | CONFIG_IOSCHED_AS=y | ||
178 | CONFIG_IOSCHED_DEADLINE=y | 180 | CONFIG_IOSCHED_DEADLINE=y |
179 | CONFIG_IOSCHED_CFQ=y | 181 | CONFIG_IOSCHED_CFQ=y |
180 | CONFIG_DEFAULT_AS=y | ||
181 | # CONFIG_DEFAULT_DEADLINE is not set | 182 | # CONFIG_DEFAULT_DEADLINE is not set |
182 | # CONFIG_DEFAULT_CFQ is not set | 183 | CONFIG_DEFAULT_CFQ=y |
183 | # CONFIG_DEFAULT_NOOP is not set | 184 | # CONFIG_DEFAULT_NOOP is not set |
184 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 185 | CONFIG_DEFAULT_IOSCHED="cfq" |
186 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
192 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
196 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
201 | CONFIG_INLINE_READ_UNLOCK=y | ||
202 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
205 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
210 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
214 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
185 | # CONFIG_FREEZER is not set | 215 | # CONFIG_FREEZER is not set |
186 | 216 | ||
187 | # | 217 | # |
@@ -258,6 +288,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
258 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 288 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
259 | # CONFIG_KEXEC is not set | 289 | # CONFIG_KEXEC is not set |
260 | # CONFIG_CRASH_DUMP is not set | 290 | # CONFIG_CRASH_DUMP is not set |
291 | CONFIG_SPARSE_IRQ=y | ||
261 | CONFIG_MAX_ACTIVE_REGIONS=32 | 292 | CONFIG_MAX_ACTIVE_REGIONS=32 |
262 | CONFIG_ARCH_FLATMEM_ENABLE=y | 293 | CONFIG_ARCH_FLATMEM_ENABLE=y |
263 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 294 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -274,8 +305,6 @@ CONFIG_MIGRATION=y | |||
274 | CONFIG_ZONE_DMA_FLAG=1 | 305 | CONFIG_ZONE_DMA_FLAG=1 |
275 | CONFIG_BOUNCE=y | 306 | CONFIG_BOUNCE=y |
276 | CONFIG_VIRT_TO_BUS=y | 307 | CONFIG_VIRT_TO_BUS=y |
277 | CONFIG_HAVE_MLOCK=y | ||
278 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
279 | # CONFIG_KSM is not set | 308 | # CONFIG_KSM is not set |
280 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 309 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
281 | CONFIG_PPC_4K_PAGES=y | 310 | CONFIG_PPC_4K_PAGES=y |
@@ -404,9 +433,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
404 | # CONFIG_AF_RXRPC is not set | 433 | # CONFIG_AF_RXRPC is not set |
405 | CONFIG_WIRELESS=y | 434 | CONFIG_WIRELESS=y |
406 | # CONFIG_CFG80211 is not set | 435 | # CONFIG_CFG80211 is not set |
407 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
408 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
409 | # CONFIG_WIRELESS_EXT is not set | ||
410 | # CONFIG_LIB80211 is not set | 436 | # CONFIG_LIB80211 is not set |
411 | 437 | ||
412 | # | 438 | # |
@@ -539,6 +565,10 @@ CONFIG_BLK_DEV=y | |||
539 | # CONFIG_BLK_DEV_COW_COMMON is not set | 565 | # CONFIG_BLK_DEV_COW_COMMON is not set |
540 | CONFIG_BLK_DEV_LOOP=y | 566 | CONFIG_BLK_DEV_LOOP=y |
541 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 567 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
568 | |||
569 | # | ||
570 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
571 | # | ||
542 | # CONFIG_BLK_DEV_NBD is not set | 572 | # CONFIG_BLK_DEV_NBD is not set |
543 | # CONFIG_BLK_DEV_SX8 is not set | 573 | # CONFIG_BLK_DEV_SX8 is not set |
544 | CONFIG_BLK_DEV_RAM=y | 574 | CONFIG_BLK_DEV_RAM=y |
@@ -549,6 +579,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
549 | # CONFIG_ATA_OVER_ETH is not set | 579 | # CONFIG_ATA_OVER_ETH is not set |
550 | # CONFIG_BLK_DEV_HD is not set | 580 | # CONFIG_BLK_DEV_HD is not set |
551 | CONFIG_MISC_DEVICES=y | 581 | CONFIG_MISC_DEVICES=y |
582 | # CONFIG_AD525X_DPOT is not set | ||
552 | # CONFIG_PHANTOM is not set | 583 | # CONFIG_PHANTOM is not set |
553 | # CONFIG_SGI_IOC4 is not set | 584 | # CONFIG_SGI_IOC4 is not set |
554 | # CONFIG_TIFM_CORE is not set | 585 | # CONFIG_TIFM_CORE is not set |
@@ -556,6 +587,8 @@ CONFIG_MISC_DEVICES=y | |||
556 | # CONFIG_ENCLOSURE_SERVICES is not set | 587 | # CONFIG_ENCLOSURE_SERVICES is not set |
557 | # CONFIG_HP_ILO is not set | 588 | # CONFIG_HP_ILO is not set |
558 | # CONFIG_ISL29003 is not set | 589 | # CONFIG_ISL29003 is not set |
590 | # CONFIG_DS1682 is not set | ||
591 | # CONFIG_TI_DAC7512 is not set | ||
559 | # CONFIG_C2PORT is not set | 592 | # CONFIG_C2PORT is not set |
560 | 593 | ||
561 | # | 594 | # |
@@ -590,7 +623,7 @@ CONFIG_HAVE_IDE=y | |||
590 | # | 623 | # |
591 | 624 | ||
592 | # | 625 | # |
593 | # See the help texts for more information. | 626 | # The newer stack is recommended. |
594 | # | 627 | # |
595 | # CONFIG_FIREWIRE is not set | 628 | # CONFIG_FIREWIRE is not set |
596 | # CONFIG_IEEE1394 is not set | 629 | # CONFIG_IEEE1394 is not set |
@@ -657,8 +690,10 @@ CONFIG_UCC_GETH=y | |||
657 | # CONFIG_NETDEV_10000 is not set | 690 | # CONFIG_NETDEV_10000 is not set |
658 | # CONFIG_TR is not set | 691 | # CONFIG_TR is not set |
659 | CONFIG_WLAN=y | 692 | CONFIG_WLAN=y |
660 | # CONFIG_WLAN_PRE80211 is not set | 693 | # CONFIG_AIRO is not set |
661 | # CONFIG_WLAN_80211 is not set | 694 | # CONFIG_ATMEL is not set |
695 | # CONFIG_PRISM54 is not set | ||
696 | # CONFIG_HOSTAP is not set | ||
662 | 697 | ||
663 | # | 698 | # |
664 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 699 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -671,6 +706,7 @@ CONFIG_WLAN=y | |||
671 | # CONFIG_NETCONSOLE is not set | 706 | # CONFIG_NETCONSOLE is not set |
672 | # CONFIG_NETPOLL is not set | 707 | # CONFIG_NETPOLL is not set |
673 | # CONFIG_NET_POLL_CONTROLLER is not set | 708 | # CONFIG_NET_POLL_CONTROLLER is not set |
709 | # CONFIG_VMXNET3 is not set | ||
674 | # CONFIG_ISDN is not set | 710 | # CONFIG_ISDN is not set |
675 | # CONFIG_PHONE is not set | 711 | # CONFIG_PHONE is not set |
676 | 712 | ||
@@ -680,6 +716,7 @@ CONFIG_WLAN=y | |||
680 | CONFIG_INPUT=y | 716 | CONFIG_INPUT=y |
681 | # CONFIG_INPUT_FF_MEMLESS is not set | 717 | # CONFIG_INPUT_FF_MEMLESS is not set |
682 | # CONFIG_INPUT_POLLDEV is not set | 718 | # CONFIG_INPUT_POLLDEV is not set |
719 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
683 | 720 | ||
684 | # | 721 | # |
685 | # Userland interfaces | 722 | # Userland interfaces |
@@ -737,6 +774,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
737 | # CONFIG_SERIAL_JSM is not set | 774 | # CONFIG_SERIAL_JSM is not set |
738 | # CONFIG_SERIAL_OF_PLATFORM is not set | 775 | # CONFIG_SERIAL_OF_PLATFORM is not set |
739 | CONFIG_SERIAL_QE=y | 776 | CONFIG_SERIAL_QE=y |
777 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
740 | CONFIG_UNIX98_PTYS=y | 778 | CONFIG_UNIX98_PTYS=y |
741 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 779 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
742 | CONFIG_LEGACY_PTYS=y | 780 | CONFIG_LEGACY_PTYS=y |
@@ -795,11 +833,6 @@ CONFIG_I2C_MPC=y | |||
795 | # CONFIG_I2C_TAOS_EVM is not set | 833 | # CONFIG_I2C_TAOS_EVM is not set |
796 | 834 | ||
797 | # | 835 | # |
798 | # Graphics adapter I2C/DDC channel drivers | ||
799 | # | ||
800 | # CONFIG_I2C_VOODOO3 is not set | ||
801 | |||
802 | # | ||
803 | # Other I2C/SMBus bus drivers | 836 | # Other I2C/SMBus bus drivers |
804 | # | 837 | # |
805 | # CONFIG_I2C_PCA_PLATFORM is not set | 838 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -808,7 +841,6 @@ CONFIG_I2C_MPC=y | |||
808 | # | 841 | # |
809 | # Miscellaneous I2C Chip support | 842 | # Miscellaneous I2C Chip support |
810 | # | 843 | # |
811 | # CONFIG_DS1682 is not set | ||
812 | # CONFIG_SENSORS_TSL2550 is not set | 844 | # CONFIG_SENSORS_TSL2550 is not set |
813 | # CONFIG_I2C_DEBUG_CORE is not set | 845 | # CONFIG_I2C_DEBUG_CORE is not set |
814 | # CONFIG_I2C_DEBUG_ALGO is not set | 846 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -823,6 +855,8 @@ CONFIG_SPI_MASTER=y | |||
823 | CONFIG_SPI_BITBANG=y | 855 | CONFIG_SPI_BITBANG=y |
824 | # CONFIG_SPI_GPIO is not set | 856 | # CONFIG_SPI_GPIO is not set |
825 | # CONFIG_SPI_MPC8xxx is not set | 857 | # CONFIG_SPI_MPC8xxx is not set |
858 | # CONFIG_SPI_XILINX is not set | ||
859 | # CONFIG_SPI_DESIGNWARE is not set | ||
826 | 860 | ||
827 | # | 861 | # |
828 | # SPI Protocol Masters | 862 | # SPI Protocol Masters |
@@ -854,6 +888,7 @@ CONFIG_GPIOLIB=y | |||
854 | # | 888 | # |
855 | # PCI GPIO expanders: | 889 | # PCI GPIO expanders: |
856 | # | 890 | # |
891 | # CONFIG_GPIO_CS5535 is not set | ||
857 | # CONFIG_GPIO_BT8XX is not set | 892 | # CONFIG_GPIO_BT8XX is not set |
858 | # CONFIG_GPIO_LANGWELL is not set | 893 | # CONFIG_GPIO_LANGWELL is not set |
859 | 894 | ||
@@ -903,6 +938,7 @@ CONFIG_SSB_POSSIBLE=y | |||
903 | # CONFIG_TWL4030_CORE is not set | 938 | # CONFIG_TWL4030_CORE is not set |
904 | # CONFIG_MFD_TMIO is not set | 939 | # CONFIG_MFD_TMIO is not set |
905 | # CONFIG_PMIC_DA903X is not set | 940 | # CONFIG_PMIC_DA903X is not set |
941 | # CONFIG_PMIC_ADP5520 is not set | ||
906 | # CONFIG_MFD_WM8400 is not set | 942 | # CONFIG_MFD_WM8400 is not set |
907 | # CONFIG_MFD_WM831X is not set | 943 | # CONFIG_MFD_WM831X is not set |
908 | # CONFIG_MFD_WM8350_I2C is not set | 944 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -910,6 +946,8 @@ CONFIG_SSB_POSSIBLE=y | |||
910 | # CONFIG_MFD_MC13783 is not set | 946 | # CONFIG_MFD_MC13783 is not set |
911 | # CONFIG_AB3100_CORE is not set | 947 | # CONFIG_AB3100_CORE is not set |
912 | # CONFIG_EZX_PCAP is not set | 948 | # CONFIG_EZX_PCAP is not set |
949 | # CONFIG_MFD_88PM8607 is not set | ||
950 | # CONFIG_AB4500_CORE is not set | ||
913 | # CONFIG_REGULATOR is not set | 951 | # CONFIG_REGULATOR is not set |
914 | # CONFIG_MEDIA_SUPPORT is not set | 952 | # CONFIG_MEDIA_SUPPORT is not set |
915 | 953 | ||
@@ -1199,7 +1237,7 @@ CONFIG_FRAME_WARN=1024 | |||
1199 | # CONFIG_DEBUG_KERNEL is not set | 1237 | # CONFIG_DEBUG_KERNEL is not set |
1200 | # CONFIG_SLUB_DEBUG_ON is not set | 1238 | # CONFIG_SLUB_DEBUG_ON is not set |
1201 | # CONFIG_SLUB_STATS is not set | 1239 | # CONFIG_SLUB_STATS is not set |
1202 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1240 | CONFIG_DEBUG_BUGVERBOSE=y |
1203 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1241 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1204 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1242 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1205 | # CONFIG_LATENCYTOP is not set | 1243 | # CONFIG_LATENCYTOP is not set |
@@ -1230,6 +1268,7 @@ CONFIG_PPC_EARLY_DEBUG=y | |||
1230 | # CONFIG_PPC_EARLY_DEBUG_44x is not set | 1268 | # CONFIG_PPC_EARLY_DEBUG_44x is not set |
1231 | # CONFIG_PPC_EARLY_DEBUG_40x is not set | 1269 | # CONFIG_PPC_EARLY_DEBUG_40x is not set |
1232 | # CONFIG_PPC_EARLY_DEBUG_CPM is not set | 1270 | # CONFIG_PPC_EARLY_DEBUG_CPM is not set |
1271 | # CONFIG_PPC_EARLY_DEBUG_USBGECKO is not set | ||
1233 | 1272 | ||
1234 | # | 1273 | # |
1235 | # Security options | 1274 | # Security options |
@@ -1237,7 +1276,11 @@ CONFIG_PPC_EARLY_DEBUG=y | |||
1237 | # CONFIG_KEYS is not set | 1276 | # CONFIG_KEYS is not set |
1238 | # CONFIG_SECURITY is not set | 1277 | # CONFIG_SECURITY is not set |
1239 | # CONFIG_SECURITYFS is not set | 1278 | # CONFIG_SECURITYFS is not set |
1240 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1279 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1280 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1281 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1282 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1283 | CONFIG_DEFAULT_SECURITY="" | ||
1241 | CONFIG_CRYPTO=y | 1284 | CONFIG_CRYPTO=y |
1242 | 1285 | ||
1243 | # | 1286 | # |
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig index 730061574f9..f67b70d0b29 100644 --- a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig +++ b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:29 2009 | 4 | # Wed Jan 6 09:24:22 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -174,14 +177,41 @@ CONFIG_LBDAF=y | |||
174 | # IO Schedulers | 177 | # IO Schedulers |
175 | # | 178 | # |
176 | CONFIG_IOSCHED_NOOP=y | 179 | CONFIG_IOSCHED_NOOP=y |
177 | CONFIG_IOSCHED_AS=y | ||
178 | CONFIG_IOSCHED_DEADLINE=y | 180 | CONFIG_IOSCHED_DEADLINE=y |
179 | CONFIG_IOSCHED_CFQ=y | 181 | CONFIG_IOSCHED_CFQ=y |
180 | CONFIG_DEFAULT_AS=y | ||
181 | # CONFIG_DEFAULT_DEADLINE is not set | 182 | # CONFIG_DEFAULT_DEADLINE is not set |
182 | # CONFIG_DEFAULT_CFQ is not set | 183 | CONFIG_DEFAULT_CFQ=y |
183 | # CONFIG_DEFAULT_NOOP is not set | 184 | # CONFIG_DEFAULT_NOOP is not set |
184 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 185 | CONFIG_DEFAULT_IOSCHED="cfq" |
186 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
192 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
196 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
201 | CONFIG_INLINE_READ_UNLOCK=y | ||
202 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
205 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
210 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
214 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
185 | # CONFIG_FREEZER is not set | 215 | # CONFIG_FREEZER is not set |
186 | 216 | ||
187 | # | 217 | # |
@@ -259,6 +289,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
259 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 289 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
260 | # CONFIG_KEXEC is not set | 290 | # CONFIG_KEXEC is not set |
261 | # CONFIG_CRASH_DUMP is not set | 291 | # CONFIG_CRASH_DUMP is not set |
292 | CONFIG_SPARSE_IRQ=y | ||
262 | CONFIG_MAX_ACTIVE_REGIONS=32 | 293 | CONFIG_MAX_ACTIVE_REGIONS=32 |
263 | CONFIG_ARCH_FLATMEM_ENABLE=y | 294 | CONFIG_ARCH_FLATMEM_ENABLE=y |
264 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 295 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -275,8 +306,6 @@ CONFIG_MIGRATION=y | |||
275 | CONFIG_ZONE_DMA_FLAG=1 | 306 | CONFIG_ZONE_DMA_FLAG=1 |
276 | CONFIG_BOUNCE=y | 307 | CONFIG_BOUNCE=y |
277 | CONFIG_VIRT_TO_BUS=y | 308 | CONFIG_VIRT_TO_BUS=y |
278 | CONFIG_HAVE_MLOCK=y | ||
279 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
280 | # CONFIG_KSM is not set | 309 | # CONFIG_KSM is not set |
281 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 310 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
282 | CONFIG_PPC_4K_PAGES=y | 311 | CONFIG_PPC_4K_PAGES=y |
@@ -403,9 +432,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
403 | # CONFIG_AF_RXRPC is not set | 432 | # CONFIG_AF_RXRPC is not set |
404 | CONFIG_WIRELESS=y | 433 | CONFIG_WIRELESS=y |
405 | # CONFIG_CFG80211 is not set | 434 | # CONFIG_CFG80211 is not set |
406 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
407 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
408 | # CONFIG_WIRELESS_EXT is not set | ||
409 | # CONFIG_LIB80211 is not set | 435 | # CONFIG_LIB80211 is not set |
410 | 436 | ||
411 | # | 437 | # |
@@ -443,6 +469,10 @@ CONFIG_BLK_DEV=y | |||
443 | # CONFIG_BLK_DEV_COW_COMMON is not set | 469 | # CONFIG_BLK_DEV_COW_COMMON is not set |
444 | CONFIG_BLK_DEV_LOOP=y | 470 | CONFIG_BLK_DEV_LOOP=y |
445 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 471 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
472 | |||
473 | # | ||
474 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
475 | # | ||
446 | # CONFIG_BLK_DEV_NBD is not set | 476 | # CONFIG_BLK_DEV_NBD is not set |
447 | # CONFIG_BLK_DEV_SX8 is not set | 477 | # CONFIG_BLK_DEV_SX8 is not set |
448 | CONFIG_BLK_DEV_RAM=y | 478 | CONFIG_BLK_DEV_RAM=y |
@@ -453,6 +483,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
453 | # CONFIG_ATA_OVER_ETH is not set | 483 | # CONFIG_ATA_OVER_ETH is not set |
454 | # CONFIG_BLK_DEV_HD is not set | 484 | # CONFIG_BLK_DEV_HD is not set |
455 | CONFIG_MISC_DEVICES=y | 485 | CONFIG_MISC_DEVICES=y |
486 | # CONFIG_AD525X_DPOT is not set | ||
456 | # CONFIG_PHANTOM is not set | 487 | # CONFIG_PHANTOM is not set |
457 | # CONFIG_SGI_IOC4 is not set | 488 | # CONFIG_SGI_IOC4 is not set |
458 | # CONFIG_TIFM_CORE is not set | 489 | # CONFIG_TIFM_CORE is not set |
@@ -460,6 +491,7 @@ CONFIG_MISC_DEVICES=y | |||
460 | # CONFIG_ENCLOSURE_SERVICES is not set | 491 | # CONFIG_ENCLOSURE_SERVICES is not set |
461 | # CONFIG_HP_ILO is not set | 492 | # CONFIG_HP_ILO is not set |
462 | # CONFIG_ISL29003 is not set | 493 | # CONFIG_ISL29003 is not set |
494 | # CONFIG_DS1682 is not set | ||
463 | # CONFIG_C2PORT is not set | 495 | # CONFIG_C2PORT is not set |
464 | 496 | ||
465 | # | 497 | # |
@@ -512,7 +544,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
512 | # CONFIG_SCSI_BNX2_ISCSI is not set | 544 | # CONFIG_SCSI_BNX2_ISCSI is not set |
513 | # CONFIG_BE2ISCSI is not set | 545 | # CONFIG_BE2ISCSI is not set |
514 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 546 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
547 | # CONFIG_SCSI_HPSA is not set | ||
515 | # CONFIG_SCSI_3W_9XXX is not set | 548 | # CONFIG_SCSI_3W_9XXX is not set |
549 | # CONFIG_SCSI_3W_SAS is not set | ||
516 | # CONFIG_SCSI_ACARD is not set | 550 | # CONFIG_SCSI_ACARD is not set |
517 | # CONFIG_SCSI_AACRAID is not set | 551 | # CONFIG_SCSI_AACRAID is not set |
518 | # CONFIG_SCSI_AIC7XXX is not set | 552 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -551,6 +585,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
551 | # CONFIG_SCSI_NSP32 is not set | 585 | # CONFIG_SCSI_NSP32 is not set |
552 | # CONFIG_SCSI_DEBUG is not set | 586 | # CONFIG_SCSI_DEBUG is not set |
553 | # CONFIG_SCSI_PMCRAID is not set | 587 | # CONFIG_SCSI_PMCRAID is not set |
588 | # CONFIG_SCSI_PM8001 is not set | ||
554 | # CONFIG_SCSI_SRP is not set | 589 | # CONFIG_SCSI_SRP is not set |
555 | # CONFIG_SCSI_BFA_FC is not set | 590 | # CONFIG_SCSI_BFA_FC is not set |
556 | # CONFIG_SCSI_DH is not set | 591 | # CONFIG_SCSI_DH is not set |
@@ -606,15 +641,16 @@ CONFIG_ATA_SFF=y | |||
606 | # CONFIG_PATA_NS87415 is not set | 641 | # CONFIG_PATA_NS87415 is not set |
607 | # CONFIG_PATA_OPTI is not set | 642 | # CONFIG_PATA_OPTI is not set |
608 | # CONFIG_PATA_OPTIDMA is not set | 643 | # CONFIG_PATA_OPTIDMA is not set |
644 | # CONFIG_PATA_PDC2027X is not set | ||
609 | # CONFIG_PATA_PDC_OLD is not set | 645 | # CONFIG_PATA_PDC_OLD is not set |
610 | # CONFIG_PATA_RADISYS is not set | 646 | # CONFIG_PATA_RADISYS is not set |
611 | # CONFIG_PATA_RDC is not set | 647 | # CONFIG_PATA_RDC is not set |
612 | # CONFIG_PATA_RZ1000 is not set | 648 | # CONFIG_PATA_RZ1000 is not set |
613 | # CONFIG_PATA_SC1200 is not set | 649 | # CONFIG_PATA_SC1200 is not set |
614 | # CONFIG_PATA_SERVERWORKS is not set | 650 | # CONFIG_PATA_SERVERWORKS is not set |
615 | # CONFIG_PATA_PDC2027X is not set | ||
616 | # CONFIG_PATA_SIL680 is not set | 651 | # CONFIG_PATA_SIL680 is not set |
617 | # CONFIG_PATA_SIS is not set | 652 | # CONFIG_PATA_SIS is not set |
653 | # CONFIG_PATA_TOSHIBA is not set | ||
618 | # CONFIG_PATA_VIA is not set | 654 | # CONFIG_PATA_VIA is not set |
619 | # CONFIG_PATA_WINBOND is not set | 655 | # CONFIG_PATA_WINBOND is not set |
620 | # CONFIG_PATA_PLATFORM is not set | 656 | # CONFIG_PATA_PLATFORM is not set |
@@ -631,7 +667,7 @@ CONFIG_ATA_SFF=y | |||
631 | # | 667 | # |
632 | 668 | ||
633 | # | 669 | # |
634 | # See the help texts for more information. | 670 | # The newer stack is recommended. |
635 | # | 671 | # |
636 | # CONFIG_FIREWIRE is not set | 672 | # CONFIG_FIREWIRE is not set |
637 | # CONFIG_IEEE1394 is not set | 673 | # CONFIG_IEEE1394 is not set |
@@ -736,8 +772,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
736 | # CONFIG_BE2NET is not set | 772 | # CONFIG_BE2NET is not set |
737 | # CONFIG_TR is not set | 773 | # CONFIG_TR is not set |
738 | CONFIG_WLAN=y | 774 | CONFIG_WLAN=y |
739 | # CONFIG_WLAN_PRE80211 is not set | 775 | # CONFIG_AIRO is not set |
740 | # CONFIG_WLAN_80211 is not set | 776 | # CONFIG_ATMEL is not set |
777 | # CONFIG_PRISM54 is not set | ||
778 | # CONFIG_HOSTAP is not set | ||
741 | 779 | ||
742 | # | 780 | # |
743 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 781 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -751,6 +789,7 @@ CONFIG_WLAN=y | |||
751 | # CONFIG_NETCONSOLE is not set | 789 | # CONFIG_NETCONSOLE is not set |
752 | # CONFIG_NETPOLL is not set | 790 | # CONFIG_NETPOLL is not set |
753 | # CONFIG_NET_POLL_CONTROLLER is not set | 791 | # CONFIG_NET_POLL_CONTROLLER is not set |
792 | # CONFIG_VMXNET3 is not set | ||
754 | # CONFIG_ISDN is not set | 793 | # CONFIG_ISDN is not set |
755 | # CONFIG_PHONE is not set | 794 | # CONFIG_PHONE is not set |
756 | 795 | ||
@@ -760,6 +799,7 @@ CONFIG_WLAN=y | |||
760 | CONFIG_INPUT=y | 799 | CONFIG_INPUT=y |
761 | # CONFIG_INPUT_FF_MEMLESS is not set | 800 | # CONFIG_INPUT_FF_MEMLESS is not set |
762 | # CONFIG_INPUT_POLLDEV is not set | 801 | # CONFIG_INPUT_POLLDEV is not set |
802 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
763 | 803 | ||
764 | # | 804 | # |
765 | # Userland interfaces | 805 | # Userland interfaces |
@@ -811,6 +851,7 @@ CONFIG_SERIAL_CORE=y | |||
811 | CONFIG_SERIAL_CORE_CONSOLE=y | 851 | CONFIG_SERIAL_CORE_CONSOLE=y |
812 | # CONFIG_SERIAL_JSM is not set | 852 | # CONFIG_SERIAL_JSM is not set |
813 | # CONFIG_SERIAL_OF_PLATFORM is not set | 853 | # CONFIG_SERIAL_OF_PLATFORM is not set |
854 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
814 | CONFIG_UNIX98_PTYS=y | 855 | CONFIG_UNIX98_PTYS=y |
815 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 856 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
816 | CONFIG_LEGACY_PTYS=y | 857 | CONFIG_LEGACY_PTYS=y |
@@ -868,11 +909,6 @@ CONFIG_I2C_MPC=y | |||
868 | # CONFIG_I2C_TAOS_EVM is not set | 909 | # CONFIG_I2C_TAOS_EVM is not set |
869 | 910 | ||
870 | # | 911 | # |
871 | # Graphics adapter I2C/DDC channel drivers | ||
872 | # | ||
873 | # CONFIG_I2C_VOODOO3 is not set | ||
874 | |||
875 | # | ||
876 | # Other I2C/SMBus bus drivers | 912 | # Other I2C/SMBus bus drivers |
877 | # | 913 | # |
878 | # CONFIG_I2C_PCA_PLATFORM is not set | 914 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -881,7 +917,6 @@ CONFIG_I2C_MPC=y | |||
881 | # | 917 | # |
882 | # Miscellaneous I2C Chip support | 918 | # Miscellaneous I2C Chip support |
883 | # | 919 | # |
884 | # CONFIG_DS1682 is not set | ||
885 | # CONFIG_SENSORS_TSL2550 is not set | 920 | # CONFIG_SENSORS_TSL2550 is not set |
886 | # CONFIG_I2C_DEBUG_CORE is not set | 921 | # CONFIG_I2C_DEBUG_CORE is not set |
887 | # CONFIG_I2C_DEBUG_ALGO is not set | 922 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -927,6 +962,7 @@ CONFIG_HWMON=y | |||
927 | # CONFIG_SENSORS_GL520SM is not set | 962 | # CONFIG_SENSORS_GL520SM is not set |
928 | # CONFIG_SENSORS_IT87 is not set | 963 | # CONFIG_SENSORS_IT87 is not set |
929 | # CONFIG_SENSORS_LM63 is not set | 964 | # CONFIG_SENSORS_LM63 is not set |
965 | # CONFIG_SENSORS_LM73 is not set | ||
930 | # CONFIG_SENSORS_LM75 is not set | 966 | # CONFIG_SENSORS_LM75 is not set |
931 | # CONFIG_SENSORS_LM77 is not set | 967 | # CONFIG_SENSORS_LM77 is not set |
932 | # CONFIG_SENSORS_LM78 is not set | 968 | # CONFIG_SENSORS_LM78 is not set |
@@ -965,6 +1001,7 @@ CONFIG_HWMON=y | |||
965 | # CONFIG_SENSORS_W83L786NG is not set | 1001 | # CONFIG_SENSORS_W83L786NG is not set |
966 | # CONFIG_SENSORS_W83627HF is not set | 1002 | # CONFIG_SENSORS_W83627HF is not set |
967 | # CONFIG_SENSORS_W83627EHF is not set | 1003 | # CONFIG_SENSORS_W83627EHF is not set |
1004 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
968 | # CONFIG_THERMAL is not set | 1005 | # CONFIG_THERMAL is not set |
969 | CONFIG_WATCHDOG=y | 1006 | CONFIG_WATCHDOG=y |
970 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1007 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -997,11 +1034,13 @@ CONFIG_SSB_POSSIBLE=y | |||
997 | # CONFIG_TWL4030_CORE is not set | 1034 | # CONFIG_TWL4030_CORE is not set |
998 | # CONFIG_MFD_TMIO is not set | 1035 | # CONFIG_MFD_TMIO is not set |
999 | # CONFIG_PMIC_DA903X is not set | 1036 | # CONFIG_PMIC_DA903X is not set |
1037 | # CONFIG_PMIC_ADP5520 is not set | ||
1000 | # CONFIG_MFD_WM8400 is not set | 1038 | # CONFIG_MFD_WM8400 is not set |
1001 | # CONFIG_MFD_WM831X is not set | 1039 | # CONFIG_MFD_WM831X is not set |
1002 | # CONFIG_MFD_WM8350_I2C is not set | 1040 | # CONFIG_MFD_WM8350_I2C is not set |
1003 | # CONFIG_MFD_PCF50633 is not set | 1041 | # CONFIG_MFD_PCF50633 is not set |
1004 | # CONFIG_AB3100_CORE is not set | 1042 | # CONFIG_AB3100_CORE is not set |
1043 | # CONFIG_MFD_88PM8607 is not set | ||
1005 | # CONFIG_REGULATOR is not set | 1044 | # CONFIG_REGULATOR is not set |
1006 | # CONFIG_MEDIA_SUPPORT is not set | 1045 | # CONFIG_MEDIA_SUPPORT is not set |
1007 | 1046 | ||
@@ -1226,7 +1265,7 @@ CONFIG_FRAME_WARN=1024 | |||
1226 | # CONFIG_DEBUG_FS is not set | 1265 | # CONFIG_DEBUG_FS is not set |
1227 | # CONFIG_HEADERS_CHECK is not set | 1266 | # CONFIG_HEADERS_CHECK is not set |
1228 | # CONFIG_DEBUG_KERNEL is not set | 1267 | # CONFIG_DEBUG_KERNEL is not set |
1229 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1268 | CONFIG_DEBUG_BUGVERBOSE=y |
1230 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1269 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1231 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1270 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1232 | # CONFIG_LATENCYTOP is not set | 1271 | # CONFIG_LATENCYTOP is not set |
@@ -1253,7 +1292,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1253 | # CONFIG_KEYS is not set | 1292 | # CONFIG_KEYS is not set |
1254 | # CONFIG_SECURITY is not set | 1293 | # CONFIG_SECURITY is not set |
1255 | # CONFIG_SECURITYFS is not set | 1294 | # CONFIG_SECURITYFS is not set |
1256 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1295 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1296 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1297 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1298 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1299 | CONFIG_DEFAULT_SECURITY="" | ||
1257 | CONFIG_CRYPTO=y | 1300 | CONFIG_CRYPTO=y |
1258 | 1301 | ||
1259 | # | 1302 | # |
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig index 9e9158a5b19..a84fd1194e2 100644 --- a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig +++ b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:30 2009 | 4 | # Wed Jan 6 09:24:24 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -174,14 +177,41 @@ CONFIG_LBDAF=y | |||
174 | # IO Schedulers | 177 | # IO Schedulers |
175 | # | 178 | # |
176 | CONFIG_IOSCHED_NOOP=y | 179 | CONFIG_IOSCHED_NOOP=y |
177 | CONFIG_IOSCHED_AS=y | ||
178 | CONFIG_IOSCHED_DEADLINE=y | 180 | CONFIG_IOSCHED_DEADLINE=y |
179 | CONFIG_IOSCHED_CFQ=y | 181 | CONFIG_IOSCHED_CFQ=y |
180 | CONFIG_DEFAULT_AS=y | ||
181 | # CONFIG_DEFAULT_DEADLINE is not set | 182 | # CONFIG_DEFAULT_DEADLINE is not set |
182 | # CONFIG_DEFAULT_CFQ is not set | 183 | CONFIG_DEFAULT_CFQ=y |
183 | # CONFIG_DEFAULT_NOOP is not set | 184 | # CONFIG_DEFAULT_NOOP is not set |
184 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 185 | CONFIG_DEFAULT_IOSCHED="cfq" |
186 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
192 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
196 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
201 | CONFIG_INLINE_READ_UNLOCK=y | ||
202 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
205 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
210 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
214 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
185 | # CONFIG_FREEZER is not set | 215 | # CONFIG_FREEZER is not set |
186 | 216 | ||
187 | # | 217 | # |
@@ -259,6 +289,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
259 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 289 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
260 | # CONFIG_KEXEC is not set | 290 | # CONFIG_KEXEC is not set |
261 | # CONFIG_CRASH_DUMP is not set | 291 | # CONFIG_CRASH_DUMP is not set |
292 | CONFIG_SPARSE_IRQ=y | ||
262 | CONFIG_MAX_ACTIVE_REGIONS=32 | 293 | CONFIG_MAX_ACTIVE_REGIONS=32 |
263 | CONFIG_ARCH_FLATMEM_ENABLE=y | 294 | CONFIG_ARCH_FLATMEM_ENABLE=y |
264 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 295 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -275,8 +306,6 @@ CONFIG_MIGRATION=y | |||
275 | CONFIG_ZONE_DMA_FLAG=1 | 306 | CONFIG_ZONE_DMA_FLAG=1 |
276 | CONFIG_BOUNCE=y | 307 | CONFIG_BOUNCE=y |
277 | CONFIG_VIRT_TO_BUS=y | 308 | CONFIG_VIRT_TO_BUS=y |
278 | CONFIG_HAVE_MLOCK=y | ||
279 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
280 | # CONFIG_KSM is not set | 309 | # CONFIG_KSM is not set |
281 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 310 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
282 | CONFIG_PPC_4K_PAGES=y | 311 | CONFIG_PPC_4K_PAGES=y |
@@ -398,9 +427,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
398 | # CONFIG_AF_RXRPC is not set | 427 | # CONFIG_AF_RXRPC is not set |
399 | CONFIG_WIRELESS=y | 428 | CONFIG_WIRELESS=y |
400 | # CONFIG_CFG80211 is not set | 429 | # CONFIG_CFG80211 is not set |
401 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
402 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
403 | # CONFIG_WIRELESS_EXT is not set | ||
404 | # CONFIG_LIB80211 is not set | 430 | # CONFIG_LIB80211 is not set |
405 | 431 | ||
406 | # | 432 | # |
@@ -438,6 +464,10 @@ CONFIG_BLK_DEV=y | |||
438 | # CONFIG_BLK_DEV_COW_COMMON is not set | 464 | # CONFIG_BLK_DEV_COW_COMMON is not set |
439 | CONFIG_BLK_DEV_LOOP=y | 465 | CONFIG_BLK_DEV_LOOP=y |
440 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 466 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
467 | |||
468 | # | ||
469 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
470 | # | ||
441 | # CONFIG_BLK_DEV_NBD is not set | 471 | # CONFIG_BLK_DEV_NBD is not set |
442 | # CONFIG_BLK_DEV_SX8 is not set | 472 | # CONFIG_BLK_DEV_SX8 is not set |
443 | # CONFIG_BLK_DEV_UB is not set | 473 | # CONFIG_BLK_DEV_UB is not set |
@@ -449,6 +479,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
449 | # CONFIG_ATA_OVER_ETH is not set | 479 | # CONFIG_ATA_OVER_ETH is not set |
450 | # CONFIG_BLK_DEV_HD is not set | 480 | # CONFIG_BLK_DEV_HD is not set |
451 | CONFIG_MISC_DEVICES=y | 481 | CONFIG_MISC_DEVICES=y |
482 | # CONFIG_AD525X_DPOT is not set | ||
452 | # CONFIG_PHANTOM is not set | 483 | # CONFIG_PHANTOM is not set |
453 | # CONFIG_SGI_IOC4 is not set | 484 | # CONFIG_SGI_IOC4 is not set |
454 | # CONFIG_TIFM_CORE is not set | 485 | # CONFIG_TIFM_CORE is not set |
@@ -456,6 +487,7 @@ CONFIG_MISC_DEVICES=y | |||
456 | # CONFIG_ENCLOSURE_SERVICES is not set | 487 | # CONFIG_ENCLOSURE_SERVICES is not set |
457 | # CONFIG_HP_ILO is not set | 488 | # CONFIG_HP_ILO is not set |
458 | # CONFIG_ISL29003 is not set | 489 | # CONFIG_ISL29003 is not set |
490 | # CONFIG_DS1682 is not set | ||
459 | # CONFIG_C2PORT is not set | 491 | # CONFIG_C2PORT is not set |
460 | 492 | ||
461 | # | 493 | # |
@@ -507,7 +539,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
507 | # CONFIG_SCSI_BNX2_ISCSI is not set | 539 | # CONFIG_SCSI_BNX2_ISCSI is not set |
508 | # CONFIG_BE2ISCSI is not set | 540 | # CONFIG_BE2ISCSI is not set |
509 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 541 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
542 | # CONFIG_SCSI_HPSA is not set | ||
510 | # CONFIG_SCSI_3W_9XXX is not set | 543 | # CONFIG_SCSI_3W_9XXX is not set |
544 | # CONFIG_SCSI_3W_SAS is not set | ||
511 | # CONFIG_SCSI_ACARD is not set | 545 | # CONFIG_SCSI_ACARD is not set |
512 | # CONFIG_SCSI_AACRAID is not set | 546 | # CONFIG_SCSI_AACRAID is not set |
513 | # CONFIG_SCSI_AIC7XXX is not set | 547 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -546,6 +580,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
546 | # CONFIG_SCSI_NSP32 is not set | 580 | # CONFIG_SCSI_NSP32 is not set |
547 | # CONFIG_SCSI_DEBUG is not set | 581 | # CONFIG_SCSI_DEBUG is not set |
548 | # CONFIG_SCSI_PMCRAID is not set | 582 | # CONFIG_SCSI_PMCRAID is not set |
583 | # CONFIG_SCSI_PM8001 is not set | ||
549 | # CONFIG_SCSI_SRP is not set | 584 | # CONFIG_SCSI_SRP is not set |
550 | # CONFIG_SCSI_BFA_FC is not set | 585 | # CONFIG_SCSI_BFA_FC is not set |
551 | # CONFIG_SCSI_DH is not set | 586 | # CONFIG_SCSI_DH is not set |
@@ -601,15 +636,16 @@ CONFIG_ATA_SFF=y | |||
601 | # CONFIG_PATA_NS87415 is not set | 636 | # CONFIG_PATA_NS87415 is not set |
602 | # CONFIG_PATA_OPTI is not set | 637 | # CONFIG_PATA_OPTI is not set |
603 | # CONFIG_PATA_OPTIDMA is not set | 638 | # CONFIG_PATA_OPTIDMA is not set |
639 | # CONFIG_PATA_PDC2027X is not set | ||
604 | # CONFIG_PATA_PDC_OLD is not set | 640 | # CONFIG_PATA_PDC_OLD is not set |
605 | # CONFIG_PATA_RADISYS is not set | 641 | # CONFIG_PATA_RADISYS is not set |
606 | # CONFIG_PATA_RDC is not set | 642 | # CONFIG_PATA_RDC is not set |
607 | # CONFIG_PATA_RZ1000 is not set | 643 | # CONFIG_PATA_RZ1000 is not set |
608 | # CONFIG_PATA_SC1200 is not set | 644 | # CONFIG_PATA_SC1200 is not set |
609 | # CONFIG_PATA_SERVERWORKS is not set | 645 | # CONFIG_PATA_SERVERWORKS is not set |
610 | # CONFIG_PATA_PDC2027X is not set | ||
611 | # CONFIG_PATA_SIL680 is not set | 646 | # CONFIG_PATA_SIL680 is not set |
612 | # CONFIG_PATA_SIS is not set | 647 | # CONFIG_PATA_SIS is not set |
648 | # CONFIG_PATA_TOSHIBA is not set | ||
613 | # CONFIG_PATA_VIA is not set | 649 | # CONFIG_PATA_VIA is not set |
614 | # CONFIG_PATA_WINBOND is not set | 650 | # CONFIG_PATA_WINBOND is not set |
615 | # CONFIG_PATA_PLATFORM is not set | 651 | # CONFIG_PATA_PLATFORM is not set |
@@ -638,7 +674,7 @@ CONFIG_MD_RAID6_PQ=y | |||
638 | # | 674 | # |
639 | 675 | ||
640 | # | 676 | # |
641 | # See the help texts for more information. | 677 | # The newer stack is recommended. |
642 | # | 678 | # |
643 | # CONFIG_FIREWIRE is not set | 679 | # CONFIG_FIREWIRE is not set |
644 | # CONFIG_IEEE1394 is not set | 680 | # CONFIG_IEEE1394 is not set |
@@ -725,8 +761,11 @@ CONFIG_GIANFAR=y | |||
725 | # CONFIG_NETDEV_10000 is not set | 761 | # CONFIG_NETDEV_10000 is not set |
726 | # CONFIG_TR is not set | 762 | # CONFIG_TR is not set |
727 | CONFIG_WLAN=y | 763 | CONFIG_WLAN=y |
728 | # CONFIG_WLAN_PRE80211 is not set | 764 | # CONFIG_AIRO is not set |
729 | # CONFIG_WLAN_80211 is not set | 765 | # CONFIG_ATMEL is not set |
766 | # CONFIG_PRISM54 is not set | ||
767 | # CONFIG_USB_ZD1201 is not set | ||
768 | # CONFIG_HOSTAP is not set | ||
730 | 769 | ||
731 | # | 770 | # |
732 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 771 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -749,6 +788,7 @@ CONFIG_WLAN=y | |||
749 | # CONFIG_NETCONSOLE is not set | 788 | # CONFIG_NETCONSOLE is not set |
750 | # CONFIG_NETPOLL is not set | 789 | # CONFIG_NETPOLL is not set |
751 | # CONFIG_NET_POLL_CONTROLLER is not set | 790 | # CONFIG_NET_POLL_CONTROLLER is not set |
791 | # CONFIG_VMXNET3 is not set | ||
752 | # CONFIG_ISDN is not set | 792 | # CONFIG_ISDN is not set |
753 | # CONFIG_PHONE is not set | 793 | # CONFIG_PHONE is not set |
754 | 794 | ||
@@ -758,6 +798,7 @@ CONFIG_WLAN=y | |||
758 | CONFIG_INPUT=y | 798 | CONFIG_INPUT=y |
759 | CONFIG_INPUT_FF_MEMLESS=m | 799 | CONFIG_INPUT_FF_MEMLESS=m |
760 | # CONFIG_INPUT_POLLDEV is not set | 800 | # CONFIG_INPUT_POLLDEV is not set |
801 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
761 | 802 | ||
762 | # | 803 | # |
763 | # Userland interfaces | 804 | # Userland interfaces |
@@ -809,6 +850,7 @@ CONFIG_SERIAL_CORE=y | |||
809 | CONFIG_SERIAL_CORE_CONSOLE=y | 850 | CONFIG_SERIAL_CORE_CONSOLE=y |
810 | # CONFIG_SERIAL_JSM is not set | 851 | # CONFIG_SERIAL_JSM is not set |
811 | # CONFIG_SERIAL_OF_PLATFORM is not set | 852 | # CONFIG_SERIAL_OF_PLATFORM is not set |
853 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
812 | CONFIG_UNIX98_PTYS=y | 854 | CONFIG_UNIX98_PTYS=y |
813 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 855 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
814 | CONFIG_LEGACY_PTYS=y | 856 | CONFIG_LEGACY_PTYS=y |
@@ -867,11 +909,6 @@ CONFIG_I2C_MPC=y | |||
867 | # CONFIG_I2C_TINY_USB is not set | 909 | # CONFIG_I2C_TINY_USB is not set |
868 | 910 | ||
869 | # | 911 | # |
870 | # Graphics adapter I2C/DDC channel drivers | ||
871 | # | ||
872 | # CONFIG_I2C_VOODOO3 is not set | ||
873 | |||
874 | # | ||
875 | # Other I2C/SMBus bus drivers | 912 | # Other I2C/SMBus bus drivers |
876 | # | 913 | # |
877 | # CONFIG_I2C_PCA_PLATFORM is not set | 914 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -880,7 +917,6 @@ CONFIG_I2C_MPC=y | |||
880 | # | 917 | # |
881 | # Miscellaneous I2C Chip support | 918 | # Miscellaneous I2C Chip support |
882 | # | 919 | # |
883 | # CONFIG_DS1682 is not set | ||
884 | # CONFIG_SENSORS_TSL2550 is not set | 920 | # CONFIG_SENSORS_TSL2550 is not set |
885 | # CONFIG_I2C_DEBUG_CORE is not set | 921 | # CONFIG_I2C_DEBUG_CORE is not set |
886 | # CONFIG_I2C_DEBUG_ALGO is not set | 922 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -926,6 +962,7 @@ CONFIG_HWMON=y | |||
926 | # CONFIG_SENSORS_GL520SM is not set | 962 | # CONFIG_SENSORS_GL520SM is not set |
927 | # CONFIG_SENSORS_IT87 is not set | 963 | # CONFIG_SENSORS_IT87 is not set |
928 | # CONFIG_SENSORS_LM63 is not set | 964 | # CONFIG_SENSORS_LM63 is not set |
965 | # CONFIG_SENSORS_LM73 is not set | ||
929 | # CONFIG_SENSORS_LM75 is not set | 966 | # CONFIG_SENSORS_LM75 is not set |
930 | # CONFIG_SENSORS_LM77 is not set | 967 | # CONFIG_SENSORS_LM77 is not set |
931 | # CONFIG_SENSORS_LM78 is not set | 968 | # CONFIG_SENSORS_LM78 is not set |
@@ -964,6 +1001,7 @@ CONFIG_HWMON=y | |||
964 | # CONFIG_SENSORS_W83L786NG is not set | 1001 | # CONFIG_SENSORS_W83L786NG is not set |
965 | # CONFIG_SENSORS_W83627HF is not set | 1002 | # CONFIG_SENSORS_W83627HF is not set |
966 | # CONFIG_SENSORS_W83627EHF is not set | 1003 | # CONFIG_SENSORS_W83627EHF is not set |
1004 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
967 | # CONFIG_THERMAL is not set | 1005 | # CONFIG_THERMAL is not set |
968 | CONFIG_WATCHDOG=y | 1006 | CONFIG_WATCHDOG=y |
969 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1007 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1001,11 +1039,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1001 | # CONFIG_TWL4030_CORE is not set | 1039 | # CONFIG_TWL4030_CORE is not set |
1002 | # CONFIG_MFD_TMIO is not set | 1040 | # CONFIG_MFD_TMIO is not set |
1003 | # CONFIG_PMIC_DA903X is not set | 1041 | # CONFIG_PMIC_DA903X is not set |
1042 | # CONFIG_PMIC_ADP5520 is not set | ||
1004 | # CONFIG_MFD_WM8400 is not set | 1043 | # CONFIG_MFD_WM8400 is not set |
1005 | # CONFIG_MFD_WM831X is not set | 1044 | # CONFIG_MFD_WM831X is not set |
1006 | # CONFIG_MFD_WM8350_I2C is not set | 1045 | # CONFIG_MFD_WM8350_I2C is not set |
1007 | # CONFIG_MFD_PCF50633 is not set | 1046 | # CONFIG_MFD_PCF50633 is not set |
1008 | # CONFIG_AB3100_CORE is not set | 1047 | # CONFIG_AB3100_CORE is not set |
1048 | # CONFIG_MFD_88PM8607 is not set | ||
1009 | # CONFIG_REGULATOR is not set | 1049 | # CONFIG_REGULATOR is not set |
1010 | # CONFIG_MEDIA_SUPPORT is not set | 1050 | # CONFIG_MEDIA_SUPPORT is not set |
1011 | 1051 | ||
@@ -1097,6 +1137,7 @@ CONFIG_USB_MON=y | |||
1097 | CONFIG_USB_EHCI_HCD=y | 1137 | CONFIG_USB_EHCI_HCD=y |
1098 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1138 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1099 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1139 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1140 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1100 | CONFIG_USB_EHCI_FSL=y | 1141 | CONFIG_USB_EHCI_FSL=y |
1101 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1142 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1102 | # CONFIG_USB_OXU210HP_HCD is not set | 1143 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1385,7 +1426,7 @@ CONFIG_FRAME_WARN=1024 | |||
1385 | # CONFIG_DEBUG_FS is not set | 1426 | # CONFIG_DEBUG_FS is not set |
1386 | # CONFIG_HEADERS_CHECK is not set | 1427 | # CONFIG_HEADERS_CHECK is not set |
1387 | # CONFIG_DEBUG_KERNEL is not set | 1428 | # CONFIG_DEBUG_KERNEL is not set |
1388 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1429 | CONFIG_DEBUG_BUGVERBOSE=y |
1389 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1430 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1390 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1431 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1391 | # CONFIG_LATENCYTOP is not set | 1432 | # CONFIG_LATENCYTOP is not set |
@@ -1412,7 +1453,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1412 | # CONFIG_KEYS is not set | 1453 | # CONFIG_KEYS is not set |
1413 | # CONFIG_SECURITY is not set | 1454 | # CONFIG_SECURITY is not set |
1414 | # CONFIG_SECURITYFS is not set | 1455 | # CONFIG_SECURITYFS is not set |
1415 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1456 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1457 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1458 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1459 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1460 | CONFIG_DEFAULT_SECURITY="" | ||
1416 | CONFIG_XOR_BLOCKS=y | 1461 | CONFIG_XOR_BLOCKS=y |
1417 | CONFIG_ASYNC_CORE=y | 1462 | CONFIG_ASYNC_CORE=y |
1418 | CONFIG_ASYNC_MEMCPY=y | 1463 | CONFIG_ASYNC_MEMCPY=y |
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig index 6b399154970..72c2067137b 100644 --- a/arch/powerpc/configs/83xx/sbc834x_defconfig +++ b/arch/powerpc/configs/83xx/sbc834x_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:31 2009 | 4 | # Wed Jan 6 09:24:25 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -172,14 +175,41 @@ CONFIG_LBDAF=y | |||
172 | # IO Schedulers | 175 | # IO Schedulers |
173 | # | 176 | # |
174 | CONFIG_IOSCHED_NOOP=y | 177 | CONFIG_IOSCHED_NOOP=y |
175 | CONFIG_IOSCHED_AS=y | ||
176 | CONFIG_IOSCHED_DEADLINE=y | 178 | CONFIG_IOSCHED_DEADLINE=y |
177 | CONFIG_IOSCHED_CFQ=y | 179 | CONFIG_IOSCHED_CFQ=y |
178 | CONFIG_DEFAULT_AS=y | ||
179 | # CONFIG_DEFAULT_DEADLINE is not set | 180 | # CONFIG_DEFAULT_DEADLINE is not set |
180 | # CONFIG_DEFAULT_CFQ is not set | 181 | CONFIG_DEFAULT_CFQ=y |
181 | # CONFIG_DEFAULT_NOOP is not set | 182 | # CONFIG_DEFAULT_NOOP is not set |
182 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 183 | CONFIG_DEFAULT_IOSCHED="cfq" |
184 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
185 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
190 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
191 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
192 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
194 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
195 | # CONFIG_INLINE_READ_LOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
199 | CONFIG_INLINE_READ_UNLOCK=y | ||
200 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
201 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
202 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
203 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
208 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
209 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
210 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
212 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
183 | # CONFIG_FREEZER is not set | 213 | # CONFIG_FREEZER is not set |
184 | 214 | ||
185 | # | 215 | # |
@@ -257,6 +287,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
257 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 287 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
258 | # CONFIG_KEXEC is not set | 288 | # CONFIG_KEXEC is not set |
259 | # CONFIG_CRASH_DUMP is not set | 289 | # CONFIG_CRASH_DUMP is not set |
290 | CONFIG_SPARSE_IRQ=y | ||
260 | CONFIG_MAX_ACTIVE_REGIONS=32 | 291 | CONFIG_MAX_ACTIVE_REGIONS=32 |
261 | CONFIG_ARCH_FLATMEM_ENABLE=y | 292 | CONFIG_ARCH_FLATMEM_ENABLE=y |
262 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 293 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -273,8 +304,6 @@ CONFIG_MIGRATION=y | |||
273 | CONFIG_ZONE_DMA_FLAG=1 | 304 | CONFIG_ZONE_DMA_FLAG=1 |
274 | CONFIG_BOUNCE=y | 305 | CONFIG_BOUNCE=y |
275 | CONFIG_VIRT_TO_BUS=y | 306 | CONFIG_VIRT_TO_BUS=y |
276 | CONFIG_HAVE_MLOCK=y | ||
277 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
278 | # CONFIG_KSM is not set | 307 | # CONFIG_KSM is not set |
279 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 308 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
280 | CONFIG_PPC_4K_PAGES=y | 309 | CONFIG_PPC_4K_PAGES=y |
@@ -401,9 +430,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
401 | # CONFIG_AF_RXRPC is not set | 430 | # CONFIG_AF_RXRPC is not set |
402 | CONFIG_WIRELESS=y | 431 | CONFIG_WIRELESS=y |
403 | # CONFIG_CFG80211 is not set | 432 | # CONFIG_CFG80211 is not set |
404 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
405 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
406 | # CONFIG_WIRELESS_EXT is not set | ||
407 | # CONFIG_LIB80211 is not set | 433 | # CONFIG_LIB80211 is not set |
408 | 434 | ||
409 | # | 435 | # |
@@ -524,6 +550,10 @@ CONFIG_BLK_DEV=y | |||
524 | # CONFIG_BLK_DEV_COW_COMMON is not set | 550 | # CONFIG_BLK_DEV_COW_COMMON is not set |
525 | CONFIG_BLK_DEV_LOOP=y | 551 | CONFIG_BLK_DEV_LOOP=y |
526 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 552 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
553 | |||
554 | # | ||
555 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
556 | # | ||
527 | # CONFIG_BLK_DEV_NBD is not set | 557 | # CONFIG_BLK_DEV_NBD is not set |
528 | # CONFIG_BLK_DEV_SX8 is not set | 558 | # CONFIG_BLK_DEV_SX8 is not set |
529 | # CONFIG_BLK_DEV_UB is not set | 559 | # CONFIG_BLK_DEV_UB is not set |
@@ -535,6 +565,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
535 | # CONFIG_ATA_OVER_ETH is not set | 565 | # CONFIG_ATA_OVER_ETH is not set |
536 | # CONFIG_BLK_DEV_HD is not set | 566 | # CONFIG_BLK_DEV_HD is not set |
537 | CONFIG_MISC_DEVICES=y | 567 | CONFIG_MISC_DEVICES=y |
568 | # CONFIG_AD525X_DPOT is not set | ||
538 | # CONFIG_PHANTOM is not set | 569 | # CONFIG_PHANTOM is not set |
539 | # CONFIG_SGI_IOC4 is not set | 570 | # CONFIG_SGI_IOC4 is not set |
540 | # CONFIG_TIFM_CORE is not set | 571 | # CONFIG_TIFM_CORE is not set |
@@ -542,6 +573,7 @@ CONFIG_MISC_DEVICES=y | |||
542 | # CONFIG_ENCLOSURE_SERVICES is not set | 573 | # CONFIG_ENCLOSURE_SERVICES is not set |
543 | # CONFIG_HP_ILO is not set | 574 | # CONFIG_HP_ILO is not set |
544 | # CONFIG_ISL29003 is not set | 575 | # CONFIG_ISL29003 is not set |
576 | # CONFIG_DS1682 is not set | ||
545 | # CONFIG_C2PORT is not set | 577 | # CONFIG_C2PORT is not set |
546 | 578 | ||
547 | # | 579 | # |
@@ -604,7 +636,7 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
604 | # | 636 | # |
605 | 637 | ||
606 | # | 638 | # |
607 | # See the help texts for more information. | 639 | # The newer stack is recommended. |
608 | # | 640 | # |
609 | # CONFIG_FIREWIRE is not set | 641 | # CONFIG_FIREWIRE is not set |
610 | # CONFIG_IEEE1394 is not set | 642 | # CONFIG_IEEE1394 is not set |
@@ -691,8 +723,11 @@ CONFIG_GIANFAR=y | |||
691 | # CONFIG_NETDEV_10000 is not set | 723 | # CONFIG_NETDEV_10000 is not set |
692 | # CONFIG_TR is not set | 724 | # CONFIG_TR is not set |
693 | CONFIG_WLAN=y | 725 | CONFIG_WLAN=y |
694 | # CONFIG_WLAN_PRE80211 is not set | 726 | # CONFIG_AIRO is not set |
695 | # CONFIG_WLAN_80211 is not set | 727 | # CONFIG_ATMEL is not set |
728 | # CONFIG_PRISM54 is not set | ||
729 | # CONFIG_USB_ZD1201 is not set | ||
730 | # CONFIG_HOSTAP is not set | ||
696 | 731 | ||
697 | # | 732 | # |
698 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 733 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -715,6 +750,7 @@ CONFIG_WLAN=y | |||
715 | # CONFIG_NETCONSOLE is not set | 750 | # CONFIG_NETCONSOLE is not set |
716 | # CONFIG_NETPOLL is not set | 751 | # CONFIG_NETPOLL is not set |
717 | # CONFIG_NET_POLL_CONTROLLER is not set | 752 | # CONFIG_NET_POLL_CONTROLLER is not set |
753 | # CONFIG_VMXNET3 is not set | ||
718 | # CONFIG_ISDN is not set | 754 | # CONFIG_ISDN is not set |
719 | # CONFIG_PHONE is not set | 755 | # CONFIG_PHONE is not set |
720 | 756 | ||
@@ -724,6 +760,7 @@ CONFIG_WLAN=y | |||
724 | CONFIG_INPUT=y | 760 | CONFIG_INPUT=y |
725 | # CONFIG_INPUT_FF_MEMLESS is not set | 761 | # CONFIG_INPUT_FF_MEMLESS is not set |
726 | # CONFIG_INPUT_POLLDEV is not set | 762 | # CONFIG_INPUT_POLLDEV is not set |
763 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
727 | 764 | ||
728 | # | 765 | # |
729 | # Userland interfaces | 766 | # Userland interfaces |
@@ -775,6 +812,7 @@ CONFIG_SERIAL_CORE=y | |||
775 | CONFIG_SERIAL_CORE_CONSOLE=y | 812 | CONFIG_SERIAL_CORE_CONSOLE=y |
776 | # CONFIG_SERIAL_JSM is not set | 813 | # CONFIG_SERIAL_JSM is not set |
777 | # CONFIG_SERIAL_OF_PLATFORM is not set | 814 | # CONFIG_SERIAL_OF_PLATFORM is not set |
815 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
778 | CONFIG_UNIX98_PTYS=y | 816 | CONFIG_UNIX98_PTYS=y |
779 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 817 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
780 | CONFIG_LEGACY_PTYS=y | 818 | CONFIG_LEGACY_PTYS=y |
@@ -833,11 +871,6 @@ CONFIG_I2C_MPC=y | |||
833 | # CONFIG_I2C_TINY_USB is not set | 871 | # CONFIG_I2C_TINY_USB is not set |
834 | 872 | ||
835 | # | 873 | # |
836 | # Graphics adapter I2C/DDC channel drivers | ||
837 | # | ||
838 | # CONFIG_I2C_VOODOO3 is not set | ||
839 | |||
840 | # | ||
841 | # Other I2C/SMBus bus drivers | 874 | # Other I2C/SMBus bus drivers |
842 | # | 875 | # |
843 | # CONFIG_I2C_PCA_PLATFORM is not set | 876 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -846,7 +879,6 @@ CONFIG_I2C_MPC=y | |||
846 | # | 879 | # |
847 | # Miscellaneous I2C Chip support | 880 | # Miscellaneous I2C Chip support |
848 | # | 881 | # |
849 | # CONFIG_DS1682 is not set | ||
850 | # CONFIG_SENSORS_TSL2550 is not set | 882 | # CONFIG_SENSORS_TSL2550 is not set |
851 | # CONFIG_I2C_DEBUG_CORE is not set | 883 | # CONFIG_I2C_DEBUG_CORE is not set |
852 | # CONFIG_I2C_DEBUG_ALGO is not set | 884 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -892,6 +924,7 @@ CONFIG_HWMON=y | |||
892 | # CONFIG_SENSORS_GL520SM is not set | 924 | # CONFIG_SENSORS_GL520SM is not set |
893 | # CONFIG_SENSORS_IT87 is not set | 925 | # CONFIG_SENSORS_IT87 is not set |
894 | # CONFIG_SENSORS_LM63 is not set | 926 | # CONFIG_SENSORS_LM63 is not set |
927 | # CONFIG_SENSORS_LM73 is not set | ||
895 | # CONFIG_SENSORS_LM75 is not set | 928 | # CONFIG_SENSORS_LM75 is not set |
896 | # CONFIG_SENSORS_LM77 is not set | 929 | # CONFIG_SENSORS_LM77 is not set |
897 | # CONFIG_SENSORS_LM78 is not set | 930 | # CONFIG_SENSORS_LM78 is not set |
@@ -930,6 +963,7 @@ CONFIG_HWMON=y | |||
930 | # CONFIG_SENSORS_W83L786NG is not set | 963 | # CONFIG_SENSORS_W83L786NG is not set |
931 | # CONFIG_SENSORS_W83627HF is not set | 964 | # CONFIG_SENSORS_W83627HF is not set |
932 | # CONFIG_SENSORS_W83627EHF is not set | 965 | # CONFIG_SENSORS_W83627EHF is not set |
966 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
933 | # CONFIG_THERMAL is not set | 967 | # CONFIG_THERMAL is not set |
934 | CONFIG_WATCHDOG=y | 968 | CONFIG_WATCHDOG=y |
935 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 969 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -967,11 +1001,13 @@ CONFIG_SSB_POSSIBLE=y | |||
967 | # CONFIG_TWL4030_CORE is not set | 1001 | # CONFIG_TWL4030_CORE is not set |
968 | # CONFIG_MFD_TMIO is not set | 1002 | # CONFIG_MFD_TMIO is not set |
969 | # CONFIG_PMIC_DA903X is not set | 1003 | # CONFIG_PMIC_DA903X is not set |
1004 | # CONFIG_PMIC_ADP5520 is not set | ||
970 | # CONFIG_MFD_WM8400 is not set | 1005 | # CONFIG_MFD_WM8400 is not set |
971 | # CONFIG_MFD_WM831X is not set | 1006 | # CONFIG_MFD_WM831X is not set |
972 | # CONFIG_MFD_WM8350_I2C is not set | 1007 | # CONFIG_MFD_WM8350_I2C is not set |
973 | # CONFIG_MFD_PCF50633 is not set | 1008 | # CONFIG_MFD_PCF50633 is not set |
974 | # CONFIG_AB3100_CORE is not set | 1009 | # CONFIG_AB3100_CORE is not set |
1010 | # CONFIG_MFD_88PM8607 is not set | ||
975 | # CONFIG_REGULATOR is not set | 1011 | # CONFIG_REGULATOR is not set |
976 | # CONFIG_MEDIA_SUPPORT is not set | 1012 | # CONFIG_MEDIA_SUPPORT is not set |
977 | 1013 | ||
@@ -1039,6 +1075,7 @@ CONFIG_USB_MON=y | |||
1039 | CONFIG_USB_EHCI_HCD=y | 1075 | CONFIG_USB_EHCI_HCD=y |
1040 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1076 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1041 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1077 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1078 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1042 | CONFIG_USB_EHCI_FSL=y | 1079 | CONFIG_USB_EHCI_FSL=y |
1043 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1080 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1044 | # CONFIG_USB_OXU210HP_HCD is not set | 1081 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1321,7 +1358,7 @@ CONFIG_FRAME_WARN=1024 | |||
1321 | # CONFIG_DEBUG_FS is not set | 1358 | # CONFIG_DEBUG_FS is not set |
1322 | # CONFIG_HEADERS_CHECK is not set | 1359 | # CONFIG_HEADERS_CHECK is not set |
1323 | # CONFIG_DEBUG_KERNEL is not set | 1360 | # CONFIG_DEBUG_KERNEL is not set |
1324 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1361 | CONFIG_DEBUG_BUGVERBOSE=y |
1325 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1362 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1326 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1363 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1327 | # CONFIG_LATENCYTOP is not set | 1364 | # CONFIG_LATENCYTOP is not set |
@@ -1348,7 +1385,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1348 | # CONFIG_KEYS is not set | 1385 | # CONFIG_KEYS is not set |
1349 | # CONFIG_SECURITY is not set | 1386 | # CONFIG_SECURITY is not set |
1350 | # CONFIG_SECURITYFS is not set | 1387 | # CONFIG_SECURITYFS is not set |
1351 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1388 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1389 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1390 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1391 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1392 | CONFIG_DEFAULT_SECURITY="" | ||
1352 | CONFIG_CRYPTO=y | 1393 | CONFIG_CRYPTO=y |
1353 | 1394 | ||
1354 | # | 1395 | # |
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig index a5bde8da462..21dad38b156 100644 --- a/arch/powerpc/configs/85xx/ksi8560_defconfig +++ b/arch/powerpc/configs/85xx/ksi8560_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:32 2009 | 4 | # Wed Jan 6 09:24:26 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -62,6 +63,8 @@ CONFIG_AUDIT_ARCH=y | |||
62 | CONFIG_GENERIC_BUG=y | 63 | CONFIG_GENERIC_BUG=y |
63 | CONFIG_DTC=y | 64 | CONFIG_DTC=y |
64 | CONFIG_DEFAULT_UIMAGE=y | 65 | CONFIG_DEFAULT_UIMAGE=y |
66 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
67 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
65 | # CONFIG_PPC_DCR_NATIVE is not set | 68 | # CONFIG_PPC_DCR_NATIVE is not set |
66 | # CONFIG_PPC_DCR_MMIO is not set | 69 | # CONFIG_PPC_DCR_MMIO is not set |
67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 70 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -89,6 +92,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
89 | # | 92 | # |
90 | CONFIG_TREE_RCU=y | 93 | CONFIG_TREE_RCU=y |
91 | # CONFIG_TREE_PREEMPT_RCU is not set | 94 | # CONFIG_TREE_PREEMPT_RCU is not set |
95 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | 96 | # CONFIG_RCU_TRACE is not set |
93 | CONFIG_RCU_FANOUT=32 | 97 | CONFIG_RCU_FANOUT=32 |
94 | # CONFIG_RCU_FANOUT_EXACT is not set | 98 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -169,14 +173,41 @@ CONFIG_LBDAF=y | |||
169 | # IO Schedulers | 173 | # IO Schedulers |
170 | # | 174 | # |
171 | CONFIG_IOSCHED_NOOP=y | 175 | CONFIG_IOSCHED_NOOP=y |
172 | CONFIG_IOSCHED_AS=y | ||
173 | CONFIG_IOSCHED_DEADLINE=y | 176 | CONFIG_IOSCHED_DEADLINE=y |
174 | CONFIG_IOSCHED_CFQ=y | 177 | CONFIG_IOSCHED_CFQ=y |
175 | CONFIG_DEFAULT_AS=y | ||
176 | # CONFIG_DEFAULT_DEADLINE is not set | 178 | # CONFIG_DEFAULT_DEADLINE is not set |
177 | # CONFIG_DEFAULT_CFQ is not set | 179 | CONFIG_DEFAULT_CFQ=y |
178 | # CONFIG_DEFAULT_NOOP is not set | 180 | # CONFIG_DEFAULT_NOOP is not set |
179 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 181 | CONFIG_DEFAULT_IOSCHED="cfq" |
182 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
183 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
184 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
185 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
188 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
189 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
190 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
191 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
192 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
193 | # CONFIG_INLINE_READ_LOCK is not set | ||
194 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
195 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
197 | CONFIG_INLINE_READ_UNLOCK=y | ||
198 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
199 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
200 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
201 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
202 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
203 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
206 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
207 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
208 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
209 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
210 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
180 | # CONFIG_FREEZER is not set | 211 | # CONFIG_FREEZER is not set |
181 | 212 | ||
182 | # | 213 | # |
@@ -185,7 +216,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
185 | # CONFIG_PPC_CELL is not set | 216 | # CONFIG_PPC_CELL is not set |
186 | # CONFIG_PPC_CELL_NATIVE is not set | 217 | # CONFIG_PPC_CELL_NATIVE is not set |
187 | # CONFIG_PQ2ADS is not set | 218 | # CONFIG_PQ2ADS is not set |
188 | CONFIG_MPC85xx=y | 219 | CONFIG_FSL_SOC_BOOKE=y |
189 | # CONFIG_MPC8540_ADS is not set | 220 | # CONFIG_MPC8540_ADS is not set |
190 | # CONFIG_MPC8560_ADS is not set | 221 | # CONFIG_MPC8560_ADS is not set |
191 | # CONFIG_MPC85xx_CDS is not set | 222 | # CONFIG_MPC85xx_CDS is not set |
@@ -204,6 +235,7 @@ CONFIG_KSI8560=y | |||
204 | # CONFIG_TQM8560 is not set | 235 | # CONFIG_TQM8560 is not set |
205 | # CONFIG_SBC8548 is not set | 236 | # CONFIG_SBC8548 is not set |
206 | # CONFIG_SBC8560 is not set | 237 | # CONFIG_SBC8560 is not set |
238 | # CONFIG_P4080_DS is not set | ||
207 | # CONFIG_IPIC is not set | 239 | # CONFIG_IPIC is not set |
208 | CONFIG_MPIC=y | 240 | CONFIG_MPIC=y |
209 | # CONFIG_MPIC_WEIRD is not set | 241 | # CONFIG_MPIC_WEIRD is not set |
@@ -248,6 +280,7 @@ CONFIG_MATH_EMULATION=y | |||
248 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 280 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
249 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 281 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
250 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 282 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
283 | CONFIG_SPARSE_IRQ=y | ||
251 | CONFIG_MAX_ACTIVE_REGIONS=32 | 284 | CONFIG_MAX_ACTIVE_REGIONS=32 |
252 | CONFIG_ARCH_FLATMEM_ENABLE=y | 285 | CONFIG_ARCH_FLATMEM_ENABLE=y |
253 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 286 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -264,8 +297,6 @@ CONFIG_MIGRATION=y | |||
264 | CONFIG_ZONE_DMA_FLAG=1 | 297 | CONFIG_ZONE_DMA_FLAG=1 |
265 | CONFIG_BOUNCE=y | 298 | CONFIG_BOUNCE=y |
266 | CONFIG_VIRT_TO_BUS=y | 299 | CONFIG_VIRT_TO_BUS=y |
267 | CONFIG_HAVE_MLOCK=y | ||
268 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
269 | # CONFIG_KSM is not set | 300 | # CONFIG_KSM is not set |
270 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 301 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
271 | CONFIG_PPC_4K_PAGES=y | 302 | CONFIG_PPC_4K_PAGES=y |
@@ -385,9 +416,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
385 | # CONFIG_AF_RXRPC is not set | 416 | # CONFIG_AF_RXRPC is not set |
386 | CONFIG_WIRELESS=y | 417 | CONFIG_WIRELESS=y |
387 | # CONFIG_CFG80211 is not set | 418 | # CONFIG_CFG80211 is not set |
388 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
389 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
390 | # CONFIG_WIRELESS_EXT is not set | ||
391 | # CONFIG_LIB80211 is not set | 419 | # CONFIG_LIB80211 is not set |
392 | 420 | ||
393 | # | 421 | # |
@@ -503,6 +531,10 @@ CONFIG_BLK_DEV=y | |||
503 | # CONFIG_BLK_DEV_COW_COMMON is not set | 531 | # CONFIG_BLK_DEV_COW_COMMON is not set |
504 | CONFIG_BLK_DEV_LOOP=y | 532 | CONFIG_BLK_DEV_LOOP=y |
505 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 533 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
534 | |||
535 | # | ||
536 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
537 | # | ||
506 | # CONFIG_BLK_DEV_NBD is not set | 538 | # CONFIG_BLK_DEV_NBD is not set |
507 | CONFIG_BLK_DEV_RAM=y | 539 | CONFIG_BLK_DEV_RAM=y |
508 | CONFIG_BLK_DEV_RAM_COUNT=16 | 540 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -603,8 +635,7 @@ CONFIG_GIANFAR=y | |||
603 | # CONFIG_MV643XX_ETH is not set | 635 | # CONFIG_MV643XX_ETH is not set |
604 | CONFIG_NETDEV_10000=y | 636 | CONFIG_NETDEV_10000=y |
605 | CONFIG_WLAN=y | 637 | CONFIG_WLAN=y |
606 | # CONFIG_WLAN_PRE80211 is not set | 638 | # CONFIG_HOSTAP is not set |
607 | # CONFIG_WLAN_80211 is not set | ||
608 | 639 | ||
609 | # | 640 | # |
610 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 641 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -624,6 +655,7 @@ CONFIG_WLAN=y | |||
624 | CONFIG_INPUT=y | 655 | CONFIG_INPUT=y |
625 | # CONFIG_INPUT_FF_MEMLESS is not set | 656 | # CONFIG_INPUT_FF_MEMLESS is not set |
626 | # CONFIG_INPUT_POLLDEV is not set | 657 | # CONFIG_INPUT_POLLDEV is not set |
658 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
627 | 659 | ||
628 | # | 660 | # |
629 | # Userland interfaces | 661 | # Userland interfaces |
@@ -669,6 +701,7 @@ CONFIG_SERIAL_CORE=y | |||
669 | CONFIG_SERIAL_CORE_CONSOLE=y | 701 | CONFIG_SERIAL_CORE_CONSOLE=y |
670 | CONFIG_SERIAL_CPM=y | 702 | CONFIG_SERIAL_CPM=y |
671 | CONFIG_SERIAL_CPM_CONSOLE=y | 703 | CONFIG_SERIAL_CPM_CONSOLE=y |
704 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
672 | CONFIG_UNIX98_PTYS=y | 705 | CONFIG_UNIX98_PTYS=y |
673 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 706 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
674 | CONFIG_LEGACY_PTYS=y | 707 | CONFIG_LEGACY_PTYS=y |
@@ -1051,7 +1084,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1051 | # CONFIG_KEYS is not set | 1084 | # CONFIG_KEYS is not set |
1052 | # CONFIG_SECURITY is not set | 1085 | # CONFIG_SECURITY is not set |
1053 | # CONFIG_SECURITYFS is not set | 1086 | # CONFIG_SECURITYFS is not set |
1054 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1087 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1088 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1089 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1090 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1091 | CONFIG_DEFAULT_SECURITY="" | ||
1055 | CONFIG_CRYPTO=y | 1092 | CONFIG_CRYPTO=y |
1056 | 1093 | ||
1057 | # | 1094 | # |
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig index c10e26f8763..5db54cd274c 100644 --- a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig +++ b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:33 2009 | 4 | # Wed Jan 6 09:24:27 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -61,6 +62,8 @@ CONFIG_AUDIT_ARCH=y | |||
61 | CONFIG_GENERIC_BUG=y | 62 | CONFIG_GENERIC_BUG=y |
62 | CONFIG_DTC=y | 63 | CONFIG_DTC=y |
63 | CONFIG_DEFAULT_UIMAGE=y | 64 | CONFIG_DEFAULT_UIMAGE=y |
65 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
66 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
64 | # CONFIG_PPC_DCR_NATIVE is not set | 67 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 68 | # CONFIG_PPC_DCR_MMIO is not set |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 69 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -88,6 +91,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
88 | # | 91 | # |
89 | CONFIG_TREE_RCU=y | 92 | CONFIG_TREE_RCU=y |
90 | # CONFIG_TREE_PREEMPT_RCU is not set | 93 | # CONFIG_TREE_PREEMPT_RCU is not set |
94 | # CONFIG_TINY_RCU is not set | ||
91 | # CONFIG_RCU_TRACE is not set | 95 | # CONFIG_RCU_TRACE is not set |
92 | CONFIG_RCU_FANOUT=32 | 96 | CONFIG_RCU_FANOUT=32 |
93 | # CONFIG_RCU_FANOUT_EXACT is not set | 97 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -170,14 +174,41 @@ CONFIG_LBDAF=y | |||
170 | # IO Schedulers | 174 | # IO Schedulers |
171 | # | 175 | # |
172 | CONFIG_IOSCHED_NOOP=y | 176 | CONFIG_IOSCHED_NOOP=y |
173 | CONFIG_IOSCHED_AS=y | ||
174 | CONFIG_IOSCHED_DEADLINE=y | 177 | CONFIG_IOSCHED_DEADLINE=y |
175 | CONFIG_IOSCHED_CFQ=y | 178 | CONFIG_IOSCHED_CFQ=y |
176 | CONFIG_DEFAULT_AS=y | ||
177 | # CONFIG_DEFAULT_DEADLINE is not set | 179 | # CONFIG_DEFAULT_DEADLINE is not set |
178 | # CONFIG_DEFAULT_CFQ is not set | 180 | CONFIG_DEFAULT_CFQ=y |
179 | # CONFIG_DEFAULT_NOOP is not set | 181 | # CONFIG_DEFAULT_NOOP is not set |
180 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 182 | CONFIG_DEFAULT_IOSCHED="cfq" |
183 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
184 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
185 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
189 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
190 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
193 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
194 | # CONFIG_INLINE_READ_LOCK is not set | ||
195 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
198 | CONFIG_INLINE_READ_UNLOCK=y | ||
199 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
202 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
203 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
207 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
208 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
211 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
181 | # CONFIG_FREEZER is not set | 212 | # CONFIG_FREEZER is not set |
182 | 213 | ||
183 | # | 214 | # |
@@ -186,7 +217,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
186 | # CONFIG_PPC_CELL is not set | 217 | # CONFIG_PPC_CELL is not set |
187 | # CONFIG_PPC_CELL_NATIVE is not set | 218 | # CONFIG_PPC_CELL_NATIVE is not set |
188 | # CONFIG_PQ2ADS is not set | 219 | # CONFIG_PQ2ADS is not set |
189 | CONFIG_MPC85xx=y | 220 | CONFIG_FSL_SOC_BOOKE=y |
190 | CONFIG_MPC8540_ADS=y | 221 | CONFIG_MPC8540_ADS=y |
191 | # CONFIG_MPC8560_ADS is not set | 222 | # CONFIG_MPC8560_ADS is not set |
192 | # CONFIG_MPC85xx_CDS is not set | 223 | # CONFIG_MPC85xx_CDS is not set |
@@ -205,6 +236,7 @@ CONFIG_MPC8540_ADS=y | |||
205 | # CONFIG_TQM8560 is not set | 236 | # CONFIG_TQM8560 is not set |
206 | # CONFIG_SBC8548 is not set | 237 | # CONFIG_SBC8548 is not set |
207 | # CONFIG_SBC8560 is not set | 238 | # CONFIG_SBC8560 is not set |
239 | # CONFIG_P4080_DS is not set | ||
208 | # CONFIG_IPIC is not set | 240 | # CONFIG_IPIC is not set |
209 | CONFIG_MPIC=y | 241 | CONFIG_MPIC=y |
210 | # CONFIG_MPIC_WEIRD is not set | 242 | # CONFIG_MPIC_WEIRD is not set |
@@ -249,6 +281,7 @@ CONFIG_MATH_EMULATION=y | |||
249 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 281 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
250 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 282 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
251 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
284 | CONFIG_SPARSE_IRQ=y | ||
252 | CONFIG_MAX_ACTIVE_REGIONS=32 | 285 | CONFIG_MAX_ACTIVE_REGIONS=32 |
253 | CONFIG_ARCH_FLATMEM_ENABLE=y | 286 | CONFIG_ARCH_FLATMEM_ENABLE=y |
254 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 287 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -265,8 +298,6 @@ CONFIG_MIGRATION=y | |||
265 | CONFIG_ZONE_DMA_FLAG=1 | 298 | CONFIG_ZONE_DMA_FLAG=1 |
266 | CONFIG_BOUNCE=y | 299 | CONFIG_BOUNCE=y |
267 | CONFIG_VIRT_TO_BUS=y | 300 | CONFIG_VIRT_TO_BUS=y |
268 | CONFIG_HAVE_MLOCK=y | ||
269 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
270 | # CONFIG_KSM is not set | 301 | # CONFIG_KSM is not set |
271 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 302 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
272 | CONFIG_PPC_4K_PAGES=y | 303 | CONFIG_PPC_4K_PAGES=y |
@@ -386,9 +417,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
386 | # CONFIG_AF_RXRPC is not set | 417 | # CONFIG_AF_RXRPC is not set |
387 | CONFIG_WIRELESS=y | 418 | CONFIG_WIRELESS=y |
388 | # CONFIG_CFG80211 is not set | 419 | # CONFIG_CFG80211 is not set |
389 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
390 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
391 | # CONFIG_WIRELESS_EXT is not set | ||
392 | # CONFIG_LIB80211 is not set | 420 | # CONFIG_LIB80211 is not set |
393 | 421 | ||
394 | # | 422 | # |
@@ -423,6 +451,10 @@ CONFIG_BLK_DEV=y | |||
423 | # CONFIG_BLK_DEV_COW_COMMON is not set | 451 | # CONFIG_BLK_DEV_COW_COMMON is not set |
424 | CONFIG_BLK_DEV_LOOP=y | 452 | CONFIG_BLK_DEV_LOOP=y |
425 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 453 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
454 | |||
455 | # | ||
456 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
457 | # | ||
426 | # CONFIG_BLK_DEV_NBD is not set | 458 | # CONFIG_BLK_DEV_NBD is not set |
427 | CONFIG_BLK_DEV_RAM=y | 459 | CONFIG_BLK_DEV_RAM=y |
428 | CONFIG_BLK_DEV_RAM_COUNT=16 | 460 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -500,8 +532,7 @@ CONFIG_GIANFAR=y | |||
500 | # CONFIG_MV643XX_ETH is not set | 532 | # CONFIG_MV643XX_ETH is not set |
501 | CONFIG_NETDEV_10000=y | 533 | CONFIG_NETDEV_10000=y |
502 | CONFIG_WLAN=y | 534 | CONFIG_WLAN=y |
503 | # CONFIG_WLAN_PRE80211 is not set | 535 | # CONFIG_HOSTAP is not set |
504 | # CONFIG_WLAN_80211 is not set | ||
505 | 536 | ||
506 | # | 537 | # |
507 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 538 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -521,6 +552,7 @@ CONFIG_WLAN=y | |||
521 | CONFIG_INPUT=y | 552 | CONFIG_INPUT=y |
522 | # CONFIG_INPUT_FF_MEMLESS is not set | 553 | # CONFIG_INPUT_FF_MEMLESS is not set |
523 | # CONFIG_INPUT_POLLDEV is not set | 554 | # CONFIG_INPUT_POLLDEV is not set |
555 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
524 | 556 | ||
525 | # | 557 | # |
526 | # Userland interfaces | 558 | # Userland interfaces |
@@ -570,6 +602,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y | |||
570 | CONFIG_SERIAL_CORE=y | 602 | CONFIG_SERIAL_CORE=y |
571 | CONFIG_SERIAL_CORE_CONSOLE=y | 603 | CONFIG_SERIAL_CORE_CONSOLE=y |
572 | # CONFIG_SERIAL_OF_PLATFORM is not set | 604 | # CONFIG_SERIAL_OF_PLATFORM is not set |
605 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
573 | CONFIG_UNIX98_PTYS=y | 606 | CONFIG_UNIX98_PTYS=y |
574 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 607 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
575 | CONFIG_LEGACY_PTYS=y | 608 | CONFIG_LEGACY_PTYS=y |
@@ -920,7 +953,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
920 | # CONFIG_KEYS is not set | 953 | # CONFIG_KEYS is not set |
921 | # CONFIG_SECURITY is not set | 954 | # CONFIG_SECURITY is not set |
922 | # CONFIG_SECURITYFS is not set | 955 | # CONFIG_SECURITYFS is not set |
923 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 956 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
957 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
958 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
959 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
960 | CONFIG_DEFAULT_SECURITY="" | ||
924 | CONFIG_CRYPTO=y | 961 | CONFIG_CRYPTO=y |
925 | 962 | ||
926 | # | 963 | # |
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig index 8d9f0a4b520..76c7018c5cd 100644 --- a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig +++ b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:34 2009 | 4 | # Wed Jan 6 09:24:28 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -62,6 +63,8 @@ CONFIG_AUDIT_ARCH=y | |||
62 | CONFIG_GENERIC_BUG=y | 63 | CONFIG_GENERIC_BUG=y |
63 | CONFIG_DTC=y | 64 | CONFIG_DTC=y |
64 | CONFIG_DEFAULT_UIMAGE=y | 65 | CONFIG_DEFAULT_UIMAGE=y |
66 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
67 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
65 | # CONFIG_PPC_DCR_NATIVE is not set | 68 | # CONFIG_PPC_DCR_NATIVE is not set |
66 | # CONFIG_PPC_DCR_MMIO is not set | 69 | # CONFIG_PPC_DCR_MMIO is not set |
67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 70 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -89,6 +92,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
89 | # | 92 | # |
90 | CONFIG_TREE_RCU=y | 93 | CONFIG_TREE_RCU=y |
91 | # CONFIG_TREE_PREEMPT_RCU is not set | 94 | # CONFIG_TREE_PREEMPT_RCU is not set |
95 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | 96 | # CONFIG_RCU_TRACE is not set |
93 | CONFIG_RCU_FANOUT=32 | 97 | CONFIG_RCU_FANOUT=32 |
94 | # CONFIG_RCU_FANOUT_EXACT is not set | 98 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -173,14 +177,41 @@ CONFIG_LBDAF=y | |||
173 | # IO Schedulers | 177 | # IO Schedulers |
174 | # | 178 | # |
175 | CONFIG_IOSCHED_NOOP=y | 179 | CONFIG_IOSCHED_NOOP=y |
176 | CONFIG_IOSCHED_AS=y | ||
177 | CONFIG_IOSCHED_DEADLINE=y | 180 | CONFIG_IOSCHED_DEADLINE=y |
178 | CONFIG_IOSCHED_CFQ=y | 181 | CONFIG_IOSCHED_CFQ=y |
179 | CONFIG_DEFAULT_AS=y | ||
180 | # CONFIG_DEFAULT_DEADLINE is not set | 182 | # CONFIG_DEFAULT_DEADLINE is not set |
181 | # CONFIG_DEFAULT_CFQ is not set | 183 | CONFIG_DEFAULT_CFQ=y |
182 | # CONFIG_DEFAULT_NOOP is not set | 184 | # CONFIG_DEFAULT_NOOP is not set |
183 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 185 | CONFIG_DEFAULT_IOSCHED="cfq" |
186 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
192 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
196 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
201 | CONFIG_INLINE_READ_UNLOCK=y | ||
202 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
205 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
210 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
214 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
184 | # CONFIG_FREEZER is not set | 215 | # CONFIG_FREEZER is not set |
185 | 216 | ||
186 | # | 217 | # |
@@ -189,7 +220,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
189 | # CONFIG_PPC_CELL is not set | 220 | # CONFIG_PPC_CELL is not set |
190 | # CONFIG_PPC_CELL_NATIVE is not set | 221 | # CONFIG_PPC_CELL_NATIVE is not set |
191 | # CONFIG_PQ2ADS is not set | 222 | # CONFIG_PQ2ADS is not set |
192 | CONFIG_MPC85xx=y | 223 | CONFIG_FSL_SOC_BOOKE=y |
193 | # CONFIG_MPC8540_ADS is not set | 224 | # CONFIG_MPC8540_ADS is not set |
194 | CONFIG_MPC8560_ADS=y | 225 | CONFIG_MPC8560_ADS=y |
195 | # CONFIG_MPC85xx_CDS is not set | 226 | # CONFIG_MPC85xx_CDS is not set |
@@ -208,6 +239,7 @@ CONFIG_MPC8560_ADS=y | |||
208 | # CONFIG_TQM8560 is not set | 239 | # CONFIG_TQM8560 is not set |
209 | # CONFIG_SBC8548 is not set | 240 | # CONFIG_SBC8548 is not set |
210 | # CONFIG_SBC8560 is not set | 241 | # CONFIG_SBC8560 is not set |
242 | # CONFIG_P4080_DS is not set | ||
211 | # CONFIG_IPIC is not set | 243 | # CONFIG_IPIC is not set |
212 | CONFIG_MPIC=y | 244 | CONFIG_MPIC=y |
213 | # CONFIG_MPIC_WEIRD is not set | 245 | # CONFIG_MPIC_WEIRD is not set |
@@ -252,6 +284,7 @@ CONFIG_MATH_EMULATION=y | |||
252 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 284 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
253 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 285 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
254 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 286 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
287 | CONFIG_SPARSE_IRQ=y | ||
255 | CONFIG_MAX_ACTIVE_REGIONS=32 | 288 | CONFIG_MAX_ACTIVE_REGIONS=32 |
256 | CONFIG_ARCH_FLATMEM_ENABLE=y | 289 | CONFIG_ARCH_FLATMEM_ENABLE=y |
257 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 290 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -268,8 +301,6 @@ CONFIG_MIGRATION=y | |||
268 | CONFIG_ZONE_DMA_FLAG=1 | 301 | CONFIG_ZONE_DMA_FLAG=1 |
269 | CONFIG_BOUNCE=y | 302 | CONFIG_BOUNCE=y |
270 | CONFIG_VIRT_TO_BUS=y | 303 | CONFIG_VIRT_TO_BUS=y |
271 | CONFIG_HAVE_MLOCK=y | ||
272 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
273 | # CONFIG_KSM is not set | 304 | # CONFIG_KSM is not set |
274 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 305 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
275 | CONFIG_PPC_4K_PAGES=y | 306 | CONFIG_PPC_4K_PAGES=y |
@@ -398,9 +429,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
398 | # CONFIG_AF_RXRPC is not set | 429 | # CONFIG_AF_RXRPC is not set |
399 | CONFIG_WIRELESS=y | 430 | CONFIG_WIRELESS=y |
400 | # CONFIG_CFG80211 is not set | 431 | # CONFIG_CFG80211 is not set |
401 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
402 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
403 | # CONFIG_WIRELESS_EXT is not set | ||
404 | # CONFIG_LIB80211 is not set | 432 | # CONFIG_LIB80211 is not set |
405 | 433 | ||
406 | # | 434 | # |
@@ -440,6 +468,10 @@ CONFIG_BLK_DEV=y | |||
440 | # CONFIG_BLK_DEV_COW_COMMON is not set | 468 | # CONFIG_BLK_DEV_COW_COMMON is not set |
441 | CONFIG_BLK_DEV_LOOP=y | 469 | CONFIG_BLK_DEV_LOOP=y |
442 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 470 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
471 | |||
472 | # | ||
473 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
474 | # | ||
443 | # CONFIG_BLK_DEV_NBD is not set | 475 | # CONFIG_BLK_DEV_NBD is not set |
444 | # CONFIG_BLK_DEV_SX8 is not set | 476 | # CONFIG_BLK_DEV_SX8 is not set |
445 | CONFIG_BLK_DEV_RAM=y | 477 | CONFIG_BLK_DEV_RAM=y |
@@ -485,7 +517,7 @@ CONFIG_HAVE_IDE=y | |||
485 | # | 517 | # |
486 | 518 | ||
487 | # | 519 | # |
488 | # See the help texts for more information. | 520 | # The newer stack is recommended. |
489 | # | 521 | # |
490 | # CONFIG_FIREWIRE is not set | 522 | # CONFIG_FIREWIRE is not set |
491 | # CONFIG_IEEE1394 is not set | 523 | # CONFIG_IEEE1394 is not set |
@@ -594,8 +626,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
594 | # CONFIG_BE2NET is not set | 626 | # CONFIG_BE2NET is not set |
595 | # CONFIG_TR is not set | 627 | # CONFIG_TR is not set |
596 | CONFIG_WLAN=y | 628 | CONFIG_WLAN=y |
597 | # CONFIG_WLAN_PRE80211 is not set | 629 | # CONFIG_AIRO is not set |
598 | # CONFIG_WLAN_80211 is not set | 630 | # CONFIG_ATMEL is not set |
631 | # CONFIG_PRISM54 is not set | ||
632 | # CONFIG_HOSTAP is not set | ||
599 | 633 | ||
600 | # | 634 | # |
601 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 635 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -608,6 +642,7 @@ CONFIG_WLAN=y | |||
608 | # CONFIG_NETCONSOLE is not set | 642 | # CONFIG_NETCONSOLE is not set |
609 | # CONFIG_NETPOLL is not set | 643 | # CONFIG_NETPOLL is not set |
610 | # CONFIG_NET_POLL_CONTROLLER is not set | 644 | # CONFIG_NET_POLL_CONTROLLER is not set |
645 | # CONFIG_VMXNET3 is not set | ||
611 | # CONFIG_ISDN is not set | 646 | # CONFIG_ISDN is not set |
612 | # CONFIG_PHONE is not set | 647 | # CONFIG_PHONE is not set |
613 | 648 | ||
@@ -617,6 +652,7 @@ CONFIG_WLAN=y | |||
617 | CONFIG_INPUT=y | 652 | CONFIG_INPUT=y |
618 | # CONFIG_INPUT_FF_MEMLESS is not set | 653 | # CONFIG_INPUT_FF_MEMLESS is not set |
619 | # CONFIG_INPUT_POLLDEV is not set | 654 | # CONFIG_INPUT_POLLDEV is not set |
655 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
620 | 656 | ||
621 | # | 657 | # |
622 | # Userland interfaces | 658 | # Userland interfaces |
@@ -664,6 +700,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
664 | CONFIG_SERIAL_CPM=y | 700 | CONFIG_SERIAL_CPM=y |
665 | CONFIG_SERIAL_CPM_CONSOLE=y | 701 | CONFIG_SERIAL_CPM_CONSOLE=y |
666 | # CONFIG_SERIAL_JSM is not set | 702 | # CONFIG_SERIAL_JSM is not set |
703 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
667 | CONFIG_UNIX98_PTYS=y | 704 | CONFIG_UNIX98_PTYS=y |
668 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 705 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
669 | CONFIG_LEGACY_PTYS=y | 706 | CONFIG_LEGACY_PTYS=y |
@@ -705,6 +742,7 @@ CONFIG_GPIOLIB=y | |||
705 | # | 742 | # |
706 | # PCI GPIO expanders: | 743 | # PCI GPIO expanders: |
707 | # | 744 | # |
745 | # CONFIG_GPIO_CS5535 is not set | ||
708 | # CONFIG_GPIO_BT8XX is not set | 746 | # CONFIG_GPIO_BT8XX is not set |
709 | # CONFIG_GPIO_LANGWELL is not set | 747 | # CONFIG_GPIO_LANGWELL is not set |
710 | 748 | ||
@@ -1054,7 +1092,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1054 | # CONFIG_KEYS is not set | 1092 | # CONFIG_KEYS is not set |
1055 | # CONFIG_SECURITY is not set | 1093 | # CONFIG_SECURITY is not set |
1056 | # CONFIG_SECURITYFS is not set | 1094 | # CONFIG_SECURITYFS is not set |
1057 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1095 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1096 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1097 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1098 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1099 | CONFIG_DEFAULT_SECURITY="" | ||
1058 | CONFIG_CRYPTO=y | 1100 | CONFIG_CRYPTO=y |
1059 | 1101 | ||
1060 | # | 1102 | # |
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig index 9b63e258dac..fab8adacbf7 100644 --- a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig +++ b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:35 2009 | 4 | # Wed Jan 6 09:24:29 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -61,6 +62,8 @@ CONFIG_AUDIT_ARCH=y | |||
61 | CONFIG_GENERIC_BUG=y | 62 | CONFIG_GENERIC_BUG=y |
62 | CONFIG_DTC=y | 63 | CONFIG_DTC=y |
63 | CONFIG_DEFAULT_UIMAGE=y | 64 | CONFIG_DEFAULT_UIMAGE=y |
65 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
66 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
64 | # CONFIG_PPC_DCR_NATIVE is not set | 67 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 68 | # CONFIG_PPC_DCR_MMIO is not set |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 69 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -88,6 +91,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
88 | # | 91 | # |
89 | CONFIG_TREE_RCU=y | 92 | CONFIG_TREE_RCU=y |
90 | # CONFIG_TREE_PREEMPT_RCU is not set | 93 | # CONFIG_TREE_PREEMPT_RCU is not set |
94 | # CONFIG_TINY_RCU is not set | ||
91 | # CONFIG_RCU_TRACE is not set | 95 | # CONFIG_RCU_TRACE is not set |
92 | CONFIG_RCU_FANOUT=32 | 96 | CONFIG_RCU_FANOUT=32 |
93 | # CONFIG_RCU_FANOUT_EXACT is not set | 97 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -171,14 +175,41 @@ CONFIG_LBDAF=y | |||
171 | # IO Schedulers | 175 | # IO Schedulers |
172 | # | 176 | # |
173 | CONFIG_IOSCHED_NOOP=y | 177 | CONFIG_IOSCHED_NOOP=y |
174 | CONFIG_IOSCHED_AS=y | ||
175 | CONFIG_IOSCHED_DEADLINE=y | 178 | CONFIG_IOSCHED_DEADLINE=y |
176 | CONFIG_IOSCHED_CFQ=y | 179 | CONFIG_IOSCHED_CFQ=y |
177 | CONFIG_DEFAULT_AS=y | ||
178 | # CONFIG_DEFAULT_DEADLINE is not set | 180 | # CONFIG_DEFAULT_DEADLINE is not set |
179 | # CONFIG_DEFAULT_CFQ is not set | 181 | CONFIG_DEFAULT_CFQ=y |
180 | # CONFIG_DEFAULT_NOOP is not set | 182 | # CONFIG_DEFAULT_NOOP is not set |
181 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 183 | CONFIG_DEFAULT_IOSCHED="cfq" |
184 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
185 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
190 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
191 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
192 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
194 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
195 | # CONFIG_INLINE_READ_LOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
199 | CONFIG_INLINE_READ_UNLOCK=y | ||
200 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
201 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
202 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
203 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
208 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
209 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
210 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
212 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
182 | # CONFIG_FREEZER is not set | 213 | # CONFIG_FREEZER is not set |
183 | 214 | ||
184 | # | 215 | # |
@@ -187,7 +218,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
187 | # CONFIG_PPC_CELL is not set | 218 | # CONFIG_PPC_CELL is not set |
188 | # CONFIG_PPC_CELL_NATIVE is not set | 219 | # CONFIG_PPC_CELL_NATIVE is not set |
189 | # CONFIG_PQ2ADS is not set | 220 | # CONFIG_PQ2ADS is not set |
190 | CONFIG_MPC85xx=y | 221 | CONFIG_FSL_SOC_BOOKE=y |
191 | # CONFIG_MPC8540_ADS is not set | 222 | # CONFIG_MPC8540_ADS is not set |
192 | # CONFIG_MPC8560_ADS is not set | 223 | # CONFIG_MPC8560_ADS is not set |
193 | CONFIG_MPC85xx_CDS=y | 224 | CONFIG_MPC85xx_CDS=y |
@@ -206,6 +237,7 @@ CONFIG_MPC85xx_CDS=y | |||
206 | # CONFIG_TQM8560 is not set | 237 | # CONFIG_TQM8560 is not set |
207 | # CONFIG_SBC8548 is not set | 238 | # CONFIG_SBC8548 is not set |
208 | # CONFIG_SBC8560 is not set | 239 | # CONFIG_SBC8560 is not set |
240 | # CONFIG_P4080_DS is not set | ||
209 | # CONFIG_IPIC is not set | 241 | # CONFIG_IPIC is not set |
210 | CONFIG_MPIC=y | 242 | CONFIG_MPIC=y |
211 | # CONFIG_MPIC_WEIRD is not set | 243 | # CONFIG_MPIC_WEIRD is not set |
@@ -250,6 +282,7 @@ CONFIG_MATH_EMULATION=y | |||
250 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 282 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
251 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 283 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
252 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 284 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
285 | CONFIG_SPARSE_IRQ=y | ||
253 | CONFIG_MAX_ACTIVE_REGIONS=32 | 286 | CONFIG_MAX_ACTIVE_REGIONS=32 |
254 | CONFIG_ARCH_FLATMEM_ENABLE=y | 287 | CONFIG_ARCH_FLATMEM_ENABLE=y |
255 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 288 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -266,8 +299,6 @@ CONFIG_MIGRATION=y | |||
266 | CONFIG_ZONE_DMA_FLAG=1 | 299 | CONFIG_ZONE_DMA_FLAG=1 |
267 | CONFIG_BOUNCE=y | 300 | CONFIG_BOUNCE=y |
268 | CONFIG_VIRT_TO_BUS=y | 301 | CONFIG_VIRT_TO_BUS=y |
269 | CONFIG_HAVE_MLOCK=y | ||
270 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
271 | # CONFIG_KSM is not set | 302 | # CONFIG_KSM is not set |
272 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 303 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
273 | CONFIG_PPC_4K_PAGES=y | 304 | CONFIG_PPC_4K_PAGES=y |
@@ -396,9 +427,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
396 | # CONFIG_AF_RXRPC is not set | 427 | # CONFIG_AF_RXRPC is not set |
397 | CONFIG_WIRELESS=y | 428 | CONFIG_WIRELESS=y |
398 | # CONFIG_CFG80211 is not set | 429 | # CONFIG_CFG80211 is not set |
399 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
400 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
401 | # CONFIG_WIRELESS_EXT is not set | ||
402 | # CONFIG_LIB80211 is not set | 430 | # CONFIG_LIB80211 is not set |
403 | 431 | ||
404 | # | 432 | # |
@@ -437,6 +465,10 @@ CONFIG_BLK_DEV=y | |||
437 | # CONFIG_BLK_DEV_COW_COMMON is not set | 465 | # CONFIG_BLK_DEV_COW_COMMON is not set |
438 | CONFIG_BLK_DEV_LOOP=y | 466 | CONFIG_BLK_DEV_LOOP=y |
439 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 467 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
468 | |||
469 | # | ||
470 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
471 | # | ||
440 | # CONFIG_BLK_DEV_NBD is not set | 472 | # CONFIG_BLK_DEV_NBD is not set |
441 | # CONFIG_BLK_DEV_SX8 is not set | 473 | # CONFIG_BLK_DEV_SX8 is not set |
442 | CONFIG_BLK_DEV_RAM=y | 474 | CONFIG_BLK_DEV_RAM=y |
@@ -537,7 +569,7 @@ CONFIG_BLK_DEV_IDEDMA=y | |||
537 | # | 569 | # |
538 | 570 | ||
539 | # | 571 | # |
540 | # See the help texts for more information. | 572 | # The newer stack is recommended. |
541 | # | 573 | # |
542 | # CONFIG_FIREWIRE is not set | 574 | # CONFIG_FIREWIRE is not set |
543 | # CONFIG_IEEE1394 is not set | 575 | # CONFIG_IEEE1394 is not set |
@@ -642,8 +674,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
642 | # CONFIG_BE2NET is not set | 674 | # CONFIG_BE2NET is not set |
643 | # CONFIG_TR is not set | 675 | # CONFIG_TR is not set |
644 | CONFIG_WLAN=y | 676 | CONFIG_WLAN=y |
645 | # CONFIG_WLAN_PRE80211 is not set | 677 | # CONFIG_AIRO is not set |
646 | # CONFIG_WLAN_80211 is not set | 678 | # CONFIG_ATMEL is not set |
679 | # CONFIG_PRISM54 is not set | ||
680 | # CONFIG_HOSTAP is not set | ||
647 | 681 | ||
648 | # | 682 | # |
649 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 683 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -656,6 +690,7 @@ CONFIG_WLAN=y | |||
656 | # CONFIG_NETCONSOLE is not set | 690 | # CONFIG_NETCONSOLE is not set |
657 | # CONFIG_NETPOLL is not set | 691 | # CONFIG_NETPOLL is not set |
658 | # CONFIG_NET_POLL_CONTROLLER is not set | 692 | # CONFIG_NET_POLL_CONTROLLER is not set |
693 | # CONFIG_VMXNET3 is not set | ||
659 | # CONFIG_ISDN is not set | 694 | # CONFIG_ISDN is not set |
660 | # CONFIG_PHONE is not set | 695 | # CONFIG_PHONE is not set |
661 | 696 | ||
@@ -665,6 +700,7 @@ CONFIG_WLAN=y | |||
665 | CONFIG_INPUT=y | 700 | CONFIG_INPUT=y |
666 | # CONFIG_INPUT_FF_MEMLESS is not set | 701 | # CONFIG_INPUT_FF_MEMLESS is not set |
667 | # CONFIG_INPUT_POLLDEV is not set | 702 | # CONFIG_INPUT_POLLDEV is not set |
703 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
668 | 704 | ||
669 | # | 705 | # |
670 | # Userland interfaces | 706 | # Userland interfaces |
@@ -717,6 +753,7 @@ CONFIG_SERIAL_CORE=y | |||
717 | CONFIG_SERIAL_CORE_CONSOLE=y | 753 | CONFIG_SERIAL_CORE_CONSOLE=y |
718 | # CONFIG_SERIAL_JSM is not set | 754 | # CONFIG_SERIAL_JSM is not set |
719 | # CONFIG_SERIAL_OF_PLATFORM is not set | 755 | # CONFIG_SERIAL_OF_PLATFORM is not set |
756 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
720 | CONFIG_UNIX98_PTYS=y | 757 | CONFIG_UNIX98_PTYS=y |
721 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 758 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
722 | CONFIG_LEGACY_PTYS=y | 759 | CONFIG_LEGACY_PTYS=y |
@@ -1079,7 +1116,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1079 | # CONFIG_KEYS is not set | 1116 | # CONFIG_KEYS is not set |
1080 | # CONFIG_SECURITY is not set | 1117 | # CONFIG_SECURITY is not set |
1081 | # CONFIG_SECURITYFS is not set | 1118 | # CONFIG_SECURITYFS is not set |
1082 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1119 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1120 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1121 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1122 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1123 | CONFIG_DEFAULT_SECURITY="" | ||
1083 | CONFIG_CRYPTO=y | 1124 | CONFIG_CRYPTO=y |
1084 | 1125 | ||
1085 | # | 1126 | # |
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig index 1b235683017..8290385e9b9 100644 --- a/arch/powerpc/configs/85xx/sbc8548_defconfig +++ b/arch/powerpc/configs/85xx/sbc8548_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:36 2009 | 4 | # Wed Jan 6 09:24:29 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -61,6 +62,8 @@ CONFIG_AUDIT_ARCH=y | |||
61 | CONFIG_GENERIC_BUG=y | 62 | CONFIG_GENERIC_BUG=y |
62 | CONFIG_DTC=y | 63 | CONFIG_DTC=y |
63 | CONFIG_DEFAULT_UIMAGE=y | 64 | CONFIG_DEFAULT_UIMAGE=y |
65 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
66 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
64 | # CONFIG_PPC_DCR_NATIVE is not set | 67 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 68 | # CONFIG_PPC_DCR_MMIO is not set |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 69 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -88,6 +91,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
88 | # | 91 | # |
89 | CONFIG_TREE_RCU=y | 92 | CONFIG_TREE_RCU=y |
90 | # CONFIG_TREE_PREEMPT_RCU is not set | 93 | # CONFIG_TREE_PREEMPT_RCU is not set |
94 | # CONFIG_TINY_RCU is not set | ||
91 | # CONFIG_RCU_TRACE is not set | 95 | # CONFIG_RCU_TRACE is not set |
92 | CONFIG_RCU_FANOUT=32 | 96 | CONFIG_RCU_FANOUT=32 |
93 | # CONFIG_RCU_FANOUT_EXACT is not set | 97 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -169,14 +173,41 @@ CONFIG_LBDAF=y | |||
169 | # IO Schedulers | 173 | # IO Schedulers |
170 | # | 174 | # |
171 | CONFIG_IOSCHED_NOOP=y | 175 | CONFIG_IOSCHED_NOOP=y |
172 | CONFIG_IOSCHED_AS=y | ||
173 | CONFIG_IOSCHED_DEADLINE=y | 176 | CONFIG_IOSCHED_DEADLINE=y |
174 | CONFIG_IOSCHED_CFQ=y | 177 | CONFIG_IOSCHED_CFQ=y |
175 | CONFIG_DEFAULT_AS=y | ||
176 | # CONFIG_DEFAULT_DEADLINE is not set | 178 | # CONFIG_DEFAULT_DEADLINE is not set |
177 | # CONFIG_DEFAULT_CFQ is not set | 179 | CONFIG_DEFAULT_CFQ=y |
178 | # CONFIG_DEFAULT_NOOP is not set | 180 | # CONFIG_DEFAULT_NOOP is not set |
179 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 181 | CONFIG_DEFAULT_IOSCHED="cfq" |
182 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
183 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
184 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
185 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
188 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
189 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
190 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
191 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
192 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
193 | # CONFIG_INLINE_READ_LOCK is not set | ||
194 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
195 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
197 | CONFIG_INLINE_READ_UNLOCK=y | ||
198 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
199 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
200 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
201 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
202 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
203 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
206 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
207 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
208 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
209 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
210 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
180 | # CONFIG_FREEZER is not set | 211 | # CONFIG_FREEZER is not set |
181 | 212 | ||
182 | # | 213 | # |
@@ -185,7 +216,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
185 | # CONFIG_PPC_CELL is not set | 216 | # CONFIG_PPC_CELL is not set |
186 | # CONFIG_PPC_CELL_NATIVE is not set | 217 | # CONFIG_PPC_CELL_NATIVE is not set |
187 | # CONFIG_PQ2ADS is not set | 218 | # CONFIG_PQ2ADS is not set |
188 | CONFIG_MPC85xx=y | 219 | CONFIG_FSL_SOC_BOOKE=y |
189 | # CONFIG_MPC8540_ADS is not set | 220 | # CONFIG_MPC8540_ADS is not set |
190 | # CONFIG_MPC8560_ADS is not set | 221 | # CONFIG_MPC8560_ADS is not set |
191 | # CONFIG_MPC85xx_CDS is not set | 222 | # CONFIG_MPC85xx_CDS is not set |
@@ -204,6 +235,7 @@ CONFIG_MPC85xx=y | |||
204 | # CONFIG_TQM8560 is not set | 235 | # CONFIG_TQM8560 is not set |
205 | CONFIG_SBC8548=y | 236 | CONFIG_SBC8548=y |
206 | # CONFIG_SBC8560 is not set | 237 | # CONFIG_SBC8560 is not set |
238 | # CONFIG_P4080_DS is not set | ||
207 | # CONFIG_IPIC is not set | 239 | # CONFIG_IPIC is not set |
208 | CONFIG_MPIC=y | 240 | CONFIG_MPIC=y |
209 | # CONFIG_MPIC_WEIRD is not set | 241 | # CONFIG_MPIC_WEIRD is not set |
@@ -247,6 +279,7 @@ CONFIG_MATH_EMULATION=y | |||
247 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 279 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
248 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 280 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
249 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 281 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
282 | CONFIG_SPARSE_IRQ=y | ||
250 | CONFIG_MAX_ACTIVE_REGIONS=32 | 283 | CONFIG_MAX_ACTIVE_REGIONS=32 |
251 | CONFIG_ARCH_FLATMEM_ENABLE=y | 284 | CONFIG_ARCH_FLATMEM_ENABLE=y |
252 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 285 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -263,8 +296,6 @@ CONFIG_MIGRATION=y | |||
263 | CONFIG_ZONE_DMA_FLAG=1 | 296 | CONFIG_ZONE_DMA_FLAG=1 |
264 | CONFIG_BOUNCE=y | 297 | CONFIG_BOUNCE=y |
265 | CONFIG_VIRT_TO_BUS=y | 298 | CONFIG_VIRT_TO_BUS=y |
266 | CONFIG_HAVE_MLOCK=y | ||
267 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
268 | # CONFIG_KSM is not set | 299 | # CONFIG_KSM is not set |
269 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 300 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
270 | CONFIG_PPC_4K_PAGES=y | 301 | CONFIG_PPC_4K_PAGES=y |
@@ -392,9 +423,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
392 | # CONFIG_AF_RXRPC is not set | 423 | # CONFIG_AF_RXRPC is not set |
393 | CONFIG_WIRELESS=y | 424 | CONFIG_WIRELESS=y |
394 | # CONFIG_CFG80211 is not set | 425 | # CONFIG_CFG80211 is not set |
395 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
396 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
397 | # CONFIG_WIRELESS_EXT is not set | ||
398 | # CONFIG_LIB80211 is not set | 426 | # CONFIG_LIB80211 is not set |
399 | 427 | ||
400 | # | 428 | # |
@@ -431,6 +459,10 @@ CONFIG_BLK_DEV=y | |||
431 | # CONFIG_BLK_DEV_COW_COMMON is not set | 459 | # CONFIG_BLK_DEV_COW_COMMON is not set |
432 | CONFIG_BLK_DEV_LOOP=y | 460 | CONFIG_BLK_DEV_LOOP=y |
433 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 461 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
462 | |||
463 | # | ||
464 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
465 | # | ||
434 | # CONFIG_BLK_DEV_NBD is not set | 466 | # CONFIG_BLK_DEV_NBD is not set |
435 | # CONFIG_BLK_DEV_SX8 is not set | 467 | # CONFIG_BLK_DEV_SX8 is not set |
436 | CONFIG_BLK_DEV_RAM=y | 468 | CONFIG_BLK_DEV_RAM=y |
@@ -476,7 +508,7 @@ CONFIG_HAVE_IDE=y | |||
476 | # | 508 | # |
477 | 509 | ||
478 | # | 510 | # |
479 | # See the help texts for more information. | 511 | # The newer stack is recommended. |
480 | # | 512 | # |
481 | # CONFIG_FIREWIRE is not set | 513 | # CONFIG_FIREWIRE is not set |
482 | # CONFIG_IEEE1394 is not set | 514 | # CONFIG_IEEE1394 is not set |
@@ -581,8 +613,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
581 | # CONFIG_BE2NET is not set | 613 | # CONFIG_BE2NET is not set |
582 | # CONFIG_TR is not set | 614 | # CONFIG_TR is not set |
583 | CONFIG_WLAN=y | 615 | CONFIG_WLAN=y |
584 | # CONFIG_WLAN_PRE80211 is not set | 616 | # CONFIG_AIRO is not set |
585 | # CONFIG_WLAN_80211 is not set | 617 | # CONFIG_ATMEL is not set |
618 | # CONFIG_PRISM54 is not set | ||
619 | # CONFIG_HOSTAP is not set | ||
586 | 620 | ||
587 | # | 621 | # |
588 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 622 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -595,6 +629,7 @@ CONFIG_WLAN=y | |||
595 | # CONFIG_NETCONSOLE is not set | 629 | # CONFIG_NETCONSOLE is not set |
596 | # CONFIG_NETPOLL is not set | 630 | # CONFIG_NETPOLL is not set |
597 | # CONFIG_NET_POLL_CONTROLLER is not set | 631 | # CONFIG_NET_POLL_CONTROLLER is not set |
632 | # CONFIG_VMXNET3 is not set | ||
598 | # CONFIG_ISDN is not set | 633 | # CONFIG_ISDN is not set |
599 | # CONFIG_PHONE is not set | 634 | # CONFIG_PHONE is not set |
600 | 635 | ||
@@ -604,6 +639,7 @@ CONFIG_WLAN=y | |||
604 | CONFIG_INPUT=y | 639 | CONFIG_INPUT=y |
605 | # CONFIG_INPUT_FF_MEMLESS is not set | 640 | # CONFIG_INPUT_FF_MEMLESS is not set |
606 | # CONFIG_INPUT_POLLDEV is not set | 641 | # CONFIG_INPUT_POLLDEV is not set |
642 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
607 | 643 | ||
608 | # | 644 | # |
609 | # Userland interfaces | 645 | # Userland interfaces |
@@ -656,6 +692,7 @@ CONFIG_SERIAL_CORE=y | |||
656 | CONFIG_SERIAL_CORE_CONSOLE=y | 692 | CONFIG_SERIAL_CORE_CONSOLE=y |
657 | # CONFIG_SERIAL_JSM is not set | 693 | # CONFIG_SERIAL_JSM is not set |
658 | # CONFIG_SERIAL_OF_PLATFORM is not set | 694 | # CONFIG_SERIAL_OF_PLATFORM is not set |
695 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
659 | CONFIG_UNIX98_PTYS=y | 696 | CONFIG_UNIX98_PTYS=y |
660 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 697 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
661 | CONFIG_LEGACY_PTYS=y | 698 | CONFIG_LEGACY_PTYS=y |
@@ -889,7 +926,7 @@ CONFIG_FRAME_WARN=1024 | |||
889 | # CONFIG_DEBUG_FS is not set | 926 | # CONFIG_DEBUG_FS is not set |
890 | # CONFIG_HEADERS_CHECK is not set | 927 | # CONFIG_HEADERS_CHECK is not set |
891 | # CONFIG_DEBUG_KERNEL is not set | 928 | # CONFIG_DEBUG_KERNEL is not set |
892 | # CONFIG_DEBUG_BUGVERBOSE is not set | 929 | CONFIG_DEBUG_BUGVERBOSE=y |
893 | # CONFIG_DEBUG_MEMORY_INIT is not set | 930 | # CONFIG_DEBUG_MEMORY_INIT is not set |
894 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 931 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
895 | # CONFIG_LATENCYTOP is not set | 932 | # CONFIG_LATENCYTOP is not set |
@@ -915,7 +952,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
915 | # CONFIG_KEYS is not set | 952 | # CONFIG_KEYS is not set |
916 | # CONFIG_SECURITY is not set | 953 | # CONFIG_SECURITY is not set |
917 | # CONFIG_SECURITYFS is not set | 954 | # CONFIG_SECURITYFS is not set |
918 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 955 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
956 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
957 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
958 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
959 | CONFIG_DEFAULT_SECURITY="" | ||
919 | CONFIG_CRYPTO=y | 960 | CONFIG_CRYPTO=y |
920 | 961 | ||
921 | # | 962 | # |
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig index 959d0281431..2499b5ba714 100644 --- a/arch/powerpc/configs/85xx/sbc8560_defconfig +++ b/arch/powerpc/configs/85xx/sbc8560_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:37 2009 | 4 | # Wed Jan 6 09:24:30 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -61,6 +62,8 @@ CONFIG_AUDIT_ARCH=y | |||
61 | CONFIG_GENERIC_BUG=y | 62 | CONFIG_GENERIC_BUG=y |
62 | CONFIG_DTC=y | 63 | CONFIG_DTC=y |
63 | CONFIG_DEFAULT_UIMAGE=y | 64 | CONFIG_DEFAULT_UIMAGE=y |
65 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
66 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
64 | # CONFIG_PPC_DCR_NATIVE is not set | 67 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 68 | # CONFIG_PPC_DCR_MMIO is not set |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 69 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -88,6 +91,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
88 | # | 91 | # |
89 | CONFIG_TREE_RCU=y | 92 | CONFIG_TREE_RCU=y |
90 | # CONFIG_TREE_PREEMPT_RCU is not set | 93 | # CONFIG_TREE_PREEMPT_RCU is not set |
94 | # CONFIG_TINY_RCU is not set | ||
91 | # CONFIG_RCU_TRACE is not set | 95 | # CONFIG_RCU_TRACE is not set |
92 | CONFIG_RCU_FANOUT=32 | 96 | CONFIG_RCU_FANOUT=32 |
93 | # CONFIG_RCU_FANOUT_EXACT is not set | 97 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -169,14 +173,41 @@ CONFIG_LBDAF=y | |||
169 | # IO Schedulers | 173 | # IO Schedulers |
170 | # | 174 | # |
171 | CONFIG_IOSCHED_NOOP=y | 175 | CONFIG_IOSCHED_NOOP=y |
172 | CONFIG_IOSCHED_AS=y | ||
173 | CONFIG_IOSCHED_DEADLINE=y | 176 | CONFIG_IOSCHED_DEADLINE=y |
174 | CONFIG_IOSCHED_CFQ=y | 177 | CONFIG_IOSCHED_CFQ=y |
175 | CONFIG_DEFAULT_AS=y | ||
176 | # CONFIG_DEFAULT_DEADLINE is not set | 178 | # CONFIG_DEFAULT_DEADLINE is not set |
177 | # CONFIG_DEFAULT_CFQ is not set | 179 | CONFIG_DEFAULT_CFQ=y |
178 | # CONFIG_DEFAULT_NOOP is not set | 180 | # CONFIG_DEFAULT_NOOP is not set |
179 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 181 | CONFIG_DEFAULT_IOSCHED="cfq" |
182 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
183 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
184 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
185 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
188 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
189 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
190 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
191 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
192 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
193 | # CONFIG_INLINE_READ_LOCK is not set | ||
194 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
195 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
197 | CONFIG_INLINE_READ_UNLOCK=y | ||
198 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
199 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
200 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
201 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
202 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
203 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
206 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
207 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
208 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
209 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
210 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
180 | # CONFIG_FREEZER is not set | 211 | # CONFIG_FREEZER is not set |
181 | 212 | ||
182 | # | 213 | # |
@@ -185,7 +216,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
185 | # CONFIG_PPC_CELL is not set | 216 | # CONFIG_PPC_CELL is not set |
186 | # CONFIG_PPC_CELL_NATIVE is not set | 217 | # CONFIG_PPC_CELL_NATIVE is not set |
187 | # CONFIG_PQ2ADS is not set | 218 | # CONFIG_PQ2ADS is not set |
188 | CONFIG_MPC85xx=y | 219 | CONFIG_FSL_SOC_BOOKE=y |
189 | # CONFIG_MPC8540_ADS is not set | 220 | # CONFIG_MPC8540_ADS is not set |
190 | # CONFIG_MPC8560_ADS is not set | 221 | # CONFIG_MPC8560_ADS is not set |
191 | # CONFIG_MPC85xx_CDS is not set | 222 | # CONFIG_MPC85xx_CDS is not set |
@@ -204,6 +235,7 @@ CONFIG_MPC85xx=y | |||
204 | # CONFIG_TQM8560 is not set | 235 | # CONFIG_TQM8560 is not set |
205 | # CONFIG_SBC8548 is not set | 236 | # CONFIG_SBC8548 is not set |
206 | CONFIG_SBC8560=y | 237 | CONFIG_SBC8560=y |
238 | # CONFIG_P4080_DS is not set | ||
207 | # CONFIG_IPIC is not set | 239 | # CONFIG_IPIC is not set |
208 | CONFIG_MPIC=y | 240 | CONFIG_MPIC=y |
209 | # CONFIG_MPIC_WEIRD is not set | 241 | # CONFIG_MPIC_WEIRD is not set |
@@ -247,6 +279,7 @@ CONFIG_BINFMT_MISC=y | |||
247 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 279 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
248 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 280 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
249 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 281 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
282 | CONFIG_SPARSE_IRQ=y | ||
250 | CONFIG_MAX_ACTIVE_REGIONS=32 | 283 | CONFIG_MAX_ACTIVE_REGIONS=32 |
251 | CONFIG_ARCH_FLATMEM_ENABLE=y | 284 | CONFIG_ARCH_FLATMEM_ENABLE=y |
252 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 285 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -263,8 +296,6 @@ CONFIG_MIGRATION=y | |||
263 | CONFIG_ZONE_DMA_FLAG=1 | 296 | CONFIG_ZONE_DMA_FLAG=1 |
264 | CONFIG_BOUNCE=y | 297 | CONFIG_BOUNCE=y |
265 | CONFIG_VIRT_TO_BUS=y | 298 | CONFIG_VIRT_TO_BUS=y |
266 | CONFIG_HAVE_MLOCK=y | ||
267 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
268 | # CONFIG_KSM is not set | 299 | # CONFIG_KSM is not set |
269 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 300 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
270 | CONFIG_PPC_4K_PAGES=y | 301 | CONFIG_PPC_4K_PAGES=y |
@@ -384,9 +415,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
384 | # CONFIG_AF_RXRPC is not set | 415 | # CONFIG_AF_RXRPC is not set |
385 | CONFIG_WIRELESS=y | 416 | CONFIG_WIRELESS=y |
386 | # CONFIG_CFG80211 is not set | 417 | # CONFIG_CFG80211 is not set |
387 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
388 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
389 | # CONFIG_WIRELESS_EXT is not set | ||
390 | # CONFIG_LIB80211 is not set | 418 | # CONFIG_LIB80211 is not set |
391 | 419 | ||
392 | # | 420 | # |
@@ -421,6 +449,10 @@ CONFIG_BLK_DEV=y | |||
421 | # CONFIG_BLK_DEV_COW_COMMON is not set | 449 | # CONFIG_BLK_DEV_COW_COMMON is not set |
422 | CONFIG_BLK_DEV_LOOP=y | 450 | CONFIG_BLK_DEV_LOOP=y |
423 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 451 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
452 | |||
453 | # | ||
454 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
455 | # | ||
424 | # CONFIG_BLK_DEV_NBD is not set | 456 | # CONFIG_BLK_DEV_NBD is not set |
425 | CONFIG_BLK_DEV_RAM=y | 457 | CONFIG_BLK_DEV_RAM=y |
426 | CONFIG_BLK_DEV_RAM_COUNT=16 | 458 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -498,8 +530,7 @@ CONFIG_GIANFAR=y | |||
498 | # CONFIG_MV643XX_ETH is not set | 530 | # CONFIG_MV643XX_ETH is not set |
499 | CONFIG_NETDEV_10000=y | 531 | CONFIG_NETDEV_10000=y |
500 | CONFIG_WLAN=y | 532 | CONFIG_WLAN=y |
501 | # CONFIG_WLAN_PRE80211 is not set | 533 | # CONFIG_HOSTAP is not set |
502 | # CONFIG_WLAN_80211 is not set | ||
503 | 534 | ||
504 | # | 535 | # |
505 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 536 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -519,6 +550,7 @@ CONFIG_WLAN=y | |||
519 | CONFIG_INPUT=y | 550 | CONFIG_INPUT=y |
520 | # CONFIG_INPUT_FF_MEMLESS is not set | 551 | # CONFIG_INPUT_FF_MEMLESS is not set |
521 | # CONFIG_INPUT_POLLDEV is not set | 552 | # CONFIG_INPUT_POLLDEV is not set |
553 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
522 | 554 | ||
523 | # | 555 | # |
524 | # Userland interfaces | 556 | # Userland interfaces |
@@ -568,6 +600,7 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y | |||
568 | CONFIG_SERIAL_CORE=y | 600 | CONFIG_SERIAL_CORE=y |
569 | CONFIG_SERIAL_CORE_CONSOLE=y | 601 | CONFIG_SERIAL_CORE_CONSOLE=y |
570 | # CONFIG_SERIAL_OF_PLATFORM is not set | 602 | # CONFIG_SERIAL_OF_PLATFORM is not set |
603 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
571 | CONFIG_UNIX98_PTYS=y | 604 | CONFIG_UNIX98_PTYS=y |
572 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 605 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
573 | CONFIG_LEGACY_PTYS=y | 606 | CONFIG_LEGACY_PTYS=y |
@@ -702,7 +735,9 @@ CONFIG_RTC_INTF_DEV=y | |||
702 | # CONFIG_RTC_DRV_M48T86 is not set | 735 | # CONFIG_RTC_DRV_M48T86 is not set |
703 | # CONFIG_RTC_DRV_M48T35 is not set | 736 | # CONFIG_RTC_DRV_M48T35 is not set |
704 | CONFIG_RTC_DRV_M48T59=y | 737 | CONFIG_RTC_DRV_M48T59=y |
738 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
705 | # CONFIG_RTC_DRV_BQ4802 is not set | 739 | # CONFIG_RTC_DRV_BQ4802 is not set |
740 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
706 | # CONFIG_RTC_DRV_V3020 is not set | 741 | # CONFIG_RTC_DRV_V3020 is not set |
707 | 742 | ||
708 | # | 743 | # |
@@ -948,6 +983,7 @@ CONFIG_PPC_EARLY_DEBUG=y | |||
948 | # CONFIG_PPC_EARLY_DEBUG_44x is not set | 983 | # CONFIG_PPC_EARLY_DEBUG_44x is not set |
949 | # CONFIG_PPC_EARLY_DEBUG_40x is not set | 984 | # CONFIG_PPC_EARLY_DEBUG_40x is not set |
950 | # CONFIG_PPC_EARLY_DEBUG_CPM is not set | 985 | # CONFIG_PPC_EARLY_DEBUG_CPM is not set |
986 | # CONFIG_PPC_EARLY_DEBUG_USBGECKO is not set | ||
951 | 987 | ||
952 | # | 988 | # |
953 | # Security options | 989 | # Security options |
@@ -955,7 +991,11 @@ CONFIG_PPC_EARLY_DEBUG=y | |||
955 | # CONFIG_KEYS is not set | 991 | # CONFIG_KEYS is not set |
956 | # CONFIG_SECURITY is not set | 992 | # CONFIG_SECURITY is not set |
957 | # CONFIG_SECURITYFS is not set | 993 | # CONFIG_SECURITYFS is not set |
958 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 994 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
995 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
996 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
997 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
998 | CONFIG_DEFAULT_SECURITY="" | ||
959 | CONFIG_CRYPTO=y | 999 | CONFIG_CRYPTO=y |
960 | 1000 | ||
961 | # | 1001 | # |
diff --git a/arch/powerpc/configs/85xx/socrates_defconfig b/arch/powerpc/configs/85xx/socrates_defconfig index 7f5ec35bf19..e2edb79cfd1 100644 --- a/arch/powerpc/configs/85xx/socrates_defconfig +++ b/arch/powerpc/configs/85xx/socrates_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:37 2009 | 4 | # Wed Jan 6 09:24:31 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -61,6 +62,8 @@ CONFIG_AUDIT_ARCH=y | |||
61 | CONFIG_GENERIC_BUG=y | 62 | CONFIG_GENERIC_BUG=y |
62 | CONFIG_DTC=y | 63 | CONFIG_DTC=y |
63 | CONFIG_DEFAULT_UIMAGE=y | 64 | CONFIG_DEFAULT_UIMAGE=y |
65 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
66 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
64 | # CONFIG_PPC_DCR_NATIVE is not set | 67 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 68 | # CONFIG_PPC_DCR_MMIO is not set |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 69 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -88,6 +91,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
88 | # | 91 | # |
89 | CONFIG_TREE_RCU=y | 92 | CONFIG_TREE_RCU=y |
90 | # CONFIG_TREE_PREEMPT_RCU is not set | 93 | # CONFIG_TREE_PREEMPT_RCU is not set |
94 | # CONFIG_TINY_RCU is not set | ||
91 | # CONFIG_RCU_TRACE is not set | 95 | # CONFIG_RCU_TRACE is not set |
92 | CONFIG_RCU_FANOUT=32 | 96 | CONFIG_RCU_FANOUT=32 |
93 | # CONFIG_RCU_FANOUT_EXACT is not set | 97 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -174,14 +178,41 @@ CONFIG_LBDAF=y | |||
174 | # IO Schedulers | 178 | # IO Schedulers |
175 | # | 179 | # |
176 | CONFIG_IOSCHED_NOOP=y | 180 | CONFIG_IOSCHED_NOOP=y |
177 | CONFIG_IOSCHED_AS=y | ||
178 | CONFIG_IOSCHED_DEADLINE=y | 181 | CONFIG_IOSCHED_DEADLINE=y |
179 | CONFIG_IOSCHED_CFQ=y | 182 | CONFIG_IOSCHED_CFQ=y |
180 | CONFIG_DEFAULT_AS=y | ||
181 | # CONFIG_DEFAULT_DEADLINE is not set | 183 | # CONFIG_DEFAULT_DEADLINE is not set |
182 | # CONFIG_DEFAULT_CFQ is not set | 184 | CONFIG_DEFAULT_CFQ=y |
183 | # CONFIG_DEFAULT_NOOP is not set | 185 | # CONFIG_DEFAULT_NOOP is not set |
184 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 186 | CONFIG_DEFAULT_IOSCHED="cfq" |
187 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
192 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
195 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
196 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
197 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
198 | # CONFIG_INLINE_READ_LOCK is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
204 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
205 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
206 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
213 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
214 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
215 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
185 | # CONFIG_FREEZER is not set | 216 | # CONFIG_FREEZER is not set |
186 | 217 | ||
187 | # | 218 | # |
@@ -190,7 +221,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
190 | # CONFIG_PPC_CELL is not set | 221 | # CONFIG_PPC_CELL is not set |
191 | # CONFIG_PPC_CELL_NATIVE is not set | 222 | # CONFIG_PPC_CELL_NATIVE is not set |
192 | # CONFIG_PQ2ADS is not set | 223 | # CONFIG_PQ2ADS is not set |
193 | CONFIG_MPC85xx=y | 224 | CONFIG_FSL_SOC_BOOKE=y |
194 | # CONFIG_MPC8540_ADS is not set | 225 | # CONFIG_MPC8540_ADS is not set |
195 | # CONFIG_MPC8560_ADS is not set | 226 | # CONFIG_MPC8560_ADS is not set |
196 | # CONFIG_MPC85xx_CDS is not set | 227 | # CONFIG_MPC85xx_CDS is not set |
@@ -209,6 +240,7 @@ CONFIG_SOCRATES=y | |||
209 | # CONFIG_TQM8560 is not set | 240 | # CONFIG_TQM8560 is not set |
210 | # CONFIG_SBC8548 is not set | 241 | # CONFIG_SBC8548 is not set |
211 | # CONFIG_SBC8560 is not set | 242 | # CONFIG_SBC8560 is not set |
243 | # CONFIG_P4080_DS is not set | ||
212 | # CONFIG_IPIC is not set | 244 | # CONFIG_IPIC is not set |
213 | CONFIG_MPIC=y | 245 | CONFIG_MPIC=y |
214 | # CONFIG_MPIC_WEIRD is not set | 246 | # CONFIG_MPIC_WEIRD is not set |
@@ -252,6 +284,7 @@ CONFIG_MATH_EMULATION=y | |||
252 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 284 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
253 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 285 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
254 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 286 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
287 | CONFIG_SPARSE_IRQ=y | ||
255 | CONFIG_MAX_ACTIVE_REGIONS=32 | 288 | CONFIG_MAX_ACTIVE_REGIONS=32 |
256 | CONFIG_ARCH_FLATMEM_ENABLE=y | 289 | CONFIG_ARCH_FLATMEM_ENABLE=y |
257 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 290 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -268,8 +301,6 @@ CONFIG_MIGRATION=y | |||
268 | CONFIG_ZONE_DMA_FLAG=1 | 301 | CONFIG_ZONE_DMA_FLAG=1 |
269 | CONFIG_BOUNCE=y | 302 | CONFIG_BOUNCE=y |
270 | CONFIG_VIRT_TO_BUS=y | 303 | CONFIG_VIRT_TO_BUS=y |
271 | CONFIG_HAVE_MLOCK=y | ||
272 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
273 | # CONFIG_KSM is not set | 304 | # CONFIG_KSM is not set |
274 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 305 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
275 | CONFIG_PPC_4K_PAGES=y | 306 | CONFIG_PPC_4K_PAGES=y |
@@ -404,9 +435,6 @@ CONFIG_CAN_BCM=y | |||
404 | # CONFIG_AF_RXRPC is not set | 435 | # CONFIG_AF_RXRPC is not set |
405 | CONFIG_WIRELESS=y | 436 | CONFIG_WIRELESS=y |
406 | # CONFIG_CFG80211 is not set | 437 | # CONFIG_CFG80211 is not set |
407 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
408 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
409 | # CONFIG_WIRELESS_EXT is not set | ||
410 | # CONFIG_LIB80211 is not set | 438 | # CONFIG_LIB80211 is not set |
411 | 439 | ||
412 | # | 440 | # |
@@ -540,6 +568,10 @@ CONFIG_BLK_DEV=y | |||
540 | # CONFIG_BLK_DEV_COW_COMMON is not set | 568 | # CONFIG_BLK_DEV_COW_COMMON is not set |
541 | CONFIG_BLK_DEV_LOOP=y | 569 | CONFIG_BLK_DEV_LOOP=y |
542 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 570 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
571 | |||
572 | # | ||
573 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
574 | # | ||
543 | # CONFIG_BLK_DEV_NBD is not set | 575 | # CONFIG_BLK_DEV_NBD is not set |
544 | # CONFIG_BLK_DEV_SX8 is not set | 576 | # CONFIG_BLK_DEV_SX8 is not set |
545 | # CONFIG_BLK_DEV_UB is not set | 577 | # CONFIG_BLK_DEV_UB is not set |
@@ -551,6 +583,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
551 | # CONFIG_ATA_OVER_ETH is not set | 583 | # CONFIG_ATA_OVER_ETH is not set |
552 | # CONFIG_BLK_DEV_HD is not set | 584 | # CONFIG_BLK_DEV_HD is not set |
553 | CONFIG_MISC_DEVICES=y | 585 | CONFIG_MISC_DEVICES=y |
586 | # CONFIG_AD525X_DPOT is not set | ||
554 | # CONFIG_PHANTOM is not set | 587 | # CONFIG_PHANTOM is not set |
555 | # CONFIG_SGI_IOC4 is not set | 588 | # CONFIG_SGI_IOC4 is not set |
556 | # CONFIG_TIFM_CORE is not set | 589 | # CONFIG_TIFM_CORE is not set |
@@ -558,6 +591,8 @@ CONFIG_MISC_DEVICES=y | |||
558 | # CONFIG_ENCLOSURE_SERVICES is not set | 591 | # CONFIG_ENCLOSURE_SERVICES is not set |
559 | # CONFIG_HP_ILO is not set | 592 | # CONFIG_HP_ILO is not set |
560 | # CONFIG_ISL29003 is not set | 593 | # CONFIG_ISL29003 is not set |
594 | # CONFIG_DS1682 is not set | ||
595 | # CONFIG_TI_DAC7512 is not set | ||
561 | # CONFIG_C2PORT is not set | 596 | # CONFIG_C2PORT is not set |
562 | 597 | ||
563 | # | 598 | # |
@@ -621,7 +656,7 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
621 | # | 656 | # |
622 | 657 | ||
623 | # | 658 | # |
624 | # See the help texts for more information. | 659 | # The newer stack is recommended. |
625 | # | 660 | # |
626 | # CONFIG_FIREWIRE is not set | 661 | # CONFIG_FIREWIRE is not set |
627 | # CONFIG_IEEE1394 is not set | 662 | # CONFIG_IEEE1394 is not set |
@@ -710,8 +745,11 @@ CONFIG_GIANFAR=y | |||
710 | # CONFIG_NETDEV_10000 is not set | 745 | # CONFIG_NETDEV_10000 is not set |
711 | # CONFIG_TR is not set | 746 | # CONFIG_TR is not set |
712 | CONFIG_WLAN=y | 747 | CONFIG_WLAN=y |
713 | # CONFIG_WLAN_PRE80211 is not set | 748 | # CONFIG_AIRO is not set |
714 | # CONFIG_WLAN_80211 is not set | 749 | # CONFIG_ATMEL is not set |
750 | # CONFIG_PRISM54 is not set | ||
751 | # CONFIG_USB_ZD1201 is not set | ||
752 | # CONFIG_HOSTAP is not set | ||
715 | 753 | ||
716 | # | 754 | # |
717 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 755 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -734,6 +772,7 @@ CONFIG_WLAN=y | |||
734 | # CONFIG_NETCONSOLE is not set | 772 | # CONFIG_NETCONSOLE is not set |
735 | # CONFIG_NETPOLL is not set | 773 | # CONFIG_NETPOLL is not set |
736 | # CONFIG_NET_POLL_CONTROLLER is not set | 774 | # CONFIG_NET_POLL_CONTROLLER is not set |
775 | # CONFIG_VMXNET3 is not set | ||
737 | # CONFIG_ISDN is not set | 776 | # CONFIG_ISDN is not set |
738 | # CONFIG_PHONE is not set | 777 | # CONFIG_PHONE is not set |
739 | 778 | ||
@@ -743,6 +782,7 @@ CONFIG_WLAN=y | |||
743 | CONFIG_INPUT=y | 782 | CONFIG_INPUT=y |
744 | # CONFIG_INPUT_FF_MEMLESS is not set | 783 | # CONFIG_INPUT_FF_MEMLESS is not set |
745 | # CONFIG_INPUT_POLLDEV is not set | 784 | # CONFIG_INPUT_POLLDEV is not set |
785 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
746 | 786 | ||
747 | # | 787 | # |
748 | # Userland interfaces | 788 | # Userland interfaces |
@@ -768,6 +808,7 @@ CONFIG_INPUT_TOUCHSCREEN=y | |||
768 | # CONFIG_TOUCHSCREEN_AD7879_I2C is not set | 808 | # CONFIG_TOUCHSCREEN_AD7879_I2C is not set |
769 | # CONFIG_TOUCHSCREEN_AD7879_SPI is not set | 809 | # CONFIG_TOUCHSCREEN_AD7879_SPI is not set |
770 | # CONFIG_TOUCHSCREEN_AD7879 is not set | 810 | # CONFIG_TOUCHSCREEN_AD7879 is not set |
811 | # CONFIG_TOUCHSCREEN_DYNAPRO is not set | ||
771 | # CONFIG_TOUCHSCREEN_EETI is not set | 812 | # CONFIG_TOUCHSCREEN_EETI is not set |
772 | # CONFIG_TOUCHSCREEN_FUJITSU is not set | 813 | # CONFIG_TOUCHSCREEN_FUJITSU is not set |
773 | # CONFIG_TOUCHSCREEN_GUNZE is not set | 814 | # CONFIG_TOUCHSCREEN_GUNZE is not set |
@@ -826,6 +867,7 @@ CONFIG_SERIAL_CORE=y | |||
826 | CONFIG_SERIAL_CORE_CONSOLE=y | 867 | CONFIG_SERIAL_CORE_CONSOLE=y |
827 | # CONFIG_SERIAL_JSM is not set | 868 | # CONFIG_SERIAL_JSM is not set |
828 | # CONFIG_SERIAL_OF_PLATFORM is not set | 869 | # CONFIG_SERIAL_OF_PLATFORM is not set |
870 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
829 | CONFIG_UNIX98_PTYS=y | 871 | CONFIG_UNIX98_PTYS=y |
830 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 872 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
831 | CONFIG_LEGACY_PTYS=y | 873 | CONFIG_LEGACY_PTYS=y |
@@ -883,11 +925,6 @@ CONFIG_I2C_MPC=y | |||
883 | # CONFIG_I2C_TINY_USB is not set | 925 | # CONFIG_I2C_TINY_USB is not set |
884 | 926 | ||
885 | # | 927 | # |
886 | # Graphics adapter I2C/DDC channel drivers | ||
887 | # | ||
888 | # CONFIG_I2C_VOODOO3 is not set | ||
889 | |||
890 | # | ||
891 | # Other I2C/SMBus bus drivers | 928 | # Other I2C/SMBus bus drivers |
892 | # | 929 | # |
893 | # CONFIG_I2C_PCA_PLATFORM is not set | 930 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -896,7 +933,6 @@ CONFIG_I2C_MPC=y | |||
896 | # | 933 | # |
897 | # Miscellaneous I2C Chip support | 934 | # Miscellaneous I2C Chip support |
898 | # | 935 | # |
899 | # CONFIG_DS1682 is not set | ||
900 | # CONFIG_SENSORS_TSL2550 is not set | 936 | # CONFIG_SENSORS_TSL2550 is not set |
901 | # CONFIG_I2C_DEBUG_CORE is not set | 937 | # CONFIG_I2C_DEBUG_CORE is not set |
902 | # CONFIG_I2C_DEBUG_ALGO is not set | 938 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -910,6 +946,8 @@ CONFIG_SPI_MASTER=y | |||
910 | # | 946 | # |
911 | # CONFIG_SPI_BITBANG is not set | 947 | # CONFIG_SPI_BITBANG is not set |
912 | # CONFIG_SPI_MPC8xxx is not set | 948 | # CONFIG_SPI_MPC8xxx is not set |
949 | # CONFIG_SPI_XILINX is not set | ||
950 | # CONFIG_SPI_DESIGNWARE is not set | ||
913 | 951 | ||
914 | # | 952 | # |
915 | # SPI Protocol Masters | 953 | # SPI Protocol Masters |
@@ -957,6 +995,7 @@ CONFIG_HWMON_DEBUG_CHIP=y | |||
957 | # CONFIG_SENSORS_IT87 is not set | 995 | # CONFIG_SENSORS_IT87 is not set |
958 | # CONFIG_SENSORS_LM63 is not set | 996 | # CONFIG_SENSORS_LM63 is not set |
959 | # CONFIG_SENSORS_LM70 is not set | 997 | # CONFIG_SENSORS_LM70 is not set |
998 | # CONFIG_SENSORS_LM73 is not set | ||
960 | CONFIG_SENSORS_LM75=y | 999 | CONFIG_SENSORS_LM75=y |
961 | # CONFIG_SENSORS_LM77 is not set | 1000 | # CONFIG_SENSORS_LM77 is not set |
962 | # CONFIG_SENSORS_LM78 is not set | 1001 | # CONFIG_SENSORS_LM78 is not set |
@@ -997,6 +1036,7 @@ CONFIG_SENSORS_W83781D=y | |||
997 | # CONFIG_SENSORS_W83627HF is not set | 1036 | # CONFIG_SENSORS_W83627HF is not set |
998 | # CONFIG_SENSORS_W83627EHF is not set | 1037 | # CONFIG_SENSORS_W83627EHF is not set |
999 | # CONFIG_SENSORS_LIS3_SPI is not set | 1038 | # CONFIG_SENSORS_LIS3_SPI is not set |
1039 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1000 | # CONFIG_THERMAL is not set | 1040 | # CONFIG_THERMAL is not set |
1001 | # CONFIG_WATCHDOG is not set | 1041 | # CONFIG_WATCHDOG is not set |
1002 | CONFIG_SSB_POSSIBLE=y | 1042 | CONFIG_SSB_POSSIBLE=y |
@@ -1015,6 +1055,7 @@ CONFIG_SSB_POSSIBLE=y | |||
1015 | # CONFIG_TWL4030_CORE is not set | 1055 | # CONFIG_TWL4030_CORE is not set |
1016 | # CONFIG_MFD_TMIO is not set | 1056 | # CONFIG_MFD_TMIO is not set |
1017 | # CONFIG_PMIC_DA903X is not set | 1057 | # CONFIG_PMIC_DA903X is not set |
1058 | # CONFIG_PMIC_ADP5520 is not set | ||
1018 | # CONFIG_MFD_WM8400 is not set | 1059 | # CONFIG_MFD_WM8400 is not set |
1019 | # CONFIG_MFD_WM831X is not set | 1060 | # CONFIG_MFD_WM831X is not set |
1020 | # CONFIG_MFD_WM8350_I2C is not set | 1061 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -1022,6 +1063,8 @@ CONFIG_SSB_POSSIBLE=y | |||
1022 | # CONFIG_MFD_MC13783 is not set | 1063 | # CONFIG_MFD_MC13783 is not set |
1023 | # CONFIG_AB3100_CORE is not set | 1064 | # CONFIG_AB3100_CORE is not set |
1024 | # CONFIG_EZX_PCAP is not set | 1065 | # CONFIG_EZX_PCAP is not set |
1066 | # CONFIG_MFD_88PM8607 is not set | ||
1067 | # CONFIG_AB4500_CORE is not set | ||
1025 | # CONFIG_REGULATOR is not set | 1068 | # CONFIG_REGULATOR is not set |
1026 | # CONFIG_MEDIA_SUPPORT is not set | 1069 | # CONFIG_MEDIA_SUPPORT is not set |
1027 | 1070 | ||
@@ -1192,6 +1235,7 @@ CONFIG_USB_MON=y | |||
1192 | CONFIG_USB_EHCI_HCD=y | 1235 | CONFIG_USB_EHCI_HCD=y |
1193 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1236 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1194 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1237 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1238 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1195 | # CONFIG_USB_EHCI_FSL is not set | 1239 | # CONFIG_USB_EHCI_FSL is not set |
1196 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1240 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1197 | # CONFIG_USB_OXU210HP_HCD is not set | 1241 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1318,6 +1362,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1318 | # CONFIG_RTC_DRV_PCF8563 is not set | 1362 | # CONFIG_RTC_DRV_PCF8563 is not set |
1319 | # CONFIG_RTC_DRV_PCF8583 is not set | 1363 | # CONFIG_RTC_DRV_PCF8583 is not set |
1320 | # CONFIG_RTC_DRV_M41T80 is not set | 1364 | # CONFIG_RTC_DRV_M41T80 is not set |
1365 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1321 | # CONFIG_RTC_DRV_S35390A is not set | 1366 | # CONFIG_RTC_DRV_S35390A is not set |
1322 | # CONFIG_RTC_DRV_FM3130 is not set | 1367 | # CONFIG_RTC_DRV_FM3130 is not set |
1323 | # CONFIG_RTC_DRV_RX8581 is not set | 1368 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1347,7 +1392,9 @@ CONFIG_RTC_INTF_DEV=y | |||
1347 | # CONFIG_RTC_DRV_M48T86 is not set | 1392 | # CONFIG_RTC_DRV_M48T86 is not set |
1348 | # CONFIG_RTC_DRV_M48T35 is not set | 1393 | # CONFIG_RTC_DRV_M48T35 is not set |
1349 | # CONFIG_RTC_DRV_M48T59 is not set | 1394 | # CONFIG_RTC_DRV_M48T59 is not set |
1395 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1350 | # CONFIG_RTC_DRV_BQ4802 is not set | 1396 | # CONFIG_RTC_DRV_BQ4802 is not set |
1397 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1351 | # CONFIG_RTC_DRV_V3020 is not set | 1398 | # CONFIG_RTC_DRV_V3020 is not set |
1352 | 1399 | ||
1353 | # | 1400 | # |
@@ -1574,7 +1621,7 @@ CONFIG_FRAME_WARN=1024 | |||
1574 | # CONFIG_DEBUG_KERNEL is not set | 1621 | # CONFIG_DEBUG_KERNEL is not set |
1575 | # CONFIG_SLUB_DEBUG_ON is not set | 1622 | # CONFIG_SLUB_DEBUG_ON is not set |
1576 | # CONFIG_SLUB_STATS is not set | 1623 | # CONFIG_SLUB_STATS is not set |
1577 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1624 | CONFIG_DEBUG_BUGVERBOSE=y |
1578 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1625 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1579 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1626 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1580 | # CONFIG_LATENCYTOP is not set | 1627 | # CONFIG_LATENCYTOP is not set |
@@ -1600,7 +1647,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1600 | # CONFIG_KEYS is not set | 1647 | # CONFIG_KEYS is not set |
1601 | # CONFIG_SECURITY is not set | 1648 | # CONFIG_SECURITY is not set |
1602 | # CONFIG_SECURITYFS is not set | 1649 | # CONFIG_SECURITYFS is not set |
1603 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1650 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1651 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1652 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1653 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1654 | CONFIG_DEFAULT_SECURITY="" | ||
1604 | CONFIG_CRYPTO=y | 1655 | CONFIG_CRYPTO=y |
1605 | 1656 | ||
1606 | # | 1657 | # |
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig index c8327e88a98..ce313259df1 100644 --- a/arch/powerpc/configs/85xx/stx_gp3_defconfig +++ b/arch/powerpc/configs/85xx/stx_gp3_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:38 2009 | 4 | # Wed Jan 6 09:24:32 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -62,6 +63,8 @@ CONFIG_AUDIT_ARCH=y | |||
62 | CONFIG_GENERIC_BUG=y | 63 | CONFIG_GENERIC_BUG=y |
63 | CONFIG_DTC=y | 64 | CONFIG_DTC=y |
64 | CONFIG_DEFAULT_UIMAGE=y | 65 | CONFIG_DEFAULT_UIMAGE=y |
66 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
67 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
65 | # CONFIG_PPC_DCR_NATIVE is not set | 68 | # CONFIG_PPC_DCR_NATIVE is not set |
66 | # CONFIG_PPC_DCR_MMIO is not set | 69 | # CONFIG_PPC_DCR_MMIO is not set |
67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 70 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -89,6 +92,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
89 | # | 92 | # |
90 | CONFIG_TREE_RCU=y | 93 | CONFIG_TREE_RCU=y |
91 | # CONFIG_TREE_PREEMPT_RCU is not set | 94 | # CONFIG_TREE_PREEMPT_RCU is not set |
95 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | 96 | # CONFIG_RCU_TRACE is not set |
93 | CONFIG_RCU_FANOUT=32 | 97 | CONFIG_RCU_FANOUT=32 |
94 | # CONFIG_RCU_FANOUT_EXACT is not set | 98 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -178,14 +182,41 @@ CONFIG_LBDAF=y | |||
178 | # IO Schedulers | 182 | # IO Schedulers |
179 | # | 183 | # |
180 | CONFIG_IOSCHED_NOOP=y | 184 | CONFIG_IOSCHED_NOOP=y |
181 | CONFIG_IOSCHED_AS=y | ||
182 | CONFIG_IOSCHED_DEADLINE=y | 185 | CONFIG_IOSCHED_DEADLINE=y |
183 | CONFIG_IOSCHED_CFQ=y | 186 | CONFIG_IOSCHED_CFQ=y |
184 | # CONFIG_DEFAULT_AS is not set | ||
185 | # CONFIG_DEFAULT_DEADLINE is not set | 187 | # CONFIG_DEFAULT_DEADLINE is not set |
186 | CONFIG_DEFAULT_CFQ=y | 188 | CONFIG_DEFAULT_CFQ=y |
187 | # CONFIG_DEFAULT_NOOP is not set | 189 | # CONFIG_DEFAULT_NOOP is not set |
188 | CONFIG_DEFAULT_IOSCHED="cfq" | 190 | CONFIG_DEFAULT_IOSCHED="cfq" |
191 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
192 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
193 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
194 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
195 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
196 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
197 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
198 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
199 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
200 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
201 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
202 | # CONFIG_INLINE_READ_LOCK is not set | ||
203 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
204 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
205 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
206 | CONFIG_INLINE_READ_UNLOCK=y | ||
207 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
208 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
209 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
210 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
212 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
213 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
214 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
215 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
216 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
217 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
218 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
219 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
189 | # CONFIG_FREEZER is not set | 220 | # CONFIG_FREEZER is not set |
190 | 221 | ||
191 | # | 222 | # |
@@ -194,7 +225,7 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
194 | # CONFIG_PPC_CELL is not set | 225 | # CONFIG_PPC_CELL is not set |
195 | # CONFIG_PPC_CELL_NATIVE is not set | 226 | # CONFIG_PPC_CELL_NATIVE is not set |
196 | # CONFIG_PQ2ADS is not set | 227 | # CONFIG_PQ2ADS is not set |
197 | CONFIG_MPC85xx=y | 228 | CONFIG_FSL_SOC_BOOKE=y |
198 | # CONFIG_MPC8540_ADS is not set | 229 | # CONFIG_MPC8540_ADS is not set |
199 | # CONFIG_MPC8560_ADS is not set | 230 | # CONFIG_MPC8560_ADS is not set |
200 | # CONFIG_MPC85xx_CDS is not set | 231 | # CONFIG_MPC85xx_CDS is not set |
@@ -213,6 +244,7 @@ CONFIG_STX_GP3=y | |||
213 | # CONFIG_TQM8560 is not set | 244 | # CONFIG_TQM8560 is not set |
214 | # CONFIG_SBC8548 is not set | 245 | # CONFIG_SBC8548 is not set |
215 | # CONFIG_SBC8560 is not set | 246 | # CONFIG_SBC8560 is not set |
247 | # CONFIG_P4080_DS is not set | ||
216 | # CONFIG_IPIC is not set | 248 | # CONFIG_IPIC is not set |
217 | CONFIG_MPIC=y | 249 | CONFIG_MPIC=y |
218 | # CONFIG_MPIC_WEIRD is not set | 250 | # CONFIG_MPIC_WEIRD is not set |
@@ -257,6 +289,7 @@ CONFIG_MATH_EMULATION=y | |||
257 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 289 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
258 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 290 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
259 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 291 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
292 | CONFIG_SPARSE_IRQ=y | ||
260 | CONFIG_MAX_ACTIVE_REGIONS=32 | 293 | CONFIG_MAX_ACTIVE_REGIONS=32 |
261 | CONFIG_ARCH_FLATMEM_ENABLE=y | 294 | CONFIG_ARCH_FLATMEM_ENABLE=y |
262 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 295 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -273,8 +306,6 @@ CONFIG_MIGRATION=y | |||
273 | CONFIG_ZONE_DMA_FLAG=1 | 306 | CONFIG_ZONE_DMA_FLAG=1 |
274 | CONFIG_BOUNCE=y | 307 | CONFIG_BOUNCE=y |
275 | CONFIG_VIRT_TO_BUS=y | 308 | CONFIG_VIRT_TO_BUS=y |
276 | CONFIG_HAVE_MLOCK=y | ||
277 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
278 | # CONFIG_KSM is not set | 309 | # CONFIG_KSM is not set |
279 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 310 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
280 | CONFIG_PPC_4K_PAGES=y | 311 | CONFIG_PPC_4K_PAGES=y |
@@ -463,9 +494,6 @@ CONFIG_NET_PKTGEN=y | |||
463 | # CONFIG_AF_RXRPC is not set | 494 | # CONFIG_AF_RXRPC is not set |
464 | CONFIG_WIRELESS=y | 495 | CONFIG_WIRELESS=y |
465 | # CONFIG_CFG80211 is not set | 496 | # CONFIG_CFG80211 is not set |
466 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
467 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
468 | # CONFIG_WIRELESS_EXT is not set | ||
469 | # CONFIG_LIB80211 is not set | 497 | # CONFIG_LIB80211 is not set |
470 | 498 | ||
471 | # | 499 | # |
@@ -513,6 +541,10 @@ CONFIG_BLK_DEV=y | |||
513 | # CONFIG_BLK_DEV_COW_COMMON is not set | 541 | # CONFIG_BLK_DEV_COW_COMMON is not set |
514 | CONFIG_BLK_DEV_LOOP=m | 542 | CONFIG_BLK_DEV_LOOP=m |
515 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 543 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
544 | |||
545 | # | ||
546 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
547 | # | ||
516 | CONFIG_BLK_DEV_NBD=m | 548 | CONFIG_BLK_DEV_NBD=m |
517 | # CONFIG_BLK_DEV_SX8 is not set | 549 | # CONFIG_BLK_DEV_SX8 is not set |
518 | CONFIG_BLK_DEV_RAM=y | 550 | CONFIG_BLK_DEV_RAM=y |
@@ -523,6 +555,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
523 | # CONFIG_ATA_OVER_ETH is not set | 555 | # CONFIG_ATA_OVER_ETH is not set |
524 | # CONFIG_BLK_DEV_HD is not set | 556 | # CONFIG_BLK_DEV_HD is not set |
525 | CONFIG_MISC_DEVICES=y | 557 | CONFIG_MISC_DEVICES=y |
558 | # CONFIG_AD525X_DPOT is not set | ||
526 | # CONFIG_PHANTOM is not set | 559 | # CONFIG_PHANTOM is not set |
527 | # CONFIG_SGI_IOC4 is not set | 560 | # CONFIG_SGI_IOC4 is not set |
528 | # CONFIG_TIFM_CORE is not set | 561 | # CONFIG_TIFM_CORE is not set |
@@ -530,6 +563,7 @@ CONFIG_MISC_DEVICES=y | |||
530 | # CONFIG_ENCLOSURE_SERVICES is not set | 563 | # CONFIG_ENCLOSURE_SERVICES is not set |
531 | # CONFIG_HP_ILO is not set | 564 | # CONFIG_HP_ILO is not set |
532 | # CONFIG_ISL29003 is not set | 565 | # CONFIG_ISL29003 is not set |
566 | # CONFIG_DS1682 is not set | ||
533 | # CONFIG_C2PORT is not set | 567 | # CONFIG_C2PORT is not set |
534 | 568 | ||
535 | # | 569 | # |
@@ -633,7 +667,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
633 | # CONFIG_SCSI_BNX2_ISCSI is not set | 667 | # CONFIG_SCSI_BNX2_ISCSI is not set |
634 | # CONFIG_BE2ISCSI is not set | 668 | # CONFIG_BE2ISCSI is not set |
635 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 669 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
670 | # CONFIG_SCSI_HPSA is not set | ||
636 | # CONFIG_SCSI_3W_9XXX is not set | 671 | # CONFIG_SCSI_3W_9XXX is not set |
672 | # CONFIG_SCSI_3W_SAS is not set | ||
637 | # CONFIG_SCSI_ACARD is not set | 673 | # CONFIG_SCSI_ACARD is not set |
638 | # CONFIG_SCSI_AACRAID is not set | 674 | # CONFIG_SCSI_AACRAID is not set |
639 | # CONFIG_SCSI_AIC7XXX is not set | 675 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -673,6 +709,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
673 | # CONFIG_SCSI_NSP32 is not set | 709 | # CONFIG_SCSI_NSP32 is not set |
674 | # CONFIG_SCSI_DEBUG is not set | 710 | # CONFIG_SCSI_DEBUG is not set |
675 | # CONFIG_SCSI_PMCRAID is not set | 711 | # CONFIG_SCSI_PMCRAID is not set |
712 | # CONFIG_SCSI_PM8001 is not set | ||
676 | # CONFIG_SCSI_SRP is not set | 713 | # CONFIG_SCSI_SRP is not set |
677 | # CONFIG_SCSI_BFA_FC is not set | 714 | # CONFIG_SCSI_BFA_FC is not set |
678 | # CONFIG_SCSI_DH is not set | 715 | # CONFIG_SCSI_DH is not set |
@@ -690,7 +727,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
690 | # | 727 | # |
691 | 728 | ||
692 | # | 729 | # |
693 | # See the help texts for more information. | 730 | # The newer stack is recommended. |
694 | # | 731 | # |
695 | # CONFIG_FIREWIRE is not set | 732 | # CONFIG_FIREWIRE is not set |
696 | # CONFIG_IEEE1394 is not set | 733 | # CONFIG_IEEE1394 is not set |
@@ -797,8 +834,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
797 | # CONFIG_BE2NET is not set | 834 | # CONFIG_BE2NET is not set |
798 | # CONFIG_TR is not set | 835 | # CONFIG_TR is not set |
799 | CONFIG_WLAN=y | 836 | CONFIG_WLAN=y |
800 | # CONFIG_WLAN_PRE80211 is not set | 837 | # CONFIG_AIRO is not set |
801 | # CONFIG_WLAN_80211 is not set | 838 | # CONFIG_ATMEL is not set |
839 | # CONFIG_PRISM54 is not set | ||
840 | # CONFIG_HOSTAP is not set | ||
802 | 841 | ||
803 | # | 842 | # |
804 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 843 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -813,6 +852,7 @@ CONFIG_WLAN=y | |||
813 | # CONFIG_NETCONSOLE is not set | 852 | # CONFIG_NETCONSOLE is not set |
814 | # CONFIG_NETPOLL is not set | 853 | # CONFIG_NETPOLL is not set |
815 | # CONFIG_NET_POLL_CONTROLLER is not set | 854 | # CONFIG_NET_POLL_CONTROLLER is not set |
855 | # CONFIG_VMXNET3 is not set | ||
816 | # CONFIG_ISDN is not set | 856 | # CONFIG_ISDN is not set |
817 | # CONFIG_PHONE is not set | 857 | # CONFIG_PHONE is not set |
818 | 858 | ||
@@ -822,6 +862,7 @@ CONFIG_WLAN=y | |||
822 | CONFIG_INPUT=y | 862 | CONFIG_INPUT=y |
823 | # CONFIG_INPUT_FF_MEMLESS is not set | 863 | # CONFIG_INPUT_FF_MEMLESS is not set |
824 | # CONFIG_INPUT_POLLDEV is not set | 864 | # CONFIG_INPUT_POLLDEV is not set |
865 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
825 | 866 | ||
826 | # | 867 | # |
827 | # Userland interfaces | 868 | # Userland interfaces |
@@ -881,6 +922,7 @@ CONFIG_SERIO_SERPORT=y | |||
881 | CONFIG_SERIO_LIBPS2=y | 922 | CONFIG_SERIO_LIBPS2=y |
882 | # CONFIG_SERIO_RAW is not set | 923 | # CONFIG_SERIO_RAW is not set |
883 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 924 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
925 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
884 | # CONFIG_GAMEPORT is not set | 926 | # CONFIG_GAMEPORT is not set |
885 | 927 | ||
886 | # | 928 | # |
@@ -905,6 +947,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
905 | CONFIG_SERIAL_CPM=y | 947 | CONFIG_SERIAL_CPM=y |
906 | CONFIG_SERIAL_CPM_CONSOLE=y | 948 | CONFIG_SERIAL_CPM_CONSOLE=y |
907 | # CONFIG_SERIAL_JSM is not set | 949 | # CONFIG_SERIAL_JSM is not set |
950 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
908 | CONFIG_UNIX98_PTYS=y | 951 | CONFIG_UNIX98_PTYS=y |
909 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 952 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
910 | CONFIG_LEGACY_PTYS=y | 953 | CONFIG_LEGACY_PTYS=y |
@@ -970,11 +1013,6 @@ CONFIG_I2C_ALGOBIT=m | |||
970 | # CONFIG_I2C_TAOS_EVM is not set | 1013 | # CONFIG_I2C_TAOS_EVM is not set |
971 | 1014 | ||
972 | # | 1015 | # |
973 | # Graphics adapter I2C/DDC channel drivers | ||
974 | # | ||
975 | # CONFIG_I2C_VOODOO3 is not set | ||
976 | |||
977 | # | ||
978 | # Other I2C/SMBus bus drivers | 1016 | # Other I2C/SMBus bus drivers |
979 | # | 1017 | # |
980 | # CONFIG_I2C_PCA_PLATFORM is not set | 1018 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -983,7 +1021,6 @@ CONFIG_I2C_ALGOBIT=m | |||
983 | # | 1021 | # |
984 | # Miscellaneous I2C Chip support | 1022 | # Miscellaneous I2C Chip support |
985 | # | 1023 | # |
986 | # CONFIG_DS1682 is not set | ||
987 | # CONFIG_SENSORS_TSL2550 is not set | 1024 | # CONFIG_SENSORS_TSL2550 is not set |
988 | # CONFIG_I2C_DEBUG_CORE is not set | 1025 | # CONFIG_I2C_DEBUG_CORE is not set |
989 | # CONFIG_I2C_DEBUG_ALGO is not set | 1026 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1016,6 +1053,7 @@ CONFIG_GPIOLIB=y | |||
1016 | # | 1053 | # |
1017 | # PCI GPIO expanders: | 1054 | # PCI GPIO expanders: |
1018 | # | 1055 | # |
1056 | # CONFIG_GPIO_CS5535 is not set | ||
1019 | # CONFIG_GPIO_BT8XX is not set | 1057 | # CONFIG_GPIO_BT8XX is not set |
1020 | # CONFIG_GPIO_LANGWELL is not set | 1058 | # CONFIG_GPIO_LANGWELL is not set |
1021 | 1059 | ||
@@ -1058,6 +1096,7 @@ CONFIG_HWMON=y | |||
1058 | # CONFIG_SENSORS_GL520SM is not set | 1096 | # CONFIG_SENSORS_GL520SM is not set |
1059 | # CONFIG_SENSORS_IT87 is not set | 1097 | # CONFIG_SENSORS_IT87 is not set |
1060 | # CONFIG_SENSORS_LM63 is not set | 1098 | # CONFIG_SENSORS_LM63 is not set |
1099 | # CONFIG_SENSORS_LM73 is not set | ||
1061 | # CONFIG_SENSORS_LM75 is not set | 1100 | # CONFIG_SENSORS_LM75 is not set |
1062 | # CONFIG_SENSORS_LM77 is not set | 1101 | # CONFIG_SENSORS_LM77 is not set |
1063 | # CONFIG_SENSORS_LM78 is not set | 1102 | # CONFIG_SENSORS_LM78 is not set |
@@ -1097,6 +1136,7 @@ CONFIG_HWMON=y | |||
1097 | # CONFIG_SENSORS_W83L786NG is not set | 1136 | # CONFIG_SENSORS_W83L786NG is not set |
1098 | # CONFIG_SENSORS_W83627HF is not set | 1137 | # CONFIG_SENSORS_W83627HF is not set |
1099 | # CONFIG_SENSORS_W83627EHF is not set | 1138 | # CONFIG_SENSORS_W83627EHF is not set |
1139 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1100 | # CONFIG_THERMAL is not set | 1140 | # CONFIG_THERMAL is not set |
1101 | # CONFIG_WATCHDOG is not set | 1141 | # CONFIG_WATCHDOG is not set |
1102 | CONFIG_SSB_POSSIBLE=y | 1142 | CONFIG_SSB_POSSIBLE=y |
@@ -1115,7 +1155,6 @@ CONFIG_SSB_POSSIBLE=y | |||
1115 | # CONFIG_TPS65010 is not set | 1155 | # CONFIG_TPS65010 is not set |
1116 | # CONFIG_MFD_TMIO is not set | 1156 | # CONFIG_MFD_TMIO is not set |
1117 | # CONFIG_MFD_WM8400 is not set | 1157 | # CONFIG_MFD_WM8400 is not set |
1118 | # CONFIG_MFD_WM831X is not set | ||
1119 | # CONFIG_MFD_WM8350_I2C is not set | 1158 | # CONFIG_MFD_WM8350_I2C is not set |
1120 | # CONFIG_MFD_PCF50633 is not set | 1159 | # CONFIG_MFD_PCF50633 is not set |
1121 | # CONFIG_AB3100_CORE is not set | 1160 | # CONFIG_AB3100_CORE is not set |
@@ -1465,7 +1504,11 @@ CONFIG_BDI_SWITCH=y | |||
1465 | # CONFIG_KEYS is not set | 1504 | # CONFIG_KEYS is not set |
1466 | # CONFIG_SECURITY is not set | 1505 | # CONFIG_SECURITY is not set |
1467 | # CONFIG_SECURITYFS is not set | 1506 | # CONFIG_SECURITYFS is not set |
1468 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1507 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1508 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1509 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1510 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1511 | CONFIG_DEFAULT_SECURITY="" | ||
1469 | CONFIG_CRYPTO=y | 1512 | CONFIG_CRYPTO=y |
1470 | 1513 | ||
1471 | # | 1514 | # |
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig index 82563703d5e..0824b466722 100644 --- a/arch/powerpc/configs/85xx/tqm8540_defconfig +++ b/arch/powerpc/configs/85xx/tqm8540_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:39 2009 | 4 | # Wed Jan 6 09:24:33 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -61,6 +62,8 @@ CONFIG_AUDIT_ARCH=y | |||
61 | CONFIG_GENERIC_BUG=y | 62 | CONFIG_GENERIC_BUG=y |
62 | CONFIG_DTC=y | 63 | CONFIG_DTC=y |
63 | CONFIG_DEFAULT_UIMAGE=y | 64 | CONFIG_DEFAULT_UIMAGE=y |
65 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
66 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
64 | # CONFIG_PPC_DCR_NATIVE is not set | 67 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 68 | # CONFIG_PPC_DCR_MMIO is not set |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 69 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -88,6 +91,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
88 | # | 91 | # |
89 | CONFIG_TREE_RCU=y | 92 | CONFIG_TREE_RCU=y |
90 | # CONFIG_TREE_PREEMPT_RCU is not set | 93 | # CONFIG_TREE_PREEMPT_RCU is not set |
94 | # CONFIG_TINY_RCU is not set | ||
91 | # CONFIG_RCU_TRACE is not set | 95 | # CONFIG_RCU_TRACE is not set |
92 | CONFIG_RCU_FANOUT=32 | 96 | CONFIG_RCU_FANOUT=32 |
93 | # CONFIG_RCU_FANOUT_EXACT is not set | 97 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -169,14 +173,41 @@ CONFIG_LBDAF=y | |||
169 | # IO Schedulers | 173 | # IO Schedulers |
170 | # | 174 | # |
171 | CONFIG_IOSCHED_NOOP=y | 175 | CONFIG_IOSCHED_NOOP=y |
172 | CONFIG_IOSCHED_AS=y | ||
173 | CONFIG_IOSCHED_DEADLINE=y | 176 | CONFIG_IOSCHED_DEADLINE=y |
174 | CONFIG_IOSCHED_CFQ=y | 177 | CONFIG_IOSCHED_CFQ=y |
175 | CONFIG_DEFAULT_AS=y | ||
176 | # CONFIG_DEFAULT_DEADLINE is not set | 178 | # CONFIG_DEFAULT_DEADLINE is not set |
177 | # CONFIG_DEFAULT_CFQ is not set | 179 | CONFIG_DEFAULT_CFQ=y |
178 | # CONFIG_DEFAULT_NOOP is not set | 180 | # CONFIG_DEFAULT_NOOP is not set |
179 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 181 | CONFIG_DEFAULT_IOSCHED="cfq" |
182 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
183 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
184 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
185 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
188 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
189 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
190 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
191 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
192 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
193 | # CONFIG_INLINE_READ_LOCK is not set | ||
194 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
195 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
197 | CONFIG_INLINE_READ_UNLOCK=y | ||
198 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
199 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
200 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
201 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
202 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
203 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
206 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
207 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
208 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
209 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
210 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
180 | # CONFIG_FREEZER is not set | 211 | # CONFIG_FREEZER is not set |
181 | 212 | ||
182 | # | 213 | # |
@@ -185,7 +216,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
185 | # CONFIG_PPC_CELL is not set | 216 | # CONFIG_PPC_CELL is not set |
186 | # CONFIG_PPC_CELL_NATIVE is not set | 217 | # CONFIG_PPC_CELL_NATIVE is not set |
187 | # CONFIG_PQ2ADS is not set | 218 | # CONFIG_PQ2ADS is not set |
188 | CONFIG_MPC85xx=y | 219 | CONFIG_FSL_SOC_BOOKE=y |
189 | # CONFIG_MPC8540_ADS is not set | 220 | # CONFIG_MPC8540_ADS is not set |
190 | # CONFIG_MPC8560_ADS is not set | 221 | # CONFIG_MPC8560_ADS is not set |
191 | # CONFIG_MPC85xx_CDS is not set | 222 | # CONFIG_MPC85xx_CDS is not set |
@@ -204,6 +235,7 @@ CONFIG_TQM8540=y | |||
204 | # CONFIG_TQM8560 is not set | 235 | # CONFIG_TQM8560 is not set |
205 | # CONFIG_SBC8548 is not set | 236 | # CONFIG_SBC8548 is not set |
206 | # CONFIG_SBC8560 is not set | 237 | # CONFIG_SBC8560 is not set |
238 | # CONFIG_P4080_DS is not set | ||
207 | CONFIG_TQM85xx=y | 239 | CONFIG_TQM85xx=y |
208 | # CONFIG_IPIC is not set | 240 | # CONFIG_IPIC is not set |
209 | CONFIG_MPIC=y | 241 | CONFIG_MPIC=y |
@@ -248,6 +280,7 @@ CONFIG_MATH_EMULATION=y | |||
248 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 280 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
249 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 281 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
250 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 282 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
283 | CONFIG_SPARSE_IRQ=y | ||
251 | CONFIG_MAX_ACTIVE_REGIONS=32 | 284 | CONFIG_MAX_ACTIVE_REGIONS=32 |
252 | CONFIG_ARCH_FLATMEM_ENABLE=y | 285 | CONFIG_ARCH_FLATMEM_ENABLE=y |
253 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 286 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -264,8 +297,6 @@ CONFIG_MIGRATION=y | |||
264 | CONFIG_ZONE_DMA_FLAG=1 | 297 | CONFIG_ZONE_DMA_FLAG=1 |
265 | CONFIG_BOUNCE=y | 298 | CONFIG_BOUNCE=y |
266 | CONFIG_VIRT_TO_BUS=y | 299 | CONFIG_VIRT_TO_BUS=y |
267 | CONFIG_HAVE_MLOCK=y | ||
268 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
269 | # CONFIG_KSM is not set | 300 | # CONFIG_KSM is not set |
270 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 301 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
271 | CONFIG_PPC_4K_PAGES=y | 302 | CONFIG_PPC_4K_PAGES=y |
@@ -391,9 +422,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
391 | # CONFIG_AF_RXRPC is not set | 422 | # CONFIG_AF_RXRPC is not set |
392 | CONFIG_WIRELESS=y | 423 | CONFIG_WIRELESS=y |
393 | # CONFIG_CFG80211 is not set | 424 | # CONFIG_CFG80211 is not set |
394 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
395 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
396 | # CONFIG_WIRELESS_EXT is not set | ||
397 | # CONFIG_LIB80211 is not set | 425 | # CONFIG_LIB80211 is not set |
398 | 426 | ||
399 | # | 427 | # |
@@ -510,6 +538,10 @@ CONFIG_BLK_DEV=y | |||
510 | # CONFIG_BLK_DEV_COW_COMMON is not set | 538 | # CONFIG_BLK_DEV_COW_COMMON is not set |
511 | CONFIG_BLK_DEV_LOOP=y | 539 | CONFIG_BLK_DEV_LOOP=y |
512 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 540 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
541 | |||
542 | # | ||
543 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
544 | # | ||
513 | # CONFIG_BLK_DEV_NBD is not set | 545 | # CONFIG_BLK_DEV_NBD is not set |
514 | # CONFIG_BLK_DEV_SX8 is not set | 546 | # CONFIG_BLK_DEV_SX8 is not set |
515 | CONFIG_BLK_DEV_RAM=y | 547 | CONFIG_BLK_DEV_RAM=y |
@@ -520,6 +552,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
520 | # CONFIG_ATA_OVER_ETH is not set | 552 | # CONFIG_ATA_OVER_ETH is not set |
521 | # CONFIG_BLK_DEV_HD is not set | 553 | # CONFIG_BLK_DEV_HD is not set |
522 | CONFIG_MISC_DEVICES=y | 554 | CONFIG_MISC_DEVICES=y |
555 | # CONFIG_AD525X_DPOT is not set | ||
523 | # CONFIG_PHANTOM is not set | 556 | # CONFIG_PHANTOM is not set |
524 | # CONFIG_SGI_IOC4 is not set | 557 | # CONFIG_SGI_IOC4 is not set |
525 | # CONFIG_TIFM_CORE is not set | 558 | # CONFIG_TIFM_CORE is not set |
@@ -527,6 +560,7 @@ CONFIG_MISC_DEVICES=y | |||
527 | # CONFIG_ENCLOSURE_SERVICES is not set | 560 | # CONFIG_ENCLOSURE_SERVICES is not set |
528 | # CONFIG_HP_ILO is not set | 561 | # CONFIG_HP_ILO is not set |
529 | # CONFIG_ISL29003 is not set | 562 | # CONFIG_ISL29003 is not set |
563 | # CONFIG_DS1682 is not set | ||
530 | # CONFIG_C2PORT is not set | 564 | # CONFIG_C2PORT is not set |
531 | 565 | ||
532 | # | 566 | # |
@@ -615,7 +649,7 @@ CONFIG_BLK_DEV_IDEDMA=y | |||
615 | # | 649 | # |
616 | 650 | ||
617 | # | 651 | # |
618 | # See the help texts for more information. | 652 | # The newer stack is recommended. |
619 | # | 653 | # |
620 | # CONFIG_FIREWIRE is not set | 654 | # CONFIG_FIREWIRE is not set |
621 | # CONFIG_IEEE1394 is not set | 655 | # CONFIG_IEEE1394 is not set |
@@ -738,8 +772,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
738 | # CONFIG_BE2NET is not set | 772 | # CONFIG_BE2NET is not set |
739 | # CONFIG_TR is not set | 773 | # CONFIG_TR is not set |
740 | CONFIG_WLAN=y | 774 | CONFIG_WLAN=y |
741 | # CONFIG_WLAN_PRE80211 is not set | 775 | # CONFIG_AIRO is not set |
742 | # CONFIG_WLAN_80211 is not set | 776 | # CONFIG_ATMEL is not set |
777 | # CONFIG_PRISM54 is not set | ||
778 | # CONFIG_HOSTAP is not set | ||
743 | 779 | ||
744 | # | 780 | # |
745 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 781 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -752,6 +788,7 @@ CONFIG_WLAN=y | |||
752 | # CONFIG_NETCONSOLE is not set | 788 | # CONFIG_NETCONSOLE is not set |
753 | # CONFIG_NETPOLL is not set | 789 | # CONFIG_NETPOLL is not set |
754 | # CONFIG_NET_POLL_CONTROLLER is not set | 790 | # CONFIG_NET_POLL_CONTROLLER is not set |
791 | # CONFIG_VMXNET3 is not set | ||
755 | # CONFIG_ISDN is not set | 792 | # CONFIG_ISDN is not set |
756 | # CONFIG_PHONE is not set | 793 | # CONFIG_PHONE is not set |
757 | 794 | ||
@@ -761,6 +798,7 @@ CONFIG_WLAN=y | |||
761 | CONFIG_INPUT=y | 798 | CONFIG_INPUT=y |
762 | # CONFIG_INPUT_FF_MEMLESS is not set | 799 | # CONFIG_INPUT_FF_MEMLESS is not set |
763 | # CONFIG_INPUT_POLLDEV is not set | 800 | # CONFIG_INPUT_POLLDEV is not set |
801 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
764 | 802 | ||
765 | # | 803 | # |
766 | # Userland interfaces | 804 | # Userland interfaces |
@@ -813,6 +851,7 @@ CONFIG_SERIAL_CORE=y | |||
813 | CONFIG_SERIAL_CORE_CONSOLE=y | 851 | CONFIG_SERIAL_CORE_CONSOLE=y |
814 | # CONFIG_SERIAL_JSM is not set | 852 | # CONFIG_SERIAL_JSM is not set |
815 | # CONFIG_SERIAL_OF_PLATFORM is not set | 853 | # CONFIG_SERIAL_OF_PLATFORM is not set |
854 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
816 | CONFIG_UNIX98_PTYS=y | 855 | CONFIG_UNIX98_PTYS=y |
817 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 856 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
818 | CONFIG_LEGACY_PTYS=y | 857 | CONFIG_LEGACY_PTYS=y |
@@ -871,11 +910,6 @@ CONFIG_I2C_MPC=y | |||
871 | # CONFIG_I2C_TAOS_EVM is not set | 910 | # CONFIG_I2C_TAOS_EVM is not set |
872 | 911 | ||
873 | # | 912 | # |
874 | # Graphics adapter I2C/DDC channel drivers | ||
875 | # | ||
876 | # CONFIG_I2C_VOODOO3 is not set | ||
877 | |||
878 | # | ||
879 | # Other I2C/SMBus bus drivers | 913 | # Other I2C/SMBus bus drivers |
880 | # | 914 | # |
881 | # CONFIG_I2C_PCA_PLATFORM is not set | 915 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -883,7 +917,6 @@ CONFIG_I2C_MPC=y | |||
883 | # | 917 | # |
884 | # Miscellaneous I2C Chip support | 918 | # Miscellaneous I2C Chip support |
885 | # | 919 | # |
886 | # CONFIG_DS1682 is not set | ||
887 | # CONFIG_SENSORS_TSL2550 is not set | 920 | # CONFIG_SENSORS_TSL2550 is not set |
888 | # CONFIG_I2C_DEBUG_CORE is not set | 921 | # CONFIG_I2C_DEBUG_CORE is not set |
889 | # CONFIG_I2C_DEBUG_ALGO is not set | 922 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -929,6 +962,7 @@ CONFIG_HWMON_DEBUG_CHIP=y | |||
929 | # CONFIG_SENSORS_GL520SM is not set | 962 | # CONFIG_SENSORS_GL520SM is not set |
930 | # CONFIG_SENSORS_IT87 is not set | 963 | # CONFIG_SENSORS_IT87 is not set |
931 | # CONFIG_SENSORS_LM63 is not set | 964 | # CONFIG_SENSORS_LM63 is not set |
965 | # CONFIG_SENSORS_LM73 is not set | ||
932 | CONFIG_SENSORS_LM75=y | 966 | CONFIG_SENSORS_LM75=y |
933 | # CONFIG_SENSORS_LM77 is not set | 967 | # CONFIG_SENSORS_LM77 is not set |
934 | # CONFIG_SENSORS_LM78 is not set | 968 | # CONFIG_SENSORS_LM78 is not set |
@@ -967,6 +1001,7 @@ CONFIG_SENSORS_LM75=y | |||
967 | # CONFIG_SENSORS_W83L786NG is not set | 1001 | # CONFIG_SENSORS_W83L786NG is not set |
968 | # CONFIG_SENSORS_W83627HF is not set | 1002 | # CONFIG_SENSORS_W83627HF is not set |
969 | # CONFIG_SENSORS_W83627EHF is not set | 1003 | # CONFIG_SENSORS_W83627EHF is not set |
1004 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
970 | # CONFIG_THERMAL is not set | 1005 | # CONFIG_THERMAL is not set |
971 | # CONFIG_WATCHDOG is not set | 1006 | # CONFIG_WATCHDOG is not set |
972 | CONFIG_SSB_POSSIBLE=y | 1007 | CONFIG_SSB_POSSIBLE=y |
@@ -985,11 +1020,13 @@ CONFIG_SSB_POSSIBLE=y | |||
985 | # CONFIG_TWL4030_CORE is not set | 1020 | # CONFIG_TWL4030_CORE is not set |
986 | # CONFIG_MFD_TMIO is not set | 1021 | # CONFIG_MFD_TMIO is not set |
987 | # CONFIG_PMIC_DA903X is not set | 1022 | # CONFIG_PMIC_DA903X is not set |
1023 | # CONFIG_PMIC_ADP5520 is not set | ||
988 | # CONFIG_MFD_WM8400 is not set | 1024 | # CONFIG_MFD_WM8400 is not set |
989 | # CONFIG_MFD_WM831X is not set | 1025 | # CONFIG_MFD_WM831X is not set |
990 | # CONFIG_MFD_WM8350_I2C is not set | 1026 | # CONFIG_MFD_WM8350_I2C is not set |
991 | # CONFIG_MFD_PCF50633 is not set | 1027 | # CONFIG_MFD_PCF50633 is not set |
992 | # CONFIG_AB3100_CORE is not set | 1028 | # CONFIG_AB3100_CORE is not set |
1029 | # CONFIG_MFD_88PM8607 is not set | ||
993 | # CONFIG_REGULATOR is not set | 1030 | # CONFIG_REGULATOR is not set |
994 | # CONFIG_MEDIA_SUPPORT is not set | 1031 | # CONFIG_MEDIA_SUPPORT is not set |
995 | 1032 | ||
@@ -1220,7 +1257,7 @@ CONFIG_FRAME_WARN=1024 | |||
1220 | # CONFIG_DEBUG_KERNEL is not set | 1257 | # CONFIG_DEBUG_KERNEL is not set |
1221 | # CONFIG_SLUB_DEBUG_ON is not set | 1258 | # CONFIG_SLUB_DEBUG_ON is not set |
1222 | # CONFIG_SLUB_STATS is not set | 1259 | # CONFIG_SLUB_STATS is not set |
1223 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1260 | CONFIG_DEBUG_BUGVERBOSE=y |
1224 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1261 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1225 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1262 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1226 | # CONFIG_LATENCYTOP is not set | 1263 | # CONFIG_LATENCYTOP is not set |
@@ -1246,7 +1283,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1246 | # CONFIG_KEYS is not set | 1283 | # CONFIG_KEYS is not set |
1247 | # CONFIG_SECURITY is not set | 1284 | # CONFIG_SECURITY is not set |
1248 | # CONFIG_SECURITYFS is not set | 1285 | # CONFIG_SECURITYFS is not set |
1249 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1286 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1287 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1288 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1289 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1290 | CONFIG_DEFAULT_SECURITY="" | ||
1250 | CONFIG_CRYPTO=y | 1291 | CONFIG_CRYPTO=y |
1251 | 1292 | ||
1252 | # | 1293 | # |
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig index 91d85d73382..2137be4100e 100644 --- a/arch/powerpc/configs/85xx/tqm8541_defconfig +++ b/arch/powerpc/configs/85xx/tqm8541_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:40 2009 | 4 | # Wed Jan 6 09:24:34 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -62,6 +63,8 @@ CONFIG_AUDIT_ARCH=y | |||
62 | CONFIG_GENERIC_BUG=y | 63 | CONFIG_GENERIC_BUG=y |
63 | CONFIG_DTC=y | 64 | CONFIG_DTC=y |
64 | CONFIG_DEFAULT_UIMAGE=y | 65 | CONFIG_DEFAULT_UIMAGE=y |
66 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
67 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
65 | # CONFIG_PPC_DCR_NATIVE is not set | 68 | # CONFIG_PPC_DCR_NATIVE is not set |
66 | # CONFIG_PPC_DCR_MMIO is not set | 69 | # CONFIG_PPC_DCR_MMIO is not set |
67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 70 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -89,6 +92,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
89 | # | 92 | # |
90 | CONFIG_TREE_RCU=y | 93 | CONFIG_TREE_RCU=y |
91 | # CONFIG_TREE_PREEMPT_RCU is not set | 94 | # CONFIG_TREE_PREEMPT_RCU is not set |
95 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | 96 | # CONFIG_RCU_TRACE is not set |
93 | CONFIG_RCU_FANOUT=32 | 97 | CONFIG_RCU_FANOUT=32 |
94 | # CONFIG_RCU_FANOUT_EXACT is not set | 98 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -171,14 +175,41 @@ CONFIG_LBDAF=y | |||
171 | # IO Schedulers | 175 | # IO Schedulers |
172 | # | 176 | # |
173 | CONFIG_IOSCHED_NOOP=y | 177 | CONFIG_IOSCHED_NOOP=y |
174 | CONFIG_IOSCHED_AS=y | ||
175 | CONFIG_IOSCHED_DEADLINE=y | 178 | CONFIG_IOSCHED_DEADLINE=y |
176 | CONFIG_IOSCHED_CFQ=y | 179 | CONFIG_IOSCHED_CFQ=y |
177 | CONFIG_DEFAULT_AS=y | ||
178 | # CONFIG_DEFAULT_DEADLINE is not set | 180 | # CONFIG_DEFAULT_DEADLINE is not set |
179 | # CONFIG_DEFAULT_CFQ is not set | 181 | CONFIG_DEFAULT_CFQ=y |
180 | # CONFIG_DEFAULT_NOOP is not set | 182 | # CONFIG_DEFAULT_NOOP is not set |
181 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 183 | CONFIG_DEFAULT_IOSCHED="cfq" |
184 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
185 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
190 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
191 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
192 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
194 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
195 | # CONFIG_INLINE_READ_LOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
199 | CONFIG_INLINE_READ_UNLOCK=y | ||
200 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
201 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
202 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
203 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
208 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
209 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
210 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
212 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
182 | # CONFIG_FREEZER is not set | 213 | # CONFIG_FREEZER is not set |
183 | 214 | ||
184 | # | 215 | # |
@@ -187,7 +218,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
187 | # CONFIG_PPC_CELL is not set | 218 | # CONFIG_PPC_CELL is not set |
188 | # CONFIG_PPC_CELL_NATIVE is not set | 219 | # CONFIG_PPC_CELL_NATIVE is not set |
189 | # CONFIG_PQ2ADS is not set | 220 | # CONFIG_PQ2ADS is not set |
190 | CONFIG_MPC85xx=y | 221 | CONFIG_FSL_SOC_BOOKE=y |
191 | # CONFIG_MPC8540_ADS is not set | 222 | # CONFIG_MPC8540_ADS is not set |
192 | # CONFIG_MPC8560_ADS is not set | 223 | # CONFIG_MPC8560_ADS is not set |
193 | # CONFIG_MPC85xx_CDS is not set | 224 | # CONFIG_MPC85xx_CDS is not set |
@@ -206,6 +237,7 @@ CONFIG_TQM8541=y | |||
206 | # CONFIG_TQM8560 is not set | 237 | # CONFIG_TQM8560 is not set |
207 | # CONFIG_SBC8548 is not set | 238 | # CONFIG_SBC8548 is not set |
208 | # CONFIG_SBC8560 is not set | 239 | # CONFIG_SBC8560 is not set |
240 | # CONFIG_P4080_DS is not set | ||
209 | CONFIG_TQM85xx=y | 241 | CONFIG_TQM85xx=y |
210 | # CONFIG_IPIC is not set | 242 | # CONFIG_IPIC is not set |
211 | CONFIG_MPIC=y | 243 | CONFIG_MPIC=y |
@@ -251,6 +283,7 @@ CONFIG_MATH_EMULATION=y | |||
251 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
252 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 284 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
253 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 285 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
286 | CONFIG_SPARSE_IRQ=y | ||
254 | CONFIG_MAX_ACTIVE_REGIONS=32 | 287 | CONFIG_MAX_ACTIVE_REGIONS=32 |
255 | CONFIG_ARCH_FLATMEM_ENABLE=y | 288 | CONFIG_ARCH_FLATMEM_ENABLE=y |
256 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 289 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -267,8 +300,6 @@ CONFIG_MIGRATION=y | |||
267 | CONFIG_ZONE_DMA_FLAG=1 | 300 | CONFIG_ZONE_DMA_FLAG=1 |
268 | CONFIG_BOUNCE=y | 301 | CONFIG_BOUNCE=y |
269 | CONFIG_VIRT_TO_BUS=y | 302 | CONFIG_VIRT_TO_BUS=y |
270 | CONFIG_HAVE_MLOCK=y | ||
271 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
272 | # CONFIG_KSM is not set | 303 | # CONFIG_KSM is not set |
273 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 304 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
274 | CONFIG_PPC_4K_PAGES=y | 305 | CONFIG_PPC_4K_PAGES=y |
@@ -394,9 +425,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
394 | # CONFIG_AF_RXRPC is not set | 425 | # CONFIG_AF_RXRPC is not set |
395 | CONFIG_WIRELESS=y | 426 | CONFIG_WIRELESS=y |
396 | # CONFIG_CFG80211 is not set | 427 | # CONFIG_CFG80211 is not set |
397 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
398 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
399 | # CONFIG_WIRELESS_EXT is not set | ||
400 | # CONFIG_LIB80211 is not set | 428 | # CONFIG_LIB80211 is not set |
401 | 429 | ||
402 | # | 430 | # |
@@ -514,6 +542,10 @@ CONFIG_BLK_DEV=y | |||
514 | # CONFIG_BLK_DEV_COW_COMMON is not set | 542 | # CONFIG_BLK_DEV_COW_COMMON is not set |
515 | CONFIG_BLK_DEV_LOOP=y | 543 | CONFIG_BLK_DEV_LOOP=y |
516 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 544 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
545 | |||
546 | # | ||
547 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
548 | # | ||
517 | # CONFIG_BLK_DEV_NBD is not set | 549 | # CONFIG_BLK_DEV_NBD is not set |
518 | # CONFIG_BLK_DEV_SX8 is not set | 550 | # CONFIG_BLK_DEV_SX8 is not set |
519 | CONFIG_BLK_DEV_RAM=y | 551 | CONFIG_BLK_DEV_RAM=y |
@@ -524,6 +556,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
524 | # CONFIG_ATA_OVER_ETH is not set | 556 | # CONFIG_ATA_OVER_ETH is not set |
525 | # CONFIG_BLK_DEV_HD is not set | 557 | # CONFIG_BLK_DEV_HD is not set |
526 | CONFIG_MISC_DEVICES=y | 558 | CONFIG_MISC_DEVICES=y |
559 | # CONFIG_AD525X_DPOT is not set | ||
527 | # CONFIG_PHANTOM is not set | 560 | # CONFIG_PHANTOM is not set |
528 | # CONFIG_SGI_IOC4 is not set | 561 | # CONFIG_SGI_IOC4 is not set |
529 | # CONFIG_TIFM_CORE is not set | 562 | # CONFIG_TIFM_CORE is not set |
@@ -531,6 +564,7 @@ CONFIG_MISC_DEVICES=y | |||
531 | # CONFIG_ENCLOSURE_SERVICES is not set | 564 | # CONFIG_ENCLOSURE_SERVICES is not set |
532 | # CONFIG_HP_ILO is not set | 565 | # CONFIG_HP_ILO is not set |
533 | # CONFIG_ISL29003 is not set | 566 | # CONFIG_ISL29003 is not set |
567 | # CONFIG_DS1682 is not set | ||
534 | # CONFIG_C2PORT is not set | 568 | # CONFIG_C2PORT is not set |
535 | 569 | ||
536 | # | 570 | # |
@@ -619,7 +653,7 @@ CONFIG_BLK_DEV_IDEDMA=y | |||
619 | # | 653 | # |
620 | 654 | ||
621 | # | 655 | # |
622 | # See the help texts for more information. | 656 | # The newer stack is recommended. |
623 | # | 657 | # |
624 | # CONFIG_FIREWIRE is not set | 658 | # CONFIG_FIREWIRE is not set |
625 | # CONFIG_IEEE1394 is not set | 659 | # CONFIG_IEEE1394 is not set |
@@ -743,8 +777,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
743 | # CONFIG_BE2NET is not set | 777 | # CONFIG_BE2NET is not set |
744 | # CONFIG_TR is not set | 778 | # CONFIG_TR is not set |
745 | CONFIG_WLAN=y | 779 | CONFIG_WLAN=y |
746 | # CONFIG_WLAN_PRE80211 is not set | 780 | # CONFIG_AIRO is not set |
747 | # CONFIG_WLAN_80211 is not set | 781 | # CONFIG_ATMEL is not set |
782 | # CONFIG_PRISM54 is not set | ||
783 | # CONFIG_HOSTAP is not set | ||
748 | 784 | ||
749 | # | 785 | # |
750 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 786 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -757,6 +793,7 @@ CONFIG_WLAN=y | |||
757 | # CONFIG_NETCONSOLE is not set | 793 | # CONFIG_NETCONSOLE is not set |
758 | # CONFIG_NETPOLL is not set | 794 | # CONFIG_NETPOLL is not set |
759 | # CONFIG_NET_POLL_CONTROLLER is not set | 795 | # CONFIG_NET_POLL_CONTROLLER is not set |
796 | # CONFIG_VMXNET3 is not set | ||
760 | # CONFIG_ISDN is not set | 797 | # CONFIG_ISDN is not set |
761 | # CONFIG_PHONE is not set | 798 | # CONFIG_PHONE is not set |
762 | 799 | ||
@@ -766,6 +803,7 @@ CONFIG_WLAN=y | |||
766 | CONFIG_INPUT=y | 803 | CONFIG_INPUT=y |
767 | # CONFIG_INPUT_FF_MEMLESS is not set | 804 | # CONFIG_INPUT_FF_MEMLESS is not set |
768 | # CONFIG_INPUT_POLLDEV is not set | 805 | # CONFIG_INPUT_POLLDEV is not set |
806 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
769 | 807 | ||
770 | # | 808 | # |
771 | # Userland interfaces | 809 | # Userland interfaces |
@@ -820,6 +858,7 @@ CONFIG_SERIAL_CPM=y | |||
820 | CONFIG_SERIAL_CPM_CONSOLE=y | 858 | CONFIG_SERIAL_CPM_CONSOLE=y |
821 | # CONFIG_SERIAL_JSM is not set | 859 | # CONFIG_SERIAL_JSM is not set |
822 | # CONFIG_SERIAL_OF_PLATFORM is not set | 860 | # CONFIG_SERIAL_OF_PLATFORM is not set |
861 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
823 | CONFIG_UNIX98_PTYS=y | 862 | CONFIG_UNIX98_PTYS=y |
824 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 863 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
825 | CONFIG_LEGACY_PTYS=y | 864 | CONFIG_LEGACY_PTYS=y |
@@ -881,11 +920,6 @@ CONFIG_I2C_MPC=y | |||
881 | # CONFIG_I2C_TAOS_EVM is not set | 920 | # CONFIG_I2C_TAOS_EVM is not set |
882 | 921 | ||
883 | # | 922 | # |
884 | # Graphics adapter I2C/DDC channel drivers | ||
885 | # | ||
886 | # CONFIG_I2C_VOODOO3 is not set | ||
887 | |||
888 | # | ||
889 | # Other I2C/SMBus bus drivers | 923 | # Other I2C/SMBus bus drivers |
890 | # | 924 | # |
891 | # CONFIG_I2C_PCA_PLATFORM is not set | 925 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -893,7 +927,6 @@ CONFIG_I2C_MPC=y | |||
893 | # | 927 | # |
894 | # Miscellaneous I2C Chip support | 928 | # Miscellaneous I2C Chip support |
895 | # | 929 | # |
896 | # CONFIG_DS1682 is not set | ||
897 | # CONFIG_SENSORS_TSL2550 is not set | 930 | # CONFIG_SENSORS_TSL2550 is not set |
898 | # CONFIG_I2C_DEBUG_CORE is not set | 931 | # CONFIG_I2C_DEBUG_CORE is not set |
899 | # CONFIG_I2C_DEBUG_ALGO is not set | 932 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -925,6 +958,7 @@ CONFIG_GPIOLIB=y | |||
925 | # | 958 | # |
926 | # PCI GPIO expanders: | 959 | # PCI GPIO expanders: |
927 | # | 960 | # |
961 | # CONFIG_GPIO_CS5535 is not set | ||
928 | # CONFIG_GPIO_BT8XX is not set | 962 | # CONFIG_GPIO_BT8XX is not set |
929 | # CONFIG_GPIO_LANGWELL is not set | 963 | # CONFIG_GPIO_LANGWELL is not set |
930 | 964 | ||
@@ -967,6 +1001,7 @@ CONFIG_HWMON_DEBUG_CHIP=y | |||
967 | # CONFIG_SENSORS_GL520SM is not set | 1001 | # CONFIG_SENSORS_GL520SM is not set |
968 | # CONFIG_SENSORS_IT87 is not set | 1002 | # CONFIG_SENSORS_IT87 is not set |
969 | # CONFIG_SENSORS_LM63 is not set | 1003 | # CONFIG_SENSORS_LM63 is not set |
1004 | # CONFIG_SENSORS_LM73 is not set | ||
970 | CONFIG_SENSORS_LM75=y | 1005 | CONFIG_SENSORS_LM75=y |
971 | # CONFIG_SENSORS_LM77 is not set | 1006 | # CONFIG_SENSORS_LM77 is not set |
972 | # CONFIG_SENSORS_LM78 is not set | 1007 | # CONFIG_SENSORS_LM78 is not set |
@@ -1006,6 +1041,7 @@ CONFIG_SENSORS_LM75=y | |||
1006 | # CONFIG_SENSORS_W83L786NG is not set | 1041 | # CONFIG_SENSORS_W83L786NG is not set |
1007 | # CONFIG_SENSORS_W83627HF is not set | 1042 | # CONFIG_SENSORS_W83627HF is not set |
1008 | # CONFIG_SENSORS_W83627EHF is not set | 1043 | # CONFIG_SENSORS_W83627EHF is not set |
1044 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1009 | # CONFIG_THERMAL is not set | 1045 | # CONFIG_THERMAL is not set |
1010 | # CONFIG_WATCHDOG is not set | 1046 | # CONFIG_WATCHDOG is not set |
1011 | CONFIG_SSB_POSSIBLE=y | 1047 | CONFIG_SSB_POSSIBLE=y |
@@ -1025,11 +1061,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1025 | # CONFIG_TWL4030_CORE is not set | 1061 | # CONFIG_TWL4030_CORE is not set |
1026 | # CONFIG_MFD_TMIO is not set | 1062 | # CONFIG_MFD_TMIO is not set |
1027 | # CONFIG_PMIC_DA903X is not set | 1063 | # CONFIG_PMIC_DA903X is not set |
1064 | # CONFIG_PMIC_ADP5520 is not set | ||
1028 | # CONFIG_MFD_WM8400 is not set | 1065 | # CONFIG_MFD_WM8400 is not set |
1029 | # CONFIG_MFD_WM831X is not set | 1066 | # CONFIG_MFD_WM831X is not set |
1030 | # CONFIG_MFD_WM8350_I2C is not set | 1067 | # CONFIG_MFD_WM8350_I2C is not set |
1031 | # CONFIG_MFD_PCF50633 is not set | 1068 | # CONFIG_MFD_PCF50633 is not set |
1032 | # CONFIG_AB3100_CORE is not set | 1069 | # CONFIG_AB3100_CORE is not set |
1070 | # CONFIG_MFD_88PM8607 is not set | ||
1033 | # CONFIG_REGULATOR is not set | 1071 | # CONFIG_REGULATOR is not set |
1034 | # CONFIG_MEDIA_SUPPORT is not set | 1072 | # CONFIG_MEDIA_SUPPORT is not set |
1035 | 1073 | ||
@@ -1260,7 +1298,7 @@ CONFIG_FRAME_WARN=1024 | |||
1260 | # CONFIG_DEBUG_KERNEL is not set | 1298 | # CONFIG_DEBUG_KERNEL is not set |
1261 | # CONFIG_SLUB_DEBUG_ON is not set | 1299 | # CONFIG_SLUB_DEBUG_ON is not set |
1262 | # CONFIG_SLUB_STATS is not set | 1300 | # CONFIG_SLUB_STATS is not set |
1263 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1301 | CONFIG_DEBUG_BUGVERBOSE=y |
1264 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1302 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1265 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1303 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1266 | # CONFIG_LATENCYTOP is not set | 1304 | # CONFIG_LATENCYTOP is not set |
@@ -1286,7 +1324,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1286 | # CONFIG_KEYS is not set | 1324 | # CONFIG_KEYS is not set |
1287 | # CONFIG_SECURITY is not set | 1325 | # CONFIG_SECURITY is not set |
1288 | # CONFIG_SECURITYFS is not set | 1326 | # CONFIG_SECURITYFS is not set |
1289 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1327 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1328 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1329 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1330 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1331 | CONFIG_DEFAULT_SECURITY="" | ||
1290 | CONFIG_CRYPTO=y | 1332 | CONFIG_CRYPTO=y |
1291 | 1333 | ||
1292 | # | 1334 | # |
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig index debe268f43d..5cc89aac3fe 100644 --- a/arch/powerpc/configs/85xx/tqm8548_defconfig +++ b/arch/powerpc/configs/85xx/tqm8548_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:41 2009 | 4 | # Wed Jan 6 09:24:35 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -61,6 +62,8 @@ CONFIG_AUDIT_ARCH=y | |||
61 | CONFIG_GENERIC_BUG=y | 62 | CONFIG_GENERIC_BUG=y |
62 | CONFIG_DTC=y | 63 | CONFIG_DTC=y |
63 | CONFIG_DEFAULT_UIMAGE=y | 64 | CONFIG_DEFAULT_UIMAGE=y |
65 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
66 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
64 | # CONFIG_PPC_DCR_NATIVE is not set | 67 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 68 | # CONFIG_PPC_DCR_MMIO is not set |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 69 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -88,6 +91,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
88 | # | 91 | # |
89 | CONFIG_TREE_RCU=y | 92 | CONFIG_TREE_RCU=y |
90 | # CONFIG_TREE_PREEMPT_RCU is not set | 93 | # CONFIG_TREE_PREEMPT_RCU is not set |
94 | # CONFIG_TINY_RCU is not set | ||
91 | # CONFIG_RCU_TRACE is not set | 95 | # CONFIG_RCU_TRACE is not set |
92 | CONFIG_RCU_FANOUT=32 | 96 | CONFIG_RCU_FANOUT=32 |
93 | # CONFIG_RCU_FANOUT_EXACT is not set | 97 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -177,14 +181,41 @@ CONFIG_LBDAF=y | |||
177 | # IO Schedulers | 181 | # IO Schedulers |
178 | # | 182 | # |
179 | CONFIG_IOSCHED_NOOP=y | 183 | CONFIG_IOSCHED_NOOP=y |
180 | CONFIG_IOSCHED_AS=y | ||
181 | CONFIG_IOSCHED_DEADLINE=y | 184 | CONFIG_IOSCHED_DEADLINE=y |
182 | CONFIG_IOSCHED_CFQ=y | 185 | CONFIG_IOSCHED_CFQ=y |
183 | CONFIG_DEFAULT_AS=y | ||
184 | # CONFIG_DEFAULT_DEADLINE is not set | 186 | # CONFIG_DEFAULT_DEADLINE is not set |
185 | # CONFIG_DEFAULT_CFQ is not set | 187 | CONFIG_DEFAULT_CFQ=y |
186 | # CONFIG_DEFAULT_NOOP is not set | 188 | # CONFIG_DEFAULT_NOOP is not set |
187 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 189 | CONFIG_DEFAULT_IOSCHED="cfq" |
190 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
191 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
192 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
193 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
194 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
195 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
196 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
197 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
198 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
199 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
200 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
201 | # CONFIG_INLINE_READ_LOCK is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
203 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
204 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
205 | CONFIG_INLINE_READ_UNLOCK=y | ||
206 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
207 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
208 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
209 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
212 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
213 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
214 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
215 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
216 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
217 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
218 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
188 | # CONFIG_FREEZER is not set | 219 | # CONFIG_FREEZER is not set |
189 | 220 | ||
190 | # | 221 | # |
@@ -193,7 +224,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
193 | # CONFIG_PPC_CELL is not set | 224 | # CONFIG_PPC_CELL is not set |
194 | # CONFIG_PPC_CELL_NATIVE is not set | 225 | # CONFIG_PPC_CELL_NATIVE is not set |
195 | # CONFIG_PQ2ADS is not set | 226 | # CONFIG_PQ2ADS is not set |
196 | CONFIG_MPC85xx=y | 227 | CONFIG_FSL_SOC_BOOKE=y |
197 | # CONFIG_MPC8540_ADS is not set | 228 | # CONFIG_MPC8540_ADS is not set |
198 | # CONFIG_MPC8560_ADS is not set | 229 | # CONFIG_MPC8560_ADS is not set |
199 | # CONFIG_MPC85xx_CDS is not set | 230 | # CONFIG_MPC85xx_CDS is not set |
@@ -212,6 +243,7 @@ CONFIG_TQM8548=y | |||
212 | # CONFIG_TQM8560 is not set | 243 | # CONFIG_TQM8560 is not set |
213 | # CONFIG_SBC8548 is not set | 244 | # CONFIG_SBC8548 is not set |
214 | # CONFIG_SBC8560 is not set | 245 | # CONFIG_SBC8560 is not set |
246 | # CONFIG_P4080_DS is not set | ||
215 | CONFIG_TQM85xx=y | 247 | CONFIG_TQM85xx=y |
216 | # CONFIG_IPIC is not set | 248 | # CONFIG_IPIC is not set |
217 | CONFIG_MPIC=y | 249 | CONFIG_MPIC=y |
@@ -257,6 +289,7 @@ CONFIG_MATH_EMULATION=y | |||
257 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 289 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
258 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 290 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
259 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 291 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
292 | CONFIG_SPARSE_IRQ=y | ||
260 | CONFIG_MAX_ACTIVE_REGIONS=32 | 293 | CONFIG_MAX_ACTIVE_REGIONS=32 |
261 | CONFIG_ARCH_FLATMEM_ENABLE=y | 294 | CONFIG_ARCH_FLATMEM_ENABLE=y |
262 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 295 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -273,8 +306,6 @@ CONFIG_MIGRATION=y | |||
273 | CONFIG_ZONE_DMA_FLAG=1 | 306 | CONFIG_ZONE_DMA_FLAG=1 |
274 | CONFIG_BOUNCE=y | 307 | CONFIG_BOUNCE=y |
275 | CONFIG_VIRT_TO_BUS=y | 308 | CONFIG_VIRT_TO_BUS=y |
276 | CONFIG_HAVE_MLOCK=y | ||
277 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
278 | # CONFIG_KSM is not set | 309 | # CONFIG_KSM is not set |
279 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 310 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
280 | CONFIG_PPC_4K_PAGES=y | 311 | CONFIG_PPC_4K_PAGES=y |
@@ -406,7 +437,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
406 | # CONFIG_IRDA is not set | 437 | # CONFIG_IRDA is not set |
407 | # CONFIG_BT is not set | 438 | # CONFIG_BT is not set |
408 | # CONFIG_AF_RXRPC is not set | 439 | # CONFIG_AF_RXRPC is not set |
409 | # CONFIG_WIRELESS is not set | 440 | CONFIG_WIRELESS=y |
441 | # CONFIG_CFG80211 is not set | ||
442 | # CONFIG_LIB80211 is not set | ||
443 | |||
444 | # | ||
445 | # CFG80211 needs to be enabled for MAC80211 | ||
446 | # | ||
410 | # CONFIG_WIMAX is not set | 447 | # CONFIG_WIMAX is not set |
411 | # CONFIG_RFKILL is not set | 448 | # CONFIG_RFKILL is not set |
412 | # CONFIG_NET_9P is not set | 449 | # CONFIG_NET_9P is not set |
@@ -535,6 +572,10 @@ CONFIG_BLK_DEV=y | |||
535 | # CONFIG_BLK_DEV_COW_COMMON is not set | 572 | # CONFIG_BLK_DEV_COW_COMMON is not set |
536 | CONFIG_BLK_DEV_LOOP=y | 573 | CONFIG_BLK_DEV_LOOP=y |
537 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 574 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
575 | |||
576 | # | ||
577 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
578 | # | ||
538 | # CONFIG_BLK_DEV_NBD is not set | 579 | # CONFIG_BLK_DEV_NBD is not set |
539 | # CONFIG_BLK_DEV_SX8 is not set | 580 | # CONFIG_BLK_DEV_SX8 is not set |
540 | CONFIG_BLK_DEV_RAM=y | 581 | CONFIG_BLK_DEV_RAM=y |
@@ -545,6 +586,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
545 | # CONFIG_ATA_OVER_ETH is not set | 586 | # CONFIG_ATA_OVER_ETH is not set |
546 | # CONFIG_BLK_DEV_HD is not set | 587 | # CONFIG_BLK_DEV_HD is not set |
547 | CONFIG_MISC_DEVICES=y | 588 | CONFIG_MISC_DEVICES=y |
589 | # CONFIG_AD525X_DPOT is not set | ||
548 | # CONFIG_PHANTOM is not set | 590 | # CONFIG_PHANTOM is not set |
549 | # CONFIG_SGI_IOC4 is not set | 591 | # CONFIG_SGI_IOC4 is not set |
550 | # CONFIG_TIFM_CORE is not set | 592 | # CONFIG_TIFM_CORE is not set |
@@ -552,6 +594,7 @@ CONFIG_MISC_DEVICES=y | |||
552 | # CONFIG_ENCLOSURE_SERVICES is not set | 594 | # CONFIG_ENCLOSURE_SERVICES is not set |
553 | # CONFIG_HP_ILO is not set | 595 | # CONFIG_HP_ILO is not set |
554 | # CONFIG_ISL29003 is not set | 596 | # CONFIG_ISL29003 is not set |
597 | # CONFIG_DS1682 is not set | ||
555 | # CONFIG_C2PORT is not set | 598 | # CONFIG_C2PORT is not set |
556 | 599 | ||
557 | # | 600 | # |
@@ -585,7 +628,7 @@ CONFIG_HAVE_IDE=y | |||
585 | # | 628 | # |
586 | 629 | ||
587 | # | 630 | # |
588 | # See the help texts for more information. | 631 | # The newer stack is recommended. |
589 | # | 632 | # |
590 | # CONFIG_FIREWIRE is not set | 633 | # CONFIG_FIREWIRE is not set |
591 | # CONFIG_IEEE1394 is not set | 634 | # CONFIG_IEEE1394 is not set |
@@ -690,8 +733,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
690 | # CONFIG_BE2NET is not set | 733 | # CONFIG_BE2NET is not set |
691 | # CONFIG_TR is not set | 734 | # CONFIG_TR is not set |
692 | CONFIG_WLAN=y | 735 | CONFIG_WLAN=y |
693 | # CONFIG_WLAN_PRE80211 is not set | 736 | # CONFIG_AIRO is not set |
694 | # CONFIG_WLAN_80211 is not set | 737 | # CONFIG_ATMEL is not set |
738 | # CONFIG_PRISM54 is not set | ||
739 | # CONFIG_HOSTAP is not set | ||
695 | 740 | ||
696 | # | 741 | # |
697 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 742 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -704,6 +749,7 @@ CONFIG_WLAN=y | |||
704 | # CONFIG_NETCONSOLE is not set | 749 | # CONFIG_NETCONSOLE is not set |
705 | # CONFIG_NETPOLL is not set | 750 | # CONFIG_NETPOLL is not set |
706 | # CONFIG_NET_POLL_CONTROLLER is not set | 751 | # CONFIG_NET_POLL_CONTROLLER is not set |
752 | # CONFIG_VMXNET3 is not set | ||
707 | # CONFIG_ISDN is not set | 753 | # CONFIG_ISDN is not set |
708 | # CONFIG_PHONE is not set | 754 | # CONFIG_PHONE is not set |
709 | 755 | ||
@@ -713,6 +759,7 @@ CONFIG_WLAN=y | |||
713 | CONFIG_INPUT=y | 759 | CONFIG_INPUT=y |
714 | # CONFIG_INPUT_FF_MEMLESS is not set | 760 | # CONFIG_INPUT_FF_MEMLESS is not set |
715 | # CONFIG_INPUT_POLLDEV is not set | 761 | # CONFIG_INPUT_POLLDEV is not set |
762 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
716 | 763 | ||
717 | # | 764 | # |
718 | # Userland interfaces | 765 | # Userland interfaces |
@@ -765,6 +812,7 @@ CONFIG_SERIAL_CORE=y | |||
765 | CONFIG_SERIAL_CORE_CONSOLE=y | 812 | CONFIG_SERIAL_CORE_CONSOLE=y |
766 | # CONFIG_SERIAL_JSM is not set | 813 | # CONFIG_SERIAL_JSM is not set |
767 | # CONFIG_SERIAL_OF_PLATFORM is not set | 814 | # CONFIG_SERIAL_OF_PLATFORM is not set |
815 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
768 | CONFIG_UNIX98_PTYS=y | 816 | CONFIG_UNIX98_PTYS=y |
769 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 817 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
770 | CONFIG_LEGACY_PTYS=y | 818 | CONFIG_LEGACY_PTYS=y |
@@ -820,11 +868,6 @@ CONFIG_I2C_MPC=y | |||
820 | # CONFIG_I2C_TAOS_EVM is not set | 868 | # CONFIG_I2C_TAOS_EVM is not set |
821 | 869 | ||
822 | # | 870 | # |
823 | # Graphics adapter I2C/DDC channel drivers | ||
824 | # | ||
825 | # CONFIG_I2C_VOODOO3 is not set | ||
826 | |||
827 | # | ||
828 | # Other I2C/SMBus bus drivers | 871 | # Other I2C/SMBus bus drivers |
829 | # | 872 | # |
830 | # CONFIG_I2C_PCA_PLATFORM is not set | 873 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -833,7 +876,6 @@ CONFIG_I2C_MPC=y | |||
833 | # | 876 | # |
834 | # Miscellaneous I2C Chip support | 877 | # Miscellaneous I2C Chip support |
835 | # | 878 | # |
836 | # CONFIG_DS1682 is not set | ||
837 | # CONFIG_SENSORS_TSL2550 is not set | 879 | # CONFIG_SENSORS_TSL2550 is not set |
838 | # CONFIG_I2C_DEBUG_CORE is not set | 880 | # CONFIG_I2C_DEBUG_CORE is not set |
839 | # CONFIG_I2C_DEBUG_ALGO is not set | 881 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -879,6 +921,7 @@ CONFIG_HWMON=y | |||
879 | # CONFIG_SENSORS_GL520SM is not set | 921 | # CONFIG_SENSORS_GL520SM is not set |
880 | # CONFIG_SENSORS_IT87 is not set | 922 | # CONFIG_SENSORS_IT87 is not set |
881 | # CONFIG_SENSORS_LM63 is not set | 923 | # CONFIG_SENSORS_LM63 is not set |
924 | # CONFIG_SENSORS_LM73 is not set | ||
882 | CONFIG_SENSORS_LM75=y | 925 | CONFIG_SENSORS_LM75=y |
883 | # CONFIG_SENSORS_LM77 is not set | 926 | # CONFIG_SENSORS_LM77 is not set |
884 | # CONFIG_SENSORS_LM78 is not set | 927 | # CONFIG_SENSORS_LM78 is not set |
@@ -917,6 +960,7 @@ CONFIG_SENSORS_LM75=y | |||
917 | # CONFIG_SENSORS_W83L786NG is not set | 960 | # CONFIG_SENSORS_W83L786NG is not set |
918 | # CONFIG_SENSORS_W83627HF is not set | 961 | # CONFIG_SENSORS_W83627HF is not set |
919 | # CONFIG_SENSORS_W83627EHF is not set | 962 | # CONFIG_SENSORS_W83627EHF is not set |
963 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
920 | # CONFIG_THERMAL is not set | 964 | # CONFIG_THERMAL is not set |
921 | # CONFIG_WATCHDOG is not set | 965 | # CONFIG_WATCHDOG is not set |
922 | CONFIG_SSB_POSSIBLE=y | 966 | CONFIG_SSB_POSSIBLE=y |
@@ -935,11 +979,13 @@ CONFIG_SSB_POSSIBLE=y | |||
935 | # CONFIG_TWL4030_CORE is not set | 979 | # CONFIG_TWL4030_CORE is not set |
936 | # CONFIG_MFD_TMIO is not set | 980 | # CONFIG_MFD_TMIO is not set |
937 | # CONFIG_PMIC_DA903X is not set | 981 | # CONFIG_PMIC_DA903X is not set |
982 | # CONFIG_PMIC_ADP5520 is not set | ||
938 | # CONFIG_MFD_WM8400 is not set | 983 | # CONFIG_MFD_WM8400 is not set |
939 | # CONFIG_MFD_WM831X is not set | 984 | # CONFIG_MFD_WM831X is not set |
940 | # CONFIG_MFD_WM8350_I2C is not set | 985 | # CONFIG_MFD_WM8350_I2C is not set |
941 | # CONFIG_MFD_PCF50633 is not set | 986 | # CONFIG_MFD_PCF50633 is not set |
942 | # CONFIG_AB3100_CORE is not set | 987 | # CONFIG_AB3100_CORE is not set |
988 | # CONFIG_MFD_88PM8607 is not set | ||
943 | # CONFIG_REGULATOR is not set | 989 | # CONFIG_REGULATOR is not set |
944 | # CONFIG_MEDIA_SUPPORT is not set | 990 | # CONFIG_MEDIA_SUPPORT is not set |
945 | 991 | ||
@@ -1003,6 +1049,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1003 | # CONFIG_RTC_DRV_PCF8563 is not set | 1049 | # CONFIG_RTC_DRV_PCF8563 is not set |
1004 | # CONFIG_RTC_DRV_PCF8583 is not set | 1050 | # CONFIG_RTC_DRV_PCF8583 is not set |
1005 | # CONFIG_RTC_DRV_M41T80 is not set | 1051 | # CONFIG_RTC_DRV_M41T80 is not set |
1052 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1006 | # CONFIG_RTC_DRV_S35390A is not set | 1053 | # CONFIG_RTC_DRV_S35390A is not set |
1007 | # CONFIG_RTC_DRV_FM3130 is not set | 1054 | # CONFIG_RTC_DRV_FM3130 is not set |
1008 | # CONFIG_RTC_DRV_RX8581 is not set | 1055 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1024,7 +1071,9 @@ CONFIG_RTC_DRV_DS1307=y | |||
1024 | # CONFIG_RTC_DRV_M48T86 is not set | 1071 | # CONFIG_RTC_DRV_M48T86 is not set |
1025 | # CONFIG_RTC_DRV_M48T35 is not set | 1072 | # CONFIG_RTC_DRV_M48T35 is not set |
1026 | # CONFIG_RTC_DRV_M48T59 is not set | 1073 | # CONFIG_RTC_DRV_M48T59 is not set |
1074 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1027 | # CONFIG_RTC_DRV_BQ4802 is not set | 1075 | # CONFIG_RTC_DRV_BQ4802 is not set |
1076 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1028 | # CONFIG_RTC_DRV_V3020 is not set | 1077 | # CONFIG_RTC_DRV_V3020 is not set |
1029 | 1078 | ||
1030 | # | 1079 | # |
@@ -1280,7 +1329,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1280 | # CONFIG_KEYS is not set | 1329 | # CONFIG_KEYS is not set |
1281 | # CONFIG_SECURITY is not set | 1330 | # CONFIG_SECURITY is not set |
1282 | # CONFIG_SECURITYFS is not set | 1331 | # CONFIG_SECURITYFS is not set |
1283 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1332 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1333 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1334 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1335 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1336 | CONFIG_DEFAULT_SECURITY="" | ||
1284 | CONFIG_CRYPTO=y | 1337 | CONFIG_CRYPTO=y |
1285 | 1338 | ||
1286 | # | 1339 | # |
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig index 74515501f5b..e7b9148e58c 100644 --- a/arch/powerpc/configs/85xx/tqm8555_defconfig +++ b/arch/powerpc/configs/85xx/tqm8555_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:42 2009 | 4 | # Wed Jan 6 09:24:36 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -62,6 +63,8 @@ CONFIG_AUDIT_ARCH=y | |||
62 | CONFIG_GENERIC_BUG=y | 63 | CONFIG_GENERIC_BUG=y |
63 | CONFIG_DTC=y | 64 | CONFIG_DTC=y |
64 | CONFIG_DEFAULT_UIMAGE=y | 65 | CONFIG_DEFAULT_UIMAGE=y |
66 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
67 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
65 | # CONFIG_PPC_DCR_NATIVE is not set | 68 | # CONFIG_PPC_DCR_NATIVE is not set |
66 | # CONFIG_PPC_DCR_MMIO is not set | 69 | # CONFIG_PPC_DCR_MMIO is not set |
67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 70 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -89,6 +92,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
89 | # | 92 | # |
90 | CONFIG_TREE_RCU=y | 93 | CONFIG_TREE_RCU=y |
91 | # CONFIG_TREE_PREEMPT_RCU is not set | 94 | # CONFIG_TREE_PREEMPT_RCU is not set |
95 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | 96 | # CONFIG_RCU_TRACE is not set |
93 | CONFIG_RCU_FANOUT=32 | 97 | CONFIG_RCU_FANOUT=32 |
94 | # CONFIG_RCU_FANOUT_EXACT is not set | 98 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -171,14 +175,41 @@ CONFIG_LBDAF=y | |||
171 | # IO Schedulers | 175 | # IO Schedulers |
172 | # | 176 | # |
173 | CONFIG_IOSCHED_NOOP=y | 177 | CONFIG_IOSCHED_NOOP=y |
174 | CONFIG_IOSCHED_AS=y | ||
175 | CONFIG_IOSCHED_DEADLINE=y | 178 | CONFIG_IOSCHED_DEADLINE=y |
176 | CONFIG_IOSCHED_CFQ=y | 179 | CONFIG_IOSCHED_CFQ=y |
177 | CONFIG_DEFAULT_AS=y | ||
178 | # CONFIG_DEFAULT_DEADLINE is not set | 180 | # CONFIG_DEFAULT_DEADLINE is not set |
179 | # CONFIG_DEFAULT_CFQ is not set | 181 | CONFIG_DEFAULT_CFQ=y |
180 | # CONFIG_DEFAULT_NOOP is not set | 182 | # CONFIG_DEFAULT_NOOP is not set |
181 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 183 | CONFIG_DEFAULT_IOSCHED="cfq" |
184 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
185 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
190 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
191 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
192 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
194 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
195 | # CONFIG_INLINE_READ_LOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
199 | CONFIG_INLINE_READ_UNLOCK=y | ||
200 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
201 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
202 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
203 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
208 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
209 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
210 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
212 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
182 | # CONFIG_FREEZER is not set | 213 | # CONFIG_FREEZER is not set |
183 | 214 | ||
184 | # | 215 | # |
@@ -187,7 +218,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
187 | # CONFIG_PPC_CELL is not set | 218 | # CONFIG_PPC_CELL is not set |
188 | # CONFIG_PPC_CELL_NATIVE is not set | 219 | # CONFIG_PPC_CELL_NATIVE is not set |
189 | # CONFIG_PQ2ADS is not set | 220 | # CONFIG_PQ2ADS is not set |
190 | CONFIG_MPC85xx=y | 221 | CONFIG_FSL_SOC_BOOKE=y |
191 | # CONFIG_MPC8540_ADS is not set | 222 | # CONFIG_MPC8540_ADS is not set |
192 | # CONFIG_MPC8560_ADS is not set | 223 | # CONFIG_MPC8560_ADS is not set |
193 | # CONFIG_MPC85xx_CDS is not set | 224 | # CONFIG_MPC85xx_CDS is not set |
@@ -206,6 +237,7 @@ CONFIG_TQM8555=y | |||
206 | # CONFIG_TQM8560 is not set | 237 | # CONFIG_TQM8560 is not set |
207 | # CONFIG_SBC8548 is not set | 238 | # CONFIG_SBC8548 is not set |
208 | # CONFIG_SBC8560 is not set | 239 | # CONFIG_SBC8560 is not set |
240 | # CONFIG_P4080_DS is not set | ||
209 | CONFIG_TQM85xx=y | 241 | CONFIG_TQM85xx=y |
210 | # CONFIG_IPIC is not set | 242 | # CONFIG_IPIC is not set |
211 | CONFIG_MPIC=y | 243 | CONFIG_MPIC=y |
@@ -251,6 +283,7 @@ CONFIG_MATH_EMULATION=y | |||
251 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
252 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 284 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
253 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 285 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
286 | CONFIG_SPARSE_IRQ=y | ||
254 | CONFIG_MAX_ACTIVE_REGIONS=32 | 287 | CONFIG_MAX_ACTIVE_REGIONS=32 |
255 | CONFIG_ARCH_FLATMEM_ENABLE=y | 288 | CONFIG_ARCH_FLATMEM_ENABLE=y |
256 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 289 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -267,8 +300,6 @@ CONFIG_MIGRATION=y | |||
267 | CONFIG_ZONE_DMA_FLAG=1 | 300 | CONFIG_ZONE_DMA_FLAG=1 |
268 | CONFIG_BOUNCE=y | 301 | CONFIG_BOUNCE=y |
269 | CONFIG_VIRT_TO_BUS=y | 302 | CONFIG_VIRT_TO_BUS=y |
270 | CONFIG_HAVE_MLOCK=y | ||
271 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
272 | # CONFIG_KSM is not set | 303 | # CONFIG_KSM is not set |
273 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 304 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
274 | CONFIG_PPC_4K_PAGES=y | 305 | CONFIG_PPC_4K_PAGES=y |
@@ -394,9 +425,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
394 | # CONFIG_AF_RXRPC is not set | 425 | # CONFIG_AF_RXRPC is not set |
395 | CONFIG_WIRELESS=y | 426 | CONFIG_WIRELESS=y |
396 | # CONFIG_CFG80211 is not set | 427 | # CONFIG_CFG80211 is not set |
397 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
398 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
399 | # CONFIG_WIRELESS_EXT is not set | ||
400 | # CONFIG_LIB80211 is not set | 428 | # CONFIG_LIB80211 is not set |
401 | 429 | ||
402 | # | 430 | # |
@@ -514,6 +542,10 @@ CONFIG_BLK_DEV=y | |||
514 | # CONFIG_BLK_DEV_COW_COMMON is not set | 542 | # CONFIG_BLK_DEV_COW_COMMON is not set |
515 | CONFIG_BLK_DEV_LOOP=y | 543 | CONFIG_BLK_DEV_LOOP=y |
516 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 544 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
545 | |||
546 | # | ||
547 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
548 | # | ||
517 | # CONFIG_BLK_DEV_NBD is not set | 549 | # CONFIG_BLK_DEV_NBD is not set |
518 | # CONFIG_BLK_DEV_SX8 is not set | 550 | # CONFIG_BLK_DEV_SX8 is not set |
519 | CONFIG_BLK_DEV_RAM=y | 551 | CONFIG_BLK_DEV_RAM=y |
@@ -524,6 +556,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
524 | # CONFIG_ATA_OVER_ETH is not set | 556 | # CONFIG_ATA_OVER_ETH is not set |
525 | # CONFIG_BLK_DEV_HD is not set | 557 | # CONFIG_BLK_DEV_HD is not set |
526 | CONFIG_MISC_DEVICES=y | 558 | CONFIG_MISC_DEVICES=y |
559 | # CONFIG_AD525X_DPOT is not set | ||
527 | # CONFIG_PHANTOM is not set | 560 | # CONFIG_PHANTOM is not set |
528 | # CONFIG_SGI_IOC4 is not set | 561 | # CONFIG_SGI_IOC4 is not set |
529 | # CONFIG_TIFM_CORE is not set | 562 | # CONFIG_TIFM_CORE is not set |
@@ -531,6 +564,7 @@ CONFIG_MISC_DEVICES=y | |||
531 | # CONFIG_ENCLOSURE_SERVICES is not set | 564 | # CONFIG_ENCLOSURE_SERVICES is not set |
532 | # CONFIG_HP_ILO is not set | 565 | # CONFIG_HP_ILO is not set |
533 | # CONFIG_ISL29003 is not set | 566 | # CONFIG_ISL29003 is not set |
567 | # CONFIG_DS1682 is not set | ||
534 | # CONFIG_C2PORT is not set | 568 | # CONFIG_C2PORT is not set |
535 | 569 | ||
536 | # | 570 | # |
@@ -619,7 +653,7 @@ CONFIG_BLK_DEV_IDEDMA=y | |||
619 | # | 653 | # |
620 | 654 | ||
621 | # | 655 | # |
622 | # See the help texts for more information. | 656 | # The newer stack is recommended. |
623 | # | 657 | # |
624 | # CONFIG_FIREWIRE is not set | 658 | # CONFIG_FIREWIRE is not set |
625 | # CONFIG_IEEE1394 is not set | 659 | # CONFIG_IEEE1394 is not set |
@@ -743,8 +777,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
743 | # CONFIG_BE2NET is not set | 777 | # CONFIG_BE2NET is not set |
744 | # CONFIG_TR is not set | 778 | # CONFIG_TR is not set |
745 | CONFIG_WLAN=y | 779 | CONFIG_WLAN=y |
746 | # CONFIG_WLAN_PRE80211 is not set | 780 | # CONFIG_AIRO is not set |
747 | # CONFIG_WLAN_80211 is not set | 781 | # CONFIG_ATMEL is not set |
782 | # CONFIG_PRISM54 is not set | ||
783 | # CONFIG_HOSTAP is not set | ||
748 | 784 | ||
749 | # | 785 | # |
750 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 786 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -757,6 +793,7 @@ CONFIG_WLAN=y | |||
757 | # CONFIG_NETCONSOLE is not set | 793 | # CONFIG_NETCONSOLE is not set |
758 | # CONFIG_NETPOLL is not set | 794 | # CONFIG_NETPOLL is not set |
759 | # CONFIG_NET_POLL_CONTROLLER is not set | 795 | # CONFIG_NET_POLL_CONTROLLER is not set |
796 | # CONFIG_VMXNET3 is not set | ||
760 | # CONFIG_ISDN is not set | 797 | # CONFIG_ISDN is not set |
761 | # CONFIG_PHONE is not set | 798 | # CONFIG_PHONE is not set |
762 | 799 | ||
@@ -766,6 +803,7 @@ CONFIG_WLAN=y | |||
766 | CONFIG_INPUT=y | 803 | CONFIG_INPUT=y |
767 | # CONFIG_INPUT_FF_MEMLESS is not set | 804 | # CONFIG_INPUT_FF_MEMLESS is not set |
768 | # CONFIG_INPUT_POLLDEV is not set | 805 | # CONFIG_INPUT_POLLDEV is not set |
806 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
769 | 807 | ||
770 | # | 808 | # |
771 | # Userland interfaces | 809 | # Userland interfaces |
@@ -820,6 +858,7 @@ CONFIG_SERIAL_CPM=y | |||
820 | CONFIG_SERIAL_CPM_CONSOLE=y | 858 | CONFIG_SERIAL_CPM_CONSOLE=y |
821 | # CONFIG_SERIAL_JSM is not set | 859 | # CONFIG_SERIAL_JSM is not set |
822 | # CONFIG_SERIAL_OF_PLATFORM is not set | 860 | # CONFIG_SERIAL_OF_PLATFORM is not set |
861 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
823 | CONFIG_UNIX98_PTYS=y | 862 | CONFIG_UNIX98_PTYS=y |
824 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 863 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
825 | CONFIG_LEGACY_PTYS=y | 864 | CONFIG_LEGACY_PTYS=y |
@@ -881,11 +920,6 @@ CONFIG_I2C_MPC=y | |||
881 | # CONFIG_I2C_TAOS_EVM is not set | 920 | # CONFIG_I2C_TAOS_EVM is not set |
882 | 921 | ||
883 | # | 922 | # |
884 | # Graphics adapter I2C/DDC channel drivers | ||
885 | # | ||
886 | # CONFIG_I2C_VOODOO3 is not set | ||
887 | |||
888 | # | ||
889 | # Other I2C/SMBus bus drivers | 923 | # Other I2C/SMBus bus drivers |
890 | # | 924 | # |
891 | # CONFIG_I2C_PCA_PLATFORM is not set | 925 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -893,7 +927,6 @@ CONFIG_I2C_MPC=y | |||
893 | # | 927 | # |
894 | # Miscellaneous I2C Chip support | 928 | # Miscellaneous I2C Chip support |
895 | # | 929 | # |
896 | # CONFIG_DS1682 is not set | ||
897 | # CONFIG_SENSORS_TSL2550 is not set | 930 | # CONFIG_SENSORS_TSL2550 is not set |
898 | # CONFIG_I2C_DEBUG_CORE is not set | 931 | # CONFIG_I2C_DEBUG_CORE is not set |
899 | # CONFIG_I2C_DEBUG_ALGO is not set | 932 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -925,6 +958,7 @@ CONFIG_GPIOLIB=y | |||
925 | # | 958 | # |
926 | # PCI GPIO expanders: | 959 | # PCI GPIO expanders: |
927 | # | 960 | # |
961 | # CONFIG_GPIO_CS5535 is not set | ||
928 | # CONFIG_GPIO_BT8XX is not set | 962 | # CONFIG_GPIO_BT8XX is not set |
929 | # CONFIG_GPIO_LANGWELL is not set | 963 | # CONFIG_GPIO_LANGWELL is not set |
930 | 964 | ||
@@ -967,6 +1001,7 @@ CONFIG_HWMON_DEBUG_CHIP=y | |||
967 | # CONFIG_SENSORS_GL520SM is not set | 1001 | # CONFIG_SENSORS_GL520SM is not set |
968 | # CONFIG_SENSORS_IT87 is not set | 1002 | # CONFIG_SENSORS_IT87 is not set |
969 | # CONFIG_SENSORS_LM63 is not set | 1003 | # CONFIG_SENSORS_LM63 is not set |
1004 | # CONFIG_SENSORS_LM73 is not set | ||
970 | CONFIG_SENSORS_LM75=y | 1005 | CONFIG_SENSORS_LM75=y |
971 | # CONFIG_SENSORS_LM77 is not set | 1006 | # CONFIG_SENSORS_LM77 is not set |
972 | # CONFIG_SENSORS_LM78 is not set | 1007 | # CONFIG_SENSORS_LM78 is not set |
@@ -1006,6 +1041,7 @@ CONFIG_SENSORS_LM75=y | |||
1006 | # CONFIG_SENSORS_W83L786NG is not set | 1041 | # CONFIG_SENSORS_W83L786NG is not set |
1007 | # CONFIG_SENSORS_W83627HF is not set | 1042 | # CONFIG_SENSORS_W83627HF is not set |
1008 | # CONFIG_SENSORS_W83627EHF is not set | 1043 | # CONFIG_SENSORS_W83627EHF is not set |
1044 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1009 | # CONFIG_THERMAL is not set | 1045 | # CONFIG_THERMAL is not set |
1010 | # CONFIG_WATCHDOG is not set | 1046 | # CONFIG_WATCHDOG is not set |
1011 | CONFIG_SSB_POSSIBLE=y | 1047 | CONFIG_SSB_POSSIBLE=y |
@@ -1025,11 +1061,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1025 | # CONFIG_TWL4030_CORE is not set | 1061 | # CONFIG_TWL4030_CORE is not set |
1026 | # CONFIG_MFD_TMIO is not set | 1062 | # CONFIG_MFD_TMIO is not set |
1027 | # CONFIG_PMIC_DA903X is not set | 1063 | # CONFIG_PMIC_DA903X is not set |
1064 | # CONFIG_PMIC_ADP5520 is not set | ||
1028 | # CONFIG_MFD_WM8400 is not set | 1065 | # CONFIG_MFD_WM8400 is not set |
1029 | # CONFIG_MFD_WM831X is not set | 1066 | # CONFIG_MFD_WM831X is not set |
1030 | # CONFIG_MFD_WM8350_I2C is not set | 1067 | # CONFIG_MFD_WM8350_I2C is not set |
1031 | # CONFIG_MFD_PCF50633 is not set | 1068 | # CONFIG_MFD_PCF50633 is not set |
1032 | # CONFIG_AB3100_CORE is not set | 1069 | # CONFIG_AB3100_CORE is not set |
1070 | # CONFIG_MFD_88PM8607 is not set | ||
1033 | # CONFIG_REGULATOR is not set | 1071 | # CONFIG_REGULATOR is not set |
1034 | # CONFIG_MEDIA_SUPPORT is not set | 1072 | # CONFIG_MEDIA_SUPPORT is not set |
1035 | 1073 | ||
@@ -1260,7 +1298,7 @@ CONFIG_FRAME_WARN=1024 | |||
1260 | # CONFIG_DEBUG_KERNEL is not set | 1298 | # CONFIG_DEBUG_KERNEL is not set |
1261 | # CONFIG_SLUB_DEBUG_ON is not set | 1299 | # CONFIG_SLUB_DEBUG_ON is not set |
1262 | # CONFIG_SLUB_STATS is not set | 1300 | # CONFIG_SLUB_STATS is not set |
1263 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1301 | CONFIG_DEBUG_BUGVERBOSE=y |
1264 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1302 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1265 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1303 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1266 | # CONFIG_LATENCYTOP is not set | 1304 | # CONFIG_LATENCYTOP is not set |
@@ -1286,7 +1324,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1286 | # CONFIG_KEYS is not set | 1324 | # CONFIG_KEYS is not set |
1287 | # CONFIG_SECURITY is not set | 1325 | # CONFIG_SECURITY is not set |
1288 | # CONFIG_SECURITYFS is not set | 1326 | # CONFIG_SECURITYFS is not set |
1289 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1327 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1328 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1329 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1330 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1331 | CONFIG_DEFAULT_SECURITY="" | ||
1290 | CONFIG_CRYPTO=y | 1332 | CONFIG_CRYPTO=y |
1291 | 1333 | ||
1292 | # | 1334 | # |
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig index 631d92b4d4e..a998e401bbf 100644 --- a/arch/powerpc/configs/85xx/tqm8560_defconfig +++ b/arch/powerpc/configs/85xx/tqm8560_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:43 2009 | 4 | # Wed Jan 6 09:24:36 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -62,6 +63,8 @@ CONFIG_AUDIT_ARCH=y | |||
62 | CONFIG_GENERIC_BUG=y | 63 | CONFIG_GENERIC_BUG=y |
63 | CONFIG_DTC=y | 64 | CONFIG_DTC=y |
64 | CONFIG_DEFAULT_UIMAGE=y | 65 | CONFIG_DEFAULT_UIMAGE=y |
66 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
67 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
65 | # CONFIG_PPC_DCR_NATIVE is not set | 68 | # CONFIG_PPC_DCR_NATIVE is not set |
66 | # CONFIG_PPC_DCR_MMIO is not set | 69 | # CONFIG_PPC_DCR_MMIO is not set |
67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 70 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -89,6 +92,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
89 | # | 92 | # |
90 | CONFIG_TREE_RCU=y | 93 | CONFIG_TREE_RCU=y |
91 | # CONFIG_TREE_PREEMPT_RCU is not set | 94 | # CONFIG_TREE_PREEMPT_RCU is not set |
95 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | 96 | # CONFIG_RCU_TRACE is not set |
93 | CONFIG_RCU_FANOUT=32 | 97 | CONFIG_RCU_FANOUT=32 |
94 | # CONFIG_RCU_FANOUT_EXACT is not set | 98 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -171,14 +175,41 @@ CONFIG_LBDAF=y | |||
171 | # IO Schedulers | 175 | # IO Schedulers |
172 | # | 176 | # |
173 | CONFIG_IOSCHED_NOOP=y | 177 | CONFIG_IOSCHED_NOOP=y |
174 | CONFIG_IOSCHED_AS=y | ||
175 | CONFIG_IOSCHED_DEADLINE=y | 178 | CONFIG_IOSCHED_DEADLINE=y |
176 | CONFIG_IOSCHED_CFQ=y | 179 | CONFIG_IOSCHED_CFQ=y |
177 | CONFIG_DEFAULT_AS=y | ||
178 | # CONFIG_DEFAULT_DEADLINE is not set | 180 | # CONFIG_DEFAULT_DEADLINE is not set |
179 | # CONFIG_DEFAULT_CFQ is not set | 181 | CONFIG_DEFAULT_CFQ=y |
180 | # CONFIG_DEFAULT_NOOP is not set | 182 | # CONFIG_DEFAULT_NOOP is not set |
181 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 183 | CONFIG_DEFAULT_IOSCHED="cfq" |
184 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
185 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
190 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
191 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
192 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
194 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
195 | # CONFIG_INLINE_READ_LOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
199 | CONFIG_INLINE_READ_UNLOCK=y | ||
200 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
201 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
202 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
203 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
208 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
209 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
210 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
212 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
182 | # CONFIG_FREEZER is not set | 213 | # CONFIG_FREEZER is not set |
183 | 214 | ||
184 | # | 215 | # |
@@ -187,7 +218,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
187 | # CONFIG_PPC_CELL is not set | 218 | # CONFIG_PPC_CELL is not set |
188 | # CONFIG_PPC_CELL_NATIVE is not set | 219 | # CONFIG_PPC_CELL_NATIVE is not set |
189 | # CONFIG_PQ2ADS is not set | 220 | # CONFIG_PQ2ADS is not set |
190 | CONFIG_MPC85xx=y | 221 | CONFIG_FSL_SOC_BOOKE=y |
191 | # CONFIG_MPC8540_ADS is not set | 222 | # CONFIG_MPC8540_ADS is not set |
192 | # CONFIG_MPC8560_ADS is not set | 223 | # CONFIG_MPC8560_ADS is not set |
193 | # CONFIG_MPC85xx_CDS is not set | 224 | # CONFIG_MPC85xx_CDS is not set |
@@ -206,6 +237,7 @@ CONFIG_MPC85xx=y | |||
206 | CONFIG_TQM8560=y | 237 | CONFIG_TQM8560=y |
207 | # CONFIG_SBC8548 is not set | 238 | # CONFIG_SBC8548 is not set |
208 | # CONFIG_SBC8560 is not set | 239 | # CONFIG_SBC8560 is not set |
240 | # CONFIG_P4080_DS is not set | ||
209 | CONFIG_TQM85xx=y | 241 | CONFIG_TQM85xx=y |
210 | # CONFIG_IPIC is not set | 242 | # CONFIG_IPIC is not set |
211 | CONFIG_MPIC=y | 243 | CONFIG_MPIC=y |
@@ -251,6 +283,7 @@ CONFIG_MATH_EMULATION=y | |||
251 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
252 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 284 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
253 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 285 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
286 | CONFIG_SPARSE_IRQ=y | ||
254 | CONFIG_MAX_ACTIVE_REGIONS=32 | 287 | CONFIG_MAX_ACTIVE_REGIONS=32 |
255 | CONFIG_ARCH_FLATMEM_ENABLE=y | 288 | CONFIG_ARCH_FLATMEM_ENABLE=y |
256 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 289 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -267,8 +300,6 @@ CONFIG_MIGRATION=y | |||
267 | CONFIG_ZONE_DMA_FLAG=1 | 300 | CONFIG_ZONE_DMA_FLAG=1 |
268 | CONFIG_BOUNCE=y | 301 | CONFIG_BOUNCE=y |
269 | CONFIG_VIRT_TO_BUS=y | 302 | CONFIG_VIRT_TO_BUS=y |
270 | CONFIG_HAVE_MLOCK=y | ||
271 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
272 | # CONFIG_KSM is not set | 303 | # CONFIG_KSM is not set |
273 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 304 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
274 | CONFIG_PPC_4K_PAGES=y | 305 | CONFIG_PPC_4K_PAGES=y |
@@ -394,9 +425,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
394 | # CONFIG_AF_RXRPC is not set | 425 | # CONFIG_AF_RXRPC is not set |
395 | CONFIG_WIRELESS=y | 426 | CONFIG_WIRELESS=y |
396 | # CONFIG_CFG80211 is not set | 427 | # CONFIG_CFG80211 is not set |
397 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
398 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
399 | # CONFIG_WIRELESS_EXT is not set | ||
400 | # CONFIG_LIB80211 is not set | 428 | # CONFIG_LIB80211 is not set |
401 | 429 | ||
402 | # | 430 | # |
@@ -514,6 +542,10 @@ CONFIG_BLK_DEV=y | |||
514 | # CONFIG_BLK_DEV_COW_COMMON is not set | 542 | # CONFIG_BLK_DEV_COW_COMMON is not set |
515 | CONFIG_BLK_DEV_LOOP=y | 543 | CONFIG_BLK_DEV_LOOP=y |
516 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 544 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
545 | |||
546 | # | ||
547 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
548 | # | ||
517 | # CONFIG_BLK_DEV_NBD is not set | 549 | # CONFIG_BLK_DEV_NBD is not set |
518 | # CONFIG_BLK_DEV_SX8 is not set | 550 | # CONFIG_BLK_DEV_SX8 is not set |
519 | CONFIG_BLK_DEV_RAM=y | 551 | CONFIG_BLK_DEV_RAM=y |
@@ -524,6 +556,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
524 | # CONFIG_ATA_OVER_ETH is not set | 556 | # CONFIG_ATA_OVER_ETH is not set |
525 | # CONFIG_BLK_DEV_HD is not set | 557 | # CONFIG_BLK_DEV_HD is not set |
526 | CONFIG_MISC_DEVICES=y | 558 | CONFIG_MISC_DEVICES=y |
559 | # CONFIG_AD525X_DPOT is not set | ||
527 | # CONFIG_PHANTOM is not set | 560 | # CONFIG_PHANTOM is not set |
528 | # CONFIG_SGI_IOC4 is not set | 561 | # CONFIG_SGI_IOC4 is not set |
529 | # CONFIG_TIFM_CORE is not set | 562 | # CONFIG_TIFM_CORE is not set |
@@ -531,6 +564,7 @@ CONFIG_MISC_DEVICES=y | |||
531 | # CONFIG_ENCLOSURE_SERVICES is not set | 564 | # CONFIG_ENCLOSURE_SERVICES is not set |
532 | # CONFIG_HP_ILO is not set | 565 | # CONFIG_HP_ILO is not set |
533 | # CONFIG_ISL29003 is not set | 566 | # CONFIG_ISL29003 is not set |
567 | # CONFIG_DS1682 is not set | ||
534 | # CONFIG_C2PORT is not set | 568 | # CONFIG_C2PORT is not set |
535 | 569 | ||
536 | # | 570 | # |
@@ -619,7 +653,7 @@ CONFIG_BLK_DEV_IDEDMA=y | |||
619 | # | 653 | # |
620 | 654 | ||
621 | # | 655 | # |
622 | # See the help texts for more information. | 656 | # The newer stack is recommended. |
623 | # | 657 | # |
624 | # CONFIG_FIREWIRE is not set | 658 | # CONFIG_FIREWIRE is not set |
625 | # CONFIG_IEEE1394 is not set | 659 | # CONFIG_IEEE1394 is not set |
@@ -743,8 +777,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
743 | # CONFIG_BE2NET is not set | 777 | # CONFIG_BE2NET is not set |
744 | # CONFIG_TR is not set | 778 | # CONFIG_TR is not set |
745 | CONFIG_WLAN=y | 779 | CONFIG_WLAN=y |
746 | # CONFIG_WLAN_PRE80211 is not set | 780 | # CONFIG_AIRO is not set |
747 | # CONFIG_WLAN_80211 is not set | 781 | # CONFIG_ATMEL is not set |
782 | # CONFIG_PRISM54 is not set | ||
783 | # CONFIG_HOSTAP is not set | ||
748 | 784 | ||
749 | # | 785 | # |
750 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 786 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -757,6 +793,7 @@ CONFIG_WLAN=y | |||
757 | # CONFIG_NETCONSOLE is not set | 793 | # CONFIG_NETCONSOLE is not set |
758 | # CONFIG_NETPOLL is not set | 794 | # CONFIG_NETPOLL is not set |
759 | # CONFIG_NET_POLL_CONTROLLER is not set | 795 | # CONFIG_NET_POLL_CONTROLLER is not set |
796 | # CONFIG_VMXNET3 is not set | ||
760 | # CONFIG_ISDN is not set | 797 | # CONFIG_ISDN is not set |
761 | # CONFIG_PHONE is not set | 798 | # CONFIG_PHONE is not set |
762 | 799 | ||
@@ -766,6 +803,7 @@ CONFIG_WLAN=y | |||
766 | CONFIG_INPUT=y | 803 | CONFIG_INPUT=y |
767 | # CONFIG_INPUT_FF_MEMLESS is not set | 804 | # CONFIG_INPUT_FF_MEMLESS is not set |
768 | # CONFIG_INPUT_POLLDEV is not set | 805 | # CONFIG_INPUT_POLLDEV is not set |
806 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
769 | 807 | ||
770 | # | 808 | # |
771 | # Userland interfaces | 809 | # Userland interfaces |
@@ -820,6 +858,7 @@ CONFIG_SERIAL_CPM=y | |||
820 | CONFIG_SERIAL_CPM_CONSOLE=y | 858 | CONFIG_SERIAL_CPM_CONSOLE=y |
821 | # CONFIG_SERIAL_JSM is not set | 859 | # CONFIG_SERIAL_JSM is not set |
822 | # CONFIG_SERIAL_OF_PLATFORM is not set | 860 | # CONFIG_SERIAL_OF_PLATFORM is not set |
861 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
823 | CONFIG_UNIX98_PTYS=y | 862 | CONFIG_UNIX98_PTYS=y |
824 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 863 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
825 | CONFIG_LEGACY_PTYS=y | 864 | CONFIG_LEGACY_PTYS=y |
@@ -881,11 +920,6 @@ CONFIG_I2C_MPC=y | |||
881 | # CONFIG_I2C_TAOS_EVM is not set | 920 | # CONFIG_I2C_TAOS_EVM is not set |
882 | 921 | ||
883 | # | 922 | # |
884 | # Graphics adapter I2C/DDC channel drivers | ||
885 | # | ||
886 | # CONFIG_I2C_VOODOO3 is not set | ||
887 | |||
888 | # | ||
889 | # Other I2C/SMBus bus drivers | 923 | # Other I2C/SMBus bus drivers |
890 | # | 924 | # |
891 | # CONFIG_I2C_PCA_PLATFORM is not set | 925 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -893,7 +927,6 @@ CONFIG_I2C_MPC=y | |||
893 | # | 927 | # |
894 | # Miscellaneous I2C Chip support | 928 | # Miscellaneous I2C Chip support |
895 | # | 929 | # |
896 | # CONFIG_DS1682 is not set | ||
897 | # CONFIG_SENSORS_TSL2550 is not set | 930 | # CONFIG_SENSORS_TSL2550 is not set |
898 | # CONFIG_I2C_DEBUG_CORE is not set | 931 | # CONFIG_I2C_DEBUG_CORE is not set |
899 | # CONFIG_I2C_DEBUG_ALGO is not set | 932 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -925,6 +958,7 @@ CONFIG_GPIOLIB=y | |||
925 | # | 958 | # |
926 | # PCI GPIO expanders: | 959 | # PCI GPIO expanders: |
927 | # | 960 | # |
961 | # CONFIG_GPIO_CS5535 is not set | ||
928 | # CONFIG_GPIO_BT8XX is not set | 962 | # CONFIG_GPIO_BT8XX is not set |
929 | # CONFIG_GPIO_LANGWELL is not set | 963 | # CONFIG_GPIO_LANGWELL is not set |
930 | 964 | ||
@@ -967,6 +1001,7 @@ CONFIG_HWMON_DEBUG_CHIP=y | |||
967 | # CONFIG_SENSORS_GL520SM is not set | 1001 | # CONFIG_SENSORS_GL520SM is not set |
968 | # CONFIG_SENSORS_IT87 is not set | 1002 | # CONFIG_SENSORS_IT87 is not set |
969 | # CONFIG_SENSORS_LM63 is not set | 1003 | # CONFIG_SENSORS_LM63 is not set |
1004 | # CONFIG_SENSORS_LM73 is not set | ||
970 | CONFIG_SENSORS_LM75=y | 1005 | CONFIG_SENSORS_LM75=y |
971 | # CONFIG_SENSORS_LM77 is not set | 1006 | # CONFIG_SENSORS_LM77 is not set |
972 | # CONFIG_SENSORS_LM78 is not set | 1007 | # CONFIG_SENSORS_LM78 is not set |
@@ -1006,6 +1041,7 @@ CONFIG_SENSORS_LM75=y | |||
1006 | # CONFIG_SENSORS_W83L786NG is not set | 1041 | # CONFIG_SENSORS_W83L786NG is not set |
1007 | # CONFIG_SENSORS_W83627HF is not set | 1042 | # CONFIG_SENSORS_W83627HF is not set |
1008 | # CONFIG_SENSORS_W83627EHF is not set | 1043 | # CONFIG_SENSORS_W83627EHF is not set |
1044 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1009 | # CONFIG_THERMAL is not set | 1045 | # CONFIG_THERMAL is not set |
1010 | # CONFIG_WATCHDOG is not set | 1046 | # CONFIG_WATCHDOG is not set |
1011 | CONFIG_SSB_POSSIBLE=y | 1047 | CONFIG_SSB_POSSIBLE=y |
@@ -1025,11 +1061,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1025 | # CONFIG_TWL4030_CORE is not set | 1061 | # CONFIG_TWL4030_CORE is not set |
1026 | # CONFIG_MFD_TMIO is not set | 1062 | # CONFIG_MFD_TMIO is not set |
1027 | # CONFIG_PMIC_DA903X is not set | 1063 | # CONFIG_PMIC_DA903X is not set |
1064 | # CONFIG_PMIC_ADP5520 is not set | ||
1028 | # CONFIG_MFD_WM8400 is not set | 1065 | # CONFIG_MFD_WM8400 is not set |
1029 | # CONFIG_MFD_WM831X is not set | 1066 | # CONFIG_MFD_WM831X is not set |
1030 | # CONFIG_MFD_WM8350_I2C is not set | 1067 | # CONFIG_MFD_WM8350_I2C is not set |
1031 | # CONFIG_MFD_PCF50633 is not set | 1068 | # CONFIG_MFD_PCF50633 is not set |
1032 | # CONFIG_AB3100_CORE is not set | 1069 | # CONFIG_AB3100_CORE is not set |
1070 | # CONFIG_MFD_88PM8607 is not set | ||
1033 | # CONFIG_REGULATOR is not set | 1071 | # CONFIG_REGULATOR is not set |
1034 | # CONFIG_MEDIA_SUPPORT is not set | 1072 | # CONFIG_MEDIA_SUPPORT is not set |
1035 | 1073 | ||
@@ -1260,7 +1298,7 @@ CONFIG_FRAME_WARN=1024 | |||
1260 | # CONFIG_DEBUG_KERNEL is not set | 1298 | # CONFIG_DEBUG_KERNEL is not set |
1261 | # CONFIG_SLUB_DEBUG_ON is not set | 1299 | # CONFIG_SLUB_DEBUG_ON is not set |
1262 | # CONFIG_SLUB_STATS is not set | 1300 | # CONFIG_SLUB_STATS is not set |
1263 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1301 | CONFIG_DEBUG_BUGVERBOSE=y |
1264 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1302 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1265 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1303 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1266 | # CONFIG_LATENCYTOP is not set | 1304 | # CONFIG_LATENCYTOP is not set |
@@ -1286,7 +1324,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1286 | # CONFIG_KEYS is not set | 1324 | # CONFIG_KEYS is not set |
1287 | # CONFIG_SECURITY is not set | 1325 | # CONFIG_SECURITY is not set |
1288 | # CONFIG_SECURITYFS is not set | 1326 | # CONFIG_SECURITYFS is not set |
1289 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1327 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1328 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1329 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1330 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1331 | CONFIG_DEFAULT_SECURITY="" | ||
1290 | CONFIG_CRYPTO=y | 1332 | CONFIG_CRYPTO=y |
1291 | 1333 | ||
1292 | # | 1334 | # |
diff --git a/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig b/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig index 52acbac0c4f..fc656af04ea 100644 --- a/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig +++ b/arch/powerpc/configs/85xx/xes_mpc85xx_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:44 2009 | 4 | # Wed Jan 6 09:24:37 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -40,6 +40,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
40 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 40 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
41 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 41 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
42 | CONFIG_IRQ_PER_CPU=y | 42 | CONFIG_IRQ_PER_CPU=y |
43 | CONFIG_NR_IRQS=512 | ||
43 | CONFIG_STACKTRACE_SUPPORT=y | 44 | CONFIG_STACKTRACE_SUPPORT=y |
44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 45 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 46 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -63,6 +64,8 @@ CONFIG_AUDIT_ARCH=y | |||
63 | CONFIG_GENERIC_BUG=y | 64 | CONFIG_GENERIC_BUG=y |
64 | CONFIG_DTC=y | 65 | CONFIG_DTC=y |
65 | CONFIG_DEFAULT_UIMAGE=y | 66 | CONFIG_DEFAULT_UIMAGE=y |
67 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
68 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
66 | # CONFIG_PPC_DCR_NATIVE is not set | 69 | # CONFIG_PPC_DCR_NATIVE is not set |
67 | # CONFIG_PPC_DCR_MMIO is not set | 70 | # CONFIG_PPC_DCR_MMIO is not set |
68 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 71 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -93,6 +96,7 @@ CONFIG_AUDIT=y | |||
93 | # | 96 | # |
94 | CONFIG_TREE_RCU=y | 97 | CONFIG_TREE_RCU=y |
95 | # CONFIG_TREE_PREEMPT_RCU is not set | 98 | # CONFIG_TREE_PREEMPT_RCU is not set |
99 | # CONFIG_TINY_RCU is not set | ||
96 | # CONFIG_RCU_TRACE is not set | 100 | # CONFIG_RCU_TRACE is not set |
97 | CONFIG_RCU_FANOUT=32 | 101 | CONFIG_RCU_FANOUT=32 |
98 | # CONFIG_RCU_FANOUT_EXACT is not set | 102 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -181,14 +185,41 @@ CONFIG_LBDAF=y | |||
181 | # IO Schedulers | 185 | # IO Schedulers |
182 | # | 186 | # |
183 | CONFIG_IOSCHED_NOOP=y | 187 | CONFIG_IOSCHED_NOOP=y |
184 | CONFIG_IOSCHED_AS=y | ||
185 | CONFIG_IOSCHED_DEADLINE=y | 188 | CONFIG_IOSCHED_DEADLINE=y |
186 | CONFIG_IOSCHED_CFQ=y | 189 | CONFIG_IOSCHED_CFQ=y |
187 | # CONFIG_DEFAULT_AS is not set | ||
188 | # CONFIG_DEFAULT_DEADLINE is not set | 190 | # CONFIG_DEFAULT_DEADLINE is not set |
189 | CONFIG_DEFAULT_CFQ=y | 191 | CONFIG_DEFAULT_CFQ=y |
190 | # CONFIG_DEFAULT_NOOP is not set | 192 | # CONFIG_DEFAULT_NOOP is not set |
191 | CONFIG_DEFAULT_IOSCHED="cfq" | 193 | CONFIG_DEFAULT_IOSCHED="cfq" |
194 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
195 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
196 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
197 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
201 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_READ_LOCK is not set | ||
206 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_READ_UNLOCK=y | ||
210 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
214 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
215 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
216 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
217 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
218 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
219 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
220 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
221 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
222 | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||
192 | # CONFIG_FREEZER is not set | 223 | # CONFIG_FREEZER is not set |
193 | CONFIG_PPC_MSI_BITMAP=y | 224 | CONFIG_PPC_MSI_BITMAP=y |
194 | 225 | ||
@@ -198,7 +229,7 @@ CONFIG_PPC_MSI_BITMAP=y | |||
198 | # CONFIG_PPC_CELL is not set | 229 | # CONFIG_PPC_CELL is not set |
199 | # CONFIG_PPC_CELL_NATIVE is not set | 230 | # CONFIG_PPC_CELL_NATIVE is not set |
200 | # CONFIG_PQ2ADS is not set | 231 | # CONFIG_PQ2ADS is not set |
201 | CONFIG_MPC85xx=y | 232 | CONFIG_FSL_SOC_BOOKE=y |
202 | # CONFIG_MPC8540_ADS is not set | 233 | # CONFIG_MPC8540_ADS is not set |
203 | # CONFIG_MPC8560_ADS is not set | 234 | # CONFIG_MPC8560_ADS is not set |
204 | # CONFIG_MPC85xx_CDS is not set | 235 | # CONFIG_MPC85xx_CDS is not set |
@@ -217,6 +248,7 @@ CONFIG_XES_MPC85xx=y | |||
217 | # CONFIG_TQM8560 is not set | 248 | # CONFIG_TQM8560 is not set |
218 | # CONFIG_SBC8548 is not set | 249 | # CONFIG_SBC8548 is not set |
219 | # CONFIG_SBC8560 is not set | 250 | # CONFIG_SBC8560 is not set |
251 | # CONFIG_P4080_DS is not set | ||
220 | # CONFIG_IPIC is not set | 252 | # CONFIG_IPIC is not set |
221 | CONFIG_MPIC=y | 253 | CONFIG_MPIC=y |
222 | # CONFIG_MPIC_WEIRD is not set | 254 | # CONFIG_MPIC_WEIRD is not set |
@@ -261,6 +293,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | |||
261 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 293 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
262 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 294 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
263 | # CONFIG_IRQ_ALL_CPUS is not set | 295 | # CONFIG_IRQ_ALL_CPUS is not set |
296 | CONFIG_SPARSE_IRQ=y | ||
264 | CONFIG_MAX_ACTIVE_REGIONS=32 | 297 | CONFIG_MAX_ACTIVE_REGIONS=32 |
265 | CONFIG_ARCH_FLATMEM_ENABLE=y | 298 | CONFIG_ARCH_FLATMEM_ENABLE=y |
266 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 299 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -277,8 +310,6 @@ CONFIG_MIGRATION=y | |||
277 | CONFIG_ZONE_DMA_FLAG=1 | 310 | CONFIG_ZONE_DMA_FLAG=1 |
278 | CONFIG_BOUNCE=y | 311 | CONFIG_BOUNCE=y |
279 | CONFIG_VIRT_TO_BUS=y | 312 | CONFIG_VIRT_TO_BUS=y |
280 | CONFIG_HAVE_MLOCK=y | ||
281 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
282 | # CONFIG_KSM is not set | 313 | # CONFIG_KSM is not set |
283 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 314 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
284 | CONFIG_PPC_4K_PAGES=y | 315 | CONFIG_PPC_4K_PAGES=y |
@@ -404,6 +435,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y | |||
404 | CONFIG_INET6_XFRM_MODE_BEET=y | 435 | CONFIG_INET6_XFRM_MODE_BEET=y |
405 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 436 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
406 | CONFIG_IPV6_SIT=y | 437 | CONFIG_IPV6_SIT=y |
438 | # CONFIG_IPV6_SIT_6RD is not set | ||
407 | CONFIG_IPV6_NDISC_NODETYPE=y | 439 | CONFIG_IPV6_NDISC_NODETYPE=y |
408 | # CONFIG_IPV6_TUNNEL is not set | 440 | # CONFIG_IPV6_TUNNEL is not set |
409 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 441 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -441,7 +473,13 @@ CONFIG_IPV6_NDISC_NODETYPE=y | |||
441 | # CONFIG_BT is not set | 473 | # CONFIG_BT is not set |
442 | # CONFIG_AF_RXRPC is not set | 474 | # CONFIG_AF_RXRPC is not set |
443 | CONFIG_FIB_RULES=y | 475 | CONFIG_FIB_RULES=y |
444 | # CONFIG_WIRELESS is not set | 476 | CONFIG_WIRELESS=y |
477 | # CONFIG_CFG80211 is not set | ||
478 | # CONFIG_LIB80211 is not set | ||
479 | |||
480 | # | ||
481 | # CFG80211 needs to be enabled for MAC80211 | ||
482 | # | ||
445 | # CONFIG_WIMAX is not set | 483 | # CONFIG_WIMAX is not set |
446 | # CONFIG_RFKILL is not set | 484 | # CONFIG_RFKILL is not set |
447 | # CONFIG_NET_9P is not set | 485 | # CONFIG_NET_9P is not set |
@@ -576,6 +614,10 @@ CONFIG_BLK_DEV=y | |||
576 | # CONFIG_BLK_DEV_COW_COMMON is not set | 614 | # CONFIG_BLK_DEV_COW_COMMON is not set |
577 | CONFIG_BLK_DEV_LOOP=y | 615 | CONFIG_BLK_DEV_LOOP=y |
578 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 616 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
617 | |||
618 | # | ||
619 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
620 | # | ||
579 | CONFIG_BLK_DEV_NBD=y | 621 | CONFIG_BLK_DEV_NBD=y |
580 | # CONFIG_BLK_DEV_SX8 is not set | 622 | # CONFIG_BLK_DEV_SX8 is not set |
581 | # CONFIG_BLK_DEV_UB is not set | 623 | # CONFIG_BLK_DEV_UB is not set |
@@ -587,6 +629,7 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 | |||
587 | # CONFIG_ATA_OVER_ETH is not set | 629 | # CONFIG_ATA_OVER_ETH is not set |
588 | # CONFIG_BLK_DEV_HD is not set | 630 | # CONFIG_BLK_DEV_HD is not set |
589 | CONFIG_MISC_DEVICES=y | 631 | CONFIG_MISC_DEVICES=y |
632 | # CONFIG_AD525X_DPOT is not set | ||
590 | # CONFIG_PHANTOM is not set | 633 | # CONFIG_PHANTOM is not set |
591 | # CONFIG_SGI_IOC4 is not set | 634 | # CONFIG_SGI_IOC4 is not set |
592 | # CONFIG_TIFM_CORE is not set | 635 | # CONFIG_TIFM_CORE is not set |
@@ -594,6 +637,7 @@ CONFIG_MISC_DEVICES=y | |||
594 | # CONFIG_ENCLOSURE_SERVICES is not set | 637 | # CONFIG_ENCLOSURE_SERVICES is not set |
595 | # CONFIG_HP_ILO is not set | 638 | # CONFIG_HP_ILO is not set |
596 | # CONFIG_ISL29003 is not set | 639 | # CONFIG_ISL29003 is not set |
640 | # CONFIG_DS1682 is not set | ||
597 | # CONFIG_C2PORT is not set | 641 | # CONFIG_C2PORT is not set |
598 | 642 | ||
599 | # | 643 | # |
@@ -646,7 +690,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
646 | # CONFIG_SCSI_BNX2_ISCSI is not set | 690 | # CONFIG_SCSI_BNX2_ISCSI is not set |
647 | # CONFIG_BE2ISCSI is not set | 691 | # CONFIG_BE2ISCSI is not set |
648 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 692 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
693 | # CONFIG_SCSI_HPSA is not set | ||
649 | # CONFIG_SCSI_3W_9XXX is not set | 694 | # CONFIG_SCSI_3W_9XXX is not set |
695 | # CONFIG_SCSI_3W_SAS is not set | ||
650 | # CONFIG_SCSI_ACARD is not set | 696 | # CONFIG_SCSI_ACARD is not set |
651 | # CONFIG_SCSI_AACRAID is not set | 697 | # CONFIG_SCSI_AACRAID is not set |
652 | # CONFIG_SCSI_AIC7XXX is not set | 698 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -685,6 +731,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
685 | # CONFIG_SCSI_NSP32 is not set | 731 | # CONFIG_SCSI_NSP32 is not set |
686 | # CONFIG_SCSI_DEBUG is not set | 732 | # CONFIG_SCSI_DEBUG is not set |
687 | # CONFIG_SCSI_PMCRAID is not set | 733 | # CONFIG_SCSI_PMCRAID is not set |
734 | # CONFIG_SCSI_PM8001 is not set | ||
688 | # CONFIG_SCSI_SRP is not set | 735 | # CONFIG_SCSI_SRP is not set |
689 | # CONFIG_SCSI_BFA_FC is not set | 736 | # CONFIG_SCSI_BFA_FC is not set |
690 | # CONFIG_SCSI_DH is not set | 737 | # CONFIG_SCSI_DH is not set |
@@ -740,15 +787,16 @@ CONFIG_PATA_ALI=y | |||
740 | # CONFIG_PATA_NS87415 is not set | 787 | # CONFIG_PATA_NS87415 is not set |
741 | # CONFIG_PATA_OPTI is not set | 788 | # CONFIG_PATA_OPTI is not set |
742 | # CONFIG_PATA_OPTIDMA is not set | 789 | # CONFIG_PATA_OPTIDMA is not set |
790 | # CONFIG_PATA_PDC2027X is not set | ||
743 | # CONFIG_PATA_PDC_OLD is not set | 791 | # CONFIG_PATA_PDC_OLD is not set |
744 | # CONFIG_PATA_RADISYS is not set | 792 | # CONFIG_PATA_RADISYS is not set |
745 | # CONFIG_PATA_RDC is not set | 793 | # CONFIG_PATA_RDC is not set |
746 | # CONFIG_PATA_RZ1000 is not set | 794 | # CONFIG_PATA_RZ1000 is not set |
747 | # CONFIG_PATA_SC1200 is not set | 795 | # CONFIG_PATA_SC1200 is not set |
748 | # CONFIG_PATA_SERVERWORKS is not set | 796 | # CONFIG_PATA_SERVERWORKS is not set |
749 | # CONFIG_PATA_PDC2027X is not set | ||
750 | # CONFIG_PATA_SIL680 is not set | 797 | # CONFIG_PATA_SIL680 is not set |
751 | # CONFIG_PATA_SIS is not set | 798 | # CONFIG_PATA_SIS is not set |
799 | # CONFIG_PATA_TOSHIBA is not set | ||
752 | # CONFIG_PATA_VIA is not set | 800 | # CONFIG_PATA_VIA is not set |
753 | # CONFIG_PATA_WINBOND is not set | 801 | # CONFIG_PATA_WINBOND is not set |
754 | # CONFIG_PATA_PLATFORM is not set | 802 | # CONFIG_PATA_PLATFORM is not set |
@@ -765,7 +813,7 @@ CONFIG_PATA_ALI=y | |||
765 | # | 813 | # |
766 | 814 | ||
767 | # | 815 | # |
768 | # See the help texts for more information. | 816 | # The newer stack is recommended. |
769 | # | 817 | # |
770 | # CONFIG_FIREWIRE is not set | 818 | # CONFIG_FIREWIRE is not set |
771 | # CONFIG_IEEE1394 is not set | 819 | # CONFIG_IEEE1394 is not set |
@@ -852,8 +900,11 @@ CONFIG_GIANFAR=y | |||
852 | # CONFIG_NETDEV_10000 is not set | 900 | # CONFIG_NETDEV_10000 is not set |
853 | # CONFIG_TR is not set | 901 | # CONFIG_TR is not set |
854 | CONFIG_WLAN=y | 902 | CONFIG_WLAN=y |
855 | # CONFIG_WLAN_PRE80211 is not set | 903 | # CONFIG_AIRO is not set |
856 | # CONFIG_WLAN_80211 is not set | 904 | # CONFIG_ATMEL is not set |
905 | # CONFIG_PRISM54 is not set | ||
906 | # CONFIG_USB_ZD1201 is not set | ||
907 | # CONFIG_HOSTAP is not set | ||
857 | 908 | ||
858 | # | 909 | # |
859 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 910 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -876,6 +927,7 @@ CONFIG_WLAN=y | |||
876 | # CONFIG_NETCONSOLE is not set | 927 | # CONFIG_NETCONSOLE is not set |
877 | # CONFIG_NETPOLL is not set | 928 | # CONFIG_NETPOLL is not set |
878 | # CONFIG_NET_POLL_CONTROLLER is not set | 929 | # CONFIG_NET_POLL_CONTROLLER is not set |
930 | # CONFIG_VMXNET3 is not set | ||
879 | # CONFIG_ISDN is not set | 931 | # CONFIG_ISDN is not set |
880 | # CONFIG_PHONE is not set | 932 | # CONFIG_PHONE is not set |
881 | 933 | ||
@@ -885,6 +937,7 @@ CONFIG_WLAN=y | |||
885 | CONFIG_INPUT=y | 937 | CONFIG_INPUT=y |
886 | # CONFIG_INPUT_FF_MEMLESS is not set | 938 | # CONFIG_INPUT_FF_MEMLESS is not set |
887 | # CONFIG_INPUT_POLLDEV is not set | 939 | # CONFIG_INPUT_POLLDEV is not set |
940 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
888 | 941 | ||
889 | # | 942 | # |
890 | # Userland interfaces | 943 | # Userland interfaces |
@@ -914,6 +967,7 @@ CONFIG_SERIO_SERPORT=y | |||
914 | CONFIG_SERIO_LIBPS2=y | 967 | CONFIG_SERIO_LIBPS2=y |
915 | # CONFIG_SERIO_RAW is not set | 968 | # CONFIG_SERIO_RAW is not set |
916 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 969 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
970 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
917 | # CONFIG_GAMEPORT is not set | 971 | # CONFIG_GAMEPORT is not set |
918 | 972 | ||
919 | # | 973 | # |
@@ -950,6 +1004,7 @@ CONFIG_SERIAL_CORE=y | |||
950 | CONFIG_SERIAL_CORE_CONSOLE=y | 1004 | CONFIG_SERIAL_CORE_CONSOLE=y |
951 | # CONFIG_SERIAL_JSM is not set | 1005 | # CONFIG_SERIAL_JSM is not set |
952 | # CONFIG_SERIAL_OF_PLATFORM is not set | 1006 | # CONFIG_SERIAL_OF_PLATFORM is not set |
1007 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
953 | CONFIG_UNIX98_PTYS=y | 1008 | CONFIG_UNIX98_PTYS=y |
954 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 1009 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
955 | CONFIG_LEGACY_PTYS=y | 1010 | CONFIG_LEGACY_PTYS=y |
@@ -1007,11 +1062,6 @@ CONFIG_I2C_MPC=y | |||
1007 | # CONFIG_I2C_TINY_USB is not set | 1062 | # CONFIG_I2C_TINY_USB is not set |
1008 | 1063 | ||
1009 | # | 1064 | # |
1010 | # Graphics adapter I2C/DDC channel drivers | ||
1011 | # | ||
1012 | # CONFIG_I2C_VOODOO3 is not set | ||
1013 | |||
1014 | # | ||
1015 | # Other I2C/SMBus bus drivers | 1065 | # Other I2C/SMBus bus drivers |
1016 | # | 1066 | # |
1017 | # CONFIG_I2C_PCA_PLATFORM is not set | 1067 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -1020,7 +1070,6 @@ CONFIG_I2C_MPC=y | |||
1020 | # | 1070 | # |
1021 | # Miscellaneous I2C Chip support | 1071 | # Miscellaneous I2C Chip support |
1022 | # | 1072 | # |
1023 | # CONFIG_DS1682 is not set | ||
1024 | # CONFIG_SENSORS_TSL2550 is not set | 1073 | # CONFIG_SENSORS_TSL2550 is not set |
1025 | # CONFIG_I2C_DEBUG_CORE is not set | 1074 | # CONFIG_I2C_DEBUG_CORE is not set |
1026 | # CONFIG_I2C_DEBUG_ALGO is not set | 1075 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1053,6 +1102,7 @@ CONFIG_GPIO_PCA953X=y | |||
1053 | # | 1102 | # |
1054 | # PCI GPIO expanders: | 1103 | # PCI GPIO expanders: |
1055 | # | 1104 | # |
1105 | # CONFIG_GPIO_CS5535 is not set | ||
1056 | # CONFIG_GPIO_BT8XX is not set | 1106 | # CONFIG_GPIO_BT8XX is not set |
1057 | # CONFIG_GPIO_LANGWELL is not set | 1107 | # CONFIG_GPIO_LANGWELL is not set |
1058 | 1108 | ||
@@ -1095,6 +1145,7 @@ CONFIG_SENSORS_DS1621=y | |||
1095 | # CONFIG_SENSORS_GL520SM is not set | 1145 | # CONFIG_SENSORS_GL520SM is not set |
1096 | # CONFIG_SENSORS_IT87 is not set | 1146 | # CONFIG_SENSORS_IT87 is not set |
1097 | # CONFIG_SENSORS_LM63 is not set | 1147 | # CONFIG_SENSORS_LM63 is not set |
1148 | # CONFIG_SENSORS_LM73 is not set | ||
1098 | # CONFIG_SENSORS_LM75 is not set | 1149 | # CONFIG_SENSORS_LM75 is not set |
1099 | # CONFIG_SENSORS_LM77 is not set | 1150 | # CONFIG_SENSORS_LM77 is not set |
1100 | # CONFIG_SENSORS_LM78 is not set | 1151 | # CONFIG_SENSORS_LM78 is not set |
@@ -1134,6 +1185,7 @@ CONFIG_SENSORS_LM90=y | |||
1134 | # CONFIG_SENSORS_W83L786NG is not set | 1185 | # CONFIG_SENSORS_W83L786NG is not set |
1135 | # CONFIG_SENSORS_W83627HF is not set | 1186 | # CONFIG_SENSORS_W83627HF is not set |
1136 | # CONFIG_SENSORS_W83627EHF is not set | 1187 | # CONFIG_SENSORS_W83627EHF is not set |
1188 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1137 | # CONFIG_THERMAL is not set | 1189 | # CONFIG_THERMAL is not set |
1138 | CONFIG_WATCHDOG=y | 1190 | CONFIG_WATCHDOG=y |
1139 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1191 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1172,11 +1224,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1172 | # CONFIG_TWL4030_CORE is not set | 1224 | # CONFIG_TWL4030_CORE is not set |
1173 | # CONFIG_MFD_TMIO is not set | 1225 | # CONFIG_MFD_TMIO is not set |
1174 | # CONFIG_PMIC_DA903X is not set | 1226 | # CONFIG_PMIC_DA903X is not set |
1227 | # CONFIG_PMIC_ADP5520 is not set | ||
1175 | # CONFIG_MFD_WM8400 is not set | 1228 | # CONFIG_MFD_WM8400 is not set |
1176 | # CONFIG_MFD_WM831X is not set | 1229 | # CONFIG_MFD_WM831X is not set |
1177 | # CONFIG_MFD_WM8350_I2C is not set | 1230 | # CONFIG_MFD_WM8350_I2C is not set |
1178 | # CONFIG_MFD_PCF50633 is not set | 1231 | # CONFIG_MFD_PCF50633 is not set |
1179 | # CONFIG_AB3100_CORE is not set | 1232 | # CONFIG_AB3100_CORE is not set |
1233 | # CONFIG_MFD_88PM8607 is not set | ||
1180 | # CONFIG_REGULATOR is not set | 1234 | # CONFIG_REGULATOR is not set |
1181 | # CONFIG_MEDIA_SUPPORT is not set | 1235 | # CONFIG_MEDIA_SUPPORT is not set |
1182 | 1236 | ||
@@ -1368,6 +1422,7 @@ CONFIG_LEDS_GPIO_OF=y | |||
1368 | # CONFIG_LEDS_LP3944 is not set | 1422 | # CONFIG_LEDS_LP3944 is not set |
1369 | CONFIG_LEDS_PCA955X=y | 1423 | CONFIG_LEDS_PCA955X=y |
1370 | # CONFIG_LEDS_BD2802 is not set | 1424 | # CONFIG_LEDS_BD2802 is not set |
1425 | # CONFIG_LEDS_LT3593 is not set | ||
1371 | 1426 | ||
1372 | # | 1427 | # |
1373 | # LED Triggers | 1428 | # LED Triggers |
@@ -1391,7 +1446,6 @@ CONFIG_EDAC=y | |||
1391 | # | 1446 | # |
1392 | # CONFIG_EDAC_DEBUG is not set | 1447 | # CONFIG_EDAC_DEBUG is not set |
1393 | CONFIG_EDAC_MM_EDAC=y | 1448 | CONFIG_EDAC_MM_EDAC=y |
1394 | CONFIG_EDAC_MPC85XX=y | ||
1395 | CONFIG_RTC_LIB=y | 1449 | CONFIG_RTC_LIB=y |
1396 | CONFIG_RTC_CLASS=y | 1450 | CONFIG_RTC_CLASS=y |
1397 | CONFIG_RTC_HCTOSYS=y | 1451 | CONFIG_RTC_HCTOSYS=y |
@@ -1420,6 +1474,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1420 | # CONFIG_RTC_DRV_PCF8563 is not set | 1474 | # CONFIG_RTC_DRV_PCF8563 is not set |
1421 | # CONFIG_RTC_DRV_PCF8583 is not set | 1475 | # CONFIG_RTC_DRV_PCF8583 is not set |
1422 | # CONFIG_RTC_DRV_M41T80 is not set | 1476 | # CONFIG_RTC_DRV_M41T80 is not set |
1477 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1423 | # CONFIG_RTC_DRV_S35390A is not set | 1478 | # CONFIG_RTC_DRV_S35390A is not set |
1424 | # CONFIG_RTC_DRV_FM3130 is not set | 1479 | # CONFIG_RTC_DRV_FM3130 is not set |
1425 | # CONFIG_RTC_DRV_RX8581 is not set | 1480 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1441,7 +1496,9 @@ CONFIG_RTC_DRV_CMOS=y | |||
1441 | # CONFIG_RTC_DRV_M48T86 is not set | 1496 | # CONFIG_RTC_DRV_M48T86 is not set |
1442 | # CONFIG_RTC_DRV_M48T35 is not set | 1497 | # CONFIG_RTC_DRV_M48T35 is not set |
1443 | # CONFIG_RTC_DRV_M48T59 is not set | 1498 | # CONFIG_RTC_DRV_M48T59 is not set |
1499 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1444 | # CONFIG_RTC_DRV_BQ4802 is not set | 1500 | # CONFIG_RTC_DRV_BQ4802 is not set |
1501 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1445 | # CONFIG_RTC_DRV_V3020 is not set | 1502 | # CONFIG_RTC_DRV_V3020 is not set |
1446 | 1503 | ||
1447 | # | 1504 | # |
@@ -1772,7 +1829,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1772 | # CONFIG_KEYS is not set | 1829 | # CONFIG_KEYS is not set |
1773 | # CONFIG_SECURITY is not set | 1830 | # CONFIG_SECURITY is not set |
1774 | # CONFIG_SECURITYFS is not set | 1831 | # CONFIG_SECURITYFS is not set |
1775 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1832 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1833 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1834 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1835 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1836 | CONFIG_DEFAULT_SECURITY="" | ||
1776 | CONFIG_CRYPTO=y | 1837 | CONFIG_CRYPTO=y |
1777 | 1838 | ||
1778 | # | 1839 | # |
diff --git a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig index 6cd2cd65c2c..a85f927bf22 100644 --- a/arch/powerpc/configs/86xx/gef_ppc9a_defconfig +++ b/arch/powerpc/configs/86xx/gef_ppc9a_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:49 2009 | 4 | # Wed Jan 6 09:24:43 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -38,6 +38,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
40 | CONFIG_IRQ_PER_CPU=y | 40 | CONFIG_IRQ_PER_CPU=y |
41 | CONFIG_NR_IRQS=512 | ||
41 | CONFIG_STACKTRACE_SUPPORT=y | 42 | CONFIG_STACKTRACE_SUPPORT=y |
42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -62,6 +63,8 @@ CONFIG_AUDIT_ARCH=y | |||
62 | CONFIG_GENERIC_BUG=y | 63 | CONFIG_GENERIC_BUG=y |
63 | CONFIG_DTC=y | 64 | CONFIG_DTC=y |
64 | CONFIG_DEFAULT_UIMAGE=y | 65 | CONFIG_DEFAULT_UIMAGE=y |
66 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
67 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
65 | # CONFIG_PPC_DCR_NATIVE is not set | 68 | # CONFIG_PPC_DCR_NATIVE is not set |
66 | # CONFIG_PPC_DCR_MMIO is not set | 69 | # CONFIG_PPC_DCR_MMIO is not set |
67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 70 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -91,6 +94,7 @@ CONFIG_BSD_PROCESS_ACCT_V3=y | |||
91 | # | 94 | # |
92 | CONFIG_TREE_RCU=y | 95 | CONFIG_TREE_RCU=y |
93 | # CONFIG_TREE_PREEMPT_RCU is not set | 96 | # CONFIG_TREE_PREEMPT_RCU is not set |
97 | # CONFIG_TINY_RCU is not set | ||
94 | # CONFIG_RCU_TRACE is not set | 98 | # CONFIG_RCU_TRACE is not set |
95 | CONFIG_RCU_FANOUT=32 | 99 | CONFIG_RCU_FANOUT=32 |
96 | # CONFIG_RCU_FANOUT_EXACT is not set | 100 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -181,14 +185,41 @@ CONFIG_LBDAF=y | |||
181 | # IO Schedulers | 185 | # IO Schedulers |
182 | # | 186 | # |
183 | CONFIG_IOSCHED_NOOP=y | 187 | CONFIG_IOSCHED_NOOP=y |
184 | CONFIG_IOSCHED_AS=y | ||
185 | CONFIG_IOSCHED_DEADLINE=y | 188 | CONFIG_IOSCHED_DEADLINE=y |
186 | CONFIG_IOSCHED_CFQ=y | 189 | CONFIG_IOSCHED_CFQ=y |
187 | # CONFIG_DEFAULT_AS is not set | ||
188 | # CONFIG_DEFAULT_DEADLINE is not set | 190 | # CONFIG_DEFAULT_DEADLINE is not set |
189 | CONFIG_DEFAULT_CFQ=y | 191 | CONFIG_DEFAULT_CFQ=y |
190 | # CONFIG_DEFAULT_NOOP is not set | 192 | # CONFIG_DEFAULT_NOOP is not set |
191 | CONFIG_DEFAULT_IOSCHED="cfq" | 193 | CONFIG_DEFAULT_IOSCHED="cfq" |
194 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
195 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
196 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
197 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
200 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
201 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
202 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
203 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_READ_LOCK is not set | ||
206 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
209 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
210 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
211 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
212 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
214 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
215 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
216 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
217 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
218 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
219 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
220 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
221 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
222 | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||
192 | # CONFIG_FREEZER is not set | 223 | # CONFIG_FREEZER is not set |
193 | 224 | ||
194 | # | 225 | # |
@@ -259,6 +290,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | |||
259 | # CONFIG_KEXEC is not set | 290 | # CONFIG_KEXEC is not set |
260 | # CONFIG_CRASH_DUMP is not set | 291 | # CONFIG_CRASH_DUMP is not set |
261 | CONFIG_IRQ_ALL_CPUS=y | 292 | CONFIG_IRQ_ALL_CPUS=y |
293 | CONFIG_SPARSE_IRQ=y | ||
262 | CONFIG_MAX_ACTIVE_REGIONS=32 | 294 | CONFIG_MAX_ACTIVE_REGIONS=32 |
263 | CONFIG_ARCH_FLATMEM_ENABLE=y | 295 | CONFIG_ARCH_FLATMEM_ENABLE=y |
264 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 296 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -275,8 +307,6 @@ CONFIG_MIGRATION=y | |||
275 | CONFIG_ZONE_DMA_FLAG=1 | 307 | CONFIG_ZONE_DMA_FLAG=1 |
276 | CONFIG_BOUNCE=y | 308 | CONFIG_BOUNCE=y |
277 | CONFIG_VIRT_TO_BUS=y | 309 | CONFIG_VIRT_TO_BUS=y |
278 | CONFIG_HAVE_MLOCK=y | ||
279 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
280 | # CONFIG_KSM is not set | 310 | # CONFIG_KSM is not set |
281 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 311 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
282 | CONFIG_PPC_4K_PAGES=y | 312 | CONFIG_PPC_4K_PAGES=y |
@@ -314,7 +344,6 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
314 | # CONFIG_PCI_STUB is not set | 344 | # CONFIG_PCI_STUB is not set |
315 | # CONFIG_PCI_IOV is not set | 345 | # CONFIG_PCI_IOV is not set |
316 | CONFIG_PCCARD=y | 346 | CONFIG_PCCARD=y |
317 | # CONFIG_PCMCIA_DEBUG is not set | ||
318 | CONFIG_PCMCIA=y | 347 | CONFIG_PCMCIA=y |
319 | # CONFIG_PCMCIA_LOAD_CIS is not set | 348 | # CONFIG_PCMCIA_LOAD_CIS is not set |
320 | # CONFIG_PCMCIA_IOCTL is not set | 349 | # CONFIG_PCMCIA_IOCTL is not set |
@@ -414,6 +443,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
414 | CONFIG_INET6_XFRM_MODE_BEET=m | 443 | CONFIG_INET6_XFRM_MODE_BEET=m |
415 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 444 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
416 | CONFIG_IPV6_SIT=m | 445 | CONFIG_IPV6_SIT=m |
446 | # CONFIG_IPV6_SIT_6RD is not set | ||
417 | CONFIG_IPV6_NDISC_NODETYPE=y | 447 | CONFIG_IPV6_NDISC_NODETYPE=y |
418 | CONFIG_IPV6_TUNNEL=m | 448 | CONFIG_IPV6_TUNNEL=m |
419 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 449 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -451,7 +481,13 @@ CONFIG_NET_PKTGEN=m | |||
451 | # CONFIG_BT is not set | 481 | # CONFIG_BT is not set |
452 | # CONFIG_AF_RXRPC is not set | 482 | # CONFIG_AF_RXRPC is not set |
453 | CONFIG_FIB_RULES=y | 483 | CONFIG_FIB_RULES=y |
454 | # CONFIG_WIRELESS is not set | 484 | CONFIG_WIRELESS=y |
485 | # CONFIG_CFG80211 is not set | ||
486 | # CONFIG_LIB80211 is not set | ||
487 | |||
488 | # | ||
489 | # CFG80211 needs to be enabled for MAC80211 | ||
490 | # | ||
455 | # CONFIG_WIMAX is not set | 491 | # CONFIG_WIMAX is not set |
456 | # CONFIG_RFKILL is not set | 492 | # CONFIG_RFKILL is not set |
457 | # CONFIG_NET_9P is not set | 493 | # CONFIG_NET_9P is not set |
@@ -570,6 +606,10 @@ CONFIG_BLK_DEV=y | |||
570 | # CONFIG_BLK_DEV_COW_COMMON is not set | 606 | # CONFIG_BLK_DEV_COW_COMMON is not set |
571 | CONFIG_BLK_DEV_LOOP=m | 607 | CONFIG_BLK_DEV_LOOP=m |
572 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 608 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
609 | |||
610 | # | ||
611 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
612 | # | ||
573 | CONFIG_BLK_DEV_NBD=m | 613 | CONFIG_BLK_DEV_NBD=m |
574 | # CONFIG_BLK_DEV_SX8 is not set | 614 | # CONFIG_BLK_DEV_SX8 is not set |
575 | # CONFIG_BLK_DEV_UB is not set | 615 | # CONFIG_BLK_DEV_UB is not set |
@@ -581,6 +621,7 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 | |||
581 | # CONFIG_ATA_OVER_ETH is not set | 621 | # CONFIG_ATA_OVER_ETH is not set |
582 | # CONFIG_BLK_DEV_HD is not set | 622 | # CONFIG_BLK_DEV_HD is not set |
583 | CONFIG_MISC_DEVICES=y | 623 | CONFIG_MISC_DEVICES=y |
624 | # CONFIG_AD525X_DPOT is not set | ||
584 | # CONFIG_PHANTOM is not set | 625 | # CONFIG_PHANTOM is not set |
585 | # CONFIG_SGI_IOC4 is not set | 626 | # CONFIG_SGI_IOC4 is not set |
586 | # CONFIG_TIFM_CORE is not set | 627 | # CONFIG_TIFM_CORE is not set |
@@ -588,6 +629,7 @@ CONFIG_MISC_DEVICES=y | |||
588 | # CONFIG_ENCLOSURE_SERVICES is not set | 629 | # CONFIG_ENCLOSURE_SERVICES is not set |
589 | # CONFIG_HP_ILO is not set | 630 | # CONFIG_HP_ILO is not set |
590 | # CONFIG_ISL29003 is not set | 631 | # CONFIG_ISL29003 is not set |
632 | CONFIG_DS1682=y | ||
591 | # CONFIG_C2PORT is not set | 633 | # CONFIG_C2PORT is not set |
592 | 634 | ||
593 | # | 635 | # |
@@ -689,7 +731,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
689 | # CONFIG_SCSI_BNX2_ISCSI is not set | 731 | # CONFIG_SCSI_BNX2_ISCSI is not set |
690 | # CONFIG_BE2ISCSI is not set | 732 | # CONFIG_BE2ISCSI is not set |
691 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 733 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
734 | # CONFIG_SCSI_HPSA is not set | ||
692 | # CONFIG_SCSI_3W_9XXX is not set | 735 | # CONFIG_SCSI_3W_9XXX is not set |
736 | # CONFIG_SCSI_3W_SAS is not set | ||
693 | # CONFIG_SCSI_ACARD is not set | 737 | # CONFIG_SCSI_ACARD is not set |
694 | # CONFIG_SCSI_AACRAID is not set | 738 | # CONFIG_SCSI_AACRAID is not set |
695 | # CONFIG_SCSI_AIC7XXX is not set | 739 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -728,6 +772,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
728 | # CONFIG_SCSI_NSP32 is not set | 772 | # CONFIG_SCSI_NSP32 is not set |
729 | # CONFIG_SCSI_DEBUG is not set | 773 | # CONFIG_SCSI_DEBUG is not set |
730 | # CONFIG_SCSI_PMCRAID is not set | 774 | # CONFIG_SCSI_PMCRAID is not set |
775 | # CONFIG_SCSI_PM8001 is not set | ||
731 | # CONFIG_SCSI_SRP is not set | 776 | # CONFIG_SCSI_SRP is not set |
732 | # CONFIG_SCSI_BFA_FC is not set | 777 | # CONFIG_SCSI_BFA_FC is not set |
733 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | 778 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set |
@@ -785,15 +830,16 @@ CONFIG_SATA_SIL=y | |||
785 | # CONFIG_PATA_OPTI is not set | 830 | # CONFIG_PATA_OPTI is not set |
786 | # CONFIG_PATA_OPTIDMA is not set | 831 | # CONFIG_PATA_OPTIDMA is not set |
787 | # CONFIG_PATA_PCMCIA is not set | 832 | # CONFIG_PATA_PCMCIA is not set |
833 | # CONFIG_PATA_PDC2027X is not set | ||
788 | # CONFIG_PATA_PDC_OLD is not set | 834 | # CONFIG_PATA_PDC_OLD is not set |
789 | # CONFIG_PATA_RADISYS is not set | 835 | # CONFIG_PATA_RADISYS is not set |
790 | # CONFIG_PATA_RDC is not set | 836 | # CONFIG_PATA_RDC is not set |
791 | # CONFIG_PATA_RZ1000 is not set | 837 | # CONFIG_PATA_RZ1000 is not set |
792 | # CONFIG_PATA_SC1200 is not set | 838 | # CONFIG_PATA_SC1200 is not set |
793 | # CONFIG_PATA_SERVERWORKS is not set | 839 | # CONFIG_PATA_SERVERWORKS is not set |
794 | # CONFIG_PATA_PDC2027X is not set | ||
795 | # CONFIG_PATA_SIL680 is not set | 840 | # CONFIG_PATA_SIL680 is not set |
796 | # CONFIG_PATA_SIS is not set | 841 | # CONFIG_PATA_SIS is not set |
842 | # CONFIG_PATA_TOSHIBA is not set | ||
797 | # CONFIG_PATA_VIA is not set | 843 | # CONFIG_PATA_VIA is not set |
798 | # CONFIG_PATA_WINBOND is not set | 844 | # CONFIG_PATA_WINBOND is not set |
799 | # CONFIG_PATA_PLATFORM is not set | 845 | # CONFIG_PATA_PLATFORM is not set |
@@ -810,7 +856,7 @@ CONFIG_SATA_SIL=y | |||
810 | # | 856 | # |
811 | 857 | ||
812 | # | 858 | # |
813 | # See the help texts for more information. | 859 | # The newer stack is recommended. |
814 | # | 860 | # |
815 | # CONFIG_FIREWIRE is not set | 861 | # CONFIG_FIREWIRE is not set |
816 | # CONFIG_IEEE1394 is not set | 862 | # CONFIG_IEEE1394 is not set |
@@ -897,8 +943,14 @@ CONFIG_GIANFAR=y | |||
897 | # CONFIG_NETDEV_10000 is not set | 943 | # CONFIG_NETDEV_10000 is not set |
898 | # CONFIG_TR is not set | 944 | # CONFIG_TR is not set |
899 | CONFIG_WLAN=y | 945 | CONFIG_WLAN=y |
900 | # CONFIG_WLAN_PRE80211 is not set | 946 | # CONFIG_PCMCIA_RAYCS is not set |
901 | # CONFIG_WLAN_80211 is not set | 947 | # CONFIG_AIRO is not set |
948 | # CONFIG_ATMEL is not set | ||
949 | # CONFIG_AIRO_CS is not set | ||
950 | # CONFIG_PCMCIA_WL3501 is not set | ||
951 | # CONFIG_PRISM54 is not set | ||
952 | # CONFIG_USB_ZD1201 is not set | ||
953 | # CONFIG_HOSTAP is not set | ||
902 | 954 | ||
903 | # | 955 | # |
904 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 956 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -937,6 +989,7 @@ CONFIG_NETCONSOLE=y | |||
937 | CONFIG_NETPOLL=y | 989 | CONFIG_NETPOLL=y |
938 | CONFIG_NETPOLL_TRAP=y | 990 | CONFIG_NETPOLL_TRAP=y |
939 | CONFIG_NET_POLL_CONTROLLER=y | 991 | CONFIG_NET_POLL_CONTROLLER=y |
992 | # CONFIG_VMXNET3 is not set | ||
940 | # CONFIG_ISDN is not set | 993 | # CONFIG_ISDN is not set |
941 | # CONFIG_PHONE is not set | 994 | # CONFIG_PHONE is not set |
942 | 995 | ||
@@ -946,6 +999,7 @@ CONFIG_NET_POLL_CONTROLLER=y | |||
946 | CONFIG_INPUT=y | 999 | CONFIG_INPUT=y |
947 | # CONFIG_INPUT_FF_MEMLESS is not set | 1000 | # CONFIG_INPUT_FF_MEMLESS is not set |
948 | # CONFIG_INPUT_POLLDEV is not set | 1001 | # CONFIG_INPUT_POLLDEV is not set |
1002 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
949 | 1003 | ||
950 | # | 1004 | # |
951 | # Userland interfaces | 1005 | # Userland interfaces |
@@ -1005,6 +1059,7 @@ CONFIG_SERIAL_CORE=y | |||
1005 | CONFIG_SERIAL_CORE_CONSOLE=y | 1059 | CONFIG_SERIAL_CORE_CONSOLE=y |
1006 | # CONFIG_SERIAL_JSM is not set | 1060 | # CONFIG_SERIAL_JSM is not set |
1007 | # CONFIG_SERIAL_OF_PLATFORM is not set | 1061 | # CONFIG_SERIAL_OF_PLATFORM is not set |
1062 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
1008 | CONFIG_UNIX98_PTYS=y | 1063 | CONFIG_UNIX98_PTYS=y |
1009 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 1064 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
1010 | # CONFIG_LEGACY_PTYS is not set | 1065 | # CONFIG_LEGACY_PTYS is not set |
@@ -1070,11 +1125,6 @@ CONFIG_I2C_MPC=y | |||
1070 | # CONFIG_I2C_TINY_USB is not set | 1125 | # CONFIG_I2C_TINY_USB is not set |
1071 | 1126 | ||
1072 | # | 1127 | # |
1073 | # Graphics adapter I2C/DDC channel drivers | ||
1074 | # | ||
1075 | # CONFIG_I2C_VOODOO3 is not set | ||
1076 | |||
1077 | # | ||
1078 | # Other I2C/SMBus bus drivers | 1128 | # Other I2C/SMBus bus drivers |
1079 | # | 1129 | # |
1080 | # CONFIG_I2C_PCA_PLATFORM is not set | 1130 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -1083,7 +1133,6 @@ CONFIG_I2C_MPC=y | |||
1083 | # | 1133 | # |
1084 | # Miscellaneous I2C Chip support | 1134 | # Miscellaneous I2C Chip support |
1085 | # | 1135 | # |
1086 | CONFIG_DS1682=y | ||
1087 | # CONFIG_SENSORS_TSL2550 is not set | 1136 | # CONFIG_SENSORS_TSL2550 is not set |
1088 | # CONFIG_I2C_DEBUG_CORE is not set | 1137 | # CONFIG_I2C_DEBUG_CORE is not set |
1089 | # CONFIG_I2C_DEBUG_ALGO is not set | 1138 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1115,6 +1164,7 @@ CONFIG_GPIO_SYSFS=y | |||
1115 | # | 1164 | # |
1116 | # PCI GPIO expanders: | 1165 | # PCI GPIO expanders: |
1117 | # | 1166 | # |
1167 | # CONFIG_GPIO_CS5535 is not set | ||
1118 | # CONFIG_GPIO_BT8XX is not set | 1168 | # CONFIG_GPIO_BT8XX is not set |
1119 | # CONFIG_GPIO_LANGWELL is not set | 1169 | # CONFIG_GPIO_LANGWELL is not set |
1120 | 1170 | ||
@@ -1157,6 +1207,7 @@ CONFIG_HWMON=y | |||
1157 | # CONFIG_SENSORS_GL520SM is not set | 1207 | # CONFIG_SENSORS_GL520SM is not set |
1158 | # CONFIG_SENSORS_IT87 is not set | 1208 | # CONFIG_SENSORS_IT87 is not set |
1159 | # CONFIG_SENSORS_LM63 is not set | 1209 | # CONFIG_SENSORS_LM63 is not set |
1210 | # CONFIG_SENSORS_LM73 is not set | ||
1160 | # CONFIG_SENSORS_LM75 is not set | 1211 | # CONFIG_SENSORS_LM75 is not set |
1161 | # CONFIG_SENSORS_LM77 is not set | 1212 | # CONFIG_SENSORS_LM77 is not set |
1162 | # CONFIG_SENSORS_LM78 is not set | 1213 | # CONFIG_SENSORS_LM78 is not set |
@@ -1196,6 +1247,7 @@ CONFIG_SENSORS_LM92=y | |||
1196 | # CONFIG_SENSORS_W83L786NG is not set | 1247 | # CONFIG_SENSORS_W83L786NG is not set |
1197 | # CONFIG_SENSORS_W83627HF is not set | 1248 | # CONFIG_SENSORS_W83627HF is not set |
1198 | # CONFIG_SENSORS_W83627EHF is not set | 1249 | # CONFIG_SENSORS_W83627EHF is not set |
1250 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1199 | # CONFIG_THERMAL is not set | 1251 | # CONFIG_THERMAL is not set |
1200 | CONFIG_WATCHDOG=y | 1252 | CONFIG_WATCHDOG=y |
1201 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1253 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1235,11 +1287,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1235 | # CONFIG_TWL4030_CORE is not set | 1287 | # CONFIG_TWL4030_CORE is not set |
1236 | # CONFIG_MFD_TMIO is not set | 1288 | # CONFIG_MFD_TMIO is not set |
1237 | # CONFIG_PMIC_DA903X is not set | 1289 | # CONFIG_PMIC_DA903X is not set |
1290 | # CONFIG_PMIC_ADP5520 is not set | ||
1238 | # CONFIG_MFD_WM8400 is not set | 1291 | # CONFIG_MFD_WM8400 is not set |
1239 | # CONFIG_MFD_WM831X is not set | 1292 | # CONFIG_MFD_WM831X is not set |
1240 | # CONFIG_MFD_WM8350_I2C is not set | 1293 | # CONFIG_MFD_WM8350_I2C is not set |
1241 | # CONFIG_MFD_PCF50633 is not set | 1294 | # CONFIG_MFD_PCF50633 is not set |
1242 | # CONFIG_AB3100_CORE is not set | 1295 | # CONFIG_AB3100_CORE is not set |
1296 | # CONFIG_MFD_88PM8607 is not set | ||
1243 | # CONFIG_REGULATOR is not set | 1297 | # CONFIG_REGULATOR is not set |
1244 | # CONFIG_MEDIA_SUPPORT is not set | 1298 | # CONFIG_MEDIA_SUPPORT is not set |
1245 | 1299 | ||
@@ -1338,6 +1392,7 @@ CONFIG_USB=y | |||
1338 | CONFIG_USB_EHCI_HCD=y | 1392 | CONFIG_USB_EHCI_HCD=y |
1339 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1393 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1340 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1394 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1395 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1341 | # CONFIG_USB_EHCI_FSL is not set | 1396 | # CONFIG_USB_EHCI_FSL is not set |
1342 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | 1397 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set |
1343 | # CONFIG_USB_OXU210HP_HCD is not set | 1398 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1464,6 +1519,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1464 | # CONFIG_RTC_DRV_PCF8563 is not set | 1519 | # CONFIG_RTC_DRV_PCF8563 is not set |
1465 | # CONFIG_RTC_DRV_PCF8583 is not set | 1520 | # CONFIG_RTC_DRV_PCF8583 is not set |
1466 | # CONFIG_RTC_DRV_M41T80 is not set | 1521 | # CONFIG_RTC_DRV_M41T80 is not set |
1522 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1467 | # CONFIG_RTC_DRV_S35390A is not set | 1523 | # CONFIG_RTC_DRV_S35390A is not set |
1468 | # CONFIG_RTC_DRV_FM3130 is not set | 1524 | # CONFIG_RTC_DRV_FM3130 is not set |
1469 | CONFIG_RTC_DRV_RX8581=y | 1525 | CONFIG_RTC_DRV_RX8581=y |
@@ -1485,7 +1541,9 @@ CONFIG_RTC_DRV_RX8581=y | |||
1485 | # CONFIG_RTC_DRV_M48T86 is not set | 1541 | # CONFIG_RTC_DRV_M48T86 is not set |
1486 | # CONFIG_RTC_DRV_M48T35 is not set | 1542 | # CONFIG_RTC_DRV_M48T35 is not set |
1487 | # CONFIG_RTC_DRV_M48T59 is not set | 1543 | # CONFIG_RTC_DRV_M48T59 is not set |
1544 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1488 | # CONFIG_RTC_DRV_BQ4802 is not set | 1545 | # CONFIG_RTC_DRV_BQ4802 is not set |
1546 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1489 | # CONFIG_RTC_DRV_V3020 is not set | 1547 | # CONFIG_RTC_DRV_V3020 is not set |
1490 | 1548 | ||
1491 | # | 1549 | # |
@@ -1710,7 +1768,7 @@ CONFIG_MAGIC_SYSRQ=y | |||
1710 | # CONFIG_DEBUG_FS is not set | 1768 | # CONFIG_DEBUG_FS is not set |
1711 | # CONFIG_HEADERS_CHECK is not set | 1769 | # CONFIG_HEADERS_CHECK is not set |
1712 | # CONFIG_DEBUG_KERNEL is not set | 1770 | # CONFIG_DEBUG_KERNEL is not set |
1713 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1771 | CONFIG_DEBUG_BUGVERBOSE=y |
1714 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1772 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1715 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1773 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1716 | # CONFIG_LATENCYTOP is not set | 1774 | # CONFIG_LATENCYTOP is not set |
@@ -1737,7 +1795,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1737 | # CONFIG_KEYS is not set | 1795 | # CONFIG_KEYS is not set |
1738 | # CONFIG_SECURITY is not set | 1796 | # CONFIG_SECURITY is not set |
1739 | # CONFIG_SECURITYFS is not set | 1797 | # CONFIG_SECURITYFS is not set |
1740 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1798 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1799 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1800 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1801 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1802 | CONFIG_DEFAULT_SECURITY="" | ||
1741 | CONFIG_CRYPTO=y | 1803 | CONFIG_CRYPTO=y |
1742 | 1804 | ||
1743 | # | 1805 | # |
diff --git a/arch/powerpc/configs/86xx/gef_sbc310_defconfig b/arch/powerpc/configs/86xx/gef_sbc310_defconfig index a6a3768f730..eb58dec11a6 100644 --- a/arch/powerpc/configs/86xx/gef_sbc310_defconfig +++ b/arch/powerpc/configs/86xx/gef_sbc310_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:47 2009 | 4 | # Wed Jan 6 09:24:41 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -38,6 +38,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
40 | CONFIG_IRQ_PER_CPU=y | 40 | CONFIG_IRQ_PER_CPU=y |
41 | CONFIG_NR_IRQS=512 | ||
41 | CONFIG_STACKTRACE_SUPPORT=y | 42 | CONFIG_STACKTRACE_SUPPORT=y |
42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -62,6 +63,8 @@ CONFIG_AUDIT_ARCH=y | |||
62 | CONFIG_GENERIC_BUG=y | 63 | CONFIG_GENERIC_BUG=y |
63 | CONFIG_DTC=y | 64 | CONFIG_DTC=y |
64 | CONFIG_DEFAULT_UIMAGE=y | 65 | CONFIG_DEFAULT_UIMAGE=y |
66 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
67 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
65 | # CONFIG_PPC_DCR_NATIVE is not set | 68 | # CONFIG_PPC_DCR_NATIVE is not set |
66 | # CONFIG_PPC_DCR_MMIO is not set | 69 | # CONFIG_PPC_DCR_MMIO is not set |
67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 70 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -91,6 +94,7 @@ CONFIG_BSD_PROCESS_ACCT_V3=y | |||
91 | # | 94 | # |
92 | CONFIG_TREE_RCU=y | 95 | CONFIG_TREE_RCU=y |
93 | # CONFIG_TREE_PREEMPT_RCU is not set | 96 | # CONFIG_TREE_PREEMPT_RCU is not set |
97 | # CONFIG_TINY_RCU is not set | ||
94 | # CONFIG_RCU_TRACE is not set | 98 | # CONFIG_RCU_TRACE is not set |
95 | CONFIG_RCU_FANOUT=32 | 99 | CONFIG_RCU_FANOUT=32 |
96 | # CONFIG_RCU_FANOUT_EXACT is not set | 100 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -181,14 +185,41 @@ CONFIG_LBDAF=y | |||
181 | # IO Schedulers | 185 | # IO Schedulers |
182 | # | 186 | # |
183 | CONFIG_IOSCHED_NOOP=y | 187 | CONFIG_IOSCHED_NOOP=y |
184 | CONFIG_IOSCHED_AS=y | ||
185 | CONFIG_IOSCHED_DEADLINE=y | 188 | CONFIG_IOSCHED_DEADLINE=y |
186 | CONFIG_IOSCHED_CFQ=y | 189 | CONFIG_IOSCHED_CFQ=y |
187 | # CONFIG_DEFAULT_AS is not set | ||
188 | # CONFIG_DEFAULT_DEADLINE is not set | 190 | # CONFIG_DEFAULT_DEADLINE is not set |
189 | CONFIG_DEFAULT_CFQ=y | 191 | CONFIG_DEFAULT_CFQ=y |
190 | # CONFIG_DEFAULT_NOOP is not set | 192 | # CONFIG_DEFAULT_NOOP is not set |
191 | CONFIG_DEFAULT_IOSCHED="cfq" | 193 | CONFIG_DEFAULT_IOSCHED="cfq" |
194 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
195 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
196 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
197 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
200 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
201 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
202 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
203 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_READ_LOCK is not set | ||
206 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
209 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
210 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
211 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
212 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
214 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
215 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
216 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
217 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
218 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
219 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
220 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
221 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
222 | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||
192 | # CONFIG_FREEZER is not set | 223 | # CONFIG_FREEZER is not set |
193 | 224 | ||
194 | # | 225 | # |
@@ -259,6 +290,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | |||
259 | # CONFIG_KEXEC is not set | 290 | # CONFIG_KEXEC is not set |
260 | # CONFIG_CRASH_DUMP is not set | 291 | # CONFIG_CRASH_DUMP is not set |
261 | CONFIG_IRQ_ALL_CPUS=y | 292 | CONFIG_IRQ_ALL_CPUS=y |
293 | CONFIG_SPARSE_IRQ=y | ||
262 | CONFIG_MAX_ACTIVE_REGIONS=32 | 294 | CONFIG_MAX_ACTIVE_REGIONS=32 |
263 | CONFIG_ARCH_FLATMEM_ENABLE=y | 295 | CONFIG_ARCH_FLATMEM_ENABLE=y |
264 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 296 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -275,8 +307,6 @@ CONFIG_MIGRATION=y | |||
275 | CONFIG_ZONE_DMA_FLAG=1 | 307 | CONFIG_ZONE_DMA_FLAG=1 |
276 | CONFIG_BOUNCE=y | 308 | CONFIG_BOUNCE=y |
277 | CONFIG_VIRT_TO_BUS=y | 309 | CONFIG_VIRT_TO_BUS=y |
278 | CONFIG_HAVE_MLOCK=y | ||
279 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
280 | # CONFIG_KSM is not set | 310 | # CONFIG_KSM is not set |
281 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 311 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
282 | CONFIG_PPC_4K_PAGES=y | 312 | CONFIG_PPC_4K_PAGES=y |
@@ -314,7 +344,6 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
314 | # CONFIG_PCI_STUB is not set | 344 | # CONFIG_PCI_STUB is not set |
315 | # CONFIG_PCI_IOV is not set | 345 | # CONFIG_PCI_IOV is not set |
316 | CONFIG_PCCARD=y | 346 | CONFIG_PCCARD=y |
317 | # CONFIG_PCMCIA_DEBUG is not set | ||
318 | CONFIG_PCMCIA=y | 347 | CONFIG_PCMCIA=y |
319 | # CONFIG_PCMCIA_LOAD_CIS is not set | 348 | # CONFIG_PCMCIA_LOAD_CIS is not set |
320 | # CONFIG_PCMCIA_IOCTL is not set | 349 | # CONFIG_PCMCIA_IOCTL is not set |
@@ -414,6 +443,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
414 | CONFIG_INET6_XFRM_MODE_BEET=m | 443 | CONFIG_INET6_XFRM_MODE_BEET=m |
415 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 444 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
416 | CONFIG_IPV6_SIT=m | 445 | CONFIG_IPV6_SIT=m |
446 | # CONFIG_IPV6_SIT_6RD is not set | ||
417 | CONFIG_IPV6_NDISC_NODETYPE=y | 447 | CONFIG_IPV6_NDISC_NODETYPE=y |
418 | CONFIG_IPV6_TUNNEL=m | 448 | CONFIG_IPV6_TUNNEL=m |
419 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 449 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -451,7 +481,13 @@ CONFIG_NET_PKTGEN=m | |||
451 | # CONFIG_BT is not set | 481 | # CONFIG_BT is not set |
452 | # CONFIG_AF_RXRPC is not set | 482 | # CONFIG_AF_RXRPC is not set |
453 | CONFIG_FIB_RULES=y | 483 | CONFIG_FIB_RULES=y |
454 | # CONFIG_WIRELESS is not set | 484 | CONFIG_WIRELESS=y |
485 | # CONFIG_CFG80211 is not set | ||
486 | # CONFIG_LIB80211 is not set | ||
487 | |||
488 | # | ||
489 | # CFG80211 needs to be enabled for MAC80211 | ||
490 | # | ||
455 | # CONFIG_WIMAX is not set | 491 | # CONFIG_WIMAX is not set |
456 | # CONFIG_RFKILL is not set | 492 | # CONFIG_RFKILL is not set |
457 | # CONFIG_NET_9P is not set | 493 | # CONFIG_NET_9P is not set |
@@ -570,6 +606,10 @@ CONFIG_BLK_DEV=y | |||
570 | # CONFIG_BLK_DEV_COW_COMMON is not set | 606 | # CONFIG_BLK_DEV_COW_COMMON is not set |
571 | CONFIG_BLK_DEV_LOOP=m | 607 | CONFIG_BLK_DEV_LOOP=m |
572 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 608 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
609 | |||
610 | # | ||
611 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
612 | # | ||
573 | CONFIG_BLK_DEV_NBD=m | 613 | CONFIG_BLK_DEV_NBD=m |
574 | # CONFIG_BLK_DEV_SX8 is not set | 614 | # CONFIG_BLK_DEV_SX8 is not set |
575 | # CONFIG_BLK_DEV_UB is not set | 615 | # CONFIG_BLK_DEV_UB is not set |
@@ -581,6 +621,7 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 | |||
581 | # CONFIG_ATA_OVER_ETH is not set | 621 | # CONFIG_ATA_OVER_ETH is not set |
582 | # CONFIG_BLK_DEV_HD is not set | 622 | # CONFIG_BLK_DEV_HD is not set |
583 | CONFIG_MISC_DEVICES=y | 623 | CONFIG_MISC_DEVICES=y |
624 | # CONFIG_AD525X_DPOT is not set | ||
584 | # CONFIG_PHANTOM is not set | 625 | # CONFIG_PHANTOM is not set |
585 | # CONFIG_SGI_IOC4 is not set | 626 | # CONFIG_SGI_IOC4 is not set |
586 | # CONFIG_TIFM_CORE is not set | 627 | # CONFIG_TIFM_CORE is not set |
@@ -588,6 +629,7 @@ CONFIG_MISC_DEVICES=y | |||
588 | # CONFIG_ENCLOSURE_SERVICES is not set | 629 | # CONFIG_ENCLOSURE_SERVICES is not set |
589 | # CONFIG_HP_ILO is not set | 630 | # CONFIG_HP_ILO is not set |
590 | # CONFIG_ISL29003 is not set | 631 | # CONFIG_ISL29003 is not set |
632 | CONFIG_DS1682=y | ||
591 | # CONFIG_C2PORT is not set | 633 | # CONFIG_C2PORT is not set |
592 | 634 | ||
593 | # | 635 | # |
@@ -689,7 +731,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
689 | # CONFIG_SCSI_BNX2_ISCSI is not set | 731 | # CONFIG_SCSI_BNX2_ISCSI is not set |
690 | # CONFIG_BE2ISCSI is not set | 732 | # CONFIG_BE2ISCSI is not set |
691 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 733 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
734 | # CONFIG_SCSI_HPSA is not set | ||
692 | # CONFIG_SCSI_3W_9XXX is not set | 735 | # CONFIG_SCSI_3W_9XXX is not set |
736 | # CONFIG_SCSI_3W_SAS is not set | ||
693 | # CONFIG_SCSI_ACARD is not set | 737 | # CONFIG_SCSI_ACARD is not set |
694 | # CONFIG_SCSI_AACRAID is not set | 738 | # CONFIG_SCSI_AACRAID is not set |
695 | # CONFIG_SCSI_AIC7XXX is not set | 739 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -728,6 +772,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
728 | # CONFIG_SCSI_NSP32 is not set | 772 | # CONFIG_SCSI_NSP32 is not set |
729 | # CONFIG_SCSI_DEBUG is not set | 773 | # CONFIG_SCSI_DEBUG is not set |
730 | # CONFIG_SCSI_PMCRAID is not set | 774 | # CONFIG_SCSI_PMCRAID is not set |
775 | # CONFIG_SCSI_PM8001 is not set | ||
731 | # CONFIG_SCSI_SRP is not set | 776 | # CONFIG_SCSI_SRP is not set |
732 | # CONFIG_SCSI_BFA_FC is not set | 777 | # CONFIG_SCSI_BFA_FC is not set |
733 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | 778 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set |
@@ -753,7 +798,7 @@ CONFIG_SATA_SIL24=y | |||
753 | # | 798 | # |
754 | 799 | ||
755 | # | 800 | # |
756 | # See the help texts for more information. | 801 | # The newer stack is recommended. |
757 | # | 802 | # |
758 | # CONFIG_FIREWIRE is not set | 803 | # CONFIG_FIREWIRE is not set |
759 | # CONFIG_IEEE1394 is not set | 804 | # CONFIG_IEEE1394 is not set |
@@ -840,8 +885,14 @@ CONFIG_GIANFAR=y | |||
840 | # CONFIG_NETDEV_10000 is not set | 885 | # CONFIG_NETDEV_10000 is not set |
841 | # CONFIG_TR is not set | 886 | # CONFIG_TR is not set |
842 | CONFIG_WLAN=y | 887 | CONFIG_WLAN=y |
843 | # CONFIG_WLAN_PRE80211 is not set | 888 | # CONFIG_PCMCIA_RAYCS is not set |
844 | # CONFIG_WLAN_80211 is not set | 889 | # CONFIG_AIRO is not set |
890 | # CONFIG_ATMEL is not set | ||
891 | # CONFIG_AIRO_CS is not set | ||
892 | # CONFIG_PCMCIA_WL3501 is not set | ||
893 | # CONFIG_PRISM54 is not set | ||
894 | # CONFIG_USB_ZD1201 is not set | ||
895 | # CONFIG_HOSTAP is not set | ||
845 | 896 | ||
846 | # | 897 | # |
847 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 898 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -880,6 +931,7 @@ CONFIG_NETCONSOLE=y | |||
880 | CONFIG_NETPOLL=y | 931 | CONFIG_NETPOLL=y |
881 | CONFIG_NETPOLL_TRAP=y | 932 | CONFIG_NETPOLL_TRAP=y |
882 | CONFIG_NET_POLL_CONTROLLER=y | 933 | CONFIG_NET_POLL_CONTROLLER=y |
934 | # CONFIG_VMXNET3 is not set | ||
883 | # CONFIG_ISDN is not set | 935 | # CONFIG_ISDN is not set |
884 | # CONFIG_PHONE is not set | 936 | # CONFIG_PHONE is not set |
885 | 937 | ||
@@ -889,6 +941,7 @@ CONFIG_NET_POLL_CONTROLLER=y | |||
889 | CONFIG_INPUT=y | 941 | CONFIG_INPUT=y |
890 | # CONFIG_INPUT_FF_MEMLESS is not set | 942 | # CONFIG_INPUT_FF_MEMLESS is not set |
891 | # CONFIG_INPUT_POLLDEV is not set | 943 | # CONFIG_INPUT_POLLDEV is not set |
944 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
892 | 945 | ||
893 | # | 946 | # |
894 | # Userland interfaces | 947 | # Userland interfaces |
@@ -948,6 +1001,7 @@ CONFIG_SERIAL_CORE=y | |||
948 | CONFIG_SERIAL_CORE_CONSOLE=y | 1001 | CONFIG_SERIAL_CORE_CONSOLE=y |
949 | # CONFIG_SERIAL_JSM is not set | 1002 | # CONFIG_SERIAL_JSM is not set |
950 | # CONFIG_SERIAL_OF_PLATFORM is not set | 1003 | # CONFIG_SERIAL_OF_PLATFORM is not set |
1004 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
951 | CONFIG_UNIX98_PTYS=y | 1005 | CONFIG_UNIX98_PTYS=y |
952 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 1006 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
953 | # CONFIG_LEGACY_PTYS is not set | 1007 | # CONFIG_LEGACY_PTYS is not set |
@@ -1013,11 +1067,6 @@ CONFIG_I2C_MPC=y | |||
1013 | # CONFIG_I2C_TINY_USB is not set | 1067 | # CONFIG_I2C_TINY_USB is not set |
1014 | 1068 | ||
1015 | # | 1069 | # |
1016 | # Graphics adapter I2C/DDC channel drivers | ||
1017 | # | ||
1018 | # CONFIG_I2C_VOODOO3 is not set | ||
1019 | |||
1020 | # | ||
1021 | # Other I2C/SMBus bus drivers | 1070 | # Other I2C/SMBus bus drivers |
1022 | # | 1071 | # |
1023 | # CONFIG_I2C_PCA_PLATFORM is not set | 1072 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -1026,7 +1075,6 @@ CONFIG_I2C_MPC=y | |||
1026 | # | 1075 | # |
1027 | # Miscellaneous I2C Chip support | 1076 | # Miscellaneous I2C Chip support |
1028 | # | 1077 | # |
1029 | CONFIG_DS1682=y | ||
1030 | # CONFIG_SENSORS_TSL2550 is not set | 1078 | # CONFIG_SENSORS_TSL2550 is not set |
1031 | # CONFIG_I2C_DEBUG_CORE is not set | 1079 | # CONFIG_I2C_DEBUG_CORE is not set |
1032 | # CONFIG_I2C_DEBUG_ALGO is not set | 1080 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1058,6 +1106,7 @@ CONFIG_GPIO_SYSFS=y | |||
1058 | # | 1106 | # |
1059 | # PCI GPIO expanders: | 1107 | # PCI GPIO expanders: |
1060 | # | 1108 | # |
1109 | # CONFIG_GPIO_CS5535 is not set | ||
1061 | # CONFIG_GPIO_BT8XX is not set | 1110 | # CONFIG_GPIO_BT8XX is not set |
1062 | # CONFIG_GPIO_LANGWELL is not set | 1111 | # CONFIG_GPIO_LANGWELL is not set |
1063 | 1112 | ||
@@ -1100,6 +1149,7 @@ CONFIG_HWMON=y | |||
1100 | # CONFIG_SENSORS_GL520SM is not set | 1149 | # CONFIG_SENSORS_GL520SM is not set |
1101 | # CONFIG_SENSORS_IT87 is not set | 1150 | # CONFIG_SENSORS_IT87 is not set |
1102 | # CONFIG_SENSORS_LM63 is not set | 1151 | # CONFIG_SENSORS_LM63 is not set |
1152 | # CONFIG_SENSORS_LM73 is not set | ||
1103 | # CONFIG_SENSORS_LM75 is not set | 1153 | # CONFIG_SENSORS_LM75 is not set |
1104 | # CONFIG_SENSORS_LM77 is not set | 1154 | # CONFIG_SENSORS_LM77 is not set |
1105 | # CONFIG_SENSORS_LM78 is not set | 1155 | # CONFIG_SENSORS_LM78 is not set |
@@ -1139,6 +1189,7 @@ CONFIG_SENSORS_LM92=y | |||
1139 | # CONFIG_SENSORS_W83L786NG is not set | 1189 | # CONFIG_SENSORS_W83L786NG is not set |
1140 | # CONFIG_SENSORS_W83627HF is not set | 1190 | # CONFIG_SENSORS_W83627HF is not set |
1141 | # CONFIG_SENSORS_W83627EHF is not set | 1191 | # CONFIG_SENSORS_W83627EHF is not set |
1192 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1142 | # CONFIG_THERMAL is not set | 1193 | # CONFIG_THERMAL is not set |
1143 | CONFIG_WATCHDOG=y | 1194 | CONFIG_WATCHDOG=y |
1144 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1195 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1178,11 +1229,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1178 | # CONFIG_TWL4030_CORE is not set | 1229 | # CONFIG_TWL4030_CORE is not set |
1179 | # CONFIG_MFD_TMIO is not set | 1230 | # CONFIG_MFD_TMIO is not set |
1180 | # CONFIG_PMIC_DA903X is not set | 1231 | # CONFIG_PMIC_DA903X is not set |
1232 | # CONFIG_PMIC_ADP5520 is not set | ||
1181 | # CONFIG_MFD_WM8400 is not set | 1233 | # CONFIG_MFD_WM8400 is not set |
1182 | # CONFIG_MFD_WM831X is not set | 1234 | # CONFIG_MFD_WM831X is not set |
1183 | # CONFIG_MFD_WM8350_I2C is not set | 1235 | # CONFIG_MFD_WM8350_I2C is not set |
1184 | # CONFIG_MFD_PCF50633 is not set | 1236 | # CONFIG_MFD_PCF50633 is not set |
1185 | # CONFIG_AB3100_CORE is not set | 1237 | # CONFIG_AB3100_CORE is not set |
1238 | # CONFIG_MFD_88PM8607 is not set | ||
1186 | # CONFIG_REGULATOR is not set | 1239 | # CONFIG_REGULATOR is not set |
1187 | # CONFIG_MEDIA_SUPPORT is not set | 1240 | # CONFIG_MEDIA_SUPPORT is not set |
1188 | 1241 | ||
@@ -1281,6 +1334,7 @@ CONFIG_USB=y | |||
1281 | CONFIG_USB_EHCI_HCD=y | 1334 | CONFIG_USB_EHCI_HCD=y |
1282 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1335 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1283 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1336 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1337 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1284 | # CONFIG_USB_EHCI_FSL is not set | 1338 | # CONFIG_USB_EHCI_FSL is not set |
1285 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | 1339 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set |
1286 | # CONFIG_USB_OXU210HP_HCD is not set | 1340 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1407,6 +1461,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1407 | # CONFIG_RTC_DRV_PCF8563 is not set | 1461 | # CONFIG_RTC_DRV_PCF8563 is not set |
1408 | # CONFIG_RTC_DRV_PCF8583 is not set | 1462 | # CONFIG_RTC_DRV_PCF8583 is not set |
1409 | # CONFIG_RTC_DRV_M41T80 is not set | 1463 | # CONFIG_RTC_DRV_M41T80 is not set |
1464 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1410 | # CONFIG_RTC_DRV_S35390A is not set | 1465 | # CONFIG_RTC_DRV_S35390A is not set |
1411 | # CONFIG_RTC_DRV_FM3130 is not set | 1466 | # CONFIG_RTC_DRV_FM3130 is not set |
1412 | CONFIG_RTC_DRV_RX8581=y | 1467 | CONFIG_RTC_DRV_RX8581=y |
@@ -1428,7 +1483,9 @@ CONFIG_RTC_DRV_RX8581=y | |||
1428 | # CONFIG_RTC_DRV_M48T86 is not set | 1483 | # CONFIG_RTC_DRV_M48T86 is not set |
1429 | # CONFIG_RTC_DRV_M48T35 is not set | 1484 | # CONFIG_RTC_DRV_M48T35 is not set |
1430 | # CONFIG_RTC_DRV_M48T59 is not set | 1485 | # CONFIG_RTC_DRV_M48T59 is not set |
1486 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1431 | # CONFIG_RTC_DRV_BQ4802 is not set | 1487 | # CONFIG_RTC_DRV_BQ4802 is not set |
1488 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1432 | # CONFIG_RTC_DRV_V3020 is not set | 1489 | # CONFIG_RTC_DRV_V3020 is not set |
1433 | 1490 | ||
1434 | # | 1491 | # |
@@ -1653,7 +1710,7 @@ CONFIG_MAGIC_SYSRQ=y | |||
1653 | # CONFIG_DEBUG_FS is not set | 1710 | # CONFIG_DEBUG_FS is not set |
1654 | # CONFIG_HEADERS_CHECK is not set | 1711 | # CONFIG_HEADERS_CHECK is not set |
1655 | # CONFIG_DEBUG_KERNEL is not set | 1712 | # CONFIG_DEBUG_KERNEL is not set |
1656 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1713 | CONFIG_DEBUG_BUGVERBOSE=y |
1657 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1714 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1658 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1715 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1659 | # CONFIG_LATENCYTOP is not set | 1716 | # CONFIG_LATENCYTOP is not set |
@@ -1680,7 +1737,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1680 | # CONFIG_KEYS is not set | 1737 | # CONFIG_KEYS is not set |
1681 | # CONFIG_SECURITY is not set | 1738 | # CONFIG_SECURITY is not set |
1682 | # CONFIG_SECURITYFS is not set | 1739 | # CONFIG_SECURITYFS is not set |
1683 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1740 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1741 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1742 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1743 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1744 | CONFIG_DEFAULT_SECURITY="" | ||
1684 | CONFIG_CRYPTO=y | 1745 | CONFIG_CRYPTO=y |
1685 | 1746 | ||
1686 | # | 1747 | # |
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig index 1975d41e076..4554d9bb03e 100644 --- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig +++ b/arch/powerpc/configs/86xx/gef_sbc610_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:48 2009 | 4 | # Wed Jan 6 09:24:42 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -38,6 +38,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
40 | CONFIG_IRQ_PER_CPU=y | 40 | CONFIG_IRQ_PER_CPU=y |
41 | CONFIG_NR_IRQS=512 | ||
41 | CONFIG_STACKTRACE_SUPPORT=y | 42 | CONFIG_STACKTRACE_SUPPORT=y |
42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -62,6 +63,8 @@ CONFIG_AUDIT_ARCH=y | |||
62 | CONFIG_GENERIC_BUG=y | 63 | CONFIG_GENERIC_BUG=y |
63 | CONFIG_DTC=y | 64 | CONFIG_DTC=y |
64 | CONFIG_DEFAULT_UIMAGE=y | 65 | CONFIG_DEFAULT_UIMAGE=y |
66 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
67 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
65 | # CONFIG_PPC_DCR_NATIVE is not set | 68 | # CONFIG_PPC_DCR_NATIVE is not set |
66 | # CONFIG_PPC_DCR_MMIO is not set | 69 | # CONFIG_PPC_DCR_MMIO is not set |
67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 70 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -91,6 +94,7 @@ CONFIG_BSD_PROCESS_ACCT_V3=y | |||
91 | # | 94 | # |
92 | CONFIG_TREE_RCU=y | 95 | CONFIG_TREE_RCU=y |
93 | # CONFIG_TREE_PREEMPT_RCU is not set | 96 | # CONFIG_TREE_PREEMPT_RCU is not set |
97 | # CONFIG_TINY_RCU is not set | ||
94 | # CONFIG_RCU_TRACE is not set | 98 | # CONFIG_RCU_TRACE is not set |
95 | CONFIG_RCU_FANOUT=32 | 99 | CONFIG_RCU_FANOUT=32 |
96 | # CONFIG_RCU_FANOUT_EXACT is not set | 100 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -182,14 +186,41 @@ CONFIG_LBDAF=y | |||
182 | # IO Schedulers | 186 | # IO Schedulers |
183 | # | 187 | # |
184 | CONFIG_IOSCHED_NOOP=y | 188 | CONFIG_IOSCHED_NOOP=y |
185 | CONFIG_IOSCHED_AS=y | ||
186 | CONFIG_IOSCHED_DEADLINE=y | 189 | CONFIG_IOSCHED_DEADLINE=y |
187 | CONFIG_IOSCHED_CFQ=y | 190 | CONFIG_IOSCHED_CFQ=y |
188 | # CONFIG_DEFAULT_AS is not set | ||
189 | # CONFIG_DEFAULT_DEADLINE is not set | 191 | # CONFIG_DEFAULT_DEADLINE is not set |
190 | CONFIG_DEFAULT_CFQ=y | 192 | CONFIG_DEFAULT_CFQ=y |
191 | # CONFIG_DEFAULT_NOOP is not set | 193 | # CONFIG_DEFAULT_NOOP is not set |
192 | CONFIG_DEFAULT_IOSCHED="cfq" | 194 | CONFIG_DEFAULT_IOSCHED="cfq" |
195 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
197 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
198 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
199 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
200 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
201 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
202 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
203 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
204 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
205 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
206 | # CONFIG_INLINE_READ_LOCK is not set | ||
207 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
208 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
209 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
210 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
211 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
212 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
213 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
214 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
215 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
216 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
217 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
218 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
219 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
220 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
221 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
222 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
223 | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||
193 | # CONFIG_FREEZER is not set | 224 | # CONFIG_FREEZER is not set |
194 | 225 | ||
195 | # | 226 | # |
@@ -260,6 +291,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | |||
260 | # CONFIG_KEXEC is not set | 291 | # CONFIG_KEXEC is not set |
261 | # CONFIG_CRASH_DUMP is not set | 292 | # CONFIG_CRASH_DUMP is not set |
262 | CONFIG_IRQ_ALL_CPUS=y | 293 | CONFIG_IRQ_ALL_CPUS=y |
294 | CONFIG_SPARSE_IRQ=y | ||
263 | CONFIG_MAX_ACTIVE_REGIONS=32 | 295 | CONFIG_MAX_ACTIVE_REGIONS=32 |
264 | CONFIG_ARCH_FLATMEM_ENABLE=y | 296 | CONFIG_ARCH_FLATMEM_ENABLE=y |
265 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 297 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -276,8 +308,6 @@ CONFIG_MIGRATION=y | |||
276 | CONFIG_ZONE_DMA_FLAG=1 | 308 | CONFIG_ZONE_DMA_FLAG=1 |
277 | CONFIG_BOUNCE=y | 309 | CONFIG_BOUNCE=y |
278 | CONFIG_VIRT_TO_BUS=y | 310 | CONFIG_VIRT_TO_BUS=y |
279 | CONFIG_HAVE_MLOCK=y | ||
280 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
281 | # CONFIG_KSM is not set | 311 | # CONFIG_KSM is not set |
282 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 312 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
283 | CONFIG_PPC_4K_PAGES=y | 313 | CONFIG_PPC_4K_PAGES=y |
@@ -400,6 +430,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
400 | CONFIG_INET6_XFRM_MODE_BEET=m | 430 | CONFIG_INET6_XFRM_MODE_BEET=m |
401 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 431 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
402 | CONFIG_IPV6_SIT=m | 432 | CONFIG_IPV6_SIT=m |
433 | # CONFIG_IPV6_SIT_6RD is not set | ||
403 | CONFIG_IPV6_NDISC_NODETYPE=y | 434 | CONFIG_IPV6_NDISC_NODETYPE=y |
404 | CONFIG_IPV6_TUNNEL=m | 435 | CONFIG_IPV6_TUNNEL=m |
405 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 436 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -588,9 +619,6 @@ CONFIG_NET_PKTGEN=m | |||
588 | CONFIG_FIB_RULES=y | 619 | CONFIG_FIB_RULES=y |
589 | CONFIG_WIRELESS=y | 620 | CONFIG_WIRELESS=y |
590 | # CONFIG_CFG80211 is not set | 621 | # CONFIG_CFG80211 is not set |
591 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
592 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
593 | # CONFIG_WIRELESS_EXT is not set | ||
594 | # CONFIG_LIB80211 is not set | 622 | # CONFIG_LIB80211 is not set |
595 | 623 | ||
596 | # | 624 | # |
@@ -719,6 +747,10 @@ CONFIG_BLK_DEV=y | |||
719 | # CONFIG_BLK_DEV_COW_COMMON is not set | 747 | # CONFIG_BLK_DEV_COW_COMMON is not set |
720 | CONFIG_BLK_DEV_LOOP=m | 748 | CONFIG_BLK_DEV_LOOP=m |
721 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 749 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
750 | |||
751 | # | ||
752 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
753 | # | ||
722 | CONFIG_BLK_DEV_NBD=m | 754 | CONFIG_BLK_DEV_NBD=m |
723 | # CONFIG_BLK_DEV_SX8 is not set | 755 | # CONFIG_BLK_DEV_SX8 is not set |
724 | # CONFIG_BLK_DEV_UB is not set | 756 | # CONFIG_BLK_DEV_UB is not set |
@@ -730,6 +762,7 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 | |||
730 | # CONFIG_ATA_OVER_ETH is not set | 762 | # CONFIG_ATA_OVER_ETH is not set |
731 | # CONFIG_BLK_DEV_HD is not set | 763 | # CONFIG_BLK_DEV_HD is not set |
732 | CONFIG_MISC_DEVICES=y | 764 | CONFIG_MISC_DEVICES=y |
765 | # CONFIG_AD525X_DPOT is not set | ||
733 | # CONFIG_PHANTOM is not set | 766 | # CONFIG_PHANTOM is not set |
734 | # CONFIG_SGI_IOC4 is not set | 767 | # CONFIG_SGI_IOC4 is not set |
735 | # CONFIG_TIFM_CORE is not set | 768 | # CONFIG_TIFM_CORE is not set |
@@ -737,6 +770,7 @@ CONFIG_MISC_DEVICES=y | |||
737 | # CONFIG_ENCLOSURE_SERVICES is not set | 770 | # CONFIG_ENCLOSURE_SERVICES is not set |
738 | # CONFIG_HP_ILO is not set | 771 | # CONFIG_HP_ILO is not set |
739 | # CONFIG_ISL29003 is not set | 772 | # CONFIG_ISL29003 is not set |
773 | CONFIG_DS1682=y | ||
740 | # CONFIG_C2PORT is not set | 774 | # CONFIG_C2PORT is not set |
741 | 775 | ||
742 | # | 776 | # |
@@ -789,7 +823,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
789 | # CONFIG_SCSI_BNX2_ISCSI is not set | 823 | # CONFIG_SCSI_BNX2_ISCSI is not set |
790 | # CONFIG_BE2ISCSI is not set | 824 | # CONFIG_BE2ISCSI is not set |
791 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 825 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
826 | # CONFIG_SCSI_HPSA is not set | ||
792 | # CONFIG_SCSI_3W_9XXX is not set | 827 | # CONFIG_SCSI_3W_9XXX is not set |
828 | # CONFIG_SCSI_3W_SAS is not set | ||
793 | # CONFIG_SCSI_ACARD is not set | 829 | # CONFIG_SCSI_ACARD is not set |
794 | # CONFIG_SCSI_AACRAID is not set | 830 | # CONFIG_SCSI_AACRAID is not set |
795 | # CONFIG_SCSI_AIC7XXX is not set | 831 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -828,6 +864,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
828 | # CONFIG_SCSI_NSP32 is not set | 864 | # CONFIG_SCSI_NSP32 is not set |
829 | # CONFIG_SCSI_DEBUG is not set | 865 | # CONFIG_SCSI_DEBUG is not set |
830 | # CONFIG_SCSI_PMCRAID is not set | 866 | # CONFIG_SCSI_PMCRAID is not set |
867 | # CONFIG_SCSI_PM8001 is not set | ||
831 | # CONFIG_SCSI_SRP is not set | 868 | # CONFIG_SCSI_SRP is not set |
832 | # CONFIG_SCSI_BFA_FC is not set | 869 | # CONFIG_SCSI_BFA_FC is not set |
833 | # CONFIG_SCSI_DH is not set | 870 | # CONFIG_SCSI_DH is not set |
@@ -883,15 +920,16 @@ CONFIG_SATA_SIL=y | |||
883 | # CONFIG_PATA_NS87415 is not set | 920 | # CONFIG_PATA_NS87415 is not set |
884 | # CONFIG_PATA_OPTI is not set | 921 | # CONFIG_PATA_OPTI is not set |
885 | # CONFIG_PATA_OPTIDMA is not set | 922 | # CONFIG_PATA_OPTIDMA is not set |
923 | # CONFIG_PATA_PDC2027X is not set | ||
886 | # CONFIG_PATA_PDC_OLD is not set | 924 | # CONFIG_PATA_PDC_OLD is not set |
887 | # CONFIG_PATA_RADISYS is not set | 925 | # CONFIG_PATA_RADISYS is not set |
888 | # CONFIG_PATA_RDC is not set | 926 | # CONFIG_PATA_RDC is not set |
889 | # CONFIG_PATA_RZ1000 is not set | 927 | # CONFIG_PATA_RZ1000 is not set |
890 | # CONFIG_PATA_SC1200 is not set | 928 | # CONFIG_PATA_SC1200 is not set |
891 | # CONFIG_PATA_SERVERWORKS is not set | 929 | # CONFIG_PATA_SERVERWORKS is not set |
892 | # CONFIG_PATA_PDC2027X is not set | ||
893 | # CONFIG_PATA_SIL680 is not set | 930 | # CONFIG_PATA_SIL680 is not set |
894 | # CONFIG_PATA_SIS is not set | 931 | # CONFIG_PATA_SIS is not set |
932 | # CONFIG_PATA_TOSHIBA is not set | ||
895 | # CONFIG_PATA_VIA is not set | 933 | # CONFIG_PATA_VIA is not set |
896 | # CONFIG_PATA_WINBOND is not set | 934 | # CONFIG_PATA_WINBOND is not set |
897 | # CONFIG_PATA_PLATFORM is not set | 935 | # CONFIG_PATA_PLATFORM is not set |
@@ -908,7 +946,7 @@ CONFIG_SATA_SIL=y | |||
908 | # | 946 | # |
909 | 947 | ||
910 | # | 948 | # |
911 | # See the help texts for more information. | 949 | # The newer stack is recommended. |
912 | # | 950 | # |
913 | # CONFIG_FIREWIRE is not set | 951 | # CONFIG_FIREWIRE is not set |
914 | # CONFIG_IEEE1394 is not set | 952 | # CONFIG_IEEE1394 is not set |
@@ -995,8 +1033,11 @@ CONFIG_GIANFAR=y | |||
995 | # CONFIG_NETDEV_10000 is not set | 1033 | # CONFIG_NETDEV_10000 is not set |
996 | # CONFIG_TR is not set | 1034 | # CONFIG_TR is not set |
997 | CONFIG_WLAN=y | 1035 | CONFIG_WLAN=y |
998 | # CONFIG_WLAN_PRE80211 is not set | 1036 | # CONFIG_AIRO is not set |
999 | # CONFIG_WLAN_80211 is not set | 1037 | # CONFIG_ATMEL is not set |
1038 | # CONFIG_PRISM54 is not set | ||
1039 | # CONFIG_USB_ZD1201 is not set | ||
1040 | # CONFIG_HOSTAP is not set | ||
1000 | 1041 | ||
1001 | # | 1042 | # |
1002 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 1043 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -1050,6 +1091,7 @@ CONFIG_NETCONSOLE=y | |||
1050 | CONFIG_NETPOLL=y | 1091 | CONFIG_NETPOLL=y |
1051 | CONFIG_NETPOLL_TRAP=y | 1092 | CONFIG_NETPOLL_TRAP=y |
1052 | CONFIG_NET_POLL_CONTROLLER=y | 1093 | CONFIG_NET_POLL_CONTROLLER=y |
1094 | # CONFIG_VMXNET3 is not set | ||
1053 | # CONFIG_ISDN is not set | 1095 | # CONFIG_ISDN is not set |
1054 | # CONFIG_PHONE is not set | 1096 | # CONFIG_PHONE is not set |
1055 | 1097 | ||
@@ -1059,6 +1101,7 @@ CONFIG_NET_POLL_CONTROLLER=y | |||
1059 | CONFIG_INPUT=y | 1101 | CONFIG_INPUT=y |
1060 | CONFIG_INPUT_FF_MEMLESS=m | 1102 | CONFIG_INPUT_FF_MEMLESS=m |
1061 | # CONFIG_INPUT_POLLDEV is not set | 1103 | # CONFIG_INPUT_POLLDEV is not set |
1104 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
1062 | 1105 | ||
1063 | # | 1106 | # |
1064 | # Userland interfaces | 1107 | # Userland interfaces |
@@ -1117,6 +1160,7 @@ CONFIG_SERIAL_CORE=y | |||
1117 | CONFIG_SERIAL_CORE_CONSOLE=y | 1160 | CONFIG_SERIAL_CORE_CONSOLE=y |
1118 | # CONFIG_SERIAL_JSM is not set | 1161 | # CONFIG_SERIAL_JSM is not set |
1119 | # CONFIG_SERIAL_OF_PLATFORM is not set | 1162 | # CONFIG_SERIAL_OF_PLATFORM is not set |
1163 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
1120 | CONFIG_UNIX98_PTYS=y | 1164 | CONFIG_UNIX98_PTYS=y |
1121 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 1165 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
1122 | # CONFIG_LEGACY_PTYS is not set | 1166 | # CONFIG_LEGACY_PTYS is not set |
@@ -1174,11 +1218,6 @@ CONFIG_I2C_MPC=y | |||
1174 | # CONFIG_I2C_TINY_USB is not set | 1218 | # CONFIG_I2C_TINY_USB is not set |
1175 | 1219 | ||
1176 | # | 1220 | # |
1177 | # Graphics adapter I2C/DDC channel drivers | ||
1178 | # | ||
1179 | # CONFIG_I2C_VOODOO3 is not set | ||
1180 | |||
1181 | # | ||
1182 | # Other I2C/SMBus bus drivers | 1221 | # Other I2C/SMBus bus drivers |
1183 | # | 1222 | # |
1184 | # CONFIG_I2C_PCA_PLATFORM is not set | 1223 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -1187,7 +1226,6 @@ CONFIG_I2C_MPC=y | |||
1187 | # | 1226 | # |
1188 | # Miscellaneous I2C Chip support | 1227 | # Miscellaneous I2C Chip support |
1189 | # | 1228 | # |
1190 | CONFIG_DS1682=y | ||
1191 | # CONFIG_SENSORS_TSL2550 is not set | 1229 | # CONFIG_SENSORS_TSL2550 is not set |
1192 | # CONFIG_I2C_DEBUG_CORE is not set | 1230 | # CONFIG_I2C_DEBUG_CORE is not set |
1193 | # CONFIG_I2C_DEBUG_ALGO is not set | 1231 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1220,6 +1258,7 @@ CONFIG_GPIOLIB=y | |||
1220 | # | 1258 | # |
1221 | # PCI GPIO expanders: | 1259 | # PCI GPIO expanders: |
1222 | # | 1260 | # |
1261 | # CONFIG_GPIO_CS5535 is not set | ||
1223 | # CONFIG_GPIO_BT8XX is not set | 1262 | # CONFIG_GPIO_BT8XX is not set |
1224 | # CONFIG_GPIO_LANGWELL is not set | 1263 | # CONFIG_GPIO_LANGWELL is not set |
1225 | 1264 | ||
@@ -1262,6 +1301,7 @@ CONFIG_HWMON=y | |||
1262 | # CONFIG_SENSORS_GL520SM is not set | 1301 | # CONFIG_SENSORS_GL520SM is not set |
1263 | # CONFIG_SENSORS_IT87 is not set | 1302 | # CONFIG_SENSORS_IT87 is not set |
1264 | # CONFIG_SENSORS_LM63 is not set | 1303 | # CONFIG_SENSORS_LM63 is not set |
1304 | # CONFIG_SENSORS_LM73 is not set | ||
1265 | # CONFIG_SENSORS_LM75 is not set | 1305 | # CONFIG_SENSORS_LM75 is not set |
1266 | # CONFIG_SENSORS_LM77 is not set | 1306 | # CONFIG_SENSORS_LM77 is not set |
1267 | # CONFIG_SENSORS_LM78 is not set | 1307 | # CONFIG_SENSORS_LM78 is not set |
@@ -1301,6 +1341,7 @@ CONFIG_SENSORS_LM92=y | |||
1301 | # CONFIG_SENSORS_W83L786NG is not set | 1341 | # CONFIG_SENSORS_W83L786NG is not set |
1302 | # CONFIG_SENSORS_W83627HF is not set | 1342 | # CONFIG_SENSORS_W83627HF is not set |
1303 | # CONFIG_SENSORS_W83627EHF is not set | 1343 | # CONFIG_SENSORS_W83627EHF is not set |
1344 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1304 | # CONFIG_THERMAL is not set | 1345 | # CONFIG_THERMAL is not set |
1305 | CONFIG_WATCHDOG=y | 1346 | CONFIG_WATCHDOG=y |
1306 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1347 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1340,11 +1381,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1340 | # CONFIG_TWL4030_CORE is not set | 1381 | # CONFIG_TWL4030_CORE is not set |
1341 | # CONFIG_MFD_TMIO is not set | 1382 | # CONFIG_MFD_TMIO is not set |
1342 | # CONFIG_PMIC_DA903X is not set | 1383 | # CONFIG_PMIC_DA903X is not set |
1384 | # CONFIG_PMIC_ADP5520 is not set | ||
1343 | # CONFIG_MFD_WM8400 is not set | 1385 | # CONFIG_MFD_WM8400 is not set |
1344 | # CONFIG_MFD_WM831X is not set | 1386 | # CONFIG_MFD_WM831X is not set |
1345 | # CONFIG_MFD_WM8350_I2C is not set | 1387 | # CONFIG_MFD_WM8350_I2C is not set |
1346 | # CONFIG_MFD_PCF50633 is not set | 1388 | # CONFIG_MFD_PCF50633 is not set |
1347 | # CONFIG_AB3100_CORE is not set | 1389 | # CONFIG_AB3100_CORE is not set |
1390 | # CONFIG_MFD_88PM8607 is not set | ||
1348 | # CONFIG_REGULATOR is not set | 1391 | # CONFIG_REGULATOR is not set |
1349 | # CONFIG_MEDIA_SUPPORT is not set | 1392 | # CONFIG_MEDIA_SUPPORT is not set |
1350 | 1393 | ||
@@ -1443,6 +1486,7 @@ CONFIG_USB=y | |||
1443 | CONFIG_USB_EHCI_HCD=y | 1486 | CONFIG_USB_EHCI_HCD=y |
1444 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1487 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1445 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1488 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1489 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1446 | # CONFIG_USB_EHCI_FSL is not set | 1490 | # CONFIG_USB_EHCI_FSL is not set |
1447 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | 1491 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set |
1448 | # CONFIG_USB_OXU210HP_HCD is not set | 1492 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1570,6 +1614,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1570 | # CONFIG_RTC_DRV_PCF8563 is not set | 1614 | # CONFIG_RTC_DRV_PCF8563 is not set |
1571 | # CONFIG_RTC_DRV_PCF8583 is not set | 1615 | # CONFIG_RTC_DRV_PCF8583 is not set |
1572 | # CONFIG_RTC_DRV_M41T80 is not set | 1616 | # CONFIG_RTC_DRV_M41T80 is not set |
1617 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1573 | # CONFIG_RTC_DRV_S35390A is not set | 1618 | # CONFIG_RTC_DRV_S35390A is not set |
1574 | # CONFIG_RTC_DRV_FM3130 is not set | 1619 | # CONFIG_RTC_DRV_FM3130 is not set |
1575 | CONFIG_RTC_DRV_RX8581=y | 1620 | CONFIG_RTC_DRV_RX8581=y |
@@ -1591,7 +1636,9 @@ CONFIG_RTC_DRV_RX8581=y | |||
1591 | # CONFIG_RTC_DRV_M48T86 is not set | 1636 | # CONFIG_RTC_DRV_M48T86 is not set |
1592 | # CONFIG_RTC_DRV_M48T35 is not set | 1637 | # CONFIG_RTC_DRV_M48T35 is not set |
1593 | # CONFIG_RTC_DRV_M48T59 is not set | 1638 | # CONFIG_RTC_DRV_M48T59 is not set |
1639 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1594 | # CONFIG_RTC_DRV_BQ4802 is not set | 1640 | # CONFIG_RTC_DRV_BQ4802 is not set |
1641 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1595 | # CONFIG_RTC_DRV_V3020 is not set | 1642 | # CONFIG_RTC_DRV_V3020 is not set |
1596 | 1643 | ||
1597 | # | 1644 | # |
@@ -1891,9 +1938,12 @@ CONFIG_SECURITY=y | |||
1891 | CONFIG_SECURITY_NETWORK=y | 1938 | CONFIG_SECURITY_NETWORK=y |
1892 | # CONFIG_SECURITY_NETWORK_XFRM is not set | 1939 | # CONFIG_SECURITY_NETWORK_XFRM is not set |
1893 | # CONFIG_SECURITY_PATH is not set | 1940 | # CONFIG_SECURITY_PATH is not set |
1894 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1895 | # CONFIG_SECURITY_ROOTPLUG is not set | ||
1896 | # CONFIG_SECURITY_TOMOYO is not set | 1941 | # CONFIG_SECURITY_TOMOYO is not set |
1942 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set | ||
1943 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1944 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1945 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1946 | CONFIG_DEFAULT_SECURITY="" | ||
1897 | CONFIG_CRYPTO=y | 1947 | CONFIG_CRYPTO=y |
1898 | 1948 | ||
1899 | # | 1949 | # |
diff --git a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig index de4d52504fe..aab3baebab8 100644 --- a/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig +++ b/arch/powerpc/configs/86xx/mpc8610_hpcd_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:45 2009 | 4 | # Wed Jan 6 09:24:39 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,8 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
62 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
63 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
64 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -86,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
86 | # | 89 | # |
87 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
88 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
89 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
90 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
91 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -176,14 +180,41 @@ CONFIG_LBDAF=y | |||
176 | # IO Schedulers | 180 | # IO Schedulers |
177 | # | 181 | # |
178 | CONFIG_IOSCHED_NOOP=y | 182 | CONFIG_IOSCHED_NOOP=y |
179 | # CONFIG_IOSCHED_AS is not set | ||
180 | CONFIG_IOSCHED_DEADLINE=y | 183 | CONFIG_IOSCHED_DEADLINE=y |
181 | # CONFIG_IOSCHED_CFQ is not set | 184 | # CONFIG_IOSCHED_CFQ is not set |
182 | # CONFIG_DEFAULT_AS is not set | ||
183 | CONFIG_DEFAULT_DEADLINE=y | 185 | CONFIG_DEFAULT_DEADLINE=y |
184 | # CONFIG_DEFAULT_CFQ is not set | 186 | # CONFIG_DEFAULT_CFQ is not set |
185 | # CONFIG_DEFAULT_NOOP is not set | 187 | # CONFIG_DEFAULT_NOOP is not set |
186 | CONFIG_DEFAULT_IOSCHED="deadline" | 188 | CONFIG_DEFAULT_IOSCHED="deadline" |
189 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
190 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
192 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
193 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
194 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
195 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
196 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
197 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
198 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
199 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
200 | # CONFIG_INLINE_READ_LOCK is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
203 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
204 | CONFIG_INLINE_READ_UNLOCK=y | ||
205 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
206 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
207 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
208 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
212 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
213 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
214 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
215 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
216 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
217 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
187 | # CONFIG_FREEZER is not set | 218 | # CONFIG_FREEZER is not set |
188 | 219 | ||
189 | # | 220 | # |
@@ -254,6 +285,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
254 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 285 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
255 | # CONFIG_KEXEC is not set | 286 | # CONFIG_KEXEC is not set |
256 | # CONFIG_CRASH_DUMP is not set | 287 | # CONFIG_CRASH_DUMP is not set |
288 | CONFIG_SPARSE_IRQ=y | ||
257 | CONFIG_MAX_ACTIVE_REGIONS=32 | 289 | CONFIG_MAX_ACTIVE_REGIONS=32 |
258 | CONFIG_ARCH_FLATMEM_ENABLE=y | 290 | CONFIG_ARCH_FLATMEM_ENABLE=y |
259 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 291 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -270,8 +302,6 @@ CONFIG_MIGRATION=y | |||
270 | CONFIG_ZONE_DMA_FLAG=1 | 302 | CONFIG_ZONE_DMA_FLAG=1 |
271 | CONFIG_BOUNCE=y | 303 | CONFIG_BOUNCE=y |
272 | CONFIG_VIRT_TO_BUS=y | 304 | CONFIG_VIRT_TO_BUS=y |
273 | CONFIG_HAVE_MLOCK=y | ||
274 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
275 | # CONFIG_KSM is not set | 305 | # CONFIG_KSM is not set |
276 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 306 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
277 | CONFIG_PPC_4K_PAGES=y | 307 | CONFIG_PPC_4K_PAGES=y |
@@ -382,6 +412,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y | |||
382 | CONFIG_INET6_XFRM_MODE_BEET=y | 412 | CONFIG_INET6_XFRM_MODE_BEET=y |
383 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 413 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
384 | CONFIG_IPV6_SIT=y | 414 | CONFIG_IPV6_SIT=y |
415 | # CONFIG_IPV6_SIT_6RD is not set | ||
385 | CONFIG_IPV6_NDISC_NODETYPE=y | 416 | CONFIG_IPV6_NDISC_NODETYPE=y |
386 | # CONFIG_IPV6_TUNNEL is not set | 417 | # CONFIG_IPV6_TUNNEL is not set |
387 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 418 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -420,9 +451,6 @@ CONFIG_IPV6_NDISC_NODETYPE=y | |||
420 | # CONFIG_AF_RXRPC is not set | 451 | # CONFIG_AF_RXRPC is not set |
421 | CONFIG_WIRELESS=y | 452 | CONFIG_WIRELESS=y |
422 | # CONFIG_CFG80211 is not set | 453 | # CONFIG_CFG80211 is not set |
423 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
424 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
425 | # CONFIG_WIRELESS_EXT is not set | ||
426 | # CONFIG_LIB80211 is not set | 454 | # CONFIG_LIB80211 is not set |
427 | 455 | ||
428 | # | 456 | # |
@@ -555,6 +583,10 @@ CONFIG_BLK_DEV=y | |||
555 | # CONFIG_BLK_DEV_COW_COMMON is not set | 583 | # CONFIG_BLK_DEV_COW_COMMON is not set |
556 | CONFIG_BLK_DEV_LOOP=y | 584 | CONFIG_BLK_DEV_LOOP=y |
557 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 585 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
586 | |||
587 | # | ||
588 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
589 | # | ||
558 | # CONFIG_BLK_DEV_NBD is not set | 590 | # CONFIG_BLK_DEV_NBD is not set |
559 | # CONFIG_BLK_DEV_SX8 is not set | 591 | # CONFIG_BLK_DEV_SX8 is not set |
560 | CONFIG_BLK_DEV_RAM=y | 592 | CONFIG_BLK_DEV_RAM=y |
@@ -565,6 +597,7 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 | |||
565 | # CONFIG_ATA_OVER_ETH is not set | 597 | # CONFIG_ATA_OVER_ETH is not set |
566 | # CONFIG_BLK_DEV_HD is not set | 598 | # CONFIG_BLK_DEV_HD is not set |
567 | CONFIG_MISC_DEVICES=y | 599 | CONFIG_MISC_DEVICES=y |
600 | # CONFIG_AD525X_DPOT is not set | ||
568 | # CONFIG_PHANTOM is not set | 601 | # CONFIG_PHANTOM is not set |
569 | # CONFIG_SGI_IOC4 is not set | 602 | # CONFIG_SGI_IOC4 is not set |
570 | # CONFIG_TIFM_CORE is not set | 603 | # CONFIG_TIFM_CORE is not set |
@@ -572,6 +605,7 @@ CONFIG_MISC_DEVICES=y | |||
572 | # CONFIG_ENCLOSURE_SERVICES is not set | 605 | # CONFIG_ENCLOSURE_SERVICES is not set |
573 | # CONFIG_HP_ILO is not set | 606 | # CONFIG_HP_ILO is not set |
574 | # CONFIG_ISL29003 is not set | 607 | # CONFIG_ISL29003 is not set |
608 | # CONFIG_DS1682 is not set | ||
575 | # CONFIG_C2PORT is not set | 609 | # CONFIG_C2PORT is not set |
576 | 610 | ||
577 | # | 611 | # |
@@ -671,7 +705,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
671 | # CONFIG_SCSI_BNX2_ISCSI is not set | 705 | # CONFIG_SCSI_BNX2_ISCSI is not set |
672 | # CONFIG_BE2ISCSI is not set | 706 | # CONFIG_BE2ISCSI is not set |
673 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 707 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
708 | # CONFIG_SCSI_HPSA is not set | ||
674 | # CONFIG_SCSI_3W_9XXX is not set | 709 | # CONFIG_SCSI_3W_9XXX is not set |
710 | # CONFIG_SCSI_3W_SAS is not set | ||
675 | # CONFIG_SCSI_ACARD is not set | 711 | # CONFIG_SCSI_ACARD is not set |
676 | # CONFIG_SCSI_AACRAID is not set | 712 | # CONFIG_SCSI_AACRAID is not set |
677 | # CONFIG_SCSI_AIC7XXX is not set | 713 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -710,6 +746,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
710 | # CONFIG_SCSI_NSP32 is not set | 746 | # CONFIG_SCSI_NSP32 is not set |
711 | # CONFIG_SCSI_DEBUG is not set | 747 | # CONFIG_SCSI_DEBUG is not set |
712 | # CONFIG_SCSI_PMCRAID is not set | 748 | # CONFIG_SCSI_PMCRAID is not set |
749 | # CONFIG_SCSI_PM8001 is not set | ||
713 | # CONFIG_SCSI_SRP is not set | 750 | # CONFIG_SCSI_SRP is not set |
714 | # CONFIG_SCSI_BFA_FC is not set | 751 | # CONFIG_SCSI_BFA_FC is not set |
715 | # CONFIG_SCSI_DH is not set | 752 | # CONFIG_SCSI_DH is not set |
@@ -765,15 +802,16 @@ CONFIG_PATA_ALI=y | |||
765 | # CONFIG_PATA_NS87415 is not set | 802 | # CONFIG_PATA_NS87415 is not set |
766 | # CONFIG_PATA_OPTI is not set | 803 | # CONFIG_PATA_OPTI is not set |
767 | # CONFIG_PATA_OPTIDMA is not set | 804 | # CONFIG_PATA_OPTIDMA is not set |
805 | # CONFIG_PATA_PDC2027X is not set | ||
768 | # CONFIG_PATA_PDC_OLD is not set | 806 | # CONFIG_PATA_PDC_OLD is not set |
769 | # CONFIG_PATA_RADISYS is not set | 807 | # CONFIG_PATA_RADISYS is not set |
770 | # CONFIG_PATA_RDC is not set | 808 | # CONFIG_PATA_RDC is not set |
771 | # CONFIG_PATA_RZ1000 is not set | 809 | # CONFIG_PATA_RZ1000 is not set |
772 | # CONFIG_PATA_SC1200 is not set | 810 | # CONFIG_PATA_SC1200 is not set |
773 | # CONFIG_PATA_SERVERWORKS is not set | 811 | # CONFIG_PATA_SERVERWORKS is not set |
774 | # CONFIG_PATA_PDC2027X is not set | ||
775 | # CONFIG_PATA_SIL680 is not set | 812 | # CONFIG_PATA_SIL680 is not set |
776 | # CONFIG_PATA_SIS is not set | 813 | # CONFIG_PATA_SIS is not set |
814 | # CONFIG_PATA_TOSHIBA is not set | ||
777 | # CONFIG_PATA_VIA is not set | 815 | # CONFIG_PATA_VIA is not set |
778 | # CONFIG_PATA_WINBOND is not set | 816 | # CONFIG_PATA_WINBOND is not set |
779 | # CONFIG_PATA_PLATFORM is not set | 817 | # CONFIG_PATA_PLATFORM is not set |
@@ -790,7 +828,7 @@ CONFIG_PATA_ALI=y | |||
790 | # | 828 | # |
791 | 829 | ||
792 | # | 830 | # |
793 | # See the help texts for more information. | 831 | # The newer stack is recommended. |
794 | # | 832 | # |
795 | # CONFIG_FIREWIRE is not set | 833 | # CONFIG_FIREWIRE is not set |
796 | # CONFIG_IEEE1394 is not set | 834 | # CONFIG_IEEE1394 is not set |
@@ -838,8 +876,10 @@ CONFIG_ULI526X=y | |||
838 | # CONFIG_NETDEV_10000 is not set | 876 | # CONFIG_NETDEV_10000 is not set |
839 | # CONFIG_TR is not set | 877 | # CONFIG_TR is not set |
840 | CONFIG_WLAN=y | 878 | CONFIG_WLAN=y |
841 | # CONFIG_WLAN_PRE80211 is not set | 879 | # CONFIG_AIRO is not set |
842 | # CONFIG_WLAN_80211 is not set | 880 | # CONFIG_ATMEL is not set |
881 | # CONFIG_PRISM54 is not set | ||
882 | # CONFIG_HOSTAP is not set | ||
843 | 883 | ||
844 | # | 884 | # |
845 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 885 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -853,6 +893,7 @@ CONFIG_WLAN=y | |||
853 | # CONFIG_NETCONSOLE is not set | 893 | # CONFIG_NETCONSOLE is not set |
854 | # CONFIG_NETPOLL is not set | 894 | # CONFIG_NETPOLL is not set |
855 | # CONFIG_NET_POLL_CONTROLLER is not set | 895 | # CONFIG_NET_POLL_CONTROLLER is not set |
896 | # CONFIG_VMXNET3 is not set | ||
856 | # CONFIG_ISDN is not set | 897 | # CONFIG_ISDN is not set |
857 | # CONFIG_PHONE is not set | 898 | # CONFIG_PHONE is not set |
858 | 899 | ||
@@ -862,6 +903,7 @@ CONFIG_WLAN=y | |||
862 | CONFIG_INPUT=y | 903 | CONFIG_INPUT=y |
863 | # CONFIG_INPUT_FF_MEMLESS is not set | 904 | # CONFIG_INPUT_FF_MEMLESS is not set |
864 | # CONFIG_INPUT_POLLDEV is not set | 905 | # CONFIG_INPUT_POLLDEV is not set |
906 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
865 | 907 | ||
866 | # | 908 | # |
867 | # Userland interfaces | 909 | # Userland interfaces |
@@ -891,6 +933,7 @@ CONFIG_SERIO_SERPORT=y | |||
891 | CONFIG_SERIO_LIBPS2=y | 933 | CONFIG_SERIO_LIBPS2=y |
892 | # CONFIG_SERIO_RAW is not set | 934 | # CONFIG_SERIO_RAW is not set |
893 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 935 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
936 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
894 | # CONFIG_GAMEPORT is not set | 937 | # CONFIG_GAMEPORT is not set |
895 | 938 | ||
896 | # | 939 | # |
@@ -927,6 +970,7 @@ CONFIG_SERIAL_CORE=y | |||
927 | CONFIG_SERIAL_CORE_CONSOLE=y | 970 | CONFIG_SERIAL_CORE_CONSOLE=y |
928 | # CONFIG_SERIAL_JSM is not set | 971 | # CONFIG_SERIAL_JSM is not set |
929 | # CONFIG_SERIAL_OF_PLATFORM is not set | 972 | # CONFIG_SERIAL_OF_PLATFORM is not set |
973 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
930 | CONFIG_UNIX98_PTYS=y | 974 | CONFIG_UNIX98_PTYS=y |
931 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 975 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
932 | # CONFIG_LEGACY_PTYS is not set | 976 | # CONFIG_LEGACY_PTYS is not set |
@@ -981,11 +1025,6 @@ CONFIG_I2C_MPC=y | |||
981 | # CONFIG_I2C_TAOS_EVM is not set | 1025 | # CONFIG_I2C_TAOS_EVM is not set |
982 | 1026 | ||
983 | # | 1027 | # |
984 | # Graphics adapter I2C/DDC channel drivers | ||
985 | # | ||
986 | # CONFIG_I2C_VOODOO3 is not set | ||
987 | |||
988 | # | ||
989 | # Other I2C/SMBus bus drivers | 1028 | # Other I2C/SMBus bus drivers |
990 | # | 1029 | # |
991 | # CONFIG_I2C_PCA_PLATFORM is not set | 1030 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -994,7 +1033,6 @@ CONFIG_I2C_MPC=y | |||
994 | # | 1033 | # |
995 | # Miscellaneous I2C Chip support | 1034 | # Miscellaneous I2C Chip support |
996 | # | 1035 | # |
997 | # CONFIG_DS1682 is not set | ||
998 | # CONFIG_SENSORS_TSL2550 is not set | 1036 | # CONFIG_SENSORS_TSL2550 is not set |
999 | # CONFIG_I2C_DEBUG_CORE is not set | 1037 | # CONFIG_I2C_DEBUG_CORE is not set |
1000 | # CONFIG_I2C_DEBUG_ALGO is not set | 1038 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1029,11 +1067,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1029 | # CONFIG_TWL4030_CORE is not set | 1067 | # CONFIG_TWL4030_CORE is not set |
1030 | # CONFIG_MFD_TMIO is not set | 1068 | # CONFIG_MFD_TMIO is not set |
1031 | # CONFIG_PMIC_DA903X is not set | 1069 | # CONFIG_PMIC_DA903X is not set |
1070 | # CONFIG_PMIC_ADP5520 is not set | ||
1032 | # CONFIG_MFD_WM8400 is not set | 1071 | # CONFIG_MFD_WM8400 is not set |
1033 | # CONFIG_MFD_WM831X is not set | 1072 | # CONFIG_MFD_WM831X is not set |
1034 | # CONFIG_MFD_WM8350_I2C is not set | 1073 | # CONFIG_MFD_WM8350_I2C is not set |
1035 | # CONFIG_MFD_PCF50633 is not set | 1074 | # CONFIG_MFD_PCF50633 is not set |
1036 | # CONFIG_AB3100_CORE is not set | 1075 | # CONFIG_AB3100_CORE is not set |
1076 | # CONFIG_MFD_88PM8607 is not set | ||
1037 | # CONFIG_REGULATOR is not set | 1077 | # CONFIG_REGULATOR is not set |
1038 | # CONFIG_MEDIA_SUPPORT is not set | 1078 | # CONFIG_MEDIA_SUPPORT is not set |
1039 | 1079 | ||
@@ -1163,6 +1203,7 @@ CONFIG_SND_PCI=y | |||
1163 | # CONFIG_SND_CS4281 is not set | 1203 | # CONFIG_SND_CS4281 is not set |
1164 | # CONFIG_SND_CS46XX is not set | 1204 | # CONFIG_SND_CS46XX is not set |
1165 | # CONFIG_SND_CS5530 is not set | 1205 | # CONFIG_SND_CS5530 is not set |
1206 | # CONFIG_SND_CS5535AUDIO is not set | ||
1166 | # CONFIG_SND_CTXFI is not set | 1207 | # CONFIG_SND_CTXFI is not set |
1167 | # CONFIG_SND_DARLA20 is not set | 1208 | # CONFIG_SND_DARLA20 is not set |
1168 | # CONFIG_SND_GINA20 is not set | 1209 | # CONFIG_SND_GINA20 is not set |
@@ -1282,6 +1323,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1282 | # CONFIG_RTC_DRV_PCF8563 is not set | 1323 | # CONFIG_RTC_DRV_PCF8563 is not set |
1283 | # CONFIG_RTC_DRV_PCF8583 is not set | 1324 | # CONFIG_RTC_DRV_PCF8583 is not set |
1284 | # CONFIG_RTC_DRV_M41T80 is not set | 1325 | # CONFIG_RTC_DRV_M41T80 is not set |
1326 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1285 | # CONFIG_RTC_DRV_S35390A is not set | 1327 | # CONFIG_RTC_DRV_S35390A is not set |
1286 | # CONFIG_RTC_DRV_FM3130 is not set | 1328 | # CONFIG_RTC_DRV_FM3130 is not set |
1287 | # CONFIG_RTC_DRV_RX8581 is not set | 1329 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1303,7 +1345,9 @@ CONFIG_RTC_DRV_CMOS=y | |||
1303 | # CONFIG_RTC_DRV_M48T86 is not set | 1345 | # CONFIG_RTC_DRV_M48T86 is not set |
1304 | # CONFIG_RTC_DRV_M48T35 is not set | 1346 | # CONFIG_RTC_DRV_M48T35 is not set |
1305 | # CONFIG_RTC_DRV_M48T59 is not set | 1347 | # CONFIG_RTC_DRV_M48T59 is not set |
1348 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1306 | # CONFIG_RTC_DRV_BQ4802 is not set | 1349 | # CONFIG_RTC_DRV_BQ4802 is not set |
1350 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1307 | # CONFIG_RTC_DRV_V3020 is not set | 1351 | # CONFIG_RTC_DRV_V3020 is not set |
1308 | 1352 | ||
1309 | # | 1353 | # |
@@ -1606,7 +1650,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1606 | # CONFIG_KEYS is not set | 1650 | # CONFIG_KEYS is not set |
1607 | # CONFIG_SECURITY is not set | 1651 | # CONFIG_SECURITY is not set |
1608 | # CONFIG_SECURITYFS is not set | 1652 | # CONFIG_SECURITYFS is not set |
1609 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1653 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1654 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1655 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1656 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1657 | CONFIG_DEFAULT_SECURITY="" | ||
1610 | CONFIG_CRYPTO=y | 1658 | CONFIG_CRYPTO=y |
1611 | 1659 | ||
1612 | # | 1660 | # |
diff --git a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig index 754a79ba74a..727a8c8d15b 100644 --- a/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig +++ b/arch/powerpc/configs/86xx/mpc8641_hpcn_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:46 2009 | 4 | # Wed Jan 6 09:24:40 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -38,6 +38,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
40 | CONFIG_IRQ_PER_CPU=y | 40 | CONFIG_IRQ_PER_CPU=y |
41 | CONFIG_NR_IRQS=512 | ||
41 | CONFIG_STACKTRACE_SUPPORT=y | 42 | CONFIG_STACKTRACE_SUPPORT=y |
42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -60,6 +61,8 @@ CONFIG_AUDIT_ARCH=y | |||
60 | CONFIG_GENERIC_BUG=y | 61 | CONFIG_GENERIC_BUG=y |
61 | CONFIG_DTC=y | 62 | CONFIG_DTC=y |
62 | CONFIG_DEFAULT_UIMAGE=y | 63 | CONFIG_DEFAULT_UIMAGE=y |
64 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
65 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
63 | # CONFIG_PPC_DCR_NATIVE is not set | 66 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 67 | # CONFIG_PPC_DCR_MMIO is not set |
65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 68 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -90,6 +93,7 @@ CONFIG_AUDIT=y | |||
90 | # | 93 | # |
91 | CONFIG_TREE_RCU=y | 94 | CONFIG_TREE_RCU=y |
92 | # CONFIG_TREE_PREEMPT_RCU is not set | 95 | # CONFIG_TREE_PREEMPT_RCU is not set |
96 | # CONFIG_TINY_RCU is not set | ||
93 | # CONFIG_RCU_TRACE is not set | 97 | # CONFIG_RCU_TRACE is not set |
94 | CONFIG_RCU_FANOUT=32 | 98 | CONFIG_RCU_FANOUT=32 |
95 | # CONFIG_RCU_FANOUT_EXACT is not set | 99 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -182,14 +186,41 @@ CONFIG_LBDAF=y | |||
182 | # IO Schedulers | 186 | # IO Schedulers |
183 | # | 187 | # |
184 | CONFIG_IOSCHED_NOOP=y | 188 | CONFIG_IOSCHED_NOOP=y |
185 | CONFIG_IOSCHED_AS=y | ||
186 | CONFIG_IOSCHED_DEADLINE=y | 189 | CONFIG_IOSCHED_DEADLINE=y |
187 | CONFIG_IOSCHED_CFQ=y | 190 | CONFIG_IOSCHED_CFQ=y |
188 | # CONFIG_DEFAULT_AS is not set | ||
189 | # CONFIG_DEFAULT_DEADLINE is not set | 191 | # CONFIG_DEFAULT_DEADLINE is not set |
190 | CONFIG_DEFAULT_CFQ=y | 192 | CONFIG_DEFAULT_CFQ=y |
191 | # CONFIG_DEFAULT_NOOP is not set | 193 | # CONFIG_DEFAULT_NOOP is not set |
192 | CONFIG_DEFAULT_IOSCHED="cfq" | 194 | CONFIG_DEFAULT_IOSCHED="cfq" |
195 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
197 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
198 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
199 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
200 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
201 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
202 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
203 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
204 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
205 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
206 | # CONFIG_INLINE_READ_LOCK is not set | ||
207 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
208 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
209 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
210 | CONFIG_INLINE_READ_UNLOCK=y | ||
211 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
212 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
213 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
214 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
215 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
216 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
217 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
218 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
219 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
220 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
221 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
222 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
223 | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||
193 | # CONFIG_FREEZER is not set | 224 | # CONFIG_FREEZER is not set |
194 | 225 | ||
195 | # | 226 | # |
@@ -260,6 +291,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | |||
260 | # CONFIG_KEXEC is not set | 291 | # CONFIG_KEXEC is not set |
261 | # CONFIG_CRASH_DUMP is not set | 292 | # CONFIG_CRASH_DUMP is not set |
262 | # CONFIG_IRQ_ALL_CPUS is not set | 293 | # CONFIG_IRQ_ALL_CPUS is not set |
294 | CONFIG_SPARSE_IRQ=y | ||
263 | CONFIG_MAX_ACTIVE_REGIONS=32 | 295 | CONFIG_MAX_ACTIVE_REGIONS=32 |
264 | CONFIG_ARCH_FLATMEM_ENABLE=y | 296 | CONFIG_ARCH_FLATMEM_ENABLE=y |
265 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 297 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -276,8 +308,6 @@ CONFIG_MIGRATION=y | |||
276 | CONFIG_ZONE_DMA_FLAG=1 | 308 | CONFIG_ZONE_DMA_FLAG=1 |
277 | CONFIG_BOUNCE=y | 309 | CONFIG_BOUNCE=y |
278 | CONFIG_VIRT_TO_BUS=y | 310 | CONFIG_VIRT_TO_BUS=y |
279 | CONFIG_HAVE_MLOCK=y | ||
280 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
281 | # CONFIG_KSM is not set | 311 | # CONFIG_KSM is not set |
282 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 312 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
283 | CONFIG_PPC_4K_PAGES=y | 313 | CONFIG_PPC_4K_PAGES=y |
@@ -395,6 +425,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y | |||
395 | CONFIG_INET6_XFRM_MODE_BEET=y | 425 | CONFIG_INET6_XFRM_MODE_BEET=y |
396 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 426 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
397 | CONFIG_IPV6_SIT=y | 427 | CONFIG_IPV6_SIT=y |
428 | # CONFIG_IPV6_SIT_6RD is not set | ||
398 | CONFIG_IPV6_NDISC_NODETYPE=y | 429 | CONFIG_IPV6_NDISC_NODETYPE=y |
399 | # CONFIG_IPV6_TUNNEL is not set | 430 | # CONFIG_IPV6_TUNNEL is not set |
400 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 431 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -439,9 +470,6 @@ CONFIG_SCTP_HMAC_MD5=y | |||
439 | CONFIG_FIB_RULES=y | 470 | CONFIG_FIB_RULES=y |
440 | CONFIG_WIRELESS=y | 471 | CONFIG_WIRELESS=y |
441 | # CONFIG_CFG80211 is not set | 472 | # CONFIG_CFG80211 is not set |
442 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
443 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
444 | # CONFIG_WIRELESS_EXT is not set | ||
445 | # CONFIG_LIB80211 is not set | 473 | # CONFIG_LIB80211 is not set |
446 | 474 | ||
447 | # | 475 | # |
@@ -483,6 +511,10 @@ CONFIG_BLK_DEV=y | |||
483 | # CONFIG_BLK_DEV_COW_COMMON is not set | 511 | # CONFIG_BLK_DEV_COW_COMMON is not set |
484 | CONFIG_BLK_DEV_LOOP=y | 512 | CONFIG_BLK_DEV_LOOP=y |
485 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 513 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
514 | |||
515 | # | ||
516 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
517 | # | ||
486 | CONFIG_BLK_DEV_NBD=y | 518 | CONFIG_BLK_DEV_NBD=y |
487 | # CONFIG_BLK_DEV_SX8 is not set | 519 | # CONFIG_BLK_DEV_SX8 is not set |
488 | # CONFIG_BLK_DEV_UB is not set | 520 | # CONFIG_BLK_DEV_UB is not set |
@@ -494,6 +526,7 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 | |||
494 | # CONFIG_ATA_OVER_ETH is not set | 526 | # CONFIG_ATA_OVER_ETH is not set |
495 | # CONFIG_BLK_DEV_HD is not set | 527 | # CONFIG_BLK_DEV_HD is not set |
496 | CONFIG_MISC_DEVICES=y | 528 | CONFIG_MISC_DEVICES=y |
529 | # CONFIG_AD525X_DPOT is not set | ||
497 | # CONFIG_PHANTOM is not set | 530 | # CONFIG_PHANTOM is not set |
498 | # CONFIG_SGI_IOC4 is not set | 531 | # CONFIG_SGI_IOC4 is not set |
499 | # CONFIG_TIFM_CORE is not set | 532 | # CONFIG_TIFM_CORE is not set |
@@ -501,6 +534,7 @@ CONFIG_MISC_DEVICES=y | |||
501 | # CONFIG_ENCLOSURE_SERVICES is not set | 534 | # CONFIG_ENCLOSURE_SERVICES is not set |
502 | # CONFIG_HP_ILO is not set | 535 | # CONFIG_HP_ILO is not set |
503 | # CONFIG_ISL29003 is not set | 536 | # CONFIG_ISL29003 is not set |
537 | # CONFIG_DS1682 is not set | ||
504 | # CONFIG_C2PORT is not set | 538 | # CONFIG_C2PORT is not set |
505 | 539 | ||
506 | # | 540 | # |
@@ -554,7 +588,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
554 | # CONFIG_SCSI_BNX2_ISCSI is not set | 588 | # CONFIG_SCSI_BNX2_ISCSI is not set |
555 | # CONFIG_BE2ISCSI is not set | 589 | # CONFIG_BE2ISCSI is not set |
556 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 590 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
591 | # CONFIG_SCSI_HPSA is not set | ||
557 | # CONFIG_SCSI_3W_9XXX is not set | 592 | # CONFIG_SCSI_3W_9XXX is not set |
593 | # CONFIG_SCSI_3W_SAS is not set | ||
558 | # CONFIG_SCSI_ACARD is not set | 594 | # CONFIG_SCSI_ACARD is not set |
559 | # CONFIG_SCSI_AACRAID is not set | 595 | # CONFIG_SCSI_AACRAID is not set |
560 | # CONFIG_SCSI_AIC7XXX is not set | 596 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -593,6 +629,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
593 | # CONFIG_SCSI_NSP32 is not set | 629 | # CONFIG_SCSI_NSP32 is not set |
594 | # CONFIG_SCSI_DEBUG is not set | 630 | # CONFIG_SCSI_DEBUG is not set |
595 | # CONFIG_SCSI_PMCRAID is not set | 631 | # CONFIG_SCSI_PMCRAID is not set |
632 | # CONFIG_SCSI_PM8001 is not set | ||
596 | # CONFIG_SCSI_SRP is not set | 633 | # CONFIG_SCSI_SRP is not set |
597 | # CONFIG_SCSI_BFA_FC is not set | 634 | # CONFIG_SCSI_BFA_FC is not set |
598 | # CONFIG_SCSI_DH is not set | 635 | # CONFIG_SCSI_DH is not set |
@@ -648,15 +685,16 @@ CONFIG_PATA_ALI=y | |||
648 | # CONFIG_PATA_NS87415 is not set | 685 | # CONFIG_PATA_NS87415 is not set |
649 | # CONFIG_PATA_OPTI is not set | 686 | # CONFIG_PATA_OPTI is not set |
650 | # CONFIG_PATA_OPTIDMA is not set | 687 | # CONFIG_PATA_OPTIDMA is not set |
688 | # CONFIG_PATA_PDC2027X is not set | ||
651 | # CONFIG_PATA_PDC_OLD is not set | 689 | # CONFIG_PATA_PDC_OLD is not set |
652 | # CONFIG_PATA_RADISYS is not set | 690 | # CONFIG_PATA_RADISYS is not set |
653 | # CONFIG_PATA_RDC is not set | 691 | # CONFIG_PATA_RDC is not set |
654 | # CONFIG_PATA_RZ1000 is not set | 692 | # CONFIG_PATA_RZ1000 is not set |
655 | # CONFIG_PATA_SC1200 is not set | 693 | # CONFIG_PATA_SC1200 is not set |
656 | # CONFIG_PATA_SERVERWORKS is not set | 694 | # CONFIG_PATA_SERVERWORKS is not set |
657 | # CONFIG_PATA_PDC2027X is not set | ||
658 | # CONFIG_PATA_SIL680 is not set | 695 | # CONFIG_PATA_SIL680 is not set |
659 | # CONFIG_PATA_SIS is not set | 696 | # CONFIG_PATA_SIS is not set |
697 | # CONFIG_PATA_TOSHIBA is not set | ||
660 | # CONFIG_PATA_VIA is not set | 698 | # CONFIG_PATA_VIA is not set |
661 | # CONFIG_PATA_WINBOND is not set | 699 | # CONFIG_PATA_WINBOND is not set |
662 | # CONFIG_PATA_PLATFORM is not set | 700 | # CONFIG_PATA_PLATFORM is not set |
@@ -673,7 +711,7 @@ CONFIG_PATA_ALI=y | |||
673 | # | 711 | # |
674 | 712 | ||
675 | # | 713 | # |
676 | # See the help texts for more information. | 714 | # The newer stack is recommended. |
677 | # | 715 | # |
678 | # CONFIG_FIREWIRE is not set | 716 | # CONFIG_FIREWIRE is not set |
679 | # CONFIG_IEEE1394 is not set | 717 | # CONFIG_IEEE1394 is not set |
@@ -778,8 +816,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
778 | # CONFIG_BE2NET is not set | 816 | # CONFIG_BE2NET is not set |
779 | # CONFIG_TR is not set | 817 | # CONFIG_TR is not set |
780 | CONFIG_WLAN=y | 818 | CONFIG_WLAN=y |
781 | # CONFIG_WLAN_PRE80211 is not set | 819 | # CONFIG_AIRO is not set |
782 | # CONFIG_WLAN_80211 is not set | 820 | # CONFIG_ATMEL is not set |
821 | # CONFIG_PRISM54 is not set | ||
822 | # CONFIG_USB_ZD1201 is not set | ||
823 | # CONFIG_HOSTAP is not set | ||
783 | 824 | ||
784 | # | 825 | # |
785 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 826 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -802,6 +843,7 @@ CONFIG_WLAN=y | |||
802 | # CONFIG_NETCONSOLE is not set | 843 | # CONFIG_NETCONSOLE is not set |
803 | # CONFIG_NETPOLL is not set | 844 | # CONFIG_NETPOLL is not set |
804 | # CONFIG_NET_POLL_CONTROLLER is not set | 845 | # CONFIG_NET_POLL_CONTROLLER is not set |
846 | # CONFIG_VMXNET3 is not set | ||
805 | # CONFIG_ISDN is not set | 847 | # CONFIG_ISDN is not set |
806 | # CONFIG_PHONE is not set | 848 | # CONFIG_PHONE is not set |
807 | 849 | ||
@@ -811,6 +853,7 @@ CONFIG_WLAN=y | |||
811 | CONFIG_INPUT=y | 853 | CONFIG_INPUT=y |
812 | CONFIG_INPUT_FF_MEMLESS=m | 854 | CONFIG_INPUT_FF_MEMLESS=m |
813 | # CONFIG_INPUT_POLLDEV is not set | 855 | # CONFIG_INPUT_POLLDEV is not set |
856 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
814 | 857 | ||
815 | # | 858 | # |
816 | # Userland interfaces | 859 | # Userland interfaces |
@@ -840,6 +883,7 @@ CONFIG_SERIO_SERPORT=y | |||
840 | CONFIG_SERIO_LIBPS2=y | 883 | CONFIG_SERIO_LIBPS2=y |
841 | # CONFIG_SERIO_RAW is not set | 884 | # CONFIG_SERIO_RAW is not set |
842 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 885 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
886 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
843 | # CONFIG_GAMEPORT is not set | 887 | # CONFIG_GAMEPORT is not set |
844 | 888 | ||
845 | # | 889 | # |
@@ -876,6 +920,7 @@ CONFIG_SERIAL_CORE=y | |||
876 | CONFIG_SERIAL_CORE_CONSOLE=y | 920 | CONFIG_SERIAL_CORE_CONSOLE=y |
877 | # CONFIG_SERIAL_JSM is not set | 921 | # CONFIG_SERIAL_JSM is not set |
878 | # CONFIG_SERIAL_OF_PLATFORM is not set | 922 | # CONFIG_SERIAL_OF_PLATFORM is not set |
923 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
879 | CONFIG_UNIX98_PTYS=y | 924 | CONFIG_UNIX98_PTYS=y |
880 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 925 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
881 | CONFIG_LEGACY_PTYS=y | 926 | CONFIG_LEGACY_PTYS=y |
@@ -932,11 +977,6 @@ CONFIG_I2C_MPC=y | |||
932 | # CONFIG_I2C_TINY_USB is not set | 977 | # CONFIG_I2C_TINY_USB is not set |
933 | 978 | ||
934 | # | 979 | # |
935 | # Graphics adapter I2C/DDC channel drivers | ||
936 | # | ||
937 | # CONFIG_I2C_VOODOO3 is not set | ||
938 | |||
939 | # | ||
940 | # Other I2C/SMBus bus drivers | 980 | # Other I2C/SMBus bus drivers |
941 | # | 981 | # |
942 | # CONFIG_I2C_PCA_PLATFORM is not set | 982 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -945,7 +985,6 @@ CONFIG_I2C_MPC=y | |||
945 | # | 985 | # |
946 | # Miscellaneous I2C Chip support | 986 | # Miscellaneous I2C Chip support |
947 | # | 987 | # |
948 | # CONFIG_DS1682 is not set | ||
949 | # CONFIG_SENSORS_TSL2550 is not set | 988 | # CONFIG_SENSORS_TSL2550 is not set |
950 | # CONFIG_I2C_DEBUG_CORE is not set | 989 | # CONFIG_I2C_DEBUG_CORE is not set |
951 | # CONFIG_I2C_DEBUG_ALGO is not set | 990 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -980,11 +1019,13 @@ CONFIG_SSB_POSSIBLE=y | |||
980 | # CONFIG_TWL4030_CORE is not set | 1019 | # CONFIG_TWL4030_CORE is not set |
981 | # CONFIG_MFD_TMIO is not set | 1020 | # CONFIG_MFD_TMIO is not set |
982 | # CONFIG_PMIC_DA903X is not set | 1021 | # CONFIG_PMIC_DA903X is not set |
1022 | # CONFIG_PMIC_ADP5520 is not set | ||
983 | # CONFIG_MFD_WM8400 is not set | 1023 | # CONFIG_MFD_WM8400 is not set |
984 | # CONFIG_MFD_WM831X is not set | 1024 | # CONFIG_MFD_WM831X is not set |
985 | # CONFIG_MFD_WM8350_I2C is not set | 1025 | # CONFIG_MFD_WM8350_I2C is not set |
986 | # CONFIG_MFD_PCF50633 is not set | 1026 | # CONFIG_MFD_PCF50633 is not set |
987 | # CONFIG_AB3100_CORE is not set | 1027 | # CONFIG_AB3100_CORE is not set |
1028 | # CONFIG_MFD_88PM8607 is not set | ||
988 | # CONFIG_REGULATOR is not set | 1029 | # CONFIG_REGULATOR is not set |
989 | # CONFIG_MEDIA_SUPPORT is not set | 1030 | # CONFIG_MEDIA_SUPPORT is not set |
990 | 1031 | ||
@@ -1059,6 +1100,7 @@ CONFIG_SND_PCI=y | |||
1059 | # CONFIG_SND_CS4281 is not set | 1100 | # CONFIG_SND_CS4281 is not set |
1060 | # CONFIG_SND_CS46XX is not set | 1101 | # CONFIG_SND_CS46XX is not set |
1061 | # CONFIG_SND_CS5530 is not set | 1102 | # CONFIG_SND_CS5530 is not set |
1103 | # CONFIG_SND_CS5535AUDIO is not set | ||
1062 | # CONFIG_SND_CTXFI is not set | 1104 | # CONFIG_SND_CTXFI is not set |
1063 | # CONFIG_SND_DARLA20 is not set | 1105 | # CONFIG_SND_DARLA20 is not set |
1064 | # CONFIG_SND_GINA20 is not set | 1106 | # CONFIG_SND_GINA20 is not set |
@@ -1186,6 +1228,7 @@ CONFIG_USB_MON=y | |||
1186 | CONFIG_USB_EHCI_HCD=y | 1228 | CONFIG_USB_EHCI_HCD=y |
1187 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1229 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1188 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1230 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1231 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1189 | # CONFIG_USB_EHCI_FSL is not set | 1232 | # CONFIG_USB_EHCI_FSL is not set |
1190 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1233 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1191 | # CONFIG_USB_OXU210HP_HCD is not set | 1234 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1312,6 +1355,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1312 | # CONFIG_RTC_DRV_PCF8563 is not set | 1355 | # CONFIG_RTC_DRV_PCF8563 is not set |
1313 | # CONFIG_RTC_DRV_PCF8583 is not set | 1356 | # CONFIG_RTC_DRV_PCF8583 is not set |
1314 | # CONFIG_RTC_DRV_M41T80 is not set | 1357 | # CONFIG_RTC_DRV_M41T80 is not set |
1358 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1315 | # CONFIG_RTC_DRV_S35390A is not set | 1359 | # CONFIG_RTC_DRV_S35390A is not set |
1316 | # CONFIG_RTC_DRV_FM3130 is not set | 1360 | # CONFIG_RTC_DRV_FM3130 is not set |
1317 | # CONFIG_RTC_DRV_RX8581 is not set | 1361 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1333,7 +1377,9 @@ CONFIG_RTC_DRV_CMOS=y | |||
1333 | # CONFIG_RTC_DRV_M48T86 is not set | 1377 | # CONFIG_RTC_DRV_M48T86 is not set |
1334 | # CONFIG_RTC_DRV_M48T35 is not set | 1378 | # CONFIG_RTC_DRV_M48T35 is not set |
1335 | # CONFIG_RTC_DRV_M48T59 is not set | 1379 | # CONFIG_RTC_DRV_M48T59 is not set |
1380 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1336 | # CONFIG_RTC_DRV_BQ4802 is not set | 1381 | # CONFIG_RTC_DRV_BQ4802 is not set |
1382 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1337 | # CONFIG_RTC_DRV_V3020 is not set | 1383 | # CONFIG_RTC_DRV_V3020 is not set |
1338 | 1384 | ||
1339 | # | 1385 | # |
@@ -1648,7 +1694,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1648 | # CONFIG_KEYS is not set | 1694 | # CONFIG_KEYS is not set |
1649 | # CONFIG_SECURITY is not set | 1695 | # CONFIG_SECURITY is not set |
1650 | # CONFIG_SECURITYFS is not set | 1696 | # CONFIG_SECURITYFS is not set |
1651 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1697 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1698 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1699 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1700 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1701 | CONFIG_DEFAULT_SECURITY="" | ||
1652 | CONFIG_CRYPTO=y | 1702 | CONFIG_CRYPTO=y |
1653 | 1703 | ||
1654 | # | 1704 | # |
diff --git a/arch/powerpc/configs/86xx/sbc8641d_defconfig b/arch/powerpc/configs/86xx/sbc8641d_defconfig index 89991f157ae..4fb04dd2cde 100644 --- a/arch/powerpc/configs/86xx/sbc8641d_defconfig +++ b/arch/powerpc/configs/86xx/sbc8641d_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:45 2009 | 4 | # Wed Jan 6 09:24:38 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -38,6 +38,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
40 | CONFIG_IRQ_PER_CPU=y | 40 | CONFIG_IRQ_PER_CPU=y |
41 | CONFIG_NR_IRQS=512 | ||
41 | CONFIG_STACKTRACE_SUPPORT=y | 42 | CONFIG_STACKTRACE_SUPPORT=y |
42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -61,6 +62,8 @@ CONFIG_AUDIT_ARCH=y | |||
61 | CONFIG_GENERIC_BUG=y | 62 | CONFIG_GENERIC_BUG=y |
62 | CONFIG_DTC=y | 63 | CONFIG_DTC=y |
63 | CONFIG_DEFAULT_UIMAGE=y | 64 | CONFIG_DEFAULT_UIMAGE=y |
65 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
66 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
64 | # CONFIG_PPC_DCR_NATIVE is not set | 67 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 68 | # CONFIG_PPC_DCR_MMIO is not set |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 69 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -90,6 +93,7 @@ CONFIG_BSD_PROCESS_ACCT_V3=y | |||
90 | # | 93 | # |
91 | CONFIG_TREE_RCU=y | 94 | CONFIG_TREE_RCU=y |
92 | # CONFIG_TREE_PREEMPT_RCU is not set | 95 | # CONFIG_TREE_PREEMPT_RCU is not set |
96 | # CONFIG_TINY_RCU is not set | ||
93 | # CONFIG_RCU_TRACE is not set | 97 | # CONFIG_RCU_TRACE is not set |
94 | CONFIG_RCU_FANOUT=32 | 98 | CONFIG_RCU_FANOUT=32 |
95 | # CONFIG_RCU_FANOUT_EXACT is not set | 99 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -162,6 +166,7 @@ CONFIG_HAVE_DMA_API_DEBUG=y | |||
162 | # | 166 | # |
163 | # CONFIG_GCOV_KERNEL is not set | 167 | # CONFIG_GCOV_KERNEL is not set |
164 | CONFIG_SLOW_WORK=y | 168 | CONFIG_SLOW_WORK=y |
169 | # CONFIG_SLOW_WORK_DEBUG is not set | ||
165 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 170 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
166 | CONFIG_SLABINFO=y | 171 | CONFIG_SLABINFO=y |
167 | CONFIG_RT_MUTEXES=y | 172 | CONFIG_RT_MUTEXES=y |
@@ -182,14 +187,41 @@ CONFIG_LBDAF=y | |||
182 | # IO Schedulers | 187 | # IO Schedulers |
183 | # | 188 | # |
184 | CONFIG_IOSCHED_NOOP=y | 189 | CONFIG_IOSCHED_NOOP=y |
185 | CONFIG_IOSCHED_AS=y | ||
186 | CONFIG_IOSCHED_DEADLINE=y | 190 | CONFIG_IOSCHED_DEADLINE=y |
187 | CONFIG_IOSCHED_CFQ=y | 191 | CONFIG_IOSCHED_CFQ=y |
188 | # CONFIG_DEFAULT_AS is not set | ||
189 | # CONFIG_DEFAULT_DEADLINE is not set | 192 | # CONFIG_DEFAULT_DEADLINE is not set |
190 | CONFIG_DEFAULT_CFQ=y | 193 | CONFIG_DEFAULT_CFQ=y |
191 | # CONFIG_DEFAULT_NOOP is not set | 194 | # CONFIG_DEFAULT_NOOP is not set |
192 | CONFIG_DEFAULT_IOSCHED="cfq" | 195 | CONFIG_DEFAULT_IOSCHED="cfq" |
196 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
197 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
198 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
199 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
200 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
201 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
202 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
203 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
204 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
205 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
206 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
207 | # CONFIG_INLINE_READ_LOCK is not set | ||
208 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
209 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
210 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
211 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
212 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
213 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
214 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
215 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
216 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
217 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
218 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
219 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
220 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
221 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
222 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
223 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
224 | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||
193 | # CONFIG_FREEZER is not set | 225 | # CONFIG_FREEZER is not set |
194 | 226 | ||
195 | # | 227 | # |
@@ -260,6 +292,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | |||
260 | # CONFIG_KEXEC is not set | 292 | # CONFIG_KEXEC is not set |
261 | # CONFIG_CRASH_DUMP is not set | 293 | # CONFIG_CRASH_DUMP is not set |
262 | CONFIG_IRQ_ALL_CPUS=y | 294 | CONFIG_IRQ_ALL_CPUS=y |
295 | CONFIG_SPARSE_IRQ=y | ||
263 | CONFIG_MAX_ACTIVE_REGIONS=32 | 296 | CONFIG_MAX_ACTIVE_REGIONS=32 |
264 | CONFIG_ARCH_FLATMEM_ENABLE=y | 297 | CONFIG_ARCH_FLATMEM_ENABLE=y |
265 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 298 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -276,8 +309,6 @@ CONFIG_MIGRATION=y | |||
276 | CONFIG_ZONE_DMA_FLAG=1 | 309 | CONFIG_ZONE_DMA_FLAG=1 |
277 | CONFIG_BOUNCE=y | 310 | CONFIG_BOUNCE=y |
278 | CONFIG_VIRT_TO_BUS=y | 311 | CONFIG_VIRT_TO_BUS=y |
279 | CONFIG_HAVE_MLOCK=y | ||
280 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
281 | # CONFIG_KSM is not set | 312 | # CONFIG_KSM is not set |
282 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 313 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
283 | CONFIG_PPC_4K_PAGES=y | 314 | CONFIG_PPC_4K_PAGES=y |
@@ -399,6 +430,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
399 | CONFIG_INET6_XFRM_MODE_BEET=m | 430 | CONFIG_INET6_XFRM_MODE_BEET=m |
400 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 431 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
401 | CONFIG_IPV6_SIT=m | 432 | CONFIG_IPV6_SIT=m |
433 | # CONFIG_IPV6_SIT_6RD is not set | ||
402 | CONFIG_IPV6_NDISC_NODETYPE=y | 434 | CONFIG_IPV6_NDISC_NODETYPE=y |
403 | CONFIG_IPV6_TUNNEL=m | 435 | CONFIG_IPV6_TUNNEL=m |
404 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 436 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -587,9 +619,6 @@ CONFIG_NET_PKTGEN=m | |||
587 | CONFIG_FIB_RULES=y | 619 | CONFIG_FIB_RULES=y |
588 | CONFIG_WIRELESS=y | 620 | CONFIG_WIRELESS=y |
589 | # CONFIG_CFG80211 is not set | 621 | # CONFIG_CFG80211 is not set |
590 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
591 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
592 | # CONFIG_WIRELESS_EXT is not set | ||
593 | # CONFIG_LIB80211 is not set | 622 | # CONFIG_LIB80211 is not set |
594 | 623 | ||
595 | # | 624 | # |
@@ -717,6 +746,10 @@ CONFIG_BLK_DEV=y | |||
717 | # CONFIG_BLK_DEV_COW_COMMON is not set | 746 | # CONFIG_BLK_DEV_COW_COMMON is not set |
718 | CONFIG_BLK_DEV_LOOP=m | 747 | CONFIG_BLK_DEV_LOOP=m |
719 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 748 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
749 | |||
750 | # | ||
751 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
752 | # | ||
720 | CONFIG_BLK_DEV_NBD=m | 753 | CONFIG_BLK_DEV_NBD=m |
721 | # CONFIG_BLK_DEV_SX8 is not set | 754 | # CONFIG_BLK_DEV_SX8 is not set |
722 | CONFIG_BLK_DEV_RAM=y | 755 | CONFIG_BLK_DEV_RAM=y |
@@ -727,6 +760,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
727 | # CONFIG_ATA_OVER_ETH is not set | 760 | # CONFIG_ATA_OVER_ETH is not set |
728 | # CONFIG_BLK_DEV_HD is not set | 761 | # CONFIG_BLK_DEV_HD is not set |
729 | CONFIG_MISC_DEVICES=y | 762 | CONFIG_MISC_DEVICES=y |
763 | # CONFIG_AD525X_DPOT is not set | ||
730 | # CONFIG_PHANTOM is not set | 764 | # CONFIG_PHANTOM is not set |
731 | # CONFIG_SGI_IOC4 is not set | 765 | # CONFIG_SGI_IOC4 is not set |
732 | # CONFIG_TIFM_CORE is not set | 766 | # CONFIG_TIFM_CORE is not set |
@@ -734,6 +768,7 @@ CONFIG_MISC_DEVICES=y | |||
734 | # CONFIG_ENCLOSURE_SERVICES is not set | 768 | # CONFIG_ENCLOSURE_SERVICES is not set |
735 | # CONFIG_HP_ILO is not set | 769 | # CONFIG_HP_ILO is not set |
736 | # CONFIG_ISL29003 is not set | 770 | # CONFIG_ISL29003 is not set |
771 | # CONFIG_DS1682 is not set | ||
737 | # CONFIG_C2PORT is not set | 772 | # CONFIG_C2PORT is not set |
738 | 773 | ||
739 | # | 774 | # |
@@ -786,7 +821,7 @@ CONFIG_DM_ZERO=y | |||
786 | # | 821 | # |
787 | 822 | ||
788 | # | 823 | # |
789 | # See the help texts for more information. | 824 | # The newer stack is recommended. |
790 | # | 825 | # |
791 | # CONFIG_FIREWIRE is not set | 826 | # CONFIG_FIREWIRE is not set |
792 | # CONFIG_IEEE1394 is not set | 827 | # CONFIG_IEEE1394 is not set |
@@ -873,8 +908,10 @@ CONFIG_GIANFAR=y | |||
873 | # CONFIG_NETDEV_10000 is not set | 908 | # CONFIG_NETDEV_10000 is not set |
874 | # CONFIG_TR is not set | 909 | # CONFIG_TR is not set |
875 | CONFIG_WLAN=y | 910 | CONFIG_WLAN=y |
876 | # CONFIG_WLAN_PRE80211 is not set | 911 | # CONFIG_AIRO is not set |
877 | # CONFIG_WLAN_80211 is not set | 912 | # CONFIG_ATMEL is not set |
913 | # CONFIG_PRISM54 is not set | ||
914 | # CONFIG_HOSTAP is not set | ||
878 | 915 | ||
879 | # | 916 | # |
880 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 917 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -918,6 +955,7 @@ CONFIG_NETCONSOLE=y | |||
918 | CONFIG_NETPOLL=y | 955 | CONFIG_NETPOLL=y |
919 | CONFIG_NETPOLL_TRAP=y | 956 | CONFIG_NETPOLL_TRAP=y |
920 | CONFIG_NET_POLL_CONTROLLER=y | 957 | CONFIG_NET_POLL_CONTROLLER=y |
958 | # CONFIG_VMXNET3 is not set | ||
921 | # CONFIG_ISDN is not set | 959 | # CONFIG_ISDN is not set |
922 | # CONFIG_PHONE is not set | 960 | # CONFIG_PHONE is not set |
923 | 961 | ||
@@ -927,6 +965,7 @@ CONFIG_NET_POLL_CONTROLLER=y | |||
927 | CONFIG_INPUT=y | 965 | CONFIG_INPUT=y |
928 | # CONFIG_INPUT_FF_MEMLESS is not set | 966 | # CONFIG_INPUT_FF_MEMLESS is not set |
929 | # CONFIG_INPUT_POLLDEV is not set | 967 | # CONFIG_INPUT_POLLDEV is not set |
968 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
930 | 969 | ||
931 | # | 970 | # |
932 | # Userland interfaces | 971 | # Userland interfaces |
@@ -985,6 +1024,7 @@ CONFIG_SERIAL_CORE=y | |||
985 | CONFIG_SERIAL_CORE_CONSOLE=y | 1024 | CONFIG_SERIAL_CORE_CONSOLE=y |
986 | # CONFIG_SERIAL_JSM is not set | 1025 | # CONFIG_SERIAL_JSM is not set |
987 | # CONFIG_SERIAL_OF_PLATFORM is not set | 1026 | # CONFIG_SERIAL_OF_PLATFORM is not set |
1027 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
988 | CONFIG_UNIX98_PTYS=y | 1028 | CONFIG_UNIX98_PTYS=y |
989 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 1029 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
990 | CONFIG_LEGACY_PTYS=y | 1030 | CONFIG_LEGACY_PTYS=y |
@@ -1042,11 +1082,6 @@ CONFIG_I2C_MPC=y | |||
1042 | # CONFIG_I2C_TAOS_EVM is not set | 1082 | # CONFIG_I2C_TAOS_EVM is not set |
1043 | 1083 | ||
1044 | # | 1084 | # |
1045 | # Graphics adapter I2C/DDC channel drivers | ||
1046 | # | ||
1047 | # CONFIG_I2C_VOODOO3 is not set | ||
1048 | |||
1049 | # | ||
1050 | # Other I2C/SMBus bus drivers | 1085 | # Other I2C/SMBus bus drivers |
1051 | # | 1086 | # |
1052 | # CONFIG_I2C_PCA_PLATFORM is not set | 1087 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -1055,7 +1090,6 @@ CONFIG_I2C_MPC=y | |||
1055 | # | 1090 | # |
1056 | # Miscellaneous I2C Chip support | 1091 | # Miscellaneous I2C Chip support |
1057 | # | 1092 | # |
1058 | # CONFIG_DS1682 is not set | ||
1059 | # CONFIG_SENSORS_TSL2550 is not set | 1093 | # CONFIG_SENSORS_TSL2550 is not set |
1060 | # CONFIG_I2C_DEBUG_CORE is not set | 1094 | # CONFIG_I2C_DEBUG_CORE is not set |
1061 | # CONFIG_I2C_DEBUG_ALGO is not set | 1095 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1101,6 +1135,7 @@ CONFIG_HWMON=y | |||
1101 | # CONFIG_SENSORS_GL520SM is not set | 1135 | # CONFIG_SENSORS_GL520SM is not set |
1102 | # CONFIG_SENSORS_IT87 is not set | 1136 | # CONFIG_SENSORS_IT87 is not set |
1103 | # CONFIG_SENSORS_LM63 is not set | 1137 | # CONFIG_SENSORS_LM63 is not set |
1138 | # CONFIG_SENSORS_LM73 is not set | ||
1104 | # CONFIG_SENSORS_LM75 is not set | 1139 | # CONFIG_SENSORS_LM75 is not set |
1105 | # CONFIG_SENSORS_LM77 is not set | 1140 | # CONFIG_SENSORS_LM77 is not set |
1106 | # CONFIG_SENSORS_LM78 is not set | 1141 | # CONFIG_SENSORS_LM78 is not set |
@@ -1139,6 +1174,7 @@ CONFIG_HWMON=y | |||
1139 | # CONFIG_SENSORS_W83L786NG is not set | 1174 | # CONFIG_SENSORS_W83L786NG is not set |
1140 | # CONFIG_SENSORS_W83627HF is not set | 1175 | # CONFIG_SENSORS_W83627HF is not set |
1141 | # CONFIG_SENSORS_W83627EHF is not set | 1176 | # CONFIG_SENSORS_W83627EHF is not set |
1177 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1142 | # CONFIG_THERMAL is not set | 1178 | # CONFIG_THERMAL is not set |
1143 | CONFIG_WATCHDOG=y | 1179 | CONFIG_WATCHDOG=y |
1144 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1180 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1171,11 +1207,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1171 | # CONFIG_TWL4030_CORE is not set | 1207 | # CONFIG_TWL4030_CORE is not set |
1172 | # CONFIG_MFD_TMIO is not set | 1208 | # CONFIG_MFD_TMIO is not set |
1173 | # CONFIG_PMIC_DA903X is not set | 1209 | # CONFIG_PMIC_DA903X is not set |
1210 | # CONFIG_PMIC_ADP5520 is not set | ||
1174 | # CONFIG_MFD_WM8400 is not set | 1211 | # CONFIG_MFD_WM8400 is not set |
1175 | # CONFIG_MFD_WM831X is not set | 1212 | # CONFIG_MFD_WM831X is not set |
1176 | # CONFIG_MFD_WM8350_I2C is not set | 1213 | # CONFIG_MFD_WM8350_I2C is not set |
1177 | # CONFIG_MFD_PCF50633 is not set | 1214 | # CONFIG_MFD_PCF50633 is not set |
1178 | # CONFIG_AB3100_CORE is not set | 1215 | # CONFIG_AB3100_CORE is not set |
1216 | # CONFIG_MFD_88PM8607 is not set | ||
1179 | # CONFIG_REGULATOR is not set | 1217 | # CONFIG_REGULATOR is not set |
1180 | # CONFIG_MEDIA_SUPPORT is not set | 1218 | # CONFIG_MEDIA_SUPPORT is not set |
1181 | 1219 | ||
@@ -1281,7 +1319,6 @@ CONFIG_OCFS2_FS_O2CB=m | |||
1281 | CONFIG_OCFS2_FS_STATS=y | 1319 | CONFIG_OCFS2_FS_STATS=y |
1282 | CONFIG_OCFS2_DEBUG_MASKLOG=y | 1320 | CONFIG_OCFS2_DEBUG_MASKLOG=y |
1283 | # CONFIG_OCFS2_DEBUG_FS is not set | 1321 | # CONFIG_OCFS2_DEBUG_FS is not set |
1284 | # CONFIG_OCFS2_FS_POSIX_ACL is not set | ||
1285 | # CONFIG_BTRFS_FS is not set | 1322 | # CONFIG_BTRFS_FS is not set |
1286 | # CONFIG_NILFS2_FS is not set | 1323 | # CONFIG_NILFS2_FS is not set |
1287 | CONFIG_FILE_LOCKING=y | 1324 | CONFIG_FILE_LOCKING=y |
@@ -1556,8 +1593,12 @@ CONFIG_SECURITY=y | |||
1556 | CONFIG_SECURITY_NETWORK=y | 1593 | CONFIG_SECURITY_NETWORK=y |
1557 | # CONFIG_SECURITY_NETWORK_XFRM is not set | 1594 | # CONFIG_SECURITY_NETWORK_XFRM is not set |
1558 | # CONFIG_SECURITY_PATH is not set | 1595 | # CONFIG_SECURITY_PATH is not set |
1559 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1560 | # CONFIG_SECURITY_TOMOYO is not set | 1596 | # CONFIG_SECURITY_TOMOYO is not set |
1597 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set | ||
1598 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1599 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1600 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1601 | CONFIG_DEFAULT_SECURITY="" | ||
1561 | CONFIG_CRYPTO=y | 1602 | CONFIG_CRYPTO=y |
1562 | 1603 | ||
1563 | # | 1604 | # |
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig index 052cf134e01..5c1dc768bbd 100644 --- a/arch/powerpc/configs/adder875_defconfig +++ b/arch/powerpc/configs/adder875_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:04 2009 | 4 | # Wed Jan 6 09:23:58 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
34 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
35 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
36 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
37 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -55,6 +56,7 @@ CONFIG_GENERIC_BUG=y | |||
55 | CONFIG_DTC=y | 56 | CONFIG_DTC=y |
56 | # CONFIG_DEFAULT_UIMAGE is not set | 57 | # CONFIG_DEFAULT_UIMAGE is not set |
57 | CONFIG_REDBOOT=y | 58 | CONFIG_REDBOOT=y |
59 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
58 | # CONFIG_PPC_DCR_NATIVE is not set | 60 | # CONFIG_PPC_DCR_NATIVE is not set |
59 | # CONFIG_PPC_DCR_MMIO is not set | 61 | # CONFIG_PPC_DCR_MMIO is not set |
60 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 62 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -82,6 +84,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
82 | # | 84 | # |
83 | CONFIG_TREE_RCU=y | 85 | CONFIG_TREE_RCU=y |
84 | # CONFIG_TREE_PREEMPT_RCU is not set | 86 | # CONFIG_TREE_PREEMPT_RCU is not set |
87 | # CONFIG_TINY_RCU is not set | ||
85 | # CONFIG_RCU_TRACE is not set | 88 | # CONFIG_RCU_TRACE is not set |
86 | CONFIG_RCU_FANOUT=32 | 89 | CONFIG_RCU_FANOUT=32 |
87 | # CONFIG_RCU_FANOUT_EXACT is not set | 90 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -161,14 +164,41 @@ CONFIG_LBDAF=y | |||
161 | # IO Schedulers | 164 | # IO Schedulers |
162 | # | 165 | # |
163 | CONFIG_IOSCHED_NOOP=y | 166 | CONFIG_IOSCHED_NOOP=y |
164 | # CONFIG_IOSCHED_AS is not set | ||
165 | CONFIG_IOSCHED_DEADLINE=y | 167 | CONFIG_IOSCHED_DEADLINE=y |
166 | # CONFIG_IOSCHED_CFQ is not set | 168 | # CONFIG_IOSCHED_CFQ is not set |
167 | # CONFIG_DEFAULT_AS is not set | ||
168 | CONFIG_DEFAULT_DEADLINE=y | 169 | CONFIG_DEFAULT_DEADLINE=y |
169 | # CONFIG_DEFAULT_CFQ is not set | 170 | # CONFIG_DEFAULT_CFQ is not set |
170 | # CONFIG_DEFAULT_NOOP is not set | 171 | # CONFIG_DEFAULT_NOOP is not set |
171 | CONFIG_DEFAULT_IOSCHED="deadline" | 172 | CONFIG_DEFAULT_IOSCHED="deadline" |
173 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
174 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
175 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
176 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
177 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
178 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
179 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
180 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
181 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
182 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
183 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
184 | # CONFIG_INLINE_READ_LOCK is not set | ||
185 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
186 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
187 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
188 | CONFIG_INLINE_READ_UNLOCK=y | ||
189 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
190 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
191 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
192 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
193 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
194 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
195 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
196 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
197 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
198 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
199 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
200 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
201 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
172 | # CONFIG_FREEZER is not set | 202 | # CONFIG_FREEZER is not set |
173 | 203 | ||
174 | # | 204 | # |
@@ -242,6 +272,7 @@ CONFIG_BINFMT_ELF=y | |||
242 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 272 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
243 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 273 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
244 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 274 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
275 | CONFIG_SPARSE_IRQ=y | ||
245 | CONFIG_MAX_ACTIVE_REGIONS=32 | 276 | CONFIG_MAX_ACTIVE_REGIONS=32 |
246 | CONFIG_ARCH_FLATMEM_ENABLE=y | 277 | CONFIG_ARCH_FLATMEM_ENABLE=y |
247 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 278 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -258,8 +289,6 @@ CONFIG_MIGRATION=y | |||
258 | CONFIG_ZONE_DMA_FLAG=1 | 289 | CONFIG_ZONE_DMA_FLAG=1 |
259 | CONFIG_BOUNCE=y | 290 | CONFIG_BOUNCE=y |
260 | CONFIG_VIRT_TO_BUS=y | 291 | CONFIG_VIRT_TO_BUS=y |
261 | CONFIG_HAVE_MLOCK=y | ||
262 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
263 | # CONFIG_KSM is not set | 292 | # CONFIG_KSM is not set |
264 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 293 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
265 | CONFIG_PPC_4K_PAGES=y | 294 | CONFIG_PPC_4K_PAGES=y |
@@ -373,9 +402,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
373 | # CONFIG_AF_RXRPC is not set | 402 | # CONFIG_AF_RXRPC is not set |
374 | CONFIG_WIRELESS=y | 403 | CONFIG_WIRELESS=y |
375 | # CONFIG_CFG80211 is not set | 404 | # CONFIG_CFG80211 is not set |
376 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
377 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
378 | # CONFIG_WIRELESS_EXT is not set | ||
379 | # CONFIG_LIB80211 is not set | 405 | # CONFIG_LIB80211 is not set |
380 | 406 | ||
381 | # | 407 | # |
@@ -546,8 +572,7 @@ CONFIG_FS_ENET_MDIO_FEC=y | |||
546 | # CONFIG_NETDEV_1000 is not set | 572 | # CONFIG_NETDEV_1000 is not set |
547 | # CONFIG_NETDEV_10000 is not set | 573 | # CONFIG_NETDEV_10000 is not set |
548 | CONFIG_WLAN=y | 574 | CONFIG_WLAN=y |
549 | # CONFIG_WLAN_PRE80211 is not set | 575 | # CONFIG_HOSTAP is not set |
550 | # CONFIG_WLAN_80211 is not set | ||
551 | 576 | ||
552 | # | 577 | # |
553 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 578 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -567,6 +592,7 @@ CONFIG_WLAN=y | |||
567 | CONFIG_INPUT=y | 592 | CONFIG_INPUT=y |
568 | # CONFIG_INPUT_FF_MEMLESS is not set | 593 | # CONFIG_INPUT_FF_MEMLESS is not set |
569 | # CONFIG_INPUT_POLLDEV is not set | 594 | # CONFIG_INPUT_POLLDEV is not set |
595 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
570 | 596 | ||
571 | # | 597 | # |
572 | # Userland interfaces | 598 | # Userland interfaces |
@@ -615,6 +641,7 @@ CONFIG_SERIO_SERPORT=y | |||
615 | CONFIG_SERIO_LIBPS2=y | 641 | CONFIG_SERIO_LIBPS2=y |
616 | # CONFIG_SERIO_RAW is not set | 642 | # CONFIG_SERIO_RAW is not set |
617 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 643 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
644 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
618 | # CONFIG_GAMEPORT is not set | 645 | # CONFIG_GAMEPORT is not set |
619 | 646 | ||
620 | # | 647 | # |
@@ -637,6 +664,7 @@ CONFIG_SERIAL_CORE=y | |||
637 | CONFIG_SERIAL_CORE_CONSOLE=y | 664 | CONFIG_SERIAL_CORE_CONSOLE=y |
638 | CONFIG_SERIAL_CPM=y | 665 | CONFIG_SERIAL_CPM=y |
639 | CONFIG_SERIAL_CPM_CONSOLE=y | 666 | CONFIG_SERIAL_CPM_CONSOLE=y |
667 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
640 | CONFIG_UNIX98_PTYS=y | 668 | CONFIG_UNIX98_PTYS=y |
641 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 669 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
642 | # CONFIG_LEGACY_PTYS is not set | 670 | # CONFIG_LEGACY_PTYS is not set |
@@ -898,6 +926,7 @@ CONFIG_DEBUG_INFO=y | |||
898 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 926 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
899 | # CONFIG_FAULT_INJECTION is not set | 927 | # CONFIG_FAULT_INJECTION is not set |
900 | # CONFIG_LATENCYTOP is not set | 928 | # CONFIG_LATENCYTOP is not set |
929 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
901 | # CONFIG_DEBUG_PAGEALLOC is not set | 930 | # CONFIG_DEBUG_PAGEALLOC is not set |
902 | CONFIG_HAVE_FUNCTION_TRACER=y | 931 | CONFIG_HAVE_FUNCTION_TRACER=y |
903 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 932 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -943,7 +972,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
943 | # CONFIG_KEYS is not set | 972 | # CONFIG_KEYS is not set |
944 | # CONFIG_SECURITY is not set | 973 | # CONFIG_SECURITY is not set |
945 | # CONFIG_SECURITYFS is not set | 974 | # CONFIG_SECURITYFS is not set |
946 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 975 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
976 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
977 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
978 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
979 | CONFIG_DEFAULT_SECURITY="" | ||
947 | # CONFIG_CRYPTO is not set | 980 | # CONFIG_CRYPTO is not set |
948 | CONFIG_PPC_CLOCK=y | 981 | CONFIG_PPC_CLOCK=y |
949 | CONFIG_PPC_LIB_RHEAP=y | 982 | CONFIG_PPC_LIB_RHEAP=y |
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig index 0fb65a85dfd..72137cd881d 100644 --- a/arch/powerpc/configs/c2k_defconfig +++ b/arch/powerpc/configs/c2k_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:05 2009 | 4 | # Wed Jan 6 09:23:59 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -61,6 +62,7 @@ CONFIG_AUDIT_ARCH=y | |||
61 | CONFIG_GENERIC_BUG=y | 62 | CONFIG_GENERIC_BUG=y |
62 | CONFIG_DTC=y | 63 | CONFIG_DTC=y |
63 | # CONFIG_DEFAULT_UIMAGE is not set | 64 | # CONFIG_DEFAULT_UIMAGE is not set |
65 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
64 | # CONFIG_PPC_DCR_NATIVE is not set | 66 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 67 | # CONFIG_PPC_DCR_MMIO is not set |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 68 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -92,6 +94,7 @@ CONFIG_AUDIT_TREE=y | |||
92 | # | 94 | # |
93 | CONFIG_TREE_RCU=y | 95 | CONFIG_TREE_RCU=y |
94 | # CONFIG_TREE_PREEMPT_RCU is not set | 96 | # CONFIG_TREE_PREEMPT_RCU is not set |
97 | # CONFIG_TINY_RCU is not set | ||
95 | # CONFIG_RCU_TRACE is not set | 98 | # CONFIG_RCU_TRACE is not set |
96 | CONFIG_RCU_FANOUT=32 | 99 | CONFIG_RCU_FANOUT=32 |
97 | # CONFIG_RCU_FANOUT_EXACT is not set | 100 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -173,6 +176,7 @@ CONFIG_HAVE_DMA_API_DEBUG=y | |||
173 | # | 176 | # |
174 | # CONFIG_GCOV_KERNEL is not set | 177 | # CONFIG_GCOV_KERNEL is not set |
175 | CONFIG_SLOW_WORK=y | 178 | CONFIG_SLOW_WORK=y |
179 | # CONFIG_SLOW_WORK_DEBUG is not set | ||
176 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 180 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
177 | CONFIG_SLABINFO=y | 181 | CONFIG_SLABINFO=y |
178 | CONFIG_RT_MUTEXES=y | 182 | CONFIG_RT_MUTEXES=y |
@@ -192,14 +196,41 @@ CONFIG_LBDAF=y | |||
192 | # IO Schedulers | 196 | # IO Schedulers |
193 | # | 197 | # |
194 | CONFIG_IOSCHED_NOOP=y | 198 | CONFIG_IOSCHED_NOOP=y |
195 | CONFIG_IOSCHED_AS=y | ||
196 | CONFIG_IOSCHED_DEADLINE=y | 199 | CONFIG_IOSCHED_DEADLINE=y |
197 | CONFIG_IOSCHED_CFQ=y | 200 | CONFIG_IOSCHED_CFQ=y |
198 | # CONFIG_DEFAULT_AS is not set | ||
199 | # CONFIG_DEFAULT_DEADLINE is not set | 201 | # CONFIG_DEFAULT_DEADLINE is not set |
200 | CONFIG_DEFAULT_CFQ=y | 202 | CONFIG_DEFAULT_CFQ=y |
201 | # CONFIG_DEFAULT_NOOP is not set | 203 | # CONFIG_DEFAULT_NOOP is not set |
202 | CONFIG_DEFAULT_IOSCHED="cfq" | 204 | CONFIG_DEFAULT_IOSCHED="cfq" |
205 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
206 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
207 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
208 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
209 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
210 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
211 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
212 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
213 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
214 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
215 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
216 | # CONFIG_INLINE_READ_LOCK is not set | ||
217 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
218 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
219 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
220 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
221 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
222 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
223 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
224 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
225 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
226 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
227 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
228 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
229 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
230 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
231 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
232 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
233 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
203 | # CONFIG_FREEZER is not set | 234 | # CONFIG_FREEZER is not set |
204 | 235 | ||
205 | # | 236 | # |
@@ -224,6 +255,8 @@ CONFIG_EMBEDDED6xx=y | |||
224 | # CONFIG_PPC_PRPMC2800 is not set | 255 | # CONFIG_PPC_PRPMC2800 is not set |
225 | CONFIG_PPC_C2K=y | 256 | CONFIG_PPC_C2K=y |
226 | CONFIG_MV64X60=y | 257 | CONFIG_MV64X60=y |
258 | # CONFIG_GAMECUBE is not set | ||
259 | # CONFIG_WII is not set | ||
227 | # CONFIG_AMIGAONE is not set | 260 | # CONFIG_AMIGAONE is not set |
228 | CONFIG_PPC_OF_BOOT_TRAMPOLINE=y | 261 | CONFIG_PPC_OF_BOOT_TRAMPOLINE=y |
229 | # CONFIG_IPIC is not set | 262 | # CONFIG_IPIC is not set |
@@ -286,6 +319,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
286 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 319 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
287 | # CONFIG_KEXEC is not set | 320 | # CONFIG_KEXEC is not set |
288 | # CONFIG_CRASH_DUMP is not set | 321 | # CONFIG_CRASH_DUMP is not set |
322 | CONFIG_SPARSE_IRQ=y | ||
289 | CONFIG_MAX_ACTIVE_REGIONS=32 | 323 | CONFIG_MAX_ACTIVE_REGIONS=32 |
290 | CONFIG_ARCH_FLATMEM_ENABLE=y | 324 | CONFIG_ARCH_FLATMEM_ENABLE=y |
291 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 325 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -296,14 +330,12 @@ CONFIG_FLATMEM_MANUAL=y | |||
296 | CONFIG_FLATMEM=y | 330 | CONFIG_FLATMEM=y |
297 | CONFIG_FLAT_NODE_MEM_MAP=y | 331 | CONFIG_FLAT_NODE_MEM_MAP=y |
298 | CONFIG_PAGEFLAGS_EXTENDED=y | 332 | CONFIG_PAGEFLAGS_EXTENDED=y |
299 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 333 | CONFIG_SPLIT_PTLOCK_CPUS=999999 |
300 | CONFIG_MIGRATION=y | 334 | CONFIG_MIGRATION=y |
301 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 335 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
302 | CONFIG_ZONE_DMA_FLAG=1 | 336 | CONFIG_ZONE_DMA_FLAG=1 |
303 | CONFIG_BOUNCE=y | 337 | CONFIG_BOUNCE=y |
304 | CONFIG_VIRT_TO_BUS=y | 338 | CONFIG_VIRT_TO_BUS=y |
305 | CONFIG_HAVE_MLOCK=y | ||
306 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
307 | # CONFIG_KSM is not set | 339 | # CONFIG_KSM is not set |
308 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 340 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
309 | CONFIG_PPC_4K_PAGES=y | 341 | CONFIG_PPC_4K_PAGES=y |
@@ -316,6 +348,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
316 | CONFIG_EXTRA_TARGETS="" | 348 | CONFIG_EXTRA_TARGETS="" |
317 | CONFIG_PM=y | 349 | CONFIG_PM=y |
318 | # CONFIG_PM_DEBUG is not set | 350 | # CONFIG_PM_DEBUG is not set |
351 | # CONFIG_HIBERNATION is not set | ||
319 | # CONFIG_PM_RUNTIME is not set | 352 | # CONFIG_PM_RUNTIME is not set |
320 | CONFIG_SECCOMP=y | 353 | CONFIG_SECCOMP=y |
321 | CONFIG_ISA_DMA_API=y | 354 | CONFIG_ISA_DMA_API=y |
@@ -424,6 +457,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
424 | CONFIG_INET6_XFRM_MODE_BEET=m | 457 | CONFIG_INET6_XFRM_MODE_BEET=m |
425 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 458 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
426 | CONFIG_IPV6_SIT=m | 459 | CONFIG_IPV6_SIT=m |
460 | # CONFIG_IPV6_SIT_6RD is not set | ||
427 | CONFIG_IPV6_NDISC_NODETYPE=y | 461 | CONFIG_IPV6_NDISC_NODETYPE=y |
428 | CONFIG_IPV6_TUNNEL=m | 462 | CONFIG_IPV6_TUNNEL=m |
429 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 463 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -687,10 +721,6 @@ CONFIG_BT_HCIVHCI=m | |||
687 | CONFIG_FIB_RULES=y | 721 | CONFIG_FIB_RULES=y |
688 | CONFIG_WIRELESS=y | 722 | CONFIG_WIRELESS=y |
689 | # CONFIG_CFG80211 is not set | 723 | # CONFIG_CFG80211 is not set |
690 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
691 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
692 | CONFIG_WIRELESS_EXT=y | ||
693 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
694 | # CONFIG_LIB80211 is not set | 724 | # CONFIG_LIB80211 is not set |
695 | 725 | ||
696 | # | 726 | # |
@@ -773,7 +803,6 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y | |||
773 | # CONFIG_MTD_PHYSMAP is not set | 803 | # CONFIG_MTD_PHYSMAP is not set |
774 | CONFIG_MTD_PHYSMAP_OF=y | 804 | CONFIG_MTD_PHYSMAP_OF=y |
775 | # CONFIG_MTD_PCI is not set | 805 | # CONFIG_MTD_PCI is not set |
776 | # CONFIG_MTD_GPIO_ADDR is not set | ||
777 | # CONFIG_MTD_INTEL_VR_NOR is not set | 806 | # CONFIG_MTD_INTEL_VR_NOR is not set |
778 | # CONFIG_MTD_PLATRAM is not set | 807 | # CONFIG_MTD_PLATRAM is not set |
779 | 808 | ||
@@ -817,6 +846,10 @@ CONFIG_BLK_DEV=y | |||
817 | # CONFIG_BLK_DEV_COW_COMMON is not set | 846 | # CONFIG_BLK_DEV_COW_COMMON is not set |
818 | CONFIG_BLK_DEV_LOOP=m | 847 | CONFIG_BLK_DEV_LOOP=m |
819 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 848 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
849 | |||
850 | # | ||
851 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
852 | # | ||
820 | CONFIG_BLK_DEV_NBD=m | 853 | CONFIG_BLK_DEV_NBD=m |
821 | # CONFIG_BLK_DEV_SX8 is not set | 854 | # CONFIG_BLK_DEV_SX8 is not set |
822 | # CONFIG_BLK_DEV_UB is not set | 855 | # CONFIG_BLK_DEV_UB is not set |
@@ -870,7 +903,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
870 | # CONFIG_SCSI_BNX2_ISCSI is not set | 903 | # CONFIG_SCSI_BNX2_ISCSI is not set |
871 | # CONFIG_BE2ISCSI is not set | 904 | # CONFIG_BE2ISCSI is not set |
872 | CONFIG_BLK_DEV_3W_XXXX_RAID=m | 905 | CONFIG_BLK_DEV_3W_XXXX_RAID=m |
906 | # CONFIG_SCSI_HPSA is not set | ||
873 | CONFIG_SCSI_3W_9XXX=m | 907 | CONFIG_SCSI_3W_9XXX=m |
908 | # CONFIG_SCSI_3W_SAS is not set | ||
874 | CONFIG_SCSI_ACARD=m | 909 | CONFIG_SCSI_ACARD=m |
875 | CONFIG_SCSI_AACRAID=m | 910 | CONFIG_SCSI_AACRAID=m |
876 | CONFIG_SCSI_AIC7XXX=m | 911 | CONFIG_SCSI_AIC7XXX=m |
@@ -925,6 +960,7 @@ CONFIG_SCSI_LPFC=m | |||
925 | # CONFIG_SCSI_NSP32 is not set | 960 | # CONFIG_SCSI_NSP32 is not set |
926 | # CONFIG_SCSI_DEBUG is not set | 961 | # CONFIG_SCSI_DEBUG is not set |
927 | # CONFIG_SCSI_PMCRAID is not set | 962 | # CONFIG_SCSI_PMCRAID is not set |
963 | # CONFIG_SCSI_PM8001 is not set | ||
928 | # CONFIG_SCSI_SRP is not set | 964 | # CONFIG_SCSI_SRP is not set |
929 | # CONFIG_SCSI_BFA_FC is not set | 965 | # CONFIG_SCSI_BFA_FC is not set |
930 | # CONFIG_SCSI_DH is not set | 966 | # CONFIG_SCSI_DH is not set |
@@ -942,7 +978,7 @@ CONFIG_SCSI_LPFC=m | |||
942 | # | 978 | # |
943 | 979 | ||
944 | # | 980 | # |
945 | # See the help texts for more information. | 981 | # The newer stack is recommended. |
946 | # | 982 | # |
947 | # CONFIG_FIREWIRE is not set | 983 | # CONFIG_FIREWIRE is not set |
948 | # CONFIG_IEEE1394 is not set | 984 | # CONFIG_IEEE1394 is not set |
@@ -1027,8 +1063,11 @@ CONFIG_MV643XX_ETH=y | |||
1027 | # CONFIG_NETDEV_10000 is not set | 1063 | # CONFIG_NETDEV_10000 is not set |
1028 | # CONFIG_TR is not set | 1064 | # CONFIG_TR is not set |
1029 | CONFIG_WLAN=y | 1065 | CONFIG_WLAN=y |
1030 | # CONFIG_WLAN_PRE80211 is not set | 1066 | # CONFIG_AIRO is not set |
1031 | # CONFIG_WLAN_80211 is not set | 1067 | # CONFIG_ATMEL is not set |
1068 | # CONFIG_PRISM54 is not set | ||
1069 | # CONFIG_USB_ZD1201 is not set | ||
1070 | # CONFIG_HOSTAP is not set | ||
1032 | 1071 | ||
1033 | # | 1072 | # |
1034 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 1073 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -1054,6 +1093,7 @@ CONFIG_NETCONSOLE=m | |||
1054 | CONFIG_NETPOLL=y | 1093 | CONFIG_NETPOLL=y |
1055 | CONFIG_NETPOLL_TRAP=y | 1094 | CONFIG_NETPOLL_TRAP=y |
1056 | CONFIG_NET_POLL_CONTROLLER=y | 1095 | CONFIG_NET_POLL_CONTROLLER=y |
1096 | # CONFIG_VMXNET3 is not set | ||
1057 | # CONFIG_ISDN is not set | 1097 | # CONFIG_ISDN is not set |
1058 | # CONFIG_PHONE is not set | 1098 | # CONFIG_PHONE is not set |
1059 | 1099 | ||
@@ -1063,6 +1103,7 @@ CONFIG_NET_POLL_CONTROLLER=y | |||
1063 | CONFIG_INPUT=y | 1103 | CONFIG_INPUT=y |
1064 | # CONFIG_INPUT_FF_MEMLESS is not set | 1104 | # CONFIG_INPUT_FF_MEMLESS is not set |
1065 | # CONFIG_INPUT_POLLDEV is not set | 1105 | # CONFIG_INPUT_POLLDEV is not set |
1106 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
1066 | 1107 | ||
1067 | # | 1108 | # |
1068 | # Userland interfaces | 1109 | # Userland interfaces |
@@ -1121,8 +1162,6 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
1121 | # CONFIG_N_HDLC is not set | 1162 | # CONFIG_N_HDLC is not set |
1122 | # CONFIG_RISCOM8 is not set | 1163 | # CONFIG_RISCOM8 is not set |
1123 | # CONFIG_SPECIALIX is not set | 1164 | # CONFIG_SPECIALIX is not set |
1124 | # CONFIG_SX is not set | ||
1125 | # CONFIG_RIO is not set | ||
1126 | # CONFIG_STALDRV is not set | 1165 | # CONFIG_STALDRV is not set |
1127 | # CONFIG_NOZOMI is not set | 1166 | # CONFIG_NOZOMI is not set |
1128 | 1167 | ||
@@ -1140,6 +1179,7 @@ CONFIG_SERIAL_MPSC_CONSOLE=y | |||
1140 | CONFIG_SERIAL_CORE=y | 1179 | CONFIG_SERIAL_CORE=y |
1141 | CONFIG_SERIAL_CORE_CONSOLE=y | 1180 | CONFIG_SERIAL_CORE_CONSOLE=y |
1142 | # CONFIG_SERIAL_JSM is not set | 1181 | # CONFIG_SERIAL_JSM is not set |
1182 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
1143 | CONFIG_UNIX98_PTYS=y | 1183 | CONFIG_UNIX98_PTYS=y |
1144 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 1184 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
1145 | # CONFIG_LEGACY_PTYS is not set | 1185 | # CONFIG_LEGACY_PTYS is not set |
@@ -1200,11 +1240,6 @@ CONFIG_I2C_MV64XXX=m | |||
1200 | # CONFIG_I2C_TINY_USB is not set | 1240 | # CONFIG_I2C_TINY_USB is not set |
1201 | 1241 | ||
1202 | # | 1242 | # |
1203 | # Graphics adapter I2C/DDC channel drivers | ||
1204 | # | ||
1205 | # CONFIG_I2C_VOODOO3 is not set | ||
1206 | |||
1207 | # | ||
1208 | # Other I2C/SMBus bus drivers | 1243 | # Other I2C/SMBus bus drivers |
1209 | # | 1244 | # |
1210 | # CONFIG_I2C_PCA_PLATFORM is not set | 1245 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -1213,7 +1248,6 @@ CONFIG_I2C_MV64XXX=m | |||
1213 | # | 1248 | # |
1214 | # Miscellaneous I2C Chip support | 1249 | # Miscellaneous I2C Chip support |
1215 | # | 1250 | # |
1216 | # CONFIG_DS1682 is not set | ||
1217 | # CONFIG_SENSORS_TSL2550 is not set | 1251 | # CONFIG_SENSORS_TSL2550 is not set |
1218 | # CONFIG_I2C_DEBUG_CORE is not set | 1252 | # CONFIG_I2C_DEBUG_CORE is not set |
1219 | # CONFIG_I2C_DEBUG_ALGO is not set | 1253 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1259,6 +1293,7 @@ CONFIG_SENSORS_GL518SM=m | |||
1259 | # CONFIG_SENSORS_GL520SM is not set | 1293 | # CONFIG_SENSORS_GL520SM is not set |
1260 | CONFIG_SENSORS_IT87=m | 1294 | CONFIG_SENSORS_IT87=m |
1261 | # CONFIG_SENSORS_LM63 is not set | 1295 | # CONFIG_SENSORS_LM63 is not set |
1296 | # CONFIG_SENSORS_LM73 is not set | ||
1262 | CONFIG_SENSORS_LM75=m | 1297 | CONFIG_SENSORS_LM75=m |
1263 | CONFIG_SENSORS_LM77=m | 1298 | CONFIG_SENSORS_LM77=m |
1264 | CONFIG_SENSORS_LM78=m | 1299 | CONFIG_SENSORS_LM78=m |
@@ -1297,6 +1332,7 @@ CONFIG_SENSORS_W83L785TS=m | |||
1297 | # CONFIG_SENSORS_W83L786NG is not set | 1332 | # CONFIG_SENSORS_W83L786NG is not set |
1298 | CONFIG_SENSORS_W83627HF=m | 1333 | CONFIG_SENSORS_W83627HF=m |
1299 | # CONFIG_SENSORS_W83627EHF is not set | 1334 | # CONFIG_SENSORS_W83627EHF is not set |
1335 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1300 | # CONFIG_THERMAL is not set | 1336 | # CONFIG_THERMAL is not set |
1301 | CONFIG_WATCHDOG=y | 1337 | CONFIG_WATCHDOG=y |
1302 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1338 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1333,7 +1369,6 @@ CONFIG_SSB_POSSIBLE=y | |||
1333 | # CONFIG_HTC_PASIC3 is not set | 1369 | # CONFIG_HTC_PASIC3 is not set |
1334 | # CONFIG_MFD_TMIO is not set | 1370 | # CONFIG_MFD_TMIO is not set |
1335 | # CONFIG_MFD_WM8400 is not set | 1371 | # CONFIG_MFD_WM8400 is not set |
1336 | # CONFIG_MFD_WM831X is not set | ||
1337 | # CONFIG_MFD_WM8350_I2C is not set | 1372 | # CONFIG_MFD_WM8350_I2C is not set |
1338 | # CONFIG_MFD_PCF50633 is not set | 1373 | # CONFIG_MFD_PCF50633 is not set |
1339 | # CONFIG_AB3100_CORE is not set | 1374 | # CONFIG_AB3100_CORE is not set |
@@ -1392,6 +1427,7 @@ CONFIG_USB_MON=m | |||
1392 | CONFIG_USB_EHCI_HCD=m | 1427 | CONFIG_USB_EHCI_HCD=m |
1393 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1428 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1394 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1429 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1430 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1395 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1431 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1396 | # CONFIG_USB_OXU210HP_HCD is not set | 1432 | # CONFIG_USB_OXU210HP_HCD is not set |
1397 | # CONFIG_USB_ISP116X_HCD is not set | 1433 | # CONFIG_USB_ISP116X_HCD is not set |
@@ -1923,7 +1959,6 @@ CONFIG_SECURITY=y | |||
1923 | CONFIG_SECURITY_NETWORK=y | 1959 | CONFIG_SECURITY_NETWORK=y |
1924 | # CONFIG_SECURITY_NETWORK_XFRM is not set | 1960 | # CONFIG_SECURITY_NETWORK_XFRM is not set |
1925 | # CONFIG_SECURITY_PATH is not set | 1961 | # CONFIG_SECURITY_PATH is not set |
1926 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1927 | CONFIG_LSM_MMAP_MIN_ADDR=65536 | 1962 | CONFIG_LSM_MMAP_MIN_ADDR=65536 |
1928 | CONFIG_SECURITY_SELINUX=y | 1963 | CONFIG_SECURITY_SELINUX=y |
1929 | CONFIG_SECURITY_SELINUX_BOOTPARAM=y | 1964 | CONFIG_SECURITY_SELINUX_BOOTPARAM=y |
@@ -1934,6 +1969,11 @@ CONFIG_SECURITY_SELINUX_AVC_STATS=y | |||
1934 | CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 | 1969 | CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 |
1935 | # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set | 1970 | # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set |
1936 | # CONFIG_SECURITY_TOMOYO is not set | 1971 | # CONFIG_SECURITY_TOMOYO is not set |
1972 | CONFIG_DEFAULT_SECURITY_SELINUX=y | ||
1973 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1974 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1975 | # CONFIG_DEFAULT_SECURITY_DAC is not set | ||
1976 | CONFIG_DEFAULT_SECURITY="selinux" | ||
1937 | CONFIG_CRYPTO=y | 1977 | CONFIG_CRYPTO=y |
1938 | 1978 | ||
1939 | # | 1979 | # |
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig index ef5edc7203f..79105413884 100644 --- a/arch/powerpc/configs/ep8248e_defconfig +++ b/arch/powerpc/configs/ep8248e_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:06 2009 | 4 | # Wed Jan 6 09:23:59 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | # CONFIG_DEFAULT_UIMAGE is not set | 62 | # CONFIG_DEFAULT_UIMAGE is not set |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | # CONFIG_PPC_DCR_NATIVE is not set | 64 | # CONFIG_PPC_DCR_NATIVE is not set |
63 | # CONFIG_PPC_DCR_MMIO is not set | 65 | # CONFIG_PPC_DCR_MMIO is not set |
64 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -85,6 +87,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
85 | # | 87 | # |
86 | CONFIG_TREE_RCU=y | 88 | CONFIG_TREE_RCU=y |
87 | # CONFIG_TREE_PREEMPT_RCU is not set | 89 | # CONFIG_TREE_PREEMPT_RCU is not set |
90 | # CONFIG_TINY_RCU is not set | ||
88 | # CONFIG_RCU_TRACE is not set | 91 | # CONFIG_RCU_TRACE is not set |
89 | CONFIG_RCU_FANOUT=32 | 92 | CONFIG_RCU_FANOUT=32 |
90 | # CONFIG_RCU_FANOUT_EXACT is not set | 93 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -160,14 +163,41 @@ CONFIG_BLK_DEV_BSG=y | |||
160 | # IO Schedulers | 163 | # IO Schedulers |
161 | # | 164 | # |
162 | CONFIG_IOSCHED_NOOP=y | 165 | CONFIG_IOSCHED_NOOP=y |
163 | # CONFIG_IOSCHED_AS is not set | ||
164 | CONFIG_IOSCHED_DEADLINE=y | 166 | CONFIG_IOSCHED_DEADLINE=y |
165 | # CONFIG_IOSCHED_CFQ is not set | 167 | # CONFIG_IOSCHED_CFQ is not set |
166 | # CONFIG_DEFAULT_AS is not set | ||
167 | CONFIG_DEFAULT_DEADLINE=y | 168 | CONFIG_DEFAULT_DEADLINE=y |
168 | # CONFIG_DEFAULT_CFQ is not set | 169 | # CONFIG_DEFAULT_CFQ is not set |
169 | # CONFIG_DEFAULT_NOOP is not set | 170 | # CONFIG_DEFAULT_NOOP is not set |
170 | CONFIG_DEFAULT_IOSCHED="deadline" | 171 | CONFIG_DEFAULT_IOSCHED="deadline" |
172 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
173 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
174 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
175 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
176 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
177 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
178 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
179 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
180 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
181 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
182 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
183 | # CONFIG_INLINE_READ_LOCK is not set | ||
184 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
185 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
186 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
187 | CONFIG_INLINE_READ_UNLOCK=y | ||
188 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
189 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
190 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
191 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
192 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
193 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
194 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
195 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
196 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
197 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
198 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
199 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
200 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
171 | # CONFIG_FREEZER is not set | 201 | # CONFIG_FREEZER is not set |
172 | 202 | ||
173 | # | 203 | # |
@@ -237,6 +267,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | |||
237 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 267 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
238 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 268 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
239 | # CONFIG_CRASH_DUMP is not set | 269 | # CONFIG_CRASH_DUMP is not set |
270 | CONFIG_SPARSE_IRQ=y | ||
240 | CONFIG_MAX_ACTIVE_REGIONS=32 | 271 | CONFIG_MAX_ACTIVE_REGIONS=32 |
241 | CONFIG_ARCH_FLATMEM_ENABLE=y | 272 | CONFIG_ARCH_FLATMEM_ENABLE=y |
242 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 273 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -249,8 +280,6 @@ CONFIG_MIGRATION=y | |||
249 | CONFIG_ZONE_DMA_FLAG=1 | 280 | CONFIG_ZONE_DMA_FLAG=1 |
250 | CONFIG_BOUNCE=y | 281 | CONFIG_BOUNCE=y |
251 | CONFIG_VIRT_TO_BUS=y | 282 | CONFIG_VIRT_TO_BUS=y |
252 | CONFIG_HAVE_MLOCK=y | ||
253 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
254 | # CONFIG_KSM is not set | 283 | # CONFIG_KSM is not set |
255 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 284 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
256 | CONFIG_PPC_4K_PAGES=y | 285 | CONFIG_PPC_4K_PAGES=y |
@@ -400,9 +429,6 @@ CONFIG_NETFILTER_ADVANCED=y | |||
400 | # CONFIG_BT is not set | 429 | # CONFIG_BT is not set |
401 | CONFIG_WIRELESS=y | 430 | CONFIG_WIRELESS=y |
402 | # CONFIG_CFG80211 is not set | 431 | # CONFIG_CFG80211 is not set |
403 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
404 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
405 | # CONFIG_WIRELESS_EXT is not set | ||
406 | # CONFIG_LIB80211 is not set | 432 | # CONFIG_LIB80211 is not set |
407 | 433 | ||
408 | # | 434 | # |
@@ -523,6 +549,10 @@ CONFIG_BLK_DEV=y | |||
523 | # CONFIG_BLK_DEV_COW_COMMON is not set | 549 | # CONFIG_BLK_DEV_COW_COMMON is not set |
524 | CONFIG_BLK_DEV_LOOP=y | 550 | CONFIG_BLK_DEV_LOOP=y |
525 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 551 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
552 | |||
553 | # | ||
554 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
555 | # | ||
526 | # CONFIG_BLK_DEV_NBD is not set | 556 | # CONFIG_BLK_DEV_NBD is not set |
527 | # CONFIG_BLK_DEV_SX8 is not set | 557 | # CONFIG_BLK_DEV_SX8 is not set |
528 | # CONFIG_BLK_DEV_RAM is not set | 558 | # CONFIG_BLK_DEV_RAM is not set |
@@ -553,7 +583,7 @@ CONFIG_HAVE_IDE=y | |||
553 | # | 583 | # |
554 | 584 | ||
555 | # | 585 | # |
556 | # See the help texts for more information. | 586 | # The newer stack is recommended. |
557 | # | 587 | # |
558 | # CONFIG_FIREWIRE is not set | 588 | # CONFIG_FIREWIRE is not set |
559 | # CONFIG_IEEE1394 is not set | 589 | # CONFIG_IEEE1394 is not set |
@@ -658,8 +688,9 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
658 | # CONFIG_BE2NET is not set | 688 | # CONFIG_BE2NET is not set |
659 | # CONFIG_TR is not set | 689 | # CONFIG_TR is not set |
660 | CONFIG_WLAN=y | 690 | CONFIG_WLAN=y |
661 | # CONFIG_WLAN_PRE80211 is not set | 691 | # CONFIG_AIRO is not set |
662 | # CONFIG_WLAN_80211 is not set | 692 | # CONFIG_ATMEL is not set |
693 | # CONFIG_HOSTAP is not set | ||
663 | 694 | ||
664 | # | 695 | # |
665 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 696 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -670,6 +701,7 @@ CONFIG_WLAN=y | |||
670 | # CONFIG_SLIP is not set | 701 | # CONFIG_SLIP is not set |
671 | # CONFIG_NETPOLL is not set | 702 | # CONFIG_NETPOLL is not set |
672 | # CONFIG_NET_POLL_CONTROLLER is not set | 703 | # CONFIG_NET_POLL_CONTROLLER is not set |
704 | # CONFIG_VMXNET3 is not set | ||
673 | # CONFIG_ISDN is not set | 705 | # CONFIG_ISDN is not set |
674 | # CONFIG_PHONE is not set | 706 | # CONFIG_PHONE is not set |
675 | 707 | ||
@@ -705,6 +737,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
705 | CONFIG_SERIAL_CPM=y | 737 | CONFIG_SERIAL_CPM=y |
706 | CONFIG_SERIAL_CPM_CONSOLE=y | 738 | CONFIG_SERIAL_CPM_CONSOLE=y |
707 | # CONFIG_SERIAL_JSM is not set | 739 | # CONFIG_SERIAL_JSM is not set |
740 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
708 | CONFIG_UNIX98_PTYS=y | 741 | CONFIG_UNIX98_PTYS=y |
709 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 742 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
710 | CONFIG_LEGACY_PTYS=y | 743 | CONFIG_LEGACY_PTYS=y |
@@ -741,6 +774,7 @@ CONFIG_GPIOLIB=y | |||
741 | # | 774 | # |
742 | # PCI GPIO expanders: | 775 | # PCI GPIO expanders: |
743 | # | 776 | # |
777 | # CONFIG_GPIO_CS5535 is not set | ||
744 | # CONFIG_GPIO_BT8XX is not set | 778 | # CONFIG_GPIO_BT8XX is not set |
745 | # CONFIG_GPIO_LANGWELL is not set | 779 | # CONFIG_GPIO_LANGWELL is not set |
746 | 780 | ||
@@ -1061,7 +1095,11 @@ CONFIG_BDI_SWITCH=y | |||
1061 | # CONFIG_KEYS is not set | 1095 | # CONFIG_KEYS is not set |
1062 | # CONFIG_SECURITY is not set | 1096 | # CONFIG_SECURITY is not set |
1063 | # CONFIG_SECURITYFS is not set | 1097 | # CONFIG_SECURITYFS is not set |
1064 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1098 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1099 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1100 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1101 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1102 | CONFIG_DEFAULT_SECURITY="" | ||
1065 | CONFIG_CRYPTO=y | 1103 | CONFIG_CRYPTO=y |
1066 | 1104 | ||
1067 | # | 1105 | # |
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig index 73ef9be4128..58f7ca71a59 100644 --- a/arch/powerpc/configs/ep88xc_defconfig +++ b/arch/powerpc/configs/ep88xc_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:07 2009 | 4 | # Wed Jan 6 09:24:00 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
34 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
35 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
36 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
37 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -54,6 +55,7 @@ CONFIG_AUDIT_ARCH=y | |||
54 | CONFIG_GENERIC_BUG=y | 55 | CONFIG_GENERIC_BUG=y |
55 | CONFIG_DTC=y | 56 | CONFIG_DTC=y |
56 | # CONFIG_DEFAULT_UIMAGE is not set | 57 | # CONFIG_DEFAULT_UIMAGE is not set |
58 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
57 | # CONFIG_PPC_DCR_NATIVE is not set | 59 | # CONFIG_PPC_DCR_NATIVE is not set |
58 | # CONFIG_PPC_DCR_MMIO is not set | 60 | # CONFIG_PPC_DCR_MMIO is not set |
59 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 61 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -81,6 +83,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
81 | # | 83 | # |
82 | CONFIG_TREE_RCU=y | 84 | CONFIG_TREE_RCU=y |
83 | # CONFIG_TREE_PREEMPT_RCU is not set | 85 | # CONFIG_TREE_PREEMPT_RCU is not set |
86 | # CONFIG_TINY_RCU is not set | ||
84 | # CONFIG_RCU_TRACE is not set | 87 | # CONFIG_RCU_TRACE is not set |
85 | CONFIG_RCU_FANOUT=32 | 88 | CONFIG_RCU_FANOUT=32 |
86 | # CONFIG_RCU_FANOUT_EXACT is not set | 89 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -159,14 +162,41 @@ CONFIG_LBDAF=y | |||
159 | # IO Schedulers | 162 | # IO Schedulers |
160 | # | 163 | # |
161 | CONFIG_IOSCHED_NOOP=y | 164 | CONFIG_IOSCHED_NOOP=y |
162 | # CONFIG_IOSCHED_AS is not set | ||
163 | CONFIG_IOSCHED_DEADLINE=y | 165 | CONFIG_IOSCHED_DEADLINE=y |
164 | # CONFIG_IOSCHED_CFQ is not set | 166 | # CONFIG_IOSCHED_CFQ is not set |
165 | # CONFIG_DEFAULT_AS is not set | ||
166 | CONFIG_DEFAULT_DEADLINE=y | 167 | CONFIG_DEFAULT_DEADLINE=y |
167 | # CONFIG_DEFAULT_CFQ is not set | 168 | # CONFIG_DEFAULT_CFQ is not set |
168 | # CONFIG_DEFAULT_NOOP is not set | 169 | # CONFIG_DEFAULT_NOOP is not set |
169 | CONFIG_DEFAULT_IOSCHED="deadline" | 170 | CONFIG_DEFAULT_IOSCHED="deadline" |
171 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
172 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
173 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
174 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
175 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
176 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
177 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
178 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
179 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
180 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
181 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
182 | # CONFIG_INLINE_READ_LOCK is not set | ||
183 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
184 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
185 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
186 | CONFIG_INLINE_READ_UNLOCK=y | ||
187 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
188 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
189 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
190 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
191 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
192 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
193 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
194 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
195 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
196 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
197 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
198 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
199 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
170 | # CONFIG_FREEZER is not set | 200 | # CONFIG_FREEZER is not set |
171 | 201 | ||
172 | # | 202 | # |
@@ -241,6 +271,7 @@ CONFIG_8XX_MINIMAL_FPEMU=y | |||
241 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 271 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
242 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 272 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
243 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 273 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
274 | CONFIG_SPARSE_IRQ=y | ||
244 | CONFIG_MAX_ACTIVE_REGIONS=32 | 275 | CONFIG_MAX_ACTIVE_REGIONS=32 |
245 | CONFIG_ARCH_FLATMEM_ENABLE=y | 276 | CONFIG_ARCH_FLATMEM_ENABLE=y |
246 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 277 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -257,8 +288,6 @@ CONFIG_MIGRATION=y | |||
257 | CONFIG_ZONE_DMA_FLAG=1 | 288 | CONFIG_ZONE_DMA_FLAG=1 |
258 | CONFIG_BOUNCE=y | 289 | CONFIG_BOUNCE=y |
259 | CONFIG_VIRT_TO_BUS=y | 290 | CONFIG_VIRT_TO_BUS=y |
260 | CONFIG_HAVE_MLOCK=y | ||
261 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
262 | # CONFIG_KSM is not set | 291 | # CONFIG_KSM is not set |
263 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 292 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
264 | CONFIG_PPC_4K_PAGES=y | 293 | CONFIG_PPC_4K_PAGES=y |
@@ -372,9 +401,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
372 | # CONFIG_AF_RXRPC is not set | 401 | # CONFIG_AF_RXRPC is not set |
373 | CONFIG_WIRELESS=y | 402 | CONFIG_WIRELESS=y |
374 | # CONFIG_CFG80211 is not set | 403 | # CONFIG_CFG80211 is not set |
375 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
376 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
377 | # CONFIG_WIRELESS_EXT is not set | ||
378 | # CONFIG_LIB80211 is not set | 404 | # CONFIG_LIB80211 is not set |
379 | 405 | ||
380 | # | 406 | # |
@@ -545,8 +571,7 @@ CONFIG_FS_ENET_MDIO_FEC=y | |||
545 | # CONFIG_NETDEV_1000 is not set | 571 | # CONFIG_NETDEV_1000 is not set |
546 | # CONFIG_NETDEV_10000 is not set | 572 | # CONFIG_NETDEV_10000 is not set |
547 | CONFIG_WLAN=y | 573 | CONFIG_WLAN=y |
548 | # CONFIG_WLAN_PRE80211 is not set | 574 | # CONFIG_HOSTAP is not set |
549 | # CONFIG_WLAN_80211 is not set | ||
550 | 575 | ||
551 | # | 576 | # |
552 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 577 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -591,6 +616,7 @@ CONFIG_SERIAL_CORE=y | |||
591 | CONFIG_SERIAL_CORE_CONSOLE=y | 616 | CONFIG_SERIAL_CORE_CONSOLE=y |
592 | CONFIG_SERIAL_CPM=y | 617 | CONFIG_SERIAL_CPM=y |
593 | CONFIG_SERIAL_CPM_CONSOLE=y | 618 | CONFIG_SERIAL_CPM_CONSOLE=y |
619 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
594 | CONFIG_UNIX98_PTYS=y | 620 | CONFIG_UNIX98_PTYS=y |
595 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 621 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
596 | # CONFIG_LEGACY_PTYS is not set | 622 | # CONFIG_LEGACY_PTYS is not set |
@@ -851,6 +877,7 @@ CONFIG_DEBUG_INFO=y | |||
851 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 877 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
852 | # CONFIG_FAULT_INJECTION is not set | 878 | # CONFIG_FAULT_INJECTION is not set |
853 | # CONFIG_LATENCYTOP is not set | 879 | # CONFIG_LATENCYTOP is not set |
880 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
854 | # CONFIG_DEBUG_PAGEALLOC is not set | 881 | # CONFIG_DEBUG_PAGEALLOC is not set |
855 | CONFIG_HAVE_FUNCTION_TRACER=y | 882 | CONFIG_HAVE_FUNCTION_TRACER=y |
856 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 883 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -893,7 +920,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
893 | # CONFIG_KEYS is not set | 920 | # CONFIG_KEYS is not set |
894 | # CONFIG_SECURITY is not set | 921 | # CONFIG_SECURITY is not set |
895 | # CONFIG_SECURITYFS is not set | 922 | # CONFIG_SECURITYFS is not set |
896 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 923 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
924 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
925 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
926 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
927 | CONFIG_DEFAULT_SECURITY="" | ||
897 | # CONFIG_CRYPTO is not set | 928 | # CONFIG_CRYPTO is not set |
898 | CONFIG_PPC_CLOCK=y | 929 | CONFIG_PPC_CLOCK=y |
899 | CONFIG_PPC_LIB_RHEAP=y | 930 | CONFIG_PPC_LIB_RHEAP=y |
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig index 63c3e8de8f1..9a0c981277e 100644 --- a/arch/powerpc/configs/linkstation_defconfig +++ b/arch/powerpc/configs/linkstation_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:08 2009 | 4 | # Wed Jan 6 09:24:01 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -58,6 +59,7 @@ CONFIG_AUDIT_ARCH=y | |||
58 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | 60 | CONFIG_DTC=y |
60 | CONFIG_DEFAULT_UIMAGE=y | 61 | CONFIG_DEFAULT_UIMAGE=y |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
61 | # CONFIG_PPC_DCR_NATIVE is not set | 63 | # CONFIG_PPC_DCR_NATIVE is not set |
62 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
63 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -86,6 +88,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
86 | # | 88 | # |
87 | CONFIG_TREE_RCU=y | 89 | CONFIG_TREE_RCU=y |
88 | # CONFIG_TREE_PREEMPT_RCU is not set | 90 | # CONFIG_TREE_PREEMPT_RCU is not set |
91 | # CONFIG_TINY_RCU is not set | ||
89 | # CONFIG_RCU_TRACE is not set | 92 | # CONFIG_RCU_TRACE is not set |
90 | CONFIG_RCU_FANOUT=32 | 93 | CONFIG_RCU_FANOUT=32 |
91 | # CONFIG_RCU_FANOUT_EXACT is not set | 94 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -181,14 +184,41 @@ CONFIG_LBDAF=y | |||
181 | # IO Schedulers | 184 | # IO Schedulers |
182 | # | 185 | # |
183 | CONFIG_IOSCHED_NOOP=y | 186 | CONFIG_IOSCHED_NOOP=y |
184 | CONFIG_IOSCHED_AS=y | ||
185 | CONFIG_IOSCHED_DEADLINE=y | 187 | CONFIG_IOSCHED_DEADLINE=y |
186 | CONFIG_IOSCHED_CFQ=y | 188 | CONFIG_IOSCHED_CFQ=y |
187 | CONFIG_DEFAULT_AS=y | ||
188 | # CONFIG_DEFAULT_DEADLINE is not set | 189 | # CONFIG_DEFAULT_DEADLINE is not set |
189 | # CONFIG_DEFAULT_CFQ is not set | 190 | CONFIG_DEFAULT_CFQ=y |
190 | # CONFIG_DEFAULT_NOOP is not set | 191 | # CONFIG_DEFAULT_NOOP is not set |
191 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 192 | CONFIG_DEFAULT_IOSCHED="cfq" |
193 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
194 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
195 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
196 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
197 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
198 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
199 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
200 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
201 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
202 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
203 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
204 | # CONFIG_INLINE_READ_LOCK is not set | ||
205 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
206 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
207 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
208 | CONFIG_INLINE_READ_UNLOCK=y | ||
209 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
210 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
211 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
212 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
213 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
214 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
215 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
216 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
217 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
218 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
219 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
220 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
221 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
192 | # CONFIG_FREEZER is not set | 222 | # CONFIG_FREEZER is not set |
193 | 223 | ||
194 | # | 224 | # |
@@ -215,6 +245,8 @@ CONFIG_LINKSTATION=y | |||
215 | CONFIG_MPC10X_BRIDGE=y | 245 | CONFIG_MPC10X_BRIDGE=y |
216 | CONFIG_MPC10X_OPENPIC=y | 246 | CONFIG_MPC10X_OPENPIC=y |
217 | # CONFIG_MPC10X_STORE_GATHERING is not set | 247 | # CONFIG_MPC10X_STORE_GATHERING is not set |
248 | # CONFIG_GAMECUBE is not set | ||
249 | # CONFIG_WII is not set | ||
218 | # CONFIG_AMIGAONE is not set | 250 | # CONFIG_AMIGAONE is not set |
219 | CONFIG_PPC_OF_BOOT_TRAMPOLINE=y | 251 | CONFIG_PPC_OF_BOOT_TRAMPOLINE=y |
220 | # CONFIG_IPIC is not set | 252 | # CONFIG_IPIC is not set |
@@ -261,6 +293,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
261 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 293 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
262 | # CONFIG_KEXEC is not set | 294 | # CONFIG_KEXEC is not set |
263 | # CONFIG_CRASH_DUMP is not set | 295 | # CONFIG_CRASH_DUMP is not set |
296 | CONFIG_SPARSE_IRQ=y | ||
264 | CONFIG_MAX_ACTIVE_REGIONS=32 | 297 | CONFIG_MAX_ACTIVE_REGIONS=32 |
265 | CONFIG_ARCH_FLATMEM_ENABLE=y | 298 | CONFIG_ARCH_FLATMEM_ENABLE=y |
266 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 299 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -277,8 +310,6 @@ CONFIG_MIGRATION=y | |||
277 | CONFIG_ZONE_DMA_FLAG=1 | 310 | CONFIG_ZONE_DMA_FLAG=1 |
278 | CONFIG_BOUNCE=y | 311 | CONFIG_BOUNCE=y |
279 | CONFIG_VIRT_TO_BUS=y | 312 | CONFIG_VIRT_TO_BUS=y |
280 | CONFIG_HAVE_MLOCK=y | ||
281 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
282 | # CONFIG_KSM is not set | 313 | # CONFIG_KSM is not set |
283 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 314 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
284 | CONFIG_PPC_4K_PAGES=y | 315 | CONFIG_PPC_4K_PAGES=y |
@@ -517,10 +548,6 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
517 | # CONFIG_AF_RXRPC is not set | 548 | # CONFIG_AF_RXRPC is not set |
518 | CONFIG_WIRELESS=y | 549 | CONFIG_WIRELESS=y |
519 | # CONFIG_CFG80211 is not set | 550 | # CONFIG_CFG80211 is not set |
520 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
521 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
522 | CONFIG_WIRELESS_EXT=y | ||
523 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
524 | # CONFIG_LIB80211 is not set | 551 | # CONFIG_LIB80211 is not set |
525 | 552 | ||
526 | # | 553 | # |
@@ -650,6 +677,10 @@ CONFIG_BLK_DEV=y | |||
650 | # CONFIG_BLK_DEV_COW_COMMON is not set | 677 | # CONFIG_BLK_DEV_COW_COMMON is not set |
651 | CONFIG_BLK_DEV_LOOP=y | 678 | CONFIG_BLK_DEV_LOOP=y |
652 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 679 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
680 | |||
681 | # | ||
682 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
683 | # | ||
653 | # CONFIG_BLK_DEV_NBD is not set | 684 | # CONFIG_BLK_DEV_NBD is not set |
654 | # CONFIG_BLK_DEV_SX8 is not set | 685 | # CONFIG_BLK_DEV_SX8 is not set |
655 | # CONFIG_BLK_DEV_UB is not set | 686 | # CONFIG_BLK_DEV_UB is not set |
@@ -661,6 +692,7 @@ CONFIG_BLK_DEV_RAM_SIZE=8192 | |||
661 | # CONFIG_ATA_OVER_ETH is not set | 692 | # CONFIG_ATA_OVER_ETH is not set |
662 | # CONFIG_BLK_DEV_HD is not set | 693 | # CONFIG_BLK_DEV_HD is not set |
663 | CONFIG_MISC_DEVICES=y | 694 | CONFIG_MISC_DEVICES=y |
695 | # CONFIG_AD525X_DPOT is not set | ||
664 | # CONFIG_PHANTOM is not set | 696 | # CONFIG_PHANTOM is not set |
665 | # CONFIG_SGI_IOC4 is not set | 697 | # CONFIG_SGI_IOC4 is not set |
666 | # CONFIG_TIFM_CORE is not set | 698 | # CONFIG_TIFM_CORE is not set |
@@ -668,6 +700,7 @@ CONFIG_MISC_DEVICES=y | |||
668 | # CONFIG_ENCLOSURE_SERVICES is not set | 700 | # CONFIG_ENCLOSURE_SERVICES is not set |
669 | # CONFIG_HP_ILO is not set | 701 | # CONFIG_HP_ILO is not set |
670 | # CONFIG_ISL29003 is not set | 702 | # CONFIG_ISL29003 is not set |
703 | # CONFIG_DS1682 is not set | ||
671 | # CONFIG_C2PORT is not set | 704 | # CONFIG_C2PORT is not set |
672 | 705 | ||
673 | # | 706 | # |
@@ -720,7 +753,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
720 | # CONFIG_SCSI_BNX2_ISCSI is not set | 753 | # CONFIG_SCSI_BNX2_ISCSI is not set |
721 | # CONFIG_BE2ISCSI is not set | 754 | # CONFIG_BE2ISCSI is not set |
722 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 755 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
756 | # CONFIG_SCSI_HPSA is not set | ||
723 | # CONFIG_SCSI_3W_9XXX is not set | 757 | # CONFIG_SCSI_3W_9XXX is not set |
758 | # CONFIG_SCSI_3W_SAS is not set | ||
724 | # CONFIG_SCSI_ACARD is not set | 759 | # CONFIG_SCSI_ACARD is not set |
725 | # CONFIG_SCSI_AACRAID is not set | 760 | # CONFIG_SCSI_AACRAID is not set |
726 | # CONFIG_SCSI_AIC7XXX is not set | 761 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -759,6 +794,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
759 | # CONFIG_SCSI_NSP32 is not set | 794 | # CONFIG_SCSI_NSP32 is not set |
760 | # CONFIG_SCSI_DEBUG is not set | 795 | # CONFIG_SCSI_DEBUG is not set |
761 | # CONFIG_SCSI_PMCRAID is not set | 796 | # CONFIG_SCSI_PMCRAID is not set |
797 | # CONFIG_SCSI_PM8001 is not set | ||
762 | # CONFIG_SCSI_SRP is not set | 798 | # CONFIG_SCSI_SRP is not set |
763 | # CONFIG_SCSI_BFA_FC is not set | 799 | # CONFIG_SCSI_BFA_FC is not set |
764 | # CONFIG_SCSI_DH is not set | 800 | # CONFIG_SCSI_DH is not set |
@@ -814,15 +850,16 @@ CONFIG_PATA_IT821X=y | |||
814 | # CONFIG_PATA_NS87415 is not set | 850 | # CONFIG_PATA_NS87415 is not set |
815 | # CONFIG_PATA_OPTI is not set | 851 | # CONFIG_PATA_OPTI is not set |
816 | # CONFIG_PATA_OPTIDMA is not set | 852 | # CONFIG_PATA_OPTIDMA is not set |
853 | # CONFIG_PATA_PDC2027X is not set | ||
817 | # CONFIG_PATA_PDC_OLD is not set | 854 | # CONFIG_PATA_PDC_OLD is not set |
818 | # CONFIG_PATA_RADISYS is not set | 855 | # CONFIG_PATA_RADISYS is not set |
819 | # CONFIG_PATA_RDC is not set | 856 | # CONFIG_PATA_RDC is not set |
820 | # CONFIG_PATA_RZ1000 is not set | 857 | # CONFIG_PATA_RZ1000 is not set |
821 | # CONFIG_PATA_SC1200 is not set | 858 | # CONFIG_PATA_SC1200 is not set |
822 | # CONFIG_PATA_SERVERWORKS is not set | 859 | # CONFIG_PATA_SERVERWORKS is not set |
823 | # CONFIG_PATA_PDC2027X is not set | ||
824 | CONFIG_PATA_SIL680=y | 860 | CONFIG_PATA_SIL680=y |
825 | # CONFIG_PATA_SIS is not set | 861 | # CONFIG_PATA_SIS is not set |
862 | # CONFIG_PATA_TOSHIBA is not set | ||
826 | # CONFIG_PATA_VIA is not set | 863 | # CONFIG_PATA_VIA is not set |
827 | # CONFIG_PATA_WINBOND is not set | 864 | # CONFIG_PATA_WINBOND is not set |
828 | # CONFIG_PATA_PLATFORM is not set | 865 | # CONFIG_PATA_PLATFORM is not set |
@@ -839,7 +876,7 @@ CONFIG_PATA_SIL680=y | |||
839 | # | 876 | # |
840 | 877 | ||
841 | # | 878 | # |
842 | # See the help texts for more information. | 879 | # The newer stack is recommended. |
843 | # | 880 | # |
844 | # CONFIG_FIREWIRE is not set | 881 | # CONFIG_FIREWIRE is not set |
845 | # CONFIG_IEEE1394 is not set | 882 | # CONFIG_IEEE1394 is not set |
@@ -934,8 +971,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
934 | # CONFIG_BE2NET is not set | 971 | # CONFIG_BE2NET is not set |
935 | # CONFIG_TR is not set | 972 | # CONFIG_TR is not set |
936 | CONFIG_WLAN=y | 973 | CONFIG_WLAN=y |
937 | # CONFIG_WLAN_PRE80211 is not set | 974 | # CONFIG_AIRO is not set |
938 | # CONFIG_WLAN_80211 is not set | 975 | # CONFIG_ATMEL is not set |
976 | # CONFIG_PRISM54 is not set | ||
977 | # CONFIG_USB_ZD1201 is not set | ||
978 | # CONFIG_HOSTAP is not set | ||
939 | 979 | ||
940 | # | 980 | # |
941 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 981 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -960,6 +1000,7 @@ CONFIG_NETCONSOLE=y | |||
960 | CONFIG_NETPOLL=y | 1000 | CONFIG_NETPOLL=y |
961 | # CONFIG_NETPOLL_TRAP is not set | 1001 | # CONFIG_NETPOLL_TRAP is not set |
962 | CONFIG_NET_POLL_CONTROLLER=y | 1002 | CONFIG_NET_POLL_CONTROLLER=y |
1003 | # CONFIG_VMXNET3 is not set | ||
963 | # CONFIG_ISDN is not set | 1004 | # CONFIG_ISDN is not set |
964 | # CONFIG_PHONE is not set | 1005 | # CONFIG_PHONE is not set |
965 | 1006 | ||
@@ -969,6 +1010,7 @@ CONFIG_NET_POLL_CONTROLLER=y | |||
969 | CONFIG_INPUT=y | 1010 | CONFIG_INPUT=y |
970 | # CONFIG_INPUT_FF_MEMLESS is not set | 1011 | # CONFIG_INPUT_FF_MEMLESS is not set |
971 | # CONFIG_INPUT_POLLDEV is not set | 1012 | # CONFIG_INPUT_POLLDEV is not set |
1013 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
972 | 1014 | ||
973 | # | 1015 | # |
974 | # Userland interfaces | 1016 | # Userland interfaces |
@@ -1007,6 +1049,7 @@ CONFIG_SERIO_SERPORT=y | |||
1007 | # CONFIG_SERIO_PCIPS2 is not set | 1049 | # CONFIG_SERIO_PCIPS2 is not set |
1008 | # CONFIG_SERIO_RAW is not set | 1050 | # CONFIG_SERIO_RAW is not set |
1009 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 1051 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
1052 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
1010 | # CONFIG_GAMEPORT is not set | 1053 | # CONFIG_GAMEPORT is not set |
1011 | 1054 | ||
1012 | # | 1055 | # |
@@ -1039,6 +1082,7 @@ CONFIG_SERIAL_CORE=y | |||
1039 | CONFIG_SERIAL_CORE_CONSOLE=y | 1082 | CONFIG_SERIAL_CORE_CONSOLE=y |
1040 | # CONFIG_SERIAL_JSM is not set | 1083 | # CONFIG_SERIAL_JSM is not set |
1041 | # CONFIG_SERIAL_OF_PLATFORM is not set | 1084 | # CONFIG_SERIAL_OF_PLATFORM is not set |
1085 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
1042 | CONFIG_UNIX98_PTYS=y | 1086 | CONFIG_UNIX98_PTYS=y |
1043 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 1087 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
1044 | CONFIG_LEGACY_PTYS=y | 1088 | CONFIG_LEGACY_PTYS=y |
@@ -1096,11 +1140,6 @@ CONFIG_I2C_MPC=y | |||
1096 | # CONFIG_I2C_TINY_USB is not set | 1140 | # CONFIG_I2C_TINY_USB is not set |
1097 | 1141 | ||
1098 | # | 1142 | # |
1099 | # Graphics adapter I2C/DDC channel drivers | ||
1100 | # | ||
1101 | # CONFIG_I2C_VOODOO3 is not set | ||
1102 | |||
1103 | # | ||
1104 | # Other I2C/SMBus bus drivers | 1143 | # Other I2C/SMBus bus drivers |
1105 | # | 1144 | # |
1106 | # CONFIG_I2C_PCA_PLATFORM is not set | 1145 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -1109,7 +1148,6 @@ CONFIG_I2C_MPC=y | |||
1109 | # | 1148 | # |
1110 | # Miscellaneous I2C Chip support | 1149 | # Miscellaneous I2C Chip support |
1111 | # | 1150 | # |
1112 | # CONFIG_DS1682 is not set | ||
1113 | # CONFIG_SENSORS_TSL2550 is not set | 1151 | # CONFIG_SENSORS_TSL2550 is not set |
1114 | # CONFIG_I2C_DEBUG_CORE is not set | 1152 | # CONFIG_I2C_DEBUG_CORE is not set |
1115 | # CONFIG_I2C_DEBUG_ALGO is not set | 1153 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1155,6 +1193,7 @@ CONFIG_HWMON=y | |||
1155 | # CONFIG_SENSORS_GL520SM is not set | 1193 | # CONFIG_SENSORS_GL520SM is not set |
1156 | # CONFIG_SENSORS_IT87 is not set | 1194 | # CONFIG_SENSORS_IT87 is not set |
1157 | # CONFIG_SENSORS_LM63 is not set | 1195 | # CONFIG_SENSORS_LM63 is not set |
1196 | # CONFIG_SENSORS_LM73 is not set | ||
1158 | # CONFIG_SENSORS_LM75 is not set | 1197 | # CONFIG_SENSORS_LM75 is not set |
1159 | # CONFIG_SENSORS_LM77 is not set | 1198 | # CONFIG_SENSORS_LM77 is not set |
1160 | # CONFIG_SENSORS_LM78 is not set | 1199 | # CONFIG_SENSORS_LM78 is not set |
@@ -1193,6 +1232,7 @@ CONFIG_HWMON=y | |||
1193 | # CONFIG_SENSORS_W83L786NG is not set | 1232 | # CONFIG_SENSORS_W83L786NG is not set |
1194 | # CONFIG_SENSORS_W83627HF is not set | 1233 | # CONFIG_SENSORS_W83627HF is not set |
1195 | # CONFIG_SENSORS_W83627EHF is not set | 1234 | # CONFIG_SENSORS_W83627EHF is not set |
1235 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1196 | # CONFIG_THERMAL is not set | 1236 | # CONFIG_THERMAL is not set |
1197 | # CONFIG_WATCHDOG is not set | 1237 | # CONFIG_WATCHDOG is not set |
1198 | CONFIG_SSB_POSSIBLE=y | 1238 | CONFIG_SSB_POSSIBLE=y |
@@ -1211,11 +1251,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1211 | # CONFIG_TWL4030_CORE is not set | 1251 | # CONFIG_TWL4030_CORE is not set |
1212 | # CONFIG_MFD_TMIO is not set | 1252 | # CONFIG_MFD_TMIO is not set |
1213 | # CONFIG_PMIC_DA903X is not set | 1253 | # CONFIG_PMIC_DA903X is not set |
1254 | # CONFIG_PMIC_ADP5520 is not set | ||
1214 | # CONFIG_MFD_WM8400 is not set | 1255 | # CONFIG_MFD_WM8400 is not set |
1215 | # CONFIG_MFD_WM831X is not set | 1256 | # CONFIG_MFD_WM831X is not set |
1216 | # CONFIG_MFD_WM8350_I2C is not set | 1257 | # CONFIG_MFD_WM8350_I2C is not set |
1217 | # CONFIG_MFD_PCF50633 is not set | 1258 | # CONFIG_MFD_PCF50633 is not set |
1218 | # CONFIG_AB3100_CORE is not set | 1259 | # CONFIG_AB3100_CORE is not set |
1260 | # CONFIG_MFD_88PM8607 is not set | ||
1219 | # CONFIG_REGULATOR is not set | 1261 | # CONFIG_REGULATOR is not set |
1220 | # CONFIG_MEDIA_SUPPORT is not set | 1262 | # CONFIG_MEDIA_SUPPORT is not set |
1221 | 1263 | ||
@@ -1281,6 +1323,7 @@ CONFIG_USB_MON=y | |||
1281 | CONFIG_USB_EHCI_HCD=y | 1323 | CONFIG_USB_EHCI_HCD=y |
1282 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1324 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1283 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1325 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1326 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1284 | # CONFIG_USB_EHCI_FSL is not set | 1327 | # CONFIG_USB_EHCI_FSL is not set |
1285 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1328 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1286 | # CONFIG_USB_OXU210HP_HCD is not set | 1329 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1454,6 +1497,7 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1454 | # CONFIG_RTC_DRV_PCF8563 is not set | 1497 | # CONFIG_RTC_DRV_PCF8563 is not set |
1455 | # CONFIG_RTC_DRV_PCF8583 is not set | 1498 | # CONFIG_RTC_DRV_PCF8583 is not set |
1456 | # CONFIG_RTC_DRV_M41T80 is not set | 1499 | # CONFIG_RTC_DRV_M41T80 is not set |
1500 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1457 | # CONFIG_RTC_DRV_S35390A is not set | 1501 | # CONFIG_RTC_DRV_S35390A is not set |
1458 | # CONFIG_RTC_DRV_FM3130 is not set | 1502 | # CONFIG_RTC_DRV_FM3130 is not set |
1459 | # CONFIG_RTC_DRV_RX8581 is not set | 1503 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1475,7 +1519,9 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1475 | # CONFIG_RTC_DRV_M48T86 is not set | 1519 | # CONFIG_RTC_DRV_M48T86 is not set |
1476 | # CONFIG_RTC_DRV_M48T35 is not set | 1520 | # CONFIG_RTC_DRV_M48T35 is not set |
1477 | # CONFIG_RTC_DRV_M48T59 is not set | 1521 | # CONFIG_RTC_DRV_M48T59 is not set |
1522 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1478 | # CONFIG_RTC_DRV_BQ4802 is not set | 1523 | # CONFIG_RTC_DRV_BQ4802 is not set |
1524 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1479 | # CONFIG_RTC_DRV_V3020 is not set | 1525 | # CONFIG_RTC_DRV_V3020 is not set |
1480 | 1526 | ||
1481 | # | 1527 | # |
@@ -1786,7 +1832,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1786 | # CONFIG_KEYS is not set | 1832 | # CONFIG_KEYS is not set |
1787 | # CONFIG_SECURITY is not set | 1833 | # CONFIG_SECURITY is not set |
1788 | # CONFIG_SECURITYFS is not set | 1834 | # CONFIG_SECURITYFS is not set |
1789 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1835 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1836 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1837 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1838 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1839 | CONFIG_DEFAULT_SECURITY="" | ||
1790 | CONFIG_CRYPTO=y | 1840 | CONFIG_CRYPTO=y |
1791 | 1841 | ||
1792 | # | 1842 | # |
diff --git a/arch/powerpc/configs/mgcoge_defconfig b/arch/powerpc/configs/mgcoge_defconfig index 520b04a0def..4c2c877f936 100644 --- a/arch/powerpc/configs/mgcoge_defconfig +++ b/arch/powerpc/configs/mgcoge_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:09 2009 | 4 | # Wed Jan 6 09:24:02 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,7 +60,6 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | # CONFIG_DEFAULT_UIMAGE is not set | 62 | # CONFIG_DEFAULT_UIMAGE is not set |
62 | CONFIG_HIBERNATE_32=y | ||
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
64 | # CONFIG_PPC_DCR_NATIVE is not set | 64 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 65 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +87,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 87 | # |
88 | CONFIG_TREE_RCU=y | 88 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 89 | # CONFIG_TREE_PREEMPT_RCU is not set |
90 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 91 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 92 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 93 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -168,14 +169,41 @@ CONFIG_BLK_DEV_BSG=y | |||
168 | # IO Schedulers | 169 | # IO Schedulers |
169 | # | 170 | # |
170 | CONFIG_IOSCHED_NOOP=y | 171 | CONFIG_IOSCHED_NOOP=y |
171 | # CONFIG_IOSCHED_AS is not set | ||
172 | CONFIG_IOSCHED_DEADLINE=y | 172 | CONFIG_IOSCHED_DEADLINE=y |
173 | # CONFIG_IOSCHED_CFQ is not set | 173 | # CONFIG_IOSCHED_CFQ is not set |
174 | # CONFIG_DEFAULT_AS is not set | ||
175 | CONFIG_DEFAULT_DEADLINE=y | 174 | CONFIG_DEFAULT_DEADLINE=y |
176 | # CONFIG_DEFAULT_CFQ is not set | 175 | # CONFIG_DEFAULT_CFQ is not set |
177 | # CONFIG_DEFAULT_NOOP is not set | 176 | # CONFIG_DEFAULT_NOOP is not set |
178 | CONFIG_DEFAULT_IOSCHED="deadline" | 177 | CONFIG_DEFAULT_IOSCHED="deadline" |
178 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
179 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
180 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
181 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
182 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
183 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
184 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
185 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
186 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
187 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
188 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
189 | # CONFIG_INLINE_READ_LOCK is not set | ||
190 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
191 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
192 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
193 | CONFIG_INLINE_READ_UNLOCK=y | ||
194 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
195 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
196 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
197 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
198 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
199 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
200 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
201 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
202 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
203 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
204 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
205 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
206 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
179 | # CONFIG_FREEZER is not set | 207 | # CONFIG_FREEZER is not set |
180 | 208 | ||
181 | # | 209 | # |
@@ -208,7 +236,8 @@ CONFIG_MPIC=y | |||
208 | # CONFIG_MPIC_WEIRD is not set | 236 | # CONFIG_MPIC_WEIRD is not set |
209 | CONFIG_PPC_I8259=y | 237 | CONFIG_PPC_I8259=y |
210 | CONFIG_PPC_RTAS=y | 238 | CONFIG_PPC_RTAS=y |
211 | # CONFIG_RTAS_ERROR_LOGGING is not set | 239 | CONFIG_RTAS_ERROR_LOGGING=y |
240 | CONFIG_PPC_RTAS_DAEMON=y | ||
212 | CONFIG_RTAS_PROC=y | 241 | CONFIG_RTAS_PROC=y |
213 | # CONFIG_MMIO_NVRAM is not set | 242 | # CONFIG_MMIO_NVRAM is not set |
214 | CONFIG_PPC_MPC106=y | 243 | CONFIG_PPC_MPC106=y |
@@ -250,6 +279,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | |||
250 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 279 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
251 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 280 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
252 | # CONFIG_CRASH_DUMP is not set | 281 | # CONFIG_CRASH_DUMP is not set |
282 | CONFIG_SPARSE_IRQ=y | ||
253 | CONFIG_MAX_ACTIVE_REGIONS=32 | 283 | CONFIG_MAX_ACTIVE_REGIONS=32 |
254 | CONFIG_ARCH_FLATMEM_ENABLE=y | 284 | CONFIG_ARCH_FLATMEM_ENABLE=y |
255 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 285 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -262,8 +292,6 @@ CONFIG_MIGRATION=y | |||
262 | CONFIG_ZONE_DMA_FLAG=1 | 292 | CONFIG_ZONE_DMA_FLAG=1 |
263 | CONFIG_BOUNCE=y | 293 | CONFIG_BOUNCE=y |
264 | CONFIG_VIRT_TO_BUS=y | 294 | CONFIG_VIRT_TO_BUS=y |
265 | CONFIG_HAVE_MLOCK=y | ||
266 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
267 | # CONFIG_KSM is not set | 295 | # CONFIG_KSM is not set |
268 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 296 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
269 | CONFIG_PPC_4K_PAGES=y | 297 | CONFIG_PPC_4K_PAGES=y |
@@ -395,9 +423,6 @@ CONFIG_NETFILTER_ADVANCED=y | |||
395 | # CONFIG_BT is not set | 423 | # CONFIG_BT is not set |
396 | CONFIG_WIRELESS=y | 424 | CONFIG_WIRELESS=y |
397 | # CONFIG_CFG80211 is not set | 425 | # CONFIG_CFG80211 is not set |
398 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
399 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
400 | # CONFIG_WIRELESS_EXT is not set | ||
401 | # CONFIG_LIB80211 is not set | 426 | # CONFIG_LIB80211 is not set |
402 | 427 | ||
403 | # | 428 | # |
@@ -525,6 +550,10 @@ CONFIG_BLK_DEV=y | |||
525 | # CONFIG_BLK_DEV_COW_COMMON is not set | 550 | # CONFIG_BLK_DEV_COW_COMMON is not set |
526 | CONFIG_BLK_DEV_LOOP=y | 551 | CONFIG_BLK_DEV_LOOP=y |
527 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 552 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
553 | |||
554 | # | ||
555 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
556 | # | ||
528 | # CONFIG_BLK_DEV_NBD is not set | 557 | # CONFIG_BLK_DEV_NBD is not set |
529 | # CONFIG_BLK_DEV_SX8 is not set | 558 | # CONFIG_BLK_DEV_SX8 is not set |
530 | CONFIG_BLK_DEV_RAM=y | 559 | CONFIG_BLK_DEV_RAM=y |
@@ -558,7 +587,7 @@ CONFIG_HAVE_IDE=y | |||
558 | # | 587 | # |
559 | 588 | ||
560 | # | 589 | # |
561 | # See the help texts for more information. | 590 | # The newer stack is recommended. |
562 | # | 591 | # |
563 | # CONFIG_FIREWIRE is not set | 592 | # CONFIG_FIREWIRE is not set |
564 | # CONFIG_IEEE1394 is not set | 593 | # CONFIG_IEEE1394 is not set |
@@ -625,8 +654,9 @@ CONFIG_FS_ENET_MDIO_FCC=y | |||
625 | # CONFIG_NETDEV_10000 is not set | 654 | # CONFIG_NETDEV_10000 is not set |
626 | # CONFIG_TR is not set | 655 | # CONFIG_TR is not set |
627 | CONFIG_WLAN=y | 656 | CONFIG_WLAN=y |
628 | # CONFIG_WLAN_PRE80211 is not set | 657 | # CONFIG_AIRO is not set |
629 | # CONFIG_WLAN_80211 is not set | 658 | # CONFIG_ATMEL is not set |
659 | # CONFIG_HOSTAP is not set | ||
630 | 660 | ||
631 | # | 661 | # |
632 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 662 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -637,6 +667,7 @@ CONFIG_WLAN=y | |||
637 | # CONFIG_SLIP is not set | 667 | # CONFIG_SLIP is not set |
638 | # CONFIG_NETPOLL is not set | 668 | # CONFIG_NETPOLL is not set |
639 | # CONFIG_NET_POLL_CONTROLLER is not set | 669 | # CONFIG_NET_POLL_CONTROLLER is not set |
670 | # CONFIG_VMXNET3 is not set | ||
640 | # CONFIG_ISDN is not set | 671 | # CONFIG_ISDN is not set |
641 | # CONFIG_PHONE is not set | 672 | # CONFIG_PHONE is not set |
642 | 673 | ||
@@ -673,6 +704,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
673 | CONFIG_SERIAL_CPM=y | 704 | CONFIG_SERIAL_CPM=y |
674 | CONFIG_SERIAL_CPM_CONSOLE=y | 705 | CONFIG_SERIAL_CPM_CONSOLE=y |
675 | # CONFIG_SERIAL_JSM is not set | 706 | # CONFIG_SERIAL_JSM is not set |
707 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
676 | CONFIG_UNIX98_PTYS=y | 708 | CONFIG_UNIX98_PTYS=y |
677 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 709 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
678 | CONFIG_LEGACY_PTYS=y | 710 | CONFIG_LEGACY_PTYS=y |
@@ -734,11 +766,6 @@ CONFIG_I2C_CPM=y | |||
734 | # CONFIG_I2C_PARPORT_LIGHT is not set | 766 | # CONFIG_I2C_PARPORT_LIGHT is not set |
735 | 767 | ||
736 | # | 768 | # |
737 | # Graphics adapter I2C/DDC channel drivers | ||
738 | # | ||
739 | # CONFIG_I2C_VOODOO3 is not set | ||
740 | |||
741 | # | ||
742 | # Other I2C/SMBus bus drivers | 769 | # Other I2C/SMBus bus drivers |
743 | # | 770 | # |
744 | # CONFIG_I2C_PCA_PLATFORM is not set | 771 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -775,6 +802,7 @@ CONFIG_GPIOLIB=y | |||
775 | # | 802 | # |
776 | # PCI GPIO expanders: | 803 | # PCI GPIO expanders: |
777 | # | 804 | # |
805 | # CONFIG_GPIO_CS5535 is not set | ||
778 | # CONFIG_GPIO_BT8XX is not set | 806 | # CONFIG_GPIO_BT8XX is not set |
779 | # CONFIG_GPIO_LANGWELL is not set | 807 | # CONFIG_GPIO_LANGWELL is not set |
780 | 808 | ||
@@ -807,11 +835,13 @@ CONFIG_SSB_POSSIBLE=y | |||
807 | # CONFIG_TWL4030_CORE is not set | 835 | # CONFIG_TWL4030_CORE is not set |
808 | # CONFIG_MFD_TMIO is not set | 836 | # CONFIG_MFD_TMIO is not set |
809 | # CONFIG_PMIC_DA903X is not set | 837 | # CONFIG_PMIC_DA903X is not set |
838 | # CONFIG_PMIC_ADP5520 is not set | ||
810 | # CONFIG_MFD_WM8400 is not set | 839 | # CONFIG_MFD_WM8400 is not set |
811 | # CONFIG_MFD_WM831X is not set | 840 | # CONFIG_MFD_WM831X is not set |
812 | # CONFIG_MFD_WM8350_I2C is not set | 841 | # CONFIG_MFD_WM8350_I2C is not set |
813 | # CONFIG_MFD_PCF50633 is not set | 842 | # CONFIG_MFD_PCF50633 is not set |
814 | # CONFIG_AB3100_CORE is not set | 843 | # CONFIG_AB3100_CORE is not set |
844 | # CONFIG_MFD_88PM8607 is not set | ||
815 | # CONFIG_REGULATOR is not set | 845 | # CONFIG_REGULATOR is not set |
816 | # CONFIG_MEDIA_SUPPORT is not set | 846 | # CONFIG_MEDIA_SUPPORT is not set |
817 | 847 | ||
@@ -1118,7 +1148,11 @@ CONFIG_BDI_SWITCH=y | |||
1118 | # CONFIG_KEYS is not set | 1148 | # CONFIG_KEYS is not set |
1119 | # CONFIG_SECURITY is not set | 1149 | # CONFIG_SECURITY is not set |
1120 | # CONFIG_SECURITYFS is not set | 1150 | # CONFIG_SECURITYFS is not set |
1121 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1151 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1152 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1153 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1154 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1155 | CONFIG_DEFAULT_SECURITY="" | ||
1122 | CONFIG_CRYPTO=y | 1156 | CONFIG_CRYPTO=y |
1123 | 1157 | ||
1124 | # | 1158 | # |
diff --git a/arch/powerpc/configs/mgsuvd_defconfig b/arch/powerpc/configs/mgsuvd_defconfig index 43c3c4fcdce..9e090f2c7e3 100644 --- a/arch/powerpc/configs/mgsuvd_defconfig +++ b/arch/powerpc/configs/mgsuvd_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:10 2009 | 4 | # Wed Jan 6 09:24:03 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
34 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
35 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
36 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
37 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -53,6 +54,7 @@ CONFIG_OF=y | |||
53 | CONFIG_AUDIT_ARCH=y | 54 | CONFIG_AUDIT_ARCH=y |
54 | CONFIG_DTC=y | 55 | CONFIG_DTC=y |
55 | # CONFIG_DEFAULT_UIMAGE is not set | 56 | # CONFIG_DEFAULT_UIMAGE is not set |
57 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
56 | # CONFIG_PPC_DCR_NATIVE is not set | 58 | # CONFIG_PPC_DCR_NATIVE is not set |
57 | # CONFIG_PPC_DCR_MMIO is not set | 59 | # CONFIG_PPC_DCR_MMIO is not set |
58 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 60 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -80,6 +82,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
80 | # | 82 | # |
81 | CONFIG_TREE_RCU=y | 83 | CONFIG_TREE_RCU=y |
82 | # CONFIG_TREE_PREEMPT_RCU is not set | 84 | # CONFIG_TREE_PREEMPT_RCU is not set |
85 | # CONFIG_TINY_RCU is not set | ||
83 | # CONFIG_RCU_TRACE is not set | 86 | # CONFIG_RCU_TRACE is not set |
84 | CONFIG_RCU_FANOUT=32 | 87 | CONFIG_RCU_FANOUT=32 |
85 | # CONFIG_RCU_FANOUT_EXACT is not set | 88 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -162,14 +165,41 @@ CONFIG_LBDAF=y | |||
162 | # IO Schedulers | 165 | # IO Schedulers |
163 | # | 166 | # |
164 | CONFIG_IOSCHED_NOOP=y | 167 | CONFIG_IOSCHED_NOOP=y |
165 | CONFIG_IOSCHED_AS=y | ||
166 | CONFIG_IOSCHED_DEADLINE=y | 168 | CONFIG_IOSCHED_DEADLINE=y |
167 | CONFIG_IOSCHED_CFQ=y | 169 | CONFIG_IOSCHED_CFQ=y |
168 | CONFIG_DEFAULT_AS=y | ||
169 | # CONFIG_DEFAULT_DEADLINE is not set | 170 | # CONFIG_DEFAULT_DEADLINE is not set |
170 | # CONFIG_DEFAULT_CFQ is not set | 171 | CONFIG_DEFAULT_CFQ=y |
171 | # CONFIG_DEFAULT_NOOP is not set | 172 | # CONFIG_DEFAULT_NOOP is not set |
172 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 173 | CONFIG_DEFAULT_IOSCHED="cfq" |
174 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
175 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
176 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
177 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
178 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
179 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
180 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
181 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
182 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
183 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
184 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
185 | # CONFIG_INLINE_READ_LOCK is not set | ||
186 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
187 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
188 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
189 | CONFIG_INLINE_READ_UNLOCK=y | ||
190 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
191 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
192 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
193 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
194 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
195 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
196 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
197 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
198 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
199 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
200 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
201 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
202 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
173 | # CONFIG_FREEZER is not set | 203 | # CONFIG_FREEZER is not set |
174 | 204 | ||
175 | # | 205 | # |
@@ -244,6 +274,7 @@ CONFIG_MATH_EMULATION=y | |||
244 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 274 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
245 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 275 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
246 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 276 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
277 | CONFIG_SPARSE_IRQ=y | ||
247 | CONFIG_MAX_ACTIVE_REGIONS=32 | 278 | CONFIG_MAX_ACTIVE_REGIONS=32 |
248 | CONFIG_ARCH_FLATMEM_ENABLE=y | 279 | CONFIG_ARCH_FLATMEM_ENABLE=y |
249 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 280 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -260,8 +291,6 @@ CONFIG_MIGRATION=y | |||
260 | CONFIG_ZONE_DMA_FLAG=1 | 291 | CONFIG_ZONE_DMA_FLAG=1 |
261 | CONFIG_BOUNCE=y | 292 | CONFIG_BOUNCE=y |
262 | CONFIG_VIRT_TO_BUS=y | 293 | CONFIG_VIRT_TO_BUS=y |
263 | CONFIG_HAVE_MLOCK=y | ||
264 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
265 | # CONFIG_KSM is not set | 294 | # CONFIG_KSM is not set |
266 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 295 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
267 | CONFIG_PPC_4K_PAGES=y | 296 | CONFIG_PPC_4K_PAGES=y |
@@ -379,9 +408,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
379 | # CONFIG_AF_RXRPC is not set | 408 | # CONFIG_AF_RXRPC is not set |
380 | CONFIG_WIRELESS=y | 409 | CONFIG_WIRELESS=y |
381 | # CONFIG_CFG80211 is not set | 410 | # CONFIG_CFG80211 is not set |
382 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
383 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
384 | # CONFIG_WIRELESS_EXT is not set | ||
385 | # CONFIG_LIB80211 is not set | 411 | # CONFIG_LIB80211 is not set |
386 | 412 | ||
387 | # | 413 | # |
@@ -497,6 +523,10 @@ CONFIG_BLK_DEV=y | |||
497 | # CONFIG_BLK_DEV_COW_COMMON is not set | 523 | # CONFIG_BLK_DEV_COW_COMMON is not set |
498 | CONFIG_BLK_DEV_LOOP=y | 524 | CONFIG_BLK_DEV_LOOP=y |
499 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 525 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
526 | |||
527 | # | ||
528 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
529 | # | ||
500 | # CONFIG_BLK_DEV_NBD is not set | 530 | # CONFIG_BLK_DEV_NBD is not set |
501 | CONFIG_BLK_DEV_RAM=y | 531 | CONFIG_BLK_DEV_RAM=y |
502 | CONFIG_BLK_DEV_RAM_COUNT=16 | 532 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -568,8 +598,7 @@ CONFIG_FS_ENET_HAS_SCC=y | |||
568 | # CONFIG_NETDEV_1000 is not set | 598 | # CONFIG_NETDEV_1000 is not set |
569 | # CONFIG_NETDEV_10000 is not set | 599 | # CONFIG_NETDEV_10000 is not set |
570 | CONFIG_WLAN=y | 600 | CONFIG_WLAN=y |
571 | # CONFIG_WLAN_PRE80211 is not set | 601 | # CONFIG_HOSTAP is not set |
572 | # CONFIG_WLAN_80211 is not set | ||
573 | 602 | ||
574 | # | 603 | # |
575 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 604 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -614,6 +643,7 @@ CONFIG_SERIAL_CORE=y | |||
614 | CONFIG_SERIAL_CORE_CONSOLE=y | 643 | CONFIG_SERIAL_CORE_CONSOLE=y |
615 | CONFIG_SERIAL_CPM=y | 644 | CONFIG_SERIAL_CPM=y |
616 | CONFIG_SERIAL_CPM_CONSOLE=y | 645 | CONFIG_SERIAL_CPM_CONSOLE=y |
646 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
617 | CONFIG_UNIX98_PTYS=y | 647 | CONFIG_UNIX98_PTYS=y |
618 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 648 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
619 | # CONFIG_LEGACY_PTYS is not set | 649 | # CONFIG_LEGACY_PTYS is not set |
@@ -863,6 +893,7 @@ CONFIG_DEBUG_FS=y | |||
863 | # CONFIG_DEBUG_MEMORY_INIT is not set | 893 | # CONFIG_DEBUG_MEMORY_INIT is not set |
864 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 894 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
865 | # CONFIG_LATENCYTOP is not set | 895 | # CONFIG_LATENCYTOP is not set |
896 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
866 | CONFIG_HAVE_FUNCTION_TRACER=y | 897 | CONFIG_HAVE_FUNCTION_TRACER=y |
867 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 898 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
868 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 899 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
@@ -887,7 +918,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
887 | # CONFIG_KEYS is not set | 918 | # CONFIG_KEYS is not set |
888 | # CONFIG_SECURITY is not set | 919 | # CONFIG_SECURITY is not set |
889 | # CONFIG_SECURITYFS is not set | 920 | # CONFIG_SECURITYFS is not set |
890 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 921 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
922 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
923 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
924 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
925 | CONFIG_DEFAULT_SECURITY="" | ||
891 | CONFIG_CRYPTO=y | 926 | CONFIG_CRYPTO=y |
892 | 927 | ||
893 | # | 928 | # |
diff --git a/arch/powerpc/configs/mpc5200_defconfig b/arch/powerpc/configs/mpc5200_defconfig index 523d5fe18c0..61cf73d0000 100644 --- a/arch/powerpc/configs/mpc5200_defconfig +++ b/arch/powerpc/configs/mpc5200_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc4 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Oct 15 10:33:21 2009 | 4 | # Wed Dec 30 15:08:52 2009 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -87,6 +89,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
87 | # | 89 | # |
88 | CONFIG_TREE_RCU=y | 90 | CONFIG_TREE_RCU=y |
89 | # CONFIG_TREE_PREEMPT_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
92 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | 93 | # CONFIG_RCU_TRACE is not set |
91 | CONFIG_RCU_FANOUT=32 | 94 | CONFIG_RCU_FANOUT=32 |
92 | # CONFIG_RCU_FANOUT_EXACT is not set | 95 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -170,14 +173,41 @@ CONFIG_LBDAF=y | |||
170 | # IO Schedulers | 173 | # IO Schedulers |
171 | # | 174 | # |
172 | CONFIG_IOSCHED_NOOP=y | 175 | CONFIG_IOSCHED_NOOP=y |
173 | CONFIG_IOSCHED_AS=y | ||
174 | CONFIG_IOSCHED_DEADLINE=y | 176 | CONFIG_IOSCHED_DEADLINE=y |
175 | CONFIG_IOSCHED_CFQ=y | 177 | CONFIG_IOSCHED_CFQ=y |
176 | CONFIG_DEFAULT_AS=y | ||
177 | # CONFIG_DEFAULT_DEADLINE is not set | 178 | # CONFIG_DEFAULT_DEADLINE is not set |
178 | # CONFIG_DEFAULT_CFQ is not set | 179 | CONFIG_DEFAULT_CFQ=y |
179 | # CONFIG_DEFAULT_NOOP is not set | 180 | # CONFIG_DEFAULT_NOOP is not set |
180 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 181 | CONFIG_DEFAULT_IOSCHED="cfq" |
182 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
183 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
184 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
185 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
186 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
188 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
189 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
190 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
191 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
192 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
193 | # CONFIG_INLINE_READ_LOCK is not set | ||
194 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
195 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
197 | CONFIG_INLINE_READ_UNLOCK=y | ||
198 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
199 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
200 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
201 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
202 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
203 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
206 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
207 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
208 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
209 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
210 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
181 | CONFIG_FREEZER=y | 211 | CONFIG_FREEZER=y |
182 | 212 | ||
183 | # | 213 | # |
@@ -193,6 +223,7 @@ CONFIG_PPC_LITE5200=y | |||
193 | CONFIG_PPC_MEDIA5200=y | 223 | CONFIG_PPC_MEDIA5200=y |
194 | CONFIG_PPC_MPC5200_BUGFIX=y | 224 | CONFIG_PPC_MPC5200_BUGFIX=y |
195 | CONFIG_PPC_MPC5200_GPIO=y | 225 | CONFIG_PPC_MPC5200_GPIO=y |
226 | CONFIG_PPC_MPC5200_LPBFIFO=m | ||
196 | # CONFIG_PPC_PMAC is not set | 227 | # CONFIG_PPC_PMAC is not set |
197 | # CONFIG_PPC_CELL is not set | 228 | # CONFIG_PPC_CELL is not set |
198 | # CONFIG_PPC_CELL_NATIVE is not set | 229 | # CONFIG_PPC_CELL_NATIVE is not set |
@@ -211,6 +242,7 @@ CONFIG_PPC_OF_BOOT_TRAMPOLINE=y | |||
211 | # CONFIG_PPC_I8259 is not set | 242 | # CONFIG_PPC_I8259 is not set |
212 | CONFIG_PPC_RTAS=y | 243 | CONFIG_PPC_RTAS=y |
213 | # CONFIG_RTAS_ERROR_LOGGING is not set | 244 | # CONFIG_RTAS_ERROR_LOGGING is not set |
245 | # CONFIG_PPC_RTAS_DAEMON is not set | ||
214 | CONFIG_RTAS_PROC=y | 246 | CONFIG_RTAS_PROC=y |
215 | # CONFIG_MMIO_NVRAM is not set | 247 | # CONFIG_MMIO_NVRAM is not set |
216 | # CONFIG_PPC_MPC106 is not set | 248 | # CONFIG_PPC_MPC106 is not set |
@@ -223,6 +255,7 @@ CONFIG_RTAS_PROC=y | |||
223 | CONFIG_PPC_BESTCOMM=y | 255 | CONFIG_PPC_BESTCOMM=y |
224 | CONFIG_PPC_BESTCOMM_ATA=y | 256 | CONFIG_PPC_BESTCOMM_ATA=y |
225 | CONFIG_PPC_BESTCOMM_FEC=y | 257 | CONFIG_PPC_BESTCOMM_FEC=y |
258 | CONFIG_PPC_BESTCOMM_GEN_BD=m | ||
226 | CONFIG_SIMPLE_GPIO=y | 259 | CONFIG_SIMPLE_GPIO=y |
227 | 260 | ||
228 | # | 261 | # |
@@ -253,6 +286,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
253 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 286 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
254 | # CONFIG_KEXEC is not set | 287 | # CONFIG_KEXEC is not set |
255 | # CONFIG_CRASH_DUMP is not set | 288 | # CONFIG_CRASH_DUMP is not set |
289 | CONFIG_SPARSE_IRQ=y | ||
256 | CONFIG_MAX_ACTIVE_REGIONS=32 | 290 | CONFIG_MAX_ACTIVE_REGIONS=32 |
257 | CONFIG_ARCH_FLATMEM_ENABLE=y | 291 | CONFIG_ARCH_FLATMEM_ENABLE=y |
258 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 292 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -269,8 +303,6 @@ CONFIG_MIGRATION=y | |||
269 | CONFIG_ZONE_DMA_FLAG=1 | 303 | CONFIG_ZONE_DMA_FLAG=1 |
270 | CONFIG_BOUNCE=y | 304 | CONFIG_BOUNCE=y |
271 | CONFIG_VIRT_TO_BUS=y | 305 | CONFIG_VIRT_TO_BUS=y |
272 | CONFIG_HAVE_MLOCK=y | ||
273 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
274 | # CONFIG_KSM is not set | 306 | # CONFIG_KSM is not set |
275 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 307 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
276 | CONFIG_PPC_4K_PAGES=y | 308 | CONFIG_PPC_4K_PAGES=y |
@@ -286,6 +318,7 @@ CONFIG_PM=y | |||
286 | CONFIG_PM_SLEEP=y | 318 | CONFIG_PM_SLEEP=y |
287 | CONFIG_SUSPEND=y | 319 | CONFIG_SUSPEND=y |
288 | CONFIG_SUSPEND_FREEZER=y | 320 | CONFIG_SUSPEND_FREEZER=y |
321 | # CONFIG_HIBERNATION is not set | ||
289 | # CONFIG_PM_RUNTIME is not set | 322 | # CONFIG_PM_RUNTIME is not set |
290 | CONFIG_SECCOMP=y | 323 | CONFIG_SECCOMP=y |
291 | CONFIG_ISA_DMA_API=y | 324 | CONFIG_ISA_DMA_API=y |
@@ -399,7 +432,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
399 | # CONFIG_IRDA is not set | 432 | # CONFIG_IRDA is not set |
400 | # CONFIG_BT is not set | 433 | # CONFIG_BT is not set |
401 | # CONFIG_AF_RXRPC is not set | 434 | # CONFIG_AF_RXRPC is not set |
402 | # CONFIG_WIRELESS is not set | 435 | CONFIG_WIRELESS=y |
436 | # CONFIG_CFG80211 is not set | ||
437 | # CONFIG_LIB80211 is not set | ||
438 | |||
439 | # | ||
440 | # CFG80211 needs to be enabled for MAC80211 | ||
441 | # | ||
403 | # CONFIG_WIMAX is not set | 442 | # CONFIG_WIMAX is not set |
404 | # CONFIG_RFKILL is not set | 443 | # CONFIG_RFKILL is not set |
405 | # CONFIG_NET_9P is not set | 444 | # CONFIG_NET_9P is not set |
@@ -530,6 +569,10 @@ CONFIG_BLK_DEV=y | |||
530 | # CONFIG_BLK_DEV_COW_COMMON is not set | 569 | # CONFIG_BLK_DEV_COW_COMMON is not set |
531 | CONFIG_BLK_DEV_LOOP=y | 570 | CONFIG_BLK_DEV_LOOP=y |
532 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 571 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
572 | |||
573 | # | ||
574 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
575 | # | ||
533 | # CONFIG_BLK_DEV_NBD is not set | 576 | # CONFIG_BLK_DEV_NBD is not set |
534 | # CONFIG_BLK_DEV_SX8 is not set | 577 | # CONFIG_BLK_DEV_SX8 is not set |
535 | # CONFIG_BLK_DEV_UB is not set | 578 | # CONFIG_BLK_DEV_UB is not set |
@@ -541,6 +584,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
541 | # CONFIG_ATA_OVER_ETH is not set | 584 | # CONFIG_ATA_OVER_ETH is not set |
542 | # CONFIG_BLK_DEV_HD is not set | 585 | # CONFIG_BLK_DEV_HD is not set |
543 | CONFIG_MISC_DEVICES=y | 586 | CONFIG_MISC_DEVICES=y |
587 | # CONFIG_AD525X_DPOT is not set | ||
544 | # CONFIG_PHANTOM is not set | 588 | # CONFIG_PHANTOM is not set |
545 | # CONFIG_SGI_IOC4 is not set | 589 | # CONFIG_SGI_IOC4 is not set |
546 | # CONFIG_TIFM_CORE is not set | 590 | # CONFIG_TIFM_CORE is not set |
@@ -548,6 +592,8 @@ CONFIG_MISC_DEVICES=y | |||
548 | # CONFIG_ENCLOSURE_SERVICES is not set | 592 | # CONFIG_ENCLOSURE_SERVICES is not set |
549 | # CONFIG_HP_ILO is not set | 593 | # CONFIG_HP_ILO is not set |
550 | # CONFIG_ISL29003 is not set | 594 | # CONFIG_ISL29003 is not set |
595 | # CONFIG_DS1682 is not set | ||
596 | # CONFIG_TI_DAC7512 is not set | ||
551 | # CONFIG_C2PORT is not set | 597 | # CONFIG_C2PORT is not set |
552 | 598 | ||
553 | # | 599 | # |
@@ -600,7 +646,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
600 | # CONFIG_SCSI_BNX2_ISCSI is not set | 646 | # CONFIG_SCSI_BNX2_ISCSI is not set |
601 | # CONFIG_BE2ISCSI is not set | 647 | # CONFIG_BE2ISCSI is not set |
602 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 648 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
649 | # CONFIG_SCSI_HPSA is not set | ||
603 | # CONFIG_SCSI_3W_9XXX is not set | 650 | # CONFIG_SCSI_3W_9XXX is not set |
651 | # CONFIG_SCSI_3W_SAS is not set | ||
604 | # CONFIG_SCSI_ACARD is not set | 652 | # CONFIG_SCSI_ACARD is not set |
605 | # CONFIG_SCSI_AACRAID is not set | 653 | # CONFIG_SCSI_AACRAID is not set |
606 | # CONFIG_SCSI_AIC7XXX is not set | 654 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -639,6 +687,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
639 | # CONFIG_SCSI_NSP32 is not set | 687 | # CONFIG_SCSI_NSP32 is not set |
640 | # CONFIG_SCSI_DEBUG is not set | 688 | # CONFIG_SCSI_DEBUG is not set |
641 | # CONFIG_SCSI_PMCRAID is not set | 689 | # CONFIG_SCSI_PMCRAID is not set |
690 | # CONFIG_SCSI_PM8001 is not set | ||
642 | # CONFIG_SCSI_SRP is not set | 691 | # CONFIG_SCSI_SRP is not set |
643 | # CONFIG_SCSI_BFA_FC is not set | 692 | # CONFIG_SCSI_BFA_FC is not set |
644 | # CONFIG_SCSI_DH is not set | 693 | # CONFIG_SCSI_DH is not set |
@@ -694,15 +743,16 @@ CONFIG_PATA_MPC52xx=y | |||
694 | # CONFIG_PATA_NS87415 is not set | 743 | # CONFIG_PATA_NS87415 is not set |
695 | # CONFIG_PATA_OPTI is not set | 744 | # CONFIG_PATA_OPTI is not set |
696 | # CONFIG_PATA_OPTIDMA is not set | 745 | # CONFIG_PATA_OPTIDMA is not set |
746 | # CONFIG_PATA_PDC2027X is not set | ||
697 | # CONFIG_PATA_PDC_OLD is not set | 747 | # CONFIG_PATA_PDC_OLD is not set |
698 | # CONFIG_PATA_RADISYS is not set | 748 | # CONFIG_PATA_RADISYS is not set |
699 | # CONFIG_PATA_RDC is not set | 749 | # CONFIG_PATA_RDC is not set |
700 | # CONFIG_PATA_RZ1000 is not set | 750 | # CONFIG_PATA_RZ1000 is not set |
701 | # CONFIG_PATA_SC1200 is not set | 751 | # CONFIG_PATA_SC1200 is not set |
702 | # CONFIG_PATA_SERVERWORKS is not set | 752 | # CONFIG_PATA_SERVERWORKS is not set |
703 | # CONFIG_PATA_PDC2027X is not set | ||
704 | # CONFIG_PATA_SIL680 is not set | 753 | # CONFIG_PATA_SIL680 is not set |
705 | # CONFIG_PATA_SIS is not set | 754 | # CONFIG_PATA_SIS is not set |
755 | # CONFIG_PATA_TOSHIBA is not set | ||
706 | # CONFIG_PATA_VIA is not set | 756 | # CONFIG_PATA_VIA is not set |
707 | # CONFIG_PATA_WINBOND is not set | 757 | # CONFIG_PATA_WINBOND is not set |
708 | CONFIG_PATA_PLATFORM=y | 758 | CONFIG_PATA_PLATFORM=y |
@@ -785,8 +835,11 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
785 | # CONFIG_NETDEV_10000 is not set | 835 | # CONFIG_NETDEV_10000 is not set |
786 | # CONFIG_TR is not set | 836 | # CONFIG_TR is not set |
787 | CONFIG_WLAN=y | 837 | CONFIG_WLAN=y |
788 | # CONFIG_WLAN_PRE80211 is not set | 838 | # CONFIG_AIRO is not set |
789 | # CONFIG_WLAN_80211 is not set | 839 | # CONFIG_ATMEL is not set |
840 | # CONFIG_PRISM54 is not set | ||
841 | # CONFIG_USB_ZD1201 is not set | ||
842 | # CONFIG_HOSTAP is not set | ||
790 | 843 | ||
791 | # | 844 | # |
792 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 845 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -809,6 +862,7 @@ CONFIG_WLAN=y | |||
809 | # CONFIG_NETCONSOLE is not set | 862 | # CONFIG_NETCONSOLE is not set |
810 | # CONFIG_NETPOLL is not set | 863 | # CONFIG_NETPOLL is not set |
811 | # CONFIG_NET_POLL_CONTROLLER is not set | 864 | # CONFIG_NET_POLL_CONTROLLER is not set |
865 | # CONFIG_VMXNET3 is not set | ||
812 | # CONFIG_ISDN is not set | 866 | # CONFIG_ISDN is not set |
813 | # CONFIG_PHONE is not set | 867 | # CONFIG_PHONE is not set |
814 | 868 | ||
@@ -818,6 +872,7 @@ CONFIG_WLAN=y | |||
818 | CONFIG_INPUT=y | 872 | CONFIG_INPUT=y |
819 | # CONFIG_INPUT_FF_MEMLESS is not set | 873 | # CONFIG_INPUT_FF_MEMLESS is not set |
820 | # CONFIG_INPUT_POLLDEV is not set | 874 | # CONFIG_INPUT_POLLDEV is not set |
875 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
821 | 876 | ||
822 | # | 877 | # |
823 | # Userland interfaces | 878 | # Userland interfaces |
@@ -874,6 +929,7 @@ CONFIG_SERIAL_MPC52xx=y | |||
874 | CONFIG_SERIAL_MPC52xx_CONSOLE=y | 929 | CONFIG_SERIAL_MPC52xx_CONSOLE=y |
875 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 | 930 | CONFIG_SERIAL_MPC52xx_CONSOLE_BAUD=115200 |
876 | # CONFIG_SERIAL_JSM is not set | 931 | # CONFIG_SERIAL_JSM is not set |
932 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
877 | CONFIG_UNIX98_PTYS=y | 933 | CONFIG_UNIX98_PTYS=y |
878 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 934 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
879 | CONFIG_LEGACY_PTYS=y | 935 | CONFIG_LEGACY_PTYS=y |
@@ -934,11 +990,6 @@ CONFIG_I2C_MPC=y | |||
934 | # CONFIG_I2C_TINY_USB is not set | 990 | # CONFIG_I2C_TINY_USB is not set |
935 | 991 | ||
936 | # | 992 | # |
937 | # Graphics adapter I2C/DDC channel drivers | ||
938 | # | ||
939 | # CONFIG_I2C_VOODOO3 is not set | ||
940 | |||
941 | # | ||
942 | # Other I2C/SMBus bus drivers | 993 | # Other I2C/SMBus bus drivers |
943 | # | 994 | # |
944 | # CONFIG_I2C_PCA_PLATFORM is not set | 995 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -947,7 +998,6 @@ CONFIG_I2C_MPC=y | |||
947 | # | 998 | # |
948 | # Miscellaneous I2C Chip support | 999 | # Miscellaneous I2C Chip support |
949 | # | 1000 | # |
950 | # CONFIG_DS1682 is not set | ||
951 | # CONFIG_SENSORS_TSL2550 is not set | 1001 | # CONFIG_SENSORS_TSL2550 is not set |
952 | # CONFIG_I2C_DEBUG_CORE is not set | 1002 | # CONFIG_I2C_DEBUG_CORE is not set |
953 | # CONFIG_I2C_DEBUG_ALGO is not set | 1003 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -962,7 +1012,10 @@ CONFIG_SPI_MASTER=y | |||
962 | # | 1012 | # |
963 | # CONFIG_SPI_BITBANG is not set | 1013 | # CONFIG_SPI_BITBANG is not set |
964 | # CONFIG_SPI_GPIO is not set | 1014 | # CONFIG_SPI_GPIO is not set |
1015 | # CONFIG_SPI_MPC52xx is not set | ||
965 | CONFIG_SPI_MPC52xx_PSC=m | 1016 | CONFIG_SPI_MPC52xx_PSC=m |
1017 | # CONFIG_SPI_XILINX is not set | ||
1018 | # CONFIG_SPI_DESIGNWARE is not set | ||
966 | 1019 | ||
967 | # | 1020 | # |
968 | # SPI Protocol Masters | 1021 | # SPI Protocol Masters |
@@ -995,6 +1048,7 @@ CONFIG_GPIOLIB=y | |||
995 | # | 1048 | # |
996 | # PCI GPIO expanders: | 1049 | # PCI GPIO expanders: |
997 | # | 1050 | # |
1051 | # CONFIG_GPIO_CS5535 is not set | ||
998 | # CONFIG_GPIO_BT8XX is not set | 1052 | # CONFIG_GPIO_BT8XX is not set |
999 | # CONFIG_GPIO_LANGWELL is not set | 1053 | # CONFIG_GPIO_LANGWELL is not set |
1000 | 1054 | ||
@@ -1042,6 +1096,7 @@ CONFIG_HWMON=y | |||
1042 | # CONFIG_SENSORS_IT87 is not set | 1096 | # CONFIG_SENSORS_IT87 is not set |
1043 | # CONFIG_SENSORS_LM63 is not set | 1097 | # CONFIG_SENSORS_LM63 is not set |
1044 | # CONFIG_SENSORS_LM70 is not set | 1098 | # CONFIG_SENSORS_LM70 is not set |
1099 | # CONFIG_SENSORS_LM73 is not set | ||
1045 | # CONFIG_SENSORS_LM75 is not set | 1100 | # CONFIG_SENSORS_LM75 is not set |
1046 | # CONFIG_SENSORS_LM77 is not set | 1101 | # CONFIG_SENSORS_LM77 is not set |
1047 | # CONFIG_SENSORS_LM78 is not set | 1102 | # CONFIG_SENSORS_LM78 is not set |
@@ -1083,6 +1138,7 @@ CONFIG_HWMON=y | |||
1083 | # CONFIG_SENSORS_W83627HF is not set | 1138 | # CONFIG_SENSORS_W83627HF is not set |
1084 | # CONFIG_SENSORS_W83627EHF is not set | 1139 | # CONFIG_SENSORS_W83627EHF is not set |
1085 | # CONFIG_SENSORS_LIS3_SPI is not set | 1140 | # CONFIG_SENSORS_LIS3_SPI is not set |
1141 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1086 | # CONFIG_THERMAL is not set | 1142 | # CONFIG_THERMAL is not set |
1087 | CONFIG_WATCHDOG=y | 1143 | CONFIG_WATCHDOG=y |
1088 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1144 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1122,6 +1178,7 @@ CONFIG_SSB_POSSIBLE=y | |||
1122 | # CONFIG_TWL4030_CORE is not set | 1178 | # CONFIG_TWL4030_CORE is not set |
1123 | # CONFIG_MFD_TMIO is not set | 1179 | # CONFIG_MFD_TMIO is not set |
1124 | # CONFIG_PMIC_DA903X is not set | 1180 | # CONFIG_PMIC_DA903X is not set |
1181 | # CONFIG_PMIC_ADP5520 is not set | ||
1125 | # CONFIG_MFD_WM8400 is not set | 1182 | # CONFIG_MFD_WM8400 is not set |
1126 | # CONFIG_MFD_WM831X is not set | 1183 | # CONFIG_MFD_WM831X is not set |
1127 | # CONFIG_MFD_WM8350_I2C is not set | 1184 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -1129,6 +1186,8 @@ CONFIG_SSB_POSSIBLE=y | |||
1129 | # CONFIG_MFD_MC13783 is not set | 1186 | # CONFIG_MFD_MC13783 is not set |
1130 | # CONFIG_AB3100_CORE is not set | 1187 | # CONFIG_AB3100_CORE is not set |
1131 | # CONFIG_EZX_PCAP is not set | 1188 | # CONFIG_EZX_PCAP is not set |
1189 | # CONFIG_MFD_88PM8607 is not set | ||
1190 | # CONFIG_AB4500_CORE is not set | ||
1132 | # CONFIG_REGULATOR is not set | 1191 | # CONFIG_REGULATOR is not set |
1133 | # CONFIG_MEDIA_SUPPORT is not set | 1192 | # CONFIG_MEDIA_SUPPORT is not set |
1134 | 1193 | ||
@@ -1322,7 +1381,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
1322 | # CONFIG_USB_R8A66597_HCD is not set | 1381 | # CONFIG_USB_R8A66597_HCD is not set |
1323 | # CONFIG_USB_WHCI_HCD is not set | 1382 | # CONFIG_USB_WHCI_HCD is not set |
1324 | # CONFIG_USB_HWA_HCD is not set | 1383 | # CONFIG_USB_HWA_HCD is not set |
1325 | # CONFIG_USB_MUSB_HDRC is not set | ||
1326 | 1384 | ||
1327 | # | 1385 | # |
1328 | # USB Device Class drivers | 1386 | # USB Device Class drivers |
@@ -1440,6 +1498,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1440 | # CONFIG_RTC_DRV_PCF8563 is not set | 1498 | # CONFIG_RTC_DRV_PCF8563 is not set |
1441 | # CONFIG_RTC_DRV_PCF8583 is not set | 1499 | # CONFIG_RTC_DRV_PCF8583 is not set |
1442 | # CONFIG_RTC_DRV_M41T80 is not set | 1500 | # CONFIG_RTC_DRV_M41T80 is not set |
1501 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1443 | # CONFIG_RTC_DRV_S35390A is not set | 1502 | # CONFIG_RTC_DRV_S35390A is not set |
1444 | # CONFIG_RTC_DRV_FM3130 is not set | 1503 | # CONFIG_RTC_DRV_FM3130 is not set |
1445 | # CONFIG_RTC_DRV_RX8581 is not set | 1504 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1469,7 +1528,9 @@ CONFIG_RTC_DRV_DS1307=y | |||
1469 | # CONFIG_RTC_DRV_M48T86 is not set | 1528 | # CONFIG_RTC_DRV_M48T86 is not set |
1470 | # CONFIG_RTC_DRV_M48T35 is not set | 1529 | # CONFIG_RTC_DRV_M48T35 is not set |
1471 | # CONFIG_RTC_DRV_M48T59 is not set | 1530 | # CONFIG_RTC_DRV_M48T59 is not set |
1531 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1472 | # CONFIG_RTC_DRV_BQ4802 is not set | 1532 | # CONFIG_RTC_DRV_BQ4802 is not set |
1533 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1473 | # CONFIG_RTC_DRV_V3020 is not set | 1534 | # CONFIG_RTC_DRV_V3020 is not set |
1474 | 1535 | ||
1475 | # | 1536 | # |
@@ -1731,6 +1792,7 @@ CONFIG_DEBUG_INFO=y | |||
1731 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 1792 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
1732 | # CONFIG_FAULT_INJECTION is not set | 1793 | # CONFIG_FAULT_INJECTION is not set |
1733 | # CONFIG_LATENCYTOP is not set | 1794 | # CONFIG_LATENCYTOP is not set |
1795 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1734 | # CONFIG_DEBUG_PAGEALLOC is not set | 1796 | # CONFIG_DEBUG_PAGEALLOC is not set |
1735 | CONFIG_HAVE_FUNCTION_TRACER=y | 1797 | CONFIG_HAVE_FUNCTION_TRACER=y |
1736 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1798 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1774,7 +1836,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1774 | # CONFIG_KEYS is not set | 1836 | # CONFIG_KEYS is not set |
1775 | # CONFIG_SECURITY is not set | 1837 | # CONFIG_SECURITY is not set |
1776 | # CONFIG_SECURITYFS is not set | 1838 | # CONFIG_SECURITYFS is not set |
1777 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1839 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1840 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1841 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1842 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1843 | CONFIG_DEFAULT_SECURITY="" | ||
1778 | CONFIG_CRYPTO=y | 1844 | CONFIG_CRYPTO=y |
1779 | 1845 | ||
1780 | # | 1846 | # |
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig index d8b364a4594..1315b775a6d 100644 --- a/arch/powerpc/configs/mpc7448_hpc2_defconfig +++ b/arch/powerpc/configs/mpc7448_hpc2_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:10 2009 | 4 | # Wed Jan 6 09:24:04 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -58,6 +59,7 @@ CONFIG_AUDIT_ARCH=y | |||
58 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | 60 | CONFIG_DTC=y |
60 | CONFIG_DEFAULT_UIMAGE=y | 61 | CONFIG_DEFAULT_UIMAGE=y |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
61 | # CONFIG_PPC_DCR_NATIVE is not set | 63 | # CONFIG_PPC_DCR_NATIVE is not set |
62 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
63 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -85,6 +87,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
85 | # | 87 | # |
86 | CONFIG_TREE_RCU=y | 88 | CONFIG_TREE_RCU=y |
87 | # CONFIG_TREE_PREEMPT_RCU is not set | 89 | # CONFIG_TREE_PREEMPT_RCU is not set |
90 | # CONFIG_TINY_RCU is not set | ||
88 | # CONFIG_RCU_TRACE is not set | 91 | # CONFIG_RCU_TRACE is not set |
89 | CONFIG_RCU_FANOUT=32 | 92 | CONFIG_RCU_FANOUT=32 |
90 | # CONFIG_RCU_FANOUT_EXACT is not set | 93 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -167,14 +170,41 @@ CONFIG_LBDAF=y | |||
167 | # IO Schedulers | 170 | # IO Schedulers |
168 | # | 171 | # |
169 | CONFIG_IOSCHED_NOOP=y | 172 | CONFIG_IOSCHED_NOOP=y |
170 | CONFIG_IOSCHED_AS=y | ||
171 | CONFIG_IOSCHED_DEADLINE=y | 173 | CONFIG_IOSCHED_DEADLINE=y |
172 | CONFIG_IOSCHED_CFQ=y | 174 | CONFIG_IOSCHED_CFQ=y |
173 | CONFIG_DEFAULT_AS=y | ||
174 | # CONFIG_DEFAULT_DEADLINE is not set | 175 | # CONFIG_DEFAULT_DEADLINE is not set |
175 | # CONFIG_DEFAULT_CFQ is not set | 176 | CONFIG_DEFAULT_CFQ=y |
176 | # CONFIG_DEFAULT_NOOP is not set | 177 | # CONFIG_DEFAULT_NOOP is not set |
177 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 178 | CONFIG_DEFAULT_IOSCHED="cfq" |
179 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
180 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
181 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
182 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
183 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
184 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
185 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
186 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
187 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
188 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
189 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
190 | # CONFIG_INLINE_READ_LOCK is not set | ||
191 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
192 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
193 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
194 | CONFIG_INLINE_READ_UNLOCK=y | ||
195 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
196 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
197 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
198 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
199 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
200 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
201 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
202 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
203 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
204 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
205 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
206 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
207 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
178 | # CONFIG_FREEZER is not set | 208 | # CONFIG_FREEZER is not set |
179 | 209 | ||
180 | # | 210 | # |
@@ -199,6 +229,8 @@ CONFIG_MPC7448HPC2=y | |||
199 | # CONFIG_PPC_PRPMC2800 is not set | 229 | # CONFIG_PPC_PRPMC2800 is not set |
200 | # CONFIG_PPC_C2K is not set | 230 | # CONFIG_PPC_C2K is not set |
201 | CONFIG_TSI108_BRIDGE=y | 231 | CONFIG_TSI108_BRIDGE=y |
232 | # CONFIG_GAMECUBE is not set | ||
233 | # CONFIG_WII is not set | ||
202 | # CONFIG_AMIGAONE is not set | 234 | # CONFIG_AMIGAONE is not set |
203 | CONFIG_PPC_OF_BOOT_TRAMPOLINE=y | 235 | CONFIG_PPC_OF_BOOT_TRAMPOLINE=y |
204 | # CONFIG_IPIC is not set | 236 | # CONFIG_IPIC is not set |
@@ -244,6 +276,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
244 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 276 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
245 | # CONFIG_KEXEC is not set | 277 | # CONFIG_KEXEC is not set |
246 | # CONFIG_CRASH_DUMP is not set | 278 | # CONFIG_CRASH_DUMP is not set |
279 | CONFIG_SPARSE_IRQ=y | ||
247 | CONFIG_MAX_ACTIVE_REGIONS=32 | 280 | CONFIG_MAX_ACTIVE_REGIONS=32 |
248 | CONFIG_ARCH_FLATMEM_ENABLE=y | 281 | CONFIG_ARCH_FLATMEM_ENABLE=y |
249 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 282 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -260,8 +293,6 @@ CONFIG_MIGRATION=y | |||
260 | CONFIG_ZONE_DMA_FLAG=1 | 293 | CONFIG_ZONE_DMA_FLAG=1 |
261 | CONFIG_BOUNCE=y | 294 | CONFIG_BOUNCE=y |
262 | CONFIG_VIRT_TO_BUS=y | 295 | CONFIG_VIRT_TO_BUS=y |
263 | CONFIG_HAVE_MLOCK=y | ||
264 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
265 | # CONFIG_KSM is not set | 296 | # CONFIG_KSM is not set |
266 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 297 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
267 | CONFIG_PPC_4K_PAGES=y | 298 | CONFIG_PPC_4K_PAGES=y |
@@ -385,9 +416,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
385 | # CONFIG_AF_RXRPC is not set | 416 | # CONFIG_AF_RXRPC is not set |
386 | CONFIG_WIRELESS=y | 417 | CONFIG_WIRELESS=y |
387 | # CONFIG_CFG80211 is not set | 418 | # CONFIG_CFG80211 is not set |
388 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
389 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
390 | # CONFIG_WIRELESS_EXT is not set | ||
391 | # CONFIG_LIB80211 is not set | 419 | # CONFIG_LIB80211 is not set |
392 | 420 | ||
393 | # | 421 | # |
@@ -424,6 +452,10 @@ CONFIG_BLK_DEV=y | |||
424 | # CONFIG_BLK_DEV_COW_COMMON is not set | 452 | # CONFIG_BLK_DEV_COW_COMMON is not set |
425 | CONFIG_BLK_DEV_LOOP=y | 453 | CONFIG_BLK_DEV_LOOP=y |
426 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 454 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
455 | |||
456 | # | ||
457 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
458 | # | ||
427 | # CONFIG_BLK_DEV_NBD is not set | 459 | # CONFIG_BLK_DEV_NBD is not set |
428 | # CONFIG_BLK_DEV_SX8 is not set | 460 | # CONFIG_BLK_DEV_SX8 is not set |
429 | CONFIG_BLK_DEV_RAM=y | 461 | CONFIG_BLK_DEV_RAM=y |
@@ -487,7 +519,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
487 | # CONFIG_SCSI_BNX2_ISCSI is not set | 519 | # CONFIG_SCSI_BNX2_ISCSI is not set |
488 | # CONFIG_BE2ISCSI is not set | 520 | # CONFIG_BE2ISCSI is not set |
489 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 521 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
522 | # CONFIG_SCSI_HPSA is not set | ||
490 | # CONFIG_SCSI_3W_9XXX is not set | 523 | # CONFIG_SCSI_3W_9XXX is not set |
524 | # CONFIG_SCSI_3W_SAS is not set | ||
491 | # CONFIG_SCSI_ACARD is not set | 525 | # CONFIG_SCSI_ACARD is not set |
492 | # CONFIG_SCSI_AACRAID is not set | 526 | # CONFIG_SCSI_AACRAID is not set |
493 | # CONFIG_SCSI_AIC7XXX is not set | 527 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -526,6 +560,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
526 | # CONFIG_SCSI_NSP32 is not set | 560 | # CONFIG_SCSI_NSP32 is not set |
527 | # CONFIG_SCSI_DEBUG is not set | 561 | # CONFIG_SCSI_DEBUG is not set |
528 | # CONFIG_SCSI_PMCRAID is not set | 562 | # CONFIG_SCSI_PMCRAID is not set |
563 | # CONFIG_SCSI_PM8001 is not set | ||
529 | # CONFIG_SCSI_SRP is not set | 564 | # CONFIG_SCSI_SRP is not set |
530 | # CONFIG_SCSI_BFA_FC is not set | 565 | # CONFIG_SCSI_BFA_FC is not set |
531 | # CONFIG_SCSI_DH is not set | 566 | # CONFIG_SCSI_DH is not set |
@@ -580,15 +615,16 @@ CONFIG_SATA_MV=y | |||
580 | # CONFIG_PATA_NS87415 is not set | 615 | # CONFIG_PATA_NS87415 is not set |
581 | # CONFIG_PATA_OPTI is not set | 616 | # CONFIG_PATA_OPTI is not set |
582 | # CONFIG_PATA_OPTIDMA is not set | 617 | # CONFIG_PATA_OPTIDMA is not set |
618 | # CONFIG_PATA_PDC2027X is not set | ||
583 | # CONFIG_PATA_PDC_OLD is not set | 619 | # CONFIG_PATA_PDC_OLD is not set |
584 | # CONFIG_PATA_RADISYS is not set | 620 | # CONFIG_PATA_RADISYS is not set |
585 | # CONFIG_PATA_RDC is not set | 621 | # CONFIG_PATA_RDC is not set |
586 | # CONFIG_PATA_RZ1000 is not set | 622 | # CONFIG_PATA_RZ1000 is not set |
587 | # CONFIG_PATA_SC1200 is not set | 623 | # CONFIG_PATA_SC1200 is not set |
588 | # CONFIG_PATA_SERVERWORKS is not set | 624 | # CONFIG_PATA_SERVERWORKS is not set |
589 | # CONFIG_PATA_PDC2027X is not set | ||
590 | # CONFIG_PATA_SIL680 is not set | 625 | # CONFIG_PATA_SIL680 is not set |
591 | # CONFIG_PATA_SIS is not set | 626 | # CONFIG_PATA_SIS is not set |
627 | # CONFIG_PATA_TOSHIBA is not set | ||
592 | # CONFIG_PATA_VIA is not set | 628 | # CONFIG_PATA_VIA is not set |
593 | # CONFIG_PATA_WINBOND is not set | 629 | # CONFIG_PATA_WINBOND is not set |
594 | # CONFIG_PATA_PLATFORM is not set | 630 | # CONFIG_PATA_PLATFORM is not set |
@@ -605,7 +641,7 @@ CONFIG_SATA_MV=y | |||
605 | # | 641 | # |
606 | 642 | ||
607 | # | 643 | # |
608 | # See the help texts for more information. | 644 | # The newer stack is recommended. |
609 | # | 645 | # |
610 | # CONFIG_FIREWIRE is not set | 646 | # CONFIG_FIREWIRE is not set |
611 | # CONFIG_IEEE1394 is not set | 647 | # CONFIG_IEEE1394 is not set |
@@ -731,8 +767,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
731 | # CONFIG_BE2NET is not set | 767 | # CONFIG_BE2NET is not set |
732 | # CONFIG_TR is not set | 768 | # CONFIG_TR is not set |
733 | CONFIG_WLAN=y | 769 | CONFIG_WLAN=y |
734 | # CONFIG_WLAN_PRE80211 is not set | 770 | # CONFIG_AIRO is not set |
735 | # CONFIG_WLAN_80211 is not set | 771 | # CONFIG_ATMEL is not set |
772 | # CONFIG_PRISM54 is not set | ||
773 | # CONFIG_HOSTAP is not set | ||
736 | 774 | ||
737 | # | 775 | # |
738 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 776 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -746,6 +784,7 @@ CONFIG_WLAN=y | |||
746 | # CONFIG_NETCONSOLE is not set | 784 | # CONFIG_NETCONSOLE is not set |
747 | # CONFIG_NETPOLL is not set | 785 | # CONFIG_NETPOLL is not set |
748 | # CONFIG_NET_POLL_CONTROLLER is not set | 786 | # CONFIG_NET_POLL_CONTROLLER is not set |
787 | # CONFIG_VMXNET3 is not set | ||
749 | # CONFIG_ISDN is not set | 788 | # CONFIG_ISDN is not set |
750 | # CONFIG_PHONE is not set | 789 | # CONFIG_PHONE is not set |
751 | 790 | ||
@@ -755,6 +794,7 @@ CONFIG_WLAN=y | |||
755 | CONFIG_INPUT=y | 794 | CONFIG_INPUT=y |
756 | # CONFIG_INPUT_FF_MEMLESS is not set | 795 | # CONFIG_INPUT_FF_MEMLESS is not set |
757 | # CONFIG_INPUT_POLLDEV is not set | 796 | # CONFIG_INPUT_POLLDEV is not set |
797 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
758 | 798 | ||
759 | # | 799 | # |
760 | # Userland interfaces | 800 | # Userland interfaces |
@@ -806,6 +846,7 @@ CONFIG_SERIAL_CORE=y | |||
806 | CONFIG_SERIAL_CORE_CONSOLE=y | 846 | CONFIG_SERIAL_CORE_CONSOLE=y |
807 | # CONFIG_SERIAL_JSM is not set | 847 | # CONFIG_SERIAL_JSM is not set |
808 | # CONFIG_SERIAL_OF_PLATFORM is not set | 848 | # CONFIG_SERIAL_OF_PLATFORM is not set |
849 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
809 | CONFIG_UNIX98_PTYS=y | 850 | CONFIG_UNIX98_PTYS=y |
810 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 851 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
811 | CONFIG_LEGACY_PTYS=y | 852 | CONFIG_LEGACY_PTYS=y |
@@ -1091,7 +1132,7 @@ CONFIG_FRAME_WARN=1024 | |||
1091 | # CONFIG_DEBUG_KERNEL is not set | 1132 | # CONFIG_DEBUG_KERNEL is not set |
1092 | # CONFIG_SLUB_DEBUG_ON is not set | 1133 | # CONFIG_SLUB_DEBUG_ON is not set |
1093 | # CONFIG_SLUB_STATS is not set | 1134 | # CONFIG_SLUB_STATS is not set |
1094 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1135 | CONFIG_DEBUG_BUGVERBOSE=y |
1095 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1136 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1096 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1137 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1097 | # CONFIG_LATENCYTOP is not set | 1138 | # CONFIG_LATENCYTOP is not set |
@@ -1118,7 +1159,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1118 | # CONFIG_KEYS is not set | 1159 | # CONFIG_KEYS is not set |
1119 | # CONFIG_SECURITY is not set | 1160 | # CONFIG_SECURITY is not set |
1120 | # CONFIG_SECURITYFS is not set | 1161 | # CONFIG_SECURITYFS is not set |
1121 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1162 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1163 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1164 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1165 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1166 | CONFIG_DEFAULT_SECURITY="" | ||
1122 | CONFIG_CRYPTO=y | 1167 | CONFIG_CRYPTO=y |
1123 | 1168 | ||
1124 | # | 1169 | # |
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig index 00fad81b6fc..9073778d357 100644 --- a/arch/powerpc/configs/mpc8272_ads_defconfig +++ b/arch/powerpc/configs/mpc8272_ads_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:11 2009 | 4 | # Wed Jan 6 09:24:05 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | # CONFIG_PPC_DCR_NATIVE is not set | 64 | # CONFIG_PPC_DCR_NATIVE is not set |
63 | # CONFIG_PPC_DCR_MMIO is not set | 65 | # CONFIG_PPC_DCR_MMIO is not set |
64 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -85,6 +87,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
85 | # | 87 | # |
86 | CONFIG_TREE_RCU=y | 88 | CONFIG_TREE_RCU=y |
87 | # CONFIG_TREE_PREEMPT_RCU is not set | 89 | # CONFIG_TREE_PREEMPT_RCU is not set |
90 | # CONFIG_TINY_RCU is not set | ||
88 | # CONFIG_RCU_TRACE is not set | 91 | # CONFIG_RCU_TRACE is not set |
89 | CONFIG_RCU_FANOUT=32 | 92 | CONFIG_RCU_FANOUT=32 |
90 | # CONFIG_RCU_FANOUT_EXACT is not set | 93 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -161,14 +164,41 @@ CONFIG_BLK_DEV_BSG=y | |||
161 | # IO Schedulers | 164 | # IO Schedulers |
162 | # | 165 | # |
163 | CONFIG_IOSCHED_NOOP=y | 166 | CONFIG_IOSCHED_NOOP=y |
164 | CONFIG_IOSCHED_AS=y | ||
165 | CONFIG_IOSCHED_DEADLINE=y | 167 | CONFIG_IOSCHED_DEADLINE=y |
166 | CONFIG_IOSCHED_CFQ=y | 168 | CONFIG_IOSCHED_CFQ=y |
167 | CONFIG_DEFAULT_AS=y | ||
168 | # CONFIG_DEFAULT_DEADLINE is not set | 169 | # CONFIG_DEFAULT_DEADLINE is not set |
169 | # CONFIG_DEFAULT_CFQ is not set | 170 | CONFIG_DEFAULT_CFQ=y |
170 | # CONFIG_DEFAULT_NOOP is not set | 171 | # CONFIG_DEFAULT_NOOP is not set |
171 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 172 | CONFIG_DEFAULT_IOSCHED="cfq" |
173 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
174 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
175 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
176 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
177 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
178 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
179 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
180 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
181 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
182 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
183 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
184 | # CONFIG_INLINE_READ_LOCK is not set | ||
185 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
186 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
187 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
188 | CONFIG_INLINE_READ_UNLOCK=y | ||
189 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
190 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
191 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
192 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
193 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
194 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
195 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
196 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
197 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
198 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
199 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
200 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
201 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
172 | # CONFIG_FREEZER is not set | 202 | # CONFIG_FREEZER is not set |
173 | 203 | ||
174 | # | 204 | # |
@@ -240,6 +270,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | |||
240 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 270 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
241 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 271 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
242 | # CONFIG_CRASH_DUMP is not set | 272 | # CONFIG_CRASH_DUMP is not set |
273 | CONFIG_SPARSE_IRQ=y | ||
243 | CONFIG_MAX_ACTIVE_REGIONS=32 | 274 | CONFIG_MAX_ACTIVE_REGIONS=32 |
244 | CONFIG_ARCH_FLATMEM_ENABLE=y | 275 | CONFIG_ARCH_FLATMEM_ENABLE=y |
245 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 276 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -252,8 +283,6 @@ CONFIG_MIGRATION=y | |||
252 | CONFIG_ZONE_DMA_FLAG=1 | 283 | CONFIG_ZONE_DMA_FLAG=1 |
253 | CONFIG_BOUNCE=y | 284 | CONFIG_BOUNCE=y |
254 | CONFIG_VIRT_TO_BUS=y | 285 | CONFIG_VIRT_TO_BUS=y |
255 | CONFIG_HAVE_MLOCK=y | ||
256 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
257 | # CONFIG_KSM is not set | 286 | # CONFIG_KSM is not set |
258 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 287 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
259 | CONFIG_PPC_4K_PAGES=y | 288 | CONFIG_PPC_4K_PAGES=y |
@@ -403,9 +432,6 @@ CONFIG_NETFILTER_ADVANCED=y | |||
403 | # CONFIG_BT is not set | 432 | # CONFIG_BT is not set |
404 | CONFIG_WIRELESS=y | 433 | CONFIG_WIRELESS=y |
405 | # CONFIG_CFG80211 is not set | 434 | # CONFIG_CFG80211 is not set |
406 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
407 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
408 | # CONFIG_WIRELESS_EXT is not set | ||
409 | # CONFIG_LIB80211 is not set | 435 | # CONFIG_LIB80211 is not set |
410 | 436 | ||
411 | # | 437 | # |
@@ -526,6 +552,10 @@ CONFIG_BLK_DEV=y | |||
526 | # CONFIG_BLK_DEV_COW_COMMON is not set | 552 | # CONFIG_BLK_DEV_COW_COMMON is not set |
527 | CONFIG_BLK_DEV_LOOP=y | 553 | CONFIG_BLK_DEV_LOOP=y |
528 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 554 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
555 | |||
556 | # | ||
557 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
558 | # | ||
529 | # CONFIG_BLK_DEV_NBD is not set | 559 | # CONFIG_BLK_DEV_NBD is not set |
530 | # CONFIG_BLK_DEV_SX8 is not set | 560 | # CONFIG_BLK_DEV_SX8 is not set |
531 | # CONFIG_BLK_DEV_RAM is not set | 561 | # CONFIG_BLK_DEV_RAM is not set |
@@ -556,7 +586,7 @@ CONFIG_HAVE_IDE=y | |||
556 | # | 586 | # |
557 | 587 | ||
558 | # | 588 | # |
559 | # See the help texts for more information. | 589 | # The newer stack is recommended. |
560 | # | 590 | # |
561 | # CONFIG_FIREWIRE is not set | 591 | # CONFIG_FIREWIRE is not set |
562 | # CONFIG_IEEE1394 is not set | 592 | # CONFIG_IEEE1394 is not set |
@@ -661,8 +691,9 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
661 | # CONFIG_BE2NET is not set | 691 | # CONFIG_BE2NET is not set |
662 | # CONFIG_TR is not set | 692 | # CONFIG_TR is not set |
663 | CONFIG_WLAN=y | 693 | CONFIG_WLAN=y |
664 | # CONFIG_WLAN_PRE80211 is not set | 694 | # CONFIG_AIRO is not set |
665 | # CONFIG_WLAN_80211 is not set | 695 | # CONFIG_ATMEL is not set |
696 | # CONFIG_HOSTAP is not set | ||
666 | 697 | ||
667 | # | 698 | # |
668 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 699 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -679,6 +710,7 @@ CONFIG_PPP_DEFLATE=y | |||
679 | CONFIG_SLHC=y | 710 | CONFIG_SLHC=y |
680 | # CONFIG_NETPOLL is not set | 711 | # CONFIG_NETPOLL is not set |
681 | # CONFIG_NET_POLL_CONTROLLER is not set | 712 | # CONFIG_NET_POLL_CONTROLLER is not set |
713 | # CONFIG_VMXNET3 is not set | ||
682 | # CONFIG_ISDN is not set | 714 | # CONFIG_ISDN is not set |
683 | # CONFIG_PHONE is not set | 715 | # CONFIG_PHONE is not set |
684 | 716 | ||
@@ -688,6 +720,7 @@ CONFIG_SLHC=y | |||
688 | CONFIG_INPUT=y | 720 | CONFIG_INPUT=y |
689 | # CONFIG_INPUT_FF_MEMLESS is not set | 721 | # CONFIG_INPUT_FF_MEMLESS is not set |
690 | # CONFIG_INPUT_POLLDEV is not set | 722 | # CONFIG_INPUT_POLLDEV is not set |
723 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
691 | 724 | ||
692 | # | 725 | # |
693 | # Userland interfaces | 726 | # Userland interfaces |
@@ -740,6 +773,7 @@ CONFIG_SERIO_SERPORT=y | |||
740 | CONFIG_SERIO_LIBPS2=y | 773 | CONFIG_SERIO_LIBPS2=y |
741 | # CONFIG_SERIO_RAW is not set | 774 | # CONFIG_SERIO_RAW is not set |
742 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 775 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
776 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
743 | # CONFIG_GAMEPORT is not set | 777 | # CONFIG_GAMEPORT is not set |
744 | 778 | ||
745 | # | 779 | # |
@@ -763,6 +797,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
763 | CONFIG_SERIAL_CPM=y | 797 | CONFIG_SERIAL_CPM=y |
764 | CONFIG_SERIAL_CPM_CONSOLE=y | 798 | CONFIG_SERIAL_CPM_CONSOLE=y |
765 | # CONFIG_SERIAL_JSM is not set | 799 | # CONFIG_SERIAL_JSM is not set |
800 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
766 | CONFIG_UNIX98_PTYS=y | 801 | CONFIG_UNIX98_PTYS=y |
767 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 802 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
768 | CONFIG_LEGACY_PTYS=y | 803 | CONFIG_LEGACY_PTYS=y |
@@ -799,6 +834,7 @@ CONFIG_GPIOLIB=y | |||
799 | # | 834 | # |
800 | # PCI GPIO expanders: | 835 | # PCI GPIO expanders: |
801 | # | 836 | # |
837 | # CONFIG_GPIO_CS5535 is not set | ||
802 | # CONFIG_GPIO_BT8XX is not set | 838 | # CONFIG_GPIO_BT8XX is not set |
803 | # CONFIG_GPIO_LANGWELL is not set | 839 | # CONFIG_GPIO_LANGWELL is not set |
804 | 840 | ||
@@ -1131,7 +1167,11 @@ CONFIG_BDI_SWITCH=y | |||
1131 | # CONFIG_KEYS is not set | 1167 | # CONFIG_KEYS is not set |
1132 | # CONFIG_SECURITY is not set | 1168 | # CONFIG_SECURITY is not set |
1133 | # CONFIG_SECURITYFS is not set | 1169 | # CONFIG_SECURITYFS is not set |
1134 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1170 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1171 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1172 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1173 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1174 | CONFIG_DEFAULT_SECURITY="" | ||
1135 | CONFIG_CRYPTO=y | 1175 | CONFIG_CRYPTO=y |
1136 | 1176 | ||
1137 | # | 1177 | # |
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig index 64dff21516c..05bec483568 100644 --- a/arch/powerpc/configs/mpc83xx_defconfig +++ b/arch/powerpc/configs/mpc83xx_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:12 2009 | 4 | # Wed Jan 6 09:24:06 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -37,6 +37,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 37 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 38 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
39 | CONFIG_IRQ_PER_CPU=y | 39 | CONFIG_IRQ_PER_CPU=y |
40 | CONFIG_NR_IRQS=512 | ||
40 | CONFIG_STACKTRACE_SUPPORT=y | 41 | CONFIG_STACKTRACE_SUPPORT=y |
41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -61,6 +62,7 @@ CONFIG_GENERIC_BUG=y | |||
61 | CONFIG_DTC=y | 62 | CONFIG_DTC=y |
62 | CONFIG_DEFAULT_UIMAGE=y | 63 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_REDBOOT=y | 64 | CONFIG_REDBOOT=y |
65 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
64 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 66 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
65 | # CONFIG_PPC_DCR_NATIVE is not set | 67 | # CONFIG_PPC_DCR_NATIVE is not set |
66 | # CONFIG_PPC_DCR_MMIO is not set | 68 | # CONFIG_PPC_DCR_MMIO is not set |
@@ -89,6 +91,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
89 | # | 91 | # |
90 | CONFIG_TREE_RCU=y | 92 | CONFIG_TREE_RCU=y |
91 | # CONFIG_TREE_PREEMPT_RCU is not set | 93 | # CONFIG_TREE_PREEMPT_RCU is not set |
94 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | 95 | # CONFIG_RCU_TRACE is not set |
93 | CONFIG_RCU_FANOUT=32 | 96 | CONFIG_RCU_FANOUT=32 |
94 | # CONFIG_RCU_FANOUT_EXACT is not set | 97 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -176,14 +179,41 @@ CONFIG_LBDAF=y | |||
176 | # IO Schedulers | 179 | # IO Schedulers |
177 | # | 180 | # |
178 | CONFIG_IOSCHED_NOOP=y | 181 | CONFIG_IOSCHED_NOOP=y |
179 | CONFIG_IOSCHED_AS=y | ||
180 | CONFIG_IOSCHED_DEADLINE=y | 182 | CONFIG_IOSCHED_DEADLINE=y |
181 | CONFIG_IOSCHED_CFQ=y | 183 | CONFIG_IOSCHED_CFQ=y |
182 | CONFIG_DEFAULT_AS=y | ||
183 | # CONFIG_DEFAULT_DEADLINE is not set | 184 | # CONFIG_DEFAULT_DEADLINE is not set |
184 | # CONFIG_DEFAULT_CFQ is not set | 185 | CONFIG_DEFAULT_CFQ=y |
185 | # CONFIG_DEFAULT_NOOP is not set | 186 | # CONFIG_DEFAULT_NOOP is not set |
186 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 187 | CONFIG_DEFAULT_IOSCHED="cfq" |
188 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
189 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
192 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
193 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
196 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
197 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
198 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
199 | # CONFIG_INLINE_READ_LOCK is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
205 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
206 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
207 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
214 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
215 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
216 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
187 | # CONFIG_FREEZER is not set | 217 | # CONFIG_FREEZER is not set |
188 | 218 | ||
189 | # | 219 | # |
@@ -266,6 +296,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
266 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 296 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
267 | # CONFIG_KEXEC is not set | 297 | # CONFIG_KEXEC is not set |
268 | # CONFIG_CRASH_DUMP is not set | 298 | # CONFIG_CRASH_DUMP is not set |
299 | CONFIG_SPARSE_IRQ=y | ||
269 | CONFIG_MAX_ACTIVE_REGIONS=32 | 300 | CONFIG_MAX_ACTIVE_REGIONS=32 |
270 | CONFIG_ARCH_FLATMEM_ENABLE=y | 301 | CONFIG_ARCH_FLATMEM_ENABLE=y |
271 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 302 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -282,8 +313,6 @@ CONFIG_MIGRATION=y | |||
282 | CONFIG_ZONE_DMA_FLAG=1 | 313 | CONFIG_ZONE_DMA_FLAG=1 |
283 | CONFIG_BOUNCE=y | 314 | CONFIG_BOUNCE=y |
284 | CONFIG_VIRT_TO_BUS=y | 315 | CONFIG_VIRT_TO_BUS=y |
285 | CONFIG_HAVE_MLOCK=y | ||
286 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
287 | # CONFIG_KSM is not set | 316 | # CONFIG_KSM is not set |
288 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 317 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
289 | CONFIG_PPC_4K_PAGES=y | 318 | CONFIG_PPC_4K_PAGES=y |
@@ -413,9 +442,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
413 | # CONFIG_AF_RXRPC is not set | 442 | # CONFIG_AF_RXRPC is not set |
414 | CONFIG_WIRELESS=y | 443 | CONFIG_WIRELESS=y |
415 | # CONFIG_CFG80211 is not set | 444 | # CONFIG_CFG80211 is not set |
416 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
417 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
418 | # CONFIG_WIRELESS_EXT is not set | ||
419 | # CONFIG_LIB80211 is not set | 445 | # CONFIG_LIB80211 is not set |
420 | 446 | ||
421 | # | 447 | # |
@@ -548,6 +574,10 @@ CONFIG_BLK_DEV=y | |||
548 | # CONFIG_BLK_DEV_COW_COMMON is not set | 574 | # CONFIG_BLK_DEV_COW_COMMON is not set |
549 | CONFIG_BLK_DEV_LOOP=y | 575 | CONFIG_BLK_DEV_LOOP=y |
550 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 576 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
577 | |||
578 | # | ||
579 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
580 | # | ||
551 | # CONFIG_BLK_DEV_NBD is not set | 581 | # CONFIG_BLK_DEV_NBD is not set |
552 | # CONFIG_BLK_DEV_SX8 is not set | 582 | # CONFIG_BLK_DEV_SX8 is not set |
553 | # CONFIG_BLK_DEV_UB is not set | 583 | # CONFIG_BLK_DEV_UB is not set |
@@ -559,6 +589,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
559 | # CONFIG_ATA_OVER_ETH is not set | 589 | # CONFIG_ATA_OVER_ETH is not set |
560 | # CONFIG_BLK_DEV_HD is not set | 590 | # CONFIG_BLK_DEV_HD is not set |
561 | CONFIG_MISC_DEVICES=y | 591 | CONFIG_MISC_DEVICES=y |
592 | # CONFIG_AD525X_DPOT is not set | ||
562 | # CONFIG_PHANTOM is not set | 593 | # CONFIG_PHANTOM is not set |
563 | # CONFIG_SGI_IOC4 is not set | 594 | # CONFIG_SGI_IOC4 is not set |
564 | # CONFIG_TIFM_CORE is not set | 595 | # CONFIG_TIFM_CORE is not set |
@@ -566,6 +597,7 @@ CONFIG_MISC_DEVICES=y | |||
566 | # CONFIG_ENCLOSURE_SERVICES is not set | 597 | # CONFIG_ENCLOSURE_SERVICES is not set |
567 | # CONFIG_HP_ILO is not set | 598 | # CONFIG_HP_ILO is not set |
568 | # CONFIG_ISL29003 is not set | 599 | # CONFIG_ISL29003 is not set |
600 | # CONFIG_DS1682 is not set | ||
569 | # CONFIG_C2PORT is not set | 601 | # CONFIG_C2PORT is not set |
570 | 602 | ||
571 | # | 603 | # |
@@ -618,7 +650,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
618 | # CONFIG_SCSI_BNX2_ISCSI is not set | 650 | # CONFIG_SCSI_BNX2_ISCSI is not set |
619 | # CONFIG_BE2ISCSI is not set | 651 | # CONFIG_BE2ISCSI is not set |
620 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 652 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
653 | # CONFIG_SCSI_HPSA is not set | ||
621 | # CONFIG_SCSI_3W_9XXX is not set | 654 | # CONFIG_SCSI_3W_9XXX is not set |
655 | # CONFIG_SCSI_3W_SAS is not set | ||
622 | # CONFIG_SCSI_ACARD is not set | 656 | # CONFIG_SCSI_ACARD is not set |
623 | # CONFIG_SCSI_AACRAID is not set | 657 | # CONFIG_SCSI_AACRAID is not set |
624 | # CONFIG_SCSI_AIC7XXX is not set | 658 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -657,6 +691,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
657 | # CONFIG_SCSI_NSP32 is not set | 691 | # CONFIG_SCSI_NSP32 is not set |
658 | # CONFIG_SCSI_DEBUG is not set | 692 | # CONFIG_SCSI_DEBUG is not set |
659 | # CONFIG_SCSI_PMCRAID is not set | 693 | # CONFIG_SCSI_PMCRAID is not set |
694 | # CONFIG_SCSI_PM8001 is not set | ||
660 | # CONFIG_SCSI_SRP is not set | 695 | # CONFIG_SCSI_SRP is not set |
661 | # CONFIG_SCSI_BFA_FC is not set | 696 | # CONFIG_SCSI_BFA_FC is not set |
662 | # CONFIG_SCSI_DH is not set | 697 | # CONFIG_SCSI_DH is not set |
@@ -712,15 +747,16 @@ CONFIG_ATA_SFF=y | |||
712 | # CONFIG_PATA_NS87415 is not set | 747 | # CONFIG_PATA_NS87415 is not set |
713 | # CONFIG_PATA_OPTI is not set | 748 | # CONFIG_PATA_OPTI is not set |
714 | # CONFIG_PATA_OPTIDMA is not set | 749 | # CONFIG_PATA_OPTIDMA is not set |
750 | # CONFIG_PATA_PDC2027X is not set | ||
715 | # CONFIG_PATA_PDC_OLD is not set | 751 | # CONFIG_PATA_PDC_OLD is not set |
716 | # CONFIG_PATA_RADISYS is not set | 752 | # CONFIG_PATA_RADISYS is not set |
717 | # CONFIG_PATA_RDC is not set | 753 | # CONFIG_PATA_RDC is not set |
718 | # CONFIG_PATA_RZ1000 is not set | 754 | # CONFIG_PATA_RZ1000 is not set |
719 | # CONFIG_PATA_SC1200 is not set | 755 | # CONFIG_PATA_SC1200 is not set |
720 | # CONFIG_PATA_SERVERWORKS is not set | 756 | # CONFIG_PATA_SERVERWORKS is not set |
721 | # CONFIG_PATA_PDC2027X is not set | ||
722 | # CONFIG_PATA_SIL680 is not set | 757 | # CONFIG_PATA_SIL680 is not set |
723 | # CONFIG_PATA_SIS is not set | 758 | # CONFIG_PATA_SIS is not set |
759 | # CONFIG_PATA_TOSHIBA is not set | ||
724 | # CONFIG_PATA_VIA is not set | 760 | # CONFIG_PATA_VIA is not set |
725 | # CONFIG_PATA_WINBOND is not set | 761 | # CONFIG_PATA_WINBOND is not set |
726 | # CONFIG_PATA_PLATFORM is not set | 762 | # CONFIG_PATA_PLATFORM is not set |
@@ -737,7 +773,7 @@ CONFIG_ATA_SFF=y | |||
737 | # | 773 | # |
738 | 774 | ||
739 | # | 775 | # |
740 | # See the help texts for more information. | 776 | # The newer stack is recommended. |
741 | # | 777 | # |
742 | # CONFIG_FIREWIRE is not set | 778 | # CONFIG_FIREWIRE is not set |
743 | # CONFIG_IEEE1394 is not set | 779 | # CONFIG_IEEE1394 is not set |
@@ -844,8 +880,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
844 | # CONFIG_BE2NET is not set | 880 | # CONFIG_BE2NET is not set |
845 | # CONFIG_TR is not set | 881 | # CONFIG_TR is not set |
846 | CONFIG_WLAN=y | 882 | CONFIG_WLAN=y |
847 | # CONFIG_WLAN_PRE80211 is not set | 883 | # CONFIG_AIRO is not set |
848 | # CONFIG_WLAN_80211 is not set | 884 | # CONFIG_ATMEL is not set |
885 | # CONFIG_PRISM54 is not set | ||
886 | # CONFIG_USB_ZD1201 is not set | ||
887 | # CONFIG_HOSTAP is not set | ||
849 | 888 | ||
850 | # | 889 | # |
851 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 890 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -868,6 +907,7 @@ CONFIG_WLAN=y | |||
868 | # CONFIG_NETCONSOLE is not set | 907 | # CONFIG_NETCONSOLE is not set |
869 | # CONFIG_NETPOLL is not set | 908 | # CONFIG_NETPOLL is not set |
870 | # CONFIG_NET_POLL_CONTROLLER is not set | 909 | # CONFIG_NET_POLL_CONTROLLER is not set |
910 | # CONFIG_VMXNET3 is not set | ||
871 | # CONFIG_ISDN is not set | 911 | # CONFIG_ISDN is not set |
872 | # CONFIG_PHONE is not set | 912 | # CONFIG_PHONE is not set |
873 | 913 | ||
@@ -877,6 +917,7 @@ CONFIG_WLAN=y | |||
877 | CONFIG_INPUT=y | 917 | CONFIG_INPUT=y |
878 | CONFIG_INPUT_FF_MEMLESS=m | 918 | CONFIG_INPUT_FF_MEMLESS=m |
879 | # CONFIG_INPUT_POLLDEV is not set | 919 | # CONFIG_INPUT_POLLDEV is not set |
920 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
880 | 921 | ||
881 | # | 922 | # |
882 | # Userland interfaces | 923 | # Userland interfaces |
@@ -929,6 +970,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
929 | # CONFIG_SERIAL_JSM is not set | 970 | # CONFIG_SERIAL_JSM is not set |
930 | # CONFIG_SERIAL_OF_PLATFORM is not set | 971 | # CONFIG_SERIAL_OF_PLATFORM is not set |
931 | # CONFIG_SERIAL_QE is not set | 972 | # CONFIG_SERIAL_QE is not set |
973 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
932 | CONFIG_UNIX98_PTYS=y | 974 | CONFIG_UNIX98_PTYS=y |
933 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 975 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
934 | CONFIG_LEGACY_PTYS=y | 976 | CONFIG_LEGACY_PTYS=y |
@@ -989,11 +1031,6 @@ CONFIG_I2C_MPC=y | |||
989 | # CONFIG_I2C_TINY_USB is not set | 1031 | # CONFIG_I2C_TINY_USB is not set |
990 | 1032 | ||
991 | # | 1033 | # |
992 | # Graphics adapter I2C/DDC channel drivers | ||
993 | # | ||
994 | # CONFIG_I2C_VOODOO3 is not set | ||
995 | |||
996 | # | ||
997 | # Other I2C/SMBus bus drivers | 1034 | # Other I2C/SMBus bus drivers |
998 | # | 1035 | # |
999 | # CONFIG_I2C_PCA_PLATFORM is not set | 1036 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -1002,7 +1039,6 @@ CONFIG_I2C_MPC=y | |||
1002 | # | 1039 | # |
1003 | # Miscellaneous I2C Chip support | 1040 | # Miscellaneous I2C Chip support |
1004 | # | 1041 | # |
1005 | # CONFIG_DS1682 is not set | ||
1006 | # CONFIG_SENSORS_TSL2550 is not set | 1042 | # CONFIG_SENSORS_TSL2550 is not set |
1007 | # CONFIG_I2C_DEBUG_CORE is not set | 1043 | # CONFIG_I2C_DEBUG_CORE is not set |
1008 | # CONFIG_I2C_DEBUG_ALGO is not set | 1044 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1034,6 +1070,7 @@ CONFIG_GPIOLIB=y | |||
1034 | # | 1070 | # |
1035 | # PCI GPIO expanders: | 1071 | # PCI GPIO expanders: |
1036 | # | 1072 | # |
1073 | # CONFIG_GPIO_CS5535 is not set | ||
1037 | # CONFIG_GPIO_BT8XX is not set | 1074 | # CONFIG_GPIO_BT8XX is not set |
1038 | # CONFIG_GPIO_LANGWELL is not set | 1075 | # CONFIG_GPIO_LANGWELL is not set |
1039 | 1076 | ||
@@ -1076,6 +1113,7 @@ CONFIG_HWMON=y | |||
1076 | # CONFIG_SENSORS_GL520SM is not set | 1113 | # CONFIG_SENSORS_GL520SM is not set |
1077 | # CONFIG_SENSORS_IT87 is not set | 1114 | # CONFIG_SENSORS_IT87 is not set |
1078 | # CONFIG_SENSORS_LM63 is not set | 1115 | # CONFIG_SENSORS_LM63 is not set |
1116 | # CONFIG_SENSORS_LM73 is not set | ||
1079 | # CONFIG_SENSORS_LM75 is not set | 1117 | # CONFIG_SENSORS_LM75 is not set |
1080 | # CONFIG_SENSORS_LM77 is not set | 1118 | # CONFIG_SENSORS_LM77 is not set |
1081 | # CONFIG_SENSORS_LM78 is not set | 1119 | # CONFIG_SENSORS_LM78 is not set |
@@ -1115,6 +1153,7 @@ CONFIG_HWMON=y | |||
1115 | # CONFIG_SENSORS_W83L786NG is not set | 1153 | # CONFIG_SENSORS_W83L786NG is not set |
1116 | # CONFIG_SENSORS_W83627HF is not set | 1154 | # CONFIG_SENSORS_W83627HF is not set |
1117 | # CONFIG_SENSORS_W83627EHF is not set | 1155 | # CONFIG_SENSORS_W83627EHF is not set |
1156 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1118 | # CONFIG_THERMAL is not set | 1157 | # CONFIG_THERMAL is not set |
1119 | CONFIG_WATCHDOG=y | 1158 | CONFIG_WATCHDOG=y |
1120 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1159 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
@@ -1153,11 +1192,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1153 | # CONFIG_TWL4030_CORE is not set | 1192 | # CONFIG_TWL4030_CORE is not set |
1154 | # CONFIG_MFD_TMIO is not set | 1193 | # CONFIG_MFD_TMIO is not set |
1155 | # CONFIG_PMIC_DA903X is not set | 1194 | # CONFIG_PMIC_DA903X is not set |
1195 | # CONFIG_PMIC_ADP5520 is not set | ||
1156 | # CONFIG_MFD_WM8400 is not set | 1196 | # CONFIG_MFD_WM8400 is not set |
1157 | # CONFIG_MFD_WM831X is not set | 1197 | # CONFIG_MFD_WM831X is not set |
1158 | # CONFIG_MFD_WM8350_I2C is not set | 1198 | # CONFIG_MFD_WM8350_I2C is not set |
1159 | # CONFIG_MFD_PCF50633 is not set | 1199 | # CONFIG_MFD_PCF50633 is not set |
1160 | # CONFIG_AB3100_CORE is not set | 1200 | # CONFIG_AB3100_CORE is not set |
1201 | # CONFIG_MFD_88PM8607 is not set | ||
1161 | # CONFIG_REGULATOR is not set | 1202 | # CONFIG_REGULATOR is not set |
1162 | # CONFIG_MEDIA_SUPPORT is not set | 1203 | # CONFIG_MEDIA_SUPPORT is not set |
1163 | 1204 | ||
@@ -1249,6 +1290,7 @@ CONFIG_USB_MON=y | |||
1249 | CONFIG_USB_EHCI_HCD=y | 1290 | CONFIG_USB_EHCI_HCD=y |
1250 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1291 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1251 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1292 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1293 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1252 | CONFIG_USB_EHCI_FSL=y | 1294 | CONFIG_USB_EHCI_FSL=y |
1253 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1295 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1254 | # CONFIG_USB_OXU210HP_HCD is not set | 1296 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1542,7 +1584,7 @@ CONFIG_FRAME_WARN=1024 | |||
1542 | # CONFIG_DEBUG_FS is not set | 1584 | # CONFIG_DEBUG_FS is not set |
1543 | # CONFIG_HEADERS_CHECK is not set | 1585 | # CONFIG_HEADERS_CHECK is not set |
1544 | # CONFIG_DEBUG_KERNEL is not set | 1586 | # CONFIG_DEBUG_KERNEL is not set |
1545 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1587 | CONFIG_DEBUG_BUGVERBOSE=y |
1546 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1588 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1547 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1589 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1548 | # CONFIG_LATENCYTOP is not set | 1590 | # CONFIG_LATENCYTOP is not set |
@@ -1569,7 +1611,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1569 | # CONFIG_KEYS is not set | 1611 | # CONFIG_KEYS is not set |
1570 | # CONFIG_SECURITY is not set | 1612 | # CONFIG_SECURITY is not set |
1571 | # CONFIG_SECURITYFS is not set | 1613 | # CONFIG_SECURITYFS is not set |
1572 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1614 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1615 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1616 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1617 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1618 | CONFIG_DEFAULT_SECURITY="" | ||
1573 | CONFIG_CRYPTO=y | 1619 | CONFIG_CRYPTO=y |
1574 | 1620 | ||
1575 | # | 1621 | # |
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig index a12e7ba87a4..8f35f8049c9 100644 --- a/arch/powerpc/configs/mpc85xx_defconfig +++ b/arch/powerpc/configs/mpc85xx_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:25:20 2009 | 4 | # Wed Jan 6 09:24:06 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -39,6 +39,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 39 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 40 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
41 | CONFIG_IRQ_PER_CPU=y | 41 | CONFIG_IRQ_PER_CPU=y |
42 | CONFIG_NR_IRQS=512 | ||
42 | CONFIG_STACKTRACE_SUPPORT=y | 43 | CONFIG_STACKTRACE_SUPPORT=y |
43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -62,6 +63,8 @@ CONFIG_AUDIT_ARCH=y | |||
62 | CONFIG_GENERIC_BUG=y | 63 | CONFIG_GENERIC_BUG=y |
63 | CONFIG_DTC=y | 64 | CONFIG_DTC=y |
64 | CONFIG_DEFAULT_UIMAGE=y | 65 | CONFIG_DEFAULT_UIMAGE=y |
66 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
67 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
65 | # CONFIG_PPC_DCR_NATIVE is not set | 68 | # CONFIG_PPC_DCR_NATIVE is not set |
66 | # CONFIG_PPC_DCR_MMIO is not set | 69 | # CONFIG_PPC_DCR_MMIO is not set |
67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 70 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -92,6 +95,7 @@ CONFIG_AUDIT=y | |||
92 | # | 95 | # |
93 | CONFIG_TREE_RCU=y | 96 | CONFIG_TREE_RCU=y |
94 | # CONFIG_TREE_PREEMPT_RCU is not set | 97 | # CONFIG_TREE_PREEMPT_RCU is not set |
98 | # CONFIG_TINY_RCU is not set | ||
95 | # CONFIG_RCU_TRACE is not set | 99 | # CONFIG_RCU_TRACE is not set |
96 | CONFIG_RCU_FANOUT=32 | 100 | CONFIG_RCU_FANOUT=32 |
97 | # CONFIG_RCU_FANOUT_EXACT is not set | 101 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -184,14 +188,41 @@ CONFIG_LBDAF=y | |||
184 | # IO Schedulers | 188 | # IO Schedulers |
185 | # | 189 | # |
186 | CONFIG_IOSCHED_NOOP=y | 190 | CONFIG_IOSCHED_NOOP=y |
187 | CONFIG_IOSCHED_AS=y | ||
188 | CONFIG_IOSCHED_DEADLINE=y | 191 | CONFIG_IOSCHED_DEADLINE=y |
189 | CONFIG_IOSCHED_CFQ=y | 192 | CONFIG_IOSCHED_CFQ=y |
190 | # CONFIG_DEFAULT_AS is not set | ||
191 | # CONFIG_DEFAULT_DEADLINE is not set | 193 | # CONFIG_DEFAULT_DEADLINE is not set |
192 | CONFIG_DEFAULT_CFQ=y | 194 | CONFIG_DEFAULT_CFQ=y |
193 | # CONFIG_DEFAULT_NOOP is not set | 195 | # CONFIG_DEFAULT_NOOP is not set |
194 | CONFIG_DEFAULT_IOSCHED="cfq" | 196 | CONFIG_DEFAULT_IOSCHED="cfq" |
197 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
198 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
199 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
200 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
201 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
202 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
203 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
204 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
205 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
206 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
207 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
208 | # CONFIG_INLINE_READ_LOCK is not set | ||
209 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
210 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
211 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
212 | CONFIG_INLINE_READ_UNLOCK=y | ||
213 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
214 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
215 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
216 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
217 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
218 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
219 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
220 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
221 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
222 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
223 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
224 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
225 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
195 | # CONFIG_FREEZER is not set | 226 | # CONFIG_FREEZER is not set |
196 | CONFIG_PPC_MSI_BITMAP=y | 227 | CONFIG_PPC_MSI_BITMAP=y |
197 | 228 | ||
@@ -201,7 +232,7 @@ CONFIG_PPC_MSI_BITMAP=y | |||
201 | # CONFIG_PPC_CELL is not set | 232 | # CONFIG_PPC_CELL is not set |
202 | # CONFIG_PPC_CELL_NATIVE is not set | 233 | # CONFIG_PPC_CELL_NATIVE is not set |
203 | # CONFIG_PQ2ADS is not set | 234 | # CONFIG_PQ2ADS is not set |
204 | CONFIG_MPC85xx=y | 235 | CONFIG_FSL_SOC_BOOKE=y |
205 | CONFIG_MPC8540_ADS=y | 236 | CONFIG_MPC8540_ADS=y |
206 | CONFIG_MPC8560_ADS=y | 237 | CONFIG_MPC8560_ADS=y |
207 | CONFIG_MPC85xx_CDS=y | 238 | CONFIG_MPC85xx_CDS=y |
@@ -220,6 +251,7 @@ CONFIG_TQM8555=y | |||
220 | CONFIG_TQM8560=y | 251 | CONFIG_TQM8560=y |
221 | CONFIG_SBC8548=y | 252 | CONFIG_SBC8548=y |
222 | # CONFIG_SBC8560 is not set | 253 | # CONFIG_SBC8560 is not set |
254 | # CONFIG_P4080_DS is not set | ||
223 | CONFIG_TQM85xx=y | 255 | CONFIG_TQM85xx=y |
224 | # CONFIG_IPIC is not set | 256 | # CONFIG_IPIC is not set |
225 | CONFIG_MPIC=y | 257 | CONFIG_MPIC=y |
@@ -267,6 +299,7 @@ CONFIG_SWIOTLB=y | |||
267 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 299 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
268 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 300 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
269 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 301 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
302 | CONFIG_SPARSE_IRQ=y | ||
270 | CONFIG_MAX_ACTIVE_REGIONS=32 | 303 | CONFIG_MAX_ACTIVE_REGIONS=32 |
271 | CONFIG_ARCH_FLATMEM_ENABLE=y | 304 | CONFIG_ARCH_FLATMEM_ENABLE=y |
272 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 305 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -283,8 +316,6 @@ CONFIG_MIGRATION=y | |||
283 | CONFIG_ZONE_DMA_FLAG=1 | 316 | CONFIG_ZONE_DMA_FLAG=1 |
284 | CONFIG_BOUNCE=y | 317 | CONFIG_BOUNCE=y |
285 | CONFIG_VIRT_TO_BUS=y | 318 | CONFIG_VIRT_TO_BUS=y |
286 | CONFIG_HAVE_MLOCK=y | ||
287 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
288 | # CONFIG_KSM is not set | 319 | # CONFIG_KSM is not set |
289 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 320 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
290 | CONFIG_PPC_4K_PAGES=y | 321 | CONFIG_PPC_4K_PAGES=y |
@@ -405,6 +436,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y | |||
405 | CONFIG_INET6_XFRM_MODE_BEET=y | 436 | CONFIG_INET6_XFRM_MODE_BEET=y |
406 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 437 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
407 | CONFIG_IPV6_SIT=y | 438 | CONFIG_IPV6_SIT=y |
439 | # CONFIG_IPV6_SIT_6RD is not set | ||
408 | CONFIG_IPV6_NDISC_NODETYPE=y | 440 | CONFIG_IPV6_NDISC_NODETYPE=y |
409 | # CONFIG_IPV6_TUNNEL is not set | 441 | # CONFIG_IPV6_TUNNEL is not set |
410 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 442 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -449,9 +481,6 @@ CONFIG_SCTP_HMAC_MD5=y | |||
449 | CONFIG_FIB_RULES=y | 481 | CONFIG_FIB_RULES=y |
450 | CONFIG_WIRELESS=y | 482 | CONFIG_WIRELESS=y |
451 | # CONFIG_CFG80211 is not set | 483 | # CONFIG_CFG80211 is not set |
452 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
453 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
454 | # CONFIG_WIRELESS_EXT is not set | ||
455 | # CONFIG_LIB80211 is not set | 484 | # CONFIG_LIB80211 is not set |
456 | 485 | ||
457 | # | 486 | # |
@@ -494,6 +523,10 @@ CONFIG_BLK_DEV=y | |||
494 | # CONFIG_BLK_DEV_COW_COMMON is not set | 523 | # CONFIG_BLK_DEV_COW_COMMON is not set |
495 | CONFIG_BLK_DEV_LOOP=y | 524 | CONFIG_BLK_DEV_LOOP=y |
496 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 525 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
526 | |||
527 | # | ||
528 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
529 | # | ||
497 | CONFIG_BLK_DEV_NBD=y | 530 | CONFIG_BLK_DEV_NBD=y |
498 | # CONFIG_BLK_DEV_SX8 is not set | 531 | # CONFIG_BLK_DEV_SX8 is not set |
499 | # CONFIG_BLK_DEV_UB is not set | 532 | # CONFIG_BLK_DEV_UB is not set |
@@ -505,6 +538,7 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 | |||
505 | # CONFIG_ATA_OVER_ETH is not set | 538 | # CONFIG_ATA_OVER_ETH is not set |
506 | # CONFIG_BLK_DEV_HD is not set | 539 | # CONFIG_BLK_DEV_HD is not set |
507 | CONFIG_MISC_DEVICES=y | 540 | CONFIG_MISC_DEVICES=y |
541 | # CONFIG_AD525X_DPOT is not set | ||
508 | # CONFIG_PHANTOM is not set | 542 | # CONFIG_PHANTOM is not set |
509 | # CONFIG_SGI_IOC4 is not set | 543 | # CONFIG_SGI_IOC4 is not set |
510 | # CONFIG_TIFM_CORE is not set | 544 | # CONFIG_TIFM_CORE is not set |
@@ -512,6 +546,7 @@ CONFIG_MISC_DEVICES=y | |||
512 | # CONFIG_ENCLOSURE_SERVICES is not set | 546 | # CONFIG_ENCLOSURE_SERVICES is not set |
513 | # CONFIG_HP_ILO is not set | 547 | # CONFIG_HP_ILO is not set |
514 | # CONFIG_ISL29003 is not set | 548 | # CONFIG_ISL29003 is not set |
549 | # CONFIG_DS1682 is not set | ||
515 | # CONFIG_C2PORT is not set | 550 | # CONFIG_C2PORT is not set |
516 | 551 | ||
517 | # | 552 | # |
@@ -565,7 +600,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
565 | # CONFIG_SCSI_BNX2_ISCSI is not set | 600 | # CONFIG_SCSI_BNX2_ISCSI is not set |
566 | # CONFIG_BE2ISCSI is not set | 601 | # CONFIG_BE2ISCSI is not set |
567 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 602 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
603 | # CONFIG_SCSI_HPSA is not set | ||
568 | # CONFIG_SCSI_3W_9XXX is not set | 604 | # CONFIG_SCSI_3W_9XXX is not set |
605 | # CONFIG_SCSI_3W_SAS is not set | ||
569 | # CONFIG_SCSI_ACARD is not set | 606 | # CONFIG_SCSI_ACARD is not set |
570 | # CONFIG_SCSI_AACRAID is not set | 607 | # CONFIG_SCSI_AACRAID is not set |
571 | # CONFIG_SCSI_AIC7XXX is not set | 608 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -604,6 +641,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
604 | # CONFIG_SCSI_NSP32 is not set | 641 | # CONFIG_SCSI_NSP32 is not set |
605 | # CONFIG_SCSI_DEBUG is not set | 642 | # CONFIG_SCSI_DEBUG is not set |
606 | # CONFIG_SCSI_PMCRAID is not set | 643 | # CONFIG_SCSI_PMCRAID is not set |
644 | # CONFIG_SCSI_PM8001 is not set | ||
607 | # CONFIG_SCSI_SRP is not set | 645 | # CONFIG_SCSI_SRP is not set |
608 | # CONFIG_SCSI_BFA_FC is not set | 646 | # CONFIG_SCSI_BFA_FC is not set |
609 | # CONFIG_SCSI_DH is not set | 647 | # CONFIG_SCSI_DH is not set |
@@ -659,15 +697,16 @@ CONFIG_PATA_ALI=y | |||
659 | # CONFIG_PATA_NS87415 is not set | 697 | # CONFIG_PATA_NS87415 is not set |
660 | # CONFIG_PATA_OPTI is not set | 698 | # CONFIG_PATA_OPTI is not set |
661 | # CONFIG_PATA_OPTIDMA is not set | 699 | # CONFIG_PATA_OPTIDMA is not set |
700 | # CONFIG_PATA_PDC2027X is not set | ||
662 | # CONFIG_PATA_PDC_OLD is not set | 701 | # CONFIG_PATA_PDC_OLD is not set |
663 | # CONFIG_PATA_RADISYS is not set | 702 | # CONFIG_PATA_RADISYS is not set |
664 | # CONFIG_PATA_RDC is not set | 703 | # CONFIG_PATA_RDC is not set |
665 | # CONFIG_PATA_RZ1000 is not set | 704 | # CONFIG_PATA_RZ1000 is not set |
666 | # CONFIG_PATA_SC1200 is not set | 705 | # CONFIG_PATA_SC1200 is not set |
667 | # CONFIG_PATA_SERVERWORKS is not set | 706 | # CONFIG_PATA_SERVERWORKS is not set |
668 | # CONFIG_PATA_PDC2027X is not set | ||
669 | # CONFIG_PATA_SIL680 is not set | 707 | # CONFIG_PATA_SIL680 is not set |
670 | # CONFIG_PATA_SIS is not set | 708 | # CONFIG_PATA_SIS is not set |
709 | # CONFIG_PATA_TOSHIBA is not set | ||
671 | # CONFIG_PATA_VIA is not set | 710 | # CONFIG_PATA_VIA is not set |
672 | # CONFIG_PATA_WINBOND is not set | 711 | # CONFIG_PATA_WINBOND is not set |
673 | # CONFIG_PATA_PLATFORM is not set | 712 | # CONFIG_PATA_PLATFORM is not set |
@@ -684,7 +723,7 @@ CONFIG_PATA_ALI=y | |||
684 | # | 723 | # |
685 | 724 | ||
686 | # | 725 | # |
687 | # See the help texts for more information. | 726 | # The newer stack is recommended. |
688 | # | 727 | # |
689 | # CONFIG_FIREWIRE is not set | 728 | # CONFIG_FIREWIRE is not set |
690 | # CONFIG_IEEE1394 is not set | 729 | # CONFIG_IEEE1394 is not set |
@@ -795,8 +834,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
795 | # CONFIG_BE2NET is not set | 834 | # CONFIG_BE2NET is not set |
796 | # CONFIG_TR is not set | 835 | # CONFIG_TR is not set |
797 | CONFIG_WLAN=y | 836 | CONFIG_WLAN=y |
798 | # CONFIG_WLAN_PRE80211 is not set | 837 | # CONFIG_AIRO is not set |
799 | # CONFIG_WLAN_80211 is not set | 838 | # CONFIG_ATMEL is not set |
839 | # CONFIG_PRISM54 is not set | ||
840 | # CONFIG_USB_ZD1201 is not set | ||
841 | # CONFIG_HOSTAP is not set | ||
800 | 842 | ||
801 | # | 843 | # |
802 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 844 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -820,6 +862,7 @@ CONFIG_WLAN=y | |||
820 | # CONFIG_NETCONSOLE is not set | 862 | # CONFIG_NETCONSOLE is not set |
821 | # CONFIG_NETPOLL is not set | 863 | # CONFIG_NETPOLL is not set |
822 | # CONFIG_NET_POLL_CONTROLLER is not set | 864 | # CONFIG_NET_POLL_CONTROLLER is not set |
865 | # CONFIG_VMXNET3 is not set | ||
823 | # CONFIG_ISDN is not set | 866 | # CONFIG_ISDN is not set |
824 | # CONFIG_PHONE is not set | 867 | # CONFIG_PHONE is not set |
825 | 868 | ||
@@ -829,6 +872,7 @@ CONFIG_WLAN=y | |||
829 | CONFIG_INPUT=y | 872 | CONFIG_INPUT=y |
830 | CONFIG_INPUT_FF_MEMLESS=m | 873 | CONFIG_INPUT_FF_MEMLESS=m |
831 | # CONFIG_INPUT_POLLDEV is not set | 874 | # CONFIG_INPUT_POLLDEV is not set |
875 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
832 | 876 | ||
833 | # | 877 | # |
834 | # Userland interfaces | 878 | # Userland interfaces |
@@ -858,6 +902,7 @@ CONFIG_SERIO_SERPORT=y | |||
858 | CONFIG_SERIO_LIBPS2=y | 902 | CONFIG_SERIO_LIBPS2=y |
859 | # CONFIG_SERIO_RAW is not set | 903 | # CONFIG_SERIO_RAW is not set |
860 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 904 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
905 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
861 | # CONFIG_GAMEPORT is not set | 906 | # CONFIG_GAMEPORT is not set |
862 | 907 | ||
863 | # | 908 | # |
@@ -896,6 +941,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
896 | # CONFIG_SERIAL_JSM is not set | 941 | # CONFIG_SERIAL_JSM is not set |
897 | # CONFIG_SERIAL_OF_PLATFORM is not set | 942 | # CONFIG_SERIAL_OF_PLATFORM is not set |
898 | CONFIG_SERIAL_QE=m | 943 | CONFIG_SERIAL_QE=m |
944 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
899 | CONFIG_UNIX98_PTYS=y | 945 | CONFIG_UNIX98_PTYS=y |
900 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 946 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
901 | CONFIG_LEGACY_PTYS=y | 947 | CONFIG_LEGACY_PTYS=y |
@@ -956,11 +1002,6 @@ CONFIG_I2C_MPC=y | |||
956 | # CONFIG_I2C_TINY_USB is not set | 1002 | # CONFIG_I2C_TINY_USB is not set |
957 | 1003 | ||
958 | # | 1004 | # |
959 | # Graphics adapter I2C/DDC channel drivers | ||
960 | # | ||
961 | # CONFIG_I2C_VOODOO3 is not set | ||
962 | |||
963 | # | ||
964 | # Other I2C/SMBus bus drivers | 1005 | # Other I2C/SMBus bus drivers |
965 | # | 1006 | # |
966 | # CONFIG_I2C_PCA_PLATFORM is not set | 1007 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -969,7 +1010,6 @@ CONFIG_I2C_MPC=y | |||
969 | # | 1010 | # |
970 | # Miscellaneous I2C Chip support | 1011 | # Miscellaneous I2C Chip support |
971 | # | 1012 | # |
972 | # CONFIG_DS1682 is not set | ||
973 | # CONFIG_SENSORS_TSL2550 is not set | 1013 | # CONFIG_SENSORS_TSL2550 is not set |
974 | # CONFIG_I2C_DEBUG_CORE is not set | 1014 | # CONFIG_I2C_DEBUG_CORE is not set |
975 | # CONFIG_I2C_DEBUG_ALGO is not set | 1015 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1002,6 +1042,7 @@ CONFIG_GPIOLIB=y | |||
1002 | # | 1042 | # |
1003 | # PCI GPIO expanders: | 1043 | # PCI GPIO expanders: |
1004 | # | 1044 | # |
1045 | # CONFIG_GPIO_CS5535 is not set | ||
1005 | # CONFIG_GPIO_BT8XX is not set | 1046 | # CONFIG_GPIO_BT8XX is not set |
1006 | # CONFIG_GPIO_LANGWELL is not set | 1047 | # CONFIG_GPIO_LANGWELL is not set |
1007 | 1048 | ||
@@ -1035,11 +1076,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1035 | # CONFIG_TWL4030_CORE is not set | 1076 | # CONFIG_TWL4030_CORE is not set |
1036 | # CONFIG_MFD_TMIO is not set | 1077 | # CONFIG_MFD_TMIO is not set |
1037 | # CONFIG_PMIC_DA903X is not set | 1078 | # CONFIG_PMIC_DA903X is not set |
1079 | # CONFIG_PMIC_ADP5520 is not set | ||
1038 | # CONFIG_MFD_WM8400 is not set | 1080 | # CONFIG_MFD_WM8400 is not set |
1039 | # CONFIG_MFD_WM831X is not set | 1081 | # CONFIG_MFD_WM831X is not set |
1040 | # CONFIG_MFD_WM8350_I2C is not set | 1082 | # CONFIG_MFD_WM8350_I2C is not set |
1041 | # CONFIG_MFD_PCF50633 is not set | 1083 | # CONFIG_MFD_PCF50633 is not set |
1042 | # CONFIG_AB3100_CORE is not set | 1084 | # CONFIG_AB3100_CORE is not set |
1085 | # CONFIG_MFD_88PM8607 is not set | ||
1043 | # CONFIG_REGULATOR is not set | 1086 | # CONFIG_REGULATOR is not set |
1044 | # CONFIG_MEDIA_SUPPORT is not set | 1087 | # CONFIG_MEDIA_SUPPORT is not set |
1045 | 1088 | ||
@@ -1114,6 +1157,7 @@ CONFIG_SND_PCI=y | |||
1114 | # CONFIG_SND_CS4281 is not set | 1157 | # CONFIG_SND_CS4281 is not set |
1115 | # CONFIG_SND_CS46XX is not set | 1158 | # CONFIG_SND_CS46XX is not set |
1116 | # CONFIG_SND_CS5530 is not set | 1159 | # CONFIG_SND_CS5530 is not set |
1160 | # CONFIG_SND_CS5535AUDIO is not set | ||
1117 | # CONFIG_SND_CTXFI is not set | 1161 | # CONFIG_SND_CTXFI is not set |
1118 | # CONFIG_SND_DARLA20 is not set | 1162 | # CONFIG_SND_DARLA20 is not set |
1119 | # CONFIG_SND_GINA20 is not set | 1163 | # CONFIG_SND_GINA20 is not set |
@@ -1241,6 +1285,7 @@ CONFIG_USB_MON=y | |||
1241 | CONFIG_USB_EHCI_HCD=y | 1285 | CONFIG_USB_EHCI_HCD=y |
1242 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1286 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1243 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1287 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1288 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1244 | CONFIG_USB_EHCI_FSL=y | 1289 | CONFIG_USB_EHCI_FSL=y |
1245 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1290 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1246 | # CONFIG_USB_OXU210HP_HCD is not set | 1291 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1347,7 +1392,6 @@ CONFIG_EDAC=y | |||
1347 | # | 1392 | # |
1348 | # CONFIG_EDAC_DEBUG is not set | 1393 | # CONFIG_EDAC_DEBUG is not set |
1349 | CONFIG_EDAC_MM_EDAC=y | 1394 | CONFIG_EDAC_MM_EDAC=y |
1350 | CONFIG_EDAC_MPC85XX=y | ||
1351 | CONFIG_RTC_LIB=y | 1395 | CONFIG_RTC_LIB=y |
1352 | CONFIG_RTC_CLASS=y | 1396 | CONFIG_RTC_CLASS=y |
1353 | CONFIG_RTC_HCTOSYS=y | 1397 | CONFIG_RTC_HCTOSYS=y |
@@ -1376,6 +1420,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1376 | # CONFIG_RTC_DRV_PCF8563 is not set | 1420 | # CONFIG_RTC_DRV_PCF8563 is not set |
1377 | # CONFIG_RTC_DRV_PCF8583 is not set | 1421 | # CONFIG_RTC_DRV_PCF8583 is not set |
1378 | # CONFIG_RTC_DRV_M41T80 is not set | 1422 | # CONFIG_RTC_DRV_M41T80 is not set |
1423 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1379 | # CONFIG_RTC_DRV_S35390A is not set | 1424 | # CONFIG_RTC_DRV_S35390A is not set |
1380 | # CONFIG_RTC_DRV_FM3130 is not set | 1425 | # CONFIG_RTC_DRV_FM3130 is not set |
1381 | # CONFIG_RTC_DRV_RX8581 is not set | 1426 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1397,7 +1442,9 @@ CONFIG_RTC_DRV_CMOS=y | |||
1397 | # CONFIG_RTC_DRV_M48T86 is not set | 1442 | # CONFIG_RTC_DRV_M48T86 is not set |
1398 | # CONFIG_RTC_DRV_M48T35 is not set | 1443 | # CONFIG_RTC_DRV_M48T35 is not set |
1399 | # CONFIG_RTC_DRV_M48T59 is not set | 1444 | # CONFIG_RTC_DRV_M48T59 is not set |
1445 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1400 | # CONFIG_RTC_DRV_BQ4802 is not set | 1446 | # CONFIG_RTC_DRV_BQ4802 is not set |
1447 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1401 | # CONFIG_RTC_DRV_V3020 is not set | 1448 | # CONFIG_RTC_DRV_V3020 is not set |
1402 | 1449 | ||
1403 | # | 1450 | # |
@@ -1731,7 +1778,11 @@ CONFIG_VIRQ_DEBUG=y | |||
1731 | # CONFIG_KEYS is not set | 1778 | # CONFIG_KEYS is not set |
1732 | # CONFIG_SECURITY is not set | 1779 | # CONFIG_SECURITY is not set |
1733 | # CONFIG_SECURITYFS is not set | 1780 | # CONFIG_SECURITYFS is not set |
1734 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1781 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1782 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1783 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1784 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1785 | CONFIG_DEFAULT_SECURITY="" | ||
1735 | CONFIG_CRYPTO=y | 1786 | CONFIG_CRYPTO=y |
1736 | 1787 | ||
1737 | # | 1788 | # |
diff --git a/arch/powerpc/configs/mpc85xx_smp_defconfig b/arch/powerpc/configs/mpc85xx_smp_defconfig index cd70b4a4ce0..8755ea3c7f5 100644 --- a/arch/powerpc/configs/mpc85xx_smp_defconfig +++ b/arch/powerpc/configs/mpc85xx_smp_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:26:01 2009 | 4 | # Wed Jan 6 09:24:07 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,9 +16,9 @@ CONFIG_PPC_85xx=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_E500=y | 17 | CONFIG_E500=y |
18 | # CONFIG_PPC_E500MC is not set | 18 | # CONFIG_PPC_E500MC is not set |
19 | CONFIG_FSL_EMB_PERFMON=y | ||
19 | CONFIG_BOOKE=y | 20 | CONFIG_BOOKE=y |
20 | CONFIG_FSL_BOOKE=y | 21 | CONFIG_FSL_BOOKE=y |
21 | CONFIG_FSL_EMB_PERFMON=y | ||
22 | # CONFIG_PHYS_64BIT is not set | 22 | # CONFIG_PHYS_64BIT is not set |
23 | CONFIG_SPE=y | 23 | CONFIG_SPE=y |
24 | CONFIG_PPC_MMU_NOHASH=y | 24 | CONFIG_PPC_MMU_NOHASH=y |
@@ -40,6 +40,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
40 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 40 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
41 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 41 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
42 | CONFIG_IRQ_PER_CPU=y | 42 | CONFIG_IRQ_PER_CPU=y |
43 | CONFIG_NR_IRQS=512 | ||
43 | CONFIG_STACKTRACE_SUPPORT=y | 44 | CONFIG_STACKTRACE_SUPPORT=y |
44 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 45 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
45 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 46 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -63,6 +64,8 @@ CONFIG_AUDIT_ARCH=y | |||
63 | CONFIG_GENERIC_BUG=y | 64 | CONFIG_GENERIC_BUG=y |
64 | CONFIG_DTC=y | 65 | CONFIG_DTC=y |
65 | CONFIG_DEFAULT_UIMAGE=y | 66 | CONFIG_DEFAULT_UIMAGE=y |
67 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
68 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
66 | # CONFIG_PPC_DCR_NATIVE is not set | 69 | # CONFIG_PPC_DCR_NATIVE is not set |
67 | # CONFIG_PPC_DCR_MMIO is not set | 70 | # CONFIG_PPC_DCR_MMIO is not set |
68 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 71 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -93,6 +96,7 @@ CONFIG_AUDIT=y | |||
93 | # | 96 | # |
94 | CONFIG_TREE_RCU=y | 97 | CONFIG_TREE_RCU=y |
95 | # CONFIG_TREE_PREEMPT_RCU is not set | 98 | # CONFIG_TREE_PREEMPT_RCU is not set |
99 | # CONFIG_TINY_RCU is not set | ||
96 | # CONFIG_RCU_TRACE is not set | 100 | # CONFIG_RCU_TRACE is not set |
97 | CONFIG_RCU_FANOUT=32 | 101 | CONFIG_RCU_FANOUT=32 |
98 | # CONFIG_RCU_FANOUT_EXACT is not set | 102 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -187,14 +191,41 @@ CONFIG_LBDAF=y | |||
187 | # IO Schedulers | 191 | # IO Schedulers |
188 | # | 192 | # |
189 | CONFIG_IOSCHED_NOOP=y | 193 | CONFIG_IOSCHED_NOOP=y |
190 | CONFIG_IOSCHED_AS=y | ||
191 | CONFIG_IOSCHED_DEADLINE=y | 194 | CONFIG_IOSCHED_DEADLINE=y |
192 | CONFIG_IOSCHED_CFQ=y | 195 | CONFIG_IOSCHED_CFQ=y |
193 | # CONFIG_DEFAULT_AS is not set | ||
194 | # CONFIG_DEFAULT_DEADLINE is not set | 196 | # CONFIG_DEFAULT_DEADLINE is not set |
195 | CONFIG_DEFAULT_CFQ=y | 197 | CONFIG_DEFAULT_CFQ=y |
196 | # CONFIG_DEFAULT_NOOP is not set | 198 | # CONFIG_DEFAULT_NOOP is not set |
197 | CONFIG_DEFAULT_IOSCHED="cfq" | 199 | CONFIG_DEFAULT_IOSCHED="cfq" |
200 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
201 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
202 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
203 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
204 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
205 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
206 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
207 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
208 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
209 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
210 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
211 | # CONFIG_INLINE_READ_LOCK is not set | ||
212 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
213 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
214 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
215 | CONFIG_INLINE_READ_UNLOCK=y | ||
216 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
217 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
218 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
219 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
220 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
221 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
222 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
223 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
224 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
225 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
226 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
227 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
228 | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||
198 | # CONFIG_FREEZER is not set | 229 | # CONFIG_FREEZER is not set |
199 | CONFIG_PPC_MSI_BITMAP=y | 230 | CONFIG_PPC_MSI_BITMAP=y |
200 | 231 | ||
@@ -204,7 +235,7 @@ CONFIG_PPC_MSI_BITMAP=y | |||
204 | # CONFIG_PPC_CELL is not set | 235 | # CONFIG_PPC_CELL is not set |
205 | # CONFIG_PPC_CELL_NATIVE is not set | 236 | # CONFIG_PPC_CELL_NATIVE is not set |
206 | # CONFIG_PQ2ADS is not set | 237 | # CONFIG_PQ2ADS is not set |
207 | CONFIG_MPC85xx=y | 238 | CONFIG_FSL_SOC_BOOKE=y |
208 | CONFIG_MPC8540_ADS=y | 239 | CONFIG_MPC8540_ADS=y |
209 | CONFIG_MPC8560_ADS=y | 240 | CONFIG_MPC8560_ADS=y |
210 | CONFIG_MPC85xx_CDS=y | 241 | CONFIG_MPC85xx_CDS=y |
@@ -223,6 +254,7 @@ CONFIG_TQM8555=y | |||
223 | CONFIG_TQM8560=y | 254 | CONFIG_TQM8560=y |
224 | CONFIG_SBC8548=y | 255 | CONFIG_SBC8548=y |
225 | # CONFIG_SBC8560 is not set | 256 | # CONFIG_SBC8560 is not set |
257 | # CONFIG_P4080_DS is not set | ||
226 | CONFIG_TQM85xx=y | 258 | CONFIG_TQM85xx=y |
227 | # CONFIG_IPIC is not set | 259 | # CONFIG_IPIC is not set |
228 | CONFIG_MPIC=y | 260 | CONFIG_MPIC=y |
@@ -271,6 +303,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | |||
271 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 303 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
272 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 304 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
273 | # CONFIG_IRQ_ALL_CPUS is not set | 305 | # CONFIG_IRQ_ALL_CPUS is not set |
306 | CONFIG_SPARSE_IRQ=y | ||
274 | CONFIG_MAX_ACTIVE_REGIONS=32 | 307 | CONFIG_MAX_ACTIVE_REGIONS=32 |
275 | CONFIG_ARCH_FLATMEM_ENABLE=y | 308 | CONFIG_ARCH_FLATMEM_ENABLE=y |
276 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 309 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -287,8 +320,6 @@ CONFIG_MIGRATION=y | |||
287 | CONFIG_ZONE_DMA_FLAG=1 | 320 | CONFIG_ZONE_DMA_FLAG=1 |
288 | CONFIG_BOUNCE=y | 321 | CONFIG_BOUNCE=y |
289 | CONFIG_VIRT_TO_BUS=y | 322 | CONFIG_VIRT_TO_BUS=y |
290 | CONFIG_HAVE_MLOCK=y | ||
291 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
292 | # CONFIG_KSM is not set | 323 | # CONFIG_KSM is not set |
293 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 324 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
294 | CONFIG_PPC_4K_PAGES=y | 325 | CONFIG_PPC_4K_PAGES=y |
@@ -409,6 +440,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y | |||
409 | CONFIG_INET6_XFRM_MODE_BEET=y | 440 | CONFIG_INET6_XFRM_MODE_BEET=y |
410 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 441 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
411 | CONFIG_IPV6_SIT=y | 442 | CONFIG_IPV6_SIT=y |
443 | # CONFIG_IPV6_SIT_6RD is not set | ||
412 | CONFIG_IPV6_NDISC_NODETYPE=y | 444 | CONFIG_IPV6_NDISC_NODETYPE=y |
413 | # CONFIG_IPV6_TUNNEL is not set | 445 | # CONFIG_IPV6_TUNNEL is not set |
414 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 446 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -453,9 +485,6 @@ CONFIG_SCTP_HMAC_MD5=y | |||
453 | CONFIG_FIB_RULES=y | 485 | CONFIG_FIB_RULES=y |
454 | CONFIG_WIRELESS=y | 486 | CONFIG_WIRELESS=y |
455 | # CONFIG_CFG80211 is not set | 487 | # CONFIG_CFG80211 is not set |
456 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
457 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
458 | # CONFIG_WIRELESS_EXT is not set | ||
459 | # CONFIG_LIB80211 is not set | 488 | # CONFIG_LIB80211 is not set |
460 | 489 | ||
461 | # | 490 | # |
@@ -498,6 +527,10 @@ CONFIG_BLK_DEV=y | |||
498 | # CONFIG_BLK_DEV_COW_COMMON is not set | 527 | # CONFIG_BLK_DEV_COW_COMMON is not set |
499 | CONFIG_BLK_DEV_LOOP=y | 528 | CONFIG_BLK_DEV_LOOP=y |
500 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 529 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
530 | |||
531 | # | ||
532 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
533 | # | ||
501 | CONFIG_BLK_DEV_NBD=y | 534 | CONFIG_BLK_DEV_NBD=y |
502 | # CONFIG_BLK_DEV_SX8 is not set | 535 | # CONFIG_BLK_DEV_SX8 is not set |
503 | # CONFIG_BLK_DEV_UB is not set | 536 | # CONFIG_BLK_DEV_UB is not set |
@@ -509,6 +542,7 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 | |||
509 | # CONFIG_ATA_OVER_ETH is not set | 542 | # CONFIG_ATA_OVER_ETH is not set |
510 | # CONFIG_BLK_DEV_HD is not set | 543 | # CONFIG_BLK_DEV_HD is not set |
511 | CONFIG_MISC_DEVICES=y | 544 | CONFIG_MISC_DEVICES=y |
545 | # CONFIG_AD525X_DPOT is not set | ||
512 | # CONFIG_PHANTOM is not set | 546 | # CONFIG_PHANTOM is not set |
513 | # CONFIG_SGI_IOC4 is not set | 547 | # CONFIG_SGI_IOC4 is not set |
514 | # CONFIG_TIFM_CORE is not set | 548 | # CONFIG_TIFM_CORE is not set |
@@ -516,6 +550,7 @@ CONFIG_MISC_DEVICES=y | |||
516 | # CONFIG_ENCLOSURE_SERVICES is not set | 550 | # CONFIG_ENCLOSURE_SERVICES is not set |
517 | # CONFIG_HP_ILO is not set | 551 | # CONFIG_HP_ILO is not set |
518 | # CONFIG_ISL29003 is not set | 552 | # CONFIG_ISL29003 is not set |
553 | # CONFIG_DS1682 is not set | ||
519 | # CONFIG_C2PORT is not set | 554 | # CONFIG_C2PORT is not set |
520 | 555 | ||
521 | # | 556 | # |
@@ -569,7 +604,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
569 | # CONFIG_SCSI_BNX2_ISCSI is not set | 604 | # CONFIG_SCSI_BNX2_ISCSI is not set |
570 | # CONFIG_BE2ISCSI is not set | 605 | # CONFIG_BE2ISCSI is not set |
571 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 606 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
607 | # CONFIG_SCSI_HPSA is not set | ||
572 | # CONFIG_SCSI_3W_9XXX is not set | 608 | # CONFIG_SCSI_3W_9XXX is not set |
609 | # CONFIG_SCSI_3W_SAS is not set | ||
573 | # CONFIG_SCSI_ACARD is not set | 610 | # CONFIG_SCSI_ACARD is not set |
574 | # CONFIG_SCSI_AACRAID is not set | 611 | # CONFIG_SCSI_AACRAID is not set |
575 | # CONFIG_SCSI_AIC7XXX is not set | 612 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -608,6 +645,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
608 | # CONFIG_SCSI_NSP32 is not set | 645 | # CONFIG_SCSI_NSP32 is not set |
609 | # CONFIG_SCSI_DEBUG is not set | 646 | # CONFIG_SCSI_DEBUG is not set |
610 | # CONFIG_SCSI_PMCRAID is not set | 647 | # CONFIG_SCSI_PMCRAID is not set |
648 | # CONFIG_SCSI_PM8001 is not set | ||
611 | # CONFIG_SCSI_SRP is not set | 649 | # CONFIG_SCSI_SRP is not set |
612 | # CONFIG_SCSI_BFA_FC is not set | 650 | # CONFIG_SCSI_BFA_FC is not set |
613 | # CONFIG_SCSI_DH is not set | 651 | # CONFIG_SCSI_DH is not set |
@@ -663,15 +701,16 @@ CONFIG_PATA_ALI=y | |||
663 | # CONFIG_PATA_NS87415 is not set | 701 | # CONFIG_PATA_NS87415 is not set |
664 | # CONFIG_PATA_OPTI is not set | 702 | # CONFIG_PATA_OPTI is not set |
665 | # CONFIG_PATA_OPTIDMA is not set | 703 | # CONFIG_PATA_OPTIDMA is not set |
704 | # CONFIG_PATA_PDC2027X is not set | ||
666 | # CONFIG_PATA_PDC_OLD is not set | 705 | # CONFIG_PATA_PDC_OLD is not set |
667 | # CONFIG_PATA_RADISYS is not set | 706 | # CONFIG_PATA_RADISYS is not set |
668 | # CONFIG_PATA_RDC is not set | 707 | # CONFIG_PATA_RDC is not set |
669 | # CONFIG_PATA_RZ1000 is not set | 708 | # CONFIG_PATA_RZ1000 is not set |
670 | # CONFIG_PATA_SC1200 is not set | 709 | # CONFIG_PATA_SC1200 is not set |
671 | # CONFIG_PATA_SERVERWORKS is not set | 710 | # CONFIG_PATA_SERVERWORKS is not set |
672 | # CONFIG_PATA_PDC2027X is not set | ||
673 | # CONFIG_PATA_SIL680 is not set | 711 | # CONFIG_PATA_SIL680 is not set |
674 | # CONFIG_PATA_SIS is not set | 712 | # CONFIG_PATA_SIS is not set |
713 | # CONFIG_PATA_TOSHIBA is not set | ||
675 | # CONFIG_PATA_VIA is not set | 714 | # CONFIG_PATA_VIA is not set |
676 | # CONFIG_PATA_WINBOND is not set | 715 | # CONFIG_PATA_WINBOND is not set |
677 | # CONFIG_PATA_PLATFORM is not set | 716 | # CONFIG_PATA_PLATFORM is not set |
@@ -688,7 +727,7 @@ CONFIG_PATA_ALI=y | |||
688 | # | 727 | # |
689 | 728 | ||
690 | # | 729 | # |
691 | # See the help texts for more information. | 730 | # The newer stack is recommended. |
692 | # | 731 | # |
693 | # CONFIG_FIREWIRE is not set | 732 | # CONFIG_FIREWIRE is not set |
694 | # CONFIG_IEEE1394 is not set | 733 | # CONFIG_IEEE1394 is not set |
@@ -799,8 +838,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
799 | # CONFIG_BE2NET is not set | 838 | # CONFIG_BE2NET is not set |
800 | # CONFIG_TR is not set | 839 | # CONFIG_TR is not set |
801 | CONFIG_WLAN=y | 840 | CONFIG_WLAN=y |
802 | # CONFIG_WLAN_PRE80211 is not set | 841 | # CONFIG_AIRO is not set |
803 | # CONFIG_WLAN_80211 is not set | 842 | # CONFIG_ATMEL is not set |
843 | # CONFIG_PRISM54 is not set | ||
844 | # CONFIG_USB_ZD1201 is not set | ||
845 | # CONFIG_HOSTAP is not set | ||
804 | 846 | ||
805 | # | 847 | # |
806 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 848 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -824,6 +866,7 @@ CONFIG_WLAN=y | |||
824 | # CONFIG_NETCONSOLE is not set | 866 | # CONFIG_NETCONSOLE is not set |
825 | # CONFIG_NETPOLL is not set | 867 | # CONFIG_NETPOLL is not set |
826 | # CONFIG_NET_POLL_CONTROLLER is not set | 868 | # CONFIG_NET_POLL_CONTROLLER is not set |
869 | # CONFIG_VMXNET3 is not set | ||
827 | # CONFIG_ISDN is not set | 870 | # CONFIG_ISDN is not set |
828 | # CONFIG_PHONE is not set | 871 | # CONFIG_PHONE is not set |
829 | 872 | ||
@@ -833,6 +876,7 @@ CONFIG_WLAN=y | |||
833 | CONFIG_INPUT=y | 876 | CONFIG_INPUT=y |
834 | CONFIG_INPUT_FF_MEMLESS=m | 877 | CONFIG_INPUT_FF_MEMLESS=m |
835 | # CONFIG_INPUT_POLLDEV is not set | 878 | # CONFIG_INPUT_POLLDEV is not set |
879 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
836 | 880 | ||
837 | # | 881 | # |
838 | # Userland interfaces | 882 | # Userland interfaces |
@@ -862,6 +906,7 @@ CONFIG_SERIO_SERPORT=y | |||
862 | CONFIG_SERIO_LIBPS2=y | 906 | CONFIG_SERIO_LIBPS2=y |
863 | # CONFIG_SERIO_RAW is not set | 907 | # CONFIG_SERIO_RAW is not set |
864 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 908 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
909 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
865 | # CONFIG_GAMEPORT is not set | 910 | # CONFIG_GAMEPORT is not set |
866 | 911 | ||
867 | # | 912 | # |
@@ -900,6 +945,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
900 | # CONFIG_SERIAL_JSM is not set | 945 | # CONFIG_SERIAL_JSM is not set |
901 | # CONFIG_SERIAL_OF_PLATFORM is not set | 946 | # CONFIG_SERIAL_OF_PLATFORM is not set |
902 | CONFIG_SERIAL_QE=m | 947 | CONFIG_SERIAL_QE=m |
948 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
903 | CONFIG_UNIX98_PTYS=y | 949 | CONFIG_UNIX98_PTYS=y |
904 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 950 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
905 | CONFIG_LEGACY_PTYS=y | 951 | CONFIG_LEGACY_PTYS=y |
@@ -960,11 +1006,6 @@ CONFIG_I2C_MPC=y | |||
960 | # CONFIG_I2C_TINY_USB is not set | 1006 | # CONFIG_I2C_TINY_USB is not set |
961 | 1007 | ||
962 | # | 1008 | # |
963 | # Graphics adapter I2C/DDC channel drivers | ||
964 | # | ||
965 | # CONFIG_I2C_VOODOO3 is not set | ||
966 | |||
967 | # | ||
968 | # Other I2C/SMBus bus drivers | 1009 | # Other I2C/SMBus bus drivers |
969 | # | 1010 | # |
970 | # CONFIG_I2C_PCA_PLATFORM is not set | 1011 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -973,7 +1014,6 @@ CONFIG_I2C_MPC=y | |||
973 | # | 1014 | # |
974 | # Miscellaneous I2C Chip support | 1015 | # Miscellaneous I2C Chip support |
975 | # | 1016 | # |
976 | # CONFIG_DS1682 is not set | ||
977 | # CONFIG_SENSORS_TSL2550 is not set | 1017 | # CONFIG_SENSORS_TSL2550 is not set |
978 | # CONFIG_I2C_DEBUG_CORE is not set | 1018 | # CONFIG_I2C_DEBUG_CORE is not set |
979 | # CONFIG_I2C_DEBUG_ALGO is not set | 1019 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1006,6 +1046,7 @@ CONFIG_GPIOLIB=y | |||
1006 | # | 1046 | # |
1007 | # PCI GPIO expanders: | 1047 | # PCI GPIO expanders: |
1008 | # | 1048 | # |
1049 | # CONFIG_GPIO_CS5535 is not set | ||
1009 | # CONFIG_GPIO_BT8XX is not set | 1050 | # CONFIG_GPIO_BT8XX is not set |
1010 | # CONFIG_GPIO_LANGWELL is not set | 1051 | # CONFIG_GPIO_LANGWELL is not set |
1011 | 1052 | ||
@@ -1039,11 +1080,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1039 | # CONFIG_TWL4030_CORE is not set | 1080 | # CONFIG_TWL4030_CORE is not set |
1040 | # CONFIG_MFD_TMIO is not set | 1081 | # CONFIG_MFD_TMIO is not set |
1041 | # CONFIG_PMIC_DA903X is not set | 1082 | # CONFIG_PMIC_DA903X is not set |
1083 | # CONFIG_PMIC_ADP5520 is not set | ||
1042 | # CONFIG_MFD_WM8400 is not set | 1084 | # CONFIG_MFD_WM8400 is not set |
1043 | # CONFIG_MFD_WM831X is not set | 1085 | # CONFIG_MFD_WM831X is not set |
1044 | # CONFIG_MFD_WM8350_I2C is not set | 1086 | # CONFIG_MFD_WM8350_I2C is not set |
1045 | # CONFIG_MFD_PCF50633 is not set | 1087 | # CONFIG_MFD_PCF50633 is not set |
1046 | # CONFIG_AB3100_CORE is not set | 1088 | # CONFIG_AB3100_CORE is not set |
1089 | # CONFIG_MFD_88PM8607 is not set | ||
1047 | # CONFIG_REGULATOR is not set | 1090 | # CONFIG_REGULATOR is not set |
1048 | # CONFIG_MEDIA_SUPPORT is not set | 1091 | # CONFIG_MEDIA_SUPPORT is not set |
1049 | 1092 | ||
@@ -1118,6 +1161,7 @@ CONFIG_SND_PCI=y | |||
1118 | # CONFIG_SND_CS4281 is not set | 1161 | # CONFIG_SND_CS4281 is not set |
1119 | # CONFIG_SND_CS46XX is not set | 1162 | # CONFIG_SND_CS46XX is not set |
1120 | # CONFIG_SND_CS5530 is not set | 1163 | # CONFIG_SND_CS5530 is not set |
1164 | # CONFIG_SND_CS5535AUDIO is not set | ||
1121 | # CONFIG_SND_CTXFI is not set | 1165 | # CONFIG_SND_CTXFI is not set |
1122 | # CONFIG_SND_DARLA20 is not set | 1166 | # CONFIG_SND_DARLA20 is not set |
1123 | # CONFIG_SND_GINA20 is not set | 1167 | # CONFIG_SND_GINA20 is not set |
@@ -1245,6 +1289,7 @@ CONFIG_USB_MON=y | |||
1245 | CONFIG_USB_EHCI_HCD=y | 1289 | CONFIG_USB_EHCI_HCD=y |
1246 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1290 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1247 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1291 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1292 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1248 | CONFIG_USB_EHCI_FSL=y | 1293 | CONFIG_USB_EHCI_FSL=y |
1249 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1294 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1250 | # CONFIG_USB_OXU210HP_HCD is not set | 1295 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1351,7 +1396,6 @@ CONFIG_EDAC=y | |||
1351 | # | 1396 | # |
1352 | # CONFIG_EDAC_DEBUG is not set | 1397 | # CONFIG_EDAC_DEBUG is not set |
1353 | CONFIG_EDAC_MM_EDAC=y | 1398 | CONFIG_EDAC_MM_EDAC=y |
1354 | CONFIG_EDAC_MPC85XX=y | ||
1355 | CONFIG_RTC_LIB=y | 1399 | CONFIG_RTC_LIB=y |
1356 | CONFIG_RTC_CLASS=y | 1400 | CONFIG_RTC_CLASS=y |
1357 | CONFIG_RTC_HCTOSYS=y | 1401 | CONFIG_RTC_HCTOSYS=y |
@@ -1380,6 +1424,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1380 | # CONFIG_RTC_DRV_PCF8563 is not set | 1424 | # CONFIG_RTC_DRV_PCF8563 is not set |
1381 | # CONFIG_RTC_DRV_PCF8583 is not set | 1425 | # CONFIG_RTC_DRV_PCF8583 is not set |
1382 | # CONFIG_RTC_DRV_M41T80 is not set | 1426 | # CONFIG_RTC_DRV_M41T80 is not set |
1427 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1383 | # CONFIG_RTC_DRV_S35390A is not set | 1428 | # CONFIG_RTC_DRV_S35390A is not set |
1384 | # CONFIG_RTC_DRV_FM3130 is not set | 1429 | # CONFIG_RTC_DRV_FM3130 is not set |
1385 | # CONFIG_RTC_DRV_RX8581 is not set | 1430 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1401,7 +1446,9 @@ CONFIG_RTC_DRV_CMOS=y | |||
1401 | # CONFIG_RTC_DRV_M48T86 is not set | 1446 | # CONFIG_RTC_DRV_M48T86 is not set |
1402 | # CONFIG_RTC_DRV_M48T35 is not set | 1447 | # CONFIG_RTC_DRV_M48T35 is not set |
1403 | # CONFIG_RTC_DRV_M48T59 is not set | 1448 | # CONFIG_RTC_DRV_M48T59 is not set |
1449 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1404 | # CONFIG_RTC_DRV_BQ4802 is not set | 1450 | # CONFIG_RTC_DRV_BQ4802 is not set |
1451 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1405 | # CONFIG_RTC_DRV_V3020 is not set | 1452 | # CONFIG_RTC_DRV_V3020 is not set |
1406 | 1453 | ||
1407 | # | 1454 | # |
@@ -1735,7 +1782,11 @@ CONFIG_VIRQ_DEBUG=y | |||
1735 | # CONFIG_KEYS is not set | 1782 | # CONFIG_KEYS is not set |
1736 | # CONFIG_SECURITY is not set | 1783 | # CONFIG_SECURITY is not set |
1737 | # CONFIG_SECURITYFS is not set | 1784 | # CONFIG_SECURITYFS is not set |
1738 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1785 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1786 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1787 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1788 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1789 | CONFIG_DEFAULT_SECURITY="" | ||
1739 | CONFIG_CRYPTO=y | 1790 | CONFIG_CRYPTO=y |
1740 | 1791 | ||
1741 | # | 1792 | # |
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig index 40d6f0568ca..3f6b11b6f4f 100644 --- a/arch/powerpc/configs/mpc866_ads_defconfig +++ b/arch/powerpc/configs/mpc866_ads_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:15 2009 | 4 | # Wed Jan 6 09:24:08 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
34 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
35 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
36 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
37 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -53,6 +54,7 @@ CONFIG_OF=y | |||
53 | CONFIG_AUDIT_ARCH=y | 54 | CONFIG_AUDIT_ARCH=y |
54 | CONFIG_DTC=y | 55 | CONFIG_DTC=y |
55 | # CONFIG_DEFAULT_UIMAGE is not set | 56 | # CONFIG_DEFAULT_UIMAGE is not set |
57 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
56 | # CONFIG_PPC_DCR_NATIVE is not set | 58 | # CONFIG_PPC_DCR_NATIVE is not set |
57 | # CONFIG_PPC_DCR_MMIO is not set | 59 | # CONFIG_PPC_DCR_MMIO is not set |
58 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 60 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -80,6 +82,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
80 | # | 82 | # |
81 | CONFIG_TREE_RCU=y | 83 | CONFIG_TREE_RCU=y |
82 | # CONFIG_TREE_PREEMPT_RCU is not set | 84 | # CONFIG_TREE_PREEMPT_RCU is not set |
85 | # CONFIG_TINY_RCU is not set | ||
83 | # CONFIG_RCU_TRACE is not set | 86 | # CONFIG_RCU_TRACE is not set |
84 | CONFIG_RCU_FANOUT=32 | 87 | CONFIG_RCU_FANOUT=32 |
85 | # CONFIG_RCU_FANOUT_EXACT is not set | 88 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -158,14 +161,41 @@ CONFIG_LBDAF=y | |||
158 | # IO Schedulers | 161 | # IO Schedulers |
159 | # | 162 | # |
160 | CONFIG_IOSCHED_NOOP=y | 163 | CONFIG_IOSCHED_NOOP=y |
161 | CONFIG_IOSCHED_AS=y | ||
162 | CONFIG_IOSCHED_DEADLINE=y | 164 | CONFIG_IOSCHED_DEADLINE=y |
163 | CONFIG_IOSCHED_CFQ=y | 165 | CONFIG_IOSCHED_CFQ=y |
164 | CONFIG_DEFAULT_AS=y | ||
165 | # CONFIG_DEFAULT_DEADLINE is not set | 166 | # CONFIG_DEFAULT_DEADLINE is not set |
166 | # CONFIG_DEFAULT_CFQ is not set | 167 | CONFIG_DEFAULT_CFQ=y |
167 | # CONFIG_DEFAULT_NOOP is not set | 168 | # CONFIG_DEFAULT_NOOP is not set |
168 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 169 | CONFIG_DEFAULT_IOSCHED="cfq" |
170 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
171 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
172 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
173 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
174 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
175 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
176 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
177 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
178 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
179 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
180 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
181 | # CONFIG_INLINE_READ_LOCK is not set | ||
182 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
183 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
184 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
185 | CONFIG_INLINE_READ_UNLOCK=y | ||
186 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
187 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
188 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
189 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
190 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
191 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
192 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
193 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
194 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
195 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
196 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
197 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
198 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
169 | # CONFIG_FREEZER is not set | 199 | # CONFIG_FREEZER is not set |
170 | 200 | ||
171 | # | 201 | # |
@@ -240,6 +270,7 @@ CONFIG_MATH_EMULATION=y | |||
240 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 270 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
241 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 271 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
242 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 272 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
273 | CONFIG_SPARSE_IRQ=y | ||
243 | CONFIG_MAX_ACTIVE_REGIONS=32 | 274 | CONFIG_MAX_ACTIVE_REGIONS=32 |
244 | CONFIG_ARCH_FLATMEM_ENABLE=y | 275 | CONFIG_ARCH_FLATMEM_ENABLE=y |
245 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 276 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -256,8 +287,6 @@ CONFIG_MIGRATION=y | |||
256 | CONFIG_ZONE_DMA_FLAG=1 | 287 | CONFIG_ZONE_DMA_FLAG=1 |
257 | CONFIG_BOUNCE=y | 288 | CONFIG_BOUNCE=y |
258 | CONFIG_VIRT_TO_BUS=y | 289 | CONFIG_VIRT_TO_BUS=y |
259 | CONFIG_HAVE_MLOCK=y | ||
260 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
261 | # CONFIG_KSM is not set | 290 | # CONFIG_KSM is not set |
262 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 291 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
263 | CONFIG_PPC_4K_PAGES=y | 292 | CONFIG_PPC_4K_PAGES=y |
@@ -375,9 +404,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
375 | # CONFIG_AF_RXRPC is not set | 404 | # CONFIG_AF_RXRPC is not set |
376 | CONFIG_WIRELESS=y | 405 | CONFIG_WIRELESS=y |
377 | # CONFIG_CFG80211 is not set | 406 | # CONFIG_CFG80211 is not set |
378 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
379 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
380 | # CONFIG_WIRELESS_EXT is not set | ||
381 | # CONFIG_LIB80211 is not set | 407 | # CONFIG_LIB80211 is not set |
382 | 408 | ||
383 | # | 409 | # |
@@ -407,6 +433,10 @@ CONFIG_BLK_DEV=y | |||
407 | # CONFIG_BLK_DEV_COW_COMMON is not set | 433 | # CONFIG_BLK_DEV_COW_COMMON is not set |
408 | CONFIG_BLK_DEV_LOOP=y | 434 | CONFIG_BLK_DEV_LOOP=y |
409 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 435 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
436 | |||
437 | # | ||
438 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
439 | # | ||
410 | # CONFIG_BLK_DEV_NBD is not set | 440 | # CONFIG_BLK_DEV_NBD is not set |
411 | # CONFIG_BLK_DEV_RAM is not set | 441 | # CONFIG_BLK_DEV_RAM is not set |
412 | # CONFIG_CDROM_PKTCDVD is not set | 442 | # CONFIG_CDROM_PKTCDVD is not set |
@@ -485,8 +515,7 @@ CONFIG_NETDEV_1000=y | |||
485 | # CONFIG_MV643XX_ETH is not set | 515 | # CONFIG_MV643XX_ETH is not set |
486 | CONFIG_NETDEV_10000=y | 516 | CONFIG_NETDEV_10000=y |
487 | CONFIG_WLAN=y | 517 | CONFIG_WLAN=y |
488 | # CONFIG_WLAN_PRE80211 is not set | 518 | # CONFIG_HOSTAP is not set |
489 | # CONFIG_WLAN_80211 is not set | ||
490 | 519 | ||
491 | # | 520 | # |
492 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 521 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -506,6 +535,7 @@ CONFIG_WLAN=y | |||
506 | CONFIG_INPUT=y | 535 | CONFIG_INPUT=y |
507 | # CONFIG_INPUT_FF_MEMLESS is not set | 536 | # CONFIG_INPUT_FF_MEMLESS is not set |
508 | # CONFIG_INPUT_POLLDEV is not set | 537 | # CONFIG_INPUT_POLLDEV is not set |
538 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
509 | 539 | ||
510 | # | 540 | # |
511 | # Userland interfaces | 541 | # Userland interfaces |
@@ -554,6 +584,7 @@ CONFIG_SERIO_SERPORT=y | |||
554 | CONFIG_SERIO_LIBPS2=y | 584 | CONFIG_SERIO_LIBPS2=y |
555 | # CONFIG_SERIO_RAW is not set | 585 | # CONFIG_SERIO_RAW is not set |
556 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 586 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
587 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
557 | # CONFIG_GAMEPORT is not set | 588 | # CONFIG_GAMEPORT is not set |
558 | 589 | ||
559 | # | 590 | # |
@@ -576,6 +607,7 @@ CONFIG_SERIAL_CORE=y | |||
576 | CONFIG_SERIAL_CORE_CONSOLE=y | 607 | CONFIG_SERIAL_CORE_CONSOLE=y |
577 | CONFIG_SERIAL_CPM=y | 608 | CONFIG_SERIAL_CPM=y |
578 | CONFIG_SERIAL_CPM_CONSOLE=y | 609 | CONFIG_SERIAL_CPM_CONSOLE=y |
610 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
579 | CONFIG_UNIX98_PTYS=y | 611 | CONFIG_UNIX98_PTYS=y |
580 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 612 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
581 | # CONFIG_LEGACY_PTYS is not set | 613 | # CONFIG_LEGACY_PTYS is not set |
@@ -855,6 +887,7 @@ CONFIG_FRAME_WARN=1024 | |||
855 | # CONFIG_DEBUG_MEMORY_INIT is not set | 887 | # CONFIG_DEBUG_MEMORY_INIT is not set |
856 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 888 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
857 | # CONFIG_LATENCYTOP is not set | 889 | # CONFIG_LATENCYTOP is not set |
890 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
858 | CONFIG_HAVE_FUNCTION_TRACER=y | 891 | CONFIG_HAVE_FUNCTION_TRACER=y |
859 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 892 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
860 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 893 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
@@ -876,7 +909,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
876 | # CONFIG_KEYS is not set | 909 | # CONFIG_KEYS is not set |
877 | # CONFIG_SECURITY is not set | 910 | # CONFIG_SECURITY is not set |
878 | # CONFIG_SECURITYFS is not set | 911 | # CONFIG_SECURITYFS is not set |
879 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 912 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
913 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
914 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
915 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
916 | CONFIG_DEFAULT_SECURITY="" | ||
880 | CONFIG_CRYPTO=y | 917 | CONFIG_CRYPTO=y |
881 | 918 | ||
882 | # | 919 | # |
diff --git a/arch/powerpc/configs/mpc86xx_defconfig b/arch/powerpc/configs/mpc86xx_defconfig index 5b3abb42ae3..41884c97a4f 100644 --- a/arch/powerpc/configs/mpc86xx_defconfig +++ b/arch/powerpc/configs/mpc86xx_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:16 2009 | 4 | # Wed Jan 6 09:24:09 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -38,6 +38,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
40 | CONFIG_IRQ_PER_CPU=y | 40 | CONFIG_IRQ_PER_CPU=y |
41 | CONFIG_NR_IRQS=512 | ||
41 | CONFIG_STACKTRACE_SUPPORT=y | 42 | CONFIG_STACKTRACE_SUPPORT=y |
42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -61,6 +62,8 @@ CONFIG_AUDIT_ARCH=y | |||
61 | CONFIG_GENERIC_BUG=y | 62 | CONFIG_GENERIC_BUG=y |
62 | CONFIG_DTC=y | 63 | CONFIG_DTC=y |
63 | CONFIG_DEFAULT_UIMAGE=y | 64 | CONFIG_DEFAULT_UIMAGE=y |
65 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
66 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
64 | # CONFIG_PPC_DCR_NATIVE is not set | 67 | # CONFIG_PPC_DCR_NATIVE is not set |
65 | # CONFIG_PPC_DCR_MMIO is not set | 68 | # CONFIG_PPC_DCR_MMIO is not set |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 69 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -91,6 +94,7 @@ CONFIG_AUDIT=y | |||
91 | # | 94 | # |
92 | CONFIG_TREE_RCU=y | 95 | CONFIG_TREE_RCU=y |
93 | # CONFIG_TREE_PREEMPT_RCU is not set | 96 | # CONFIG_TREE_PREEMPT_RCU is not set |
97 | # CONFIG_TINY_RCU is not set | ||
94 | # CONFIG_RCU_TRACE is not set | 98 | # CONFIG_RCU_TRACE is not set |
95 | CONFIG_RCU_FANOUT=32 | 99 | CONFIG_RCU_FANOUT=32 |
96 | # CONFIG_RCU_FANOUT_EXACT is not set | 100 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -183,14 +187,41 @@ CONFIG_LBDAF=y | |||
183 | # IO Schedulers | 187 | # IO Schedulers |
184 | # | 188 | # |
185 | CONFIG_IOSCHED_NOOP=y | 189 | CONFIG_IOSCHED_NOOP=y |
186 | CONFIG_IOSCHED_AS=y | ||
187 | CONFIG_IOSCHED_DEADLINE=y | 190 | CONFIG_IOSCHED_DEADLINE=y |
188 | CONFIG_IOSCHED_CFQ=y | 191 | CONFIG_IOSCHED_CFQ=y |
189 | # CONFIG_DEFAULT_AS is not set | ||
190 | # CONFIG_DEFAULT_DEADLINE is not set | 192 | # CONFIG_DEFAULT_DEADLINE is not set |
191 | CONFIG_DEFAULT_CFQ=y | 193 | CONFIG_DEFAULT_CFQ=y |
192 | # CONFIG_DEFAULT_NOOP is not set | 194 | # CONFIG_DEFAULT_NOOP is not set |
193 | CONFIG_DEFAULT_IOSCHED="cfq" | 195 | CONFIG_DEFAULT_IOSCHED="cfq" |
196 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
197 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
198 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
199 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
200 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
201 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
202 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
203 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
204 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
205 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
206 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
207 | # CONFIG_INLINE_READ_LOCK is not set | ||
208 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
209 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
210 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
211 | CONFIG_INLINE_READ_UNLOCK=y | ||
212 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
213 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
214 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
215 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
216 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
217 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
218 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
219 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
220 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
221 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
222 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
223 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
224 | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||
194 | # CONFIG_FREEZER is not set | 225 | # CONFIG_FREEZER is not set |
195 | 226 | ||
196 | # | 227 | # |
@@ -221,7 +252,7 @@ CONFIG_MPIC=y | |||
221 | # CONFIG_MPIC_WEIRD is not set | 252 | # CONFIG_MPIC_WEIRD is not set |
222 | CONFIG_PPC_I8259=y | 253 | CONFIG_PPC_I8259=y |
223 | # CONFIG_PPC_RTAS is not set | 254 | # CONFIG_PPC_RTAS is not set |
224 | # CONFIG_MMIO_NVRAM is not set | 255 | CONFIG_MMIO_NVRAM=y |
225 | # CONFIG_PPC_MPC106 is not set | 256 | # CONFIG_PPC_MPC106 is not set |
226 | # CONFIG_PPC_970_NAP is not set | 257 | # CONFIG_PPC_970_NAP is not set |
227 | # CONFIG_PPC_INDIRECT_IO is not set | 258 | # CONFIG_PPC_INDIRECT_IO is not set |
@@ -262,6 +293,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | |||
262 | # CONFIG_KEXEC is not set | 293 | # CONFIG_KEXEC is not set |
263 | # CONFIG_CRASH_DUMP is not set | 294 | # CONFIG_CRASH_DUMP is not set |
264 | # CONFIG_IRQ_ALL_CPUS is not set | 295 | # CONFIG_IRQ_ALL_CPUS is not set |
296 | CONFIG_SPARSE_IRQ=y | ||
265 | CONFIG_MAX_ACTIVE_REGIONS=32 | 297 | CONFIG_MAX_ACTIVE_REGIONS=32 |
266 | CONFIG_ARCH_FLATMEM_ENABLE=y | 298 | CONFIG_ARCH_FLATMEM_ENABLE=y |
267 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 299 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -278,8 +310,6 @@ CONFIG_MIGRATION=y | |||
278 | CONFIG_ZONE_DMA_FLAG=1 | 310 | CONFIG_ZONE_DMA_FLAG=1 |
279 | CONFIG_BOUNCE=y | 311 | CONFIG_BOUNCE=y |
280 | CONFIG_VIRT_TO_BUS=y | 312 | CONFIG_VIRT_TO_BUS=y |
281 | CONFIG_HAVE_MLOCK=y | ||
282 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
283 | # CONFIG_KSM is not set | 313 | # CONFIG_KSM is not set |
284 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 314 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
285 | CONFIG_PPC_4K_PAGES=y | 315 | CONFIG_PPC_4K_PAGES=y |
@@ -397,6 +427,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y | |||
397 | CONFIG_INET6_XFRM_MODE_BEET=y | 427 | CONFIG_INET6_XFRM_MODE_BEET=y |
398 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 428 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
399 | CONFIG_IPV6_SIT=y | 429 | CONFIG_IPV6_SIT=y |
430 | # CONFIG_IPV6_SIT_6RD is not set | ||
400 | CONFIG_IPV6_NDISC_NODETYPE=y | 431 | CONFIG_IPV6_NDISC_NODETYPE=y |
401 | # CONFIG_IPV6_TUNNEL is not set | 432 | # CONFIG_IPV6_TUNNEL is not set |
402 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 433 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -441,9 +472,6 @@ CONFIG_SCTP_HMAC_MD5=y | |||
441 | CONFIG_FIB_RULES=y | 472 | CONFIG_FIB_RULES=y |
442 | CONFIG_WIRELESS=y | 473 | CONFIG_WIRELESS=y |
443 | # CONFIG_CFG80211 is not set | 474 | # CONFIG_CFG80211 is not set |
444 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
445 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
446 | # CONFIG_WIRELESS_EXT is not set | ||
447 | # CONFIG_LIB80211 is not set | 475 | # CONFIG_LIB80211 is not set |
448 | 476 | ||
449 | # | 477 | # |
@@ -486,6 +514,10 @@ CONFIG_BLK_DEV=y | |||
486 | # CONFIG_BLK_DEV_COW_COMMON is not set | 514 | # CONFIG_BLK_DEV_COW_COMMON is not set |
487 | CONFIG_BLK_DEV_LOOP=y | 515 | CONFIG_BLK_DEV_LOOP=y |
488 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 516 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
517 | |||
518 | # | ||
519 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
520 | # | ||
489 | CONFIG_BLK_DEV_NBD=y | 521 | CONFIG_BLK_DEV_NBD=y |
490 | # CONFIG_BLK_DEV_SX8 is not set | 522 | # CONFIG_BLK_DEV_SX8 is not set |
491 | # CONFIG_BLK_DEV_UB is not set | 523 | # CONFIG_BLK_DEV_UB is not set |
@@ -497,6 +529,7 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 | |||
497 | # CONFIG_ATA_OVER_ETH is not set | 529 | # CONFIG_ATA_OVER_ETH is not set |
498 | # CONFIG_BLK_DEV_HD is not set | 530 | # CONFIG_BLK_DEV_HD is not set |
499 | CONFIG_MISC_DEVICES=y | 531 | CONFIG_MISC_DEVICES=y |
532 | # CONFIG_AD525X_DPOT is not set | ||
500 | # CONFIG_PHANTOM is not set | 533 | # CONFIG_PHANTOM is not set |
501 | # CONFIG_SGI_IOC4 is not set | 534 | # CONFIG_SGI_IOC4 is not set |
502 | # CONFIG_TIFM_CORE is not set | 535 | # CONFIG_TIFM_CORE is not set |
@@ -504,6 +537,7 @@ CONFIG_MISC_DEVICES=y | |||
504 | # CONFIG_ENCLOSURE_SERVICES is not set | 537 | # CONFIG_ENCLOSURE_SERVICES is not set |
505 | # CONFIG_HP_ILO is not set | 538 | # CONFIG_HP_ILO is not set |
506 | # CONFIG_ISL29003 is not set | 539 | # CONFIG_ISL29003 is not set |
540 | # CONFIG_DS1682 is not set | ||
507 | # CONFIG_C2PORT is not set | 541 | # CONFIG_C2PORT is not set |
508 | 542 | ||
509 | # | 543 | # |
@@ -557,7 +591,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
557 | # CONFIG_SCSI_BNX2_ISCSI is not set | 591 | # CONFIG_SCSI_BNX2_ISCSI is not set |
558 | # CONFIG_BE2ISCSI is not set | 592 | # CONFIG_BE2ISCSI is not set |
559 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 593 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
594 | # CONFIG_SCSI_HPSA is not set | ||
560 | # CONFIG_SCSI_3W_9XXX is not set | 595 | # CONFIG_SCSI_3W_9XXX is not set |
596 | # CONFIG_SCSI_3W_SAS is not set | ||
561 | # CONFIG_SCSI_ACARD is not set | 597 | # CONFIG_SCSI_ACARD is not set |
562 | # CONFIG_SCSI_AACRAID is not set | 598 | # CONFIG_SCSI_AACRAID is not set |
563 | # CONFIG_SCSI_AIC7XXX is not set | 599 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -596,6 +632,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
596 | # CONFIG_SCSI_NSP32 is not set | 632 | # CONFIG_SCSI_NSP32 is not set |
597 | # CONFIG_SCSI_DEBUG is not set | 633 | # CONFIG_SCSI_DEBUG is not set |
598 | # CONFIG_SCSI_PMCRAID is not set | 634 | # CONFIG_SCSI_PMCRAID is not set |
635 | # CONFIG_SCSI_PM8001 is not set | ||
599 | # CONFIG_SCSI_SRP is not set | 636 | # CONFIG_SCSI_SRP is not set |
600 | # CONFIG_SCSI_BFA_FC is not set | 637 | # CONFIG_SCSI_BFA_FC is not set |
601 | # CONFIG_SCSI_DH is not set | 638 | # CONFIG_SCSI_DH is not set |
@@ -651,15 +688,16 @@ CONFIG_PATA_ALI=y | |||
651 | # CONFIG_PATA_NS87415 is not set | 688 | # CONFIG_PATA_NS87415 is not set |
652 | # CONFIG_PATA_OPTI is not set | 689 | # CONFIG_PATA_OPTI is not set |
653 | # CONFIG_PATA_OPTIDMA is not set | 690 | # CONFIG_PATA_OPTIDMA is not set |
691 | # CONFIG_PATA_PDC2027X is not set | ||
654 | # CONFIG_PATA_PDC_OLD is not set | 692 | # CONFIG_PATA_PDC_OLD is not set |
655 | # CONFIG_PATA_RADISYS is not set | 693 | # CONFIG_PATA_RADISYS is not set |
656 | # CONFIG_PATA_RDC is not set | 694 | # CONFIG_PATA_RDC is not set |
657 | # CONFIG_PATA_RZ1000 is not set | 695 | # CONFIG_PATA_RZ1000 is not set |
658 | # CONFIG_PATA_SC1200 is not set | 696 | # CONFIG_PATA_SC1200 is not set |
659 | # CONFIG_PATA_SERVERWORKS is not set | 697 | # CONFIG_PATA_SERVERWORKS is not set |
660 | # CONFIG_PATA_PDC2027X is not set | ||
661 | # CONFIG_PATA_SIL680 is not set | 698 | # CONFIG_PATA_SIL680 is not set |
662 | # CONFIG_PATA_SIS is not set | 699 | # CONFIG_PATA_SIS is not set |
700 | # CONFIG_PATA_TOSHIBA is not set | ||
663 | # CONFIG_PATA_VIA is not set | 701 | # CONFIG_PATA_VIA is not set |
664 | # CONFIG_PATA_WINBOND is not set | 702 | # CONFIG_PATA_WINBOND is not set |
665 | # CONFIG_PATA_PLATFORM is not set | 703 | # CONFIG_PATA_PLATFORM is not set |
@@ -676,7 +714,7 @@ CONFIG_PATA_ALI=y | |||
676 | # | 714 | # |
677 | 715 | ||
678 | # | 716 | # |
679 | # See the help texts for more information. | 717 | # The newer stack is recommended. |
680 | # | 718 | # |
681 | # CONFIG_FIREWIRE is not set | 719 | # CONFIG_FIREWIRE is not set |
682 | # CONFIG_IEEE1394 is not set | 720 | # CONFIG_IEEE1394 is not set |
@@ -781,8 +819,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
781 | # CONFIG_BE2NET is not set | 819 | # CONFIG_BE2NET is not set |
782 | # CONFIG_TR is not set | 820 | # CONFIG_TR is not set |
783 | CONFIG_WLAN=y | 821 | CONFIG_WLAN=y |
784 | # CONFIG_WLAN_PRE80211 is not set | 822 | # CONFIG_AIRO is not set |
785 | # CONFIG_WLAN_80211 is not set | 823 | # CONFIG_ATMEL is not set |
824 | # CONFIG_PRISM54 is not set | ||
825 | # CONFIG_USB_ZD1201 is not set | ||
826 | # CONFIG_HOSTAP is not set | ||
786 | 827 | ||
787 | # | 828 | # |
788 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 829 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -805,6 +846,7 @@ CONFIG_WLAN=y | |||
805 | # CONFIG_NETCONSOLE is not set | 846 | # CONFIG_NETCONSOLE is not set |
806 | # CONFIG_NETPOLL is not set | 847 | # CONFIG_NETPOLL is not set |
807 | # CONFIG_NET_POLL_CONTROLLER is not set | 848 | # CONFIG_NET_POLL_CONTROLLER is not set |
849 | # CONFIG_VMXNET3 is not set | ||
808 | # CONFIG_ISDN is not set | 850 | # CONFIG_ISDN is not set |
809 | # CONFIG_PHONE is not set | 851 | # CONFIG_PHONE is not set |
810 | 852 | ||
@@ -814,6 +856,7 @@ CONFIG_WLAN=y | |||
814 | CONFIG_INPUT=y | 856 | CONFIG_INPUT=y |
815 | CONFIG_INPUT_FF_MEMLESS=m | 857 | CONFIG_INPUT_FF_MEMLESS=m |
816 | # CONFIG_INPUT_POLLDEV is not set | 858 | # CONFIG_INPUT_POLLDEV is not set |
859 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
817 | 860 | ||
818 | # | 861 | # |
819 | # Userland interfaces | 862 | # Userland interfaces |
@@ -843,6 +886,7 @@ CONFIG_SERIO_SERPORT=y | |||
843 | CONFIG_SERIO_LIBPS2=y | 886 | CONFIG_SERIO_LIBPS2=y |
844 | # CONFIG_SERIO_RAW is not set | 887 | # CONFIG_SERIO_RAW is not set |
845 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 888 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
889 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
846 | # CONFIG_GAMEPORT is not set | 890 | # CONFIG_GAMEPORT is not set |
847 | 891 | ||
848 | # | 892 | # |
@@ -879,6 +923,7 @@ CONFIG_SERIAL_CORE=y | |||
879 | CONFIG_SERIAL_CORE_CONSOLE=y | 923 | CONFIG_SERIAL_CORE_CONSOLE=y |
880 | # CONFIG_SERIAL_JSM is not set | 924 | # CONFIG_SERIAL_JSM is not set |
881 | # CONFIG_SERIAL_OF_PLATFORM is not set | 925 | # CONFIG_SERIAL_OF_PLATFORM is not set |
926 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
882 | CONFIG_UNIX98_PTYS=y | 927 | CONFIG_UNIX98_PTYS=y |
883 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 928 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
884 | CONFIG_LEGACY_PTYS=y | 929 | CONFIG_LEGACY_PTYS=y |
@@ -936,11 +981,6 @@ CONFIG_I2C_MPC=y | |||
936 | # CONFIG_I2C_TINY_USB is not set | 981 | # CONFIG_I2C_TINY_USB is not set |
937 | 982 | ||
938 | # | 983 | # |
939 | # Graphics adapter I2C/DDC channel drivers | ||
940 | # | ||
941 | # CONFIG_I2C_VOODOO3 is not set | ||
942 | |||
943 | # | ||
944 | # Other I2C/SMBus bus drivers | 984 | # Other I2C/SMBus bus drivers |
945 | # | 985 | # |
946 | # CONFIG_I2C_PCA_PLATFORM is not set | 986 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -949,7 +989,6 @@ CONFIG_I2C_MPC=y | |||
949 | # | 989 | # |
950 | # Miscellaneous I2C Chip support | 990 | # Miscellaneous I2C Chip support |
951 | # | 991 | # |
952 | # CONFIG_DS1682 is not set | ||
953 | # CONFIG_SENSORS_TSL2550 is not set | 992 | # CONFIG_SENSORS_TSL2550 is not set |
954 | # CONFIG_I2C_DEBUG_CORE is not set | 993 | # CONFIG_I2C_DEBUG_CORE is not set |
955 | # CONFIG_I2C_DEBUG_ALGO is not set | 994 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -982,6 +1021,7 @@ CONFIG_GPIOLIB=y | |||
982 | # | 1021 | # |
983 | # PCI GPIO expanders: | 1022 | # PCI GPIO expanders: |
984 | # | 1023 | # |
1024 | # CONFIG_GPIO_CS5535 is not set | ||
985 | # CONFIG_GPIO_BT8XX is not set | 1025 | # CONFIG_GPIO_BT8XX is not set |
986 | # CONFIG_GPIO_LANGWELL is not set | 1026 | # CONFIG_GPIO_LANGWELL is not set |
987 | 1027 | ||
@@ -1015,11 +1055,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1015 | # CONFIG_TWL4030_CORE is not set | 1055 | # CONFIG_TWL4030_CORE is not set |
1016 | # CONFIG_MFD_TMIO is not set | 1056 | # CONFIG_MFD_TMIO is not set |
1017 | # CONFIG_PMIC_DA903X is not set | 1057 | # CONFIG_PMIC_DA903X is not set |
1058 | # CONFIG_PMIC_ADP5520 is not set | ||
1018 | # CONFIG_MFD_WM8400 is not set | 1059 | # CONFIG_MFD_WM8400 is not set |
1019 | # CONFIG_MFD_WM831X is not set | 1060 | # CONFIG_MFD_WM831X is not set |
1020 | # CONFIG_MFD_WM8350_I2C is not set | 1061 | # CONFIG_MFD_WM8350_I2C is not set |
1021 | # CONFIG_MFD_PCF50633 is not set | 1062 | # CONFIG_MFD_PCF50633 is not set |
1022 | # CONFIG_AB3100_CORE is not set | 1063 | # CONFIG_AB3100_CORE is not set |
1064 | # CONFIG_MFD_88PM8607 is not set | ||
1023 | # CONFIG_REGULATOR is not set | 1065 | # CONFIG_REGULATOR is not set |
1024 | # CONFIG_MEDIA_SUPPORT is not set | 1066 | # CONFIG_MEDIA_SUPPORT is not set |
1025 | 1067 | ||
@@ -1094,6 +1136,7 @@ CONFIG_SND_PCI=y | |||
1094 | # CONFIG_SND_CS4281 is not set | 1136 | # CONFIG_SND_CS4281 is not set |
1095 | # CONFIG_SND_CS46XX is not set | 1137 | # CONFIG_SND_CS46XX is not set |
1096 | # CONFIG_SND_CS5530 is not set | 1138 | # CONFIG_SND_CS5530 is not set |
1139 | # CONFIG_SND_CS5535AUDIO is not set | ||
1097 | # CONFIG_SND_CTXFI is not set | 1140 | # CONFIG_SND_CTXFI is not set |
1098 | # CONFIG_SND_DARLA20 is not set | 1141 | # CONFIG_SND_DARLA20 is not set |
1099 | # CONFIG_SND_GINA20 is not set | 1142 | # CONFIG_SND_GINA20 is not set |
@@ -1221,6 +1264,7 @@ CONFIG_USB_MON=y | |||
1221 | CONFIG_USB_EHCI_HCD=y | 1264 | CONFIG_USB_EHCI_HCD=y |
1222 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1265 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1223 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1266 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1267 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1224 | # CONFIG_USB_EHCI_FSL is not set | 1268 | # CONFIG_USB_EHCI_FSL is not set |
1225 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1269 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1226 | # CONFIG_USB_OXU210HP_HCD is not set | 1270 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1348,6 +1392,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1348 | # CONFIG_RTC_DRV_PCF8563 is not set | 1392 | # CONFIG_RTC_DRV_PCF8563 is not set |
1349 | # CONFIG_RTC_DRV_PCF8583 is not set | 1393 | # CONFIG_RTC_DRV_PCF8583 is not set |
1350 | # CONFIG_RTC_DRV_M41T80 is not set | 1394 | # CONFIG_RTC_DRV_M41T80 is not set |
1395 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1351 | # CONFIG_RTC_DRV_S35390A is not set | 1396 | # CONFIG_RTC_DRV_S35390A is not set |
1352 | # CONFIG_RTC_DRV_FM3130 is not set | 1397 | # CONFIG_RTC_DRV_FM3130 is not set |
1353 | # CONFIG_RTC_DRV_RX8581 is not set | 1398 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1369,7 +1414,9 @@ CONFIG_RTC_DRV_CMOS=y | |||
1369 | # CONFIG_RTC_DRV_M48T86 is not set | 1414 | # CONFIG_RTC_DRV_M48T86 is not set |
1370 | # CONFIG_RTC_DRV_M48T35 is not set | 1415 | # CONFIG_RTC_DRV_M48T35 is not set |
1371 | # CONFIG_RTC_DRV_M48T59 is not set | 1416 | # CONFIG_RTC_DRV_M48T59 is not set |
1417 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1372 | # CONFIG_RTC_DRV_BQ4802 is not set | 1418 | # CONFIG_RTC_DRV_BQ4802 is not set |
1419 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1373 | # CONFIG_RTC_DRV_V3020 is not set | 1420 | # CONFIG_RTC_DRV_V3020 is not set |
1374 | 1421 | ||
1375 | # | 1422 | # |
@@ -1684,7 +1731,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1684 | # CONFIG_KEYS is not set | 1731 | # CONFIG_KEYS is not set |
1685 | # CONFIG_SECURITY is not set | 1732 | # CONFIG_SECURITY is not set |
1686 | # CONFIG_SECURITYFS is not set | 1733 | # CONFIG_SECURITYFS is not set |
1687 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1734 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1735 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1736 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1737 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1738 | CONFIG_DEFAULT_SECURITY="" | ||
1688 | CONFIG_CRYPTO=y | 1739 | CONFIG_CRYPTO=y |
1689 | 1740 | ||
1690 | # | 1741 | # |
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig index 1da3488a603..6b9e6bd2c98 100644 --- a/arch/powerpc/configs/mpc885_ads_defconfig +++ b/arch/powerpc/configs/mpc885_ads_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:17 2009 | 4 | # Wed Jan 6 09:24:10 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
34 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
35 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
36 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
37 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -54,6 +55,7 @@ CONFIG_AUDIT_ARCH=y | |||
54 | CONFIG_GENERIC_BUG=y | 55 | CONFIG_GENERIC_BUG=y |
55 | CONFIG_DTC=y | 56 | CONFIG_DTC=y |
56 | # CONFIG_DEFAULT_UIMAGE is not set | 57 | # CONFIG_DEFAULT_UIMAGE is not set |
58 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
57 | # CONFIG_PPC_DCR_NATIVE is not set | 59 | # CONFIG_PPC_DCR_NATIVE is not set |
58 | # CONFIG_PPC_DCR_MMIO is not set | 60 | # CONFIG_PPC_DCR_MMIO is not set |
59 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 61 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -81,6 +83,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
81 | # | 83 | # |
82 | CONFIG_TREE_RCU=y | 84 | CONFIG_TREE_RCU=y |
83 | # CONFIG_TREE_PREEMPT_RCU is not set | 85 | # CONFIG_TREE_PREEMPT_RCU is not set |
86 | # CONFIG_TINY_RCU is not set | ||
84 | # CONFIG_RCU_TRACE is not set | 87 | # CONFIG_RCU_TRACE is not set |
85 | CONFIG_RCU_FANOUT=32 | 88 | CONFIG_RCU_FANOUT=32 |
86 | # CONFIG_RCU_FANOUT_EXACT is not set | 89 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -159,14 +162,41 @@ CONFIG_LBDAF=y | |||
159 | # IO Schedulers | 162 | # IO Schedulers |
160 | # | 163 | # |
161 | CONFIG_IOSCHED_NOOP=y | 164 | CONFIG_IOSCHED_NOOP=y |
162 | # CONFIG_IOSCHED_AS is not set | ||
163 | CONFIG_IOSCHED_DEADLINE=y | 165 | CONFIG_IOSCHED_DEADLINE=y |
164 | # CONFIG_IOSCHED_CFQ is not set | 166 | # CONFIG_IOSCHED_CFQ is not set |
165 | # CONFIG_DEFAULT_AS is not set | ||
166 | CONFIG_DEFAULT_DEADLINE=y | 167 | CONFIG_DEFAULT_DEADLINE=y |
167 | # CONFIG_DEFAULT_CFQ is not set | 168 | # CONFIG_DEFAULT_CFQ is not set |
168 | # CONFIG_DEFAULT_NOOP is not set | 169 | # CONFIG_DEFAULT_NOOP is not set |
169 | CONFIG_DEFAULT_IOSCHED="deadline" | 170 | CONFIG_DEFAULT_IOSCHED="deadline" |
171 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
172 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
173 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
174 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
175 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
176 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
177 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
178 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
179 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
180 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
181 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
182 | # CONFIG_INLINE_READ_LOCK is not set | ||
183 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
184 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
185 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
186 | CONFIG_INLINE_READ_UNLOCK=y | ||
187 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
188 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
189 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
190 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
191 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
192 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
193 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
194 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
195 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
196 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
197 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
198 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
199 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
170 | # CONFIG_FREEZER is not set | 200 | # CONFIG_FREEZER is not set |
171 | 201 | ||
172 | # | 202 | # |
@@ -248,6 +278,7 @@ CONFIG_8XX_MINIMAL_FPEMU=y | |||
248 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 278 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
249 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 279 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
250 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 280 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
281 | CONFIG_SPARSE_IRQ=y | ||
251 | CONFIG_MAX_ACTIVE_REGIONS=32 | 282 | CONFIG_MAX_ACTIVE_REGIONS=32 |
252 | CONFIG_ARCH_FLATMEM_ENABLE=y | 283 | CONFIG_ARCH_FLATMEM_ENABLE=y |
253 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 284 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -264,8 +295,6 @@ CONFIG_MIGRATION=y | |||
264 | CONFIG_ZONE_DMA_FLAG=1 | 295 | CONFIG_ZONE_DMA_FLAG=1 |
265 | CONFIG_BOUNCE=y | 296 | CONFIG_BOUNCE=y |
266 | CONFIG_VIRT_TO_BUS=y | 297 | CONFIG_VIRT_TO_BUS=y |
267 | CONFIG_HAVE_MLOCK=y | ||
268 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
269 | # CONFIG_KSM is not set | 298 | # CONFIG_KSM is not set |
270 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 299 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
271 | CONFIG_PPC_4K_PAGES=y | 300 | CONFIG_PPC_4K_PAGES=y |
@@ -379,9 +408,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
379 | # CONFIG_AF_RXRPC is not set | 408 | # CONFIG_AF_RXRPC is not set |
380 | CONFIG_WIRELESS=y | 409 | CONFIG_WIRELESS=y |
381 | # CONFIG_CFG80211 is not set | 410 | # CONFIG_CFG80211 is not set |
382 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
383 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
384 | # CONFIG_WIRELESS_EXT is not set | ||
385 | # CONFIG_LIB80211 is not set | 411 | # CONFIG_LIB80211 is not set |
386 | 412 | ||
387 | # | 413 | # |
@@ -556,8 +582,7 @@ CONFIG_FS_ENET_MDIO_FEC=y | |||
556 | # CONFIG_NETDEV_1000 is not set | 582 | # CONFIG_NETDEV_1000 is not set |
557 | # CONFIG_NETDEV_10000 is not set | 583 | # CONFIG_NETDEV_10000 is not set |
558 | CONFIG_WLAN=y | 584 | CONFIG_WLAN=y |
559 | # CONFIG_WLAN_PRE80211 is not set | 585 | # CONFIG_HOSTAP is not set |
560 | # CONFIG_WLAN_80211 is not set | ||
561 | 586 | ||
562 | # | 587 | # |
563 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 588 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -602,6 +627,7 @@ CONFIG_SERIAL_CORE=y | |||
602 | CONFIG_SERIAL_CORE_CONSOLE=y | 627 | CONFIG_SERIAL_CORE_CONSOLE=y |
603 | CONFIG_SERIAL_CPM=y | 628 | CONFIG_SERIAL_CPM=y |
604 | CONFIG_SERIAL_CPM_CONSOLE=y | 629 | CONFIG_SERIAL_CPM_CONSOLE=y |
630 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
605 | CONFIG_UNIX98_PTYS=y | 631 | CONFIG_UNIX98_PTYS=y |
606 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 632 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
607 | # CONFIG_LEGACY_PTYS is not set | 633 | # CONFIG_LEGACY_PTYS is not set |
@@ -862,6 +888,7 @@ CONFIG_DEBUG_INFO=y | |||
862 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 888 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
863 | # CONFIG_FAULT_INJECTION is not set | 889 | # CONFIG_FAULT_INJECTION is not set |
864 | # CONFIG_LATENCYTOP is not set | 890 | # CONFIG_LATENCYTOP is not set |
891 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
865 | # CONFIG_DEBUG_PAGEALLOC is not set | 892 | # CONFIG_DEBUG_PAGEALLOC is not set |
866 | CONFIG_HAVE_FUNCTION_TRACER=y | 893 | CONFIG_HAVE_FUNCTION_TRACER=y |
867 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 894 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -904,7 +931,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
904 | # CONFIG_KEYS is not set | 931 | # CONFIG_KEYS is not set |
905 | # CONFIG_SECURITY is not set | 932 | # CONFIG_SECURITY is not set |
906 | # CONFIG_SECURITYFS is not set | 933 | # CONFIG_SECURITYFS is not set |
907 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 934 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
935 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
936 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
937 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
938 | CONFIG_DEFAULT_SECURITY="" | ||
908 | # CONFIG_CRYPTO is not set | 939 | # CONFIG_CRYPTO is not set |
909 | CONFIG_PPC_CLOCK=y | 940 | CONFIG_PPC_CLOCK=y |
910 | CONFIG_PPC_LIB_RHEAP=y | 941 | CONFIG_PPC_LIB_RHEAP=y |
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig index b7911216af7..5d06f2cb8e5 100644 --- a/arch/powerpc/configs/pq2fads_defconfig +++ b/arch/powerpc/configs/pq2fads_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:17 2009 | 4 | # Wed Jan 6 09:24:11 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -59,6 +60,7 @@ CONFIG_AUDIT_ARCH=y | |||
59 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
61 | CONFIG_DEFAULT_UIMAGE=y | 62 | CONFIG_DEFAULT_UIMAGE=y |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
62 | # CONFIG_PPC_DCR_NATIVE is not set | 64 | # CONFIG_PPC_DCR_NATIVE is not set |
63 | # CONFIG_PPC_DCR_MMIO is not set | 65 | # CONFIG_PPC_DCR_MMIO is not set |
64 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -85,6 +87,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
85 | # | 87 | # |
86 | CONFIG_TREE_RCU=y | 88 | CONFIG_TREE_RCU=y |
87 | # CONFIG_TREE_PREEMPT_RCU is not set | 89 | # CONFIG_TREE_PREEMPT_RCU is not set |
90 | # CONFIG_TINY_RCU is not set | ||
88 | # CONFIG_RCU_TRACE is not set | 91 | # CONFIG_RCU_TRACE is not set |
89 | CONFIG_RCU_FANOUT=32 | 92 | CONFIG_RCU_FANOUT=32 |
90 | # CONFIG_RCU_FANOUT_EXACT is not set | 93 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -165,14 +168,41 @@ CONFIG_BLK_DEV_BSG=y | |||
165 | # IO Schedulers | 168 | # IO Schedulers |
166 | # | 169 | # |
167 | CONFIG_IOSCHED_NOOP=y | 170 | CONFIG_IOSCHED_NOOP=y |
168 | CONFIG_IOSCHED_AS=y | ||
169 | CONFIG_IOSCHED_DEADLINE=y | 171 | CONFIG_IOSCHED_DEADLINE=y |
170 | CONFIG_IOSCHED_CFQ=y | 172 | CONFIG_IOSCHED_CFQ=y |
171 | CONFIG_DEFAULT_AS=y | ||
172 | # CONFIG_DEFAULT_DEADLINE is not set | 173 | # CONFIG_DEFAULT_DEADLINE is not set |
173 | # CONFIG_DEFAULT_CFQ is not set | 174 | CONFIG_DEFAULT_CFQ=y |
174 | # CONFIG_DEFAULT_NOOP is not set | 175 | # CONFIG_DEFAULT_NOOP is not set |
175 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 176 | CONFIG_DEFAULT_IOSCHED="cfq" |
177 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
178 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
179 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
180 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
181 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
182 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
183 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
184 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
185 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
186 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
187 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
188 | # CONFIG_INLINE_READ_LOCK is not set | ||
189 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
190 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
191 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
192 | CONFIG_INLINE_READ_UNLOCK=y | ||
193 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
194 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
195 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
196 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
197 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
198 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
199 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
200 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
201 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
202 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
203 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
204 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
205 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
176 | # CONFIG_FREEZER is not set | 206 | # CONFIG_FREEZER is not set |
177 | 207 | ||
178 | # | 208 | # |
@@ -243,6 +273,7 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | |||
243 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 273 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
244 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 274 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
245 | # CONFIG_CRASH_DUMP is not set | 275 | # CONFIG_CRASH_DUMP is not set |
276 | CONFIG_SPARSE_IRQ=y | ||
246 | CONFIG_MAX_ACTIVE_REGIONS=32 | 277 | CONFIG_MAX_ACTIVE_REGIONS=32 |
247 | CONFIG_ARCH_FLATMEM_ENABLE=y | 278 | CONFIG_ARCH_FLATMEM_ENABLE=y |
248 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 279 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -255,8 +286,6 @@ CONFIG_MIGRATION=y | |||
255 | CONFIG_ZONE_DMA_FLAG=1 | 286 | CONFIG_ZONE_DMA_FLAG=1 |
256 | CONFIG_BOUNCE=y | 287 | CONFIG_BOUNCE=y |
257 | CONFIG_VIRT_TO_BUS=y | 288 | CONFIG_VIRT_TO_BUS=y |
258 | CONFIG_HAVE_MLOCK=y | ||
259 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
260 | # CONFIG_KSM is not set | 289 | # CONFIG_KSM is not set |
261 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 290 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
262 | CONFIG_PPC_4K_PAGES=y | 291 | CONFIG_PPC_4K_PAGES=y |
@@ -407,9 +436,6 @@ CONFIG_NETFILTER_ADVANCED=y | |||
407 | # CONFIG_BT is not set | 436 | # CONFIG_BT is not set |
408 | CONFIG_WIRELESS=y | 437 | CONFIG_WIRELESS=y |
409 | # CONFIG_CFG80211 is not set | 438 | # CONFIG_CFG80211 is not set |
410 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
411 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
412 | # CONFIG_WIRELESS_EXT is not set | ||
413 | # CONFIG_LIB80211 is not set | 439 | # CONFIG_LIB80211 is not set |
414 | 440 | ||
415 | # | 441 | # |
@@ -530,6 +556,10 @@ CONFIG_BLK_DEV=y | |||
530 | # CONFIG_BLK_DEV_COW_COMMON is not set | 556 | # CONFIG_BLK_DEV_COW_COMMON is not set |
531 | CONFIG_BLK_DEV_LOOP=y | 557 | CONFIG_BLK_DEV_LOOP=y |
532 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 558 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
559 | |||
560 | # | ||
561 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
562 | # | ||
533 | # CONFIG_BLK_DEV_NBD is not set | 563 | # CONFIG_BLK_DEV_NBD is not set |
534 | # CONFIG_BLK_DEV_SX8 is not set | 564 | # CONFIG_BLK_DEV_SX8 is not set |
535 | # CONFIG_BLK_DEV_RAM is not set | 565 | # CONFIG_BLK_DEV_RAM is not set |
@@ -616,7 +646,7 @@ CONFIG_IDE_PROC_FS=y | |||
616 | # | 646 | # |
617 | 647 | ||
618 | # | 648 | # |
619 | # See the help texts for more information. | 649 | # The newer stack is recommended. |
620 | # | 650 | # |
621 | # CONFIG_FIREWIRE is not set | 651 | # CONFIG_FIREWIRE is not set |
622 | # CONFIG_IEEE1394 is not set | 652 | # CONFIG_IEEE1394 is not set |
@@ -721,8 +751,9 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
721 | # CONFIG_BE2NET is not set | 751 | # CONFIG_BE2NET is not set |
722 | # CONFIG_TR is not set | 752 | # CONFIG_TR is not set |
723 | CONFIG_WLAN=y | 753 | CONFIG_WLAN=y |
724 | # CONFIG_WLAN_PRE80211 is not set | 754 | # CONFIG_AIRO is not set |
725 | # CONFIG_WLAN_80211 is not set | 755 | # CONFIG_ATMEL is not set |
756 | # CONFIG_HOSTAP is not set | ||
726 | 757 | ||
727 | # | 758 | # |
728 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 759 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -739,6 +770,7 @@ CONFIG_PPP_DEFLATE=y | |||
739 | CONFIG_SLHC=y | 770 | CONFIG_SLHC=y |
740 | # CONFIG_NETPOLL is not set | 771 | # CONFIG_NETPOLL is not set |
741 | # CONFIG_NET_POLL_CONTROLLER is not set | 772 | # CONFIG_NET_POLL_CONTROLLER is not set |
773 | # CONFIG_VMXNET3 is not set | ||
742 | # CONFIG_ISDN is not set | 774 | # CONFIG_ISDN is not set |
743 | # CONFIG_PHONE is not set | 775 | # CONFIG_PHONE is not set |
744 | 776 | ||
@@ -748,6 +780,7 @@ CONFIG_SLHC=y | |||
748 | CONFIG_INPUT=y | 780 | CONFIG_INPUT=y |
749 | # CONFIG_INPUT_FF_MEMLESS is not set | 781 | # CONFIG_INPUT_FF_MEMLESS is not set |
750 | # CONFIG_INPUT_POLLDEV is not set | 782 | # CONFIG_INPUT_POLLDEV is not set |
783 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
751 | 784 | ||
752 | # | 785 | # |
753 | # Userland interfaces | 786 | # Userland interfaces |
@@ -802,6 +835,7 @@ CONFIG_SERIO_SERPORT=y | |||
802 | CONFIG_SERIO_LIBPS2=y | 835 | CONFIG_SERIO_LIBPS2=y |
803 | # CONFIG_SERIO_RAW is not set | 836 | # CONFIG_SERIO_RAW is not set |
804 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 837 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
838 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
805 | # CONFIG_GAMEPORT is not set | 839 | # CONFIG_GAMEPORT is not set |
806 | 840 | ||
807 | # | 841 | # |
@@ -825,6 +859,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
825 | CONFIG_SERIAL_CPM=y | 859 | CONFIG_SERIAL_CPM=y |
826 | CONFIG_SERIAL_CPM_CONSOLE=y | 860 | CONFIG_SERIAL_CPM_CONSOLE=y |
827 | # CONFIG_SERIAL_JSM is not set | 861 | # CONFIG_SERIAL_JSM is not set |
862 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
828 | CONFIG_UNIX98_PTYS=y | 863 | CONFIG_UNIX98_PTYS=y |
829 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 864 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
830 | CONFIG_LEGACY_PTYS=y | 865 | CONFIG_LEGACY_PTYS=y |
@@ -861,6 +896,7 @@ CONFIG_GPIOLIB=y | |||
861 | # | 896 | # |
862 | # PCI GPIO expanders: | 897 | # PCI GPIO expanders: |
863 | # | 898 | # |
899 | # CONFIG_GPIO_CS5535 is not set | ||
864 | # CONFIG_GPIO_BT8XX is not set | 900 | # CONFIG_GPIO_BT8XX is not set |
865 | # CONFIG_GPIO_LANGWELL is not set | 901 | # CONFIG_GPIO_LANGWELL is not set |
866 | 902 | ||
@@ -955,10 +991,12 @@ CONFIG_USB_ETH_RNDIS=y | |||
955 | # CONFIG_USB_ETH_EEM is not set | 991 | # CONFIG_USB_ETH_EEM is not set |
956 | # CONFIG_USB_GADGETFS is not set | 992 | # CONFIG_USB_GADGETFS is not set |
957 | # CONFIG_USB_FILE_STORAGE is not set | 993 | # CONFIG_USB_FILE_STORAGE is not set |
994 | # CONFIG_USB_MASS_STORAGE is not set | ||
958 | # CONFIG_USB_G_SERIAL is not set | 995 | # CONFIG_USB_G_SERIAL is not set |
959 | # CONFIG_USB_MIDI_GADGET is not set | 996 | # CONFIG_USB_MIDI_GADGET is not set |
960 | # CONFIG_USB_G_PRINTER is not set | 997 | # CONFIG_USB_G_PRINTER is not set |
961 | # CONFIG_USB_CDC_COMPOSITE is not set | 998 | # CONFIG_USB_CDC_COMPOSITE is not set |
999 | # CONFIG_USB_G_MULTI is not set | ||
962 | 1000 | ||
963 | # | 1001 | # |
964 | # OTG and related infrastructure | 1002 | # OTG and related infrastructure |
@@ -1248,7 +1286,11 @@ CONFIG_BDI_SWITCH=y | |||
1248 | # CONFIG_KEYS is not set | 1286 | # CONFIG_KEYS is not set |
1249 | # CONFIG_SECURITY is not set | 1287 | # CONFIG_SECURITY is not set |
1250 | # CONFIG_SECURITYFS is not set | 1288 | # CONFIG_SECURITYFS is not set |
1251 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1289 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1290 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1291 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1292 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1293 | CONFIG_DEFAULT_SECURITY="" | ||
1252 | CONFIG_CRYPTO=y | 1294 | CONFIG_CRYPTO=y |
1253 | 1295 | ||
1254 | # | 1296 | # |
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig index ef50ce45d50..57ab5748a34 100644 --- a/arch/powerpc/configs/prpmc2800_defconfig +++ b/arch/powerpc/configs/prpmc2800_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:18 2009 | 4 | # Wed Jan 6 09:24:12 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -38,6 +38,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 38 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 39 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
40 | CONFIG_IRQ_PER_CPU=y | 40 | CONFIG_IRQ_PER_CPU=y |
41 | CONFIG_NR_IRQS=512 | ||
41 | CONFIG_STACKTRACE_SUPPORT=y | 42 | CONFIG_STACKTRACE_SUPPORT=y |
42 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 43 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
43 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 44 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -60,6 +61,7 @@ CONFIG_AUDIT_ARCH=y | |||
60 | CONFIG_GENERIC_BUG=y | 61 | CONFIG_GENERIC_BUG=y |
61 | CONFIG_DTC=y | 62 | CONFIG_DTC=y |
62 | # CONFIG_DEFAULT_UIMAGE is not set | 63 | # CONFIG_DEFAULT_UIMAGE is not set |
64 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
63 | # CONFIG_PPC_DCR_NATIVE is not set | 65 | # CONFIG_PPC_DCR_NATIVE is not set |
64 | # CONFIG_PPC_DCR_MMIO is not set | 66 | # CONFIG_PPC_DCR_MMIO is not set |
65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -88,6 +90,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
88 | # | 90 | # |
89 | CONFIG_TREE_RCU=y | 91 | CONFIG_TREE_RCU=y |
90 | # CONFIG_TREE_PREEMPT_RCU is not set | 92 | # CONFIG_TREE_PREEMPT_RCU is not set |
93 | # CONFIG_TINY_RCU is not set | ||
91 | # CONFIG_RCU_TRACE is not set | 94 | # CONFIG_RCU_TRACE is not set |
92 | CONFIG_RCU_FANOUT=32 | 95 | CONFIG_RCU_FANOUT=32 |
93 | # CONFIG_RCU_FANOUT_EXACT is not set | 96 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -175,14 +178,41 @@ CONFIG_LBDAF=y | |||
175 | # IO Schedulers | 178 | # IO Schedulers |
176 | # | 179 | # |
177 | CONFIG_IOSCHED_NOOP=y | 180 | CONFIG_IOSCHED_NOOP=y |
178 | CONFIG_IOSCHED_AS=y | ||
179 | # CONFIG_IOSCHED_DEADLINE is not set | 181 | # CONFIG_IOSCHED_DEADLINE is not set |
180 | # CONFIG_IOSCHED_CFQ is not set | 182 | # CONFIG_IOSCHED_CFQ is not set |
181 | CONFIG_DEFAULT_AS=y | ||
182 | # CONFIG_DEFAULT_DEADLINE is not set | 183 | # CONFIG_DEFAULT_DEADLINE is not set |
183 | # CONFIG_DEFAULT_CFQ is not set | 184 | # CONFIG_DEFAULT_CFQ is not set |
184 | # CONFIG_DEFAULT_NOOP is not set | 185 | CONFIG_DEFAULT_NOOP=y |
185 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 186 | CONFIG_DEFAULT_IOSCHED="noop" |
187 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
192 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
195 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
196 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
197 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
198 | # CONFIG_INLINE_READ_LOCK is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
204 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
205 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
206 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
213 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
214 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
215 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
186 | # CONFIG_FREEZER is not set | 216 | # CONFIG_FREEZER is not set |
187 | 217 | ||
188 | # | 218 | # |
@@ -207,6 +237,8 @@ CONFIG_EMBEDDED6xx=y | |||
207 | CONFIG_PPC_PRPMC2800=y | 237 | CONFIG_PPC_PRPMC2800=y |
208 | # CONFIG_PPC_C2K is not set | 238 | # CONFIG_PPC_C2K is not set |
209 | CONFIG_MV64X60=y | 239 | CONFIG_MV64X60=y |
240 | # CONFIG_GAMECUBE is not set | ||
241 | # CONFIG_WII is not set | ||
210 | # CONFIG_AMIGAONE is not set | 242 | # CONFIG_AMIGAONE is not set |
211 | CONFIG_PPC_OF_BOOT_TRAMPOLINE=y | 243 | CONFIG_PPC_OF_BOOT_TRAMPOLINE=y |
212 | # CONFIG_IPIC is not set | 244 | # CONFIG_IPIC is not set |
@@ -252,6 +284,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
252 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 284 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
253 | # CONFIG_KEXEC is not set | 285 | # CONFIG_KEXEC is not set |
254 | # CONFIG_CRASH_DUMP is not set | 286 | # CONFIG_CRASH_DUMP is not set |
287 | CONFIG_SPARSE_IRQ=y | ||
255 | CONFIG_MAX_ACTIVE_REGIONS=32 | 288 | CONFIG_MAX_ACTIVE_REGIONS=32 |
256 | CONFIG_ARCH_FLATMEM_ENABLE=y | 289 | CONFIG_ARCH_FLATMEM_ENABLE=y |
257 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 290 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -268,8 +301,6 @@ CONFIG_MIGRATION=y | |||
268 | CONFIG_ZONE_DMA_FLAG=1 | 301 | CONFIG_ZONE_DMA_FLAG=1 |
269 | CONFIG_BOUNCE=y | 302 | CONFIG_BOUNCE=y |
270 | CONFIG_VIRT_TO_BUS=y | 303 | CONFIG_VIRT_TO_BUS=y |
271 | CONFIG_HAVE_MLOCK=y | ||
272 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
273 | # CONFIG_KSM is not set | 304 | # CONFIG_KSM is not set |
274 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 305 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
275 | CONFIG_PPC_4K_PAGES=y | 306 | CONFIG_PPC_4K_PAGES=y |
@@ -394,9 +425,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
394 | # CONFIG_AF_RXRPC is not set | 425 | # CONFIG_AF_RXRPC is not set |
395 | CONFIG_WIRELESS=y | 426 | CONFIG_WIRELESS=y |
396 | # CONFIG_CFG80211 is not set | 427 | # CONFIG_CFG80211 is not set |
397 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
398 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
399 | # CONFIG_WIRELESS_EXT is not set | ||
400 | # CONFIG_LIB80211 is not set | 428 | # CONFIG_LIB80211 is not set |
401 | 429 | ||
402 | # | 430 | # |
@@ -518,6 +546,10 @@ CONFIG_BLK_DEV=y | |||
518 | # CONFIG_BLK_DEV_COW_COMMON is not set | 546 | # CONFIG_BLK_DEV_COW_COMMON is not set |
519 | CONFIG_BLK_DEV_LOOP=y | 547 | CONFIG_BLK_DEV_LOOP=y |
520 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 548 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
549 | |||
550 | # | ||
551 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
552 | # | ||
521 | # CONFIG_BLK_DEV_NBD is not set | 553 | # CONFIG_BLK_DEV_NBD is not set |
522 | # CONFIG_BLK_DEV_SX8 is not set | 554 | # CONFIG_BLK_DEV_SX8 is not set |
523 | # CONFIG_BLK_DEV_UB is not set | 555 | # CONFIG_BLK_DEV_UB is not set |
@@ -529,6 +561,7 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 | |||
529 | # CONFIG_ATA_OVER_ETH is not set | 561 | # CONFIG_ATA_OVER_ETH is not set |
530 | # CONFIG_BLK_DEV_HD is not set | 562 | # CONFIG_BLK_DEV_HD is not set |
531 | CONFIG_MISC_DEVICES=y | 563 | CONFIG_MISC_DEVICES=y |
564 | # CONFIG_AD525X_DPOT is not set | ||
532 | # CONFIG_PHANTOM is not set | 565 | # CONFIG_PHANTOM is not set |
533 | # CONFIG_SGI_IOC4 is not set | 566 | # CONFIG_SGI_IOC4 is not set |
534 | # CONFIG_TIFM_CORE is not set | 567 | # CONFIG_TIFM_CORE is not set |
@@ -536,6 +569,7 @@ CONFIG_MISC_DEVICES=y | |||
536 | # CONFIG_ENCLOSURE_SERVICES is not set | 569 | # CONFIG_ENCLOSURE_SERVICES is not set |
537 | # CONFIG_HP_ILO is not set | 570 | # CONFIG_HP_ILO is not set |
538 | # CONFIG_ISL29003 is not set | 571 | # CONFIG_ISL29003 is not set |
572 | # CONFIG_DS1682 is not set | ||
539 | # CONFIG_C2PORT is not set | 573 | # CONFIG_C2PORT is not set |
540 | 574 | ||
541 | # | 575 | # |
@@ -641,7 +675,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
641 | # CONFIG_SCSI_BNX2_ISCSI is not set | 675 | # CONFIG_SCSI_BNX2_ISCSI is not set |
642 | # CONFIG_BE2ISCSI is not set | 676 | # CONFIG_BE2ISCSI is not set |
643 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 677 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
678 | # CONFIG_SCSI_HPSA is not set | ||
644 | # CONFIG_SCSI_3W_9XXX is not set | 679 | # CONFIG_SCSI_3W_9XXX is not set |
680 | # CONFIG_SCSI_3W_SAS is not set | ||
645 | # CONFIG_SCSI_ACARD is not set | 681 | # CONFIG_SCSI_ACARD is not set |
646 | # CONFIG_SCSI_AACRAID is not set | 682 | # CONFIG_SCSI_AACRAID is not set |
647 | # CONFIG_SCSI_AIC7XXX is not set | 683 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -680,6 +716,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
680 | # CONFIG_SCSI_NSP32 is not set | 716 | # CONFIG_SCSI_NSP32 is not set |
681 | # CONFIG_SCSI_DEBUG is not set | 717 | # CONFIG_SCSI_DEBUG is not set |
682 | # CONFIG_SCSI_PMCRAID is not set | 718 | # CONFIG_SCSI_PMCRAID is not set |
719 | # CONFIG_SCSI_PM8001 is not set | ||
683 | # CONFIG_SCSI_SRP is not set | 720 | # CONFIG_SCSI_SRP is not set |
684 | # CONFIG_SCSI_BFA_FC is not set | 721 | # CONFIG_SCSI_BFA_FC is not set |
685 | # CONFIG_SCSI_DH is not set | 722 | # CONFIG_SCSI_DH is not set |
@@ -734,15 +771,16 @@ CONFIG_SATA_MV=y | |||
734 | # CONFIG_PATA_NS87415 is not set | 771 | # CONFIG_PATA_NS87415 is not set |
735 | # CONFIG_PATA_OPTI is not set | 772 | # CONFIG_PATA_OPTI is not set |
736 | # CONFIG_PATA_OPTIDMA is not set | 773 | # CONFIG_PATA_OPTIDMA is not set |
774 | # CONFIG_PATA_PDC2027X is not set | ||
737 | # CONFIG_PATA_PDC_OLD is not set | 775 | # CONFIG_PATA_PDC_OLD is not set |
738 | # CONFIG_PATA_RADISYS is not set | 776 | # CONFIG_PATA_RADISYS is not set |
739 | # CONFIG_PATA_RDC is not set | 777 | # CONFIG_PATA_RDC is not set |
740 | # CONFIG_PATA_RZ1000 is not set | 778 | # CONFIG_PATA_RZ1000 is not set |
741 | # CONFIG_PATA_SC1200 is not set | 779 | # CONFIG_PATA_SC1200 is not set |
742 | # CONFIG_PATA_SERVERWORKS is not set | 780 | # CONFIG_PATA_SERVERWORKS is not set |
743 | # CONFIG_PATA_PDC2027X is not set | ||
744 | # CONFIG_PATA_SIL680 is not set | 781 | # CONFIG_PATA_SIL680 is not set |
745 | # CONFIG_PATA_SIS is not set | 782 | # CONFIG_PATA_SIS is not set |
783 | # CONFIG_PATA_TOSHIBA is not set | ||
746 | # CONFIG_PATA_VIA is not set | 784 | # CONFIG_PATA_VIA is not set |
747 | # CONFIG_PATA_WINBOND is not set | 785 | # CONFIG_PATA_WINBOND is not set |
748 | # CONFIG_PATA_PLATFORM is not set | 786 | # CONFIG_PATA_PLATFORM is not set |
@@ -759,7 +797,7 @@ CONFIG_SATA_MV=y | |||
759 | # | 797 | # |
760 | 798 | ||
761 | # | 799 | # |
762 | # See the help texts for more information. | 800 | # The newer stack is recommended. |
763 | # | 801 | # |
764 | # CONFIG_FIREWIRE is not set | 802 | # CONFIG_FIREWIRE is not set |
765 | # CONFIG_IEEE1394 is not set | 803 | # CONFIG_IEEE1394 is not set |
@@ -886,8 +924,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
886 | # CONFIG_BE2NET is not set | 924 | # CONFIG_BE2NET is not set |
887 | # CONFIG_TR is not set | 925 | # CONFIG_TR is not set |
888 | CONFIG_WLAN=y | 926 | CONFIG_WLAN=y |
889 | # CONFIG_WLAN_PRE80211 is not set | 927 | # CONFIG_AIRO is not set |
890 | # CONFIG_WLAN_80211 is not set | 928 | # CONFIG_ATMEL is not set |
929 | # CONFIG_PRISM54 is not set | ||
930 | # CONFIG_USB_ZD1201 is not set | ||
931 | # CONFIG_HOSTAP is not set | ||
891 | 932 | ||
892 | # | 933 | # |
893 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 934 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -910,6 +951,7 @@ CONFIG_WLAN=y | |||
910 | # CONFIG_NETCONSOLE is not set | 951 | # CONFIG_NETCONSOLE is not set |
911 | # CONFIG_NETPOLL is not set | 952 | # CONFIG_NETPOLL is not set |
912 | # CONFIG_NET_POLL_CONTROLLER is not set | 953 | # CONFIG_NET_POLL_CONTROLLER is not set |
954 | # CONFIG_VMXNET3 is not set | ||
913 | # CONFIG_ISDN is not set | 955 | # CONFIG_ISDN is not set |
914 | # CONFIG_PHONE is not set | 956 | # CONFIG_PHONE is not set |
915 | 957 | ||
@@ -919,6 +961,7 @@ CONFIG_WLAN=y | |||
919 | CONFIG_INPUT=y | 961 | CONFIG_INPUT=y |
920 | CONFIG_INPUT_FF_MEMLESS=y | 962 | CONFIG_INPUT_FF_MEMLESS=y |
921 | # CONFIG_INPUT_POLLDEV is not set | 963 | # CONFIG_INPUT_POLLDEV is not set |
964 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
922 | 965 | ||
923 | # | 966 | # |
924 | # Userland interfaces | 967 | # Userland interfaces |
@@ -973,6 +1016,7 @@ CONFIG_SERIAL_MPSC_CONSOLE=y | |||
973 | CONFIG_SERIAL_CORE=y | 1016 | CONFIG_SERIAL_CORE=y |
974 | CONFIG_SERIAL_CORE_CONSOLE=y | 1017 | CONFIG_SERIAL_CORE_CONSOLE=y |
975 | # CONFIG_SERIAL_JSM is not set | 1018 | # CONFIG_SERIAL_JSM is not set |
1019 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
976 | CONFIG_UNIX98_PTYS=y | 1020 | CONFIG_UNIX98_PTYS=y |
977 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 1021 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
978 | CONFIG_LEGACY_PTYS=y | 1022 | CONFIG_LEGACY_PTYS=y |
@@ -1030,11 +1074,6 @@ CONFIG_I2C_MV64XXX=y | |||
1030 | # CONFIG_I2C_TINY_USB is not set | 1074 | # CONFIG_I2C_TINY_USB is not set |
1031 | 1075 | ||
1032 | # | 1076 | # |
1033 | # Graphics adapter I2C/DDC channel drivers | ||
1034 | # | ||
1035 | # CONFIG_I2C_VOODOO3 is not set | ||
1036 | |||
1037 | # | ||
1038 | # Other I2C/SMBus bus drivers | 1077 | # Other I2C/SMBus bus drivers |
1039 | # | 1078 | # |
1040 | # CONFIG_I2C_PCA_PLATFORM is not set | 1079 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -1042,7 +1081,6 @@ CONFIG_I2C_MV64XXX=y | |||
1042 | # | 1081 | # |
1043 | # Miscellaneous I2C Chip support | 1082 | # Miscellaneous I2C Chip support |
1044 | # | 1083 | # |
1045 | # CONFIG_DS1682 is not set | ||
1046 | # CONFIG_SENSORS_TSL2550 is not set | 1084 | # CONFIG_SENSORS_TSL2550 is not set |
1047 | # CONFIG_I2C_DEBUG_CORE is not set | 1085 | # CONFIG_I2C_DEBUG_CORE is not set |
1048 | # CONFIG_I2C_DEBUG_ALGO is not set | 1086 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1088,6 +1126,7 @@ CONFIG_HWMON=y | |||
1088 | # CONFIG_SENSORS_GL520SM is not set | 1126 | # CONFIG_SENSORS_GL520SM is not set |
1089 | # CONFIG_SENSORS_IT87 is not set | 1127 | # CONFIG_SENSORS_IT87 is not set |
1090 | # CONFIG_SENSORS_LM63 is not set | 1128 | # CONFIG_SENSORS_LM63 is not set |
1129 | # CONFIG_SENSORS_LM73 is not set | ||
1091 | # CONFIG_SENSORS_LM75 is not set | 1130 | # CONFIG_SENSORS_LM75 is not set |
1092 | # CONFIG_SENSORS_LM77 is not set | 1131 | # CONFIG_SENSORS_LM77 is not set |
1093 | # CONFIG_SENSORS_LM78 is not set | 1132 | # CONFIG_SENSORS_LM78 is not set |
@@ -1126,6 +1165,7 @@ CONFIG_HWMON=y | |||
1126 | # CONFIG_SENSORS_W83L786NG is not set | 1165 | # CONFIG_SENSORS_W83L786NG is not set |
1127 | # CONFIG_SENSORS_W83627HF is not set | 1166 | # CONFIG_SENSORS_W83627HF is not set |
1128 | # CONFIG_SENSORS_W83627EHF is not set | 1167 | # CONFIG_SENSORS_W83627EHF is not set |
1168 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1129 | # CONFIG_THERMAL is not set | 1169 | # CONFIG_THERMAL is not set |
1130 | # CONFIG_WATCHDOG is not set | 1170 | # CONFIG_WATCHDOG is not set |
1131 | CONFIG_SSB_POSSIBLE=y | 1171 | CONFIG_SSB_POSSIBLE=y |
@@ -1144,11 +1184,13 @@ CONFIG_SSB_POSSIBLE=y | |||
1144 | # CONFIG_TWL4030_CORE is not set | 1184 | # CONFIG_TWL4030_CORE is not set |
1145 | # CONFIG_MFD_TMIO is not set | 1185 | # CONFIG_MFD_TMIO is not set |
1146 | # CONFIG_PMIC_DA903X is not set | 1186 | # CONFIG_PMIC_DA903X is not set |
1187 | # CONFIG_PMIC_ADP5520 is not set | ||
1147 | # CONFIG_MFD_WM8400 is not set | 1188 | # CONFIG_MFD_WM8400 is not set |
1148 | # CONFIG_MFD_WM831X is not set | 1189 | # CONFIG_MFD_WM831X is not set |
1149 | # CONFIG_MFD_WM8350_I2C is not set | 1190 | # CONFIG_MFD_WM8350_I2C is not set |
1150 | # CONFIG_MFD_PCF50633 is not set | 1191 | # CONFIG_MFD_PCF50633 is not set |
1151 | # CONFIG_AB3100_CORE is not set | 1192 | # CONFIG_AB3100_CORE is not set |
1193 | # CONFIG_MFD_88PM8607 is not set | ||
1152 | # CONFIG_REGULATOR is not set | 1194 | # CONFIG_REGULATOR is not set |
1153 | # CONFIG_MEDIA_SUPPORT is not set | 1195 | # CONFIG_MEDIA_SUPPORT is not set |
1154 | 1196 | ||
@@ -1250,6 +1292,7 @@ CONFIG_USB_MON=y | |||
1250 | CONFIG_USB_EHCI_HCD=y | 1292 | CONFIG_USB_EHCI_HCD=y |
1251 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1293 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1252 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1294 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1295 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1253 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1296 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1254 | # CONFIG_USB_OXU210HP_HCD is not set | 1297 | # CONFIG_USB_OXU210HP_HCD is not set |
1255 | # CONFIG_USB_ISP116X_HCD is not set | 1298 | # CONFIG_USB_ISP116X_HCD is not set |
@@ -1362,6 +1405,7 @@ CONFIG_RTC_DRV_MAX6900=y | |||
1362 | # CONFIG_RTC_DRV_PCF8563 is not set | 1405 | # CONFIG_RTC_DRV_PCF8563 is not set |
1363 | # CONFIG_RTC_DRV_PCF8583 is not set | 1406 | # CONFIG_RTC_DRV_PCF8583 is not set |
1364 | # CONFIG_RTC_DRV_M41T80 is not set | 1407 | # CONFIG_RTC_DRV_M41T80 is not set |
1408 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1365 | # CONFIG_RTC_DRV_S35390A is not set | 1409 | # CONFIG_RTC_DRV_S35390A is not set |
1366 | # CONFIG_RTC_DRV_FM3130 is not set | 1410 | # CONFIG_RTC_DRV_FM3130 is not set |
1367 | # CONFIG_RTC_DRV_RX8581 is not set | 1411 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1383,7 +1427,9 @@ CONFIG_RTC_DRV_MAX6900=y | |||
1383 | # CONFIG_RTC_DRV_M48T86 is not set | 1427 | # CONFIG_RTC_DRV_M48T86 is not set |
1384 | # CONFIG_RTC_DRV_M48T35 is not set | 1428 | # CONFIG_RTC_DRV_M48T35 is not set |
1385 | # CONFIG_RTC_DRV_M48T59 is not set | 1429 | # CONFIG_RTC_DRV_M48T59 is not set |
1430 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1386 | # CONFIG_RTC_DRV_BQ4802 is not set | 1431 | # CONFIG_RTC_DRV_BQ4802 is not set |
1432 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1387 | # CONFIG_RTC_DRV_V3020 is not set | 1433 | # CONFIG_RTC_DRV_V3020 is not set |
1388 | 1434 | ||
1389 | # | 1435 | # |
@@ -1626,7 +1672,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1626 | # CONFIG_KEYS is not set | 1672 | # CONFIG_KEYS is not set |
1627 | # CONFIG_SECURITY is not set | 1673 | # CONFIG_SECURITY is not set |
1628 | # CONFIG_SECURITYFS is not set | 1674 | # CONFIG_SECURITYFS is not set |
1629 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1675 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1676 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1677 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1678 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1679 | CONFIG_DEFAULT_SECURITY="" | ||
1630 | CONFIG_CRYPTO=y | 1680 | CONFIG_CRYPTO=y |
1631 | 1681 | ||
1632 | # | 1682 | # |
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig index 524263158fc..f2f83216146 100644 --- a/arch/powerpc/configs/storcenter_defconfig +++ b/arch/powerpc/configs/storcenter_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.32-rc5 | 3 | # Linux kernel version: 2.6.33-rc3 |
4 | # Thu Nov 5 08:20:19 2009 | 4 | # Wed Jan 6 09:24:13 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -36,6 +36,7 @@ CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | |||
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | 37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set |
38 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
39 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -58,6 +59,7 @@ CONFIG_AUDIT_ARCH=y | |||
58 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | 60 | CONFIG_DTC=y |
60 | # CONFIG_DEFAULT_UIMAGE is not set | 61 | # CONFIG_DEFAULT_UIMAGE is not set |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
61 | # CONFIG_PPC_DCR_NATIVE is not set | 63 | # CONFIG_PPC_DCR_NATIVE is not set |
62 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
63 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
@@ -85,6 +87,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
85 | # | 87 | # |
86 | CONFIG_TREE_RCU=y | 88 | CONFIG_TREE_RCU=y |
87 | # CONFIG_TREE_PREEMPT_RCU is not set | 89 | # CONFIG_TREE_PREEMPT_RCU is not set |
90 | # CONFIG_TINY_RCU is not set | ||
88 | # CONFIG_RCU_TRACE is not set | 91 | # CONFIG_RCU_TRACE is not set |
89 | CONFIG_RCU_FANOUT=32 | 92 | CONFIG_RCU_FANOUT=32 |
90 | # CONFIG_RCU_FANOUT_EXACT is not set | 93 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -167,14 +170,41 @@ CONFIG_LBDAF=y | |||
167 | # IO Schedulers | 170 | # IO Schedulers |
168 | # | 171 | # |
169 | CONFIG_IOSCHED_NOOP=y | 172 | CONFIG_IOSCHED_NOOP=y |
170 | CONFIG_IOSCHED_AS=y | ||
171 | CONFIG_IOSCHED_DEADLINE=y | 173 | CONFIG_IOSCHED_DEADLINE=y |
172 | CONFIG_IOSCHED_CFQ=y | 174 | CONFIG_IOSCHED_CFQ=y |
173 | # CONFIG_DEFAULT_AS is not set | ||
174 | # CONFIG_DEFAULT_DEADLINE is not set | 175 | # CONFIG_DEFAULT_DEADLINE is not set |
175 | CONFIG_DEFAULT_CFQ=y | 176 | CONFIG_DEFAULT_CFQ=y |
176 | # CONFIG_DEFAULT_NOOP is not set | 177 | # CONFIG_DEFAULT_NOOP is not set |
177 | CONFIG_DEFAULT_IOSCHED="cfq" | 178 | CONFIG_DEFAULT_IOSCHED="cfq" |
179 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
180 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
181 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
182 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
183 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
184 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
185 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
186 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
187 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
188 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
189 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
190 | # CONFIG_INLINE_READ_LOCK is not set | ||
191 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
192 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
193 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
194 | CONFIG_INLINE_READ_UNLOCK=y | ||
195 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
196 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
197 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
198 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
199 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
200 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
201 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
202 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
203 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
204 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
205 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
206 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
207 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
178 | # CONFIG_FREEZER is not set | 208 | # CONFIG_FREEZER is not set |
179 | 209 | ||
180 | # | 210 | # |
@@ -201,6 +231,8 @@ CONFIG_STORCENTER=y | |||
201 | CONFIG_MPC10X_BRIDGE=y | 231 | CONFIG_MPC10X_BRIDGE=y |
202 | CONFIG_MPC10X_OPENPIC=y | 232 | CONFIG_MPC10X_OPENPIC=y |
203 | # CONFIG_MPC10X_STORE_GATHERING is not set | 233 | # CONFIG_MPC10X_STORE_GATHERING is not set |
234 | # CONFIG_GAMECUBE is not set | ||
235 | # CONFIG_WII is not set | ||
204 | # CONFIG_AMIGAONE is not set | 236 | # CONFIG_AMIGAONE is not set |
205 | CONFIG_PPC_OF_BOOT_TRAMPOLINE=y | 237 | CONFIG_PPC_OF_BOOT_TRAMPOLINE=y |
206 | # CONFIG_IPIC is not set | 238 | # CONFIG_IPIC is not set |
@@ -246,6 +278,7 @@ CONFIG_ARCH_HAS_WALK_MEMORY=y | |||
246 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 278 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
247 | # CONFIG_KEXEC is not set | 279 | # CONFIG_KEXEC is not set |
248 | # CONFIG_CRASH_DUMP is not set | 280 | # CONFIG_CRASH_DUMP is not set |
281 | CONFIG_SPARSE_IRQ=y | ||
249 | CONFIG_MAX_ACTIVE_REGIONS=32 | 282 | CONFIG_MAX_ACTIVE_REGIONS=32 |
250 | CONFIG_ARCH_FLATMEM_ENABLE=y | 283 | CONFIG_ARCH_FLATMEM_ENABLE=y |
251 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 284 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -262,8 +295,6 @@ CONFIG_MIGRATION=y | |||
262 | CONFIG_ZONE_DMA_FLAG=1 | 295 | CONFIG_ZONE_DMA_FLAG=1 |
263 | CONFIG_BOUNCE=y | 296 | CONFIG_BOUNCE=y |
264 | CONFIG_VIRT_TO_BUS=y | 297 | CONFIG_VIRT_TO_BUS=y |
265 | CONFIG_HAVE_MLOCK=y | ||
266 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
267 | # CONFIG_KSM is not set | 298 | # CONFIG_KSM is not set |
268 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 299 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
269 | CONFIG_PPC_4K_PAGES=y | 300 | CONFIG_PPC_4K_PAGES=y |
@@ -384,9 +415,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
384 | # CONFIG_AF_RXRPC is not set | 415 | # CONFIG_AF_RXRPC is not set |
385 | CONFIG_WIRELESS=y | 416 | CONFIG_WIRELESS=y |
386 | # CONFIG_CFG80211 is not set | 417 | # CONFIG_CFG80211 is not set |
387 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
388 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
389 | # CONFIG_WIRELESS_EXT is not set | ||
390 | # CONFIG_LIB80211 is not set | 418 | # CONFIG_LIB80211 is not set |
391 | 419 | ||
392 | # | 420 | # |
@@ -507,6 +535,10 @@ CONFIG_BLK_DEV=y | |||
507 | # CONFIG_BLK_DEV_UMEM is not set | 535 | # CONFIG_BLK_DEV_UMEM is not set |
508 | # CONFIG_BLK_DEV_COW_COMMON is not set | 536 | # CONFIG_BLK_DEV_COW_COMMON is not set |
509 | # CONFIG_BLK_DEV_LOOP is not set | 537 | # CONFIG_BLK_DEV_LOOP is not set |
538 | |||
539 | # | ||
540 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
541 | # | ||
510 | # CONFIG_BLK_DEV_NBD is not set | 542 | # CONFIG_BLK_DEV_NBD is not set |
511 | # CONFIG_BLK_DEV_SX8 is not set | 543 | # CONFIG_BLK_DEV_SX8 is not set |
512 | # CONFIG_BLK_DEV_UB is not set | 544 | # CONFIG_BLK_DEV_UB is not set |
@@ -515,6 +547,7 @@ CONFIG_BLK_DEV=y | |||
515 | # CONFIG_ATA_OVER_ETH is not set | 547 | # CONFIG_ATA_OVER_ETH is not set |
516 | # CONFIG_BLK_DEV_HD is not set | 548 | # CONFIG_BLK_DEV_HD is not set |
517 | CONFIG_MISC_DEVICES=y | 549 | CONFIG_MISC_DEVICES=y |
550 | # CONFIG_AD525X_DPOT is not set | ||
518 | # CONFIG_PHANTOM is not set | 551 | # CONFIG_PHANTOM is not set |
519 | # CONFIG_SGI_IOC4 is not set | 552 | # CONFIG_SGI_IOC4 is not set |
520 | # CONFIG_TIFM_CORE is not set | 553 | # CONFIG_TIFM_CORE is not set |
@@ -522,6 +555,7 @@ CONFIG_MISC_DEVICES=y | |||
522 | # CONFIG_ENCLOSURE_SERVICES is not set | 555 | # CONFIG_ENCLOSURE_SERVICES is not set |
523 | # CONFIG_HP_ILO is not set | 556 | # CONFIG_HP_ILO is not set |
524 | # CONFIG_ISL29003 is not set | 557 | # CONFIG_ISL29003 is not set |
558 | # CONFIG_DS1682 is not set | ||
525 | # CONFIG_C2PORT is not set | 559 | # CONFIG_C2PORT is not set |
526 | 560 | ||
527 | # | 561 | # |
@@ -628,7 +662,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
628 | # CONFIG_SCSI_BNX2_ISCSI is not set | 662 | # CONFIG_SCSI_BNX2_ISCSI is not set |
629 | # CONFIG_BE2ISCSI is not set | 663 | # CONFIG_BE2ISCSI is not set |
630 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 664 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
665 | # CONFIG_SCSI_HPSA is not set | ||
631 | # CONFIG_SCSI_3W_9XXX is not set | 666 | # CONFIG_SCSI_3W_9XXX is not set |
667 | # CONFIG_SCSI_3W_SAS is not set | ||
632 | # CONFIG_SCSI_ACARD is not set | 668 | # CONFIG_SCSI_ACARD is not set |
633 | # CONFIG_SCSI_AACRAID is not set | 669 | # CONFIG_SCSI_AACRAID is not set |
634 | # CONFIG_SCSI_AIC7XXX is not set | 670 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -666,6 +702,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
666 | # CONFIG_SCSI_NSP32 is not set | 702 | # CONFIG_SCSI_NSP32 is not set |
667 | # CONFIG_SCSI_DEBUG is not set | 703 | # CONFIG_SCSI_DEBUG is not set |
668 | # CONFIG_SCSI_PMCRAID is not set | 704 | # CONFIG_SCSI_PMCRAID is not set |
705 | # CONFIG_SCSI_PM8001 is not set | ||
669 | # CONFIG_SCSI_SRP is not set | 706 | # CONFIG_SCSI_SRP is not set |
670 | # CONFIG_SCSI_BFA_FC is not set | 707 | # CONFIG_SCSI_BFA_FC is not set |
671 | # CONFIG_SCSI_DH is not set | 708 | # CONFIG_SCSI_DH is not set |
@@ -695,7 +732,7 @@ CONFIG_MD_RAID6_PQ=y | |||
695 | # | 732 | # |
696 | 733 | ||
697 | # | 734 | # |
698 | # See the help texts for more information. | 735 | # The newer stack is recommended. |
699 | # | 736 | # |
700 | # CONFIG_FIREWIRE is not set | 737 | # CONFIG_FIREWIRE is not set |
701 | # CONFIG_IEEE1394 is not set | 738 | # CONFIG_IEEE1394 is not set |
@@ -741,8 +778,11 @@ CONFIG_R8169=y | |||
741 | # CONFIG_NETDEV_10000 is not set | 778 | # CONFIG_NETDEV_10000 is not set |
742 | # CONFIG_TR is not set | 779 | # CONFIG_TR is not set |
743 | CONFIG_WLAN=y | 780 | CONFIG_WLAN=y |
744 | # CONFIG_WLAN_PRE80211 is not set | 781 | # CONFIG_AIRO is not set |
745 | # CONFIG_WLAN_80211 is not set | 782 | # CONFIG_ATMEL is not set |
783 | # CONFIG_PRISM54 is not set | ||
784 | # CONFIG_USB_ZD1201 is not set | ||
785 | # CONFIG_HOSTAP is not set | ||
746 | 786 | ||
747 | # | 787 | # |
748 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 788 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -765,6 +805,7 @@ CONFIG_WLAN=y | |||
765 | # CONFIG_NETCONSOLE is not set | 805 | # CONFIG_NETCONSOLE is not set |
766 | # CONFIG_NETPOLL is not set | 806 | # CONFIG_NETPOLL is not set |
767 | # CONFIG_NET_POLL_CONTROLLER is not set | 807 | # CONFIG_NET_POLL_CONTROLLER is not set |
808 | # CONFIG_VMXNET3 is not set | ||
768 | # CONFIG_ISDN is not set | 809 | # CONFIG_ISDN is not set |
769 | # CONFIG_PHONE is not set | 810 | # CONFIG_PHONE is not set |
770 | 811 | ||
@@ -805,6 +846,7 @@ CONFIG_SERIAL_CORE=y | |||
805 | CONFIG_SERIAL_CORE_CONSOLE=y | 846 | CONFIG_SERIAL_CORE_CONSOLE=y |
806 | # CONFIG_SERIAL_JSM is not set | 847 | # CONFIG_SERIAL_JSM is not set |
807 | # CONFIG_SERIAL_OF_PLATFORM is not set | 848 | # CONFIG_SERIAL_OF_PLATFORM is not set |
849 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
808 | CONFIG_UNIX98_PTYS=y | 850 | CONFIG_UNIX98_PTYS=y |
809 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 851 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
810 | CONFIG_LEGACY_PTYS=y | 852 | CONFIG_LEGACY_PTYS=y |
@@ -862,11 +904,6 @@ CONFIG_I2C_MPC=y | |||
862 | # CONFIG_I2C_TINY_USB is not set | 904 | # CONFIG_I2C_TINY_USB is not set |
863 | 905 | ||
864 | # | 906 | # |
865 | # Graphics adapter I2C/DDC channel drivers | ||
866 | # | ||
867 | # CONFIG_I2C_VOODOO3 is not set | ||
868 | |||
869 | # | ||
870 | # Other I2C/SMBus bus drivers | 907 | # Other I2C/SMBus bus drivers |
871 | # | 908 | # |
872 | # CONFIG_I2C_PCA_PLATFORM is not set | 909 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -875,7 +912,6 @@ CONFIG_I2C_MPC=y | |||
875 | # | 912 | # |
876 | # Miscellaneous I2C Chip support | 913 | # Miscellaneous I2C Chip support |
877 | # | 914 | # |
878 | # CONFIG_DS1682 is not set | ||
879 | # CONFIG_SENSORS_TSL2550 is not set | 915 | # CONFIG_SENSORS_TSL2550 is not set |
880 | # CONFIG_I2C_DEBUG_CORE is not set | 916 | # CONFIG_I2C_DEBUG_CORE is not set |
881 | # CONFIG_I2C_DEBUG_ALGO is not set | 917 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -910,11 +946,13 @@ CONFIG_SSB_POSSIBLE=y | |||
910 | # CONFIG_TWL4030_CORE is not set | 946 | # CONFIG_TWL4030_CORE is not set |
911 | # CONFIG_MFD_TMIO is not set | 947 | # CONFIG_MFD_TMIO is not set |
912 | # CONFIG_PMIC_DA903X is not set | 948 | # CONFIG_PMIC_DA903X is not set |
949 | # CONFIG_PMIC_ADP5520 is not set | ||
913 | # CONFIG_MFD_WM8400 is not set | 950 | # CONFIG_MFD_WM8400 is not set |
914 | # CONFIG_MFD_WM831X is not set | 951 | # CONFIG_MFD_WM831X is not set |
915 | # CONFIG_MFD_WM8350_I2C is not set | 952 | # CONFIG_MFD_WM8350_I2C is not set |
916 | # CONFIG_MFD_PCF50633 is not set | 953 | # CONFIG_MFD_PCF50633 is not set |
917 | # CONFIG_AB3100_CORE is not set | 954 | # CONFIG_AB3100_CORE is not set |
955 | # CONFIG_MFD_88PM8607 is not set | ||
918 | # CONFIG_REGULATOR is not set | 956 | # CONFIG_REGULATOR is not set |
919 | # CONFIG_MEDIA_SUPPORT is not set | 957 | # CONFIG_MEDIA_SUPPORT is not set |
920 | 958 | ||
@@ -963,6 +1001,7 @@ CONFIG_USB_DEVICE_CLASS=y | |||
963 | CONFIG_USB_EHCI_HCD=y | 1001 | CONFIG_USB_EHCI_HCD=y |
964 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1002 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
965 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1003 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1004 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
966 | # CONFIG_USB_EHCI_FSL is not set | 1005 | # CONFIG_USB_EHCI_FSL is not set |
967 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1006 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
968 | # CONFIG_USB_OXU210HP_HCD is not set | 1007 | # CONFIG_USB_OXU210HP_HCD is not set |
@@ -1087,6 +1126,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1087 | # CONFIG_RTC_DRV_PCF8563 is not set | 1126 | # CONFIG_RTC_DRV_PCF8563 is not set |
1088 | # CONFIG_RTC_DRV_PCF8583 is not set | 1127 | # CONFIG_RTC_DRV_PCF8583 is not set |
1089 | # CONFIG_RTC_DRV_M41T80 is not set | 1128 | # CONFIG_RTC_DRV_M41T80 is not set |
1129 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1090 | # CONFIG_RTC_DRV_S35390A is not set | 1130 | # CONFIG_RTC_DRV_S35390A is not set |
1091 | # CONFIG_RTC_DRV_FM3130 is not set | 1131 | # CONFIG_RTC_DRV_FM3130 is not set |
1092 | # CONFIG_RTC_DRV_RX8581 is not set | 1132 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1108,7 +1148,9 @@ CONFIG_RTC_DRV_DS1307=y | |||
1108 | # CONFIG_RTC_DRV_M48T86 is not set | 1148 | # CONFIG_RTC_DRV_M48T86 is not set |
1109 | # CONFIG_RTC_DRV_M48T35 is not set | 1149 | # CONFIG_RTC_DRV_M48T35 is not set |
1110 | # CONFIG_RTC_DRV_M48T59 is not set | 1150 | # CONFIG_RTC_DRV_M48T59 is not set |
1151 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1111 | # CONFIG_RTC_DRV_BQ4802 is not set | 1152 | # CONFIG_RTC_DRV_BQ4802 is not set |
1153 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1112 | # CONFIG_RTC_DRV_V3020 is not set | 1154 | # CONFIG_RTC_DRV_V3020 is not set |
1113 | 1155 | ||
1114 | # | 1156 | # |
@@ -1322,7 +1364,7 @@ CONFIG_FRAME_WARN=1024 | |||
1322 | # CONFIG_DEBUG_KERNEL is not set | 1364 | # CONFIG_DEBUG_KERNEL is not set |
1323 | # CONFIG_SLUB_DEBUG_ON is not set | 1365 | # CONFIG_SLUB_DEBUG_ON is not set |
1324 | # CONFIG_SLUB_STATS is not set | 1366 | # CONFIG_SLUB_STATS is not set |
1325 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1367 | CONFIG_DEBUG_BUGVERBOSE=y |
1326 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1368 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1327 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1369 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1328 | # CONFIG_LATENCYTOP is not set | 1370 | # CONFIG_LATENCYTOP is not set |
@@ -1349,7 +1391,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1349 | # CONFIG_KEYS is not set | 1391 | # CONFIG_KEYS is not set |
1350 | # CONFIG_SECURITY is not set | 1392 | # CONFIG_SECURITY is not set |
1351 | # CONFIG_SECURITYFS is not set | 1393 | # CONFIG_SECURITYFS is not set |
1352 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1394 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1395 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1396 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1397 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1398 | CONFIG_DEFAULT_SECURITY="" | ||
1353 | CONFIG_XOR_BLOCKS=y | 1399 | CONFIG_XOR_BLOCKS=y |
1354 | CONFIG_ASYNC_CORE=y | 1400 | CONFIG_ASYNC_CORE=y |
1355 | CONFIG_ASYNC_MEMCPY=y | 1401 | CONFIG_ASYNC_MEMCPY=y |
diff --git a/arch/powerpc/include/asm/topology.h b/arch/powerpc/include/asm/topology.h index 22f738d12ad..bbf89701d7a 100644 --- a/arch/powerpc/include/asm/topology.h +++ b/arch/powerpc/include/asm/topology.h | |||
@@ -17,7 +17,9 @@ static inline int cpu_to_node(int cpu) | |||
17 | 17 | ||
18 | #define parent_node(node) (node) | 18 | #define parent_node(node) (node) |
19 | 19 | ||
20 | #define cpumask_of_node(node) (&numa_cpumask_lookup_table[node]) | 20 | #define cpumask_of_node(node) ((node) == -1 ? \ |
21 | cpu_all_mask : \ | ||
22 | &numa_cpumask_lookup_table[node]) | ||
21 | 23 | ||
22 | int of_node_to_nid(struct device_node *device); | 24 | int of_node_to_nid(struct device_node *device); |
23 | 25 | ||
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S index 678f98cd5e6..3ef743fa5d7 100644 --- a/arch/powerpc/kernel/head_8xx.S +++ b/arch/powerpc/kernel/head_8xx.S | |||
@@ -542,11 +542,11 @@ DARFixed:/* Return from dcbx instruction bug workaround, r10 holds value of DAR | |||
542 | FixupDAR:/* Entry point for dcbx workaround. */ | 542 | FixupDAR:/* Entry point for dcbx workaround. */ |
543 | /* fetch instruction from memory. */ | 543 | /* fetch instruction from memory. */ |
544 | mfspr r10, SPRN_SRR0 | 544 | mfspr r10, SPRN_SRR0 |
545 | andis. r11, r10, 0x8000 /* Address >= 0x80000000 */ | ||
545 | DO_8xx_CPU6(0x3780, r3) | 546 | DO_8xx_CPU6(0x3780, r3) |
546 | mtspr SPRN_MD_EPN, r10 | 547 | mtspr SPRN_MD_EPN, r10 |
547 | mfspr r11, SPRN_M_TWB /* Get level 1 table entry address */ | 548 | mfspr r11, SPRN_M_TWB /* Get level 1 table entry address */ |
548 | cmplwi cr0, r11, 0x0800 | 549 | beq- 3f /* Branch if user space */ |
549 | blt- 3f /* Branch if user space */ | ||
550 | lis r11, (swapper_pg_dir-PAGE_OFFSET)@h | 550 | lis r11, (swapper_pg_dir-PAGE_OFFSET)@h |
551 | ori r11, r11, (swapper_pg_dir-PAGE_OFFSET)@l | 551 | ori r11, r11, (swapper_pg_dir-PAGE_OFFSET)@l |
552 | rlwimi r11, r10, 32-20, 0xffc /* r11 = r11&~0xffc|(r10>>20)&0xffc */ | 552 | rlwimi r11, r10, 32-20, 0xffc /* r11 = r11&~0xffc|(r10>>20)&0xffc */ |
@@ -768,12 +768,12 @@ start_here: | |||
768 | */ | 768 | */ |
769 | initial_mmu: | 769 | initial_mmu: |
770 | tlbia /* Invalidate all TLB entries */ | 770 | tlbia /* Invalidate all TLB entries */ |
771 | #ifdef CONFIG_PIN_TLB | 771 | /* Always pin the first 8 MB ITLB to prevent ITLB |
772 | misses while mucking around with SRR0/SRR1 in asm | ||
773 | */ | ||
772 | lis r8, MI_RSV4I@h | 774 | lis r8, MI_RSV4I@h |
773 | ori r8, r8, 0x1c00 | 775 | ori r8, r8, 0x1c00 |
774 | #else | 776 | |
775 | li r8, 0 | ||
776 | #endif | ||
777 | mtspr SPRN_MI_CTR, r8 /* Set instruction MMU control */ | 777 | mtspr SPRN_MI_CTR, r8 /* Set instruction MMU control */ |
778 | 778 | ||
779 | #ifdef CONFIG_PIN_TLB | 779 | #ifdef CONFIG_PIN_TLB |
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index e8dfdbd9327..cadbed679fb 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c | |||
@@ -1107,6 +1107,12 @@ void __devinit pcibios_setup_bus_devices(struct pci_bus *bus) | |||
1107 | list_for_each_entry(dev, &bus->devices, bus_list) { | 1107 | list_for_each_entry(dev, &bus->devices, bus_list) { |
1108 | struct dev_archdata *sd = &dev->dev.archdata; | 1108 | struct dev_archdata *sd = &dev->dev.archdata; |
1109 | 1109 | ||
1110 | /* Cardbus can call us to add new devices to a bus, so ignore | ||
1111 | * those who are already fully discovered | ||
1112 | */ | ||
1113 | if (dev->is_added) | ||
1114 | continue; | ||
1115 | |||
1110 | /* Setup OF node pointer in archdata */ | 1116 | /* Setup OF node pointer in archdata */ |
1111 | sd->of_node = pci_device_to_OF_node(dev); | 1117 | sd->of_node = pci_device_to_OF_node(dev); |
1112 | 1118 | ||
@@ -1147,6 +1153,13 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus) | |||
1147 | } | 1153 | } |
1148 | EXPORT_SYMBOL(pcibios_fixup_bus); | 1154 | EXPORT_SYMBOL(pcibios_fixup_bus); |
1149 | 1155 | ||
1156 | void __devinit pci_fixup_cardbus(struct pci_bus *bus) | ||
1157 | { | ||
1158 | /* Now fixup devices on that bus */ | ||
1159 | pcibios_setup_bus_devices(bus); | ||
1160 | } | ||
1161 | |||
1162 | |||
1150 | static int skip_isa_ioresource_align(struct pci_dev *dev) | 1163 | static int skip_isa_ioresource_align(struct pci_dev *dev) |
1151 | { | 1164 | { |
1152 | if ((ppc_pci_flags & PPC_PCI_CAN_SKIP_ISA_ALIGN) && | 1165 | if ((ppc_pci_flags & PPC_PCI_CAN_SKIP_ISA_ALIGN) && |
diff --git a/arch/powerpc/kernel/rtas-proc.c b/arch/powerpc/kernel/rtas-proc.c index 1be9fe38bcb..8777fb02349 100644 --- a/arch/powerpc/kernel/rtas-proc.c +++ b/arch/powerpc/kernel/rtas-proc.c | |||
@@ -262,19 +262,19 @@ static int __init proc_rtas_init(void) | |||
262 | if (rtas_node == NULL) | 262 | if (rtas_node == NULL) |
263 | return -ENODEV; | 263 | return -ENODEV; |
264 | 264 | ||
265 | proc_create("ppc64/rtas/progress", S_IRUGO|S_IWUSR, NULL, | 265 | proc_create("powerpc/rtas/progress", S_IRUGO|S_IWUSR, NULL, |
266 | &ppc_rtas_progress_operations); | 266 | &ppc_rtas_progress_operations); |
267 | proc_create("ppc64/rtas/clock", S_IRUGO|S_IWUSR, NULL, | 267 | proc_create("powerpc/rtas/clock", S_IRUGO|S_IWUSR, NULL, |
268 | &ppc_rtas_clock_operations); | 268 | &ppc_rtas_clock_operations); |
269 | proc_create("ppc64/rtas/poweron", S_IWUSR|S_IRUGO, NULL, | 269 | proc_create("powerpc/rtas/poweron", S_IWUSR|S_IRUGO, NULL, |
270 | &ppc_rtas_poweron_operations); | 270 | &ppc_rtas_poweron_operations); |
271 | proc_create("ppc64/rtas/sensors", S_IRUGO, NULL, | 271 | proc_create("powerpc/rtas/sensors", S_IRUGO, NULL, |
272 | &ppc_rtas_sensors_operations); | 272 | &ppc_rtas_sensors_operations); |
273 | proc_create("ppc64/rtas/frequency", S_IWUSR|S_IRUGO, NULL, | 273 | proc_create("powerpc/rtas/frequency", S_IWUSR|S_IRUGO, NULL, |
274 | &ppc_rtas_tone_freq_operations); | 274 | &ppc_rtas_tone_freq_operations); |
275 | proc_create("ppc64/rtas/volume", S_IWUSR|S_IRUGO, NULL, | 275 | proc_create("powerpc/rtas/volume", S_IWUSR|S_IRUGO, NULL, |
276 | &ppc_rtas_tone_volume_operations); | 276 | &ppc_rtas_tone_volume_operations); |
277 | proc_create("ppc64/rtas/rmo_buffer", S_IRUSR, NULL, | 277 | proc_create("powerpc/rtas/rmo_buffer", S_IRUSR, NULL, |
278 | &ppc_rtas_rmo_buf_ops); | 278 | &ppc_rtas_rmo_buf_ops); |
279 | return 0; | 279 | return 0; |
280 | } | 280 | } |
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c index a521fb8a40e..c2ee1449807 100644 --- a/arch/powerpc/kernel/smp.c +++ b/arch/powerpc/kernel/smp.c | |||
@@ -619,4 +619,16 @@ void __cpu_die(unsigned int cpu) | |||
619 | if (smp_ops->cpu_die) | 619 | if (smp_ops->cpu_die) |
620 | smp_ops->cpu_die(cpu); | 620 | smp_ops->cpu_die(cpu); |
621 | } | 621 | } |
622 | |||
623 | static DEFINE_MUTEX(powerpc_cpu_hotplug_driver_mutex); | ||
624 | |||
625 | void cpu_hotplug_driver_lock() | ||
626 | { | ||
627 | mutex_lock(&powerpc_cpu_hotplug_driver_mutex); | ||
628 | } | ||
629 | |||
630 | void cpu_hotplug_driver_unlock() | ||
631 | { | ||
632 | mutex_unlock(&powerpc_cpu_hotplug_driver_mutex); | ||
633 | } | ||
622 | #endif | 634 | #endif |
diff --git a/arch/powerpc/kernel/swsusp_32.S b/arch/powerpc/kernel/swsusp_32.S index b47d8ceffb5..b0754e23743 100644 --- a/arch/powerpc/kernel/swsusp_32.S +++ b/arch/powerpc/kernel/swsusp_32.S | |||
@@ -303,7 +303,7 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_USE_HIGH_BATS) | |||
303 | lis r4,0x1000 | 303 | lis r4,0x1000 |
304 | 1: addic. r4,r4,-0x1000 | 304 | 1: addic. r4,r4,-0x1000 |
305 | tlbie r4 | 305 | tlbie r4 |
306 | blt 1b | 306 | bgt 1b |
307 | sync | 307 | sync |
308 | 308 | ||
309 | /* restore the MSR and turn on the MMU */ | 309 | /* restore the MSR and turn on the MMU */ |
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 9ba2cc88591..6c6093d67f3 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -903,12 +903,21 @@ static void decrementer_set_mode(enum clock_event_mode mode, | |||
903 | decrementer_set_next_event(DECREMENTER_MAX, dev); | 903 | decrementer_set_next_event(DECREMENTER_MAX, dev); |
904 | } | 904 | } |
905 | 905 | ||
906 | static inline uint64_t div_sc64(unsigned long ticks, unsigned long nsec, | ||
907 | int shift) | ||
908 | { | ||
909 | uint64_t tmp = ((uint64_t)ticks) << shift; | ||
910 | |||
911 | do_div(tmp, nsec); | ||
912 | return tmp; | ||
913 | } | ||
914 | |||
906 | static void __init setup_clockevent_multiplier(unsigned long hz) | 915 | static void __init setup_clockevent_multiplier(unsigned long hz) |
907 | { | 916 | { |
908 | u64 mult, shift = 32; | 917 | u64 mult, shift = 32; |
909 | 918 | ||
910 | while (1) { | 919 | while (1) { |
911 | mult = div_sc(hz, NSEC_PER_SEC, shift); | 920 | mult = div_sc64(hz, NSEC_PER_SEC, shift); |
912 | if (mult && (mult >> 32UL) == 0UL) | 921 | if (mult && (mult >> 32UL) == 0UL) |
913 | break; | 922 | break; |
914 | 923 | ||
diff --git a/arch/powerpc/kvm/book3s_64_mmu.c b/arch/powerpc/kvm/book3s_64_mmu.c index 5598f88f142..e4beeb371a7 100644 --- a/arch/powerpc/kvm/book3s_64_mmu.c +++ b/arch/powerpc/kvm/book3s_64_mmu.c | |||
@@ -390,6 +390,26 @@ static void kvmppc_mmu_book3s_64_mtsrin(struct kvm_vcpu *vcpu, u32 srnum, | |||
390 | { | 390 | { |
391 | u64 rb = 0, rs = 0; | 391 | u64 rb = 0, rs = 0; |
392 | 392 | ||
393 | /* | ||
394 | * According to Book3 2.01 mtsrin is implemented as: | ||
395 | * | ||
396 | * The SLB entry specified by (RB)32:35 is loaded from register | ||
397 | * RS, as follows. | ||
398 | * | ||
399 | * SLBE Bit Source SLB Field | ||
400 | * | ||
401 | * 0:31 0x0000_0000 ESID-0:31 | ||
402 | * 32:35 (RB)32:35 ESID-32:35 | ||
403 | * 36 0b1 V | ||
404 | * 37:61 0x00_0000|| 0b0 VSID-0:24 | ||
405 | * 62:88 (RS)37:63 VSID-25:51 | ||
406 | * 89:91 (RS)33:35 Ks Kp N | ||
407 | * 92 (RS)36 L ((RS)36 must be 0b0) | ||
408 | * 93 0b0 C | ||
409 | */ | ||
410 | |||
411 | dprintk("KVM MMU: mtsrin(0x%x, 0x%lx)\n", srnum, value); | ||
412 | |||
393 | /* ESID = srnum */ | 413 | /* ESID = srnum */ |
394 | rb |= (srnum & 0xf) << 28; | 414 | rb |= (srnum & 0xf) << 28; |
395 | /* Set the valid bit */ | 415 | /* Set the valid bit */ |
@@ -400,7 +420,7 @@ static void kvmppc_mmu_book3s_64_mtsrin(struct kvm_vcpu *vcpu, u32 srnum, | |||
400 | /* VSID = VSID */ | 420 | /* VSID = VSID */ |
401 | rs |= (value & 0xfffffff) << 12; | 421 | rs |= (value & 0xfffffff) << 12; |
402 | /* flags = flags */ | 422 | /* flags = flags */ |
403 | rs |= ((value >> 27) & 0xf) << 9; | 423 | rs |= ((value >> 28) & 0x7) << 9; |
404 | 424 | ||
405 | kvmppc_mmu_book3s_64_slbmte(vcpu, rs, rb); | 425 | kvmppc_mmu_book3s_64_slbmte(vcpu, rs, rb); |
406 | } | 426 | } |
diff --git a/arch/powerpc/mm/mmap_64.c b/arch/powerpc/mm/mmap_64.c index 0d957a4c70f..5a783d8e8e8 100644 --- a/arch/powerpc/mm/mmap_64.c +++ b/arch/powerpc/mm/mmap_64.c | |||
@@ -47,7 +47,7 @@ static inline int mmap_is_legacy(void) | |||
47 | if (current->personality & ADDR_COMPAT_LAYOUT) | 47 | if (current->personality & ADDR_COMPAT_LAYOUT) |
48 | return 1; | 48 | return 1; |
49 | 49 | ||
50 | if (current->signal->rlim[RLIMIT_STACK].rlim_cur == RLIM_INFINITY) | 50 | if (rlimit(RLIMIT_STACK) == RLIM_INFINITY) |
51 | return 1; | 51 | return 1; |
52 | 52 | ||
53 | return sysctl_legacy_va_layout; | 53 | return sysctl_legacy_va_layout; |
@@ -77,7 +77,7 @@ static unsigned long mmap_rnd(void) | |||
77 | 77 | ||
78 | static inline unsigned long mmap_base(void) | 78 | static inline unsigned long mmap_base(void) |
79 | { | 79 | { |
80 | unsigned long gap = current->signal->rlim[RLIMIT_STACK].rlim_cur; | 80 | unsigned long gap = rlimit(RLIMIT_STACK); |
81 | 81 | ||
82 | if (gap < MIN_GAP) | 82 | if (gap < MIN_GAP) |
83 | gap = MIN_GAP; | 83 | gap = MIN_GAP; |
diff --git a/arch/powerpc/platforms/cell/spufs/coredump.c b/arch/powerpc/platforms/cell/spufs/coredump.c index c4d4a19235e..eea120229cd 100644 --- a/arch/powerpc/platforms/cell/spufs/coredump.c +++ b/arch/powerpc/platforms/cell/spufs/coredump.c | |||
@@ -54,7 +54,7 @@ static ssize_t do_coredump_read(int num, struct spu_context *ctx, void *buffer, | |||
54 | */ | 54 | */ |
55 | static int spufs_dump_write(struct file *file, const void *addr, int nr, loff_t *foffset) | 55 | static int spufs_dump_write(struct file *file, const void *addr, int nr, loff_t *foffset) |
56 | { | 56 | { |
57 | unsigned long limit = current->signal->rlim[RLIMIT_CORE].rlim_cur; | 57 | unsigned long limit = rlimit(RLIMIT_CORE); |
58 | ssize_t written; | 58 | ssize_t written; |
59 | 59 | ||
60 | if (*foffset + nr > limit) | 60 | if (*foffset + nr > limit) |
diff --git a/arch/powerpc/platforms/iseries/vio.c b/arch/powerpc/platforms/iseries/vio.c index 657b72f6849..2aa8b5631be 100644 --- a/arch/powerpc/platforms/iseries/vio.c +++ b/arch/powerpc/platforms/iseries/vio.c | |||
@@ -474,6 +474,8 @@ static void __init get_viotape_info(struct device_node *vio_root) | |||
474 | struct vio_waitevent we; | 474 | struct vio_waitevent we; |
475 | int ret; | 475 | int ret; |
476 | 476 | ||
477 | init_completion(&we.com); | ||
478 | |||
477 | ret = viopath_open(viopath_hostLp, viomajorsubtype_tape, 2); | 479 | ret = viopath_open(viopath_hostLp, viomajorsubtype_tape, 2); |
478 | if (ret) { | 480 | if (ret) { |
479 | printk(KERN_WARNING "get_viotape_info: " | 481 | printk(KERN_WARNING "get_viotape_info: " |
diff --git a/arch/powerpc/platforms/pseries/dlpar.c b/arch/powerpc/platforms/pseries/dlpar.c index 67b7a10f9fc..37bce52526d 100644 --- a/arch/powerpc/platforms/pseries/dlpar.c +++ b/arch/powerpc/platforms/pseries/dlpar.c | |||
@@ -236,7 +236,9 @@ static struct device_node *derive_parent(const char *path) | |||
236 | 236 | ||
237 | int dlpar_attach_node(struct device_node *dn) | 237 | int dlpar_attach_node(struct device_node *dn) |
238 | { | 238 | { |
239 | #ifdef CONFIG_PROC_DEVICETREE | ||
239 | struct proc_dir_entry *ent; | 240 | struct proc_dir_entry *ent; |
241 | #endif | ||
240 | int rc; | 242 | int rc; |
241 | 243 | ||
242 | of_node_set_flag(dn, OF_DYNAMIC); | 244 | of_node_set_flag(dn, OF_DYNAMIC); |
@@ -267,10 +269,10 @@ int dlpar_attach_node(struct device_node *dn) | |||
267 | 269 | ||
268 | int dlpar_detach_node(struct device_node *dn) | 270 | int dlpar_detach_node(struct device_node *dn) |
269 | { | 271 | { |
272 | #ifdef CONFIG_PROC_DEVICETREE | ||
270 | struct device_node *parent = dn->parent; | 273 | struct device_node *parent = dn->parent; |
271 | struct property *prop = dn->properties; | 274 | struct property *prop = dn->properties; |
272 | 275 | ||
273 | #ifdef CONFIG_PROC_DEVICETREE | ||
274 | while (prop) { | 276 | while (prop) { |
275 | remove_proc_entry(prop->name, dn->pde); | 277 | remove_proc_entry(prop->name, dn->pde); |
276 | prop = prop->next; | 278 | prop = prop->next; |
@@ -344,20 +346,6 @@ int dlpar_release_drc(u32 drc_index) | |||
344 | 346 | ||
345 | #ifdef CONFIG_ARCH_CPU_PROBE_RELEASE | 347 | #ifdef CONFIG_ARCH_CPU_PROBE_RELEASE |
346 | 348 | ||
347 | static DEFINE_MUTEX(pseries_cpu_hotplug_mutex); | ||
348 | |||
349 | void cpu_hotplug_driver_lock(void) | ||
350 | __acquires(pseries_cpu_hotplug_mutex) | ||
351 | { | ||
352 | mutex_lock(&pseries_cpu_hotplug_mutex); | ||
353 | } | ||
354 | |||
355 | void cpu_hotplug_driver_unlock(void) | ||
356 | __releases(pseries_cpu_hotplug_mutex) | ||
357 | { | ||
358 | mutex_unlock(&pseries_cpu_hotplug_mutex); | ||
359 | } | ||
360 | |||
361 | static int dlpar_online_cpu(struct device_node *dn) | 349 | static int dlpar_online_cpu(struct device_node *dn) |
362 | { | 350 | { |
363 | int rc = 0; | 351 | int rc = 0; |
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index b9b9e11609e..d80f193cd87 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c | |||
@@ -163,14 +163,13 @@ static inline void lpar_qirr_info(int n_cpu , u8 value) | |||
163 | /* Interface to generic irq subsystem */ | 163 | /* Interface to generic irq subsystem */ |
164 | 164 | ||
165 | #ifdef CONFIG_SMP | 165 | #ifdef CONFIG_SMP |
166 | static int get_irq_server(unsigned int virq, unsigned int strict_check) | 166 | static int get_irq_server(unsigned int virq, cpumask_t cpumask, |
167 | unsigned int strict_check) | ||
167 | { | 168 | { |
168 | int server; | 169 | int server; |
169 | /* For the moment only implement delivery to all cpus or one cpu */ | 170 | /* For the moment only implement delivery to all cpus or one cpu */ |
170 | cpumask_t cpumask; | ||
171 | cpumask_t tmp = CPU_MASK_NONE; | 171 | cpumask_t tmp = CPU_MASK_NONE; |
172 | 172 | ||
173 | cpumask_copy(&cpumask, irq_to_desc(virq)->affinity); | ||
174 | if (!distribute_irqs) | 173 | if (!distribute_irqs) |
175 | return default_server; | 174 | return default_server; |
176 | 175 | ||
@@ -192,7 +191,8 @@ static int get_irq_server(unsigned int virq, unsigned int strict_check) | |||
192 | return default_server; | 191 | return default_server; |
193 | } | 192 | } |
194 | #else | 193 | #else |
195 | static int get_irq_server(unsigned int virq, unsigned int strict_check) | 194 | static int get_irq_server(unsigned int virq, cpumask_t cpumask, |
195 | unsigned int strict_check) | ||
196 | { | 196 | { |
197 | return default_server; | 197 | return default_server; |
198 | } | 198 | } |
@@ -211,7 +211,7 @@ static void xics_unmask_irq(unsigned int virq) | |||
211 | if (irq == XICS_IPI || irq == XICS_IRQ_SPURIOUS) | 211 | if (irq == XICS_IPI || irq == XICS_IRQ_SPURIOUS) |
212 | return; | 212 | return; |
213 | 213 | ||
214 | server = get_irq_server(virq, 0); | 214 | server = get_irq_server(virq, *(irq_to_desc(virq)->affinity), 0); |
215 | 215 | ||
216 | call_status = rtas_call(ibm_set_xive, 3, 1, NULL, irq, server, | 216 | call_status = rtas_call(ibm_set_xive, 3, 1, NULL, irq, server, |
217 | DEFAULT_PRIORITY); | 217 | DEFAULT_PRIORITY); |
@@ -405,7 +405,7 @@ static int xics_set_affinity(unsigned int virq, const struct cpumask *cpumask) | |||
405 | * For the moment only implement delivery to all cpus or one cpu. | 405 | * For the moment only implement delivery to all cpus or one cpu. |
406 | * Get current irq_server for the given irq | 406 | * Get current irq_server for the given irq |
407 | */ | 407 | */ |
408 | irq_server = get_irq_server(virq, 1); | 408 | irq_server = get_irq_server(virq, *cpumask, 1); |
409 | if (irq_server == -1) { | 409 | if (irq_server == -1) { |
410 | char cpulist[128]; | 410 | char cpulist[128]; |
411 | cpumask_scnprintf(cpulist, sizeof(cpulist), cpumask); | 411 | cpumask_scnprintf(cpulist, sizeof(cpulist), cpumask); |
diff --git a/arch/s390/defconfig b/arch/s390/defconfig index f4e53c6708d..b416aa11b91 100644 --- a/arch/s390/defconfig +++ b/arch/s390/defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Tue Sep 22 17:43:13 2009 | 4 | # Mon Jan 4 09:03:07 2010 |
5 | # | 5 | # |
6 | CONFIG_SCHED_MC=y | 6 | CONFIG_SCHED_MC=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
@@ -51,6 +51,7 @@ CONFIG_AUDIT=y | |||
51 | # | 51 | # |
52 | CONFIG_TREE_RCU=y | 52 | CONFIG_TREE_RCU=y |
53 | # CONFIG_TREE_PREEMPT_RCU is not set | 53 | # CONFIG_TREE_PREEMPT_RCU is not set |
54 | # CONFIG_TINY_RCU is not set | ||
54 | # CONFIG_RCU_TRACE is not set | 55 | # CONFIG_RCU_TRACE is not set |
55 | CONFIG_RCU_FANOUT=64 | 56 | CONFIG_RCU_FANOUT=64 |
56 | # CONFIG_RCU_FANOUT_EXACT is not set | 57 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -113,7 +114,6 @@ CONFIG_HAVE_PERF_EVENTS=y | |||
113 | # CONFIG_PERF_EVENTS is not set | 114 | # CONFIG_PERF_EVENTS is not set |
114 | # CONFIG_PERF_COUNTERS is not set | 115 | # CONFIG_PERF_COUNTERS is not set |
115 | CONFIG_VM_EVENT_COUNTERS=y | 116 | CONFIG_VM_EVENT_COUNTERS=y |
116 | # CONFIG_STRIP_ASM_SYMS is not set | ||
117 | # CONFIG_COMPAT_BRK is not set | 117 | # CONFIG_COMPAT_BRK is not set |
118 | CONFIG_SLAB=y | 118 | CONFIG_SLAB=y |
119 | # CONFIG_SLUB is not set | 119 | # CONFIG_SLUB is not set |
@@ -149,21 +149,78 @@ CONFIG_STOP_MACHINE=y | |||
149 | CONFIG_BLOCK=y | 149 | CONFIG_BLOCK=y |
150 | CONFIG_BLK_DEV_BSG=y | 150 | CONFIG_BLK_DEV_BSG=y |
151 | # CONFIG_BLK_DEV_INTEGRITY is not set | 151 | # CONFIG_BLK_DEV_INTEGRITY is not set |
152 | # CONFIG_BLK_CGROUP is not set | ||
152 | CONFIG_BLOCK_COMPAT=y | 153 | CONFIG_BLOCK_COMPAT=y |
153 | 154 | ||
154 | # | 155 | # |
155 | # IO Schedulers | 156 | # IO Schedulers |
156 | # | 157 | # |
157 | CONFIG_IOSCHED_NOOP=y | 158 | CONFIG_IOSCHED_NOOP=y |
158 | CONFIG_IOSCHED_AS=y | ||
159 | CONFIG_IOSCHED_DEADLINE=y | 159 | CONFIG_IOSCHED_DEADLINE=y |
160 | CONFIG_IOSCHED_CFQ=y | 160 | CONFIG_IOSCHED_CFQ=y |
161 | # CONFIG_DEFAULT_AS is not set | 161 | # CONFIG_CFQ_GROUP_IOSCHED is not set |
162 | CONFIG_DEFAULT_DEADLINE=y | 162 | CONFIG_DEFAULT_DEADLINE=y |
163 | # CONFIG_DEFAULT_CFQ is not set | 163 | # CONFIG_DEFAULT_CFQ is not set |
164 | # CONFIG_DEFAULT_NOOP is not set | 164 | # CONFIG_DEFAULT_NOOP is not set |
165 | CONFIG_DEFAULT_IOSCHED="deadline" | 165 | CONFIG_DEFAULT_IOSCHED="deadline" |
166 | CONFIG_PREEMPT_NOTIFIERS=y | 166 | CONFIG_PREEMPT_NOTIFIERS=y |
167 | CONFIG_ARCH_INLINE_SPIN_TRYLOCK=y | ||
168 | CONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=y | ||
169 | CONFIG_ARCH_INLINE_SPIN_LOCK=y | ||
170 | CONFIG_ARCH_INLINE_SPIN_LOCK_BH=y | ||
171 | CONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=y | ||
172 | CONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=y | ||
173 | CONFIG_ARCH_INLINE_SPIN_UNLOCK=y | ||
174 | CONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=y | ||
175 | CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=y | ||
176 | CONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=y | ||
177 | CONFIG_ARCH_INLINE_READ_TRYLOCK=y | ||
178 | CONFIG_ARCH_INLINE_READ_LOCK=y | ||
179 | CONFIG_ARCH_INLINE_READ_LOCK_BH=y | ||
180 | CONFIG_ARCH_INLINE_READ_LOCK_IRQ=y | ||
181 | CONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=y | ||
182 | CONFIG_ARCH_INLINE_READ_UNLOCK=y | ||
183 | CONFIG_ARCH_INLINE_READ_UNLOCK_BH=y | ||
184 | CONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=y | ||
185 | CONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=y | ||
186 | CONFIG_ARCH_INLINE_WRITE_TRYLOCK=y | ||
187 | CONFIG_ARCH_INLINE_WRITE_LOCK=y | ||
188 | CONFIG_ARCH_INLINE_WRITE_LOCK_BH=y | ||
189 | CONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=y | ||
190 | CONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=y | ||
191 | CONFIG_ARCH_INLINE_WRITE_UNLOCK=y | ||
192 | CONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=y | ||
193 | CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=y | ||
194 | CONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=y | ||
195 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
197 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
198 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
199 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
200 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
201 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
202 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
203 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
204 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
205 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
206 | # CONFIG_INLINE_READ_LOCK is not set | ||
207 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
208 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
209 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
210 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
211 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
212 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
213 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
214 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
215 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
216 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
217 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
218 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
219 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
220 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
221 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
222 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
223 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
167 | CONFIG_FREEZER=y | 224 | CONFIG_FREEZER=y |
168 | 225 | ||
169 | # | 226 | # |
@@ -227,14 +284,13 @@ CONFIG_MEMORY_HOTPLUG=y | |||
227 | CONFIG_MEMORY_HOTPLUG_SPARSE=y | 284 | CONFIG_MEMORY_HOTPLUG_SPARSE=y |
228 | CONFIG_MEMORY_HOTREMOVE=y | 285 | CONFIG_MEMORY_HOTREMOVE=y |
229 | CONFIG_PAGEFLAGS_EXTENDED=y | 286 | CONFIG_PAGEFLAGS_EXTENDED=y |
230 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 287 | CONFIG_SPLIT_PTLOCK_CPUS=999999 |
231 | CONFIG_MIGRATION=y | 288 | CONFIG_MIGRATION=y |
232 | CONFIG_PHYS_ADDR_T_64BIT=y | 289 | CONFIG_PHYS_ADDR_T_64BIT=y |
233 | CONFIG_ZONE_DMA_FLAG=1 | 290 | CONFIG_ZONE_DMA_FLAG=1 |
234 | CONFIG_BOUNCE=y | 291 | CONFIG_BOUNCE=y |
235 | CONFIG_VIRT_TO_BUS=y | 292 | CONFIG_VIRT_TO_BUS=y |
236 | CONFIG_HAVE_MLOCK=y | 293 | # CONFIG_KSM is not set |
237 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
238 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 294 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
239 | 295 | ||
240 | # | 296 | # |
@@ -339,6 +395,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y | |||
339 | CONFIG_INET6_XFRM_MODE_BEET=y | 395 | CONFIG_INET6_XFRM_MODE_BEET=y |
340 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 396 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
341 | CONFIG_IPV6_SIT=y | 397 | CONFIG_IPV6_SIT=y |
398 | # CONFIG_IPV6_SIT_6RD is not set | ||
342 | CONFIG_IPV6_NDISC_NODETYPE=y | 399 | CONFIG_IPV6_NDISC_NODETYPE=y |
343 | # CONFIG_IPV6_TUNNEL is not set | 400 | # CONFIG_IPV6_TUNNEL is not set |
344 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 401 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -504,6 +561,10 @@ CONFIG_BLK_DEV=y | |||
504 | # CONFIG_BLK_DEV_COW_COMMON is not set | 561 | # CONFIG_BLK_DEV_COW_COMMON is not set |
505 | CONFIG_BLK_DEV_LOOP=m | 562 | CONFIG_BLK_DEV_LOOP=m |
506 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 563 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
564 | |||
565 | # | ||
566 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
567 | # | ||
507 | CONFIG_BLK_DEV_NBD=m | 568 | CONFIG_BLK_DEV_NBD=m |
508 | # CONFIG_BLK_DEV_OSD is not set | 569 | # CONFIG_BLK_DEV_OSD is not set |
509 | CONFIG_BLK_DEV_RAM=y | 570 | CONFIG_BLK_DEV_RAM=y |
@@ -710,7 +771,6 @@ CONFIG_S390_VMUR=m | |||
710 | # CONFIG_PPS is not set | 771 | # CONFIG_PPS is not set |
711 | # CONFIG_POWER_SUPPLY is not set | 772 | # CONFIG_POWER_SUPPLY is not set |
712 | # CONFIG_THERMAL is not set | 773 | # CONFIG_THERMAL is not set |
713 | # CONFIG_THERMAL_HWMON is not set | ||
714 | # CONFIG_WATCHDOG is not set | 774 | # CONFIG_WATCHDOG is not set |
715 | # CONFIG_REGULATOR is not set | 775 | # CONFIG_REGULATOR is not set |
716 | # CONFIG_MEMSTICK is not set | 776 | # CONFIG_MEMSTICK is not set |
@@ -864,6 +924,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
864 | CONFIG_ENABLE_MUST_CHECK=y | 924 | CONFIG_ENABLE_MUST_CHECK=y |
865 | CONFIG_FRAME_WARN=2048 | 925 | CONFIG_FRAME_WARN=2048 |
866 | CONFIG_MAGIC_SYSRQ=y | 926 | CONFIG_MAGIC_SYSRQ=y |
927 | # CONFIG_STRIP_ASM_SYMS is not set | ||
867 | # CONFIG_UNUSED_SYMBOLS is not set | 928 | # CONFIG_UNUSED_SYMBOLS is not set |
868 | CONFIG_DEBUG_FS=y | 929 | CONFIG_DEBUG_FS=y |
869 | # CONFIG_HEADERS_CHECK is not set | 930 | # CONFIG_HEADERS_CHECK is not set |
@@ -931,7 +992,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
931 | CONFIG_SAMPLES=y | 992 | CONFIG_SAMPLES=y |
932 | # CONFIG_SAMPLE_KOBJECT is not set | 993 | # CONFIG_SAMPLE_KOBJECT is not set |
933 | # CONFIG_SAMPLE_KPROBES is not set | 994 | # CONFIG_SAMPLE_KPROBES is not set |
934 | # CONFIG_KMEMCHECK is not set | ||
935 | 995 | ||
936 | # | 996 | # |
937 | # Security options | 997 | # Security options |
@@ -939,7 +999,11 @@ CONFIG_SAMPLES=y | |||
939 | # CONFIG_KEYS is not set | 999 | # CONFIG_KEYS is not set |
940 | # CONFIG_SECURITY is not set | 1000 | # CONFIG_SECURITY is not set |
941 | # CONFIG_SECURITYFS is not set | 1001 | # CONFIG_SECURITYFS is not set |
942 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1002 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1003 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1004 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1005 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1006 | CONFIG_DEFAULT_SECURITY="" | ||
943 | CONFIG_CRYPTO=y | 1007 | CONFIG_CRYPTO=y |
944 | 1008 | ||
945 | # | 1009 | # |
diff --git a/arch/s390/include/asm/bug.h b/arch/s390/include/asm/bug.h index efb74fd5156..b1066b9fb5f 100644 --- a/arch/s390/include/asm/bug.h +++ b/arch/s390/include/asm/bug.h | |||
@@ -52,6 +52,10 @@ | |||
52 | unreachable(); \ | 52 | unreachable(); \ |
53 | } while (0) | 53 | } while (0) |
54 | 54 | ||
55 | #define __WARN() do { \ | ||
56 | __EMIT_BUG(BUGFLAG_WARNING); \ | ||
57 | } while (0) | ||
58 | |||
55 | #define WARN_ON(x) ({ \ | 59 | #define WARN_ON(x) ({ \ |
56 | int __ret_warn_on = !!(x); \ | 60 | int __ret_warn_on = !!(x); \ |
57 | if (__builtin_constant_p(__ret_warn_on)) { \ | 61 | if (__builtin_constant_p(__ret_warn_on)) { \ |
diff --git a/arch/s390/include/asm/param.h b/arch/s390/include/asm/param.h index 34aaa460334..c616821bf2a 100644 --- a/arch/s390/include/asm/param.h +++ b/arch/s390/include/asm/param.h | |||
@@ -1,30 +1,6 @@ | |||
1 | /* | ||
2 | * include/asm-s390/param.h | ||
3 | * | ||
4 | * S390 version | ||
5 | * | ||
6 | * Derived from "include/asm-i386/param.h" | ||
7 | */ | ||
8 | |||
9 | #ifndef _ASMS390_PARAM_H | 1 | #ifndef _ASMS390_PARAM_H |
10 | #define _ASMS390_PARAM_H | 2 | #define _ASMS390_PARAM_H |
11 | 3 | ||
12 | #ifdef __KERNEL__ | 4 | #include <asm-generic/param.h> |
13 | # define HZ CONFIG_HZ /* Internal kernel timer frequency */ | ||
14 | # define USER_HZ 100 /* .. some user interfaces are in "ticks" */ | ||
15 | # define CLOCKS_PER_SEC (USER_HZ) /* like times() */ | ||
16 | #endif | ||
17 | |||
18 | #ifndef HZ | ||
19 | #define HZ 100 | ||
20 | #endif | ||
21 | |||
22 | #define EXEC_PAGESIZE 4096 | ||
23 | |||
24 | #ifndef NOGROUP | ||
25 | #define NOGROUP (-1) | ||
26 | #endif | ||
27 | |||
28 | #define MAXHOSTNAMELEN 64 /* max length of hostname */ | ||
29 | 5 | ||
30 | #endif | 6 | #endif /* _ASMS390_PARAM_H */ |
diff --git a/arch/s390/include/asm/sigp.h b/arch/s390/include/asm/sigp.h index ec403d4304f..f72d611f7e1 100644 --- a/arch/s390/include/asm/sigp.h +++ b/arch/s390/include/asm/sigp.h | |||
@@ -15,11 +15,19 @@ | |||
15 | #ifndef __SIGP__ | 15 | #ifndef __SIGP__ |
16 | #define __SIGP__ | 16 | #define __SIGP__ |
17 | 17 | ||
18 | #include <asm/ptrace.h> | 18 | #include <asm/system.h> |
19 | #include <asm/atomic.h> | ||
20 | 19 | ||
21 | /* get real cpu address from logical cpu number */ | 20 | /* get real cpu address from logical cpu number */ |
22 | extern volatile int __cpu_logical_map[]; | 21 | extern int __cpu_logical_map[]; |
22 | |||
23 | static inline int cpu_logical_map(int cpu) | ||
24 | { | ||
25 | #ifdef CONFIG_SMP | ||
26 | return __cpu_logical_map[cpu]; | ||
27 | #else | ||
28 | return stap(); | ||
29 | #endif | ||
30 | } | ||
23 | 31 | ||
24 | typedef enum | 32 | typedef enum |
25 | { | 33 | { |
@@ -79,7 +87,7 @@ signal_processor(__u16 cpu_addr, sigp_order_code order_code) | |||
79 | " ipm %0\n" | 87 | " ipm %0\n" |
80 | " srl %0,28\n" | 88 | " srl %0,28\n" |
81 | : "=d" (ccode) | 89 | : "=d" (ccode) |
82 | : "d" (reg1), "d" (__cpu_logical_map[cpu_addr]), | 90 | : "d" (reg1), "d" (cpu_logical_map(cpu_addr)), |
83 | "a" (order_code) : "cc" , "memory"); | 91 | "a" (order_code) : "cc" , "memory"); |
84 | return ccode; | 92 | return ccode; |
85 | } | 93 | } |
@@ -98,7 +106,7 @@ signal_processor_p(__u32 parameter, __u16 cpu_addr, sigp_order_code order_code) | |||
98 | " ipm %0\n" | 106 | " ipm %0\n" |
99 | " srl %0,28\n" | 107 | " srl %0,28\n" |
100 | : "=d" (ccode) | 108 | : "=d" (ccode) |
101 | : "d" (reg1), "d" (__cpu_logical_map[cpu_addr]), | 109 | : "d" (reg1), "d" (cpu_logical_map(cpu_addr)), |
102 | "a" (order_code) : "cc" , "memory"); | 110 | "a" (order_code) : "cc" , "memory"); |
103 | return ccode; | 111 | return ccode; |
104 | } | 112 | } |
@@ -118,7 +126,7 @@ signal_processor_ps(__u32 *statusptr, __u32 parameter, __u16 cpu_addr, | |||
118 | " ipm %0\n" | 126 | " ipm %0\n" |
119 | " srl %0,28\n" | 127 | " srl %0,28\n" |
120 | : "=d" (ccode), "+d" (reg1) | 128 | : "=d" (ccode), "+d" (reg1) |
121 | : "d" (__cpu_logical_map[cpu_addr]), "a" (order_code) | 129 | : "d" (cpu_logical_map(cpu_addr)), "a" (order_code) |
122 | : "cc" , "memory"); | 130 | : "cc" , "memory"); |
123 | *statusptr = reg1; | 131 | *statusptr = reg1; |
124 | return ccode; | 132 | return ccode; |
diff --git a/arch/s390/include/asm/thread_info.h b/arch/s390/include/asm/thread_info.h index 07eb61b2fb3..66069e73684 100644 --- a/arch/s390/include/asm/thread_info.h +++ b/arch/s390/include/asm/thread_info.h | |||
@@ -93,13 +93,12 @@ static inline struct thread_info *current_thread_info(void) | |||
93 | #define TIF_SYSCALL_AUDIT 9 /* syscall auditing active */ | 93 | #define TIF_SYSCALL_AUDIT 9 /* syscall auditing active */ |
94 | #define TIF_SECCOMP 10 /* secure computing */ | 94 | #define TIF_SECCOMP 10 /* secure computing */ |
95 | #define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */ | 95 | #define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */ |
96 | #define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */ | 96 | #define TIF_POLLING_NRFLAG 16 /* true if poll_idle() is polling |
97 | #define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling | ||
98 | TIF_NEED_RESCHED */ | 97 | TIF_NEED_RESCHED */ |
99 | #define TIF_31BIT 18 /* 32bit process */ | 98 | #define TIF_31BIT 17 /* 32bit process */ |
100 | #define TIF_MEMDIE 19 | 99 | #define TIF_MEMDIE 18 |
101 | #define TIF_RESTORE_SIGMASK 20 /* restore signal mask in do_signal() */ | 100 | #define TIF_RESTORE_SIGMASK 19 /* restore signal mask in do_signal() */ |
102 | #define TIF_FREEZE 21 /* thread is freezing for suspend */ | 101 | #define TIF_FREEZE 20 /* thread is freezing for suspend */ |
103 | 102 | ||
104 | #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) | 103 | #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) |
105 | #define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) | 104 | #define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) |
@@ -112,7 +111,6 @@ static inline struct thread_info *current_thread_info(void) | |||
112 | #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT) | 111 | #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT) |
113 | #define _TIF_SECCOMP (1<<TIF_SECCOMP) | 112 | #define _TIF_SECCOMP (1<<TIF_SECCOMP) |
114 | #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) | 113 | #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) |
115 | #define _TIF_USEDFPU (1<<TIF_USEDFPU) | ||
116 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) | 114 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) |
117 | #define _TIF_31BIT (1<<TIF_31BIT) | 115 | #define _TIF_31BIT (1<<TIF_31BIT) |
118 | #define _TIF_FREEZE (1<<TIF_FREEZE) | 116 | #define _TIF_FREEZE (1<<TIF_FREEZE) |
diff --git a/arch/s390/include/asm/unistd.h b/arch/s390/include/asm/unistd.h index 192a7203a14..6e9f049fa82 100644 --- a/arch/s390/include/asm/unistd.h +++ b/arch/s390/include/asm/unistd.h | |||
@@ -269,8 +269,7 @@ | |||
269 | #define __NR_pwritev 329 | 269 | #define __NR_pwritev 329 |
270 | #define __NR_rt_tgsigqueueinfo 330 | 270 | #define __NR_rt_tgsigqueueinfo 330 |
271 | #define __NR_perf_event_open 331 | 271 | #define __NR_perf_event_open 331 |
272 | #define __NR_recvmmsg 332 | 272 | #define NR_syscalls 332 |
273 | #define NR_syscalls 333 | ||
274 | 273 | ||
275 | /* | 274 | /* |
276 | * There are some system calls that are not present on 64 bit, some | 275 | * There are some system calls that are not present on 64 bit, some |
@@ -377,6 +376,9 @@ | |||
377 | #define __IGNORE_migrate_pages | 376 | #define __IGNORE_migrate_pages |
378 | #define __IGNORE_move_pages | 377 | #define __IGNORE_move_pages |
379 | 378 | ||
379 | /* Ignore system calls that are also reachable via sys_socket */ | ||
380 | #define __IGNORE_recvmmsg | ||
381 | |||
380 | #define __ARCH_WANT_IPC_PARSE_VERSION | 382 | #define __ARCH_WANT_IPC_PARSE_VERSION |
381 | #define __ARCH_WANT_OLD_READDIR | 383 | #define __ARCH_WANT_OLD_READDIR |
382 | #define __ARCH_WANT_SYS_ALARM | 384 | #define __ARCH_WANT_SYS_ALARM |
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index 22c9e557bb2..11c3aba664e 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -616,44 +616,35 @@ asmlinkage long sys32_fstatat64(unsigned int dfd, char __user *filename, | |||
616 | */ | 616 | */ |
617 | 617 | ||
618 | struct mmap_arg_struct_emu31 { | 618 | struct mmap_arg_struct_emu31 { |
619 | u32 addr; | 619 | compat_ulong_t addr; |
620 | u32 len; | 620 | compat_ulong_t len; |
621 | u32 prot; | 621 | compat_ulong_t prot; |
622 | u32 flags; | 622 | compat_ulong_t flags; |
623 | u32 fd; | 623 | compat_ulong_t fd; |
624 | u32 offset; | 624 | compat_ulong_t offset; |
625 | }; | 625 | }; |
626 | 626 | ||
627 | asmlinkage unsigned long | 627 | asmlinkage unsigned long old32_mmap(struct mmap_arg_struct_emu31 __user *arg) |
628 | old32_mmap(struct mmap_arg_struct_emu31 __user *arg) | ||
629 | { | 628 | { |
630 | struct mmap_arg_struct_emu31 a; | 629 | struct mmap_arg_struct_emu31 a; |
631 | int error = -EFAULT; | ||
632 | 630 | ||
633 | if (copy_from_user(&a, arg, sizeof(a))) | 631 | if (copy_from_user(&a, arg, sizeof(a))) |
634 | goto out; | 632 | return -EFAULT; |
635 | |||
636 | error = -EINVAL; | ||
637 | if (a.offset & ~PAGE_MASK) | 633 | if (a.offset & ~PAGE_MASK) |
638 | goto out; | 634 | return -EINVAL; |
639 | 635 | a.addr = (unsigned long) compat_ptr(a.addr); | |
640 | error = sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, | 636 | return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, |
641 | a.offset >> PAGE_SHIFT); | 637 | a.offset >> PAGE_SHIFT); |
642 | out: | ||
643 | return error; | ||
644 | } | 638 | } |
645 | 639 | ||
646 | asmlinkage long | 640 | asmlinkage long sys32_mmap2(struct mmap_arg_struct_emu31 __user *arg) |
647 | sys32_mmap2(struct mmap_arg_struct_emu31 __user *arg) | ||
648 | { | 641 | { |
649 | struct mmap_arg_struct_emu31 a; | 642 | struct mmap_arg_struct_emu31 a; |
650 | int error = -EFAULT; | ||
651 | 643 | ||
652 | if (copy_from_user(&a, arg, sizeof(a))) | 644 | if (copy_from_user(&a, arg, sizeof(a))) |
653 | goto out; | 645 | return -EFAULT; |
654 | error = sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset); | 646 | a.addr = (unsigned long) compat_ptr(a.addr); |
655 | out: | 647 | return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset); |
656 | return error; | ||
657 | } | 648 | } |
658 | 649 | ||
659 | asmlinkage long sys32_read(unsigned int fd, char __user * buf, size_t count) | 650 | asmlinkage long sys32_read(unsigned int fd, char __user * buf, size_t count) |
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index faeaccc7d7d..30de2d0e52b 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -1853,12 +1853,3 @@ sys32_execve_wrapper: | |||
1853 | llgtr %r3,%r3 # compat_uptr_t * | 1853 | llgtr %r3,%r3 # compat_uptr_t * |
1854 | llgtr %r4,%r4 # compat_uptr_t * | 1854 | llgtr %r4,%r4 # compat_uptr_t * |
1855 | jg sys32_execve # branch to system call | 1855 | jg sys32_execve # branch to system call |
1856 | |||
1857 | .globl compat_sys_recvmmsg_wrapper | ||
1858 | compat_sys_recvmmsg_wrapper: | ||
1859 | lgfr %r2,%r2 # int | ||
1860 | llgtr %r3,%r3 # struct compat_mmsghdr * | ||
1861 | llgfr %r4,%r4 # unsigned int | ||
1862 | llgfr %r5,%r5 # unsigned int | ||
1863 | llgtr %r6,%r6 # struct compat_timespec * | ||
1864 | jg compat_sys_recvmmsg | ||
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 5417eb57271..00b6d1d292f 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c | |||
@@ -153,8 +153,6 @@ void exit_thread(void) | |||
153 | 153 | ||
154 | void flush_thread(void) | 154 | void flush_thread(void) |
155 | { | 155 | { |
156 | clear_used_math(); | ||
157 | clear_tsk_thread_flag(current, TIF_USEDFPU); | ||
158 | } | 156 | } |
159 | 157 | ||
160 | void release_thread(struct task_struct *dead_task) | 158 | void release_thread(struct task_struct *dead_task) |
@@ -217,6 +215,7 @@ int copy_thread(unsigned long clone_flags, unsigned long new_stackp, | |||
217 | p->thread.mm_segment = get_fs(); | 215 | p->thread.mm_segment = get_fs(); |
218 | /* Don't copy debug registers */ | 216 | /* Don't copy debug registers */ |
219 | memset(&p->thread.per_info, 0, sizeof(p->thread.per_info)); | 217 | memset(&p->thread.per_info, 0, sizeof(p->thread.per_info)); |
218 | clear_tsk_thread_flag(p, TIF_SINGLE_STEP); | ||
220 | /* Initialize per thread user and system timer values */ | 219 | /* Initialize per thread user and system timer values */ |
221 | ti = task_thread_info(p); | 220 | ti = task_thread_info(p); |
222 | ti->user_timer = 0; | 221 | ti->user_timer = 0; |
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c index 13815d39f7d..7cf46423441 100644 --- a/arch/s390/kernel/ptrace.c +++ b/arch/s390/kernel/ptrace.c | |||
@@ -65,6 +65,7 @@ FixPerRegisters(struct task_struct *task) | |||
65 | { | 65 | { |
66 | struct pt_regs *regs; | 66 | struct pt_regs *regs; |
67 | per_struct *per_info; | 67 | per_struct *per_info; |
68 | per_cr_words cr_words; | ||
68 | 69 | ||
69 | regs = task_pt_regs(task); | 70 | regs = task_pt_regs(task); |
70 | per_info = (per_struct *) &task->thread.per_info; | 71 | per_info = (per_struct *) &task->thread.per_info; |
@@ -98,6 +99,13 @@ FixPerRegisters(struct task_struct *task) | |||
98 | per_info->control_regs.bits.storage_alt_space_ctl = 1; | 99 | per_info->control_regs.bits.storage_alt_space_ctl = 1; |
99 | else | 100 | else |
100 | per_info->control_regs.bits.storage_alt_space_ctl = 0; | 101 | per_info->control_regs.bits.storage_alt_space_ctl = 0; |
102 | |||
103 | if (task == current) { | ||
104 | __ctl_store(cr_words, 9, 11); | ||
105 | if (memcmp(&cr_words, &per_info->control_regs.words, | ||
106 | sizeof(cr_words)) != 0) | ||
107 | __ctl_load(per_info->control_regs.words, 9, 11); | ||
108 | } | ||
101 | } | 109 | } |
102 | 110 | ||
103 | void user_enable_single_step(struct task_struct *task) | 111 | void user_enable_single_step(struct task_struct *task) |
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c index 0663287fa1b..8d8957b38ab 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c | |||
@@ -87,7 +87,6 @@ unsigned long elf_hwcap = 0; | |||
87 | char elf_platform[ELF_PLATFORM_SIZE]; | 87 | char elf_platform[ELF_PLATFORM_SIZE]; |
88 | 88 | ||
89 | struct mem_chunk __initdata memory_chunk[MEMORY_CHUNKS]; | 89 | struct mem_chunk __initdata memory_chunk[MEMORY_CHUNKS]; |
90 | volatile int __cpu_logical_map[NR_CPUS]; /* logical cpu to cpu address */ | ||
91 | 90 | ||
92 | int __initdata memory_end_set; | 91 | int __initdata memory_end_set; |
93 | unsigned long __initdata memory_end; | 92 | unsigned long __initdata memory_end; |
@@ -124,12 +123,6 @@ void __cpuinit cpu_init(void) | |||
124 | */ | 123 | */ |
125 | get_cpu_id(&S390_lowcore.cpu_id); | 124 | get_cpu_id(&S390_lowcore.cpu_id); |
126 | 125 | ||
127 | /* | ||
128 | * Force FPU initialization: | ||
129 | */ | ||
130 | clear_thread_flag(TIF_USEDFPU); | ||
131 | clear_used_math(); | ||
132 | |||
133 | atomic_inc(&init_mm.mm_count); | 126 | atomic_inc(&init_mm.mm_count); |
134 | current->active_mm = &init_mm; | 127 | current->active_mm = &init_mm; |
135 | BUG_ON(current->mm); | 128 | BUG_ON(current->mm); |
@@ -855,7 +848,6 @@ setup_arch(char **cmdline_p) | |||
855 | setup_lowcore(); | 848 | setup_lowcore(); |
856 | 849 | ||
857 | cpu_init(); | 850 | cpu_init(); |
858 | __cpu_logical_map[0] = stap(); | ||
859 | s390_init_cpu_topology(); | 851 | s390_init_cpu_topology(); |
860 | 852 | ||
861 | /* | 853 | /* |
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index 6b4fef877f9..1675c48b914 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
@@ -500,18 +500,10 @@ void do_signal(struct pt_regs *regs) | |||
500 | clear_thread_flag(TIF_RESTORE_SIGMASK); | 500 | clear_thread_flag(TIF_RESTORE_SIGMASK); |
501 | 501 | ||
502 | /* | 502 | /* |
503 | * If we would have taken a single-step trap | ||
504 | * for a normal instruction, act like we took | ||
505 | * one for the handler setup. | ||
506 | */ | ||
507 | if (current->thread.per_info.single_step) | ||
508 | set_thread_flag(TIF_SINGLE_STEP); | ||
509 | |||
510 | /* | ||
511 | * Let tracing know that we've done the handler setup. | 503 | * Let tracing know that we've done the handler setup. |
512 | */ | 504 | */ |
513 | tracehook_signal_handler(signr, &info, &ka, regs, | 505 | tracehook_signal_handler(signr, &info, &ka, regs, |
514 | test_thread_flag(TIF_SINGLE_STEP)); | 506 | current->thread.per_info.single_step); |
515 | } | 507 | } |
516 | return; | 508 | return; |
517 | } | 509 | } |
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 93e52039321..76a6fdd46c4 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
@@ -52,6 +52,9 @@ | |||
52 | #include <asm/cpu.h> | 52 | #include <asm/cpu.h> |
53 | #include "entry.h" | 53 | #include "entry.h" |
54 | 54 | ||
55 | /* logical cpu to cpu address */ | ||
56 | int __cpu_logical_map[NR_CPUS]; | ||
57 | |||
55 | static struct task_struct *current_set[NR_CPUS]; | 58 | static struct task_struct *current_set[NR_CPUS]; |
56 | 59 | ||
57 | static u8 smp_cpu_type; | 60 | static u8 smp_cpu_type; |
@@ -717,6 +720,12 @@ void __init smp_cpus_done(unsigned int max_cpus) | |||
717 | { | 720 | { |
718 | } | 721 | } |
719 | 722 | ||
723 | void __init smp_setup_processor_id(void) | ||
724 | { | ||
725 | S390_lowcore.cpu_nr = 0; | ||
726 | __cpu_logical_map[0] = stap(); | ||
727 | } | ||
728 | |||
720 | /* | 729 | /* |
721 | * the frequency of the profiling timer can be changed | 730 | * the frequency of the profiling timer can be changed |
722 | * by writing a multiplier value into /proc/profile. | 731 | * by writing a multiplier value into /proc/profile. |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index 4f292c93687..30eca070d42 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -340,4 +340,3 @@ SYSCALL(sys_preadv,sys_preadv,compat_sys_preadv_wrapper) | |||
340 | SYSCALL(sys_pwritev,sys_pwritev,compat_sys_pwritev_wrapper) | 340 | SYSCALL(sys_pwritev,sys_pwritev,compat_sys_pwritev_wrapper) |
341 | SYSCALL(sys_rt_tgsigqueueinfo,sys_rt_tgsigqueueinfo,compat_sys_rt_tgsigqueueinfo_wrapper) /* 330 */ | 341 | SYSCALL(sys_rt_tgsigqueueinfo,sys_rt_tgsigqueueinfo,compat_sys_rt_tgsigqueueinfo_wrapper) /* 330 */ |
342 | SYSCALL(sys_perf_event_open,sys_perf_event_open,sys_perf_event_open_wrapper) | 342 | SYSCALL(sys_perf_event_open,sys_perf_event_open,sys_perf_event_open_wrapper) |
343 | SYSCALL(sys_recvmmsg,sys_recvmmsg,compat_sys_recvmmsg_wrapper) | ||
diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c index 3c72c9cf22b..14ef6f05e43 100644 --- a/arch/s390/kernel/topology.c +++ b/arch/s390/kernel/topology.c | |||
@@ -114,7 +114,7 @@ static void add_cpus_to_core(struct tl_cpu *tl_cpu, struct core_info *core) | |||
114 | 114 | ||
115 | rcpu = CPU_BITS - 1 - cpu + tl_cpu->origin; | 115 | rcpu = CPU_BITS - 1 - cpu + tl_cpu->origin; |
116 | for_each_present_cpu(lcpu) { | 116 | for_each_present_cpu(lcpu) { |
117 | if (__cpu_logical_map[lcpu] == rcpu) { | 117 | if (cpu_logical_map(lcpu) == rcpu) { |
118 | cpu_set(lcpu, core->mask); | 118 | cpu_set(lcpu, core->mask); |
119 | smp_cpu_polarization[lcpu] = tl_cpu->pp; | 119 | smp_cpu_polarization[lcpu] = tl_cpu->pp; |
120 | } | 120 | } |
diff --git a/arch/s390/lib/spinlock.c b/arch/s390/lib/spinlock.c index 10754a37566..cff327f109a 100644 --- a/arch/s390/lib/spinlock.c +++ b/arch/s390/lib/spinlock.c | |||
@@ -34,7 +34,7 @@ static inline void _raw_yield_cpu(int cpu) | |||
34 | { | 34 | { |
35 | if (MACHINE_HAS_DIAG9C) | 35 | if (MACHINE_HAS_DIAG9C) |
36 | asm volatile("diag %0,0,0x9c" | 36 | asm volatile("diag %0,0,0x9c" |
37 | : : "d" (__cpu_logical_map[cpu])); | 37 | : : "d" (cpu_logical_map(cpu))); |
38 | else | 38 | else |
39 | _raw_yield(); | 39 | _raw_yield(); |
40 | } | 40 | } |
diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c index f4558ccf02b..869efbaed3e 100644 --- a/arch/s390/mm/mmap.c +++ b/arch/s390/mm/mmap.c | |||
@@ -40,7 +40,7 @@ | |||
40 | 40 | ||
41 | static inline unsigned long mmap_base(void) | 41 | static inline unsigned long mmap_base(void) |
42 | { | 42 | { |
43 | unsigned long gap = current->signal->rlim[RLIMIT_STACK].rlim_cur; | 43 | unsigned long gap = rlimit(RLIMIT_STACK); |
44 | 44 | ||
45 | if (gap < MIN_GAP) | 45 | if (gap < MIN_GAP) |
46 | gap = MIN_GAP; | 46 | gap = MIN_GAP; |
@@ -61,7 +61,7 @@ static inline int mmap_is_legacy(void) | |||
61 | #endif | 61 | #endif |
62 | return sysctl_legacy_va_layout || | 62 | return sysctl_legacy_va_layout || |
63 | (current->personality & ADDR_COMPAT_LAYOUT) || | 63 | (current->personality & ADDR_COMPAT_LAYOUT) || |
64 | current->signal->rlim[RLIMIT_STACK].rlim_cur == RLIM_INFINITY; | 64 | rlimit(RLIMIT_STACK) == RLIM_INFINITY; |
65 | } | 65 | } |
66 | 66 | ||
67 | #ifndef CONFIG_64BIT | 67 | #ifndef CONFIG_64BIT |
diff --git a/arch/score/mm/init.c b/arch/score/mm/init.c index 8c15b2c85d5..dfaf458d670 100644 --- a/arch/score/mm/init.c +++ b/arch/score/mm/init.c | |||
@@ -106,7 +106,7 @@ void __init mem_init(void) | |||
106 | ram << (PAGE_SHIFT-10), codesize >> 10, | 106 | ram << (PAGE_SHIFT-10), codesize >> 10, |
107 | reservedpages << (PAGE_SHIFT-10), datasize >> 10, | 107 | reservedpages << (PAGE_SHIFT-10), datasize >> 10, |
108 | initsize >> 10, | 108 | initsize >> 10, |
109 | (unsigned long) (totalhigh_pages << (PAGE_SHIFT-10))); | 109 | totalhigh_pages << (PAGE_SHIFT-10)); |
110 | } | 110 | } |
111 | #endif /* !CONFIG_NEED_MULTIPLE_NODES */ | 111 | #endif /* !CONFIG_NEED_MULTIPLE_NODES */ |
112 | 112 | ||
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 0031a6979f3..2121fbb2ff4 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -540,14 +540,16 @@ config SH_TIMER_MTU2 | |||
540 | 540 | ||
541 | config SH_PCLK_FREQ | 541 | config SH_PCLK_FREQ |
542 | int "Peripheral clock frequency (in Hz)" | 542 | int "Peripheral clock frequency (in Hz)" |
543 | default "27000000" if CPU_SUBTYPE_SH7343 | 543 | depends on SH_CLK_CPG_LEGACY |
544 | default "31250000" if CPU_SUBTYPE_SH7619 | 544 | default "31250000" if CPU_SUBTYPE_SH7619 |
545 | default "32000000" if CPU_SUBTYPE_SH7722 | 545 | default "33333333" if CPU_SUBTYPE_SH7770 || \ |
546 | default "33333333" if CPU_SUBTYPE_SH7770 || CPU_SUBTYPE_SH7723 || \ | 546 | CPU_SUBTYPE_SH7760 || \ |
547 | CPU_SUBTYPE_SH7760 || CPU_SUBTYPE_SH7705 || \ | 547 | CPU_SUBTYPE_SH7705 || \ |
548 | CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7206 || \ | 548 | CPU_SUBTYPE_SH7203 || \ |
549 | CPU_SUBTYPE_SH7263 || CPU_SUBTYPE_MXG || \ | 549 | CPU_SUBTYPE_SH7206 || \ |
550 | CPU_SUBTYPE_SH7786 || CPU_SUBTYPE_SH7724 | 550 | CPU_SUBTYPE_SH7263 || \ |
551 | CPU_SUBTYPE_MXG || \ | ||
552 | CPU_SUBTYPE_SH7786 | ||
551 | default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R | 553 | default "60000000" if CPU_SUBTYPE_SH7751 || CPU_SUBTYPE_SH7751R |
552 | default "66000000" if CPU_SUBTYPE_SH4_202 | 554 | default "66000000" if CPU_SUBTYPE_SH4_202 |
553 | default "50000000" | 555 | default "50000000" |
diff --git a/arch/sh/boards/mach-ecovec24/setup.c b/arch/sh/boards/mach-ecovec24/setup.c index 6a8861b39f0..5c246289b4f 100644 --- a/arch/sh/boards/mach-ecovec24/setup.c +++ b/arch/sh/boards/mach-ecovec24/setup.c | |||
@@ -353,6 +353,10 @@ static struct i2c_board_info i2c1_devices[] = { | |||
353 | { | 353 | { |
354 | I2C_BOARD_INFO("r2025sd", 0x32), | 354 | I2C_BOARD_INFO("r2025sd", 0x32), |
355 | }, | 355 | }, |
356 | { | ||
357 | I2C_BOARD_INFO("lis3lv02d", 0x1c), | ||
358 | .irq = 33, | ||
359 | } | ||
356 | }; | 360 | }; |
357 | 361 | ||
358 | /* KEYSC */ | 362 | /* KEYSC */ |
@@ -1115,6 +1119,10 @@ static int __init arch_setup(void) | |||
1115 | gpio_direction_output(GPIO_PTU0, 0); | 1119 | gpio_direction_output(GPIO_PTU0, 0); |
1116 | mdelay(20); | 1120 | mdelay(20); |
1117 | 1121 | ||
1122 | /* enable motion sensor */ | ||
1123 | gpio_request(GPIO_FN_INTC_IRQ1, NULL); | ||
1124 | gpio_direction_input(GPIO_FN_INTC_IRQ1); | ||
1125 | |||
1118 | /* enable I2C device */ | 1126 | /* enable I2C device */ |
1119 | i2c_register_board_info(0, i2c0_devices, | 1127 | i2c_register_board_info(0, i2c0_devices, |
1120 | ARRAY_SIZE(i2c0_devices)); | 1128 | ARRAY_SIZE(i2c0_devices)); |
diff --git a/arch/sh/boards/mach-se/7724/setup.c b/arch/sh/boards/mach-se/7724/setup.c index 5d0f70b46c9..858ecb25d46 100644 --- a/arch/sh/boards/mach-se/7724/setup.c +++ b/arch/sh/boards/mach-se/7724/setup.c | |||
@@ -533,7 +533,7 @@ static int __init sh_eth_is_eeprom_ready(void) | |||
533 | while (t--) { | 533 | while (t--) { |
534 | if (!ctrl_inw(EEPROM_STAT)) | 534 | if (!ctrl_inw(EEPROM_STAT)) |
535 | return 1; | 535 | return 1; |
536 | cpu_relax(); | 536 | udelay(1); |
537 | } | 537 | } |
538 | 538 | ||
539 | printk(KERN_ERR "ms7724se can not access to eeprom\n"); | 539 | printk(KERN_ERR "ms7724se can not access to eeprom\n"); |
diff --git a/arch/sh/configs/ap325rxa_defconfig b/arch/sh/configs/ap325rxa_defconfig index 2f78d01cc6c..8931a60e37a 100644 --- a/arch/sh/configs/ap325rxa_defconfig +++ b/arch/sh/configs/ap325rxa_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Fri Sep 25 11:22:50 2009 | 4 | # Mon Jan 4 11:10:59 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_CMT=y | 24 | CONFIG_SYS_SUPPORTS_CMT=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -62,6 +64,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
62 | # | 64 | # |
63 | CONFIG_TREE_RCU=y | 65 | CONFIG_TREE_RCU=y |
64 | # CONFIG_TREE_PREEMPT_RCU is not set | 66 | # CONFIG_TREE_PREEMPT_RCU is not set |
67 | # CONFIG_TINY_RCU is not set | ||
65 | # CONFIG_RCU_TRACE is not set | 68 | # CONFIG_RCU_TRACE is not set |
66 | CONFIG_RCU_FANOUT=32 | 69 | CONFIG_RCU_FANOUT=32 |
67 | # CONFIG_RCU_FANOUT_EXACT is not set | 70 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -99,6 +102,7 @@ CONFIG_EVENTFD=y | |||
99 | CONFIG_SHMEM=y | 102 | CONFIG_SHMEM=y |
100 | CONFIG_AIO=y | 103 | CONFIG_AIO=y |
101 | CONFIG_HAVE_PERF_EVENTS=y | 104 | CONFIG_HAVE_PERF_EVENTS=y |
105 | CONFIG_PERF_USE_VMALLOC=y | ||
102 | 106 | ||
103 | # | 107 | # |
104 | # Kernel Performance Events And Counters | 108 | # Kernel Performance Events And Counters |
@@ -116,6 +120,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
116 | CONFIG_HAVE_KPROBES=y | 120 | CONFIG_HAVE_KPROBES=y |
117 | CONFIG_HAVE_KRETPROBES=y | 121 | CONFIG_HAVE_KRETPROBES=y |
118 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 122 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
123 | CONFIG_HAVE_DMA_ATTRS=y | ||
119 | CONFIG_HAVE_CLK=y | 124 | CONFIG_HAVE_CLK=y |
120 | CONFIG_HAVE_DMA_API_DEBUG=y | 125 | CONFIG_HAVE_DMA_API_DEBUG=y |
121 | 126 | ||
@@ -142,14 +147,41 @@ CONFIG_LBDAF=y | |||
142 | # IO Schedulers | 147 | # IO Schedulers |
143 | # | 148 | # |
144 | CONFIG_IOSCHED_NOOP=y | 149 | CONFIG_IOSCHED_NOOP=y |
145 | CONFIG_IOSCHED_AS=y | ||
146 | CONFIG_IOSCHED_DEADLINE=y | 150 | CONFIG_IOSCHED_DEADLINE=y |
147 | CONFIG_IOSCHED_CFQ=y | 151 | CONFIG_IOSCHED_CFQ=y |
148 | # CONFIG_DEFAULT_AS is not set | ||
149 | # CONFIG_DEFAULT_DEADLINE is not set | 152 | # CONFIG_DEFAULT_DEADLINE is not set |
150 | CONFIG_DEFAULT_CFQ=y | 153 | CONFIG_DEFAULT_CFQ=y |
151 | # CONFIG_DEFAULT_NOOP is not set | 154 | # CONFIG_DEFAULT_NOOP is not set |
152 | CONFIG_DEFAULT_IOSCHED="cfq" | 155 | CONFIG_DEFAULT_IOSCHED="cfq" |
156 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
157 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
162 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
163 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
164 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
165 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
166 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
167 | # CONFIG_INLINE_READ_LOCK is not set | ||
168 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
170 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
171 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
172 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
173 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
174 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
175 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
180 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
181 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
182 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
183 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
184 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
153 | CONFIG_FREEZER=y | 185 | CONFIG_FREEZER=y |
154 | 186 | ||
155 | # | 187 | # |
@@ -205,6 +237,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
205 | CONFIG_MEMORY_START=0x08000000 | 237 | CONFIG_MEMORY_START=0x08000000 |
206 | CONFIG_MEMORY_SIZE=0x08000000 | 238 | CONFIG_MEMORY_SIZE=0x08000000 |
207 | CONFIG_29BIT=y | 239 | CONFIG_29BIT=y |
240 | # CONFIG_PMB_ENABLE is not set | ||
208 | # CONFIG_X2TLB is not set | 241 | # CONFIG_X2TLB is not set |
209 | CONFIG_VSYSCALL=y | 242 | CONFIG_VSYSCALL=y |
210 | CONFIG_ARCH_FLATMEM_ENABLE=y | 243 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -229,8 +262,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
229 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 262 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
230 | CONFIG_ZONE_DMA_FLAG=0 | 263 | CONFIG_ZONE_DMA_FLAG=0 |
231 | CONFIG_NR_QUICK=2 | 264 | CONFIG_NR_QUICK=2 |
232 | CONFIG_HAVE_MLOCK=y | ||
233 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
234 | # CONFIG_KSM is not set | 265 | # CONFIG_KSM is not set |
235 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 266 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
236 | 267 | ||
@@ -262,7 +293,6 @@ CONFIG_SH_AP325RXA=y | |||
262 | # | 293 | # |
263 | CONFIG_SH_TIMER_TMU=y | 294 | CONFIG_SH_TIMER_TMU=y |
264 | # CONFIG_SH_TIMER_CMT is not set | 295 | # CONFIG_SH_TIMER_CMT is not set |
265 | CONFIG_SH_PCLK_FREQ=33333333 | ||
266 | CONFIG_SH_CLK_CPG=y | 296 | CONFIG_SH_CLK_CPG=y |
267 | CONFIG_TICK_ONESHOT=y | 297 | CONFIG_TICK_ONESHOT=y |
268 | # CONFIG_NO_HZ is not set | 298 | # CONFIG_NO_HZ is not set |
@@ -418,9 +448,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
418 | # CONFIG_AF_RXRPC is not set | 448 | # CONFIG_AF_RXRPC is not set |
419 | CONFIG_WIRELESS=y | 449 | CONFIG_WIRELESS=y |
420 | # CONFIG_CFG80211 is not set | 450 | # CONFIG_CFG80211 is not set |
421 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
422 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
423 | # CONFIG_WIRELESS_EXT is not set | ||
424 | # CONFIG_LIB80211 is not set | 451 | # CONFIG_LIB80211 is not set |
425 | 452 | ||
426 | # | 453 | # |
@@ -550,6 +577,10 @@ CONFIG_MTD_UBI_BEB_RESERVE=1 | |||
550 | CONFIG_BLK_DEV=y | 577 | CONFIG_BLK_DEV=y |
551 | # CONFIG_BLK_DEV_COW_COMMON is not set | 578 | # CONFIG_BLK_DEV_COW_COMMON is not set |
552 | # CONFIG_BLK_DEV_LOOP is not set | 579 | # CONFIG_BLK_DEV_LOOP is not set |
580 | |||
581 | # | ||
582 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
583 | # | ||
553 | # CONFIG_BLK_DEV_NBD is not set | 584 | # CONFIG_BLK_DEV_NBD is not set |
554 | CONFIG_BLK_DEV_RAM=y | 585 | CONFIG_BLK_DEV_RAM=y |
555 | CONFIG_BLK_DEV_RAM_COUNT=4 | 586 | CONFIG_BLK_DEV_RAM_COUNT=4 |
@@ -559,9 +590,12 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
559 | # CONFIG_ATA_OVER_ETH is not set | 590 | # CONFIG_ATA_OVER_ETH is not set |
560 | # CONFIG_BLK_DEV_HD is not set | 591 | # CONFIG_BLK_DEV_HD is not set |
561 | CONFIG_MISC_DEVICES=y | 592 | CONFIG_MISC_DEVICES=y |
593 | # CONFIG_AD525X_DPOT is not set | ||
562 | # CONFIG_ICS932S401 is not set | 594 | # CONFIG_ICS932S401 is not set |
563 | # CONFIG_ENCLOSURE_SERVICES is not set | 595 | # CONFIG_ENCLOSURE_SERVICES is not set |
564 | # CONFIG_ISL29003 is not set | 596 | # CONFIG_ISL29003 is not set |
597 | # CONFIG_DS1682 is not set | ||
598 | # CONFIG_TI_DAC7512 is not set | ||
565 | # CONFIG_C2PORT is not set | 599 | # CONFIG_C2PORT is not set |
566 | 600 | ||
567 | # | 601 | # |
@@ -572,6 +606,7 @@ CONFIG_MISC_DEVICES=y | |||
572 | # CONFIG_EEPROM_LEGACY is not set | 606 | # CONFIG_EEPROM_LEGACY is not set |
573 | # CONFIG_EEPROM_MAX6875 is not set | 607 | # CONFIG_EEPROM_MAX6875 is not set |
574 | # CONFIG_EEPROM_93CX6 is not set | 608 | # CONFIG_EEPROM_93CX6 is not set |
609 | # CONFIG_IWMC3200TOP is not set | ||
575 | CONFIG_HAVE_IDE=y | 610 | CONFIG_HAVE_IDE=y |
576 | # CONFIG_IDE is not set | 611 | # CONFIG_IDE is not set |
577 | 612 | ||
@@ -664,11 +699,11 @@ CONFIG_SMSC911X=y | |||
664 | # CONFIG_B44 is not set | 699 | # CONFIG_B44 is not set |
665 | # CONFIG_KS8842 is not set | 700 | # CONFIG_KS8842 is not set |
666 | # CONFIG_KS8851 is not set | 701 | # CONFIG_KS8851 is not set |
702 | # CONFIG_KS8851_MLL is not set | ||
667 | # CONFIG_NETDEV_1000 is not set | 703 | # CONFIG_NETDEV_1000 is not set |
668 | # CONFIG_NETDEV_10000 is not set | 704 | # CONFIG_NETDEV_10000 is not set |
669 | CONFIG_WLAN=y | 705 | CONFIG_WLAN=y |
670 | # CONFIG_WLAN_PRE80211 is not set | 706 | # CONFIG_HOSTAP is not set |
671 | # CONFIG_WLAN_80211 is not set | ||
672 | 707 | ||
673 | # | 708 | # |
674 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 709 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -688,6 +723,7 @@ CONFIG_WLAN=y | |||
688 | CONFIG_INPUT=y | 723 | CONFIG_INPUT=y |
689 | # CONFIG_INPUT_FF_MEMLESS is not set | 724 | # CONFIG_INPUT_FF_MEMLESS is not set |
690 | # CONFIG_INPUT_POLLDEV is not set | 725 | # CONFIG_INPUT_POLLDEV is not set |
726 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
691 | 727 | ||
692 | # | 728 | # |
693 | # Userland interfaces | 729 | # Userland interfaces |
@@ -782,7 +818,6 @@ CONFIG_I2C_SH_MOBILE=y | |||
782 | # | 818 | # |
783 | # Miscellaneous I2C Chip support | 819 | # Miscellaneous I2C Chip support |
784 | # | 820 | # |
785 | # CONFIG_DS1682 is not set | ||
786 | # CONFIG_SENSORS_TSL2550 is not set | 821 | # CONFIG_SENSORS_TSL2550 is not set |
787 | # CONFIG_I2C_DEBUG_CORE is not set | 822 | # CONFIG_I2C_DEBUG_CORE is not set |
788 | # CONFIG_I2C_DEBUG_ALGO is not set | 823 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -796,7 +831,10 @@ CONFIG_SPI_MASTER=y | |||
796 | # | 831 | # |
797 | CONFIG_SPI_BITBANG=y | 832 | CONFIG_SPI_BITBANG=y |
798 | CONFIG_SPI_GPIO=y | 833 | CONFIG_SPI_GPIO=y |
834 | # CONFIG_SPI_SH_MSIOF is not set | ||
799 | # CONFIG_SPI_SH_SCI is not set | 835 | # CONFIG_SPI_SH_SCI is not set |
836 | # CONFIG_SPI_XILINX is not set | ||
837 | # CONFIG_SPI_DESIGNWARE is not set | ||
800 | 838 | ||
801 | # | 839 | # |
802 | # SPI Protocol Masters | 840 | # SPI Protocol Masters |
@@ -854,11 +892,13 @@ CONFIG_SSB_POSSIBLE=y | |||
854 | # | 892 | # |
855 | # CONFIG_MFD_CORE is not set | 893 | # CONFIG_MFD_CORE is not set |
856 | # CONFIG_MFD_SM501 is not set | 894 | # CONFIG_MFD_SM501 is not set |
895 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
857 | # CONFIG_HTC_PASIC3 is not set | 896 | # CONFIG_HTC_PASIC3 is not set |
858 | # CONFIG_TPS65010 is not set | 897 | # CONFIG_TPS65010 is not set |
859 | # CONFIG_TWL4030_CORE is not set | 898 | # CONFIG_TWL4030_CORE is not set |
860 | # CONFIG_MFD_TMIO is not set | 899 | # CONFIG_MFD_TMIO is not set |
861 | # CONFIG_PMIC_DA903X is not set | 900 | # CONFIG_PMIC_DA903X is not set |
901 | # CONFIG_PMIC_ADP5520 is not set | ||
862 | # CONFIG_MFD_WM8400 is not set | 902 | # CONFIG_MFD_WM8400 is not set |
863 | # CONFIG_MFD_WM831X is not set | 903 | # CONFIG_MFD_WM831X is not set |
864 | # CONFIG_MFD_WM8350_I2C is not set | 904 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -866,6 +906,8 @@ CONFIG_SSB_POSSIBLE=y | |||
866 | # CONFIG_MFD_MC13783 is not set | 906 | # CONFIG_MFD_MC13783 is not set |
867 | # CONFIG_AB3100_CORE is not set | 907 | # CONFIG_AB3100_CORE is not set |
868 | # CONFIG_EZX_PCAP is not set | 908 | # CONFIG_EZX_PCAP is not set |
909 | # CONFIG_MFD_88PM8607 is not set | ||
910 | # CONFIG_AB4500_CORE is not set | ||
869 | # CONFIG_REGULATOR is not set | 911 | # CONFIG_REGULATOR is not set |
870 | CONFIG_MEDIA_SUPPORT=y | 912 | CONFIG_MEDIA_SUPPORT=y |
871 | 913 | ||
@@ -882,6 +924,8 @@ CONFIG_VIDEO_MEDIA=y | |||
882 | # | 924 | # |
883 | # Multimedia drivers | 925 | # Multimedia drivers |
884 | # | 926 | # |
927 | CONFIG_IR_CORE=y | ||
928 | CONFIG_VIDEO_IR=y | ||
885 | # CONFIG_MEDIA_ATTACH is not set | 929 | # CONFIG_MEDIA_ATTACH is not set |
886 | CONFIG_MEDIA_TUNER=y | 930 | CONFIG_MEDIA_TUNER=y |
887 | # CONFIG_MEDIA_TUNER_CUSTOMISE is not set | 931 | # CONFIG_MEDIA_TUNER_CUSTOMISE is not set |
@@ -901,6 +945,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y | |||
901 | # CONFIG_VIDEO_ADV_DEBUG is not set | 945 | # CONFIG_VIDEO_ADV_DEBUG is not set |
902 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set | 946 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set |
903 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y | 947 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y |
948 | CONFIG_VIDEO_IR_I2C=y | ||
904 | # CONFIG_VIDEO_VIVI is not set | 949 | # CONFIG_VIDEO_VIVI is not set |
905 | # CONFIG_VIDEO_SAA5246A is not set | 950 | # CONFIG_VIDEO_SAA5246A is not set |
906 | # CONFIG_VIDEO_SAA5249 is not set | 951 | # CONFIG_VIDEO_SAA5249 is not set |
@@ -908,10 +953,13 @@ CONFIG_SOC_CAMERA=y | |||
908 | # CONFIG_SOC_CAMERA_MT9M001 is not set | 953 | # CONFIG_SOC_CAMERA_MT9M001 is not set |
909 | # CONFIG_SOC_CAMERA_MT9M111 is not set | 954 | # CONFIG_SOC_CAMERA_MT9M111 is not set |
910 | # CONFIG_SOC_CAMERA_MT9T031 is not set | 955 | # CONFIG_SOC_CAMERA_MT9T031 is not set |
956 | # CONFIG_SOC_CAMERA_MT9T112 is not set | ||
911 | # CONFIG_SOC_CAMERA_MT9V022 is not set | 957 | # CONFIG_SOC_CAMERA_MT9V022 is not set |
958 | # CONFIG_SOC_CAMERA_RJ54N1 is not set | ||
912 | # CONFIG_SOC_CAMERA_TW9910 is not set | 959 | # CONFIG_SOC_CAMERA_TW9910 is not set |
913 | CONFIG_SOC_CAMERA_PLATFORM=y | 960 | CONFIG_SOC_CAMERA_PLATFORM=y |
914 | CONFIG_SOC_CAMERA_OV772X=y | 961 | CONFIG_SOC_CAMERA_OV772X=y |
962 | # CONFIG_SOC_CAMERA_OV9640 is not set | ||
915 | CONFIG_VIDEO_SH_MOBILE_CEU=y | 963 | CONFIG_VIDEO_SH_MOBILE_CEU=y |
916 | # CONFIG_RADIO_ADAPTERS is not set | 964 | # CONFIG_RADIO_ADAPTERS is not set |
917 | # CONFIG_DAB is not set | 965 | # CONFIG_DAB is not set |
@@ -996,6 +1044,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
996 | # CONFIG_MMC_AT91 is not set | 1044 | # CONFIG_MMC_AT91 is not set |
997 | # CONFIG_MMC_ATMELMCI is not set | 1045 | # CONFIG_MMC_ATMELMCI is not set |
998 | CONFIG_MMC_SPI=y | 1046 | CONFIG_MMC_SPI=y |
1047 | # CONFIG_MMC_TMIO is not set | ||
999 | # CONFIG_MEMSTICK is not set | 1048 | # CONFIG_MEMSTICK is not set |
1000 | # CONFIG_NEW_LEDS is not set | 1049 | # CONFIG_NEW_LEDS is not set |
1001 | # CONFIG_ACCESSIBILITY is not set | 1050 | # CONFIG_ACCESSIBILITY is not set |
@@ -1027,6 +1076,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1027 | CONFIG_RTC_DRV_PCF8563=y | 1076 | CONFIG_RTC_DRV_PCF8563=y |
1028 | # CONFIG_RTC_DRV_PCF8583 is not set | 1077 | # CONFIG_RTC_DRV_PCF8583 is not set |
1029 | # CONFIG_RTC_DRV_M41T80 is not set | 1078 | # CONFIG_RTC_DRV_M41T80 is not set |
1079 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1030 | # CONFIG_RTC_DRV_S35390A is not set | 1080 | # CONFIG_RTC_DRV_S35390A is not set |
1031 | # CONFIG_RTC_DRV_FM3130 is not set | 1081 | # CONFIG_RTC_DRV_FM3130 is not set |
1032 | # CONFIG_RTC_DRV_RX8581 is not set | 1082 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1055,7 +1105,9 @@ CONFIG_RTC_DRV_PCF8563=y | |||
1055 | # CONFIG_RTC_DRV_M48T86 is not set | 1105 | # CONFIG_RTC_DRV_M48T86 is not set |
1056 | # CONFIG_RTC_DRV_M48T35 is not set | 1106 | # CONFIG_RTC_DRV_M48T35 is not set |
1057 | # CONFIG_RTC_DRV_M48T59 is not set | 1107 | # CONFIG_RTC_DRV_M48T59 is not set |
1108 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1058 | # CONFIG_RTC_DRV_BQ4802 is not set | 1109 | # CONFIG_RTC_DRV_BQ4802 is not set |
1110 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1059 | # CONFIG_RTC_DRV_V3020 is not set | 1111 | # CONFIG_RTC_DRV_V3020 is not set |
1060 | 1112 | ||
1061 | # | 1113 | # |
@@ -1248,7 +1300,7 @@ CONFIG_FRAME_WARN=1024 | |||
1248 | # CONFIG_DEBUG_FS is not set | 1300 | # CONFIG_DEBUG_FS is not set |
1249 | # CONFIG_HEADERS_CHECK is not set | 1301 | # CONFIG_HEADERS_CHECK is not set |
1250 | # CONFIG_DEBUG_KERNEL is not set | 1302 | # CONFIG_DEBUG_KERNEL is not set |
1251 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1303 | CONFIG_DEBUG_BUGVERBOSE=y |
1252 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1304 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1253 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1305 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1254 | # CONFIG_LATENCYTOP is not set | 1306 | # CONFIG_LATENCYTOP is not set |
@@ -1265,7 +1317,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1265 | # CONFIG_SAMPLES is not set | 1317 | # CONFIG_SAMPLES is not set |
1266 | CONFIG_HAVE_ARCH_KGDB=y | 1318 | CONFIG_HAVE_ARCH_KGDB=y |
1267 | # CONFIG_SH_STANDARD_BIOS is not set | 1319 | # CONFIG_SH_STANDARD_BIOS is not set |
1268 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1269 | # CONFIG_DWARF_UNWINDER is not set | 1320 | # CONFIG_DWARF_UNWINDER is not set |
1270 | 1321 | ||
1271 | # | 1322 | # |
@@ -1274,7 +1325,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1274 | # CONFIG_KEYS is not set | 1325 | # CONFIG_KEYS is not set |
1275 | # CONFIG_SECURITY is not set | 1326 | # CONFIG_SECURITY is not set |
1276 | # CONFIG_SECURITYFS is not set | 1327 | # CONFIG_SECURITYFS is not set |
1277 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1328 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1329 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1330 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1331 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1332 | CONFIG_DEFAULT_SECURITY="" | ||
1278 | CONFIG_CRYPTO=y | 1333 | CONFIG_CRYPTO=y |
1279 | 1334 | ||
1280 | # | 1335 | # |
diff --git a/arch/sh/configs/cayman_defconfig b/arch/sh/configs/cayman_defconfig index 6b863cb1e24..92589a950d0 100644 --- a/arch/sh/configs/cayman_defconfig +++ b/arch/sh/configs/cayman_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.30 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Jun 18 12:21:54 2009 | 4 | # Mon Jan 4 11:14:50 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | # CONFIG_SUPERH32 is not set | 7 | # CONFIG_SUPERH32 is not set |
@@ -14,11 +14,13 @@ CONFIG_GENERIC_HWEIGHT=y | |||
14 | CONFIG_GENERIC_HARDIRQS=y | 14 | CONFIG_GENERIC_HARDIRQS=y |
15 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 15 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
16 | CONFIG_GENERIC_IRQ_PROBE=y | 16 | CONFIG_GENERIC_IRQ_PROBE=y |
17 | CONFIG_IRQ_PER_CPU=y | ||
17 | # CONFIG_GENERIC_GPIO is not set | 18 | # CONFIG_GENERIC_GPIO is not set |
18 | CONFIG_GENERIC_TIME=y | 19 | CONFIG_GENERIC_TIME=y |
19 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
20 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
21 | # CONFIG_ARCH_HIBERNATION_POSSIBLE is not set | 22 | # CONFIG_ARCH_HIBERNATION_POSSIBLE is not set |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
22 | CONFIG_SYS_SUPPORTS_PCI=y | 24 | CONFIG_SYS_SUPPORTS_PCI=y |
23 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
24 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -28,7 +30,10 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
28 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 30 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | ||
34 | CONFIG_DMA_NONCOHERENT=y | ||
31 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
36 | CONFIG_CONSTRUCTORS=y | ||
32 | 37 | ||
33 | # | 38 | # |
34 | # General setup | 39 | # General setup |
@@ -39,6 +44,12 @@ CONFIG_LOCK_KERNEL=y | |||
39 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 44 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
40 | CONFIG_LOCALVERSION="" | 45 | CONFIG_LOCALVERSION="" |
41 | CONFIG_LOCALVERSION_AUTO=y | 46 | CONFIG_LOCALVERSION_AUTO=y |
47 | CONFIG_HAVE_KERNEL_GZIP=y | ||
48 | CONFIG_HAVE_KERNEL_BZIP2=y | ||
49 | CONFIG_HAVE_KERNEL_LZMA=y | ||
50 | CONFIG_KERNEL_GZIP=y | ||
51 | # CONFIG_KERNEL_BZIP2 is not set | ||
52 | # CONFIG_KERNEL_LZMA is not set | ||
42 | CONFIG_SWAP=y | 53 | CONFIG_SWAP=y |
43 | # CONFIG_SYSVIPC is not set | 54 | # CONFIG_SYSVIPC is not set |
44 | CONFIG_POSIX_MQUEUE=y | 55 | CONFIG_POSIX_MQUEUE=y |
@@ -50,11 +61,13 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
50 | # | 61 | # |
51 | # RCU Subsystem | 62 | # RCU Subsystem |
52 | # | 63 | # |
53 | CONFIG_CLASSIC_RCU=y | 64 | CONFIG_TREE_RCU=y |
54 | # CONFIG_TREE_RCU is not set | 65 | # CONFIG_TREE_PREEMPT_RCU is not set |
55 | # CONFIG_PREEMPT_RCU is not set | 66 | # CONFIG_TINY_RCU is not set |
67 | # CONFIG_RCU_TRACE is not set | ||
68 | CONFIG_RCU_FANOUT=32 | ||
69 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
56 | # CONFIG_TREE_RCU_TRACE is not set | 70 | # CONFIG_TREE_RCU_TRACE is not set |
57 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
58 | # CONFIG_IKCONFIG is not set | 71 | # CONFIG_IKCONFIG is not set |
59 | CONFIG_LOG_BUF_SHIFT=14 | 72 | CONFIG_LOG_BUF_SHIFT=14 |
60 | # CONFIG_GROUP_SCHED is not set | 73 | # CONFIG_GROUP_SCHED is not set |
@@ -85,24 +98,32 @@ CONFIG_TIMERFD=y | |||
85 | CONFIG_EVENTFD=y | 98 | CONFIG_EVENTFD=y |
86 | CONFIG_SHMEM=y | 99 | CONFIG_SHMEM=y |
87 | CONFIG_AIO=y | 100 | CONFIG_AIO=y |
101 | CONFIG_HAVE_PERF_EVENTS=y | ||
102 | CONFIG_PERF_USE_VMALLOC=y | ||
88 | 103 | ||
89 | # | 104 | # |
90 | # Performance Counters | 105 | # Kernel Performance Events And Counters |
91 | # | 106 | # |
107 | # CONFIG_PERF_EVENTS is not set | ||
108 | # CONFIG_PERF_COUNTERS is not set | ||
92 | CONFIG_VM_EVENT_COUNTERS=y | 109 | CONFIG_VM_EVENT_COUNTERS=y |
93 | CONFIG_PCI_QUIRKS=y | 110 | CONFIG_PCI_QUIRKS=y |
94 | # CONFIG_STRIP_ASM_SYMS is not set | ||
95 | CONFIG_COMPAT_BRK=y | 111 | CONFIG_COMPAT_BRK=y |
96 | CONFIG_SLAB=y | 112 | CONFIG_SLAB=y |
97 | # CONFIG_SLUB is not set | 113 | # CONFIG_SLUB is not set |
98 | # CONFIG_SLOB is not set | 114 | # CONFIG_SLOB is not set |
99 | # CONFIG_PROFILING is not set | 115 | # CONFIG_PROFILING is not set |
100 | # CONFIG_MARKERS is not set | ||
101 | CONFIG_HAVE_OPROFILE=y | 116 | CONFIG_HAVE_OPROFILE=y |
102 | CONFIG_HAVE_IOREMAP_PROT=y | 117 | CONFIG_HAVE_IOREMAP_PROT=y |
103 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 118 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
119 | CONFIG_HAVE_DMA_ATTRS=y | ||
104 | CONFIG_HAVE_CLK=y | 120 | CONFIG_HAVE_CLK=y |
105 | CONFIG_HAVE_DMA_API_DEBUG=y | 121 | CONFIG_HAVE_DMA_API_DEBUG=y |
122 | |||
123 | # | ||
124 | # GCOV-based kernel profiling | ||
125 | # | ||
126 | # CONFIG_GCOV_KERNEL is not set | ||
106 | # CONFIG_SLOW_WORK is not set | 127 | # CONFIG_SLOW_WORK is not set |
107 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 128 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
108 | CONFIG_SLABINFO=y | 129 | CONFIG_SLABINFO=y |
@@ -115,7 +136,7 @@ CONFIG_MODULE_UNLOAD=y | |||
115 | # CONFIG_MODVERSIONS is not set | 136 | # CONFIG_MODVERSIONS is not set |
116 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 137 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
117 | CONFIG_BLOCK=y | 138 | CONFIG_BLOCK=y |
118 | # CONFIG_LBD is not set | 139 | CONFIG_LBDAF=y |
119 | # CONFIG_BLK_DEV_BSG is not set | 140 | # CONFIG_BLK_DEV_BSG is not set |
120 | # CONFIG_BLK_DEV_INTEGRITY is not set | 141 | # CONFIG_BLK_DEV_INTEGRITY is not set |
121 | 142 | ||
@@ -123,14 +144,41 @@ CONFIG_BLOCK=y | |||
123 | # IO Schedulers | 144 | # IO Schedulers |
124 | # | 145 | # |
125 | CONFIG_IOSCHED_NOOP=y | 146 | CONFIG_IOSCHED_NOOP=y |
126 | CONFIG_IOSCHED_AS=y | ||
127 | CONFIG_IOSCHED_DEADLINE=y | 147 | CONFIG_IOSCHED_DEADLINE=y |
128 | CONFIG_IOSCHED_CFQ=y | 148 | CONFIG_IOSCHED_CFQ=y |
129 | # CONFIG_DEFAULT_AS is not set | ||
130 | # CONFIG_DEFAULT_DEADLINE is not set | 149 | # CONFIG_DEFAULT_DEADLINE is not set |
131 | CONFIG_DEFAULT_CFQ=y | 150 | CONFIG_DEFAULT_CFQ=y |
132 | # CONFIG_DEFAULT_NOOP is not set | 151 | # CONFIG_DEFAULT_NOOP is not set |
133 | CONFIG_DEFAULT_IOSCHED="cfq" | 152 | CONFIG_DEFAULT_IOSCHED="cfq" |
153 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
154 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
155 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
156 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
157 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
159 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
160 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
161 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
162 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
163 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
164 | # CONFIG_INLINE_READ_LOCK is not set | ||
165 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
166 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
167 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
168 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
169 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
170 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
171 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
172 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
173 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
174 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
175 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
177 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
178 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
179 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
180 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
181 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
134 | # CONFIG_FREEZER is not set | 182 | # CONFIG_FREEZER is not set |
135 | 183 | ||
136 | # | 184 | # |
@@ -178,8 +226,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
178 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 226 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
179 | CONFIG_ZONE_DMA_FLAG=0 | 227 | CONFIG_ZONE_DMA_FLAG=0 |
180 | CONFIG_NR_QUICK=2 | 228 | CONFIG_NR_QUICK=2 |
181 | CONFIG_HAVE_MLOCK=y | 229 | # CONFIG_KSM is not set |
182 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
183 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 230 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
184 | 231 | ||
185 | # | 232 | # |
@@ -255,13 +302,13 @@ CONFIG_PREEMPT=y | |||
255 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 302 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
256 | CONFIG_BOOT_LINK_OFFSET=0x00400000 | 303 | CONFIG_BOOT_LINK_OFFSET=0x00400000 |
257 | CONFIG_ENTRY_OFFSET=0x00001000 | 304 | CONFIG_ENTRY_OFFSET=0x00001000 |
258 | # CONFIG_CMDLINE_BOOL is not set | 305 | # CONFIG_CMDLINE_OVERWRITE is not set |
306 | # CONFIG_CMDLINE_EXTEND is not set | ||
259 | 307 | ||
260 | # | 308 | # |
261 | # Bus options | 309 | # Bus options |
262 | # | 310 | # |
263 | CONFIG_PCI=y | 311 | CONFIG_PCI=y |
264 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
265 | # CONFIG_PCIEPORTBUS is not set | 312 | # CONFIG_PCIEPORTBUS is not set |
266 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 313 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
267 | CONFIG_PCI_LEGACY=y | 314 | CONFIG_PCI_LEGACY=y |
@@ -330,6 +377,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
330 | # CONFIG_NETFILTER is not set | 377 | # CONFIG_NETFILTER is not set |
331 | # CONFIG_IP_DCCP is not set | 378 | # CONFIG_IP_DCCP is not set |
332 | # CONFIG_IP_SCTP is not set | 379 | # CONFIG_IP_SCTP is not set |
380 | # CONFIG_RDS is not set | ||
333 | # CONFIG_TIPC is not set | 381 | # CONFIG_TIPC is not set |
334 | # CONFIG_ATM is not set | 382 | # CONFIG_ATM is not set |
335 | # CONFIG_BRIDGE is not set | 383 | # CONFIG_BRIDGE is not set |
@@ -359,14 +407,11 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
359 | # CONFIG_AF_RXRPC is not set | 407 | # CONFIG_AF_RXRPC is not set |
360 | CONFIG_WIRELESS=y | 408 | CONFIG_WIRELESS=y |
361 | # CONFIG_CFG80211 is not set | 409 | # CONFIG_CFG80211 is not set |
362 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
363 | # CONFIG_WIRELESS_EXT is not set | ||
364 | # CONFIG_LIB80211 is not set | 410 | # CONFIG_LIB80211 is not set |
365 | 411 | ||
366 | # | 412 | # |
367 | # CFG80211 needs to be enabled for MAC80211 | 413 | # CFG80211 needs to be enabled for MAC80211 |
368 | # | 414 | # |
369 | CONFIG_MAC80211_DEFAULT_PS_VALUE=0 | ||
370 | # CONFIG_WIMAX is not set | 415 | # CONFIG_WIMAX is not set |
371 | # CONFIG_RFKILL is not set | 416 | # CONFIG_RFKILL is not set |
372 | # CONFIG_NET_9P is not set | 417 | # CONFIG_NET_9P is not set |
@@ -379,6 +424,7 @@ CONFIG_MAC80211_DEFAULT_PS_VALUE=0 | |||
379 | # Generic Driver Options | 424 | # Generic Driver Options |
380 | # | 425 | # |
381 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 426 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
427 | # CONFIG_DEVTMPFS is not set | ||
382 | CONFIG_STANDALONE=y | 428 | CONFIG_STANDALONE=y |
383 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 429 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
384 | # CONFIG_FW_LOADER is not set | 430 | # CONFIG_FW_LOADER is not set |
@@ -395,6 +441,10 @@ CONFIG_BLK_DEV=y | |||
395 | # CONFIG_BLK_DEV_COW_COMMON is not set | 441 | # CONFIG_BLK_DEV_COW_COMMON is not set |
396 | CONFIG_BLK_DEV_LOOP=y | 442 | CONFIG_BLK_DEV_LOOP=y |
397 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 443 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
444 | |||
445 | # | ||
446 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
447 | # | ||
398 | # CONFIG_BLK_DEV_NBD is not set | 448 | # CONFIG_BLK_DEV_NBD is not set |
399 | # CONFIG_BLK_DEV_SX8 is not set | 449 | # CONFIG_BLK_DEV_SX8 is not set |
400 | CONFIG_BLK_DEV_RAM=y | 450 | CONFIG_BLK_DEV_RAM=y |
@@ -405,6 +455,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
405 | # CONFIG_ATA_OVER_ETH is not set | 455 | # CONFIG_ATA_OVER_ETH is not set |
406 | # CONFIG_BLK_DEV_HD is not set | 456 | # CONFIG_BLK_DEV_HD is not set |
407 | CONFIG_MISC_DEVICES=y | 457 | CONFIG_MISC_DEVICES=y |
458 | # CONFIG_AD525X_DPOT is not set | ||
408 | # CONFIG_PHANTOM is not set | 459 | # CONFIG_PHANTOM is not set |
409 | # CONFIG_SGI_IOC4 is not set | 460 | # CONFIG_SGI_IOC4 is not set |
410 | # CONFIG_TIFM_CORE is not set | 461 | # CONFIG_TIFM_CORE is not set |
@@ -412,6 +463,7 @@ CONFIG_MISC_DEVICES=y | |||
412 | # CONFIG_ENCLOSURE_SERVICES is not set | 463 | # CONFIG_ENCLOSURE_SERVICES is not set |
413 | # CONFIG_HP_ILO is not set | 464 | # CONFIG_HP_ILO is not set |
414 | # CONFIG_ISL29003 is not set | 465 | # CONFIG_ISL29003 is not set |
466 | # CONFIG_DS1682 is not set | ||
415 | # CONFIG_C2PORT is not set | 467 | # CONFIG_C2PORT is not set |
416 | 468 | ||
417 | # | 469 | # |
@@ -462,8 +514,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
462 | # CONFIG_ISCSI_TCP is not set | 514 | # CONFIG_ISCSI_TCP is not set |
463 | # CONFIG_SCSI_CXGB3_ISCSI is not set | 515 | # CONFIG_SCSI_CXGB3_ISCSI is not set |
464 | # CONFIG_SCSI_BNX2_ISCSI is not set | 516 | # CONFIG_SCSI_BNX2_ISCSI is not set |
517 | # CONFIG_BE2ISCSI is not set | ||
465 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 518 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
519 | # CONFIG_SCSI_HPSA is not set | ||
466 | # CONFIG_SCSI_3W_9XXX is not set | 520 | # CONFIG_SCSI_3W_9XXX is not set |
521 | # CONFIG_SCSI_3W_SAS is not set | ||
467 | # CONFIG_SCSI_ACARD is not set | 522 | # CONFIG_SCSI_ACARD is not set |
468 | # CONFIG_SCSI_AACRAID is not set | 523 | # CONFIG_SCSI_AACRAID is not set |
469 | # CONFIG_SCSI_AIC7XXX is not set | 524 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -495,7 +550,10 @@ CONFIG_SCSI_LOWLEVEL=y | |||
495 | # CONFIG_SCSI_DC390T is not set | 550 | # CONFIG_SCSI_DC390T is not set |
496 | # CONFIG_SCSI_NSP32 is not set | 551 | # CONFIG_SCSI_NSP32 is not set |
497 | # CONFIG_SCSI_DEBUG is not set | 552 | # CONFIG_SCSI_DEBUG is not set |
553 | # CONFIG_SCSI_PMCRAID is not set | ||
554 | # CONFIG_SCSI_PM8001 is not set | ||
498 | # CONFIG_SCSI_SRP is not set | 555 | # CONFIG_SCSI_SRP is not set |
556 | # CONFIG_SCSI_BFA_FC is not set | ||
499 | # CONFIG_SCSI_DH is not set | 557 | # CONFIG_SCSI_DH is not set |
500 | # CONFIG_SCSI_OSD_INITIATOR is not set | 558 | # CONFIG_SCSI_OSD_INITIATOR is not set |
501 | # CONFIG_ATA is not set | 559 | # CONFIG_ATA is not set |
@@ -507,7 +565,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
507 | # | 565 | # |
508 | 566 | ||
509 | # | 567 | # |
510 | # Enable only one of the two stacks, unless you know what you are doing | 568 | # You can enable one or both FireWire driver stacks. |
569 | # | ||
570 | |||
571 | # | ||
572 | # See the help texts for more information. | ||
511 | # | 573 | # |
512 | # CONFIG_FIREWIRE is not set | 574 | # CONFIG_FIREWIRE is not set |
513 | # CONFIG_IEEE1394 is not set | 575 | # CONFIG_IEEE1394 is not set |
@@ -546,6 +608,7 @@ CONFIG_NET_ETHERNET=y | |||
546 | # CONFIG_NET_PCI is not set | 608 | # CONFIG_NET_PCI is not set |
547 | # CONFIG_B44 is not set | 609 | # CONFIG_B44 is not set |
548 | # CONFIG_KS8842 is not set | 610 | # CONFIG_KS8842 is not set |
611 | # CONFIG_KS8851_MLL is not set | ||
549 | # CONFIG_ATL2 is not set | 612 | # CONFIG_ATL2 is not set |
550 | CONFIG_NETDEV_1000=y | 613 | CONFIG_NETDEV_1000=y |
551 | # CONFIG_ACENIC is not set | 614 | # CONFIG_ACENIC is not set |
@@ -565,6 +628,7 @@ CONFIG_NETDEV_1000=y | |||
565 | # CONFIG_VIA_VELOCITY is not set | 628 | # CONFIG_VIA_VELOCITY is not set |
566 | # CONFIG_TIGON3 is not set | 629 | # CONFIG_TIGON3 is not set |
567 | # CONFIG_BNX2 is not set | 630 | # CONFIG_BNX2 is not set |
631 | # CONFIG_CNIC is not set | ||
568 | # CONFIG_QLA3XXX is not set | 632 | # CONFIG_QLA3XXX is not set |
569 | # CONFIG_ATL1 is not set | 633 | # CONFIG_ATL1 is not set |
570 | # CONFIG_ATL1E is not set | 634 | # CONFIG_ATL1E is not set |
@@ -590,12 +654,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
590 | # CONFIG_SFC is not set | 654 | # CONFIG_SFC is not set |
591 | # CONFIG_BE2NET is not set | 655 | # CONFIG_BE2NET is not set |
592 | # CONFIG_TR is not set | 656 | # CONFIG_TR is not set |
593 | 657 | CONFIG_WLAN=y | |
594 | # | 658 | # CONFIG_ATMEL is not set |
595 | # Wireless LAN | 659 | # CONFIG_PRISM54 is not set |
596 | # | 660 | # CONFIG_HOSTAP is not set |
597 | # CONFIG_WLAN_PRE80211 is not set | ||
598 | # CONFIG_WLAN_80211 is not set | ||
599 | 661 | ||
600 | # | 662 | # |
601 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 663 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -609,6 +671,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
609 | # CONFIG_NETCONSOLE is not set | 671 | # CONFIG_NETCONSOLE is not set |
610 | # CONFIG_NETPOLL is not set | 672 | # CONFIG_NETPOLL is not set |
611 | # CONFIG_NET_POLL_CONTROLLER is not set | 673 | # CONFIG_NET_POLL_CONTROLLER is not set |
674 | # CONFIG_VMXNET3 is not set | ||
612 | # CONFIG_ISDN is not set | 675 | # CONFIG_ISDN is not set |
613 | # CONFIG_PHONE is not set | 676 | # CONFIG_PHONE is not set |
614 | 677 | ||
@@ -618,6 +681,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
618 | CONFIG_INPUT=y | 681 | CONFIG_INPUT=y |
619 | # CONFIG_INPUT_FF_MEMLESS is not set | 682 | # CONFIG_INPUT_FF_MEMLESS is not set |
620 | # CONFIG_INPUT_POLLDEV is not set | 683 | # CONFIG_INPUT_POLLDEV is not set |
684 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
621 | 685 | ||
622 | # | 686 | # |
623 | # Userland interfaces | 687 | # Userland interfaces |
@@ -682,6 +746,7 @@ CONFIG_HW_RANDOM=y | |||
682 | CONFIG_DEVPORT=y | 746 | CONFIG_DEVPORT=y |
683 | CONFIG_I2C=m | 747 | CONFIG_I2C=m |
684 | CONFIG_I2C_BOARDINFO=y | 748 | CONFIG_I2C_BOARDINFO=y |
749 | CONFIG_I2C_COMPAT=y | ||
685 | # CONFIG_I2C_CHARDEV is not set | 750 | # CONFIG_I2C_CHARDEV is not set |
686 | CONFIG_I2C_HELPER_AUTO=y | 751 | CONFIG_I2C_HELPER_AUTO=y |
687 | 752 | ||
@@ -710,6 +775,7 @@ CONFIG_I2C_HELPER_AUTO=y | |||
710 | # | 775 | # |
711 | # I2C system bus drivers (mostly embedded / system-on-chip) | 776 | # I2C system bus drivers (mostly embedded / system-on-chip) |
712 | # | 777 | # |
778 | # CONFIG_I2C_DESIGNWARE is not set | ||
713 | # CONFIG_I2C_OCORES is not set | 779 | # CONFIG_I2C_OCORES is not set |
714 | # CONFIG_I2C_SH_MOBILE is not set | 780 | # CONFIG_I2C_SH_MOBILE is not set |
715 | # CONFIG_I2C_SIMTEC is not set | 781 | # CONFIG_I2C_SIMTEC is not set |
@@ -721,11 +787,6 @@ CONFIG_I2C_HELPER_AUTO=y | |||
721 | # CONFIG_I2C_TAOS_EVM is not set | 787 | # CONFIG_I2C_TAOS_EVM is not set |
722 | 788 | ||
723 | # | 789 | # |
724 | # Graphics adapter I2C/DDC channel drivers | ||
725 | # | ||
726 | # CONFIG_I2C_VOODOO3 is not set | ||
727 | |||
728 | # | ||
729 | # Other I2C/SMBus bus drivers | 790 | # Other I2C/SMBus bus drivers |
730 | # | 791 | # |
731 | # CONFIG_I2C_PCA_PLATFORM is not set | 792 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -734,20 +795,26 @@ CONFIG_I2C_HELPER_AUTO=y | |||
734 | # | 795 | # |
735 | # Miscellaneous I2C Chip support | 796 | # Miscellaneous I2C Chip support |
736 | # | 797 | # |
737 | # CONFIG_DS1682 is not set | ||
738 | # CONFIG_SENSORS_PCF8574 is not set | ||
739 | # CONFIG_PCF8575 is not set | ||
740 | # CONFIG_SENSORS_PCA9539 is not set | ||
741 | # CONFIG_SENSORS_TSL2550 is not set | 798 | # CONFIG_SENSORS_TSL2550 is not set |
742 | # CONFIG_I2C_DEBUG_CORE is not set | 799 | # CONFIG_I2C_DEBUG_CORE is not set |
743 | # CONFIG_I2C_DEBUG_ALGO is not set | 800 | # CONFIG_I2C_DEBUG_ALGO is not set |
744 | # CONFIG_I2C_DEBUG_BUS is not set | 801 | # CONFIG_I2C_DEBUG_BUS is not set |
745 | # CONFIG_I2C_DEBUG_CHIP is not set | 802 | # CONFIG_I2C_DEBUG_CHIP is not set |
746 | # CONFIG_SPI is not set | 803 | # CONFIG_SPI is not set |
804 | |||
805 | # | ||
806 | # PPS support | ||
807 | # | ||
808 | # CONFIG_PPS is not set | ||
747 | # CONFIG_W1 is not set | 809 | # CONFIG_W1 is not set |
748 | # CONFIG_POWER_SUPPLY is not set | 810 | # CONFIG_POWER_SUPPLY is not set |
749 | CONFIG_HWMON=y | 811 | CONFIG_HWMON=y |
750 | # CONFIG_HWMON_VID is not set | 812 | # CONFIG_HWMON_VID is not set |
813 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
814 | |||
815 | # | ||
816 | # Native drivers | ||
817 | # | ||
751 | # CONFIG_SENSORS_AD7414 is not set | 818 | # CONFIG_SENSORS_AD7414 is not set |
752 | # CONFIG_SENSORS_AD7418 is not set | 819 | # CONFIG_SENSORS_AD7418 is not set |
753 | # CONFIG_SENSORS_ADM1021 is not set | 820 | # CONFIG_SENSORS_ADM1021 is not set |
@@ -771,6 +838,7 @@ CONFIG_HWMON=y | |||
771 | # CONFIG_SENSORS_GL520SM is not set | 838 | # CONFIG_SENSORS_GL520SM is not set |
772 | # CONFIG_SENSORS_IT87 is not set | 839 | # CONFIG_SENSORS_IT87 is not set |
773 | # CONFIG_SENSORS_LM63 is not set | 840 | # CONFIG_SENSORS_LM63 is not set |
841 | # CONFIG_SENSORS_LM73 is not set | ||
774 | # CONFIG_SENSORS_LM75 is not set | 842 | # CONFIG_SENSORS_LM75 is not set |
775 | # CONFIG_SENSORS_LM77 is not set | 843 | # CONFIG_SENSORS_LM77 is not set |
776 | # CONFIG_SENSORS_LM78 is not set | 844 | # CONFIG_SENSORS_LM78 is not set |
@@ -797,6 +865,7 @@ CONFIG_HWMON=y | |||
797 | # CONFIG_SENSORS_ADS7828 is not set | 865 | # CONFIG_SENSORS_ADS7828 is not set |
798 | # CONFIG_SENSORS_THMC50 is not set | 866 | # CONFIG_SENSORS_THMC50 is not set |
799 | # CONFIG_SENSORS_TMP401 is not set | 867 | # CONFIG_SENSORS_TMP401 is not set |
868 | # CONFIG_SENSORS_TMP421 is not set | ||
800 | # CONFIG_SENSORS_VIA686A is not set | 869 | # CONFIG_SENSORS_VIA686A is not set |
801 | # CONFIG_SENSORS_VT1211 is not set | 870 | # CONFIG_SENSORS_VT1211 is not set |
802 | # CONFIG_SENSORS_VT8231 is not set | 871 | # CONFIG_SENSORS_VT8231 is not set |
@@ -808,9 +877,8 @@ CONFIG_HWMON=y | |||
808 | # CONFIG_SENSORS_W83L786NG is not set | 877 | # CONFIG_SENSORS_W83L786NG is not set |
809 | # CONFIG_SENSORS_W83627HF is not set | 878 | # CONFIG_SENSORS_W83627HF is not set |
810 | # CONFIG_SENSORS_W83627EHF is not set | 879 | # CONFIG_SENSORS_W83627EHF is not set |
811 | # CONFIG_HWMON_DEBUG_CHIP is not set | 880 | # CONFIG_SENSORS_LIS3_I2C is not set |
812 | # CONFIG_THERMAL is not set | 881 | # CONFIG_THERMAL is not set |
813 | # CONFIG_THERMAL_HWMON is not set | ||
814 | CONFIG_WATCHDOG=y | 882 | CONFIG_WATCHDOG=y |
815 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 883 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
816 | 884 | ||
@@ -837,17 +905,20 @@ CONFIG_SSB_POSSIBLE=y | |||
837 | # | 905 | # |
838 | # CONFIG_MFD_CORE is not set | 906 | # CONFIG_MFD_CORE is not set |
839 | # CONFIG_MFD_SM501 is not set | 907 | # CONFIG_MFD_SM501 is not set |
908 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
840 | # CONFIG_HTC_PASIC3 is not set | 909 | # CONFIG_HTC_PASIC3 is not set |
841 | # CONFIG_MFD_TMIO is not set | 910 | # CONFIG_MFD_TMIO is not set |
842 | # CONFIG_MFD_WM8400 is not set | 911 | # CONFIG_MFD_WM8400 is not set |
843 | # CONFIG_MFD_WM8350_I2C is not set | 912 | # CONFIG_MFD_WM8350_I2C is not set |
844 | # CONFIG_MFD_PCF50633 is not set | 913 | # CONFIG_MFD_PCF50633 is not set |
914 | # CONFIG_AB3100_CORE is not set | ||
845 | # CONFIG_REGULATOR is not set | 915 | # CONFIG_REGULATOR is not set |
846 | # CONFIG_MEDIA_SUPPORT is not set | 916 | # CONFIG_MEDIA_SUPPORT is not set |
847 | 917 | ||
848 | # | 918 | # |
849 | # Graphics support | 919 | # Graphics support |
850 | # | 920 | # |
921 | CONFIG_VGA_ARB=y | ||
851 | # CONFIG_DRM is not set | 922 | # CONFIG_DRM is not set |
852 | # CONFIG_VGASTATE is not set | 923 | # CONFIG_VGASTATE is not set |
853 | CONFIG_VIDEO_OUTPUT_CONTROL=y | 924 | CONFIG_VIDEO_OUTPUT_CONTROL=y |
@@ -939,7 +1010,6 @@ CONFIG_LOGO_SUPERH_CLUT224=y | |||
939 | # CONFIG_SOUND is not set | 1010 | # CONFIG_SOUND is not set |
940 | CONFIG_HID_SUPPORT=y | 1011 | CONFIG_HID_SUPPORT=y |
941 | CONFIG_HID=y | 1012 | CONFIG_HID=y |
942 | # CONFIG_HID_DEBUG is not set | ||
943 | # CONFIG_HIDRAW is not set | 1013 | # CONFIG_HIDRAW is not set |
944 | # CONFIG_HID_PID is not set | 1014 | # CONFIG_HID_PID is not set |
945 | 1015 | ||
@@ -1002,8 +1072,10 @@ CONFIG_FS_MBCACHE=y | |||
1002 | # CONFIG_JFS_FS is not set | 1072 | # CONFIG_JFS_FS is not set |
1003 | # CONFIG_FS_POSIX_ACL is not set | 1073 | # CONFIG_FS_POSIX_ACL is not set |
1004 | # CONFIG_XFS_FS is not set | 1074 | # CONFIG_XFS_FS is not set |
1075 | # CONFIG_GFS2_FS is not set | ||
1005 | # CONFIG_OCFS2_FS is not set | 1076 | # CONFIG_OCFS2_FS is not set |
1006 | # CONFIG_BTRFS_FS is not set | 1077 | # CONFIG_BTRFS_FS is not set |
1078 | # CONFIG_NILFS2_FS is not set | ||
1007 | CONFIG_FILE_LOCKING=y | 1079 | CONFIG_FILE_LOCKING=y |
1008 | CONFIG_FSNOTIFY=y | 1080 | CONFIG_FSNOTIFY=y |
1009 | CONFIG_DNOTIFY=y | 1081 | CONFIG_DNOTIFY=y |
@@ -1067,7 +1139,6 @@ CONFIG_ROMFS_BACKED_BY_BLOCK=y | |||
1067 | CONFIG_ROMFS_ON_BLOCK=y | 1139 | CONFIG_ROMFS_ON_BLOCK=y |
1068 | # CONFIG_SYSV_FS is not set | 1140 | # CONFIG_SYSV_FS is not set |
1069 | # CONFIG_UFS_FS is not set | 1141 | # CONFIG_UFS_FS is not set |
1070 | # CONFIG_NILFS2_FS is not set | ||
1071 | CONFIG_NETWORK_FILESYSTEMS=y | 1142 | CONFIG_NETWORK_FILESYSTEMS=y |
1072 | CONFIG_NFS_FS=y | 1143 | CONFIG_NFS_FS=y |
1073 | CONFIG_NFS_V3=y | 1144 | CONFIG_NFS_V3=y |
@@ -1120,6 +1191,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1120 | CONFIG_ENABLE_MUST_CHECK=y | 1191 | CONFIG_ENABLE_MUST_CHECK=y |
1121 | CONFIG_FRAME_WARN=1024 | 1192 | CONFIG_FRAME_WARN=1024 |
1122 | CONFIG_MAGIC_SYSRQ=y | 1193 | CONFIG_MAGIC_SYSRQ=y |
1194 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1123 | # CONFIG_UNUSED_SYMBOLS is not set | 1195 | # CONFIG_UNUSED_SYMBOLS is not set |
1124 | CONFIG_DEBUG_FS=y | 1196 | CONFIG_DEBUG_FS=y |
1125 | # CONFIG_HEADERS_CHECK is not set | 1197 | # CONFIG_HEADERS_CHECK is not set |
@@ -1155,21 +1227,25 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1155 | # CONFIG_DEBUG_LIST is not set | 1227 | # CONFIG_DEBUG_LIST is not set |
1156 | # CONFIG_DEBUG_SG is not set | 1228 | # CONFIG_DEBUG_SG is not set |
1157 | # CONFIG_DEBUG_NOTIFIERS is not set | 1229 | # CONFIG_DEBUG_NOTIFIERS is not set |
1230 | # CONFIG_DEBUG_CREDENTIALS is not set | ||
1158 | CONFIG_FRAME_POINTER=y | 1231 | CONFIG_FRAME_POINTER=y |
1159 | # CONFIG_RCU_TORTURE_TEST is not set | 1232 | # CONFIG_RCU_TORTURE_TEST is not set |
1160 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1233 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1161 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1234 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1162 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1235 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1236 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1163 | # CONFIG_FAULT_INJECTION is not set | 1237 | # CONFIG_FAULT_INJECTION is not set |
1164 | # CONFIG_LATENCYTOP is not set | 1238 | # CONFIG_LATENCYTOP is not set |
1165 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | 1239 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set |
1166 | # CONFIG_PAGE_POISONING is not set | 1240 | # CONFIG_PAGE_POISONING is not set |
1241 | CONFIG_HAVE_SYSCALL_TRACEPOINTS=y | ||
1167 | CONFIG_TRACING_SUPPORT=y | 1242 | CONFIG_TRACING_SUPPORT=y |
1168 | CONFIG_FTRACE=y | 1243 | CONFIG_FTRACE=y |
1169 | # CONFIG_IRQSOFF_TRACER is not set | 1244 | # CONFIG_IRQSOFF_TRACER is not set |
1170 | # CONFIG_PREEMPT_TRACER is not set | 1245 | # CONFIG_PREEMPT_TRACER is not set |
1171 | # CONFIG_SCHED_TRACER is not set | 1246 | # CONFIG_SCHED_TRACER is not set |
1172 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set | 1247 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
1248 | # CONFIG_FTRACE_SYSCALLS is not set | ||
1173 | # CONFIG_BOOT_TRACER is not set | 1249 | # CONFIG_BOOT_TRACER is not set |
1174 | CONFIG_BRANCH_PROFILE_NONE=y | 1250 | CONFIG_BRANCH_PROFILE_NONE=y |
1175 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | 1251 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set |
@@ -1180,11 +1256,9 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1180 | # CONFIG_DYNAMIC_DEBUG is not set | 1256 | # CONFIG_DYNAMIC_DEBUG is not set |
1181 | # CONFIG_DMA_API_DEBUG is not set | 1257 | # CONFIG_DMA_API_DEBUG is not set |
1182 | # CONFIG_SAMPLES is not set | 1258 | # CONFIG_SAMPLES is not set |
1183 | # CONFIG_KMEMCHECK is not set | ||
1184 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1185 | # CONFIG_DEBUG_BOOTMEM is not set | ||
1186 | # CONFIG_DEBUG_STACK_USAGE is not set | 1259 | # CONFIG_DEBUG_STACK_USAGE is not set |
1187 | # CONFIG_4KSTACKS is not set | 1260 | # CONFIG_4KSTACKS is not set |
1261 | # CONFIG_DWARF_UNWINDER is not set | ||
1188 | # CONFIG_SH_NO_BSS_INIT is not set | 1262 | # CONFIG_SH_NO_BSS_INIT is not set |
1189 | CONFIG_SH64_SR_WATCH=y | 1263 | CONFIG_SH64_SR_WATCH=y |
1190 | 1264 | ||
@@ -1194,13 +1268,16 @@ CONFIG_SH64_SR_WATCH=y | |||
1194 | # CONFIG_KEYS is not set | 1268 | # CONFIG_KEYS is not set |
1195 | # CONFIG_SECURITY is not set | 1269 | # CONFIG_SECURITY is not set |
1196 | # CONFIG_SECURITYFS is not set | 1270 | # CONFIG_SECURITYFS is not set |
1197 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1271 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1272 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1273 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1274 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1275 | CONFIG_DEFAULT_SECURITY="" | ||
1198 | CONFIG_CRYPTO=y | 1276 | CONFIG_CRYPTO=y |
1199 | 1277 | ||
1200 | # | 1278 | # |
1201 | # Crypto core or helper | 1279 | # Crypto core or helper |
1202 | # | 1280 | # |
1203 | # CONFIG_CRYPTO_FIPS is not set | ||
1204 | # CONFIG_CRYPTO_MANAGER is not set | 1281 | # CONFIG_CRYPTO_MANAGER is not set |
1205 | # CONFIG_CRYPTO_MANAGER2 is not set | 1282 | # CONFIG_CRYPTO_MANAGER2 is not set |
1206 | # CONFIG_CRYPTO_GF128MUL is not set | 1283 | # CONFIG_CRYPTO_GF128MUL is not set |
@@ -1232,11 +1309,13 @@ CONFIG_CRYPTO=y | |||
1232 | # | 1309 | # |
1233 | # CONFIG_CRYPTO_HMAC is not set | 1310 | # CONFIG_CRYPTO_HMAC is not set |
1234 | # CONFIG_CRYPTO_XCBC is not set | 1311 | # CONFIG_CRYPTO_XCBC is not set |
1312 | # CONFIG_CRYPTO_VMAC is not set | ||
1235 | 1313 | ||
1236 | # | 1314 | # |
1237 | # Digest | 1315 | # Digest |
1238 | # | 1316 | # |
1239 | # CONFIG_CRYPTO_CRC32C is not set | 1317 | # CONFIG_CRYPTO_CRC32C is not set |
1318 | # CONFIG_CRYPTO_GHASH is not set | ||
1240 | # CONFIG_CRYPTO_MD4 is not set | 1319 | # CONFIG_CRYPTO_MD4 is not set |
1241 | # CONFIG_CRYPTO_MD5 is not set | 1320 | # CONFIG_CRYPTO_MD5 is not set |
1242 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1321 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1299,5 +1378,6 @@ CONFIG_CRC32=y | |||
1299 | CONFIG_HAS_IOMEM=y | 1378 | CONFIG_HAS_IOMEM=y |
1300 | CONFIG_HAS_IOPORT=y | 1379 | CONFIG_HAS_IOPORT=y |
1301 | CONFIG_HAS_DMA=y | 1380 | CONFIG_HAS_DMA=y |
1381 | CONFIG_HAVE_LMB=y | ||
1302 | CONFIG_NLATTR=y | 1382 | CONFIG_NLATTR=y |
1303 | CONFIG_GENERIC_ATOMIC64=y | 1383 | CONFIG_GENERIC_ATOMIC64=y |
diff --git a/arch/sh/configs/dreamcast_defconfig b/arch/sh/configs/dreamcast_defconfig index aedbd4f1304..55f652be954 100644 --- a/arch/sh/configs/dreamcast_defconfig +++ b/arch/sh/configs/dreamcast_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 17:56:07 2009 | 4 | # Mon Jan 4 11:17:35 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -21,6 +21,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y | |||
21 | CONFIG_GENERIC_CMOS_UPDATE=y | 21 | CONFIG_GENERIC_CMOS_UPDATE=y |
22 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 22 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
23 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 23 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
24 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
24 | CONFIG_SYS_SUPPORTS_PCI=y | 25 | CONFIG_SYS_SUPPORTS_PCI=y |
25 | CONFIG_SYS_SUPPORTS_TMU=y | 26 | CONFIG_SYS_SUPPORTS_TMU=y |
26 | CONFIG_STACKTRACE_SUPPORT=y | 27 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 32 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 33 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 34 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
35 | CONFIG_DMA_NONCOHERENT=y | ||
34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 36 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
35 | CONFIG_CONSTRUCTORS=y | 37 | CONFIG_CONSTRUCTORS=y |
36 | 38 | ||
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
63 | # | 65 | # |
64 | CONFIG_TREE_RCU=y | 66 | CONFIG_TREE_RCU=y |
65 | # CONFIG_TREE_PREEMPT_RCU is not set | 67 | # CONFIG_TREE_PREEMPT_RCU is not set |
68 | # CONFIG_TINY_RCU is not set | ||
66 | # CONFIG_RCU_TRACE is not set | 69 | # CONFIG_RCU_TRACE is not set |
67 | CONFIG_RCU_FANOUT=32 | 70 | CONFIG_RCU_FANOUT=32 |
68 | # CONFIG_RCU_FANOUT_EXACT is not set | 71 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -97,6 +100,7 @@ CONFIG_EVENTFD=y | |||
97 | CONFIG_SHMEM=y | 100 | CONFIG_SHMEM=y |
98 | CONFIG_AIO=y | 101 | CONFIG_AIO=y |
99 | CONFIG_HAVE_PERF_EVENTS=y | 102 | CONFIG_HAVE_PERF_EVENTS=y |
103 | CONFIG_PERF_USE_VMALLOC=y | ||
100 | 104 | ||
101 | # | 105 | # |
102 | # Kernel Performance Events And Counters | 106 | # Kernel Performance Events And Counters |
@@ -117,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
117 | CONFIG_HAVE_KPROBES=y | 121 | CONFIG_HAVE_KPROBES=y |
118 | CONFIG_HAVE_KRETPROBES=y | 122 | CONFIG_HAVE_KRETPROBES=y |
119 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 123 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
124 | CONFIG_HAVE_DMA_ATTRS=y | ||
120 | CONFIG_HAVE_CLK=y | 125 | CONFIG_HAVE_CLK=y |
121 | CONFIG_HAVE_DMA_API_DEBUG=y | 126 | CONFIG_HAVE_DMA_API_DEBUG=y |
122 | 127 | ||
@@ -143,14 +148,41 @@ CONFIG_LBDAF=y | |||
143 | # IO Schedulers | 148 | # IO Schedulers |
144 | # | 149 | # |
145 | CONFIG_IOSCHED_NOOP=y | 150 | CONFIG_IOSCHED_NOOP=y |
146 | CONFIG_IOSCHED_AS=y | ||
147 | CONFIG_IOSCHED_DEADLINE=y | 151 | CONFIG_IOSCHED_DEADLINE=y |
148 | CONFIG_IOSCHED_CFQ=y | 152 | CONFIG_IOSCHED_CFQ=y |
149 | CONFIG_DEFAULT_AS=y | ||
150 | # CONFIG_DEFAULT_DEADLINE is not set | 153 | # CONFIG_DEFAULT_DEADLINE is not set |
151 | # CONFIG_DEFAULT_CFQ is not set | 154 | CONFIG_DEFAULT_CFQ=y |
152 | # CONFIG_DEFAULT_NOOP is not set | 155 | # CONFIG_DEFAULT_NOOP is not set |
153 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 156 | CONFIG_DEFAULT_IOSCHED="cfq" |
157 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
158 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
162 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
163 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
164 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
165 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
166 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
167 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
168 | # CONFIG_INLINE_READ_LOCK is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
170 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
171 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
172 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
173 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
174 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
175 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
176 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
180 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
181 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
182 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
183 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
184 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
185 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
154 | # CONFIG_FREEZER is not set | 186 | # CONFIG_FREEZER is not set |
155 | 187 | ||
156 | # | 188 | # |
@@ -232,8 +264,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
232 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 264 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
233 | CONFIG_ZONE_DMA_FLAG=0 | 265 | CONFIG_ZONE_DMA_FLAG=0 |
234 | CONFIG_NR_QUICK=2 | 266 | CONFIG_NR_QUICK=2 |
235 | CONFIG_HAVE_MLOCK=y | ||
236 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
237 | # CONFIG_KSM is not set | 267 | # CONFIG_KSM is not set |
238 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 268 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
239 | 269 | ||
@@ -294,9 +324,9 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y | |||
294 | # | 324 | # |
295 | # DMA support | 325 | # DMA support |
296 | # | 326 | # |
297 | CONFIG_SH_DMA_API=y | ||
298 | CONFIG_SH_DMA=y | 327 | CONFIG_SH_DMA=y |
299 | CONFIG_SH_DMA_IRQ_MULTI=y | 328 | CONFIG_SH_DMA_IRQ_MULTI=y |
329 | CONFIG_SH_DMA_API=y | ||
300 | CONFIG_NR_ONCHIP_DMA_CHANNELS=4 | 330 | CONFIG_NR_ONCHIP_DMA_CHANNELS=4 |
301 | CONFIG_NR_DMA_CHANNELS_BOOL=y | 331 | CONFIG_NR_DMA_CHANNELS_BOOL=y |
302 | CONFIG_NR_DMA_CHANNELS=9 | 332 | CONFIG_NR_DMA_CHANNELS=9 |
@@ -338,7 +368,6 @@ CONFIG_GUSA=y | |||
338 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 368 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
339 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 369 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
340 | CONFIG_ENTRY_OFFSET=0x00001000 | 370 | CONFIG_ENTRY_OFFSET=0x00001000 |
341 | # CONFIG_UBC_WAKEUP is not set | ||
342 | CONFIG_CMDLINE_OVERWRITE=y | 371 | CONFIG_CMDLINE_OVERWRITE=y |
343 | # CONFIG_CMDLINE_EXTEND is not set | 372 | # CONFIG_CMDLINE_EXTEND is not set |
344 | CONFIG_CMDLINE="console=ttySC1,115200 panic=3" | 373 | CONFIG_CMDLINE="console=ttySC1,115200 panic=3" |
@@ -348,7 +377,6 @@ CONFIG_CMDLINE="console=ttySC1,115200 panic=3" | |||
348 | # | 377 | # |
349 | CONFIG_MAPLE=y | 378 | CONFIG_MAPLE=y |
350 | CONFIG_PCI=y | 379 | CONFIG_PCI=y |
351 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
352 | # CONFIG_PCIEPORTBUS is not set | 380 | # CONFIG_PCIEPORTBUS is not set |
353 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 381 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
354 | CONFIG_PCI_LEGACY=y | 382 | CONFIG_PCI_LEGACY=y |
@@ -443,9 +471,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
443 | # CONFIG_AF_RXRPC is not set | 471 | # CONFIG_AF_RXRPC is not set |
444 | CONFIG_WIRELESS=y | 472 | CONFIG_WIRELESS=y |
445 | # CONFIG_CFG80211 is not set | 473 | # CONFIG_CFG80211 is not set |
446 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
447 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
448 | # CONFIG_WIRELESS_EXT is not set | ||
449 | # CONFIG_LIB80211 is not set | 474 | # CONFIG_LIB80211 is not set |
450 | 475 | ||
451 | # | 476 | # |
@@ -478,6 +503,10 @@ CONFIG_GDROM=y | |||
478 | # CONFIG_BLK_DEV_UMEM is not set | 503 | # CONFIG_BLK_DEV_UMEM is not set |
479 | # CONFIG_BLK_DEV_COW_COMMON is not set | 504 | # CONFIG_BLK_DEV_COW_COMMON is not set |
480 | # CONFIG_BLK_DEV_LOOP is not set | 505 | # CONFIG_BLK_DEV_LOOP is not set |
506 | |||
507 | # | ||
508 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
509 | # | ||
481 | # CONFIG_BLK_DEV_NBD is not set | 510 | # CONFIG_BLK_DEV_NBD is not set |
482 | # CONFIG_BLK_DEV_SX8 is not set | 511 | # CONFIG_BLK_DEV_SX8 is not set |
483 | # CONFIG_BLK_DEV_RAM is not set | 512 | # CONFIG_BLK_DEV_RAM is not set |
@@ -579,6 +608,7 @@ CONFIG_8139TOO=y | |||
579 | # CONFIG_SUNDANCE is not set | 608 | # CONFIG_SUNDANCE is not set |
580 | # CONFIG_TLAN is not set | 609 | # CONFIG_TLAN is not set |
581 | # CONFIG_KS8842 is not set | 610 | # CONFIG_KS8842 is not set |
611 | # CONFIG_KS8851_MLL is not set | ||
582 | # CONFIG_VIA_RHINE is not set | 612 | # CONFIG_VIA_RHINE is not set |
583 | # CONFIG_SC92031 is not set | 613 | # CONFIG_SC92031 is not set |
584 | # CONFIG_ATL2 is not set | 614 | # CONFIG_ATL2 is not set |
@@ -586,8 +616,9 @@ CONFIG_8139TOO=y | |||
586 | # CONFIG_NETDEV_10000 is not set | 616 | # CONFIG_NETDEV_10000 is not set |
587 | # CONFIG_TR is not set | 617 | # CONFIG_TR is not set |
588 | CONFIG_WLAN=y | 618 | CONFIG_WLAN=y |
589 | # CONFIG_WLAN_PRE80211 is not set | 619 | # CONFIG_ATMEL is not set |
590 | # CONFIG_WLAN_80211 is not set | 620 | # CONFIG_PRISM54 is not set |
621 | # CONFIG_HOSTAP is not set | ||
591 | 622 | ||
592 | # | 623 | # |
593 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 624 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -600,6 +631,7 @@ CONFIG_WLAN=y | |||
600 | # CONFIG_NETCONSOLE is not set | 631 | # CONFIG_NETCONSOLE is not set |
601 | # CONFIG_NETPOLL is not set | 632 | # CONFIG_NETPOLL is not set |
602 | # CONFIG_NET_POLL_CONTROLLER is not set | 633 | # CONFIG_NET_POLL_CONTROLLER is not set |
634 | # CONFIG_VMXNET3 is not set | ||
603 | # CONFIG_ISDN is not set | 635 | # CONFIG_ISDN is not set |
604 | # CONFIG_PHONE is not set | 636 | # CONFIG_PHONE is not set |
605 | 637 | ||
@@ -609,6 +641,7 @@ CONFIG_WLAN=y | |||
609 | CONFIG_INPUT=y | 641 | CONFIG_INPUT=y |
610 | # CONFIG_INPUT_FF_MEMLESS is not set | 642 | # CONFIG_INPUT_FF_MEMLESS is not set |
611 | # CONFIG_INPUT_POLLDEV is not set | 643 | # CONFIG_INPUT_POLLDEV is not set |
644 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
612 | 645 | ||
613 | # | 646 | # |
614 | # Userland interfaces | 647 | # Userland interfaces |
@@ -655,6 +688,7 @@ CONFIG_SERIO=y | |||
655 | # CONFIG_SERIO_PCIPS2 is not set | 688 | # CONFIG_SERIO_PCIPS2 is not set |
656 | CONFIG_SERIO_LIBPS2=y | 689 | CONFIG_SERIO_LIBPS2=y |
657 | # CONFIG_SERIO_RAW is not set | 690 | # CONFIG_SERIO_RAW is not set |
691 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
658 | # CONFIG_GAMEPORT is not set | 692 | # CONFIG_GAMEPORT is not set |
659 | 693 | ||
660 | # | 694 | # |
@@ -734,6 +768,7 @@ CONFIG_SSB_POSSIBLE=y | |||
734 | # | 768 | # |
735 | # CONFIG_MFD_CORE is not set | 769 | # CONFIG_MFD_CORE is not set |
736 | # CONFIG_MFD_SM501 is not set | 770 | # CONFIG_MFD_SM501 is not set |
771 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
737 | # CONFIG_HTC_PASIC3 is not set | 772 | # CONFIG_HTC_PASIC3 is not set |
738 | # CONFIG_MFD_TMIO is not set | 773 | # CONFIG_MFD_TMIO is not set |
739 | # CONFIG_REGULATOR is not set | 774 | # CONFIG_REGULATOR is not set |
@@ -883,6 +918,7 @@ CONFIG_RTC_LIB=y | |||
883 | # CONFIG_EXT2_FS is not set | 918 | # CONFIG_EXT2_FS is not set |
884 | # CONFIG_EXT3_FS is not set | 919 | # CONFIG_EXT3_FS is not set |
885 | # CONFIG_EXT4_FS is not set | 920 | # CONFIG_EXT4_FS is not set |
921 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
886 | # CONFIG_REISERFS_FS is not set | 922 | # CONFIG_REISERFS_FS is not set |
887 | # CONFIG_JFS_FS is not set | 923 | # CONFIG_JFS_FS is not set |
888 | # CONFIG_FS_POSIX_ACL is not set | 924 | # CONFIG_FS_POSIX_ACL is not set |
@@ -981,10 +1017,11 @@ CONFIG_FRAME_WARN=1024 | |||
981 | # CONFIG_DEBUG_FS is not set | 1017 | # CONFIG_DEBUG_FS is not set |
982 | # CONFIG_HEADERS_CHECK is not set | 1018 | # CONFIG_HEADERS_CHECK is not set |
983 | # CONFIG_DEBUG_KERNEL is not set | 1019 | # CONFIG_DEBUG_KERNEL is not set |
984 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1020 | CONFIG_DEBUG_BUGVERBOSE=y |
985 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1021 | # CONFIG_DEBUG_MEMORY_INIT is not set |
986 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1022 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
987 | # CONFIG_LATENCYTOP is not set | 1023 | # CONFIG_LATENCYTOP is not set |
1024 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
988 | CONFIG_HAVE_FUNCTION_TRACER=y | 1025 | CONFIG_HAVE_FUNCTION_TRACER=y |
989 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1026 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
990 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 1027 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -997,7 +1034,6 @@ CONFIG_TRACING_SUPPORT=y | |||
997 | # CONFIG_SAMPLES is not set | 1034 | # CONFIG_SAMPLES is not set |
998 | CONFIG_HAVE_ARCH_KGDB=y | 1035 | CONFIG_HAVE_ARCH_KGDB=y |
999 | # CONFIG_SH_STANDARD_BIOS is not set | 1036 | # CONFIG_SH_STANDARD_BIOS is not set |
1000 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1001 | # CONFIG_DWARF_UNWINDER is not set | 1037 | # CONFIG_DWARF_UNWINDER is not set |
1002 | 1038 | ||
1003 | # | 1039 | # |
@@ -1006,7 +1042,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1006 | # CONFIG_KEYS is not set | 1042 | # CONFIG_KEYS is not set |
1007 | # CONFIG_SECURITY is not set | 1043 | # CONFIG_SECURITY is not set |
1008 | # CONFIG_SECURITYFS is not set | 1044 | # CONFIG_SECURITYFS is not set |
1009 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1045 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1046 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1047 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1048 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1049 | CONFIG_DEFAULT_SECURITY="" | ||
1010 | CONFIG_CRYPTO=y | 1050 | CONFIG_CRYPTO=y |
1011 | 1051 | ||
1012 | # | 1052 | # |
diff --git a/arch/sh/configs/ecovec24-romimage_defconfig b/arch/sh/configs/ecovec24-romimage_defconfig index 46874704e4e..662c1ad2049 100644 --- a/arch/sh/configs/ecovec24-romimage_defconfig +++ b/arch/sh/configs/ecovec24-romimage_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 17:56:41 2009 | 4 | # Mon Jan 4 11:18:17 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_CMT=y | 24 | CONFIG_SYS_SUPPORTS_CMT=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -61,6 +63,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
61 | # | 63 | # |
62 | CONFIG_TREE_RCU=y | 64 | CONFIG_TREE_RCU=y |
63 | # CONFIG_TREE_PREEMPT_RCU is not set | 65 | # CONFIG_TREE_PREEMPT_RCU is not set |
66 | # CONFIG_TINY_RCU is not set | ||
64 | # CONFIG_RCU_TRACE is not set | 67 | # CONFIG_RCU_TRACE is not set |
65 | CONFIG_RCU_FANOUT=32 | 68 | CONFIG_RCU_FANOUT=32 |
66 | # CONFIG_RCU_FANOUT_EXACT is not set | 69 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y | |||
103 | CONFIG_SHMEM=y | 106 | CONFIG_SHMEM=y |
104 | CONFIG_AIO=y | 107 | CONFIG_AIO=y |
105 | CONFIG_HAVE_PERF_EVENTS=y | 108 | CONFIG_HAVE_PERF_EVENTS=y |
109 | CONFIG_PERF_USE_VMALLOC=y | ||
106 | 110 | ||
107 | # | 111 | # |
108 | # Kernel Performance Events And Counters | 112 | # Kernel Performance Events And Counters |
@@ -120,6 +124,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
120 | CONFIG_HAVE_KPROBES=y | 124 | CONFIG_HAVE_KPROBES=y |
121 | CONFIG_HAVE_KRETPROBES=y | 125 | CONFIG_HAVE_KRETPROBES=y |
122 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 126 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
127 | CONFIG_HAVE_DMA_ATTRS=y | ||
123 | CONFIG_HAVE_CLK=y | 128 | CONFIG_HAVE_CLK=y |
124 | CONFIG_HAVE_DMA_API_DEBUG=y | 129 | CONFIG_HAVE_DMA_API_DEBUG=y |
125 | 130 | ||
@@ -142,14 +147,41 @@ CONFIG_BLOCK=y | |||
142 | # IO Schedulers | 147 | # IO Schedulers |
143 | # | 148 | # |
144 | CONFIG_IOSCHED_NOOP=y | 149 | CONFIG_IOSCHED_NOOP=y |
145 | CONFIG_IOSCHED_AS=y | ||
146 | CONFIG_IOSCHED_DEADLINE=y | 150 | CONFIG_IOSCHED_DEADLINE=y |
147 | CONFIG_IOSCHED_CFQ=y | 151 | CONFIG_IOSCHED_CFQ=y |
148 | # CONFIG_DEFAULT_AS is not set | ||
149 | # CONFIG_DEFAULT_DEADLINE is not set | 152 | # CONFIG_DEFAULT_DEADLINE is not set |
150 | CONFIG_DEFAULT_CFQ=y | 153 | CONFIG_DEFAULT_CFQ=y |
151 | # CONFIG_DEFAULT_NOOP is not set | 154 | # CONFIG_DEFAULT_NOOP is not set |
152 | CONFIG_DEFAULT_IOSCHED="cfq" | 155 | CONFIG_DEFAULT_IOSCHED="cfq" |
156 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
157 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
162 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
163 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
164 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
165 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
166 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
167 | # CONFIG_INLINE_READ_LOCK is not set | ||
168 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
170 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
171 | CONFIG_INLINE_READ_UNLOCK=y | ||
172 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
173 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
174 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
175 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
180 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
181 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
182 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
183 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
184 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
153 | # CONFIG_FREEZER is not set | 185 | # CONFIG_FREEZER is not set |
154 | 186 | ||
155 | # | 187 | # |
@@ -205,6 +237,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
205 | CONFIG_MEMORY_START=0x08000000 | 237 | CONFIG_MEMORY_START=0x08000000 |
206 | CONFIG_MEMORY_SIZE=0x10000000 | 238 | CONFIG_MEMORY_SIZE=0x10000000 |
207 | CONFIG_29BIT=y | 239 | CONFIG_29BIT=y |
240 | # CONFIG_PMB_ENABLE is not set | ||
208 | # CONFIG_X2TLB is not set | 241 | # CONFIG_X2TLB is not set |
209 | CONFIG_VSYSCALL=y | 242 | CONFIG_VSYSCALL=y |
210 | CONFIG_ARCH_FLATMEM_ENABLE=y | 243 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -229,8 +262,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
229 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 262 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
230 | CONFIG_ZONE_DMA_FLAG=0 | 263 | CONFIG_ZONE_DMA_FLAG=0 |
231 | CONFIG_NR_QUICK=2 | 264 | CONFIG_NR_QUICK=2 |
232 | CONFIG_HAVE_MLOCK=y | ||
233 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
234 | # CONFIG_KSM is not set | 265 | # CONFIG_KSM is not set |
235 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 266 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
236 | 267 | ||
@@ -264,7 +295,6 @@ CONFIG_SH_ECOVEC=y | |||
264 | # | 295 | # |
265 | # CONFIG_SH_TIMER_TMU is not set | 296 | # CONFIG_SH_TIMER_TMU is not set |
266 | CONFIG_SH_TIMER_CMT=y | 297 | CONFIG_SH_TIMER_CMT=y |
267 | CONFIG_SH_PCLK_FREQ=33333333 | ||
268 | CONFIG_SH_CLK_CPG=y | 298 | CONFIG_SH_CLK_CPG=y |
269 | # CONFIG_NO_HZ is not set | 299 | # CONFIG_NO_HZ is not set |
270 | # CONFIG_HIGH_RES_TIMERS is not set | 300 | # CONFIG_HIGH_RES_TIMERS is not set |
@@ -406,7 +436,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
406 | # CONFIG_IRDA is not set | 436 | # CONFIG_IRDA is not set |
407 | # CONFIG_BT is not set | 437 | # CONFIG_BT is not set |
408 | # CONFIG_AF_RXRPC is not set | 438 | # CONFIG_AF_RXRPC is not set |
409 | # CONFIG_WIRELESS is not set | 439 | CONFIG_WIRELESS=y |
440 | # CONFIG_CFG80211 is not set | ||
441 | # CONFIG_LIB80211 is not set | ||
442 | |||
443 | # | ||
444 | # CFG80211 needs to be enabled for MAC80211 | ||
445 | # | ||
410 | # CONFIG_WIMAX is not set | 446 | # CONFIG_WIMAX is not set |
411 | # CONFIG_RFKILL is not set | 447 | # CONFIG_RFKILL is not set |
412 | # CONFIG_NET_9P is not set | 448 | # CONFIG_NET_9P is not set |
@@ -432,6 +468,10 @@ CONFIG_EXTRA_FIRMWARE="" | |||
432 | CONFIG_BLK_DEV=y | 468 | CONFIG_BLK_DEV=y |
433 | # CONFIG_BLK_DEV_COW_COMMON is not set | 469 | # CONFIG_BLK_DEV_COW_COMMON is not set |
434 | # CONFIG_BLK_DEV_LOOP is not set | 470 | # CONFIG_BLK_DEV_LOOP is not set |
471 | |||
472 | # | ||
473 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
474 | # | ||
435 | # CONFIG_BLK_DEV_NBD is not set | 475 | # CONFIG_BLK_DEV_NBD is not set |
436 | # CONFIG_BLK_DEV_UB is not set | 476 | # CONFIG_BLK_DEV_UB is not set |
437 | # CONFIG_BLK_DEV_RAM is not set | 477 | # CONFIG_BLK_DEV_RAM is not set |
@@ -526,11 +566,12 @@ CONFIG_SH_ETH=y | |||
526 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 566 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
527 | # CONFIG_B44 is not set | 567 | # CONFIG_B44 is not set |
528 | # CONFIG_KS8842 is not set | 568 | # CONFIG_KS8842 is not set |
569 | # CONFIG_KS8851_MLL is not set | ||
529 | # CONFIG_NETDEV_1000 is not set | 570 | # CONFIG_NETDEV_1000 is not set |
530 | # CONFIG_NETDEV_10000 is not set | 571 | # CONFIG_NETDEV_10000 is not set |
531 | CONFIG_WLAN=y | 572 | CONFIG_WLAN=y |
532 | # CONFIG_WLAN_PRE80211 is not set | 573 | # CONFIG_USB_ZD1201 is not set |
533 | # CONFIG_WLAN_80211 is not set | 574 | # CONFIG_HOSTAP is not set |
534 | 575 | ||
535 | # | 576 | # |
536 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 577 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -559,6 +600,7 @@ CONFIG_WLAN=y | |||
559 | CONFIG_INPUT=y | 600 | CONFIG_INPUT=y |
560 | # CONFIG_INPUT_FF_MEMLESS is not set | 601 | # CONFIG_INPUT_FF_MEMLESS is not set |
561 | # CONFIG_INPUT_POLLDEV is not set | 602 | # CONFIG_INPUT_POLLDEV is not set |
603 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
562 | 604 | ||
563 | # | 605 | # |
564 | # Userland interfaces | 606 | # Userland interfaces |
@@ -652,7 +694,6 @@ CONFIG_I2C_SH_MOBILE=y | |||
652 | # | 694 | # |
653 | # Miscellaneous I2C Chip support | 695 | # Miscellaneous I2C Chip support |
654 | # | 696 | # |
655 | # CONFIG_DS1682 is not set | ||
656 | # CONFIG_SENSORS_TSL2550 is not set | 697 | # CONFIG_SENSORS_TSL2550 is not set |
657 | # CONFIG_I2C_DEBUG_CORE is not set | 698 | # CONFIG_I2C_DEBUG_CORE is not set |
658 | # CONFIG_I2C_DEBUG_ALGO is not set | 699 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -707,16 +748,19 @@ CONFIG_SSB_POSSIBLE=y | |||
707 | # | 748 | # |
708 | # CONFIG_MFD_CORE is not set | 749 | # CONFIG_MFD_CORE is not set |
709 | # CONFIG_MFD_SM501 is not set | 750 | # CONFIG_MFD_SM501 is not set |
751 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
710 | # CONFIG_HTC_PASIC3 is not set | 752 | # CONFIG_HTC_PASIC3 is not set |
711 | # CONFIG_TPS65010 is not set | 753 | # CONFIG_TPS65010 is not set |
712 | # CONFIG_TWL4030_CORE is not set | 754 | # CONFIG_TWL4030_CORE is not set |
713 | # CONFIG_MFD_TMIO is not set | 755 | # CONFIG_MFD_TMIO is not set |
714 | # CONFIG_PMIC_DA903X is not set | 756 | # CONFIG_PMIC_DA903X is not set |
757 | # CONFIG_PMIC_ADP5520 is not set | ||
715 | # CONFIG_MFD_WM8400 is not set | 758 | # CONFIG_MFD_WM8400 is not set |
716 | # CONFIG_MFD_WM831X is not set | 759 | # CONFIG_MFD_WM831X is not set |
717 | # CONFIG_MFD_WM8350_I2C is not set | 760 | # CONFIG_MFD_WM8350_I2C is not set |
718 | # CONFIG_MFD_PCF50633 is not set | 761 | # CONFIG_MFD_PCF50633 is not set |
719 | # CONFIG_AB3100_CORE is not set | 762 | # CONFIG_AB3100_CORE is not set |
763 | # CONFIG_MFD_88PM8607 is not set | ||
720 | # CONFIG_REGULATOR is not set | 764 | # CONFIG_REGULATOR is not set |
721 | # CONFIG_MEDIA_SUPPORT is not set | 765 | # CONFIG_MEDIA_SUPPORT is not set |
722 | 766 | ||
@@ -867,6 +911,7 @@ CONFIG_EXT2_FS=y | |||
867 | # CONFIG_EXT2_FS_XIP is not set | 911 | # CONFIG_EXT2_FS_XIP is not set |
868 | # CONFIG_EXT3_FS is not set | 912 | # CONFIG_EXT3_FS is not set |
869 | # CONFIG_EXT4_FS is not set | 913 | # CONFIG_EXT4_FS is not set |
914 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
870 | # CONFIG_REISERFS_FS is not set | 915 | # CONFIG_REISERFS_FS is not set |
871 | # CONFIG_JFS_FS is not set | 916 | # CONFIG_JFS_FS is not set |
872 | # CONFIG_FS_POSIX_ACL is not set | 917 | # CONFIG_FS_POSIX_ACL is not set |
@@ -979,7 +1024,7 @@ CONFIG_FRAME_WARN=1024 | |||
979 | CONFIG_DEBUG_FS=y | 1024 | CONFIG_DEBUG_FS=y |
980 | # CONFIG_HEADERS_CHECK is not set | 1025 | # CONFIG_HEADERS_CHECK is not set |
981 | # CONFIG_DEBUG_KERNEL is not set | 1026 | # CONFIG_DEBUG_KERNEL is not set |
982 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1027 | CONFIG_DEBUG_BUGVERBOSE=y |
983 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1028 | # CONFIG_DEBUG_MEMORY_INIT is not set |
984 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1029 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
985 | # CONFIG_LATENCYTOP is not set | 1030 | # CONFIG_LATENCYTOP is not set |
@@ -997,7 +1042,6 @@ CONFIG_TRACING_SUPPORT=y | |||
997 | # CONFIG_SAMPLES is not set | 1042 | # CONFIG_SAMPLES is not set |
998 | CONFIG_HAVE_ARCH_KGDB=y | 1043 | CONFIG_HAVE_ARCH_KGDB=y |
999 | # CONFIG_SH_STANDARD_BIOS is not set | 1044 | # CONFIG_SH_STANDARD_BIOS is not set |
1000 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1001 | # CONFIG_DWARF_UNWINDER is not set | 1045 | # CONFIG_DWARF_UNWINDER is not set |
1002 | 1046 | ||
1003 | # | 1047 | # |
@@ -1006,7 +1050,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1006 | # CONFIG_KEYS is not set | 1050 | # CONFIG_KEYS is not set |
1007 | # CONFIG_SECURITY is not set | 1051 | # CONFIG_SECURITY is not set |
1008 | # CONFIG_SECURITYFS is not set | 1052 | # CONFIG_SECURITYFS is not set |
1009 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1053 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1054 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1055 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1056 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1057 | CONFIG_DEFAULT_SECURITY="" | ||
1010 | # CONFIG_CRYPTO is not set | 1058 | # CONFIG_CRYPTO is not set |
1011 | # CONFIG_BINARY_PRINTF is not set | 1059 | # CONFIG_BINARY_PRINTF is not set |
1012 | 1060 | ||
diff --git a/arch/sh/configs/ecovec24_defconfig b/arch/sh/configs/ecovec24_defconfig index cad918437ca..18e3356406f 100644 --- a/arch/sh/configs/ecovec24_defconfig +++ b/arch/sh/configs/ecovec24_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 17:45:39 2009 | 4 | # Mon Jan 4 11:20:36 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_CMT=y | 24 | CONFIG_SYS_SUPPORTS_CMT=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -62,6 +64,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
62 | # | 64 | # |
63 | CONFIG_TREE_RCU=y | 65 | CONFIG_TREE_RCU=y |
64 | # CONFIG_TREE_PREEMPT_RCU is not set | 66 | # CONFIG_TREE_PREEMPT_RCU is not set |
67 | # CONFIG_TINY_RCU is not set | ||
65 | # CONFIG_RCU_TRACE is not set | 68 | # CONFIG_RCU_TRACE is not set |
66 | CONFIG_RCU_FANOUT=32 | 69 | CONFIG_RCU_FANOUT=32 |
67 | # CONFIG_RCU_FANOUT_EXACT is not set | 70 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -99,6 +102,7 @@ CONFIG_EVENTFD=y | |||
99 | CONFIG_SHMEM=y | 102 | CONFIG_SHMEM=y |
100 | CONFIG_AIO=y | 103 | CONFIG_AIO=y |
101 | CONFIG_HAVE_PERF_EVENTS=y | 104 | CONFIG_HAVE_PERF_EVENTS=y |
105 | CONFIG_PERF_USE_VMALLOC=y | ||
102 | 106 | ||
103 | # | 107 | # |
104 | # Kernel Performance Events And Counters | 108 | # Kernel Performance Events And Counters |
@@ -116,6 +120,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
116 | CONFIG_HAVE_KPROBES=y | 120 | CONFIG_HAVE_KPROBES=y |
117 | CONFIG_HAVE_KRETPROBES=y | 121 | CONFIG_HAVE_KRETPROBES=y |
118 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 122 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
123 | CONFIG_HAVE_DMA_ATTRS=y | ||
119 | CONFIG_HAVE_CLK=y | 124 | CONFIG_HAVE_CLK=y |
120 | CONFIG_HAVE_DMA_API_DEBUG=y | 125 | CONFIG_HAVE_DMA_API_DEBUG=y |
121 | 126 | ||
@@ -143,14 +148,41 @@ CONFIG_LBDAF=y | |||
143 | # IO Schedulers | 148 | # IO Schedulers |
144 | # | 149 | # |
145 | CONFIG_IOSCHED_NOOP=y | 150 | CONFIG_IOSCHED_NOOP=y |
146 | CONFIG_IOSCHED_AS=y | ||
147 | CONFIG_IOSCHED_DEADLINE=y | 151 | CONFIG_IOSCHED_DEADLINE=y |
148 | CONFIG_IOSCHED_CFQ=y | 152 | CONFIG_IOSCHED_CFQ=y |
149 | # CONFIG_DEFAULT_AS is not set | ||
150 | # CONFIG_DEFAULT_DEADLINE is not set | 153 | # CONFIG_DEFAULT_DEADLINE is not set |
151 | CONFIG_DEFAULT_CFQ=y | 154 | CONFIG_DEFAULT_CFQ=y |
152 | # CONFIG_DEFAULT_NOOP is not set | 155 | # CONFIG_DEFAULT_NOOP is not set |
153 | CONFIG_DEFAULT_IOSCHED="cfq" | 156 | CONFIG_DEFAULT_IOSCHED="cfq" |
157 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
158 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
162 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
163 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
164 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
165 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
166 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
167 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
168 | # CONFIG_INLINE_READ_LOCK is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
170 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
171 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
172 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
173 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
174 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
175 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
176 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
180 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
181 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
182 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
183 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
184 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
185 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
154 | CONFIG_FREEZER=y | 186 | CONFIG_FREEZER=y |
155 | 187 | ||
156 | # | 188 | # |
@@ -206,6 +238,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
206 | CONFIG_MEMORY_START=0x08000000 | 238 | CONFIG_MEMORY_START=0x08000000 |
207 | CONFIG_MEMORY_SIZE=0x10000000 | 239 | CONFIG_MEMORY_SIZE=0x10000000 |
208 | CONFIG_29BIT=y | 240 | CONFIG_29BIT=y |
241 | # CONFIG_PMB_ENABLE is not set | ||
209 | # CONFIG_X2TLB is not set | 242 | # CONFIG_X2TLB is not set |
210 | CONFIG_VSYSCALL=y | 243 | CONFIG_VSYSCALL=y |
211 | CONFIG_ARCH_FLATMEM_ENABLE=y | 244 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -230,8 +263,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
230 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 263 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
231 | CONFIG_ZONE_DMA_FLAG=0 | 264 | CONFIG_ZONE_DMA_FLAG=0 |
232 | CONFIG_NR_QUICK=2 | 265 | CONFIG_NR_QUICK=2 |
233 | CONFIG_HAVE_MLOCK=y | ||
234 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
235 | # CONFIG_KSM is not set | 266 | # CONFIG_KSM is not set |
236 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 267 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
237 | 268 | ||
@@ -265,7 +296,6 @@ CONFIG_SH_ECOVEC=y | |||
265 | # | 296 | # |
266 | CONFIG_SH_TIMER_TMU=y | 297 | CONFIG_SH_TIMER_TMU=y |
267 | # CONFIG_SH_TIMER_CMT is not set | 298 | # CONFIG_SH_TIMER_CMT is not set |
268 | CONFIG_SH_PCLK_FREQ=33333333 | ||
269 | CONFIG_SH_CLK_CPG=y | 299 | CONFIG_SH_CLK_CPG=y |
270 | # CONFIG_NO_HZ is not set | 300 | # CONFIG_NO_HZ is not set |
271 | # CONFIG_HIGH_RES_TIMERS is not set | 301 | # CONFIG_HIGH_RES_TIMERS is not set |
@@ -420,9 +450,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
420 | # CONFIG_AF_RXRPC is not set | 450 | # CONFIG_AF_RXRPC is not set |
421 | CONFIG_WIRELESS=y | 451 | CONFIG_WIRELESS=y |
422 | # CONFIG_CFG80211 is not set | 452 | # CONFIG_CFG80211 is not set |
423 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
424 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
425 | # CONFIG_WIRELESS_EXT is not set | ||
426 | # CONFIG_LIB80211 is not set | 453 | # CONFIG_LIB80211 is not set |
427 | 454 | ||
428 | # | 455 | # |
@@ -552,6 +579,10 @@ CONFIG_MTD_UBI_BEB_RESERVE=1 | |||
552 | CONFIG_BLK_DEV=y | 579 | CONFIG_BLK_DEV=y |
553 | # CONFIG_BLK_DEV_COW_COMMON is not set | 580 | # CONFIG_BLK_DEV_COW_COMMON is not set |
554 | # CONFIG_BLK_DEV_LOOP is not set | 581 | # CONFIG_BLK_DEV_LOOP is not set |
582 | |||
583 | # | ||
584 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
585 | # | ||
555 | # CONFIG_BLK_DEV_NBD is not set | 586 | # CONFIG_BLK_DEV_NBD is not set |
556 | # CONFIG_BLK_DEV_UB is not set | 587 | # CONFIG_BLK_DEV_UB is not set |
557 | CONFIG_BLK_DEV_RAM=y | 588 | CONFIG_BLK_DEV_RAM=y |
@@ -562,9 +593,12 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
562 | # CONFIG_ATA_OVER_ETH is not set | 593 | # CONFIG_ATA_OVER_ETH is not set |
563 | # CONFIG_BLK_DEV_HD is not set | 594 | # CONFIG_BLK_DEV_HD is not set |
564 | CONFIG_MISC_DEVICES=y | 595 | CONFIG_MISC_DEVICES=y |
596 | # CONFIG_AD525X_DPOT is not set | ||
565 | # CONFIG_ICS932S401 is not set | 597 | # CONFIG_ICS932S401 is not set |
566 | # CONFIG_ENCLOSURE_SERVICES is not set | 598 | # CONFIG_ENCLOSURE_SERVICES is not set |
567 | # CONFIG_ISL29003 is not set | 599 | # CONFIG_ISL29003 is not set |
600 | # CONFIG_DS1682 is not set | ||
601 | # CONFIG_TI_DAC7512 is not set | ||
568 | # CONFIG_C2PORT is not set | 602 | # CONFIG_C2PORT is not set |
569 | 603 | ||
570 | # | 604 | # |
@@ -575,6 +609,7 @@ CONFIG_MISC_DEVICES=y | |||
575 | # CONFIG_EEPROM_LEGACY is not set | 609 | # CONFIG_EEPROM_LEGACY is not set |
576 | # CONFIG_EEPROM_MAX6875 is not set | 610 | # CONFIG_EEPROM_MAX6875 is not set |
577 | # CONFIG_EEPROM_93CX6 is not set | 611 | # CONFIG_EEPROM_93CX6 is not set |
612 | # CONFIG_IWMC3200TOP is not set | ||
578 | CONFIG_HAVE_IDE=y | 613 | CONFIG_HAVE_IDE=y |
579 | # CONFIG_IDE is not set | 614 | # CONFIG_IDE is not set |
580 | 615 | ||
@@ -669,11 +704,12 @@ CONFIG_SH_ETH=y | |||
669 | # CONFIG_B44 is not set | 704 | # CONFIG_B44 is not set |
670 | # CONFIG_KS8842 is not set | 705 | # CONFIG_KS8842 is not set |
671 | # CONFIG_KS8851 is not set | 706 | # CONFIG_KS8851 is not set |
707 | # CONFIG_KS8851_MLL is not set | ||
672 | # CONFIG_NETDEV_1000 is not set | 708 | # CONFIG_NETDEV_1000 is not set |
673 | # CONFIG_NETDEV_10000 is not set | 709 | # CONFIG_NETDEV_10000 is not set |
674 | CONFIG_WLAN=y | 710 | CONFIG_WLAN=y |
675 | # CONFIG_WLAN_PRE80211 is not set | 711 | # CONFIG_USB_ZD1201 is not set |
676 | # CONFIG_WLAN_80211 is not set | 712 | # CONFIG_HOSTAP is not set |
677 | 713 | ||
678 | # | 714 | # |
679 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 715 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -702,6 +738,7 @@ CONFIG_WLAN=y | |||
702 | CONFIG_INPUT=y | 738 | CONFIG_INPUT=y |
703 | # CONFIG_INPUT_FF_MEMLESS is not set | 739 | # CONFIG_INPUT_FF_MEMLESS is not set |
704 | # CONFIG_INPUT_POLLDEV is not set | 740 | # CONFIG_INPUT_POLLDEV is not set |
741 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
705 | 742 | ||
706 | # | 743 | # |
707 | # Userland interfaces | 744 | # Userland interfaces |
@@ -810,7 +847,6 @@ CONFIG_I2C_SH_MOBILE=y | |||
810 | # | 847 | # |
811 | # Miscellaneous I2C Chip support | 848 | # Miscellaneous I2C Chip support |
812 | # | 849 | # |
813 | # CONFIG_DS1682 is not set | ||
814 | # CONFIG_SENSORS_TSL2550 is not set | 850 | # CONFIG_SENSORS_TSL2550 is not set |
815 | # CONFIG_I2C_DEBUG_CORE is not set | 851 | # CONFIG_I2C_DEBUG_CORE is not set |
816 | # CONFIG_I2C_DEBUG_ALGO is not set | 852 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -824,7 +860,10 @@ CONFIG_SPI_MASTER=y | |||
824 | # | 860 | # |
825 | CONFIG_SPI_BITBANG=y | 861 | CONFIG_SPI_BITBANG=y |
826 | # CONFIG_SPI_GPIO is not set | 862 | # CONFIG_SPI_GPIO is not set |
863 | # CONFIG_SPI_SH_MSIOF is not set | ||
827 | # CONFIG_SPI_SH_SCI is not set | 864 | # CONFIG_SPI_SH_SCI is not set |
865 | # CONFIG_SPI_XILINX is not set | ||
866 | # CONFIG_SPI_DESIGNWARE is not set | ||
828 | 867 | ||
829 | # | 868 | # |
830 | # SPI Protocol Masters | 869 | # SPI Protocol Masters |
@@ -882,11 +921,13 @@ CONFIG_SSB_POSSIBLE=y | |||
882 | # | 921 | # |
883 | # CONFIG_MFD_CORE is not set | 922 | # CONFIG_MFD_CORE is not set |
884 | # CONFIG_MFD_SM501 is not set | 923 | # CONFIG_MFD_SM501 is not set |
924 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
885 | # CONFIG_HTC_PASIC3 is not set | 925 | # CONFIG_HTC_PASIC3 is not set |
886 | # CONFIG_TPS65010 is not set | 926 | # CONFIG_TPS65010 is not set |
887 | # CONFIG_TWL4030_CORE is not set | 927 | # CONFIG_TWL4030_CORE is not set |
888 | # CONFIG_MFD_TMIO is not set | 928 | # CONFIG_MFD_TMIO is not set |
889 | # CONFIG_PMIC_DA903X is not set | 929 | # CONFIG_PMIC_DA903X is not set |
930 | # CONFIG_PMIC_ADP5520 is not set | ||
890 | # CONFIG_MFD_WM8400 is not set | 931 | # CONFIG_MFD_WM8400 is not set |
891 | # CONFIG_MFD_WM831X is not set | 932 | # CONFIG_MFD_WM831X is not set |
892 | # CONFIG_MFD_WM8350_I2C is not set | 933 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -894,6 +935,8 @@ CONFIG_SSB_POSSIBLE=y | |||
894 | # CONFIG_MFD_MC13783 is not set | 935 | # CONFIG_MFD_MC13783 is not set |
895 | # CONFIG_AB3100_CORE is not set | 936 | # CONFIG_AB3100_CORE is not set |
896 | # CONFIG_EZX_PCAP is not set | 937 | # CONFIG_EZX_PCAP is not set |
938 | # CONFIG_MFD_88PM8607 is not set | ||
939 | # CONFIG_AB4500_CORE is not set | ||
897 | # CONFIG_REGULATOR is not set | 940 | # CONFIG_REGULATOR is not set |
898 | CONFIG_MEDIA_SUPPORT=y | 941 | CONFIG_MEDIA_SUPPORT=y |
899 | 942 | ||
@@ -910,6 +953,8 @@ CONFIG_VIDEO_MEDIA=y | |||
910 | # | 953 | # |
911 | # Multimedia drivers | 954 | # Multimedia drivers |
912 | # | 955 | # |
956 | CONFIG_IR_CORE=y | ||
957 | CONFIG_VIDEO_IR=y | ||
913 | # CONFIG_MEDIA_ATTACH is not set | 958 | # CONFIG_MEDIA_ATTACH is not set |
914 | CONFIG_MEDIA_TUNER=y | 959 | CONFIG_MEDIA_TUNER=y |
915 | # CONFIG_MEDIA_TUNER_CUSTOMISE is not set | 960 | # CONFIG_MEDIA_TUNER_CUSTOMISE is not set |
@@ -930,6 +975,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y | |||
930 | # CONFIG_VIDEO_ADV_DEBUG is not set | 975 | # CONFIG_VIDEO_ADV_DEBUG is not set |
931 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set | 976 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set |
932 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y | 977 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y |
978 | CONFIG_VIDEO_IR_I2C=y | ||
933 | # CONFIG_VIDEO_VIVI is not set | 979 | # CONFIG_VIDEO_VIVI is not set |
934 | # CONFIG_VIDEO_CPIA is not set | 980 | # CONFIG_VIDEO_CPIA is not set |
935 | # CONFIG_VIDEO_CPIA2 is not set | 981 | # CONFIG_VIDEO_CPIA2 is not set |
@@ -939,10 +985,13 @@ CONFIG_SOC_CAMERA=y | |||
939 | # CONFIG_SOC_CAMERA_MT9M001 is not set | 985 | # CONFIG_SOC_CAMERA_MT9M001 is not set |
940 | # CONFIG_SOC_CAMERA_MT9M111 is not set | 986 | # CONFIG_SOC_CAMERA_MT9M111 is not set |
941 | # CONFIG_SOC_CAMERA_MT9T031 is not set | 987 | # CONFIG_SOC_CAMERA_MT9T031 is not set |
988 | # CONFIG_SOC_CAMERA_MT9T112 is not set | ||
942 | # CONFIG_SOC_CAMERA_MT9V022 is not set | 989 | # CONFIG_SOC_CAMERA_MT9V022 is not set |
990 | # CONFIG_SOC_CAMERA_RJ54N1 is not set | ||
943 | # CONFIG_SOC_CAMERA_TW9910 is not set | 991 | # CONFIG_SOC_CAMERA_TW9910 is not set |
944 | # CONFIG_SOC_CAMERA_PLATFORM is not set | 992 | # CONFIG_SOC_CAMERA_PLATFORM is not set |
945 | # CONFIG_SOC_CAMERA_OV772X is not set | 993 | # CONFIG_SOC_CAMERA_OV772X is not set |
994 | # CONFIG_SOC_CAMERA_OV9640 is not set | ||
946 | CONFIG_VIDEO_SH_MOBILE_CEU=y | 995 | CONFIG_VIDEO_SH_MOBILE_CEU=y |
947 | # CONFIG_V4L_USB_DRIVERS is not set | 996 | # CONFIG_V4L_USB_DRIVERS is not set |
948 | CONFIG_RADIO_ADAPTERS=y | 997 | CONFIG_RADIO_ADAPTERS=y |
@@ -952,6 +1001,7 @@ CONFIG_RADIO_ADAPTERS=y | |||
952 | # CONFIG_RADIO_SI470X is not set | 1001 | # CONFIG_RADIO_SI470X is not set |
953 | # CONFIG_USB_MR800 is not set | 1002 | # CONFIG_USB_MR800 is not set |
954 | # CONFIG_RADIO_TEA5764 is not set | 1003 | # CONFIG_RADIO_TEA5764 is not set |
1004 | # CONFIG_RADIO_TEF6862 is not set | ||
955 | # CONFIG_DAB is not set | 1005 | # CONFIG_DAB is not set |
956 | 1006 | ||
957 | # | 1007 | # |
@@ -1177,6 +1227,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
1177 | # CONFIG_MMC_AT91 is not set | 1227 | # CONFIG_MMC_AT91 is not set |
1178 | # CONFIG_MMC_ATMELMCI is not set | 1228 | # CONFIG_MMC_ATMELMCI is not set |
1179 | CONFIG_MMC_SPI=y | 1229 | CONFIG_MMC_SPI=y |
1230 | # CONFIG_MMC_TMIO is not set | ||
1180 | # CONFIG_MEMSTICK is not set | 1231 | # CONFIG_MEMSTICK is not set |
1181 | # CONFIG_NEW_LEDS is not set | 1232 | # CONFIG_NEW_LEDS is not set |
1182 | # CONFIG_ACCESSIBILITY is not set | 1233 | # CONFIG_ACCESSIBILITY is not set |
@@ -1208,6 +1259,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1208 | CONFIG_RTC_DRV_PCF8563=y | 1259 | CONFIG_RTC_DRV_PCF8563=y |
1209 | # CONFIG_RTC_DRV_PCF8583 is not set | 1260 | # CONFIG_RTC_DRV_PCF8583 is not set |
1210 | # CONFIG_RTC_DRV_M41T80 is not set | 1261 | # CONFIG_RTC_DRV_M41T80 is not set |
1262 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1211 | # CONFIG_RTC_DRV_S35390A is not set | 1263 | # CONFIG_RTC_DRV_S35390A is not set |
1212 | # CONFIG_RTC_DRV_FM3130 is not set | 1264 | # CONFIG_RTC_DRV_FM3130 is not set |
1213 | # CONFIG_RTC_DRV_RX8581 is not set | 1265 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1236,7 +1288,9 @@ CONFIG_RTC_DRV_PCF8563=y | |||
1236 | # CONFIG_RTC_DRV_M48T86 is not set | 1288 | # CONFIG_RTC_DRV_M48T86 is not set |
1237 | # CONFIG_RTC_DRV_M48T35 is not set | 1289 | # CONFIG_RTC_DRV_M48T35 is not set |
1238 | # CONFIG_RTC_DRV_M48T59 is not set | 1290 | # CONFIG_RTC_DRV_M48T59 is not set |
1291 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1239 | # CONFIG_RTC_DRV_BQ4802 is not set | 1292 | # CONFIG_RTC_DRV_BQ4802 is not set |
1293 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1240 | # CONFIG_RTC_DRV_V3020 is not set | 1294 | # CONFIG_RTC_DRV_V3020 is not set |
1241 | 1295 | ||
1242 | # | 1296 | # |
@@ -1430,7 +1484,7 @@ CONFIG_FRAME_WARN=1024 | |||
1430 | CONFIG_DEBUG_FS=y | 1484 | CONFIG_DEBUG_FS=y |
1431 | # CONFIG_HEADERS_CHECK is not set | 1485 | # CONFIG_HEADERS_CHECK is not set |
1432 | # CONFIG_DEBUG_KERNEL is not set | 1486 | # CONFIG_DEBUG_KERNEL is not set |
1433 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1487 | CONFIG_DEBUG_BUGVERBOSE=y |
1434 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1488 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1435 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1489 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1436 | # CONFIG_LATENCYTOP is not set | 1490 | # CONFIG_LATENCYTOP is not set |
@@ -1448,7 +1502,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1448 | # CONFIG_SAMPLES is not set | 1502 | # CONFIG_SAMPLES is not set |
1449 | CONFIG_HAVE_ARCH_KGDB=y | 1503 | CONFIG_HAVE_ARCH_KGDB=y |
1450 | # CONFIG_SH_STANDARD_BIOS is not set | 1504 | # CONFIG_SH_STANDARD_BIOS is not set |
1451 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1452 | # CONFIG_DWARF_UNWINDER is not set | 1505 | # CONFIG_DWARF_UNWINDER is not set |
1453 | 1506 | ||
1454 | # | 1507 | # |
@@ -1457,7 +1510,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1457 | # CONFIG_KEYS is not set | 1510 | # CONFIG_KEYS is not set |
1458 | # CONFIG_SECURITY is not set | 1511 | # CONFIG_SECURITY is not set |
1459 | # CONFIG_SECURITYFS is not set | 1512 | # CONFIG_SECURITYFS is not set |
1460 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1513 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1514 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1515 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1516 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1517 | CONFIG_DEFAULT_SECURITY="" | ||
1461 | CONFIG_CRYPTO=y | 1518 | CONFIG_CRYPTO=y |
1462 | 1519 | ||
1463 | # | 1520 | # |
diff --git a/arch/sh/configs/edosk7705_defconfig b/arch/sh/configs/edosk7705_defconfig index 86c9bc05062..72f8718dd73 100644 --- a/arch/sh/configs/edosk7705_defconfig +++ b/arch/sh/configs/edosk7705_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 17:57:13 2009 | 4 | # Mon Jan 4 11:24:26 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -28,6 +28,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
28 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 28 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
29 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 29 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
30 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 30 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
31 | CONFIG_DMA_NONCOHERENT=y | ||
31 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
32 | CONFIG_CONSTRUCTORS=y | 33 | CONFIG_CONSTRUCTORS=y |
33 | 34 | ||
@@ -53,6 +54,7 @@ CONFIG_KERNEL_GZIP=y | |||
53 | # | 54 | # |
54 | CONFIG_TREE_RCU=y | 55 | CONFIG_TREE_RCU=y |
55 | # CONFIG_TREE_PREEMPT_RCU is not set | 56 | # CONFIG_TREE_PREEMPT_RCU is not set |
57 | # CONFIG_TINY_RCU is not set | ||
56 | # CONFIG_RCU_TRACE is not set | 58 | # CONFIG_RCU_TRACE is not set |
57 | CONFIG_RCU_FANOUT=32 | 59 | CONFIG_RCU_FANOUT=32 |
58 | # CONFIG_RCU_FANOUT_EXACT is not set | 60 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -66,7 +68,6 @@ CONFIG_LOG_BUF_SHIFT=17 | |||
66 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 68 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
67 | CONFIG_EMBEDDED=y | 69 | CONFIG_EMBEDDED=y |
68 | # CONFIG_UID16 is not set | 70 | # CONFIG_UID16 is not set |
69 | # CONFIG_SYSCTL_SYSCALL is not set | ||
70 | # CONFIG_KALLSYMS is not set | 71 | # CONFIG_KALLSYMS is not set |
71 | # CONFIG_HOTPLUG is not set | 72 | # CONFIG_HOTPLUG is not set |
72 | # CONFIG_PRINTK is not set | 73 | # CONFIG_PRINTK is not set |
@@ -81,6 +82,7 @@ CONFIG_EMBEDDED=y | |||
81 | CONFIG_SHMEM=y | 82 | CONFIG_SHMEM=y |
82 | # CONFIG_AIO is not set | 83 | # CONFIG_AIO is not set |
83 | CONFIG_HAVE_PERF_EVENTS=y | 84 | CONFIG_HAVE_PERF_EVENTS=y |
85 | CONFIG_PERF_USE_VMALLOC=y | ||
84 | 86 | ||
85 | # | 87 | # |
86 | # Kernel Performance Events And Counters | 88 | # Kernel Performance Events And Counters |
@@ -98,6 +100,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
98 | CONFIG_HAVE_KPROBES=y | 100 | CONFIG_HAVE_KPROBES=y |
99 | CONFIG_HAVE_KRETPROBES=y | 101 | CONFIG_HAVE_KRETPROBES=y |
100 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 102 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
103 | CONFIG_HAVE_DMA_ATTRS=y | ||
101 | CONFIG_HAVE_CLK=y | 104 | CONFIG_HAVE_CLK=y |
102 | CONFIG_HAVE_DMA_API_DEBUG=y | 105 | CONFIG_HAVE_DMA_API_DEBUG=y |
103 | 106 | ||
@@ -109,6 +112,35 @@ CONFIG_HAVE_GENERIC_DMA_COHERENT=y | |||
109 | CONFIG_BASE_SMALL=1 | 112 | CONFIG_BASE_SMALL=1 |
110 | # CONFIG_MODULES is not set | 113 | # CONFIG_MODULES is not set |
111 | # CONFIG_BLOCK is not set | 114 | # CONFIG_BLOCK is not set |
115 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
116 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
117 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
118 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
119 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
120 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
121 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
122 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
123 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
124 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
125 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
126 | # CONFIG_INLINE_READ_LOCK is not set | ||
127 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
128 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
129 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
130 | CONFIG_INLINE_READ_UNLOCK=y | ||
131 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
132 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
133 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
134 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
135 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
136 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
137 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
138 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
139 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
140 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
141 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
142 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
143 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
112 | # CONFIG_FREEZER is not set | 144 | # CONFIG_FREEZER is not set |
113 | 145 | ||
114 | # | 146 | # |
@@ -186,8 +218,6 @@ CONFIG_MIGRATION=y | |||
186 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 218 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
187 | CONFIG_ZONE_DMA_FLAG=0 | 219 | CONFIG_ZONE_DMA_FLAG=0 |
188 | CONFIG_NR_QUICK=2 | 220 | CONFIG_NR_QUICK=2 |
189 | CONFIG_HAVE_MLOCK=y | ||
190 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
191 | # CONFIG_KSM is not set | 221 | # CONFIG_KSM is not set |
192 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 222 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
193 | 223 | ||
@@ -359,6 +389,7 @@ CONFIG_SSB_POSSIBLE=y | |||
359 | # | 389 | # |
360 | # CONFIG_MFD_CORE is not set | 390 | # CONFIG_MFD_CORE is not set |
361 | # CONFIG_MFD_SM501 is not set | 391 | # CONFIG_MFD_SM501 is not set |
392 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
362 | # CONFIG_HTC_PASIC3 is not set | 393 | # CONFIG_HTC_PASIC3 is not set |
363 | # CONFIG_MFD_TMIO is not set | 394 | # CONFIG_MFD_TMIO is not set |
364 | # CONFIG_REGULATOR is not set | 395 | # CONFIG_REGULATOR is not set |
@@ -416,7 +447,6 @@ CONFIG_INOTIFY_USER=y | |||
416 | # CONFIG_PROC_FS is not set | 447 | # CONFIG_PROC_FS is not set |
417 | # CONFIG_SYSFS is not set | 448 | # CONFIG_SYSFS is not set |
418 | # CONFIG_TMPFS is not set | 449 | # CONFIG_TMPFS is not set |
419 | # CONFIG_HUGETLBFS is not set | ||
420 | # CONFIG_HUGETLB_PAGE is not set | 450 | # CONFIG_HUGETLB_PAGE is not set |
421 | CONFIG_MISC_FILESYSTEMS=y | 451 | CONFIG_MISC_FILESYSTEMS=y |
422 | # CONFIG_NLS is not set | 452 | # CONFIG_NLS is not set |
@@ -448,7 +478,6 @@ CONFIG_TRACING_SUPPORT=y | |||
448 | # CONFIG_SAMPLES is not set | 478 | # CONFIG_SAMPLES is not set |
449 | CONFIG_HAVE_ARCH_KGDB=y | 479 | CONFIG_HAVE_ARCH_KGDB=y |
450 | # CONFIG_SH_STANDARD_BIOS is not set | 480 | # CONFIG_SH_STANDARD_BIOS is not set |
451 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
452 | # CONFIG_DWARF_UNWINDER is not set | 481 | # CONFIG_DWARF_UNWINDER is not set |
453 | 482 | ||
454 | # | 483 | # |
@@ -456,7 +485,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
456 | # | 485 | # |
457 | # CONFIG_KEYS is not set | 486 | # CONFIG_KEYS is not set |
458 | # CONFIG_SECURITYFS is not set | 487 | # CONFIG_SECURITYFS is not set |
459 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 488 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
489 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
490 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
491 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
492 | CONFIG_DEFAULT_SECURITY="" | ||
460 | # CONFIG_CRYPTO is not set | 493 | # CONFIG_CRYPTO is not set |
461 | # CONFIG_BINARY_PRINTF is not set | 494 | # CONFIG_BINARY_PRINTF is not set |
462 | 495 | ||
diff --git a/arch/sh/configs/edosk7760_defconfig b/arch/sh/configs/edosk7760_defconfig index 4c0f82b7def..0932e6d656e 100644 --- a/arch/sh/configs/edosk7760_defconfig +++ b/arch/sh/configs/edosk7760_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 17:57:30 2009 | 4 | # Mon Jan 4 11:24:44 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_TMU=y | 24 | CONFIG_SYS_SUPPORTS_TMU=y |
24 | CONFIG_STACKTRACE_SUPPORT=y | 25 | CONFIG_STACKTRACE_SUPPORT=y |
25 | CONFIG_LOCKDEP_SUPPORT=y | 26 | CONFIG_LOCKDEP_SUPPORT=y |
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
34 | 36 | ||
@@ -62,6 +64,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
62 | # | 64 | # |
63 | CONFIG_TREE_RCU=y | 65 | CONFIG_TREE_RCU=y |
64 | # CONFIG_TREE_PREEMPT_RCU is not set | 66 | # CONFIG_TREE_PREEMPT_RCU is not set |
67 | # CONFIG_TINY_RCU is not set | ||
65 | # CONFIG_RCU_TRACE is not set | 68 | # CONFIG_RCU_TRACE is not set |
66 | CONFIG_RCU_FANOUT=32 | 69 | CONFIG_RCU_FANOUT=32 |
67 | # CONFIG_RCU_FANOUT_EXACT is not set | 70 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -102,6 +105,7 @@ CONFIG_EVENTFD=y | |||
102 | CONFIG_SHMEM=y | 105 | CONFIG_SHMEM=y |
103 | CONFIG_AIO=y | 106 | CONFIG_AIO=y |
104 | CONFIG_HAVE_PERF_EVENTS=y | 107 | CONFIG_HAVE_PERF_EVENTS=y |
108 | CONFIG_PERF_USE_VMALLOC=y | ||
105 | 109 | ||
106 | # | 110 | # |
107 | # Kernel Performance Events And Counters | 111 | # Kernel Performance Events And Counters |
@@ -121,6 +125,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
121 | CONFIG_HAVE_KPROBES=y | 125 | CONFIG_HAVE_KPROBES=y |
122 | CONFIG_HAVE_KRETPROBES=y | 126 | CONFIG_HAVE_KRETPROBES=y |
123 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 127 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
128 | CONFIG_HAVE_DMA_ATTRS=y | ||
124 | CONFIG_HAVE_CLK=y | 129 | CONFIG_HAVE_CLK=y |
125 | CONFIG_HAVE_DMA_API_DEBUG=y | 130 | CONFIG_HAVE_DMA_API_DEBUG=y |
126 | 131 | ||
@@ -147,14 +152,41 @@ CONFIG_LBDAF=y | |||
147 | # IO Schedulers | 152 | # IO Schedulers |
148 | # | 153 | # |
149 | CONFIG_IOSCHED_NOOP=y | 154 | CONFIG_IOSCHED_NOOP=y |
150 | CONFIG_IOSCHED_AS=y | ||
151 | CONFIG_IOSCHED_DEADLINE=y | 155 | CONFIG_IOSCHED_DEADLINE=y |
152 | CONFIG_IOSCHED_CFQ=y | 156 | CONFIG_IOSCHED_CFQ=y |
153 | # CONFIG_DEFAULT_AS is not set | ||
154 | # CONFIG_DEFAULT_DEADLINE is not set | 157 | # CONFIG_DEFAULT_DEADLINE is not set |
155 | CONFIG_DEFAULT_CFQ=y | 158 | CONFIG_DEFAULT_CFQ=y |
156 | # CONFIG_DEFAULT_NOOP is not set | 159 | # CONFIG_DEFAULT_NOOP is not set |
157 | CONFIG_DEFAULT_IOSCHED="cfq" | 160 | CONFIG_DEFAULT_IOSCHED="cfq" |
161 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
162 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
163 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
164 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
165 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
166 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
167 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
168 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
169 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
170 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
171 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
172 | # CONFIG_INLINE_READ_LOCK is not set | ||
173 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
174 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
175 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
176 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
177 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
178 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
179 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
180 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
181 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
182 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
183 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
184 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
185 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
186 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
187 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
188 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
189 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
158 | # CONFIG_FREEZER is not set | 190 | # CONFIG_FREEZER is not set |
159 | 191 | ||
160 | # | 192 | # |
@@ -230,8 +262,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
230 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 262 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
231 | CONFIG_ZONE_DMA_FLAG=0 | 263 | CONFIG_ZONE_DMA_FLAG=0 |
232 | CONFIG_NR_QUICK=2 | 264 | CONFIG_NR_QUICK=2 |
233 | CONFIG_HAVE_MLOCK=y | ||
234 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
235 | # CONFIG_KSM is not set | 265 | # CONFIG_KSM is not set |
236 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 266 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
237 | 267 | ||
@@ -278,9 +308,9 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | |||
278 | # | 308 | # |
279 | # DMA support | 309 | # DMA support |
280 | # | 310 | # |
281 | CONFIG_SH_DMA_API=y | ||
282 | CONFIG_SH_DMA=y | 311 | CONFIG_SH_DMA=y |
283 | CONFIG_SH_DMA_IRQ_MULTI=y | 312 | CONFIG_SH_DMA_IRQ_MULTI=y |
313 | CONFIG_SH_DMA_API=y | ||
284 | CONFIG_NR_ONCHIP_DMA_CHANNELS=8 | 314 | CONFIG_NR_ONCHIP_DMA_CHANNELS=8 |
285 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 315 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
286 | # CONFIG_SH_DMABRG is not set | 316 | # CONFIG_SH_DMABRG is not set |
@@ -320,7 +350,6 @@ CONFIG_GUSA=y | |||
320 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 350 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
321 | CONFIG_BOOT_LINK_OFFSET=0x02000000 | 351 | CONFIG_BOOT_LINK_OFFSET=0x02000000 |
322 | CONFIG_ENTRY_OFFSET=0x00001000 | 352 | CONFIG_ENTRY_OFFSET=0x00001000 |
323 | # CONFIG_UBC_WAKEUP is not set | ||
324 | CONFIG_CMDLINE_OVERWRITE=y | 353 | CONFIG_CMDLINE_OVERWRITE=y |
325 | # CONFIG_CMDLINE_EXTEND is not set | 354 | # CONFIG_CMDLINE_EXTEND is not set |
326 | CONFIG_CMDLINE="mem=64M console=ttySC2,115200 root=/dev/nfs rw nfsroot=192.168.0.3:/scripts/filesys ip=192.168.0.4" | 355 | CONFIG_CMDLINE="mem=64M console=ttySC2,115200 root=/dev/nfs rw nfsroot=192.168.0.3:/scripts/filesys ip=192.168.0.4" |
@@ -415,9 +444,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
415 | # CONFIG_AF_RXRPC is not set | 444 | # CONFIG_AF_RXRPC is not set |
416 | CONFIG_WIRELESS=y | 445 | CONFIG_WIRELESS=y |
417 | # CONFIG_CFG80211 is not set | 446 | # CONFIG_CFG80211 is not set |
418 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
419 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
420 | # CONFIG_WIRELESS_EXT is not set | ||
421 | # CONFIG_LIB80211 is not set | 447 | # CONFIG_LIB80211 is not set |
422 | 448 | ||
423 | # | 449 | # |
@@ -534,6 +560,10 @@ CONFIG_MTD_PHYSMAP=y | |||
534 | CONFIG_BLK_DEV=y | 560 | CONFIG_BLK_DEV=y |
535 | # CONFIG_BLK_DEV_COW_COMMON is not set | 561 | # CONFIG_BLK_DEV_COW_COMMON is not set |
536 | # CONFIG_BLK_DEV_LOOP is not set | 562 | # CONFIG_BLK_DEV_LOOP is not set |
563 | |||
564 | # | ||
565 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
566 | # | ||
537 | # CONFIG_BLK_DEV_NBD is not set | 567 | # CONFIG_BLK_DEV_NBD is not set |
538 | CONFIG_BLK_DEV_RAM=y | 568 | CONFIG_BLK_DEV_RAM=y |
539 | CONFIG_BLK_DEV_RAM_COUNT=16 | 569 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -581,11 +611,11 @@ CONFIG_SMC91X=y | |||
581 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 611 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
582 | # CONFIG_B44 is not set | 612 | # CONFIG_B44 is not set |
583 | # CONFIG_KS8842 is not set | 613 | # CONFIG_KS8842 is not set |
614 | # CONFIG_KS8851_MLL is not set | ||
584 | # CONFIG_NETDEV_1000 is not set | 615 | # CONFIG_NETDEV_1000 is not set |
585 | # CONFIG_NETDEV_10000 is not set | 616 | # CONFIG_NETDEV_10000 is not set |
586 | CONFIG_WLAN=y | 617 | CONFIG_WLAN=y |
587 | # CONFIG_WLAN_PRE80211 is not set | 618 | # CONFIG_HOSTAP is not set |
588 | # CONFIG_WLAN_80211 is not set | ||
589 | 619 | ||
590 | # | 620 | # |
591 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 621 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -605,6 +635,7 @@ CONFIG_WLAN=y | |||
605 | CONFIG_INPUT=y | 635 | CONFIG_INPUT=y |
606 | # CONFIG_INPUT_FF_MEMLESS is not set | 636 | # CONFIG_INPUT_FF_MEMLESS is not set |
607 | # CONFIG_INPUT_POLLDEV is not set | 637 | # CONFIG_INPUT_POLLDEV is not set |
638 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
608 | 639 | ||
609 | # | 640 | # |
610 | # Userland interfaces | 641 | # Userland interfaces |
@@ -698,7 +729,6 @@ CONFIG_I2C_SH7760=y | |||
698 | # | 729 | # |
699 | # Miscellaneous I2C Chip support | 730 | # Miscellaneous I2C Chip support |
700 | # | 731 | # |
701 | # CONFIG_DS1682 is not set | ||
702 | # CONFIG_SENSORS_TSL2550 is not set | 732 | # CONFIG_SENSORS_TSL2550 is not set |
703 | CONFIG_I2C_DEBUG_CORE=y | 733 | CONFIG_I2C_DEBUG_CORE=y |
704 | CONFIG_I2C_DEBUG_ALGO=y | 734 | CONFIG_I2C_DEBUG_ALGO=y |
@@ -727,15 +757,18 @@ CONFIG_SSB_POSSIBLE=y | |||
727 | # | 757 | # |
728 | # CONFIG_MFD_CORE is not set | 758 | # CONFIG_MFD_CORE is not set |
729 | # CONFIG_MFD_SM501 is not set | 759 | # CONFIG_MFD_SM501 is not set |
760 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
730 | # CONFIG_HTC_PASIC3 is not set | 761 | # CONFIG_HTC_PASIC3 is not set |
731 | # CONFIG_TWL4030_CORE is not set | 762 | # CONFIG_TWL4030_CORE is not set |
732 | # CONFIG_MFD_TMIO is not set | 763 | # CONFIG_MFD_TMIO is not set |
733 | # CONFIG_PMIC_DA903X is not set | 764 | # CONFIG_PMIC_DA903X is not set |
765 | # CONFIG_PMIC_ADP5520 is not set | ||
734 | # CONFIG_MFD_WM8400 is not set | 766 | # CONFIG_MFD_WM8400 is not set |
735 | # CONFIG_MFD_WM831X is not set | 767 | # CONFIG_MFD_WM831X is not set |
736 | # CONFIG_MFD_WM8350_I2C is not set | 768 | # CONFIG_MFD_WM8350_I2C is not set |
737 | # CONFIG_MFD_PCF50633 is not set | 769 | # CONFIG_MFD_PCF50633 is not set |
738 | # CONFIG_AB3100_CORE is not set | 770 | # CONFIG_AB3100_CORE is not set |
771 | # CONFIG_MFD_88PM8607 is not set | ||
739 | # CONFIG_REGULATOR is not set | 772 | # CONFIG_REGULATOR is not set |
740 | # CONFIG_MEDIA_SUPPORT is not set | 773 | # CONFIG_MEDIA_SUPPORT is not set |
741 | 774 | ||
@@ -1072,9 +1105,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1072 | CONFIG_HAVE_ARCH_KGDB=y | 1105 | CONFIG_HAVE_ARCH_KGDB=y |
1073 | # CONFIG_KGDB is not set | 1106 | # CONFIG_KGDB is not set |
1074 | # CONFIG_SH_STANDARD_BIOS is not set | 1107 | # CONFIG_SH_STANDARD_BIOS is not set |
1075 | CONFIG_EARLY_SCIF_CONSOLE=y | ||
1076 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 | ||
1077 | CONFIG_EARLY_PRINTK=y | ||
1078 | # CONFIG_STACK_DEBUG is not set | 1108 | # CONFIG_STACK_DEBUG is not set |
1079 | # CONFIG_DEBUG_STACK_USAGE is not set | 1109 | # CONFIG_DEBUG_STACK_USAGE is not set |
1080 | # CONFIG_4KSTACKS is not set | 1110 | # CONFIG_4KSTACKS is not set |
@@ -1088,7 +1118,11 @@ CONFIG_DUMP_CODE=y | |||
1088 | # CONFIG_KEYS is not set | 1118 | # CONFIG_KEYS is not set |
1089 | # CONFIG_SECURITY is not set | 1119 | # CONFIG_SECURITY is not set |
1090 | # CONFIG_SECURITYFS is not set | 1120 | # CONFIG_SECURITYFS is not set |
1091 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1121 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1122 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1123 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1124 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1125 | CONFIG_DEFAULT_SECURITY="" | ||
1092 | CONFIG_CRYPTO=y | 1126 | CONFIG_CRYPTO=y |
1093 | 1127 | ||
1094 | # | 1128 | # |
diff --git a/arch/sh/configs/espt_defconfig b/arch/sh/configs/espt_defconfig index 9b785517abc..f899e5613f8 100644 --- a/arch/sh/configs/espt_defconfig +++ b/arch/sh/configs/espt_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 17:58:18 2009 | 4 | # Mon Jan 4 11:26:55 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_TMU=y | 24 | CONFIG_SYS_SUPPORTS_TMU=y |
24 | CONFIG_STACKTRACE_SUPPORT=y | 25 | CONFIG_STACKTRACE_SUPPORT=y |
25 | CONFIG_LOCKDEP_SUPPORT=y | 26 | CONFIG_LOCKDEP_SUPPORT=y |
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
34 | 36 | ||
@@ -59,6 +61,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
59 | # | 61 | # |
60 | CONFIG_TREE_RCU=y | 62 | CONFIG_TREE_RCU=y |
61 | # CONFIG_TREE_PREEMPT_RCU is not set | 63 | # CONFIG_TREE_PREEMPT_RCU is not set |
64 | # CONFIG_TINY_RCU is not set | ||
62 | # CONFIG_RCU_TRACE is not set | 65 | # CONFIG_RCU_TRACE is not set |
63 | CONFIG_RCU_FANOUT=32 | 66 | CONFIG_RCU_FANOUT=32 |
64 | # CONFIG_RCU_FANOUT_EXACT is not set | 67 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y | |||
103 | CONFIG_SHMEM=y | 106 | CONFIG_SHMEM=y |
104 | CONFIG_AIO=y | 107 | CONFIG_AIO=y |
105 | CONFIG_HAVE_PERF_EVENTS=y | 108 | CONFIG_HAVE_PERF_EVENTS=y |
109 | CONFIG_PERF_USE_VMALLOC=y | ||
106 | 110 | ||
107 | # | 111 | # |
108 | # Kernel Performance Events And Counters | 112 | # Kernel Performance Events And Counters |
@@ -124,6 +128,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
124 | CONFIG_HAVE_KPROBES=y | 128 | CONFIG_HAVE_KPROBES=y |
125 | CONFIG_HAVE_KRETPROBES=y | 129 | CONFIG_HAVE_KRETPROBES=y |
126 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 130 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
131 | CONFIG_HAVE_DMA_ATTRS=y | ||
127 | CONFIG_HAVE_CLK=y | 132 | CONFIG_HAVE_CLK=y |
128 | CONFIG_HAVE_DMA_API_DEBUG=y | 133 | CONFIG_HAVE_DMA_API_DEBUG=y |
129 | 134 | ||
@@ -150,14 +155,41 @@ CONFIG_LBDAF=y | |||
150 | # IO Schedulers | 155 | # IO Schedulers |
151 | # | 156 | # |
152 | CONFIG_IOSCHED_NOOP=y | 157 | CONFIG_IOSCHED_NOOP=y |
153 | CONFIG_IOSCHED_AS=y | ||
154 | CONFIG_IOSCHED_DEADLINE=y | 158 | CONFIG_IOSCHED_DEADLINE=y |
155 | CONFIG_IOSCHED_CFQ=y | 159 | CONFIG_IOSCHED_CFQ=y |
156 | CONFIG_DEFAULT_AS=y | ||
157 | # CONFIG_DEFAULT_DEADLINE is not set | 160 | # CONFIG_DEFAULT_DEADLINE is not set |
158 | # CONFIG_DEFAULT_CFQ is not set | 161 | CONFIG_DEFAULT_CFQ=y |
159 | # CONFIG_DEFAULT_NOOP is not set | 162 | # CONFIG_DEFAULT_NOOP is not set |
160 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 163 | CONFIG_DEFAULT_IOSCHED="cfq" |
164 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
165 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
166 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
167 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
168 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
169 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
170 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
171 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
172 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
173 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
174 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
175 | # CONFIG_INLINE_READ_LOCK is not set | ||
176 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
177 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
178 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
179 | CONFIG_INLINE_READ_UNLOCK=y | ||
180 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
181 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
182 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
183 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
184 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
185 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
186 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
187 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
188 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
189 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
190 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
191 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
192 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
161 | # CONFIG_FREEZER is not set | 193 | # CONFIG_FREEZER is not set |
162 | 194 | ||
163 | # | 195 | # |
@@ -211,6 +243,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
211 | CONFIG_MEMORY_START=0x0c000000 | 243 | CONFIG_MEMORY_START=0x0c000000 |
212 | CONFIG_MEMORY_SIZE=0x04000000 | 244 | CONFIG_MEMORY_SIZE=0x04000000 |
213 | CONFIG_29BIT=y | 245 | CONFIG_29BIT=y |
246 | # CONFIG_PMB_ENABLE is not set | ||
214 | CONFIG_VSYSCALL=y | 247 | CONFIG_VSYSCALL=y |
215 | CONFIG_ARCH_FLATMEM_ENABLE=y | 248 | CONFIG_ARCH_FLATMEM_ENABLE=y |
216 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 249 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
@@ -237,8 +270,6 @@ CONFIG_MIGRATION=y | |||
237 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 270 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
238 | CONFIG_ZONE_DMA_FLAG=0 | 271 | CONFIG_ZONE_DMA_FLAG=0 |
239 | CONFIG_NR_QUICK=2 | 272 | CONFIG_NR_QUICK=2 |
240 | CONFIG_HAVE_MLOCK=y | ||
241 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
242 | # CONFIG_KSM is not set | 273 | # CONFIG_KSM is not set |
243 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 274 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
244 | 275 | ||
@@ -419,7 +450,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
419 | # CONFIG_IRDA is not set | 450 | # CONFIG_IRDA is not set |
420 | # CONFIG_BT is not set | 451 | # CONFIG_BT is not set |
421 | # CONFIG_AF_RXRPC is not set | 452 | # CONFIG_AF_RXRPC is not set |
422 | # CONFIG_WIRELESS is not set | 453 | CONFIG_WIRELESS=y |
454 | # CONFIG_CFG80211 is not set | ||
455 | # CONFIG_LIB80211 is not set | ||
456 | |||
457 | # | ||
458 | # CFG80211 needs to be enabled for MAC80211 | ||
459 | # | ||
423 | # CONFIG_WIMAX is not set | 460 | # CONFIG_WIMAX is not set |
424 | # CONFIG_RFKILL is not set | 461 | # CONFIG_RFKILL is not set |
425 | # CONFIG_NET_9P is not set | 462 | # CONFIG_NET_9P is not set |
@@ -498,7 +535,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
498 | CONFIG_MTD_COMPLEX_MAPPINGS=y | 535 | CONFIG_MTD_COMPLEX_MAPPINGS=y |
499 | CONFIG_MTD_PHYSMAP=y | 536 | CONFIG_MTD_PHYSMAP=y |
500 | # CONFIG_MTD_PHYSMAP_COMPAT is not set | 537 | # CONFIG_MTD_PHYSMAP_COMPAT is not set |
501 | # CONFIG_MTD_GPIO_ADDR is not set | ||
502 | # CONFIG_MTD_PLATRAM is not set | 538 | # CONFIG_MTD_PLATRAM is not set |
503 | 539 | ||
504 | # | 540 | # |
@@ -531,6 +567,10 @@ CONFIG_MTD_PHYSMAP=y | |||
531 | CONFIG_BLK_DEV=y | 567 | CONFIG_BLK_DEV=y |
532 | # CONFIG_BLK_DEV_COW_COMMON is not set | 568 | # CONFIG_BLK_DEV_COW_COMMON is not set |
533 | # CONFIG_BLK_DEV_LOOP is not set | 569 | # CONFIG_BLK_DEV_LOOP is not set |
570 | |||
571 | # | ||
572 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
573 | # | ||
534 | # CONFIG_BLK_DEV_NBD is not set | 574 | # CONFIG_BLK_DEV_NBD is not set |
535 | # CONFIG_BLK_DEV_UB is not set | 575 | # CONFIG_BLK_DEV_UB is not set |
536 | # CONFIG_BLK_DEV_RAM is not set | 576 | # CONFIG_BLK_DEV_RAM is not set |
@@ -629,11 +669,12 @@ CONFIG_SH_ETH=y | |||
629 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 669 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
630 | # CONFIG_B44 is not set | 670 | # CONFIG_B44 is not set |
631 | # CONFIG_KS8842 is not set | 671 | # CONFIG_KS8842 is not set |
672 | # CONFIG_KS8851_MLL is not set | ||
632 | # CONFIG_NETDEV_1000 is not set | 673 | # CONFIG_NETDEV_1000 is not set |
633 | # CONFIG_NETDEV_10000 is not set | 674 | # CONFIG_NETDEV_10000 is not set |
634 | CONFIG_WLAN=y | 675 | CONFIG_WLAN=y |
635 | # CONFIG_WLAN_PRE80211 is not set | 676 | # CONFIG_USB_ZD1201 is not set |
636 | # CONFIG_WLAN_80211 is not set | 677 | # CONFIG_HOSTAP is not set |
637 | 678 | ||
638 | # | 679 | # |
639 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 680 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -662,6 +703,7 @@ CONFIG_WLAN=y | |||
662 | CONFIG_INPUT=y | 703 | CONFIG_INPUT=y |
663 | # CONFIG_INPUT_FF_MEMLESS is not set | 704 | # CONFIG_INPUT_FF_MEMLESS is not set |
664 | # CONFIG_INPUT_POLLDEV is not set | 705 | # CONFIG_INPUT_POLLDEV is not set |
706 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
665 | 707 | ||
666 | # | 708 | # |
667 | # Userland interfaces | 709 | # Userland interfaces |
@@ -745,6 +787,7 @@ CONFIG_SSB_POSSIBLE=y | |||
745 | # | 787 | # |
746 | # CONFIG_MFD_CORE is not set | 788 | # CONFIG_MFD_CORE is not set |
747 | # CONFIG_MFD_SM501 is not set | 789 | # CONFIG_MFD_SM501 is not set |
790 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
748 | # CONFIG_HTC_PASIC3 is not set | 791 | # CONFIG_HTC_PASIC3 is not set |
749 | # CONFIG_MFD_TMIO is not set | 792 | # CONFIG_MFD_TMIO is not set |
750 | # CONFIG_REGULATOR is not set | 793 | # CONFIG_REGULATOR is not set |
@@ -1102,10 +1145,11 @@ CONFIG_DEBUG_FS=y | |||
1102 | # CONFIG_HEADERS_CHECK is not set | 1145 | # CONFIG_HEADERS_CHECK is not set |
1103 | # CONFIG_DEBUG_KERNEL is not set | 1146 | # CONFIG_DEBUG_KERNEL is not set |
1104 | CONFIG_STACKTRACE=y | 1147 | CONFIG_STACKTRACE=y |
1105 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1148 | CONFIG_DEBUG_BUGVERBOSE=y |
1106 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1149 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1107 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1150 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1108 | # CONFIG_LATENCYTOP is not set | 1151 | # CONFIG_LATENCYTOP is not set |
1152 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1109 | CONFIG_NOP_TRACER=y | 1153 | CONFIG_NOP_TRACER=y |
1110 | CONFIG_HAVE_FUNCTION_TRACER=y | 1154 | CONFIG_HAVE_FUNCTION_TRACER=y |
1111 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1155 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1125,7 +1169,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1125 | # CONFIG_SAMPLES is not set | 1169 | # CONFIG_SAMPLES is not set |
1126 | CONFIG_HAVE_ARCH_KGDB=y | 1170 | CONFIG_HAVE_ARCH_KGDB=y |
1127 | # CONFIG_SH_STANDARD_BIOS is not set | 1171 | # CONFIG_SH_STANDARD_BIOS is not set |
1128 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1129 | # CONFIG_DWARF_UNWINDER is not set | 1172 | # CONFIG_DWARF_UNWINDER is not set |
1130 | 1173 | ||
1131 | # | 1174 | # |
@@ -1134,7 +1177,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1134 | # CONFIG_KEYS is not set | 1177 | # CONFIG_KEYS is not set |
1135 | # CONFIG_SECURITY is not set | 1178 | # CONFIG_SECURITY is not set |
1136 | # CONFIG_SECURITYFS is not set | 1179 | # CONFIG_SECURITYFS is not set |
1137 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1180 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1181 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1182 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1183 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1184 | CONFIG_DEFAULT_SECURITY="" | ||
1138 | CONFIG_CRYPTO=y | 1185 | CONFIG_CRYPTO=y |
1139 | 1186 | ||
1140 | # | 1187 | # |
diff --git a/arch/sh/configs/hp6xx_defconfig b/arch/sh/configs/hp6xx_defconfig index f59be446f82..06644908631 100644 --- a/arch/sh/configs/hp6xx_defconfig +++ b/arch/sh/configs/hp6xx_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 17:59:45 2009 | 4 | # Mon Jan 4 11:30:31 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -30,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
35 | 36 | ||
@@ -57,6 +58,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
57 | # | 58 | # |
58 | CONFIG_TREE_RCU=y | 59 | CONFIG_TREE_RCU=y |
59 | # CONFIG_TREE_PREEMPT_RCU is not set | 60 | # CONFIG_TREE_PREEMPT_RCU is not set |
61 | # CONFIG_TINY_RCU is not set | ||
60 | # CONFIG_RCU_TRACE is not set | 62 | # CONFIG_RCU_TRACE is not set |
61 | CONFIG_RCU_FANOUT=32 | 63 | CONFIG_RCU_FANOUT=32 |
62 | # CONFIG_RCU_FANOUT_EXACT is not set | 64 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -92,6 +94,7 @@ CONFIG_EVENTFD=y | |||
92 | CONFIG_SHMEM=y | 94 | CONFIG_SHMEM=y |
93 | CONFIG_AIO=y | 95 | CONFIG_AIO=y |
94 | CONFIG_HAVE_PERF_EVENTS=y | 96 | CONFIG_HAVE_PERF_EVENTS=y |
97 | CONFIG_PERF_USE_VMALLOC=y | ||
95 | 98 | ||
96 | # | 99 | # |
97 | # Kernel Performance Events And Counters | 100 | # Kernel Performance Events And Counters |
@@ -109,6 +112,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
109 | CONFIG_HAVE_KPROBES=y | 112 | CONFIG_HAVE_KPROBES=y |
110 | CONFIG_HAVE_KRETPROBES=y | 113 | CONFIG_HAVE_KRETPROBES=y |
111 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 114 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
115 | CONFIG_HAVE_DMA_ATTRS=y | ||
112 | CONFIG_HAVE_CLK=y | 116 | CONFIG_HAVE_CLK=y |
113 | CONFIG_HAVE_DMA_API_DEBUG=y | 117 | CONFIG_HAVE_DMA_API_DEBUG=y |
114 | 118 | ||
@@ -130,14 +134,41 @@ CONFIG_LBDAF=y | |||
130 | # IO Schedulers | 134 | # IO Schedulers |
131 | # | 135 | # |
132 | CONFIG_IOSCHED_NOOP=y | 136 | CONFIG_IOSCHED_NOOP=y |
133 | CONFIG_IOSCHED_AS=y | ||
134 | CONFIG_IOSCHED_DEADLINE=y | 137 | CONFIG_IOSCHED_DEADLINE=y |
135 | CONFIG_IOSCHED_CFQ=y | 138 | CONFIG_IOSCHED_CFQ=y |
136 | CONFIG_DEFAULT_AS=y | ||
137 | # CONFIG_DEFAULT_DEADLINE is not set | 139 | # CONFIG_DEFAULT_DEADLINE is not set |
138 | # CONFIG_DEFAULT_CFQ is not set | 140 | CONFIG_DEFAULT_CFQ=y |
139 | # CONFIG_DEFAULT_NOOP is not set | 141 | # CONFIG_DEFAULT_NOOP is not set |
140 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 142 | CONFIG_DEFAULT_IOSCHED="cfq" |
143 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
144 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
145 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
146 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
147 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
148 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
149 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
150 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
151 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
152 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
153 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
154 | # CONFIG_INLINE_READ_LOCK is not set | ||
155 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
156 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
157 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
158 | CONFIG_INLINE_READ_UNLOCK=y | ||
159 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
160 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
161 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
162 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
163 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
164 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
165 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
166 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
167 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
168 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
169 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
170 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
171 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
141 | CONFIG_FREEZER=y | 172 | CONFIG_FREEZER=y |
142 | 173 | ||
143 | # | 174 | # |
@@ -213,8 +244,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
213 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 244 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
214 | CONFIG_ZONE_DMA_FLAG=0 | 245 | CONFIG_ZONE_DMA_FLAG=0 |
215 | CONFIG_NR_QUICK=2 | 246 | CONFIG_NR_QUICK=2 |
216 | CONFIG_HAVE_MLOCK=y | ||
217 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
218 | # CONFIG_KSM is not set | 247 | # CONFIG_KSM is not set |
219 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 248 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
220 | 249 | ||
@@ -261,8 +290,8 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | |||
261 | # | 290 | # |
262 | # DMA support | 291 | # DMA support |
263 | # | 292 | # |
264 | CONFIG_SH_DMA_API=y | ||
265 | CONFIG_SH_DMA=y | 293 | CONFIG_SH_DMA=y |
294 | CONFIG_SH_DMA_API=y | ||
266 | CONFIG_NR_ONCHIP_DMA_CHANNELS=6 | 295 | CONFIG_NR_ONCHIP_DMA_CHANNELS=6 |
267 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 296 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
268 | 297 | ||
@@ -313,7 +342,6 @@ CONFIG_ENTRY_OFFSET=0x00001000 | |||
313 | # | 342 | # |
314 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 343 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
315 | CONFIG_PCCARD=y | 344 | CONFIG_PCCARD=y |
316 | # CONFIG_PCMCIA_DEBUG is not set | ||
317 | CONFIG_PCMCIA=y | 345 | CONFIG_PCMCIA=y |
318 | CONFIG_PCMCIA_LOAD_CIS=y | 346 | CONFIG_PCMCIA_LOAD_CIS=y |
319 | CONFIG_PCMCIA_IOCTL=y | 347 | CONFIG_PCMCIA_IOCTL=y |
@@ -363,6 +391,10 @@ CONFIG_EXTRA_FIRMWARE="" | |||
363 | CONFIG_BLK_DEV=y | 391 | CONFIG_BLK_DEV=y |
364 | # CONFIG_BLK_DEV_COW_COMMON is not set | 392 | # CONFIG_BLK_DEV_COW_COMMON is not set |
365 | # CONFIG_BLK_DEV_LOOP is not set | 393 | # CONFIG_BLK_DEV_LOOP is not set |
394 | |||
395 | # | ||
396 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
397 | # | ||
366 | # CONFIG_BLK_DEV_RAM is not set | 398 | # CONFIG_BLK_DEV_RAM is not set |
367 | # CONFIG_CDROM_PKTCDVD is not set | 399 | # CONFIG_CDROM_PKTCDVD is not set |
368 | # CONFIG_BLK_DEV_HD is not set | 400 | # CONFIG_BLK_DEV_HD is not set |
@@ -432,6 +464,7 @@ CONFIG_PATA_PLATFORM=y | |||
432 | CONFIG_INPUT=y | 464 | CONFIG_INPUT=y |
433 | # CONFIG_INPUT_FF_MEMLESS is not set | 465 | # CONFIG_INPUT_FF_MEMLESS is not set |
434 | CONFIG_INPUT_POLLDEV=y | 466 | CONFIG_INPUT_POLLDEV=y |
467 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
435 | 468 | ||
436 | # | 469 | # |
437 | # Userland interfaces | 470 | # Userland interfaces |
@@ -460,6 +493,7 @@ CONFIG_KEYBOARD_HP6XX=y | |||
460 | # CONFIG_INPUT_TABLET is not set | 493 | # CONFIG_INPUT_TABLET is not set |
461 | CONFIG_INPUT_TOUCHSCREEN=y | 494 | CONFIG_INPUT_TOUCHSCREEN=y |
462 | # CONFIG_TOUCHSCREEN_AD7879 is not set | 495 | # CONFIG_TOUCHSCREEN_AD7879 is not set |
496 | # CONFIG_TOUCHSCREEN_DYNAPRO is not set | ||
463 | # CONFIG_TOUCHSCREEN_FUJITSU is not set | 497 | # CONFIG_TOUCHSCREEN_FUJITSU is not set |
464 | # CONFIG_TOUCHSCREEN_GUNZE is not set | 498 | # CONFIG_TOUCHSCREEN_GUNZE is not set |
465 | # CONFIG_TOUCHSCREEN_ELO is not set | 499 | # CONFIG_TOUCHSCREEN_ELO is not set |
@@ -483,6 +517,7 @@ CONFIG_SERIO=y | |||
483 | # CONFIG_SERIO_SERPORT is not set | 517 | # CONFIG_SERIO_SERPORT is not set |
484 | # CONFIG_SERIO_LIBPS2 is not set | 518 | # CONFIG_SERIO_LIBPS2 is not set |
485 | # CONFIG_SERIO_RAW is not set | 519 | # CONFIG_SERIO_RAW is not set |
520 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
486 | # CONFIG_GAMEPORT is not set | 521 | # CONFIG_GAMEPORT is not set |
487 | 522 | ||
488 | # | 523 | # |
@@ -550,6 +585,7 @@ CONFIG_SSB_POSSIBLE=y | |||
550 | # | 585 | # |
551 | # CONFIG_MFD_CORE is not set | 586 | # CONFIG_MFD_CORE is not set |
552 | # CONFIG_MFD_SM501 is not set | 587 | # CONFIG_MFD_SM501 is not set |
588 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
553 | # CONFIG_HTC_PASIC3 is not set | 589 | # CONFIG_HTC_PASIC3 is not set |
554 | # CONFIG_MFD_TMIO is not set | 590 | # CONFIG_MFD_TMIO is not set |
555 | # CONFIG_REGULATOR is not set | 591 | # CONFIG_REGULATOR is not set |
@@ -659,7 +695,9 @@ CONFIG_RTC_INTF_DEV=y | |||
659 | # CONFIG_RTC_DRV_M48T86 is not set | 695 | # CONFIG_RTC_DRV_M48T86 is not set |
660 | # CONFIG_RTC_DRV_M48T35 is not set | 696 | # CONFIG_RTC_DRV_M48T35 is not set |
661 | # CONFIG_RTC_DRV_M48T59 is not set | 697 | # CONFIG_RTC_DRV_M48T59 is not set |
698 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
662 | # CONFIG_RTC_DRV_BQ4802 is not set | 699 | # CONFIG_RTC_DRV_BQ4802 is not set |
700 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
663 | # CONFIG_RTC_DRV_V3020 is not set | 701 | # CONFIG_RTC_DRV_V3020 is not set |
664 | 702 | ||
665 | # | 703 | # |
@@ -684,6 +722,7 @@ CONFIG_EXT2_FS=y | |||
684 | # CONFIG_EXT2_FS_XIP is not set | 722 | # CONFIG_EXT2_FS_XIP is not set |
685 | # CONFIG_EXT3_FS is not set | 723 | # CONFIG_EXT3_FS is not set |
686 | # CONFIG_EXT4_FS is not set | 724 | # CONFIG_EXT4_FS is not set |
725 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
687 | # CONFIG_REISERFS_FS is not set | 726 | # CONFIG_REISERFS_FS is not set |
688 | # CONFIG_JFS_FS is not set | 727 | # CONFIG_JFS_FS is not set |
689 | # CONFIG_FS_POSIX_ACL is not set | 728 | # CONFIG_FS_POSIX_ACL is not set |
@@ -731,7 +770,6 @@ CONFIG_PROC_SYSCTL=y | |||
731 | CONFIG_PROC_PAGE_MONITOR=y | 770 | CONFIG_PROC_PAGE_MONITOR=y |
732 | CONFIG_SYSFS=y | 771 | CONFIG_SYSFS=y |
733 | # CONFIG_TMPFS is not set | 772 | # CONFIG_TMPFS is not set |
734 | # CONFIG_HUGETLBFS is not set | ||
735 | # CONFIG_HUGETLB_PAGE is not set | 773 | # CONFIG_HUGETLB_PAGE is not set |
736 | # CONFIG_CONFIGFS_FS is not set | 774 | # CONFIG_CONFIGFS_FS is not set |
737 | CONFIG_MISC_FILESYSTEMS=y | 775 | CONFIG_MISC_FILESYSTEMS=y |
@@ -813,10 +851,11 @@ CONFIG_FRAME_WARN=1024 | |||
813 | # CONFIG_DEBUG_FS is not set | 851 | # CONFIG_DEBUG_FS is not set |
814 | # CONFIG_HEADERS_CHECK is not set | 852 | # CONFIG_HEADERS_CHECK is not set |
815 | # CONFIG_DEBUG_KERNEL is not set | 853 | # CONFIG_DEBUG_KERNEL is not set |
816 | # CONFIG_DEBUG_BUGVERBOSE is not set | 854 | CONFIG_DEBUG_BUGVERBOSE=y |
817 | # CONFIG_DEBUG_MEMORY_INIT is not set | 855 | # CONFIG_DEBUG_MEMORY_INIT is not set |
818 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 856 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
819 | # CONFIG_LATENCYTOP is not set | 857 | # CONFIG_LATENCYTOP is not set |
858 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
820 | CONFIG_HAVE_FUNCTION_TRACER=y | 859 | CONFIG_HAVE_FUNCTION_TRACER=y |
821 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 860 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
822 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 861 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -829,7 +868,6 @@ CONFIG_TRACING_SUPPORT=y | |||
829 | # CONFIG_SAMPLES is not set | 868 | # CONFIG_SAMPLES is not set |
830 | CONFIG_HAVE_ARCH_KGDB=y | 869 | CONFIG_HAVE_ARCH_KGDB=y |
831 | # CONFIG_SH_STANDARD_BIOS is not set | 870 | # CONFIG_SH_STANDARD_BIOS is not set |
832 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
833 | # CONFIG_DWARF_UNWINDER is not set | 871 | # CONFIG_DWARF_UNWINDER is not set |
834 | 872 | ||
835 | # | 873 | # |
@@ -838,7 +876,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
838 | # CONFIG_KEYS is not set | 876 | # CONFIG_KEYS is not set |
839 | # CONFIG_SECURITY is not set | 877 | # CONFIG_SECURITY is not set |
840 | # CONFIG_SECURITYFS is not set | 878 | # CONFIG_SECURITYFS is not set |
841 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 879 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
880 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
881 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
882 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
883 | CONFIG_DEFAULT_SECURITY="" | ||
842 | CONFIG_CRYPTO=y | 884 | CONFIG_CRYPTO=y |
843 | 885 | ||
844 | # | 886 | # |
diff --git a/arch/sh/configs/kfr2r09-romimage_defconfig b/arch/sh/configs/kfr2r09-romimage_defconfig index 02590e127f7..3d834e59e8f 100644 --- a/arch/sh/configs/kfr2r09-romimage_defconfig +++ b/arch/sh/configs/kfr2r09-romimage_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:01:48 2009 | 4 | # Mon Jan 4 11:31:09 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_CMT=y | 24 | CONFIG_SYS_SUPPORTS_CMT=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -60,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
60 | # | 62 | # |
61 | CONFIG_TREE_RCU=y | 63 | CONFIG_TREE_RCU=y |
62 | # CONFIG_TREE_PREEMPT_RCU is not set | 64 | # CONFIG_TREE_PREEMPT_RCU is not set |
65 | # CONFIG_TINY_RCU is not set | ||
63 | # CONFIG_RCU_TRACE is not set | 66 | # CONFIG_RCU_TRACE is not set |
64 | CONFIG_RCU_FANOUT=32 | 67 | CONFIG_RCU_FANOUT=32 |
65 | # CONFIG_RCU_FANOUT_EXACT is not set | 68 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -102,6 +105,7 @@ CONFIG_EVENTFD=y | |||
102 | CONFIG_SHMEM=y | 105 | CONFIG_SHMEM=y |
103 | CONFIG_AIO=y | 106 | CONFIG_AIO=y |
104 | CONFIG_HAVE_PERF_EVENTS=y | 107 | CONFIG_HAVE_PERF_EVENTS=y |
108 | CONFIG_PERF_USE_VMALLOC=y | ||
105 | 109 | ||
106 | # | 110 | # |
107 | # Kernel Performance Events And Counters | 111 | # Kernel Performance Events And Counters |
@@ -119,6 +123,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
119 | CONFIG_HAVE_KPROBES=y | 123 | CONFIG_HAVE_KPROBES=y |
120 | CONFIG_HAVE_KRETPROBES=y | 124 | CONFIG_HAVE_KRETPROBES=y |
121 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 125 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
126 | CONFIG_HAVE_DMA_ATTRS=y | ||
122 | CONFIG_HAVE_CLK=y | 127 | CONFIG_HAVE_CLK=y |
123 | CONFIG_HAVE_DMA_API_DEBUG=y | 128 | CONFIG_HAVE_DMA_API_DEBUG=y |
124 | 129 | ||
@@ -133,6 +138,35 @@ CONFIG_RT_MUTEXES=y | |||
133 | CONFIG_BASE_SMALL=0 | 138 | CONFIG_BASE_SMALL=0 |
134 | # CONFIG_MODULES is not set | 139 | # CONFIG_MODULES is not set |
135 | # CONFIG_BLOCK is not set | 140 | # CONFIG_BLOCK is not set |
141 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
142 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
143 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
144 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
145 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
146 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
147 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
148 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
149 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
150 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
151 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
152 | # CONFIG_INLINE_READ_LOCK is not set | ||
153 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
154 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
155 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
156 | CONFIG_INLINE_READ_UNLOCK=y | ||
157 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
158 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
159 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
160 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
161 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
162 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
163 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
164 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
165 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
166 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
167 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
168 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
169 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
136 | # CONFIG_FREEZER is not set | 170 | # CONFIG_FREEZER is not set |
137 | 171 | ||
138 | # | 172 | # |
@@ -188,6 +222,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
188 | CONFIG_MEMORY_START=0x08000000 | 222 | CONFIG_MEMORY_START=0x08000000 |
189 | CONFIG_MEMORY_SIZE=0x08000000 | 223 | CONFIG_MEMORY_SIZE=0x08000000 |
190 | CONFIG_29BIT=y | 224 | CONFIG_29BIT=y |
225 | # CONFIG_PMB_ENABLE is not set | ||
191 | # CONFIG_X2TLB is not set | 226 | # CONFIG_X2TLB is not set |
192 | CONFIG_VSYSCALL=y | 227 | CONFIG_VSYSCALL=y |
193 | CONFIG_ARCH_FLATMEM_ENABLE=y | 228 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -212,8 +247,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
212 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 247 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
213 | CONFIG_ZONE_DMA_FLAG=0 | 248 | CONFIG_ZONE_DMA_FLAG=0 |
214 | CONFIG_NR_QUICK=2 | 249 | CONFIG_NR_QUICK=2 |
215 | CONFIG_HAVE_MLOCK=y | ||
216 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
217 | # CONFIG_KSM is not set | 250 | # CONFIG_KSM is not set |
218 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 251 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
219 | 252 | ||
@@ -247,7 +280,6 @@ CONFIG_SH_KFR2R09=y | |||
247 | # | 280 | # |
248 | # CONFIG_SH_TIMER_TMU is not set | 281 | # CONFIG_SH_TIMER_TMU is not set |
249 | CONFIG_SH_TIMER_CMT=y | 282 | CONFIG_SH_TIMER_CMT=y |
250 | CONFIG_SH_PCLK_FREQ=33333333 | ||
251 | CONFIG_SH_CLK_CPG=y | 283 | CONFIG_SH_CLK_CPG=y |
252 | # CONFIG_NO_HZ is not set | 284 | # CONFIG_NO_HZ is not set |
253 | # CONFIG_HIGH_RES_TIMERS is not set | 285 | # CONFIG_HIGH_RES_TIMERS is not set |
@@ -429,6 +461,7 @@ CONFIG_HAVE_IDE=y | |||
429 | CONFIG_INPUT=y | 461 | CONFIG_INPUT=y |
430 | # CONFIG_INPUT_FF_MEMLESS is not set | 462 | # CONFIG_INPUT_FF_MEMLESS is not set |
431 | # CONFIG_INPUT_POLLDEV is not set | 463 | # CONFIG_INPUT_POLLDEV is not set |
464 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
432 | 465 | ||
433 | # | 466 | # |
434 | # Userland interfaces | 467 | # Userland interfaces |
@@ -520,7 +553,6 @@ CONFIG_I2C_SH_MOBILE=y | |||
520 | # | 553 | # |
521 | # Miscellaneous I2C Chip support | 554 | # Miscellaneous I2C Chip support |
522 | # | 555 | # |
523 | # CONFIG_DS1682 is not set | ||
524 | # CONFIG_SENSORS_TSL2550 is not set | 556 | # CONFIG_SENSORS_TSL2550 is not set |
525 | # CONFIG_I2C_DEBUG_CORE is not set | 557 | # CONFIG_I2C_DEBUG_CORE is not set |
526 | # CONFIG_I2C_DEBUG_ALGO is not set | 558 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -575,16 +607,19 @@ CONFIG_SSB_POSSIBLE=y | |||
575 | # | 607 | # |
576 | # CONFIG_MFD_CORE is not set | 608 | # CONFIG_MFD_CORE is not set |
577 | # CONFIG_MFD_SM501 is not set | 609 | # CONFIG_MFD_SM501 is not set |
610 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
578 | # CONFIG_HTC_PASIC3 is not set | 611 | # CONFIG_HTC_PASIC3 is not set |
579 | # CONFIG_TPS65010 is not set | 612 | # CONFIG_TPS65010 is not set |
580 | # CONFIG_TWL4030_CORE is not set | 613 | # CONFIG_TWL4030_CORE is not set |
581 | # CONFIG_MFD_TMIO is not set | 614 | # CONFIG_MFD_TMIO is not set |
582 | # CONFIG_PMIC_DA903X is not set | 615 | # CONFIG_PMIC_DA903X is not set |
616 | # CONFIG_PMIC_ADP5520 is not set | ||
583 | # CONFIG_MFD_WM8400 is not set | 617 | # CONFIG_MFD_WM8400 is not set |
584 | # CONFIG_MFD_WM831X is not set | 618 | # CONFIG_MFD_WM831X is not set |
585 | # CONFIG_MFD_WM8350_I2C is not set | 619 | # CONFIG_MFD_WM8350_I2C is not set |
586 | # CONFIG_MFD_PCF50633 is not set | 620 | # CONFIG_MFD_PCF50633 is not set |
587 | # CONFIG_AB3100_CORE is not set | 621 | # CONFIG_AB3100_CORE is not set |
622 | # CONFIG_MFD_88PM8607 is not set | ||
588 | # CONFIG_REGULATOR is not set | 623 | # CONFIG_REGULATOR is not set |
589 | # CONFIG_MEDIA_SUPPORT is not set | 624 | # CONFIG_MEDIA_SUPPORT is not set |
590 | 625 | ||
@@ -650,10 +685,12 @@ CONFIG_USB_GADGET_DUALSPEED=y | |||
650 | # CONFIG_USB_ETH is not set | 685 | # CONFIG_USB_ETH is not set |
651 | # CONFIG_USB_GADGETFS is not set | 686 | # CONFIG_USB_GADGETFS is not set |
652 | # CONFIG_USB_FILE_STORAGE is not set | 687 | # CONFIG_USB_FILE_STORAGE is not set |
688 | # CONFIG_USB_MASS_STORAGE is not set | ||
653 | # CONFIG_USB_G_SERIAL is not set | 689 | # CONFIG_USB_G_SERIAL is not set |
654 | # CONFIG_USB_MIDI_GADGET is not set | 690 | # CONFIG_USB_MIDI_GADGET is not set |
655 | # CONFIG_USB_G_PRINTER is not set | 691 | # CONFIG_USB_G_PRINTER is not set |
656 | CONFIG_USB_CDC_COMPOSITE=y | 692 | CONFIG_USB_CDC_COMPOSITE=y |
693 | # CONFIG_USB_G_MULTI is not set | ||
657 | 694 | ||
658 | # | 695 | # |
659 | # OTG and related infrastructure | 696 | # OTG and related infrastructure |
@@ -725,7 +762,7 @@ CONFIG_FRAME_WARN=1024 | |||
725 | CONFIG_DEBUG_FS=y | 762 | CONFIG_DEBUG_FS=y |
726 | # CONFIG_HEADERS_CHECK is not set | 763 | # CONFIG_HEADERS_CHECK is not set |
727 | # CONFIG_DEBUG_KERNEL is not set | 764 | # CONFIG_DEBUG_KERNEL is not set |
728 | # CONFIG_DEBUG_BUGVERBOSE is not set | 765 | CONFIG_DEBUG_BUGVERBOSE=y |
729 | # CONFIG_DEBUG_MEMORY_INIT is not set | 766 | # CONFIG_DEBUG_MEMORY_INIT is not set |
730 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 767 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
731 | # CONFIG_LATENCYTOP is not set | 768 | # CONFIG_LATENCYTOP is not set |
@@ -743,7 +780,6 @@ CONFIG_TRACING_SUPPORT=y | |||
743 | # CONFIG_SAMPLES is not set | 780 | # CONFIG_SAMPLES is not set |
744 | CONFIG_HAVE_ARCH_KGDB=y | 781 | CONFIG_HAVE_ARCH_KGDB=y |
745 | # CONFIG_SH_STANDARD_BIOS is not set | 782 | # CONFIG_SH_STANDARD_BIOS is not set |
746 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
747 | # CONFIG_DWARF_UNWINDER is not set | 783 | # CONFIG_DWARF_UNWINDER is not set |
748 | 784 | ||
749 | # | 785 | # |
@@ -752,7 +788,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
752 | # CONFIG_KEYS is not set | 788 | # CONFIG_KEYS is not set |
753 | # CONFIG_SECURITY is not set | 789 | # CONFIG_SECURITY is not set |
754 | # CONFIG_SECURITYFS is not set | 790 | # CONFIG_SECURITYFS is not set |
755 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 791 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
792 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
793 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
794 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
795 | CONFIG_DEFAULT_SECURITY="" | ||
756 | # CONFIG_CRYPTO is not set | 796 | # CONFIG_CRYPTO is not set |
757 | # CONFIG_BINARY_PRINTF is not set | 797 | # CONFIG_BINARY_PRINTF is not set |
758 | 798 | ||
diff --git a/arch/sh/configs/kfr2r09_defconfig b/arch/sh/configs/kfr2r09_defconfig index 8ae65d294b1..f22be494ed9 100644 --- a/arch/sh/configs/kfr2r09_defconfig +++ b/arch/sh/configs/kfr2r09_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Fri Sep 25 11:54:22 2009 | 4 | # Mon Jan 4 11:32:55 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_CMT=y | 24 | CONFIG_SYS_SUPPORTS_CMT=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -62,6 +64,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
62 | # | 64 | # |
63 | CONFIG_TREE_RCU=y | 65 | CONFIG_TREE_RCU=y |
64 | # CONFIG_TREE_PREEMPT_RCU is not set | 66 | # CONFIG_TREE_PREEMPT_RCU is not set |
67 | # CONFIG_TINY_RCU is not set | ||
65 | # CONFIG_RCU_TRACE is not set | 68 | # CONFIG_RCU_TRACE is not set |
66 | CONFIG_RCU_FANOUT=32 | 69 | CONFIG_RCU_FANOUT=32 |
67 | # CONFIG_RCU_FANOUT_EXACT is not set | 70 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -104,6 +107,7 @@ CONFIG_EVENTFD=y | |||
104 | CONFIG_SHMEM=y | 107 | CONFIG_SHMEM=y |
105 | CONFIG_AIO=y | 108 | CONFIG_AIO=y |
106 | CONFIG_HAVE_PERF_EVENTS=y | 109 | CONFIG_HAVE_PERF_EVENTS=y |
110 | CONFIG_PERF_USE_VMALLOC=y | ||
107 | 111 | ||
108 | # | 112 | # |
109 | # Kernel Performance Events And Counters | 113 | # Kernel Performance Events And Counters |
@@ -121,6 +125,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
121 | CONFIG_HAVE_KPROBES=y | 125 | CONFIG_HAVE_KPROBES=y |
122 | CONFIG_HAVE_KRETPROBES=y | 126 | CONFIG_HAVE_KRETPROBES=y |
123 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 127 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
128 | CONFIG_HAVE_DMA_ATTRS=y | ||
124 | CONFIG_HAVE_CLK=y | 129 | CONFIG_HAVE_CLK=y |
125 | CONFIG_HAVE_DMA_API_DEBUG=y | 130 | CONFIG_HAVE_DMA_API_DEBUG=y |
126 | 131 | ||
@@ -148,14 +153,41 @@ CONFIG_LBDAF=y | |||
148 | # IO Schedulers | 153 | # IO Schedulers |
149 | # | 154 | # |
150 | CONFIG_IOSCHED_NOOP=y | 155 | CONFIG_IOSCHED_NOOP=y |
151 | # CONFIG_IOSCHED_AS is not set | ||
152 | # CONFIG_IOSCHED_DEADLINE is not set | 156 | # CONFIG_IOSCHED_DEADLINE is not set |
153 | # CONFIG_IOSCHED_CFQ is not set | 157 | # CONFIG_IOSCHED_CFQ is not set |
154 | # CONFIG_DEFAULT_AS is not set | ||
155 | # CONFIG_DEFAULT_DEADLINE is not set | 158 | # CONFIG_DEFAULT_DEADLINE is not set |
156 | # CONFIG_DEFAULT_CFQ is not set | 159 | # CONFIG_DEFAULT_CFQ is not set |
157 | CONFIG_DEFAULT_NOOP=y | 160 | CONFIG_DEFAULT_NOOP=y |
158 | CONFIG_DEFAULT_IOSCHED="noop" | 161 | CONFIG_DEFAULT_IOSCHED="noop" |
162 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
163 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
164 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
165 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
166 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
167 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
168 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
169 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
170 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
171 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
172 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
173 | # CONFIG_INLINE_READ_LOCK is not set | ||
174 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
175 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
176 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
177 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
178 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
179 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
180 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
181 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
182 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
183 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
184 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
185 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
186 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
187 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
188 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
189 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
190 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
159 | # CONFIG_FREEZER is not set | 191 | # CONFIG_FREEZER is not set |
160 | 192 | ||
161 | # | 193 | # |
@@ -211,6 +243,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
211 | CONFIG_MEMORY_START=0x08000000 | 243 | CONFIG_MEMORY_START=0x08000000 |
212 | CONFIG_MEMORY_SIZE=0x08000000 | 244 | CONFIG_MEMORY_SIZE=0x08000000 |
213 | CONFIG_29BIT=y | 245 | CONFIG_29BIT=y |
246 | # CONFIG_PMB_ENABLE is not set | ||
214 | # CONFIG_X2TLB is not set | 247 | # CONFIG_X2TLB is not set |
215 | CONFIG_VSYSCALL=y | 248 | CONFIG_VSYSCALL=y |
216 | CONFIG_ARCH_FLATMEM_ENABLE=y | 249 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -235,8 +268,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
235 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 268 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
236 | CONFIG_ZONE_DMA_FLAG=0 | 269 | CONFIG_ZONE_DMA_FLAG=0 |
237 | CONFIG_NR_QUICK=2 | 270 | CONFIG_NR_QUICK=2 |
238 | CONFIG_HAVE_MLOCK=y | ||
239 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
240 | # CONFIG_KSM is not set | 271 | # CONFIG_KSM is not set |
241 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 272 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
242 | 273 | ||
@@ -270,7 +301,6 @@ CONFIG_SH_KFR2R09=y | |||
270 | # | 301 | # |
271 | # CONFIG_SH_TIMER_TMU is not set | 302 | # CONFIG_SH_TIMER_TMU is not set |
272 | CONFIG_SH_TIMER_CMT=y | 303 | CONFIG_SH_TIMER_CMT=y |
273 | CONFIG_SH_PCLK_FREQ=33333333 | ||
274 | CONFIG_SH_CLK_CPG=y | 304 | CONFIG_SH_CLK_CPG=y |
275 | CONFIG_TICK_ONESHOT=y | 305 | CONFIG_TICK_ONESHOT=y |
276 | CONFIG_NO_HZ=y | 306 | CONFIG_NO_HZ=y |
@@ -534,6 +564,10 @@ CONFIG_MTD_UBI_BEB_RESERVE=1 | |||
534 | CONFIG_BLK_DEV=y | 564 | CONFIG_BLK_DEV=y |
535 | # CONFIG_BLK_DEV_COW_COMMON is not set | 565 | # CONFIG_BLK_DEV_COW_COMMON is not set |
536 | # CONFIG_BLK_DEV_LOOP is not set | 566 | # CONFIG_BLK_DEV_LOOP is not set |
567 | |||
568 | # | ||
569 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
570 | # | ||
537 | # CONFIG_BLK_DEV_NBD is not set | 571 | # CONFIG_BLK_DEV_NBD is not set |
538 | # CONFIG_BLK_DEV_RAM is not set | 572 | # CONFIG_BLK_DEV_RAM is not set |
539 | # CONFIG_CDROM_PKTCDVD is not set | 573 | # CONFIG_CDROM_PKTCDVD is not set |
@@ -562,6 +596,7 @@ CONFIG_HAVE_IDE=y | |||
562 | CONFIG_INPUT=y | 596 | CONFIG_INPUT=y |
563 | # CONFIG_INPUT_FF_MEMLESS is not set | 597 | # CONFIG_INPUT_FF_MEMLESS is not set |
564 | # CONFIG_INPUT_POLLDEV is not set | 598 | # CONFIG_INPUT_POLLDEV is not set |
599 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
565 | 600 | ||
566 | # | 601 | # |
567 | # Userland interfaces | 602 | # Userland interfaces |
@@ -668,7 +703,6 @@ CONFIG_I2C_SH_MOBILE=y | |||
668 | # | 703 | # |
669 | # Miscellaneous I2C Chip support | 704 | # Miscellaneous I2C Chip support |
670 | # | 705 | # |
671 | # CONFIG_DS1682 is not set | ||
672 | # CONFIG_SENSORS_TSL2550 is not set | 706 | # CONFIG_SENSORS_TSL2550 is not set |
673 | # CONFIG_I2C_DEBUG_CORE is not set | 707 | # CONFIG_I2C_DEBUG_CORE is not set |
674 | # CONFIG_I2C_DEBUG_ALGO is not set | 708 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -723,16 +757,19 @@ CONFIG_SSB_POSSIBLE=y | |||
723 | # | 757 | # |
724 | # CONFIG_MFD_CORE is not set | 758 | # CONFIG_MFD_CORE is not set |
725 | # CONFIG_MFD_SM501 is not set | 759 | # CONFIG_MFD_SM501 is not set |
760 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
726 | # CONFIG_HTC_PASIC3 is not set | 761 | # CONFIG_HTC_PASIC3 is not set |
727 | # CONFIG_TPS65010 is not set | 762 | # CONFIG_TPS65010 is not set |
728 | # CONFIG_TWL4030_CORE is not set | 763 | # CONFIG_TWL4030_CORE is not set |
729 | # CONFIG_MFD_TMIO is not set | 764 | # CONFIG_MFD_TMIO is not set |
730 | # CONFIG_PMIC_DA903X is not set | 765 | # CONFIG_PMIC_DA903X is not set |
766 | # CONFIG_PMIC_ADP5520 is not set | ||
731 | # CONFIG_MFD_WM8400 is not set | 767 | # CONFIG_MFD_WM8400 is not set |
732 | # CONFIG_MFD_WM831X is not set | 768 | # CONFIG_MFD_WM831X is not set |
733 | # CONFIG_MFD_WM8350_I2C is not set | 769 | # CONFIG_MFD_WM8350_I2C is not set |
734 | # CONFIG_MFD_PCF50633 is not set | 770 | # CONFIG_MFD_PCF50633 is not set |
735 | # CONFIG_AB3100_CORE is not set | 771 | # CONFIG_AB3100_CORE is not set |
772 | # CONFIG_MFD_88PM8607 is not set | ||
736 | # CONFIG_REGULATOR is not set | 773 | # CONFIG_REGULATOR is not set |
737 | # CONFIG_MEDIA_SUPPORT is not set | 774 | # CONFIG_MEDIA_SUPPORT is not set |
738 | 775 | ||
@@ -847,10 +884,12 @@ CONFIG_USB_GADGET_DUALSPEED=y | |||
847 | # CONFIG_USB_ETH is not set | 884 | # CONFIG_USB_ETH is not set |
848 | # CONFIG_USB_GADGETFS is not set | 885 | # CONFIG_USB_GADGETFS is not set |
849 | # CONFIG_USB_FILE_STORAGE is not set | 886 | # CONFIG_USB_FILE_STORAGE is not set |
887 | # CONFIG_USB_MASS_STORAGE is not set | ||
850 | # CONFIG_USB_G_SERIAL is not set | 888 | # CONFIG_USB_G_SERIAL is not set |
851 | # CONFIG_USB_MIDI_GADGET is not set | 889 | # CONFIG_USB_MIDI_GADGET is not set |
852 | # CONFIG_USB_G_PRINTER is not set | 890 | # CONFIG_USB_G_PRINTER is not set |
853 | CONFIG_USB_CDC_COMPOSITE=y | 891 | CONFIG_USB_CDC_COMPOSITE=m |
892 | # CONFIG_USB_G_MULTI is not set | ||
854 | 893 | ||
855 | # | 894 | # |
856 | # OTG and related infrastructure | 895 | # OTG and related infrastructure |
@@ -875,6 +914,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
875 | # CONFIG_MMC_SDHCI is not set | 914 | # CONFIG_MMC_SDHCI is not set |
876 | # CONFIG_MMC_AT91 is not set | 915 | # CONFIG_MMC_AT91 is not set |
877 | # CONFIG_MMC_ATMELMCI is not set | 916 | # CONFIG_MMC_ATMELMCI is not set |
917 | # CONFIG_MMC_TMIO is not set | ||
878 | # CONFIG_MEMSTICK is not set | 918 | # CONFIG_MEMSTICK is not set |
879 | # CONFIG_NEW_LEDS is not set | 919 | # CONFIG_NEW_LEDS is not set |
880 | # CONFIG_ACCESSIBILITY is not set | 920 | # CONFIG_ACCESSIBILITY is not set |
@@ -906,6 +946,7 @@ CONFIG_RTC_INTF_DEV=y | |||
906 | # CONFIG_RTC_DRV_PCF8563 is not set | 946 | # CONFIG_RTC_DRV_PCF8563 is not set |
907 | # CONFIG_RTC_DRV_PCF8583 is not set | 947 | # CONFIG_RTC_DRV_PCF8583 is not set |
908 | # CONFIG_RTC_DRV_M41T80 is not set | 948 | # CONFIG_RTC_DRV_M41T80 is not set |
949 | # CONFIG_RTC_DRV_BQ32K is not set | ||
909 | # CONFIG_RTC_DRV_S35390A is not set | 950 | # CONFIG_RTC_DRV_S35390A is not set |
910 | # CONFIG_RTC_DRV_FM3130 is not set | 951 | # CONFIG_RTC_DRV_FM3130 is not set |
911 | # CONFIG_RTC_DRV_RX8581 is not set | 952 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -926,7 +967,9 @@ CONFIG_RTC_INTF_DEV=y | |||
926 | # CONFIG_RTC_DRV_M48T86 is not set | 967 | # CONFIG_RTC_DRV_M48T86 is not set |
927 | # CONFIG_RTC_DRV_M48T35 is not set | 968 | # CONFIG_RTC_DRV_M48T35 is not set |
928 | # CONFIG_RTC_DRV_M48T59 is not set | 969 | # CONFIG_RTC_DRV_M48T59 is not set |
970 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
929 | # CONFIG_RTC_DRV_BQ4802 is not set | 971 | # CONFIG_RTC_DRV_BQ4802 is not set |
972 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
930 | # CONFIG_RTC_DRV_V3020 is not set | 973 | # CONFIG_RTC_DRV_V3020 is not set |
931 | 974 | ||
932 | # | 975 | # |
@@ -953,6 +996,7 @@ CONFIG_UIO_PDRV_GENIRQ=y | |||
953 | # CONFIG_EXT2_FS is not set | 996 | # CONFIG_EXT2_FS is not set |
954 | # CONFIG_EXT3_FS is not set | 997 | # CONFIG_EXT3_FS is not set |
955 | # CONFIG_EXT4_FS is not set | 998 | # CONFIG_EXT4_FS is not set |
999 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
956 | # CONFIG_REISERFS_FS is not set | 1000 | # CONFIG_REISERFS_FS is not set |
957 | # CONFIG_JFS_FS is not set | 1001 | # CONFIG_JFS_FS is not set |
958 | # CONFIG_FS_POSIX_ACL is not set | 1002 | # CONFIG_FS_POSIX_ACL is not set |
@@ -1027,7 +1071,7 @@ CONFIG_FRAME_WARN=1024 | |||
1027 | CONFIG_DEBUG_FS=y | 1071 | CONFIG_DEBUG_FS=y |
1028 | # CONFIG_HEADERS_CHECK is not set | 1072 | # CONFIG_HEADERS_CHECK is not set |
1029 | # CONFIG_DEBUG_KERNEL is not set | 1073 | # CONFIG_DEBUG_KERNEL is not set |
1030 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1074 | CONFIG_DEBUG_BUGVERBOSE=y |
1031 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1075 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1032 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1076 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1033 | # CONFIG_LATENCYTOP is not set | 1077 | # CONFIG_LATENCYTOP is not set |
@@ -1045,7 +1089,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1045 | # CONFIG_SAMPLES is not set | 1089 | # CONFIG_SAMPLES is not set |
1046 | CONFIG_HAVE_ARCH_KGDB=y | 1090 | CONFIG_HAVE_ARCH_KGDB=y |
1047 | # CONFIG_SH_STANDARD_BIOS is not set | 1091 | # CONFIG_SH_STANDARD_BIOS is not set |
1048 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1049 | # CONFIG_DWARF_UNWINDER is not set | 1092 | # CONFIG_DWARF_UNWINDER is not set |
1050 | 1093 | ||
1051 | # | 1094 | # |
@@ -1054,7 +1097,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1054 | # CONFIG_KEYS is not set | 1097 | # CONFIG_KEYS is not set |
1055 | # CONFIG_SECURITY is not set | 1098 | # CONFIG_SECURITY is not set |
1056 | # CONFIG_SECURITYFS is not set | 1099 | # CONFIG_SECURITYFS is not set |
1057 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1100 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1101 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1102 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1103 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1104 | CONFIG_DEFAULT_SECURITY="" | ||
1058 | # CONFIG_CRYPTO is not set | 1105 | # CONFIG_CRYPTO is not set |
1059 | # CONFIG_BINARY_PRINTF is not set | 1106 | # CONFIG_BINARY_PRINTF is not set |
1060 | 1107 | ||
diff --git a/arch/sh/configs/landisk_defconfig b/arch/sh/configs/landisk_defconfig index c2a9a399638..2a42d4977fe 100644 --- a/arch/sh/configs/landisk_defconfig +++ b/arch/sh/configs/landisk_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:05:49 2009 | 4 | # Mon Jan 4 11:35:31 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_PCI=y | 24 | CONFIG_SYS_SUPPORTS_PCI=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -60,6 +62,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
60 | # | 62 | # |
61 | CONFIG_TREE_RCU=y | 63 | CONFIG_TREE_RCU=y |
62 | # CONFIG_TREE_PREEMPT_RCU is not set | 64 | # CONFIG_TREE_PREEMPT_RCU is not set |
65 | # CONFIG_TINY_RCU is not set | ||
63 | # CONFIG_RCU_TRACE is not set | 66 | # CONFIG_RCU_TRACE is not set |
64 | CONFIG_RCU_FANOUT=32 | 67 | CONFIG_RCU_FANOUT=32 |
65 | # CONFIG_RCU_FANOUT_EXACT is not set | 68 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -94,6 +97,7 @@ CONFIG_EVENTFD=y | |||
94 | CONFIG_SHMEM=y | 97 | CONFIG_SHMEM=y |
95 | CONFIG_AIO=y | 98 | CONFIG_AIO=y |
96 | CONFIG_HAVE_PERF_EVENTS=y | 99 | CONFIG_HAVE_PERF_EVENTS=y |
100 | CONFIG_PERF_USE_VMALLOC=y | ||
97 | 101 | ||
98 | # | 102 | # |
99 | # Kernel Performance Events And Counters | 103 | # Kernel Performance Events And Counters |
@@ -113,6 +117,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
113 | CONFIG_HAVE_KPROBES=y | 117 | CONFIG_HAVE_KPROBES=y |
114 | CONFIG_HAVE_KRETPROBES=y | 118 | CONFIG_HAVE_KRETPROBES=y |
115 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 119 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
120 | CONFIG_HAVE_DMA_ATTRS=y | ||
116 | CONFIG_HAVE_CLK=y | 121 | CONFIG_HAVE_CLK=y |
117 | CONFIG_HAVE_DMA_API_DEBUG=y | 122 | CONFIG_HAVE_DMA_API_DEBUG=y |
118 | 123 | ||
@@ -139,14 +144,41 @@ CONFIG_LBDAF=y | |||
139 | # IO Schedulers | 144 | # IO Schedulers |
140 | # | 145 | # |
141 | CONFIG_IOSCHED_NOOP=y | 146 | CONFIG_IOSCHED_NOOP=y |
142 | CONFIG_IOSCHED_AS=y | ||
143 | CONFIG_IOSCHED_DEADLINE=y | 147 | CONFIG_IOSCHED_DEADLINE=y |
144 | CONFIG_IOSCHED_CFQ=y | 148 | CONFIG_IOSCHED_CFQ=y |
145 | CONFIG_DEFAULT_AS=y | ||
146 | # CONFIG_DEFAULT_DEADLINE is not set | 149 | # CONFIG_DEFAULT_DEADLINE is not set |
147 | # CONFIG_DEFAULT_CFQ is not set | 150 | CONFIG_DEFAULT_CFQ=y |
148 | # CONFIG_DEFAULT_NOOP is not set | 151 | # CONFIG_DEFAULT_NOOP is not set |
149 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 152 | CONFIG_DEFAULT_IOSCHED="cfq" |
153 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
154 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
155 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
156 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
157 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
159 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
160 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
161 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
162 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
163 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
164 | # CONFIG_INLINE_READ_LOCK is not set | ||
165 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
166 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
167 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
168 | CONFIG_INLINE_READ_UNLOCK=y | ||
169 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
170 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
171 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
172 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
173 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
174 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
175 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
177 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
178 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
179 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
180 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
181 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
150 | # CONFIG_FREEZER is not set | 182 | # CONFIG_FREEZER is not set |
151 | 183 | ||
152 | # | 184 | # |
@@ -222,8 +254,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
222 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 254 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
223 | CONFIG_ZONE_DMA_FLAG=0 | 255 | CONFIG_ZONE_DMA_FLAG=0 |
224 | CONFIG_NR_QUICK=2 | 256 | CONFIG_NR_QUICK=2 |
225 | CONFIG_HAVE_MLOCK=y | ||
226 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
227 | # CONFIG_KSM is not set | 257 | # CONFIG_KSM is not set |
228 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 258 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
229 | 259 | ||
@@ -311,7 +341,6 @@ CONFIG_GUSA=y | |||
311 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 341 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
312 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 342 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
313 | CONFIG_ENTRY_OFFSET=0x00001000 | 343 | CONFIG_ENTRY_OFFSET=0x00001000 |
314 | # CONFIG_UBC_WAKEUP is not set | ||
315 | # CONFIG_CMDLINE_OVERWRITE is not set | 344 | # CONFIG_CMDLINE_OVERWRITE is not set |
316 | # CONFIG_CMDLINE_EXTEND is not set | 345 | # CONFIG_CMDLINE_EXTEND is not set |
317 | 346 | ||
@@ -319,14 +348,12 @@ CONFIG_ENTRY_OFFSET=0x00001000 | |||
319 | # Bus options | 348 | # Bus options |
320 | # | 349 | # |
321 | CONFIG_PCI=y | 350 | CONFIG_PCI=y |
322 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
323 | # CONFIG_PCIEPORTBUS is not set | 351 | # CONFIG_PCIEPORTBUS is not set |
324 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 352 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
325 | CONFIG_PCI_LEGACY=y | 353 | CONFIG_PCI_LEGACY=y |
326 | # CONFIG_PCI_STUB is not set | 354 | # CONFIG_PCI_STUB is not set |
327 | # CONFIG_PCI_IOV is not set | 355 | # CONFIG_PCI_IOV is not set |
328 | CONFIG_PCCARD=y | 356 | CONFIG_PCCARD=y |
329 | # CONFIG_PCMCIA_DEBUG is not set | ||
330 | CONFIG_PCMCIA=y | 357 | CONFIG_PCMCIA=y |
331 | CONFIG_PCMCIA_LOAD_CIS=y | 358 | CONFIG_PCMCIA_LOAD_CIS=y |
332 | CONFIG_PCMCIA_IOCTL=y | 359 | CONFIG_PCMCIA_IOCTL=y |
@@ -461,9 +488,6 @@ CONFIG_ATALK=m | |||
461 | # CONFIG_AF_RXRPC is not set | 488 | # CONFIG_AF_RXRPC is not set |
462 | CONFIG_WIRELESS=y | 489 | CONFIG_WIRELESS=y |
463 | # CONFIG_CFG80211 is not set | 490 | # CONFIG_CFG80211 is not set |
464 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
465 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
466 | # CONFIG_WIRELESS_EXT is not set | ||
467 | # CONFIG_LIB80211 is not set | 491 | # CONFIG_LIB80211 is not set |
468 | 492 | ||
469 | # | 493 | # |
@@ -498,6 +522,10 @@ CONFIG_BLK_DEV=y | |||
498 | # CONFIG_BLK_DEV_COW_COMMON is not set | 522 | # CONFIG_BLK_DEV_COW_COMMON is not set |
499 | CONFIG_BLK_DEV_LOOP=y | 523 | CONFIG_BLK_DEV_LOOP=y |
500 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 524 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
525 | |||
526 | # | ||
527 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
528 | # | ||
501 | # CONFIG_BLK_DEV_NBD is not set | 529 | # CONFIG_BLK_DEV_NBD is not set |
502 | # CONFIG_BLK_DEV_SX8 is not set | 530 | # CONFIG_BLK_DEV_SX8 is not set |
503 | # CONFIG_BLK_DEV_UB is not set | 531 | # CONFIG_BLK_DEV_UB is not set |
@@ -618,8 +646,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
618 | # CONFIG_ISCSI_TCP is not set | 646 | # CONFIG_ISCSI_TCP is not set |
619 | # CONFIG_SCSI_CXGB3_ISCSI is not set | 647 | # CONFIG_SCSI_CXGB3_ISCSI is not set |
620 | # CONFIG_SCSI_BNX2_ISCSI is not set | 648 | # CONFIG_SCSI_BNX2_ISCSI is not set |
649 | # CONFIG_BE2ISCSI is not set | ||
621 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 650 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
651 | # CONFIG_SCSI_HPSA is not set | ||
622 | # CONFIG_SCSI_3W_9XXX is not set | 652 | # CONFIG_SCSI_3W_9XXX is not set |
653 | # CONFIG_SCSI_3W_SAS is not set | ||
623 | # CONFIG_SCSI_ACARD is not set | 654 | # CONFIG_SCSI_ACARD is not set |
624 | # CONFIG_SCSI_AACRAID is not set | 655 | # CONFIG_SCSI_AACRAID is not set |
625 | # CONFIG_SCSI_AIC7XXX is not set | 656 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -652,7 +683,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
652 | # CONFIG_SCSI_NSP32 is not set | 683 | # CONFIG_SCSI_NSP32 is not set |
653 | # CONFIG_SCSI_DEBUG is not set | 684 | # CONFIG_SCSI_DEBUG is not set |
654 | # CONFIG_SCSI_PMCRAID is not set | 685 | # CONFIG_SCSI_PMCRAID is not set |
686 | # CONFIG_SCSI_PM8001 is not set | ||
655 | # CONFIG_SCSI_SRP is not set | 687 | # CONFIG_SCSI_SRP is not set |
688 | # CONFIG_SCSI_BFA_FC is not set | ||
656 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | 689 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set |
657 | # CONFIG_SCSI_DH is not set | 690 | # CONFIG_SCSI_DH is not set |
658 | # CONFIG_SCSI_OSD_INITIATOR is not set | 691 | # CONFIG_SCSI_OSD_INITIATOR is not set |
@@ -733,6 +766,7 @@ CONFIG_8139CP=y | |||
733 | # CONFIG_SUNDANCE is not set | 766 | # CONFIG_SUNDANCE is not set |
734 | # CONFIG_TLAN is not set | 767 | # CONFIG_TLAN is not set |
735 | # CONFIG_KS8842 is not set | 768 | # CONFIG_KS8842 is not set |
769 | # CONFIG_KS8851_MLL is not set | ||
736 | # CONFIG_VIA_RHINE is not set | 770 | # CONFIG_VIA_RHINE is not set |
737 | # CONFIG_SC92031 is not set | 771 | # CONFIG_SC92031 is not set |
738 | # CONFIG_ATL2 is not set | 772 | # CONFIG_ATL2 is not set |
@@ -781,8 +815,13 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
781 | # CONFIG_BE2NET is not set | 815 | # CONFIG_BE2NET is not set |
782 | # CONFIG_TR is not set | 816 | # CONFIG_TR is not set |
783 | CONFIG_WLAN=y | 817 | CONFIG_WLAN=y |
784 | # CONFIG_WLAN_PRE80211 is not set | 818 | # CONFIG_PCMCIA_RAYCS is not set |
785 | # CONFIG_WLAN_80211 is not set | 819 | # CONFIG_ATMEL is not set |
820 | # CONFIG_AIRO_CS is not set | ||
821 | # CONFIG_PCMCIA_WL3501 is not set | ||
822 | # CONFIG_PRISM54 is not set | ||
823 | # CONFIG_USB_ZD1201 is not set | ||
824 | # CONFIG_HOSTAP is not set | ||
786 | 825 | ||
787 | # | 826 | # |
788 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 827 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -806,6 +845,7 @@ CONFIG_USB_RTL8150=m | |||
806 | # CONFIG_NETCONSOLE is not set | 845 | # CONFIG_NETCONSOLE is not set |
807 | # CONFIG_NETPOLL is not set | 846 | # CONFIG_NETPOLL is not set |
808 | # CONFIG_NET_POLL_CONTROLLER is not set | 847 | # CONFIG_NET_POLL_CONTROLLER is not set |
848 | # CONFIG_VMXNET3 is not set | ||
809 | # CONFIG_ISDN is not set | 849 | # CONFIG_ISDN is not set |
810 | # CONFIG_PHONE is not set | 850 | # CONFIG_PHONE is not set |
811 | 851 | ||
@@ -815,6 +855,7 @@ CONFIG_USB_RTL8150=m | |||
815 | CONFIG_INPUT=y | 855 | CONFIG_INPUT=y |
816 | CONFIG_INPUT_FF_MEMLESS=m | 856 | CONFIG_INPUT_FF_MEMLESS=m |
817 | # CONFIG_INPUT_POLLDEV is not set | 857 | # CONFIG_INPUT_POLLDEV is not set |
858 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
818 | 859 | ||
819 | # | 860 | # |
820 | # Userland interfaces | 861 | # Userland interfaces |
@@ -933,6 +974,7 @@ CONFIG_SSB_POSSIBLE=y | |||
933 | # | 974 | # |
934 | # CONFIG_MFD_CORE is not set | 975 | # CONFIG_MFD_CORE is not set |
935 | # CONFIG_MFD_SM501 is not set | 976 | # CONFIG_MFD_SM501 is not set |
977 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
936 | # CONFIG_HTC_PASIC3 is not set | 978 | # CONFIG_HTC_PASIC3 is not set |
937 | # CONFIG_MFD_TMIO is not set | 979 | # CONFIG_MFD_TMIO is not set |
938 | # CONFIG_REGULATOR is not set | 980 | # CONFIG_REGULATOR is not set |
@@ -1371,10 +1413,11 @@ CONFIG_FRAME_WARN=1024 | |||
1371 | # CONFIG_DEBUG_FS is not set | 1413 | # CONFIG_DEBUG_FS is not set |
1372 | # CONFIG_HEADERS_CHECK is not set | 1414 | # CONFIG_HEADERS_CHECK is not set |
1373 | # CONFIG_DEBUG_KERNEL is not set | 1415 | # CONFIG_DEBUG_KERNEL is not set |
1374 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1416 | CONFIG_DEBUG_BUGVERBOSE=y |
1375 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1417 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1376 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1418 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1377 | # CONFIG_LATENCYTOP is not set | 1419 | # CONFIG_LATENCYTOP is not set |
1420 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1378 | CONFIG_HAVE_FUNCTION_TRACER=y | 1421 | CONFIG_HAVE_FUNCTION_TRACER=y |
1379 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1422 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
1380 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 1423 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -1387,8 +1430,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1387 | # CONFIG_SAMPLES is not set | 1430 | # CONFIG_SAMPLES is not set |
1388 | CONFIG_HAVE_ARCH_KGDB=y | 1431 | CONFIG_HAVE_ARCH_KGDB=y |
1389 | CONFIG_SH_STANDARD_BIOS=y | 1432 | CONFIG_SH_STANDARD_BIOS=y |
1390 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1391 | # CONFIG_EARLY_PRINTK is not set | ||
1392 | # CONFIG_DWARF_UNWINDER is not set | 1433 | # CONFIG_DWARF_UNWINDER is not set |
1393 | 1434 | ||
1394 | # | 1435 | # |
@@ -1397,7 +1438,11 @@ CONFIG_SH_STANDARD_BIOS=y | |||
1397 | # CONFIG_KEYS is not set | 1438 | # CONFIG_KEYS is not set |
1398 | # CONFIG_SECURITY is not set | 1439 | # CONFIG_SECURITY is not set |
1399 | # CONFIG_SECURITYFS is not set | 1440 | # CONFIG_SECURITYFS is not set |
1400 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1441 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1442 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1443 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1444 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1445 | CONFIG_DEFAULT_SECURITY="" | ||
1401 | CONFIG_CRYPTO=y | 1446 | CONFIG_CRYPTO=y |
1402 | 1447 | ||
1403 | # | 1448 | # |
diff --git a/arch/sh/configs/lboxre2_defconfig b/arch/sh/configs/lboxre2_defconfig index ec0c0b432c7..f2f1f8c73b2 100644 --- a/arch/sh/configs/lboxre2_defconfig +++ b/arch/sh/configs/lboxre2_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:09:59 2009 | 4 | # Mon Jan 4 11:37:01 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_PCI=y | 24 | CONFIG_SYS_SUPPORTS_PCI=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -60,6 +62,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
60 | # | 62 | # |
61 | CONFIG_TREE_RCU=y | 63 | CONFIG_TREE_RCU=y |
62 | # CONFIG_TREE_PREEMPT_RCU is not set | 64 | # CONFIG_TREE_PREEMPT_RCU is not set |
65 | # CONFIG_TINY_RCU is not set | ||
63 | # CONFIG_RCU_TRACE is not set | 66 | # CONFIG_RCU_TRACE is not set |
64 | CONFIG_RCU_FANOUT=32 | 67 | CONFIG_RCU_FANOUT=32 |
65 | # CONFIG_RCU_FANOUT_EXACT is not set | 68 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -94,6 +97,7 @@ CONFIG_EVENTFD=y | |||
94 | CONFIG_SHMEM=y | 97 | CONFIG_SHMEM=y |
95 | CONFIG_AIO=y | 98 | CONFIG_AIO=y |
96 | CONFIG_HAVE_PERF_EVENTS=y | 99 | CONFIG_HAVE_PERF_EVENTS=y |
100 | CONFIG_PERF_USE_VMALLOC=y | ||
97 | 101 | ||
98 | # | 102 | # |
99 | # Kernel Performance Events And Counters | 103 | # Kernel Performance Events And Counters |
@@ -113,6 +117,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
113 | CONFIG_HAVE_KPROBES=y | 117 | CONFIG_HAVE_KPROBES=y |
114 | CONFIG_HAVE_KRETPROBES=y | 118 | CONFIG_HAVE_KRETPROBES=y |
115 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 119 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
120 | CONFIG_HAVE_DMA_ATTRS=y | ||
116 | CONFIG_HAVE_CLK=y | 121 | CONFIG_HAVE_CLK=y |
117 | CONFIG_HAVE_DMA_API_DEBUG=y | 122 | CONFIG_HAVE_DMA_API_DEBUG=y |
118 | 123 | ||
@@ -139,14 +144,41 @@ CONFIG_LBDAF=y | |||
139 | # IO Schedulers | 144 | # IO Schedulers |
140 | # | 145 | # |
141 | CONFIG_IOSCHED_NOOP=y | 146 | CONFIG_IOSCHED_NOOP=y |
142 | CONFIG_IOSCHED_AS=y | ||
143 | CONFIG_IOSCHED_DEADLINE=y | 147 | CONFIG_IOSCHED_DEADLINE=y |
144 | CONFIG_IOSCHED_CFQ=y | 148 | CONFIG_IOSCHED_CFQ=y |
145 | CONFIG_DEFAULT_AS=y | ||
146 | # CONFIG_DEFAULT_DEADLINE is not set | 149 | # CONFIG_DEFAULT_DEADLINE is not set |
147 | # CONFIG_DEFAULT_CFQ is not set | 150 | CONFIG_DEFAULT_CFQ=y |
148 | # CONFIG_DEFAULT_NOOP is not set | 151 | # CONFIG_DEFAULT_NOOP is not set |
149 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 152 | CONFIG_DEFAULT_IOSCHED="cfq" |
153 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
154 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
155 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
156 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
157 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
159 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
160 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
161 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
162 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
163 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
164 | # CONFIG_INLINE_READ_LOCK is not set | ||
165 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
166 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
167 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
168 | CONFIG_INLINE_READ_UNLOCK=y | ||
169 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
170 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
171 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
172 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
173 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
174 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
175 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
177 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
178 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
179 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
180 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
181 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
150 | # CONFIG_FREEZER is not set | 182 | # CONFIG_FREEZER is not set |
151 | 183 | ||
152 | # | 184 | # |
@@ -222,8 +254,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
222 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 254 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
223 | CONFIG_ZONE_DMA_FLAG=0 | 255 | CONFIG_ZONE_DMA_FLAG=0 |
224 | CONFIG_NR_QUICK=2 | 256 | CONFIG_NR_QUICK=2 |
225 | CONFIG_HAVE_MLOCK=y | ||
226 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
227 | # CONFIG_KSM is not set | 257 | # CONFIG_KSM is not set |
228 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 258 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
229 | 259 | ||
@@ -311,7 +341,6 @@ CONFIG_GUSA=y | |||
311 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 341 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
312 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 342 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
313 | CONFIG_ENTRY_OFFSET=0x00001000 | 343 | CONFIG_ENTRY_OFFSET=0x00001000 |
314 | # CONFIG_UBC_WAKEUP is not set | ||
315 | CONFIG_CMDLINE_OVERWRITE=y | 344 | CONFIG_CMDLINE_OVERWRITE=y |
316 | # CONFIG_CMDLINE_EXTEND is not set | 345 | # CONFIG_CMDLINE_EXTEND is not set |
317 | CONFIG_CMDLINE="console=ttySC1,115200 root=/dev/sda1" | 346 | CONFIG_CMDLINE="console=ttySC1,115200 root=/dev/sda1" |
@@ -320,14 +349,12 @@ CONFIG_CMDLINE="console=ttySC1,115200 root=/dev/sda1" | |||
320 | # Bus options | 349 | # Bus options |
321 | # | 350 | # |
322 | CONFIG_PCI=y | 351 | CONFIG_PCI=y |
323 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
324 | # CONFIG_PCIEPORTBUS is not set | 352 | # CONFIG_PCIEPORTBUS is not set |
325 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 353 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
326 | CONFIG_PCI_LEGACY=y | 354 | CONFIG_PCI_LEGACY=y |
327 | # CONFIG_PCI_STUB is not set | 355 | # CONFIG_PCI_STUB is not set |
328 | # CONFIG_PCI_IOV is not set | 356 | # CONFIG_PCI_IOV is not set |
329 | CONFIG_PCCARD=y | 357 | CONFIG_PCCARD=y |
330 | CONFIG_PCMCIA_DEBUG=y | ||
331 | CONFIG_PCMCIA=y | 358 | CONFIG_PCMCIA=y |
332 | CONFIG_PCMCIA_LOAD_CIS=y | 359 | CONFIG_PCMCIA_LOAD_CIS=y |
333 | CONFIG_PCMCIA_IOCTL=y | 360 | CONFIG_PCMCIA_IOCTL=y |
@@ -459,9 +486,6 @@ CONFIG_NETFILTER_ADVANCED=y | |||
459 | # CONFIG_AF_RXRPC is not set | 486 | # CONFIG_AF_RXRPC is not set |
460 | CONFIG_WIRELESS=y | 487 | CONFIG_WIRELESS=y |
461 | # CONFIG_CFG80211 is not set | 488 | # CONFIG_CFG80211 is not set |
462 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
463 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
464 | # CONFIG_WIRELESS_EXT is not set | ||
465 | # CONFIG_LIB80211 is not set | 489 | # CONFIG_LIB80211 is not set |
466 | 490 | ||
467 | # | 491 | # |
@@ -496,6 +520,10 @@ CONFIG_BLK_DEV=y | |||
496 | # CONFIG_BLK_DEV_COW_COMMON is not set | 520 | # CONFIG_BLK_DEV_COW_COMMON is not set |
497 | CONFIG_BLK_DEV_LOOP=y | 521 | CONFIG_BLK_DEV_LOOP=y |
498 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 522 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
523 | |||
524 | # | ||
525 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
526 | # | ||
499 | # CONFIG_BLK_DEV_NBD is not set | 527 | # CONFIG_BLK_DEV_NBD is not set |
500 | # CONFIG_BLK_DEV_SX8 is not set | 528 | # CONFIG_BLK_DEV_SX8 is not set |
501 | CONFIG_BLK_DEV_RAM=y | 529 | CONFIG_BLK_DEV_RAM=y |
@@ -558,8 +586,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
558 | # CONFIG_ISCSI_TCP is not set | 586 | # CONFIG_ISCSI_TCP is not set |
559 | # CONFIG_SCSI_CXGB3_ISCSI is not set | 587 | # CONFIG_SCSI_CXGB3_ISCSI is not set |
560 | # CONFIG_SCSI_BNX2_ISCSI is not set | 588 | # CONFIG_SCSI_BNX2_ISCSI is not set |
589 | # CONFIG_BE2ISCSI is not set | ||
561 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 590 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
591 | # CONFIG_SCSI_HPSA is not set | ||
562 | # CONFIG_SCSI_3W_9XXX is not set | 592 | # CONFIG_SCSI_3W_9XXX is not set |
593 | # CONFIG_SCSI_3W_SAS is not set | ||
563 | # CONFIG_SCSI_ACARD is not set | 594 | # CONFIG_SCSI_ACARD is not set |
564 | # CONFIG_SCSI_AACRAID is not set | 595 | # CONFIG_SCSI_AACRAID is not set |
565 | # CONFIG_SCSI_AIC7XXX is not set | 596 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -593,7 +624,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
593 | # CONFIG_SCSI_NSP32 is not set | 624 | # CONFIG_SCSI_NSP32 is not set |
594 | # CONFIG_SCSI_DEBUG is not set | 625 | # CONFIG_SCSI_DEBUG is not set |
595 | # CONFIG_SCSI_PMCRAID is not set | 626 | # CONFIG_SCSI_PMCRAID is not set |
627 | # CONFIG_SCSI_PM8001 is not set | ||
596 | # CONFIG_SCSI_SRP is not set | 628 | # CONFIG_SCSI_SRP is not set |
629 | # CONFIG_SCSI_BFA_FC is not set | ||
597 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | 630 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set |
598 | # CONFIG_SCSI_DH is not set | 631 | # CONFIG_SCSI_DH is not set |
599 | # CONFIG_SCSI_OSD_INITIATOR is not set | 632 | # CONFIG_SCSI_OSD_INITIATOR is not set |
@@ -648,15 +681,16 @@ CONFIG_ATA_SFF=y | |||
648 | # CONFIG_PATA_OPTI is not set | 681 | # CONFIG_PATA_OPTI is not set |
649 | # CONFIG_PATA_OPTIDMA is not set | 682 | # CONFIG_PATA_OPTIDMA is not set |
650 | # CONFIG_PATA_PCMCIA is not set | 683 | # CONFIG_PATA_PCMCIA is not set |
684 | # CONFIG_PATA_PDC2027X is not set | ||
651 | # CONFIG_PATA_PDC_OLD is not set | 685 | # CONFIG_PATA_PDC_OLD is not set |
652 | # CONFIG_PATA_RADISYS is not set | 686 | # CONFIG_PATA_RADISYS is not set |
653 | # CONFIG_PATA_RDC is not set | 687 | # CONFIG_PATA_RDC is not set |
654 | # CONFIG_PATA_RZ1000 is not set | 688 | # CONFIG_PATA_RZ1000 is not set |
655 | # CONFIG_PATA_SC1200 is not set | 689 | # CONFIG_PATA_SC1200 is not set |
656 | # CONFIG_PATA_SERVERWORKS is not set | 690 | # CONFIG_PATA_SERVERWORKS is not set |
657 | # CONFIG_PATA_PDC2027X is not set | ||
658 | # CONFIG_PATA_SIL680 is not set | 691 | # CONFIG_PATA_SIL680 is not set |
659 | # CONFIG_PATA_SIS is not set | 692 | # CONFIG_PATA_SIS is not set |
693 | # CONFIG_PATA_TOSHIBA is not set | ||
660 | # CONFIG_PATA_VIA is not set | 694 | # CONFIG_PATA_VIA is not set |
661 | # CONFIG_PATA_WINBOND is not set | 695 | # CONFIG_PATA_WINBOND is not set |
662 | CONFIG_PATA_PLATFORM=y | 696 | CONFIG_PATA_PLATFORM=y |
@@ -732,6 +766,7 @@ CONFIG_8139TOO_TUNE_TWISTER=y | |||
732 | # CONFIG_SUNDANCE is not set | 766 | # CONFIG_SUNDANCE is not set |
733 | # CONFIG_TLAN is not set | 767 | # CONFIG_TLAN is not set |
734 | # CONFIG_KS8842 is not set | 768 | # CONFIG_KS8842 is not set |
769 | # CONFIG_KS8851_MLL is not set | ||
735 | # CONFIG_VIA_RHINE is not set | 770 | # CONFIG_VIA_RHINE is not set |
736 | # CONFIG_SC92031 is not set | 771 | # CONFIG_SC92031 is not set |
737 | # CONFIG_ATL2 is not set | 772 | # CONFIG_ATL2 is not set |
@@ -780,8 +815,12 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
780 | # CONFIG_BE2NET is not set | 815 | # CONFIG_BE2NET is not set |
781 | # CONFIG_TR is not set | 816 | # CONFIG_TR is not set |
782 | CONFIG_WLAN=y | 817 | CONFIG_WLAN=y |
783 | # CONFIG_WLAN_PRE80211 is not set | 818 | # CONFIG_PCMCIA_RAYCS is not set |
784 | # CONFIG_WLAN_80211 is not set | 819 | # CONFIG_ATMEL is not set |
820 | # CONFIG_AIRO_CS is not set | ||
821 | # CONFIG_PCMCIA_WL3501 is not set | ||
822 | # CONFIG_PRISM54 is not set | ||
823 | # CONFIG_HOSTAP is not set | ||
785 | 824 | ||
786 | # | 825 | # |
787 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 826 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -804,6 +843,7 @@ CONFIG_PCMCIA_PCNET=y | |||
804 | # CONFIG_NETCONSOLE is not set | 843 | # CONFIG_NETCONSOLE is not set |
805 | # CONFIG_NETPOLL is not set | 844 | # CONFIG_NETPOLL is not set |
806 | # CONFIG_NET_POLL_CONTROLLER is not set | 845 | # CONFIG_NET_POLL_CONTROLLER is not set |
846 | # CONFIG_VMXNET3 is not set | ||
807 | # CONFIG_ISDN is not set | 847 | # CONFIG_ISDN is not set |
808 | # CONFIG_PHONE is not set | 848 | # CONFIG_PHONE is not set |
809 | 849 | ||
@@ -813,6 +853,7 @@ CONFIG_PCMCIA_PCNET=y | |||
813 | CONFIG_INPUT=y | 853 | CONFIG_INPUT=y |
814 | # CONFIG_INPUT_FF_MEMLESS is not set | 854 | # CONFIG_INPUT_FF_MEMLESS is not set |
815 | # CONFIG_INPUT_POLLDEV is not set | 855 | # CONFIG_INPUT_POLLDEV is not set |
856 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
816 | 857 | ||
817 | # | 858 | # |
818 | # Userland interfaces | 859 | # Userland interfaces |
@@ -931,6 +972,7 @@ CONFIG_SSB_POSSIBLE=y | |||
931 | # | 972 | # |
932 | # CONFIG_MFD_CORE is not set | 973 | # CONFIG_MFD_CORE is not set |
933 | # CONFIG_MFD_SM501 is not set | 974 | # CONFIG_MFD_SM501 is not set |
975 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
934 | # CONFIG_HTC_PASIC3 is not set | 976 | # CONFIG_HTC_PASIC3 is not set |
935 | # CONFIG_MFD_TMIO is not set | 977 | # CONFIG_MFD_TMIO is not set |
936 | # CONFIG_REGULATOR is not set | 978 | # CONFIG_REGULATOR is not set |
@@ -1020,7 +1062,9 @@ CONFIG_RTC_INTF_DEV=y | |||
1020 | # CONFIG_RTC_DRV_M48T86 is not set | 1062 | # CONFIG_RTC_DRV_M48T86 is not set |
1021 | # CONFIG_RTC_DRV_M48T35 is not set | 1063 | # CONFIG_RTC_DRV_M48T35 is not set |
1022 | # CONFIG_RTC_DRV_M48T59 is not set | 1064 | # CONFIG_RTC_DRV_M48T59 is not set |
1065 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1023 | # CONFIG_RTC_DRV_BQ4802 is not set | 1066 | # CONFIG_RTC_DRV_BQ4802 is not set |
1067 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1024 | # CONFIG_RTC_DRV_V3020 is not set | 1068 | # CONFIG_RTC_DRV_V3020 is not set |
1025 | 1069 | ||
1026 | # | 1070 | # |
@@ -1195,10 +1239,11 @@ CONFIG_FRAME_WARN=1024 | |||
1195 | # CONFIG_DEBUG_FS is not set | 1239 | # CONFIG_DEBUG_FS is not set |
1196 | # CONFIG_HEADERS_CHECK is not set | 1240 | # CONFIG_HEADERS_CHECK is not set |
1197 | # CONFIG_DEBUG_KERNEL is not set | 1241 | # CONFIG_DEBUG_KERNEL is not set |
1198 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1242 | CONFIG_DEBUG_BUGVERBOSE=y |
1199 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1243 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1200 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1244 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1201 | # CONFIG_LATENCYTOP is not set | 1245 | # CONFIG_LATENCYTOP is not set |
1246 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1202 | CONFIG_HAVE_FUNCTION_TRACER=y | 1247 | CONFIG_HAVE_FUNCTION_TRACER=y |
1203 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1248 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
1204 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 1249 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -1211,8 +1256,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1211 | # CONFIG_SAMPLES is not set | 1256 | # CONFIG_SAMPLES is not set |
1212 | CONFIG_HAVE_ARCH_KGDB=y | 1257 | CONFIG_HAVE_ARCH_KGDB=y |
1213 | CONFIG_SH_STANDARD_BIOS=y | 1258 | CONFIG_SH_STANDARD_BIOS=y |
1214 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1215 | # CONFIG_EARLY_PRINTK is not set | ||
1216 | # CONFIG_DWARF_UNWINDER is not set | 1259 | # CONFIG_DWARF_UNWINDER is not set |
1217 | 1260 | ||
1218 | # | 1261 | # |
@@ -1221,7 +1264,11 @@ CONFIG_SH_STANDARD_BIOS=y | |||
1221 | # CONFIG_KEYS is not set | 1264 | # CONFIG_KEYS is not set |
1222 | # CONFIG_SECURITY is not set | 1265 | # CONFIG_SECURITY is not set |
1223 | # CONFIG_SECURITYFS is not set | 1266 | # CONFIG_SECURITYFS is not set |
1224 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1267 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1268 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1269 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1270 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1271 | CONFIG_DEFAULT_SECURITY="" | ||
1225 | CONFIG_CRYPTO=y | 1272 | CONFIG_CRYPTO=y |
1226 | 1273 | ||
1227 | # | 1274 | # |
diff --git a/arch/sh/configs/magicpanelr2_defconfig b/arch/sh/configs/magicpanelr2_defconfig index 79091e3e32c..a7a16ce357a 100644 --- a/arch/sh/configs/magicpanelr2_defconfig +++ b/arch/sh/configs/magicpanelr2_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:10:49 2009 | 4 | # Mon Jan 4 11:37:42 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -30,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
35 | 36 | ||
@@ -63,6 +64,7 @@ CONFIG_AUDIT=y | |||
63 | # | 64 | # |
64 | CONFIG_TREE_RCU=y | 65 | CONFIG_TREE_RCU=y |
65 | # CONFIG_TREE_PREEMPT_RCU is not set | 66 | # CONFIG_TREE_PREEMPT_RCU is not set |
67 | # CONFIG_TINY_RCU is not set | ||
66 | # CONFIG_RCU_TRACE is not set | 68 | # CONFIG_RCU_TRACE is not set |
67 | CONFIG_RCU_FANOUT=32 | 69 | CONFIG_RCU_FANOUT=32 |
68 | # CONFIG_RCU_FANOUT_EXACT is not set | 70 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -102,6 +104,7 @@ CONFIG_EVENTFD=y | |||
102 | CONFIG_SHMEM=y | 104 | CONFIG_SHMEM=y |
103 | CONFIG_AIO=y | 105 | CONFIG_AIO=y |
104 | CONFIG_HAVE_PERF_EVENTS=y | 106 | CONFIG_HAVE_PERF_EVENTS=y |
107 | CONFIG_PERF_USE_VMALLOC=y | ||
105 | 108 | ||
106 | # | 109 | # |
107 | # Kernel Performance Events And Counters | 110 | # Kernel Performance Events And Counters |
@@ -120,6 +123,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
120 | CONFIG_HAVE_KPROBES=y | 123 | CONFIG_HAVE_KPROBES=y |
121 | CONFIG_HAVE_KRETPROBES=y | 124 | CONFIG_HAVE_KRETPROBES=y |
122 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 125 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
126 | CONFIG_HAVE_DMA_ATTRS=y | ||
123 | CONFIG_HAVE_CLK=y | 127 | CONFIG_HAVE_CLK=y |
124 | CONFIG_HAVE_DMA_API_DEBUG=y | 128 | CONFIG_HAVE_DMA_API_DEBUG=y |
125 | 129 | ||
@@ -146,14 +150,41 @@ CONFIG_LBDAF=y | |||
146 | # IO Schedulers | 150 | # IO Schedulers |
147 | # | 151 | # |
148 | CONFIG_IOSCHED_NOOP=y | 152 | CONFIG_IOSCHED_NOOP=y |
149 | # CONFIG_IOSCHED_AS is not set | ||
150 | # CONFIG_IOSCHED_DEADLINE is not set | 153 | # CONFIG_IOSCHED_DEADLINE is not set |
151 | # CONFIG_IOSCHED_CFQ is not set | 154 | # CONFIG_IOSCHED_CFQ is not set |
152 | # CONFIG_DEFAULT_AS is not set | ||
153 | # CONFIG_DEFAULT_DEADLINE is not set | 155 | # CONFIG_DEFAULT_DEADLINE is not set |
154 | # CONFIG_DEFAULT_CFQ is not set | 156 | # CONFIG_DEFAULT_CFQ is not set |
155 | CONFIG_DEFAULT_NOOP=y | 157 | CONFIG_DEFAULT_NOOP=y |
156 | CONFIG_DEFAULT_IOSCHED="noop" | 158 | CONFIG_DEFAULT_IOSCHED="noop" |
159 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
160 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
162 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
163 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
164 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
165 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
166 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
167 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
168 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
169 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
170 | # CONFIG_INLINE_READ_LOCK is not set | ||
171 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
172 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
173 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
174 | CONFIG_INLINE_READ_UNLOCK=y | ||
175 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
176 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
177 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
178 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
180 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
181 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
182 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
183 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
184 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
185 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
186 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
187 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
157 | # CONFIG_FREEZER is not set | 188 | # CONFIG_FREEZER is not set |
158 | 189 | ||
159 | # | 190 | # |
@@ -229,8 +260,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
229 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 260 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
230 | CONFIG_ZONE_DMA_FLAG=0 | 261 | CONFIG_ZONE_DMA_FLAG=0 |
231 | CONFIG_NR_QUICK=2 | 262 | CONFIG_NR_QUICK=2 |
232 | CONFIG_HAVE_MLOCK=y | ||
233 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
234 | # CONFIG_KSM is not set | 263 | # CONFIG_KSM is not set |
235 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 264 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
236 | 265 | ||
@@ -283,8 +312,8 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | |||
283 | # | 312 | # |
284 | # DMA support | 313 | # DMA support |
285 | # | 314 | # |
286 | CONFIG_SH_DMA_API=y | ||
287 | CONFIG_SH_DMA=y | 315 | CONFIG_SH_DMA=y |
316 | CONFIG_SH_DMA_API=y | ||
288 | CONFIG_NR_ONCHIP_DMA_CHANNELS=6 | 317 | CONFIG_NR_ONCHIP_DMA_CHANNELS=6 |
289 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 318 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
290 | 319 | ||
@@ -416,9 +445,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
416 | # CONFIG_AF_RXRPC is not set | 445 | # CONFIG_AF_RXRPC is not set |
417 | CONFIG_WIRELESS=y | 446 | CONFIG_WIRELESS=y |
418 | # CONFIG_CFG80211 is not set | 447 | # CONFIG_CFG80211 is not set |
419 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
420 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
421 | # CONFIG_WIRELESS_EXT is not set | ||
422 | # CONFIG_LIB80211 is not set | 448 | # CONFIG_LIB80211 is not set |
423 | 449 | ||
424 | # | 450 | # |
@@ -534,6 +560,10 @@ CONFIG_MTD_PHYSMAP=y | |||
534 | CONFIG_BLK_DEV=y | 560 | CONFIG_BLK_DEV=y |
535 | # CONFIG_BLK_DEV_COW_COMMON is not set | 561 | # CONFIG_BLK_DEV_COW_COMMON is not set |
536 | # CONFIG_BLK_DEV_LOOP is not set | 562 | # CONFIG_BLK_DEV_LOOP is not set |
563 | |||
564 | # | ||
565 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
566 | # | ||
537 | # CONFIG_BLK_DEV_NBD is not set | 567 | # CONFIG_BLK_DEV_NBD is not set |
538 | CONFIG_BLK_DEV_RAM=y | 568 | CONFIG_BLK_DEV_RAM=y |
539 | CONFIG_BLK_DEV_RAM_COUNT=16 | 569 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -607,11 +637,11 @@ CONFIG_SMSC911X=y | |||
607 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 637 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
608 | # CONFIG_B44 is not set | 638 | # CONFIG_B44 is not set |
609 | # CONFIG_KS8842 is not set | 639 | # CONFIG_KS8842 is not set |
640 | # CONFIG_KS8851_MLL is not set | ||
610 | # CONFIG_NETDEV_1000 is not set | 641 | # CONFIG_NETDEV_1000 is not set |
611 | # CONFIG_NETDEV_10000 is not set | 642 | # CONFIG_NETDEV_10000 is not set |
612 | CONFIG_WLAN=y | 643 | CONFIG_WLAN=y |
613 | # CONFIG_WLAN_PRE80211 is not set | 644 | # CONFIG_HOSTAP is not set |
614 | # CONFIG_WLAN_80211 is not set | ||
615 | 645 | ||
616 | # | 646 | # |
617 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 647 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -631,6 +661,7 @@ CONFIG_WLAN=y | |||
631 | CONFIG_INPUT=y | 661 | CONFIG_INPUT=y |
632 | # CONFIG_INPUT_FF_MEMLESS is not set | 662 | # CONFIG_INPUT_FF_MEMLESS is not set |
633 | # CONFIG_INPUT_POLLDEV is not set | 663 | # CONFIG_INPUT_POLLDEV is not set |
664 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
634 | 665 | ||
635 | # | 666 | # |
636 | # Userland interfaces | 667 | # Userland interfaces |
@@ -675,6 +706,7 @@ CONFIG_SERIO=y | |||
675 | CONFIG_SERIO_SERPORT=y | 706 | CONFIG_SERIO_SERPORT=y |
676 | CONFIG_SERIO_LIBPS2=y | 707 | CONFIG_SERIO_LIBPS2=y |
677 | # CONFIG_SERIO_RAW is not set | 708 | # CONFIG_SERIO_RAW is not set |
709 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
678 | # CONFIG_GAMEPORT is not set | 710 | # CONFIG_GAMEPORT is not set |
679 | 711 | ||
680 | # | 712 | # |
@@ -766,6 +798,7 @@ CONFIG_SSB_POSSIBLE=y | |||
766 | # | 798 | # |
767 | # CONFIG_MFD_CORE is not set | 799 | # CONFIG_MFD_CORE is not set |
768 | # CONFIG_MFD_SM501 is not set | 800 | # CONFIG_MFD_SM501 is not set |
801 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
769 | # CONFIG_HTC_PASIC3 is not set | 802 | # CONFIG_HTC_PASIC3 is not set |
770 | # CONFIG_MFD_TMIO is not set | 803 | # CONFIG_MFD_TMIO is not set |
771 | # CONFIG_REGULATOR is not set | 804 | # CONFIG_REGULATOR is not set |
@@ -824,7 +857,9 @@ CONFIG_RTC_INTF_DEV=y | |||
824 | # CONFIG_RTC_DRV_M48T86 is not set | 857 | # CONFIG_RTC_DRV_M48T86 is not set |
825 | # CONFIG_RTC_DRV_M48T35 is not set | 858 | # CONFIG_RTC_DRV_M48T35 is not set |
826 | # CONFIG_RTC_DRV_M48T59 is not set | 859 | # CONFIG_RTC_DRV_M48T59 is not set |
860 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
827 | # CONFIG_RTC_DRV_BQ4802 is not set | 861 | # CONFIG_RTC_DRV_BQ4802 is not set |
862 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
828 | # CONFIG_RTC_DRV_V3020 is not set | 863 | # CONFIG_RTC_DRV_V3020 is not set |
829 | 864 | ||
830 | # | 865 | # |
@@ -898,7 +933,6 @@ CONFIG_PROC_PAGE_MONITOR=y | |||
898 | CONFIG_SYSFS=y | 933 | CONFIG_SYSFS=y |
899 | CONFIG_TMPFS=y | 934 | CONFIG_TMPFS=y |
900 | # CONFIG_TMPFS_POSIX_ACL is not set | 935 | # CONFIG_TMPFS_POSIX_ACL is not set |
901 | # CONFIG_HUGETLBFS is not set | ||
902 | # CONFIG_HUGETLB_PAGE is not set | 936 | # CONFIG_HUGETLB_PAGE is not set |
903 | # CONFIG_CONFIGFS_FS is not set | 937 | # CONFIG_CONFIGFS_FS is not set |
904 | CONFIG_MISC_FILESYSTEMS=y | 938 | CONFIG_MISC_FILESYSTEMS=y |
@@ -1072,9 +1106,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1072 | CONFIG_HAVE_ARCH_KGDB=y | 1106 | CONFIG_HAVE_ARCH_KGDB=y |
1073 | # CONFIG_KGDB is not set | 1107 | # CONFIG_KGDB is not set |
1074 | # CONFIG_SH_STANDARD_BIOS is not set | 1108 | # CONFIG_SH_STANDARD_BIOS is not set |
1075 | CONFIG_EARLY_SCIF_CONSOLE=y | ||
1076 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4430000 | ||
1077 | CONFIG_EARLY_PRINTK=y | ||
1078 | # CONFIG_STACK_DEBUG is not set | 1109 | # CONFIG_STACK_DEBUG is not set |
1079 | # CONFIG_DEBUG_STACK_USAGE is not set | 1110 | # CONFIG_DEBUG_STACK_USAGE is not set |
1080 | # CONFIG_4KSTACKS is not set | 1111 | # CONFIG_4KSTACKS is not set |
@@ -1088,7 +1119,11 @@ CONFIG_DUMP_CODE=y | |||
1088 | # CONFIG_KEYS is not set | 1119 | # CONFIG_KEYS is not set |
1089 | # CONFIG_SECURITY is not set | 1120 | # CONFIG_SECURITY is not set |
1090 | # CONFIG_SECURITYFS is not set | 1121 | # CONFIG_SECURITYFS is not set |
1091 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1122 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1123 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1124 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1125 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1126 | CONFIG_DEFAULT_SECURITY="" | ||
1092 | # CONFIG_CRYPTO is not set | 1127 | # CONFIG_CRYPTO is not set |
1093 | # CONFIG_BINARY_PRINTF is not set | 1128 | # CONFIG_BINARY_PRINTF is not set |
1094 | 1129 | ||
diff --git a/arch/sh/configs/microdev_defconfig b/arch/sh/configs/microdev_defconfig index 6bb5976aff2..7d43fabdc07 100644 --- a/arch/sh/configs/microdev_defconfig +++ b/arch/sh/configs/microdev_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:14:35 2009 | 4 | # Mon Jan 4 11:40:41 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_TMU=y | 24 | CONFIG_SYS_SUPPORTS_TMU=y |
24 | CONFIG_STACKTRACE_SUPPORT=y | 25 | CONFIG_STACKTRACE_SUPPORT=y |
25 | CONFIG_LOCKDEP_SUPPORT=y | 26 | CONFIG_LOCKDEP_SUPPORT=y |
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
34 | 36 | ||
@@ -60,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
60 | # | 62 | # |
61 | CONFIG_TREE_RCU=y | 63 | CONFIG_TREE_RCU=y |
62 | # CONFIG_TREE_PREEMPT_RCU is not set | 64 | # CONFIG_TREE_PREEMPT_RCU is not set |
65 | # CONFIG_TINY_RCU is not set | ||
63 | # CONFIG_RCU_TRACE is not set | 66 | # CONFIG_RCU_TRACE is not set |
64 | CONFIG_RCU_FANOUT=32 | 67 | CONFIG_RCU_FANOUT=32 |
65 | # CONFIG_RCU_FANOUT_EXACT is not set | 68 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -98,6 +101,7 @@ CONFIG_EVENTFD=y | |||
98 | CONFIG_SHMEM=y | 101 | CONFIG_SHMEM=y |
99 | CONFIG_AIO=y | 102 | CONFIG_AIO=y |
100 | CONFIG_HAVE_PERF_EVENTS=y | 103 | CONFIG_HAVE_PERF_EVENTS=y |
104 | CONFIG_PERF_USE_VMALLOC=y | ||
101 | 105 | ||
102 | # | 106 | # |
103 | # Kernel Performance Events And Counters | 107 | # Kernel Performance Events And Counters |
@@ -115,6 +119,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
115 | CONFIG_HAVE_KPROBES=y | 119 | CONFIG_HAVE_KPROBES=y |
116 | CONFIG_HAVE_KRETPROBES=y | 120 | CONFIG_HAVE_KRETPROBES=y |
117 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 121 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
122 | CONFIG_HAVE_DMA_ATTRS=y | ||
118 | CONFIG_HAVE_CLK=y | 123 | CONFIG_HAVE_CLK=y |
119 | CONFIG_HAVE_DMA_API_DEBUG=y | 124 | CONFIG_HAVE_DMA_API_DEBUG=y |
120 | 125 | ||
@@ -136,14 +141,41 @@ CONFIG_LBDAF=y | |||
136 | # IO Schedulers | 141 | # IO Schedulers |
137 | # | 142 | # |
138 | CONFIG_IOSCHED_NOOP=y | 143 | CONFIG_IOSCHED_NOOP=y |
139 | CONFIG_IOSCHED_AS=y | ||
140 | CONFIG_IOSCHED_DEADLINE=y | 144 | CONFIG_IOSCHED_DEADLINE=y |
141 | CONFIG_IOSCHED_CFQ=y | 145 | CONFIG_IOSCHED_CFQ=y |
142 | CONFIG_DEFAULT_AS=y | ||
143 | # CONFIG_DEFAULT_DEADLINE is not set | 146 | # CONFIG_DEFAULT_DEADLINE is not set |
144 | # CONFIG_DEFAULT_CFQ is not set | 147 | CONFIG_DEFAULT_CFQ=y |
145 | # CONFIG_DEFAULT_NOOP is not set | 148 | # CONFIG_DEFAULT_NOOP is not set |
146 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 149 | CONFIG_DEFAULT_IOSCHED="cfq" |
150 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
151 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
152 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
153 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
154 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
155 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
156 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
157 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
158 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
159 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
160 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
161 | # CONFIG_INLINE_READ_LOCK is not set | ||
162 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
163 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
164 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
165 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
166 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
167 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
168 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
169 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
170 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
171 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
172 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
173 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
174 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
175 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
176 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
177 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
178 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
147 | # CONFIG_FREEZER is not set | 179 | # CONFIG_FREEZER is not set |
148 | 180 | ||
149 | # | 181 | # |
@@ -225,8 +257,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
225 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 257 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
226 | CONFIG_ZONE_DMA_FLAG=0 | 258 | CONFIG_ZONE_DMA_FLAG=0 |
227 | CONFIG_NR_QUICK=2 | 259 | CONFIG_NR_QUICK=2 |
228 | CONFIG_HAVE_MLOCK=y | ||
229 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
230 | # CONFIG_KSM is not set | 260 | # CONFIG_KSM is not set |
231 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 261 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
232 | 262 | ||
@@ -272,8 +302,8 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | |||
272 | # | 302 | # |
273 | # DMA support | 303 | # DMA support |
274 | # | 304 | # |
275 | CONFIG_SH_DMA_API=y | ||
276 | CONFIG_SH_DMA=y | 305 | CONFIG_SH_DMA=y |
306 | CONFIG_SH_DMA_API=y | ||
277 | CONFIG_NR_ONCHIP_DMA_CHANNELS=6 | 307 | CONFIG_NR_ONCHIP_DMA_CHANNELS=6 |
278 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 308 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
279 | 309 | ||
@@ -312,7 +342,6 @@ CONFIG_GUSA=y | |||
312 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 342 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
313 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 343 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
314 | CONFIG_ENTRY_OFFSET=0x00001000 | 344 | CONFIG_ENTRY_OFFSET=0x00001000 |
315 | # CONFIG_UBC_WAKEUP is not set | ||
316 | CONFIG_CMDLINE_OVERWRITE=y | 345 | CONFIG_CMDLINE_OVERWRITE=y |
317 | # CONFIG_CMDLINE_EXTEND is not set | 346 | # CONFIG_CMDLINE_EXTEND is not set |
318 | CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/hda1" | 347 | CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/hda1" |
@@ -412,9 +441,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
412 | # CONFIG_AF_RXRPC is not set | 441 | # CONFIG_AF_RXRPC is not set |
413 | CONFIG_WIRELESS=y | 442 | CONFIG_WIRELESS=y |
414 | # CONFIG_CFG80211 is not set | 443 | # CONFIG_CFG80211 is not set |
415 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
416 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
417 | # CONFIG_WIRELESS_EXT is not set | ||
418 | # CONFIG_LIB80211 is not set | 444 | # CONFIG_LIB80211 is not set |
419 | 445 | ||
420 | # | 446 | # |
@@ -443,6 +469,10 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
443 | CONFIG_BLK_DEV=y | 469 | CONFIG_BLK_DEV=y |
444 | # CONFIG_BLK_DEV_COW_COMMON is not set | 470 | # CONFIG_BLK_DEV_COW_COMMON is not set |
445 | # CONFIG_BLK_DEV_LOOP is not set | 471 | # CONFIG_BLK_DEV_LOOP is not set |
472 | |||
473 | # | ||
474 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
475 | # | ||
446 | # CONFIG_BLK_DEV_NBD is not set | 476 | # CONFIG_BLK_DEV_NBD is not set |
447 | CONFIG_BLK_DEV_RAM=y | 477 | CONFIG_BLK_DEV_RAM=y |
448 | CONFIG_BLK_DEV_RAM_COUNT=16 | 478 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -517,11 +547,11 @@ CONFIG_SMC91X=y | |||
517 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 547 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
518 | # CONFIG_B44 is not set | 548 | # CONFIG_B44 is not set |
519 | # CONFIG_KS8842 is not set | 549 | # CONFIG_KS8842 is not set |
550 | # CONFIG_KS8851_MLL is not set | ||
520 | CONFIG_NETDEV_1000=y | 551 | CONFIG_NETDEV_1000=y |
521 | CONFIG_NETDEV_10000=y | 552 | CONFIG_NETDEV_10000=y |
522 | CONFIG_WLAN=y | 553 | CONFIG_WLAN=y |
523 | # CONFIG_WLAN_PRE80211 is not set | 554 | # CONFIG_HOSTAP is not set |
524 | # CONFIG_WLAN_80211 is not set | ||
525 | 555 | ||
526 | # | 556 | # |
527 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 557 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -616,6 +646,7 @@ CONFIG_SSB_POSSIBLE=y | |||
616 | # | 646 | # |
617 | # CONFIG_MFD_CORE is not set | 647 | # CONFIG_MFD_CORE is not set |
618 | # CONFIG_MFD_SM501 is not set | 648 | # CONFIG_MFD_SM501 is not set |
649 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
619 | # CONFIG_HTC_PASIC3 is not set | 650 | # CONFIG_HTC_PASIC3 is not set |
620 | # CONFIG_MFD_TMIO is not set | 651 | # CONFIG_MFD_TMIO is not set |
621 | # CONFIG_REGULATOR is not set | 652 | # CONFIG_REGULATOR is not set |
@@ -835,10 +866,11 @@ CONFIG_FRAME_WARN=1024 | |||
835 | # CONFIG_DEBUG_FS is not set | 866 | # CONFIG_DEBUG_FS is not set |
836 | # CONFIG_HEADERS_CHECK is not set | 867 | # CONFIG_HEADERS_CHECK is not set |
837 | # CONFIG_DEBUG_KERNEL is not set | 868 | # CONFIG_DEBUG_KERNEL is not set |
838 | # CONFIG_DEBUG_BUGVERBOSE is not set | 869 | CONFIG_DEBUG_BUGVERBOSE=y |
839 | # CONFIG_DEBUG_MEMORY_INIT is not set | 870 | # CONFIG_DEBUG_MEMORY_INIT is not set |
840 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 871 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
841 | # CONFIG_LATENCYTOP is not set | 872 | # CONFIG_LATENCYTOP is not set |
873 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
842 | CONFIG_HAVE_FUNCTION_TRACER=y | 874 | CONFIG_HAVE_FUNCTION_TRACER=y |
843 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 875 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
844 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 876 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -851,7 +883,6 @@ CONFIG_TRACING_SUPPORT=y | |||
851 | # CONFIG_SAMPLES is not set | 883 | # CONFIG_SAMPLES is not set |
852 | CONFIG_HAVE_ARCH_KGDB=y | 884 | CONFIG_HAVE_ARCH_KGDB=y |
853 | # CONFIG_SH_STANDARD_BIOS is not set | 885 | # CONFIG_SH_STANDARD_BIOS is not set |
854 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
855 | # CONFIG_DWARF_UNWINDER is not set | 886 | # CONFIG_DWARF_UNWINDER is not set |
856 | 887 | ||
857 | # | 888 | # |
@@ -860,7 +891,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
860 | # CONFIG_KEYS is not set | 891 | # CONFIG_KEYS is not set |
861 | # CONFIG_SECURITY is not set | 892 | # CONFIG_SECURITY is not set |
862 | # CONFIG_SECURITYFS is not set | 893 | # CONFIG_SECURITYFS is not set |
863 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 894 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
895 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
896 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
897 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
898 | CONFIG_DEFAULT_SECURITY="" | ||
864 | CONFIG_CRYPTO=y | 899 | CONFIG_CRYPTO=y |
865 | 900 | ||
866 | # | 901 | # |
diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defconfig index 65018283c3a..d2b18311777 100644 --- a/arch/sh/configs/migor_defconfig +++ b/arch/sh/configs/migor_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:17:41 2009 | 4 | # Mon Jan 4 11:41:41 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_NUMA=y | 24 | CONFIG_SYS_SUPPORTS_NUMA=y |
24 | CONFIG_SYS_SUPPORTS_CMT=y | 25 | CONFIG_SYS_SUPPORTS_CMT=y |
25 | CONFIG_SYS_SUPPORTS_TMU=y | 26 | CONFIG_SYS_SUPPORTS_TMU=y |
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 32 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 33 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 34 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
35 | CONFIG_DMA_NONCOHERENT=y | ||
34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 36 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
35 | CONFIG_CONSTRUCTORS=y | 37 | CONFIG_CONSTRUCTORS=y |
36 | 38 | ||
@@ -61,6 +63,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
61 | # | 63 | # |
62 | CONFIG_TREE_RCU=y | 64 | CONFIG_TREE_RCU=y |
63 | # CONFIG_TREE_PREEMPT_RCU is not set | 65 | # CONFIG_TREE_PREEMPT_RCU is not set |
66 | # CONFIG_TINY_RCU is not set | ||
64 | # CONFIG_RCU_TRACE is not set | 67 | # CONFIG_RCU_TRACE is not set |
65 | CONFIG_RCU_FANOUT=32 | 68 | CONFIG_RCU_FANOUT=32 |
66 | # CONFIG_RCU_FANOUT_EXACT is not set | 69 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -100,6 +103,7 @@ CONFIG_EVENTFD=y | |||
100 | CONFIG_SHMEM=y | 103 | CONFIG_SHMEM=y |
101 | CONFIG_AIO=y | 104 | CONFIG_AIO=y |
102 | CONFIG_HAVE_PERF_EVENTS=y | 105 | CONFIG_HAVE_PERF_EVENTS=y |
106 | CONFIG_PERF_USE_VMALLOC=y | ||
103 | 107 | ||
104 | # | 108 | # |
105 | # Kernel Performance Events And Counters | 109 | # Kernel Performance Events And Counters |
@@ -121,6 +125,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
121 | CONFIG_HAVE_KPROBES=y | 125 | CONFIG_HAVE_KPROBES=y |
122 | CONFIG_HAVE_KRETPROBES=y | 126 | CONFIG_HAVE_KRETPROBES=y |
123 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 127 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
128 | CONFIG_HAVE_DMA_ATTRS=y | ||
124 | CONFIG_HAVE_CLK=y | 129 | CONFIG_HAVE_CLK=y |
125 | CONFIG_HAVE_DMA_API_DEBUG=y | 130 | CONFIG_HAVE_DMA_API_DEBUG=y |
126 | 131 | ||
@@ -147,14 +152,41 @@ CONFIG_LBDAF=y | |||
147 | # IO Schedulers | 152 | # IO Schedulers |
148 | # | 153 | # |
149 | CONFIG_IOSCHED_NOOP=y | 154 | CONFIG_IOSCHED_NOOP=y |
150 | CONFIG_IOSCHED_AS=y | ||
151 | CONFIG_IOSCHED_DEADLINE=y | 155 | CONFIG_IOSCHED_DEADLINE=y |
152 | CONFIG_IOSCHED_CFQ=y | 156 | CONFIG_IOSCHED_CFQ=y |
153 | CONFIG_DEFAULT_AS=y | ||
154 | # CONFIG_DEFAULT_DEADLINE is not set | 157 | # CONFIG_DEFAULT_DEADLINE is not set |
155 | # CONFIG_DEFAULT_CFQ is not set | 158 | CONFIG_DEFAULT_CFQ=y |
156 | # CONFIG_DEFAULT_NOOP is not set | 159 | # CONFIG_DEFAULT_NOOP is not set |
157 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 160 | CONFIG_DEFAULT_IOSCHED="cfq" |
161 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
162 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
163 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
164 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
165 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
166 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
167 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
168 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
169 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
170 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
171 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
172 | # CONFIG_INLINE_READ_LOCK is not set | ||
173 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
174 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
175 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
176 | CONFIG_INLINE_READ_UNLOCK=y | ||
177 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
178 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
179 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
180 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
181 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
182 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
183 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
184 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
185 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
186 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
187 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
188 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
189 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
158 | CONFIG_FREEZER=y | 190 | CONFIG_FREEZER=y |
159 | 191 | ||
160 | # | 192 | # |
@@ -240,8 +272,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
240 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 272 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
241 | CONFIG_ZONE_DMA_FLAG=0 | 273 | CONFIG_ZONE_DMA_FLAG=0 |
242 | CONFIG_NR_QUICK=2 | 274 | CONFIG_NR_QUICK=2 |
243 | CONFIG_HAVE_MLOCK=y | ||
244 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
245 | # CONFIG_KSM is not set | 275 | # CONFIG_KSM is not set |
246 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 276 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
247 | 277 | ||
@@ -277,7 +307,6 @@ CONFIG_SH_MIGOR_QVGA=y | |||
277 | # | 307 | # |
278 | CONFIG_SH_TIMER_TMU=y | 308 | CONFIG_SH_TIMER_TMU=y |
279 | # CONFIG_SH_TIMER_CMT is not set | 309 | # CONFIG_SH_TIMER_CMT is not set |
280 | CONFIG_SH_PCLK_FREQ=33333333 | ||
281 | CONFIG_SH_CLK_CPG=y | 310 | CONFIG_SH_CLK_CPG=y |
282 | # CONFIG_NO_HZ is not set | 311 | # CONFIG_NO_HZ is not set |
283 | # CONFIG_HIGH_RES_TIMERS is not set | 312 | # CONFIG_HIGH_RES_TIMERS is not set |
@@ -433,10 +462,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
433 | # CONFIG_AF_RXRPC is not set | 462 | # CONFIG_AF_RXRPC is not set |
434 | CONFIG_WIRELESS=y | 463 | CONFIG_WIRELESS=y |
435 | # CONFIG_CFG80211 is not set | 464 | # CONFIG_CFG80211 is not set |
436 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
437 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
438 | CONFIG_WIRELESS_EXT=y | ||
439 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
440 | # CONFIG_LIB80211 is not set | 465 | # CONFIG_LIB80211 is not set |
441 | 466 | ||
442 | # | 467 | # |
@@ -554,6 +579,10 @@ CONFIG_MTD_NAND_PLATFORM=y | |||
554 | CONFIG_BLK_DEV=y | 579 | CONFIG_BLK_DEV=y |
555 | # CONFIG_BLK_DEV_COW_COMMON is not set | 580 | # CONFIG_BLK_DEV_COW_COMMON is not set |
556 | # CONFIG_BLK_DEV_LOOP is not set | 581 | # CONFIG_BLK_DEV_LOOP is not set |
582 | |||
583 | # | ||
584 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
585 | # | ||
557 | # CONFIG_BLK_DEV_NBD is not set | 586 | # CONFIG_BLK_DEV_NBD is not set |
558 | CONFIG_BLK_DEV_RAM=y | 587 | CONFIG_BLK_DEV_RAM=y |
559 | CONFIG_BLK_DEV_RAM_COUNT=16 | 588 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -563,9 +592,11 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
563 | # CONFIG_ATA_OVER_ETH is not set | 592 | # CONFIG_ATA_OVER_ETH is not set |
564 | # CONFIG_BLK_DEV_HD is not set | 593 | # CONFIG_BLK_DEV_HD is not set |
565 | CONFIG_MISC_DEVICES=y | 594 | CONFIG_MISC_DEVICES=y |
595 | # CONFIG_AD525X_DPOT is not set | ||
566 | # CONFIG_ICS932S401 is not set | 596 | # CONFIG_ICS932S401 is not set |
567 | # CONFIG_ENCLOSURE_SERVICES is not set | 597 | # CONFIG_ENCLOSURE_SERVICES is not set |
568 | # CONFIG_ISL29003 is not set | 598 | # CONFIG_ISL29003 is not set |
599 | # CONFIG_DS1682 is not set | ||
569 | # CONFIG_C2PORT is not set | 600 | # CONFIG_C2PORT is not set |
570 | 601 | ||
571 | # | 602 | # |
@@ -646,11 +677,11 @@ CONFIG_SMC91X=y | |||
646 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 677 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
647 | # CONFIG_B44 is not set | 678 | # CONFIG_B44 is not set |
648 | # CONFIG_KS8842 is not set | 679 | # CONFIG_KS8842 is not set |
680 | # CONFIG_KS8851_MLL is not set | ||
649 | # CONFIG_NETDEV_1000 is not set | 681 | # CONFIG_NETDEV_1000 is not set |
650 | # CONFIG_NETDEV_10000 is not set | 682 | # CONFIG_NETDEV_10000 is not set |
651 | CONFIG_WLAN=y | 683 | CONFIG_WLAN=y |
652 | # CONFIG_WLAN_PRE80211 is not set | 684 | # CONFIG_HOSTAP is not set |
653 | # CONFIG_WLAN_80211 is not set | ||
654 | 685 | ||
655 | # | 686 | # |
656 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 687 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -670,6 +701,7 @@ CONFIG_WLAN=y | |||
670 | CONFIG_INPUT=y | 701 | CONFIG_INPUT=y |
671 | # CONFIG_INPUT_FF_MEMLESS is not set | 702 | # CONFIG_INPUT_FF_MEMLESS is not set |
672 | # CONFIG_INPUT_POLLDEV is not set | 703 | # CONFIG_INPUT_POLLDEV is not set |
704 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
673 | 705 | ||
674 | # | 706 | # |
675 | # Userland interfaces | 707 | # Userland interfaces |
@@ -776,7 +808,6 @@ CONFIG_I2C_SH_MOBILE=y | |||
776 | # | 808 | # |
777 | # Miscellaneous I2C Chip support | 809 | # Miscellaneous I2C Chip support |
778 | # | 810 | # |
779 | # CONFIG_DS1682 is not set | ||
780 | # CONFIG_SENSORS_TSL2550 is not set | 811 | # CONFIG_SENSORS_TSL2550 is not set |
781 | # CONFIG_I2C_DEBUG_CORE is not set | 812 | # CONFIG_I2C_DEBUG_CORE is not set |
782 | # CONFIG_I2C_DEBUG_ALGO is not set | 813 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -831,16 +862,19 @@ CONFIG_SSB_POSSIBLE=y | |||
831 | # | 862 | # |
832 | # CONFIG_MFD_CORE is not set | 863 | # CONFIG_MFD_CORE is not set |
833 | # CONFIG_MFD_SM501 is not set | 864 | # CONFIG_MFD_SM501 is not set |
865 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
834 | # CONFIG_HTC_PASIC3 is not set | 866 | # CONFIG_HTC_PASIC3 is not set |
835 | # CONFIG_TPS65010 is not set | 867 | # CONFIG_TPS65010 is not set |
836 | # CONFIG_TWL4030_CORE is not set | 868 | # CONFIG_TWL4030_CORE is not set |
837 | # CONFIG_MFD_TMIO is not set | 869 | # CONFIG_MFD_TMIO is not set |
838 | # CONFIG_PMIC_DA903X is not set | 870 | # CONFIG_PMIC_DA903X is not set |
871 | # CONFIG_PMIC_ADP5520 is not set | ||
839 | # CONFIG_MFD_WM8400 is not set | 872 | # CONFIG_MFD_WM8400 is not set |
840 | # CONFIG_MFD_WM831X is not set | 873 | # CONFIG_MFD_WM831X is not set |
841 | # CONFIG_MFD_WM8350_I2C is not set | 874 | # CONFIG_MFD_WM8350_I2C is not set |
842 | # CONFIG_MFD_PCF50633 is not set | 875 | # CONFIG_MFD_PCF50633 is not set |
843 | # CONFIG_AB3100_CORE is not set | 876 | # CONFIG_AB3100_CORE is not set |
877 | # CONFIG_MFD_88PM8607 is not set | ||
844 | # CONFIG_REGULATOR is not set | 878 | # CONFIG_REGULATOR is not set |
845 | CONFIG_MEDIA_SUPPORT=y | 879 | CONFIG_MEDIA_SUPPORT=y |
846 | 880 | ||
@@ -857,6 +891,8 @@ CONFIG_VIDEO_MEDIA=y | |||
857 | # | 891 | # |
858 | # Multimedia drivers | 892 | # Multimedia drivers |
859 | # | 893 | # |
894 | CONFIG_IR_CORE=y | ||
895 | CONFIG_VIDEO_IR=y | ||
860 | # CONFIG_MEDIA_ATTACH is not set | 896 | # CONFIG_MEDIA_ATTACH is not set |
861 | CONFIG_MEDIA_TUNER=y | 897 | CONFIG_MEDIA_TUNER=y |
862 | # CONFIG_MEDIA_TUNER_CUSTOMISE is not set | 898 | # CONFIG_MEDIA_TUNER_CUSTOMISE is not set |
@@ -876,6 +912,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y | |||
876 | # CONFIG_VIDEO_ADV_DEBUG is not set | 912 | # CONFIG_VIDEO_ADV_DEBUG is not set |
877 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set | 913 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set |
878 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y | 914 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y |
915 | CONFIG_VIDEO_IR_I2C=y | ||
879 | # CONFIG_VIDEO_VIVI is not set | 916 | # CONFIG_VIDEO_VIVI is not set |
880 | # CONFIG_VIDEO_SAA5246A is not set | 917 | # CONFIG_VIDEO_SAA5246A is not set |
881 | # CONFIG_VIDEO_SAA5249 is not set | 918 | # CONFIG_VIDEO_SAA5249 is not set |
@@ -883,10 +920,13 @@ CONFIG_SOC_CAMERA=y | |||
883 | # CONFIG_SOC_CAMERA_MT9M001 is not set | 920 | # CONFIG_SOC_CAMERA_MT9M001 is not set |
884 | # CONFIG_SOC_CAMERA_MT9M111 is not set | 921 | # CONFIG_SOC_CAMERA_MT9M111 is not set |
885 | # CONFIG_SOC_CAMERA_MT9T031 is not set | 922 | # CONFIG_SOC_CAMERA_MT9T031 is not set |
923 | # CONFIG_SOC_CAMERA_MT9T112 is not set | ||
886 | # CONFIG_SOC_CAMERA_MT9V022 is not set | 924 | # CONFIG_SOC_CAMERA_MT9V022 is not set |
925 | # CONFIG_SOC_CAMERA_RJ54N1 is not set | ||
887 | CONFIG_SOC_CAMERA_TW9910=y | 926 | CONFIG_SOC_CAMERA_TW9910=y |
888 | # CONFIG_SOC_CAMERA_PLATFORM is not set | 927 | # CONFIG_SOC_CAMERA_PLATFORM is not set |
889 | CONFIG_SOC_CAMERA_OV772X=y | 928 | CONFIG_SOC_CAMERA_OV772X=y |
929 | # CONFIG_SOC_CAMERA_OV9640 is not set | ||
890 | CONFIG_VIDEO_SH_MOBILE_CEU=y | 930 | CONFIG_VIDEO_SH_MOBILE_CEU=y |
891 | # CONFIG_RADIO_ADAPTERS is not set | 931 | # CONFIG_RADIO_ADAPTERS is not set |
892 | # CONFIG_DAB is not set | 932 | # CONFIG_DAB is not set |
@@ -1009,10 +1049,12 @@ CONFIG_USB_GADGET_DUALSPEED=y | |||
1009 | # CONFIG_USB_ETH is not set | 1049 | # CONFIG_USB_ETH is not set |
1010 | # CONFIG_USB_GADGETFS is not set | 1050 | # CONFIG_USB_GADGETFS is not set |
1011 | # CONFIG_USB_FILE_STORAGE is not set | 1051 | # CONFIG_USB_FILE_STORAGE is not set |
1012 | CONFIG_USB_G_SERIAL=y | 1052 | # CONFIG_USB_MASS_STORAGE is not set |
1053 | CONFIG_USB_G_SERIAL=m | ||
1013 | # CONFIG_USB_MIDI_GADGET is not set | 1054 | # CONFIG_USB_MIDI_GADGET is not set |
1014 | # CONFIG_USB_G_PRINTER is not set | 1055 | # CONFIG_USB_G_PRINTER is not set |
1015 | # CONFIG_USB_CDC_COMPOSITE is not set | 1056 | # CONFIG_USB_CDC_COMPOSITE is not set |
1057 | # CONFIG_USB_G_MULTI is not set | ||
1016 | 1058 | ||
1017 | # | 1059 | # |
1018 | # OTG and related infrastructure | 1060 | # OTG and related infrastructure |
@@ -1051,6 +1093,7 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1051 | # CONFIG_RTC_DRV_PCF8563 is not set | 1093 | # CONFIG_RTC_DRV_PCF8563 is not set |
1052 | # CONFIG_RTC_DRV_PCF8583 is not set | 1094 | # CONFIG_RTC_DRV_PCF8583 is not set |
1053 | # CONFIG_RTC_DRV_M41T80 is not set | 1095 | # CONFIG_RTC_DRV_M41T80 is not set |
1096 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1054 | # CONFIG_RTC_DRV_S35390A is not set | 1097 | # CONFIG_RTC_DRV_S35390A is not set |
1055 | # CONFIG_RTC_DRV_FM3130 is not set | 1098 | # CONFIG_RTC_DRV_FM3130 is not set |
1056 | # CONFIG_RTC_DRV_RX8581 is not set | 1099 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1071,7 +1114,9 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1071 | # CONFIG_RTC_DRV_M48T86 is not set | 1114 | # CONFIG_RTC_DRV_M48T86 is not set |
1072 | # CONFIG_RTC_DRV_M48T35 is not set | 1115 | # CONFIG_RTC_DRV_M48T35 is not set |
1073 | # CONFIG_RTC_DRV_M48T59 is not set | 1116 | # CONFIG_RTC_DRV_M48T59 is not set |
1117 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1074 | # CONFIG_RTC_DRV_BQ4802 is not set | 1118 | # CONFIG_RTC_DRV_BQ4802 is not set |
1119 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1075 | # CONFIG_RTC_DRV_V3020 is not set | 1120 | # CONFIG_RTC_DRV_V3020 is not set |
1076 | 1121 | ||
1077 | # | 1122 | # |
@@ -1098,6 +1143,7 @@ CONFIG_UIO_PDRV_GENIRQ=y | |||
1098 | # CONFIG_EXT2_FS is not set | 1143 | # CONFIG_EXT2_FS is not set |
1099 | # CONFIG_EXT3_FS is not set | 1144 | # CONFIG_EXT3_FS is not set |
1100 | # CONFIG_EXT4_FS is not set | 1145 | # CONFIG_EXT4_FS is not set |
1146 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
1101 | # CONFIG_REISERFS_FS is not set | 1147 | # CONFIG_REISERFS_FS is not set |
1102 | # CONFIG_JFS_FS is not set | 1148 | # CONFIG_JFS_FS is not set |
1103 | # CONFIG_FS_POSIX_ACL is not set | 1149 | # CONFIG_FS_POSIX_ACL is not set |
@@ -1206,10 +1252,11 @@ CONFIG_DEBUG_FS=y | |||
1206 | # CONFIG_HEADERS_CHECK is not set | 1252 | # CONFIG_HEADERS_CHECK is not set |
1207 | # CONFIG_DEBUG_KERNEL is not set | 1253 | # CONFIG_DEBUG_KERNEL is not set |
1208 | CONFIG_STACKTRACE=y | 1254 | CONFIG_STACKTRACE=y |
1209 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1255 | CONFIG_DEBUG_BUGVERBOSE=y |
1210 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1256 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1211 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1257 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1212 | # CONFIG_LATENCYTOP is not set | 1258 | # CONFIG_LATENCYTOP is not set |
1259 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1213 | CONFIG_NOP_TRACER=y | 1260 | CONFIG_NOP_TRACER=y |
1214 | CONFIG_HAVE_FUNCTION_TRACER=y | 1261 | CONFIG_HAVE_FUNCTION_TRACER=y |
1215 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1262 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1229,9 +1276,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1229 | # CONFIG_SAMPLES is not set | 1276 | # CONFIG_SAMPLES is not set |
1230 | CONFIG_HAVE_ARCH_KGDB=y | 1277 | CONFIG_HAVE_ARCH_KGDB=y |
1231 | # CONFIG_SH_STANDARD_BIOS is not set | 1278 | # CONFIG_SH_STANDARD_BIOS is not set |
1232 | CONFIG_EARLY_SCIF_CONSOLE=y | ||
1233 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000 | ||
1234 | CONFIG_EARLY_PRINTK=y | ||
1235 | # CONFIG_DWARF_UNWINDER is not set | 1279 | # CONFIG_DWARF_UNWINDER is not set |
1236 | 1280 | ||
1237 | # | 1281 | # |
@@ -1240,7 +1284,11 @@ CONFIG_EARLY_PRINTK=y | |||
1240 | # CONFIG_KEYS is not set | 1284 | # CONFIG_KEYS is not set |
1241 | # CONFIG_SECURITY is not set | 1285 | # CONFIG_SECURITY is not set |
1242 | # CONFIG_SECURITYFS is not set | 1286 | # CONFIG_SECURITYFS is not set |
1243 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1287 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1288 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1289 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1290 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1291 | CONFIG_DEFAULT_SECURITY="" | ||
1244 | CONFIG_CRYPTO=y | 1292 | CONFIG_CRYPTO=y |
1245 | 1293 | ||
1246 | # | 1294 | # |
diff --git a/arch/sh/configs/polaris_defconfig b/arch/sh/configs/polaris_defconfig index 7fc1952419a..d50c0314281 100644 --- a/arch/sh/configs/polaris_defconfig +++ b/arch/sh/configs/polaris_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:20:53 2009 | 4 | # Mon Jan 4 11:45:25 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
32 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 34 | CONFIG_CONSTRUCTORS=y |
34 | 35 | ||
@@ -63,6 +64,7 @@ CONFIG_AUDIT=y | |||
63 | # | 64 | # |
64 | CONFIG_TREE_RCU=y | 65 | CONFIG_TREE_RCU=y |
65 | # CONFIG_TREE_PREEMPT_RCU is not set | 66 | # CONFIG_TREE_PREEMPT_RCU is not set |
67 | # CONFIG_TINY_RCU is not set | ||
66 | # CONFIG_RCU_TRACE is not set | 68 | # CONFIG_RCU_TRACE is not set |
67 | CONFIG_RCU_FANOUT=32 | 69 | CONFIG_RCU_FANOUT=32 |
68 | # CONFIG_RCU_FANOUT_EXACT is not set | 70 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -102,6 +104,7 @@ CONFIG_EVENTFD=y | |||
102 | CONFIG_SHMEM=y | 104 | CONFIG_SHMEM=y |
103 | CONFIG_AIO=y | 105 | CONFIG_AIO=y |
104 | CONFIG_HAVE_PERF_EVENTS=y | 106 | CONFIG_HAVE_PERF_EVENTS=y |
107 | CONFIG_PERF_USE_VMALLOC=y | ||
105 | 108 | ||
106 | # | 109 | # |
107 | # Kernel Performance Events And Counters | 110 | # Kernel Performance Events And Counters |
@@ -120,6 +123,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
120 | CONFIG_HAVE_KPROBES=y | 123 | CONFIG_HAVE_KPROBES=y |
121 | CONFIG_HAVE_KRETPROBES=y | 124 | CONFIG_HAVE_KRETPROBES=y |
122 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 125 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
126 | CONFIG_HAVE_DMA_ATTRS=y | ||
123 | CONFIG_HAVE_CLK=y | 127 | CONFIG_HAVE_CLK=y |
124 | CONFIG_HAVE_DMA_API_DEBUG=y | 128 | CONFIG_HAVE_DMA_API_DEBUG=y |
125 | 129 | ||
@@ -146,14 +150,41 @@ CONFIG_LBDAF=y | |||
146 | # IO Schedulers | 150 | # IO Schedulers |
147 | # | 151 | # |
148 | CONFIG_IOSCHED_NOOP=y | 152 | CONFIG_IOSCHED_NOOP=y |
149 | # CONFIG_IOSCHED_AS is not set | ||
150 | # CONFIG_IOSCHED_DEADLINE is not set | 153 | # CONFIG_IOSCHED_DEADLINE is not set |
151 | CONFIG_IOSCHED_CFQ=y | 154 | CONFIG_IOSCHED_CFQ=y |
152 | # CONFIG_DEFAULT_AS is not set | ||
153 | # CONFIG_DEFAULT_DEADLINE is not set | 155 | # CONFIG_DEFAULT_DEADLINE is not set |
154 | CONFIG_DEFAULT_CFQ=y | 156 | CONFIG_DEFAULT_CFQ=y |
155 | # CONFIG_DEFAULT_NOOP is not set | 157 | # CONFIG_DEFAULT_NOOP is not set |
156 | CONFIG_DEFAULT_IOSCHED="cfq" | 158 | CONFIG_DEFAULT_IOSCHED="cfq" |
159 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
160 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
162 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
163 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
164 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
165 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
166 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
167 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
168 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
169 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
170 | # CONFIG_INLINE_READ_LOCK is not set | ||
171 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
172 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
173 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
174 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
175 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
176 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
177 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
178 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
180 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
181 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
182 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
183 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
184 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
185 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
186 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
187 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
157 | # CONFIG_FREEZER is not set | 188 | # CONFIG_FREEZER is not set |
158 | 189 | ||
159 | # | 190 | # |
@@ -225,12 +256,10 @@ CONFIG_FLATMEM=y | |||
225 | CONFIG_FLAT_NODE_MEM_MAP=y | 256 | CONFIG_FLAT_NODE_MEM_MAP=y |
226 | CONFIG_SPARSEMEM_STATIC=y | 257 | CONFIG_SPARSEMEM_STATIC=y |
227 | CONFIG_PAGEFLAGS_EXTENDED=y | 258 | CONFIG_PAGEFLAGS_EXTENDED=y |
228 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 259 | CONFIG_SPLIT_PTLOCK_CPUS=999999 |
229 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 260 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
230 | CONFIG_ZONE_DMA_FLAG=0 | 261 | CONFIG_ZONE_DMA_FLAG=0 |
231 | CONFIG_NR_QUICK=2 | 262 | CONFIG_NR_QUICK=2 |
232 | CONFIG_HAVE_MLOCK=y | ||
233 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
234 | # CONFIG_KSM is not set | 263 | # CONFIG_KSM is not set |
235 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 264 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
236 | 265 | ||
@@ -279,8 +308,8 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | |||
279 | # | 308 | # |
280 | # DMA support | 309 | # DMA support |
281 | # | 310 | # |
282 | CONFIG_SH_DMA_API=y | ||
283 | CONFIG_SH_DMA=y | 311 | CONFIG_SH_DMA=y |
312 | CONFIG_SH_DMA_API=y | ||
284 | CONFIG_NR_ONCHIP_DMA_CHANNELS=6 | 313 | CONFIG_NR_ONCHIP_DMA_CHANNELS=6 |
285 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 314 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
286 | 315 | ||
@@ -409,7 +438,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
409 | # CONFIG_IRDA is not set | 438 | # CONFIG_IRDA is not set |
410 | # CONFIG_BT is not set | 439 | # CONFIG_BT is not set |
411 | # CONFIG_AF_RXRPC is not set | 440 | # CONFIG_AF_RXRPC is not set |
412 | # CONFIG_WIRELESS is not set | 441 | CONFIG_WIRELESS=y |
442 | # CONFIG_CFG80211 is not set | ||
443 | # CONFIG_LIB80211 is not set | ||
444 | |||
445 | # | ||
446 | # CFG80211 needs to be enabled for MAC80211 | ||
447 | # | ||
413 | # CONFIG_WIMAX is not set | 448 | # CONFIG_WIMAX is not set |
414 | # CONFIG_RFKILL is not set | 449 | # CONFIG_RFKILL is not set |
415 | # CONFIG_NET_9P is not set | 450 | # CONFIG_NET_9P is not set |
@@ -525,6 +560,10 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 | |||
525 | CONFIG_BLK_DEV=y | 560 | CONFIG_BLK_DEV=y |
526 | # CONFIG_BLK_DEV_COW_COMMON is not set | 561 | # CONFIG_BLK_DEV_COW_COMMON is not set |
527 | # CONFIG_BLK_DEV_LOOP is not set | 562 | # CONFIG_BLK_DEV_LOOP is not set |
563 | |||
564 | # | ||
565 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
566 | # | ||
528 | # CONFIG_BLK_DEV_NBD is not set | 567 | # CONFIG_BLK_DEV_NBD is not set |
529 | # CONFIG_BLK_DEV_RAM is not set | 568 | # CONFIG_BLK_DEV_RAM is not set |
530 | # CONFIG_CDROM_PKTCDVD is not set | 569 | # CONFIG_CDROM_PKTCDVD is not set |
@@ -595,11 +634,11 @@ CONFIG_SMSC911X=y | |||
595 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 634 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
596 | # CONFIG_B44 is not set | 635 | # CONFIG_B44 is not set |
597 | # CONFIG_KS8842 is not set | 636 | # CONFIG_KS8842 is not set |
637 | # CONFIG_KS8851_MLL is not set | ||
598 | # CONFIG_NETDEV_1000 is not set | 638 | # CONFIG_NETDEV_1000 is not set |
599 | # CONFIG_NETDEV_10000 is not set | 639 | # CONFIG_NETDEV_10000 is not set |
600 | CONFIG_WLAN=y | 640 | CONFIG_WLAN=y |
601 | # CONFIG_WLAN_PRE80211 is not set | 641 | # CONFIG_HOSTAP is not set |
602 | # CONFIG_WLAN_80211 is not set | ||
603 | 642 | ||
604 | # | 643 | # |
605 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 644 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -619,6 +658,7 @@ CONFIG_WLAN=y | |||
619 | CONFIG_INPUT=y | 658 | CONFIG_INPUT=y |
620 | # CONFIG_INPUT_FF_MEMLESS is not set | 659 | # CONFIG_INPUT_FF_MEMLESS is not set |
621 | # CONFIG_INPUT_POLLDEV is not set | 660 | # CONFIG_INPUT_POLLDEV is not set |
661 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
622 | 662 | ||
623 | # | 663 | # |
624 | # Userland interfaces | 664 | # Userland interfaces |
@@ -657,7 +697,6 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
657 | # CONFIG_N_HDLC is not set | 697 | # CONFIG_N_HDLC is not set |
658 | # CONFIG_RISCOM8 is not set | 698 | # CONFIG_RISCOM8 is not set |
659 | # CONFIG_SPECIALIX is not set | 699 | # CONFIG_SPECIALIX is not set |
660 | # CONFIG_RIO is not set | ||
661 | # CONFIG_STALDRV is not set | 700 | # CONFIG_STALDRV is not set |
662 | 701 | ||
663 | # | 702 | # |
@@ -705,6 +744,7 @@ CONFIG_SSB_POSSIBLE=y | |||
705 | # | 744 | # |
706 | # CONFIG_MFD_CORE is not set | 745 | # CONFIG_MFD_CORE is not set |
707 | # CONFIG_MFD_SM501 is not set | 746 | # CONFIG_MFD_SM501 is not set |
747 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
708 | # CONFIG_HTC_PASIC3 is not set | 748 | # CONFIG_HTC_PASIC3 is not set |
709 | # CONFIG_MFD_TMIO is not set | 749 | # CONFIG_MFD_TMIO is not set |
710 | # CONFIG_REGULATOR is not set | 750 | # CONFIG_REGULATOR is not set |
@@ -764,7 +804,9 @@ CONFIG_RTC_INTF_DEV=y | |||
764 | # CONFIG_RTC_DRV_M48T86 is not set | 804 | # CONFIG_RTC_DRV_M48T86 is not set |
765 | # CONFIG_RTC_DRV_M48T35 is not set | 805 | # CONFIG_RTC_DRV_M48T35 is not set |
766 | # CONFIG_RTC_DRV_M48T59 is not set | 806 | # CONFIG_RTC_DRV_M48T59 is not set |
807 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
767 | # CONFIG_RTC_DRV_BQ4802 is not set | 808 | # CONFIG_RTC_DRV_BQ4802 is not set |
809 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
768 | # CONFIG_RTC_DRV_V3020 is not set | 810 | # CONFIG_RTC_DRV_V3020 is not set |
769 | 811 | ||
770 | # | 812 | # |
@@ -787,6 +829,7 @@ CONFIG_RTC_DRV_SH=y | |||
787 | # CONFIG_EXT2_FS is not set | 829 | # CONFIG_EXT2_FS is not set |
788 | # CONFIG_EXT3_FS is not set | 830 | # CONFIG_EXT3_FS is not set |
789 | # CONFIG_EXT4_FS is not set | 831 | # CONFIG_EXT4_FS is not set |
832 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
790 | # CONFIG_REISERFS_FS is not set | 833 | # CONFIG_REISERFS_FS is not set |
791 | # CONFIG_JFS_FS is not set | 834 | # CONFIG_JFS_FS is not set |
792 | # CONFIG_FS_POSIX_ACL is not set | 835 | # CONFIG_FS_POSIX_ACL is not set |
@@ -833,7 +876,6 @@ CONFIG_PROC_PAGE_MONITOR=y | |||
833 | CONFIG_SYSFS=y | 876 | CONFIG_SYSFS=y |
834 | CONFIG_TMPFS=y | 877 | CONFIG_TMPFS=y |
835 | # CONFIG_TMPFS_POSIX_ACL is not set | 878 | # CONFIG_TMPFS_POSIX_ACL is not set |
836 | # CONFIG_HUGETLBFS is not set | ||
837 | # CONFIG_HUGETLB_PAGE is not set | 879 | # CONFIG_HUGETLB_PAGE is not set |
838 | # CONFIG_CONFIGFS_FS is not set | 880 | # CONFIG_CONFIGFS_FS is not set |
839 | CONFIG_MISC_FILESYSTEMS=y | 881 | CONFIG_MISC_FILESYSTEMS=y |
@@ -977,9 +1019,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
977 | CONFIG_HAVE_ARCH_KGDB=y | 1019 | CONFIG_HAVE_ARCH_KGDB=y |
978 | # CONFIG_KGDB is not set | 1020 | # CONFIG_KGDB is not set |
979 | # CONFIG_SH_STANDARD_BIOS is not set | 1021 | # CONFIG_SH_STANDARD_BIOS is not set |
980 | CONFIG_EARLY_SCIF_CONSOLE=y | ||
981 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xa4000150 | ||
982 | CONFIG_EARLY_PRINTK=y | ||
983 | # CONFIG_STACK_DEBUG is not set | 1022 | # CONFIG_STACK_DEBUG is not set |
984 | # CONFIG_DEBUG_STACK_USAGE is not set | 1023 | # CONFIG_DEBUG_STACK_USAGE is not set |
985 | # CONFIG_4KSTACKS is not set | 1024 | # CONFIG_4KSTACKS is not set |
@@ -993,7 +1032,11 @@ CONFIG_DUMP_CODE=y | |||
993 | # CONFIG_KEYS is not set | 1032 | # CONFIG_KEYS is not set |
994 | # CONFIG_SECURITY is not set | 1033 | # CONFIG_SECURITY is not set |
995 | # CONFIG_SECURITYFS is not set | 1034 | # CONFIG_SECURITYFS is not set |
996 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1035 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1036 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1037 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1038 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1039 | CONFIG_DEFAULT_SECURITY="" | ||
997 | # CONFIG_CRYPTO is not set | 1040 | # CONFIG_CRYPTO is not set |
998 | # CONFIG_BINARY_PRINTF is not set | 1041 | # CONFIG_BINARY_PRINTF is not set |
999 | 1042 | ||
diff --git a/arch/sh/configs/r7780mp_defconfig b/arch/sh/configs/r7780mp_defconfig index 903b021e8d9..efda63d4070 100644 --- a/arch/sh/configs/r7780mp_defconfig +++ b/arch/sh/configs/r7780mp_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:24:31 2009 | 4 | # Mon Jan 4 13:16:13 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_PCI=y | 24 | CONFIG_SYS_SUPPORTS_PCI=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -31,6 +32,7 @@ CONFIG_ARCH_NO_VIRT_TO_BUS=y | |||
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_IO_TRAPPED=y | 34 | CONFIG_IO_TRAPPED=y |
35 | CONFIG_DMA_NONCOHERENT=y | ||
34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 36 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
35 | CONFIG_CONSTRUCTORS=y | 37 | CONFIG_CONSTRUCTORS=y |
36 | 38 | ||
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
63 | # | 65 | # |
64 | CONFIG_TREE_RCU=y | 66 | CONFIG_TREE_RCU=y |
65 | # CONFIG_TREE_PREEMPT_RCU is not set | 67 | # CONFIG_TREE_PREEMPT_RCU is not set |
68 | # CONFIG_TINY_RCU is not set | ||
66 | # CONFIG_RCU_TRACE is not set | 69 | # CONFIG_RCU_TRACE is not set |
67 | CONFIG_RCU_FANOUT=32 | 70 | CONFIG_RCU_FANOUT=32 |
68 | # CONFIG_RCU_FANOUT_EXACT is not set | 71 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y | |||
103 | CONFIG_SHMEM=y | 106 | CONFIG_SHMEM=y |
104 | CONFIG_AIO=y | 107 | CONFIG_AIO=y |
105 | CONFIG_HAVE_PERF_EVENTS=y | 108 | CONFIG_HAVE_PERF_EVENTS=y |
109 | CONFIG_PERF_USE_VMALLOC=y | ||
106 | 110 | ||
107 | # | 111 | # |
108 | # Kernel Performance Events And Counters | 112 | # Kernel Performance Events And Counters |
@@ -110,6 +114,7 @@ CONFIG_HAVE_PERF_EVENTS=y | |||
110 | CONFIG_PERF_EVENTS=y | 114 | CONFIG_PERF_EVENTS=y |
111 | CONFIG_EVENT_PROFILE=y | 115 | CONFIG_EVENT_PROFILE=y |
112 | # CONFIG_PERF_COUNTERS is not set | 116 | # CONFIG_PERF_COUNTERS is not set |
117 | # CONFIG_DEBUG_PERF_USE_VMALLOC is not set | ||
113 | CONFIG_VM_EVENT_COUNTERS=y | 118 | CONFIG_VM_EVENT_COUNTERS=y |
114 | CONFIG_PCI_QUIRKS=y | 119 | CONFIG_PCI_QUIRKS=y |
115 | CONFIG_COMPAT_BRK=y | 120 | CONFIG_COMPAT_BRK=y |
@@ -125,6 +130,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
125 | CONFIG_HAVE_KPROBES=y | 130 | CONFIG_HAVE_KPROBES=y |
126 | CONFIG_HAVE_KRETPROBES=y | 131 | CONFIG_HAVE_KRETPROBES=y |
127 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 132 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
133 | CONFIG_HAVE_DMA_ATTRS=y | ||
128 | CONFIG_HAVE_CLK=y | 134 | CONFIG_HAVE_CLK=y |
129 | CONFIG_HAVE_DMA_API_DEBUG=y | 135 | CONFIG_HAVE_DMA_API_DEBUG=y |
130 | 136 | ||
@@ -135,6 +141,7 @@ CONFIG_HAVE_DMA_API_DEBUG=y | |||
135 | # CONFIG_SLOW_WORK is not set | 141 | # CONFIG_SLOW_WORK is not set |
136 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 142 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
137 | CONFIG_SLABINFO=y | 143 | CONFIG_SLABINFO=y |
144 | CONFIG_RT_MUTEXES=y | ||
138 | CONFIG_BASE_SMALL=0 | 145 | CONFIG_BASE_SMALL=0 |
139 | CONFIG_MODULES=y | 146 | CONFIG_MODULES=y |
140 | # CONFIG_MODULE_FORCE_LOAD is not set | 147 | # CONFIG_MODULE_FORCE_LOAD is not set |
@@ -151,14 +158,41 @@ CONFIG_LBDAF=y | |||
151 | # IO Schedulers | 158 | # IO Schedulers |
152 | # | 159 | # |
153 | CONFIG_IOSCHED_NOOP=y | 160 | CONFIG_IOSCHED_NOOP=y |
154 | # CONFIG_IOSCHED_AS is not set | ||
155 | # CONFIG_IOSCHED_DEADLINE is not set | 161 | # CONFIG_IOSCHED_DEADLINE is not set |
156 | # CONFIG_IOSCHED_CFQ is not set | 162 | # CONFIG_IOSCHED_CFQ is not set |
157 | # CONFIG_DEFAULT_AS is not set | ||
158 | # CONFIG_DEFAULT_DEADLINE is not set | 163 | # CONFIG_DEFAULT_DEADLINE is not set |
159 | # CONFIG_DEFAULT_CFQ is not set | 164 | # CONFIG_DEFAULT_CFQ is not set |
160 | CONFIG_DEFAULT_NOOP=y | 165 | CONFIG_DEFAULT_NOOP=y |
161 | CONFIG_DEFAULT_IOSCHED="noop" | 166 | CONFIG_DEFAULT_IOSCHED="noop" |
167 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
168 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
169 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
170 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
171 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
172 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
173 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
174 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
175 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
176 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
177 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
178 | # CONFIG_INLINE_READ_LOCK is not set | ||
179 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
180 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
181 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
182 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
183 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
184 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
185 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
186 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
187 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
188 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
191 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
192 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
193 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
194 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
162 | # CONFIG_FREEZER is not set | 196 | # CONFIG_FREEZER is not set |
163 | 197 | ||
164 | # | 198 | # |
@@ -245,8 +279,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
245 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 279 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
246 | CONFIG_ZONE_DMA_FLAG=0 | 280 | CONFIG_ZONE_DMA_FLAG=0 |
247 | CONFIG_NR_QUICK=2 | 281 | CONFIG_NR_QUICK=2 |
248 | CONFIG_HAVE_MLOCK=y | ||
249 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
250 | # CONFIG_KSM is not set | 282 | # CONFIG_KSM is not set |
251 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 283 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
252 | 284 | ||
@@ -342,7 +374,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1" | |||
342 | # Bus options | 374 | # Bus options |
343 | # | 375 | # |
344 | CONFIG_PCI=y | 376 | CONFIG_PCI=y |
345 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
346 | # CONFIG_PCIEPORTBUS is not set | 377 | # CONFIG_PCIEPORTBUS is not set |
347 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 378 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
348 | CONFIG_PCI_LEGACY=y | 379 | CONFIG_PCI_LEGACY=y |
@@ -449,10 +480,6 @@ CONFIG_LLC=m | |||
449 | # CONFIG_AF_RXRPC is not set | 480 | # CONFIG_AF_RXRPC is not set |
450 | CONFIG_WIRELESS=y | 481 | CONFIG_WIRELESS=y |
451 | # CONFIG_CFG80211 is not set | 482 | # CONFIG_CFG80211 is not set |
452 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
453 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
454 | CONFIG_WIRELESS_EXT=y | ||
455 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
456 | # CONFIG_LIB80211 is not set | 483 | # CONFIG_LIB80211 is not set |
457 | 484 | ||
458 | # | 485 | # |
@@ -535,7 +562,6 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y | |||
535 | CONFIG_MTD_PHYSMAP=y | 562 | CONFIG_MTD_PHYSMAP=y |
536 | # CONFIG_MTD_PHYSMAP_COMPAT is not set | 563 | # CONFIG_MTD_PHYSMAP_COMPAT is not set |
537 | # CONFIG_MTD_PCI is not set | 564 | # CONFIG_MTD_PCI is not set |
538 | # CONFIG_MTD_GPIO_ADDR is not set | ||
539 | # CONFIG_MTD_INTEL_VR_NOR is not set | 565 | # CONFIG_MTD_INTEL_VR_NOR is not set |
540 | # CONFIG_MTD_PLATRAM is not set | 566 | # CONFIG_MTD_PLATRAM is not set |
541 | 567 | ||
@@ -573,6 +599,10 @@ CONFIG_BLK_DEV=y | |||
573 | # CONFIG_BLK_DEV_UMEM is not set | 599 | # CONFIG_BLK_DEV_UMEM is not set |
574 | # CONFIG_BLK_DEV_COW_COMMON is not set | 600 | # CONFIG_BLK_DEV_COW_COMMON is not set |
575 | # CONFIG_BLK_DEV_LOOP is not set | 601 | # CONFIG_BLK_DEV_LOOP is not set |
602 | |||
603 | # | ||
604 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
605 | # | ||
576 | # CONFIG_BLK_DEV_NBD is not set | 606 | # CONFIG_BLK_DEV_NBD is not set |
577 | # CONFIG_BLK_DEV_SX8 is not set | 607 | # CONFIG_BLK_DEV_SX8 is not set |
578 | CONFIG_BLK_DEV_RAM=y | 608 | CONFIG_BLK_DEV_RAM=y |
@@ -583,6 +613,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
583 | # CONFIG_ATA_OVER_ETH is not set | 613 | # CONFIG_ATA_OVER_ETH is not set |
584 | # CONFIG_BLK_DEV_HD is not set | 614 | # CONFIG_BLK_DEV_HD is not set |
585 | CONFIG_MISC_DEVICES=y | 615 | CONFIG_MISC_DEVICES=y |
616 | # CONFIG_AD525X_DPOT is not set | ||
586 | # CONFIG_PHANTOM is not set | 617 | # CONFIG_PHANTOM is not set |
587 | # CONFIG_SGI_IOC4 is not set | 618 | # CONFIG_SGI_IOC4 is not set |
588 | # CONFIG_TIFM_CORE is not set | 619 | # CONFIG_TIFM_CORE is not set |
@@ -590,6 +621,7 @@ CONFIG_MISC_DEVICES=y | |||
590 | # CONFIG_ENCLOSURE_SERVICES is not set | 621 | # CONFIG_ENCLOSURE_SERVICES is not set |
591 | # CONFIG_HP_ILO is not set | 622 | # CONFIG_HP_ILO is not set |
592 | # CONFIG_ISL29003 is not set | 623 | # CONFIG_ISL29003 is not set |
624 | # CONFIG_DS1682 is not set | ||
593 | # CONFIG_C2PORT is not set | 625 | # CONFIG_C2PORT is not set |
594 | 626 | ||
595 | # | 627 | # |
@@ -640,8 +672,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
640 | # CONFIG_ISCSI_TCP is not set | 672 | # CONFIG_ISCSI_TCP is not set |
641 | # CONFIG_SCSI_CXGB3_ISCSI is not set | 673 | # CONFIG_SCSI_CXGB3_ISCSI is not set |
642 | # CONFIG_SCSI_BNX2_ISCSI is not set | 674 | # CONFIG_SCSI_BNX2_ISCSI is not set |
675 | # CONFIG_BE2ISCSI is not set | ||
643 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 676 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
677 | # CONFIG_SCSI_HPSA is not set | ||
644 | # CONFIG_SCSI_3W_9XXX is not set | 678 | # CONFIG_SCSI_3W_9XXX is not set |
679 | # CONFIG_SCSI_3W_SAS is not set | ||
645 | # CONFIG_SCSI_ACARD is not set | 680 | # CONFIG_SCSI_ACARD is not set |
646 | # CONFIG_SCSI_AACRAID is not set | 681 | # CONFIG_SCSI_AACRAID is not set |
647 | # CONFIG_SCSI_AIC7XXX is not set | 682 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -675,7 +710,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
675 | # CONFIG_SCSI_NSP32 is not set | 710 | # CONFIG_SCSI_NSP32 is not set |
676 | # CONFIG_SCSI_DEBUG is not set | 711 | # CONFIG_SCSI_DEBUG is not set |
677 | # CONFIG_SCSI_PMCRAID is not set | 712 | # CONFIG_SCSI_PMCRAID is not set |
713 | # CONFIG_SCSI_PM8001 is not set | ||
678 | # CONFIG_SCSI_SRP is not set | 714 | # CONFIG_SCSI_SRP is not set |
715 | # CONFIG_SCSI_BFA_FC is not set | ||
679 | # CONFIG_SCSI_DH is not set | 716 | # CONFIG_SCSI_DH is not set |
680 | # CONFIG_SCSI_OSD_INITIATOR is not set | 717 | # CONFIG_SCSI_OSD_INITIATOR is not set |
681 | CONFIG_ATA=y | 718 | CONFIG_ATA=y |
@@ -728,15 +765,16 @@ CONFIG_SATA_SIL=y | |||
728 | # CONFIG_PATA_NS87415 is not set | 765 | # CONFIG_PATA_NS87415 is not set |
729 | # CONFIG_PATA_OPTI is not set | 766 | # CONFIG_PATA_OPTI is not set |
730 | # CONFIG_PATA_OPTIDMA is not set | 767 | # CONFIG_PATA_OPTIDMA is not set |
768 | # CONFIG_PATA_PDC2027X is not set | ||
731 | # CONFIG_PATA_PDC_OLD is not set | 769 | # CONFIG_PATA_PDC_OLD is not set |
732 | # CONFIG_PATA_RADISYS is not set | 770 | # CONFIG_PATA_RADISYS is not set |
733 | # CONFIG_PATA_RDC is not set | 771 | # CONFIG_PATA_RDC is not set |
734 | # CONFIG_PATA_RZ1000 is not set | 772 | # CONFIG_PATA_RZ1000 is not set |
735 | # CONFIG_PATA_SC1200 is not set | 773 | # CONFIG_PATA_SC1200 is not set |
736 | # CONFIG_PATA_SERVERWORKS is not set | 774 | # CONFIG_PATA_SERVERWORKS is not set |
737 | # CONFIG_PATA_PDC2027X is not set | ||
738 | # CONFIG_PATA_SIL680 is not set | 775 | # CONFIG_PATA_SIL680 is not set |
739 | # CONFIG_PATA_SIS is not set | 776 | # CONFIG_PATA_SIS is not set |
777 | # CONFIG_PATA_TOSHIBA is not set | ||
740 | # CONFIG_PATA_VIA is not set | 778 | # CONFIG_PATA_VIA is not set |
741 | # CONFIG_PATA_WINBOND is not set | 779 | # CONFIG_PATA_WINBOND is not set |
742 | CONFIG_PATA_PLATFORM=y | 780 | CONFIG_PATA_PLATFORM=y |
@@ -813,6 +851,7 @@ CONFIG_8139TOO_8129=y | |||
813 | # CONFIG_SUNDANCE is not set | 851 | # CONFIG_SUNDANCE is not set |
814 | # CONFIG_TLAN is not set | 852 | # CONFIG_TLAN is not set |
815 | # CONFIG_KS8842 is not set | 853 | # CONFIG_KS8842 is not set |
854 | # CONFIG_KS8851_MLL is not set | ||
816 | CONFIG_VIA_RHINE=m | 855 | CONFIG_VIA_RHINE=m |
817 | CONFIG_VIA_RHINE_MMIO=y | 856 | CONFIG_VIA_RHINE_MMIO=y |
818 | # CONFIG_SC92031 is not set | 857 | # CONFIG_SC92031 is not set |
@@ -862,8 +901,9 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
862 | # CONFIG_BE2NET is not set | 901 | # CONFIG_BE2NET is not set |
863 | # CONFIG_TR is not set | 902 | # CONFIG_TR is not set |
864 | CONFIG_WLAN=y | 903 | CONFIG_WLAN=y |
865 | # CONFIG_WLAN_PRE80211 is not set | 904 | # CONFIG_ATMEL is not set |
866 | # CONFIG_WLAN_80211 is not set | 905 | # CONFIG_PRISM54 is not set |
906 | # CONFIG_HOSTAP is not set | ||
867 | 907 | ||
868 | # | 908 | # |
869 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 909 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -877,6 +917,7 @@ CONFIG_WLAN=y | |||
877 | # CONFIG_NETCONSOLE is not set | 917 | # CONFIG_NETCONSOLE is not set |
878 | # CONFIG_NETPOLL is not set | 918 | # CONFIG_NETPOLL is not set |
879 | # CONFIG_NET_POLL_CONTROLLER is not set | 919 | # CONFIG_NET_POLL_CONTROLLER is not set |
920 | # CONFIG_VMXNET3 is not set | ||
880 | # CONFIG_ISDN is not set | 921 | # CONFIG_ISDN is not set |
881 | # CONFIG_PHONE is not set | 922 | # CONFIG_PHONE is not set |
882 | 923 | ||
@@ -886,6 +927,7 @@ CONFIG_WLAN=y | |||
886 | CONFIG_INPUT=y | 927 | CONFIG_INPUT=y |
887 | # CONFIG_INPUT_FF_MEMLESS is not set | 928 | # CONFIG_INPUT_FF_MEMLESS is not set |
888 | # CONFIG_INPUT_POLLDEV is not set | 929 | # CONFIG_INPUT_POLLDEV is not set |
930 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
889 | 931 | ||
890 | # | 932 | # |
891 | # Userland interfaces | 933 | # Userland interfaces |
@@ -928,6 +970,7 @@ CONFIG_SERIO=y | |||
928 | # CONFIG_SERIO_PCIPS2 is not set | 970 | # CONFIG_SERIO_PCIPS2 is not set |
929 | CONFIG_SERIO_LIBPS2=y | 971 | CONFIG_SERIO_LIBPS2=y |
930 | # CONFIG_SERIO_RAW is not set | 972 | # CONFIG_SERIO_RAW is not set |
973 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
931 | # CONFIG_GAMEPORT is not set | 974 | # CONFIG_GAMEPORT is not set |
932 | 975 | ||
933 | # | 976 | # |
@@ -1008,11 +1051,6 @@ CONFIG_I2C_HIGHLANDER=y | |||
1008 | # CONFIG_I2C_TAOS_EVM is not set | 1051 | # CONFIG_I2C_TAOS_EVM is not set |
1009 | 1052 | ||
1010 | # | 1053 | # |
1011 | # Graphics adapter I2C/DDC channel drivers | ||
1012 | # | ||
1013 | # CONFIG_I2C_VOODOO3 is not set | ||
1014 | |||
1015 | # | ||
1016 | # Other I2C/SMBus bus drivers | 1054 | # Other I2C/SMBus bus drivers |
1017 | # | 1055 | # |
1018 | # CONFIG_I2C_PCA_PLATFORM is not set | 1056 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -1021,7 +1059,6 @@ CONFIG_I2C_HIGHLANDER=y | |||
1021 | # | 1059 | # |
1022 | # Miscellaneous I2C Chip support | 1060 | # Miscellaneous I2C Chip support |
1023 | # | 1061 | # |
1024 | # CONFIG_DS1682 is not set | ||
1025 | # CONFIG_SENSORS_TSL2550 is not set | 1062 | # CONFIG_SENSORS_TSL2550 is not set |
1026 | # CONFIG_I2C_DEBUG_CORE is not set | 1063 | # CONFIG_I2C_DEBUG_CORE is not set |
1027 | # CONFIG_I2C_DEBUG_ALGO is not set | 1064 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1065,6 +1102,7 @@ CONFIG_HWMON=y | |||
1065 | # CONFIG_SENSORS_GL520SM is not set | 1102 | # CONFIG_SENSORS_GL520SM is not set |
1066 | # CONFIG_SENSORS_IT87 is not set | 1103 | # CONFIG_SENSORS_IT87 is not set |
1067 | # CONFIG_SENSORS_LM63 is not set | 1104 | # CONFIG_SENSORS_LM63 is not set |
1105 | # CONFIG_SENSORS_LM73 is not set | ||
1068 | # CONFIG_SENSORS_LM75 is not set | 1106 | # CONFIG_SENSORS_LM75 is not set |
1069 | # CONFIG_SENSORS_LM77 is not set | 1107 | # CONFIG_SENSORS_LM77 is not set |
1070 | # CONFIG_SENSORS_LM78 is not set | 1108 | # CONFIG_SENSORS_LM78 is not set |
@@ -1103,6 +1141,7 @@ CONFIG_HWMON=y | |||
1103 | # CONFIG_SENSORS_W83L786NG is not set | 1141 | # CONFIG_SENSORS_W83L786NG is not set |
1104 | # CONFIG_SENSORS_W83627HF is not set | 1142 | # CONFIG_SENSORS_W83627HF is not set |
1105 | # CONFIG_SENSORS_W83627EHF is not set | 1143 | # CONFIG_SENSORS_W83627EHF is not set |
1144 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1106 | CONFIG_THERMAL=y | 1145 | CONFIG_THERMAL=y |
1107 | # CONFIG_THERMAL_HWMON is not set | 1146 | # CONFIG_THERMAL_HWMON is not set |
1108 | # CONFIG_WATCHDOG is not set | 1147 | # CONFIG_WATCHDOG is not set |
@@ -1118,15 +1157,18 @@ CONFIG_SSB_POSSIBLE=y | |||
1118 | # | 1157 | # |
1119 | # CONFIG_MFD_CORE is not set | 1158 | # CONFIG_MFD_CORE is not set |
1120 | # CONFIG_MFD_SM501 is not set | 1159 | # CONFIG_MFD_SM501 is not set |
1160 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
1121 | # CONFIG_HTC_PASIC3 is not set | 1161 | # CONFIG_HTC_PASIC3 is not set |
1122 | # CONFIG_TWL4030_CORE is not set | 1162 | # CONFIG_TWL4030_CORE is not set |
1123 | # CONFIG_MFD_TMIO is not set | 1163 | # CONFIG_MFD_TMIO is not set |
1124 | # CONFIG_PMIC_DA903X is not set | 1164 | # CONFIG_PMIC_DA903X is not set |
1165 | # CONFIG_PMIC_ADP5520 is not set | ||
1125 | # CONFIG_MFD_WM8400 is not set | 1166 | # CONFIG_MFD_WM8400 is not set |
1126 | # CONFIG_MFD_WM831X is not set | 1167 | # CONFIG_MFD_WM831X is not set |
1127 | # CONFIG_MFD_WM8350_I2C is not set | 1168 | # CONFIG_MFD_WM8350_I2C is not set |
1128 | # CONFIG_MFD_PCF50633 is not set | 1169 | # CONFIG_MFD_PCF50633 is not set |
1129 | # CONFIG_AB3100_CORE is not set | 1170 | # CONFIG_AB3100_CORE is not set |
1171 | # CONFIG_MFD_88PM8607 is not set | ||
1130 | # CONFIG_REGULATOR is not set | 1172 | # CONFIG_REGULATOR is not set |
1131 | # CONFIG_MEDIA_SUPPORT is not set | 1173 | # CONFIG_MEDIA_SUPPORT is not set |
1132 | 1174 | ||
@@ -1211,6 +1253,7 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1211 | # CONFIG_RTC_DRV_PCF8563 is not set | 1253 | # CONFIG_RTC_DRV_PCF8563 is not set |
1212 | # CONFIG_RTC_DRV_PCF8583 is not set | 1254 | # CONFIG_RTC_DRV_PCF8583 is not set |
1213 | # CONFIG_RTC_DRV_M41T80 is not set | 1255 | # CONFIG_RTC_DRV_M41T80 is not set |
1256 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1214 | # CONFIG_RTC_DRV_S35390A is not set | 1257 | # CONFIG_RTC_DRV_S35390A is not set |
1215 | # CONFIG_RTC_DRV_FM3130 is not set | 1258 | # CONFIG_RTC_DRV_FM3130 is not set |
1216 | # CONFIG_RTC_DRV_RX8581 is not set | 1259 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1231,7 +1274,9 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1231 | # CONFIG_RTC_DRV_M48T86 is not set | 1274 | # CONFIG_RTC_DRV_M48T86 is not set |
1232 | # CONFIG_RTC_DRV_M48T35 is not set | 1275 | # CONFIG_RTC_DRV_M48T35 is not set |
1233 | # CONFIG_RTC_DRV_M48T59 is not set | 1276 | # CONFIG_RTC_DRV_M48T59 is not set |
1277 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1234 | # CONFIG_RTC_DRV_BQ4802 is not set | 1278 | # CONFIG_RTC_DRV_BQ4802 is not set |
1279 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1235 | # CONFIG_RTC_DRV_V3020 is not set | 1280 | # CONFIG_RTC_DRV_V3020 is not set |
1236 | 1281 | ||
1237 | # | 1282 | # |
@@ -1436,6 +1481,8 @@ CONFIG_SCHED_DEBUG=y | |||
1436 | # CONFIG_DEBUG_OBJECTS is not set | 1481 | # CONFIG_DEBUG_OBJECTS is not set |
1437 | # CONFIG_DEBUG_SLAB is not set | 1482 | # CONFIG_DEBUG_SLAB is not set |
1438 | # CONFIG_DEBUG_PREEMPT is not set | 1483 | # CONFIG_DEBUG_PREEMPT is not set |
1484 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1485 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1439 | # CONFIG_DEBUG_SPINLOCK is not set | 1486 | # CONFIG_DEBUG_SPINLOCK is not set |
1440 | # CONFIG_DEBUG_MUTEXES is not set | 1487 | # CONFIG_DEBUG_MUTEXES is not set |
1441 | # CONFIG_DEBUG_LOCK_ALLOC is not set | 1488 | # CONFIG_DEBUG_LOCK_ALLOC is not set |
@@ -1462,6 +1509,7 @@ CONFIG_DEBUG_INFO=y | |||
1462 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 1509 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
1463 | # CONFIG_FAULT_INJECTION is not set | 1510 | # CONFIG_FAULT_INJECTION is not set |
1464 | # CONFIG_LATENCYTOP is not set | 1511 | # CONFIG_LATENCYTOP is not set |
1512 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1465 | # CONFIG_PAGE_POISONING is not set | 1513 | # CONFIG_PAGE_POISONING is not set |
1466 | CONFIG_NOP_TRACER=y | 1514 | CONFIG_NOP_TRACER=y |
1467 | CONFIG_HAVE_FUNCTION_TRACER=y | 1515 | CONFIG_HAVE_FUNCTION_TRACER=y |
@@ -1498,9 +1546,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1498 | CONFIG_HAVE_ARCH_KGDB=y | 1546 | CONFIG_HAVE_ARCH_KGDB=y |
1499 | # CONFIG_KGDB is not set | 1547 | # CONFIG_KGDB is not set |
1500 | # CONFIG_SH_STANDARD_BIOS is not set | 1548 | # CONFIG_SH_STANDARD_BIOS is not set |
1501 | CONFIG_EARLY_SCIF_CONSOLE=y | ||
1502 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000 | ||
1503 | # CONFIG_EARLY_PRINTK is not set | ||
1504 | # CONFIG_STACK_DEBUG is not set | 1549 | # CONFIG_STACK_DEBUG is not set |
1505 | # CONFIG_DEBUG_STACK_USAGE is not set | 1550 | # CONFIG_DEBUG_STACK_USAGE is not set |
1506 | # CONFIG_4KSTACKS is not set | 1551 | # CONFIG_4KSTACKS is not set |
@@ -1514,7 +1559,11 @@ CONFIG_DUMP_CODE=y | |||
1514 | # CONFIG_KEYS is not set | 1559 | # CONFIG_KEYS is not set |
1515 | # CONFIG_SECURITY is not set | 1560 | # CONFIG_SECURITY is not set |
1516 | # CONFIG_SECURITYFS is not set | 1561 | # CONFIG_SECURITYFS is not set |
1517 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1562 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1563 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1564 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1565 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1566 | CONFIG_DEFAULT_SECURITY="" | ||
1518 | CONFIG_CRYPTO=y | 1567 | CONFIG_CRYPTO=y |
1519 | 1568 | ||
1520 | # | 1569 | # |
diff --git a/arch/sh/configs/r7785rp_defconfig b/arch/sh/configs/r7785rp_defconfig index 27ff46c13a8..f4b00451dce 100644 --- a/arch/sh/configs/r7785rp_defconfig +++ b/arch/sh/configs/r7785rp_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:29:23 2009 | 4 | # Mon Jan 4 13:19:35 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_NUMA=y | 24 | CONFIG_SYS_SUPPORTS_NUMA=y |
24 | CONFIG_SYS_SUPPORTS_PCI=y | 25 | CONFIG_SYS_SUPPORTS_PCI=y |
25 | CONFIG_SYS_SUPPORTS_TMU=y | 26 | CONFIG_SYS_SUPPORTS_TMU=y |
@@ -32,6 +33,7 @@ CONFIG_ARCH_NO_VIRT_TO_BUS=y | |||
32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 33 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 34 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_IO_TRAPPED=y | 35 | CONFIG_IO_TRAPPED=y |
36 | CONFIG_DMA_NONCOHERENT=y | ||
35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 37 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
36 | CONFIG_CONSTRUCTORS=y | 38 | CONFIG_CONSTRUCTORS=y |
37 | 39 | ||
@@ -67,6 +69,7 @@ CONFIG_AUDIT_TREE=y | |||
67 | # | 69 | # |
68 | CONFIG_TREE_RCU=y | 70 | CONFIG_TREE_RCU=y |
69 | # CONFIG_TREE_PREEMPT_RCU is not set | 71 | # CONFIG_TREE_PREEMPT_RCU is not set |
72 | # CONFIG_TINY_RCU is not set | ||
70 | CONFIG_RCU_TRACE=y | 73 | CONFIG_RCU_TRACE=y |
71 | CONFIG_RCU_FANOUT=32 | 74 | CONFIG_RCU_FANOUT=32 |
72 | # CONFIG_RCU_FANOUT_EXACT is not set | 75 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y | |||
103 | CONFIG_SHMEM=y | 106 | CONFIG_SHMEM=y |
104 | CONFIG_AIO=y | 107 | CONFIG_AIO=y |
105 | CONFIG_HAVE_PERF_EVENTS=y | 108 | CONFIG_HAVE_PERF_EVENTS=y |
109 | CONFIG_PERF_USE_VMALLOC=y | ||
106 | 110 | ||
107 | # | 111 | # |
108 | # Kernel Performance Events And Counters | 112 | # Kernel Performance Events And Counters |
@@ -110,6 +114,7 @@ CONFIG_HAVE_PERF_EVENTS=y | |||
110 | CONFIG_PERF_EVENTS=y | 114 | CONFIG_PERF_EVENTS=y |
111 | CONFIG_EVENT_PROFILE=y | 115 | CONFIG_EVENT_PROFILE=y |
112 | # CONFIG_PERF_COUNTERS is not set | 116 | # CONFIG_PERF_COUNTERS is not set |
117 | # CONFIG_DEBUG_PERF_USE_VMALLOC is not set | ||
113 | CONFIG_VM_EVENT_COUNTERS=y | 118 | CONFIG_VM_EVENT_COUNTERS=y |
114 | CONFIG_PCI_QUIRKS=y | 119 | CONFIG_PCI_QUIRKS=y |
115 | CONFIG_COMPAT_BRK=y | 120 | CONFIG_COMPAT_BRK=y |
@@ -126,6 +131,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
126 | CONFIG_HAVE_KPROBES=y | 131 | CONFIG_HAVE_KPROBES=y |
127 | CONFIG_HAVE_KRETPROBES=y | 132 | CONFIG_HAVE_KRETPROBES=y |
128 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 133 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
134 | CONFIG_HAVE_DMA_ATTRS=y | ||
129 | CONFIG_HAVE_CLK=y | 135 | CONFIG_HAVE_CLK=y |
130 | CONFIG_HAVE_DMA_API_DEBUG=y | 136 | CONFIG_HAVE_DMA_API_DEBUG=y |
131 | 137 | ||
@@ -153,14 +159,41 @@ CONFIG_LBDAF=y | |||
153 | # IO Schedulers | 159 | # IO Schedulers |
154 | # | 160 | # |
155 | CONFIG_IOSCHED_NOOP=y | 161 | CONFIG_IOSCHED_NOOP=y |
156 | # CONFIG_IOSCHED_AS is not set | ||
157 | # CONFIG_IOSCHED_DEADLINE is not set | 162 | # CONFIG_IOSCHED_DEADLINE is not set |
158 | # CONFIG_IOSCHED_CFQ is not set | 163 | # CONFIG_IOSCHED_CFQ is not set |
159 | # CONFIG_DEFAULT_AS is not set | ||
160 | # CONFIG_DEFAULT_DEADLINE is not set | 164 | # CONFIG_DEFAULT_DEADLINE is not set |
161 | # CONFIG_DEFAULT_CFQ is not set | 165 | # CONFIG_DEFAULT_CFQ is not set |
162 | CONFIG_DEFAULT_NOOP=y | 166 | CONFIG_DEFAULT_NOOP=y |
163 | CONFIG_DEFAULT_IOSCHED="noop" | 167 | CONFIG_DEFAULT_IOSCHED="noop" |
168 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
169 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
170 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
171 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
172 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
173 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
174 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
175 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
176 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
177 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
178 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
179 | # CONFIG_INLINE_READ_LOCK is not set | ||
180 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
181 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
182 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
183 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
184 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
185 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
186 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
187 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
188 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
189 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
190 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
191 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
192 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
193 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
194 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
195 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
196 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
164 | # CONFIG_FREEZER is not set | 197 | # CONFIG_FREEZER is not set |
165 | 198 | ||
166 | # | 199 | # |
@@ -248,13 +281,11 @@ CONFIG_SPARSEMEM=y | |||
248 | CONFIG_HAVE_MEMORY_PRESENT=y | 281 | CONFIG_HAVE_MEMORY_PRESENT=y |
249 | CONFIG_SPARSEMEM_STATIC=y | 282 | CONFIG_SPARSEMEM_STATIC=y |
250 | # CONFIG_MEMORY_HOTPLUG is not set | 283 | # CONFIG_MEMORY_HOTPLUG is not set |
251 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 284 | CONFIG_SPLIT_PTLOCK_CPUS=999999 |
252 | CONFIG_MIGRATION=y | 285 | CONFIG_MIGRATION=y |
253 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 286 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
254 | CONFIG_ZONE_DMA_FLAG=0 | 287 | CONFIG_ZONE_DMA_FLAG=0 |
255 | CONFIG_NR_QUICK=2 | 288 | CONFIG_NR_QUICK=2 |
256 | CONFIG_HAVE_MLOCK=y | ||
257 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
258 | # CONFIG_KSM is not set | 289 | # CONFIG_KSM is not set |
259 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 290 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
260 | 291 | ||
@@ -289,7 +320,6 @@ CONFIG_SH_R7785RP=y | |||
289 | # Timer and clock configuration | 320 | # Timer and clock configuration |
290 | # | 321 | # |
291 | CONFIG_SH_TIMER_TMU=y | 322 | CONFIG_SH_TIMER_TMU=y |
292 | CONFIG_SH_PCLK_FREQ=33333333 | ||
293 | CONFIG_SH_CLK_CPG=y | 323 | CONFIG_SH_CLK_CPG=y |
294 | CONFIG_TICK_ONESHOT=y | 324 | CONFIG_TICK_ONESHOT=y |
295 | CONFIG_NO_HZ=y | 325 | CONFIG_NO_HZ=y |
@@ -363,7 +393,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1" | |||
363 | # Bus options | 393 | # Bus options |
364 | # | 394 | # |
365 | CONFIG_PCI=y | 395 | CONFIG_PCI=y |
366 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
367 | # CONFIG_PCIEPORTBUS is not set | 396 | # CONFIG_PCIEPORTBUS is not set |
368 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 397 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
369 | # CONFIG_PCI_LEGACY is not set | 398 | # CONFIG_PCI_LEGACY is not set |
@@ -471,10 +500,6 @@ CONFIG_LLC=m | |||
471 | # CONFIG_AF_RXRPC is not set | 500 | # CONFIG_AF_RXRPC is not set |
472 | CONFIG_WIRELESS=y | 501 | CONFIG_WIRELESS=y |
473 | # CONFIG_CFG80211 is not set | 502 | # CONFIG_CFG80211 is not set |
474 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
475 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
476 | CONFIG_WIRELESS_EXT=y | ||
477 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
478 | # CONFIG_LIB80211 is not set | 503 | # CONFIG_LIB80211 is not set |
479 | 504 | ||
480 | # | 505 | # |
@@ -510,6 +535,10 @@ CONFIG_BLK_DEV=y | |||
510 | # CONFIG_BLK_DEV_UMEM is not set | 535 | # CONFIG_BLK_DEV_UMEM is not set |
511 | # CONFIG_BLK_DEV_COW_COMMON is not set | 536 | # CONFIG_BLK_DEV_COW_COMMON is not set |
512 | # CONFIG_BLK_DEV_LOOP is not set | 537 | # CONFIG_BLK_DEV_LOOP is not set |
538 | |||
539 | # | ||
540 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
541 | # | ||
513 | # CONFIG_BLK_DEV_NBD is not set | 542 | # CONFIG_BLK_DEV_NBD is not set |
514 | # CONFIG_BLK_DEV_SX8 is not set | 543 | # CONFIG_BLK_DEV_SX8 is not set |
515 | CONFIG_BLK_DEV_RAM=y | 544 | CONFIG_BLK_DEV_RAM=y |
@@ -520,6 +549,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
520 | # CONFIG_ATA_OVER_ETH is not set | 549 | # CONFIG_ATA_OVER_ETH is not set |
521 | # CONFIG_BLK_DEV_HD is not set | 550 | # CONFIG_BLK_DEV_HD is not set |
522 | CONFIG_MISC_DEVICES=y | 551 | CONFIG_MISC_DEVICES=y |
552 | # CONFIG_AD525X_DPOT is not set | ||
523 | # CONFIG_PHANTOM is not set | 553 | # CONFIG_PHANTOM is not set |
524 | # CONFIG_SGI_IOC4 is not set | 554 | # CONFIG_SGI_IOC4 is not set |
525 | # CONFIG_TIFM_CORE is not set | 555 | # CONFIG_TIFM_CORE is not set |
@@ -527,6 +557,7 @@ CONFIG_MISC_DEVICES=y | |||
527 | # CONFIG_ENCLOSURE_SERVICES is not set | 557 | # CONFIG_ENCLOSURE_SERVICES is not set |
528 | # CONFIG_HP_ILO is not set | 558 | # CONFIG_HP_ILO is not set |
529 | # CONFIG_ISL29003 is not set | 559 | # CONFIG_ISL29003 is not set |
560 | # CONFIG_DS1682 is not set | ||
530 | # CONFIG_C2PORT is not set | 561 | # CONFIG_C2PORT is not set |
531 | 562 | ||
532 | # | 563 | # |
@@ -577,8 +608,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
577 | # CONFIG_ISCSI_TCP is not set | 608 | # CONFIG_ISCSI_TCP is not set |
578 | # CONFIG_SCSI_CXGB3_ISCSI is not set | 609 | # CONFIG_SCSI_CXGB3_ISCSI is not set |
579 | # CONFIG_SCSI_BNX2_ISCSI is not set | 610 | # CONFIG_SCSI_BNX2_ISCSI is not set |
611 | # CONFIG_BE2ISCSI is not set | ||
580 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 612 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
613 | # CONFIG_SCSI_HPSA is not set | ||
581 | # CONFIG_SCSI_3W_9XXX is not set | 614 | # CONFIG_SCSI_3W_9XXX is not set |
615 | # CONFIG_SCSI_3W_SAS is not set | ||
582 | # CONFIG_SCSI_ACARD is not set | 616 | # CONFIG_SCSI_ACARD is not set |
583 | # CONFIG_SCSI_AACRAID is not set | 617 | # CONFIG_SCSI_AACRAID is not set |
584 | # CONFIG_SCSI_AIC7XXX is not set | 618 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -612,7 +646,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
612 | # CONFIG_SCSI_NSP32 is not set | 646 | # CONFIG_SCSI_NSP32 is not set |
613 | # CONFIG_SCSI_DEBUG is not set | 647 | # CONFIG_SCSI_DEBUG is not set |
614 | # CONFIG_SCSI_PMCRAID is not set | 648 | # CONFIG_SCSI_PMCRAID is not set |
649 | # CONFIG_SCSI_PM8001 is not set | ||
615 | # CONFIG_SCSI_SRP is not set | 650 | # CONFIG_SCSI_SRP is not set |
651 | # CONFIG_SCSI_BFA_FC is not set | ||
616 | # CONFIG_SCSI_DH is not set | 652 | # CONFIG_SCSI_DH is not set |
617 | # CONFIG_SCSI_OSD_INITIATOR is not set | 653 | # CONFIG_SCSI_OSD_INITIATOR is not set |
618 | CONFIG_ATA=y | 654 | CONFIG_ATA=y |
@@ -665,15 +701,16 @@ CONFIG_SATA_SIL=y | |||
665 | # CONFIG_PATA_NS87415 is not set | 701 | # CONFIG_PATA_NS87415 is not set |
666 | # CONFIG_PATA_OPTI is not set | 702 | # CONFIG_PATA_OPTI is not set |
667 | # CONFIG_PATA_OPTIDMA is not set | 703 | # CONFIG_PATA_OPTIDMA is not set |
704 | # CONFIG_PATA_PDC2027X is not set | ||
668 | # CONFIG_PATA_PDC_OLD is not set | 705 | # CONFIG_PATA_PDC_OLD is not set |
669 | # CONFIG_PATA_RADISYS is not set | 706 | # CONFIG_PATA_RADISYS is not set |
670 | # CONFIG_PATA_RDC is not set | 707 | # CONFIG_PATA_RDC is not set |
671 | # CONFIG_PATA_RZ1000 is not set | 708 | # CONFIG_PATA_RZ1000 is not set |
672 | # CONFIG_PATA_SC1200 is not set | 709 | # CONFIG_PATA_SC1200 is not set |
673 | # CONFIG_PATA_SERVERWORKS is not set | 710 | # CONFIG_PATA_SERVERWORKS is not set |
674 | # CONFIG_PATA_PDC2027X is not set | ||
675 | # CONFIG_PATA_SIL680 is not set | 711 | # CONFIG_PATA_SIL680 is not set |
676 | # CONFIG_PATA_SIS is not set | 712 | # CONFIG_PATA_SIS is not set |
713 | # CONFIG_PATA_TOSHIBA is not set | ||
677 | # CONFIG_PATA_VIA is not set | 714 | # CONFIG_PATA_VIA is not set |
678 | # CONFIG_PATA_WINBOND is not set | 715 | # CONFIG_PATA_WINBOND is not set |
679 | CONFIG_PATA_PLATFORM=y | 716 | CONFIG_PATA_PLATFORM=y |
@@ -730,6 +767,7 @@ CONFIG_AX88796_93CX6=y | |||
730 | # CONFIG_NET_PCI is not set | 767 | # CONFIG_NET_PCI is not set |
731 | # CONFIG_B44 is not set | 768 | # CONFIG_B44 is not set |
732 | # CONFIG_KS8842 is not set | 769 | # CONFIG_KS8842 is not set |
770 | # CONFIG_KS8851_MLL is not set | ||
733 | # CONFIG_ATL2 is not set | 771 | # CONFIG_ATL2 is not set |
734 | CONFIG_NETDEV_1000=y | 772 | CONFIG_NETDEV_1000=y |
735 | # CONFIG_ACENIC is not set | 773 | # CONFIG_ACENIC is not set |
@@ -776,8 +814,9 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
776 | # CONFIG_BE2NET is not set | 814 | # CONFIG_BE2NET is not set |
777 | # CONFIG_TR is not set | 815 | # CONFIG_TR is not set |
778 | CONFIG_WLAN=y | 816 | CONFIG_WLAN=y |
779 | # CONFIG_WLAN_PRE80211 is not set | 817 | # CONFIG_ATMEL is not set |
780 | # CONFIG_WLAN_80211 is not set | 818 | # CONFIG_PRISM54 is not set |
819 | # CONFIG_HOSTAP is not set | ||
781 | 820 | ||
782 | # | 821 | # |
783 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 822 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -791,6 +830,7 @@ CONFIG_WLAN=y | |||
791 | # CONFIG_NETCONSOLE is not set | 830 | # CONFIG_NETCONSOLE is not set |
792 | # CONFIG_NETPOLL is not set | 831 | # CONFIG_NETPOLL is not set |
793 | # CONFIG_NET_POLL_CONTROLLER is not set | 832 | # CONFIG_NET_POLL_CONTROLLER is not set |
833 | # CONFIG_VMXNET3 is not set | ||
794 | # CONFIG_ISDN is not set | 834 | # CONFIG_ISDN is not set |
795 | # CONFIG_PHONE is not set | 835 | # CONFIG_PHONE is not set |
796 | 836 | ||
@@ -800,6 +840,7 @@ CONFIG_WLAN=y | |||
800 | CONFIG_INPUT=y | 840 | CONFIG_INPUT=y |
801 | # CONFIG_INPUT_FF_MEMLESS is not set | 841 | # CONFIG_INPUT_FF_MEMLESS is not set |
802 | # CONFIG_INPUT_POLLDEV is not set | 842 | # CONFIG_INPUT_POLLDEV is not set |
843 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
803 | 844 | ||
804 | # | 845 | # |
805 | # Userland interfaces | 846 | # Userland interfaces |
@@ -844,6 +885,7 @@ CONFIG_SERIO=y | |||
844 | # CONFIG_SERIO_PCIPS2 is not set | 885 | # CONFIG_SERIO_PCIPS2 is not set |
845 | CONFIG_SERIO_LIBPS2=y | 886 | CONFIG_SERIO_LIBPS2=y |
846 | # CONFIG_SERIO_RAW is not set | 887 | # CONFIG_SERIO_RAW is not set |
888 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
847 | # CONFIG_GAMEPORT is not set | 889 | # CONFIG_GAMEPORT is not set |
848 | 890 | ||
849 | # | 891 | # |
@@ -925,11 +967,6 @@ CONFIG_I2C_HIGHLANDER=y | |||
925 | # CONFIG_I2C_TAOS_EVM is not set | 967 | # CONFIG_I2C_TAOS_EVM is not set |
926 | 968 | ||
927 | # | 969 | # |
928 | # Graphics adapter I2C/DDC channel drivers | ||
929 | # | ||
930 | # CONFIG_I2C_VOODOO3 is not set | ||
931 | |||
932 | # | ||
933 | # Other I2C/SMBus bus drivers | 970 | # Other I2C/SMBus bus drivers |
934 | # | 971 | # |
935 | # CONFIG_I2C_PCA_PLATFORM is not set | 972 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -938,7 +975,6 @@ CONFIG_I2C_HIGHLANDER=y | |||
938 | # | 975 | # |
939 | # Miscellaneous I2C Chip support | 976 | # Miscellaneous I2C Chip support |
940 | # | 977 | # |
941 | # CONFIG_DS1682 is not set | ||
942 | # CONFIG_SENSORS_TSL2550 is not set | 978 | # CONFIG_SENSORS_TSL2550 is not set |
943 | # CONFIG_I2C_DEBUG_CORE is not set | 979 | # CONFIG_I2C_DEBUG_CORE is not set |
944 | # CONFIG_I2C_DEBUG_ALGO is not set | 980 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -969,6 +1005,7 @@ CONFIG_GPIOLIB=y | |||
969 | # | 1005 | # |
970 | # PCI GPIO expanders: | 1006 | # PCI GPIO expanders: |
971 | # | 1007 | # |
1008 | # CONFIG_GPIO_CS5535 is not set | ||
972 | # CONFIG_GPIO_BT8XX is not set | 1009 | # CONFIG_GPIO_BT8XX is not set |
973 | # CONFIG_GPIO_LANGWELL is not set | 1010 | # CONFIG_GPIO_LANGWELL is not set |
974 | 1011 | ||
@@ -1011,6 +1048,7 @@ CONFIG_HWMON=y | |||
1011 | # CONFIG_SENSORS_GL520SM is not set | 1048 | # CONFIG_SENSORS_GL520SM is not set |
1012 | # CONFIG_SENSORS_IT87 is not set | 1049 | # CONFIG_SENSORS_IT87 is not set |
1013 | # CONFIG_SENSORS_LM63 is not set | 1050 | # CONFIG_SENSORS_LM63 is not set |
1051 | # CONFIG_SENSORS_LM73 is not set | ||
1014 | # CONFIG_SENSORS_LM75 is not set | 1052 | # CONFIG_SENSORS_LM75 is not set |
1015 | # CONFIG_SENSORS_LM77 is not set | 1053 | # CONFIG_SENSORS_LM77 is not set |
1016 | # CONFIG_SENSORS_LM78 is not set | 1054 | # CONFIG_SENSORS_LM78 is not set |
@@ -1050,6 +1088,7 @@ CONFIG_HWMON=y | |||
1050 | # CONFIG_SENSORS_W83L786NG is not set | 1088 | # CONFIG_SENSORS_W83L786NG is not set |
1051 | # CONFIG_SENSORS_W83627HF is not set | 1089 | # CONFIG_SENSORS_W83627HF is not set |
1052 | # CONFIG_SENSORS_W83627EHF is not set | 1090 | # CONFIG_SENSORS_W83627EHF is not set |
1091 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1053 | # CONFIG_THERMAL is not set | 1092 | # CONFIG_THERMAL is not set |
1054 | # CONFIG_WATCHDOG is not set | 1093 | # CONFIG_WATCHDOG is not set |
1055 | CONFIG_SSB_POSSIBLE=y | 1094 | CONFIG_SSB_POSSIBLE=y |
@@ -1064,16 +1103,19 @@ CONFIG_SSB_POSSIBLE=y | |||
1064 | # | 1103 | # |
1065 | # CONFIG_MFD_CORE is not set | 1104 | # CONFIG_MFD_CORE is not set |
1066 | # CONFIG_MFD_SM501 is not set | 1105 | # CONFIG_MFD_SM501 is not set |
1106 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
1067 | # CONFIG_HTC_PASIC3 is not set | 1107 | # CONFIG_HTC_PASIC3 is not set |
1068 | # CONFIG_TPS65010 is not set | 1108 | # CONFIG_TPS65010 is not set |
1069 | # CONFIG_TWL4030_CORE is not set | 1109 | # CONFIG_TWL4030_CORE is not set |
1070 | # CONFIG_MFD_TMIO is not set | 1110 | # CONFIG_MFD_TMIO is not set |
1071 | # CONFIG_PMIC_DA903X is not set | 1111 | # CONFIG_PMIC_DA903X is not set |
1112 | # CONFIG_PMIC_ADP5520 is not set | ||
1072 | # CONFIG_MFD_WM8400 is not set | 1113 | # CONFIG_MFD_WM8400 is not set |
1073 | # CONFIG_MFD_WM831X is not set | 1114 | # CONFIG_MFD_WM831X is not set |
1074 | # CONFIG_MFD_WM8350_I2C is not set | 1115 | # CONFIG_MFD_WM8350_I2C is not set |
1075 | # CONFIG_MFD_PCF50633 is not set | 1116 | # CONFIG_MFD_PCF50633 is not set |
1076 | # CONFIG_AB3100_CORE is not set | 1117 | # CONFIG_AB3100_CORE is not set |
1118 | # CONFIG_MFD_88PM8607 is not set | ||
1077 | # CONFIG_REGULATOR is not set | 1119 | # CONFIG_REGULATOR is not set |
1078 | # CONFIG_MEDIA_SUPPORT is not set | 1120 | # CONFIG_MEDIA_SUPPORT is not set |
1079 | 1121 | ||
@@ -1211,6 +1253,7 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1211 | # CONFIG_RTC_DRV_PCF8563 is not set | 1253 | # CONFIG_RTC_DRV_PCF8563 is not set |
1212 | # CONFIG_RTC_DRV_PCF8583 is not set | 1254 | # CONFIG_RTC_DRV_PCF8583 is not set |
1213 | # CONFIG_RTC_DRV_M41T80 is not set | 1255 | # CONFIG_RTC_DRV_M41T80 is not set |
1256 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1214 | # CONFIG_RTC_DRV_S35390A is not set | 1257 | # CONFIG_RTC_DRV_S35390A is not set |
1215 | # CONFIG_RTC_DRV_FM3130 is not set | 1258 | # CONFIG_RTC_DRV_FM3130 is not set |
1216 | # CONFIG_RTC_DRV_RX8581 is not set | 1259 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1231,7 +1274,9 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1231 | # CONFIG_RTC_DRV_M48T86 is not set | 1274 | # CONFIG_RTC_DRV_M48T86 is not set |
1232 | # CONFIG_RTC_DRV_M48T35 is not set | 1275 | # CONFIG_RTC_DRV_M48T35 is not set |
1233 | # CONFIG_RTC_DRV_M48T59 is not set | 1276 | # CONFIG_RTC_DRV_M48T59 is not set |
1277 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1234 | # CONFIG_RTC_DRV_BQ4802 is not set | 1278 | # CONFIG_RTC_DRV_BQ4802 is not set |
1279 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1235 | # CONFIG_RTC_DRV_V3020 is not set | 1280 | # CONFIG_RTC_DRV_V3020 is not set |
1236 | 1281 | ||
1237 | # | 1282 | # |
@@ -1463,6 +1508,7 @@ CONFIG_FRAME_POINTER=y | |||
1463 | # CONFIG_LKDTM is not set | 1508 | # CONFIG_LKDTM is not set |
1464 | # CONFIG_FAULT_INJECTION is not set | 1509 | # CONFIG_FAULT_INJECTION is not set |
1465 | # CONFIG_LATENCYTOP is not set | 1510 | # CONFIG_LATENCYTOP is not set |
1511 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1466 | # CONFIG_PAGE_POISONING is not set | 1512 | # CONFIG_PAGE_POISONING is not set |
1467 | CONFIG_NOP_TRACER=y | 1513 | CONFIG_NOP_TRACER=y |
1468 | CONFIG_HAVE_FUNCTION_TRACER=y | 1514 | CONFIG_HAVE_FUNCTION_TRACER=y |
@@ -1499,8 +1545,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1499 | CONFIG_HAVE_ARCH_KGDB=y | 1545 | CONFIG_HAVE_ARCH_KGDB=y |
1500 | # CONFIG_KGDB is not set | 1546 | # CONFIG_KGDB is not set |
1501 | CONFIG_SH_STANDARD_BIOS=y | 1547 | CONFIG_SH_STANDARD_BIOS=y |
1502 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1503 | CONFIG_EARLY_PRINTK=y | ||
1504 | # CONFIG_STACK_DEBUG is not set | 1548 | # CONFIG_STACK_DEBUG is not set |
1505 | CONFIG_DEBUG_STACK_USAGE=y | 1549 | CONFIG_DEBUG_STACK_USAGE=y |
1506 | CONFIG_4KSTACKS=y | 1550 | CONFIG_4KSTACKS=y |
@@ -1514,7 +1558,11 @@ CONFIG_DUMP_CODE=y | |||
1514 | # CONFIG_KEYS is not set | 1558 | # CONFIG_KEYS is not set |
1515 | # CONFIG_SECURITY is not set | 1559 | # CONFIG_SECURITY is not set |
1516 | # CONFIG_SECURITYFS is not set | 1560 | # CONFIG_SECURITYFS is not set |
1517 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1561 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1562 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1563 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1564 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1565 | CONFIG_DEFAULT_SECURITY="" | ||
1518 | CONFIG_CRYPTO=y | 1566 | CONFIG_CRYPTO=y |
1519 | 1567 | ||
1520 | # | 1568 | # |
diff --git a/arch/sh/configs/rsk7201_defconfig b/arch/sh/configs/rsk7201_defconfig index c40db12e9ad..2fc635a5a8c 100644 --- a/arch/sh/configs/rsk7201_defconfig +++ b/arch/sh/configs/rsk7201_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:34:29 2009 | 4 | # Mon Jan 4 13:23:12 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
32 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 34 | CONFIG_CONSTRUCTORS=y |
34 | 35 | ||
@@ -56,6 +57,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
56 | # | 57 | # |
57 | CONFIG_TREE_RCU=y | 58 | CONFIG_TREE_RCU=y |
58 | # CONFIG_TREE_PREEMPT_RCU is not set | 59 | # CONFIG_TREE_PREEMPT_RCU is not set |
60 | # CONFIG_TINY_RCU is not set | ||
59 | # CONFIG_RCU_TRACE is not set | 61 | # CONFIG_RCU_TRACE is not set |
60 | CONFIG_RCU_FANOUT=32 | 62 | CONFIG_RCU_FANOUT=32 |
61 | # CONFIG_RCU_FANOUT_EXACT is not set | 63 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -97,6 +99,7 @@ CONFIG_TIMERFD=y | |||
97 | CONFIG_EVENTFD=y | 99 | CONFIG_EVENTFD=y |
98 | # CONFIG_AIO is not set | 100 | # CONFIG_AIO is not set |
99 | CONFIG_HAVE_PERF_EVENTS=y | 101 | CONFIG_HAVE_PERF_EVENTS=y |
102 | CONFIG_PERF_USE_VMALLOC=y | ||
100 | 103 | ||
101 | # | 104 | # |
102 | # Kernel Performance Events And Counters | 105 | # Kernel Performance Events And Counters |
@@ -109,6 +112,7 @@ CONFIG_COMPAT_BRK=y | |||
109 | # CONFIG_SLAB is not set | 112 | # CONFIG_SLAB is not set |
110 | # CONFIG_SLUB is not set | 113 | # CONFIG_SLUB is not set |
111 | CONFIG_SLOB=y | 114 | CONFIG_SLOB=y |
115 | # CONFIG_MMAP_ALLOW_UNINITIALIZED is not set | ||
112 | CONFIG_PROFILING=y | 116 | CONFIG_PROFILING=y |
113 | CONFIG_TRACEPOINTS=y | 117 | CONFIG_TRACEPOINTS=y |
114 | CONFIG_OPROFILE=y | 118 | CONFIG_OPROFILE=y |
@@ -117,6 +121,7 @@ CONFIG_HAVE_OPROFILE=y | |||
117 | CONFIG_HAVE_KPROBES=y | 121 | CONFIG_HAVE_KPROBES=y |
118 | CONFIG_HAVE_KRETPROBES=y | 122 | CONFIG_HAVE_KRETPROBES=y |
119 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 123 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
124 | CONFIG_HAVE_DMA_ATTRS=y | ||
120 | CONFIG_HAVE_CLK=y | 125 | CONFIG_HAVE_CLK=y |
121 | CONFIG_HAVE_DMA_API_DEBUG=y | 126 | CONFIG_HAVE_DMA_API_DEBUG=y |
122 | 127 | ||
@@ -142,14 +147,41 @@ CONFIG_LBDAF=y | |||
142 | # IO Schedulers | 147 | # IO Schedulers |
143 | # | 148 | # |
144 | CONFIG_IOSCHED_NOOP=y | 149 | CONFIG_IOSCHED_NOOP=y |
145 | # CONFIG_IOSCHED_AS is not set | ||
146 | # CONFIG_IOSCHED_DEADLINE is not set | 150 | # CONFIG_IOSCHED_DEADLINE is not set |
147 | # CONFIG_IOSCHED_CFQ is not set | 151 | # CONFIG_IOSCHED_CFQ is not set |
148 | # CONFIG_DEFAULT_AS is not set | ||
149 | # CONFIG_DEFAULT_DEADLINE is not set | 152 | # CONFIG_DEFAULT_DEADLINE is not set |
150 | # CONFIG_DEFAULT_CFQ is not set | 153 | # CONFIG_DEFAULT_CFQ is not set |
151 | CONFIG_DEFAULT_NOOP=y | 154 | CONFIG_DEFAULT_NOOP=y |
152 | CONFIG_DEFAULT_IOSCHED="noop" | 155 | CONFIG_DEFAULT_IOSCHED="noop" |
156 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
157 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
162 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
163 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
164 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
165 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
166 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
167 | # CONFIG_INLINE_READ_LOCK is not set | ||
168 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
170 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
171 | CONFIG_INLINE_READ_UNLOCK=y | ||
172 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
173 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
174 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
175 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
180 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
181 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
182 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
183 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
184 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
153 | # CONFIG_FREEZER is not set | 185 | # CONFIG_FREEZER is not set |
154 | 186 | ||
155 | # | 187 | # |
@@ -224,7 +256,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
224 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 256 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
225 | CONFIG_ZONE_DMA_FLAG=0 | 257 | CONFIG_ZONE_DMA_FLAG=0 |
226 | CONFIG_NR_QUICK=2 | 258 | CONFIG_NR_QUICK=2 |
227 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
228 | CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 | 259 | CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 |
229 | 260 | ||
230 | # | 261 | # |
@@ -433,6 +464,10 @@ CONFIG_MTD_PHYSMAP=y | |||
433 | CONFIG_BLK_DEV=y | 464 | CONFIG_BLK_DEV=y |
434 | # CONFIG_BLK_DEV_COW_COMMON is not set | 465 | # CONFIG_BLK_DEV_COW_COMMON is not set |
435 | # CONFIG_BLK_DEV_LOOP is not set | 466 | # CONFIG_BLK_DEV_LOOP is not set |
467 | |||
468 | # | ||
469 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
470 | # | ||
436 | # CONFIG_BLK_DEV_RAM is not set | 471 | # CONFIG_BLK_DEV_RAM is not set |
437 | # CONFIG_CDROM_PKTCDVD is not set | 472 | # CONFIG_CDROM_PKTCDVD is not set |
438 | # CONFIG_BLK_DEV_HD is not set | 473 | # CONFIG_BLK_DEV_HD is not set |
@@ -464,6 +499,7 @@ CONFIG_HAVE_IDE=y | |||
464 | CONFIG_INPUT=y | 499 | CONFIG_INPUT=y |
465 | # CONFIG_INPUT_FF_MEMLESS is not set | 500 | # CONFIG_INPUT_FF_MEMLESS is not set |
466 | # CONFIG_INPUT_POLLDEV is not set | 501 | # CONFIG_INPUT_POLLDEV is not set |
502 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
467 | 503 | ||
468 | # | 504 | # |
469 | # Userland interfaces | 505 | # Userland interfaces |
@@ -540,6 +576,7 @@ CONFIG_SSB_POSSIBLE=y | |||
540 | # | 576 | # |
541 | # CONFIG_MFD_CORE is not set | 577 | # CONFIG_MFD_CORE is not set |
542 | # CONFIG_MFD_SM501 is not set | 578 | # CONFIG_MFD_SM501 is not set |
579 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
543 | # CONFIG_HTC_PASIC3 is not set | 580 | # CONFIG_HTC_PASIC3 is not set |
544 | # CONFIG_MFD_TMIO is not set | 581 | # CONFIG_MFD_TMIO is not set |
545 | # CONFIG_REGULATOR is not set | 582 | # CONFIG_REGULATOR is not set |
@@ -594,7 +631,9 @@ CONFIG_RTC_INTF_DEV=y | |||
594 | # CONFIG_RTC_DRV_M48T86 is not set | 631 | # CONFIG_RTC_DRV_M48T86 is not set |
595 | # CONFIG_RTC_DRV_M48T35 is not set | 632 | # CONFIG_RTC_DRV_M48T35 is not set |
596 | # CONFIG_RTC_DRV_M48T59 is not set | 633 | # CONFIG_RTC_DRV_M48T59 is not set |
634 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
597 | # CONFIG_RTC_DRV_BQ4802 is not set | 635 | # CONFIG_RTC_DRV_BQ4802 is not set |
636 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
598 | # CONFIG_RTC_DRV_V3020 is not set | 637 | # CONFIG_RTC_DRV_V3020 is not set |
599 | 638 | ||
600 | # | 639 | # |
@@ -618,6 +657,7 @@ CONFIG_EXT2_FS=y | |||
618 | # CONFIG_EXT2_FS_XATTR is not set | 657 | # CONFIG_EXT2_FS_XATTR is not set |
619 | # CONFIG_EXT3_FS is not set | 658 | # CONFIG_EXT3_FS is not set |
620 | # CONFIG_EXT4_FS is not set | 659 | # CONFIG_EXT4_FS is not set |
660 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
621 | # CONFIG_REISERFS_FS is not set | 661 | # CONFIG_REISERFS_FS is not set |
622 | # CONFIG_JFS_FS is not set | 662 | # CONFIG_JFS_FS is not set |
623 | # CONFIG_FS_POSIX_ACL is not set | 663 | # CONFIG_FS_POSIX_ACL is not set |
@@ -717,7 +757,7 @@ CONFIG_DEBUG_FS=y | |||
717 | # CONFIG_HEADERS_CHECK is not set | 757 | # CONFIG_HEADERS_CHECK is not set |
718 | # CONFIG_DEBUG_KERNEL is not set | 758 | # CONFIG_DEBUG_KERNEL is not set |
719 | CONFIG_STACKTRACE=y | 759 | CONFIG_STACKTRACE=y |
720 | # CONFIG_DEBUG_BUGVERBOSE is not set | 760 | CONFIG_DEBUG_BUGVERBOSE=y |
721 | # CONFIG_DEBUG_MEMORY_INIT is not set | 761 | # CONFIG_DEBUG_MEMORY_INIT is not set |
722 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 762 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
723 | # CONFIG_LATENCYTOP is not set | 763 | # CONFIG_LATENCYTOP is not set |
@@ -741,7 +781,6 @@ CONFIG_TRACING_SUPPORT=y | |||
741 | # CONFIG_SAMPLES is not set | 781 | # CONFIG_SAMPLES is not set |
742 | CONFIG_HAVE_ARCH_KGDB=y | 782 | CONFIG_HAVE_ARCH_KGDB=y |
743 | # CONFIG_SH_STANDARD_BIOS is not set | 783 | # CONFIG_SH_STANDARD_BIOS is not set |
744 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
745 | # CONFIG_DWARF_UNWINDER is not set | 784 | # CONFIG_DWARF_UNWINDER is not set |
746 | 785 | ||
747 | # | 786 | # |
@@ -750,7 +789,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
750 | # CONFIG_KEYS is not set | 789 | # CONFIG_KEYS is not set |
751 | # CONFIG_SECURITY is not set | 790 | # CONFIG_SECURITY is not set |
752 | # CONFIG_SECURITYFS is not set | 791 | # CONFIG_SECURITYFS is not set |
753 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 792 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
793 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
794 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
795 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
796 | CONFIG_DEFAULT_SECURITY="" | ||
754 | # CONFIG_CRYPTO is not set | 797 | # CONFIG_CRYPTO is not set |
755 | CONFIG_BINARY_PRINTF=y | 798 | CONFIG_BINARY_PRINTF=y |
756 | 799 | ||
diff --git a/arch/sh/configs/rsk7203_defconfig b/arch/sh/configs/rsk7203_defconfig index 5cabdb3a84f..0169e60e094 100644 --- a/arch/sh/configs/rsk7203_defconfig +++ b/arch/sh/configs/rsk7203_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:35:04 2009 | 4 | # Mon Jan 4 13:23:54 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -30,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
35 | 36 | ||
@@ -61,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
61 | # | 62 | # |
62 | CONFIG_TREE_RCU=y | 63 | CONFIG_TREE_RCU=y |
63 | # CONFIG_TREE_PREEMPT_RCU is not set | 64 | # CONFIG_TREE_PREEMPT_RCU is not set |
65 | # CONFIG_TINY_RCU is not set | ||
64 | # CONFIG_RCU_TRACE is not set | 66 | # CONFIG_RCU_TRACE is not set |
65 | CONFIG_RCU_FANOUT=32 | 67 | CONFIG_RCU_FANOUT=32 |
66 | # CONFIG_RCU_FANOUT_EXACT is not set | 68 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -104,6 +106,7 @@ CONFIG_TIMERFD=y | |||
104 | CONFIG_EVENTFD=y | 106 | CONFIG_EVENTFD=y |
105 | CONFIG_AIO=y | 107 | CONFIG_AIO=y |
106 | CONFIG_HAVE_PERF_EVENTS=y | 108 | CONFIG_HAVE_PERF_EVENTS=y |
109 | CONFIG_PERF_USE_VMALLOC=y | ||
107 | 110 | ||
108 | # | 111 | # |
109 | # Kernel Performance Events And Counters | 112 | # Kernel Performance Events And Counters |
@@ -111,11 +114,13 @@ CONFIG_HAVE_PERF_EVENTS=y | |||
111 | CONFIG_PERF_EVENTS=y | 114 | CONFIG_PERF_EVENTS=y |
112 | CONFIG_EVENT_PROFILE=y | 115 | CONFIG_EVENT_PROFILE=y |
113 | # CONFIG_PERF_COUNTERS is not set | 116 | # CONFIG_PERF_COUNTERS is not set |
117 | # CONFIG_DEBUG_PERF_USE_VMALLOC is not set | ||
114 | CONFIG_VM_EVENT_COUNTERS=y | 118 | CONFIG_VM_EVENT_COUNTERS=y |
115 | CONFIG_COMPAT_BRK=y | 119 | CONFIG_COMPAT_BRK=y |
116 | # CONFIG_SLAB is not set | 120 | # CONFIG_SLAB is not set |
117 | # CONFIG_SLUB is not set | 121 | # CONFIG_SLUB is not set |
118 | CONFIG_SLOB=y | 122 | CONFIG_SLOB=y |
123 | # CONFIG_MMAP_ALLOW_UNINITIALIZED is not set | ||
119 | CONFIG_PROFILING=y | 124 | CONFIG_PROFILING=y |
120 | CONFIG_TRACEPOINTS=y | 125 | CONFIG_TRACEPOINTS=y |
121 | CONFIG_OPROFILE=y | 126 | CONFIG_OPROFILE=y |
@@ -124,6 +129,7 @@ CONFIG_HAVE_OPROFILE=y | |||
124 | CONFIG_HAVE_KPROBES=y | 129 | CONFIG_HAVE_KPROBES=y |
125 | CONFIG_HAVE_KRETPROBES=y | 130 | CONFIG_HAVE_KRETPROBES=y |
126 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 131 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
132 | CONFIG_HAVE_DMA_ATTRS=y | ||
127 | CONFIG_HAVE_CLK=y | 133 | CONFIG_HAVE_CLK=y |
128 | CONFIG_HAVE_DMA_API_DEBUG=y | 134 | CONFIG_HAVE_DMA_API_DEBUG=y |
129 | 135 | ||
@@ -149,14 +155,41 @@ CONFIG_LBDAF=y | |||
149 | # IO Schedulers | 155 | # IO Schedulers |
150 | # | 156 | # |
151 | CONFIG_IOSCHED_NOOP=y | 157 | CONFIG_IOSCHED_NOOP=y |
152 | # CONFIG_IOSCHED_AS is not set | ||
153 | # CONFIG_IOSCHED_DEADLINE is not set | 158 | # CONFIG_IOSCHED_DEADLINE is not set |
154 | # CONFIG_IOSCHED_CFQ is not set | 159 | # CONFIG_IOSCHED_CFQ is not set |
155 | # CONFIG_DEFAULT_AS is not set | ||
156 | # CONFIG_DEFAULT_DEADLINE is not set | 160 | # CONFIG_DEFAULT_DEADLINE is not set |
157 | # CONFIG_DEFAULT_CFQ is not set | 161 | # CONFIG_DEFAULT_CFQ is not set |
158 | CONFIG_DEFAULT_NOOP=y | 162 | CONFIG_DEFAULT_NOOP=y |
159 | CONFIG_DEFAULT_IOSCHED="noop" | 163 | CONFIG_DEFAULT_IOSCHED="noop" |
164 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
165 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
166 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
167 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
168 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
169 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
170 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
171 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
172 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
173 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
174 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
175 | # CONFIG_INLINE_READ_LOCK is not set | ||
176 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
177 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
178 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
179 | CONFIG_INLINE_READ_UNLOCK=y | ||
180 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
181 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
182 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
183 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
184 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
185 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
186 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
187 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
188 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
189 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
190 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
191 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
192 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
160 | # CONFIG_FREEZER is not set | 193 | # CONFIG_FREEZER is not set |
161 | 194 | ||
162 | # | 195 | # |
@@ -231,7 +264,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
231 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 264 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
232 | CONFIG_ZONE_DMA_FLAG=0 | 265 | CONFIG_ZONE_DMA_FLAG=0 |
233 | CONFIG_NR_QUICK=2 | 266 | CONFIG_NR_QUICK=2 |
234 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
235 | CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 | 267 | CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 |
236 | 268 | ||
237 | # | 269 | # |
@@ -424,9 +456,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
424 | # CONFIG_AF_RXRPC is not set | 456 | # CONFIG_AF_RXRPC is not set |
425 | CONFIG_WIRELESS=y | 457 | CONFIG_WIRELESS=y |
426 | # CONFIG_CFG80211 is not set | 458 | # CONFIG_CFG80211 is not set |
427 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
428 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
429 | # CONFIG_WIRELESS_EXT is not set | ||
430 | # CONFIG_LIB80211 is not set | 459 | # CONFIG_LIB80211 is not set |
431 | 460 | ||
432 | # | 461 | # |
@@ -539,6 +568,10 @@ CONFIG_MTD_PHYSMAP=y | |||
539 | CONFIG_BLK_DEV=y | 568 | CONFIG_BLK_DEV=y |
540 | # CONFIG_BLK_DEV_COW_COMMON is not set | 569 | # CONFIG_BLK_DEV_COW_COMMON is not set |
541 | # CONFIG_BLK_DEV_LOOP is not set | 570 | # CONFIG_BLK_DEV_LOOP is not set |
571 | |||
572 | # | ||
573 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
574 | # | ||
542 | # CONFIG_BLK_DEV_NBD is not set | 575 | # CONFIG_BLK_DEV_NBD is not set |
543 | # CONFIG_BLK_DEV_UB is not set | 576 | # CONFIG_BLK_DEV_UB is not set |
544 | # CONFIG_BLK_DEV_RAM is not set | 577 | # CONFIG_BLK_DEV_RAM is not set |
@@ -610,11 +643,12 @@ CONFIG_SMSC911X=y | |||
610 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 643 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
611 | # CONFIG_B44 is not set | 644 | # CONFIG_B44 is not set |
612 | # CONFIG_KS8842 is not set | 645 | # CONFIG_KS8842 is not set |
646 | # CONFIG_KS8851_MLL is not set | ||
613 | # CONFIG_NETDEV_1000 is not set | 647 | # CONFIG_NETDEV_1000 is not set |
614 | # CONFIG_NETDEV_10000 is not set | 648 | # CONFIG_NETDEV_10000 is not set |
615 | CONFIG_WLAN=y | 649 | CONFIG_WLAN=y |
616 | # CONFIG_WLAN_PRE80211 is not set | 650 | # CONFIG_USB_ZD1201 is not set |
617 | # CONFIG_WLAN_80211 is not set | 651 | # CONFIG_HOSTAP is not set |
618 | 652 | ||
619 | # | 653 | # |
620 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 654 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -643,6 +677,7 @@ CONFIG_WLAN=y | |||
643 | CONFIG_INPUT=y | 677 | CONFIG_INPUT=y |
644 | CONFIG_INPUT_FF_MEMLESS=m | 678 | CONFIG_INPUT_FF_MEMLESS=m |
645 | # CONFIG_INPUT_POLLDEV is not set | 679 | # CONFIG_INPUT_POLLDEV is not set |
680 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
646 | 681 | ||
647 | # | 682 | # |
648 | # Userland interfaces | 683 | # Userland interfaces |
@@ -743,6 +778,7 @@ CONFIG_SSB_POSSIBLE=y | |||
743 | # | 778 | # |
744 | # CONFIG_MFD_CORE is not set | 779 | # CONFIG_MFD_CORE is not set |
745 | # CONFIG_MFD_SM501 is not set | 780 | # CONFIG_MFD_SM501 is not set |
781 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
746 | # CONFIG_HTC_PASIC3 is not set | 782 | # CONFIG_HTC_PASIC3 is not set |
747 | # CONFIG_MFD_TMIO is not set | 783 | # CONFIG_MFD_TMIO is not set |
748 | CONFIG_REGULATOR=y | 784 | CONFIG_REGULATOR=y |
@@ -910,6 +946,8 @@ CONFIG_LEDS_CLASS=y | |||
910 | # | 946 | # |
911 | CONFIG_LEDS_GPIO=y | 947 | CONFIG_LEDS_GPIO=y |
912 | CONFIG_LEDS_GPIO_PLATFORM=y | 948 | CONFIG_LEDS_GPIO_PLATFORM=y |
949 | # CONFIG_LEDS_REGULATOR is not set | ||
950 | # CONFIG_LEDS_LT3593 is not set | ||
913 | 951 | ||
914 | # | 952 | # |
915 | # LED Triggers | 953 | # LED Triggers |
@@ -955,7 +993,9 @@ CONFIG_RTC_INTF_DEV=y | |||
955 | # CONFIG_RTC_DRV_M48T86 is not set | 993 | # CONFIG_RTC_DRV_M48T86 is not set |
956 | # CONFIG_RTC_DRV_M48T35 is not set | 994 | # CONFIG_RTC_DRV_M48T35 is not set |
957 | # CONFIG_RTC_DRV_M48T59 is not set | 995 | # CONFIG_RTC_DRV_M48T59 is not set |
996 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
958 | # CONFIG_RTC_DRV_BQ4802 is not set | 997 | # CONFIG_RTC_DRV_BQ4802 is not set |
998 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
959 | # CONFIG_RTC_DRV_V3020 is not set | 999 | # CONFIG_RTC_DRV_V3020 is not set |
960 | 1000 | ||
961 | # | 1001 | # |
@@ -978,6 +1018,7 @@ CONFIG_RTC_DRV_SH=y | |||
978 | # CONFIG_EXT2_FS is not set | 1018 | # CONFIG_EXT2_FS is not set |
979 | # CONFIG_EXT3_FS is not set | 1019 | # CONFIG_EXT3_FS is not set |
980 | # CONFIG_EXT4_FS is not set | 1020 | # CONFIG_EXT4_FS is not set |
1021 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
981 | # CONFIG_REISERFS_FS is not set | 1022 | # CONFIG_REISERFS_FS is not set |
982 | # CONFIG_JFS_FS is not set | 1023 | # CONFIG_JFS_FS is not set |
983 | # CONFIG_FS_POSIX_ACL is not set | 1024 | # CONFIG_FS_POSIX_ACL is not set |
@@ -1137,6 +1178,7 @@ CONFIG_DEBUG_OBJECTS=y | |||
1137 | # CONFIG_DEBUG_OBJECTS_SELFTEST is not set | 1178 | # CONFIG_DEBUG_OBJECTS_SELFTEST is not set |
1138 | # CONFIG_DEBUG_OBJECTS_FREE is not set | 1179 | # CONFIG_DEBUG_OBJECTS_FREE is not set |
1139 | # CONFIG_DEBUG_OBJECTS_TIMERS is not set | 1180 | # CONFIG_DEBUG_OBJECTS_TIMERS is not set |
1181 | # CONFIG_DEBUG_OBJECTS_WORK is not set | ||
1140 | CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 | 1182 | CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 |
1141 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1183 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1142 | # CONFIG_RT_MUTEX_TESTER is not set | 1184 | # CONFIG_RT_MUTEX_TESTER is not set |
@@ -1203,9 +1245,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1203 | CONFIG_HAVE_ARCH_KGDB=y | 1245 | CONFIG_HAVE_ARCH_KGDB=y |
1204 | # CONFIG_KGDB is not set | 1246 | # CONFIG_KGDB is not set |
1205 | # CONFIG_SH_STANDARD_BIOS is not set | 1247 | # CONFIG_SH_STANDARD_BIOS is not set |
1206 | CONFIG_EARLY_SCIF_CONSOLE=y | ||
1207 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xfffe8000 | ||
1208 | CONFIG_EARLY_PRINTK=y | ||
1209 | # CONFIG_STACK_DEBUG is not set | 1248 | # CONFIG_STACK_DEBUG is not set |
1210 | CONFIG_DEBUG_STACK_USAGE=y | 1249 | CONFIG_DEBUG_STACK_USAGE=y |
1211 | CONFIG_DUMP_CODE=y | 1250 | CONFIG_DUMP_CODE=y |
@@ -1218,7 +1257,11 @@ CONFIG_DUMP_CODE=y | |||
1218 | # CONFIG_KEYS is not set | 1257 | # CONFIG_KEYS is not set |
1219 | # CONFIG_SECURITY is not set | 1258 | # CONFIG_SECURITY is not set |
1220 | # CONFIG_SECURITYFS is not set | 1259 | # CONFIG_SECURITYFS is not set |
1221 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1260 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1261 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1262 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1263 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1264 | CONFIG_DEFAULT_SECURITY="" | ||
1222 | # CONFIG_CRYPTO is not set | 1265 | # CONFIG_CRYPTO is not set |
1223 | CONFIG_BINARY_PRINTF=y | 1266 | CONFIG_BINARY_PRINTF=y |
1224 | 1267 | ||
diff --git a/arch/sh/configs/rts7751r2d1_defconfig b/arch/sh/configs/rts7751r2d1_defconfig index 6f1126b3e48..fba1f62d56e 100644 --- a/arch/sh/configs/rts7751r2d1_defconfig +++ b/arch/sh/configs/rts7751r2d1_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:36:25 2009 | 4 | # Mon Jan 4 13:25:36 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_PCI=y | 24 | CONFIG_SYS_SUPPORTS_PCI=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -31,6 +32,7 @@ CONFIG_ARCH_NO_VIRT_TO_BUS=y | |||
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_IO_TRAPPED=y | 34 | CONFIG_IO_TRAPPED=y |
35 | CONFIG_DMA_NONCOHERENT=y | ||
34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 36 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
35 | CONFIG_CONSTRUCTORS=y | 37 | CONFIG_CONSTRUCTORS=y |
36 | 38 | ||
@@ -61,6 +63,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
61 | # | 63 | # |
62 | CONFIG_TREE_RCU=y | 64 | CONFIG_TREE_RCU=y |
63 | # CONFIG_TREE_PREEMPT_RCU is not set | 65 | # CONFIG_TREE_PREEMPT_RCU is not set |
66 | # CONFIG_TINY_RCU is not set | ||
64 | # CONFIG_RCU_TRACE is not set | 67 | # CONFIG_RCU_TRACE is not set |
65 | CONFIG_RCU_FANOUT=32 | 68 | CONFIG_RCU_FANOUT=32 |
66 | # CONFIG_RCU_FANOUT_EXACT is not set | 69 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -95,6 +98,7 @@ CONFIG_EVENTFD=y | |||
95 | CONFIG_SHMEM=y | 98 | CONFIG_SHMEM=y |
96 | CONFIG_AIO=y | 99 | CONFIG_AIO=y |
97 | CONFIG_HAVE_PERF_EVENTS=y | 100 | CONFIG_HAVE_PERF_EVENTS=y |
101 | CONFIG_PERF_USE_VMALLOC=y | ||
98 | 102 | ||
99 | # | 103 | # |
100 | # Kernel Performance Events And Counters | 104 | # Kernel Performance Events And Counters |
@@ -117,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
117 | CONFIG_HAVE_KPROBES=y | 121 | CONFIG_HAVE_KPROBES=y |
118 | CONFIG_HAVE_KRETPROBES=y | 122 | CONFIG_HAVE_KRETPROBES=y |
119 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 123 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
124 | CONFIG_HAVE_DMA_ATTRS=y | ||
120 | CONFIG_HAVE_CLK=y | 125 | CONFIG_HAVE_CLK=y |
121 | CONFIG_HAVE_DMA_API_DEBUG=y | 126 | CONFIG_HAVE_DMA_API_DEBUG=y |
122 | 127 | ||
@@ -143,14 +148,41 @@ CONFIG_LBDAF=y | |||
143 | # IO Schedulers | 148 | # IO Schedulers |
144 | # | 149 | # |
145 | CONFIG_IOSCHED_NOOP=y | 150 | CONFIG_IOSCHED_NOOP=y |
146 | CONFIG_IOSCHED_AS=y | ||
147 | CONFIG_IOSCHED_DEADLINE=y | 151 | CONFIG_IOSCHED_DEADLINE=y |
148 | CONFIG_IOSCHED_CFQ=y | 152 | CONFIG_IOSCHED_CFQ=y |
149 | CONFIG_DEFAULT_AS=y | ||
150 | # CONFIG_DEFAULT_DEADLINE is not set | 153 | # CONFIG_DEFAULT_DEADLINE is not set |
151 | # CONFIG_DEFAULT_CFQ is not set | 154 | CONFIG_DEFAULT_CFQ=y |
152 | # CONFIG_DEFAULT_NOOP is not set | 155 | # CONFIG_DEFAULT_NOOP is not set |
153 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 156 | CONFIG_DEFAULT_IOSCHED="cfq" |
157 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
158 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
162 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
163 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
164 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
165 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
166 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
167 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
168 | # CONFIG_INLINE_READ_LOCK is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
170 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
171 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
172 | CONFIG_INLINE_READ_UNLOCK=y | ||
173 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
174 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
175 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
176 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
180 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
181 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
182 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
183 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
184 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
185 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
154 | # CONFIG_FREEZER is not set | 186 | # CONFIG_FREEZER is not set |
155 | 187 | ||
156 | # | 188 | # |
@@ -226,8 +258,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
226 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 258 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
227 | CONFIG_ZONE_DMA_FLAG=0 | 259 | CONFIG_ZONE_DMA_FLAG=0 |
228 | CONFIG_NR_QUICK=2 | 260 | CONFIG_NR_QUICK=2 |
229 | CONFIG_HAVE_MLOCK=y | ||
230 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
231 | # CONFIG_KSM is not set | 261 | # CONFIG_KSM is not set |
232 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 262 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
233 | 263 | ||
@@ -321,7 +351,6 @@ CONFIG_GUSA=y | |||
321 | CONFIG_ZERO_PAGE_OFFSET=0x00010000 | 351 | CONFIG_ZERO_PAGE_OFFSET=0x00010000 |
322 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 352 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
323 | CONFIG_ENTRY_OFFSET=0x00001000 | 353 | CONFIG_ENTRY_OFFSET=0x00001000 |
324 | # CONFIG_UBC_WAKEUP is not set | ||
325 | CONFIG_CMDLINE_OVERWRITE=y | 354 | CONFIG_CMDLINE_OVERWRITE=y |
326 | # CONFIG_CMDLINE_EXTEND is not set | 355 | # CONFIG_CMDLINE_EXTEND is not set |
327 | CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1" | 356 | CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1" |
@@ -330,7 +359,6 @@ CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1" | |||
330 | # Bus options | 359 | # Bus options |
331 | # | 360 | # |
332 | CONFIG_PCI=y | 361 | CONFIG_PCI=y |
333 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
334 | # CONFIG_PCIEPORTBUS is not set | 362 | # CONFIG_PCIEPORTBUS is not set |
335 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 363 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
336 | CONFIG_PCI_LEGACY=y | 364 | CONFIG_PCI_LEGACY=y |
@@ -429,10 +457,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
429 | # CONFIG_AF_RXRPC is not set | 457 | # CONFIG_AF_RXRPC is not set |
430 | CONFIG_WIRELESS=y | 458 | CONFIG_WIRELESS=y |
431 | # CONFIG_CFG80211 is not set | 459 | # CONFIG_CFG80211 is not set |
432 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
433 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
434 | CONFIG_WIRELESS_EXT=y | ||
435 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
436 | # CONFIG_LIB80211 is not set | 460 | # CONFIG_LIB80211 is not set |
437 | 461 | ||
438 | # | 462 | # |
@@ -466,6 +490,10 @@ CONFIG_BLK_DEV=y | |||
466 | # CONFIG_BLK_DEV_UMEM is not set | 490 | # CONFIG_BLK_DEV_UMEM is not set |
467 | # CONFIG_BLK_DEV_COW_COMMON is not set | 491 | # CONFIG_BLK_DEV_COW_COMMON is not set |
468 | # CONFIG_BLK_DEV_LOOP is not set | 492 | # CONFIG_BLK_DEV_LOOP is not set |
493 | |||
494 | # | ||
495 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
496 | # | ||
469 | # CONFIG_BLK_DEV_NBD is not set | 497 | # CONFIG_BLK_DEV_NBD is not set |
470 | # CONFIG_BLK_DEV_SX8 is not set | 498 | # CONFIG_BLK_DEV_SX8 is not set |
471 | # CONFIG_BLK_DEV_UB is not set | 499 | # CONFIG_BLK_DEV_UB is not set |
@@ -482,6 +510,7 @@ CONFIG_MISC_DEVICES=y | |||
482 | # CONFIG_TIFM_CORE is not set | 510 | # CONFIG_TIFM_CORE is not set |
483 | # CONFIG_ENCLOSURE_SERVICES is not set | 511 | # CONFIG_ENCLOSURE_SERVICES is not set |
484 | # CONFIG_HP_ILO is not set | 512 | # CONFIG_HP_ILO is not set |
513 | # CONFIG_TI_DAC7512 is not set | ||
485 | # CONFIG_C2PORT is not set | 514 | # CONFIG_C2PORT is not set |
486 | 515 | ||
487 | # | 516 | # |
@@ -530,8 +559,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
530 | # CONFIG_ISCSI_TCP is not set | 559 | # CONFIG_ISCSI_TCP is not set |
531 | # CONFIG_SCSI_CXGB3_ISCSI is not set | 560 | # CONFIG_SCSI_CXGB3_ISCSI is not set |
532 | # CONFIG_SCSI_BNX2_ISCSI is not set | 561 | # CONFIG_SCSI_BNX2_ISCSI is not set |
562 | # CONFIG_BE2ISCSI is not set | ||
533 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 563 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
564 | # CONFIG_SCSI_HPSA is not set | ||
534 | # CONFIG_SCSI_3W_9XXX is not set | 565 | # CONFIG_SCSI_3W_9XXX is not set |
566 | # CONFIG_SCSI_3W_SAS is not set | ||
535 | # CONFIG_SCSI_ACARD is not set | 567 | # CONFIG_SCSI_ACARD is not set |
536 | # CONFIG_SCSI_AACRAID is not set | 568 | # CONFIG_SCSI_AACRAID is not set |
537 | # CONFIG_SCSI_AIC7XXX is not set | 569 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -565,7 +597,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
565 | # CONFIG_SCSI_NSP32 is not set | 597 | # CONFIG_SCSI_NSP32 is not set |
566 | # CONFIG_SCSI_DEBUG is not set | 598 | # CONFIG_SCSI_DEBUG is not set |
567 | # CONFIG_SCSI_PMCRAID is not set | 599 | # CONFIG_SCSI_PMCRAID is not set |
600 | # CONFIG_SCSI_PM8001 is not set | ||
568 | # CONFIG_SCSI_SRP is not set | 601 | # CONFIG_SCSI_SRP is not set |
602 | # CONFIG_SCSI_BFA_FC is not set | ||
569 | # CONFIG_SCSI_DH is not set | 603 | # CONFIG_SCSI_DH is not set |
570 | # CONFIG_SCSI_OSD_INITIATOR is not set | 604 | # CONFIG_SCSI_OSD_INITIATOR is not set |
571 | CONFIG_ATA=y | 605 | CONFIG_ATA=y |
@@ -618,15 +652,16 @@ CONFIG_ATA_SFF=y | |||
618 | # CONFIG_PATA_NS87415 is not set | 652 | # CONFIG_PATA_NS87415 is not set |
619 | # CONFIG_PATA_OPTI is not set | 653 | # CONFIG_PATA_OPTI is not set |
620 | # CONFIG_PATA_OPTIDMA is not set | 654 | # CONFIG_PATA_OPTIDMA is not set |
655 | # CONFIG_PATA_PDC2027X is not set | ||
621 | # CONFIG_PATA_PDC_OLD is not set | 656 | # CONFIG_PATA_PDC_OLD is not set |
622 | # CONFIG_PATA_RADISYS is not set | 657 | # CONFIG_PATA_RADISYS is not set |
623 | # CONFIG_PATA_RDC is not set | 658 | # CONFIG_PATA_RDC is not set |
624 | # CONFIG_PATA_RZ1000 is not set | 659 | # CONFIG_PATA_RZ1000 is not set |
625 | # CONFIG_PATA_SC1200 is not set | 660 | # CONFIG_PATA_SC1200 is not set |
626 | # CONFIG_PATA_SERVERWORKS is not set | 661 | # CONFIG_PATA_SERVERWORKS is not set |
627 | # CONFIG_PATA_PDC2027X is not set | ||
628 | # CONFIG_PATA_SIL680 is not set | 662 | # CONFIG_PATA_SIL680 is not set |
629 | # CONFIG_PATA_SIS is not set | 663 | # CONFIG_PATA_SIS is not set |
664 | # CONFIG_PATA_TOSHIBA is not set | ||
630 | # CONFIG_PATA_VIA is not set | 665 | # CONFIG_PATA_VIA is not set |
631 | # CONFIG_PATA_WINBOND is not set | 666 | # CONFIG_PATA_WINBOND is not set |
632 | CONFIG_PATA_PLATFORM=y | 667 | CONFIG_PATA_PLATFORM=y |
@@ -704,6 +739,7 @@ CONFIG_8139TOO=y | |||
704 | # CONFIG_TLAN is not set | 739 | # CONFIG_TLAN is not set |
705 | # CONFIG_KS8842 is not set | 740 | # CONFIG_KS8842 is not set |
706 | # CONFIG_KS8851 is not set | 741 | # CONFIG_KS8851 is not set |
742 | # CONFIG_KS8851_MLL is not set | ||
707 | # CONFIG_VIA_RHINE is not set | 743 | # CONFIG_VIA_RHINE is not set |
708 | # CONFIG_SC92031 is not set | 744 | # CONFIG_SC92031 is not set |
709 | # CONFIG_ATL2 is not set | 745 | # CONFIG_ATL2 is not set |
@@ -752,8 +788,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
752 | # CONFIG_BE2NET is not set | 788 | # CONFIG_BE2NET is not set |
753 | # CONFIG_TR is not set | 789 | # CONFIG_TR is not set |
754 | CONFIG_WLAN=y | 790 | CONFIG_WLAN=y |
755 | # CONFIG_WLAN_PRE80211 is not set | 791 | # CONFIG_ATMEL is not set |
756 | # CONFIG_WLAN_80211 is not set | 792 | # CONFIG_PRISM54 is not set |
793 | # CONFIG_USB_ZD1201 is not set | ||
794 | # CONFIG_HOSTAP is not set | ||
757 | 795 | ||
758 | # | 796 | # |
759 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 797 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -776,6 +814,7 @@ CONFIG_WLAN=y | |||
776 | # CONFIG_NETCONSOLE is not set | 814 | # CONFIG_NETCONSOLE is not set |
777 | # CONFIG_NETPOLL is not set | 815 | # CONFIG_NETPOLL is not set |
778 | # CONFIG_NET_POLL_CONTROLLER is not set | 816 | # CONFIG_NET_POLL_CONTROLLER is not set |
817 | # CONFIG_VMXNET3 is not set | ||
779 | # CONFIG_ISDN is not set | 818 | # CONFIG_ISDN is not set |
780 | # CONFIG_PHONE is not set | 819 | # CONFIG_PHONE is not set |
781 | 820 | ||
@@ -785,6 +824,7 @@ CONFIG_WLAN=y | |||
785 | CONFIG_INPUT=y | 824 | CONFIG_INPUT=y |
786 | CONFIG_INPUT_FF_MEMLESS=m | 825 | CONFIG_INPUT_FF_MEMLESS=m |
787 | # CONFIG_INPUT_POLLDEV is not set | 826 | # CONFIG_INPUT_POLLDEV is not set |
827 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
788 | 828 | ||
789 | # | 829 | # |
790 | # Userland interfaces | 830 | # Userland interfaces |
@@ -862,7 +902,10 @@ CONFIG_SPI_MASTER=y | |||
862 | # SPI Master Controller Drivers | 902 | # SPI Master Controller Drivers |
863 | # | 903 | # |
864 | CONFIG_SPI_BITBANG=y | 904 | CONFIG_SPI_BITBANG=y |
905 | # CONFIG_SPI_SH_MSIOF is not set | ||
865 | CONFIG_SPI_SH_SCI=y | 906 | CONFIG_SPI_SH_SCI=y |
907 | # CONFIG_SPI_XILINX is not set | ||
908 | # CONFIG_SPI_DESIGNWARE is not set | ||
866 | 909 | ||
867 | # | 910 | # |
868 | # SPI Protocol Masters | 911 | # SPI Protocol Masters |
@@ -915,10 +958,12 @@ CONFIG_SSB_POSSIBLE=y | |||
915 | # | 958 | # |
916 | # CONFIG_MFD_CORE is not set | 959 | # CONFIG_MFD_CORE is not set |
917 | CONFIG_MFD_SM501=y | 960 | CONFIG_MFD_SM501=y |
961 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
918 | # CONFIG_HTC_PASIC3 is not set | 962 | # CONFIG_HTC_PASIC3 is not set |
919 | # CONFIG_MFD_TMIO is not set | 963 | # CONFIG_MFD_TMIO is not set |
920 | # CONFIG_MFD_MC13783 is not set | 964 | # CONFIG_MFD_MC13783 is not set |
921 | # CONFIG_EZX_PCAP is not set | 965 | # CONFIG_EZX_PCAP is not set |
966 | # CONFIG_AB4500_CORE is not set | ||
922 | # CONFIG_REGULATOR is not set | 967 | # CONFIG_REGULATOR is not set |
923 | # CONFIG_MEDIA_SUPPORT is not set | 968 | # CONFIG_MEDIA_SUPPORT is not set |
924 | 969 | ||
@@ -1055,6 +1100,7 @@ CONFIG_SND_PCI=y | |||
1055 | # CONFIG_SND_OXYGEN is not set | 1100 | # CONFIG_SND_OXYGEN is not set |
1056 | # CONFIG_SND_CS4281 is not set | 1101 | # CONFIG_SND_CS4281 is not set |
1057 | # CONFIG_SND_CS46XX is not set | 1102 | # CONFIG_SND_CS46XX is not set |
1103 | # CONFIG_SND_CS5535AUDIO is not set | ||
1058 | # CONFIG_SND_CTXFI is not set | 1104 | # CONFIG_SND_CTXFI is not set |
1059 | # CONFIG_SND_DARLA20 is not set | 1105 | # CONFIG_SND_DARLA20 is not set |
1060 | # CONFIG_SND_GINA20 is not set | 1106 | # CONFIG_SND_GINA20 is not set |
@@ -1308,7 +1354,9 @@ CONFIG_RTC_DRV_R9701=y | |||
1308 | # CONFIG_RTC_DRV_M48T86 is not set | 1354 | # CONFIG_RTC_DRV_M48T86 is not set |
1309 | # CONFIG_RTC_DRV_M48T35 is not set | 1355 | # CONFIG_RTC_DRV_M48T35 is not set |
1310 | # CONFIG_RTC_DRV_M48T59 is not set | 1356 | # CONFIG_RTC_DRV_M48T59 is not set |
1357 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1311 | # CONFIG_RTC_DRV_BQ4802 is not set | 1358 | # CONFIG_RTC_DRV_BQ4802 is not set |
1359 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1312 | # CONFIG_RTC_DRV_V3020 is not set | 1360 | # CONFIG_RTC_DRV_V3020 is not set |
1313 | 1361 | ||
1314 | # | 1362 | # |
@@ -1333,6 +1381,7 @@ CONFIG_EXT2_FS=y | |||
1333 | # CONFIG_EXT2_FS_XIP is not set | 1381 | # CONFIG_EXT2_FS_XIP is not set |
1334 | # CONFIG_EXT3_FS is not set | 1382 | # CONFIG_EXT3_FS is not set |
1335 | # CONFIG_EXT4_FS is not set | 1383 | # CONFIG_EXT4_FS is not set |
1384 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
1336 | # CONFIG_REISERFS_FS is not set | 1385 | # CONFIG_REISERFS_FS is not set |
1337 | # CONFIG_JFS_FS is not set | 1386 | # CONFIG_JFS_FS is not set |
1338 | # CONFIG_FS_POSIX_ACL is not set | 1387 | # CONFIG_FS_POSIX_ACL is not set |
@@ -1474,10 +1523,11 @@ CONFIG_DEBUG_FS=y | |||
1474 | # CONFIG_HEADERS_CHECK is not set | 1523 | # CONFIG_HEADERS_CHECK is not set |
1475 | # CONFIG_DEBUG_KERNEL is not set | 1524 | # CONFIG_DEBUG_KERNEL is not set |
1476 | CONFIG_STACKTRACE=y | 1525 | CONFIG_STACKTRACE=y |
1477 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1526 | CONFIG_DEBUG_BUGVERBOSE=y |
1478 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1527 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1479 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1528 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1480 | # CONFIG_LATENCYTOP is not set | 1529 | # CONFIG_LATENCYTOP is not set |
1530 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1481 | CONFIG_NOP_TRACER=y | 1531 | CONFIG_NOP_TRACER=y |
1482 | CONFIG_HAVE_FUNCTION_TRACER=y | 1532 | CONFIG_HAVE_FUNCTION_TRACER=y |
1483 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1533 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1497,9 +1547,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1497 | # CONFIG_SAMPLES is not set | 1547 | # CONFIG_SAMPLES is not set |
1498 | CONFIG_HAVE_ARCH_KGDB=y | 1548 | CONFIG_HAVE_ARCH_KGDB=y |
1499 | # CONFIG_SH_STANDARD_BIOS is not set | 1549 | # CONFIG_SH_STANDARD_BIOS is not set |
1500 | CONFIG_EARLY_SCIF_CONSOLE=y | ||
1501 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 | ||
1502 | CONFIG_EARLY_PRINTK=y | ||
1503 | # CONFIG_DWARF_UNWINDER is not set | 1550 | # CONFIG_DWARF_UNWINDER is not set |
1504 | 1551 | ||
1505 | # | 1552 | # |
@@ -1508,7 +1555,11 @@ CONFIG_EARLY_PRINTK=y | |||
1508 | # CONFIG_KEYS is not set | 1555 | # CONFIG_KEYS is not set |
1509 | # CONFIG_SECURITY is not set | 1556 | # CONFIG_SECURITY is not set |
1510 | # CONFIG_SECURITYFS is not set | 1557 | # CONFIG_SECURITYFS is not set |
1511 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1558 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1559 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1560 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1561 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1562 | CONFIG_DEFAULT_SECURITY="" | ||
1512 | CONFIG_CRYPTO=y | 1563 | CONFIG_CRYPTO=y |
1513 | 1564 | ||
1514 | # | 1565 | # |
diff --git a/arch/sh/configs/rts7751r2dplus_defconfig b/arch/sh/configs/rts7751r2dplus_defconfig index 9215bbb13d6..a8d538f06e6 100644 --- a/arch/sh/configs/rts7751r2dplus_defconfig +++ b/arch/sh/configs/rts7751r2dplus_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:39:48 2009 | 4 | # Mon Jan 4 13:26:39 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_PCI=y | 24 | CONFIG_SYS_SUPPORTS_PCI=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -31,6 +32,7 @@ CONFIG_ARCH_NO_VIRT_TO_BUS=y | |||
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_IO_TRAPPED=y | 34 | CONFIG_IO_TRAPPED=y |
35 | CONFIG_DMA_NONCOHERENT=y | ||
34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 36 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
35 | CONFIG_CONSTRUCTORS=y | 37 | CONFIG_CONSTRUCTORS=y |
36 | 38 | ||
@@ -61,6 +63,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
61 | # | 63 | # |
62 | CONFIG_TREE_RCU=y | 64 | CONFIG_TREE_RCU=y |
63 | # CONFIG_TREE_PREEMPT_RCU is not set | 65 | # CONFIG_TREE_PREEMPT_RCU is not set |
66 | # CONFIG_TINY_RCU is not set | ||
64 | # CONFIG_RCU_TRACE is not set | 67 | # CONFIG_RCU_TRACE is not set |
65 | CONFIG_RCU_FANOUT=32 | 68 | CONFIG_RCU_FANOUT=32 |
66 | # CONFIG_RCU_FANOUT_EXACT is not set | 69 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -95,6 +98,7 @@ CONFIG_EVENTFD=y | |||
95 | CONFIG_SHMEM=y | 98 | CONFIG_SHMEM=y |
96 | CONFIG_AIO=y | 99 | CONFIG_AIO=y |
97 | CONFIG_HAVE_PERF_EVENTS=y | 100 | CONFIG_HAVE_PERF_EVENTS=y |
101 | CONFIG_PERF_USE_VMALLOC=y | ||
98 | 102 | ||
99 | # | 103 | # |
100 | # Kernel Performance Events And Counters | 104 | # Kernel Performance Events And Counters |
@@ -117,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
117 | CONFIG_HAVE_KPROBES=y | 121 | CONFIG_HAVE_KPROBES=y |
118 | CONFIG_HAVE_KRETPROBES=y | 122 | CONFIG_HAVE_KRETPROBES=y |
119 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 123 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
124 | CONFIG_HAVE_DMA_ATTRS=y | ||
120 | CONFIG_HAVE_CLK=y | 125 | CONFIG_HAVE_CLK=y |
121 | CONFIG_HAVE_DMA_API_DEBUG=y | 126 | CONFIG_HAVE_DMA_API_DEBUG=y |
122 | 127 | ||
@@ -143,14 +148,41 @@ CONFIG_LBDAF=y | |||
143 | # IO Schedulers | 148 | # IO Schedulers |
144 | # | 149 | # |
145 | CONFIG_IOSCHED_NOOP=y | 150 | CONFIG_IOSCHED_NOOP=y |
146 | CONFIG_IOSCHED_AS=y | ||
147 | CONFIG_IOSCHED_DEADLINE=y | 151 | CONFIG_IOSCHED_DEADLINE=y |
148 | CONFIG_IOSCHED_CFQ=y | 152 | CONFIG_IOSCHED_CFQ=y |
149 | CONFIG_DEFAULT_AS=y | ||
150 | # CONFIG_DEFAULT_DEADLINE is not set | 153 | # CONFIG_DEFAULT_DEADLINE is not set |
151 | # CONFIG_DEFAULT_CFQ is not set | 154 | CONFIG_DEFAULT_CFQ=y |
152 | # CONFIG_DEFAULT_NOOP is not set | 155 | # CONFIG_DEFAULT_NOOP is not set |
153 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 156 | CONFIG_DEFAULT_IOSCHED="cfq" |
157 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
158 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
162 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
163 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
164 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
165 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
166 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
167 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
168 | # CONFIG_INLINE_READ_LOCK is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
170 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
171 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
172 | CONFIG_INLINE_READ_UNLOCK=y | ||
173 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
174 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
175 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
176 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
180 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
181 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
182 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
183 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
184 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
185 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
154 | # CONFIG_FREEZER is not set | 186 | # CONFIG_FREEZER is not set |
155 | 187 | ||
156 | # | 188 | # |
@@ -226,8 +258,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
226 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 258 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
227 | CONFIG_ZONE_DMA_FLAG=0 | 259 | CONFIG_ZONE_DMA_FLAG=0 |
228 | CONFIG_NR_QUICK=2 | 260 | CONFIG_NR_QUICK=2 |
229 | CONFIG_HAVE_MLOCK=y | ||
230 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
231 | # CONFIG_KSM is not set | 261 | # CONFIG_KSM is not set |
232 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 262 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
233 | 263 | ||
@@ -321,7 +351,6 @@ CONFIG_GUSA=y | |||
321 | CONFIG_ZERO_PAGE_OFFSET=0x00010000 | 351 | CONFIG_ZERO_PAGE_OFFSET=0x00010000 |
322 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 352 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
323 | CONFIG_ENTRY_OFFSET=0x00001000 | 353 | CONFIG_ENTRY_OFFSET=0x00001000 |
324 | # CONFIG_UBC_WAKEUP is not set | ||
325 | CONFIG_CMDLINE_OVERWRITE=y | 354 | CONFIG_CMDLINE_OVERWRITE=y |
326 | # CONFIG_CMDLINE_EXTEND is not set | 355 | # CONFIG_CMDLINE_EXTEND is not set |
327 | CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1" | 356 | CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1" |
@@ -330,7 +359,6 @@ CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 root=/dev/sda1" | |||
330 | # Bus options | 359 | # Bus options |
331 | # | 360 | # |
332 | CONFIG_PCI=y | 361 | CONFIG_PCI=y |
333 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
334 | # CONFIG_PCIEPORTBUS is not set | 362 | # CONFIG_PCIEPORTBUS is not set |
335 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 363 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
336 | CONFIG_PCI_LEGACY=y | 364 | CONFIG_PCI_LEGACY=y |
@@ -429,10 +457,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
429 | # CONFIG_AF_RXRPC is not set | 457 | # CONFIG_AF_RXRPC is not set |
430 | CONFIG_WIRELESS=y | 458 | CONFIG_WIRELESS=y |
431 | # CONFIG_CFG80211 is not set | 459 | # CONFIG_CFG80211 is not set |
432 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
433 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
434 | CONFIG_WIRELESS_EXT=y | ||
435 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
436 | # CONFIG_LIB80211 is not set | 460 | # CONFIG_LIB80211 is not set |
437 | 461 | ||
438 | # | 462 | # |
@@ -552,6 +576,10 @@ CONFIG_BLK_DEV=y | |||
552 | # CONFIG_BLK_DEV_UMEM is not set | 576 | # CONFIG_BLK_DEV_UMEM is not set |
553 | # CONFIG_BLK_DEV_COW_COMMON is not set | 577 | # CONFIG_BLK_DEV_COW_COMMON is not set |
554 | # CONFIG_BLK_DEV_LOOP is not set | 578 | # CONFIG_BLK_DEV_LOOP is not set |
579 | |||
580 | # | ||
581 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
582 | # | ||
555 | # CONFIG_BLK_DEV_NBD is not set | 583 | # CONFIG_BLK_DEV_NBD is not set |
556 | # CONFIG_BLK_DEV_SX8 is not set | 584 | # CONFIG_BLK_DEV_SX8 is not set |
557 | # CONFIG_BLK_DEV_UB is not set | 585 | # CONFIG_BLK_DEV_UB is not set |
@@ -568,6 +596,7 @@ CONFIG_MISC_DEVICES=y | |||
568 | # CONFIG_TIFM_CORE is not set | 596 | # CONFIG_TIFM_CORE is not set |
569 | # CONFIG_ENCLOSURE_SERVICES is not set | 597 | # CONFIG_ENCLOSURE_SERVICES is not set |
570 | # CONFIG_HP_ILO is not set | 598 | # CONFIG_HP_ILO is not set |
599 | # CONFIG_TI_DAC7512 is not set | ||
571 | # CONFIG_C2PORT is not set | 600 | # CONFIG_C2PORT is not set |
572 | 601 | ||
573 | # | 602 | # |
@@ -616,8 +645,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
616 | # CONFIG_ISCSI_TCP is not set | 645 | # CONFIG_ISCSI_TCP is not set |
617 | # CONFIG_SCSI_CXGB3_ISCSI is not set | 646 | # CONFIG_SCSI_CXGB3_ISCSI is not set |
618 | # CONFIG_SCSI_BNX2_ISCSI is not set | 647 | # CONFIG_SCSI_BNX2_ISCSI is not set |
648 | # CONFIG_BE2ISCSI is not set | ||
619 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 649 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
650 | # CONFIG_SCSI_HPSA is not set | ||
620 | # CONFIG_SCSI_3W_9XXX is not set | 651 | # CONFIG_SCSI_3W_9XXX is not set |
652 | # CONFIG_SCSI_3W_SAS is not set | ||
621 | # CONFIG_SCSI_ACARD is not set | 653 | # CONFIG_SCSI_ACARD is not set |
622 | # CONFIG_SCSI_AACRAID is not set | 654 | # CONFIG_SCSI_AACRAID is not set |
623 | # CONFIG_SCSI_AIC7XXX is not set | 655 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -651,7 +683,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
651 | # CONFIG_SCSI_NSP32 is not set | 683 | # CONFIG_SCSI_NSP32 is not set |
652 | # CONFIG_SCSI_DEBUG is not set | 684 | # CONFIG_SCSI_DEBUG is not set |
653 | # CONFIG_SCSI_PMCRAID is not set | 685 | # CONFIG_SCSI_PMCRAID is not set |
686 | # CONFIG_SCSI_PM8001 is not set | ||
654 | # CONFIG_SCSI_SRP is not set | 687 | # CONFIG_SCSI_SRP is not set |
688 | # CONFIG_SCSI_BFA_FC is not set | ||
655 | # CONFIG_SCSI_DH is not set | 689 | # CONFIG_SCSI_DH is not set |
656 | # CONFIG_SCSI_OSD_INITIATOR is not set | 690 | # CONFIG_SCSI_OSD_INITIATOR is not set |
657 | CONFIG_ATA=y | 691 | CONFIG_ATA=y |
@@ -704,15 +738,16 @@ CONFIG_ATA_SFF=y | |||
704 | # CONFIG_PATA_NS87415 is not set | 738 | # CONFIG_PATA_NS87415 is not set |
705 | # CONFIG_PATA_OPTI is not set | 739 | # CONFIG_PATA_OPTI is not set |
706 | # CONFIG_PATA_OPTIDMA is not set | 740 | # CONFIG_PATA_OPTIDMA is not set |
741 | # CONFIG_PATA_PDC2027X is not set | ||
707 | # CONFIG_PATA_PDC_OLD is not set | 742 | # CONFIG_PATA_PDC_OLD is not set |
708 | # CONFIG_PATA_RADISYS is not set | 743 | # CONFIG_PATA_RADISYS is not set |
709 | # CONFIG_PATA_RDC is not set | 744 | # CONFIG_PATA_RDC is not set |
710 | # CONFIG_PATA_RZ1000 is not set | 745 | # CONFIG_PATA_RZ1000 is not set |
711 | # CONFIG_PATA_SC1200 is not set | 746 | # CONFIG_PATA_SC1200 is not set |
712 | # CONFIG_PATA_SERVERWORKS is not set | 747 | # CONFIG_PATA_SERVERWORKS is not set |
713 | # CONFIG_PATA_PDC2027X is not set | ||
714 | # CONFIG_PATA_SIL680 is not set | 748 | # CONFIG_PATA_SIL680 is not set |
715 | # CONFIG_PATA_SIS is not set | 749 | # CONFIG_PATA_SIS is not set |
750 | # CONFIG_PATA_TOSHIBA is not set | ||
716 | # CONFIG_PATA_VIA is not set | 751 | # CONFIG_PATA_VIA is not set |
717 | # CONFIG_PATA_WINBOND is not set | 752 | # CONFIG_PATA_WINBOND is not set |
718 | CONFIG_PATA_PLATFORM=y | 753 | CONFIG_PATA_PLATFORM=y |
@@ -790,6 +825,7 @@ CONFIG_8139TOO=y | |||
790 | # CONFIG_TLAN is not set | 825 | # CONFIG_TLAN is not set |
791 | # CONFIG_KS8842 is not set | 826 | # CONFIG_KS8842 is not set |
792 | # CONFIG_KS8851 is not set | 827 | # CONFIG_KS8851 is not set |
828 | # CONFIG_KS8851_MLL is not set | ||
793 | # CONFIG_VIA_RHINE is not set | 829 | # CONFIG_VIA_RHINE is not set |
794 | # CONFIG_SC92031 is not set | 830 | # CONFIG_SC92031 is not set |
795 | # CONFIG_ATL2 is not set | 831 | # CONFIG_ATL2 is not set |
@@ -838,8 +874,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
838 | # CONFIG_BE2NET is not set | 874 | # CONFIG_BE2NET is not set |
839 | # CONFIG_TR is not set | 875 | # CONFIG_TR is not set |
840 | CONFIG_WLAN=y | 876 | CONFIG_WLAN=y |
841 | # CONFIG_WLAN_PRE80211 is not set | 877 | # CONFIG_ATMEL is not set |
842 | # CONFIG_WLAN_80211 is not set | 878 | # CONFIG_PRISM54 is not set |
879 | # CONFIG_USB_ZD1201 is not set | ||
880 | # CONFIG_HOSTAP is not set | ||
843 | 881 | ||
844 | # | 882 | # |
845 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 883 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -862,6 +900,7 @@ CONFIG_WLAN=y | |||
862 | # CONFIG_NETCONSOLE is not set | 900 | # CONFIG_NETCONSOLE is not set |
863 | # CONFIG_NETPOLL is not set | 901 | # CONFIG_NETPOLL is not set |
864 | # CONFIG_NET_POLL_CONTROLLER is not set | 902 | # CONFIG_NET_POLL_CONTROLLER is not set |
903 | # CONFIG_VMXNET3 is not set | ||
865 | # CONFIG_ISDN is not set | 904 | # CONFIG_ISDN is not set |
866 | # CONFIG_PHONE is not set | 905 | # CONFIG_PHONE is not set |
867 | 906 | ||
@@ -871,6 +910,7 @@ CONFIG_WLAN=y | |||
871 | CONFIG_INPUT=y | 910 | CONFIG_INPUT=y |
872 | CONFIG_INPUT_FF_MEMLESS=m | 911 | CONFIG_INPUT_FF_MEMLESS=m |
873 | # CONFIG_INPUT_POLLDEV is not set | 912 | # CONFIG_INPUT_POLLDEV is not set |
913 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
874 | 914 | ||
875 | # | 915 | # |
876 | # Userland interfaces | 916 | # Userland interfaces |
@@ -948,7 +988,10 @@ CONFIG_SPI_MASTER=y | |||
948 | # SPI Master Controller Drivers | 988 | # SPI Master Controller Drivers |
949 | # | 989 | # |
950 | CONFIG_SPI_BITBANG=y | 990 | CONFIG_SPI_BITBANG=y |
991 | # CONFIG_SPI_SH_MSIOF is not set | ||
951 | CONFIG_SPI_SH_SCI=y | 992 | CONFIG_SPI_SH_SCI=y |
993 | # CONFIG_SPI_XILINX is not set | ||
994 | # CONFIG_SPI_DESIGNWARE is not set | ||
952 | 995 | ||
953 | # | 996 | # |
954 | # SPI Protocol Masters | 997 | # SPI Protocol Masters |
@@ -1001,10 +1044,12 @@ CONFIG_SSB_POSSIBLE=y | |||
1001 | # | 1044 | # |
1002 | # CONFIG_MFD_CORE is not set | 1045 | # CONFIG_MFD_CORE is not set |
1003 | CONFIG_MFD_SM501=y | 1046 | CONFIG_MFD_SM501=y |
1047 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
1004 | # CONFIG_HTC_PASIC3 is not set | 1048 | # CONFIG_HTC_PASIC3 is not set |
1005 | # CONFIG_MFD_TMIO is not set | 1049 | # CONFIG_MFD_TMIO is not set |
1006 | # CONFIG_MFD_MC13783 is not set | 1050 | # CONFIG_MFD_MC13783 is not set |
1007 | # CONFIG_EZX_PCAP is not set | 1051 | # CONFIG_EZX_PCAP is not set |
1052 | # CONFIG_AB4500_CORE is not set | ||
1008 | # CONFIG_REGULATOR is not set | 1053 | # CONFIG_REGULATOR is not set |
1009 | # CONFIG_MEDIA_SUPPORT is not set | 1054 | # CONFIG_MEDIA_SUPPORT is not set |
1010 | 1055 | ||
@@ -1141,6 +1186,7 @@ CONFIG_SND_PCI=y | |||
1141 | # CONFIG_SND_OXYGEN is not set | 1186 | # CONFIG_SND_OXYGEN is not set |
1142 | # CONFIG_SND_CS4281 is not set | 1187 | # CONFIG_SND_CS4281 is not set |
1143 | # CONFIG_SND_CS46XX is not set | 1188 | # CONFIG_SND_CS46XX is not set |
1189 | # CONFIG_SND_CS5535AUDIO is not set | ||
1144 | # CONFIG_SND_CTXFI is not set | 1190 | # CONFIG_SND_CTXFI is not set |
1145 | # CONFIG_SND_DARLA20 is not set | 1191 | # CONFIG_SND_DARLA20 is not set |
1146 | # CONFIG_SND_GINA20 is not set | 1192 | # CONFIG_SND_GINA20 is not set |
@@ -1394,7 +1440,9 @@ CONFIG_RTC_DRV_R9701=y | |||
1394 | # CONFIG_RTC_DRV_M48T86 is not set | 1440 | # CONFIG_RTC_DRV_M48T86 is not set |
1395 | # CONFIG_RTC_DRV_M48T35 is not set | 1441 | # CONFIG_RTC_DRV_M48T35 is not set |
1396 | # CONFIG_RTC_DRV_M48T59 is not set | 1442 | # CONFIG_RTC_DRV_M48T59 is not set |
1443 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1397 | # CONFIG_RTC_DRV_BQ4802 is not set | 1444 | # CONFIG_RTC_DRV_BQ4802 is not set |
1445 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1398 | # CONFIG_RTC_DRV_V3020 is not set | 1446 | # CONFIG_RTC_DRV_V3020 is not set |
1399 | 1447 | ||
1400 | # | 1448 | # |
@@ -1419,6 +1467,7 @@ CONFIG_EXT2_FS=y | |||
1419 | # CONFIG_EXT2_FS_XIP is not set | 1467 | # CONFIG_EXT2_FS_XIP is not set |
1420 | # CONFIG_EXT3_FS is not set | 1468 | # CONFIG_EXT3_FS is not set |
1421 | # CONFIG_EXT4_FS is not set | 1469 | # CONFIG_EXT4_FS is not set |
1470 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
1422 | # CONFIG_REISERFS_FS is not set | 1471 | # CONFIG_REISERFS_FS is not set |
1423 | # CONFIG_JFS_FS is not set | 1472 | # CONFIG_JFS_FS is not set |
1424 | # CONFIG_FS_POSIX_ACL is not set | 1473 | # CONFIG_FS_POSIX_ACL is not set |
@@ -1561,10 +1610,11 @@ CONFIG_DEBUG_FS=y | |||
1561 | # CONFIG_HEADERS_CHECK is not set | 1610 | # CONFIG_HEADERS_CHECK is not set |
1562 | # CONFIG_DEBUG_KERNEL is not set | 1611 | # CONFIG_DEBUG_KERNEL is not set |
1563 | CONFIG_STACKTRACE=y | 1612 | CONFIG_STACKTRACE=y |
1564 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1613 | CONFIG_DEBUG_BUGVERBOSE=y |
1565 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1614 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1566 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1615 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1567 | # CONFIG_LATENCYTOP is not set | 1616 | # CONFIG_LATENCYTOP is not set |
1617 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1568 | CONFIG_NOP_TRACER=y | 1618 | CONFIG_NOP_TRACER=y |
1569 | CONFIG_HAVE_FUNCTION_TRACER=y | 1619 | CONFIG_HAVE_FUNCTION_TRACER=y |
1570 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1620 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1584,9 +1634,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1584 | # CONFIG_SAMPLES is not set | 1634 | # CONFIG_SAMPLES is not set |
1585 | CONFIG_HAVE_ARCH_KGDB=y | 1635 | CONFIG_HAVE_ARCH_KGDB=y |
1586 | # CONFIG_SH_STANDARD_BIOS is not set | 1636 | # CONFIG_SH_STANDARD_BIOS is not set |
1587 | CONFIG_EARLY_SCIF_CONSOLE=y | ||
1588 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 | ||
1589 | CONFIG_EARLY_PRINTK=y | ||
1590 | # CONFIG_DWARF_UNWINDER is not set | 1637 | # CONFIG_DWARF_UNWINDER is not set |
1591 | 1638 | ||
1592 | # | 1639 | # |
@@ -1595,7 +1642,11 @@ CONFIG_EARLY_PRINTK=y | |||
1595 | # CONFIG_KEYS is not set | 1642 | # CONFIG_KEYS is not set |
1596 | # CONFIG_SECURITY is not set | 1643 | # CONFIG_SECURITY is not set |
1597 | # CONFIG_SECURITYFS is not set | 1644 | # CONFIG_SECURITYFS is not set |
1598 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1645 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1646 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1647 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1648 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1649 | CONFIG_DEFAULT_SECURITY="" | ||
1599 | CONFIG_CRYPTO=y | 1650 | CONFIG_CRYPTO=y |
1600 | 1651 | ||
1601 | # | 1652 | # |
diff --git a/arch/sh/configs/sdk7780_defconfig b/arch/sh/configs/sdk7780_defconfig index 055536b5c5c..1859ba09994 100644 --- a/arch/sh/configs/sdk7780_defconfig +++ b/arch/sh/configs/sdk7780_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:40:25 2009 | 4 | # Mon Jan 4 13:27:20 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_PCI=y | 24 | CONFIG_SYS_SUPPORTS_PCI=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
63 | # | 65 | # |
64 | CONFIG_TREE_RCU=y | 66 | CONFIG_TREE_RCU=y |
65 | # CONFIG_TREE_PREEMPT_RCU is not set | 67 | # CONFIG_TREE_PREEMPT_RCU is not set |
68 | # CONFIG_TINY_RCU is not set | ||
66 | # CONFIG_RCU_TRACE is not set | 69 | # CONFIG_RCU_TRACE is not set |
67 | CONFIG_RCU_FANOUT=32 | 70 | CONFIG_RCU_FANOUT=32 |
68 | # CONFIG_RCU_FANOUT_EXACT is not set | 71 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -99,6 +102,7 @@ CONFIG_EVENTFD=y | |||
99 | CONFIG_SHMEM=y | 102 | CONFIG_SHMEM=y |
100 | CONFIG_AIO=y | 103 | CONFIG_AIO=y |
101 | CONFIG_HAVE_PERF_EVENTS=y | 104 | CONFIG_HAVE_PERF_EVENTS=y |
105 | CONFIG_PERF_USE_VMALLOC=y | ||
102 | 106 | ||
103 | # | 107 | # |
104 | # Kernel Performance Events And Counters | 108 | # Kernel Performance Events And Counters |
@@ -119,6 +123,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
119 | CONFIG_HAVE_KPROBES=y | 123 | CONFIG_HAVE_KPROBES=y |
120 | CONFIG_HAVE_KRETPROBES=y | 124 | CONFIG_HAVE_KRETPROBES=y |
121 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 125 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
126 | CONFIG_HAVE_DMA_ATTRS=y | ||
122 | CONFIG_HAVE_CLK=y | 127 | CONFIG_HAVE_CLK=y |
123 | CONFIG_HAVE_DMA_API_DEBUG=y | 128 | CONFIG_HAVE_DMA_API_DEBUG=y |
124 | 129 | ||
@@ -145,14 +150,41 @@ CONFIG_LBDAF=y | |||
145 | # IO Schedulers | 150 | # IO Schedulers |
146 | # | 151 | # |
147 | CONFIG_IOSCHED_NOOP=y | 152 | CONFIG_IOSCHED_NOOP=y |
148 | CONFIG_IOSCHED_AS=y | ||
149 | CONFIG_IOSCHED_DEADLINE=y | 153 | CONFIG_IOSCHED_DEADLINE=y |
150 | CONFIG_IOSCHED_CFQ=y | 154 | CONFIG_IOSCHED_CFQ=y |
151 | CONFIG_DEFAULT_AS=y | ||
152 | # CONFIG_DEFAULT_DEADLINE is not set | 155 | # CONFIG_DEFAULT_DEADLINE is not set |
153 | # CONFIG_DEFAULT_CFQ is not set | 156 | CONFIG_DEFAULT_CFQ=y |
154 | # CONFIG_DEFAULT_NOOP is not set | 157 | # CONFIG_DEFAULT_NOOP is not set |
155 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 158 | CONFIG_DEFAULT_IOSCHED="cfq" |
159 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
160 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
162 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
163 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
164 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
165 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
166 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
167 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
168 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
169 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
170 | # CONFIG_INLINE_READ_LOCK is not set | ||
171 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
172 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
173 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
174 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
175 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
176 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
177 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
178 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
180 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
181 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
182 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
183 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
184 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
185 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
186 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
187 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
156 | # CONFIG_FREEZER is not set | 188 | # CONFIG_FREEZER is not set |
157 | 189 | ||
158 | # | 190 | # |
@@ -239,8 +271,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
239 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 271 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
240 | CONFIG_ZONE_DMA_FLAG=0 | 272 | CONFIG_ZONE_DMA_FLAG=0 |
241 | CONFIG_NR_QUICK=2 | 273 | CONFIG_NR_QUICK=2 |
242 | CONFIG_HAVE_MLOCK=y | ||
243 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
244 | # CONFIG_KSM is not set | 274 | # CONFIG_KSM is not set |
245 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 275 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
246 | 276 | ||
@@ -291,9 +321,9 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | |||
291 | # | 321 | # |
292 | # DMA support | 322 | # DMA support |
293 | # | 323 | # |
294 | CONFIG_SH_DMA_API=y | ||
295 | CONFIG_SH_DMA=y | 324 | CONFIG_SH_DMA=y |
296 | CONFIG_SH_DMA_IRQ_MULTI=y | 325 | CONFIG_SH_DMA_IRQ_MULTI=y |
326 | CONFIG_SH_DMA_API=y | ||
297 | CONFIG_NR_ONCHIP_DMA_CHANNELS=12 | 327 | CONFIG_NR_ONCHIP_DMA_CHANNELS=12 |
298 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 328 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
299 | 329 | ||
@@ -339,7 +369,6 @@ CONFIG_CMDLINE="mem=128M console=tty0 console=ttySC0,115200 ip=bootp root=/dev/n | |||
339 | # Bus options | 369 | # Bus options |
340 | # | 370 | # |
341 | CONFIG_PCI=y | 371 | CONFIG_PCI=y |
342 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
343 | # CONFIG_PCIEPORTBUS is not set | 372 | # CONFIG_PCIEPORTBUS is not set |
344 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 373 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
345 | # CONFIG_PCI_LEGACY is not set | 374 | # CONFIG_PCI_LEGACY is not set |
@@ -347,7 +376,6 @@ CONFIG_PCI_DEBUG=y | |||
347 | # CONFIG_PCI_STUB is not set | 376 | # CONFIG_PCI_STUB is not set |
348 | # CONFIG_PCI_IOV is not set | 377 | # CONFIG_PCI_IOV is not set |
349 | CONFIG_PCCARD=y | 378 | CONFIG_PCCARD=y |
350 | # CONFIG_PCMCIA_DEBUG is not set | ||
351 | CONFIG_PCMCIA=y | 379 | CONFIG_PCMCIA=y |
352 | CONFIG_PCMCIA_LOAD_CIS=y | 380 | CONFIG_PCMCIA_LOAD_CIS=y |
353 | CONFIG_PCMCIA_IOCTL=y | 381 | CONFIG_PCMCIA_IOCTL=y |
@@ -445,6 +473,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y | |||
445 | # CONFIG_INET6_XFRM_MODE_BEET is not set | 473 | # CONFIG_INET6_XFRM_MODE_BEET is not set |
446 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 474 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
447 | CONFIG_IPV6_SIT=y | 475 | CONFIG_IPV6_SIT=y |
476 | # CONFIG_IPV6_SIT_6RD is not set | ||
448 | CONFIG_IPV6_NDISC_NODETYPE=y | 477 | CONFIG_IPV6_NDISC_NODETYPE=y |
449 | # CONFIG_IPV6_TUNNEL is not set | 478 | # CONFIG_IPV6_TUNNEL is not set |
450 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 479 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -515,9 +544,6 @@ CONFIG_NET_SCH_FIFO=y | |||
515 | # CONFIG_AF_RXRPC is not set | 544 | # CONFIG_AF_RXRPC is not set |
516 | CONFIG_WIRELESS=y | 545 | CONFIG_WIRELESS=y |
517 | # CONFIG_CFG80211 is not set | 546 | # CONFIG_CFG80211 is not set |
518 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
519 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
520 | # CONFIG_WIRELESS_EXT is not set | ||
521 | # CONFIG_LIB80211 is not set | 547 | # CONFIG_LIB80211 is not set |
522 | 548 | ||
523 | # | 549 | # |
@@ -558,6 +584,10 @@ CONFIG_BLK_DEV=y | |||
558 | # CONFIG_BLK_DEV_COW_COMMON is not set | 584 | # CONFIG_BLK_DEV_COW_COMMON is not set |
559 | CONFIG_BLK_DEV_LOOP=y | 585 | CONFIG_BLK_DEV_LOOP=y |
560 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 586 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
587 | |||
588 | # | ||
589 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
590 | # | ||
561 | # CONFIG_BLK_DEV_NBD is not set | 591 | # CONFIG_BLK_DEV_NBD is not set |
562 | # CONFIG_BLK_DEV_SX8 is not set | 592 | # CONFIG_BLK_DEV_SX8 is not set |
563 | # CONFIG_BLK_DEV_UB is not set | 593 | # CONFIG_BLK_DEV_UB is not set |
@@ -663,8 +693,11 @@ CONFIG_SCSI_FC_ATTRS=y | |||
663 | CONFIG_SCSI_LOWLEVEL=y | 693 | CONFIG_SCSI_LOWLEVEL=y |
664 | # CONFIG_ISCSI_TCP is not set | 694 | # CONFIG_ISCSI_TCP is not set |
665 | # CONFIG_SCSI_BNX2_ISCSI is not set | 695 | # CONFIG_SCSI_BNX2_ISCSI is not set |
696 | # CONFIG_BE2ISCSI is not set | ||
666 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 697 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
698 | # CONFIG_SCSI_HPSA is not set | ||
667 | # CONFIG_SCSI_3W_9XXX is not set | 699 | # CONFIG_SCSI_3W_9XXX is not set |
700 | # CONFIG_SCSI_3W_SAS is not set | ||
668 | # CONFIG_SCSI_ACARD is not set | 701 | # CONFIG_SCSI_ACARD is not set |
669 | # CONFIG_SCSI_AACRAID is not set | 702 | # CONFIG_SCSI_AACRAID is not set |
670 | # CONFIG_SCSI_AIC7XXX is not set | 703 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -698,7 +731,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
698 | # CONFIG_SCSI_NSP32 is not set | 731 | # CONFIG_SCSI_NSP32 is not set |
699 | # CONFIG_SCSI_DEBUG is not set | 732 | # CONFIG_SCSI_DEBUG is not set |
700 | # CONFIG_SCSI_PMCRAID is not set | 733 | # CONFIG_SCSI_PMCRAID is not set |
734 | # CONFIG_SCSI_PM8001 is not set | ||
701 | # CONFIG_SCSI_SRP is not set | 735 | # CONFIG_SCSI_SRP is not set |
736 | # CONFIG_SCSI_BFA_FC is not set | ||
702 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | 737 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set |
703 | # CONFIG_SCSI_DH is not set | 738 | # CONFIG_SCSI_DH is not set |
704 | # CONFIG_SCSI_OSD_INITIATOR is not set | 739 | # CONFIG_SCSI_OSD_INITIATOR is not set |
@@ -753,15 +788,16 @@ CONFIG_ATA_SFF=y | |||
753 | # CONFIG_PATA_OPTI is not set | 788 | # CONFIG_PATA_OPTI is not set |
754 | # CONFIG_PATA_OPTIDMA is not set | 789 | # CONFIG_PATA_OPTIDMA is not set |
755 | # CONFIG_PATA_PCMCIA is not set | 790 | # CONFIG_PATA_PCMCIA is not set |
791 | # CONFIG_PATA_PDC2027X is not set | ||
756 | # CONFIG_PATA_PDC_OLD is not set | 792 | # CONFIG_PATA_PDC_OLD is not set |
757 | # CONFIG_PATA_RADISYS is not set | 793 | # CONFIG_PATA_RADISYS is not set |
758 | # CONFIG_PATA_RDC is not set | 794 | # CONFIG_PATA_RDC is not set |
759 | # CONFIG_PATA_RZ1000 is not set | 795 | # CONFIG_PATA_RZ1000 is not set |
760 | # CONFIG_PATA_SC1200 is not set | 796 | # CONFIG_PATA_SC1200 is not set |
761 | # CONFIG_PATA_SERVERWORKS is not set | 797 | # CONFIG_PATA_SERVERWORKS is not set |
762 | # CONFIG_PATA_PDC2027X is not set | ||
763 | # CONFIG_PATA_SIL680 is not set | 798 | # CONFIG_PATA_SIL680 is not set |
764 | # CONFIG_PATA_SIS is not set | 799 | # CONFIG_PATA_SIS is not set |
800 | # CONFIG_PATA_TOSHIBA is not set | ||
765 | # CONFIG_PATA_VIA is not set | 801 | # CONFIG_PATA_VIA is not set |
766 | # CONFIG_PATA_WINBOND is not set | 802 | # CONFIG_PATA_WINBOND is not set |
767 | # CONFIG_PATA_PLATFORM is not set | 803 | # CONFIG_PATA_PLATFORM is not set |
@@ -827,14 +863,20 @@ CONFIG_SMC91X=y | |||
827 | # CONFIG_NET_PCI is not set | 863 | # CONFIG_NET_PCI is not set |
828 | # CONFIG_B44 is not set | 864 | # CONFIG_B44 is not set |
829 | # CONFIG_KS8842 is not set | 865 | # CONFIG_KS8842 is not set |
866 | # CONFIG_KS8851_MLL is not set | ||
830 | # CONFIG_NET_POCKET is not set | 867 | # CONFIG_NET_POCKET is not set |
831 | # CONFIG_ATL2 is not set | 868 | # CONFIG_ATL2 is not set |
832 | # CONFIG_NETDEV_1000 is not set | 869 | # CONFIG_NETDEV_1000 is not set |
833 | # CONFIG_NETDEV_10000 is not set | 870 | # CONFIG_NETDEV_10000 is not set |
834 | # CONFIG_TR is not set | 871 | # CONFIG_TR is not set |
835 | CONFIG_WLAN=y | 872 | CONFIG_WLAN=y |
836 | # CONFIG_WLAN_PRE80211 is not set | 873 | # CONFIG_PCMCIA_RAYCS is not set |
837 | # CONFIG_WLAN_80211 is not set | 874 | # CONFIG_ATMEL is not set |
875 | # CONFIG_AIRO_CS is not set | ||
876 | # CONFIG_PCMCIA_WL3501 is not set | ||
877 | # CONFIG_PRISM54 is not set | ||
878 | # CONFIG_USB_ZD1201 is not set | ||
879 | # CONFIG_HOSTAP is not set | ||
838 | 880 | ||
839 | # | 881 | # |
840 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 882 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -861,6 +903,7 @@ CONFIG_NETCONSOLE=y | |||
861 | CONFIG_NETPOLL=y | 903 | CONFIG_NETPOLL=y |
862 | # CONFIG_NETPOLL_TRAP is not set | 904 | # CONFIG_NETPOLL_TRAP is not set |
863 | CONFIG_NET_POLL_CONTROLLER=y | 905 | CONFIG_NET_POLL_CONTROLLER=y |
906 | # CONFIG_VMXNET3 is not set | ||
864 | # CONFIG_ISDN is not set | 907 | # CONFIG_ISDN is not set |
865 | # CONFIG_PHONE is not set | 908 | # CONFIG_PHONE is not set |
866 | 909 | ||
@@ -870,6 +913,7 @@ CONFIG_NET_POLL_CONTROLLER=y | |||
870 | CONFIG_INPUT=y | 913 | CONFIG_INPUT=y |
871 | CONFIG_INPUT_FF_MEMLESS=m | 914 | CONFIG_INPUT_FF_MEMLESS=m |
872 | # CONFIG_INPUT_POLLDEV is not set | 915 | # CONFIG_INPUT_POLLDEV is not set |
916 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
873 | 917 | ||
874 | # | 918 | # |
875 | # Userland interfaces | 919 | # Userland interfaces |
@@ -922,6 +966,7 @@ CONFIG_SERIO=y | |||
922 | # CONFIG_SERIO_PCIPS2 is not set | 966 | # CONFIG_SERIO_PCIPS2 is not set |
923 | CONFIG_SERIO_LIBPS2=y | 967 | CONFIG_SERIO_LIBPS2=y |
924 | # CONFIG_SERIO_RAW is not set | 968 | # CONFIG_SERIO_RAW is not set |
969 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
925 | # CONFIG_GAMEPORT is not set | 970 | # CONFIG_GAMEPORT is not set |
926 | 971 | ||
927 | # | 972 | # |
@@ -1009,6 +1054,7 @@ CONFIG_SSB_DRIVER_PCICORE=y | |||
1009 | # | 1054 | # |
1010 | # CONFIG_MFD_CORE is not set | 1055 | # CONFIG_MFD_CORE is not set |
1011 | # CONFIG_MFD_SM501 is not set | 1056 | # CONFIG_MFD_SM501 is not set |
1057 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
1012 | # CONFIG_HTC_PASIC3 is not set | 1058 | # CONFIG_HTC_PASIC3 is not set |
1013 | # CONFIG_MFD_TMIO is not set | 1059 | # CONFIG_MFD_TMIO is not set |
1014 | # CONFIG_REGULATOR is not set | 1060 | # CONFIG_REGULATOR is not set |
@@ -1534,8 +1580,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1534 | CONFIG_HAVE_ARCH_KGDB=y | 1580 | CONFIG_HAVE_ARCH_KGDB=y |
1535 | # CONFIG_KGDB is not set | 1581 | # CONFIG_KGDB is not set |
1536 | CONFIG_SH_STANDARD_BIOS=y | 1582 | CONFIG_SH_STANDARD_BIOS=y |
1537 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1538 | # CONFIG_EARLY_PRINTK is not set | ||
1539 | # CONFIG_STACK_DEBUG is not set | 1583 | # CONFIG_STACK_DEBUG is not set |
1540 | # CONFIG_DEBUG_STACK_USAGE is not set | 1584 | # CONFIG_DEBUG_STACK_USAGE is not set |
1541 | # CONFIG_4KSTACKS is not set | 1585 | # CONFIG_4KSTACKS is not set |
@@ -1549,7 +1593,11 @@ CONFIG_DUMP_CODE=y | |||
1549 | # CONFIG_KEYS is not set | 1593 | # CONFIG_KEYS is not set |
1550 | # CONFIG_SECURITY is not set | 1594 | # CONFIG_SECURITY is not set |
1551 | # CONFIG_SECURITYFS is not set | 1595 | # CONFIG_SECURITYFS is not set |
1552 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1596 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1597 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1598 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1599 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1600 | CONFIG_DEFAULT_SECURITY="" | ||
1553 | CONFIG_CRYPTO=y | 1601 | CONFIG_CRYPTO=y |
1554 | 1602 | ||
1555 | # | 1603 | # |
diff --git a/arch/sh/configs/se7206_defconfig b/arch/sh/configs/se7206_defconfig index 1cd1777aa43..43e6780a89d 100644 --- a/arch/sh/configs/se7206_defconfig +++ b/arch/sh/configs/se7206_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:45:28 2009 | 4 | # Mon Jan 4 13:30:00 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -30,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
35 | 36 | ||
@@ -64,6 +65,7 @@ CONFIG_AUDIT_TREE=y | |||
64 | # | 65 | # |
65 | CONFIG_TREE_RCU=y | 66 | CONFIG_TREE_RCU=y |
66 | # CONFIG_TREE_PREEMPT_RCU is not set | 67 | # CONFIG_TREE_PREEMPT_RCU is not set |
68 | # CONFIG_TINY_RCU is not set | ||
67 | CONFIG_RCU_TRACE=y | 69 | CONFIG_RCU_TRACE=y |
68 | CONFIG_RCU_FANOUT=32 | 70 | CONFIG_RCU_FANOUT=32 |
69 | # CONFIG_RCU_FANOUT_EXACT is not set | 71 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -115,6 +117,7 @@ CONFIG_TIMERFD=y | |||
115 | CONFIG_EVENTFD=y | 117 | CONFIG_EVENTFD=y |
116 | CONFIG_AIO=y | 118 | CONFIG_AIO=y |
117 | CONFIG_HAVE_PERF_EVENTS=y | 119 | CONFIG_HAVE_PERF_EVENTS=y |
120 | CONFIG_PERF_USE_VMALLOC=y | ||
118 | 121 | ||
119 | # | 122 | # |
120 | # Kernel Performance Events And Counters | 123 | # Kernel Performance Events And Counters |
@@ -122,11 +125,13 @@ CONFIG_HAVE_PERF_EVENTS=y | |||
122 | CONFIG_PERF_EVENTS=y | 125 | CONFIG_PERF_EVENTS=y |
123 | CONFIG_EVENT_PROFILE=y | 126 | CONFIG_EVENT_PROFILE=y |
124 | # CONFIG_PERF_COUNTERS is not set | 127 | # CONFIG_PERF_COUNTERS is not set |
128 | # CONFIG_DEBUG_PERF_USE_VMALLOC is not set | ||
125 | CONFIG_VM_EVENT_COUNTERS=y | 129 | CONFIG_VM_EVENT_COUNTERS=y |
126 | # CONFIG_COMPAT_BRK is not set | 130 | # CONFIG_COMPAT_BRK is not set |
127 | # CONFIG_SLAB is not set | 131 | # CONFIG_SLAB is not set |
128 | # CONFIG_SLUB is not set | 132 | # CONFIG_SLUB is not set |
129 | CONFIG_SLOB=y | 133 | CONFIG_SLOB=y |
134 | # CONFIG_MMAP_ALLOW_UNINITIALIZED is not set | ||
130 | CONFIG_PROFILING=y | 135 | CONFIG_PROFILING=y |
131 | CONFIG_TRACEPOINTS=y | 136 | CONFIG_TRACEPOINTS=y |
132 | CONFIG_OPROFILE=y | 137 | CONFIG_OPROFILE=y |
@@ -135,6 +140,7 @@ CONFIG_HAVE_OPROFILE=y | |||
135 | CONFIG_HAVE_KPROBES=y | 140 | CONFIG_HAVE_KPROBES=y |
136 | CONFIG_HAVE_KRETPROBES=y | 141 | CONFIG_HAVE_KRETPROBES=y |
137 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 142 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
143 | CONFIG_HAVE_DMA_ATTRS=y | ||
138 | CONFIG_HAVE_CLK=y | 144 | CONFIG_HAVE_CLK=y |
139 | CONFIG_HAVE_DMA_API_DEBUG=y | 145 | CONFIG_HAVE_DMA_API_DEBUG=y |
140 | 146 | ||
@@ -156,19 +162,47 @@ CONFIG_BLOCK=y | |||
156 | CONFIG_LBDAF=y | 162 | CONFIG_LBDAF=y |
157 | # CONFIG_BLK_DEV_BSG is not set | 163 | # CONFIG_BLK_DEV_BSG is not set |
158 | # CONFIG_BLK_DEV_INTEGRITY is not set | 164 | # CONFIG_BLK_DEV_INTEGRITY is not set |
165 | # CONFIG_BLK_CGROUP is not set | ||
159 | 166 | ||
160 | # | 167 | # |
161 | # IO Schedulers | 168 | # IO Schedulers |
162 | # | 169 | # |
163 | CONFIG_IOSCHED_NOOP=y | 170 | CONFIG_IOSCHED_NOOP=y |
164 | # CONFIG_IOSCHED_AS is not set | ||
165 | # CONFIG_IOSCHED_DEADLINE is not set | 171 | # CONFIG_IOSCHED_DEADLINE is not set |
166 | # CONFIG_IOSCHED_CFQ is not set | 172 | # CONFIG_IOSCHED_CFQ is not set |
167 | # CONFIG_DEFAULT_AS is not set | ||
168 | # CONFIG_DEFAULT_DEADLINE is not set | 173 | # CONFIG_DEFAULT_DEADLINE is not set |
169 | # CONFIG_DEFAULT_CFQ is not set | 174 | # CONFIG_DEFAULT_CFQ is not set |
170 | CONFIG_DEFAULT_NOOP=y | 175 | CONFIG_DEFAULT_NOOP=y |
171 | CONFIG_DEFAULT_IOSCHED="noop" | 176 | CONFIG_DEFAULT_IOSCHED="noop" |
177 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
178 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
179 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
180 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
181 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
182 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
183 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
184 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
185 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
186 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
187 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
188 | # CONFIG_INLINE_READ_LOCK is not set | ||
189 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
190 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
191 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
192 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
193 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
194 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
195 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
196 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
197 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
198 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
199 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
200 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
201 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
202 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
203 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
204 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
205 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
172 | # CONFIG_FREEZER is not set | 206 | # CONFIG_FREEZER is not set |
173 | 207 | ||
174 | # | 208 | # |
@@ -243,7 +277,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
243 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 277 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
244 | CONFIG_ZONE_DMA_FLAG=0 | 278 | CONFIG_ZONE_DMA_FLAG=0 |
245 | CONFIG_NR_QUICK=2 | 279 | CONFIG_NR_QUICK=2 |
246 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
247 | CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 | 280 | CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 |
248 | 281 | ||
249 | # | 282 | # |
@@ -438,9 +471,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
438 | # CONFIG_AF_RXRPC is not set | 471 | # CONFIG_AF_RXRPC is not set |
439 | CONFIG_WIRELESS=y | 472 | CONFIG_WIRELESS=y |
440 | # CONFIG_CFG80211 is not set | 473 | # CONFIG_CFG80211 is not set |
441 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
442 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
443 | # CONFIG_WIRELESS_EXT is not set | ||
444 | # CONFIG_LIB80211 is not set | 474 | # CONFIG_LIB80211 is not set |
445 | 475 | ||
446 | # | 476 | # |
@@ -551,6 +581,10 @@ CONFIG_BLK_DEV=y | |||
551 | # CONFIG_BLK_DEV_COW_COMMON is not set | 581 | # CONFIG_BLK_DEV_COW_COMMON is not set |
552 | CONFIG_BLK_DEV_LOOP=y | 582 | CONFIG_BLK_DEV_LOOP=y |
553 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 583 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
584 | |||
585 | # | ||
586 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
587 | # | ||
554 | # CONFIG_BLK_DEV_NBD is not set | 588 | # CONFIG_BLK_DEV_NBD is not set |
555 | CONFIG_BLK_DEV_RAM=y | 589 | CONFIG_BLK_DEV_RAM=y |
556 | CONFIG_BLK_DEV_RAM_COUNT=16 | 590 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -605,11 +639,11 @@ CONFIG_SMC91X=y | |||
605 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 639 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
606 | # CONFIG_B44 is not set | 640 | # CONFIG_B44 is not set |
607 | # CONFIG_KS8842 is not set | 641 | # CONFIG_KS8842 is not set |
642 | # CONFIG_KS8851_MLL is not set | ||
608 | # CONFIG_NETDEV_1000 is not set | 643 | # CONFIG_NETDEV_1000 is not set |
609 | # CONFIG_NETDEV_10000 is not set | 644 | # CONFIG_NETDEV_10000 is not set |
610 | CONFIG_WLAN=y | 645 | CONFIG_WLAN=y |
611 | # CONFIG_WLAN_PRE80211 is not set | 646 | # CONFIG_HOSTAP is not set |
612 | # CONFIG_WLAN_80211 is not set | ||
613 | 647 | ||
614 | # | 648 | # |
615 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 649 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -685,6 +719,7 @@ CONFIG_SSB_POSSIBLE=y | |||
685 | # | 719 | # |
686 | # CONFIG_MFD_CORE is not set | 720 | # CONFIG_MFD_CORE is not set |
687 | # CONFIG_MFD_SM501 is not set | 721 | # CONFIG_MFD_SM501 is not set |
722 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
688 | # CONFIG_HTC_PASIC3 is not set | 723 | # CONFIG_HTC_PASIC3 is not set |
689 | # CONFIG_MFD_TMIO is not set | 724 | # CONFIG_MFD_TMIO is not set |
690 | # CONFIG_REGULATOR is not set | 725 | # CONFIG_REGULATOR is not set |
@@ -738,7 +773,9 @@ CONFIG_RTC_INTF_DEV=y | |||
738 | # CONFIG_RTC_DRV_M48T86 is not set | 773 | # CONFIG_RTC_DRV_M48T86 is not set |
739 | # CONFIG_RTC_DRV_M48T35 is not set | 774 | # CONFIG_RTC_DRV_M48T35 is not set |
740 | # CONFIG_RTC_DRV_M48T59 is not set | 775 | # CONFIG_RTC_DRV_M48T59 is not set |
776 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
741 | # CONFIG_RTC_DRV_BQ4802 is not set | 777 | # CONFIG_RTC_DRV_BQ4802 is not set |
778 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
742 | # CONFIG_RTC_DRV_V3020 is not set | 779 | # CONFIG_RTC_DRV_V3020 is not set |
743 | 780 | ||
744 | # | 781 | # |
@@ -762,6 +799,7 @@ CONFIG_EXT2_FS=y | |||
762 | # CONFIG_EXT2_FS_XATTR is not set | 799 | # CONFIG_EXT2_FS_XATTR is not set |
763 | # CONFIG_EXT3_FS is not set | 800 | # CONFIG_EXT3_FS is not set |
764 | # CONFIG_EXT4_FS is not set | 801 | # CONFIG_EXT4_FS is not set |
802 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
765 | # CONFIG_REISERFS_FS is not set | 803 | # CONFIG_REISERFS_FS is not set |
766 | # CONFIG_JFS_FS is not set | 804 | # CONFIG_JFS_FS is not set |
767 | # CONFIG_FS_POSIX_ACL is not set | 805 | # CONFIG_FS_POSIX_ACL is not set |
@@ -911,6 +949,7 @@ CONFIG_FRAME_POINTER=y | |||
911 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 949 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
912 | # CONFIG_FAULT_INJECTION is not set | 950 | # CONFIG_FAULT_INJECTION is not set |
913 | # CONFIG_LATENCYTOP is not set | 951 | # CONFIG_LATENCYTOP is not set |
952 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
914 | # CONFIG_PAGE_POISONING is not set | 953 | # CONFIG_PAGE_POISONING is not set |
915 | CONFIG_NOP_TRACER=y | 954 | CONFIG_NOP_TRACER=y |
916 | CONFIG_HAVE_FUNCTION_TRACER=y | 955 | CONFIG_HAVE_FUNCTION_TRACER=y |
@@ -947,7 +986,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
947 | CONFIG_HAVE_ARCH_KGDB=y | 986 | CONFIG_HAVE_ARCH_KGDB=y |
948 | # CONFIG_KGDB is not set | 987 | # CONFIG_KGDB is not set |
949 | # CONFIG_SH_STANDARD_BIOS is not set | 988 | # CONFIG_SH_STANDARD_BIOS is not set |
950 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
951 | # CONFIG_STACK_DEBUG is not set | 989 | # CONFIG_STACK_DEBUG is not set |
952 | CONFIG_DEBUG_STACK_USAGE=y | 990 | CONFIG_DEBUG_STACK_USAGE=y |
953 | CONFIG_DUMP_CODE=y | 991 | CONFIG_DUMP_CODE=y |
@@ -960,7 +998,11 @@ CONFIG_DUMP_CODE=y | |||
960 | # CONFIG_KEYS is not set | 998 | # CONFIG_KEYS is not set |
961 | # CONFIG_SECURITY is not set | 999 | # CONFIG_SECURITY is not set |
962 | # CONFIG_SECURITYFS is not set | 1000 | # CONFIG_SECURITYFS is not set |
963 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1001 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1002 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1003 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1004 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1005 | CONFIG_DEFAULT_SECURITY="" | ||
964 | CONFIG_CRYPTO=y | 1006 | CONFIG_CRYPTO=y |
965 | 1007 | ||
966 | # | 1008 | # |
diff --git a/arch/sh/configs/se7343_defconfig b/arch/sh/configs/se7343_defconfig index 5531444b808..ec494e32fa2 100644 --- a/arch/sh/configs/se7343_defconfig +++ b/arch/sh/configs/se7343_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:46:55 2009 | 4 | # Mon Jan 4 13:30:41 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_CMT=y | 24 | CONFIG_SYS_SUPPORTS_CMT=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -61,6 +63,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
61 | # | 63 | # |
62 | CONFIG_TREE_RCU=y | 64 | CONFIG_TREE_RCU=y |
63 | # CONFIG_TREE_PREEMPT_RCU is not set | 65 | # CONFIG_TREE_PREEMPT_RCU is not set |
66 | # CONFIG_TINY_RCU is not set | ||
64 | # CONFIG_RCU_TRACE is not set | 67 | # CONFIG_RCU_TRACE is not set |
65 | CONFIG_RCU_FANOUT=32 | 68 | CONFIG_RCU_FANOUT=32 |
66 | # CONFIG_RCU_FANOUT_EXACT is not set | 69 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -99,6 +102,7 @@ CONFIG_EVENTFD=y | |||
99 | # CONFIG_SHMEM is not set | 102 | # CONFIG_SHMEM is not set |
100 | CONFIG_AIO=y | 103 | CONFIG_AIO=y |
101 | CONFIG_HAVE_PERF_EVENTS=y | 104 | CONFIG_HAVE_PERF_EVENTS=y |
105 | CONFIG_PERF_USE_VMALLOC=y | ||
102 | 106 | ||
103 | # | 107 | # |
104 | # Kernel Performance Events And Counters | 108 | # Kernel Performance Events And Counters |
@@ -117,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
117 | CONFIG_HAVE_KPROBES=y | 121 | CONFIG_HAVE_KPROBES=y |
118 | CONFIG_HAVE_KRETPROBES=y | 122 | CONFIG_HAVE_KRETPROBES=y |
119 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 123 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
124 | CONFIG_HAVE_DMA_ATTRS=y | ||
120 | CONFIG_HAVE_CLK=y | 125 | CONFIG_HAVE_CLK=y |
121 | CONFIG_HAVE_DMA_API_DEBUG=y | 126 | CONFIG_HAVE_DMA_API_DEBUG=y |
122 | 127 | ||
@@ -126,6 +131,7 @@ CONFIG_HAVE_DMA_API_DEBUG=y | |||
126 | # CONFIG_SLOW_WORK is not set | 131 | # CONFIG_SLOW_WORK is not set |
127 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 132 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
128 | CONFIG_SLABINFO=y | 133 | CONFIG_SLABINFO=y |
134 | CONFIG_RT_MUTEXES=y | ||
129 | CONFIG_BASE_SMALL=0 | 135 | CONFIG_BASE_SMALL=0 |
130 | CONFIG_MODULES=y | 136 | CONFIG_MODULES=y |
131 | # CONFIG_MODULE_FORCE_LOAD is not set | 137 | # CONFIG_MODULE_FORCE_LOAD is not set |
@@ -142,14 +148,41 @@ CONFIG_LBDAF=y | |||
142 | # IO Schedulers | 148 | # IO Schedulers |
143 | # | 149 | # |
144 | CONFIG_IOSCHED_NOOP=y | 150 | CONFIG_IOSCHED_NOOP=y |
145 | # CONFIG_IOSCHED_AS is not set | ||
146 | CONFIG_IOSCHED_DEADLINE=y | 151 | CONFIG_IOSCHED_DEADLINE=y |
147 | # CONFIG_IOSCHED_CFQ is not set | 152 | # CONFIG_IOSCHED_CFQ is not set |
148 | # CONFIG_DEFAULT_AS is not set | ||
149 | CONFIG_DEFAULT_DEADLINE=y | 153 | CONFIG_DEFAULT_DEADLINE=y |
150 | # CONFIG_DEFAULT_CFQ is not set | 154 | # CONFIG_DEFAULT_CFQ is not set |
151 | # CONFIG_DEFAULT_NOOP is not set | 155 | # CONFIG_DEFAULT_NOOP is not set |
152 | CONFIG_DEFAULT_IOSCHED="deadline" | 156 | CONFIG_DEFAULT_IOSCHED="deadline" |
157 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
158 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
162 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
163 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
164 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
165 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
166 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
167 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
168 | # CONFIG_INLINE_READ_LOCK is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
170 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
171 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
172 | CONFIG_INLINE_READ_UNLOCK=y | ||
173 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
174 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
175 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
176 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
180 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
181 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
182 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
183 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
184 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
185 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
153 | CONFIG_FREEZER=y | 186 | CONFIG_FREEZER=y |
154 | 187 | ||
155 | # | 188 | # |
@@ -228,8 +261,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
228 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 261 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
229 | CONFIG_ZONE_DMA_FLAG=0 | 262 | CONFIG_ZONE_DMA_FLAG=0 |
230 | CONFIG_NR_QUICK=2 | 263 | CONFIG_NR_QUICK=2 |
231 | CONFIG_HAVE_MLOCK=y | ||
232 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
233 | # CONFIG_KSM is not set | 264 | # CONFIG_KSM is not set |
234 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 265 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
235 | 266 | ||
@@ -263,7 +294,6 @@ CONFIG_SH_7343_SOLUTION_ENGINE=y | |||
263 | # | 294 | # |
264 | CONFIG_SH_TIMER_TMU=y | 295 | CONFIG_SH_TIMER_TMU=y |
265 | # CONFIG_SH_TIMER_CMT is not set | 296 | # CONFIG_SH_TIMER_CMT is not set |
266 | CONFIG_SH_PCLK_FREQ=33333333 | ||
267 | CONFIG_SH_CLK_CPG=y | 297 | CONFIG_SH_CLK_CPG=y |
268 | # CONFIG_NO_HZ is not set | 298 | # CONFIG_NO_HZ is not set |
269 | # CONFIG_HIGH_RES_TIMERS is not set | 299 | # CONFIG_HIGH_RES_TIMERS is not set |
@@ -413,9 +443,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
413 | # CONFIG_AF_RXRPC is not set | 443 | # CONFIG_AF_RXRPC is not set |
414 | CONFIG_WIRELESS=y | 444 | CONFIG_WIRELESS=y |
415 | # CONFIG_CFG80211 is not set | 445 | # CONFIG_CFG80211 is not set |
416 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
417 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
418 | # CONFIG_WIRELESS_EXT is not set | ||
419 | # CONFIG_LIB80211 is not set | 446 | # CONFIG_LIB80211 is not set |
420 | 447 | ||
421 | # | 448 | # |
@@ -525,6 +552,10 @@ CONFIG_MTD_PHYSMAP=y | |||
525 | CONFIG_BLK_DEV=y | 552 | CONFIG_BLK_DEV=y |
526 | # CONFIG_BLK_DEV_COW_COMMON is not set | 553 | # CONFIG_BLK_DEV_COW_COMMON is not set |
527 | # CONFIG_BLK_DEV_LOOP is not set | 554 | # CONFIG_BLK_DEV_LOOP is not set |
555 | |||
556 | # | ||
557 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
558 | # | ||
528 | # CONFIG_BLK_DEV_NBD is not set | 559 | # CONFIG_BLK_DEV_NBD is not set |
529 | # CONFIG_BLK_DEV_UB is not set | 560 | # CONFIG_BLK_DEV_UB is not set |
530 | # CONFIG_BLK_DEV_RAM is not set | 561 | # CONFIG_BLK_DEV_RAM is not set |
@@ -585,8 +616,8 @@ CONFIG_MII=y | |||
585 | # CONFIG_NETDEV_1000 is not set | 616 | # CONFIG_NETDEV_1000 is not set |
586 | # CONFIG_NETDEV_10000 is not set | 617 | # CONFIG_NETDEV_10000 is not set |
587 | CONFIG_WLAN=y | 618 | CONFIG_WLAN=y |
588 | # CONFIG_WLAN_PRE80211 is not set | 619 | # CONFIG_USB_ZD1201 is not set |
589 | # CONFIG_WLAN_80211 is not set | 620 | # CONFIG_HOSTAP is not set |
590 | 621 | ||
591 | # | 622 | # |
592 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 623 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -628,6 +659,7 @@ CONFIG_USB_NET_DM9601=y | |||
628 | CONFIG_INPUT=y | 659 | CONFIG_INPUT=y |
629 | # CONFIG_INPUT_FF_MEMLESS is not set | 660 | # CONFIG_INPUT_FF_MEMLESS is not set |
630 | # CONFIG_INPUT_POLLDEV is not set | 661 | # CONFIG_INPUT_POLLDEV is not set |
662 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
631 | 663 | ||
632 | # | 664 | # |
633 | # Userland interfaces | 665 | # Userland interfaces |
@@ -724,7 +756,6 @@ CONFIG_I2C_SH_MOBILE=y | |||
724 | # | 756 | # |
725 | # Miscellaneous I2C Chip support | 757 | # Miscellaneous I2C Chip support |
726 | # | 758 | # |
727 | # CONFIG_DS1682 is not set | ||
728 | # CONFIG_SENSORS_TSL2550 is not set | 759 | # CONFIG_SENSORS_TSL2550 is not set |
729 | # CONFIG_I2C_DEBUG_CORE is not set | 760 | # CONFIG_I2C_DEBUG_CORE is not set |
730 | # CONFIG_I2C_DEBUG_ALGO is not set | 761 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -753,15 +784,18 @@ CONFIG_SSB_POSSIBLE=y | |||
753 | # | 784 | # |
754 | # CONFIG_MFD_CORE is not set | 785 | # CONFIG_MFD_CORE is not set |
755 | # CONFIG_MFD_SM501 is not set | 786 | # CONFIG_MFD_SM501 is not set |
787 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
756 | # CONFIG_HTC_PASIC3 is not set | 788 | # CONFIG_HTC_PASIC3 is not set |
757 | # CONFIG_TWL4030_CORE is not set | 789 | # CONFIG_TWL4030_CORE is not set |
758 | # CONFIG_MFD_TMIO is not set | 790 | # CONFIG_MFD_TMIO is not set |
759 | # CONFIG_PMIC_DA903X is not set | 791 | # CONFIG_PMIC_DA903X is not set |
792 | # CONFIG_PMIC_ADP5520 is not set | ||
760 | # CONFIG_MFD_WM8400 is not set | 793 | # CONFIG_MFD_WM8400 is not set |
761 | # CONFIG_MFD_WM831X is not set | 794 | # CONFIG_MFD_WM831X is not set |
762 | # CONFIG_MFD_WM8350_I2C is not set | 795 | # CONFIG_MFD_WM8350_I2C is not set |
763 | # CONFIG_MFD_PCF50633 is not set | 796 | # CONFIG_MFD_PCF50633 is not set |
764 | # CONFIG_AB3100_CORE is not set | 797 | # CONFIG_AB3100_CORE is not set |
798 | # CONFIG_MFD_88PM8607 is not set | ||
765 | # CONFIG_REGULATOR is not set | 799 | # CONFIG_REGULATOR is not set |
766 | # CONFIG_MEDIA_SUPPORT is not set | 800 | # CONFIG_MEDIA_SUPPORT is not set |
767 | 801 | ||
@@ -1173,10 +1207,11 @@ CONFIG_FRAME_WARN=1024 | |||
1173 | # CONFIG_DEBUG_FS is not set | 1207 | # CONFIG_DEBUG_FS is not set |
1174 | # CONFIG_HEADERS_CHECK is not set | 1208 | # CONFIG_HEADERS_CHECK is not set |
1175 | # CONFIG_DEBUG_KERNEL is not set | 1209 | # CONFIG_DEBUG_KERNEL is not set |
1176 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1210 | CONFIG_DEBUG_BUGVERBOSE=y |
1177 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1211 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1178 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1212 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1179 | # CONFIG_LATENCYTOP is not set | 1213 | # CONFIG_LATENCYTOP is not set |
1214 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1180 | CONFIG_HAVE_FUNCTION_TRACER=y | 1215 | CONFIG_HAVE_FUNCTION_TRACER=y |
1181 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1216 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
1182 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 1217 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -1189,9 +1224,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1189 | # CONFIG_SAMPLES is not set | 1224 | # CONFIG_SAMPLES is not set |
1190 | CONFIG_HAVE_ARCH_KGDB=y | 1225 | CONFIG_HAVE_ARCH_KGDB=y |
1191 | # CONFIG_SH_STANDARD_BIOS is not set | 1226 | # CONFIG_SH_STANDARD_BIOS is not set |
1192 | CONFIG_EARLY_SCIF_CONSOLE=y | ||
1193 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe00000 | ||
1194 | CONFIG_EARLY_PRINTK=y | ||
1195 | # CONFIG_DWARF_UNWINDER is not set | 1227 | # CONFIG_DWARF_UNWINDER is not set |
1196 | 1228 | ||
1197 | # | 1229 | # |
@@ -1200,7 +1232,11 @@ CONFIG_EARLY_PRINTK=y | |||
1200 | # CONFIG_KEYS is not set | 1232 | # CONFIG_KEYS is not set |
1201 | # CONFIG_SECURITY is not set | 1233 | # CONFIG_SECURITY is not set |
1202 | # CONFIG_SECURITYFS is not set | 1234 | # CONFIG_SECURITYFS is not set |
1203 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1235 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1236 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1237 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1238 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1239 | CONFIG_DEFAULT_SECURITY="" | ||
1204 | CONFIG_CRYPTO=y | 1240 | CONFIG_CRYPTO=y |
1205 | 1241 | ||
1206 | # | 1242 | # |
diff --git a/arch/sh/configs/se7619_defconfig b/arch/sh/configs/se7619_defconfig index 6921b199b1d..ee87e2b2168 100644 --- a/arch/sh/configs/se7619_defconfig +++ b/arch/sh/configs/se7619_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:50:05 2009 | 4 | # Mon Jan 4 13:34:15 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
32 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 34 | CONFIG_CONSTRUCTORS=y |
34 | 35 | ||
@@ -54,6 +55,7 @@ CONFIG_KERNEL_GZIP=y | |||
54 | # | 55 | # |
55 | CONFIG_TREE_RCU=y | 56 | CONFIG_TREE_RCU=y |
56 | # CONFIG_TREE_PREEMPT_RCU is not set | 57 | # CONFIG_TREE_PREEMPT_RCU is not set |
58 | # CONFIG_TINY_RCU is not set | ||
57 | # CONFIG_RCU_TRACE is not set | 59 | # CONFIG_RCU_TRACE is not set |
58 | CONFIG_RCU_FANOUT=32 | 60 | CONFIG_RCU_FANOUT=32 |
59 | # CONFIG_RCU_FANOUT_EXACT is not set | 61 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -84,6 +86,7 @@ CONFIG_TIMERFD=y | |||
84 | CONFIG_EVENTFD=y | 86 | CONFIG_EVENTFD=y |
85 | CONFIG_AIO=y | 87 | CONFIG_AIO=y |
86 | CONFIG_HAVE_PERF_EVENTS=y | 88 | CONFIG_HAVE_PERF_EVENTS=y |
89 | CONFIG_PERF_USE_VMALLOC=y | ||
87 | 90 | ||
88 | # | 91 | # |
89 | # Kernel Performance Events And Counters | 92 | # Kernel Performance Events And Counters |
@@ -95,11 +98,13 @@ CONFIG_COMPAT_BRK=y | |||
95 | CONFIG_SLAB=y | 98 | CONFIG_SLAB=y |
96 | # CONFIG_SLUB is not set | 99 | # CONFIG_SLUB is not set |
97 | # CONFIG_SLOB is not set | 100 | # CONFIG_SLOB is not set |
101 | # CONFIG_MMAP_ALLOW_UNINITIALIZED is not set | ||
98 | # CONFIG_PROFILING is not set | 102 | # CONFIG_PROFILING is not set |
99 | CONFIG_HAVE_OPROFILE=y | 103 | CONFIG_HAVE_OPROFILE=y |
100 | CONFIG_HAVE_KPROBES=y | 104 | CONFIG_HAVE_KPROBES=y |
101 | CONFIG_HAVE_KRETPROBES=y | 105 | CONFIG_HAVE_KRETPROBES=y |
102 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 106 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
107 | CONFIG_HAVE_DMA_ATTRS=y | ||
103 | CONFIG_HAVE_CLK=y | 108 | CONFIG_HAVE_CLK=y |
104 | CONFIG_HAVE_DMA_API_DEBUG=y | 109 | CONFIG_HAVE_DMA_API_DEBUG=y |
105 | 110 | ||
@@ -120,14 +125,41 @@ CONFIG_LBDAF=y | |||
120 | # IO Schedulers | 125 | # IO Schedulers |
121 | # | 126 | # |
122 | CONFIG_IOSCHED_NOOP=y | 127 | CONFIG_IOSCHED_NOOP=y |
123 | # CONFIG_IOSCHED_AS is not set | ||
124 | # CONFIG_IOSCHED_DEADLINE is not set | 128 | # CONFIG_IOSCHED_DEADLINE is not set |
125 | # CONFIG_IOSCHED_CFQ is not set | 129 | # CONFIG_IOSCHED_CFQ is not set |
126 | # CONFIG_DEFAULT_AS is not set | ||
127 | # CONFIG_DEFAULT_DEADLINE is not set | 130 | # CONFIG_DEFAULT_DEADLINE is not set |
128 | # CONFIG_DEFAULT_CFQ is not set | 131 | # CONFIG_DEFAULT_CFQ is not set |
129 | CONFIG_DEFAULT_NOOP=y | 132 | CONFIG_DEFAULT_NOOP=y |
130 | CONFIG_DEFAULT_IOSCHED="noop" | 133 | CONFIG_DEFAULT_IOSCHED="noop" |
134 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
135 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
136 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
137 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
138 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
139 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
140 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
141 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
142 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
143 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
144 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
145 | # CONFIG_INLINE_READ_LOCK is not set | ||
146 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
147 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
148 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
149 | CONFIG_INLINE_READ_UNLOCK=y | ||
150 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
151 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
152 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
153 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
154 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
155 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
156 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
157 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
158 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
159 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
160 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
161 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
162 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
131 | # CONFIG_FREEZER is not set | 163 | # CONFIG_FREEZER is not set |
132 | 164 | ||
133 | # | 165 | # |
@@ -201,7 +233,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
201 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 233 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
202 | CONFIG_ZONE_DMA_FLAG=0 | 234 | CONFIG_ZONE_DMA_FLAG=0 |
203 | CONFIG_NR_QUICK=2 | 235 | CONFIG_NR_QUICK=2 |
204 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
205 | CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 | 236 | CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 |
206 | 237 | ||
207 | # | 238 | # |
@@ -401,6 +432,10 @@ CONFIG_MTD_PHYSMAP=y | |||
401 | CONFIG_BLK_DEV=y | 432 | CONFIG_BLK_DEV=y |
402 | # CONFIG_BLK_DEV_COW_COMMON is not set | 433 | # CONFIG_BLK_DEV_COW_COMMON is not set |
403 | # CONFIG_BLK_DEV_LOOP is not set | 434 | # CONFIG_BLK_DEV_LOOP is not set |
435 | |||
436 | # | ||
437 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
438 | # | ||
404 | # CONFIG_BLK_DEV_RAM is not set | 439 | # CONFIG_BLK_DEV_RAM is not set |
405 | # CONFIG_CDROM_PKTCDVD is not set | 440 | # CONFIG_CDROM_PKTCDVD is not set |
406 | # CONFIG_BLK_DEV_HD is not set | 441 | # CONFIG_BLK_DEV_HD is not set |
@@ -432,6 +467,7 @@ CONFIG_HAVE_IDE=y | |||
432 | CONFIG_INPUT=y | 467 | CONFIG_INPUT=y |
433 | # CONFIG_INPUT_FF_MEMLESS is not set | 468 | # CONFIG_INPUT_FF_MEMLESS is not set |
434 | # CONFIG_INPUT_POLLDEV is not set | 469 | # CONFIG_INPUT_POLLDEV is not set |
470 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
435 | 471 | ||
436 | # | 472 | # |
437 | # Userland interfaces | 473 | # Userland interfaces |
@@ -508,6 +544,7 @@ CONFIG_SSB_POSSIBLE=y | |||
508 | # | 544 | # |
509 | # CONFIG_MFD_CORE is not set | 545 | # CONFIG_MFD_CORE is not set |
510 | # CONFIG_MFD_SM501 is not set | 546 | # CONFIG_MFD_SM501 is not set |
547 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
511 | # CONFIG_HTC_PASIC3 is not set | 548 | # CONFIG_HTC_PASIC3 is not set |
512 | # CONFIG_MFD_TMIO is not set | 549 | # CONFIG_MFD_TMIO is not set |
513 | # CONFIG_REGULATOR is not set | 550 | # CONFIG_REGULATOR is not set |
@@ -575,6 +612,7 @@ CONFIG_RTC_LIB=y | |||
575 | # CONFIG_EXT2_FS is not set | 612 | # CONFIG_EXT2_FS is not set |
576 | # CONFIG_EXT3_FS is not set | 613 | # CONFIG_EXT3_FS is not set |
577 | # CONFIG_EXT4_FS is not set | 614 | # CONFIG_EXT4_FS is not set |
615 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
578 | # CONFIG_REISERFS_FS is not set | 616 | # CONFIG_REISERFS_FS is not set |
579 | # CONFIG_JFS_FS is not set | 617 | # CONFIG_JFS_FS is not set |
580 | # CONFIG_FS_POSIX_ACL is not set | 618 | # CONFIG_FS_POSIX_ACL is not set |
@@ -661,10 +699,11 @@ CONFIG_FRAME_WARN=1024 | |||
661 | # CONFIG_UNUSED_SYMBOLS is not set | 699 | # CONFIG_UNUSED_SYMBOLS is not set |
662 | # CONFIG_HEADERS_CHECK is not set | 700 | # CONFIG_HEADERS_CHECK is not set |
663 | # CONFIG_DEBUG_KERNEL is not set | 701 | # CONFIG_DEBUG_KERNEL is not set |
664 | # CONFIG_DEBUG_BUGVERBOSE is not set | 702 | CONFIG_DEBUG_BUGVERBOSE=y |
665 | # CONFIG_DEBUG_MEMORY_INIT is not set | 703 | # CONFIG_DEBUG_MEMORY_INIT is not set |
666 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 704 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
667 | # CONFIG_LATENCYTOP is not set | 705 | # CONFIG_LATENCYTOP is not set |
706 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
668 | CONFIG_HAVE_FUNCTION_TRACER=y | 707 | CONFIG_HAVE_FUNCTION_TRACER=y |
669 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 708 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
670 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 709 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -677,7 +716,6 @@ CONFIG_TRACING_SUPPORT=y | |||
677 | # CONFIG_SAMPLES is not set | 716 | # CONFIG_SAMPLES is not set |
678 | CONFIG_HAVE_ARCH_KGDB=y | 717 | CONFIG_HAVE_ARCH_KGDB=y |
679 | # CONFIG_SH_STANDARD_BIOS is not set | 718 | # CONFIG_SH_STANDARD_BIOS is not set |
680 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
681 | # CONFIG_DWARF_UNWINDER is not set | 719 | # CONFIG_DWARF_UNWINDER is not set |
682 | 720 | ||
683 | # | 721 | # |
@@ -685,7 +723,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
685 | # | 723 | # |
686 | # CONFIG_KEYS is not set | 724 | # CONFIG_KEYS is not set |
687 | # CONFIG_SECURITYFS is not set | 725 | # CONFIG_SECURITYFS is not set |
688 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 726 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
727 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
728 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
729 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
730 | CONFIG_DEFAULT_SECURITY="" | ||
689 | # CONFIG_CRYPTO is not set | 731 | # CONFIG_CRYPTO is not set |
690 | # CONFIG_BINARY_PRINTF is not set | 732 | # CONFIG_BINARY_PRINTF is not set |
691 | 733 | ||
diff --git a/arch/sh/configs/se7705_defconfig b/arch/sh/configs/se7705_defconfig index 3abb06879f0..03f4219f208 100644 --- a/arch/sh/configs/se7705_defconfig +++ b/arch/sh/configs/se7705_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:50:52 2009 | 4 | # Mon Jan 4 13:34:37 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
32 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 34 | CONFIG_CONSTRUCTORS=y |
34 | 35 | ||
@@ -59,6 +60,7 @@ CONFIG_KERNEL_GZIP=y | |||
59 | # | 60 | # |
60 | CONFIG_TREE_RCU=y | 61 | CONFIG_TREE_RCU=y |
61 | # CONFIG_TREE_PREEMPT_RCU is not set | 62 | # CONFIG_TREE_PREEMPT_RCU is not set |
63 | # CONFIG_TINY_RCU is not set | ||
62 | # CONFIG_RCU_TRACE is not set | 64 | # CONFIG_RCU_TRACE is not set |
63 | CONFIG_RCU_FANOUT=32 | 65 | CONFIG_RCU_FANOUT=32 |
64 | # CONFIG_RCU_FANOUT_EXACT is not set | 66 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -94,6 +96,7 @@ CONFIG_EVENTFD=y | |||
94 | CONFIG_SHMEM=y | 96 | CONFIG_SHMEM=y |
95 | CONFIG_AIO=y | 97 | CONFIG_AIO=y |
96 | CONFIG_HAVE_PERF_EVENTS=y | 98 | CONFIG_HAVE_PERF_EVENTS=y |
99 | CONFIG_PERF_USE_VMALLOC=y | ||
97 | 100 | ||
98 | # | 101 | # |
99 | # Kernel Performance Events And Counters | 102 | # Kernel Performance Events And Counters |
@@ -111,6 +114,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
111 | CONFIG_HAVE_KPROBES=y | 114 | CONFIG_HAVE_KPROBES=y |
112 | CONFIG_HAVE_KRETPROBES=y | 115 | CONFIG_HAVE_KRETPROBES=y |
113 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 116 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
117 | CONFIG_HAVE_DMA_ATTRS=y | ||
114 | CONFIG_HAVE_CLK=y | 118 | CONFIG_HAVE_CLK=y |
115 | CONFIG_HAVE_DMA_API_DEBUG=y | 119 | CONFIG_HAVE_DMA_API_DEBUG=y |
116 | 120 | ||
@@ -136,14 +140,41 @@ CONFIG_LBDAF=y | |||
136 | # IO Schedulers | 140 | # IO Schedulers |
137 | # | 141 | # |
138 | CONFIG_IOSCHED_NOOP=y | 142 | CONFIG_IOSCHED_NOOP=y |
139 | CONFIG_IOSCHED_AS=y | ||
140 | # CONFIG_IOSCHED_DEADLINE is not set | 143 | # CONFIG_IOSCHED_DEADLINE is not set |
141 | # CONFIG_IOSCHED_CFQ is not set | 144 | # CONFIG_IOSCHED_CFQ is not set |
142 | CONFIG_DEFAULT_AS=y | ||
143 | # CONFIG_DEFAULT_DEADLINE is not set | 145 | # CONFIG_DEFAULT_DEADLINE is not set |
144 | # CONFIG_DEFAULT_CFQ is not set | 146 | # CONFIG_DEFAULT_CFQ is not set |
145 | # CONFIG_DEFAULT_NOOP is not set | 147 | CONFIG_DEFAULT_NOOP=y |
146 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 148 | CONFIG_DEFAULT_IOSCHED="noop" |
149 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
150 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
151 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
152 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
153 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
154 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
155 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
156 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
157 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
158 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
159 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
160 | # CONFIG_INLINE_READ_LOCK is not set | ||
161 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
162 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
163 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
164 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
165 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
166 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
167 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
168 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
169 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
170 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
171 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
172 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
173 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
174 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
175 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
176 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
177 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
147 | # CONFIG_FREEZER is not set | 178 | # CONFIG_FREEZER is not set |
148 | 179 | ||
149 | # | 180 | # |
@@ -219,8 +250,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
219 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 250 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
220 | CONFIG_ZONE_DMA_FLAG=0 | 251 | CONFIG_ZONE_DMA_FLAG=0 |
221 | CONFIG_NR_QUICK=2 | 252 | CONFIG_NR_QUICK=2 |
222 | CONFIG_HAVE_MLOCK=y | ||
223 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
224 | # CONFIG_KSM is not set | 253 | # CONFIG_KSM is not set |
225 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 254 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
226 | 255 | ||
@@ -403,9 +432,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
403 | # CONFIG_AF_RXRPC is not set | 432 | # CONFIG_AF_RXRPC is not set |
404 | CONFIG_WIRELESS=y | 433 | CONFIG_WIRELESS=y |
405 | # CONFIG_CFG80211 is not set | 434 | # CONFIG_CFG80211 is not set |
406 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
407 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
408 | # CONFIG_WIRELESS_EXT is not set | ||
409 | # CONFIG_LIB80211 is not set | 435 | # CONFIG_LIB80211 is not set |
410 | 436 | ||
411 | # | 437 | # |
@@ -510,6 +536,10 @@ CONFIG_MTD_CFI_UTIL=y | |||
510 | CONFIG_BLK_DEV=y | 536 | CONFIG_BLK_DEV=y |
511 | # CONFIG_BLK_DEV_COW_COMMON is not set | 537 | # CONFIG_BLK_DEV_COW_COMMON is not set |
512 | # CONFIG_BLK_DEV_LOOP is not set | 538 | # CONFIG_BLK_DEV_LOOP is not set |
539 | |||
540 | # | ||
541 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
542 | # | ||
513 | # CONFIG_BLK_DEV_NBD is not set | 543 | # CONFIG_BLK_DEV_NBD is not set |
514 | CONFIG_BLK_DEV_RAM=y | 544 | CONFIG_BLK_DEV_RAM=y |
515 | CONFIG_BLK_DEV_RAM_COUNT=16 | 545 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -564,11 +594,11 @@ CONFIG_STNIC=y | |||
564 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 594 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
565 | # CONFIG_B44 is not set | 595 | # CONFIG_B44 is not set |
566 | # CONFIG_KS8842 is not set | 596 | # CONFIG_KS8842 is not set |
597 | # CONFIG_KS8851_MLL is not set | ||
567 | CONFIG_NETDEV_1000=y | 598 | CONFIG_NETDEV_1000=y |
568 | CONFIG_NETDEV_10000=y | 599 | CONFIG_NETDEV_10000=y |
569 | CONFIG_WLAN=y | 600 | CONFIG_WLAN=y |
570 | # CONFIG_WLAN_PRE80211 is not set | 601 | # CONFIG_HOSTAP is not set |
571 | # CONFIG_WLAN_80211 is not set | ||
572 | 602 | ||
573 | # | 603 | # |
574 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 604 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -598,6 +628,7 @@ CONFIG_SLHC=y | |||
598 | CONFIG_INPUT=y | 628 | CONFIG_INPUT=y |
599 | # CONFIG_INPUT_FF_MEMLESS is not set | 629 | # CONFIG_INPUT_FF_MEMLESS is not set |
600 | # CONFIG_INPUT_POLLDEV is not set | 630 | # CONFIG_INPUT_POLLDEV is not set |
631 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
601 | 632 | ||
602 | # | 633 | # |
603 | # Userland interfaces | 634 | # Userland interfaces |
@@ -625,6 +656,7 @@ CONFIG_SERIO=y | |||
625 | # CONFIG_SERIO_SERPORT is not set | 656 | # CONFIG_SERIO_SERPORT is not set |
626 | # CONFIG_SERIO_LIBPS2 is not set | 657 | # CONFIG_SERIO_LIBPS2 is not set |
627 | # CONFIG_SERIO_RAW is not set | 658 | # CONFIG_SERIO_RAW is not set |
659 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
628 | # CONFIG_GAMEPORT is not set | 660 | # CONFIG_GAMEPORT is not set |
629 | 661 | ||
630 | # | 662 | # |
@@ -696,6 +728,7 @@ CONFIG_SSB_POSSIBLE=y | |||
696 | # | 728 | # |
697 | # CONFIG_MFD_CORE is not set | 729 | # CONFIG_MFD_CORE is not set |
698 | # CONFIG_MFD_SM501 is not set | 730 | # CONFIG_MFD_SM501 is not set |
731 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
699 | # CONFIG_HTC_PASIC3 is not set | 732 | # CONFIG_HTC_PASIC3 is not set |
700 | # CONFIG_MFD_TMIO is not set | 733 | # CONFIG_MFD_TMIO is not set |
701 | # CONFIG_REGULATOR is not set | 734 | # CONFIG_REGULATOR is not set |
@@ -765,6 +798,7 @@ CONFIG_EXT2_FS=y | |||
765 | # CONFIG_EXT2_FS_XIP is not set | 798 | # CONFIG_EXT2_FS_XIP is not set |
766 | # CONFIG_EXT3_FS is not set | 799 | # CONFIG_EXT3_FS is not set |
767 | # CONFIG_EXT4_FS is not set | 800 | # CONFIG_EXT4_FS is not set |
801 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
768 | # CONFIG_REISERFS_FS is not set | 802 | # CONFIG_REISERFS_FS is not set |
769 | # CONFIG_JFS_FS is not set | 803 | # CONFIG_JFS_FS is not set |
770 | # CONFIG_FS_POSIX_ACL is not set | 804 | # CONFIG_FS_POSIX_ACL is not set |
@@ -809,7 +843,6 @@ CONFIG_PROC_SYSCTL=y | |||
809 | CONFIG_PROC_PAGE_MONITOR=y | 843 | CONFIG_PROC_PAGE_MONITOR=y |
810 | # CONFIG_SYSFS is not set | 844 | # CONFIG_SYSFS is not set |
811 | # CONFIG_TMPFS is not set | 845 | # CONFIG_TMPFS is not set |
812 | # CONFIG_HUGETLBFS is not set | ||
813 | # CONFIG_HUGETLB_PAGE is not set | 846 | # CONFIG_HUGETLB_PAGE is not set |
814 | CONFIG_MISC_FILESYSTEMS=y | 847 | CONFIG_MISC_FILESYSTEMS=y |
815 | # CONFIG_ADFS_FS is not set | 848 | # CONFIG_ADFS_FS is not set |
@@ -877,10 +910,11 @@ CONFIG_FRAME_WARN=1024 | |||
877 | # CONFIG_UNUSED_SYMBOLS is not set | 910 | # CONFIG_UNUSED_SYMBOLS is not set |
878 | # CONFIG_HEADERS_CHECK is not set | 911 | # CONFIG_HEADERS_CHECK is not set |
879 | # CONFIG_DEBUG_KERNEL is not set | 912 | # CONFIG_DEBUG_KERNEL is not set |
880 | # CONFIG_DEBUG_BUGVERBOSE is not set | 913 | CONFIG_DEBUG_BUGVERBOSE=y |
881 | # CONFIG_DEBUG_MEMORY_INIT is not set | 914 | # CONFIG_DEBUG_MEMORY_INIT is not set |
882 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 915 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
883 | # CONFIG_LATENCYTOP is not set | 916 | # CONFIG_LATENCYTOP is not set |
917 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
884 | CONFIG_HAVE_FUNCTION_TRACER=y | 918 | CONFIG_HAVE_FUNCTION_TRACER=y |
885 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 919 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
886 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 920 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -893,7 +927,6 @@ CONFIG_TRACING_SUPPORT=y | |||
893 | # CONFIG_SAMPLES is not set | 927 | # CONFIG_SAMPLES is not set |
894 | CONFIG_HAVE_ARCH_KGDB=y | 928 | CONFIG_HAVE_ARCH_KGDB=y |
895 | # CONFIG_SH_STANDARD_BIOS is not set | 929 | # CONFIG_SH_STANDARD_BIOS is not set |
896 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
897 | # CONFIG_DWARF_UNWINDER is not set | 930 | # CONFIG_DWARF_UNWINDER is not set |
898 | 931 | ||
899 | # | 932 | # |
@@ -901,7 +934,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
901 | # | 934 | # |
902 | # CONFIG_KEYS is not set | 935 | # CONFIG_KEYS is not set |
903 | # CONFIG_SECURITYFS is not set | 936 | # CONFIG_SECURITYFS is not set |
904 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 937 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
938 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
939 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
940 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
941 | CONFIG_DEFAULT_SECURITY="" | ||
905 | CONFIG_CRYPTO=y | 942 | CONFIG_CRYPTO=y |
906 | 943 | ||
907 | # | 944 | # |
diff --git a/arch/sh/configs/se7712_defconfig b/arch/sh/configs/se7712_defconfig index 1a43cfecb39..cfa58199a36 100644 --- a/arch/sh/configs/se7712_defconfig +++ b/arch/sh/configs/se7712_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:53:32 2009 | 4 | # Mon Jan 4 13:44:56 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -28,6 +28,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
28 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 28 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
29 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 29 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
30 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 30 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
31 | CONFIG_DMA_NONCOHERENT=y | ||
31 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
32 | CONFIG_CONSTRUCTORS=y | 33 | CONFIG_CONSTRUCTORS=y |
33 | 34 | ||
@@ -60,6 +61,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
60 | # | 61 | # |
61 | CONFIG_TREE_RCU=y | 62 | CONFIG_TREE_RCU=y |
62 | # CONFIG_TREE_PREEMPT_RCU is not set | 63 | # CONFIG_TREE_PREEMPT_RCU is not set |
64 | # CONFIG_TINY_RCU is not set | ||
63 | # CONFIG_RCU_TRACE is not set | 65 | # CONFIG_RCU_TRACE is not set |
64 | CONFIG_RCU_FANOUT=32 | 66 | CONFIG_RCU_FANOUT=32 |
65 | # CONFIG_RCU_FANOUT_EXACT is not set | 67 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -95,6 +97,7 @@ CONFIG_EVENTFD=y | |||
95 | # CONFIG_SHMEM is not set | 97 | # CONFIG_SHMEM is not set |
96 | CONFIG_AIO=y | 98 | CONFIG_AIO=y |
97 | CONFIG_HAVE_PERF_EVENTS=y | 99 | CONFIG_HAVE_PERF_EVENTS=y |
100 | CONFIG_PERF_USE_VMALLOC=y | ||
98 | 101 | ||
99 | # | 102 | # |
100 | # Kernel Performance Events And Counters | 103 | # Kernel Performance Events And Counters |
@@ -113,6 +116,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
113 | CONFIG_HAVE_KPROBES=y | 116 | CONFIG_HAVE_KPROBES=y |
114 | CONFIG_HAVE_KRETPROBES=y | 117 | CONFIG_HAVE_KRETPROBES=y |
115 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 118 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
119 | CONFIG_HAVE_DMA_ATTRS=y | ||
116 | CONFIG_HAVE_CLK=y | 120 | CONFIG_HAVE_CLK=y |
117 | CONFIG_HAVE_DMA_API_DEBUG=y | 121 | CONFIG_HAVE_DMA_API_DEBUG=y |
118 | 122 | ||
@@ -138,14 +142,41 @@ CONFIG_LBDAF=y | |||
138 | # IO Schedulers | 142 | # IO Schedulers |
139 | # | 143 | # |
140 | CONFIG_IOSCHED_NOOP=y | 144 | CONFIG_IOSCHED_NOOP=y |
141 | # CONFIG_IOSCHED_AS is not set | ||
142 | # CONFIG_IOSCHED_DEADLINE is not set | 145 | # CONFIG_IOSCHED_DEADLINE is not set |
143 | # CONFIG_IOSCHED_CFQ is not set | 146 | # CONFIG_IOSCHED_CFQ is not set |
144 | # CONFIG_DEFAULT_AS is not set | ||
145 | # CONFIG_DEFAULT_DEADLINE is not set | 147 | # CONFIG_DEFAULT_DEADLINE is not set |
146 | # CONFIG_DEFAULT_CFQ is not set | 148 | # CONFIG_DEFAULT_CFQ is not set |
147 | CONFIG_DEFAULT_NOOP=y | 149 | CONFIG_DEFAULT_NOOP=y |
148 | CONFIG_DEFAULT_IOSCHED="noop" | 150 | CONFIG_DEFAULT_IOSCHED="noop" |
151 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
152 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
153 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
154 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
155 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
156 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
157 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
158 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
159 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
160 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
161 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
162 | # CONFIG_INLINE_READ_LOCK is not set | ||
163 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
164 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
165 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
166 | CONFIG_INLINE_READ_UNLOCK=y | ||
167 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
168 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
169 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
170 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
171 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
172 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
173 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
174 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
175 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
176 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
177 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
178 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
179 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
149 | # CONFIG_FREEZER is not set | 180 | # CONFIG_FREEZER is not set |
150 | 181 | ||
151 | # | 182 | # |
@@ -221,8 +252,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
221 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 252 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
222 | CONFIG_ZONE_DMA_FLAG=0 | 253 | CONFIG_ZONE_DMA_FLAG=0 |
223 | CONFIG_NR_QUICK=2 | 254 | CONFIG_NR_QUICK=2 |
224 | CONFIG_HAVE_MLOCK=y | ||
225 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
226 | # CONFIG_KSM is not set | 255 | # CONFIG_KSM is not set |
227 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 256 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
228 | 257 | ||
@@ -452,9 +481,6 @@ CONFIG_NET_SCH_FIFO=y | |||
452 | CONFIG_FIB_RULES=y | 481 | CONFIG_FIB_RULES=y |
453 | CONFIG_WIRELESS=y | 482 | CONFIG_WIRELESS=y |
454 | # CONFIG_CFG80211 is not set | 483 | # CONFIG_CFG80211 is not set |
455 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
456 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
457 | # CONFIG_WIRELESS_EXT is not set | ||
458 | # CONFIG_LIB80211 is not set | 484 | # CONFIG_LIB80211 is not set |
459 | 485 | ||
460 | # | 486 | # |
@@ -565,6 +591,10 @@ CONFIG_MTD_CFI_UTIL=y | |||
565 | CONFIG_BLK_DEV=y | 591 | CONFIG_BLK_DEV=y |
566 | # CONFIG_BLK_DEV_COW_COMMON is not set | 592 | # CONFIG_BLK_DEV_COW_COMMON is not set |
567 | # CONFIG_BLK_DEV_LOOP is not set | 593 | # CONFIG_BLK_DEV_LOOP is not set |
594 | |||
595 | # | ||
596 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
597 | # | ||
568 | # CONFIG_BLK_DEV_NBD is not set | 598 | # CONFIG_BLK_DEV_NBD is not set |
569 | # CONFIG_BLK_DEV_RAM is not set | 599 | # CONFIG_BLK_DEV_RAM is not set |
570 | # CONFIG_CDROM_PKTCDVD is not set | 600 | # CONFIG_CDROM_PKTCDVD is not set |
@@ -675,11 +705,11 @@ CONFIG_SH_ETH=y | |||
675 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 705 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
676 | # CONFIG_B44 is not set | 706 | # CONFIG_B44 is not set |
677 | # CONFIG_KS8842 is not set | 707 | # CONFIG_KS8842 is not set |
708 | # CONFIG_KS8851_MLL is not set | ||
678 | CONFIG_NETDEV_1000=y | 709 | CONFIG_NETDEV_1000=y |
679 | CONFIG_NETDEV_10000=y | 710 | CONFIG_NETDEV_10000=y |
680 | CONFIG_WLAN=y | 711 | CONFIG_WLAN=y |
681 | # CONFIG_WLAN_PRE80211 is not set | 712 | # CONFIG_HOSTAP is not set |
682 | # CONFIG_WLAN_80211 is not set | ||
683 | 713 | ||
684 | # | 714 | # |
685 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 715 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -757,6 +787,7 @@ CONFIG_SSB_POSSIBLE=y | |||
757 | # | 787 | # |
758 | # CONFIG_MFD_CORE is not set | 788 | # CONFIG_MFD_CORE is not set |
759 | # CONFIG_MFD_SM501 is not set | 789 | # CONFIG_MFD_SM501 is not set |
790 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
760 | # CONFIG_HTC_PASIC3 is not set | 791 | # CONFIG_HTC_PASIC3 is not set |
761 | # CONFIG_MFD_TMIO is not set | 792 | # CONFIG_MFD_TMIO is not set |
762 | # CONFIG_REGULATOR is not set | 793 | # CONFIG_REGULATOR is not set |
@@ -888,7 +919,6 @@ CONFIG_PROC_FS=y | |||
888 | CONFIG_PROC_SYSCTL=y | 919 | CONFIG_PROC_SYSCTL=y |
889 | CONFIG_PROC_PAGE_MONITOR=y | 920 | CONFIG_PROC_PAGE_MONITOR=y |
890 | CONFIG_SYSFS=y | 921 | CONFIG_SYSFS=y |
891 | # CONFIG_HUGETLBFS is not set | ||
892 | # CONFIG_HUGETLB_PAGE is not set | 922 | # CONFIG_HUGETLB_PAGE is not set |
893 | # CONFIG_CONFIGFS_FS is not set | 923 | # CONFIG_CONFIGFS_FS is not set |
894 | CONFIG_MISC_FILESYSTEMS=y | 924 | CONFIG_MISC_FILESYSTEMS=y |
@@ -1021,7 +1051,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1021 | CONFIG_HAVE_ARCH_KGDB=y | 1051 | CONFIG_HAVE_ARCH_KGDB=y |
1022 | # CONFIG_KGDB is not set | 1052 | # CONFIG_KGDB is not set |
1023 | # CONFIG_SH_STANDARD_BIOS is not set | 1053 | # CONFIG_SH_STANDARD_BIOS is not set |
1024 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1025 | # CONFIG_STACK_DEBUG is not set | 1054 | # CONFIG_STACK_DEBUG is not set |
1026 | # CONFIG_DEBUG_STACK_USAGE is not set | 1055 | # CONFIG_DEBUG_STACK_USAGE is not set |
1027 | # CONFIG_4KSTACKS is not set | 1056 | # CONFIG_4KSTACKS is not set |
@@ -1035,7 +1064,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1035 | # CONFIG_KEYS is not set | 1064 | # CONFIG_KEYS is not set |
1036 | # CONFIG_SECURITY is not set | 1065 | # CONFIG_SECURITY is not set |
1037 | # CONFIG_SECURITYFS is not set | 1066 | # CONFIG_SECURITYFS is not set |
1038 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1067 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1068 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1069 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1070 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1071 | CONFIG_DEFAULT_SECURITY="" | ||
1039 | CONFIG_CRYPTO=y | 1072 | CONFIG_CRYPTO=y |
1040 | 1073 | ||
1041 | # | 1074 | # |
diff --git a/arch/sh/configs/se7721_defconfig b/arch/sh/configs/se7721_defconfig index b8a3c8c4bac..201283c829a 100644 --- a/arch/sh/configs/se7721_defconfig +++ b/arch/sh/configs/se7721_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:57:11 2009 | 4 | # Mon Jan 4 13:46:58 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
32 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 34 | CONFIG_CONSTRUCTORS=y |
34 | 35 | ||
@@ -61,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
61 | # | 62 | # |
62 | CONFIG_TREE_RCU=y | 63 | CONFIG_TREE_RCU=y |
63 | # CONFIG_TREE_PREEMPT_RCU is not set | 64 | # CONFIG_TREE_PREEMPT_RCU is not set |
65 | # CONFIG_TINY_RCU is not set | ||
64 | # CONFIG_RCU_TRACE is not set | 66 | # CONFIG_RCU_TRACE is not set |
65 | CONFIG_RCU_FANOUT=32 | 67 | CONFIG_RCU_FANOUT=32 |
66 | # CONFIG_RCU_FANOUT_EXACT is not set | 68 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -100,6 +102,7 @@ CONFIG_EVENTFD=y | |||
100 | # CONFIG_SHMEM is not set | 102 | # CONFIG_SHMEM is not set |
101 | CONFIG_AIO=y | 103 | CONFIG_AIO=y |
102 | CONFIG_HAVE_PERF_EVENTS=y | 104 | CONFIG_HAVE_PERF_EVENTS=y |
105 | CONFIG_PERF_USE_VMALLOC=y | ||
103 | 106 | ||
104 | # | 107 | # |
105 | # Kernel Performance Events And Counters | 108 | # Kernel Performance Events And Counters |
@@ -118,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
118 | CONFIG_HAVE_KPROBES=y | 121 | CONFIG_HAVE_KPROBES=y |
119 | CONFIG_HAVE_KRETPROBES=y | 122 | CONFIG_HAVE_KRETPROBES=y |
120 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 123 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
124 | CONFIG_HAVE_DMA_ATTRS=y | ||
121 | CONFIG_HAVE_CLK=y | 125 | CONFIG_HAVE_CLK=y |
122 | CONFIG_HAVE_DMA_API_DEBUG=y | 126 | CONFIG_HAVE_DMA_API_DEBUG=y |
123 | 127 | ||
@@ -143,14 +147,41 @@ CONFIG_LBDAF=y | |||
143 | # IO Schedulers | 147 | # IO Schedulers |
144 | # | 148 | # |
145 | CONFIG_IOSCHED_NOOP=y | 149 | CONFIG_IOSCHED_NOOP=y |
146 | # CONFIG_IOSCHED_AS is not set | ||
147 | # CONFIG_IOSCHED_DEADLINE is not set | 150 | # CONFIG_IOSCHED_DEADLINE is not set |
148 | # CONFIG_IOSCHED_CFQ is not set | 151 | # CONFIG_IOSCHED_CFQ is not set |
149 | # CONFIG_DEFAULT_AS is not set | ||
150 | # CONFIG_DEFAULT_DEADLINE is not set | 152 | # CONFIG_DEFAULT_DEADLINE is not set |
151 | # CONFIG_DEFAULT_CFQ is not set | 153 | # CONFIG_DEFAULT_CFQ is not set |
152 | CONFIG_DEFAULT_NOOP=y | 154 | CONFIG_DEFAULT_NOOP=y |
153 | CONFIG_DEFAULT_IOSCHED="noop" | 155 | CONFIG_DEFAULT_IOSCHED="noop" |
156 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
157 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
162 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
163 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
164 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
165 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
166 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
167 | # CONFIG_INLINE_READ_LOCK is not set | ||
168 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
170 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
171 | CONFIG_INLINE_READ_UNLOCK=y | ||
172 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
173 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
174 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
175 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
180 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
181 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
182 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
183 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
184 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
154 | # CONFIG_FREEZER is not set | 185 | # CONFIG_FREEZER is not set |
155 | 186 | ||
156 | # | 187 | # |
@@ -226,8 +257,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
226 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 257 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
227 | CONFIG_ZONE_DMA_FLAG=0 | 258 | CONFIG_ZONE_DMA_FLAG=0 |
228 | CONFIG_NR_QUICK=2 | 259 | CONFIG_NR_QUICK=2 |
229 | CONFIG_HAVE_MLOCK=y | ||
230 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
231 | # CONFIG_KSM is not set | 260 | # CONFIG_KSM is not set |
232 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 261 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
233 | 262 | ||
@@ -457,9 +486,6 @@ CONFIG_NET_SCH_FIFO=y | |||
457 | CONFIG_FIB_RULES=y | 486 | CONFIG_FIB_RULES=y |
458 | CONFIG_WIRELESS=y | 487 | CONFIG_WIRELESS=y |
459 | # CONFIG_CFG80211 is not set | 488 | # CONFIG_CFG80211 is not set |
460 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
461 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
462 | # CONFIG_WIRELESS_EXT is not set | ||
463 | # CONFIG_LIB80211 is not set | 489 | # CONFIG_LIB80211 is not set |
464 | 490 | ||
465 | # | 491 | # |
@@ -570,6 +596,10 @@ CONFIG_MTD_CFI_UTIL=y | |||
570 | CONFIG_BLK_DEV=y | 596 | CONFIG_BLK_DEV=y |
571 | # CONFIG_BLK_DEV_COW_COMMON is not set | 597 | # CONFIG_BLK_DEV_COW_COMMON is not set |
572 | # CONFIG_BLK_DEV_LOOP is not set | 598 | # CONFIG_BLK_DEV_LOOP is not set |
599 | |||
600 | # | ||
601 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
602 | # | ||
573 | # CONFIG_BLK_DEV_NBD is not set | 603 | # CONFIG_BLK_DEV_NBD is not set |
574 | # CONFIG_BLK_DEV_UB is not set | 604 | # CONFIG_BLK_DEV_UB is not set |
575 | # CONFIG_BLK_DEV_RAM is not set | 605 | # CONFIG_BLK_DEV_RAM is not set |
@@ -642,8 +672,8 @@ CONFIG_NETDEVICES=y | |||
642 | CONFIG_NETDEV_1000=y | 672 | CONFIG_NETDEV_1000=y |
643 | CONFIG_NETDEV_10000=y | 673 | CONFIG_NETDEV_10000=y |
644 | CONFIG_WLAN=y | 674 | CONFIG_WLAN=y |
645 | # CONFIG_WLAN_PRE80211 is not set | 675 | # CONFIG_USB_ZD1201 is not set |
646 | # CONFIG_WLAN_80211 is not set | 676 | # CONFIG_HOSTAP is not set |
647 | 677 | ||
648 | # | 678 | # |
649 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 679 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -672,6 +702,7 @@ CONFIG_WLAN=y | |||
672 | CONFIG_INPUT=y | 702 | CONFIG_INPUT=y |
673 | CONFIG_INPUT_FF_MEMLESS=m | 703 | CONFIG_INPUT_FF_MEMLESS=m |
674 | # CONFIG_INPUT_POLLDEV is not set | 704 | # CONFIG_INPUT_POLLDEV is not set |
705 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
675 | 706 | ||
676 | # | 707 | # |
677 | # Userland interfaces | 708 | # Userland interfaces |
@@ -765,6 +796,7 @@ CONFIG_SSB_POSSIBLE=y | |||
765 | # | 796 | # |
766 | # CONFIG_MFD_CORE is not set | 797 | # CONFIG_MFD_CORE is not set |
767 | # CONFIG_MFD_SM501 is not set | 798 | # CONFIG_MFD_SM501 is not set |
799 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
768 | # CONFIG_HTC_PASIC3 is not set | 800 | # CONFIG_HTC_PASIC3 is not set |
769 | # CONFIG_MFD_TMIO is not set | 801 | # CONFIG_MFD_TMIO is not set |
770 | # CONFIG_REGULATOR is not set | 802 | # CONFIG_REGULATOR is not set |
@@ -1029,7 +1061,6 @@ CONFIG_PROC_FS=y | |||
1029 | CONFIG_PROC_SYSCTL=y | 1061 | CONFIG_PROC_SYSCTL=y |
1030 | CONFIG_PROC_PAGE_MONITOR=y | 1062 | CONFIG_PROC_PAGE_MONITOR=y |
1031 | CONFIG_SYSFS=y | 1063 | CONFIG_SYSFS=y |
1032 | # CONFIG_HUGETLBFS is not set | ||
1033 | # CONFIG_HUGETLB_PAGE is not set | 1064 | # CONFIG_HUGETLB_PAGE is not set |
1034 | # CONFIG_CONFIGFS_FS is not set | 1065 | # CONFIG_CONFIGFS_FS is not set |
1035 | CONFIG_MISC_FILESYSTEMS=y | 1066 | CONFIG_MISC_FILESYSTEMS=y |
@@ -1186,7 +1217,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1186 | CONFIG_HAVE_ARCH_KGDB=y | 1217 | CONFIG_HAVE_ARCH_KGDB=y |
1187 | # CONFIG_KGDB is not set | 1218 | # CONFIG_KGDB is not set |
1188 | # CONFIG_SH_STANDARD_BIOS is not set | 1219 | # CONFIG_SH_STANDARD_BIOS is not set |
1189 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1190 | # CONFIG_STACK_DEBUG is not set | 1220 | # CONFIG_STACK_DEBUG is not set |
1191 | # CONFIG_DEBUG_STACK_USAGE is not set | 1221 | # CONFIG_DEBUG_STACK_USAGE is not set |
1192 | # CONFIG_4KSTACKS is not set | 1222 | # CONFIG_4KSTACKS is not set |
@@ -1200,7 +1230,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1200 | # CONFIG_KEYS is not set | 1230 | # CONFIG_KEYS is not set |
1201 | # CONFIG_SECURITY is not set | 1231 | # CONFIG_SECURITY is not set |
1202 | # CONFIG_SECURITYFS is not set | 1232 | # CONFIG_SECURITYFS is not set |
1203 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1233 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1234 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1235 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1236 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1237 | CONFIG_DEFAULT_SECURITY="" | ||
1204 | CONFIG_CRYPTO=y | 1238 | CONFIG_CRYPTO=y |
1205 | 1239 | ||
1206 | # | 1240 | # |
diff --git a/arch/sh/configs/se7722_defconfig b/arch/sh/configs/se7722_defconfig index d709b7f35ac..4a4efd261d0 100644 --- a/arch/sh/configs/se7722_defconfig +++ b/arch/sh/configs/se7722_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:57:41 2009 | 4 | # Mon Jan 4 13:49:15 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_NUMA=y | 24 | CONFIG_SYS_SUPPORTS_NUMA=y |
24 | CONFIG_SYS_SUPPORTS_CMT=y | 25 | CONFIG_SYS_SUPPORTS_CMT=y |
25 | CONFIG_SYS_SUPPORTS_TMU=y | 26 | CONFIG_SYS_SUPPORTS_TMU=y |
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 32 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 33 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 34 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
35 | CONFIG_DMA_NONCOHERENT=y | ||
34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 36 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
35 | CONFIG_CONSTRUCTORS=y | 37 | CONFIG_CONSTRUCTORS=y |
36 | 38 | ||
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
63 | # | 65 | # |
64 | CONFIG_TREE_RCU=y | 66 | CONFIG_TREE_RCU=y |
65 | # CONFIG_TREE_PREEMPT_RCU is not set | 67 | # CONFIG_TREE_PREEMPT_RCU is not set |
68 | # CONFIG_TINY_RCU is not set | ||
66 | # CONFIG_RCU_TRACE is not set | 69 | # CONFIG_RCU_TRACE is not set |
67 | CONFIG_RCU_FANOUT=32 | 70 | CONFIG_RCU_FANOUT=32 |
68 | # CONFIG_RCU_FANOUT_EXACT is not set | 71 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -102,6 +105,7 @@ CONFIG_EVENTFD=y | |||
102 | CONFIG_SHMEM=y | 105 | CONFIG_SHMEM=y |
103 | CONFIG_AIO=y | 106 | CONFIG_AIO=y |
104 | CONFIG_HAVE_PERF_EVENTS=y | 107 | CONFIG_HAVE_PERF_EVENTS=y |
108 | CONFIG_PERF_USE_VMALLOC=y | ||
105 | 109 | ||
106 | # | 110 | # |
107 | # Kernel Performance Events And Counters | 111 | # Kernel Performance Events And Counters |
@@ -122,6 +126,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
122 | CONFIG_HAVE_KPROBES=y | 126 | CONFIG_HAVE_KPROBES=y |
123 | CONFIG_HAVE_KRETPROBES=y | 127 | CONFIG_HAVE_KRETPROBES=y |
124 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 128 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
129 | CONFIG_HAVE_DMA_ATTRS=y | ||
125 | CONFIG_HAVE_CLK=y | 130 | CONFIG_HAVE_CLK=y |
126 | CONFIG_HAVE_DMA_API_DEBUG=y | 131 | CONFIG_HAVE_DMA_API_DEBUG=y |
127 | 132 | ||
@@ -149,14 +154,41 @@ CONFIG_LBDAF=y | |||
149 | # IO Schedulers | 154 | # IO Schedulers |
150 | # | 155 | # |
151 | CONFIG_IOSCHED_NOOP=y | 156 | CONFIG_IOSCHED_NOOP=y |
152 | # CONFIG_IOSCHED_AS is not set | ||
153 | # CONFIG_IOSCHED_DEADLINE is not set | 157 | # CONFIG_IOSCHED_DEADLINE is not set |
154 | # CONFIG_IOSCHED_CFQ is not set | 158 | # CONFIG_IOSCHED_CFQ is not set |
155 | # CONFIG_DEFAULT_AS is not set | ||
156 | # CONFIG_DEFAULT_DEADLINE is not set | 159 | # CONFIG_DEFAULT_DEADLINE is not set |
157 | # CONFIG_DEFAULT_CFQ is not set | 160 | # CONFIG_DEFAULT_CFQ is not set |
158 | CONFIG_DEFAULT_NOOP=y | 161 | CONFIG_DEFAULT_NOOP=y |
159 | CONFIG_DEFAULT_IOSCHED="noop" | 162 | CONFIG_DEFAULT_IOSCHED="noop" |
163 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
164 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
165 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
166 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
167 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
168 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
169 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
170 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
171 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
172 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
173 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
174 | # CONFIG_INLINE_READ_LOCK is not set | ||
175 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
176 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
177 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
178 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
179 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
180 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
181 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
182 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
183 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
184 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
185 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
186 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
187 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
188 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
189 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
191 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
160 | CONFIG_FREEZER=y | 192 | CONFIG_FREEZER=y |
161 | 193 | ||
162 | # | 194 | # |
@@ -248,8 +280,6 @@ CONFIG_MIGRATION=y | |||
248 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 280 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
249 | CONFIG_ZONE_DMA_FLAG=0 | 281 | CONFIG_ZONE_DMA_FLAG=0 |
250 | CONFIG_NR_QUICK=2 | 282 | CONFIG_NR_QUICK=2 |
251 | CONFIG_HAVE_MLOCK=y | ||
252 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
253 | # CONFIG_KSM is not set | 283 | # CONFIG_KSM is not set |
254 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 284 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
255 | 285 | ||
@@ -284,7 +314,6 @@ CONFIG_SH_7722_SOLUTION_ENGINE=y | |||
284 | # | 314 | # |
285 | CONFIG_SH_TIMER_TMU=y | 315 | CONFIG_SH_TIMER_TMU=y |
286 | # CONFIG_SH_TIMER_CMT is not set | 316 | # CONFIG_SH_TIMER_CMT is not set |
287 | CONFIG_SH_PCLK_FREQ=33333333 | ||
288 | CONFIG_SH_CLK_CPG=y | 317 | CONFIG_SH_CLK_CPG=y |
289 | CONFIG_TICK_ONESHOT=y | 318 | CONFIG_TICK_ONESHOT=y |
290 | CONFIG_NO_HZ=y | 319 | CONFIG_NO_HZ=y |
@@ -436,9 +465,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
436 | # CONFIG_AF_RXRPC is not set | 465 | # CONFIG_AF_RXRPC is not set |
437 | CONFIG_WIRELESS=y | 466 | CONFIG_WIRELESS=y |
438 | # CONFIG_CFG80211 is not set | 467 | # CONFIG_CFG80211 is not set |
439 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
440 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
441 | # CONFIG_WIRELESS_EXT is not set | ||
442 | # CONFIG_LIB80211 is not set | 468 | # CONFIG_LIB80211 is not set |
443 | 469 | ||
444 | # | 470 | # |
@@ -467,6 +493,10 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
467 | CONFIG_BLK_DEV=y | 493 | CONFIG_BLK_DEV=y |
468 | # CONFIG_BLK_DEV_COW_COMMON is not set | 494 | # CONFIG_BLK_DEV_COW_COMMON is not set |
469 | # CONFIG_BLK_DEV_LOOP is not set | 495 | # CONFIG_BLK_DEV_LOOP is not set |
496 | |||
497 | # | ||
498 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
499 | # | ||
470 | # CONFIG_BLK_DEV_NBD is not set | 500 | # CONFIG_BLK_DEV_NBD is not set |
471 | CONFIG_BLK_DEV_RAM=y | 501 | CONFIG_BLK_DEV_RAM=y |
472 | CONFIG_BLK_DEV_RAM_COUNT=16 | 502 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -560,11 +590,11 @@ CONFIG_SMC91X=y | |||
560 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 590 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
561 | # CONFIG_B44 is not set | 591 | # CONFIG_B44 is not set |
562 | # CONFIG_KS8842 is not set | 592 | # CONFIG_KS8842 is not set |
593 | # CONFIG_KS8851_MLL is not set | ||
563 | CONFIG_NETDEV_1000=y | 594 | CONFIG_NETDEV_1000=y |
564 | CONFIG_NETDEV_10000=y | 595 | CONFIG_NETDEV_10000=y |
565 | CONFIG_WLAN=y | 596 | CONFIG_WLAN=y |
566 | # CONFIG_WLAN_PRE80211 is not set | 597 | # CONFIG_HOSTAP is not set |
567 | # CONFIG_WLAN_80211 is not set | ||
568 | 598 | ||
569 | # | 599 | # |
570 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 600 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -584,6 +614,7 @@ CONFIG_WLAN=y | |||
584 | CONFIG_INPUT=y | 614 | CONFIG_INPUT=y |
585 | # CONFIG_INPUT_FF_MEMLESS is not set | 615 | # CONFIG_INPUT_FF_MEMLESS is not set |
586 | # CONFIG_INPUT_POLLDEV is not set | 616 | # CONFIG_INPUT_POLLDEV is not set |
617 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
587 | 618 | ||
588 | # | 619 | # |
589 | # Userland interfaces | 620 | # Userland interfaces |
@@ -622,6 +653,7 @@ CONFIG_SERIO=y | |||
622 | # CONFIG_SERIO_SERPORT is not set | 653 | # CONFIG_SERIO_SERPORT is not set |
623 | CONFIG_SERIO_LIBPS2=y | 654 | CONFIG_SERIO_LIBPS2=y |
624 | # CONFIG_SERIO_RAW is not set | 655 | # CONFIG_SERIO_RAW is not set |
656 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
625 | # CONFIG_GAMEPORT is not set | 657 | # CONFIG_GAMEPORT is not set |
626 | 658 | ||
627 | # | 659 | # |
@@ -694,6 +726,7 @@ CONFIG_SSB_POSSIBLE=y | |||
694 | # | 726 | # |
695 | # CONFIG_MFD_CORE is not set | 727 | # CONFIG_MFD_CORE is not set |
696 | # CONFIG_MFD_SM501 is not set | 728 | # CONFIG_MFD_SM501 is not set |
729 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
697 | # CONFIG_HTC_PASIC3 is not set | 730 | # CONFIG_HTC_PASIC3 is not set |
698 | # CONFIG_MFD_TMIO is not set | 731 | # CONFIG_MFD_TMIO is not set |
699 | # CONFIG_REGULATOR is not set | 732 | # CONFIG_REGULATOR is not set |
@@ -774,7 +807,9 @@ CONFIG_RTC_INTF_DEV=y | |||
774 | # CONFIG_RTC_DRV_M48T86 is not set | 807 | # CONFIG_RTC_DRV_M48T86 is not set |
775 | # CONFIG_RTC_DRV_M48T35 is not set | 808 | # CONFIG_RTC_DRV_M48T35 is not set |
776 | # CONFIG_RTC_DRV_M48T59 is not set | 809 | # CONFIG_RTC_DRV_M48T59 is not set |
810 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
777 | # CONFIG_RTC_DRV_BQ4802 is not set | 811 | # CONFIG_RTC_DRV_BQ4802 is not set |
812 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
778 | # CONFIG_RTC_DRV_V3020 is not set | 813 | # CONFIG_RTC_DRV_V3020 is not set |
779 | 814 | ||
780 | # | 815 | # |
@@ -906,7 +941,7 @@ CONFIG_DEBUG_FS=y | |||
906 | # CONFIG_DEBUG_KERNEL is not set | 941 | # CONFIG_DEBUG_KERNEL is not set |
907 | # CONFIG_SLUB_DEBUG_ON is not set | 942 | # CONFIG_SLUB_DEBUG_ON is not set |
908 | # CONFIG_SLUB_STATS is not set | 943 | # CONFIG_SLUB_STATS is not set |
909 | # CONFIG_DEBUG_BUGVERBOSE is not set | 944 | CONFIG_DEBUG_BUGVERBOSE=y |
910 | # CONFIG_DEBUG_MEMORY_INIT is not set | 945 | # CONFIG_DEBUG_MEMORY_INIT is not set |
911 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 946 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
912 | # CONFIG_LATENCYTOP is not set | 947 | # CONFIG_LATENCYTOP is not set |
@@ -924,8 +959,6 @@ CONFIG_TRACING_SUPPORT=y | |||
924 | # CONFIG_SAMPLES is not set | 959 | # CONFIG_SAMPLES is not set |
925 | CONFIG_HAVE_ARCH_KGDB=y | 960 | CONFIG_HAVE_ARCH_KGDB=y |
926 | CONFIG_SH_STANDARD_BIOS=y | 961 | CONFIG_SH_STANDARD_BIOS=y |
927 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
928 | # CONFIG_EARLY_PRINTK is not set | ||
929 | # CONFIG_DWARF_UNWINDER is not set | 962 | # CONFIG_DWARF_UNWINDER is not set |
930 | 963 | ||
931 | # | 964 | # |
@@ -934,7 +967,11 @@ CONFIG_SH_STANDARD_BIOS=y | |||
934 | # CONFIG_KEYS is not set | 967 | # CONFIG_KEYS is not set |
935 | # CONFIG_SECURITY is not set | 968 | # CONFIG_SECURITY is not set |
936 | # CONFIG_SECURITYFS is not set | 969 | # CONFIG_SECURITYFS is not set |
937 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 970 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
971 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
972 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
973 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
974 | CONFIG_DEFAULT_SECURITY="" | ||
938 | CONFIG_CRYPTO=y | 975 | CONFIG_CRYPTO=y |
939 | 976 | ||
940 | # | 977 | # |
diff --git a/arch/sh/configs/se7724_defconfig b/arch/sh/configs/se7724_defconfig index 56b0b9ff9e0..ab371afe359 100644 --- a/arch/sh/configs/se7724_defconfig +++ b/arch/sh/configs/se7724_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Fri Sep 25 11:50:59 2009 | 4 | # Mon Jan 4 14:36:56 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_CMT=y | 24 | CONFIG_SYS_SUPPORTS_CMT=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -62,6 +64,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
62 | # | 64 | # |
63 | CONFIG_TREE_RCU=y | 65 | CONFIG_TREE_RCU=y |
64 | # CONFIG_TREE_PREEMPT_RCU is not set | 66 | # CONFIG_TREE_PREEMPT_RCU is not set |
67 | # CONFIG_TINY_RCU is not set | ||
65 | # CONFIG_RCU_TRACE is not set | 68 | # CONFIG_RCU_TRACE is not set |
66 | CONFIG_RCU_FANOUT=32 | 69 | CONFIG_RCU_FANOUT=32 |
67 | # CONFIG_RCU_FANOUT_EXACT is not set | 70 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -99,6 +102,7 @@ CONFIG_EVENTFD=y | |||
99 | CONFIG_SHMEM=y | 102 | CONFIG_SHMEM=y |
100 | CONFIG_AIO=y | 103 | CONFIG_AIO=y |
101 | CONFIG_HAVE_PERF_EVENTS=y | 104 | CONFIG_HAVE_PERF_EVENTS=y |
105 | CONFIG_PERF_USE_VMALLOC=y | ||
102 | 106 | ||
103 | # | 107 | # |
104 | # Kernel Performance Events And Counters | 108 | # Kernel Performance Events And Counters |
@@ -116,6 +120,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
116 | CONFIG_HAVE_KPROBES=y | 120 | CONFIG_HAVE_KPROBES=y |
117 | CONFIG_HAVE_KRETPROBES=y | 121 | CONFIG_HAVE_KRETPROBES=y |
118 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 122 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
123 | CONFIG_HAVE_DMA_ATTRS=y | ||
119 | CONFIG_HAVE_CLK=y | 124 | CONFIG_HAVE_CLK=y |
120 | CONFIG_HAVE_DMA_API_DEBUG=y | 125 | CONFIG_HAVE_DMA_API_DEBUG=y |
121 | 126 | ||
@@ -142,14 +147,41 @@ CONFIG_LBDAF=y | |||
142 | # IO Schedulers | 147 | # IO Schedulers |
143 | # | 148 | # |
144 | CONFIG_IOSCHED_NOOP=y | 149 | CONFIG_IOSCHED_NOOP=y |
145 | CONFIG_IOSCHED_AS=y | ||
146 | CONFIG_IOSCHED_DEADLINE=y | 150 | CONFIG_IOSCHED_DEADLINE=y |
147 | CONFIG_IOSCHED_CFQ=y | 151 | CONFIG_IOSCHED_CFQ=y |
148 | # CONFIG_DEFAULT_AS is not set | ||
149 | # CONFIG_DEFAULT_DEADLINE is not set | 152 | # CONFIG_DEFAULT_DEADLINE is not set |
150 | CONFIG_DEFAULT_CFQ=y | 153 | CONFIG_DEFAULT_CFQ=y |
151 | # CONFIG_DEFAULT_NOOP is not set | 154 | # CONFIG_DEFAULT_NOOP is not set |
152 | CONFIG_DEFAULT_IOSCHED="cfq" | 155 | CONFIG_DEFAULT_IOSCHED="cfq" |
156 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
157 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
161 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
162 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
163 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
164 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
165 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
166 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
167 | # CONFIG_INLINE_READ_LOCK is not set | ||
168 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
170 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
171 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
172 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
173 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
174 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
175 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
179 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
180 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
181 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
182 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
183 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
184 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
153 | CONFIG_FREEZER=y | 185 | CONFIG_FREEZER=y |
154 | 186 | ||
155 | # | 187 | # |
@@ -205,6 +237,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
205 | CONFIG_MEMORY_START=0x08000000 | 237 | CONFIG_MEMORY_START=0x08000000 |
206 | CONFIG_MEMORY_SIZE=0x08000000 | 238 | CONFIG_MEMORY_SIZE=0x08000000 |
207 | CONFIG_29BIT=y | 239 | CONFIG_29BIT=y |
240 | # CONFIG_PMB_ENABLE is not set | ||
208 | # CONFIG_X2TLB is not set | 241 | # CONFIG_X2TLB is not set |
209 | CONFIG_VSYSCALL=y | 242 | CONFIG_VSYSCALL=y |
210 | CONFIG_ARCH_FLATMEM_ENABLE=y | 243 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -229,8 +262,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
229 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 262 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
230 | CONFIG_ZONE_DMA_FLAG=0 | 263 | CONFIG_ZONE_DMA_FLAG=0 |
231 | CONFIG_NR_QUICK=2 | 264 | CONFIG_NR_QUICK=2 |
232 | CONFIG_HAVE_MLOCK=y | ||
233 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
234 | # CONFIG_KSM is not set | 265 | # CONFIG_KSM is not set |
235 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 266 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
236 | 267 | ||
@@ -265,7 +296,6 @@ CONFIG_SH_7724_SOLUTION_ENGINE=y | |||
265 | # | 296 | # |
266 | CONFIG_SH_TIMER_TMU=y | 297 | CONFIG_SH_TIMER_TMU=y |
267 | # CONFIG_SH_TIMER_CMT is not set | 298 | # CONFIG_SH_TIMER_CMT is not set |
268 | CONFIG_SH_PCLK_FREQ=33333333 | ||
269 | CONFIG_SH_CLK_CPG=y | 299 | CONFIG_SH_CLK_CPG=y |
270 | # CONFIG_NO_HZ is not set | 300 | # CONFIG_NO_HZ is not set |
271 | # CONFIG_HIGH_RES_TIMERS is not set | 301 | # CONFIG_HIGH_RES_TIMERS is not set |
@@ -279,8 +309,8 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | |||
279 | # | 309 | # |
280 | # DMA support | 310 | # DMA support |
281 | # | 311 | # |
282 | CONFIG_SH_DMA_API=y | ||
283 | CONFIG_SH_DMA=y | 312 | CONFIG_SH_DMA=y |
313 | CONFIG_SH_DMA_API=y | ||
284 | CONFIG_NR_ONCHIP_DMA_CHANNELS=12 | 314 | CONFIG_NR_ONCHIP_DMA_CHANNELS=12 |
285 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 315 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
286 | 316 | ||
@@ -423,9 +453,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
423 | # CONFIG_AF_RXRPC is not set | 453 | # CONFIG_AF_RXRPC is not set |
424 | CONFIG_WIRELESS=y | 454 | CONFIG_WIRELESS=y |
425 | # CONFIG_CFG80211 is not set | 455 | # CONFIG_CFG80211 is not set |
426 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
427 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
428 | # CONFIG_WIRELESS_EXT is not set | ||
429 | # CONFIG_LIB80211 is not set | 456 | # CONFIG_LIB80211 is not set |
430 | 457 | ||
431 | # | 458 | # |
@@ -555,6 +582,10 @@ CONFIG_MTD_UBI_BEB_RESERVE=1 | |||
555 | CONFIG_BLK_DEV=y | 582 | CONFIG_BLK_DEV=y |
556 | # CONFIG_BLK_DEV_COW_COMMON is not set | 583 | # CONFIG_BLK_DEV_COW_COMMON is not set |
557 | # CONFIG_BLK_DEV_LOOP is not set | 584 | # CONFIG_BLK_DEV_LOOP is not set |
585 | |||
586 | # | ||
587 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
588 | # | ||
558 | # CONFIG_BLK_DEV_NBD is not set | 589 | # CONFIG_BLK_DEV_NBD is not set |
559 | # CONFIG_BLK_DEV_UB is not set | 590 | # CONFIG_BLK_DEV_UB is not set |
560 | CONFIG_BLK_DEV_RAM=y | 591 | CONFIG_BLK_DEV_RAM=y |
@@ -565,9 +596,12 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
565 | # CONFIG_ATA_OVER_ETH is not set | 596 | # CONFIG_ATA_OVER_ETH is not set |
566 | # CONFIG_BLK_DEV_HD is not set | 597 | # CONFIG_BLK_DEV_HD is not set |
567 | CONFIG_MISC_DEVICES=y | 598 | CONFIG_MISC_DEVICES=y |
599 | # CONFIG_AD525X_DPOT is not set | ||
568 | # CONFIG_ICS932S401 is not set | 600 | # CONFIG_ICS932S401 is not set |
569 | # CONFIG_ENCLOSURE_SERVICES is not set | 601 | # CONFIG_ENCLOSURE_SERVICES is not set |
570 | # CONFIG_ISL29003 is not set | 602 | # CONFIG_ISL29003 is not set |
603 | # CONFIG_DS1682 is not set | ||
604 | # CONFIG_TI_DAC7512 is not set | ||
571 | # CONFIG_C2PORT is not set | 605 | # CONFIG_C2PORT is not set |
572 | 606 | ||
573 | # | 607 | # |
@@ -578,6 +612,7 @@ CONFIG_MISC_DEVICES=y | |||
578 | # CONFIG_EEPROM_LEGACY is not set | 612 | # CONFIG_EEPROM_LEGACY is not set |
579 | # CONFIG_EEPROM_MAX6875 is not set | 613 | # CONFIG_EEPROM_MAX6875 is not set |
580 | # CONFIG_EEPROM_93CX6 is not set | 614 | # CONFIG_EEPROM_93CX6 is not set |
615 | # CONFIG_IWMC3200TOP is not set | ||
581 | CONFIG_HAVE_IDE=y | 616 | CONFIG_HAVE_IDE=y |
582 | # CONFIG_IDE is not set | 617 | # CONFIG_IDE is not set |
583 | 618 | ||
@@ -672,11 +707,12 @@ CONFIG_SMC91X=y | |||
672 | # CONFIG_B44 is not set | 707 | # CONFIG_B44 is not set |
673 | # CONFIG_KS8842 is not set | 708 | # CONFIG_KS8842 is not set |
674 | # CONFIG_KS8851 is not set | 709 | # CONFIG_KS8851 is not set |
710 | # CONFIG_KS8851_MLL is not set | ||
675 | # CONFIG_NETDEV_1000 is not set | 711 | # CONFIG_NETDEV_1000 is not set |
676 | # CONFIG_NETDEV_10000 is not set | 712 | # CONFIG_NETDEV_10000 is not set |
677 | CONFIG_WLAN=y | 713 | CONFIG_WLAN=y |
678 | # CONFIG_WLAN_PRE80211 is not set | 714 | # CONFIG_USB_ZD1201 is not set |
679 | # CONFIG_WLAN_80211 is not set | 715 | # CONFIG_HOSTAP is not set |
680 | 716 | ||
681 | # | 717 | # |
682 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 718 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -705,6 +741,7 @@ CONFIG_WLAN=y | |||
705 | CONFIG_INPUT=y | 741 | CONFIG_INPUT=y |
706 | # CONFIG_INPUT_FF_MEMLESS is not set | 742 | # CONFIG_INPUT_FF_MEMLESS is not set |
707 | # CONFIG_INPUT_POLLDEV is not set | 743 | # CONFIG_INPUT_POLLDEV is not set |
744 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
708 | 745 | ||
709 | # | 746 | # |
710 | # Userland interfaces | 747 | # Userland interfaces |
@@ -813,7 +850,6 @@ CONFIG_I2C_SH_MOBILE=y | |||
813 | # | 850 | # |
814 | # Miscellaneous I2C Chip support | 851 | # Miscellaneous I2C Chip support |
815 | # | 852 | # |
816 | # CONFIG_DS1682 is not set | ||
817 | # CONFIG_SENSORS_TSL2550 is not set | 853 | # CONFIG_SENSORS_TSL2550 is not set |
818 | # CONFIG_I2C_DEBUG_CORE is not set | 854 | # CONFIG_I2C_DEBUG_CORE is not set |
819 | # CONFIG_I2C_DEBUG_ALGO is not set | 855 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -827,7 +863,10 @@ CONFIG_SPI_MASTER=y | |||
827 | # | 863 | # |
828 | CONFIG_SPI_BITBANG=y | 864 | CONFIG_SPI_BITBANG=y |
829 | # CONFIG_SPI_GPIO is not set | 865 | # CONFIG_SPI_GPIO is not set |
866 | # CONFIG_SPI_SH_MSIOF is not set | ||
830 | # CONFIG_SPI_SH_SCI is not set | 867 | # CONFIG_SPI_SH_SCI is not set |
868 | # CONFIG_SPI_XILINX is not set | ||
869 | # CONFIG_SPI_DESIGNWARE is not set | ||
831 | 870 | ||
832 | # | 871 | # |
833 | # SPI Protocol Masters | 872 | # SPI Protocol Masters |
@@ -885,11 +924,13 @@ CONFIG_SSB_POSSIBLE=y | |||
885 | # | 924 | # |
886 | # CONFIG_MFD_CORE is not set | 925 | # CONFIG_MFD_CORE is not set |
887 | # CONFIG_MFD_SM501 is not set | 926 | # CONFIG_MFD_SM501 is not set |
927 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
888 | # CONFIG_HTC_PASIC3 is not set | 928 | # CONFIG_HTC_PASIC3 is not set |
889 | # CONFIG_TPS65010 is not set | 929 | # CONFIG_TPS65010 is not set |
890 | # CONFIG_TWL4030_CORE is not set | 930 | # CONFIG_TWL4030_CORE is not set |
891 | # CONFIG_MFD_TMIO is not set | 931 | # CONFIG_MFD_TMIO is not set |
892 | # CONFIG_PMIC_DA903X is not set | 932 | # CONFIG_PMIC_DA903X is not set |
933 | # CONFIG_PMIC_ADP5520 is not set | ||
893 | # CONFIG_MFD_WM8400 is not set | 934 | # CONFIG_MFD_WM8400 is not set |
894 | # CONFIG_MFD_WM831X is not set | 935 | # CONFIG_MFD_WM831X is not set |
895 | # CONFIG_MFD_WM8350_I2C is not set | 936 | # CONFIG_MFD_WM8350_I2C is not set |
@@ -897,6 +938,8 @@ CONFIG_SSB_POSSIBLE=y | |||
897 | # CONFIG_MFD_MC13783 is not set | 938 | # CONFIG_MFD_MC13783 is not set |
898 | # CONFIG_AB3100_CORE is not set | 939 | # CONFIG_AB3100_CORE is not set |
899 | # CONFIG_EZX_PCAP is not set | 940 | # CONFIG_EZX_PCAP is not set |
941 | # CONFIG_MFD_88PM8607 is not set | ||
942 | # CONFIG_AB4500_CORE is not set | ||
900 | # CONFIG_REGULATOR is not set | 943 | # CONFIG_REGULATOR is not set |
901 | CONFIG_MEDIA_SUPPORT=y | 944 | CONFIG_MEDIA_SUPPORT=y |
902 | 945 | ||
@@ -913,6 +956,8 @@ CONFIG_VIDEO_MEDIA=m | |||
913 | # | 956 | # |
914 | # Multimedia drivers | 957 | # Multimedia drivers |
915 | # | 958 | # |
959 | CONFIG_IR_CORE=y | ||
960 | CONFIG_VIDEO_IR=y | ||
916 | # CONFIG_MEDIA_ATTACH is not set | 961 | # CONFIG_MEDIA_ATTACH is not set |
917 | CONFIG_MEDIA_TUNER=m | 962 | CONFIG_MEDIA_TUNER=m |
918 | # CONFIG_MEDIA_TUNER_CUSTOMISE is not set | 963 | # CONFIG_MEDIA_TUNER_CUSTOMISE is not set |
@@ -932,6 +977,7 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y | |||
932 | # CONFIG_VIDEO_ADV_DEBUG is not set | 977 | # CONFIG_VIDEO_ADV_DEBUG is not set |
933 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set | 978 | # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set |
934 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y | 979 | CONFIG_VIDEO_HELPER_CHIPS_AUTO=y |
980 | CONFIG_VIDEO_IR_I2C=y | ||
935 | # CONFIG_VIDEO_VIVI is not set | 981 | # CONFIG_VIDEO_VIVI is not set |
936 | # CONFIG_VIDEO_SAA5246A is not set | 982 | # CONFIG_VIDEO_SAA5246A is not set |
937 | # CONFIG_VIDEO_SAA5249 is not set | 983 | # CONFIG_VIDEO_SAA5249 is not set |
@@ -940,10 +986,13 @@ CONFIG_SOC_CAMERA=y | |||
940 | # CONFIG_SOC_CAMERA_MT9M001 is not set | 986 | # CONFIG_SOC_CAMERA_MT9M001 is not set |
941 | # CONFIG_SOC_CAMERA_MT9M111 is not set | 987 | # CONFIG_SOC_CAMERA_MT9M111 is not set |
942 | # CONFIG_SOC_CAMERA_MT9T031 is not set | 988 | # CONFIG_SOC_CAMERA_MT9T031 is not set |
989 | # CONFIG_SOC_CAMERA_MT9T112 is not set | ||
943 | # CONFIG_SOC_CAMERA_MT9V022 is not set | 990 | # CONFIG_SOC_CAMERA_MT9V022 is not set |
991 | # CONFIG_SOC_CAMERA_RJ54N1 is not set | ||
944 | # CONFIG_SOC_CAMERA_TW9910 is not set | 992 | # CONFIG_SOC_CAMERA_TW9910 is not set |
945 | # CONFIG_SOC_CAMERA_PLATFORM is not set | 993 | # CONFIG_SOC_CAMERA_PLATFORM is not set |
946 | CONFIG_SOC_CAMERA_OV772X=y | 994 | CONFIG_SOC_CAMERA_OV772X=y |
995 | # CONFIG_SOC_CAMERA_OV9640 is not set | ||
947 | CONFIG_VIDEO_SH_MOBILE_CEU=y | 996 | CONFIG_VIDEO_SH_MOBILE_CEU=y |
948 | CONFIG_V4L_USB_DRIVERS=y | 997 | CONFIG_V4L_USB_DRIVERS=y |
949 | # CONFIG_USB_VIDEO_CLASS is not set | 998 | # CONFIG_USB_VIDEO_CLASS is not set |
@@ -961,6 +1010,7 @@ CONFIG_USB_GSPCA=m | |||
961 | # CONFIG_USB_GSPCA_OV519 is not set | 1010 | # CONFIG_USB_GSPCA_OV519 is not set |
962 | # CONFIG_USB_GSPCA_OV534 is not set | 1011 | # CONFIG_USB_GSPCA_OV534 is not set |
963 | # CONFIG_USB_GSPCA_PAC207 is not set | 1012 | # CONFIG_USB_GSPCA_PAC207 is not set |
1013 | # CONFIG_USB_GSPCA_PAC7302 is not set | ||
964 | # CONFIG_USB_GSPCA_PAC7311 is not set | 1014 | # CONFIG_USB_GSPCA_PAC7311 is not set |
965 | # CONFIG_USB_GSPCA_SN9C20X is not set | 1015 | # CONFIG_USB_GSPCA_SN9C20X is not set |
966 | # CONFIG_USB_GSPCA_SONIXB is not set | 1016 | # CONFIG_USB_GSPCA_SONIXB is not set |
@@ -974,6 +1024,7 @@ CONFIG_USB_GSPCA=m | |||
974 | # CONFIG_USB_GSPCA_SQ905 is not set | 1024 | # CONFIG_USB_GSPCA_SQ905 is not set |
975 | # CONFIG_USB_GSPCA_SQ905C is not set | 1025 | # CONFIG_USB_GSPCA_SQ905C is not set |
976 | # CONFIG_USB_GSPCA_STK014 is not set | 1026 | # CONFIG_USB_GSPCA_STK014 is not set |
1027 | # CONFIG_USB_GSPCA_STV0680 is not set | ||
977 | # CONFIG_USB_GSPCA_SUNPLUS is not set | 1028 | # CONFIG_USB_GSPCA_SUNPLUS is not set |
978 | # CONFIG_USB_GSPCA_T613 is not set | 1029 | # CONFIG_USB_GSPCA_T613 is not set |
979 | # CONFIG_USB_GSPCA_TV8532 is not set | 1030 | # CONFIG_USB_GSPCA_TV8532 is not set |
@@ -1110,9 +1161,11 @@ CONFIG_SND_SOC_WM_HUBS=m | |||
1110 | CONFIG_SND_SOC_AD1836=m | 1161 | CONFIG_SND_SOC_AD1836=m |
1111 | CONFIG_SND_SOC_AD1938=m | 1162 | CONFIG_SND_SOC_AD1938=m |
1112 | CONFIG_SND_SOC_AD73311=m | 1163 | CONFIG_SND_SOC_AD73311=m |
1164 | CONFIG_SND_SOC_ADS117X=m | ||
1113 | CONFIG_SND_SOC_AK4104=m | 1165 | CONFIG_SND_SOC_AK4104=m |
1114 | CONFIG_SND_SOC_AK4535=m | 1166 | CONFIG_SND_SOC_AK4535=m |
1115 | CONFIG_SND_SOC_AK4642=m | 1167 | CONFIG_SND_SOC_AK4642=m |
1168 | CONFIG_SND_SOC_AK4671=m | ||
1116 | CONFIG_SND_SOC_CS4270=m | 1169 | CONFIG_SND_SOC_CS4270=m |
1117 | CONFIG_SND_SOC_L3=m | 1170 | CONFIG_SND_SOC_L3=m |
1118 | CONFIG_SND_SOC_PCM3008=m | 1171 | CONFIG_SND_SOC_PCM3008=m |
@@ -1121,11 +1174,14 @@ CONFIG_SND_SOC_SSM2602=m | |||
1121 | CONFIG_SND_SOC_TLV320AIC23=m | 1174 | CONFIG_SND_SOC_TLV320AIC23=m |
1122 | CONFIG_SND_SOC_TLV320AIC26=m | 1175 | CONFIG_SND_SOC_TLV320AIC26=m |
1123 | CONFIG_SND_SOC_TLV320AIC3X=m | 1176 | CONFIG_SND_SOC_TLV320AIC3X=m |
1177 | CONFIG_SND_SOC_TLV320DAC33=m | ||
1124 | CONFIG_SND_SOC_UDA134X=m | 1178 | CONFIG_SND_SOC_UDA134X=m |
1125 | CONFIG_SND_SOC_UDA1380=m | 1179 | CONFIG_SND_SOC_UDA1380=m |
1126 | CONFIG_SND_SOC_WM8510=m | 1180 | CONFIG_SND_SOC_WM8510=m |
1127 | CONFIG_SND_SOC_WM8523=m | 1181 | CONFIG_SND_SOC_WM8523=m |
1128 | CONFIG_SND_SOC_WM8580=m | 1182 | CONFIG_SND_SOC_WM8580=m |
1183 | CONFIG_SND_SOC_WM8711=m | ||
1184 | CONFIG_SND_SOC_WM8727=m | ||
1129 | CONFIG_SND_SOC_WM8728=m | 1185 | CONFIG_SND_SOC_WM8728=m |
1130 | CONFIG_SND_SOC_WM8731=m | 1186 | CONFIG_SND_SOC_WM8731=m |
1131 | CONFIG_SND_SOC_WM8750=m | 1187 | CONFIG_SND_SOC_WM8750=m |
@@ -1143,6 +1199,7 @@ CONFIG_SND_SOC_WM8990=m | |||
1143 | CONFIG_SND_SOC_WM8993=m | 1199 | CONFIG_SND_SOC_WM8993=m |
1144 | CONFIG_SND_SOC_WM9081=m | 1200 | CONFIG_SND_SOC_WM9081=m |
1145 | CONFIG_SND_SOC_MAX9877=m | 1201 | CONFIG_SND_SOC_MAX9877=m |
1202 | CONFIG_SND_SOC_TPA6130A2=m | ||
1146 | # CONFIG_SOUND_PRIME is not set | 1203 | # CONFIG_SOUND_PRIME is not set |
1147 | CONFIG_HID_SUPPORT=y | 1204 | CONFIG_HID_SUPPORT=y |
1148 | CONFIG_HID=y | 1205 | CONFIG_HID=y |
@@ -1316,10 +1373,12 @@ CONFIG_USB_ETH_RNDIS=y | |||
1316 | CONFIG_USB_GADGETFS=m | 1373 | CONFIG_USB_GADGETFS=m |
1317 | CONFIG_USB_FILE_STORAGE=m | 1374 | CONFIG_USB_FILE_STORAGE=m |
1318 | # CONFIG_USB_FILE_STORAGE_TEST is not set | 1375 | # CONFIG_USB_FILE_STORAGE_TEST is not set |
1376 | # CONFIG_USB_MASS_STORAGE is not set | ||
1319 | CONFIG_USB_G_SERIAL=m | 1377 | CONFIG_USB_G_SERIAL=m |
1320 | # CONFIG_USB_MIDI_GADGET is not set | 1378 | # CONFIG_USB_MIDI_GADGET is not set |
1321 | # CONFIG_USB_G_PRINTER is not set | 1379 | # CONFIG_USB_G_PRINTER is not set |
1322 | # CONFIG_USB_CDC_COMPOSITE is not set | 1380 | # CONFIG_USB_CDC_COMPOSITE is not set |
1381 | # CONFIG_USB_G_MULTI is not set | ||
1323 | 1382 | ||
1324 | # | 1383 | # |
1325 | # OTG and related infrastructure | 1384 | # OTG and related infrastructure |
@@ -1345,6 +1404,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
1345 | # CONFIG_MMC_AT91 is not set | 1404 | # CONFIG_MMC_AT91 is not set |
1346 | # CONFIG_MMC_ATMELMCI is not set | 1405 | # CONFIG_MMC_ATMELMCI is not set |
1347 | CONFIG_MMC_SPI=y | 1406 | CONFIG_MMC_SPI=y |
1407 | # CONFIG_MMC_TMIO is not set | ||
1348 | # CONFIG_MEMSTICK is not set | 1408 | # CONFIG_MEMSTICK is not set |
1349 | # CONFIG_NEW_LEDS is not set | 1409 | # CONFIG_NEW_LEDS is not set |
1350 | # CONFIG_ACCESSIBILITY is not set | 1410 | # CONFIG_ACCESSIBILITY is not set |
@@ -1376,6 +1436,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1376 | CONFIG_RTC_DRV_PCF8563=y | 1436 | CONFIG_RTC_DRV_PCF8563=y |
1377 | # CONFIG_RTC_DRV_PCF8583 is not set | 1437 | # CONFIG_RTC_DRV_PCF8583 is not set |
1378 | # CONFIG_RTC_DRV_M41T80 is not set | 1438 | # CONFIG_RTC_DRV_M41T80 is not set |
1439 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1379 | # CONFIG_RTC_DRV_S35390A is not set | 1440 | # CONFIG_RTC_DRV_S35390A is not set |
1380 | # CONFIG_RTC_DRV_FM3130 is not set | 1441 | # CONFIG_RTC_DRV_FM3130 is not set |
1381 | # CONFIG_RTC_DRV_RX8581 is not set | 1442 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1404,7 +1465,9 @@ CONFIG_RTC_DRV_PCF8563=y | |||
1404 | # CONFIG_RTC_DRV_M48T86 is not set | 1465 | # CONFIG_RTC_DRV_M48T86 is not set |
1405 | # CONFIG_RTC_DRV_M48T35 is not set | 1466 | # CONFIG_RTC_DRV_M48T35 is not set |
1406 | # CONFIG_RTC_DRV_M48T59 is not set | 1467 | # CONFIG_RTC_DRV_M48T59 is not set |
1468 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1407 | # CONFIG_RTC_DRV_BQ4802 is not set | 1469 | # CONFIG_RTC_DRV_BQ4802 is not set |
1470 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1408 | # CONFIG_RTC_DRV_V3020 is not set | 1471 | # CONFIG_RTC_DRV_V3020 is not set |
1409 | 1472 | ||
1410 | # | 1473 | # |
@@ -1597,7 +1660,7 @@ CONFIG_FRAME_WARN=1024 | |||
1597 | # CONFIG_DEBUG_FS is not set | 1660 | # CONFIG_DEBUG_FS is not set |
1598 | # CONFIG_HEADERS_CHECK is not set | 1661 | # CONFIG_HEADERS_CHECK is not set |
1599 | # CONFIG_DEBUG_KERNEL is not set | 1662 | # CONFIG_DEBUG_KERNEL is not set |
1600 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1663 | CONFIG_DEBUG_BUGVERBOSE=y |
1601 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1664 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1602 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1665 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1603 | # CONFIG_LATENCYTOP is not set | 1666 | # CONFIG_LATENCYTOP is not set |
@@ -1614,7 +1677,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1614 | # CONFIG_SAMPLES is not set | 1677 | # CONFIG_SAMPLES is not set |
1615 | CONFIG_HAVE_ARCH_KGDB=y | 1678 | CONFIG_HAVE_ARCH_KGDB=y |
1616 | # CONFIG_SH_STANDARD_BIOS is not set | 1679 | # CONFIG_SH_STANDARD_BIOS is not set |
1617 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1618 | # CONFIG_DWARF_UNWINDER is not set | 1680 | # CONFIG_DWARF_UNWINDER is not set |
1619 | 1681 | ||
1620 | # | 1682 | # |
@@ -1623,7 +1685,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1623 | # CONFIG_KEYS is not set | 1685 | # CONFIG_KEYS is not set |
1624 | # CONFIG_SECURITY is not set | 1686 | # CONFIG_SECURITY is not set |
1625 | # CONFIG_SECURITYFS is not set | 1687 | # CONFIG_SECURITYFS is not set |
1626 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1688 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1689 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1690 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1691 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1692 | CONFIG_DEFAULT_SECURITY="" | ||
1627 | CONFIG_CRYPTO=y | 1693 | CONFIG_CRYPTO=y |
1628 | 1694 | ||
1629 | # | 1695 | # |
diff --git a/arch/sh/configs/se7750_defconfig b/arch/sh/configs/se7750_defconfig index 7bc926c17b7..b15a44e2ec4 100644 --- a/arch/sh/configs/se7750_defconfig +++ b/arch/sh/configs/se7750_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 18:58:58 2009 | 4 | # Mon Jan 4 14:39:10 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_TMU=y | 24 | CONFIG_SYS_SUPPORTS_TMU=y |
24 | CONFIG_STACKTRACE_SUPPORT=y | 25 | CONFIG_STACKTRACE_SUPPORT=y |
25 | CONFIG_LOCKDEP_SUPPORT=y | 26 | CONFIG_LOCKDEP_SUPPORT=y |
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
34 | 36 | ||
@@ -60,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
60 | # | 62 | # |
61 | CONFIG_TREE_RCU=y | 63 | CONFIG_TREE_RCU=y |
62 | # CONFIG_TREE_PREEMPT_RCU is not set | 64 | # CONFIG_TREE_PREEMPT_RCU is not set |
65 | # CONFIG_TINY_RCU is not set | ||
63 | # CONFIG_RCU_TRACE is not set | 66 | # CONFIG_RCU_TRACE is not set |
64 | CONFIG_RCU_FANOUT=32 | 67 | CONFIG_RCU_FANOUT=32 |
65 | # CONFIG_RCU_FANOUT_EXACT is not set | 68 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -95,6 +98,7 @@ CONFIG_EVENTFD=y | |||
95 | CONFIG_SHMEM=y | 98 | CONFIG_SHMEM=y |
96 | CONFIG_AIO=y | 99 | CONFIG_AIO=y |
97 | CONFIG_HAVE_PERF_EVENTS=y | 100 | CONFIG_HAVE_PERF_EVENTS=y |
101 | CONFIG_PERF_USE_VMALLOC=y | ||
98 | 102 | ||
99 | # | 103 | # |
100 | # Kernel Performance Events And Counters | 104 | # Kernel Performance Events And Counters |
@@ -113,6 +117,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
113 | CONFIG_HAVE_KPROBES=y | 117 | CONFIG_HAVE_KPROBES=y |
114 | CONFIG_HAVE_KRETPROBES=y | 118 | CONFIG_HAVE_KRETPROBES=y |
115 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 119 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
120 | CONFIG_HAVE_DMA_ATTRS=y | ||
116 | CONFIG_HAVE_CLK=y | 121 | CONFIG_HAVE_CLK=y |
117 | CONFIG_HAVE_DMA_API_DEBUG=y | 122 | CONFIG_HAVE_DMA_API_DEBUG=y |
118 | 123 | ||
@@ -138,14 +143,41 @@ CONFIG_LBDAF=y | |||
138 | # IO Schedulers | 143 | # IO Schedulers |
139 | # | 144 | # |
140 | CONFIG_IOSCHED_NOOP=y | 145 | CONFIG_IOSCHED_NOOP=y |
141 | CONFIG_IOSCHED_AS=y | ||
142 | CONFIG_IOSCHED_DEADLINE=y | 146 | CONFIG_IOSCHED_DEADLINE=y |
143 | CONFIG_IOSCHED_CFQ=y | 147 | CONFIG_IOSCHED_CFQ=y |
144 | CONFIG_DEFAULT_AS=y | ||
145 | # CONFIG_DEFAULT_DEADLINE is not set | 148 | # CONFIG_DEFAULT_DEADLINE is not set |
146 | # CONFIG_DEFAULT_CFQ is not set | 149 | CONFIG_DEFAULT_CFQ=y |
147 | # CONFIG_DEFAULT_NOOP is not set | 150 | # CONFIG_DEFAULT_NOOP is not set |
148 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 151 | CONFIG_DEFAULT_IOSCHED="cfq" |
152 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
153 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
154 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
155 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
156 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
157 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
158 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
159 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
160 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
161 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
162 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
163 | # CONFIG_INLINE_READ_LOCK is not set | ||
164 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
165 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
166 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
167 | CONFIG_INLINE_READ_UNLOCK=y | ||
168 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
169 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
170 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
171 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
172 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
173 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
174 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
175 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
176 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
177 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
178 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
179 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
180 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
149 | # CONFIG_FREEZER is not set | 181 | # CONFIG_FREEZER is not set |
150 | 182 | ||
151 | # | 183 | # |
@@ -221,8 +253,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
221 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 253 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
222 | CONFIG_ZONE_DMA_FLAG=0 | 254 | CONFIG_ZONE_DMA_FLAG=0 |
223 | CONFIG_NR_QUICK=2 | 255 | CONFIG_NR_QUICK=2 |
224 | CONFIG_HAVE_MLOCK=y | ||
225 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
226 | # CONFIG_KSM is not set | 256 | # CONFIG_KSM is not set |
227 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 257 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
228 | 258 | ||
@@ -307,7 +337,6 @@ CONFIG_GUSA=y | |||
307 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 337 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
308 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 338 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
309 | CONFIG_ENTRY_OFFSET=0x00001000 | 339 | CONFIG_ENTRY_OFFSET=0x00001000 |
310 | # CONFIG_UBC_WAKEUP is not set | ||
311 | # CONFIG_CMDLINE_OVERWRITE is not set | 340 | # CONFIG_CMDLINE_OVERWRITE is not set |
312 | # CONFIG_CMDLINE_EXTEND is not set | 341 | # CONFIG_CMDLINE_EXTEND is not set |
313 | 342 | ||
@@ -406,9 +435,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
406 | # CONFIG_AF_RXRPC is not set | 435 | # CONFIG_AF_RXRPC is not set |
407 | CONFIG_WIRELESS=y | 436 | CONFIG_WIRELESS=y |
408 | # CONFIG_CFG80211 is not set | 437 | # CONFIG_CFG80211 is not set |
409 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
410 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
411 | # CONFIG_WIRELESS_EXT is not set | ||
412 | # CONFIG_LIB80211 is not set | 438 | # CONFIG_LIB80211 is not set |
413 | 439 | ||
414 | # | 440 | # |
@@ -513,6 +539,10 @@ CONFIG_MTD_ROM=y | |||
513 | CONFIG_BLK_DEV=y | 539 | CONFIG_BLK_DEV=y |
514 | # CONFIG_BLK_DEV_COW_COMMON is not set | 540 | # CONFIG_BLK_DEV_COW_COMMON is not set |
515 | # CONFIG_BLK_DEV_LOOP is not set | 541 | # CONFIG_BLK_DEV_LOOP is not set |
542 | |||
543 | # | ||
544 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
545 | # | ||
516 | # CONFIG_BLK_DEV_NBD is not set | 546 | # CONFIG_BLK_DEV_NBD is not set |
517 | # CONFIG_BLK_DEV_RAM is not set | 547 | # CONFIG_BLK_DEV_RAM is not set |
518 | # CONFIG_CDROM_PKTCDVD is not set | 548 | # CONFIG_CDROM_PKTCDVD is not set |
@@ -615,11 +645,11 @@ CONFIG_STNIC=y | |||
615 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 645 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
616 | # CONFIG_B44 is not set | 646 | # CONFIG_B44 is not set |
617 | # CONFIG_KS8842 is not set | 647 | # CONFIG_KS8842 is not set |
648 | # CONFIG_KS8851_MLL is not set | ||
618 | CONFIG_NETDEV_1000=y | 649 | CONFIG_NETDEV_1000=y |
619 | CONFIG_NETDEV_10000=y | 650 | CONFIG_NETDEV_10000=y |
620 | CONFIG_WLAN=y | 651 | CONFIG_WLAN=y |
621 | # CONFIG_WLAN_PRE80211 is not set | 652 | # CONFIG_HOSTAP is not set |
622 | # CONFIG_WLAN_80211 is not set | ||
623 | 653 | ||
624 | # | 654 | # |
625 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 655 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -726,6 +756,7 @@ CONFIG_SSB_POSSIBLE=y | |||
726 | # | 756 | # |
727 | # CONFIG_MFD_CORE is not set | 757 | # CONFIG_MFD_CORE is not set |
728 | # CONFIG_MFD_SM501 is not set | 758 | # CONFIG_MFD_SM501 is not set |
759 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
729 | # CONFIG_HTC_PASIC3 is not set | 760 | # CONFIG_HTC_PASIC3 is not set |
730 | # CONFIG_MFD_TMIO is not set | 761 | # CONFIG_MFD_TMIO is not set |
731 | # CONFIG_REGULATOR is not set | 762 | # CONFIG_REGULATOR is not set |
@@ -785,6 +816,7 @@ CONFIG_RTC_LIB=y | |||
785 | # CONFIG_EXT2_FS is not set | 816 | # CONFIG_EXT2_FS is not set |
786 | # CONFIG_EXT3_FS is not set | 817 | # CONFIG_EXT3_FS is not set |
787 | # CONFIG_EXT4_FS is not set | 818 | # CONFIG_EXT4_FS is not set |
819 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
788 | # CONFIG_REISERFS_FS is not set | 820 | # CONFIG_REISERFS_FS is not set |
789 | # CONFIG_JFS_FS is not set | 821 | # CONFIG_JFS_FS is not set |
790 | # CONFIG_FS_POSIX_ACL is not set | 822 | # CONFIG_FS_POSIX_ACL is not set |
@@ -914,10 +946,11 @@ CONFIG_FRAME_WARN=1024 | |||
914 | # CONFIG_DEBUG_FS is not set | 946 | # CONFIG_DEBUG_FS is not set |
915 | # CONFIG_HEADERS_CHECK is not set | 947 | # CONFIG_HEADERS_CHECK is not set |
916 | # CONFIG_DEBUG_KERNEL is not set | 948 | # CONFIG_DEBUG_KERNEL is not set |
917 | # CONFIG_DEBUG_BUGVERBOSE is not set | 949 | CONFIG_DEBUG_BUGVERBOSE=y |
918 | # CONFIG_DEBUG_MEMORY_INIT is not set | 950 | # CONFIG_DEBUG_MEMORY_INIT is not set |
919 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 951 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
920 | # CONFIG_LATENCYTOP is not set | 952 | # CONFIG_LATENCYTOP is not set |
953 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
921 | CONFIG_HAVE_FUNCTION_TRACER=y | 954 | CONFIG_HAVE_FUNCTION_TRACER=y |
922 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 955 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
923 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 956 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -930,7 +963,6 @@ CONFIG_TRACING_SUPPORT=y | |||
930 | # CONFIG_SAMPLES is not set | 963 | # CONFIG_SAMPLES is not set |
931 | CONFIG_HAVE_ARCH_KGDB=y | 964 | CONFIG_HAVE_ARCH_KGDB=y |
932 | # CONFIG_SH_STANDARD_BIOS is not set | 965 | # CONFIG_SH_STANDARD_BIOS is not set |
933 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
934 | # CONFIG_DWARF_UNWINDER is not set | 966 | # CONFIG_DWARF_UNWINDER is not set |
935 | 967 | ||
936 | # | 968 | # |
@@ -939,7 +971,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
939 | # CONFIG_KEYS is not set | 971 | # CONFIG_KEYS is not set |
940 | # CONFIG_SECURITY is not set | 972 | # CONFIG_SECURITY is not set |
941 | # CONFIG_SECURITYFS is not set | 973 | # CONFIG_SECURITYFS is not set |
942 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 974 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
975 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
976 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
977 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
978 | CONFIG_DEFAULT_SECURITY="" | ||
943 | CONFIG_CRYPTO=y | 979 | CONFIG_CRYPTO=y |
944 | 980 | ||
945 | # | 981 | # |
diff --git a/arch/sh/configs/se7751_defconfig b/arch/sh/configs/se7751_defconfig index c20ae5e35c8..d1effdeaa41 100644 --- a/arch/sh/configs/se7751_defconfig +++ b/arch/sh/configs/se7751_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:01:41 2009 | 4 | # Mon Jan 4 14:39:56 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_TMU=y | 24 | CONFIG_SYS_SUPPORTS_TMU=y |
24 | CONFIG_STACKTRACE_SUPPORT=y | 25 | CONFIG_STACKTRACE_SUPPORT=y |
25 | CONFIG_LOCKDEP_SUPPORT=y | 26 | CONFIG_LOCKDEP_SUPPORT=y |
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
34 | 36 | ||
@@ -60,6 +62,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
60 | # | 62 | # |
61 | CONFIG_TREE_RCU=y | 63 | CONFIG_TREE_RCU=y |
62 | # CONFIG_TREE_PREEMPT_RCU is not set | 64 | # CONFIG_TREE_PREEMPT_RCU is not set |
65 | # CONFIG_TINY_RCU is not set | ||
63 | # CONFIG_RCU_TRACE is not set | 66 | # CONFIG_RCU_TRACE is not set |
64 | CONFIG_RCU_FANOUT=32 | 67 | CONFIG_RCU_FANOUT=32 |
65 | # CONFIG_RCU_FANOUT_EXACT is not set | 68 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -98,6 +101,7 @@ CONFIG_EVENTFD=y | |||
98 | CONFIG_SHMEM=y | 101 | CONFIG_SHMEM=y |
99 | CONFIG_AIO=y | 102 | CONFIG_AIO=y |
100 | CONFIG_HAVE_PERF_EVENTS=y | 103 | CONFIG_HAVE_PERF_EVENTS=y |
104 | CONFIG_PERF_USE_VMALLOC=y | ||
101 | 105 | ||
102 | # | 106 | # |
103 | # Kernel Performance Events And Counters | 107 | # Kernel Performance Events And Counters |
@@ -116,6 +120,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
116 | CONFIG_HAVE_KPROBES=y | 120 | CONFIG_HAVE_KPROBES=y |
117 | CONFIG_HAVE_KRETPROBES=y | 121 | CONFIG_HAVE_KRETPROBES=y |
118 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 122 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
123 | CONFIG_HAVE_DMA_ATTRS=y | ||
119 | CONFIG_HAVE_CLK=y | 124 | CONFIG_HAVE_CLK=y |
120 | CONFIG_HAVE_DMA_API_DEBUG=y | 125 | CONFIG_HAVE_DMA_API_DEBUG=y |
121 | 126 | ||
@@ -141,14 +146,41 @@ CONFIG_LBDAF=y | |||
141 | # IO Schedulers | 146 | # IO Schedulers |
142 | # | 147 | # |
143 | CONFIG_IOSCHED_NOOP=y | 148 | CONFIG_IOSCHED_NOOP=y |
144 | CONFIG_IOSCHED_AS=y | ||
145 | CONFIG_IOSCHED_DEADLINE=y | 149 | CONFIG_IOSCHED_DEADLINE=y |
146 | CONFIG_IOSCHED_CFQ=y | 150 | CONFIG_IOSCHED_CFQ=y |
147 | CONFIG_DEFAULT_AS=y | ||
148 | # CONFIG_DEFAULT_DEADLINE is not set | 151 | # CONFIG_DEFAULT_DEADLINE is not set |
149 | # CONFIG_DEFAULT_CFQ is not set | 152 | CONFIG_DEFAULT_CFQ=y |
150 | # CONFIG_DEFAULT_NOOP is not set | 153 | # CONFIG_DEFAULT_NOOP is not set |
151 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 154 | CONFIG_DEFAULT_IOSCHED="cfq" |
155 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
156 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
157 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
161 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
162 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
163 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
164 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
165 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
166 | # CONFIG_INLINE_READ_LOCK is not set | ||
167 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
168 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
170 | CONFIG_INLINE_READ_UNLOCK=y | ||
171 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
172 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
173 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
174 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
175 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
179 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
180 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
181 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
182 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
183 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
152 | # CONFIG_FREEZER is not set | 184 | # CONFIG_FREEZER is not set |
153 | 185 | ||
154 | # | 186 | # |
@@ -224,8 +256,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
224 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 256 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
225 | CONFIG_ZONE_DMA_FLAG=0 | 257 | CONFIG_ZONE_DMA_FLAG=0 |
226 | CONFIG_NR_QUICK=2 | 258 | CONFIG_NR_QUICK=2 |
227 | CONFIG_HAVE_MLOCK=y | ||
228 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
229 | # CONFIG_KSM is not set | 259 | # CONFIG_KSM is not set |
230 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 260 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
231 | 261 | ||
@@ -311,7 +341,6 @@ CONFIG_GUSA=y | |||
311 | CONFIG_ZERO_PAGE_OFFSET=0x00010000 | 341 | CONFIG_ZERO_PAGE_OFFSET=0x00010000 |
312 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 342 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
313 | CONFIG_ENTRY_OFFSET=0x00001000 | 343 | CONFIG_ENTRY_OFFSET=0x00001000 |
314 | # CONFIG_UBC_WAKEUP is not set | ||
315 | CONFIG_CMDLINE_OVERWRITE=y | 344 | CONFIG_CMDLINE_OVERWRITE=y |
316 | # CONFIG_CMDLINE_EXTEND is not set | 345 | # CONFIG_CMDLINE_EXTEND is not set |
317 | CONFIG_CMDLINE="console=ttySC1,38400" | 346 | CONFIG_CMDLINE="console=ttySC1,38400" |
@@ -430,9 +459,6 @@ CONFIG_IP_NF_QUEUE=y | |||
430 | # CONFIG_AF_RXRPC is not set | 459 | # CONFIG_AF_RXRPC is not set |
431 | CONFIG_WIRELESS=y | 460 | CONFIG_WIRELESS=y |
432 | # CONFIG_CFG80211 is not set | 461 | # CONFIG_CFG80211 is not set |
433 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
434 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
435 | # CONFIG_WIRELESS_EXT is not set | ||
436 | # CONFIG_LIB80211 is not set | 462 | # CONFIG_LIB80211 is not set |
437 | 463 | ||
438 | # | 464 | # |
@@ -537,6 +563,10 @@ CONFIG_MTD_RAM=y | |||
537 | CONFIG_BLK_DEV=y | 563 | CONFIG_BLK_DEV=y |
538 | # CONFIG_BLK_DEV_COW_COMMON is not set | 564 | # CONFIG_BLK_DEV_COW_COMMON is not set |
539 | # CONFIG_BLK_DEV_LOOP is not set | 565 | # CONFIG_BLK_DEV_LOOP is not set |
566 | |||
567 | # | ||
568 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
569 | # | ||
540 | # CONFIG_BLK_DEV_NBD is not set | 570 | # CONFIG_BLK_DEV_NBD is not set |
541 | CONFIG_BLK_DEV_RAM=y | 571 | CONFIG_BLK_DEV_RAM=y |
542 | CONFIG_BLK_DEV_RAM_COUNT=16 | 572 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -591,11 +621,11 @@ CONFIG_MII=y | |||
591 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 621 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
592 | # CONFIG_B44 is not set | 622 | # CONFIG_B44 is not set |
593 | # CONFIG_KS8842 is not set | 623 | # CONFIG_KS8842 is not set |
624 | # CONFIG_KS8851_MLL is not set | ||
594 | CONFIG_NETDEV_1000=y | 625 | CONFIG_NETDEV_1000=y |
595 | CONFIG_NETDEV_10000=y | 626 | CONFIG_NETDEV_10000=y |
596 | CONFIG_WLAN=y | 627 | CONFIG_WLAN=y |
597 | # CONFIG_WLAN_PRE80211 is not set | 628 | # CONFIG_HOSTAP is not set |
598 | # CONFIG_WLAN_80211 is not set | ||
599 | 629 | ||
600 | # | 630 | # |
601 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 631 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -693,6 +723,7 @@ CONFIG_SSB_POSSIBLE=y | |||
693 | # | 723 | # |
694 | # CONFIG_MFD_CORE is not set | 724 | # CONFIG_MFD_CORE is not set |
695 | # CONFIG_MFD_SM501 is not set | 725 | # CONFIG_MFD_SM501 is not set |
726 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
696 | # CONFIG_HTC_PASIC3 is not set | 727 | # CONFIG_HTC_PASIC3 is not set |
697 | # CONFIG_MFD_TMIO is not set | 728 | # CONFIG_MFD_TMIO is not set |
698 | # CONFIG_REGULATOR is not set | 729 | # CONFIG_REGULATOR is not set |
@@ -754,6 +785,7 @@ CONFIG_EXT2_FS=y | |||
754 | # CONFIG_EXT2_FS_XIP is not set | 785 | # CONFIG_EXT2_FS_XIP is not set |
755 | # CONFIG_EXT3_FS is not set | 786 | # CONFIG_EXT3_FS is not set |
756 | # CONFIG_EXT4_FS is not set | 787 | # CONFIG_EXT4_FS is not set |
788 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
757 | # CONFIG_REISERFS_FS is not set | 789 | # CONFIG_REISERFS_FS is not set |
758 | # CONFIG_JFS_FS is not set | 790 | # CONFIG_JFS_FS is not set |
759 | # CONFIG_FS_POSIX_ACL is not set | 791 | # CONFIG_FS_POSIX_ACL is not set |
@@ -863,10 +895,11 @@ CONFIG_FRAME_WARN=1024 | |||
863 | # CONFIG_DEBUG_FS is not set | 895 | # CONFIG_DEBUG_FS is not set |
864 | # CONFIG_HEADERS_CHECK is not set | 896 | # CONFIG_HEADERS_CHECK is not set |
865 | # CONFIG_DEBUG_KERNEL is not set | 897 | # CONFIG_DEBUG_KERNEL is not set |
866 | # CONFIG_DEBUG_BUGVERBOSE is not set | 898 | CONFIG_DEBUG_BUGVERBOSE=y |
867 | # CONFIG_DEBUG_MEMORY_INIT is not set | 899 | # CONFIG_DEBUG_MEMORY_INIT is not set |
868 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 900 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
869 | # CONFIG_LATENCYTOP is not set | 901 | # CONFIG_LATENCYTOP is not set |
902 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
870 | CONFIG_HAVE_FUNCTION_TRACER=y | 903 | CONFIG_HAVE_FUNCTION_TRACER=y |
871 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 904 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
872 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 905 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -879,7 +912,6 @@ CONFIG_TRACING_SUPPORT=y | |||
879 | # CONFIG_SAMPLES is not set | 912 | # CONFIG_SAMPLES is not set |
880 | CONFIG_HAVE_ARCH_KGDB=y | 913 | CONFIG_HAVE_ARCH_KGDB=y |
881 | # CONFIG_SH_STANDARD_BIOS is not set | 914 | # CONFIG_SH_STANDARD_BIOS is not set |
882 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
883 | # CONFIG_DWARF_UNWINDER is not set | 915 | # CONFIG_DWARF_UNWINDER is not set |
884 | 916 | ||
885 | # | 917 | # |
@@ -888,7 +920,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
888 | # CONFIG_KEYS is not set | 920 | # CONFIG_KEYS is not set |
889 | # CONFIG_SECURITY is not set | 921 | # CONFIG_SECURITY is not set |
890 | # CONFIG_SECURITYFS is not set | 922 | # CONFIG_SECURITYFS is not set |
891 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 923 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
924 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
925 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
926 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
927 | CONFIG_DEFAULT_SECURITY="" | ||
892 | CONFIG_CRYPTO=y | 928 | CONFIG_CRYPTO=y |
893 | 929 | ||
894 | # | 930 | # |
diff --git a/arch/sh/configs/se7780_defconfig b/arch/sh/configs/se7780_defconfig index 82baeef40a9..58533d50f06 100644 --- a/arch/sh/configs/se7780_defconfig +++ b/arch/sh/configs/se7780_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:03:59 2009 | 4 | # Mon Jan 4 14:40:32 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_PCI=y | 24 | CONFIG_SYS_SUPPORTS_PCI=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -59,6 +61,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
59 | # | 61 | # |
60 | CONFIG_TREE_RCU=y | 62 | CONFIG_TREE_RCU=y |
61 | # CONFIG_TREE_PREEMPT_RCU is not set | 63 | # CONFIG_TREE_PREEMPT_RCU is not set |
64 | # CONFIG_TINY_RCU is not set | ||
62 | # CONFIG_RCU_TRACE is not set | 65 | # CONFIG_RCU_TRACE is not set |
63 | CONFIG_RCU_FANOUT=32 | 66 | CONFIG_RCU_FANOUT=32 |
64 | # CONFIG_RCU_FANOUT_EXACT is not set | 67 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -92,6 +95,7 @@ CONFIG_EVENTFD=y | |||
92 | CONFIG_SHMEM=y | 95 | CONFIG_SHMEM=y |
93 | CONFIG_AIO=y | 96 | CONFIG_AIO=y |
94 | CONFIG_HAVE_PERF_EVENTS=y | 97 | CONFIG_HAVE_PERF_EVENTS=y |
98 | CONFIG_PERF_USE_VMALLOC=y | ||
95 | 99 | ||
96 | # | 100 | # |
97 | # Kernel Performance Events And Counters | 101 | # Kernel Performance Events And Counters |
@@ -110,6 +114,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
110 | CONFIG_HAVE_KPROBES=y | 114 | CONFIG_HAVE_KPROBES=y |
111 | CONFIG_HAVE_KRETPROBES=y | 115 | CONFIG_HAVE_KRETPROBES=y |
112 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 116 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
117 | CONFIG_HAVE_DMA_ATTRS=y | ||
113 | CONFIG_HAVE_CLK=y | 118 | CONFIG_HAVE_CLK=y |
114 | CONFIG_HAVE_DMA_API_DEBUG=y | 119 | CONFIG_HAVE_DMA_API_DEBUG=y |
115 | 120 | ||
@@ -136,14 +141,41 @@ CONFIG_BLK_DEV_BSG=y | |||
136 | # IO Schedulers | 141 | # IO Schedulers |
137 | # | 142 | # |
138 | CONFIG_IOSCHED_NOOP=y | 143 | CONFIG_IOSCHED_NOOP=y |
139 | # CONFIG_IOSCHED_AS is not set | ||
140 | CONFIG_IOSCHED_DEADLINE=y | 144 | CONFIG_IOSCHED_DEADLINE=y |
141 | # CONFIG_IOSCHED_CFQ is not set | 145 | # CONFIG_IOSCHED_CFQ is not set |
142 | # CONFIG_DEFAULT_AS is not set | ||
143 | CONFIG_DEFAULT_DEADLINE=y | 146 | CONFIG_DEFAULT_DEADLINE=y |
144 | # CONFIG_DEFAULT_CFQ is not set | 147 | # CONFIG_DEFAULT_CFQ is not set |
145 | # CONFIG_DEFAULT_NOOP is not set | 148 | # CONFIG_DEFAULT_NOOP is not set |
146 | CONFIG_DEFAULT_IOSCHED="deadline" | 149 | CONFIG_DEFAULT_IOSCHED="deadline" |
150 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
151 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
152 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
153 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
154 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
155 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
156 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
157 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
158 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
159 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
160 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
161 | # CONFIG_INLINE_READ_LOCK is not set | ||
162 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
163 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
164 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
165 | CONFIG_INLINE_READ_UNLOCK=y | ||
166 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
167 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
168 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
169 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
170 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
171 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
172 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
173 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
174 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
175 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
176 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
177 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
178 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
147 | # CONFIG_FREEZER is not set | 179 | # CONFIG_FREEZER is not set |
148 | 180 | ||
149 | # | 181 | # |
@@ -222,8 +254,6 @@ CONFIG_MIGRATION=y | |||
222 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 254 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
223 | CONFIG_ZONE_DMA_FLAG=0 | 255 | CONFIG_ZONE_DMA_FLAG=0 |
224 | CONFIG_NR_QUICK=2 | 256 | CONFIG_NR_QUICK=2 |
225 | CONFIG_HAVE_MLOCK=y | ||
226 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
227 | # CONFIG_KSM is not set | 257 | # CONFIG_KSM is not set |
228 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 258 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
229 | 259 | ||
@@ -313,7 +343,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1" | |||
313 | # Bus options | 343 | # Bus options |
314 | # | 344 | # |
315 | CONFIG_PCI=y | 345 | CONFIG_PCI=y |
316 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
317 | # CONFIG_PCIEPORTBUS is not set | 346 | # CONFIG_PCIEPORTBUS is not set |
318 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 347 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
319 | CONFIG_PCI_LEGACY=y | 348 | CONFIG_PCI_LEGACY=y |
@@ -401,9 +430,6 @@ CONFIG_IPV6=y | |||
401 | # CONFIG_BT is not set | 430 | # CONFIG_BT is not set |
402 | CONFIG_WIRELESS=y | 431 | CONFIG_WIRELESS=y |
403 | # CONFIG_CFG80211 is not set | 432 | # CONFIG_CFG80211 is not set |
404 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
405 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
406 | # CONFIG_WIRELESS_EXT is not set | ||
407 | # CONFIG_LIB80211 is not set | 433 | # CONFIG_LIB80211 is not set |
408 | 434 | ||
409 | # | 435 | # |
@@ -517,6 +543,10 @@ CONFIG_BLK_DEV=y | |||
517 | # CONFIG_BLK_DEV_COW_COMMON is not set | 543 | # CONFIG_BLK_DEV_COW_COMMON is not set |
518 | CONFIG_BLK_DEV_LOOP=y | 544 | CONFIG_BLK_DEV_LOOP=y |
519 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 545 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
546 | |||
547 | # | ||
548 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
549 | # | ||
520 | # CONFIG_BLK_DEV_NBD is not set | 550 | # CONFIG_BLK_DEV_NBD is not set |
521 | # CONFIG_BLK_DEV_SX8 is not set | 551 | # CONFIG_BLK_DEV_SX8 is not set |
522 | # CONFIG_BLK_DEV_UB is not set | 552 | # CONFIG_BLK_DEV_UB is not set |
@@ -574,8 +604,11 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
574 | CONFIG_SCSI_LOWLEVEL=y | 604 | CONFIG_SCSI_LOWLEVEL=y |
575 | # CONFIG_ISCSI_TCP is not set | 605 | # CONFIG_ISCSI_TCP is not set |
576 | # CONFIG_SCSI_BNX2_ISCSI is not set | 606 | # CONFIG_SCSI_BNX2_ISCSI is not set |
607 | # CONFIG_BE2ISCSI is not set | ||
577 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 608 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
609 | # CONFIG_SCSI_HPSA is not set | ||
578 | # CONFIG_SCSI_3W_9XXX is not set | 610 | # CONFIG_SCSI_3W_9XXX is not set |
611 | # CONFIG_SCSI_3W_SAS is not set | ||
579 | # CONFIG_SCSI_ACARD is not set | 612 | # CONFIG_SCSI_ACARD is not set |
580 | # CONFIG_SCSI_AACRAID is not set | 613 | # CONFIG_SCSI_AACRAID is not set |
581 | # CONFIG_SCSI_AIC7XXX is not set | 614 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -608,7 +641,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
608 | # CONFIG_SCSI_NSP32 is not set | 641 | # CONFIG_SCSI_NSP32 is not set |
609 | # CONFIG_SCSI_DEBUG is not set | 642 | # CONFIG_SCSI_DEBUG is not set |
610 | # CONFIG_SCSI_PMCRAID is not set | 643 | # CONFIG_SCSI_PMCRAID is not set |
644 | # CONFIG_SCSI_PM8001 is not set | ||
611 | # CONFIG_SCSI_SRP is not set | 645 | # CONFIG_SCSI_SRP is not set |
646 | # CONFIG_SCSI_BFA_FC is not set | ||
612 | # CONFIG_SCSI_DH is not set | 647 | # CONFIG_SCSI_DH is not set |
613 | # CONFIG_SCSI_OSD_INITIATOR is not set | 648 | # CONFIG_SCSI_OSD_INITIATOR is not set |
614 | CONFIG_ATA=y | 649 | CONFIG_ATA=y |
@@ -642,6 +677,8 @@ CONFIG_SATA_SIL=y | |||
642 | # CONFIG_PATA_EFAR is not set | 677 | # CONFIG_PATA_EFAR is not set |
643 | # CONFIG_ATA_GENERIC is not set | 678 | # CONFIG_ATA_GENERIC is not set |
644 | # CONFIG_PATA_HPT366 is not set | 679 | # CONFIG_PATA_HPT366 is not set |
680 | # CONFIG_PATA_HPT37X is not set | ||
681 | # CONFIG_PATA_HPT3X2N is not set | ||
645 | # CONFIG_PATA_HPT3X3 is not set | 682 | # CONFIG_PATA_HPT3X3 is not set |
646 | # CONFIG_PATA_IT821X is not set | 683 | # CONFIG_PATA_IT821X is not set |
647 | # CONFIG_PATA_JMICRON is not set | 684 | # CONFIG_PATA_JMICRON is not set |
@@ -650,14 +687,15 @@ CONFIG_SATA_SIL=y | |||
650 | # CONFIG_PATA_MPIIX is not set | 687 | # CONFIG_PATA_MPIIX is not set |
651 | # CONFIG_PATA_OLDPIIX is not set | 688 | # CONFIG_PATA_OLDPIIX is not set |
652 | # CONFIG_PATA_NETCELL is not set | 689 | # CONFIG_PATA_NETCELL is not set |
690 | # CONFIG_PATA_NINJA32 is not set | ||
653 | # CONFIG_PATA_NS87410 is not set | 691 | # CONFIG_PATA_NS87410 is not set |
654 | # CONFIG_PATA_NS87415 is not set | 692 | # CONFIG_PATA_NS87415 is not set |
693 | # CONFIG_PATA_PDC2027X is not set | ||
655 | # CONFIG_PATA_PDC_OLD is not set | 694 | # CONFIG_PATA_PDC_OLD is not set |
656 | # CONFIG_PATA_RDC is not set | 695 | # CONFIG_PATA_RDC is not set |
657 | # CONFIG_PATA_RZ1000 is not set | 696 | # CONFIG_PATA_RZ1000 is not set |
658 | # CONFIG_PATA_SC1200 is not set | 697 | # CONFIG_PATA_SC1200 is not set |
659 | # CONFIG_PATA_SERVERWORKS is not set | 698 | # CONFIG_PATA_SERVERWORKS is not set |
660 | # CONFIG_PATA_PDC2027X is not set | ||
661 | # CONFIG_PATA_SIL680 is not set | 699 | # CONFIG_PATA_SIL680 is not set |
662 | # CONFIG_PATA_SIS is not set | 700 | # CONFIG_PATA_SIS is not set |
663 | # CONFIG_PATA_VIA is not set | 701 | # CONFIG_PATA_VIA is not set |
@@ -748,14 +786,16 @@ CONFIG_NET_PCI=y | |||
748 | # CONFIG_SUNDANCE is not set | 786 | # CONFIG_SUNDANCE is not set |
749 | # CONFIG_TLAN is not set | 787 | # CONFIG_TLAN is not set |
750 | # CONFIG_KS8842 is not set | 788 | # CONFIG_KS8842 is not set |
789 | # CONFIG_KS8851_MLL is not set | ||
751 | # CONFIG_VIA_RHINE is not set | 790 | # CONFIG_VIA_RHINE is not set |
752 | # CONFIG_ATL2 is not set | 791 | # CONFIG_ATL2 is not set |
753 | # CONFIG_NETDEV_1000 is not set | 792 | # CONFIG_NETDEV_1000 is not set |
754 | # CONFIG_NETDEV_10000 is not set | 793 | # CONFIG_NETDEV_10000 is not set |
755 | # CONFIG_TR is not set | 794 | # CONFIG_TR is not set |
756 | CONFIG_WLAN=y | 795 | CONFIG_WLAN=y |
757 | # CONFIG_WLAN_PRE80211 is not set | 796 | # CONFIG_ATMEL is not set |
758 | # CONFIG_WLAN_80211 is not set | 797 | # CONFIG_USB_ZD1201 is not set |
798 | # CONFIG_HOSTAP is not set | ||
759 | 799 | ||
760 | # | 800 | # |
761 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 801 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -774,6 +814,7 @@ CONFIG_WLAN=y | |||
774 | # CONFIG_NET_FC is not set | 814 | # CONFIG_NET_FC is not set |
775 | # CONFIG_NETPOLL is not set | 815 | # CONFIG_NETPOLL is not set |
776 | # CONFIG_NET_POLL_CONTROLLER is not set | 816 | # CONFIG_NET_POLL_CONTROLLER is not set |
817 | # CONFIG_VMXNET3 is not set | ||
777 | # CONFIG_ISDN is not set | 818 | # CONFIG_ISDN is not set |
778 | # CONFIG_PHONE is not set | 819 | # CONFIG_PHONE is not set |
779 | 820 | ||
@@ -783,6 +824,7 @@ CONFIG_WLAN=y | |||
783 | CONFIG_INPUT=y | 824 | CONFIG_INPUT=y |
784 | CONFIG_INPUT_FF_MEMLESS=m | 825 | CONFIG_INPUT_FF_MEMLESS=m |
785 | # CONFIG_INPUT_POLLDEV is not set | 826 | # CONFIG_INPUT_POLLDEV is not set |
827 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
786 | 828 | ||
787 | # | 829 | # |
788 | # Userland interfaces | 830 | # Userland interfaces |
@@ -883,6 +925,7 @@ CONFIG_SSB_POSSIBLE=y | |||
883 | # | 925 | # |
884 | # CONFIG_MFD_CORE is not set | 926 | # CONFIG_MFD_CORE is not set |
885 | # CONFIG_MFD_SM501 is not set | 927 | # CONFIG_MFD_SM501 is not set |
928 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
886 | # CONFIG_HTC_PASIC3 is not set | 929 | # CONFIG_HTC_PASIC3 is not set |
887 | # CONFIG_MFD_TMIO is not set | 930 | # CONFIG_MFD_TMIO is not set |
888 | # CONFIG_REGULATOR is not set | 931 | # CONFIG_REGULATOR is not set |
@@ -1149,6 +1192,7 @@ CONFIG_EXT2_FS=y | |||
1149 | # CONFIG_EXT2_FS_XIP is not set | 1192 | # CONFIG_EXT2_FS_XIP is not set |
1150 | # CONFIG_EXT3_FS is not set | 1193 | # CONFIG_EXT3_FS is not set |
1151 | # CONFIG_EXT4_FS is not set | 1194 | # CONFIG_EXT4_FS is not set |
1195 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
1152 | # CONFIG_REISERFS_FS is not set | 1196 | # CONFIG_REISERFS_FS is not set |
1153 | # CONFIG_JFS_FS is not set | 1197 | # CONFIG_JFS_FS is not set |
1154 | # CONFIG_FS_POSIX_ACL is not set | 1198 | # CONFIG_FS_POSIX_ACL is not set |
@@ -1285,7 +1329,7 @@ CONFIG_FRAME_WARN=1024 | |||
1285 | CONFIG_DEBUG_FS=y | 1329 | CONFIG_DEBUG_FS=y |
1286 | # CONFIG_HEADERS_CHECK is not set | 1330 | # CONFIG_HEADERS_CHECK is not set |
1287 | # CONFIG_DEBUG_KERNEL is not set | 1331 | # CONFIG_DEBUG_KERNEL is not set |
1288 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1332 | CONFIG_DEBUG_BUGVERBOSE=y |
1289 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1333 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1290 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1334 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1291 | # CONFIG_LATENCYTOP is not set | 1335 | # CONFIG_LATENCYTOP is not set |
@@ -1303,7 +1347,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1303 | # CONFIG_SAMPLES is not set | 1347 | # CONFIG_SAMPLES is not set |
1304 | CONFIG_HAVE_ARCH_KGDB=y | 1348 | CONFIG_HAVE_ARCH_KGDB=y |
1305 | # CONFIG_SH_STANDARD_BIOS is not set | 1349 | # CONFIG_SH_STANDARD_BIOS is not set |
1306 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1307 | # CONFIG_DWARF_UNWINDER is not set | 1350 | # CONFIG_DWARF_UNWINDER is not set |
1308 | 1351 | ||
1309 | # | 1352 | # |
@@ -1312,7 +1355,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1312 | # CONFIG_KEYS is not set | 1355 | # CONFIG_KEYS is not set |
1313 | # CONFIG_SECURITY is not set | 1356 | # CONFIG_SECURITY is not set |
1314 | # CONFIG_SECURITYFS is not set | 1357 | # CONFIG_SECURITYFS is not set |
1315 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1358 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1359 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1360 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1361 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1362 | CONFIG_DEFAULT_SECURITY="" | ||
1316 | CONFIG_CRYPTO=y | 1363 | CONFIG_CRYPTO=y |
1317 | 1364 | ||
1318 | # | 1365 | # |
diff --git a/arch/sh/configs/sh03_defconfig b/arch/sh/configs/sh03_defconfig index dd0e8900afb..666fde110b2 100644 --- a/arch/sh/configs/sh03_defconfig +++ b/arch/sh/configs/sh03_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:07:14 2009 | 4 | # Mon Jan 4 14:41:25 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -21,6 +21,7 @@ CONFIG_GENERIC_CLOCKEVENTS=y | |||
21 | CONFIG_GENERIC_CMOS_UPDATE=y | 21 | CONFIG_GENERIC_CMOS_UPDATE=y |
22 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 22 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
23 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 23 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
24 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
24 | CONFIG_SYS_SUPPORTS_PCI=y | 25 | CONFIG_SYS_SUPPORTS_PCI=y |
25 | CONFIG_SYS_SUPPORTS_TMU=y | 26 | CONFIG_SYS_SUPPORTS_TMU=y |
26 | CONFIG_STACKTRACE_SUPPORT=y | 27 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 32 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 33 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 34 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
35 | CONFIG_DMA_NONCOHERENT=y | ||
34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 36 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
35 | CONFIG_CONSTRUCTORS=y | 37 | CONFIG_CONSTRUCTORS=y |
36 | 38 | ||
@@ -64,6 +66,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
64 | # | 66 | # |
65 | CONFIG_TREE_RCU=y | 67 | CONFIG_TREE_RCU=y |
66 | # CONFIG_TREE_PREEMPT_RCU is not set | 68 | # CONFIG_TREE_PREEMPT_RCU is not set |
69 | # CONFIG_TINY_RCU is not set | ||
67 | # CONFIG_RCU_TRACE is not set | 70 | # CONFIG_RCU_TRACE is not set |
68 | CONFIG_RCU_FANOUT=32 | 71 | CONFIG_RCU_FANOUT=32 |
69 | # CONFIG_RCU_FANOUT_EXACT is not set | 72 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -102,6 +105,7 @@ CONFIG_EVENTFD=y | |||
102 | CONFIG_SHMEM=y | 105 | CONFIG_SHMEM=y |
103 | CONFIG_AIO=y | 106 | CONFIG_AIO=y |
104 | CONFIG_HAVE_PERF_EVENTS=y | 107 | CONFIG_HAVE_PERF_EVENTS=y |
108 | CONFIG_PERF_USE_VMALLOC=y | ||
105 | 109 | ||
106 | # | 110 | # |
107 | # Kernel Performance Events And Counters | 111 | # Kernel Performance Events And Counters |
@@ -124,6 +128,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
124 | CONFIG_HAVE_KPROBES=y | 128 | CONFIG_HAVE_KPROBES=y |
125 | CONFIG_HAVE_KRETPROBES=y | 129 | CONFIG_HAVE_KRETPROBES=y |
126 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 130 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
131 | CONFIG_HAVE_DMA_ATTRS=y | ||
127 | CONFIG_HAVE_CLK=y | 132 | CONFIG_HAVE_CLK=y |
128 | CONFIG_HAVE_DMA_API_DEBUG=y | 133 | CONFIG_HAVE_DMA_API_DEBUG=y |
129 | 134 | ||
@@ -151,14 +156,41 @@ CONFIG_LBDAF=y | |||
151 | # IO Schedulers | 156 | # IO Schedulers |
152 | # | 157 | # |
153 | CONFIG_IOSCHED_NOOP=y | 158 | CONFIG_IOSCHED_NOOP=y |
154 | CONFIG_IOSCHED_AS=y | ||
155 | CONFIG_IOSCHED_DEADLINE=y | 159 | CONFIG_IOSCHED_DEADLINE=y |
156 | CONFIG_IOSCHED_CFQ=y | 160 | CONFIG_IOSCHED_CFQ=y |
157 | CONFIG_DEFAULT_AS=y | ||
158 | # CONFIG_DEFAULT_DEADLINE is not set | 161 | # CONFIG_DEFAULT_DEADLINE is not set |
159 | # CONFIG_DEFAULT_CFQ is not set | 162 | CONFIG_DEFAULT_CFQ=y |
160 | # CONFIG_DEFAULT_NOOP is not set | 163 | # CONFIG_DEFAULT_NOOP is not set |
161 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 164 | CONFIG_DEFAULT_IOSCHED="cfq" |
165 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
166 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
167 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
168 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
169 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
170 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
171 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
172 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
173 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
174 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
175 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
176 | # CONFIG_INLINE_READ_LOCK is not set | ||
177 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
178 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
179 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
180 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
181 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
182 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
183 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
184 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
185 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
186 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
187 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
188 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
189 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
190 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
191 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
192 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
193 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
162 | # CONFIG_FREEZER is not set | 194 | # CONFIG_FREEZER is not set |
163 | 195 | ||
164 | # | 196 | # |
@@ -234,8 +266,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
234 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 266 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
235 | CONFIG_ZONE_DMA_FLAG=0 | 267 | CONFIG_ZONE_DMA_FLAG=0 |
236 | CONFIG_NR_QUICK=2 | 268 | CONFIG_NR_QUICK=2 |
237 | CONFIG_HAVE_MLOCK=y | ||
238 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
239 | # CONFIG_KSM is not set | 269 | # CONFIG_KSM is not set |
240 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 270 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
241 | 271 | ||
@@ -320,7 +350,6 @@ CONFIG_GUSA=y | |||
320 | CONFIG_ZERO_PAGE_OFFSET=0x00004000 | 350 | CONFIG_ZERO_PAGE_OFFSET=0x00004000 |
321 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 351 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
322 | CONFIG_ENTRY_OFFSET=0x00001000 | 352 | CONFIG_ENTRY_OFFSET=0x00001000 |
323 | # CONFIG_UBC_WAKEUP is not set | ||
324 | CONFIG_CMDLINE_OVERWRITE=y | 353 | CONFIG_CMDLINE_OVERWRITE=y |
325 | # CONFIG_CMDLINE_EXTEND is not set | 354 | # CONFIG_CMDLINE_EXTEND is not set |
326 | CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs" | 355 | CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs" |
@@ -329,7 +358,6 @@ CONFIG_CMDLINE="console=ttySC1,115200 mem=64M root=/dev/nfs" | |||
329 | # Bus options | 358 | # Bus options |
330 | # | 359 | # |
331 | CONFIG_PCI=y | 360 | CONFIG_PCI=y |
332 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
333 | # CONFIG_PCIEPORTBUS is not set | 361 | # CONFIG_PCIEPORTBUS is not set |
334 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 362 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
335 | CONFIG_PCI_LEGACY=y | 363 | CONFIG_PCI_LEGACY=y |
@@ -433,9 +461,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
433 | # CONFIG_AF_RXRPC is not set | 461 | # CONFIG_AF_RXRPC is not set |
434 | CONFIG_WIRELESS=y | 462 | CONFIG_WIRELESS=y |
435 | # CONFIG_CFG80211 is not set | 463 | # CONFIG_CFG80211 is not set |
436 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
437 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
438 | # CONFIG_WIRELESS_EXT is not set | ||
439 | # CONFIG_LIB80211 is not set | 464 | # CONFIG_LIB80211 is not set |
440 | 465 | ||
441 | # | 466 | # |
@@ -468,6 +493,10 @@ CONFIG_BLK_DEV=y | |||
468 | # CONFIG_BLK_DEV_COW_COMMON is not set | 493 | # CONFIG_BLK_DEV_COW_COMMON is not set |
469 | CONFIG_BLK_DEV_LOOP=y | 494 | CONFIG_BLK_DEV_LOOP=y |
470 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 495 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
496 | |||
497 | # | ||
498 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
499 | # | ||
471 | CONFIG_BLK_DEV_NBD=y | 500 | CONFIG_BLK_DEV_NBD=y |
472 | # CONFIG_BLK_DEV_SX8 is not set | 501 | # CONFIG_BLK_DEV_SX8 is not set |
473 | CONFIG_BLK_DEV_RAM=y | 502 | CONFIG_BLK_DEV_RAM=y |
@@ -580,8 +609,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
580 | # CONFIG_ISCSI_TCP is not set | 609 | # CONFIG_ISCSI_TCP is not set |
581 | # CONFIG_SCSI_CXGB3_ISCSI is not set | 610 | # CONFIG_SCSI_CXGB3_ISCSI is not set |
582 | # CONFIG_SCSI_BNX2_ISCSI is not set | 611 | # CONFIG_SCSI_BNX2_ISCSI is not set |
612 | # CONFIG_BE2ISCSI is not set | ||
583 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 613 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
614 | # CONFIG_SCSI_HPSA is not set | ||
584 | # CONFIG_SCSI_3W_9XXX is not set | 615 | # CONFIG_SCSI_3W_9XXX is not set |
616 | # CONFIG_SCSI_3W_SAS is not set | ||
585 | # CONFIG_SCSI_ACARD is not set | 617 | # CONFIG_SCSI_ACARD is not set |
586 | # CONFIG_SCSI_AACRAID is not set | 618 | # CONFIG_SCSI_AACRAID is not set |
587 | # CONFIG_SCSI_AIC7XXX is not set | 619 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -614,7 +646,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
614 | # CONFIG_SCSI_NSP32 is not set | 646 | # CONFIG_SCSI_NSP32 is not set |
615 | # CONFIG_SCSI_DEBUG is not set | 647 | # CONFIG_SCSI_DEBUG is not set |
616 | # CONFIG_SCSI_PMCRAID is not set | 648 | # CONFIG_SCSI_PMCRAID is not set |
649 | # CONFIG_SCSI_PM8001 is not set | ||
617 | # CONFIG_SCSI_SRP is not set | 650 | # CONFIG_SCSI_SRP is not set |
651 | # CONFIG_SCSI_BFA_FC is not set | ||
618 | # CONFIG_SCSI_DH is not set | 652 | # CONFIG_SCSI_DH is not set |
619 | # CONFIG_SCSI_OSD_INITIATOR is not set | 653 | # CONFIG_SCSI_OSD_INITIATOR is not set |
620 | # CONFIG_ATA is not set | 654 | # CONFIG_ATA is not set |
@@ -685,6 +719,7 @@ CONFIG_8139CP=y | |||
685 | # CONFIG_SUNDANCE is not set | 719 | # CONFIG_SUNDANCE is not set |
686 | # CONFIG_TLAN is not set | 720 | # CONFIG_TLAN is not set |
687 | # CONFIG_KS8842 is not set | 721 | # CONFIG_KS8842 is not set |
722 | # CONFIG_KS8851_MLL is not set | ||
688 | # CONFIG_VIA_RHINE is not set | 723 | # CONFIG_VIA_RHINE is not set |
689 | # CONFIG_SC92031 is not set | 724 | # CONFIG_SC92031 is not set |
690 | # CONFIG_ATL2 is not set | 725 | # CONFIG_ATL2 is not set |
@@ -733,8 +768,9 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
733 | # CONFIG_BE2NET is not set | 768 | # CONFIG_BE2NET is not set |
734 | # CONFIG_TR is not set | 769 | # CONFIG_TR is not set |
735 | CONFIG_WLAN=y | 770 | CONFIG_WLAN=y |
736 | # CONFIG_WLAN_PRE80211 is not set | 771 | # CONFIG_ATMEL is not set |
737 | # CONFIG_WLAN_80211 is not set | 772 | # CONFIG_PRISM54 is not set |
773 | # CONFIG_HOSTAP is not set | ||
738 | 774 | ||
739 | # | 775 | # |
740 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 776 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -748,6 +784,7 @@ CONFIG_WLAN=y | |||
748 | # CONFIG_NETCONSOLE is not set | 784 | # CONFIG_NETCONSOLE is not set |
749 | # CONFIG_NETPOLL is not set | 785 | # CONFIG_NETPOLL is not set |
750 | # CONFIG_NET_POLL_CONTROLLER is not set | 786 | # CONFIG_NET_POLL_CONTROLLER is not set |
787 | # CONFIG_VMXNET3 is not set | ||
751 | # CONFIG_ISDN is not set | 788 | # CONFIG_ISDN is not set |
752 | # CONFIG_PHONE is not set | 789 | # CONFIG_PHONE is not set |
753 | 790 | ||
@@ -757,6 +794,7 @@ CONFIG_WLAN=y | |||
757 | CONFIG_INPUT=y | 794 | CONFIG_INPUT=y |
758 | # CONFIG_INPUT_FF_MEMLESS is not set | 795 | # CONFIG_INPUT_FF_MEMLESS is not set |
759 | # CONFIG_INPUT_POLLDEV is not set | 796 | # CONFIG_INPUT_POLLDEV is not set |
797 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
760 | 798 | ||
761 | # | 799 | # |
762 | # Userland interfaces | 800 | # Userland interfaces |
@@ -886,6 +924,7 @@ CONFIG_SSB_POSSIBLE=y | |||
886 | # | 924 | # |
887 | # CONFIG_MFD_CORE is not set | 925 | # CONFIG_MFD_CORE is not set |
888 | # CONFIG_MFD_SM501 is not set | 926 | # CONFIG_MFD_SM501 is not set |
927 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
889 | # CONFIG_HTC_PASIC3 is not set | 928 | # CONFIG_HTC_PASIC3 is not set |
890 | # CONFIG_MFD_TMIO is not set | 929 | # CONFIG_MFD_TMIO is not set |
891 | # CONFIG_REGULATOR is not set | 930 | # CONFIG_REGULATOR is not set |
@@ -1149,10 +1188,11 @@ CONFIG_DEBUG_FS=y | |||
1149 | # CONFIG_HEADERS_CHECK is not set | 1188 | # CONFIG_HEADERS_CHECK is not set |
1150 | # CONFIG_DEBUG_KERNEL is not set | 1189 | # CONFIG_DEBUG_KERNEL is not set |
1151 | CONFIG_STACKTRACE=y | 1190 | CONFIG_STACKTRACE=y |
1152 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1191 | CONFIG_DEBUG_BUGVERBOSE=y |
1153 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1192 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1154 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1193 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1155 | # CONFIG_LATENCYTOP is not set | 1194 | # CONFIG_LATENCYTOP is not set |
1195 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1156 | CONFIG_NOP_TRACER=y | 1196 | CONFIG_NOP_TRACER=y |
1157 | CONFIG_HAVE_FUNCTION_TRACER=y | 1197 | CONFIG_HAVE_FUNCTION_TRACER=y |
1158 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1198 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1172,8 +1212,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1172 | # CONFIG_SAMPLES is not set | 1212 | # CONFIG_SAMPLES is not set |
1173 | CONFIG_HAVE_ARCH_KGDB=y | 1213 | CONFIG_HAVE_ARCH_KGDB=y |
1174 | CONFIG_SH_STANDARD_BIOS=y | 1214 | CONFIG_SH_STANDARD_BIOS=y |
1175 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1176 | # CONFIG_EARLY_PRINTK is not set | ||
1177 | # CONFIG_DWARF_UNWINDER is not set | 1215 | # CONFIG_DWARF_UNWINDER is not set |
1178 | 1216 | ||
1179 | # | 1217 | # |
@@ -1182,7 +1220,11 @@ CONFIG_SH_STANDARD_BIOS=y | |||
1182 | # CONFIG_KEYS is not set | 1220 | # CONFIG_KEYS is not set |
1183 | # CONFIG_SECURITY is not set | 1221 | # CONFIG_SECURITY is not set |
1184 | # CONFIG_SECURITYFS is not set | 1222 | # CONFIG_SECURITYFS is not set |
1185 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1223 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1224 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1225 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1226 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1227 | CONFIG_DEFAULT_SECURITY="" | ||
1186 | CONFIG_CRYPTO=y | 1228 | CONFIG_CRYPTO=y |
1187 | 1229 | ||
1188 | # | 1230 | # |
diff --git a/arch/sh/configs/sh7710voipgw_defconfig b/arch/sh/configs/sh7710voipgw_defconfig index 662156ec921..35a3beeba18 100644 --- a/arch/sh/configs/sh7710voipgw_defconfig +++ b/arch/sh/configs/sh7710voipgw_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:11:49 2009 | 4 | # Mon Jan 4 14:43:04 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -29,6 +29,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
32 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 34 | CONFIG_CONSTRUCTORS=y |
34 | 35 | ||
@@ -60,6 +61,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
60 | # | 61 | # |
61 | CONFIG_TREE_RCU=y | 62 | CONFIG_TREE_RCU=y |
62 | # CONFIG_TREE_PREEMPT_RCU is not set | 63 | # CONFIG_TREE_PREEMPT_RCU is not set |
64 | # CONFIG_TINY_RCU is not set | ||
63 | # CONFIG_RCU_TRACE is not set | 65 | # CONFIG_RCU_TRACE is not set |
64 | CONFIG_RCU_FANOUT=32 | 66 | CONFIG_RCU_FANOUT=32 |
65 | # CONFIG_RCU_FANOUT_EXACT is not set | 67 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -98,6 +100,7 @@ CONFIG_EVENTFD=y | |||
98 | # CONFIG_SHMEM is not set | 100 | # CONFIG_SHMEM is not set |
99 | CONFIG_AIO=y | 101 | CONFIG_AIO=y |
100 | CONFIG_HAVE_PERF_EVENTS=y | 102 | CONFIG_HAVE_PERF_EVENTS=y |
103 | CONFIG_PERF_USE_VMALLOC=y | ||
101 | 104 | ||
102 | # | 105 | # |
103 | # Kernel Performance Events And Counters | 106 | # Kernel Performance Events And Counters |
@@ -116,6 +119,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
116 | CONFIG_HAVE_KPROBES=y | 119 | CONFIG_HAVE_KPROBES=y |
117 | CONFIG_HAVE_KRETPROBES=y | 120 | CONFIG_HAVE_KRETPROBES=y |
118 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 121 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
122 | CONFIG_HAVE_DMA_ATTRS=y | ||
119 | CONFIG_HAVE_CLK=y | 123 | CONFIG_HAVE_CLK=y |
120 | CONFIG_HAVE_DMA_API_DEBUG=y | 124 | CONFIG_HAVE_DMA_API_DEBUG=y |
121 | 125 | ||
@@ -142,14 +146,41 @@ CONFIG_LBDAF=y | |||
142 | # IO Schedulers | 146 | # IO Schedulers |
143 | # | 147 | # |
144 | CONFIG_IOSCHED_NOOP=y | 148 | CONFIG_IOSCHED_NOOP=y |
145 | # CONFIG_IOSCHED_AS is not set | ||
146 | CONFIG_IOSCHED_DEADLINE=y | 149 | CONFIG_IOSCHED_DEADLINE=y |
147 | # CONFIG_IOSCHED_CFQ is not set | 150 | # CONFIG_IOSCHED_CFQ is not set |
148 | # CONFIG_DEFAULT_AS is not set | ||
149 | CONFIG_DEFAULT_DEADLINE=y | 151 | CONFIG_DEFAULT_DEADLINE=y |
150 | # CONFIG_DEFAULT_CFQ is not set | 152 | # CONFIG_DEFAULT_CFQ is not set |
151 | # CONFIG_DEFAULT_NOOP is not set | 153 | # CONFIG_DEFAULT_NOOP is not set |
152 | CONFIG_DEFAULT_IOSCHED="deadline" | 154 | CONFIG_DEFAULT_IOSCHED="deadline" |
155 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
156 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
157 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
160 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
161 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
162 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
163 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
164 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
165 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
166 | # CONFIG_INLINE_READ_LOCK is not set | ||
167 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
168 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
169 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
170 | CONFIG_INLINE_READ_UNLOCK=y | ||
171 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
172 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
173 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
174 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
175 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
178 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
179 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
180 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
181 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
182 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
183 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
153 | # CONFIG_FREEZER is not set | 184 | # CONFIG_FREEZER is not set |
154 | 185 | ||
155 | # | 186 | # |
@@ -225,8 +256,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
225 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 256 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
226 | CONFIG_ZONE_DMA_FLAG=0 | 257 | CONFIG_ZONE_DMA_FLAG=0 |
227 | CONFIG_NR_QUICK=2 | 258 | CONFIG_NR_QUICK=2 |
228 | CONFIG_HAVE_MLOCK=y | ||
229 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
230 | # CONFIG_KSM is not set | 259 | # CONFIG_KSM is not set |
231 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 260 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
232 | 261 | ||
@@ -460,9 +489,6 @@ CONFIG_NET_SCH_FIFO=y | |||
460 | # CONFIG_AF_RXRPC is not set | 489 | # CONFIG_AF_RXRPC is not set |
461 | CONFIG_WIRELESS=y | 490 | CONFIG_WIRELESS=y |
462 | # CONFIG_CFG80211 is not set | 491 | # CONFIG_CFG80211 is not set |
463 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
464 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
465 | # CONFIG_WIRELESS_EXT is not set | ||
466 | # CONFIG_LIB80211 is not set | 492 | # CONFIG_LIB80211 is not set |
467 | 493 | ||
468 | # | 494 | # |
@@ -571,6 +597,10 @@ CONFIG_MTD_RAM=y | |||
571 | CONFIG_BLK_DEV=y | 597 | CONFIG_BLK_DEV=y |
572 | # CONFIG_BLK_DEV_COW_COMMON is not set | 598 | # CONFIG_BLK_DEV_COW_COMMON is not set |
573 | # CONFIG_BLK_DEV_LOOP is not set | 599 | # CONFIG_BLK_DEV_LOOP is not set |
600 | |||
601 | # | ||
602 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
603 | # | ||
574 | # CONFIG_BLK_DEV_NBD is not set | 604 | # CONFIG_BLK_DEV_NBD is not set |
575 | # CONFIG_BLK_DEV_RAM is not set | 605 | # CONFIG_BLK_DEV_RAM is not set |
576 | # CONFIG_CDROM_PKTCDVD is not set | 606 | # CONFIG_CDROM_PKTCDVD is not set |
@@ -623,11 +653,11 @@ CONFIG_NET_ETHERNET=y | |||
623 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 653 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
624 | # CONFIG_B44 is not set | 654 | # CONFIG_B44 is not set |
625 | # CONFIG_KS8842 is not set | 655 | # CONFIG_KS8842 is not set |
656 | # CONFIG_KS8851_MLL is not set | ||
626 | CONFIG_NETDEV_1000=y | 657 | CONFIG_NETDEV_1000=y |
627 | CONFIG_NETDEV_10000=y | 658 | CONFIG_NETDEV_10000=y |
628 | CONFIG_WLAN=y | 659 | CONFIG_WLAN=y |
629 | # CONFIG_WLAN_PRE80211 is not set | 660 | # CONFIG_HOSTAP is not set |
630 | # CONFIG_WLAN_80211 is not set | ||
631 | 661 | ||
632 | # | 662 | # |
633 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 663 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -647,6 +677,7 @@ CONFIG_PHONE=y | |||
647 | CONFIG_INPUT=y | 677 | CONFIG_INPUT=y |
648 | # CONFIG_INPUT_FF_MEMLESS is not set | 678 | # CONFIG_INPUT_FF_MEMLESS is not set |
649 | # CONFIG_INPUT_POLLDEV is not set | 679 | # CONFIG_INPUT_POLLDEV is not set |
680 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
650 | 681 | ||
651 | # | 682 | # |
652 | # Userland interfaces | 683 | # Userland interfaces |
@@ -725,6 +756,7 @@ CONFIG_SSB_POSSIBLE=y | |||
725 | # | 756 | # |
726 | # CONFIG_MFD_CORE is not set | 757 | # CONFIG_MFD_CORE is not set |
727 | # CONFIG_MFD_SM501 is not set | 758 | # CONFIG_MFD_SM501 is not set |
759 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
728 | # CONFIG_HTC_PASIC3 is not set | 760 | # CONFIG_HTC_PASIC3 is not set |
729 | # CONFIG_MFD_TMIO is not set | 761 | # CONFIG_MFD_TMIO is not set |
730 | # CONFIG_REGULATOR is not set | 762 | # CONFIG_REGULATOR is not set |
@@ -792,6 +824,7 @@ CONFIG_RTC_LIB=y | |||
792 | # CONFIG_EXT2_FS is not set | 824 | # CONFIG_EXT2_FS is not set |
793 | # CONFIG_EXT3_FS is not set | 825 | # CONFIG_EXT3_FS is not set |
794 | # CONFIG_EXT4_FS is not set | 826 | # CONFIG_EXT4_FS is not set |
827 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
795 | # CONFIG_REISERFS_FS is not set | 828 | # CONFIG_REISERFS_FS is not set |
796 | # CONFIG_JFS_FS is not set | 829 | # CONFIG_JFS_FS is not set |
797 | # CONFIG_FS_POSIX_ACL is not set | 830 | # CONFIG_FS_POSIX_ACL is not set |
@@ -836,7 +869,6 @@ CONFIG_PROC_FS=y | |||
836 | CONFIG_PROC_SYSCTL=y | 869 | CONFIG_PROC_SYSCTL=y |
837 | CONFIG_PROC_PAGE_MONITOR=y | 870 | CONFIG_PROC_PAGE_MONITOR=y |
838 | CONFIG_SYSFS=y | 871 | CONFIG_SYSFS=y |
839 | # CONFIG_HUGETLBFS is not set | ||
840 | # CONFIG_HUGETLB_PAGE is not set | 872 | # CONFIG_HUGETLB_PAGE is not set |
841 | # CONFIG_CONFIGFS_FS is not set | 873 | # CONFIG_CONFIGFS_FS is not set |
842 | CONFIG_MISC_FILESYSTEMS=y | 874 | CONFIG_MISC_FILESYSTEMS=y |
@@ -899,10 +931,11 @@ CONFIG_FRAME_WARN=1024 | |||
899 | CONFIG_DEBUG_FS=y | 931 | CONFIG_DEBUG_FS=y |
900 | # CONFIG_HEADERS_CHECK is not set | 932 | # CONFIG_HEADERS_CHECK is not set |
901 | # CONFIG_DEBUG_KERNEL is not set | 933 | # CONFIG_DEBUG_KERNEL is not set |
902 | # CONFIG_DEBUG_BUGVERBOSE is not set | 934 | CONFIG_DEBUG_BUGVERBOSE=y |
903 | # CONFIG_DEBUG_MEMORY_INIT is not set | 935 | # CONFIG_DEBUG_MEMORY_INIT is not set |
904 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 936 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
905 | # CONFIG_LATENCYTOP is not set | 937 | # CONFIG_LATENCYTOP is not set |
938 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
906 | CONFIG_HAVE_FUNCTION_TRACER=y | 939 | CONFIG_HAVE_FUNCTION_TRACER=y |
907 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 940 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
908 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 941 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -916,7 +949,6 @@ CONFIG_TRACING_SUPPORT=y | |||
916 | # CONFIG_SAMPLES is not set | 949 | # CONFIG_SAMPLES is not set |
917 | CONFIG_HAVE_ARCH_KGDB=y | 950 | CONFIG_HAVE_ARCH_KGDB=y |
918 | # CONFIG_SH_STANDARD_BIOS is not set | 951 | # CONFIG_SH_STANDARD_BIOS is not set |
919 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
920 | # CONFIG_DWARF_UNWINDER is not set | 952 | # CONFIG_DWARF_UNWINDER is not set |
921 | 953 | ||
922 | # | 954 | # |
@@ -925,7 +957,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
925 | # CONFIG_KEYS is not set | 957 | # CONFIG_KEYS is not set |
926 | # CONFIG_SECURITY is not set | 958 | # CONFIG_SECURITY is not set |
927 | # CONFIG_SECURITYFS is not set | 959 | # CONFIG_SECURITYFS is not set |
928 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 960 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
961 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
962 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
963 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
964 | CONFIG_DEFAULT_SECURITY="" | ||
929 | CONFIG_CRYPTO=y | 965 | CONFIG_CRYPTO=y |
930 | 966 | ||
931 | # | 967 | # |
diff --git a/arch/sh/configs/sh7724_generic_defconfig b/arch/sh/configs/sh7724_generic_defconfig index e06719a30ba..a3056b69d2b 100644 --- a/arch/sh/configs/sh7724_generic_defconfig +++ b/arch/sh/configs/sh7724_generic_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:14:00 2009 | 4 | # Mon Jan 4 15:03:45 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_CMT=y | 24 | CONFIG_SYS_SUPPORTS_CMT=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -49,7 +51,6 @@ CONFIG_KERNEL_GZIP=y | |||
49 | # CONFIG_KERNEL_LZMA is not set | 51 | # CONFIG_KERNEL_LZMA is not set |
50 | CONFIG_SWAP=y | 52 | CONFIG_SWAP=y |
51 | CONFIG_SYSVIPC=y | 53 | CONFIG_SYSVIPC=y |
52 | CONFIG_SYSVIPC_SYSCTL=y | ||
53 | # CONFIG_BSD_PROCESS_ACCT is not set | 54 | # CONFIG_BSD_PROCESS_ACCT is not set |
54 | 55 | ||
55 | # | 56 | # |
@@ -57,6 +58,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
57 | # | 58 | # |
58 | CONFIG_TREE_RCU=y | 59 | CONFIG_TREE_RCU=y |
59 | # CONFIG_TREE_PREEMPT_RCU is not set | 60 | # CONFIG_TREE_PREEMPT_RCU is not set |
61 | # CONFIG_TINY_RCU is not set | ||
60 | # CONFIG_RCU_TRACE is not set | 62 | # CONFIG_RCU_TRACE is not set |
61 | CONFIG_RCU_FANOUT=32 | 63 | CONFIG_RCU_FANOUT=32 |
62 | # CONFIG_RCU_FANOUT_EXACT is not set | 64 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -80,11 +82,9 @@ CONFIG_CGROUPS=y | |||
80 | # CONFIG_NAMESPACES is not set | 82 | # CONFIG_NAMESPACES is not set |
81 | # CONFIG_BLK_DEV_INITRD is not set | 83 | # CONFIG_BLK_DEV_INITRD is not set |
82 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 84 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
83 | CONFIG_SYSCTL=y | ||
84 | CONFIG_ANON_INODES=y | 85 | CONFIG_ANON_INODES=y |
85 | CONFIG_EMBEDDED=y | 86 | CONFIG_EMBEDDED=y |
86 | # CONFIG_UID16 is not set | 87 | # CONFIG_UID16 is not set |
87 | CONFIG_SYSCTL_SYSCALL=y | ||
88 | CONFIG_KALLSYMS=y | 88 | CONFIG_KALLSYMS=y |
89 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 89 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
90 | CONFIG_HOTPLUG=y | 90 | CONFIG_HOTPLUG=y |
@@ -100,6 +100,7 @@ CONFIG_EVENTFD=y | |||
100 | CONFIG_SHMEM=y | 100 | CONFIG_SHMEM=y |
101 | CONFIG_AIO=y | 101 | CONFIG_AIO=y |
102 | CONFIG_HAVE_PERF_EVENTS=y | 102 | CONFIG_HAVE_PERF_EVENTS=y |
103 | CONFIG_PERF_USE_VMALLOC=y | ||
103 | 104 | ||
104 | # | 105 | # |
105 | # Kernel Performance Events And Counters | 106 | # Kernel Performance Events And Counters |
@@ -120,6 +121,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
120 | CONFIG_HAVE_KPROBES=y | 121 | CONFIG_HAVE_KPROBES=y |
121 | CONFIG_HAVE_KRETPROBES=y | 122 | CONFIG_HAVE_KRETPROBES=y |
122 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 123 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
124 | CONFIG_HAVE_DMA_ATTRS=y | ||
123 | CONFIG_HAVE_CLK=y | 125 | CONFIG_HAVE_CLK=y |
124 | CONFIG_HAVE_DMA_API_DEBUG=y | 126 | CONFIG_HAVE_DMA_API_DEBUG=y |
125 | 127 | ||
@@ -136,19 +138,48 @@ CONFIG_BLOCK=y | |||
136 | CONFIG_LBDAF=y | 138 | CONFIG_LBDAF=y |
137 | # CONFIG_BLK_DEV_BSG is not set | 139 | # CONFIG_BLK_DEV_BSG is not set |
138 | # CONFIG_BLK_DEV_INTEGRITY is not set | 140 | # CONFIG_BLK_DEV_INTEGRITY is not set |
141 | # CONFIG_BLK_CGROUP is not set | ||
139 | 142 | ||
140 | # | 143 | # |
141 | # IO Schedulers | 144 | # IO Schedulers |
142 | # | 145 | # |
143 | CONFIG_IOSCHED_NOOP=y | 146 | CONFIG_IOSCHED_NOOP=y |
144 | CONFIG_IOSCHED_AS=y | ||
145 | CONFIG_IOSCHED_DEADLINE=y | 147 | CONFIG_IOSCHED_DEADLINE=y |
146 | CONFIG_IOSCHED_CFQ=y | 148 | CONFIG_IOSCHED_CFQ=y |
147 | CONFIG_DEFAULT_AS=y | 149 | # CONFIG_CFQ_GROUP_IOSCHED is not set |
148 | # CONFIG_DEFAULT_DEADLINE is not set | 150 | # CONFIG_DEFAULT_DEADLINE is not set |
149 | # CONFIG_DEFAULT_CFQ is not set | 151 | CONFIG_DEFAULT_CFQ=y |
150 | # CONFIG_DEFAULT_NOOP is not set | 152 | # CONFIG_DEFAULT_NOOP is not set |
151 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 153 | CONFIG_DEFAULT_IOSCHED="cfq" |
154 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
155 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
156 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
157 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
159 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
160 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
161 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
162 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
163 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
164 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
165 | # CONFIG_INLINE_READ_LOCK is not set | ||
166 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
167 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
168 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
169 | CONFIG_INLINE_READ_UNLOCK=y | ||
170 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
171 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
172 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
173 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
174 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
175 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
177 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
178 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
179 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
180 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
181 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
182 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
152 | CONFIG_FREEZER=y | 183 | CONFIG_FREEZER=y |
153 | 184 | ||
154 | # | 185 | # |
@@ -204,6 +235,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
204 | CONFIG_MEMORY_START=0x08000000 | 235 | CONFIG_MEMORY_START=0x08000000 |
205 | CONFIG_MEMORY_SIZE=0x04000000 | 236 | CONFIG_MEMORY_SIZE=0x04000000 |
206 | CONFIG_29BIT=y | 237 | CONFIG_29BIT=y |
238 | # CONFIG_PMB_ENABLE is not set | ||
207 | # CONFIG_X2TLB is not set | 239 | # CONFIG_X2TLB is not set |
208 | CONFIG_VSYSCALL=y | 240 | CONFIG_VSYSCALL=y |
209 | CONFIG_ARCH_FLATMEM_ENABLE=y | 241 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -225,17 +257,12 @@ CONFIG_SPARSEMEM_MANUAL=y | |||
225 | CONFIG_SPARSEMEM=y | 257 | CONFIG_SPARSEMEM=y |
226 | CONFIG_HAVE_MEMORY_PRESENT=y | 258 | CONFIG_HAVE_MEMORY_PRESENT=y |
227 | CONFIG_SPARSEMEM_STATIC=y | 259 | CONFIG_SPARSEMEM_STATIC=y |
228 | 260 | # CONFIG_MEMORY_HOTPLUG is not set | |
229 | # | ||
230 | # Memory hotplug is currently incompatible with Software Suspend | ||
231 | # | ||
232 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 261 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
233 | CONFIG_MIGRATION=y | 262 | CONFIG_MIGRATION=y |
234 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 263 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
235 | CONFIG_ZONE_DMA_FLAG=0 | 264 | CONFIG_ZONE_DMA_FLAG=0 |
236 | CONFIG_NR_QUICK=2 | 265 | CONFIG_NR_QUICK=2 |
237 | CONFIG_HAVE_MLOCK=y | ||
238 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
239 | # CONFIG_KSM is not set | 266 | # CONFIG_KSM is not set |
240 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 267 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
241 | 268 | ||
@@ -269,7 +296,6 @@ CONFIG_CPU_HAS_FPU=y | |||
269 | # | 296 | # |
270 | CONFIG_SH_TIMER_TMU=y | 297 | CONFIG_SH_TIMER_TMU=y |
271 | CONFIG_SH_TIMER_CMT=y | 298 | CONFIG_SH_TIMER_CMT=y |
272 | CONFIG_SH_PCLK_FREQ=41666666 | ||
273 | CONFIG_SH_CLK_CPG=y | 299 | CONFIG_SH_CLK_CPG=y |
274 | CONFIG_TICK_ONESHOT=y | 300 | CONFIG_TICK_ONESHOT=y |
275 | CONFIG_NO_HZ=y | 301 | CONFIG_NO_HZ=y |
@@ -388,6 +414,10 @@ CONFIG_EXTRA_FIRMWARE="" | |||
388 | CONFIG_BLK_DEV=y | 414 | CONFIG_BLK_DEV=y |
389 | # CONFIG_BLK_DEV_COW_COMMON is not set | 415 | # CONFIG_BLK_DEV_COW_COMMON is not set |
390 | # CONFIG_BLK_DEV_LOOP is not set | 416 | # CONFIG_BLK_DEV_LOOP is not set |
417 | |||
418 | # | ||
419 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
420 | # | ||
391 | # CONFIG_BLK_DEV_RAM is not set | 421 | # CONFIG_BLK_DEV_RAM is not set |
392 | # CONFIG_CDROM_PKTCDVD is not set | 422 | # CONFIG_CDROM_PKTCDVD is not set |
393 | # CONFIG_BLK_DEV_HD is not set | 423 | # CONFIG_BLK_DEV_HD is not set |
@@ -476,7 +506,6 @@ CONFIG_I2C_SH_MOBILE=y | |||
476 | # | 506 | # |
477 | # Miscellaneous I2C Chip support | 507 | # Miscellaneous I2C Chip support |
478 | # | 508 | # |
479 | # CONFIG_DS1682 is not set | ||
480 | # CONFIG_SENSORS_TSL2550 is not set | 509 | # CONFIG_SENSORS_TSL2550 is not set |
481 | # CONFIG_I2C_DEBUG_CORE is not set | 510 | # CONFIG_I2C_DEBUG_CORE is not set |
482 | # CONFIG_I2C_DEBUG_ALGO is not set | 511 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -505,15 +534,18 @@ CONFIG_SSB_POSSIBLE=y | |||
505 | # | 534 | # |
506 | # CONFIG_MFD_CORE is not set | 535 | # CONFIG_MFD_CORE is not set |
507 | # CONFIG_MFD_SM501 is not set | 536 | # CONFIG_MFD_SM501 is not set |
537 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
508 | # CONFIG_HTC_PASIC3 is not set | 538 | # CONFIG_HTC_PASIC3 is not set |
509 | # CONFIG_TWL4030_CORE is not set | 539 | # CONFIG_TWL4030_CORE is not set |
510 | # CONFIG_MFD_TMIO is not set | 540 | # CONFIG_MFD_TMIO is not set |
511 | # CONFIG_PMIC_DA903X is not set | 541 | # CONFIG_PMIC_DA903X is not set |
542 | # CONFIG_PMIC_ADP5520 is not set | ||
512 | # CONFIG_MFD_WM8400 is not set | 543 | # CONFIG_MFD_WM8400 is not set |
513 | # CONFIG_MFD_WM831X is not set | 544 | # CONFIG_MFD_WM831X is not set |
514 | # CONFIG_MFD_WM8350_I2C is not set | 545 | # CONFIG_MFD_WM8350_I2C is not set |
515 | # CONFIG_MFD_PCF50633 is not set | 546 | # CONFIG_MFD_PCF50633 is not set |
516 | # CONFIG_AB3100_CORE is not set | 547 | # CONFIG_AB3100_CORE is not set |
548 | # CONFIG_MFD_88PM8607 is not set | ||
517 | # CONFIG_REGULATOR is not set | 549 | # CONFIG_REGULATOR is not set |
518 | # CONFIG_MEDIA_SUPPORT is not set | 550 | # CONFIG_MEDIA_SUPPORT is not set |
519 | 551 | ||
@@ -561,6 +593,7 @@ CONFIG_RTC_INTF_DEV=y | |||
561 | # CONFIG_RTC_DRV_PCF8563 is not set | 593 | # CONFIG_RTC_DRV_PCF8563 is not set |
562 | # CONFIG_RTC_DRV_PCF8583 is not set | 594 | # CONFIG_RTC_DRV_PCF8583 is not set |
563 | # CONFIG_RTC_DRV_M41T80 is not set | 595 | # CONFIG_RTC_DRV_M41T80 is not set |
596 | # CONFIG_RTC_DRV_BQ32K is not set | ||
564 | # CONFIG_RTC_DRV_S35390A is not set | 597 | # CONFIG_RTC_DRV_S35390A is not set |
565 | # CONFIG_RTC_DRV_FM3130 is not set | 598 | # CONFIG_RTC_DRV_FM3130 is not set |
566 | # CONFIG_RTC_DRV_RX8581 is not set | 599 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -581,7 +614,9 @@ CONFIG_RTC_INTF_DEV=y | |||
581 | # CONFIG_RTC_DRV_M48T86 is not set | 614 | # CONFIG_RTC_DRV_M48T86 is not set |
582 | # CONFIG_RTC_DRV_M48T35 is not set | 615 | # CONFIG_RTC_DRV_M48T35 is not set |
583 | # CONFIG_RTC_DRV_M48T59 is not set | 616 | # CONFIG_RTC_DRV_M48T59 is not set |
617 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
584 | # CONFIG_RTC_DRV_BQ4802 is not set | 618 | # CONFIG_RTC_DRV_BQ4802 is not set |
619 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
585 | # CONFIG_RTC_DRV_V3020 is not set | 620 | # CONFIG_RTC_DRV_V3020 is not set |
586 | 621 | ||
587 | # | 622 | # |
@@ -608,6 +643,7 @@ CONFIG_UIO_PDRV_GENIRQ=y | |||
608 | # CONFIG_EXT2_FS is not set | 643 | # CONFIG_EXT2_FS is not set |
609 | # CONFIG_EXT3_FS is not set | 644 | # CONFIG_EXT3_FS is not set |
610 | # CONFIG_EXT4_FS is not set | 645 | # CONFIG_EXT4_FS is not set |
646 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
611 | # CONFIG_REISERFS_FS is not set | 647 | # CONFIG_REISERFS_FS is not set |
612 | # CONFIG_JFS_FS is not set | 648 | # CONFIG_JFS_FS is not set |
613 | # CONFIG_FS_POSIX_ACL is not set | 649 | # CONFIG_FS_POSIX_ACL is not set |
@@ -675,11 +711,10 @@ CONFIG_DEBUG_FS=y | |||
675 | # CONFIG_HEADERS_CHECK is not set | 711 | # CONFIG_HEADERS_CHECK is not set |
676 | # CONFIG_DEBUG_KERNEL is not set | 712 | # CONFIG_DEBUG_KERNEL is not set |
677 | CONFIG_STACKTRACE=y | 713 | CONFIG_STACKTRACE=y |
678 | # CONFIG_DEBUG_BUGVERBOSE is not set | 714 | CONFIG_DEBUG_BUGVERBOSE=y |
679 | # CONFIG_DEBUG_MEMORY_INIT is not set | 715 | # CONFIG_DEBUG_MEMORY_INIT is not set |
680 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 716 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
681 | # CONFIG_LATENCYTOP is not set | 717 | # CONFIG_LATENCYTOP is not set |
682 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
683 | CONFIG_NOP_TRACER=y | 718 | CONFIG_NOP_TRACER=y |
684 | CONFIG_HAVE_FUNCTION_TRACER=y | 719 | CONFIG_HAVE_FUNCTION_TRACER=y |
685 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 720 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -699,7 +734,6 @@ CONFIG_TRACING_SUPPORT=y | |||
699 | # CONFIG_SAMPLES is not set | 734 | # CONFIG_SAMPLES is not set |
700 | CONFIG_HAVE_ARCH_KGDB=y | 735 | CONFIG_HAVE_ARCH_KGDB=y |
701 | # CONFIG_SH_STANDARD_BIOS is not set | 736 | # CONFIG_SH_STANDARD_BIOS is not set |
702 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
703 | # CONFIG_DWARF_UNWINDER is not set | 737 | # CONFIG_DWARF_UNWINDER is not set |
704 | 738 | ||
705 | # | 739 | # |
@@ -707,7 +741,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
707 | # | 741 | # |
708 | # CONFIG_KEYS is not set | 742 | # CONFIG_KEYS is not set |
709 | # CONFIG_SECURITYFS is not set | 743 | # CONFIG_SECURITYFS is not set |
710 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 744 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
745 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
746 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
747 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
748 | CONFIG_DEFAULT_SECURITY="" | ||
711 | # CONFIG_CRYPTO is not set | 749 | # CONFIG_CRYPTO is not set |
712 | CONFIG_BINARY_PRINTF=y | 750 | CONFIG_BINARY_PRINTF=y |
713 | 751 | ||
diff --git a/arch/sh/configs/sh7763rdp_defconfig b/arch/sh/configs/sh7763rdp_defconfig index 194ff703e23..04b841b2942 100644 --- a/arch/sh/configs/sh7763rdp_defconfig +++ b/arch/sh/configs/sh7763rdp_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:15:37 2009 | 4 | # Mon Jan 4 15:05:29 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_TMU=y | 24 | CONFIG_SYS_SUPPORTS_TMU=y |
24 | CONFIG_STACKTRACE_SUPPORT=y | 25 | CONFIG_STACKTRACE_SUPPORT=y |
25 | CONFIG_LOCKDEP_SUPPORT=y | 26 | CONFIG_LOCKDEP_SUPPORT=y |
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
34 | 36 | ||
@@ -59,6 +61,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
59 | # | 61 | # |
60 | CONFIG_TREE_RCU=y | 62 | CONFIG_TREE_RCU=y |
61 | # CONFIG_TREE_PREEMPT_RCU is not set | 63 | # CONFIG_TREE_PREEMPT_RCU is not set |
64 | # CONFIG_TINY_RCU is not set | ||
62 | # CONFIG_RCU_TRACE is not set | 65 | # CONFIG_RCU_TRACE is not set |
63 | CONFIG_RCU_FANOUT=32 | 66 | CONFIG_RCU_FANOUT=32 |
64 | # CONFIG_RCU_FANOUT_EXACT is not set | 67 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y | |||
103 | CONFIG_SHMEM=y | 106 | CONFIG_SHMEM=y |
104 | CONFIG_AIO=y | 107 | CONFIG_AIO=y |
105 | CONFIG_HAVE_PERF_EVENTS=y | 108 | CONFIG_HAVE_PERF_EVENTS=y |
109 | CONFIG_PERF_USE_VMALLOC=y | ||
106 | 110 | ||
107 | # | 111 | # |
108 | # Kernel Performance Events And Counters | 112 | # Kernel Performance Events And Counters |
@@ -124,6 +128,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
124 | CONFIG_HAVE_KPROBES=y | 128 | CONFIG_HAVE_KPROBES=y |
125 | CONFIG_HAVE_KRETPROBES=y | 129 | CONFIG_HAVE_KRETPROBES=y |
126 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 130 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
131 | CONFIG_HAVE_DMA_ATTRS=y | ||
127 | CONFIG_HAVE_CLK=y | 132 | CONFIG_HAVE_CLK=y |
128 | CONFIG_HAVE_DMA_API_DEBUG=y | 133 | CONFIG_HAVE_DMA_API_DEBUG=y |
129 | 134 | ||
@@ -150,14 +155,41 @@ CONFIG_LBDAF=y | |||
150 | # IO Schedulers | 155 | # IO Schedulers |
151 | # | 156 | # |
152 | CONFIG_IOSCHED_NOOP=y | 157 | CONFIG_IOSCHED_NOOP=y |
153 | CONFIG_IOSCHED_AS=y | ||
154 | CONFIG_IOSCHED_DEADLINE=y | 158 | CONFIG_IOSCHED_DEADLINE=y |
155 | CONFIG_IOSCHED_CFQ=y | 159 | CONFIG_IOSCHED_CFQ=y |
156 | CONFIG_DEFAULT_AS=y | ||
157 | # CONFIG_DEFAULT_DEADLINE is not set | 160 | # CONFIG_DEFAULT_DEADLINE is not set |
158 | # CONFIG_DEFAULT_CFQ is not set | 161 | CONFIG_DEFAULT_CFQ=y |
159 | # CONFIG_DEFAULT_NOOP is not set | 162 | # CONFIG_DEFAULT_NOOP is not set |
160 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 163 | CONFIG_DEFAULT_IOSCHED="cfq" |
164 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
165 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
166 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
167 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
168 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
169 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
170 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
171 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
172 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
173 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
174 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
175 | # CONFIG_INLINE_READ_LOCK is not set | ||
176 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
177 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
178 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
179 | CONFIG_INLINE_READ_UNLOCK=y | ||
180 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
181 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
182 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
183 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
184 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
185 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
186 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
187 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
188 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
189 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
190 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
191 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
192 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
161 | # CONFIG_FREEZER is not set | 193 | # CONFIG_FREEZER is not set |
162 | 194 | ||
163 | # | 195 | # |
@@ -211,6 +243,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
211 | CONFIG_MEMORY_START=0x0c000000 | 243 | CONFIG_MEMORY_START=0x0c000000 |
212 | CONFIG_MEMORY_SIZE=0x04000000 | 244 | CONFIG_MEMORY_SIZE=0x04000000 |
213 | CONFIG_29BIT=y | 245 | CONFIG_29BIT=y |
246 | # CONFIG_PMB_ENABLE is not set | ||
214 | CONFIG_VSYSCALL=y | 247 | CONFIG_VSYSCALL=y |
215 | CONFIG_ARCH_FLATMEM_ENABLE=y | 248 | CONFIG_ARCH_FLATMEM_ENABLE=y |
216 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 249 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
@@ -237,8 +270,6 @@ CONFIG_MIGRATION=y | |||
237 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 270 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
238 | CONFIG_ZONE_DMA_FLAG=0 | 271 | CONFIG_ZONE_DMA_FLAG=0 |
239 | CONFIG_NR_QUICK=2 | 272 | CONFIG_NR_QUICK=2 |
240 | CONFIG_HAVE_MLOCK=y | ||
241 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
242 | # CONFIG_KSM is not set | 273 | # CONFIG_KSM is not set |
243 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 274 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
244 | 275 | ||
@@ -421,10 +452,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
421 | # CONFIG_AF_RXRPC is not set | 452 | # CONFIG_AF_RXRPC is not set |
422 | CONFIG_WIRELESS=y | 453 | CONFIG_WIRELESS=y |
423 | # CONFIG_CFG80211 is not set | 454 | # CONFIG_CFG80211 is not set |
424 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
425 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
426 | CONFIG_WIRELESS_EXT=y | ||
427 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
428 | # CONFIG_LIB80211 is not set | 455 | # CONFIG_LIB80211 is not set |
429 | 456 | ||
430 | # | 457 | # |
@@ -509,7 +536,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
509 | CONFIG_MTD_COMPLEX_MAPPINGS=y | 536 | CONFIG_MTD_COMPLEX_MAPPINGS=y |
510 | CONFIG_MTD_PHYSMAP=y | 537 | CONFIG_MTD_PHYSMAP=y |
511 | # CONFIG_MTD_PHYSMAP_COMPAT is not set | 538 | # CONFIG_MTD_PHYSMAP_COMPAT is not set |
512 | # CONFIG_MTD_GPIO_ADDR is not set | ||
513 | # CONFIG_MTD_PLATRAM is not set | 539 | # CONFIG_MTD_PLATRAM is not set |
514 | 540 | ||
515 | # | 541 | # |
@@ -542,6 +568,10 @@ CONFIG_MTD_PHYSMAP=y | |||
542 | CONFIG_BLK_DEV=y | 568 | CONFIG_BLK_DEV=y |
543 | # CONFIG_BLK_DEV_COW_COMMON is not set | 569 | # CONFIG_BLK_DEV_COW_COMMON is not set |
544 | # CONFIG_BLK_DEV_LOOP is not set | 570 | # CONFIG_BLK_DEV_LOOP is not set |
571 | |||
572 | # | ||
573 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
574 | # | ||
545 | # CONFIG_BLK_DEV_NBD is not set | 575 | # CONFIG_BLK_DEV_NBD is not set |
546 | # CONFIG_BLK_DEV_UB is not set | 576 | # CONFIG_BLK_DEV_UB is not set |
547 | # CONFIG_BLK_DEV_RAM is not set | 577 | # CONFIG_BLK_DEV_RAM is not set |
@@ -640,11 +670,12 @@ CONFIG_SH_ETH=y | |||
640 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 670 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
641 | # CONFIG_B44 is not set | 671 | # CONFIG_B44 is not set |
642 | # CONFIG_KS8842 is not set | 672 | # CONFIG_KS8842 is not set |
673 | # CONFIG_KS8851_MLL is not set | ||
643 | # CONFIG_NETDEV_1000 is not set | 674 | # CONFIG_NETDEV_1000 is not set |
644 | # CONFIG_NETDEV_10000 is not set | 675 | # CONFIG_NETDEV_10000 is not set |
645 | CONFIG_WLAN=y | 676 | CONFIG_WLAN=y |
646 | # CONFIG_WLAN_PRE80211 is not set | 677 | # CONFIG_USB_ZD1201 is not set |
647 | # CONFIG_WLAN_80211 is not set | 678 | # CONFIG_HOSTAP is not set |
648 | 679 | ||
649 | # | 680 | # |
650 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 681 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -673,6 +704,7 @@ CONFIG_WLAN=y | |||
673 | CONFIG_INPUT=y | 704 | CONFIG_INPUT=y |
674 | # CONFIG_INPUT_FF_MEMLESS is not set | 705 | # CONFIG_INPUT_FF_MEMLESS is not set |
675 | # CONFIG_INPUT_POLLDEV is not set | 706 | # CONFIG_INPUT_POLLDEV is not set |
707 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
676 | 708 | ||
677 | # | 709 | # |
678 | # Userland interfaces | 710 | # Userland interfaces |
@@ -756,6 +788,7 @@ CONFIG_SSB_POSSIBLE=y | |||
756 | # | 788 | # |
757 | # CONFIG_MFD_CORE is not set | 789 | # CONFIG_MFD_CORE is not set |
758 | # CONFIG_MFD_SM501 is not set | 790 | # CONFIG_MFD_SM501 is not set |
791 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
759 | # CONFIG_HTC_PASIC3 is not set | 792 | # CONFIG_HTC_PASIC3 is not set |
760 | # CONFIG_MFD_TMIO is not set | 793 | # CONFIG_MFD_TMIO is not set |
761 | # CONFIG_REGULATOR is not set | 794 | # CONFIG_REGULATOR is not set |
@@ -949,6 +982,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
949 | # CONFIG_MMC_SDHCI is not set | 982 | # CONFIG_MMC_SDHCI is not set |
950 | # CONFIG_MMC_AT91 is not set | 983 | # CONFIG_MMC_AT91 is not set |
951 | # CONFIG_MMC_ATMELMCI is not set | 984 | # CONFIG_MMC_ATMELMCI is not set |
985 | # CONFIG_MMC_TMIO is not set | ||
952 | # CONFIG_MEMSTICK is not set | 986 | # CONFIG_MEMSTICK is not set |
953 | # CONFIG_NEW_LEDS is not set | 987 | # CONFIG_NEW_LEDS is not set |
954 | # CONFIG_ACCESSIBILITY is not set | 988 | # CONFIG_ACCESSIBILITY is not set |
@@ -1129,10 +1163,11 @@ CONFIG_DEBUG_FS=y | |||
1129 | # CONFIG_HEADERS_CHECK is not set | 1163 | # CONFIG_HEADERS_CHECK is not set |
1130 | # CONFIG_DEBUG_KERNEL is not set | 1164 | # CONFIG_DEBUG_KERNEL is not set |
1131 | CONFIG_STACKTRACE=y | 1165 | CONFIG_STACKTRACE=y |
1132 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1166 | CONFIG_DEBUG_BUGVERBOSE=y |
1133 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1167 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1134 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1168 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1135 | # CONFIG_LATENCYTOP is not set | 1169 | # CONFIG_LATENCYTOP is not set |
1170 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1136 | CONFIG_NOP_TRACER=y | 1171 | CONFIG_NOP_TRACER=y |
1137 | CONFIG_HAVE_FUNCTION_TRACER=y | 1172 | CONFIG_HAVE_FUNCTION_TRACER=y |
1138 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1173 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1152,7 +1187,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1152 | # CONFIG_SAMPLES is not set | 1187 | # CONFIG_SAMPLES is not set |
1153 | CONFIG_HAVE_ARCH_KGDB=y | 1188 | CONFIG_HAVE_ARCH_KGDB=y |
1154 | # CONFIG_SH_STANDARD_BIOS is not set | 1189 | # CONFIG_SH_STANDARD_BIOS is not set |
1155 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1156 | # CONFIG_DWARF_UNWINDER is not set | 1190 | # CONFIG_DWARF_UNWINDER is not set |
1157 | 1191 | ||
1158 | # | 1192 | # |
@@ -1161,7 +1195,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1161 | # CONFIG_KEYS is not set | 1195 | # CONFIG_KEYS is not set |
1162 | # CONFIG_SECURITY is not set | 1196 | # CONFIG_SECURITY is not set |
1163 | # CONFIG_SECURITYFS is not set | 1197 | # CONFIG_SECURITYFS is not set |
1164 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1198 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1199 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1200 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1201 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1202 | CONFIG_DEFAULT_SECURITY="" | ||
1165 | CONFIG_CRYPTO=y | 1203 | CONFIG_CRYPTO=y |
1166 | 1204 | ||
1167 | # | 1205 | # |
diff --git a/arch/sh/configs/sh7770_generic_defconfig b/arch/sh/configs/sh7770_generic_defconfig index 34bed5541f3..7b247053ece 100644 --- a/arch/sh/configs/sh7770_generic_defconfig +++ b/arch/sh/configs/sh7770_generic_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:17:16 2009 | 4 | # Mon Jan 4 15:06:28 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_TMU=y | 24 | CONFIG_SYS_SUPPORTS_TMU=y |
24 | CONFIG_STACKTRACE_SUPPORT=y | 25 | CONFIG_STACKTRACE_SUPPORT=y |
25 | CONFIG_LOCKDEP_SUPPORT=y | 26 | CONFIG_LOCKDEP_SUPPORT=y |
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
34 | 36 | ||
@@ -48,7 +50,6 @@ CONFIG_KERNEL_GZIP=y | |||
48 | # CONFIG_KERNEL_LZMA is not set | 50 | # CONFIG_KERNEL_LZMA is not set |
49 | CONFIG_SWAP=y | 51 | CONFIG_SWAP=y |
50 | CONFIG_SYSVIPC=y | 52 | CONFIG_SYSVIPC=y |
51 | CONFIG_SYSVIPC_SYSCTL=y | ||
52 | # CONFIG_BSD_PROCESS_ACCT is not set | 53 | # CONFIG_BSD_PROCESS_ACCT is not set |
53 | 54 | ||
54 | # | 55 | # |
@@ -56,6 +57,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
56 | # | 57 | # |
57 | CONFIG_TREE_RCU=y | 58 | CONFIG_TREE_RCU=y |
58 | # CONFIG_TREE_PREEMPT_RCU is not set | 59 | # CONFIG_TREE_PREEMPT_RCU is not set |
60 | # CONFIG_TINY_RCU is not set | ||
59 | # CONFIG_RCU_TRACE is not set | 61 | # CONFIG_RCU_TRACE is not set |
60 | CONFIG_RCU_FANOUT=32 | 62 | CONFIG_RCU_FANOUT=32 |
61 | # CONFIG_RCU_FANOUT_EXACT is not set | 63 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -79,11 +81,9 @@ CONFIG_CGROUPS=y | |||
79 | # CONFIG_NAMESPACES is not set | 81 | # CONFIG_NAMESPACES is not set |
80 | # CONFIG_BLK_DEV_INITRD is not set | 82 | # CONFIG_BLK_DEV_INITRD is not set |
81 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 83 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
82 | CONFIG_SYSCTL=y | ||
83 | CONFIG_ANON_INODES=y | 84 | CONFIG_ANON_INODES=y |
84 | CONFIG_EMBEDDED=y | 85 | CONFIG_EMBEDDED=y |
85 | # CONFIG_UID16 is not set | 86 | # CONFIG_UID16 is not set |
86 | CONFIG_SYSCTL_SYSCALL=y | ||
87 | CONFIG_KALLSYMS=y | 87 | CONFIG_KALLSYMS=y |
88 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 88 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
89 | CONFIG_HOTPLUG=y | 89 | CONFIG_HOTPLUG=y |
@@ -99,6 +99,7 @@ CONFIG_EVENTFD=y | |||
99 | CONFIG_SHMEM=y | 99 | CONFIG_SHMEM=y |
100 | CONFIG_AIO=y | 100 | CONFIG_AIO=y |
101 | CONFIG_HAVE_PERF_EVENTS=y | 101 | CONFIG_HAVE_PERF_EVENTS=y |
102 | CONFIG_PERF_USE_VMALLOC=y | ||
102 | 103 | ||
103 | # | 104 | # |
104 | # Kernel Performance Events And Counters | 105 | # Kernel Performance Events And Counters |
@@ -119,6 +120,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
119 | CONFIG_HAVE_KPROBES=y | 120 | CONFIG_HAVE_KPROBES=y |
120 | CONFIG_HAVE_KRETPROBES=y | 121 | CONFIG_HAVE_KRETPROBES=y |
121 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 122 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
123 | CONFIG_HAVE_DMA_ATTRS=y | ||
122 | CONFIG_HAVE_CLK=y | 124 | CONFIG_HAVE_CLK=y |
123 | CONFIG_HAVE_DMA_API_DEBUG=y | 125 | CONFIG_HAVE_DMA_API_DEBUG=y |
124 | 126 | ||
@@ -135,19 +137,48 @@ CONFIG_BLOCK=y | |||
135 | CONFIG_LBDAF=y | 137 | CONFIG_LBDAF=y |
136 | # CONFIG_BLK_DEV_BSG is not set | 138 | # CONFIG_BLK_DEV_BSG is not set |
137 | # CONFIG_BLK_DEV_INTEGRITY is not set | 139 | # CONFIG_BLK_DEV_INTEGRITY is not set |
140 | # CONFIG_BLK_CGROUP is not set | ||
138 | 141 | ||
139 | # | 142 | # |
140 | # IO Schedulers | 143 | # IO Schedulers |
141 | # | 144 | # |
142 | CONFIG_IOSCHED_NOOP=y | 145 | CONFIG_IOSCHED_NOOP=y |
143 | CONFIG_IOSCHED_AS=y | ||
144 | CONFIG_IOSCHED_DEADLINE=y | 146 | CONFIG_IOSCHED_DEADLINE=y |
145 | CONFIG_IOSCHED_CFQ=y | 147 | CONFIG_IOSCHED_CFQ=y |
146 | CONFIG_DEFAULT_AS=y | 148 | # CONFIG_CFQ_GROUP_IOSCHED is not set |
147 | # CONFIG_DEFAULT_DEADLINE is not set | 149 | # CONFIG_DEFAULT_DEADLINE is not set |
148 | # CONFIG_DEFAULT_CFQ is not set | 150 | CONFIG_DEFAULT_CFQ=y |
149 | # CONFIG_DEFAULT_NOOP is not set | 151 | # CONFIG_DEFAULT_NOOP is not set |
150 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 152 | CONFIG_DEFAULT_IOSCHED="cfq" |
153 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
154 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
155 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
156 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
157 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
158 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
159 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
160 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
161 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
162 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
163 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
164 | # CONFIG_INLINE_READ_LOCK is not set | ||
165 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
166 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
167 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
168 | CONFIG_INLINE_READ_UNLOCK=y | ||
169 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
170 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
171 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
172 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
173 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
174 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
175 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
176 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
177 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
178 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
179 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
180 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
181 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
151 | CONFIG_FREEZER=y | 182 | CONFIG_FREEZER=y |
152 | 183 | ||
153 | # | 184 | # |
@@ -201,6 +232,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
201 | CONFIG_MEMORY_START=0x08000000 | 232 | CONFIG_MEMORY_START=0x08000000 |
202 | CONFIG_MEMORY_SIZE=0x04000000 | 233 | CONFIG_MEMORY_SIZE=0x04000000 |
203 | CONFIG_29BIT=y | 234 | CONFIG_29BIT=y |
235 | # CONFIG_PMB_ENABLE is not set | ||
204 | CONFIG_VSYSCALL=y | 236 | CONFIG_VSYSCALL=y |
205 | CONFIG_ARCH_FLATMEM_ENABLE=y | 237 | CONFIG_ARCH_FLATMEM_ENABLE=y |
206 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 238 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
@@ -221,17 +253,12 @@ CONFIG_SPARSEMEM_MANUAL=y | |||
221 | CONFIG_SPARSEMEM=y | 253 | CONFIG_SPARSEMEM=y |
222 | CONFIG_HAVE_MEMORY_PRESENT=y | 254 | CONFIG_HAVE_MEMORY_PRESENT=y |
223 | CONFIG_SPARSEMEM_STATIC=y | 255 | CONFIG_SPARSEMEM_STATIC=y |
224 | 256 | # CONFIG_MEMORY_HOTPLUG is not set | |
225 | # | ||
226 | # Memory hotplug is currently incompatible with Software Suspend | ||
227 | # | ||
228 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 257 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
229 | CONFIG_MIGRATION=y | 258 | CONFIG_MIGRATION=y |
230 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 259 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
231 | CONFIG_ZONE_DMA_FLAG=0 | 260 | CONFIG_ZONE_DMA_FLAG=0 |
232 | CONFIG_NR_QUICK=2 | 261 | CONFIG_NR_QUICK=2 |
233 | CONFIG_HAVE_MLOCK=y | ||
234 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
235 | # CONFIG_KSM is not set | 262 | # CONFIG_KSM is not set |
236 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 263 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
237 | 264 | ||
@@ -379,6 +406,10 @@ CONFIG_EXTRA_FIRMWARE="" | |||
379 | CONFIG_BLK_DEV=y | 406 | CONFIG_BLK_DEV=y |
380 | # CONFIG_BLK_DEV_COW_COMMON is not set | 407 | # CONFIG_BLK_DEV_COW_COMMON is not set |
381 | # CONFIG_BLK_DEV_LOOP is not set | 408 | # CONFIG_BLK_DEV_LOOP is not set |
409 | |||
410 | # | ||
411 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
412 | # | ||
382 | # CONFIG_BLK_DEV_RAM is not set | 413 | # CONFIG_BLK_DEV_RAM is not set |
383 | # CONFIG_CDROM_PKTCDVD is not set | 414 | # CONFIG_CDROM_PKTCDVD is not set |
384 | # CONFIG_BLK_DEV_HD is not set | 415 | # CONFIG_BLK_DEV_HD is not set |
@@ -467,7 +498,6 @@ CONFIG_I2C_SH_MOBILE=y | |||
467 | # | 498 | # |
468 | # Miscellaneous I2C Chip support | 499 | # Miscellaneous I2C Chip support |
469 | # | 500 | # |
470 | # CONFIG_DS1682 is not set | ||
471 | # CONFIG_SENSORS_TSL2550 is not set | 501 | # CONFIG_SENSORS_TSL2550 is not set |
472 | # CONFIG_I2C_DEBUG_CORE is not set | 502 | # CONFIG_I2C_DEBUG_CORE is not set |
473 | # CONFIG_I2C_DEBUG_ALGO is not set | 503 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -496,15 +526,18 @@ CONFIG_SSB_POSSIBLE=y | |||
496 | # | 526 | # |
497 | # CONFIG_MFD_CORE is not set | 527 | # CONFIG_MFD_CORE is not set |
498 | # CONFIG_MFD_SM501 is not set | 528 | # CONFIG_MFD_SM501 is not set |
529 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
499 | # CONFIG_HTC_PASIC3 is not set | 530 | # CONFIG_HTC_PASIC3 is not set |
500 | # CONFIG_TWL4030_CORE is not set | 531 | # CONFIG_TWL4030_CORE is not set |
501 | # CONFIG_MFD_TMIO is not set | 532 | # CONFIG_MFD_TMIO is not set |
502 | # CONFIG_PMIC_DA903X is not set | 533 | # CONFIG_PMIC_DA903X is not set |
534 | # CONFIG_PMIC_ADP5520 is not set | ||
503 | # CONFIG_MFD_WM8400 is not set | 535 | # CONFIG_MFD_WM8400 is not set |
504 | # CONFIG_MFD_WM831X is not set | 536 | # CONFIG_MFD_WM831X is not set |
505 | # CONFIG_MFD_WM8350_I2C is not set | 537 | # CONFIG_MFD_WM8350_I2C is not set |
506 | # CONFIG_MFD_PCF50633 is not set | 538 | # CONFIG_MFD_PCF50633 is not set |
507 | # CONFIG_AB3100_CORE is not set | 539 | # CONFIG_AB3100_CORE is not set |
540 | # CONFIG_MFD_88PM8607 is not set | ||
508 | # CONFIG_REGULATOR is not set | 541 | # CONFIG_REGULATOR is not set |
509 | # CONFIG_MEDIA_SUPPORT is not set | 542 | # CONFIG_MEDIA_SUPPORT is not set |
510 | 543 | ||
@@ -552,6 +585,7 @@ CONFIG_RTC_INTF_DEV=y | |||
552 | # CONFIG_RTC_DRV_PCF8563 is not set | 585 | # CONFIG_RTC_DRV_PCF8563 is not set |
553 | # CONFIG_RTC_DRV_PCF8583 is not set | 586 | # CONFIG_RTC_DRV_PCF8583 is not set |
554 | # CONFIG_RTC_DRV_M41T80 is not set | 587 | # CONFIG_RTC_DRV_M41T80 is not set |
588 | # CONFIG_RTC_DRV_BQ32K is not set | ||
555 | # CONFIG_RTC_DRV_S35390A is not set | 589 | # CONFIG_RTC_DRV_S35390A is not set |
556 | # CONFIG_RTC_DRV_FM3130 is not set | 590 | # CONFIG_RTC_DRV_FM3130 is not set |
557 | # CONFIG_RTC_DRV_RX8581 is not set | 591 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -572,7 +606,9 @@ CONFIG_RTC_INTF_DEV=y | |||
572 | # CONFIG_RTC_DRV_M48T86 is not set | 606 | # CONFIG_RTC_DRV_M48T86 is not set |
573 | # CONFIG_RTC_DRV_M48T35 is not set | 607 | # CONFIG_RTC_DRV_M48T35 is not set |
574 | # CONFIG_RTC_DRV_M48T59 is not set | 608 | # CONFIG_RTC_DRV_M48T59 is not set |
609 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
575 | # CONFIG_RTC_DRV_BQ4802 is not set | 610 | # CONFIG_RTC_DRV_BQ4802 is not set |
611 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
576 | # CONFIG_RTC_DRV_V3020 is not set | 612 | # CONFIG_RTC_DRV_V3020 is not set |
577 | 613 | ||
578 | # | 614 | # |
@@ -599,6 +635,7 @@ CONFIG_UIO_PDRV_GENIRQ=y | |||
599 | # CONFIG_EXT2_FS is not set | 635 | # CONFIG_EXT2_FS is not set |
600 | # CONFIG_EXT3_FS is not set | 636 | # CONFIG_EXT3_FS is not set |
601 | # CONFIG_EXT4_FS is not set | 637 | # CONFIG_EXT4_FS is not set |
638 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
602 | # CONFIG_REISERFS_FS is not set | 639 | # CONFIG_REISERFS_FS is not set |
603 | # CONFIG_JFS_FS is not set | 640 | # CONFIG_JFS_FS is not set |
604 | # CONFIG_FS_POSIX_ACL is not set | 641 | # CONFIG_FS_POSIX_ACL is not set |
@@ -666,11 +703,10 @@ CONFIG_DEBUG_FS=y | |||
666 | # CONFIG_HEADERS_CHECK is not set | 703 | # CONFIG_HEADERS_CHECK is not set |
667 | # CONFIG_DEBUG_KERNEL is not set | 704 | # CONFIG_DEBUG_KERNEL is not set |
668 | CONFIG_STACKTRACE=y | 705 | CONFIG_STACKTRACE=y |
669 | # CONFIG_DEBUG_BUGVERBOSE is not set | 706 | CONFIG_DEBUG_BUGVERBOSE=y |
670 | # CONFIG_DEBUG_MEMORY_INIT is not set | 707 | # CONFIG_DEBUG_MEMORY_INIT is not set |
671 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 708 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
672 | # CONFIG_LATENCYTOP is not set | 709 | # CONFIG_LATENCYTOP is not set |
673 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
674 | CONFIG_NOP_TRACER=y | 710 | CONFIG_NOP_TRACER=y |
675 | CONFIG_HAVE_FUNCTION_TRACER=y | 711 | CONFIG_HAVE_FUNCTION_TRACER=y |
676 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 712 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -690,7 +726,6 @@ CONFIG_TRACING_SUPPORT=y | |||
690 | # CONFIG_SAMPLES is not set | 726 | # CONFIG_SAMPLES is not set |
691 | CONFIG_HAVE_ARCH_KGDB=y | 727 | CONFIG_HAVE_ARCH_KGDB=y |
692 | # CONFIG_SH_STANDARD_BIOS is not set | 728 | # CONFIG_SH_STANDARD_BIOS is not set |
693 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
694 | # CONFIG_DWARF_UNWINDER is not set | 729 | # CONFIG_DWARF_UNWINDER is not set |
695 | 730 | ||
696 | # | 731 | # |
@@ -698,7 +733,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
698 | # | 733 | # |
699 | # CONFIG_KEYS is not set | 734 | # CONFIG_KEYS is not set |
700 | # CONFIG_SECURITYFS is not set | 735 | # CONFIG_SECURITYFS is not set |
701 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 736 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
737 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
738 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
739 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
740 | CONFIG_DEFAULT_SECURITY="" | ||
702 | # CONFIG_CRYPTO is not set | 741 | # CONFIG_CRYPTO is not set |
703 | CONFIG_BINARY_PRINTF=y | 742 | CONFIG_BINARY_PRINTF=y |
704 | 743 | ||
diff --git a/arch/sh/configs/sh7785lcr_32bit_defconfig b/arch/sh/configs/sh7785lcr_32bit_defconfig index 51cbaedf7a5..8330813b0c1 100644 --- a/arch/sh/configs/sh7785lcr_32bit_defconfig +++ b/arch/sh/configs/sh7785lcr_32bit_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Fri Sep 25 11:39:20 2009 | 4 | # Mon Jan 4 15:07:40 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_NUMA=y | 24 | CONFIG_SYS_SUPPORTS_NUMA=y |
24 | CONFIG_SYS_SUPPORTS_PCI=y | 25 | CONFIG_SYS_SUPPORTS_PCI=y |
25 | CONFIG_SYS_SUPPORTS_TMU=y | 26 | CONFIG_SYS_SUPPORTS_TMU=y |
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 32 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 33 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 34 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
35 | CONFIG_DMA_NONCOHERENT=y | ||
34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 36 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
35 | CONFIG_CONSTRUCTORS=y | 37 | CONFIG_CONSTRUCTORS=y |
36 | 38 | ||
@@ -64,6 +66,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
64 | # | 66 | # |
65 | CONFIG_TREE_RCU=y | 67 | CONFIG_TREE_RCU=y |
66 | # CONFIG_TREE_PREEMPT_RCU is not set | 68 | # CONFIG_TREE_PREEMPT_RCU is not set |
69 | # CONFIG_TINY_RCU is not set | ||
67 | # CONFIG_RCU_TRACE is not set | 70 | # CONFIG_RCU_TRACE is not set |
68 | CONFIG_RCU_FANOUT=32 | 71 | CONFIG_RCU_FANOUT=32 |
69 | # CONFIG_RCU_FANOUT_EXACT is not set | 72 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -103,6 +106,7 @@ CONFIG_EVENTFD=y | |||
103 | CONFIG_SHMEM=y | 106 | CONFIG_SHMEM=y |
104 | CONFIG_AIO=y | 107 | CONFIG_AIO=y |
105 | CONFIG_HAVE_PERF_EVENTS=y | 108 | CONFIG_HAVE_PERF_EVENTS=y |
109 | CONFIG_PERF_USE_VMALLOC=y | ||
106 | 110 | ||
107 | # | 111 | # |
108 | # Kernel Performance Events And Counters | 112 | # Kernel Performance Events And Counters |
@@ -126,6 +130,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
126 | CONFIG_HAVE_KPROBES=y | 130 | CONFIG_HAVE_KPROBES=y |
127 | CONFIG_HAVE_KRETPROBES=y | 131 | CONFIG_HAVE_KRETPROBES=y |
128 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 132 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
133 | CONFIG_HAVE_DMA_ATTRS=y | ||
129 | CONFIG_HAVE_CLK=y | 134 | CONFIG_HAVE_CLK=y |
130 | CONFIG_HAVE_DMA_API_DEBUG=y | 135 | CONFIG_HAVE_DMA_API_DEBUG=y |
131 | 136 | ||
@@ -153,14 +158,41 @@ CONFIG_BLOCK=y | |||
153 | # IO Schedulers | 158 | # IO Schedulers |
154 | # | 159 | # |
155 | CONFIG_IOSCHED_NOOP=y | 160 | CONFIG_IOSCHED_NOOP=y |
156 | CONFIG_IOSCHED_AS=y | ||
157 | CONFIG_IOSCHED_DEADLINE=y | 161 | CONFIG_IOSCHED_DEADLINE=y |
158 | CONFIG_IOSCHED_CFQ=y | 162 | CONFIG_IOSCHED_CFQ=y |
159 | # CONFIG_DEFAULT_AS is not set | ||
160 | # CONFIG_DEFAULT_DEADLINE is not set | 163 | # CONFIG_DEFAULT_DEADLINE is not set |
161 | CONFIG_DEFAULT_CFQ=y | 164 | CONFIG_DEFAULT_CFQ=y |
162 | # CONFIG_DEFAULT_NOOP is not set | 165 | # CONFIG_DEFAULT_NOOP is not set |
163 | CONFIG_DEFAULT_IOSCHED="cfq" | 166 | CONFIG_DEFAULT_IOSCHED="cfq" |
167 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
168 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
169 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
170 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
171 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
172 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
173 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
174 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
175 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
176 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
177 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
178 | # CONFIG_INLINE_READ_LOCK is not set | ||
179 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
180 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
181 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
182 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
183 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
184 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
185 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
186 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
187 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
188 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
191 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
192 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
193 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
194 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
164 | # CONFIG_FREEZER is not set | 196 | # CONFIG_FREEZER is not set |
165 | 197 | ||
166 | # | 198 | # |
@@ -253,8 +285,6 @@ CONFIG_MIGRATION=y | |||
253 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 285 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
254 | CONFIG_ZONE_DMA_FLAG=0 | 286 | CONFIG_ZONE_DMA_FLAG=0 |
255 | CONFIG_NR_QUICK=2 | 287 | CONFIG_NR_QUICK=2 |
256 | CONFIG_HAVE_MLOCK=y | ||
257 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
258 | # CONFIG_KSM is not set | 288 | # CONFIG_KSM is not set |
259 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 289 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
260 | 290 | ||
@@ -287,7 +317,6 @@ CONFIG_SH_SH7785LCR=y | |||
287 | # Timer and clock configuration | 317 | # Timer and clock configuration |
288 | # | 318 | # |
289 | CONFIG_SH_TIMER_TMU=y | 319 | CONFIG_SH_TIMER_TMU=y |
290 | CONFIG_SH_PCLK_FREQ=50000000 | ||
291 | CONFIG_SH_CLK_CPG=y | 320 | CONFIG_SH_CLK_CPG=y |
292 | CONFIG_TICK_ONESHOT=y | 321 | CONFIG_TICK_ONESHOT=y |
293 | CONFIG_NO_HZ=y | 322 | CONFIG_NO_HZ=y |
@@ -360,7 +389,6 @@ CONFIG_ENTRY_OFFSET=0x00001000 | |||
360 | # Bus options | 389 | # Bus options |
361 | # | 390 | # |
362 | CONFIG_PCI=y | 391 | CONFIG_PCI=y |
363 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
364 | # CONFIG_PCIEPORTBUS is not set | 392 | # CONFIG_PCIEPORTBUS is not set |
365 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 393 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
366 | # CONFIG_PCI_LEGACY is not set | 394 | # CONFIG_PCI_LEGACY is not set |
@@ -470,10 +498,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
470 | # CONFIG_AF_RXRPC is not set | 498 | # CONFIG_AF_RXRPC is not set |
471 | CONFIG_WIRELESS=y | 499 | CONFIG_WIRELESS=y |
472 | # CONFIG_CFG80211 is not set | 500 | # CONFIG_CFG80211 is not set |
473 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
474 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
475 | CONFIG_WIRELESS_EXT=y | ||
476 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
477 | # CONFIG_LIB80211 is not set | 501 | # CONFIG_LIB80211 is not set |
478 | 502 | ||
479 | # | 503 | # |
@@ -588,6 +612,10 @@ CONFIG_BLK_DEV=y | |||
588 | # CONFIG_BLK_DEV_COW_COMMON is not set | 612 | # CONFIG_BLK_DEV_COW_COMMON is not set |
589 | CONFIG_BLK_DEV_LOOP=y | 613 | CONFIG_BLK_DEV_LOOP=y |
590 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 614 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
615 | |||
616 | # | ||
617 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
618 | # | ||
591 | # CONFIG_BLK_DEV_NBD is not set | 619 | # CONFIG_BLK_DEV_NBD is not set |
592 | # CONFIG_BLK_DEV_SX8 is not set | 620 | # CONFIG_BLK_DEV_SX8 is not set |
593 | # CONFIG_BLK_DEV_UB is not set | 621 | # CONFIG_BLK_DEV_UB is not set |
@@ -688,15 +716,16 @@ CONFIG_SATA_SIL=y | |||
688 | # CONFIG_PATA_NS87415 is not set | 716 | # CONFIG_PATA_NS87415 is not set |
689 | # CONFIG_PATA_OPTI is not set | 717 | # CONFIG_PATA_OPTI is not set |
690 | # CONFIG_PATA_OPTIDMA is not set | 718 | # CONFIG_PATA_OPTIDMA is not set |
719 | # CONFIG_PATA_PDC2027X is not set | ||
691 | # CONFIG_PATA_PDC_OLD is not set | 720 | # CONFIG_PATA_PDC_OLD is not set |
692 | # CONFIG_PATA_RADISYS is not set | 721 | # CONFIG_PATA_RADISYS is not set |
693 | # CONFIG_PATA_RDC is not set | 722 | # CONFIG_PATA_RDC is not set |
694 | # CONFIG_PATA_RZ1000 is not set | 723 | # CONFIG_PATA_RZ1000 is not set |
695 | # CONFIG_PATA_SC1200 is not set | 724 | # CONFIG_PATA_SC1200 is not set |
696 | # CONFIG_PATA_SERVERWORKS is not set | 725 | # CONFIG_PATA_SERVERWORKS is not set |
697 | # CONFIG_PATA_PDC2027X is not set | ||
698 | # CONFIG_PATA_SIL680 is not set | 726 | # CONFIG_PATA_SIL680 is not set |
699 | # CONFIG_PATA_SIS is not set | 727 | # CONFIG_PATA_SIS is not set |
728 | # CONFIG_PATA_TOSHIBA is not set | ||
700 | # CONFIG_PATA_VIA is not set | 729 | # CONFIG_PATA_VIA is not set |
701 | # CONFIG_PATA_WINBOND is not set | 730 | # CONFIG_PATA_WINBOND is not set |
702 | # CONFIG_PATA_PLATFORM is not set | 731 | # CONFIG_PATA_PLATFORM is not set |
@@ -777,6 +806,7 @@ CONFIG_R8169=y | |||
777 | # CONFIG_NETCONSOLE is not set | 806 | # CONFIG_NETCONSOLE is not set |
778 | # CONFIG_NETPOLL is not set | 807 | # CONFIG_NETPOLL is not set |
779 | # CONFIG_NET_POLL_CONTROLLER is not set | 808 | # CONFIG_NET_POLL_CONTROLLER is not set |
809 | # CONFIG_VMXNET3 is not set | ||
780 | # CONFIG_ISDN is not set | 810 | # CONFIG_ISDN is not set |
781 | # CONFIG_PHONE is not set | 811 | # CONFIG_PHONE is not set |
782 | 812 | ||
@@ -786,6 +816,7 @@ CONFIG_R8169=y | |||
786 | CONFIG_INPUT=y | 816 | CONFIG_INPUT=y |
787 | CONFIG_INPUT_FF_MEMLESS=m | 817 | CONFIG_INPUT_FF_MEMLESS=m |
788 | # CONFIG_INPUT_POLLDEV is not set | 818 | # CONFIG_INPUT_POLLDEV is not set |
819 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
789 | 820 | ||
790 | # | 821 | # |
791 | # Userland interfaces | 822 | # Userland interfaces |
@@ -841,6 +872,7 @@ CONFIG_SERIO_SERPORT=y | |||
841 | # CONFIG_SERIO_PCIPS2 is not set | 872 | # CONFIG_SERIO_PCIPS2 is not set |
842 | CONFIG_SERIO_LIBPS2=y | 873 | CONFIG_SERIO_LIBPS2=y |
843 | # CONFIG_SERIO_RAW is not set | 874 | # CONFIG_SERIO_RAW is not set |
875 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
844 | # CONFIG_GAMEPORT is not set | 876 | # CONFIG_GAMEPORT is not set |
845 | 877 | ||
846 | # | 878 | # |
@@ -924,11 +956,6 @@ CONFIG_I2C_ALGOPCA=y | |||
924 | # CONFIG_I2C_TINY_USB is not set | 956 | # CONFIG_I2C_TINY_USB is not set |
925 | 957 | ||
926 | # | 958 | # |
927 | # Graphics adapter I2C/DDC channel drivers | ||
928 | # | ||
929 | # CONFIG_I2C_VOODOO3 is not set | ||
930 | |||
931 | # | ||
932 | # Other I2C/SMBus bus drivers | 959 | # Other I2C/SMBus bus drivers |
933 | # | 960 | # |
934 | CONFIG_I2C_PCA_PLATFORM=y | 961 | CONFIG_I2C_PCA_PLATFORM=y |
@@ -937,7 +964,6 @@ CONFIG_I2C_PCA_PLATFORM=y | |||
937 | # | 964 | # |
938 | # Miscellaneous I2C Chip support | 965 | # Miscellaneous I2C Chip support |
939 | # | 966 | # |
940 | # CONFIG_DS1682 is not set | ||
941 | # CONFIG_SENSORS_TSL2550 is not set | 967 | # CONFIG_SENSORS_TSL2550 is not set |
942 | # CONFIG_I2C_DEBUG_CORE is not set | 968 | # CONFIG_I2C_DEBUG_CORE is not set |
943 | # CONFIG_I2C_DEBUG_ALGO is not set | 969 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -986,15 +1012,18 @@ CONFIG_SSB_POSSIBLE=y | |||
986 | # | 1012 | # |
987 | # CONFIG_MFD_CORE is not set | 1013 | # CONFIG_MFD_CORE is not set |
988 | CONFIG_MFD_SM501=y | 1014 | CONFIG_MFD_SM501=y |
1015 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
989 | # CONFIG_HTC_PASIC3 is not set | 1016 | # CONFIG_HTC_PASIC3 is not set |
990 | # CONFIG_TWL4030_CORE is not set | 1017 | # CONFIG_TWL4030_CORE is not set |
991 | # CONFIG_MFD_TMIO is not set | 1018 | # CONFIG_MFD_TMIO is not set |
992 | # CONFIG_PMIC_DA903X is not set | 1019 | # CONFIG_PMIC_DA903X is not set |
1020 | # CONFIG_PMIC_ADP5520 is not set | ||
993 | # CONFIG_MFD_WM8400 is not set | 1021 | # CONFIG_MFD_WM8400 is not set |
994 | # CONFIG_MFD_WM831X is not set | 1022 | # CONFIG_MFD_WM831X is not set |
995 | # CONFIG_MFD_WM8350_I2C is not set | 1023 | # CONFIG_MFD_WM8350_I2C is not set |
996 | # CONFIG_MFD_PCF50633 is not set | 1024 | # CONFIG_MFD_PCF50633 is not set |
997 | # CONFIG_AB3100_CORE is not set | 1025 | # CONFIG_AB3100_CORE is not set |
1026 | # CONFIG_MFD_88PM8607 is not set | ||
998 | # CONFIG_REGULATOR is not set | 1027 | # CONFIG_REGULATOR is not set |
999 | # CONFIG_MEDIA_SUPPORT is not set | 1028 | # CONFIG_MEDIA_SUPPORT is not set |
1000 | 1029 | ||
@@ -1129,6 +1158,7 @@ CONFIG_SND_CMIPCI=y | |||
1129 | # CONFIG_SND_OXYGEN is not set | 1158 | # CONFIG_SND_OXYGEN is not set |
1130 | # CONFIG_SND_CS4281 is not set | 1159 | # CONFIG_SND_CS4281 is not set |
1131 | # CONFIG_SND_CS46XX is not set | 1160 | # CONFIG_SND_CS46XX is not set |
1161 | # CONFIG_SND_CS5535AUDIO is not set | ||
1132 | # CONFIG_SND_CTXFI is not set | 1162 | # CONFIG_SND_CTXFI is not set |
1133 | # CONFIG_SND_DARLA20 is not set | 1163 | # CONFIG_SND_DARLA20 is not set |
1134 | # CONFIG_SND_GINA20 is not set | 1164 | # CONFIG_SND_GINA20 is not set |
@@ -1363,6 +1393,7 @@ CONFIG_MMC_SDHCI_PLTFM=m | |||
1363 | # CONFIG_MMC_AT91 is not set | 1393 | # CONFIG_MMC_AT91 is not set |
1364 | # CONFIG_MMC_ATMELMCI is not set | 1394 | # CONFIG_MMC_ATMELMCI is not set |
1365 | # CONFIG_MMC_TIFM_SD is not set | 1395 | # CONFIG_MMC_TIFM_SD is not set |
1396 | # CONFIG_MMC_TMIO is not set | ||
1366 | # CONFIG_MMC_CB710 is not set | 1397 | # CONFIG_MMC_CB710 is not set |
1367 | # CONFIG_MMC_VIA_SDMMC is not set | 1398 | # CONFIG_MMC_VIA_SDMMC is not set |
1368 | # CONFIG_MEMSTICK is not set | 1399 | # CONFIG_MEMSTICK is not set |
@@ -1397,6 +1428,7 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1397 | # CONFIG_RTC_DRV_PCF8563 is not set | 1428 | # CONFIG_RTC_DRV_PCF8563 is not set |
1398 | # CONFIG_RTC_DRV_PCF8583 is not set | 1429 | # CONFIG_RTC_DRV_PCF8583 is not set |
1399 | # CONFIG_RTC_DRV_M41T80 is not set | 1430 | # CONFIG_RTC_DRV_M41T80 is not set |
1431 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1400 | # CONFIG_RTC_DRV_S35390A is not set | 1432 | # CONFIG_RTC_DRV_S35390A is not set |
1401 | # CONFIG_RTC_DRV_FM3130 is not set | 1433 | # CONFIG_RTC_DRV_FM3130 is not set |
1402 | # CONFIG_RTC_DRV_RX8581 is not set | 1434 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1417,7 +1449,9 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1417 | # CONFIG_RTC_DRV_M48T86 is not set | 1449 | # CONFIG_RTC_DRV_M48T86 is not set |
1418 | # CONFIG_RTC_DRV_M48T35 is not set | 1450 | # CONFIG_RTC_DRV_M48T35 is not set |
1419 | # CONFIG_RTC_DRV_M48T59 is not set | 1451 | # CONFIG_RTC_DRV_M48T59 is not set |
1452 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1420 | # CONFIG_RTC_DRV_BQ4802 is not set | 1453 | # CONFIG_RTC_DRV_BQ4802 is not set |
1454 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1421 | # CONFIG_RTC_DRV_V3020 is not set | 1455 | # CONFIG_RTC_DRV_V3020 is not set |
1422 | 1456 | ||
1423 | # | 1457 | # |
@@ -1622,13 +1656,14 @@ CONFIG_SCHED_DEBUG=y | |||
1622 | CONFIG_SCHEDSTATS=y | 1656 | CONFIG_SCHEDSTATS=y |
1623 | CONFIG_TRACE_IRQFLAGS=y | 1657 | CONFIG_TRACE_IRQFLAGS=y |
1624 | CONFIG_STACKTRACE=y | 1658 | CONFIG_STACKTRACE=y |
1625 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1659 | CONFIG_DEBUG_BUGVERBOSE=y |
1626 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1660 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1627 | CONFIG_FRAME_POINTER=y | 1661 | CONFIG_FRAME_POINTER=y |
1628 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1662 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1629 | CONFIG_LATENCYTOP=y | 1663 | CONFIG_LATENCYTOP=y |
1630 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1664 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1631 | CONFIG_NOP_TRACER=y | 1665 | CONFIG_NOP_TRACER=y |
1666 | CONFIG_HAVE_FTRACE_NMI_ENTER=y | ||
1632 | CONFIG_HAVE_FUNCTION_TRACER=y | 1667 | CONFIG_HAVE_FUNCTION_TRACER=y |
1633 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1668 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
1634 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 1669 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -1637,6 +1672,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | |||
1637 | CONFIG_HAVE_SYSCALL_TRACEPOINTS=y | 1672 | CONFIG_HAVE_SYSCALL_TRACEPOINTS=y |
1638 | CONFIG_TRACER_MAX_TRACE=y | 1673 | CONFIG_TRACER_MAX_TRACE=y |
1639 | CONFIG_RING_BUFFER=y | 1674 | CONFIG_RING_BUFFER=y |
1675 | CONFIG_FTRACE_NMI_ENTER=y | ||
1640 | CONFIG_EVENT_TRACING=y | 1676 | CONFIG_EVENT_TRACING=y |
1641 | CONFIG_CONTEXT_SWITCH_TRACER=y | 1677 | CONFIG_CONTEXT_SWITCH_TRACER=y |
1642 | CONFIG_RING_BUFFER_ALLOW_SWAP=y | 1678 | CONFIG_RING_BUFFER_ALLOW_SWAP=y |
@@ -1668,7 +1704,6 @@ CONFIG_FTRACE_MCOUNT_RECORD=y | |||
1668 | # CONFIG_SAMPLES is not set | 1704 | # CONFIG_SAMPLES is not set |
1669 | CONFIG_HAVE_ARCH_KGDB=y | 1705 | CONFIG_HAVE_ARCH_KGDB=y |
1670 | # CONFIG_SH_STANDARD_BIOS is not set | 1706 | # CONFIG_SH_STANDARD_BIOS is not set |
1671 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1672 | CONFIG_DWARF_UNWINDER=y | 1707 | CONFIG_DWARF_UNWINDER=y |
1673 | CONFIG_MCOUNT=y | 1708 | CONFIG_MCOUNT=y |
1674 | 1709 | ||
@@ -1678,7 +1713,11 @@ CONFIG_MCOUNT=y | |||
1678 | # CONFIG_KEYS is not set | 1713 | # CONFIG_KEYS is not set |
1679 | # CONFIG_SECURITY is not set | 1714 | # CONFIG_SECURITY is not set |
1680 | # CONFIG_SECURITYFS is not set | 1715 | # CONFIG_SECURITYFS is not set |
1681 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1716 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1717 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1718 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1719 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1720 | CONFIG_DEFAULT_SECURITY="" | ||
1682 | CONFIG_CRYPTO=y | 1721 | CONFIG_CRYPTO=y |
1683 | 1722 | ||
1684 | # | 1723 | # |
diff --git a/arch/sh/configs/sh7785lcr_defconfig b/arch/sh/configs/sh7785lcr_defconfig index 8c2c47ed399..f196e87c766 100644 --- a/arch/sh/configs/sh7785lcr_defconfig +++ b/arch/sh/configs/sh7785lcr_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:23:18 2009 | 4 | # Mon Jan 4 15:09:09 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_NUMA=y | 24 | CONFIG_SYS_SUPPORTS_NUMA=y |
24 | CONFIG_SYS_SUPPORTS_PCI=y | 25 | CONFIG_SYS_SUPPORTS_PCI=y |
25 | CONFIG_SYS_SUPPORTS_TMU=y | 26 | CONFIG_SYS_SUPPORTS_TMU=y |
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 32 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 33 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 34 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
35 | CONFIG_DMA_NONCOHERENT=y | ||
34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 36 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
35 | CONFIG_CONSTRUCTORS=y | 37 | CONFIG_CONSTRUCTORS=y |
36 | 38 | ||
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
63 | # | 65 | # |
64 | CONFIG_TREE_RCU=y | 66 | CONFIG_TREE_RCU=y |
65 | # CONFIG_TREE_PREEMPT_RCU is not set | 67 | # CONFIG_TREE_PREEMPT_RCU is not set |
68 | # CONFIG_TINY_RCU is not set | ||
66 | # CONFIG_RCU_TRACE is not set | 69 | # CONFIG_RCU_TRACE is not set |
67 | CONFIG_RCU_FANOUT=32 | 70 | CONFIG_RCU_FANOUT=32 |
68 | # CONFIG_RCU_FANOUT_EXACT is not set | 71 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -103,12 +106,14 @@ CONFIG_EVENTFD=y | |||
103 | CONFIG_SHMEM=y | 106 | CONFIG_SHMEM=y |
104 | CONFIG_AIO=y | 107 | CONFIG_AIO=y |
105 | CONFIG_HAVE_PERF_EVENTS=y | 108 | CONFIG_HAVE_PERF_EVENTS=y |
109 | CONFIG_PERF_USE_VMALLOC=y | ||
106 | 110 | ||
107 | # | 111 | # |
108 | # Kernel Performance Events And Counters | 112 | # Kernel Performance Events And Counters |
109 | # | 113 | # |
110 | CONFIG_PERF_EVENTS=y | 114 | CONFIG_PERF_EVENTS=y |
111 | # CONFIG_PERF_COUNTERS is not set | 115 | # CONFIG_PERF_COUNTERS is not set |
116 | # CONFIG_DEBUG_PERF_USE_VMALLOC is not set | ||
112 | CONFIG_VM_EVENT_COUNTERS=y | 117 | CONFIG_VM_EVENT_COUNTERS=y |
113 | CONFIG_PCI_QUIRKS=y | 118 | CONFIG_PCI_QUIRKS=y |
114 | CONFIG_COMPAT_BRK=y | 119 | CONFIG_COMPAT_BRK=y |
@@ -123,6 +128,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
123 | CONFIG_HAVE_KPROBES=y | 128 | CONFIG_HAVE_KPROBES=y |
124 | CONFIG_HAVE_KRETPROBES=y | 129 | CONFIG_HAVE_KRETPROBES=y |
125 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 130 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
131 | CONFIG_HAVE_DMA_ATTRS=y | ||
126 | CONFIG_HAVE_CLK=y | 132 | CONFIG_HAVE_CLK=y |
127 | CONFIG_HAVE_DMA_API_DEBUG=y | 133 | CONFIG_HAVE_DMA_API_DEBUG=y |
128 | 134 | ||
@@ -149,14 +155,41 @@ CONFIG_LBDAF=y | |||
149 | # IO Schedulers | 155 | # IO Schedulers |
150 | # | 156 | # |
151 | CONFIG_IOSCHED_NOOP=y | 157 | CONFIG_IOSCHED_NOOP=y |
152 | CONFIG_IOSCHED_AS=y | ||
153 | CONFIG_IOSCHED_DEADLINE=y | 158 | CONFIG_IOSCHED_DEADLINE=y |
154 | CONFIG_IOSCHED_CFQ=y | 159 | CONFIG_IOSCHED_CFQ=y |
155 | # CONFIG_DEFAULT_AS is not set | ||
156 | # CONFIG_DEFAULT_DEADLINE is not set | 160 | # CONFIG_DEFAULT_DEADLINE is not set |
157 | CONFIG_DEFAULT_CFQ=y | 161 | CONFIG_DEFAULT_CFQ=y |
158 | # CONFIG_DEFAULT_NOOP is not set | 162 | # CONFIG_DEFAULT_NOOP is not set |
159 | CONFIG_DEFAULT_IOSCHED="cfq" | 163 | CONFIG_DEFAULT_IOSCHED="cfq" |
164 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
165 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
166 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
167 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
168 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
169 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
170 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
171 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
172 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
173 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
174 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
175 | # CONFIG_INLINE_READ_LOCK is not set | ||
176 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
177 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
178 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
179 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
180 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
181 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
182 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
183 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
184 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
185 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
186 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
187 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
188 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
189 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
190 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
191 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
192 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
160 | # CONFIG_FREEZER is not set | 193 | # CONFIG_FREEZER is not set |
161 | 194 | ||
162 | # | 195 | # |
@@ -237,8 +270,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
237 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 270 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
238 | CONFIG_ZONE_DMA_FLAG=0 | 271 | CONFIG_ZONE_DMA_FLAG=0 |
239 | CONFIG_NR_QUICK=2 | 272 | CONFIG_NR_QUICK=2 |
240 | CONFIG_HAVE_MLOCK=y | ||
241 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
242 | # CONFIG_KSM is not set | 273 | # CONFIG_KSM is not set |
243 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 274 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
244 | 275 | ||
@@ -271,7 +302,6 @@ CONFIG_SH_SH7785LCR_29BIT_PHYSMAPS=y | |||
271 | # Timer and clock configuration | 302 | # Timer and clock configuration |
272 | # | 303 | # |
273 | CONFIG_SH_TIMER_TMU=y | 304 | CONFIG_SH_TIMER_TMU=y |
274 | CONFIG_SH_PCLK_FREQ=50000000 | ||
275 | CONFIG_SH_CLK_CPG=y | 305 | CONFIG_SH_CLK_CPG=y |
276 | CONFIG_TICK_ONESHOT=y | 306 | CONFIG_TICK_ONESHOT=y |
277 | # CONFIG_NO_HZ is not set | 307 | # CONFIG_NO_HZ is not set |
@@ -329,7 +359,6 @@ CONFIG_ENTRY_OFFSET=0x00001000 | |||
329 | # Bus options | 359 | # Bus options |
330 | # | 360 | # |
331 | CONFIG_PCI=y | 361 | CONFIG_PCI=y |
332 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
333 | # CONFIG_PCIEPORTBUS is not set | 362 | # CONFIG_PCIEPORTBUS is not set |
334 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 363 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
335 | CONFIG_PCI_LEGACY=y | 364 | CONFIG_PCI_LEGACY=y |
@@ -433,10 +462,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
433 | # CONFIG_AF_RXRPC is not set | 462 | # CONFIG_AF_RXRPC is not set |
434 | CONFIG_WIRELESS=y | 463 | CONFIG_WIRELESS=y |
435 | # CONFIG_CFG80211 is not set | 464 | # CONFIG_CFG80211 is not set |
436 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
437 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
438 | CONFIG_WIRELESS_EXT=y | ||
439 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
440 | # CONFIG_LIB80211 is not set | 465 | # CONFIG_LIB80211 is not set |
441 | 466 | ||
442 | # | 467 | # |
@@ -552,6 +577,10 @@ CONFIG_BLK_DEV=y | |||
552 | # CONFIG_BLK_DEV_UMEM is not set | 577 | # CONFIG_BLK_DEV_UMEM is not set |
553 | # CONFIG_BLK_DEV_COW_COMMON is not set | 578 | # CONFIG_BLK_DEV_COW_COMMON is not set |
554 | # CONFIG_BLK_DEV_LOOP is not set | 579 | # CONFIG_BLK_DEV_LOOP is not set |
580 | |||
581 | # | ||
582 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
583 | # | ||
555 | # CONFIG_BLK_DEV_NBD is not set | 584 | # CONFIG_BLK_DEV_NBD is not set |
556 | # CONFIG_BLK_DEV_SX8 is not set | 585 | # CONFIG_BLK_DEV_SX8 is not set |
557 | # CONFIG_BLK_DEV_UB is not set | 586 | # CONFIG_BLK_DEV_UB is not set |
@@ -652,15 +681,16 @@ CONFIG_SATA_SIL=y | |||
652 | # CONFIG_PATA_NS87415 is not set | 681 | # CONFIG_PATA_NS87415 is not set |
653 | # CONFIG_PATA_OPTI is not set | 682 | # CONFIG_PATA_OPTI is not set |
654 | # CONFIG_PATA_OPTIDMA is not set | 683 | # CONFIG_PATA_OPTIDMA is not set |
684 | # CONFIG_PATA_PDC2027X is not set | ||
655 | # CONFIG_PATA_PDC_OLD is not set | 685 | # CONFIG_PATA_PDC_OLD is not set |
656 | # CONFIG_PATA_RADISYS is not set | 686 | # CONFIG_PATA_RADISYS is not set |
657 | # CONFIG_PATA_RDC is not set | 687 | # CONFIG_PATA_RDC is not set |
658 | # CONFIG_PATA_RZ1000 is not set | 688 | # CONFIG_PATA_RZ1000 is not set |
659 | # CONFIG_PATA_SC1200 is not set | 689 | # CONFIG_PATA_SC1200 is not set |
660 | # CONFIG_PATA_SERVERWORKS is not set | 690 | # CONFIG_PATA_SERVERWORKS is not set |
661 | # CONFIG_PATA_PDC2027X is not set | ||
662 | # CONFIG_PATA_SIL680 is not set | 691 | # CONFIG_PATA_SIL680 is not set |
663 | # CONFIG_PATA_SIS is not set | 692 | # CONFIG_PATA_SIS is not set |
693 | # CONFIG_PATA_TOSHIBA is not set | ||
664 | # CONFIG_PATA_VIA is not set | 694 | # CONFIG_PATA_VIA is not set |
665 | # CONFIG_PATA_WINBOND is not set | 695 | # CONFIG_PATA_WINBOND is not set |
666 | # CONFIG_PATA_PLATFORM is not set | 696 | # CONFIG_PATA_PLATFORM is not set |
@@ -719,8 +749,10 @@ CONFIG_R8169=y | |||
719 | # CONFIG_NETDEV_10000 is not set | 749 | # CONFIG_NETDEV_10000 is not set |
720 | # CONFIG_TR is not set | 750 | # CONFIG_TR is not set |
721 | CONFIG_WLAN=y | 751 | CONFIG_WLAN=y |
722 | # CONFIG_WLAN_PRE80211 is not set | 752 | # CONFIG_ATMEL is not set |
723 | # CONFIG_WLAN_80211 is not set | 753 | # CONFIG_PRISM54 is not set |
754 | # CONFIG_USB_ZD1201 is not set | ||
755 | # CONFIG_HOSTAP is not set | ||
724 | 756 | ||
725 | # | 757 | # |
726 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 758 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -743,6 +775,7 @@ CONFIG_WLAN=y | |||
743 | # CONFIG_NETCONSOLE is not set | 775 | # CONFIG_NETCONSOLE is not set |
744 | # CONFIG_NETPOLL is not set | 776 | # CONFIG_NETPOLL is not set |
745 | # CONFIG_NET_POLL_CONTROLLER is not set | 777 | # CONFIG_NET_POLL_CONTROLLER is not set |
778 | # CONFIG_VMXNET3 is not set | ||
746 | # CONFIG_ISDN is not set | 779 | # CONFIG_ISDN is not set |
747 | # CONFIG_PHONE is not set | 780 | # CONFIG_PHONE is not set |
748 | 781 | ||
@@ -752,6 +785,7 @@ CONFIG_WLAN=y | |||
752 | CONFIG_INPUT=y | 785 | CONFIG_INPUT=y |
753 | CONFIG_INPUT_FF_MEMLESS=m | 786 | CONFIG_INPUT_FF_MEMLESS=m |
754 | # CONFIG_INPUT_POLLDEV is not set | 787 | # CONFIG_INPUT_POLLDEV is not set |
788 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
755 | 789 | ||
756 | # | 790 | # |
757 | # Userland interfaces | 791 | # Userland interfaces |
@@ -874,11 +908,6 @@ CONFIG_I2C_ALGOPCA=y | |||
874 | # CONFIG_I2C_TINY_USB is not set | 908 | # CONFIG_I2C_TINY_USB is not set |
875 | 909 | ||
876 | # | 910 | # |
877 | # Graphics adapter I2C/DDC channel drivers | ||
878 | # | ||
879 | # CONFIG_I2C_VOODOO3 is not set | ||
880 | |||
881 | # | ||
882 | # Other I2C/SMBus bus drivers | 911 | # Other I2C/SMBus bus drivers |
883 | # | 912 | # |
884 | CONFIG_I2C_PCA_PLATFORM=y | 913 | CONFIG_I2C_PCA_PLATFORM=y |
@@ -887,7 +916,6 @@ CONFIG_I2C_PCA_PLATFORM=y | |||
887 | # | 916 | # |
888 | # Miscellaneous I2C Chip support | 917 | # Miscellaneous I2C Chip support |
889 | # | 918 | # |
890 | # CONFIG_DS1682 is not set | ||
891 | # CONFIG_SENSORS_TSL2550 is not set | 919 | # CONFIG_SENSORS_TSL2550 is not set |
892 | # CONFIG_I2C_DEBUG_CORE is not set | 920 | # CONFIG_I2C_DEBUG_CORE is not set |
893 | # CONFIG_I2C_DEBUG_ALGO is not set | 921 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -916,15 +944,18 @@ CONFIG_SSB_POSSIBLE=y | |||
916 | # | 944 | # |
917 | # CONFIG_MFD_CORE is not set | 945 | # CONFIG_MFD_CORE is not set |
918 | CONFIG_MFD_SM501=y | 946 | CONFIG_MFD_SM501=y |
947 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
919 | # CONFIG_HTC_PASIC3 is not set | 948 | # CONFIG_HTC_PASIC3 is not set |
920 | # CONFIG_TWL4030_CORE is not set | 949 | # CONFIG_TWL4030_CORE is not set |
921 | # CONFIG_MFD_TMIO is not set | 950 | # CONFIG_MFD_TMIO is not set |
922 | # CONFIG_PMIC_DA903X is not set | 951 | # CONFIG_PMIC_DA903X is not set |
952 | # CONFIG_PMIC_ADP5520 is not set | ||
923 | # CONFIG_MFD_WM8400 is not set | 953 | # CONFIG_MFD_WM8400 is not set |
924 | # CONFIG_MFD_WM831X is not set | 954 | # CONFIG_MFD_WM831X is not set |
925 | # CONFIG_MFD_WM8350_I2C is not set | 955 | # CONFIG_MFD_WM8350_I2C is not set |
926 | # CONFIG_MFD_PCF50633 is not set | 956 | # CONFIG_MFD_PCF50633 is not set |
927 | # CONFIG_AB3100_CORE is not set | 957 | # CONFIG_AB3100_CORE is not set |
958 | # CONFIG_MFD_88PM8607 is not set | ||
928 | # CONFIG_REGULATOR is not set | 959 | # CONFIG_REGULATOR is not set |
929 | # CONFIG_MEDIA_SUPPORT is not set | 960 | # CONFIG_MEDIA_SUPPORT is not set |
930 | 961 | ||
@@ -1205,6 +1236,7 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1205 | # CONFIG_RTC_DRV_PCF8563 is not set | 1236 | # CONFIG_RTC_DRV_PCF8563 is not set |
1206 | # CONFIG_RTC_DRV_PCF8583 is not set | 1237 | # CONFIG_RTC_DRV_PCF8583 is not set |
1207 | # CONFIG_RTC_DRV_M41T80 is not set | 1238 | # CONFIG_RTC_DRV_M41T80 is not set |
1239 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1208 | # CONFIG_RTC_DRV_S35390A is not set | 1240 | # CONFIG_RTC_DRV_S35390A is not set |
1209 | # CONFIG_RTC_DRV_FM3130 is not set | 1241 | # CONFIG_RTC_DRV_FM3130 is not set |
1210 | # CONFIG_RTC_DRV_RX8581 is not set | 1242 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1225,7 +1257,9 @@ CONFIG_RTC_DRV_RS5C372=y | |||
1225 | # CONFIG_RTC_DRV_M48T86 is not set | 1257 | # CONFIG_RTC_DRV_M48T86 is not set |
1226 | # CONFIG_RTC_DRV_M48T35 is not set | 1258 | # CONFIG_RTC_DRV_M48T35 is not set |
1227 | # CONFIG_RTC_DRV_M48T59 is not set | 1259 | # CONFIG_RTC_DRV_M48T59 is not set |
1260 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1228 | # CONFIG_RTC_DRV_BQ4802 is not set | 1261 | # CONFIG_RTC_DRV_BQ4802 is not set |
1262 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1229 | # CONFIG_RTC_DRV_V3020 is not set | 1263 | # CONFIG_RTC_DRV_V3020 is not set |
1230 | 1264 | ||
1231 | # | 1265 | # |
@@ -1484,7 +1518,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1484 | CONFIG_HAVE_ARCH_KGDB=y | 1518 | CONFIG_HAVE_ARCH_KGDB=y |
1485 | # CONFIG_KGDB is not set | 1519 | # CONFIG_KGDB is not set |
1486 | # CONFIG_SH_STANDARD_BIOS is not set | 1520 | # CONFIG_SH_STANDARD_BIOS is not set |
1487 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1488 | # CONFIG_STACK_DEBUG is not set | 1521 | # CONFIG_STACK_DEBUG is not set |
1489 | # CONFIG_DEBUG_STACK_USAGE is not set | 1522 | # CONFIG_DEBUG_STACK_USAGE is not set |
1490 | # CONFIG_4KSTACKS is not set | 1523 | # CONFIG_4KSTACKS is not set |
@@ -1498,7 +1531,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1498 | # CONFIG_KEYS is not set | 1531 | # CONFIG_KEYS is not set |
1499 | # CONFIG_SECURITY is not set | 1532 | # CONFIG_SECURITY is not set |
1500 | # CONFIG_SECURITYFS is not set | 1533 | # CONFIG_SECURITYFS is not set |
1501 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1534 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1535 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1536 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1537 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1538 | CONFIG_DEFAULT_SECURITY="" | ||
1502 | CONFIG_CRYPTO=y | 1539 | CONFIG_CRYPTO=y |
1503 | 1540 | ||
1504 | # | 1541 | # |
diff --git a/arch/sh/configs/shmin_defconfig b/arch/sh/configs/shmin_defconfig index 92115e61275..45441c0ab30 100644 --- a/arch/sh/configs/shmin_defconfig +++ b/arch/sh/configs/shmin_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:27:17 2009 | 4 | # Mon Jan 4 15:10:09 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -28,6 +28,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
28 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 28 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
29 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 29 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
30 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 30 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
31 | CONFIG_DMA_NONCOHERENT=y | ||
31 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
32 | CONFIG_CONSTRUCTORS=y | 33 | CONFIG_CONSTRUCTORS=y |
33 | 34 | ||
@@ -57,6 +58,7 @@ CONFIG_KERNEL_GZIP=y | |||
57 | # | 58 | # |
58 | CONFIG_TREE_RCU=y | 59 | CONFIG_TREE_RCU=y |
59 | # CONFIG_TREE_PREEMPT_RCU is not set | 60 | # CONFIG_TREE_PREEMPT_RCU is not set |
61 | # CONFIG_TINY_RCU is not set | ||
60 | # CONFIG_RCU_TRACE is not set | 62 | # CONFIG_RCU_TRACE is not set |
61 | CONFIG_RCU_FANOUT=32 | 63 | CONFIG_RCU_FANOUT=32 |
62 | # CONFIG_RCU_FANOUT_EXACT is not set | 64 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -88,6 +90,7 @@ CONFIG_EVENTFD=y | |||
88 | # CONFIG_SHMEM is not set | 90 | # CONFIG_SHMEM is not set |
89 | CONFIG_AIO=y | 91 | CONFIG_AIO=y |
90 | CONFIG_HAVE_PERF_EVENTS=y | 92 | CONFIG_HAVE_PERF_EVENTS=y |
93 | CONFIG_PERF_USE_VMALLOC=y | ||
91 | 94 | ||
92 | # | 95 | # |
93 | # Kernel Performance Events And Counters | 96 | # Kernel Performance Events And Counters |
@@ -105,6 +108,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
105 | CONFIG_HAVE_KPROBES=y | 108 | CONFIG_HAVE_KPROBES=y |
106 | CONFIG_HAVE_KRETPROBES=y | 109 | CONFIG_HAVE_KRETPROBES=y |
107 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 110 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
111 | CONFIG_HAVE_DMA_ATTRS=y | ||
108 | CONFIG_HAVE_CLK=y | 112 | CONFIG_HAVE_CLK=y |
109 | CONFIG_HAVE_DMA_API_DEBUG=y | 113 | CONFIG_HAVE_DMA_API_DEBUG=y |
110 | 114 | ||
@@ -124,14 +128,41 @@ CONFIG_LBDAF=y | |||
124 | # IO Schedulers | 128 | # IO Schedulers |
125 | # | 129 | # |
126 | CONFIG_IOSCHED_NOOP=y | 130 | CONFIG_IOSCHED_NOOP=y |
127 | # CONFIG_IOSCHED_AS is not set | ||
128 | # CONFIG_IOSCHED_DEADLINE is not set | 131 | # CONFIG_IOSCHED_DEADLINE is not set |
129 | # CONFIG_IOSCHED_CFQ is not set | 132 | # CONFIG_IOSCHED_CFQ is not set |
130 | # CONFIG_DEFAULT_AS is not set | ||
131 | # CONFIG_DEFAULT_DEADLINE is not set | 133 | # CONFIG_DEFAULT_DEADLINE is not set |
132 | # CONFIG_DEFAULT_CFQ is not set | 134 | # CONFIG_DEFAULT_CFQ is not set |
133 | CONFIG_DEFAULT_NOOP=y | 135 | CONFIG_DEFAULT_NOOP=y |
134 | CONFIG_DEFAULT_IOSCHED="noop" | 136 | CONFIG_DEFAULT_IOSCHED="noop" |
137 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
138 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
139 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
140 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
141 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
142 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
143 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
144 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
145 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
146 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
147 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
148 | # CONFIG_INLINE_READ_LOCK is not set | ||
149 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
150 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
151 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
152 | CONFIG_INLINE_READ_UNLOCK=y | ||
153 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
154 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
155 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
156 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
157 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
158 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
159 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
160 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
161 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
162 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
163 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
164 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
165 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
135 | # CONFIG_FREEZER is not set | 166 | # CONFIG_FREEZER is not set |
136 | 167 | ||
137 | # | 168 | # |
@@ -207,8 +238,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
207 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 238 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
208 | CONFIG_ZONE_DMA_FLAG=0 | 239 | CONFIG_ZONE_DMA_FLAG=0 |
209 | CONFIG_NR_QUICK=2 | 240 | CONFIG_NR_QUICK=2 |
210 | CONFIG_HAVE_MLOCK=y | ||
211 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
212 | # CONFIG_KSM is not set | 241 | # CONFIG_KSM is not set |
213 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 242 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
214 | 243 | ||
@@ -387,9 +416,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
387 | # CONFIG_AF_RXRPC is not set | 416 | # CONFIG_AF_RXRPC is not set |
388 | CONFIG_WIRELESS=y | 417 | CONFIG_WIRELESS=y |
389 | # CONFIG_CFG80211 is not set | 418 | # CONFIG_CFG80211 is not set |
390 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
391 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
392 | # CONFIG_WIRELESS_EXT is not set | ||
393 | # CONFIG_LIB80211 is not set | 419 | # CONFIG_LIB80211 is not set |
394 | 420 | ||
395 | # | 421 | # |
@@ -495,6 +521,10 @@ CONFIG_BLK_DEV=y | |||
495 | # CONFIG_BLK_DEV_COW_COMMON is not set | 521 | # CONFIG_BLK_DEV_COW_COMMON is not set |
496 | CONFIG_BLK_DEV_LOOP=y | 522 | CONFIG_BLK_DEV_LOOP=y |
497 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 523 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
524 | |||
525 | # | ||
526 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
527 | # | ||
498 | # CONFIG_BLK_DEV_NBD is not set | 528 | # CONFIG_BLK_DEV_NBD is not set |
499 | # CONFIG_BLK_DEV_RAM is not set | 529 | # CONFIG_BLK_DEV_RAM is not set |
500 | # CONFIG_CDROM_PKTCDVD is not set | 530 | # CONFIG_CDROM_PKTCDVD is not set |
@@ -546,11 +576,11 @@ CONFIG_NET_ETHERNET=y | |||
546 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 576 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
547 | # CONFIG_B44 is not set | 577 | # CONFIG_B44 is not set |
548 | # CONFIG_KS8842 is not set | 578 | # CONFIG_KS8842 is not set |
579 | # CONFIG_KS8851_MLL is not set | ||
549 | CONFIG_NETDEV_1000=y | 580 | CONFIG_NETDEV_1000=y |
550 | CONFIG_NETDEV_10000=y | 581 | CONFIG_NETDEV_10000=y |
551 | CONFIG_WLAN=y | 582 | CONFIG_WLAN=y |
552 | # CONFIG_WLAN_PRE80211 is not set | 583 | # CONFIG_HOSTAP is not set |
553 | # CONFIG_WLAN_80211 is not set | ||
554 | 584 | ||
555 | # | 585 | # |
556 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 586 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -629,6 +659,7 @@ CONFIG_SSB_POSSIBLE=y | |||
629 | # | 659 | # |
630 | # CONFIG_MFD_CORE is not set | 660 | # CONFIG_MFD_CORE is not set |
631 | # CONFIG_MFD_SM501 is not set | 661 | # CONFIG_MFD_SM501 is not set |
662 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
632 | # CONFIG_HTC_PASIC3 is not set | 663 | # CONFIG_HTC_PASIC3 is not set |
633 | # CONFIG_MFD_TMIO is not set | 664 | # CONFIG_MFD_TMIO is not set |
634 | # CONFIG_REGULATOR is not set | 665 | # CONFIG_REGULATOR is not set |
@@ -688,6 +719,7 @@ CONFIG_RTC_LIB=y | |||
688 | # CONFIG_EXT2_FS is not set | 719 | # CONFIG_EXT2_FS is not set |
689 | # CONFIG_EXT3_FS is not set | 720 | # CONFIG_EXT3_FS is not set |
690 | # CONFIG_EXT4_FS is not set | 721 | # CONFIG_EXT4_FS is not set |
722 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
691 | # CONFIG_REISERFS_FS is not set | 723 | # CONFIG_REISERFS_FS is not set |
692 | # CONFIG_JFS_FS is not set | 724 | # CONFIG_JFS_FS is not set |
693 | # CONFIG_FS_POSIX_ACL is not set | 725 | # CONFIG_FS_POSIX_ACL is not set |
@@ -731,7 +763,6 @@ CONFIG_PROC_FS=y | |||
731 | CONFIG_PROC_SYSCTL=y | 763 | CONFIG_PROC_SYSCTL=y |
732 | CONFIG_PROC_PAGE_MONITOR=y | 764 | CONFIG_PROC_PAGE_MONITOR=y |
733 | # CONFIG_SYSFS is not set | 765 | # CONFIG_SYSFS is not set |
734 | # CONFIG_HUGETLBFS is not set | ||
735 | # CONFIG_HUGETLB_PAGE is not set | 766 | # CONFIG_HUGETLB_PAGE is not set |
736 | CONFIG_MISC_FILESYSTEMS=y | 767 | CONFIG_MISC_FILESYSTEMS=y |
737 | # CONFIG_ADFS_FS is not set | 768 | # CONFIG_ADFS_FS is not set |
@@ -794,6 +825,7 @@ CONFIG_FRAME_WARN=1024 | |||
794 | # CONFIG_DEBUG_MEMORY_INIT is not set | 825 | # CONFIG_DEBUG_MEMORY_INIT is not set |
795 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 826 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
796 | # CONFIG_LATENCYTOP is not set | 827 | # CONFIG_LATENCYTOP is not set |
828 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
797 | CONFIG_HAVE_FUNCTION_TRACER=y | 829 | CONFIG_HAVE_FUNCTION_TRACER=y |
798 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 830 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
799 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 831 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -806,8 +838,6 @@ CONFIG_TRACING_SUPPORT=y | |||
806 | # CONFIG_SAMPLES is not set | 838 | # CONFIG_SAMPLES is not set |
807 | CONFIG_HAVE_ARCH_KGDB=y | 839 | CONFIG_HAVE_ARCH_KGDB=y |
808 | CONFIG_SH_STANDARD_BIOS=y | 840 | CONFIG_SH_STANDARD_BIOS=y |
809 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
810 | CONFIG_EARLY_PRINTK=y | ||
811 | # CONFIG_DWARF_UNWINDER is not set | 841 | # CONFIG_DWARF_UNWINDER is not set |
812 | 842 | ||
813 | # | 843 | # |
@@ -815,7 +845,11 @@ CONFIG_EARLY_PRINTK=y | |||
815 | # | 845 | # |
816 | # CONFIG_KEYS is not set | 846 | # CONFIG_KEYS is not set |
817 | # CONFIG_SECURITYFS is not set | 847 | # CONFIG_SECURITYFS is not set |
818 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 848 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
849 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
850 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
851 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
852 | CONFIG_DEFAULT_SECURITY="" | ||
819 | CONFIG_CRYPTO=y | 853 | CONFIG_CRYPTO=y |
820 | 854 | ||
821 | # | 855 | # |
diff --git a/arch/sh/configs/shx3_defconfig b/arch/sh/configs/shx3_defconfig index e3858d757d5..ecf50cda4cb 100644 --- a/arch/sh/configs/shx3_defconfig +++ b/arch/sh/configs/shx3_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:29:26 2009 | 4 | # Mon Jan 4 15:10:45 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -22,6 +22,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y | |||
22 | CONFIG_GENERIC_LOCKBREAK=y | 22 | CONFIG_GENERIC_LOCKBREAK=y |
23 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 23 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
24 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 24 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
25 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
25 | CONFIG_SYS_SUPPORTS_SMP=y | 26 | CONFIG_SYS_SUPPORTS_SMP=y |
26 | CONFIG_SYS_SUPPORTS_NUMA=y | 27 | CONFIG_SYS_SUPPORTS_NUMA=y |
27 | CONFIG_SYS_SUPPORTS_TMU=y | 28 | CONFIG_SYS_SUPPORTS_TMU=y |
@@ -32,6 +33,8 @@ CONFIG_LOCKDEP_SUPPORT=y | |||
32 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 33 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
33 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 34 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
34 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 35 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
36 | CONFIG_DMA_COHERENT=y | ||
37 | # CONFIG_DMA_NONCOHERENT is not set | ||
35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 38 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
36 | CONFIG_CONSTRUCTORS=y | 39 | CONFIG_CONSTRUCTORS=y |
37 | 40 | ||
@@ -66,6 +69,7 @@ CONFIG_AUDIT_TREE=y | |||
66 | # | 69 | # |
67 | CONFIG_TREE_RCU=y | 70 | CONFIG_TREE_RCU=y |
68 | # CONFIG_TREE_PREEMPT_RCU is not set | 71 | # CONFIG_TREE_PREEMPT_RCU is not set |
72 | # CONFIG_TINY_RCU is not set | ||
69 | CONFIG_RCU_TRACE=y | 73 | CONFIG_RCU_TRACE=y |
70 | CONFIG_RCU_FANOUT=32 | 74 | CONFIG_RCU_FANOUT=32 |
71 | # CONFIG_RCU_FANOUT_EXACT is not set | 75 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -121,6 +125,7 @@ CONFIG_EVENTFD=y | |||
121 | CONFIG_SHMEM=y | 125 | CONFIG_SHMEM=y |
122 | CONFIG_AIO=y | 126 | CONFIG_AIO=y |
123 | CONFIG_HAVE_PERF_EVENTS=y | 127 | CONFIG_HAVE_PERF_EVENTS=y |
128 | CONFIG_PERF_USE_VMALLOC=y | ||
124 | 129 | ||
125 | # | 130 | # |
126 | # Kernel Performance Events And Counters | 131 | # Kernel Performance Events And Counters |
@@ -128,6 +133,7 @@ CONFIG_HAVE_PERF_EVENTS=y | |||
128 | CONFIG_PERF_EVENTS=y | 133 | CONFIG_PERF_EVENTS=y |
129 | CONFIG_EVENT_PROFILE=y | 134 | CONFIG_EVENT_PROFILE=y |
130 | # CONFIG_PERF_COUNTERS is not set | 135 | # CONFIG_PERF_COUNTERS is not set |
136 | # CONFIG_DEBUG_PERF_USE_VMALLOC is not set | ||
131 | CONFIG_VM_EVENT_COUNTERS=y | 137 | CONFIG_VM_EVENT_COUNTERS=y |
132 | CONFIG_COMPAT_BRK=y | 138 | CONFIG_COMPAT_BRK=y |
133 | # CONFIG_SLAB is not set | 139 | # CONFIG_SLAB is not set |
@@ -143,6 +149,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
143 | CONFIG_HAVE_KPROBES=y | 149 | CONFIG_HAVE_KPROBES=y |
144 | CONFIG_HAVE_KRETPROBES=y | 150 | CONFIG_HAVE_KRETPROBES=y |
145 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 151 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
152 | CONFIG_HAVE_DMA_ATTRS=y | ||
146 | CONFIG_USE_GENERIC_SMP_HELPERS=y | 153 | CONFIG_USE_GENERIC_SMP_HELPERS=y |
147 | CONFIG_HAVE_CLK=y | 154 | CONFIG_HAVE_CLK=y |
148 | CONFIG_HAVE_DMA_API_DEBUG=y | 155 | CONFIG_HAVE_DMA_API_DEBUG=y |
@@ -166,19 +173,48 @@ CONFIG_BLOCK=y | |||
166 | CONFIG_LBDAF=y | 173 | CONFIG_LBDAF=y |
167 | # CONFIG_BLK_DEV_BSG is not set | 174 | # CONFIG_BLK_DEV_BSG is not set |
168 | # CONFIG_BLK_DEV_INTEGRITY is not set | 175 | # CONFIG_BLK_DEV_INTEGRITY is not set |
176 | # CONFIG_BLK_CGROUP is not set | ||
169 | 177 | ||
170 | # | 178 | # |
171 | # IO Schedulers | 179 | # IO Schedulers |
172 | # | 180 | # |
173 | CONFIG_IOSCHED_NOOP=y | 181 | CONFIG_IOSCHED_NOOP=y |
174 | CONFIG_IOSCHED_AS=y | ||
175 | CONFIG_IOSCHED_DEADLINE=y | 182 | CONFIG_IOSCHED_DEADLINE=y |
176 | CONFIG_IOSCHED_CFQ=y | 183 | CONFIG_IOSCHED_CFQ=y |
177 | CONFIG_DEFAULT_AS=y | 184 | # CONFIG_CFQ_GROUP_IOSCHED is not set |
178 | # CONFIG_DEFAULT_DEADLINE is not set | 185 | # CONFIG_DEFAULT_DEADLINE is not set |
179 | # CONFIG_DEFAULT_CFQ is not set | 186 | CONFIG_DEFAULT_CFQ=y |
180 | # CONFIG_DEFAULT_NOOP is not set | 187 | # CONFIG_DEFAULT_NOOP is not set |
181 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 188 | CONFIG_DEFAULT_IOSCHED="cfq" |
189 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
190 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
192 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
193 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
194 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
196 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
197 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
198 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
199 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
200 | # CONFIG_INLINE_READ_LOCK is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
203 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
204 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
205 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
206 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
207 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
208 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
212 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
214 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
215 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
216 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
217 | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||
182 | CONFIG_FREEZER=y | 218 | CONFIG_FREEZER=y |
183 | 219 | ||
184 | # | 220 | # |
@@ -233,6 +269,7 @@ CONFIG_FORCE_MAX_ZONEORDER=7 | |||
233 | CONFIG_MEMORY_START=0x0c000000 | 269 | CONFIG_MEMORY_START=0x0c000000 |
234 | CONFIG_MEMORY_SIZE=0x04000000 | 270 | CONFIG_MEMORY_SIZE=0x04000000 |
235 | CONFIG_29BIT=y | 271 | CONFIG_29BIT=y |
272 | # CONFIG_PMB_ENABLE is not set | ||
236 | # CONFIG_X2TLB is not set | 273 | # CONFIG_X2TLB is not set |
237 | CONFIG_VSYSCALL=y | 274 | CONFIG_VSYSCALL=y |
238 | CONFIG_NUMA=y | 275 | CONFIG_NUMA=y |
@@ -271,10 +308,9 @@ CONFIG_MIGRATION=y | |||
271 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 308 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
272 | CONFIG_ZONE_DMA_FLAG=0 | 309 | CONFIG_ZONE_DMA_FLAG=0 |
273 | CONFIG_NR_QUICK=2 | 310 | CONFIG_NR_QUICK=2 |
274 | CONFIG_HAVE_MLOCK=y | ||
275 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
276 | # CONFIG_KSM is not set | 311 | # CONFIG_KSM is not set |
277 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 312 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
313 | CONFIG_SCHED_MC=y | ||
278 | 314 | ||
279 | # | 315 | # |
280 | # Cache configuration | 316 | # Cache configuration |
@@ -449,6 +485,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
449 | CONFIG_INET6_XFRM_MODE_BEET=m | 485 | CONFIG_INET6_XFRM_MODE_BEET=m |
450 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 486 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
451 | CONFIG_IPV6_SIT=m | 487 | CONFIG_IPV6_SIT=m |
488 | # CONFIG_IPV6_SIT_6RD is not set | ||
452 | CONFIG_IPV6_NDISC_NODETYPE=y | 489 | CONFIG_IPV6_NDISC_NODETYPE=y |
453 | # CONFIG_IPV6_TUNNEL is not set | 490 | # CONFIG_IPV6_TUNNEL is not set |
454 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 491 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -496,7 +533,13 @@ CONFIG_CAN_VCAN=m | |||
496 | # CONFIG_IRDA is not set | 533 | # CONFIG_IRDA is not set |
497 | # CONFIG_BT is not set | 534 | # CONFIG_BT is not set |
498 | # CONFIG_AF_RXRPC is not set | 535 | # CONFIG_AF_RXRPC is not set |
499 | # CONFIG_WIRELESS is not set | 536 | CONFIG_WIRELESS=y |
537 | # CONFIG_CFG80211 is not set | ||
538 | # CONFIG_LIB80211 is not set | ||
539 | |||
540 | # | ||
541 | # CFG80211 needs to be enabled for MAC80211 | ||
542 | # | ||
500 | # CONFIG_WIMAX is not set | 543 | # CONFIG_WIMAX is not set |
501 | # CONFIG_RFKILL is not set | 544 | # CONFIG_RFKILL is not set |
502 | # CONFIG_NET_9P is not set | 545 | # CONFIG_NET_9P is not set |
@@ -522,6 +565,10 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
522 | CONFIG_BLK_DEV=y | 565 | CONFIG_BLK_DEV=y |
523 | # CONFIG_BLK_DEV_COW_COMMON is not set | 566 | # CONFIG_BLK_DEV_COW_COMMON is not set |
524 | # CONFIG_BLK_DEV_LOOP is not set | 567 | # CONFIG_BLK_DEV_LOOP is not set |
568 | |||
569 | # | ||
570 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
571 | # | ||
525 | # CONFIG_BLK_DEV_NBD is not set | 572 | # CONFIG_BLK_DEV_NBD is not set |
526 | # CONFIG_BLK_DEV_UB is not set | 573 | # CONFIG_BLK_DEV_UB is not set |
527 | CONFIG_BLK_DEV_RAM=y | 574 | CONFIG_BLK_DEV_RAM=y |
@@ -532,9 +579,12 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
532 | # CONFIG_ATA_OVER_ETH is not set | 579 | # CONFIG_ATA_OVER_ETH is not set |
533 | # CONFIG_BLK_DEV_HD is not set | 580 | # CONFIG_BLK_DEV_HD is not set |
534 | CONFIG_MISC_DEVICES=y | 581 | CONFIG_MISC_DEVICES=y |
582 | # CONFIG_AD525X_DPOT is not set | ||
535 | # CONFIG_ICS932S401 is not set | 583 | # CONFIG_ICS932S401 is not set |
536 | # CONFIG_ENCLOSURE_SERVICES is not set | 584 | # CONFIG_ENCLOSURE_SERVICES is not set |
537 | # CONFIG_ISL29003 is not set | 585 | # CONFIG_ISL29003 is not set |
586 | # CONFIG_DS1682 is not set | ||
587 | # CONFIG_TI_DAC7512 is not set | ||
538 | # CONFIG_C2PORT is not set | 588 | # CONFIG_C2PORT is not set |
539 | 589 | ||
540 | # | 590 | # |
@@ -624,11 +674,12 @@ CONFIG_SMC91X=y | |||
624 | # CONFIG_B44 is not set | 674 | # CONFIG_B44 is not set |
625 | # CONFIG_KS8842 is not set | 675 | # CONFIG_KS8842 is not set |
626 | # CONFIG_KS8851 is not set | 676 | # CONFIG_KS8851 is not set |
677 | # CONFIG_KS8851_MLL is not set | ||
627 | # CONFIG_NETDEV_1000 is not set | 678 | # CONFIG_NETDEV_1000 is not set |
628 | # CONFIG_NETDEV_10000 is not set | 679 | # CONFIG_NETDEV_10000 is not set |
629 | CONFIG_WLAN=y | 680 | CONFIG_WLAN=y |
630 | # CONFIG_WLAN_PRE80211 is not set | 681 | # CONFIG_USB_ZD1201 is not set |
631 | # CONFIG_WLAN_80211 is not set | 682 | # CONFIG_HOSTAP is not set |
632 | 683 | ||
633 | # | 684 | # |
634 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 685 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -726,7 +777,6 @@ CONFIG_I2C_HELPER_AUTO=y | |||
726 | # | 777 | # |
727 | # Miscellaneous I2C Chip support | 778 | # Miscellaneous I2C Chip support |
728 | # | 779 | # |
729 | # CONFIG_DS1682 is not set | ||
730 | # CONFIG_SENSORS_TSL2550 is not set | 780 | # CONFIG_SENSORS_TSL2550 is not set |
731 | # CONFIG_I2C_DEBUG_CORE is not set | 781 | # CONFIG_I2C_DEBUG_CORE is not set |
732 | # CONFIG_I2C_DEBUG_ALGO is not set | 782 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -740,7 +790,10 @@ CONFIG_SPI_MASTER=y | |||
740 | # SPI Master Controller Drivers | 790 | # SPI Master Controller Drivers |
741 | # | 791 | # |
742 | # CONFIG_SPI_BITBANG is not set | 792 | # CONFIG_SPI_BITBANG is not set |
793 | # CONFIG_SPI_SH_MSIOF is not set | ||
743 | # CONFIG_SPI_SH_SCI is not set | 794 | # CONFIG_SPI_SH_SCI is not set |
795 | # CONFIG_SPI_XILINX is not set | ||
796 | # CONFIG_SPI_DESIGNWARE is not set | ||
744 | 797 | ||
745 | # | 798 | # |
746 | # SPI Protocol Masters | 799 | # SPI Protocol Masters |
@@ -781,15 +834,16 @@ CONFIG_SSB_POSSIBLE=y | |||
781 | # | 834 | # |
782 | # CONFIG_MFD_CORE is not set | 835 | # CONFIG_MFD_CORE is not set |
783 | # CONFIG_MFD_SM501 is not set | 836 | # CONFIG_MFD_SM501 is not set |
837 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
784 | # CONFIG_HTC_PASIC3 is not set | 838 | # CONFIG_HTC_PASIC3 is not set |
785 | # CONFIG_MFD_TMIO is not set | 839 | # CONFIG_MFD_TMIO is not set |
786 | # CONFIG_MFD_WM8400 is not set | 840 | # CONFIG_MFD_WM8400 is not set |
787 | # CONFIG_MFD_WM831X is not set | ||
788 | # CONFIG_MFD_WM8350_I2C is not set | 841 | # CONFIG_MFD_WM8350_I2C is not set |
789 | # CONFIG_MFD_PCF50633 is not set | 842 | # CONFIG_MFD_PCF50633 is not set |
790 | # CONFIG_MFD_MC13783 is not set | 843 | # CONFIG_MFD_MC13783 is not set |
791 | # CONFIG_AB3100_CORE is not set | 844 | # CONFIG_AB3100_CORE is not set |
792 | # CONFIG_EZX_PCAP is not set | 845 | # CONFIG_EZX_PCAP is not set |
846 | # CONFIG_AB4500_CORE is not set | ||
793 | # CONFIG_REGULATOR is not set | 847 | # CONFIG_REGULATOR is not set |
794 | # CONFIG_MEDIA_SUPPORT is not set | 848 | # CONFIG_MEDIA_SUPPORT is not set |
795 | 849 | ||
@@ -924,10 +978,12 @@ CONFIG_USB_GADGET_DUALSPEED=y | |||
924 | # CONFIG_USB_ETH is not set | 978 | # CONFIG_USB_ETH is not set |
925 | # CONFIG_USB_GADGETFS is not set | 979 | # CONFIG_USB_GADGETFS is not set |
926 | # CONFIG_USB_FILE_STORAGE is not set | 980 | # CONFIG_USB_FILE_STORAGE is not set |
981 | # CONFIG_USB_MASS_STORAGE is not set | ||
927 | # CONFIG_USB_G_SERIAL is not set | 982 | # CONFIG_USB_G_SERIAL is not set |
928 | # CONFIG_USB_MIDI_GADGET is not set | 983 | # CONFIG_USB_MIDI_GADGET is not set |
929 | # CONFIG_USB_G_PRINTER is not set | 984 | # CONFIG_USB_G_PRINTER is not set |
930 | # CONFIG_USB_CDC_COMPOSITE is not set | 985 | # CONFIG_USB_CDC_COMPOSITE is not set |
986 | # CONFIG_USB_G_MULTI is not set | ||
931 | 987 | ||
932 | # | 988 | # |
933 | # OTG and related infrastructure | 989 | # OTG and related infrastructure |
@@ -965,6 +1021,7 @@ CONFIG_RTC_INTF_DEV=y | |||
965 | # CONFIG_RTC_DRV_PCF8563 is not set | 1021 | # CONFIG_RTC_DRV_PCF8563 is not set |
966 | # CONFIG_RTC_DRV_PCF8583 is not set | 1022 | # CONFIG_RTC_DRV_PCF8583 is not set |
967 | # CONFIG_RTC_DRV_M41T80 is not set | 1023 | # CONFIG_RTC_DRV_M41T80 is not set |
1024 | # CONFIG_RTC_DRV_BQ32K is not set | ||
968 | # CONFIG_RTC_DRV_S35390A is not set | 1025 | # CONFIG_RTC_DRV_S35390A is not set |
969 | # CONFIG_RTC_DRV_FM3130 is not set | 1026 | # CONFIG_RTC_DRV_FM3130 is not set |
970 | # CONFIG_RTC_DRV_RX8581 is not set | 1027 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -993,7 +1050,9 @@ CONFIG_RTC_INTF_DEV=y | |||
993 | # CONFIG_RTC_DRV_M48T86 is not set | 1050 | # CONFIG_RTC_DRV_M48T86 is not set |
994 | # CONFIG_RTC_DRV_M48T35 is not set | 1051 | # CONFIG_RTC_DRV_M48T35 is not set |
995 | # CONFIG_RTC_DRV_M48T59 is not set | 1052 | # CONFIG_RTC_DRV_M48T59 is not set |
1053 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
996 | # CONFIG_RTC_DRV_BQ4802 is not set | 1054 | # CONFIG_RTC_DRV_BQ4802 is not set |
1055 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
997 | # CONFIG_RTC_DRV_V3020 is not set | 1056 | # CONFIG_RTC_DRV_V3020 is not set |
998 | 1057 | ||
999 | # | 1058 | # |
@@ -1244,8 +1303,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1244 | CONFIG_HAVE_ARCH_KGDB=y | 1303 | CONFIG_HAVE_ARCH_KGDB=y |
1245 | # CONFIG_KGDB is not set | 1304 | # CONFIG_KGDB is not set |
1246 | CONFIG_SH_STANDARD_BIOS=y | 1305 | CONFIG_SH_STANDARD_BIOS=y |
1247 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1248 | CONFIG_EARLY_PRINTK=y | ||
1249 | # CONFIG_STACK_DEBUG is not set | 1306 | # CONFIG_STACK_DEBUG is not set |
1250 | CONFIG_DEBUG_STACK_USAGE=y | 1307 | CONFIG_DEBUG_STACK_USAGE=y |
1251 | CONFIG_DUMP_CODE=y | 1308 | CONFIG_DUMP_CODE=y |
@@ -1258,7 +1315,11 @@ CONFIG_DUMP_CODE=y | |||
1258 | # CONFIG_KEYS is not set | 1315 | # CONFIG_KEYS is not set |
1259 | # CONFIG_SECURITY is not set | 1316 | # CONFIG_SECURITY is not set |
1260 | # CONFIG_SECURITYFS is not set | 1317 | # CONFIG_SECURITYFS is not set |
1261 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1318 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1319 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1320 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1321 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1322 | CONFIG_DEFAULT_SECURITY="" | ||
1262 | CONFIG_CRYPTO=y | 1323 | CONFIG_CRYPTO=y |
1263 | 1324 | ||
1264 | # | 1325 | # |
diff --git a/arch/sh/configs/snapgear_defconfig b/arch/sh/configs/snapgear_defconfig index cb919a0de4b..98352d75785 100644 --- a/arch/sh/configs/snapgear_defconfig +++ b/arch/sh/configs/snapgear_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:33:00 2009 | 4 | # Mon Jan 4 15:14:18 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_PCI=y | 24 | CONFIG_SYS_SUPPORTS_PCI=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -59,6 +61,7 @@ CONFIG_KERNEL_GZIP=y | |||
59 | # | 61 | # |
60 | CONFIG_TREE_RCU=y | 62 | CONFIG_TREE_RCU=y |
61 | # CONFIG_TREE_PREEMPT_RCU is not set | 63 | # CONFIG_TREE_PREEMPT_RCU is not set |
64 | # CONFIG_TINY_RCU is not set | ||
62 | # CONFIG_RCU_TRACE is not set | 65 | # CONFIG_RCU_TRACE is not set |
63 | CONFIG_RCU_FANOUT=32 | 66 | CONFIG_RCU_FANOUT=32 |
64 | # CONFIG_RCU_FANOUT_EXACT is not set | 67 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -97,6 +100,7 @@ CONFIG_EVENTFD=y | |||
97 | CONFIG_SHMEM=y | 100 | CONFIG_SHMEM=y |
98 | CONFIG_AIO=y | 101 | CONFIG_AIO=y |
99 | CONFIG_HAVE_PERF_EVENTS=y | 102 | CONFIG_HAVE_PERF_EVENTS=y |
103 | CONFIG_PERF_USE_VMALLOC=y | ||
100 | 104 | ||
101 | # | 105 | # |
102 | # Kernel Performance Events And Counters | 106 | # Kernel Performance Events And Counters |
@@ -115,6 +119,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
115 | CONFIG_HAVE_KPROBES=y | 119 | CONFIG_HAVE_KPROBES=y |
116 | CONFIG_HAVE_KRETPROBES=y | 120 | CONFIG_HAVE_KRETPROBES=y |
117 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 121 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
122 | CONFIG_HAVE_DMA_ATTRS=y | ||
118 | CONFIG_HAVE_CLK=y | 123 | CONFIG_HAVE_CLK=y |
119 | CONFIG_HAVE_DMA_API_DEBUG=y | 124 | CONFIG_HAVE_DMA_API_DEBUG=y |
120 | 125 | ||
@@ -136,14 +141,41 @@ CONFIG_LBDAF=y | |||
136 | # IO Schedulers | 141 | # IO Schedulers |
137 | # | 142 | # |
138 | CONFIG_IOSCHED_NOOP=y | 143 | CONFIG_IOSCHED_NOOP=y |
139 | CONFIG_IOSCHED_AS=y | ||
140 | CONFIG_IOSCHED_DEADLINE=y | 144 | CONFIG_IOSCHED_DEADLINE=y |
141 | CONFIG_IOSCHED_CFQ=y | 145 | CONFIG_IOSCHED_CFQ=y |
142 | CONFIG_DEFAULT_AS=y | ||
143 | # CONFIG_DEFAULT_DEADLINE is not set | 146 | # CONFIG_DEFAULT_DEADLINE is not set |
144 | # CONFIG_DEFAULT_CFQ is not set | 147 | CONFIG_DEFAULT_CFQ=y |
145 | # CONFIG_DEFAULT_NOOP is not set | 148 | # CONFIG_DEFAULT_NOOP is not set |
146 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 149 | CONFIG_DEFAULT_IOSCHED="cfq" |
150 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
151 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
152 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
153 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
154 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
155 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
156 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
157 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
158 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
159 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
160 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
161 | # CONFIG_INLINE_READ_LOCK is not set | ||
162 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
163 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
164 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
165 | CONFIG_INLINE_READ_UNLOCK=y | ||
166 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
167 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
168 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
169 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
170 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
171 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
172 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
173 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
174 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
175 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
176 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
177 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
178 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
147 | # CONFIG_FREEZER is not set | 179 | # CONFIG_FREEZER is not set |
148 | 180 | ||
149 | # | 181 | # |
@@ -219,8 +251,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
219 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 251 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
220 | CONFIG_ZONE_DMA_FLAG=0 | 252 | CONFIG_ZONE_DMA_FLAG=0 |
221 | CONFIG_NR_QUICK=2 | 253 | CONFIG_NR_QUICK=2 |
222 | CONFIG_HAVE_MLOCK=y | ||
223 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
224 | # CONFIG_KSM is not set | 254 | # CONFIG_KSM is not set |
225 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 255 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
226 | 256 | ||
@@ -272,9 +302,9 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | |||
272 | # | 302 | # |
273 | # DMA support | 303 | # DMA support |
274 | # | 304 | # |
275 | CONFIG_SH_DMA_API=y | ||
276 | CONFIG_SH_DMA=y | 305 | CONFIG_SH_DMA=y |
277 | CONFIG_SH_DMA_IRQ_MULTI=y | 306 | CONFIG_SH_DMA_IRQ_MULTI=y |
307 | CONFIG_SH_DMA_API=y | ||
278 | CONFIG_NR_ONCHIP_DMA_CHANNELS=8 | 308 | CONFIG_NR_ONCHIP_DMA_CHANNELS=8 |
279 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 309 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
280 | 310 | ||
@@ -313,7 +343,6 @@ CONFIG_GUSA=y | |||
313 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 343 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
314 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 344 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
315 | CONFIG_ENTRY_OFFSET=0x00001000 | 345 | CONFIG_ENTRY_OFFSET=0x00001000 |
316 | # CONFIG_UBC_WAKEUP is not set | ||
317 | # CONFIG_CMDLINE_OVERWRITE is not set | 346 | # CONFIG_CMDLINE_OVERWRITE is not set |
318 | # CONFIG_CMDLINE_EXTEND is not set | 347 | # CONFIG_CMDLINE_EXTEND is not set |
319 | 348 | ||
@@ -321,7 +350,6 @@ CONFIG_ENTRY_OFFSET=0x00001000 | |||
321 | # Bus options | 350 | # Bus options |
322 | # | 351 | # |
323 | CONFIG_PCI=y | 352 | CONFIG_PCI=y |
324 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
325 | # CONFIG_PCIEPORTBUS is not set | 353 | # CONFIG_PCIEPORTBUS is not set |
326 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 354 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
327 | CONFIG_PCI_LEGACY=y | 355 | CONFIG_PCI_LEGACY=y |
@@ -407,9 +435,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
407 | # CONFIG_AF_RXRPC is not set | 435 | # CONFIG_AF_RXRPC is not set |
408 | CONFIG_WIRELESS=y | 436 | CONFIG_WIRELESS=y |
409 | # CONFIG_CFG80211 is not set | 437 | # CONFIG_CFG80211 is not set |
410 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
411 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
412 | # CONFIG_WIRELESS_EXT is not set | ||
413 | # CONFIG_LIB80211 is not set | 438 | # CONFIG_LIB80211 is not set |
414 | 439 | ||
415 | # | 440 | # |
@@ -524,6 +549,10 @@ CONFIG_BLK_DEV=y | |||
524 | # CONFIG_BLK_DEV_UMEM is not set | 549 | # CONFIG_BLK_DEV_UMEM is not set |
525 | # CONFIG_BLK_DEV_COW_COMMON is not set | 550 | # CONFIG_BLK_DEV_COW_COMMON is not set |
526 | # CONFIG_BLK_DEV_LOOP is not set | 551 | # CONFIG_BLK_DEV_LOOP is not set |
552 | |||
553 | # | ||
554 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
555 | # | ||
527 | # CONFIG_BLK_DEV_NBD is not set | 556 | # CONFIG_BLK_DEV_NBD is not set |
528 | # CONFIG_BLK_DEV_SX8 is not set | 557 | # CONFIG_BLK_DEV_SX8 is not set |
529 | CONFIG_BLK_DEV_RAM=y | 558 | CONFIG_BLK_DEV_RAM=y |
@@ -616,6 +645,7 @@ CONFIG_8139TOO_PIO=y | |||
616 | # CONFIG_SUNDANCE is not set | 645 | # CONFIG_SUNDANCE is not set |
617 | # CONFIG_TLAN is not set | 646 | # CONFIG_TLAN is not set |
618 | # CONFIG_KS8842 is not set | 647 | # CONFIG_KS8842 is not set |
648 | # CONFIG_KS8851_MLL is not set | ||
619 | # CONFIG_VIA_RHINE is not set | 649 | # CONFIG_VIA_RHINE is not set |
620 | # CONFIG_SC92031 is not set | 650 | # CONFIG_SC92031 is not set |
621 | # CONFIG_ATL2 is not set | 651 | # CONFIG_ATL2 is not set |
@@ -623,8 +653,9 @@ CONFIG_8139TOO_PIO=y | |||
623 | # CONFIG_NETDEV_10000 is not set | 653 | # CONFIG_NETDEV_10000 is not set |
624 | # CONFIG_TR is not set | 654 | # CONFIG_TR is not set |
625 | CONFIG_WLAN=y | 655 | CONFIG_WLAN=y |
626 | # CONFIG_WLAN_PRE80211 is not set | 656 | # CONFIG_ATMEL is not set |
627 | # CONFIG_WLAN_80211 is not set | 657 | # CONFIG_PRISM54 is not set |
658 | # CONFIG_HOSTAP is not set | ||
628 | 659 | ||
629 | # | 660 | # |
630 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 661 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -637,6 +668,7 @@ CONFIG_WLAN=y | |||
637 | # CONFIG_NETCONSOLE is not set | 668 | # CONFIG_NETCONSOLE is not set |
638 | # CONFIG_NETPOLL is not set | 669 | # CONFIG_NETPOLL is not set |
639 | # CONFIG_NET_POLL_CONTROLLER is not set | 670 | # CONFIG_NET_POLL_CONTROLLER is not set |
671 | # CONFIG_VMXNET3 is not set | ||
640 | # CONFIG_ISDN is not set | 672 | # CONFIG_ISDN is not set |
641 | # CONFIG_PHONE is not set | 673 | # CONFIG_PHONE is not set |
642 | 674 | ||
@@ -646,6 +678,7 @@ CONFIG_WLAN=y | |||
646 | CONFIG_INPUT=y | 678 | CONFIG_INPUT=y |
647 | # CONFIG_INPUT_FF_MEMLESS is not set | 679 | # CONFIG_INPUT_FF_MEMLESS is not set |
648 | # CONFIG_INPUT_POLLDEV is not set | 680 | # CONFIG_INPUT_POLLDEV is not set |
681 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
649 | 682 | ||
650 | # | 683 | # |
651 | # Userland interfaces | 684 | # Userland interfaces |
@@ -728,6 +761,7 @@ CONFIG_SSB_POSSIBLE=y | |||
728 | # | 761 | # |
729 | # CONFIG_MFD_CORE is not set | 762 | # CONFIG_MFD_CORE is not set |
730 | # CONFIG_MFD_SM501 is not set | 763 | # CONFIG_MFD_SM501 is not set |
764 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
731 | # CONFIG_HTC_PASIC3 is not set | 765 | # CONFIG_HTC_PASIC3 is not set |
732 | # CONFIG_MFD_TMIO is not set | 766 | # CONFIG_MFD_TMIO is not set |
733 | # CONFIG_REGULATOR is not set | 767 | # CONFIG_REGULATOR is not set |
@@ -787,7 +821,9 @@ CONFIG_RTC_DRV_DS1302=y | |||
787 | # CONFIG_RTC_DRV_M48T86 is not set | 821 | # CONFIG_RTC_DRV_M48T86 is not set |
788 | # CONFIG_RTC_DRV_M48T35 is not set | 822 | # CONFIG_RTC_DRV_M48T35 is not set |
789 | # CONFIG_RTC_DRV_M48T59 is not set | 823 | # CONFIG_RTC_DRV_M48T59 is not set |
824 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
790 | # CONFIG_RTC_DRV_BQ4802 is not set | 825 | # CONFIG_RTC_DRV_BQ4802 is not set |
826 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
791 | # CONFIG_RTC_DRV_V3020 is not set | 827 | # CONFIG_RTC_DRV_V3020 is not set |
792 | 828 | ||
793 | # | 829 | # |
@@ -812,6 +848,7 @@ CONFIG_EXT2_FS=y | |||
812 | # CONFIG_EXT2_FS_XIP is not set | 848 | # CONFIG_EXT2_FS_XIP is not set |
813 | # CONFIG_EXT3_FS is not set | 849 | # CONFIG_EXT3_FS is not set |
814 | # CONFIG_EXT4_FS is not set | 850 | # CONFIG_EXT4_FS is not set |
851 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
815 | # CONFIG_REISERFS_FS is not set | 852 | # CONFIG_REISERFS_FS is not set |
816 | # CONFIG_JFS_FS is not set | 853 | # CONFIG_JFS_FS is not set |
817 | # CONFIG_FS_POSIX_ACL is not set | 854 | # CONFIG_FS_POSIX_ACL is not set |
@@ -915,10 +952,11 @@ CONFIG_FRAME_WARN=1024 | |||
915 | # CONFIG_DEBUG_FS is not set | 952 | # CONFIG_DEBUG_FS is not set |
916 | # CONFIG_HEADERS_CHECK is not set | 953 | # CONFIG_HEADERS_CHECK is not set |
917 | # CONFIG_DEBUG_KERNEL is not set | 954 | # CONFIG_DEBUG_KERNEL is not set |
918 | # CONFIG_DEBUG_BUGVERBOSE is not set | 955 | CONFIG_DEBUG_BUGVERBOSE=y |
919 | # CONFIG_DEBUG_MEMORY_INIT is not set | 956 | # CONFIG_DEBUG_MEMORY_INIT is not set |
920 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 957 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
921 | # CONFIG_LATENCYTOP is not set | 958 | # CONFIG_LATENCYTOP is not set |
959 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
922 | CONFIG_HAVE_FUNCTION_TRACER=y | 960 | CONFIG_HAVE_FUNCTION_TRACER=y |
923 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 961 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
924 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 962 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -931,7 +969,6 @@ CONFIG_TRACING_SUPPORT=y | |||
931 | # CONFIG_SAMPLES is not set | 969 | # CONFIG_SAMPLES is not set |
932 | CONFIG_HAVE_ARCH_KGDB=y | 970 | CONFIG_HAVE_ARCH_KGDB=y |
933 | # CONFIG_SH_STANDARD_BIOS is not set | 971 | # CONFIG_SH_STANDARD_BIOS is not set |
934 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
935 | # CONFIG_DWARF_UNWINDER is not set | 972 | # CONFIG_DWARF_UNWINDER is not set |
936 | 973 | ||
937 | # | 974 | # |
@@ -940,7 +977,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
940 | # CONFIG_KEYS is not set | 977 | # CONFIG_KEYS is not set |
941 | # CONFIG_SECURITY is not set | 978 | # CONFIG_SECURITY is not set |
942 | # CONFIG_SECURITYFS is not set | 979 | # CONFIG_SECURITYFS is not set |
943 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 980 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
981 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
982 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
983 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
984 | CONFIG_DEFAULT_SECURITY="" | ||
944 | # CONFIG_CRYPTO is not set | 985 | # CONFIG_CRYPTO is not set |
945 | # CONFIG_BINARY_PRINTF is not set | 986 | # CONFIG_BINARY_PRINTF is not set |
946 | 987 | ||
diff --git a/arch/sh/configs/systemh_defconfig b/arch/sh/configs/systemh_defconfig index b9fe960309f..72982e360e3 100644 --- a/arch/sh/configs/systemh_defconfig +++ b/arch/sh/configs/systemh_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:35:03 2009 | 4 | # Mon Jan 4 15:14:50 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_TMU=y | 24 | CONFIG_SYS_SUPPORTS_TMU=y |
24 | CONFIG_STACKTRACE_SUPPORT=y | 25 | CONFIG_STACKTRACE_SUPPORT=y |
25 | CONFIG_LOCKDEP_SUPPORT=y | 26 | CONFIG_LOCKDEP_SUPPORT=y |
@@ -29,6 +30,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
29 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
30 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
31 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
33 | CONFIG_DMA_NONCOHERENT=y | ||
32 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
33 | CONFIG_CONSTRUCTORS=y | 35 | CONFIG_CONSTRUCTORS=y |
34 | 36 | ||
@@ -56,6 +58,7 @@ CONFIG_SWAP=y | |||
56 | # | 58 | # |
57 | CONFIG_TREE_RCU=y | 59 | CONFIG_TREE_RCU=y |
58 | # CONFIG_TREE_PREEMPT_RCU is not set | 60 | # CONFIG_TREE_PREEMPT_RCU is not set |
61 | # CONFIG_TINY_RCU is not set | ||
59 | # CONFIG_RCU_TRACE is not set | 62 | # CONFIG_RCU_TRACE is not set |
60 | CONFIG_RCU_FANOUT=32 | 63 | CONFIG_RCU_FANOUT=32 |
61 | # CONFIG_RCU_FANOUT_EXACT is not set | 64 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -94,6 +97,7 @@ CONFIG_EVENTFD=y | |||
94 | CONFIG_SHMEM=y | 97 | CONFIG_SHMEM=y |
95 | CONFIG_AIO=y | 98 | CONFIG_AIO=y |
96 | CONFIG_HAVE_PERF_EVENTS=y | 99 | CONFIG_HAVE_PERF_EVENTS=y |
100 | CONFIG_PERF_USE_VMALLOC=y | ||
97 | 101 | ||
98 | # | 102 | # |
99 | # Kernel Performance Events And Counters | 103 | # Kernel Performance Events And Counters |
@@ -112,6 +116,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
112 | CONFIG_HAVE_KPROBES=y | 116 | CONFIG_HAVE_KPROBES=y |
113 | CONFIG_HAVE_KRETPROBES=y | 117 | CONFIG_HAVE_KRETPROBES=y |
114 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 118 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
119 | CONFIG_HAVE_DMA_ATTRS=y | ||
115 | CONFIG_HAVE_CLK=y | 120 | CONFIG_HAVE_CLK=y |
116 | CONFIG_HAVE_DMA_API_DEBUG=y | 121 | CONFIG_HAVE_DMA_API_DEBUG=y |
117 | 122 | ||
@@ -138,14 +143,41 @@ CONFIG_LBDAF=y | |||
138 | # IO Schedulers | 143 | # IO Schedulers |
139 | # | 144 | # |
140 | CONFIG_IOSCHED_NOOP=y | 145 | CONFIG_IOSCHED_NOOP=y |
141 | CONFIG_IOSCHED_AS=y | ||
142 | CONFIG_IOSCHED_DEADLINE=y | 146 | CONFIG_IOSCHED_DEADLINE=y |
143 | CONFIG_IOSCHED_CFQ=y | 147 | CONFIG_IOSCHED_CFQ=y |
144 | CONFIG_DEFAULT_AS=y | ||
145 | # CONFIG_DEFAULT_DEADLINE is not set | 148 | # CONFIG_DEFAULT_DEADLINE is not set |
146 | # CONFIG_DEFAULT_CFQ is not set | 149 | CONFIG_DEFAULT_CFQ=y |
147 | # CONFIG_DEFAULT_NOOP is not set | 150 | # CONFIG_DEFAULT_NOOP is not set |
148 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 151 | CONFIG_DEFAULT_IOSCHED="cfq" |
152 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
153 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
154 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
155 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
156 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
157 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
158 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
159 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
160 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
161 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
162 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
163 | # CONFIG_INLINE_READ_LOCK is not set | ||
164 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
165 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
166 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
167 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
168 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
169 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
170 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
171 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
172 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
173 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
174 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
175 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
176 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
177 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
178 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
179 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
180 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
149 | # CONFIG_FREEZER is not set | 181 | # CONFIG_FREEZER is not set |
150 | 182 | ||
151 | # | 183 | # |
@@ -221,8 +253,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
221 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 253 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
222 | CONFIG_ZONE_DMA_FLAG=0 | 254 | CONFIG_ZONE_DMA_FLAG=0 |
223 | CONFIG_NR_QUICK=2 | 255 | CONFIG_NR_QUICK=2 |
224 | CONFIG_HAVE_MLOCK=y | ||
225 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
226 | # CONFIG_KSM is not set | 256 | # CONFIG_KSM is not set |
227 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 257 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
228 | 258 | ||
@@ -310,7 +340,6 @@ CONFIG_GUSA=y | |||
310 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 340 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
311 | CONFIG_BOOT_LINK_OFFSET=0x00800000 | 341 | CONFIG_BOOT_LINK_OFFSET=0x00800000 |
312 | CONFIG_ENTRY_OFFSET=0x00001000 | 342 | CONFIG_ENTRY_OFFSET=0x00001000 |
313 | # CONFIG_UBC_WAKEUP is not set | ||
314 | # CONFIG_CMDLINE_OVERWRITE is not set | 343 | # CONFIG_CMDLINE_OVERWRITE is not set |
315 | # CONFIG_CMDLINE_EXTEND is not set | 344 | # CONFIG_CMDLINE_EXTEND is not set |
316 | 345 | ||
@@ -349,6 +378,10 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
349 | CONFIG_BLK_DEV=y | 378 | CONFIG_BLK_DEV=y |
350 | # CONFIG_BLK_DEV_COW_COMMON is not set | 379 | # CONFIG_BLK_DEV_COW_COMMON is not set |
351 | # CONFIG_BLK_DEV_LOOP is not set | 380 | # CONFIG_BLK_DEV_LOOP is not set |
381 | |||
382 | # | ||
383 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
384 | # | ||
352 | CONFIG_BLK_DEV_RAM=y | 385 | CONFIG_BLK_DEV_RAM=y |
353 | CONFIG_BLK_DEV_RAM_COUNT=16 | 386 | CONFIG_BLK_DEV_RAM_COUNT=16 |
354 | CONFIG_BLK_DEV_RAM_SIZE=1024 | 387 | CONFIG_BLK_DEV_RAM_SIZE=1024 |
@@ -390,6 +423,7 @@ CONFIG_SERIO=y | |||
390 | # CONFIG_SERIO_SERPORT is not set | 423 | # CONFIG_SERIO_SERPORT is not set |
391 | # CONFIG_SERIO_LIBPS2 is not set | 424 | # CONFIG_SERIO_LIBPS2 is not set |
392 | # CONFIG_SERIO_RAW is not set | 425 | # CONFIG_SERIO_RAW is not set |
426 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
393 | # CONFIG_GAMEPORT is not set | 427 | # CONFIG_GAMEPORT is not set |
394 | 428 | ||
395 | # | 429 | # |
@@ -458,6 +492,7 @@ CONFIG_SSB_POSSIBLE=y | |||
458 | # | 492 | # |
459 | # CONFIG_MFD_CORE is not set | 493 | # CONFIG_MFD_CORE is not set |
460 | # CONFIG_MFD_SM501 is not set | 494 | # CONFIG_MFD_SM501 is not set |
495 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
461 | # CONFIG_HTC_PASIC3 is not set | 496 | # CONFIG_HTC_PASIC3 is not set |
462 | # CONFIG_MFD_TMIO is not set | 497 | # CONFIG_MFD_TMIO is not set |
463 | # CONFIG_REGULATOR is not set | 498 | # CONFIG_REGULATOR is not set |
@@ -517,6 +552,7 @@ CONFIG_RTC_LIB=y | |||
517 | # CONFIG_EXT2_FS is not set | 552 | # CONFIG_EXT2_FS is not set |
518 | # CONFIG_EXT3_FS is not set | 553 | # CONFIG_EXT3_FS is not set |
519 | # CONFIG_EXT4_FS is not set | 554 | # CONFIG_EXT4_FS is not set |
555 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
520 | # CONFIG_REISERFS_FS is not set | 556 | # CONFIG_REISERFS_FS is not set |
521 | # CONFIG_JFS_FS is not set | 557 | # CONFIG_JFS_FS is not set |
522 | # CONFIG_FS_POSIX_ACL is not set | 558 | # CONFIG_FS_POSIX_ACL is not set |
@@ -609,10 +645,11 @@ CONFIG_FRAME_WARN=1024 | |||
609 | # CONFIG_DEBUG_FS is not set | 645 | # CONFIG_DEBUG_FS is not set |
610 | # CONFIG_HEADERS_CHECK is not set | 646 | # CONFIG_HEADERS_CHECK is not set |
611 | # CONFIG_DEBUG_KERNEL is not set | 647 | # CONFIG_DEBUG_KERNEL is not set |
612 | # CONFIG_DEBUG_BUGVERBOSE is not set | 648 | CONFIG_DEBUG_BUGVERBOSE=y |
613 | # CONFIG_DEBUG_MEMORY_INIT is not set | 649 | # CONFIG_DEBUG_MEMORY_INIT is not set |
614 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 650 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
615 | # CONFIG_LATENCYTOP is not set | 651 | # CONFIG_LATENCYTOP is not set |
652 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
616 | CONFIG_HAVE_FUNCTION_TRACER=y | 653 | CONFIG_HAVE_FUNCTION_TRACER=y |
617 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 654 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
618 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | 655 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y |
@@ -625,7 +662,6 @@ CONFIG_TRACING_SUPPORT=y | |||
625 | # CONFIG_SAMPLES is not set | 662 | # CONFIG_SAMPLES is not set |
626 | CONFIG_HAVE_ARCH_KGDB=y | 663 | CONFIG_HAVE_ARCH_KGDB=y |
627 | # CONFIG_SH_STANDARD_BIOS is not set | 664 | # CONFIG_SH_STANDARD_BIOS is not set |
628 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
629 | # CONFIG_DWARF_UNWINDER is not set | 665 | # CONFIG_DWARF_UNWINDER is not set |
630 | 666 | ||
631 | # | 667 | # |
@@ -634,7 +670,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
634 | # CONFIG_KEYS is not set | 670 | # CONFIG_KEYS is not set |
635 | # CONFIG_SECURITY is not set | 671 | # CONFIG_SECURITY is not set |
636 | # CONFIG_SECURITYFS is not set | 672 | # CONFIG_SECURITYFS is not set |
637 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 673 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
674 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
675 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
676 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
677 | CONFIG_DEFAULT_SECURITY="" | ||
638 | # CONFIG_CRYPTO is not set | 678 | # CONFIG_CRYPTO is not set |
639 | # CONFIG_BINARY_PRINTF is not set | 679 | # CONFIG_BINARY_PRINTF is not set |
640 | 680 | ||
diff --git a/arch/sh/configs/titan_defconfig b/arch/sh/configs/titan_defconfig index 2ca79ed9fb6..78c257053c7 100644 --- a/arch/sh/configs/titan_defconfig +++ b/arch/sh/configs/titan_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:36:36 2009 | 4 | # Mon Jan 4 15:17:20 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_PCI=y | 24 | CONFIG_SYS_SUPPORTS_PCI=y |
24 | CONFIG_SYS_SUPPORTS_TMU=y | 25 | CONFIG_SYS_SUPPORTS_TMU=y |
25 | CONFIG_STACKTRACE_SUPPORT=y | 26 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -30,6 +31,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
30 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
31 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
32 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
34 | CONFIG_DMA_NONCOHERENT=y | ||
33 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
34 | CONFIG_CONSTRUCTORS=y | 36 | CONFIG_CONSTRUCTORS=y |
35 | 37 | ||
@@ -61,6 +63,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
61 | # | 63 | # |
62 | CONFIG_TREE_RCU=y | 64 | CONFIG_TREE_RCU=y |
63 | # CONFIG_TREE_PREEMPT_RCU is not set | 65 | # CONFIG_TREE_PREEMPT_RCU is not set |
66 | # CONFIG_TINY_RCU is not set | ||
64 | # CONFIG_RCU_TRACE is not set | 67 | # CONFIG_RCU_TRACE is not set |
65 | CONFIG_RCU_FANOUT=32 | 68 | CONFIG_RCU_FANOUT=32 |
66 | # CONFIG_RCU_FANOUT_EXACT is not set | 69 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -101,6 +104,7 @@ CONFIG_EVENTFD=y | |||
101 | CONFIG_SHMEM=y | 104 | CONFIG_SHMEM=y |
102 | CONFIG_AIO=y | 105 | CONFIG_AIO=y |
103 | CONFIG_HAVE_PERF_EVENTS=y | 106 | CONFIG_HAVE_PERF_EVENTS=y |
107 | CONFIG_PERF_USE_VMALLOC=y | ||
104 | 108 | ||
105 | # | 109 | # |
106 | # Kernel Performance Events And Counters | 110 | # Kernel Performance Events And Counters |
@@ -120,13 +124,14 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
120 | CONFIG_HAVE_KPROBES=y | 124 | CONFIG_HAVE_KPROBES=y |
121 | CONFIG_HAVE_KRETPROBES=y | 125 | CONFIG_HAVE_KRETPROBES=y |
122 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 126 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
127 | CONFIG_HAVE_DMA_ATTRS=y | ||
123 | CONFIG_HAVE_CLK=y | 128 | CONFIG_HAVE_CLK=y |
124 | CONFIG_HAVE_DMA_API_DEBUG=y | 129 | CONFIG_HAVE_DMA_API_DEBUG=y |
125 | 130 | ||
126 | # | 131 | # |
127 | # GCOV-based kernel profiling | 132 | # GCOV-based kernel profiling |
128 | # | 133 | # |
129 | # CONFIG_SLOW_WORK is not set | 134 | CONFIG_SLOW_WORK=y |
130 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | 135 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
131 | CONFIG_SLABINFO=y | 136 | CONFIG_SLABINFO=y |
132 | CONFIG_RT_MUTEXES=y | 137 | CONFIG_RT_MUTEXES=y |
@@ -146,14 +151,41 @@ CONFIG_LBDAF=y | |||
146 | # IO Schedulers | 151 | # IO Schedulers |
147 | # | 152 | # |
148 | CONFIG_IOSCHED_NOOP=y | 153 | CONFIG_IOSCHED_NOOP=y |
149 | CONFIG_IOSCHED_AS=y | ||
150 | CONFIG_IOSCHED_DEADLINE=y | 154 | CONFIG_IOSCHED_DEADLINE=y |
151 | CONFIG_IOSCHED_CFQ=y | 155 | CONFIG_IOSCHED_CFQ=y |
152 | CONFIG_DEFAULT_AS=y | ||
153 | # CONFIG_DEFAULT_DEADLINE is not set | 156 | # CONFIG_DEFAULT_DEADLINE is not set |
154 | # CONFIG_DEFAULT_CFQ is not set | 157 | CONFIG_DEFAULT_CFQ=y |
155 | # CONFIG_DEFAULT_NOOP is not set | 158 | # CONFIG_DEFAULT_NOOP is not set |
156 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 159 | CONFIG_DEFAULT_IOSCHED="cfq" |
160 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
161 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
162 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
163 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
164 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
165 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
166 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
167 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
168 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
169 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
170 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
171 | # CONFIG_INLINE_READ_LOCK is not set | ||
172 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
173 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
174 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
175 | CONFIG_INLINE_READ_UNLOCK=y | ||
176 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
177 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
178 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
179 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
180 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
181 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
182 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
183 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
184 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
185 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
186 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
187 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
188 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
157 | # CONFIG_FREEZER is not set | 189 | # CONFIG_FREEZER is not set |
158 | 190 | ||
159 | # | 191 | # |
@@ -229,8 +261,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
229 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 261 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
230 | CONFIG_ZONE_DMA_FLAG=0 | 262 | CONFIG_ZONE_DMA_FLAG=0 |
231 | CONFIG_NR_QUICK=2 | 263 | CONFIG_NR_QUICK=2 |
232 | CONFIG_HAVE_MLOCK=y | ||
233 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
234 | # CONFIG_KSM is not set | 264 | # CONFIG_KSM is not set |
235 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 265 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
236 | 266 | ||
@@ -282,9 +312,9 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | |||
282 | # | 312 | # |
283 | # DMA support | 313 | # DMA support |
284 | # | 314 | # |
285 | CONFIG_SH_DMA_API=y | ||
286 | CONFIG_SH_DMA=y | 315 | CONFIG_SH_DMA=y |
287 | CONFIG_SH_DMA_IRQ_MULTI=y | 316 | CONFIG_SH_DMA_IRQ_MULTI=y |
317 | CONFIG_SH_DMA_API=y | ||
288 | CONFIG_NR_ONCHIP_DMA_CHANNELS=8 | 318 | CONFIG_NR_ONCHIP_DMA_CHANNELS=8 |
289 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set | 319 | # CONFIG_NR_DMA_CHANNELS_BOOL is not set |
290 | 320 | ||
@@ -323,7 +353,6 @@ CONFIG_GUSA=y | |||
323 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 | 353 | CONFIG_ZERO_PAGE_OFFSET=0x00001000 |
324 | CONFIG_BOOT_LINK_OFFSET=0x009e0000 | 354 | CONFIG_BOOT_LINK_OFFSET=0x009e0000 |
325 | CONFIG_ENTRY_OFFSET=0x00001000 | 355 | CONFIG_ENTRY_OFFSET=0x00001000 |
326 | # CONFIG_UBC_WAKEUP is not set | ||
327 | CONFIG_CMDLINE_OVERWRITE=y | 356 | CONFIG_CMDLINE_OVERWRITE=y |
328 | # CONFIG_CMDLINE_EXTEND is not set | 357 | # CONFIG_CMDLINE_EXTEND is not set |
329 | CONFIG_CMDLINE="console=ttySC1,38400N81 root=/dev/nfs ip=:::::eth1:autoconf rw" | 358 | CONFIG_CMDLINE="console=ttySC1,38400N81 root=/dev/nfs ip=:::::eth1:autoconf rw" |
@@ -332,7 +361,6 @@ CONFIG_CMDLINE="console=ttySC1,38400N81 root=/dev/nfs ip=:::::eth1:autoconf rw" | |||
332 | # Bus options | 361 | # Bus options |
333 | # | 362 | # |
334 | CONFIG_PCI=y | 363 | CONFIG_PCI=y |
335 | CONFIG_SH_PCIDMA_NONCOHERENT=y | ||
336 | # CONFIG_PCIEPORTBUS is not set | 364 | # CONFIG_PCIEPORTBUS is not set |
337 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 365 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
338 | CONFIG_PCI_LEGACY=y | 366 | CONFIG_PCI_LEGACY=y |
@@ -425,6 +453,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y | |||
425 | CONFIG_INET6_XFRM_MODE_BEET=y | 453 | CONFIG_INET6_XFRM_MODE_BEET=y |
426 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 454 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
427 | CONFIG_IPV6_SIT=m | 455 | CONFIG_IPV6_SIT=m |
456 | # CONFIG_IPV6_SIT_6RD is not set | ||
428 | CONFIG_IPV6_NDISC_NODETYPE=y | 457 | CONFIG_IPV6_NDISC_NODETYPE=y |
429 | CONFIG_IPV6_TUNNEL=y | 458 | CONFIG_IPV6_TUNNEL=y |
430 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 459 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -614,10 +643,6 @@ CONFIG_NET_SCH_FIFO=y | |||
614 | CONFIG_FIB_RULES=y | 643 | CONFIG_FIB_RULES=y |
615 | CONFIG_WIRELESS=y | 644 | CONFIG_WIRELESS=y |
616 | # CONFIG_CFG80211 is not set | 645 | # CONFIG_CFG80211 is not set |
617 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
618 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
619 | CONFIG_WIRELESS_EXT=y | ||
620 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
621 | # CONFIG_LIB80211 is not set | 646 | # CONFIG_LIB80211 is not set |
622 | 647 | ||
623 | # | 648 | # |
@@ -743,6 +768,11 @@ CONFIG_BLK_DEV=y | |||
743 | # CONFIG_BLK_DEV_COW_COMMON is not set | 768 | # CONFIG_BLK_DEV_COW_COMMON is not set |
744 | CONFIG_BLK_DEV_LOOP=m | 769 | CONFIG_BLK_DEV_LOOP=m |
745 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 770 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
771 | |||
772 | # | ||
773 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
774 | # | ||
775 | # CONFIG_BLK_DEV_DRBD is not set | ||
746 | # CONFIG_BLK_DEV_NBD is not set | 776 | # CONFIG_BLK_DEV_NBD is not set |
747 | # CONFIG_BLK_DEV_SX8 is not set | 777 | # CONFIG_BLK_DEV_SX8 is not set |
748 | # CONFIG_BLK_DEV_UB is not set | 778 | # CONFIG_BLK_DEV_UB is not set |
@@ -807,8 +837,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
807 | # CONFIG_ISCSI_TCP is not set | 837 | # CONFIG_ISCSI_TCP is not set |
808 | # CONFIG_SCSI_CXGB3_ISCSI is not set | 838 | # CONFIG_SCSI_CXGB3_ISCSI is not set |
809 | # CONFIG_SCSI_BNX2_ISCSI is not set | 839 | # CONFIG_SCSI_BNX2_ISCSI is not set |
840 | # CONFIG_BE2ISCSI is not set | ||
810 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 841 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
842 | # CONFIG_SCSI_HPSA is not set | ||
811 | # CONFIG_SCSI_3W_9XXX is not set | 843 | # CONFIG_SCSI_3W_9XXX is not set |
844 | # CONFIG_SCSI_3W_SAS is not set | ||
812 | # CONFIG_SCSI_ACARD is not set | 845 | # CONFIG_SCSI_ACARD is not set |
813 | # CONFIG_SCSI_AACRAID is not set | 846 | # CONFIG_SCSI_AACRAID is not set |
814 | # CONFIG_SCSI_AIC7XXX is not set | 847 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -841,7 +874,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
841 | # CONFIG_SCSI_NSP32 is not set | 874 | # CONFIG_SCSI_NSP32 is not set |
842 | # CONFIG_SCSI_DEBUG is not set | 875 | # CONFIG_SCSI_DEBUG is not set |
843 | # CONFIG_SCSI_PMCRAID is not set | 876 | # CONFIG_SCSI_PMCRAID is not set |
877 | # CONFIG_SCSI_PM8001 is not set | ||
844 | # CONFIG_SCSI_SRP is not set | 878 | # CONFIG_SCSI_SRP is not set |
879 | # CONFIG_SCSI_BFA_FC is not set | ||
845 | # CONFIG_SCSI_DH is not set | 880 | # CONFIG_SCSI_DH is not set |
846 | # CONFIG_SCSI_OSD_INITIATOR is not set | 881 | # CONFIG_SCSI_OSD_INITIATOR is not set |
847 | # CONFIG_ATA is not set | 882 | # CONFIG_ATA is not set |
@@ -935,6 +970,7 @@ CONFIG_8139_OLD_RX_RESET=y | |||
935 | # CONFIG_SUNDANCE is not set | 970 | # CONFIG_SUNDANCE is not set |
936 | # CONFIG_TLAN is not set | 971 | # CONFIG_TLAN is not set |
937 | # CONFIG_KS8842 is not set | 972 | # CONFIG_KS8842 is not set |
973 | # CONFIG_KS8851_MLL is not set | ||
938 | # CONFIG_VIA_RHINE is not set | 974 | # CONFIG_VIA_RHINE is not set |
939 | # CONFIG_SC92031 is not set | 975 | # CONFIG_SC92031 is not set |
940 | # CONFIG_ATL2 is not set | 976 | # CONFIG_ATL2 is not set |
@@ -983,8 +1019,10 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
983 | # CONFIG_BE2NET is not set | 1019 | # CONFIG_BE2NET is not set |
984 | # CONFIG_TR is not set | 1020 | # CONFIG_TR is not set |
985 | CONFIG_WLAN=y | 1021 | CONFIG_WLAN=y |
986 | # CONFIG_WLAN_PRE80211 is not set | 1022 | # CONFIG_ATMEL is not set |
987 | # CONFIG_WLAN_80211 is not set | 1023 | # CONFIG_PRISM54 is not set |
1024 | # CONFIG_USB_ZD1201 is not set | ||
1025 | # CONFIG_HOSTAP is not set | ||
988 | 1026 | ||
989 | # | 1027 | # |
990 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 1028 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -1033,6 +1071,7 @@ CONFIG_SLIP_SMART=y | |||
1033 | # CONFIG_NETCONSOLE is not set | 1071 | # CONFIG_NETCONSOLE is not set |
1034 | # CONFIG_NETPOLL is not set | 1072 | # CONFIG_NETPOLL is not set |
1035 | # CONFIG_NET_POLL_CONTROLLER is not set | 1073 | # CONFIG_NET_POLL_CONTROLLER is not set |
1074 | # CONFIG_VMXNET3 is not set | ||
1036 | # CONFIG_ISDN is not set | 1075 | # CONFIG_ISDN is not set |
1037 | # CONFIG_PHONE is not set | 1076 | # CONFIG_PHONE is not set |
1038 | 1077 | ||
@@ -1042,6 +1081,7 @@ CONFIG_SLIP_SMART=y | |||
1042 | CONFIG_INPUT=y | 1081 | CONFIG_INPUT=y |
1043 | # CONFIG_INPUT_FF_MEMLESS is not set | 1082 | # CONFIG_INPUT_FF_MEMLESS is not set |
1044 | # CONFIG_INPUT_POLLDEV is not set | 1083 | # CONFIG_INPUT_POLLDEV is not set |
1084 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
1045 | 1085 | ||
1046 | # | 1086 | # |
1047 | # Userland interfaces | 1087 | # Userland interfaces |
@@ -1172,6 +1212,7 @@ CONFIG_SSB_POSSIBLE=y | |||
1172 | # | 1212 | # |
1173 | # CONFIG_MFD_CORE is not set | 1213 | # CONFIG_MFD_CORE is not set |
1174 | # CONFIG_MFD_SM501 is not set | 1214 | # CONFIG_MFD_SM501 is not set |
1215 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
1175 | # CONFIG_HTC_PASIC3 is not set | 1216 | # CONFIG_HTC_PASIC3 is not set |
1176 | # CONFIG_MFD_TMIO is not set | 1217 | # CONFIG_MFD_TMIO is not set |
1177 | # CONFIG_REGULATOR is not set | 1218 | # CONFIG_REGULATOR is not set |
@@ -1409,7 +1450,9 @@ CONFIG_RTC_INTF_DEV=y | |||
1409 | # CONFIG_RTC_DRV_M48T86 is not set | 1450 | # CONFIG_RTC_DRV_M48T86 is not set |
1410 | # CONFIG_RTC_DRV_M48T35 is not set | 1451 | # CONFIG_RTC_DRV_M48T35 is not set |
1411 | # CONFIG_RTC_DRV_M48T59 is not set | 1452 | # CONFIG_RTC_DRV_M48T59 is not set |
1453 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1412 | # CONFIG_RTC_DRV_BQ4802 is not set | 1454 | # CONFIG_RTC_DRV_BQ4802 is not set |
1455 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1413 | # CONFIG_RTC_DRV_V3020 is not set | 1456 | # CONFIG_RTC_DRV_V3020 is not set |
1414 | 1457 | ||
1415 | # | 1458 | # |
@@ -1664,6 +1707,7 @@ CONFIG_SCHED_DEBUG=y | |||
1664 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 1707 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
1665 | # CONFIG_FAULT_INJECTION is not set | 1708 | # CONFIG_FAULT_INJECTION is not set |
1666 | # CONFIG_LATENCYTOP is not set | 1709 | # CONFIG_LATENCYTOP is not set |
1710 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1667 | # CONFIG_PAGE_POISONING is not set | 1711 | # CONFIG_PAGE_POISONING is not set |
1668 | CONFIG_HAVE_FUNCTION_TRACER=y | 1712 | CONFIG_HAVE_FUNCTION_TRACER=y |
1669 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | 1713 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
@@ -1691,7 +1735,6 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1691 | CONFIG_HAVE_ARCH_KGDB=y | 1735 | CONFIG_HAVE_ARCH_KGDB=y |
1692 | # CONFIG_KGDB is not set | 1736 | # CONFIG_KGDB is not set |
1693 | # CONFIG_SH_STANDARD_BIOS is not set | 1737 | # CONFIG_SH_STANDARD_BIOS is not set |
1694 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1695 | # CONFIG_STACK_DEBUG is not set | 1738 | # CONFIG_STACK_DEBUG is not set |
1696 | # CONFIG_DEBUG_STACK_USAGE is not set | 1739 | # CONFIG_DEBUG_STACK_USAGE is not set |
1697 | # CONFIG_4KSTACKS is not set | 1740 | # CONFIG_4KSTACKS is not set |
@@ -1705,7 +1748,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1705 | # CONFIG_KEYS is not set | 1748 | # CONFIG_KEYS is not set |
1706 | # CONFIG_SECURITY is not set | 1749 | # CONFIG_SECURITY is not set |
1707 | # CONFIG_SECURITYFS is not set | 1750 | # CONFIG_SECURITYFS is not set |
1708 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1751 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1752 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1753 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1754 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1755 | CONFIG_DEFAULT_SECURITY="" | ||
1709 | CONFIG_CRYPTO=y | 1756 | CONFIG_CRYPTO=y |
1710 | 1757 | ||
1711 | # | 1758 | # |
diff --git a/arch/sh/configs/ul2_defconfig b/arch/sh/configs/ul2_defconfig index b012ca77f02..4fa03bf086d 100644 --- a/arch/sh/configs/ul2_defconfig +++ b/arch/sh/configs/ul2_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:42:33 2009 | 4 | # Mon Jan 4 15:18:53 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 21 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_NUMA=y | 24 | CONFIG_SYS_SUPPORTS_NUMA=y |
24 | CONFIG_SYS_SUPPORTS_CMT=y | 25 | CONFIG_SYS_SUPPORTS_CMT=y |
25 | CONFIG_SYS_SUPPORTS_TMU=y | 26 | CONFIG_SYS_SUPPORTS_TMU=y |
@@ -31,6 +32,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
31 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 32 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
32 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 33 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
33 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 34 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
35 | CONFIG_DMA_NONCOHERENT=y | ||
34 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 36 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
35 | CONFIG_CONSTRUCTORS=y | 37 | CONFIG_CONSTRUCTORS=y |
36 | 38 | ||
@@ -63,6 +65,7 @@ CONFIG_BSD_PROCESS_ACCT=y | |||
63 | # | 65 | # |
64 | CONFIG_TREE_RCU=y | 66 | CONFIG_TREE_RCU=y |
65 | # CONFIG_TREE_PREEMPT_RCU is not set | 67 | # CONFIG_TREE_PREEMPT_RCU is not set |
68 | # CONFIG_TINY_RCU is not set | ||
66 | # CONFIG_RCU_TRACE is not set | 69 | # CONFIG_RCU_TRACE is not set |
67 | CONFIG_RCU_FANOUT=32 | 70 | CONFIG_RCU_FANOUT=32 |
68 | # CONFIG_RCU_FANOUT_EXACT is not set | 71 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -102,6 +105,7 @@ CONFIG_EVENTFD=y | |||
102 | CONFIG_SHMEM=y | 105 | CONFIG_SHMEM=y |
103 | CONFIG_AIO=y | 106 | CONFIG_AIO=y |
104 | CONFIG_HAVE_PERF_EVENTS=y | 107 | CONFIG_HAVE_PERF_EVENTS=y |
108 | CONFIG_PERF_USE_VMALLOC=y | ||
105 | 109 | ||
106 | # | 110 | # |
107 | # Kernel Performance Events And Counters | 111 | # Kernel Performance Events And Counters |
@@ -122,6 +126,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
122 | CONFIG_HAVE_KPROBES=y | 126 | CONFIG_HAVE_KPROBES=y |
123 | CONFIG_HAVE_KRETPROBES=y | 127 | CONFIG_HAVE_KRETPROBES=y |
124 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 128 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
129 | CONFIG_HAVE_DMA_ATTRS=y | ||
125 | CONFIG_HAVE_CLK=y | 130 | CONFIG_HAVE_CLK=y |
126 | CONFIG_HAVE_DMA_API_DEBUG=y | 131 | CONFIG_HAVE_DMA_API_DEBUG=y |
127 | 132 | ||
@@ -148,14 +153,41 @@ CONFIG_LBDAF=y | |||
148 | # IO Schedulers | 153 | # IO Schedulers |
149 | # | 154 | # |
150 | CONFIG_IOSCHED_NOOP=y | 155 | CONFIG_IOSCHED_NOOP=y |
151 | # CONFIG_IOSCHED_AS is not set | ||
152 | # CONFIG_IOSCHED_DEADLINE is not set | 156 | # CONFIG_IOSCHED_DEADLINE is not set |
153 | # CONFIG_IOSCHED_CFQ is not set | 157 | # CONFIG_IOSCHED_CFQ is not set |
154 | # CONFIG_DEFAULT_AS is not set | ||
155 | # CONFIG_DEFAULT_DEADLINE is not set | 158 | # CONFIG_DEFAULT_DEADLINE is not set |
156 | # CONFIG_DEFAULT_CFQ is not set | 159 | # CONFIG_DEFAULT_CFQ is not set |
157 | CONFIG_DEFAULT_NOOP=y | 160 | CONFIG_DEFAULT_NOOP=y |
158 | CONFIG_DEFAULT_IOSCHED="noop" | 161 | CONFIG_DEFAULT_IOSCHED="noop" |
162 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
163 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
164 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
165 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
166 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
167 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
168 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
169 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
170 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
171 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
172 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
173 | # CONFIG_INLINE_READ_LOCK is not set | ||
174 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
175 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
176 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
177 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
178 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
179 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
180 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
181 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
182 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
183 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
184 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
185 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
186 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
187 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
188 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
189 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
190 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
159 | CONFIG_FREEZER=y | 191 | CONFIG_FREEZER=y |
160 | 192 | ||
161 | # | 193 | # |
@@ -247,8 +279,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
247 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 279 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
248 | CONFIG_ZONE_DMA_FLAG=0 | 280 | CONFIG_ZONE_DMA_FLAG=0 |
249 | CONFIG_NR_QUICK=2 | 281 | CONFIG_NR_QUICK=2 |
250 | CONFIG_HAVE_MLOCK=y | ||
251 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
252 | # CONFIG_KSM is not set | 282 | # CONFIG_KSM is not set |
253 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 283 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
254 | 284 | ||
@@ -280,7 +310,6 @@ CONFIG_CPU_HAS_DSP=y | |||
280 | # | 310 | # |
281 | CONFIG_SH_TIMER_TMU=y | 311 | CONFIG_SH_TIMER_TMU=y |
282 | # CONFIG_SH_TIMER_CMT is not set | 312 | # CONFIG_SH_TIMER_CMT is not set |
283 | CONFIG_SH_PCLK_FREQ=33333333 | ||
284 | CONFIG_SH_CLK_CPG=y | 313 | CONFIG_SH_CLK_CPG=y |
285 | CONFIG_TICK_ONESHOT=y | 314 | CONFIG_TICK_ONESHOT=y |
286 | # CONFIG_NO_HZ is not set | 315 | # CONFIG_NO_HZ is not set |
@@ -435,14 +464,17 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
435 | # CONFIG_BT is not set | 464 | # CONFIG_BT is not set |
436 | # CONFIG_AF_RXRPC is not set | 465 | # CONFIG_AF_RXRPC is not set |
437 | CONFIG_WIRELESS=y | 466 | CONFIG_WIRELESS=y |
467 | CONFIG_WIRELESS_EXT=y | ||
468 | CONFIG_WEXT_CORE=y | ||
469 | CONFIG_WEXT_PROC=y | ||
470 | CONFIG_WEXT_SPY=y | ||
438 | CONFIG_CFG80211=y | 471 | CONFIG_CFG80211=y |
439 | # CONFIG_NL80211_TESTMODE is not set | 472 | # CONFIG_NL80211_TESTMODE is not set |
440 | # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set | 473 | # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set |
441 | # CONFIG_CFG80211_REG_DEBUG is not set | 474 | # CONFIG_CFG80211_REG_DEBUG is not set |
442 | CONFIG_CFG80211_DEFAULT_PS=y | 475 | CONFIG_CFG80211_DEFAULT_PS=y |
443 | CONFIG_CFG80211_DEFAULT_PS_VALUE=1 | ||
444 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | 476 | # CONFIG_WIRELESS_OLD_REGULATORY is not set |
445 | CONFIG_WIRELESS_EXT=y | 477 | CONFIG_CFG80211_WEXT=y |
446 | CONFIG_WIRELESS_EXT_SYSFS=y | 478 | CONFIG_WIRELESS_EXT_SYSFS=y |
447 | CONFIG_LIB80211=m | 479 | CONFIG_LIB80211=m |
448 | # CONFIG_LIB80211_DEBUG is not set | 480 | # CONFIG_LIB80211_DEBUG is not set |
@@ -559,6 +591,10 @@ CONFIG_MTD_RAM=y | |||
559 | CONFIG_BLK_DEV=y | 591 | CONFIG_BLK_DEV=y |
560 | # CONFIG_BLK_DEV_COW_COMMON is not set | 592 | # CONFIG_BLK_DEV_COW_COMMON is not set |
561 | # CONFIG_BLK_DEV_LOOP is not set | 593 | # CONFIG_BLK_DEV_LOOP is not set |
594 | |||
595 | # | ||
596 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
597 | # | ||
562 | # CONFIG_BLK_DEV_NBD is not set | 598 | # CONFIG_BLK_DEV_NBD is not set |
563 | # CONFIG_BLK_DEV_UB is not set | 599 | # CONFIG_BLK_DEV_UB is not set |
564 | CONFIG_BLK_DEV_RAM=y | 600 | CONFIG_BLK_DEV_RAM=y |
@@ -576,6 +612,7 @@ CONFIG_MISC_DEVICES=y | |||
576 | # EEPROM support | 612 | # EEPROM support |
577 | # | 613 | # |
578 | # CONFIG_EEPROM_93CX6 is not set | 614 | # CONFIG_EEPROM_93CX6 is not set |
615 | # CONFIG_IWMC3200TOP is not set | ||
579 | CONFIG_HAVE_IDE=y | 616 | CONFIG_HAVE_IDE=y |
580 | # CONFIG_IDE is not set | 617 | # CONFIG_IDE is not set |
581 | 618 | ||
@@ -653,30 +690,29 @@ CONFIG_MII=y | |||
653 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 690 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
654 | # CONFIG_B44 is not set | 691 | # CONFIG_B44 is not set |
655 | # CONFIG_KS8842 is not set | 692 | # CONFIG_KS8842 is not set |
693 | # CONFIG_KS8851_MLL is not set | ||
656 | # CONFIG_NETDEV_1000 is not set | 694 | # CONFIG_NETDEV_1000 is not set |
657 | # CONFIG_NETDEV_10000 is not set | 695 | # CONFIG_NETDEV_10000 is not set |
658 | CONFIG_WLAN=y | 696 | CONFIG_WLAN=y |
659 | # CONFIG_WLAN_PRE80211 is not set | ||
660 | CONFIG_WLAN_80211=y | ||
661 | CONFIG_LIBERTAS=m | ||
662 | # CONFIG_LIBERTAS_USB is not set | ||
663 | CONFIG_LIBERTAS_SDIO=m | ||
664 | CONFIG_LIBERTAS_DEBUG=y | ||
665 | # CONFIG_LIBERTAS_THINFIRM is not set | 697 | # CONFIG_LIBERTAS_THINFIRM is not set |
666 | # CONFIG_AT76C50X_USB is not set | 698 | # CONFIG_AT76C50X_USB is not set |
667 | # CONFIG_USB_ZD1201 is not set | 699 | # CONFIG_USB_ZD1201 is not set |
668 | # CONFIG_USB_NET_RNDIS_WLAN is not set | 700 | # CONFIG_USB_NET_RNDIS_WLAN is not set |
669 | # CONFIG_RTL8187 is not set | 701 | # CONFIG_RTL8187 is not set |
670 | # CONFIG_MAC80211_HWSIM is not set | 702 | # CONFIG_MAC80211_HWSIM is not set |
671 | # CONFIG_P54_COMMON is not set | ||
672 | # CONFIG_ATH_COMMON is not set | 703 | # CONFIG_ATH_COMMON is not set |
673 | # CONFIG_HOSTAP is not set | ||
674 | # CONFIG_B43 is not set | 704 | # CONFIG_B43 is not set |
675 | # CONFIG_B43LEGACY is not set | 705 | # CONFIG_B43LEGACY is not set |
676 | # CONFIG_ZD1211RW is not set | 706 | # CONFIG_HOSTAP is not set |
707 | # CONFIG_IWM is not set | ||
708 | CONFIG_LIBERTAS=m | ||
709 | # CONFIG_LIBERTAS_USB is not set | ||
710 | CONFIG_LIBERTAS_SDIO=m | ||
711 | CONFIG_LIBERTAS_DEBUG=y | ||
712 | # CONFIG_P54_COMMON is not set | ||
677 | # CONFIG_RT2X00 is not set | 713 | # CONFIG_RT2X00 is not set |
678 | # CONFIG_WL12XX is not set | 714 | # CONFIG_WL12XX is not set |
679 | # CONFIG_IWM is not set | 715 | # CONFIG_ZD1211RW is not set |
680 | 716 | ||
681 | # | 717 | # |
682 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 718 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -718,6 +754,7 @@ CONFIG_USB_NET_CDCETHER=y | |||
718 | CONFIG_INPUT=y | 754 | CONFIG_INPUT=y |
719 | # CONFIG_INPUT_FF_MEMLESS is not set | 755 | # CONFIG_INPUT_FF_MEMLESS is not set |
720 | # CONFIG_INPUT_POLLDEV is not set | 756 | # CONFIG_INPUT_POLLDEV is not set |
757 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
721 | 758 | ||
722 | # | 759 | # |
723 | # Userland interfaces | 760 | # Userland interfaces |
@@ -810,6 +847,7 @@ CONFIG_SSB_POSSIBLE=y | |||
810 | # | 847 | # |
811 | # CONFIG_MFD_CORE is not set | 848 | # CONFIG_MFD_CORE is not set |
812 | # CONFIG_MFD_SM501 is not set | 849 | # CONFIG_MFD_SM501 is not set |
850 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
813 | # CONFIG_HTC_PASIC3 is not set | 851 | # CONFIG_HTC_PASIC3 is not set |
814 | # CONFIG_MFD_TMIO is not set | 852 | # CONFIG_MFD_TMIO is not set |
815 | # CONFIG_REGULATOR is not set | 853 | # CONFIG_REGULATOR is not set |
@@ -951,6 +989,7 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
951 | # CONFIG_MMC_SDHCI is not set | 989 | # CONFIG_MMC_SDHCI is not set |
952 | # CONFIG_MMC_AT91 is not set | 990 | # CONFIG_MMC_AT91 is not set |
953 | # CONFIG_MMC_ATMELMCI is not set | 991 | # CONFIG_MMC_ATMELMCI is not set |
992 | # CONFIG_MMC_TMIO is not set | ||
954 | # CONFIG_MEMSTICK is not set | 993 | # CONFIG_MEMSTICK is not set |
955 | # CONFIG_NEW_LEDS is not set | 994 | # CONFIG_NEW_LEDS is not set |
956 | # CONFIG_ACCESSIBILITY is not set | 995 | # CONFIG_ACCESSIBILITY is not set |
@@ -1133,7 +1172,7 @@ CONFIG_FRAME_WARN=1024 | |||
1133 | # CONFIG_DEBUG_KERNEL is not set | 1172 | # CONFIG_DEBUG_KERNEL is not set |
1134 | # CONFIG_SLUB_DEBUG_ON is not set | 1173 | # CONFIG_SLUB_DEBUG_ON is not set |
1135 | # CONFIG_SLUB_STATS is not set | 1174 | # CONFIG_SLUB_STATS is not set |
1136 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1175 | CONFIG_DEBUG_BUGVERBOSE=y |
1137 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1176 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1138 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1177 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1139 | # CONFIG_LATENCYTOP is not set | 1178 | # CONFIG_LATENCYTOP is not set |
@@ -1150,7 +1189,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1150 | # CONFIG_SAMPLES is not set | 1189 | # CONFIG_SAMPLES is not set |
1151 | CONFIG_HAVE_ARCH_KGDB=y | 1190 | CONFIG_HAVE_ARCH_KGDB=y |
1152 | # CONFIG_SH_STANDARD_BIOS is not set | 1191 | # CONFIG_SH_STANDARD_BIOS is not set |
1153 | # CONFIG_EARLY_SCIF_CONSOLE is not set | ||
1154 | # CONFIG_DWARF_UNWINDER is not set | 1192 | # CONFIG_DWARF_UNWINDER is not set |
1155 | 1193 | ||
1156 | # | 1194 | # |
@@ -1159,7 +1197,11 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1159 | # CONFIG_KEYS is not set | 1197 | # CONFIG_KEYS is not set |
1160 | # CONFIG_SECURITY is not set | 1198 | # CONFIG_SECURITY is not set |
1161 | # CONFIG_SECURITYFS is not set | 1199 | # CONFIG_SECURITYFS is not set |
1162 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1200 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1201 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1202 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1203 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1204 | CONFIG_DEFAULT_SECURITY="" | ||
1163 | CONFIG_CRYPTO=y | 1205 | CONFIG_CRYPTO=y |
1164 | 1206 | ||
1165 | # | 1207 | # |
diff --git a/arch/sh/configs/urquell_defconfig b/arch/sh/configs/urquell_defconfig index 9f8aee5bc55..23bda1916f4 100644 --- a/arch/sh/configs/urquell_defconfig +++ b/arch/sh/configs/urquell_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Thu Sep 24 19:46:13 2009 | 4 | # Mon Jan 4 15:27:53 2010 |
5 | # | 5 | # |
6 | CONFIG_SUPERH=y | 6 | CONFIG_SUPERH=y |
7 | CONFIG_SUPERH32=y | 7 | CONFIG_SUPERH32=y |
@@ -20,6 +20,7 @@ CONFIG_GENERIC_TIME=y | |||
20 | CONFIG_GENERIC_CLOCKEVENTS=y | 20 | CONFIG_GENERIC_CLOCKEVENTS=y |
21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set | 21 | # CONFIG_ARCH_SUSPEND_POSSIBLE is not set |
22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | 22 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
23 | CONFIG_SYS_SUPPORTS_HUGETLBFS=y | ||
23 | CONFIG_SYS_SUPPORTS_SMP=y | 24 | CONFIG_SYS_SUPPORTS_SMP=y |
24 | CONFIG_SYS_SUPPORTS_NUMA=y | 25 | CONFIG_SYS_SUPPORTS_NUMA=y |
25 | CONFIG_SYS_SUPPORTS_PCI=y | 26 | CONFIG_SYS_SUPPORTS_PCI=y |
@@ -32,6 +33,8 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
32 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 33 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
33 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y | 34 | CONFIG_ARCH_HAS_DEFAULT_IDLE=y |
34 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y | 35 | CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y |
36 | CONFIG_DMA_COHERENT=y | ||
37 | # CONFIG_DMA_NONCOHERENT is not set | ||
35 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 38 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
36 | CONFIG_CONSTRUCTORS=y | 39 | CONFIG_CONSTRUCTORS=y |
37 | 40 | ||
@@ -66,6 +69,7 @@ CONFIG_AUDIT_TREE=y | |||
66 | # | 69 | # |
67 | CONFIG_TREE_RCU=y | 70 | CONFIG_TREE_RCU=y |
68 | # CONFIG_TREE_PREEMPT_RCU is not set | 71 | # CONFIG_TREE_PREEMPT_RCU is not set |
72 | # CONFIG_TINY_RCU is not set | ||
69 | # CONFIG_RCU_TRACE is not set | 73 | # CONFIG_RCU_TRACE is not set |
70 | CONFIG_RCU_FANOUT=32 | 74 | CONFIG_RCU_FANOUT=32 |
71 | # CONFIG_RCU_FANOUT_EXACT is not set | 75 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -120,12 +124,14 @@ CONFIG_EVENTFD=y | |||
120 | CONFIG_SHMEM=y | 124 | CONFIG_SHMEM=y |
121 | CONFIG_AIO=y | 125 | CONFIG_AIO=y |
122 | CONFIG_HAVE_PERF_EVENTS=y | 126 | CONFIG_HAVE_PERF_EVENTS=y |
127 | CONFIG_PERF_USE_VMALLOC=y | ||
123 | 128 | ||
124 | # | 129 | # |
125 | # Kernel Performance Events And Counters | 130 | # Kernel Performance Events And Counters |
126 | # | 131 | # |
127 | CONFIG_PERF_EVENTS=y | 132 | CONFIG_PERF_EVENTS=y |
128 | # CONFIG_PERF_COUNTERS is not set | 133 | # CONFIG_PERF_COUNTERS is not set |
134 | # CONFIG_DEBUG_PERF_USE_VMALLOC is not set | ||
129 | CONFIG_VM_EVENT_COUNTERS=y | 135 | CONFIG_VM_EVENT_COUNTERS=y |
130 | CONFIG_PCI_QUIRKS=y | 136 | CONFIG_PCI_QUIRKS=y |
131 | CONFIG_COMPAT_BRK=y | 137 | CONFIG_COMPAT_BRK=y |
@@ -140,6 +146,7 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
140 | CONFIG_HAVE_KPROBES=y | 146 | CONFIG_HAVE_KPROBES=y |
141 | CONFIG_HAVE_KRETPROBES=y | 147 | CONFIG_HAVE_KRETPROBES=y |
142 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 148 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
149 | CONFIG_HAVE_DMA_ATTRS=y | ||
143 | CONFIG_HAVE_CLK=y | 150 | CONFIG_HAVE_CLK=y |
144 | CONFIG_HAVE_DMA_API_DEBUG=y | 151 | CONFIG_HAVE_DMA_API_DEBUG=y |
145 | 152 | ||
@@ -162,19 +169,48 @@ CONFIG_BLOCK=y | |||
162 | CONFIG_LBDAF=y | 169 | CONFIG_LBDAF=y |
163 | # CONFIG_BLK_DEV_BSG is not set | 170 | # CONFIG_BLK_DEV_BSG is not set |
164 | # CONFIG_BLK_DEV_INTEGRITY is not set | 171 | # CONFIG_BLK_DEV_INTEGRITY is not set |
172 | # CONFIG_BLK_CGROUP is not set | ||
165 | 173 | ||
166 | # | 174 | # |
167 | # IO Schedulers | 175 | # IO Schedulers |
168 | # | 176 | # |
169 | CONFIG_IOSCHED_NOOP=y | 177 | CONFIG_IOSCHED_NOOP=y |
170 | CONFIG_IOSCHED_AS=y | ||
171 | CONFIG_IOSCHED_DEADLINE=y | 178 | CONFIG_IOSCHED_DEADLINE=y |
172 | CONFIG_IOSCHED_CFQ=y | 179 | CONFIG_IOSCHED_CFQ=y |
173 | CONFIG_DEFAULT_AS=y | 180 | # CONFIG_CFQ_GROUP_IOSCHED is not set |
174 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
175 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
176 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
177 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
178 | CONFIG_FREEZER=y | 214 | CONFIG_FREEZER=y |
179 | 215 | ||
180 | # | 216 | # |
@@ -229,6 +265,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11 | |||
229 | CONFIG_MEMORY_START=0x08000000 | 265 | CONFIG_MEMORY_START=0x08000000 |
230 | CONFIG_MEMORY_SIZE=0x08000000 | 266 | CONFIG_MEMORY_SIZE=0x08000000 |
231 | CONFIG_29BIT=y | 267 | CONFIG_29BIT=y |
268 | # CONFIG_PMB_ENABLE is not set | ||
232 | # CONFIG_X2TLB is not set | 269 | # CONFIG_X2TLB is not set |
233 | CONFIG_VSYSCALL=y | 270 | CONFIG_VSYSCALL=y |
234 | # CONFIG_NUMA is not set | 271 | # CONFIG_NUMA is not set |
@@ -263,8 +300,6 @@ CONFIG_MIGRATION=y | |||
263 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 300 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
264 | CONFIG_ZONE_DMA_FLAG=0 | 301 | CONFIG_ZONE_DMA_FLAG=0 |
265 | CONFIG_NR_QUICK=2 | 302 | CONFIG_NR_QUICK=2 |
266 | CONFIG_HAVE_MLOCK=y | ||
267 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
268 | # CONFIG_KSM is not set | 303 | # CONFIG_KSM is not set |
269 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 304 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
270 | 305 | ||
@@ -356,7 +391,6 @@ CONFIG_ENTRY_OFFSET=0x00001000 | |||
356 | # Bus options | 391 | # Bus options |
357 | # | 392 | # |
358 | CONFIG_PCI=y | 393 | CONFIG_PCI=y |
359 | # CONFIG_SH_PCIDMA_NONCOHERENT is not set | ||
360 | CONFIG_PCIEPORTBUS=y | 394 | CONFIG_PCIEPORTBUS=y |
361 | CONFIG_PCIEAER=y | 395 | CONFIG_PCIEAER=y |
362 | # CONFIG_PCIE_ECRC is not set | 396 | # CONFIG_PCIE_ECRC is not set |
@@ -469,10 +503,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
469 | # CONFIG_AF_RXRPC is not set | 503 | # CONFIG_AF_RXRPC is not set |
470 | CONFIG_WIRELESS=y | 504 | CONFIG_WIRELESS=y |
471 | # CONFIG_CFG80211 is not set | 505 | # CONFIG_CFG80211 is not set |
472 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
473 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
474 | CONFIG_WIRELESS_EXT=y | ||
475 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
476 | # CONFIG_LIB80211 is not set | 506 | # CONFIG_LIB80211 is not set |
477 | 507 | ||
478 | # | 508 | # |
@@ -588,6 +618,10 @@ CONFIG_BLK_DEV=y | |||
588 | # CONFIG_BLK_DEV_UMEM is not set | 618 | # CONFIG_BLK_DEV_UMEM is not set |
589 | # CONFIG_BLK_DEV_COW_COMMON is not set | 619 | # CONFIG_BLK_DEV_COW_COMMON is not set |
590 | # CONFIG_BLK_DEV_LOOP is not set | 620 | # CONFIG_BLK_DEV_LOOP is not set |
621 | |||
622 | # | ||
623 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
624 | # | ||
591 | # CONFIG_BLK_DEV_NBD is not set | 625 | # CONFIG_BLK_DEV_NBD is not set |
592 | # CONFIG_BLK_DEV_SX8 is not set | 626 | # CONFIG_BLK_DEV_SX8 is not set |
593 | # CONFIG_BLK_DEV_UB is not set | 627 | # CONFIG_BLK_DEV_UB is not set |
@@ -688,15 +722,16 @@ CONFIG_ATA_SFF=y | |||
688 | # CONFIG_PATA_NS87415 is not set | 722 | # CONFIG_PATA_NS87415 is not set |
689 | # CONFIG_PATA_OPTI is not set | 723 | # CONFIG_PATA_OPTI is not set |
690 | # CONFIG_PATA_OPTIDMA is not set | 724 | # CONFIG_PATA_OPTIDMA is not set |
725 | # CONFIG_PATA_PDC2027X is not set | ||
691 | # CONFIG_PATA_PDC_OLD is not set | 726 | # CONFIG_PATA_PDC_OLD is not set |
692 | # CONFIG_PATA_RADISYS is not set | 727 | # CONFIG_PATA_RADISYS is not set |
693 | # CONFIG_PATA_RDC is not set | 728 | # CONFIG_PATA_RDC is not set |
694 | # CONFIG_PATA_RZ1000 is not set | 729 | # CONFIG_PATA_RZ1000 is not set |
695 | # CONFIG_PATA_SC1200 is not set | 730 | # CONFIG_PATA_SC1200 is not set |
696 | # CONFIG_PATA_SERVERWORKS is not set | 731 | # CONFIG_PATA_SERVERWORKS is not set |
697 | # CONFIG_PATA_PDC2027X is not set | ||
698 | # CONFIG_PATA_SIL680 is not set | 732 | # CONFIG_PATA_SIL680 is not set |
699 | # CONFIG_PATA_SIS is not set | 733 | # CONFIG_PATA_SIS is not set |
734 | # CONFIG_PATA_TOSHIBA is not set | ||
700 | # CONFIG_PATA_VIA is not set | 735 | # CONFIG_PATA_VIA is not set |
701 | # CONFIG_PATA_WINBOND is not set | 736 | # CONFIG_PATA_WINBOND is not set |
702 | # CONFIG_PATA_PLATFORM is not set | 737 | # CONFIG_PATA_PLATFORM is not set |
@@ -787,6 +822,7 @@ CONFIG_8139CP=y | |||
787 | # CONFIG_SUNDANCE is not set | 822 | # CONFIG_SUNDANCE is not set |
788 | # CONFIG_TLAN is not set | 823 | # CONFIG_TLAN is not set |
789 | # CONFIG_KS8842 is not set | 824 | # CONFIG_KS8842 is not set |
825 | # CONFIG_KS8851_MLL is not set | ||
790 | # CONFIG_VIA_RHINE is not set | 826 | # CONFIG_VIA_RHINE is not set |
791 | # CONFIG_SC92031 is not set | 827 | # CONFIG_SC92031 is not set |
792 | # CONFIG_ATL2 is not set | 828 | # CONFIG_ATL2 is not set |
@@ -818,8 +854,10 @@ CONFIG_SKY2_DEBUG=y | |||
818 | # CONFIG_NETDEV_10000 is not set | 854 | # CONFIG_NETDEV_10000 is not set |
819 | # CONFIG_TR is not set | 855 | # CONFIG_TR is not set |
820 | CONFIG_WLAN=y | 856 | CONFIG_WLAN=y |
821 | # CONFIG_WLAN_PRE80211 is not set | 857 | # CONFIG_ATMEL is not set |
822 | # CONFIG_WLAN_80211 is not set | 858 | # CONFIG_PRISM54 is not set |
859 | # CONFIG_USB_ZD1201 is not set | ||
860 | # CONFIG_HOSTAP is not set | ||
823 | 861 | ||
824 | # | 862 | # |
825 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 863 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -842,6 +880,7 @@ CONFIG_WLAN=y | |||
842 | # CONFIG_NETCONSOLE is not set | 880 | # CONFIG_NETCONSOLE is not set |
843 | # CONFIG_NETPOLL is not set | 881 | # CONFIG_NETPOLL is not set |
844 | # CONFIG_NET_POLL_CONTROLLER is not set | 882 | # CONFIG_NET_POLL_CONTROLLER is not set |
883 | # CONFIG_VMXNET3 is not set | ||
845 | # CONFIG_ISDN is not set | 884 | # CONFIG_ISDN is not set |
846 | # CONFIG_PHONE is not set | 885 | # CONFIG_PHONE is not set |
847 | 886 | ||
@@ -851,6 +890,7 @@ CONFIG_WLAN=y | |||
851 | CONFIG_INPUT=y | 890 | CONFIG_INPUT=y |
852 | CONFIG_INPUT_FF_MEMLESS=m | 891 | CONFIG_INPUT_FF_MEMLESS=m |
853 | # CONFIG_INPUT_POLLDEV is not set | 892 | # CONFIG_INPUT_POLLDEV is not set |
893 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
854 | 894 | ||
855 | # | 895 | # |
856 | # Userland interfaces | 896 | # Userland interfaces |
@@ -976,11 +1016,6 @@ CONFIG_I2C_ALGOPCA=y | |||
976 | # CONFIG_I2C_TINY_USB is not set | 1016 | # CONFIG_I2C_TINY_USB is not set |
977 | 1017 | ||
978 | # | 1018 | # |
979 | # Graphics adapter I2C/DDC channel drivers | ||
980 | # | ||
981 | # CONFIG_I2C_VOODOO3 is not set | ||
982 | |||
983 | # | ||
984 | # Other I2C/SMBus bus drivers | 1019 | # Other I2C/SMBus bus drivers |
985 | # | 1020 | # |
986 | CONFIG_I2C_PCA_PLATFORM=y | 1021 | CONFIG_I2C_PCA_PLATFORM=y |
@@ -989,7 +1024,6 @@ CONFIG_I2C_PCA_PLATFORM=y | |||
989 | # | 1024 | # |
990 | # Miscellaneous I2C Chip support | 1025 | # Miscellaneous I2C Chip support |
991 | # | 1026 | # |
992 | # CONFIG_DS1682 is not set | ||
993 | # CONFIG_SENSORS_TSL2550 is not set | 1027 | # CONFIG_SENSORS_TSL2550 is not set |
994 | # CONFIG_I2C_DEBUG_CORE is not set | 1028 | # CONFIG_I2C_DEBUG_CORE is not set |
995 | # CONFIG_I2C_DEBUG_ALGO is not set | 1029 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -1020,6 +1054,7 @@ CONFIG_GPIOLIB=y | |||
1020 | # | 1054 | # |
1021 | # PCI GPIO expanders: | 1055 | # PCI GPIO expanders: |
1022 | # | 1056 | # |
1057 | # CONFIG_GPIO_CS5535 is not set | ||
1023 | # CONFIG_GPIO_BT8XX is not set | 1058 | # CONFIG_GPIO_BT8XX is not set |
1024 | # CONFIG_GPIO_LANGWELL is not set | 1059 | # CONFIG_GPIO_LANGWELL is not set |
1025 | 1060 | ||
@@ -1062,6 +1097,7 @@ CONFIG_HWMON=y | |||
1062 | # CONFIG_SENSORS_GL520SM is not set | 1097 | # CONFIG_SENSORS_GL520SM is not set |
1063 | # CONFIG_SENSORS_IT87 is not set | 1098 | # CONFIG_SENSORS_IT87 is not set |
1064 | # CONFIG_SENSORS_LM63 is not set | 1099 | # CONFIG_SENSORS_LM63 is not set |
1100 | # CONFIG_SENSORS_LM73 is not set | ||
1065 | # CONFIG_SENSORS_LM75 is not set | 1101 | # CONFIG_SENSORS_LM75 is not set |
1066 | # CONFIG_SENSORS_LM77 is not set | 1102 | # CONFIG_SENSORS_LM77 is not set |
1067 | # CONFIG_SENSORS_LM78 is not set | 1103 | # CONFIG_SENSORS_LM78 is not set |
@@ -1101,6 +1137,7 @@ CONFIG_HWMON=y | |||
1101 | # CONFIG_SENSORS_W83L786NG is not set | 1137 | # CONFIG_SENSORS_W83L786NG is not set |
1102 | # CONFIG_SENSORS_W83627HF is not set | 1138 | # CONFIG_SENSORS_W83627HF is not set |
1103 | # CONFIG_SENSORS_W83627EHF is not set | 1139 | # CONFIG_SENSORS_W83627EHF is not set |
1140 | # CONFIG_SENSORS_LIS3_I2C is not set | ||
1104 | # CONFIG_THERMAL is not set | 1141 | # CONFIG_THERMAL is not set |
1105 | # CONFIG_WATCHDOG is not set | 1142 | # CONFIG_WATCHDOG is not set |
1106 | CONFIG_SSB_POSSIBLE=y | 1143 | CONFIG_SSB_POSSIBLE=y |
@@ -1116,16 +1153,19 @@ CONFIG_SSB_POSSIBLE=y | |||
1116 | # CONFIG_MFD_CORE is not set | 1153 | # CONFIG_MFD_CORE is not set |
1117 | CONFIG_MFD_SM501=y | 1154 | CONFIG_MFD_SM501=y |
1118 | # CONFIG_MFD_SM501_GPIO is not set | 1155 | # CONFIG_MFD_SM501_GPIO is not set |
1156 | # CONFIG_MFD_SH_MOBILE_SDHI is not set | ||
1119 | # CONFIG_HTC_PASIC3 is not set | 1157 | # CONFIG_HTC_PASIC3 is not set |
1120 | # CONFIG_TPS65010 is not set | 1158 | # CONFIG_TPS65010 is not set |
1121 | # CONFIG_TWL4030_CORE is not set | 1159 | # CONFIG_TWL4030_CORE is not set |
1122 | # CONFIG_MFD_TMIO is not set | 1160 | # CONFIG_MFD_TMIO is not set |
1123 | # CONFIG_PMIC_DA903X is not set | 1161 | # CONFIG_PMIC_DA903X is not set |
1162 | # CONFIG_PMIC_ADP5520 is not set | ||
1124 | # CONFIG_MFD_WM8400 is not set | 1163 | # CONFIG_MFD_WM8400 is not set |
1125 | # CONFIG_MFD_WM831X is not set | 1164 | # CONFIG_MFD_WM831X is not set |
1126 | # CONFIG_MFD_WM8350_I2C is not set | 1165 | # CONFIG_MFD_WM8350_I2C is not set |
1127 | # CONFIG_MFD_PCF50633 is not set | 1166 | # CONFIG_MFD_PCF50633 is not set |
1128 | # CONFIG_AB3100_CORE is not set | 1167 | # CONFIG_AB3100_CORE is not set |
1168 | # CONFIG_MFD_88PM8607 is not set | ||
1129 | # CONFIG_REGULATOR is not set | 1169 | # CONFIG_REGULATOR is not set |
1130 | CONFIG_MEDIA_SUPPORT=y | 1170 | CONFIG_MEDIA_SUPPORT=y |
1131 | 1171 | ||
@@ -1139,6 +1179,8 @@ CONFIG_MEDIA_SUPPORT=y | |||
1139 | # | 1179 | # |
1140 | # Multimedia drivers | 1180 | # Multimedia drivers |
1141 | # | 1181 | # |
1182 | CONFIG_IR_CORE=y | ||
1183 | CONFIG_VIDEO_IR=y | ||
1142 | # CONFIG_DAB is not set | 1184 | # CONFIG_DAB is not set |
1143 | 1185 | ||
1144 | # | 1186 | # |
@@ -1417,6 +1459,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1417 | # CONFIG_RTC_DRV_PCF8563 is not set | 1459 | # CONFIG_RTC_DRV_PCF8563 is not set |
1418 | # CONFIG_RTC_DRV_PCF8583 is not set | 1460 | # CONFIG_RTC_DRV_PCF8583 is not set |
1419 | # CONFIG_RTC_DRV_M41T80 is not set | 1461 | # CONFIG_RTC_DRV_M41T80 is not set |
1462 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1420 | # CONFIG_RTC_DRV_S35390A is not set | 1463 | # CONFIG_RTC_DRV_S35390A is not set |
1421 | # CONFIG_RTC_DRV_FM3130 is not set | 1464 | # CONFIG_RTC_DRV_FM3130 is not set |
1422 | # CONFIG_RTC_DRV_RX8581 is not set | 1465 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1437,7 +1480,9 @@ CONFIG_RTC_INTF_DEV=y | |||
1437 | # CONFIG_RTC_DRV_M48T86 is not set | 1480 | # CONFIG_RTC_DRV_M48T86 is not set |
1438 | # CONFIG_RTC_DRV_M48T35 is not set | 1481 | # CONFIG_RTC_DRV_M48T35 is not set |
1439 | # CONFIG_RTC_DRV_M48T59 is not set | 1482 | # CONFIG_RTC_DRV_M48T59 is not set |
1483 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1440 | # CONFIG_RTC_DRV_BQ4802 is not set | 1484 | # CONFIG_RTC_DRV_BQ4802 is not set |
1485 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1441 | # CONFIG_RTC_DRV_V3020 is not set | 1486 | # CONFIG_RTC_DRV_V3020 is not set |
1442 | 1487 | ||
1443 | # | 1488 | # |
@@ -1466,7 +1511,6 @@ CONFIG_EXT3_FS_XATTR=y | |||
1466 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 1511 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
1467 | # CONFIG_EXT3_FS_SECURITY is not set | 1512 | # CONFIG_EXT3_FS_SECURITY is not set |
1468 | CONFIG_EXT4_FS=y | 1513 | CONFIG_EXT4_FS=y |
1469 | # CONFIG_EXT4DEV_COMPAT is not set | ||
1470 | CONFIG_EXT4_FS_XATTR=y | 1514 | CONFIG_EXT4_FS_XATTR=y |
1471 | # CONFIG_EXT4_FS_POSIX_ACL is not set | 1515 | # CONFIG_EXT4_FS_POSIX_ACL is not set |
1472 | # CONFIG_EXT4_FS_SECURITY is not set | 1516 | # CONFIG_EXT4_FS_SECURITY is not set |
@@ -1687,9 +1731,6 @@ CONFIG_TRACING_SUPPORT=y | |||
1687 | CONFIG_HAVE_ARCH_KGDB=y | 1731 | CONFIG_HAVE_ARCH_KGDB=y |
1688 | # CONFIG_KGDB is not set | 1732 | # CONFIG_KGDB is not set |
1689 | # CONFIG_SH_STANDARD_BIOS is not set | 1733 | # CONFIG_SH_STANDARD_BIOS is not set |
1690 | CONFIG_EARLY_SCIF_CONSOLE=y | ||
1691 | CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffeb0000 | ||
1692 | CONFIG_EARLY_PRINTK=y | ||
1693 | # CONFIG_STACK_DEBUG is not set | 1734 | # CONFIG_STACK_DEBUG is not set |
1694 | # CONFIG_DEBUG_STACK_USAGE is not set | 1735 | # CONFIG_DEBUG_STACK_USAGE is not set |
1695 | # CONFIG_4KSTACKS is not set | 1736 | # CONFIG_4KSTACKS is not set |
@@ -1703,7 +1744,11 @@ CONFIG_EARLY_PRINTK=y | |||
1703 | # CONFIG_KEYS is not set | 1744 | # CONFIG_KEYS is not set |
1704 | # CONFIG_SECURITY is not set | 1745 | # CONFIG_SECURITY is not set |
1705 | # CONFIG_SECURITYFS is not set | 1746 | # CONFIG_SECURITYFS is not set |
1706 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1747 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1748 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1749 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1750 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1751 | CONFIG_DEFAULT_SECURITY="" | ||
1707 | CONFIG_CRYPTO=y | 1752 | CONFIG_CRYPTO=y |
1708 | 1753 | ||
1709 | # | 1754 | # |
diff --git a/arch/sh/include/asm/timex.h b/arch/sh/include/asm/timex.h index b556d49e5f2..18bf06d9c76 100644 --- a/arch/sh/include/asm/timex.h +++ b/arch/sh/include/asm/timex.h | |||
@@ -6,7 +6,17 @@ | |||
6 | #ifndef __ASM_SH_TIMEX_H | 6 | #ifndef __ASM_SH_TIMEX_H |
7 | #define __ASM_SH_TIMEX_H | 7 | #define __ASM_SH_TIMEX_H |
8 | 8 | ||
9 | /* | ||
10 | * Only parts using the legacy CPG code for their clock framework | ||
11 | * implementation need to define their own Pclk value. If provided, this | ||
12 | * can be used for accurately setting CLOCK_TICK_RATE, otherwise we | ||
13 | * simply fall back on the i8253 PIT value. | ||
14 | */ | ||
15 | #ifdef CONFIG_SH_PCLK_FREQ | ||
9 | #define CLOCK_TICK_RATE (CONFIG_SH_PCLK_FREQ / 4) /* Underlying HZ */ | 16 | #define CLOCK_TICK_RATE (CONFIG_SH_PCLK_FREQ / 4) /* Underlying HZ */ |
17 | #else | ||
18 | #define CLOCK_TICK_RATE 1193180 | ||
19 | #endif | ||
10 | 20 | ||
11 | #include <asm-generic/timex.h> | 21 | #include <asm-generic/timex.h> |
12 | 22 | ||
diff --git a/arch/sh/include/asm/unistd_32.h b/arch/sh/include/asm/unistd_32.h index f18c4f9baf2..365744b0526 100644 --- a/arch/sh/include/asm/unistd_32.h +++ b/arch/sh/include/asm/unistd_32.h | |||
@@ -345,12 +345,13 @@ | |||
345 | #define __NR_pwritev 334 | 345 | #define __NR_pwritev 334 |
346 | #define __NR_rt_tgsigqueueinfo 335 | 346 | #define __NR_rt_tgsigqueueinfo 335 |
347 | #define __NR_perf_event_open 336 | 347 | #define __NR_perf_event_open 336 |
348 | #define __NR_recvmmsg 337 | ||
349 | 348 | ||
350 | #define NR_syscalls 338 | 349 | #define NR_syscalls 337 |
351 | 350 | ||
352 | #ifdef __KERNEL__ | 351 | #ifdef __KERNEL__ |
353 | 352 | ||
353 | #define __IGNORE_recvmmsg | ||
354 | |||
354 | #define __ARCH_WANT_IPC_PARSE_VERSION | 355 | #define __ARCH_WANT_IPC_PARSE_VERSION |
355 | #define __ARCH_WANT_OLD_READDIR | 356 | #define __ARCH_WANT_OLD_READDIR |
356 | #define __ARCH_WANT_OLD_STAT | 357 | #define __ARCH_WANT_OLD_STAT |
diff --git a/arch/sh/include/asm/unistd_64.h b/arch/sh/include/asm/unistd_64.h index 3e7645d1113..25de158aac3 100644 --- a/arch/sh/include/asm/unistd_64.h +++ b/arch/sh/include/asm/unistd_64.h | |||
@@ -386,10 +386,11 @@ | |||
386 | #define __NR_rt_tgsigqueueinfo 363 | 386 | #define __NR_rt_tgsigqueueinfo 363 |
387 | #define __NR_perf_event_open 364 | 387 | #define __NR_perf_event_open 364 |
388 | #define __NR_recvmmsg 365 | 388 | #define __NR_recvmmsg 365 |
389 | #define __NR_accept4 366 | ||
389 | 390 | ||
390 | #ifdef __KERNEL__ | 391 | #ifdef __KERNEL__ |
391 | 392 | ||
392 | #define NR_syscalls 366 | 393 | #define NR_syscalls 367 |
393 | 394 | ||
394 | #define __ARCH_WANT_IPC_PARSE_VERSION | 395 | #define __ARCH_WANT_IPC_PARSE_VERSION |
395 | #define __ARCH_WANT_OLD_READDIR | 396 | #define __ARCH_WANT_OLD_READDIR |
diff --git a/arch/sh/kernel/syscalls_32.S b/arch/sh/kernel/syscalls_32.S index 4bd5a114695..19fd11dd987 100644 --- a/arch/sh/kernel/syscalls_32.S +++ b/arch/sh/kernel/syscalls_32.S | |||
@@ -353,4 +353,3 @@ ENTRY(sys_call_table) | |||
353 | .long sys_pwritev | 353 | .long sys_pwritev |
354 | .long sys_rt_tgsigqueueinfo /* 335 */ | 354 | .long sys_rt_tgsigqueueinfo /* 335 */ |
355 | .long sys_perf_event_open | 355 | .long sys_perf_event_open |
356 | .long sys_recvmmsg | ||
diff --git a/arch/sh/kernel/syscalls_64.S b/arch/sh/kernel/syscalls_64.S index 07d2aaea9ae..2048a20d7c8 100644 --- a/arch/sh/kernel/syscalls_64.S +++ b/arch/sh/kernel/syscalls_64.S | |||
@@ -392,3 +392,4 @@ sys_call_table: | |||
392 | .long sys_rt_tgsigqueueinfo | 392 | .long sys_rt_tgsigqueueinfo |
393 | .long sys_perf_event_open | 393 | .long sys_perf_event_open |
394 | .long sys_recvmmsg /* 365 */ | 394 | .long sys_recvmmsg /* 365 */ |
395 | .long sys_accept4 | ||
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig index 0e7ba8e891c..986a71b88ca 100644 --- a/arch/sh/mm/Kconfig +++ b/arch/sh/mm/Kconfig | |||
@@ -82,8 +82,7 @@ config 32BIT | |||
82 | 82 | ||
83 | config PMB_ENABLE | 83 | config PMB_ENABLE |
84 | bool "Support 32-bit physical addressing through PMB" | 84 | bool "Support 32-bit physical addressing through PMB" |
85 | depends on MMU && EXPERIMENTAL && CPU_SH4A | 85 | depends on MMU && EXPERIMENTAL && CPU_SH4A && !CPU_SH4AL_DSP |
86 | default y | ||
87 | help | 86 | help |
88 | If you say Y here, physical addressing will be extended to | 87 | If you say Y here, physical addressing will be extended to |
89 | 32-bits through the SH-4A PMB. If this is not set, legacy | 88 | 32-bits through the SH-4A PMB. If this is not set, legacy |
@@ -96,7 +95,7 @@ choice | |||
96 | 95 | ||
97 | config PMB | 96 | config PMB |
98 | bool "PMB" | 97 | bool "PMB" |
99 | depends on MMU && EXPERIMENTAL && CPU_SH4A | 98 | depends on MMU && EXPERIMENTAL && CPU_SH4A && !CPU_SH4AL_DSP |
100 | help | 99 | help |
101 | If you say Y here, physical addressing will be extended to | 100 | If you say Y here, physical addressing will be extended to |
102 | 32-bits through the SH-4A PMB. If this is not set, legacy | 101 | 32-bits through the SH-4A PMB. If this is not set, legacy |
@@ -104,7 +103,7 @@ config PMB | |||
104 | 103 | ||
105 | config PMB_FIXED | 104 | config PMB_FIXED |
106 | bool "fixed PMB" | 105 | bool "fixed PMB" |
107 | depends on MMU && EXPERIMENTAL && CPU_SH4A | 106 | depends on MMU && EXPERIMENTAL && CPU_SH4A && !CPU_SH4AL_DSP |
108 | select 32BIT | 107 | select 32BIT |
109 | help | 108 | help |
110 | If this option is enabled, fixed PMB mappings are inherited | 109 | If this option is enabled, fixed PMB mappings are inherited |
diff --git a/arch/sh/tools/Makefile b/arch/sh/tools/Makefile index 558a56bcc7c..2082af1f3fe 100644 --- a/arch/sh/tools/Makefile +++ b/arch/sh/tools/Makefile | |||
@@ -13,4 +13,4 @@ | |||
13 | include/generated/machtypes.h: $(src)/gen-mach-types $(src)/mach-types | 13 | include/generated/machtypes.h: $(src)/gen-mach-types $(src)/mach-types |
14 | @echo ' Generating $@' | 14 | @echo ' Generating $@' |
15 | $(Q)mkdir -p $(dir $@) | 15 | $(Q)mkdir -p $(dir $@) |
16 | $(Q)$(AWK) -f $^ > $@ || { rm -f $@; /bin/false; } | 16 | $(Q)LC_ALL=C $(AWK) -f $^ > $@ || { rm -f $@; /bin/false; } |
diff --git a/arch/sparc/kernel/nmi.c b/arch/sparc/kernel/nmi.c index f30f4a1ead2..d242a734054 100644 --- a/arch/sparc/kernel/nmi.c +++ b/arch/sparc/kernel/nmi.c | |||
@@ -96,7 +96,6 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs) | |||
96 | int cpu = smp_processor_id(); | 96 | int cpu = smp_processor_id(); |
97 | 97 | ||
98 | clear_softint(1 << irq); | 98 | clear_softint(1 << irq); |
99 | pcr_ops->write(PCR_PIC_PRIV); | ||
100 | 99 | ||
101 | local_cpu_data().__nmi_count++; | 100 | local_cpu_data().__nmi_count++; |
102 | 101 | ||
@@ -105,6 +104,8 @@ notrace __kprobes void perfctr_irq(int irq, struct pt_regs *regs) | |||
105 | if (notify_die(DIE_NMI, "nmi", regs, 0, | 104 | if (notify_die(DIE_NMI, "nmi", regs, 0, |
106 | pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP) | 105 | pt_regs_trap_type(regs), SIGINT) == NOTIFY_STOP) |
107 | touched = 1; | 106 | touched = 1; |
107 | else | ||
108 | pcr_ops->write(PCR_PIC_PRIV); | ||
108 | 109 | ||
109 | sum = kstat_irqs_cpu(0, cpu); | 110 | sum = kstat_irqs_cpu(0, cpu); |
110 | if (__get_cpu_var(nmi_touch)) { | 111 | if (__get_cpu_var(nmi_touch)) { |
diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c index fa5936e1c3b..198fb4e79ba 100644 --- a/arch/sparc/kernel/perf_event.c +++ b/arch/sparc/kernel/perf_event.c | |||
@@ -986,6 +986,17 @@ static int __kprobes perf_event_nmi_handler(struct notifier_block *self, | |||
986 | data.addr = 0; | 986 | data.addr = 0; |
987 | 987 | ||
988 | cpuc = &__get_cpu_var(cpu_hw_events); | 988 | cpuc = &__get_cpu_var(cpu_hw_events); |
989 | |||
990 | /* If the PMU has the TOE IRQ enable bits, we need to do a | ||
991 | * dummy write to the %pcr to clear the overflow bits and thus | ||
992 | * the interrupt. | ||
993 | * | ||
994 | * Do this before we peek at the counters to determine | ||
995 | * overflow so we don't lose any events. | ||
996 | */ | ||
997 | if (sparc_pmu->irq_bit) | ||
998 | pcr_ops->write(cpuc->pcr); | ||
999 | |||
989 | for (idx = 0; idx < MAX_HWEVENTS; idx++) { | 1000 | for (idx = 0; idx < MAX_HWEVENTS; idx++) { |
990 | struct perf_event *event = cpuc->events[idx]; | 1001 | struct perf_event *event = cpuc->events[idx]; |
991 | struct hw_perf_event *hwc; | 1002 | struct hw_perf_event *hwc; |
diff --git a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c index 51069245b79..3b3c36601a7 100644 --- a/arch/um/drivers/mconsole_kern.c +++ b/arch/um/drivers/mconsole_kern.c | |||
@@ -125,50 +125,36 @@ void mconsole_log(struct mc_request *req) | |||
125 | void mconsole_proc(struct mc_request *req) | 125 | void mconsole_proc(struct mc_request *req) |
126 | { | 126 | { |
127 | struct nameidata nd; | 127 | struct nameidata nd; |
128 | struct file_system_type *proc; | 128 | struct vfsmount *mnt = current->nsproxy->pid_ns->proc_mnt; |
129 | struct super_block *super; | ||
130 | struct file *file; | 129 | struct file *file; |
131 | int n, err; | 130 | int n, err; |
132 | char *ptr = req->request.data, *buf; | 131 | char *ptr = req->request.data, *buf; |
132 | mm_segment_t old_fs = get_fs(); | ||
133 | 133 | ||
134 | ptr += strlen("proc"); | 134 | ptr += strlen("proc"); |
135 | ptr = skip_spaces(ptr); | 135 | ptr = skip_spaces(ptr); |
136 | 136 | ||
137 | proc = get_fs_type("proc"); | 137 | err = vfs_path_lookup(mnt->mnt_root, mnt, ptr, LOOKUP_FOLLOW, &nd); |
138 | if (proc == NULL) { | 138 | if (err) { |
139 | mconsole_reply(req, "procfs not registered", 1, 0); | 139 | mconsole_reply(req, "Failed to look up file", 1, 0); |
140 | goto out; | 140 | goto out; |
141 | } | 141 | } |
142 | 142 | ||
143 | super = (*proc->get_sb)(proc, 0, NULL, NULL); | 143 | err = may_open(&nd.path, MAY_READ, FMODE_READ); |
144 | put_filesystem(proc); | 144 | if (result) { |
145 | if (super == NULL) { | 145 | mconsole_reply(req, "Failed to open file", 1, 0); |
146 | mconsole_reply(req, "Failed to get procfs superblock", 1, 0); | 146 | path_put(&nd.path); |
147 | goto out; | 147 | goto out; |
148 | } | 148 | } |
149 | up_write(&super->s_umount); | ||
150 | |||
151 | nd.path.dentry = super->s_root; | ||
152 | nd.path.mnt = NULL; | ||
153 | nd.flags = O_RDONLY + 1; | ||
154 | nd.last_type = LAST_ROOT; | ||
155 | |||
156 | /* START: it was experienced that the stability problems are closed | ||
157 | * if commenting out these two calls + the below read cycle. To | ||
158 | * make UML crash again, it was enough to readd either one.*/ | ||
159 | err = link_path_walk(ptr, &nd); | ||
160 | if (err) { | ||
161 | mconsole_reply(req, "Failed to look up file", 1, 0); | ||
162 | goto out_kill; | ||
163 | } | ||
164 | 149 | ||
165 | file = dentry_open(nd.path.dentry, nd.path.mnt, O_RDONLY, | 150 | file = dentry_open(nd.path.dentry, nd.path.mnt, O_RDONLY, |
166 | current_cred()); | 151 | current_cred()); |
152 | err = PTR_ERR(file); | ||
167 | if (IS_ERR(file)) { | 153 | if (IS_ERR(file)) { |
168 | mconsole_reply(req, "Failed to open file", 1, 0); | 154 | mconsole_reply(req, "Failed to open file", 1, 0); |
169 | goto out_kill; | 155 | path_put(&nd.path); |
156 | goto out; | ||
170 | } | 157 | } |
171 | /*END*/ | ||
172 | 158 | ||
173 | buf = kmalloc(PAGE_SIZE, GFP_KERNEL); | 159 | buf = kmalloc(PAGE_SIZE, GFP_KERNEL); |
174 | if (buf == NULL) { | 160 | if (buf == NULL) { |
@@ -176,10 +162,13 @@ void mconsole_proc(struct mc_request *req) | |||
176 | goto out_fput; | 162 | goto out_fput; |
177 | } | 163 | } |
178 | 164 | ||
179 | if ((file->f_op != NULL) && (file->f_op->read != NULL)) { | 165 | if (file->f_op->read) { |
180 | do { | 166 | do { |
181 | n = (*file->f_op->read)(file, buf, PAGE_SIZE - 1, | 167 | loff_t pos; |
182 | &file->f_pos); | 168 | set_fs(KERNEL_DS); |
169 | n = vfs_read(file, buf, PAGE_SIZE - 1, &pos); | ||
170 | file_pos_write(file, pos); | ||
171 | set_fs(old_fs); | ||
183 | if (n >= 0) { | 172 | if (n >= 0) { |
184 | buf[n] = '\0'; | 173 | buf[n] = '\0'; |
185 | mconsole_reply(req, buf, 0, (n > 0)); | 174 | mconsole_reply(req, buf, 0, (n > 0)); |
@@ -197,8 +186,6 @@ void mconsole_proc(struct mc_request *req) | |||
197 | kfree(buf); | 186 | kfree(buf); |
198 | out_fput: | 187 | out_fput: |
199 | fput(file); | 188 | fput(file); |
200 | out_kill: | ||
201 | deactivate_super(super); | ||
202 | out: ; | 189 | out: ; |
203 | } | 190 | } |
204 | #endif | 191 | #endif |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 55298e89157..cbcbfdee3ee 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -49,6 +49,7 @@ config X86 | |||
49 | select HAVE_KERNEL_GZIP | 49 | select HAVE_KERNEL_GZIP |
50 | select HAVE_KERNEL_BZIP2 | 50 | select HAVE_KERNEL_BZIP2 |
51 | select HAVE_KERNEL_LZMA | 51 | select HAVE_KERNEL_LZMA |
52 | select HAVE_KERNEL_LZO | ||
52 | select HAVE_HW_BREAKPOINT | 53 | select HAVE_HW_BREAKPOINT |
53 | select PERF_EVENTS | 54 | select PERF_EVENTS |
54 | select ANON_INODES | 55 | select ANON_INODES |
@@ -1246,6 +1247,11 @@ config ARCH_MEMORY_PROBE | |||
1246 | def_bool X86_64 | 1247 | def_bool X86_64 |
1247 | depends on MEMORY_HOTPLUG | 1248 | depends on MEMORY_HOTPLUG |
1248 | 1249 | ||
1250 | config ILLEGAL_POINTER_VALUE | ||
1251 | hex | ||
1252 | default 0 if X86_32 | ||
1253 | default 0xdead000000000000 if X86_64 | ||
1254 | |||
1249 | source "mm/Kconfig" | 1255 | source "mm/Kconfig" |
1250 | 1256 | ||
1251 | config HIGHPTE | 1257 | config HIGHPTE |
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu index 08e442bc3ab..f20ddf84a89 100644 --- a/arch/x86/Kconfig.cpu +++ b/arch/x86/Kconfig.cpu | |||
@@ -396,7 +396,7 @@ config X86_TSC | |||
396 | 396 | ||
397 | config X86_CMPXCHG64 | 397 | config X86_CMPXCHG64 |
398 | def_bool y | 398 | def_bool y |
399 | depends on !M386 && !M486 | 399 | depends on X86_PAE || X86_64 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MATOM |
400 | 400 | ||
401 | # this should be set for all -march=.. options where the compiler | 401 | # this should be set for all -march=.. options where the compiler |
402 | # generates cmov. | 402 | # generates cmov. |
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile index f8ed0658404..fbb47daf245 100644 --- a/arch/x86/boot/compressed/Makefile +++ b/arch/x86/boot/compressed/Makefile | |||
@@ -4,11 +4,12 @@ | |||
4 | # create a compressed vmlinux image from the original vmlinux | 4 | # create a compressed vmlinux image from the original vmlinux |
5 | # | 5 | # |
6 | 6 | ||
7 | targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma head_$(BITS).o misc.o piggy.o | 7 | targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma vmlinux.bin.lzo head_$(BITS).o misc.o piggy.o |
8 | 8 | ||
9 | KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2 | 9 | KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2 |
10 | KBUILD_CFLAGS += -fno-strict-aliasing -fPIC | 10 | KBUILD_CFLAGS += -fno-strict-aliasing -fPIC |
11 | KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING | 11 | KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING |
12 | cflags-$(CONFIG_X86_32) := -march=i386 | ||
12 | cflags-$(CONFIG_X86_64) := -mcmodel=small | 13 | cflags-$(CONFIG_X86_64) := -mcmodel=small |
13 | KBUILD_CFLAGS += $(cflags-y) | 14 | KBUILD_CFLAGS += $(cflags-y) |
14 | KBUILD_CFLAGS += $(call cc-option,-ffreestanding) | 15 | KBUILD_CFLAGS += $(call cc-option,-ffreestanding) |
@@ -48,10 +49,13 @@ $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE | |||
48 | $(call if_changed,bzip2) | 49 | $(call if_changed,bzip2) |
49 | $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE | 50 | $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE |
50 | $(call if_changed,lzma) | 51 | $(call if_changed,lzma) |
52 | $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE | ||
53 | $(call if_changed,lzo) | ||
51 | 54 | ||
52 | suffix-$(CONFIG_KERNEL_GZIP) := gz | 55 | suffix-$(CONFIG_KERNEL_GZIP) := gz |
53 | suffix-$(CONFIG_KERNEL_BZIP2) := bz2 | 56 | suffix-$(CONFIG_KERNEL_BZIP2) := bz2 |
54 | suffix-$(CONFIG_KERNEL_LZMA) := lzma | 57 | suffix-$(CONFIG_KERNEL_LZMA) := lzma |
58 | suffix-$(CONFIG_KERNEL_LZO) := lzo | ||
55 | 59 | ||
56 | quiet_cmd_mkpiggy = MKPIGGY $@ | 60 | quiet_cmd_mkpiggy = MKPIGGY $@ |
57 | cmd_mkpiggy = $(obj)/mkpiggy $< > $@ || ( rm -f $@ ; false ) | 61 | cmd_mkpiggy = $(obj)/mkpiggy $< > $@ || ( rm -f $@ ; false ) |
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c index 842b2a36174..3b22fe8ab91 100644 --- a/arch/x86/boot/compressed/misc.c +++ b/arch/x86/boot/compressed/misc.c | |||
@@ -162,6 +162,10 @@ static int lines, cols; | |||
162 | #include "../../../../lib/decompress_unlzma.c" | 162 | #include "../../../../lib/decompress_unlzma.c" |
163 | #endif | 163 | #endif |
164 | 164 | ||
165 | #ifdef CONFIG_KERNEL_LZO | ||
166 | #include "../../../../lib/decompress_unlzo.c" | ||
167 | #endif | ||
168 | |||
165 | static void scroll(void) | 169 | static void scroll(void) |
166 | { | 170 | { |
167 | int i; | 171 | int i; |
diff --git a/arch/x86/include/asm/kvm.h b/arch/x86/include/asm/kvm.h index 950df434763..f46b79f6c16 100644 --- a/arch/x86/include/asm/kvm.h +++ b/arch/x86/include/asm/kvm.h | |||
@@ -254,6 +254,10 @@ struct kvm_reinject_control { | |||
254 | __u8 reserved[31]; | 254 | __u8 reserved[31]; |
255 | }; | 255 | }; |
256 | 256 | ||
257 | /* When set in flags, include corresponding fields on KVM_SET_VCPU_EVENTS */ | ||
258 | #define KVM_VCPUEVENT_VALID_NMI_PENDING 0x00000001 | ||
259 | #define KVM_VCPUEVENT_VALID_SIPI_VECTOR 0x00000002 | ||
260 | |||
257 | /* for KVM_GET/SET_VCPU_EVENTS */ | 261 | /* for KVM_GET/SET_VCPU_EVENTS */ |
258 | struct kvm_vcpu_events { | 262 | struct kvm_vcpu_events { |
259 | struct { | 263 | struct { |
diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h index 858baa061cf..6c3fdd631ed 100644 --- a/arch/x86/include/asm/mce.h +++ b/arch/x86/include/asm/mce.h | |||
@@ -108,10 +108,11 @@ struct mce_log { | |||
108 | #define K8_MCE_THRESHOLD_BANK_5 (MCE_THRESHOLD_BASE + 5 * 9) | 108 | #define K8_MCE_THRESHOLD_BANK_5 (MCE_THRESHOLD_BASE + 5 * 9) |
109 | #define K8_MCE_THRESHOLD_DRAM_ECC (MCE_THRESHOLD_BANK_4 + 0) | 109 | #define K8_MCE_THRESHOLD_DRAM_ECC (MCE_THRESHOLD_BANK_4 + 0) |
110 | 110 | ||
111 | extern struct atomic_notifier_head x86_mce_decoder_chain; | ||
112 | 111 | ||
113 | #ifdef __KERNEL__ | 112 | #ifdef __KERNEL__ |
114 | 113 | ||
114 | extern struct atomic_notifier_head x86_mce_decoder_chain; | ||
115 | |||
115 | #include <linux/percpu.h> | 116 | #include <linux/percpu.h> |
116 | #include <linux/init.h> | 117 | #include <linux/init.h> |
117 | #include <asm/atomic.h> | 118 | #include <asm/atomic.h> |
diff --git a/arch/x86/include/asm/perf_event.h b/arch/x86/include/asm/perf_event.h index 8d9f8548a87..1380367dabd 100644 --- a/arch/x86/include/asm/perf_event.h +++ b/arch/x86/include/asm/perf_event.h | |||
@@ -19,6 +19,7 @@ | |||
19 | #define MSR_ARCH_PERFMON_EVENTSEL1 0x187 | 19 | #define MSR_ARCH_PERFMON_EVENTSEL1 0x187 |
20 | 20 | ||
21 | #define ARCH_PERFMON_EVENTSEL0_ENABLE (1 << 22) | 21 | #define ARCH_PERFMON_EVENTSEL0_ENABLE (1 << 22) |
22 | #define ARCH_PERFMON_EVENTSEL_ANY (1 << 21) | ||
22 | #define ARCH_PERFMON_EVENTSEL_INT (1 << 20) | 23 | #define ARCH_PERFMON_EVENTSEL_INT (1 << 20) |
23 | #define ARCH_PERFMON_EVENTSEL_OS (1 << 17) | 24 | #define ARCH_PERFMON_EVENTSEL_OS (1 << 17) |
24 | #define ARCH_PERFMON_EVENTSEL_USR (1 << 16) | 25 | #define ARCH_PERFMON_EVENTSEL_USR (1 << 16) |
diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h index 0c9825e97f3..088d09fb161 100644 --- a/arch/x86/include/asm/uaccess_32.h +++ b/arch/x86/include/asm/uaccess_32.h | |||
@@ -205,14 +205,13 @@ static inline unsigned long __must_check copy_from_user(void *to, | |||
205 | unsigned long n) | 205 | unsigned long n) |
206 | { | 206 | { |
207 | int sz = __compiletime_object_size(to); | 207 | int sz = __compiletime_object_size(to); |
208 | int ret = -EFAULT; | ||
209 | 208 | ||
210 | if (likely(sz == -1 || sz >= n)) | 209 | if (likely(sz == -1 || sz >= n)) |
211 | ret = _copy_from_user(to, from, n); | 210 | n = _copy_from_user(to, from, n); |
212 | else | 211 | else |
213 | copy_from_user_overflow(); | 212 | copy_from_user_overflow(); |
214 | 213 | ||
215 | return ret; | 214 | return n; |
216 | } | 215 | } |
217 | 216 | ||
218 | long __must_check strncpy_from_user(char *dst, const char __user *src, | 217 | long __must_check strncpy_from_user(char *dst, const char __user *src, |
diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h index 46324c6a4f6..535e421498f 100644 --- a/arch/x86/include/asm/uaccess_64.h +++ b/arch/x86/include/asm/uaccess_64.h | |||
@@ -30,16 +30,15 @@ static inline unsigned long __must_check copy_from_user(void *to, | |||
30 | unsigned long n) | 30 | unsigned long n) |
31 | { | 31 | { |
32 | int sz = __compiletime_object_size(to); | 32 | int sz = __compiletime_object_size(to); |
33 | int ret = -EFAULT; | ||
34 | 33 | ||
35 | might_fault(); | 34 | might_fault(); |
36 | if (likely(sz == -1 || sz >= n)) | 35 | if (likely(sz == -1 || sz >= n)) |
37 | ret = _copy_from_user(to, from, n); | 36 | n = _copy_from_user(to, from, n); |
38 | #ifdef CONFIG_DEBUG_VM | 37 | #ifdef CONFIG_DEBUG_VM |
39 | else | 38 | else |
40 | WARN(1, "Buffer overflow detected!\n"); | 39 | WARN(1, "Buffer overflow detected!\n"); |
41 | #endif | 40 | #endif |
42 | return ret; | 41 | return n; |
43 | } | 42 | } |
44 | 43 | ||
45 | static __always_inline __must_check | 44 | static __always_inline __must_check |
diff --git a/arch/x86/include/asm/uv/uv_hub.h b/arch/x86/include/asm/uv/uv_hub.h index 811bfabc80b..40be813fefb 100644 --- a/arch/x86/include/asm/uv/uv_hub.h +++ b/arch/x86/include/asm/uv/uv_hub.h | |||
@@ -31,20 +31,20 @@ | |||
31 | * contiguous (although various IO spaces may punch holes in | 31 | * contiguous (although various IO spaces may punch holes in |
32 | * it).. | 32 | * it).. |
33 | * | 33 | * |
34 | * N - Number of bits in the node portion of a socket physical | 34 | * N - Number of bits in the node portion of a socket physical |
35 | * address. | 35 | * address. |
36 | * | 36 | * |
37 | * NASID - network ID of a router, Mbrick or Cbrick. Nasid values of | 37 | * NASID - network ID of a router, Mbrick or Cbrick. Nasid values of |
38 | * routers always have low bit of 1, C/MBricks have low bit | 38 | * routers always have low bit of 1, C/MBricks have low bit |
39 | * equal to 0. Most addressing macros that target UV hub chips | 39 | * equal to 0. Most addressing macros that target UV hub chips |
40 | * right shift the NASID by 1 to exclude the always-zero bit. | 40 | * right shift the NASID by 1 to exclude the always-zero bit. |
41 | * NASIDs contain up to 15 bits. | 41 | * NASIDs contain up to 15 bits. |
42 | * | 42 | * |
43 | * GNODE - NASID right shifted by 1 bit. Most mmrs contain gnodes instead | 43 | * GNODE - NASID right shifted by 1 bit. Most mmrs contain gnodes instead |
44 | * of nasids. | 44 | * of nasids. |
45 | * | 45 | * |
46 | * PNODE - the low N bits of the GNODE. The PNODE is the most useful variant | 46 | * PNODE - the low N bits of the GNODE. The PNODE is the most useful variant |
47 | * of the nasid for socket usage. | 47 | * of the nasid for socket usage. |
48 | * | 48 | * |
49 | * | 49 | * |
50 | * NumaLink Global Physical Address Format: | 50 | * NumaLink Global Physical Address Format: |
@@ -71,12 +71,12 @@ | |||
71 | * | 71 | * |
72 | * | 72 | * |
73 | * APICID format | 73 | * APICID format |
74 | * NOTE!!!!!! This is the current format of the APICID. However, code | 74 | * NOTE!!!!!! This is the current format of the APICID. However, code |
75 | * should assume that this will change in the future. Use functions | 75 | * should assume that this will change in the future. Use functions |
76 | * in this file for all APICID bit manipulations and conversion. | 76 | * in this file for all APICID bit manipulations and conversion. |
77 | * | 77 | * |
78 | * 1111110000000000 | 78 | * 1111110000000000 |
79 | * 5432109876543210 | 79 | * 5432109876543210 |
80 | * pppppppppplc0cch | 80 | * pppppppppplc0cch |
81 | * sssssssssss | 81 | * sssssssssss |
82 | * | 82 | * |
@@ -89,9 +89,9 @@ | |||
89 | * Note: Processor only supports 12 bits in the APICID register. The ACPI | 89 | * Note: Processor only supports 12 bits in the APICID register. The ACPI |
90 | * tables hold all 16 bits. Software needs to be aware of this. | 90 | * tables hold all 16 bits. Software needs to be aware of this. |
91 | * | 91 | * |
92 | * Unless otherwise specified, all references to APICID refer to | 92 | * Unless otherwise specified, all references to APICID refer to |
93 | * the FULL value contained in ACPI tables, not the subset in the | 93 | * the FULL value contained in ACPI tables, not the subset in the |
94 | * processor APICID register. | 94 | * processor APICID register. |
95 | */ | 95 | */ |
96 | 96 | ||
97 | 97 | ||
@@ -151,16 +151,16 @@ struct uv_hub_info_s { | |||
151 | }; | 151 | }; |
152 | 152 | ||
153 | DECLARE_PER_CPU(struct uv_hub_info_s, __uv_hub_info); | 153 | DECLARE_PER_CPU(struct uv_hub_info_s, __uv_hub_info); |
154 | #define uv_hub_info (&__get_cpu_var(__uv_hub_info)) | 154 | #define uv_hub_info (&__get_cpu_var(__uv_hub_info)) |
155 | #define uv_cpu_hub_info(cpu) (&per_cpu(__uv_hub_info, cpu)) | 155 | #define uv_cpu_hub_info(cpu) (&per_cpu(__uv_hub_info, cpu)) |
156 | 156 | ||
157 | /* | 157 | /* |
158 | * Local & Global MMR space macros. | 158 | * Local & Global MMR space macros. |
159 | * Note: macros are intended to be used ONLY by inline functions | 159 | * Note: macros are intended to be used ONLY by inline functions |
160 | * in this file - not by other kernel code. | 160 | * in this file - not by other kernel code. |
161 | * n - NASID (full 15-bit global nasid) | 161 | * n - NASID (full 15-bit global nasid) |
162 | * g - GNODE (full 15-bit global nasid, right shifted 1) | 162 | * g - GNODE (full 15-bit global nasid, right shifted 1) |
163 | * p - PNODE (local part of nsids, right shifted 1) | 163 | * p - PNODE (local part of nsids, right shifted 1) |
164 | */ | 164 | */ |
165 | #define UV_NASID_TO_PNODE(n) (((n) >> 1) & uv_hub_info->pnode_mask) | 165 | #define UV_NASID_TO_PNODE(n) (((n) >> 1) & uv_hub_info->pnode_mask) |
166 | #define UV_PNODE_TO_GNODE(p) ((p) |uv_hub_info->gnode_extra) | 166 | #define UV_PNODE_TO_GNODE(p) ((p) |uv_hub_info->gnode_extra) |
@@ -215,8 +215,8 @@ DECLARE_PER_CPU(struct uv_hub_info_s, __uv_hub_info); | |||
215 | /* | 215 | /* |
216 | * Macros for converting between kernel virtual addresses, socket local physical | 216 | * Macros for converting between kernel virtual addresses, socket local physical |
217 | * addresses, and UV global physical addresses. | 217 | * addresses, and UV global physical addresses. |
218 | * Note: use the standard __pa() & __va() macros for converting | 218 | * Note: use the standard __pa() & __va() macros for converting |
219 | * between socket virtual and socket physical addresses. | 219 | * between socket virtual and socket physical addresses. |
220 | */ | 220 | */ |
221 | 221 | ||
222 | /* socket phys RAM --> UV global physical address */ | 222 | /* socket phys RAM --> UV global physical address */ |
@@ -287,21 +287,18 @@ static inline int uv_apicid_to_pnode(int apicid) | |||
287 | * Access global MMRs using the low memory MMR32 space. This region supports | 287 | * Access global MMRs using the low memory MMR32 space. This region supports |
288 | * faster MMR access but not all MMRs are accessible in this space. | 288 | * faster MMR access but not all MMRs are accessible in this space. |
289 | */ | 289 | */ |
290 | static inline unsigned long *uv_global_mmr32_address(int pnode, | 290 | static inline unsigned long *uv_global_mmr32_address(int pnode, unsigned long offset) |
291 | unsigned long offset) | ||
292 | { | 291 | { |
293 | return __va(UV_GLOBAL_MMR32_BASE | | 292 | return __va(UV_GLOBAL_MMR32_BASE | |
294 | UV_GLOBAL_MMR32_PNODE_BITS(pnode) | offset); | 293 | UV_GLOBAL_MMR32_PNODE_BITS(pnode) | offset); |
295 | } | 294 | } |
296 | 295 | ||
297 | static inline void uv_write_global_mmr32(int pnode, unsigned long offset, | 296 | static inline void uv_write_global_mmr32(int pnode, unsigned long offset, unsigned long val) |
298 | unsigned long val) | ||
299 | { | 297 | { |
300 | writeq(val, uv_global_mmr32_address(pnode, offset)); | 298 | writeq(val, uv_global_mmr32_address(pnode, offset)); |
301 | } | 299 | } |
302 | 300 | ||
303 | static inline unsigned long uv_read_global_mmr32(int pnode, | 301 | static inline unsigned long uv_read_global_mmr32(int pnode, unsigned long offset) |
304 | unsigned long offset) | ||
305 | { | 302 | { |
306 | return readq(uv_global_mmr32_address(pnode, offset)); | 303 | return readq(uv_global_mmr32_address(pnode, offset)); |
307 | } | 304 | } |
@@ -310,21 +307,18 @@ static inline unsigned long uv_read_global_mmr32(int pnode, | |||
310 | * Access Global MMR space using the MMR space located at the top of physical | 307 | * Access Global MMR space using the MMR space located at the top of physical |
311 | * memory. | 308 | * memory. |
312 | */ | 309 | */ |
313 | static inline unsigned long *uv_global_mmr64_address(int pnode, | 310 | static inline unsigned long *uv_global_mmr64_address(int pnode, unsigned long offset) |
314 | unsigned long offset) | ||
315 | { | 311 | { |
316 | return __va(UV_GLOBAL_MMR64_BASE | | 312 | return __va(UV_GLOBAL_MMR64_BASE | |
317 | UV_GLOBAL_MMR64_PNODE_BITS(pnode) | offset); | 313 | UV_GLOBAL_MMR64_PNODE_BITS(pnode) | offset); |
318 | } | 314 | } |
319 | 315 | ||
320 | static inline void uv_write_global_mmr64(int pnode, unsigned long offset, | 316 | static inline void uv_write_global_mmr64(int pnode, unsigned long offset, unsigned long val) |
321 | unsigned long val) | ||
322 | { | 317 | { |
323 | writeq(val, uv_global_mmr64_address(pnode, offset)); | 318 | writeq(val, uv_global_mmr64_address(pnode, offset)); |
324 | } | 319 | } |
325 | 320 | ||
326 | static inline unsigned long uv_read_global_mmr64(int pnode, | 321 | static inline unsigned long uv_read_global_mmr64(int pnode, unsigned long offset) |
327 | unsigned long offset) | ||
328 | { | 322 | { |
329 | return readq(uv_global_mmr64_address(pnode, offset)); | 323 | return readq(uv_global_mmr64_address(pnode, offset)); |
330 | } | 324 | } |
@@ -338,6 +332,16 @@ static inline unsigned long uv_global_gru_mmr_address(int pnode, unsigned long o | |||
338 | return UV_GLOBAL_GRU_MMR_BASE | offset | (pnode << uv_hub_info->m_val); | 332 | return UV_GLOBAL_GRU_MMR_BASE | offset | (pnode << uv_hub_info->m_val); |
339 | } | 333 | } |
340 | 334 | ||
335 | static inline void uv_write_global_mmr8(int pnode, unsigned long offset, unsigned char val) | ||
336 | { | ||
337 | writeb(val, uv_global_mmr64_address(pnode, offset)); | ||
338 | } | ||
339 | |||
340 | static inline unsigned char uv_read_global_mmr8(int pnode, unsigned long offset) | ||
341 | { | ||
342 | return readb(uv_global_mmr64_address(pnode, offset)); | ||
343 | } | ||
344 | |||
341 | /* | 345 | /* |
342 | * Access hub local MMRs. Faster than using global space but only local MMRs | 346 | * Access hub local MMRs. Faster than using global space but only local MMRs |
343 | * are accessible. | 347 | * are accessible. |
@@ -457,11 +461,17 @@ static inline void uv_set_scir_bits(unsigned char value) | |||
457 | } | 461 | } |
458 | } | 462 | } |
459 | 463 | ||
464 | static inline unsigned long uv_scir_offset(int apicid) | ||
465 | { | ||
466 | return SCIR_LOCAL_MMR_BASE | (apicid & 0x3f); | ||
467 | } | ||
468 | |||
460 | static inline void uv_set_cpu_scir_bits(int cpu, unsigned char value) | 469 | static inline void uv_set_cpu_scir_bits(int cpu, unsigned char value) |
461 | { | 470 | { |
462 | if (uv_cpu_hub_info(cpu)->scir.state != value) { | 471 | if (uv_cpu_hub_info(cpu)->scir.state != value) { |
472 | uv_write_global_mmr8(uv_cpu_to_pnode(cpu), | ||
473 | uv_cpu_hub_info(cpu)->scir.offset, value); | ||
463 | uv_cpu_hub_info(cpu)->scir.state = value; | 474 | uv_cpu_hub_info(cpu)->scir.state = value; |
464 | uv_write_local_mmr8(uv_cpu_hub_info(cpu)->scir.offset, value); | ||
465 | } | 475 | } |
466 | } | 476 | } |
467 | 477 | ||
@@ -485,5 +495,17 @@ static inline void uv_hub_send_ipi(int pnode, int apicid, int vector) | |||
485 | uv_write_global_mmr64(pnode, UVH_IPI_INT, val); | 495 | uv_write_global_mmr64(pnode, UVH_IPI_INT, val); |
486 | } | 496 | } |
487 | 497 | ||
498 | /* | ||
499 | * Get the minimum revision number of the hub chips within the partition. | ||
500 | * 1 - initial rev 1.0 silicon | ||
501 | * 2 - rev 2.0 production silicon | ||
502 | */ | ||
503 | static inline int uv_get_min_hub_revision_id(void) | ||
504 | { | ||
505 | extern int uv_min_hub_revision_id; | ||
506 | |||
507 | return uv_min_hub_revision_id; | ||
508 | } | ||
509 | |||
488 | #endif /* CONFIG_X86_64 */ | 510 | #endif /* CONFIG_X86_64 */ |
489 | #endif /* _ASM_X86_UV_UV_HUB_H */ | 511 | #endif /* _ASM_X86_UV_UV_HUB_H */ |
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index fb1035cd9a6..036d28adf59 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
@@ -1529,16 +1529,10 @@ static struct dmi_system_id __initdata acpi_dmi_table_late[] = { | |||
1529 | * if acpi_blacklisted() acpi_disabled = 1; | 1529 | * if acpi_blacklisted() acpi_disabled = 1; |
1530 | * acpi_irq_model=... | 1530 | * acpi_irq_model=... |
1531 | * ... | 1531 | * ... |
1532 | * | ||
1533 | * return value: (currently ignored) | ||
1534 | * 0: success | ||
1535 | * !0: failure | ||
1536 | */ | 1532 | */ |
1537 | 1533 | ||
1538 | int __init acpi_boot_table_init(void) | 1534 | void __init acpi_boot_table_init(void) |
1539 | { | 1535 | { |
1540 | int error; | ||
1541 | |||
1542 | dmi_check_system(acpi_dmi_table); | 1536 | dmi_check_system(acpi_dmi_table); |
1543 | 1537 | ||
1544 | /* | 1538 | /* |
@@ -1546,15 +1540,14 @@ int __init acpi_boot_table_init(void) | |||
1546 | * One exception: acpi=ht continues far enough to enumerate LAPICs | 1540 | * One exception: acpi=ht continues far enough to enumerate LAPICs |
1547 | */ | 1541 | */ |
1548 | if (acpi_disabled && !acpi_ht) | 1542 | if (acpi_disabled && !acpi_ht) |
1549 | return 1; | 1543 | return; |
1550 | 1544 | ||
1551 | /* | 1545 | /* |
1552 | * Initialize the ACPI boot-time table parser. | 1546 | * Initialize the ACPI boot-time table parser. |
1553 | */ | 1547 | */ |
1554 | error = acpi_table_init(); | 1548 | if (acpi_table_init()) { |
1555 | if (error) { | ||
1556 | disable_acpi(); | 1549 | disable_acpi(); |
1557 | return error; | 1550 | return; |
1558 | } | 1551 | } |
1559 | 1552 | ||
1560 | acpi_table_parse(ACPI_SIG_BOOT, acpi_parse_sbf); | 1553 | acpi_table_parse(ACPI_SIG_BOOT, acpi_parse_sbf); |
@@ -1562,18 +1555,15 @@ int __init acpi_boot_table_init(void) | |||
1562 | /* | 1555 | /* |
1563 | * blacklist may disable ACPI entirely | 1556 | * blacklist may disable ACPI entirely |
1564 | */ | 1557 | */ |
1565 | error = acpi_blacklisted(); | 1558 | if (acpi_blacklisted()) { |
1566 | if (error) { | ||
1567 | if (acpi_force) { | 1559 | if (acpi_force) { |
1568 | printk(KERN_WARNING PREFIX "acpi=force override\n"); | 1560 | printk(KERN_WARNING PREFIX "acpi=force override\n"); |
1569 | } else { | 1561 | } else { |
1570 | printk(KERN_WARNING PREFIX "Disabling ACPI support\n"); | 1562 | printk(KERN_WARNING PREFIX "Disabling ACPI support\n"); |
1571 | disable_acpi(); | 1563 | disable_acpi(); |
1572 | return error; | 1564 | return; |
1573 | } | 1565 | } |
1574 | } | 1566 | } |
1575 | |||
1576 | return 0; | ||
1577 | } | 1567 | } |
1578 | 1568 | ||
1579 | int __init early_acpi_boot_init(void) | 1569 | int __init early_acpi_boot_init(void) |
diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c index 82e508677b9..f9961034e55 100644 --- a/arch/x86/kernel/acpi/sleep.c +++ b/arch/x86/kernel/acpi/sleep.c | |||
@@ -162,6 +162,8 @@ static int __init acpi_sleep_setup(char *str) | |||
162 | #endif | 162 | #endif |
163 | if (strncmp(str, "old_ordering", 12) == 0) | 163 | if (strncmp(str, "old_ordering", 12) == 0) |
164 | acpi_old_suspend_ordering(); | 164 | acpi_old_suspend_ordering(); |
165 | if (strncmp(str, "sci_force_enable", 16) == 0) | ||
166 | acpi_set_sci_en_on_resume(); | ||
165 | str = strchr(str, ','); | 167 | str = strchr(str, ','); |
166 | if (str != NULL) | 168 | if (str != NULL) |
167 | str += strspn(str, ", \t"); | 169 | str += strspn(str, ", \t"); |
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index 1dca9c34eae..fb490ce7dd5 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c | |||
@@ -138,6 +138,11 @@ int amd_iommus_present; | |||
138 | bool amd_iommu_np_cache __read_mostly; | 138 | bool amd_iommu_np_cache __read_mostly; |
139 | 139 | ||
140 | /* | 140 | /* |
141 | * Set to true if ACPI table parsing and hardware intialization went properly | ||
142 | */ | ||
143 | static bool amd_iommu_initialized; | ||
144 | |||
145 | /* | ||
141 | * List of protection domains - used during resume | 146 | * List of protection domains - used during resume |
142 | */ | 147 | */ |
143 | LIST_HEAD(amd_iommu_pd_list); | 148 | LIST_HEAD(amd_iommu_pd_list); |
@@ -929,6 +934,8 @@ static int __init init_iommu_all(struct acpi_table_header *table) | |||
929 | } | 934 | } |
930 | WARN_ON(p != end); | 935 | WARN_ON(p != end); |
931 | 936 | ||
937 | amd_iommu_initialized = true; | ||
938 | |||
932 | return 0; | 939 | return 0; |
933 | } | 940 | } |
934 | 941 | ||
@@ -1263,6 +1270,9 @@ static int __init amd_iommu_init(void) | |||
1263 | if (acpi_table_parse("IVRS", init_iommu_all) != 0) | 1270 | if (acpi_table_parse("IVRS", init_iommu_all) != 0) |
1264 | goto free; | 1271 | goto free; |
1265 | 1272 | ||
1273 | if (!amd_iommu_initialized) | ||
1274 | goto free; | ||
1275 | |||
1266 | if (acpi_table_parse("IVRS", init_memory_definitions) != 0) | 1276 | if (acpi_table_parse("IVRS", init_memory_definitions) != 0) |
1267 | goto free; | 1277 | goto free; |
1268 | 1278 | ||
diff --git a/arch/x86/kernel/aperture_64.c b/arch/x86/kernel/aperture_64.c index 3704997e8b2..f147a95fd84 100644 --- a/arch/x86/kernel/aperture_64.c +++ b/arch/x86/kernel/aperture_64.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <asm/x86_init.h> | 31 | #include <asm/x86_init.h> |
32 | 32 | ||
33 | int gart_iommu_aperture; | 33 | int gart_iommu_aperture; |
34 | EXPORT_SYMBOL_GPL(gart_iommu_aperture); | ||
34 | int gart_iommu_aperture_disabled __initdata; | 35 | int gart_iommu_aperture_disabled __initdata; |
35 | int gart_iommu_aperture_allowed __initdata; | 36 | int gart_iommu_aperture_allowed __initdata; |
36 | 37 | ||
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index aa57c079c98..3987e4408f7 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c | |||
@@ -61,12 +61,6 @@ unsigned int boot_cpu_physical_apicid = -1U; | |||
61 | 61 | ||
62 | /* | 62 | /* |
63 | * The highest APIC ID seen during enumeration. | 63 | * The highest APIC ID seen during enumeration. |
64 | * | ||
65 | * On AMD, this determines the messaging protocol we can use: if all APIC IDs | ||
66 | * are in the 0 ... 7 range, then we can use logical addressing which | ||
67 | * has some performance advantages (better broadcasting). | ||
68 | * | ||
69 | * If there's an APIC ID above 8, we use physical addressing. | ||
70 | */ | 64 | */ |
71 | unsigned int max_physical_apicid; | 65 | unsigned int max_physical_apicid; |
72 | 66 | ||
@@ -1898,14 +1892,17 @@ void __cpuinit generic_processor_info(int apicid, int version) | |||
1898 | max_physical_apicid = apicid; | 1892 | max_physical_apicid = apicid; |
1899 | 1893 | ||
1900 | #ifdef CONFIG_X86_32 | 1894 | #ifdef CONFIG_X86_32 |
1901 | switch (boot_cpu_data.x86_vendor) { | 1895 | if (num_processors > 8) { |
1902 | case X86_VENDOR_INTEL: | 1896 | switch (boot_cpu_data.x86_vendor) { |
1903 | if (num_processors > 8) | 1897 | case X86_VENDOR_INTEL: |
1904 | def_to_bigsmp = 1; | 1898 | if (!APIC_XAPIC(version)) { |
1905 | break; | 1899 | def_to_bigsmp = 0; |
1906 | case X86_VENDOR_AMD: | 1900 | break; |
1907 | if (max_physical_apicid >= 8) | 1901 | } |
1902 | /* If P4 and above fall through */ | ||
1903 | case X86_VENDOR_AMD: | ||
1908 | def_to_bigsmp = 1; | 1904 | def_to_bigsmp = 1; |
1905 | } | ||
1909 | } | 1906 | } |
1910 | #endif | 1907 | #endif |
1911 | 1908 | ||
diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c index eacbd2b31d2..e3c3d820c32 100644 --- a/arch/x86/kernel/apic/apic_flat_64.c +++ b/arch/x86/kernel/apic/apic_flat_64.c | |||
@@ -240,6 +240,11 @@ static int physflat_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | |||
240 | printk(KERN_DEBUG "system APIC only can use physical flat"); | 240 | printk(KERN_DEBUG "system APIC only can use physical flat"); |
241 | return 1; | 241 | return 1; |
242 | } | 242 | } |
243 | |||
244 | if (!strncmp(oem_id, "IBM", 3) && !strncmp(oem_table_id, "EXA", 3)) { | ||
245 | printk(KERN_DEBUG "IBM Summit detected, will use apic physical"); | ||
246 | return 1; | ||
247 | } | ||
243 | #endif | 248 | #endif |
244 | 249 | ||
245 | return 0; | 250 | return 0; |
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index de00c4619a5..53243ca7816 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c | |||
@@ -2434,6 +2434,13 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void) | |||
2434 | cfg = irq_cfg(irq); | 2434 | cfg = irq_cfg(irq); |
2435 | raw_spin_lock(&desc->lock); | 2435 | raw_spin_lock(&desc->lock); |
2436 | 2436 | ||
2437 | /* | ||
2438 | * Check if the irq migration is in progress. If so, we | ||
2439 | * haven't received the cleanup request yet for this irq. | ||
2440 | */ | ||
2441 | if (cfg->move_in_progress) | ||
2442 | goto unlock; | ||
2443 | |||
2437 | if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain)) | 2444 | if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain)) |
2438 | goto unlock; | 2445 | goto unlock; |
2439 | 2446 | ||
diff --git a/arch/x86/kernel/apic/probe_64.c b/arch/x86/kernel/apic/probe_64.c index c4cbd3080c1..450fe2064a1 100644 --- a/arch/x86/kernel/apic/probe_64.c +++ b/arch/x86/kernel/apic/probe_64.c | |||
@@ -67,17 +67,8 @@ void __init default_setup_apic_routing(void) | |||
67 | } | 67 | } |
68 | #endif | 68 | #endif |
69 | 69 | ||
70 | if (apic == &apic_flat) { | 70 | if (apic == &apic_flat && num_processors > 8) |
71 | switch (boot_cpu_data.x86_vendor) { | 71 | apic = &apic_physflat; |
72 | case X86_VENDOR_INTEL: | ||
73 | if (num_processors > 8) | ||
74 | apic = &apic_physflat; | ||
75 | break; | ||
76 | case X86_VENDOR_AMD: | ||
77 | if (max_physical_apicid >= 8) | ||
78 | apic = &apic_physflat; | ||
79 | } | ||
80 | } | ||
81 | 72 | ||
82 | printk(KERN_INFO "Setting APIC routing to %s\n", apic->name); | 73 | printk(KERN_INFO "Setting APIC routing to %s\n", apic->name); |
83 | 74 | ||
diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c index d56b0efb205..21db3cbea7d 100644 --- a/arch/x86/kernel/apic/x2apic_uv_x.c +++ b/arch/x86/kernel/apic/x2apic_uv_x.c | |||
@@ -36,6 +36,8 @@ DEFINE_PER_CPU(int, x2apic_extra_bits); | |||
36 | 36 | ||
37 | static enum uv_system_type uv_system_type; | 37 | static enum uv_system_type uv_system_type; |
38 | static u64 gru_start_paddr, gru_end_paddr; | 38 | static u64 gru_start_paddr, gru_end_paddr; |
39 | int uv_min_hub_revision_id; | ||
40 | EXPORT_SYMBOL_GPL(uv_min_hub_revision_id); | ||
39 | 41 | ||
40 | static inline bool is_GRU_range(u64 start, u64 end) | 42 | static inline bool is_GRU_range(u64 start, u64 end) |
41 | { | 43 | { |
@@ -55,12 +57,19 @@ static int early_get_nodeid(void) | |||
55 | mmr = early_ioremap(UV_LOCAL_MMR_BASE | UVH_NODE_ID, sizeof(*mmr)); | 57 | mmr = early_ioremap(UV_LOCAL_MMR_BASE | UVH_NODE_ID, sizeof(*mmr)); |
56 | node_id.v = *mmr; | 58 | node_id.v = *mmr; |
57 | early_iounmap(mmr, sizeof(*mmr)); | 59 | early_iounmap(mmr, sizeof(*mmr)); |
60 | |||
61 | /* Currently, all blades have same revision number */ | ||
62 | uv_min_hub_revision_id = node_id.s.revision; | ||
63 | |||
58 | return node_id.s.node_id; | 64 | return node_id.s.node_id; |
59 | } | 65 | } |
60 | 66 | ||
61 | static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 67 | static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
62 | { | 68 | { |
69 | int nodeid; | ||
70 | |||
63 | if (!strcmp(oem_id, "SGI")) { | 71 | if (!strcmp(oem_id, "SGI")) { |
72 | nodeid = early_get_nodeid(); | ||
64 | x86_platform.is_untracked_pat_range = uv_is_untracked_pat_range; | 73 | x86_platform.is_untracked_pat_range = uv_is_untracked_pat_range; |
65 | if (!strcmp(oem_table_id, "UVL")) | 74 | if (!strcmp(oem_table_id, "UVL")) |
66 | uv_system_type = UV_LEGACY_APIC; | 75 | uv_system_type = UV_LEGACY_APIC; |
@@ -68,7 +77,7 @@ static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id) | |||
68 | uv_system_type = UV_X2APIC; | 77 | uv_system_type = UV_X2APIC; |
69 | else if (!strcmp(oem_table_id, "UVH")) { | 78 | else if (!strcmp(oem_table_id, "UVH")) { |
70 | __get_cpu_var(x2apic_extra_bits) = | 79 | __get_cpu_var(x2apic_extra_bits) = |
71 | early_get_nodeid() << (UV_APIC_PNODE_SHIFT - 1); | 80 | nodeid << (UV_APIC_PNODE_SHIFT - 1); |
72 | uv_system_type = UV_NON_UNIQUE_APIC; | 81 | uv_system_type = UV_NON_UNIQUE_APIC; |
73 | return 1; | 82 | return 1; |
74 | } | 83 | } |
@@ -374,13 +383,13 @@ static __init void get_lowmem_redirect(unsigned long *base, unsigned long *size) | |||
374 | 383 | ||
375 | enum map_type {map_wb, map_uc}; | 384 | enum map_type {map_wb, map_uc}; |
376 | 385 | ||
377 | static __init void map_high(char *id, unsigned long base, int shift, | 386 | static __init void map_high(char *id, unsigned long base, int pshift, |
378 | int max_pnode, enum map_type map_type) | 387 | int bshift, int max_pnode, enum map_type map_type) |
379 | { | 388 | { |
380 | unsigned long bytes, paddr; | 389 | unsigned long bytes, paddr; |
381 | 390 | ||
382 | paddr = base << shift; | 391 | paddr = base << pshift; |
383 | bytes = (1UL << shift) * (max_pnode + 1); | 392 | bytes = (1UL << bshift) * (max_pnode + 1); |
384 | printk(KERN_INFO "UV: Map %s_HI 0x%lx - 0x%lx\n", id, paddr, | 393 | printk(KERN_INFO "UV: Map %s_HI 0x%lx - 0x%lx\n", id, paddr, |
385 | paddr + bytes); | 394 | paddr + bytes); |
386 | if (map_type == map_uc) | 395 | if (map_type == map_uc) |
@@ -396,7 +405,7 @@ static __init void map_gru_high(int max_pnode) | |||
396 | 405 | ||
397 | gru.v = uv_read_local_mmr(UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR); | 406 | gru.v = uv_read_local_mmr(UVH_RH_GAM_GRU_OVERLAY_CONFIG_MMR); |
398 | if (gru.s.enable) { | 407 | if (gru.s.enable) { |
399 | map_high("GRU", gru.s.base, shift, max_pnode, map_wb); | 408 | map_high("GRU", gru.s.base, shift, shift, max_pnode, map_wb); |
400 | gru_start_paddr = ((u64)gru.s.base << shift); | 409 | gru_start_paddr = ((u64)gru.s.base << shift); |
401 | gru_end_paddr = gru_start_paddr + (1UL << shift) * (max_pnode + 1); | 410 | gru_end_paddr = gru_start_paddr + (1UL << shift) * (max_pnode + 1); |
402 | 411 | ||
@@ -410,7 +419,7 @@ static __init void map_mmr_high(int max_pnode) | |||
410 | 419 | ||
411 | mmr.v = uv_read_local_mmr(UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR); | 420 | mmr.v = uv_read_local_mmr(UVH_RH_GAM_MMR_OVERLAY_CONFIG_MMR); |
412 | if (mmr.s.enable) | 421 | if (mmr.s.enable) |
413 | map_high("MMR", mmr.s.base, shift, max_pnode, map_uc); | 422 | map_high("MMR", mmr.s.base, shift, shift, max_pnode, map_uc); |
414 | } | 423 | } |
415 | 424 | ||
416 | static __init void map_mmioh_high(int max_pnode) | 425 | static __init void map_mmioh_high(int max_pnode) |
@@ -420,7 +429,8 @@ static __init void map_mmioh_high(int max_pnode) | |||
420 | 429 | ||
421 | mmioh.v = uv_read_local_mmr(UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR); | 430 | mmioh.v = uv_read_local_mmr(UVH_RH_GAM_MMIOH_OVERLAY_CONFIG_MMR); |
422 | if (mmioh.s.enable) | 431 | if (mmioh.s.enable) |
423 | map_high("MMIOH", mmioh.s.base, shift, max_pnode, map_uc); | 432 | map_high("MMIOH", mmioh.s.base, shift, mmioh.s.m_io, |
433 | max_pnode, map_uc); | ||
424 | } | 434 | } |
425 | 435 | ||
426 | static __init void map_low_mmrs(void) | 436 | static __init void map_low_mmrs(void) |
@@ -629,8 +639,10 @@ void __init uv_system_init(void) | |||
629 | uv_rtc_init(); | 639 | uv_rtc_init(); |
630 | 640 | ||
631 | for_each_present_cpu(cpu) { | 641 | for_each_present_cpu(cpu) { |
642 | int apicid = per_cpu(x86_cpu_to_apicid, cpu); | ||
643 | |||
632 | nid = cpu_to_node(cpu); | 644 | nid = cpu_to_node(cpu); |
633 | pnode = uv_apicid_to_pnode(per_cpu(x86_cpu_to_apicid, cpu)); | 645 | pnode = uv_apicid_to_pnode(apicid); |
634 | blade = boot_pnode_to_blade(pnode); | 646 | blade = boot_pnode_to_blade(pnode); |
635 | lcpu = uv_blade_info[blade].nr_possible_cpus; | 647 | lcpu = uv_blade_info[blade].nr_possible_cpus; |
636 | uv_blade_info[blade].nr_possible_cpus++; | 648 | uv_blade_info[blade].nr_possible_cpus++; |
@@ -651,15 +663,13 @@ void __init uv_system_init(void) | |||
651 | uv_cpu_hub_info(cpu)->gnode_extra = gnode_extra; | 663 | uv_cpu_hub_info(cpu)->gnode_extra = gnode_extra; |
652 | uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base; | 664 | uv_cpu_hub_info(cpu)->global_mmr_base = mmr_base; |
653 | uv_cpu_hub_info(cpu)->coherency_domain_number = sn_coherency_id; | 665 | uv_cpu_hub_info(cpu)->coherency_domain_number = sn_coherency_id; |
654 | uv_cpu_hub_info(cpu)->scir.offset = SCIR_LOCAL_MMR_BASE + lcpu; | 666 | uv_cpu_hub_info(cpu)->scir.offset = uv_scir_offset(apicid); |
655 | uv_node_to_blade[nid] = blade; | 667 | uv_node_to_blade[nid] = blade; |
656 | uv_cpu_to_blade[cpu] = blade; | 668 | uv_cpu_to_blade[cpu] = blade; |
657 | max_pnode = max(pnode, max_pnode); | 669 | max_pnode = max(pnode, max_pnode); |
658 | 670 | ||
659 | printk(KERN_DEBUG "UV: cpu %d, apicid 0x%x, pnode %d, nid %d, " | 671 | printk(KERN_DEBUG "UV: cpu %d, apicid 0x%x, pnode %d, nid %d, lcpu %d, blade %d\n", |
660 | "lcpu %d, blade %d\n", | 672 | cpu, apicid, pnode, nid, lcpu, blade); |
661 | cpu, per_cpu(x86_cpu_to_apicid, cpu), pnode, nid, | ||
662 | lcpu, blade); | ||
663 | } | 673 | } |
664 | 674 | ||
665 | /* Add blade/pnode info for nodes without cpus */ | 675 | /* Add blade/pnode info for nodes without cpus */ |
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c index c223b7e895d..8c1c07073cc 100644 --- a/arch/x86/kernel/cpu/perf_event.c +++ b/arch/x86/kernel/cpu/perf_event.c | |||
@@ -1343,6 +1343,13 @@ intel_pmu_enable_fixed(struct hw_perf_event *hwc, int __idx) | |||
1343 | bits |= 0x2; | 1343 | bits |= 0x2; |
1344 | if (hwc->config & ARCH_PERFMON_EVENTSEL_OS) | 1344 | if (hwc->config & ARCH_PERFMON_EVENTSEL_OS) |
1345 | bits |= 0x1; | 1345 | bits |= 0x1; |
1346 | |||
1347 | /* | ||
1348 | * ANY bit is supported in v3 and up | ||
1349 | */ | ||
1350 | if (x86_pmu.version > 2 && hwc->config & ARCH_PERFMON_EVENTSEL_ANY) | ||
1351 | bits |= 0x4; | ||
1352 | |||
1346 | bits <<= (idx * 4); | 1353 | bits <<= (idx * 4); |
1347 | mask = 0xfULL << (idx * 4); | 1354 | mask = 0xfULL << (idx * 4); |
1348 | 1355 | ||
@@ -2347,7 +2354,7 @@ perf_callchain_kernel(struct pt_regs *regs, struct perf_callchain_entry *entry) | |||
2347 | callchain_store(entry, PERF_CONTEXT_KERNEL); | 2354 | callchain_store(entry, PERF_CONTEXT_KERNEL); |
2348 | callchain_store(entry, regs->ip); | 2355 | callchain_store(entry, regs->ip); |
2349 | 2356 | ||
2350 | dump_trace(NULL, regs, NULL, 0, &backtrace_ops, entry); | 2357 | dump_trace(NULL, regs, NULL, regs->bp, &backtrace_ops, entry); |
2351 | } | 2358 | } |
2352 | 2359 | ||
2353 | /* | 2360 | /* |
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c index c56bc287303..6d817554780 100644 --- a/arch/x86/kernel/dumpstack.c +++ b/arch/x86/kernel/dumpstack.c | |||
@@ -123,13 +123,15 @@ print_context_stack_bp(struct thread_info *tinfo, | |||
123 | while (valid_stack_ptr(tinfo, ret_addr, sizeof(*ret_addr), end)) { | 123 | while (valid_stack_ptr(tinfo, ret_addr, sizeof(*ret_addr), end)) { |
124 | unsigned long addr = *ret_addr; | 124 | unsigned long addr = *ret_addr; |
125 | 125 | ||
126 | if (__kernel_text_address(addr)) { | 126 | if (!__kernel_text_address(addr)) |
127 | ops->address(data, addr, 1); | 127 | break; |
128 | frame = frame->next_frame; | 128 | |
129 | ret_addr = &frame->return_address; | 129 | ops->address(data, addr, 1); |
130 | print_ftrace_graph_addr(addr, data, ops, tinfo, graph); | 130 | frame = frame->next_frame; |
131 | } | 131 | ret_addr = &frame->return_address; |
132 | print_ftrace_graph_addr(addr, data, ops, tinfo, graph); | ||
132 | } | 133 | } |
134 | |||
133 | return (unsigned long)frame; | 135 | return (unsigned long)frame; |
134 | } | 136 | } |
135 | EXPORT_SYMBOL_GPL(print_context_stack_bp); | 137 | EXPORT_SYMBOL_GPL(print_context_stack_bp); |
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 05ed7ab2ca4..a1a7876cadc 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c | |||
@@ -733,13 +733,13 @@ struct early_res { | |||
733 | }; | 733 | }; |
734 | static struct early_res early_res[MAX_EARLY_RES] __initdata = { | 734 | static struct early_res early_res[MAX_EARLY_RES] __initdata = { |
735 | { 0, PAGE_SIZE, "BIOS data page", 1 }, /* BIOS data page */ | 735 | { 0, PAGE_SIZE, "BIOS data page", 1 }, /* BIOS data page */ |
736 | #ifdef CONFIG_X86_32 | 736 | #if defined(CONFIG_X86_32) && defined(CONFIG_X86_TRAMPOLINE) |
737 | /* | 737 | /* |
738 | * But first pinch a few for the stack/trampoline stuff | 738 | * But first pinch a few for the stack/trampoline stuff |
739 | * FIXME: Don't need the extra page at 4K, but need to fix | 739 | * FIXME: Don't need the extra page at 4K, but need to fix |
740 | * trampoline before removing it. (see the GDT stuff) | 740 | * trampoline before removing it. (see the GDT stuff) |
741 | */ | 741 | */ |
742 | { PAGE_SIZE, PAGE_SIZE, "EX TRAMPOLINE", 1 }, | 742 | { PAGE_SIZE, PAGE_SIZE + PAGE_SIZE, "EX TRAMPOLINE", 1 }, |
743 | #endif | 743 | #endif |
744 | 744 | ||
745 | {} | 745 | {} |
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index 98c2cdeb599..02c3ee013cc 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c | |||
@@ -103,8 +103,8 @@ void show_regs_common(void) | |||
103 | if (!product) | 103 | if (!product) |
104 | product = ""; | 104 | product = ""; |
105 | 105 | ||
106 | printk("\n"); | 106 | printk(KERN_CONT "\n"); |
107 | printk(KERN_INFO "Pid: %d, comm: %.20s %s %s %.*s %s/%s\n", | 107 | printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s %s/%s\n", |
108 | current->pid, current->comm, print_tainted(), | 108 | current->pid, current->comm, print_tainted(), |
109 | init_utsname()->release, | 109 | init_utsname()->release, |
110 | (int)strcspn(init_utsname()->version, " "), | 110 | (int)strcspn(init_utsname()->version, " "), |
@@ -288,6 +288,8 @@ int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) | |||
288 | regs.es = __USER_DS; | 288 | regs.es = __USER_DS; |
289 | regs.fs = __KERNEL_PERCPU; | 289 | regs.fs = __KERNEL_PERCPU; |
290 | regs.gs = __KERNEL_STACK_CANARY; | 290 | regs.gs = __KERNEL_STACK_CANARY; |
291 | #else | ||
292 | regs.ss = __KERNEL_DS; | ||
291 | #endif | 293 | #endif |
292 | 294 | ||
293 | regs.orig_ax = -1; | 295 | regs.orig_ax = -1; |
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c index 9c517b5858f..37ad1e046aa 100644 --- a/arch/x86/kernel/process_32.c +++ b/arch/x86/kernel/process_32.c | |||
@@ -139,16 +139,16 @@ void __show_regs(struct pt_regs *regs, int all) | |||
139 | 139 | ||
140 | show_regs_common(); | 140 | show_regs_common(); |
141 | 141 | ||
142 | printk("EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n", | 142 | printk(KERN_DEFAULT "EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n", |
143 | (u16)regs->cs, regs->ip, regs->flags, | 143 | (u16)regs->cs, regs->ip, regs->flags, |
144 | smp_processor_id()); | 144 | smp_processor_id()); |
145 | print_symbol("EIP is at %s\n", regs->ip); | 145 | print_symbol("EIP is at %s\n", regs->ip); |
146 | 146 | ||
147 | printk("EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n", | 147 | printk(KERN_DEFAULT "EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n", |
148 | regs->ax, regs->bx, regs->cx, regs->dx); | 148 | regs->ax, regs->bx, regs->cx, regs->dx); |
149 | printk("ESI: %08lx EDI: %08lx EBP: %08lx ESP: %08lx\n", | 149 | printk(KERN_DEFAULT "ESI: %08lx EDI: %08lx EBP: %08lx ESP: %08lx\n", |
150 | regs->si, regs->di, regs->bp, sp); | 150 | regs->si, regs->di, regs->bp, sp); |
151 | printk(" DS: %04x ES: %04x FS: %04x GS: %04x SS: %04x\n", | 151 | printk(KERN_DEFAULT " DS: %04x ES: %04x FS: %04x GS: %04x SS: %04x\n", |
152 | (u16)regs->ds, (u16)regs->es, (u16)regs->fs, gs, ss); | 152 | (u16)regs->ds, (u16)regs->es, (u16)regs->fs, gs, ss); |
153 | 153 | ||
154 | if (!all) | 154 | if (!all) |
@@ -158,19 +158,19 @@ void __show_regs(struct pt_regs *regs, int all) | |||
158 | cr2 = read_cr2(); | 158 | cr2 = read_cr2(); |
159 | cr3 = read_cr3(); | 159 | cr3 = read_cr3(); |
160 | cr4 = read_cr4_safe(); | 160 | cr4 = read_cr4_safe(); |
161 | printk("CR0: %08lx CR2: %08lx CR3: %08lx CR4: %08lx\n", | 161 | printk(KERN_DEFAULT "CR0: %08lx CR2: %08lx CR3: %08lx CR4: %08lx\n", |
162 | cr0, cr2, cr3, cr4); | 162 | cr0, cr2, cr3, cr4); |
163 | 163 | ||
164 | get_debugreg(d0, 0); | 164 | get_debugreg(d0, 0); |
165 | get_debugreg(d1, 1); | 165 | get_debugreg(d1, 1); |
166 | get_debugreg(d2, 2); | 166 | get_debugreg(d2, 2); |
167 | get_debugreg(d3, 3); | 167 | get_debugreg(d3, 3); |
168 | printk("DR0: %08lx DR1: %08lx DR2: %08lx DR3: %08lx\n", | 168 | printk(KERN_DEFAULT "DR0: %08lx DR1: %08lx DR2: %08lx DR3: %08lx\n", |
169 | d0, d1, d2, d3); | 169 | d0, d1, d2, d3); |
170 | 170 | ||
171 | get_debugreg(d6, 6); | 171 | get_debugreg(d6, 6); |
172 | get_debugreg(d7, 7); | 172 | get_debugreg(d7, 7); |
173 | printk("DR6: %08lx DR7: %08lx\n", | 173 | printk(KERN_DEFAULT "DR6: %08lx DR7: %08lx\n", |
174 | d6, d7); | 174 | d6, d7); |
175 | } | 175 | } |
176 | 176 | ||
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index 52fbd0c6019..f9e033150cd 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
@@ -161,19 +161,19 @@ void __show_regs(struct pt_regs *regs, int all) | |||
161 | unsigned int ds, cs, es; | 161 | unsigned int ds, cs, es; |
162 | 162 | ||
163 | show_regs_common(); | 163 | show_regs_common(); |
164 | printk(KERN_INFO "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip); | 164 | printk(KERN_DEFAULT "RIP: %04lx:[<%016lx>] ", regs->cs & 0xffff, regs->ip); |
165 | printk_address(regs->ip, 1); | 165 | printk_address(regs->ip, 1); |
166 | printk(KERN_INFO "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, | 166 | printk(KERN_DEFAULT "RSP: %04lx:%016lx EFLAGS: %08lx\n", regs->ss, |
167 | regs->sp, regs->flags); | 167 | regs->sp, regs->flags); |
168 | printk(KERN_INFO "RAX: %016lx RBX: %016lx RCX: %016lx\n", | 168 | printk(KERN_DEFAULT "RAX: %016lx RBX: %016lx RCX: %016lx\n", |
169 | regs->ax, regs->bx, regs->cx); | 169 | regs->ax, regs->bx, regs->cx); |
170 | printk(KERN_INFO "RDX: %016lx RSI: %016lx RDI: %016lx\n", | 170 | printk(KERN_DEFAULT "RDX: %016lx RSI: %016lx RDI: %016lx\n", |
171 | regs->dx, regs->si, regs->di); | 171 | regs->dx, regs->si, regs->di); |
172 | printk(KERN_INFO "RBP: %016lx R08: %016lx R09: %016lx\n", | 172 | printk(KERN_DEFAULT "RBP: %016lx R08: %016lx R09: %016lx\n", |
173 | regs->bp, regs->r8, regs->r9); | 173 | regs->bp, regs->r8, regs->r9); |
174 | printk(KERN_INFO "R10: %016lx R11: %016lx R12: %016lx\n", | 174 | printk(KERN_DEFAULT "R10: %016lx R11: %016lx R12: %016lx\n", |
175 | regs->r10, regs->r11, regs->r12); | 175 | regs->r10, regs->r11, regs->r12); |
176 | printk(KERN_INFO "R13: %016lx R14: %016lx R15: %016lx\n", | 176 | printk(KERN_DEFAULT "R13: %016lx R14: %016lx R15: %016lx\n", |
177 | regs->r13, regs->r14, regs->r15); | 177 | regs->r13, regs->r14, regs->r15); |
178 | 178 | ||
179 | asm("movl %%ds,%0" : "=r" (ds)); | 179 | asm("movl %%ds,%0" : "=r" (ds)); |
@@ -194,21 +194,21 @@ void __show_regs(struct pt_regs *regs, int all) | |||
194 | cr3 = read_cr3(); | 194 | cr3 = read_cr3(); |
195 | cr4 = read_cr4(); | 195 | cr4 = read_cr4(); |
196 | 196 | ||
197 | printk(KERN_INFO "FS: %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n", | 197 | printk(KERN_DEFAULT "FS: %016lx(%04x) GS:%016lx(%04x) knlGS:%016lx\n", |
198 | fs, fsindex, gs, gsindex, shadowgs); | 198 | fs, fsindex, gs, gsindex, shadowgs); |
199 | printk(KERN_INFO "CS: %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds, | 199 | printk(KERN_DEFAULT "CS: %04x DS: %04x ES: %04x CR0: %016lx\n", cs, ds, |
200 | es, cr0); | 200 | es, cr0); |
201 | printk(KERN_INFO "CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3, | 201 | printk(KERN_DEFAULT "CR2: %016lx CR3: %016lx CR4: %016lx\n", cr2, cr3, |
202 | cr4); | 202 | cr4); |
203 | 203 | ||
204 | get_debugreg(d0, 0); | 204 | get_debugreg(d0, 0); |
205 | get_debugreg(d1, 1); | 205 | get_debugreg(d1, 1); |
206 | get_debugreg(d2, 2); | 206 | get_debugreg(d2, 2); |
207 | printk(KERN_INFO "DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2); | 207 | printk(KERN_DEFAULT "DR0: %016lx DR1: %016lx DR2: %016lx\n", d0, d1, d2); |
208 | get_debugreg(d3, 3); | 208 | get_debugreg(d3, 3); |
209 | get_debugreg(d6, 6); | 209 | get_debugreg(d6, 6); |
210 | get_debugreg(d7, 7); | 210 | get_debugreg(d7, 7); |
211 | printk(KERN_INFO "DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7); | 211 | printk(KERN_DEFAULT "DR3: %016lx DR6: %016lx DR7: %016lx\n", d3, d6, d7); |
212 | } | 212 | } |
213 | 213 | ||
214 | void show_regs(struct pt_regs *regs) | 214 | void show_regs(struct pt_regs *regs) |
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index cd60c0bd1b3..3063a0c4858 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c | |||
@@ -1150,6 +1150,7 @@ void kvm_apic_post_state_restore(struct kvm_vcpu *vcpu) | |||
1150 | hrtimer_cancel(&apic->lapic_timer.timer); | 1150 | hrtimer_cancel(&apic->lapic_timer.timer); |
1151 | update_divide_count(apic); | 1151 | update_divide_count(apic); |
1152 | start_apic_timer(apic); | 1152 | start_apic_timer(apic); |
1153 | apic->irr_pending = true; | ||
1153 | } | 1154 | } |
1154 | 1155 | ||
1155 | void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu) | 1156 | void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu) |
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h index a6017132fba..58a0f1e8859 100644 --- a/arch/x86/kvm/paging_tmpl.h +++ b/arch/x86/kvm/paging_tmpl.h | |||
@@ -455,8 +455,6 @@ out_unlock: | |||
455 | static void FNAME(invlpg)(struct kvm_vcpu *vcpu, gva_t gva) | 455 | static void FNAME(invlpg)(struct kvm_vcpu *vcpu, gva_t gva) |
456 | { | 456 | { |
457 | struct kvm_shadow_walk_iterator iterator; | 457 | struct kvm_shadow_walk_iterator iterator; |
458 | pt_element_t gpte; | ||
459 | gpa_t pte_gpa = -1; | ||
460 | int level; | 458 | int level; |
461 | u64 *sptep; | 459 | u64 *sptep; |
462 | int need_flush = 0; | 460 | int need_flush = 0; |
@@ -470,10 +468,6 @@ static void FNAME(invlpg)(struct kvm_vcpu *vcpu, gva_t gva) | |||
470 | if (level == PT_PAGE_TABLE_LEVEL || | 468 | if (level == PT_PAGE_TABLE_LEVEL || |
471 | ((level == PT_DIRECTORY_LEVEL && is_large_pte(*sptep))) || | 469 | ((level == PT_DIRECTORY_LEVEL && is_large_pte(*sptep))) || |
472 | ((level == PT_PDPE_LEVEL && is_large_pte(*sptep)))) { | 470 | ((level == PT_PDPE_LEVEL && is_large_pte(*sptep)))) { |
473 | struct kvm_mmu_page *sp = page_header(__pa(sptep)); | ||
474 | |||
475 | pte_gpa = (sp->gfn << PAGE_SHIFT); | ||
476 | pte_gpa += (sptep - sp->spt) * sizeof(pt_element_t); | ||
477 | 471 | ||
478 | if (is_shadow_present_pte(*sptep)) { | 472 | if (is_shadow_present_pte(*sptep)) { |
479 | rmap_remove(vcpu->kvm, sptep); | 473 | rmap_remove(vcpu->kvm, sptep); |
@@ -492,18 +486,6 @@ static void FNAME(invlpg)(struct kvm_vcpu *vcpu, gva_t gva) | |||
492 | if (need_flush) | 486 | if (need_flush) |
493 | kvm_flush_remote_tlbs(vcpu->kvm); | 487 | kvm_flush_remote_tlbs(vcpu->kvm); |
494 | spin_unlock(&vcpu->kvm->mmu_lock); | 488 | spin_unlock(&vcpu->kvm->mmu_lock); |
495 | |||
496 | if (pte_gpa == -1) | ||
497 | return; | ||
498 | if (kvm_read_guest_atomic(vcpu->kvm, pte_gpa, &gpte, | ||
499 | sizeof(pt_element_t))) | ||
500 | return; | ||
501 | if (is_present_gpte(gpte) && (gpte & PT_ACCESSED_MASK)) { | ||
502 | if (mmu_topup_memory_caches(vcpu)) | ||
503 | return; | ||
504 | kvm_mmu_pte_write(vcpu, pte_gpa, (const u8 *)&gpte, | ||
505 | sizeof(pt_element_t), 0); | ||
506 | } | ||
507 | } | 489 | } |
508 | 490 | ||
509 | static gpa_t FNAME(gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t vaddr) | 491 | static gpa_t FNAME(gva_to_gpa)(struct kvm_vcpu *vcpu, gva_t vaddr) |
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 9d068966fb2..6651dbf5867 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -1913,7 +1913,8 @@ static void kvm_vcpu_ioctl_x86_get_vcpu_events(struct kvm_vcpu *vcpu, | |||
1913 | 1913 | ||
1914 | events->sipi_vector = vcpu->arch.sipi_vector; | 1914 | events->sipi_vector = vcpu->arch.sipi_vector; |
1915 | 1915 | ||
1916 | events->flags = 0; | 1916 | events->flags = (KVM_VCPUEVENT_VALID_NMI_PENDING |
1917 | | KVM_VCPUEVENT_VALID_SIPI_VECTOR); | ||
1917 | 1918 | ||
1918 | vcpu_put(vcpu); | 1919 | vcpu_put(vcpu); |
1919 | } | 1920 | } |
@@ -1921,7 +1922,8 @@ static void kvm_vcpu_ioctl_x86_get_vcpu_events(struct kvm_vcpu *vcpu, | |||
1921 | static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu, | 1922 | static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu, |
1922 | struct kvm_vcpu_events *events) | 1923 | struct kvm_vcpu_events *events) |
1923 | { | 1924 | { |
1924 | if (events->flags) | 1925 | if (events->flags & ~(KVM_VCPUEVENT_VALID_NMI_PENDING |
1926 | | KVM_VCPUEVENT_VALID_SIPI_VECTOR)) | ||
1925 | return -EINVAL; | 1927 | return -EINVAL; |
1926 | 1928 | ||
1927 | vcpu_load(vcpu); | 1929 | vcpu_load(vcpu); |
@@ -1938,10 +1940,12 @@ static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu, | |||
1938 | kvm_pic_clear_isr_ack(vcpu->kvm); | 1940 | kvm_pic_clear_isr_ack(vcpu->kvm); |
1939 | 1941 | ||
1940 | vcpu->arch.nmi_injected = events->nmi.injected; | 1942 | vcpu->arch.nmi_injected = events->nmi.injected; |
1941 | vcpu->arch.nmi_pending = events->nmi.pending; | 1943 | if (events->flags & KVM_VCPUEVENT_VALID_NMI_PENDING) |
1944 | vcpu->arch.nmi_pending = events->nmi.pending; | ||
1942 | kvm_x86_ops->set_nmi_mask(vcpu, events->nmi.masked); | 1945 | kvm_x86_ops->set_nmi_mask(vcpu, events->nmi.masked); |
1943 | 1946 | ||
1944 | vcpu->arch.sipi_vector = events->sipi_vector; | 1947 | if (events->flags & KVM_VCPUEVENT_VALID_SIPI_VECTOR) |
1948 | vcpu->arch.sipi_vector = events->sipi_vector; | ||
1945 | 1949 | ||
1946 | vcpu_put(vcpu); | 1950 | vcpu_put(vcpu); |
1947 | 1951 | ||
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index c973f8e2a6c..9a0c258a86b 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c | |||
@@ -892,8 +892,7 @@ void __init mem_init(void) | |||
892 | reservedpages << (PAGE_SHIFT-10), | 892 | reservedpages << (PAGE_SHIFT-10), |
893 | datasize >> 10, | 893 | datasize >> 10, |
894 | initsize >> 10, | 894 | initsize >> 10, |
895 | (unsigned long) (totalhigh_pages << (PAGE_SHIFT-10)) | 895 | totalhigh_pages << (PAGE_SHIFT-10)); |
896 | ); | ||
897 | 896 | ||
898 | printk(KERN_INFO "virtual kernel memory layout:\n" | 897 | printk(KERN_INFO "virtual kernel memory layout:\n" |
899 | " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n" | 898 | " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n" |
diff --git a/arch/x86/mm/kmemcheck/error.c b/arch/x86/mm/kmemcheck/error.c index 4901d0dafda..af3b6c8a436 100644 --- a/arch/x86/mm/kmemcheck/error.c +++ b/arch/x86/mm/kmemcheck/error.c | |||
@@ -106,26 +106,25 @@ void kmemcheck_error_recall(void) | |||
106 | 106 | ||
107 | switch (e->type) { | 107 | switch (e->type) { |
108 | case KMEMCHECK_ERROR_INVALID_ACCESS: | 108 | case KMEMCHECK_ERROR_INVALID_ACCESS: |
109 | printk(KERN_ERR "WARNING: kmemcheck: Caught %d-bit read " | 109 | printk(KERN_WARNING "WARNING: kmemcheck: Caught %d-bit read from %s memory (%p)\n", |
110 | "from %s memory (%p)\n", | ||
111 | 8 * e->size, e->state < ARRAY_SIZE(desc) ? | 110 | 8 * e->size, e->state < ARRAY_SIZE(desc) ? |
112 | desc[e->state] : "(invalid shadow state)", | 111 | desc[e->state] : "(invalid shadow state)", |
113 | (void *) e->address); | 112 | (void *) e->address); |
114 | 113 | ||
115 | printk(KERN_INFO); | 114 | printk(KERN_WARNING); |
116 | for (i = 0; i < SHADOW_COPY_SIZE; ++i) | 115 | for (i = 0; i < SHADOW_COPY_SIZE; ++i) |
117 | printk("%02x", e->memory_copy[i]); | 116 | printk(KERN_CONT "%02x", e->memory_copy[i]); |
118 | printk("\n"); | 117 | printk(KERN_CONT "\n"); |
119 | 118 | ||
120 | printk(KERN_INFO); | 119 | printk(KERN_WARNING); |
121 | for (i = 0; i < SHADOW_COPY_SIZE; ++i) { | 120 | for (i = 0; i < SHADOW_COPY_SIZE; ++i) { |
122 | if (e->shadow_copy[i] < ARRAY_SIZE(short_desc)) | 121 | if (e->shadow_copy[i] < ARRAY_SIZE(short_desc)) |
123 | printk(" %c", short_desc[e->shadow_copy[i]]); | 122 | printk(KERN_CONT " %c", short_desc[e->shadow_copy[i]]); |
124 | else | 123 | else |
125 | printk(" ?"); | 124 | printk(KERN_CONT " ?"); |
126 | } | 125 | } |
127 | printk("\n"); | 126 | printk(KERN_CONT "\n"); |
128 | printk(KERN_INFO "%*c\n", 2 + 2 | 127 | printk(KERN_WARNING "%*c\n", 2 + 2 |
129 | * (int) (e->address & (SHADOW_COPY_SIZE - 1)), '^'); | 128 | * (int) (e->address & (SHADOW_COPY_SIZE - 1)), '^'); |
130 | break; | 129 | break; |
131 | case KMEMCHECK_ERROR_BUG: | 130 | case KMEMCHECK_ERROR_BUG: |
diff --git a/arch/x86/mm/kmmio.c b/arch/x86/mm/kmmio.c index c0f6198565e..536fb682336 100644 --- a/arch/x86/mm/kmmio.c +++ b/arch/x86/mm/kmmio.c | |||
@@ -538,14 +538,15 @@ static int | |||
538 | kmmio_die_notifier(struct notifier_block *nb, unsigned long val, void *args) | 538 | kmmio_die_notifier(struct notifier_block *nb, unsigned long val, void *args) |
539 | { | 539 | { |
540 | struct die_args *arg = args; | 540 | struct die_args *arg = args; |
541 | unsigned long* dr6_p = (unsigned long *)ERR_PTR(arg->err); | ||
541 | 542 | ||
542 | if (val == DIE_DEBUG && (arg->err & DR_STEP)) | 543 | if (val == DIE_DEBUG && (*dr6_p & DR_STEP)) |
543 | if (post_kmmio_handler(arg->err, arg->regs) == 1) { | 544 | if (post_kmmio_handler(*dr6_p, arg->regs) == 1) { |
544 | /* | 545 | /* |
545 | * Reset the BS bit in dr6 (pointed by args->err) to | 546 | * Reset the BS bit in dr6 (pointed by args->err) to |
546 | * denote completion of processing | 547 | * denote completion of processing |
547 | */ | 548 | */ |
548 | (*(unsigned long *)ERR_PTR(arg->err)) &= ~DR_STEP; | 549 | *dr6_p &= ~DR_STEP; |
549 | return NOTIFY_STOP; | 550 | return NOTIFY_STOP; |
550 | } | 551 | } |
551 | 552 | ||
diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c index 145df00e038..f939d603adf 100644 --- a/arch/x86/pci/bus_numa.c +++ b/arch/x86/pci/bus_numa.c | |||
@@ -51,7 +51,7 @@ void x86_pci_root_bus_res_quirks(struct pci_bus *b) | |||
51 | } | 51 | } |
52 | } | 52 | } |
53 | 53 | ||
54 | void __init update_res(struct pci_root_info *info, size_t start, | 54 | void __devinit update_res(struct pci_root_info *info, size_t start, |
55 | size_t end, unsigned long flags, int merge) | 55 | size_t end, unsigned long flags, int merge) |
56 | { | 56 | { |
57 | int i; | 57 | int i; |
diff --git a/arch/x86/pci/intel_bus.c b/arch/x86/pci/intel_bus.c index b7a55dc55d1..f81a2fa8fe2 100644 --- a/arch/x86/pci/intel_bus.c +++ b/arch/x86/pci/intel_bus.c | |||
@@ -49,6 +49,10 @@ static void __devinit pci_root_bus_res(struct pci_dev *dev) | |||
49 | u64 mmioh_base, mmioh_end; | 49 | u64 mmioh_base, mmioh_end; |
50 | int bus_base, bus_end; | 50 | int bus_base, bus_end; |
51 | 51 | ||
52 | /* some sys doesn't get mmconf enabled */ | ||
53 | if (dev->cfg_size < 0x120) | ||
54 | return; | ||
55 | |||
52 | if (pci_root_num >= PCI_ROOT_NR) { | 56 | if (pci_root_num >= PCI_ROOT_NR) { |
53 | printk(KERN_DEBUG "intel_bus.c: PCI_ROOT_NR is too small\n"); | 57 | printk(KERN_DEBUG "intel_bus.c: PCI_ROOT_NR is too small\n"); |
54 | return; | 58 | return; |
diff --git a/arch/x86/tools/chkobjdump.awk b/arch/x86/tools/chkobjdump.awk index 5bbb5a33f22..fd1ab80be0d 100644 --- a/arch/x86/tools/chkobjdump.awk +++ b/arch/x86/tools/chkobjdump.awk | |||
@@ -8,14 +8,24 @@ BEGIN { | |||
8 | od_sver = 19; | 8 | od_sver = 19; |
9 | } | 9 | } |
10 | 10 | ||
11 | /^GNU/ { | 11 | /^GNU objdump/ { |
12 | split($3, ver, "."); | 12 | verstr = "" |
13 | for (i = 3; i <= NF; i++) | ||
14 | if (match($(i), "^[0-9]")) { | ||
15 | verstr = $(i); | ||
16 | break; | ||
17 | } | ||
18 | if (verstr == "") { | ||
19 | printf("Warning: Failed to find objdump version number.\n"); | ||
20 | exit 0; | ||
21 | } | ||
22 | split(verstr, ver, "."); | ||
13 | if (ver[1] > od_ver || | 23 | if (ver[1] > od_ver || |
14 | (ver[1] == od_ver && ver[2] >= od_sver)) { | 24 | (ver[1] == od_ver && ver[2] >= od_sver)) { |
15 | exit 1; | 25 | exit 1; |
16 | } else { | 26 | } else { |
17 | printf("Warning: objdump version %s is older than %d.%d\n", | 27 | printf("Warning: objdump version %s is older than %d.%d\n", |
18 | $4, od_ver, od_sver); | 28 | verstr, od_ver, od_sver); |
19 | print("Warning: Skipping posttest."); | 29 | print("Warning: Skipping posttest."); |
20 | # Logic is inverted, because we just skip test without error. | 30 | # Logic is inverted, because we just skip test without error. |
21 | exit 0; | 31 | exit 0; |
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index 2b26dd5930c..36daccb6864 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c | |||
@@ -1151,9 +1151,13 @@ asmlinkage void __init xen_start_kernel(void) | |||
1151 | 1151 | ||
1152 | /* keep using Xen gdt for now; no urgent need to change it */ | 1152 | /* keep using Xen gdt for now; no urgent need to change it */ |
1153 | 1153 | ||
1154 | #ifdef CONFIG_X86_32 | ||
1154 | pv_info.kernel_rpl = 1; | 1155 | pv_info.kernel_rpl = 1; |
1155 | if (xen_feature(XENFEAT_supervisor_mode_kernel)) | 1156 | if (xen_feature(XENFEAT_supervisor_mode_kernel)) |
1156 | pv_info.kernel_rpl = 0; | 1157 | pv_info.kernel_rpl = 0; |
1158 | #else | ||
1159 | pv_info.kernel_rpl = 0; | ||
1160 | #endif | ||
1157 | 1161 | ||
1158 | /* set the limit of our address space */ | 1162 | /* set the limit of our address space */ |
1159 | xen_reserve_top(); | 1163 | xen_reserve_top(); |
diff --git a/block/blk-barrier.c b/block/blk-barrier.c index 8873b9b439f..8618d8996fe 100644 --- a/block/blk-barrier.c +++ b/block/blk-barrier.c | |||
@@ -402,7 +402,7 @@ int blkdev_issue_discard(struct block_device *bdev, sector_t sector, | |||
402 | * our current implementations need. If we'll ever need | 402 | * our current implementations need. If we'll ever need |
403 | * more the interface will need revisiting. | 403 | * more the interface will need revisiting. |
404 | */ | 404 | */ |
405 | page = alloc_page(GFP_KERNEL | __GFP_ZERO); | 405 | page = alloc_page(gfp_mask | __GFP_ZERO); |
406 | if (!page) | 406 | if (!page) |
407 | goto out_free_bio; | 407 | goto out_free_bio; |
408 | if (bio_add_pc_page(q, bio, page, sector_size, 0) < sector_size) | 408 | if (bio_add_pc_page(q, bio, page, sector_size, 0) < sector_size) |
diff --git a/block/blk-ioc.c b/block/blk-ioc.c index cbdabb0dd6d..98e6bf61b0a 100644 --- a/block/blk-ioc.c +++ b/block/blk-ioc.c | |||
@@ -39,8 +39,6 @@ int put_io_context(struct io_context *ioc) | |||
39 | 39 | ||
40 | if (atomic_long_dec_and_test(&ioc->refcount)) { | 40 | if (atomic_long_dec_and_test(&ioc->refcount)) { |
41 | rcu_read_lock(); | 41 | rcu_read_lock(); |
42 | if (ioc->aic && ioc->aic->dtor) | ||
43 | ioc->aic->dtor(ioc->aic); | ||
44 | cfq_dtor(ioc); | 42 | cfq_dtor(ioc); |
45 | rcu_read_unlock(); | 43 | rcu_read_unlock(); |
46 | 44 | ||
@@ -76,8 +74,6 @@ void exit_io_context(struct task_struct *task) | |||
76 | task_unlock(task); | 74 | task_unlock(task); |
77 | 75 | ||
78 | if (atomic_dec_and_test(&ioc->nr_tasks)) { | 76 | if (atomic_dec_and_test(&ioc->nr_tasks)) { |
79 | if (ioc->aic && ioc->aic->exit) | ||
80 | ioc->aic->exit(ioc->aic); | ||
81 | cfq_exit(ioc); | 77 | cfq_exit(ioc); |
82 | 78 | ||
83 | } | 79 | } |
@@ -97,7 +93,6 @@ struct io_context *alloc_io_context(gfp_t gfp_flags, int node) | |||
97 | ret->ioprio = 0; | 93 | ret->ioprio = 0; |
98 | ret->last_waited = jiffies; /* doesn't matter... */ | 94 | ret->last_waited = jiffies; /* doesn't matter... */ |
99 | ret->nr_batch_requests = 0; /* because this is 0 */ | 95 | ret->nr_batch_requests = 0; /* because this is 0 */ |
100 | ret->aic = NULL; | ||
101 | INIT_RADIX_TREE(&ret->radix_root, GFP_ATOMIC | __GFP_HIGH); | 96 | INIT_RADIX_TREE(&ret->radix_root, GFP_ATOMIC | __GFP_HIGH); |
102 | INIT_HLIST_HEAD(&ret->cic_list); | 97 | INIT_HLIST_HEAD(&ret->cic_list); |
103 | ret->ioc_data = NULL; | 98 | ret->ioc_data = NULL; |
diff --git a/block/blk-settings.c b/block/blk-settings.c index 6ae118d6e19..5eeb9e0d256 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c | |||
@@ -505,21 +505,30 @@ static unsigned int lcm(unsigned int a, unsigned int b) | |||
505 | 505 | ||
506 | /** | 506 | /** |
507 | * blk_stack_limits - adjust queue_limits for stacked devices | 507 | * blk_stack_limits - adjust queue_limits for stacked devices |
508 | * @t: the stacking driver limits (top) | 508 | * @t: the stacking driver limits (top device) |
509 | * @b: the underlying queue limits (bottom) | 509 | * @b: the underlying queue limits (bottom, component device) |
510 | * @offset: offset to beginning of data within component device | 510 | * @offset: offset to beginning of data within component device |
511 | * | 511 | * |
512 | * Description: | 512 | * Description: |
513 | * Merges two queue_limit structs. Returns 0 if alignment didn't | 513 | * This function is used by stacking drivers like MD and DM to ensure |
514 | * change. Returns -1 if adding the bottom device caused | 514 | * that all component devices have compatible block sizes and |
515 | * misalignment. | 515 | * alignments. The stacking driver must provide a queue_limits |
516 | * struct (top) and then iteratively call the stacking function for | ||
517 | * all component (bottom) devices. The stacking function will | ||
518 | * attempt to combine the values and ensure proper alignment. | ||
519 | * | ||
520 | * Returns 0 if the top and bottom queue_limits are compatible. The | ||
521 | * top device's block sizes and alignment offsets may be adjusted to | ||
522 | * ensure alignment with the bottom device. If no compatible sizes | ||
523 | * and alignments exist, -1 is returned and the resulting top | ||
524 | * queue_limits will have the misaligned flag set to indicate that | ||
525 | * the alignment_offset is undefined. | ||
516 | */ | 526 | */ |
517 | int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, | 527 | int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, |
518 | sector_t offset) | 528 | sector_t offset) |
519 | { | 529 | { |
520 | int ret; | 530 | sector_t alignment; |
521 | 531 | unsigned int top, bottom, ret = 0; | |
522 | ret = 0; | ||
523 | 532 | ||
524 | t->max_sectors = min_not_zero(t->max_sectors, b->max_sectors); | 533 | t->max_sectors = min_not_zero(t->max_sectors, b->max_sectors); |
525 | t->max_hw_sectors = min_not_zero(t->max_hw_sectors, b->max_hw_sectors); | 534 | t->max_hw_sectors = min_not_zero(t->max_hw_sectors, b->max_hw_sectors); |
@@ -537,6 +546,26 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, | |||
537 | t->max_segment_size = min_not_zero(t->max_segment_size, | 546 | t->max_segment_size = min_not_zero(t->max_segment_size, |
538 | b->max_segment_size); | 547 | b->max_segment_size); |
539 | 548 | ||
549 | t->misaligned |= b->misaligned; | ||
550 | |||
551 | alignment = queue_limit_alignment_offset(b, offset); | ||
552 | |||
553 | /* Bottom device has different alignment. Check that it is | ||
554 | * compatible with the current top alignment. | ||
555 | */ | ||
556 | if (t->alignment_offset != alignment) { | ||
557 | |||
558 | top = max(t->physical_block_size, t->io_min) | ||
559 | + t->alignment_offset; | ||
560 | bottom = max(b->physical_block_size, b->io_min) + alignment; | ||
561 | |||
562 | /* Verify that top and bottom intervals line up */ | ||
563 | if (max(top, bottom) & (min(top, bottom) - 1)) { | ||
564 | t->misaligned = 1; | ||
565 | ret = -1; | ||
566 | } | ||
567 | } | ||
568 | |||
540 | t->logical_block_size = max(t->logical_block_size, | 569 | t->logical_block_size = max(t->logical_block_size, |
541 | b->logical_block_size); | 570 | b->logical_block_size); |
542 | 571 | ||
@@ -544,58 +573,95 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, | |||
544 | b->physical_block_size); | 573 | b->physical_block_size); |
545 | 574 | ||
546 | t->io_min = max(t->io_min, b->io_min); | 575 | t->io_min = max(t->io_min, b->io_min); |
576 | t->io_opt = lcm(t->io_opt, b->io_opt); | ||
577 | |||
547 | t->no_cluster |= b->no_cluster; | 578 | t->no_cluster |= b->no_cluster; |
548 | t->discard_zeroes_data &= b->discard_zeroes_data; | 579 | t->discard_zeroes_data &= b->discard_zeroes_data; |
549 | 580 | ||
550 | /* Bottom device offset aligned? */ | 581 | /* Physical block size a multiple of the logical block size? */ |
551 | if (offset && | 582 | if (t->physical_block_size & (t->logical_block_size - 1)) { |
552 | (offset & (b->physical_block_size - 1)) != b->alignment_offset) { | 583 | t->physical_block_size = t->logical_block_size; |
553 | t->misaligned = 1; | 584 | t->misaligned = 1; |
554 | ret = -1; | 585 | ret = -1; |
555 | } | 586 | } |
556 | 587 | ||
557 | /* | 588 | /* Minimum I/O a multiple of the physical block size? */ |
558 | * Temporarily disable discard granularity. It's currently buggy | 589 | if (t->io_min & (t->physical_block_size - 1)) { |
559 | * since we default to 0 for discard_granularity, hence this | 590 | t->io_min = t->physical_block_size; |
560 | * "failure" will always trigger for non-zero offsets. | 591 | t->misaligned = 1; |
561 | */ | ||
562 | #if 0 | ||
563 | if (offset && | ||
564 | (offset & (b->discard_granularity - 1)) != b->discard_alignment) { | ||
565 | t->discard_misaligned = 1; | ||
566 | ret = -1; | 592 | ret = -1; |
567 | } | 593 | } |
568 | #endif | ||
569 | 594 | ||
570 | /* If top has no alignment offset, inherit from bottom */ | 595 | /* Optimal I/O a multiple of the physical block size? */ |
571 | if (!t->alignment_offset) | 596 | if (t->io_opt & (t->physical_block_size - 1)) { |
572 | t->alignment_offset = | 597 | t->io_opt = 0; |
573 | b->alignment_offset & (b->physical_block_size - 1); | 598 | t->misaligned = 1; |
599 | ret = -1; | ||
600 | } | ||
574 | 601 | ||
575 | if (!t->discard_alignment) | 602 | /* Find lowest common alignment_offset */ |
576 | t->discard_alignment = | 603 | t->alignment_offset = lcm(t->alignment_offset, alignment) |
577 | b->discard_alignment & (b->discard_granularity - 1); | 604 | & (max(t->physical_block_size, t->io_min) - 1); |
578 | 605 | ||
579 | /* Top device aligned on logical block boundary? */ | 606 | /* Verify that new alignment_offset is on a logical block boundary */ |
580 | if (t->alignment_offset & (t->logical_block_size - 1)) { | 607 | if (t->alignment_offset & (t->logical_block_size - 1)) { |
581 | t->misaligned = 1; | 608 | t->misaligned = 1; |
582 | ret = -1; | 609 | ret = -1; |
583 | } | 610 | } |
584 | 611 | ||
585 | /* Find lcm() of optimal I/O size and granularity */ | 612 | /* Discard alignment and granularity */ |
586 | t->io_opt = lcm(t->io_opt, b->io_opt); | 613 | if (b->discard_granularity) { |
587 | t->discard_granularity = lcm(t->discard_granularity, | 614 | unsigned int granularity = b->discard_granularity; |
588 | b->discard_granularity); | 615 | offset &= granularity - 1; |
589 | 616 | ||
590 | /* Verify that optimal I/O size is a multiple of io_min */ | 617 | alignment = (granularity + b->discard_alignment - offset) |
591 | if (t->io_min && t->io_opt % t->io_min) | 618 | & (granularity - 1); |
592 | ret = -1; | 619 | |
620 | if (t->discard_granularity != 0 && | ||
621 | t->discard_alignment != alignment) { | ||
622 | top = t->discard_granularity + t->discard_alignment; | ||
623 | bottom = b->discard_granularity + alignment; | ||
624 | |||
625 | /* Verify that top and bottom intervals line up */ | ||
626 | if (max(top, bottom) & (min(top, bottom) - 1)) | ||
627 | t->discard_misaligned = 1; | ||
628 | } | ||
629 | |||
630 | t->max_discard_sectors = min_not_zero(t->max_discard_sectors, | ||
631 | b->max_discard_sectors); | ||
632 | t->discard_granularity = max(t->discard_granularity, | ||
633 | b->discard_granularity); | ||
634 | t->discard_alignment = lcm(t->discard_alignment, alignment) & | ||
635 | (t->discard_granularity - 1); | ||
636 | } | ||
593 | 637 | ||
594 | return ret; | 638 | return ret; |
595 | } | 639 | } |
596 | EXPORT_SYMBOL(blk_stack_limits); | 640 | EXPORT_SYMBOL(blk_stack_limits); |
597 | 641 | ||
598 | /** | 642 | /** |
643 | * bdev_stack_limits - adjust queue limits for stacked drivers | ||
644 | * @t: the stacking driver limits (top device) | ||
645 | * @bdev: the component block_device (bottom) | ||
646 | * @start: first data sector within component device | ||
647 | * | ||
648 | * Description: | ||
649 | * Merges queue limits for a top device and a block_device. Returns | ||
650 | * 0 if alignment didn't change. Returns -1 if adding the bottom | ||
651 | * device caused misalignment. | ||
652 | */ | ||
653 | int bdev_stack_limits(struct queue_limits *t, struct block_device *bdev, | ||
654 | sector_t start) | ||
655 | { | ||
656 | struct request_queue *bq = bdev_get_queue(bdev); | ||
657 | |||
658 | start += get_start_sect(bdev); | ||
659 | |||
660 | return blk_stack_limits(t, &bq->limits, start << 9); | ||
661 | } | ||
662 | EXPORT_SYMBOL(bdev_stack_limits); | ||
663 | |||
664 | /** | ||
599 | * disk_stack_limits - adjust queue limits for stacked drivers | 665 | * disk_stack_limits - adjust queue limits for stacked drivers |
600 | * @disk: MD/DM gendisk (top) | 666 | * @disk: MD/DM gendisk (top) |
601 | * @bdev: the underlying block device (bottom) | 667 | * @bdev: the underlying block device (bottom) |
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index e2f80463ed0..ee130f14d1f 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c | |||
@@ -208,8 +208,6 @@ struct cfq_data { | |||
208 | /* Root service tree for cfq_groups */ | 208 | /* Root service tree for cfq_groups */ |
209 | struct cfq_rb_root grp_service_tree; | 209 | struct cfq_rb_root grp_service_tree; |
210 | struct cfq_group root_group; | 210 | struct cfq_group root_group; |
211 | /* Number of active cfq groups on group service tree */ | ||
212 | int nr_groups; | ||
213 | 211 | ||
214 | /* | 212 | /* |
215 | * The priority currently being served | 213 | * The priority currently being served |
@@ -294,8 +292,7 @@ static struct cfq_group *cfq_get_next_cfqg(struct cfq_data *cfqd); | |||
294 | 292 | ||
295 | static struct cfq_rb_root *service_tree_for(struct cfq_group *cfqg, | 293 | static struct cfq_rb_root *service_tree_for(struct cfq_group *cfqg, |
296 | enum wl_prio_t prio, | 294 | enum wl_prio_t prio, |
297 | enum wl_type_t type, | 295 | enum wl_type_t type) |
298 | struct cfq_data *cfqd) | ||
299 | { | 296 | { |
300 | if (!cfqg) | 297 | if (!cfqg) |
301 | return NULL; | 298 | return NULL; |
@@ -842,7 +839,6 @@ cfq_group_service_tree_add(struct cfq_data *cfqd, struct cfq_group *cfqg) | |||
842 | 839 | ||
843 | __cfq_group_service_tree_add(st, cfqg); | 840 | __cfq_group_service_tree_add(st, cfqg); |
844 | cfqg->on_st = true; | 841 | cfqg->on_st = true; |
845 | cfqd->nr_groups++; | ||
846 | st->total_weight += cfqg->weight; | 842 | st->total_weight += cfqg->weight; |
847 | } | 843 | } |
848 | 844 | ||
@@ -863,7 +859,6 @@ cfq_group_service_tree_del(struct cfq_data *cfqd, struct cfq_group *cfqg) | |||
863 | 859 | ||
864 | cfq_log_cfqg(cfqd, cfqg, "del_from_rr group"); | 860 | cfq_log_cfqg(cfqd, cfqg, "del_from_rr group"); |
865 | cfqg->on_st = false; | 861 | cfqg->on_st = false; |
866 | cfqd->nr_groups--; | ||
867 | st->total_weight -= cfqg->weight; | 862 | st->total_weight -= cfqg->weight; |
868 | if (!RB_EMPTY_NODE(&cfqg->rb_node)) | 863 | if (!RB_EMPTY_NODE(&cfqg->rb_node)) |
869 | cfq_rb_erase(&cfqg->rb_node, st); | 864 | cfq_rb_erase(&cfqg->rb_node, st); |
@@ -1150,7 +1145,7 @@ static void cfq_service_tree_add(struct cfq_data *cfqd, struct cfq_queue *cfqq, | |||
1150 | #endif | 1145 | #endif |
1151 | 1146 | ||
1152 | service_tree = service_tree_for(cfqq->cfqg, cfqq_prio(cfqq), | 1147 | service_tree = service_tree_for(cfqq->cfqg, cfqq_prio(cfqq), |
1153 | cfqq_type(cfqq), cfqd); | 1148 | cfqq_type(cfqq)); |
1154 | if (cfq_class_idle(cfqq)) { | 1149 | if (cfq_class_idle(cfqq)) { |
1155 | rb_key = CFQ_IDLE_DELAY; | 1150 | rb_key = CFQ_IDLE_DELAY; |
1156 | parent = rb_last(&service_tree->rb); | 1151 | parent = rb_last(&service_tree->rb); |
@@ -1513,9 +1508,6 @@ static int cfq_allow_merge(struct request_queue *q, struct request *rq, | |||
1513 | struct cfq_io_context *cic; | 1508 | struct cfq_io_context *cic; |
1514 | struct cfq_queue *cfqq; | 1509 | struct cfq_queue *cfqq; |
1515 | 1510 | ||
1516 | /* Deny merge if bio and rq don't belong to same cfq group */ | ||
1517 | if ((RQ_CFQQ(rq))->cfqg != cfq_get_cfqg(cfqd, 0)) | ||
1518 | return false; | ||
1519 | /* | 1511 | /* |
1520 | * Disallow merge of a sync bio into an async request. | 1512 | * Disallow merge of a sync bio into an async request. |
1521 | */ | 1513 | */ |
@@ -1616,7 +1608,7 @@ static struct cfq_queue *cfq_get_next_queue(struct cfq_data *cfqd) | |||
1616 | { | 1608 | { |
1617 | struct cfq_rb_root *service_tree = | 1609 | struct cfq_rb_root *service_tree = |
1618 | service_tree_for(cfqd->serving_group, cfqd->serving_prio, | 1610 | service_tree_for(cfqd->serving_group, cfqd->serving_prio, |
1619 | cfqd->serving_type, cfqd); | 1611 | cfqd->serving_type); |
1620 | 1612 | ||
1621 | if (!cfqd->rq_queued) | 1613 | if (!cfqd->rq_queued) |
1622 | return NULL; | 1614 | return NULL; |
@@ -1675,13 +1667,17 @@ static inline sector_t cfq_dist_from_last(struct cfq_data *cfqd, | |||
1675 | #define CFQQ_SEEKY(cfqq) ((cfqq)->seek_mean > CFQQ_SEEK_THR) | 1667 | #define CFQQ_SEEKY(cfqq) ((cfqq)->seek_mean > CFQQ_SEEK_THR) |
1676 | 1668 | ||
1677 | static inline int cfq_rq_close(struct cfq_data *cfqd, struct cfq_queue *cfqq, | 1669 | static inline int cfq_rq_close(struct cfq_data *cfqd, struct cfq_queue *cfqq, |
1678 | struct request *rq) | 1670 | struct request *rq, bool for_preempt) |
1679 | { | 1671 | { |
1680 | sector_t sdist = cfqq->seek_mean; | 1672 | sector_t sdist = cfqq->seek_mean; |
1681 | 1673 | ||
1682 | if (!sample_valid(cfqq->seek_samples)) | 1674 | if (!sample_valid(cfqq->seek_samples)) |
1683 | sdist = CFQQ_SEEK_THR; | 1675 | sdist = CFQQ_SEEK_THR; |
1684 | 1676 | ||
1677 | /* if seek_mean is big, using it as close criteria is meaningless */ | ||
1678 | if (sdist > CFQQ_SEEK_THR && !for_preempt) | ||
1679 | sdist = CFQQ_SEEK_THR; | ||
1680 | |||
1685 | return cfq_dist_from_last(cfqd, rq) <= sdist; | 1681 | return cfq_dist_from_last(cfqd, rq) <= sdist; |
1686 | } | 1682 | } |
1687 | 1683 | ||
@@ -1709,7 +1705,7 @@ static struct cfq_queue *cfqq_close(struct cfq_data *cfqd, | |||
1709 | * will contain the closest sector. | 1705 | * will contain the closest sector. |
1710 | */ | 1706 | */ |
1711 | __cfqq = rb_entry(parent, struct cfq_queue, p_node); | 1707 | __cfqq = rb_entry(parent, struct cfq_queue, p_node); |
1712 | if (cfq_rq_close(cfqd, cur_cfqq, __cfqq->next_rq)) | 1708 | if (cfq_rq_close(cfqd, cur_cfqq, __cfqq->next_rq, false)) |
1713 | return __cfqq; | 1709 | return __cfqq; |
1714 | 1710 | ||
1715 | if (blk_rq_pos(__cfqq->next_rq) < sector) | 1711 | if (blk_rq_pos(__cfqq->next_rq) < sector) |
@@ -1720,7 +1716,7 @@ static struct cfq_queue *cfqq_close(struct cfq_data *cfqd, | |||
1720 | return NULL; | 1716 | return NULL; |
1721 | 1717 | ||
1722 | __cfqq = rb_entry(node, struct cfq_queue, p_node); | 1718 | __cfqq = rb_entry(node, struct cfq_queue, p_node); |
1723 | if (cfq_rq_close(cfqd, cur_cfqq, __cfqq->next_rq)) | 1719 | if (cfq_rq_close(cfqd, cur_cfqq, __cfqq->next_rq, false)) |
1724 | return __cfqq; | 1720 | return __cfqq; |
1725 | 1721 | ||
1726 | return NULL; | 1722 | return NULL; |
@@ -1963,8 +1959,7 @@ static void cfq_setup_merge(struct cfq_queue *cfqq, struct cfq_queue *new_cfqq) | |||
1963 | } | 1959 | } |
1964 | 1960 | ||
1965 | static enum wl_type_t cfq_choose_wl(struct cfq_data *cfqd, | 1961 | static enum wl_type_t cfq_choose_wl(struct cfq_data *cfqd, |
1966 | struct cfq_group *cfqg, enum wl_prio_t prio, | 1962 | struct cfq_group *cfqg, enum wl_prio_t prio) |
1967 | bool prio_changed) | ||
1968 | { | 1963 | { |
1969 | struct cfq_queue *queue; | 1964 | struct cfq_queue *queue; |
1970 | int i; | 1965 | int i; |
@@ -1972,24 +1967,9 @@ static enum wl_type_t cfq_choose_wl(struct cfq_data *cfqd, | |||
1972 | unsigned long lowest_key = 0; | 1967 | unsigned long lowest_key = 0; |
1973 | enum wl_type_t cur_best = SYNC_NOIDLE_WORKLOAD; | 1968 | enum wl_type_t cur_best = SYNC_NOIDLE_WORKLOAD; |
1974 | 1969 | ||
1975 | if (prio_changed) { | 1970 | for (i = 0; i <= SYNC_WORKLOAD; ++i) { |
1976 | /* | 1971 | /* select the one with lowest rb_key */ |
1977 | * When priorities switched, we prefer starting | 1972 | queue = cfq_rb_first(service_tree_for(cfqg, prio, i)); |
1978 | * from SYNC_NOIDLE (first choice), or just SYNC | ||
1979 | * over ASYNC | ||
1980 | */ | ||
1981 | if (service_tree_for(cfqg, prio, cur_best, cfqd)->count) | ||
1982 | return cur_best; | ||
1983 | cur_best = SYNC_WORKLOAD; | ||
1984 | if (service_tree_for(cfqg, prio, cur_best, cfqd)->count) | ||
1985 | return cur_best; | ||
1986 | |||
1987 | return ASYNC_WORKLOAD; | ||
1988 | } | ||
1989 | |||
1990 | for (i = 0; i < 3; ++i) { | ||
1991 | /* otherwise, select the one with lowest rb_key */ | ||
1992 | queue = cfq_rb_first(service_tree_for(cfqg, prio, i, cfqd)); | ||
1993 | if (queue && | 1973 | if (queue && |
1994 | (!key_valid || time_before(queue->rb_key, lowest_key))) { | 1974 | (!key_valid || time_before(queue->rb_key, lowest_key))) { |
1995 | lowest_key = queue->rb_key; | 1975 | lowest_key = queue->rb_key; |
@@ -2003,8 +1983,6 @@ static enum wl_type_t cfq_choose_wl(struct cfq_data *cfqd, | |||
2003 | 1983 | ||
2004 | static void choose_service_tree(struct cfq_data *cfqd, struct cfq_group *cfqg) | 1984 | static void choose_service_tree(struct cfq_data *cfqd, struct cfq_group *cfqg) |
2005 | { | 1985 | { |
2006 | enum wl_prio_t previous_prio = cfqd->serving_prio; | ||
2007 | bool prio_changed; | ||
2008 | unsigned slice; | 1986 | unsigned slice; |
2009 | unsigned count; | 1987 | unsigned count; |
2010 | struct cfq_rb_root *st; | 1988 | struct cfq_rb_root *st; |
@@ -2032,24 +2010,19 @@ static void choose_service_tree(struct cfq_data *cfqd, struct cfq_group *cfqg) | |||
2032 | * (SYNC, SYNC_NOIDLE, ASYNC), and to compute a workload | 2010 | * (SYNC, SYNC_NOIDLE, ASYNC), and to compute a workload |
2033 | * expiration time | 2011 | * expiration time |
2034 | */ | 2012 | */ |
2035 | prio_changed = (cfqd->serving_prio != previous_prio); | 2013 | st = service_tree_for(cfqg, cfqd->serving_prio, cfqd->serving_type); |
2036 | st = service_tree_for(cfqg, cfqd->serving_prio, cfqd->serving_type, | ||
2037 | cfqd); | ||
2038 | count = st->count; | 2014 | count = st->count; |
2039 | 2015 | ||
2040 | /* | 2016 | /* |
2041 | * If priority didn't change, check workload expiration, | 2017 | * check workload expiration, and that we still have other queues ready |
2042 | * and that we still have other queues ready | ||
2043 | */ | 2018 | */ |
2044 | if (!prio_changed && count && | 2019 | if (count && !time_after(jiffies, cfqd->workload_expires)) |
2045 | !time_after(jiffies, cfqd->workload_expires)) | ||
2046 | return; | 2020 | return; |
2047 | 2021 | ||
2048 | /* otherwise select new workload type */ | 2022 | /* otherwise select new workload type */ |
2049 | cfqd->serving_type = | 2023 | cfqd->serving_type = |
2050 | cfq_choose_wl(cfqd, cfqg, cfqd->serving_prio, prio_changed); | 2024 | cfq_choose_wl(cfqd, cfqg, cfqd->serving_prio); |
2051 | st = service_tree_for(cfqg, cfqd->serving_prio, cfqd->serving_type, | 2025 | st = service_tree_for(cfqg, cfqd->serving_prio, cfqd->serving_type); |
2052 | cfqd); | ||
2053 | count = st->count; | 2026 | count = st->count; |
2054 | 2027 | ||
2055 | /* | 2028 | /* |
@@ -3104,6 +3077,12 @@ cfq_should_preempt(struct cfq_data *cfqd, struct cfq_queue *new_cfqq, | |||
3104 | return true; | 3077 | return true; |
3105 | 3078 | ||
3106 | /* | 3079 | /* |
3080 | * Don't allow a non-RT request to preempt an ongoing RT cfqq timeslice. | ||
3081 | */ | ||
3082 | if (cfq_class_rt(cfqq) && !cfq_class_rt(new_cfqq)) | ||
3083 | return false; | ||
3084 | |||
3085 | /* | ||
3107 | * if the new request is sync, but the currently running queue is | 3086 | * if the new request is sync, but the currently running queue is |
3108 | * not, let the sync request have priority. | 3087 | * not, let the sync request have priority. |
3109 | */ | 3088 | */ |
@@ -3143,7 +3122,7 @@ cfq_should_preempt(struct cfq_data *cfqd, struct cfq_queue *new_cfqq, | |||
3143 | * if this request is as-good as one we would expect from the | 3122 | * if this request is as-good as one we would expect from the |
3144 | * current cfqq, let it preempt | 3123 | * current cfqq, let it preempt |
3145 | */ | 3124 | */ |
3146 | if (cfq_rq_close(cfqd, cfqq, rq)) | 3125 | if (cfq_rq_close(cfqd, cfqq, rq, true)) |
3147 | return true; | 3126 | return true; |
3148 | 3127 | ||
3149 | return false; | 3128 | return false; |
diff --git a/block/genhd.c b/block/genhd.c index b11a4ad7d57..d13ba76a169 100644 --- a/block/genhd.c +++ b/block/genhd.c | |||
@@ -867,7 +867,7 @@ static ssize_t disk_discard_alignment_show(struct device *dev, | |||
867 | { | 867 | { |
868 | struct gendisk *disk = dev_to_disk(dev); | 868 | struct gendisk *disk = dev_to_disk(dev); |
869 | 869 | ||
870 | return sprintf(buf, "%u\n", queue_discard_alignment(disk->queue)); | 870 | return sprintf(buf, "%d\n", queue_discard_alignment(disk->queue)); |
871 | } | 871 | } |
872 | 872 | ||
873 | static DEVICE_ATTR(range, S_IRUGO, disk_range_show, NULL); | 873 | static DEVICE_ATTR(range, S_IRUGO, disk_range_show, NULL); |
diff --git a/crypto/async_tx/raid6test.c b/crypto/async_tx/raid6test.c index 3ec27c7e62e..f84f6b4301d 100644 --- a/crypto/async_tx/raid6test.c +++ b/crypto/async_tx/raid6test.c | |||
@@ -214,6 +214,13 @@ static int raid6_test(void) | |||
214 | err += test(4, &tests); | 214 | err += test(4, &tests); |
215 | if (NDISKS > 5) | 215 | if (NDISKS > 5) |
216 | err += test(5, &tests); | 216 | err += test(5, &tests); |
217 | /* the 11 and 12 disk cases are special for ioatdma (p-disabled | ||
218 | * q-continuation without extended descriptor) | ||
219 | */ | ||
220 | if (NDISKS > 12) { | ||
221 | err += test(11, &tests); | ||
222 | err += test(12, &tests); | ||
223 | } | ||
217 | err += test(NDISKS, &tests); | 224 | err += test(NDISKS, &tests); |
218 | 225 | ||
219 | pr("\n"); | 226 | pr("\n"); |
diff --git a/drivers/Kconfig b/drivers/Kconfig index 8a07363417e..368ae6d3a09 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig | |||
@@ -28,7 +28,7 @@ source "drivers/md/Kconfig" | |||
28 | 28 | ||
29 | source "drivers/message/fusion/Kconfig" | 29 | source "drivers/message/fusion/Kconfig" |
30 | 30 | ||
31 | source "drivers/ieee1394/Kconfig" | 31 | source "drivers/firewire/Kconfig" |
32 | 32 | ||
33 | source "drivers/message/i2o/Kconfig" | 33 | source "drivers/message/i2o/Kconfig" |
34 | 34 | ||
diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c index 97991ac6f5f..7e52295f1ec 100644 --- a/drivers/acpi/acpi_pad.c +++ b/drivers/acpi/acpi_pad.c | |||
@@ -208,7 +208,7 @@ static int power_saving_thread(void *data) | |||
208 | * the mechanism only works when all CPUs have RT task running, | 208 | * the mechanism only works when all CPUs have RT task running, |
209 | * as if one CPU hasn't RT task, RT task from other CPUs will | 209 | * as if one CPU hasn't RT task, RT task from other CPUs will |
210 | * borrow CPU time from this CPU and cause RT task use > 95% | 210 | * borrow CPU time from this CPU and cause RT task use > 95% |
211 | * CPU time. To make 'avoid staration' work, takes a nap here. | 211 | * CPU time. To make 'avoid starvation' work, takes a nap here. |
212 | */ | 212 | */ |
213 | if (do_sleep) | 213 | if (do_sleep) |
214 | schedule_timeout_killable(HZ * idle_pct / 100); | 214 | schedule_timeout_killable(HZ * idle_pct / 100); |
@@ -222,14 +222,18 @@ static struct task_struct *ps_tsks[NR_CPUS]; | |||
222 | static unsigned int ps_tsk_num; | 222 | static unsigned int ps_tsk_num; |
223 | static int create_power_saving_task(void) | 223 | static int create_power_saving_task(void) |
224 | { | 224 | { |
225 | int rc = -ENOMEM; | ||
226 | |||
225 | ps_tsks[ps_tsk_num] = kthread_run(power_saving_thread, | 227 | ps_tsks[ps_tsk_num] = kthread_run(power_saving_thread, |
226 | (void *)(unsigned long)ps_tsk_num, | 228 | (void *)(unsigned long)ps_tsk_num, |
227 | "power_saving/%d", ps_tsk_num); | 229 | "power_saving/%d", ps_tsk_num); |
228 | if (ps_tsks[ps_tsk_num]) { | 230 | rc = IS_ERR(ps_tsks[ps_tsk_num]) ? PTR_ERR(ps_tsks[ps_tsk_num]) : 0; |
231 | if (!rc) | ||
229 | ps_tsk_num++; | 232 | ps_tsk_num++; |
230 | return 0; | 233 | else |
231 | } | 234 | ps_tsks[ps_tsk_num] = NULL; |
232 | return -EINVAL; | 235 | |
236 | return rc; | ||
233 | } | 237 | } |
234 | 238 | ||
235 | static void destroy_power_saving_task(void) | 239 | static void destroy_power_saving_task(void) |
@@ -237,6 +241,7 @@ static void destroy_power_saving_task(void) | |||
237 | if (ps_tsk_num > 0) { | 241 | if (ps_tsk_num > 0) { |
238 | ps_tsk_num--; | 242 | ps_tsk_num--; |
239 | kthread_stop(ps_tsks[ps_tsk_num]); | 243 | kthread_stop(ps_tsks[ps_tsk_num]); |
244 | ps_tsks[ps_tsk_num] = NULL; | ||
240 | } | 245 | } |
241 | } | 246 | } |
242 | 247 | ||
@@ -253,7 +258,7 @@ static void set_power_saving_task_num(unsigned int num) | |||
253 | } | 258 | } |
254 | } | 259 | } |
255 | 260 | ||
256 | static int acpi_pad_idle_cpus(unsigned int num_cpus) | 261 | static void acpi_pad_idle_cpus(unsigned int num_cpus) |
257 | { | 262 | { |
258 | get_online_cpus(); | 263 | get_online_cpus(); |
259 | 264 | ||
@@ -261,7 +266,6 @@ static int acpi_pad_idle_cpus(unsigned int num_cpus) | |||
261 | set_power_saving_task_num(num_cpus); | 266 | set_power_saving_task_num(num_cpus); |
262 | 267 | ||
263 | put_online_cpus(); | 268 | put_online_cpus(); |
264 | return 0; | ||
265 | } | 269 | } |
266 | 270 | ||
267 | static uint32_t acpi_pad_idle_cpus_num(void) | 271 | static uint32_t acpi_pad_idle_cpus_num(void) |
@@ -369,19 +373,21 @@ static void acpi_pad_remove_sysfs(struct acpi_device *device) | |||
369 | static int acpi_pad_pur(acpi_handle handle, int *num_cpus) | 373 | static int acpi_pad_pur(acpi_handle handle, int *num_cpus) |
370 | { | 374 | { |
371 | struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL}; | 375 | struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL}; |
372 | acpi_status status; | ||
373 | union acpi_object *package; | 376 | union acpi_object *package; |
374 | int rev, num, ret = -EINVAL; | 377 | int rev, num, ret = -EINVAL; |
375 | 378 | ||
376 | status = acpi_evaluate_object(handle, "_PUR", NULL, &buffer); | 379 | if (ACPI_FAILURE(acpi_evaluate_object(handle, "_PUR", NULL, &buffer))) |
377 | if (ACPI_FAILURE(status)) | 380 | return -EINVAL; |
381 | |||
382 | if (!buffer.length || !buffer.pointer) | ||
378 | return -EINVAL; | 383 | return -EINVAL; |
384 | |||
379 | package = buffer.pointer; | 385 | package = buffer.pointer; |
380 | if (package->type != ACPI_TYPE_PACKAGE || package->package.count != 2) | 386 | if (package->type != ACPI_TYPE_PACKAGE || package->package.count != 2) |
381 | goto out; | 387 | goto out; |
382 | rev = package->package.elements[0].integer.value; | 388 | rev = package->package.elements[0].integer.value; |
383 | num = package->package.elements[1].integer.value; | 389 | num = package->package.elements[1].integer.value; |
384 | if (rev != 1) | 390 | if (rev != 1 || num < 0) |
385 | goto out; | 391 | goto out; |
386 | *num_cpus = num; | 392 | *num_cpus = num; |
387 | ret = 0; | 393 | ret = 0; |
@@ -410,7 +416,7 @@ static void acpi_pad_ost(acpi_handle handle, int stat, | |||
410 | 416 | ||
411 | static void acpi_pad_handle_notify(acpi_handle handle) | 417 | static void acpi_pad_handle_notify(acpi_handle handle) |
412 | { | 418 | { |
413 | int num_cpus, ret; | 419 | int num_cpus; |
414 | uint32_t idle_cpus; | 420 | uint32_t idle_cpus; |
415 | 421 | ||
416 | mutex_lock(&isolated_cpus_lock); | 422 | mutex_lock(&isolated_cpus_lock); |
@@ -418,12 +424,9 @@ static void acpi_pad_handle_notify(acpi_handle handle) | |||
418 | mutex_unlock(&isolated_cpus_lock); | 424 | mutex_unlock(&isolated_cpus_lock); |
419 | return; | 425 | return; |
420 | } | 426 | } |
421 | ret = acpi_pad_idle_cpus(num_cpus); | 427 | acpi_pad_idle_cpus(num_cpus); |
422 | idle_cpus = acpi_pad_idle_cpus_num(); | 428 | idle_cpus = acpi_pad_idle_cpus_num(); |
423 | if (!ret) | 429 | acpi_pad_ost(handle, 0, idle_cpus); |
424 | acpi_pad_ost(handle, 0, idle_cpus); | ||
425 | else | ||
426 | acpi_pad_ost(handle, 1, 0); | ||
427 | mutex_unlock(&isolated_cpus_lock); | 430 | mutex_unlock(&isolated_cpus_lock); |
428 | } | 431 | } |
429 | 432 | ||
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index cf761b904e4..a52126e4630 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c | |||
@@ -490,9 +490,14 @@ static void acpi_bus_osc_support(void) | |||
490 | 490 | ||
491 | capbuf[OSC_QUERY_TYPE] = OSC_QUERY_ENABLE; | 491 | capbuf[OSC_QUERY_TYPE] = OSC_QUERY_ENABLE; |
492 | capbuf[OSC_SUPPORT_TYPE] = OSC_SB_PR3_SUPPORT; /* _PR3 is in use */ | 492 | capbuf[OSC_SUPPORT_TYPE] = OSC_SB_PR3_SUPPORT; /* _PR3 is in use */ |
493 | #ifdef CONFIG_ACPI_PROCESSOR_AGGREGATOR | 493 | #if defined(CONFIG_ACPI_PROCESSOR_AGGREGATOR) ||\ |
494 | defined(CONFIG_ACPI_PROCESSOR_AGGREGATOR_MODULE) | ||
494 | capbuf[OSC_SUPPORT_TYPE] |= OSC_SB_PAD_SUPPORT; | 495 | capbuf[OSC_SUPPORT_TYPE] |= OSC_SB_PAD_SUPPORT; |
495 | #endif | 496 | #endif |
497 | |||
498 | #if defined(CONFIG_ACPI_PROCESSOR) || defined(CONFIG_ACPI_PROCESSOR_MODULE) | ||
499 | capbuf[OSC_SUPPORT_TYPE] |= OSC_SB_PPC_OST_SUPPORT; | ||
500 | #endif | ||
496 | if (ACPI_FAILURE(acpi_get_handle(NULL, "\\_SB", &handle))) | 501 | if (ACPI_FAILURE(acpi_get_handle(NULL, "\\_SB", &handle))) |
497 | return; | 502 | return; |
498 | if (ACPI_SUCCESS(acpi_run_osc(handle, &context))) | 503 | if (ACPI_SUCCESS(acpi_run_osc(handle, &context))) |
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index fd1801bdee6..d6471bb6852 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
@@ -201,14 +201,13 @@ unlock: | |||
201 | spin_unlock_irqrestore(&ec->curr_lock, flags); | 201 | spin_unlock_irqrestore(&ec->curr_lock, flags); |
202 | } | 202 | } |
203 | 203 | ||
204 | static void acpi_ec_gpe_query(void *ec_cxt); | 204 | static int acpi_ec_sync_query(struct acpi_ec *ec); |
205 | 205 | ||
206 | static int ec_check_sci(struct acpi_ec *ec, u8 state) | 206 | static int ec_check_sci_sync(struct acpi_ec *ec, u8 state) |
207 | { | 207 | { |
208 | if (state & ACPI_EC_FLAG_SCI) { | 208 | if (state & ACPI_EC_FLAG_SCI) { |
209 | if (!test_and_set_bit(EC_FLAGS_QUERY_PENDING, &ec->flags)) | 209 | if (!test_and_set_bit(EC_FLAGS_QUERY_PENDING, &ec->flags)) |
210 | return acpi_os_execute(OSL_EC_BURST_HANDLER, | 210 | return acpi_ec_sync_query(ec); |
211 | acpi_ec_gpe_query, ec); | ||
212 | } | 211 | } |
213 | return 0; | 212 | return 0; |
214 | } | 213 | } |
@@ -249,11 +248,6 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec, | |||
249 | { | 248 | { |
250 | unsigned long tmp; | 249 | unsigned long tmp; |
251 | int ret = 0; | 250 | int ret = 0; |
252 | pr_debug(PREFIX "transaction start\n"); | ||
253 | /* disable GPE during transaction if storm is detected */ | ||
254 | if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) { | ||
255 | acpi_disable_gpe(NULL, ec->gpe); | ||
256 | } | ||
257 | if (EC_FLAGS_MSI) | 251 | if (EC_FLAGS_MSI) |
258 | udelay(ACPI_EC_MSI_UDELAY); | 252 | udelay(ACPI_EC_MSI_UDELAY); |
259 | /* start transaction */ | 253 | /* start transaction */ |
@@ -265,20 +259,9 @@ static int acpi_ec_transaction_unlocked(struct acpi_ec *ec, | |||
265 | clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags); | 259 | clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags); |
266 | spin_unlock_irqrestore(&ec->curr_lock, tmp); | 260 | spin_unlock_irqrestore(&ec->curr_lock, tmp); |
267 | ret = ec_poll(ec); | 261 | ret = ec_poll(ec); |
268 | pr_debug(PREFIX "transaction end\n"); | ||
269 | spin_lock_irqsave(&ec->curr_lock, tmp); | 262 | spin_lock_irqsave(&ec->curr_lock, tmp); |
270 | ec->curr = NULL; | 263 | ec->curr = NULL; |
271 | spin_unlock_irqrestore(&ec->curr_lock, tmp); | 264 | spin_unlock_irqrestore(&ec->curr_lock, tmp); |
272 | if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) { | ||
273 | /* check if we received SCI during transaction */ | ||
274 | ec_check_sci(ec, acpi_ec_read_status(ec)); | ||
275 | /* it is safe to enable GPE outside of transaction */ | ||
276 | acpi_enable_gpe(NULL, ec->gpe); | ||
277 | } else if (t->irq_count > ACPI_EC_STORM_THRESHOLD) { | ||
278 | pr_info(PREFIX "GPE storm detected, " | ||
279 | "transactions will use polling mode\n"); | ||
280 | set_bit(EC_FLAGS_GPE_STORM, &ec->flags); | ||
281 | } | ||
282 | return ret; | 265 | return ret; |
283 | } | 266 | } |
284 | 267 | ||
@@ -321,7 +304,26 @@ static int acpi_ec_transaction(struct acpi_ec *ec, struct transaction *t) | |||
321 | status = -ETIME; | 304 | status = -ETIME; |
322 | goto end; | 305 | goto end; |
323 | } | 306 | } |
307 | pr_debug(PREFIX "transaction start\n"); | ||
308 | /* disable GPE during transaction if storm is detected */ | ||
309 | if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) { | ||
310 | acpi_disable_gpe(NULL, ec->gpe); | ||
311 | } | ||
312 | |||
324 | status = acpi_ec_transaction_unlocked(ec, t); | 313 | status = acpi_ec_transaction_unlocked(ec, t); |
314 | |||
315 | /* check if we received SCI during transaction */ | ||
316 | ec_check_sci_sync(ec, acpi_ec_read_status(ec)); | ||
317 | if (test_bit(EC_FLAGS_GPE_STORM, &ec->flags)) { | ||
318 | msleep(1); | ||
319 | /* it is safe to enable GPE outside of transaction */ | ||
320 | acpi_enable_gpe(NULL, ec->gpe); | ||
321 | } else if (t->irq_count > ACPI_EC_STORM_THRESHOLD) { | ||
322 | pr_info(PREFIX "GPE storm detected, " | ||
323 | "transactions will use polling mode\n"); | ||
324 | set_bit(EC_FLAGS_GPE_STORM, &ec->flags); | ||
325 | } | ||
326 | pr_debug(PREFIX "transaction end\n"); | ||
325 | end: | 327 | end: |
326 | if (ec->global_lock) | 328 | if (ec->global_lock) |
327 | acpi_release_global_lock(glk); | 329 | acpi_release_global_lock(glk); |
@@ -443,7 +445,7 @@ int ec_transaction(u8 command, | |||
443 | 445 | ||
444 | EXPORT_SYMBOL(ec_transaction); | 446 | EXPORT_SYMBOL(ec_transaction); |
445 | 447 | ||
446 | static int acpi_ec_query(struct acpi_ec *ec, u8 * data) | 448 | static int acpi_ec_query_unlocked(struct acpi_ec *ec, u8 * data) |
447 | { | 449 | { |
448 | int result; | 450 | int result; |
449 | u8 d; | 451 | u8 d; |
@@ -452,20 +454,16 @@ static int acpi_ec_query(struct acpi_ec *ec, u8 * data) | |||
452 | .wlen = 0, .rlen = 1}; | 454 | .wlen = 0, .rlen = 1}; |
453 | if (!ec || !data) | 455 | if (!ec || !data) |
454 | return -EINVAL; | 456 | return -EINVAL; |
455 | |||
456 | /* | 457 | /* |
457 | * Query the EC to find out which _Qxx method we need to evaluate. | 458 | * Query the EC to find out which _Qxx method we need to evaluate. |
458 | * Note that successful completion of the query causes the ACPI_EC_SCI | 459 | * Note that successful completion of the query causes the ACPI_EC_SCI |
459 | * bit to be cleared (and thus clearing the interrupt source). | 460 | * bit to be cleared (and thus clearing the interrupt source). |
460 | */ | 461 | */ |
461 | 462 | result = acpi_ec_transaction_unlocked(ec, &t); | |
462 | result = acpi_ec_transaction(ec, &t); | ||
463 | if (result) | 463 | if (result) |
464 | return result; | 464 | return result; |
465 | |||
466 | if (!d) | 465 | if (!d) |
467 | return -ENODATA; | 466 | return -ENODATA; |
468 | |||
469 | *data = d; | 467 | *data = d; |
470 | return 0; | 468 | return 0; |
471 | } | 469 | } |
@@ -509,43 +507,79 @@ void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit) | |||
509 | 507 | ||
510 | EXPORT_SYMBOL_GPL(acpi_ec_remove_query_handler); | 508 | EXPORT_SYMBOL_GPL(acpi_ec_remove_query_handler); |
511 | 509 | ||
512 | static void acpi_ec_gpe_query(void *ec_cxt) | 510 | static void acpi_ec_run(void *cxt) |
513 | { | 511 | { |
514 | struct acpi_ec *ec = ec_cxt; | 512 | struct acpi_ec_query_handler *handler = cxt; |
515 | u8 value = 0; | 513 | if (!handler) |
516 | struct acpi_ec_query_handler *handler, copy; | ||
517 | |||
518 | if (!ec || acpi_ec_query(ec, &value)) | ||
519 | return; | 514 | return; |
520 | mutex_lock(&ec->lock); | 515 | pr_debug(PREFIX "start query execution\n"); |
516 | if (handler->func) | ||
517 | handler->func(handler->data); | ||
518 | else if (handler->handle) | ||
519 | acpi_evaluate_object(handler->handle, NULL, NULL, NULL); | ||
520 | pr_debug(PREFIX "stop query execution\n"); | ||
521 | kfree(handler); | ||
522 | } | ||
523 | |||
524 | static int acpi_ec_sync_query(struct acpi_ec *ec) | ||
525 | { | ||
526 | u8 value = 0; | ||
527 | int status; | ||
528 | struct acpi_ec_query_handler *handler, *copy; | ||
529 | if ((status = acpi_ec_query_unlocked(ec, &value))) | ||
530 | return status; | ||
521 | list_for_each_entry(handler, &ec->list, node) { | 531 | list_for_each_entry(handler, &ec->list, node) { |
522 | if (value == handler->query_bit) { | 532 | if (value == handler->query_bit) { |
523 | /* have custom handler for this bit */ | 533 | /* have custom handler for this bit */ |
524 | memcpy(©, handler, sizeof(copy)); | 534 | copy = kmalloc(sizeof(*handler), GFP_KERNEL); |
525 | mutex_unlock(&ec->lock); | 535 | if (!copy) |
526 | if (copy.func) { | 536 | return -ENOMEM; |
527 | copy.func(copy.data); | 537 | memcpy(copy, handler, sizeof(*copy)); |
528 | } else if (copy.handle) { | 538 | pr_debug(PREFIX "push query execution (0x%2x) on queue\n", value); |
529 | acpi_evaluate_object(copy.handle, NULL, NULL, NULL); | 539 | return acpi_os_execute((copy->func) ? |
530 | } | 540 | OSL_NOTIFY_HANDLER : OSL_GPE_HANDLER, |
531 | return; | 541 | acpi_ec_run, copy); |
532 | } | 542 | } |
533 | } | 543 | } |
544 | return 0; | ||
545 | } | ||
546 | |||
547 | static void acpi_ec_gpe_query(void *ec_cxt) | ||
548 | { | ||
549 | struct acpi_ec *ec = ec_cxt; | ||
550 | if (!ec) | ||
551 | return; | ||
552 | mutex_lock(&ec->lock); | ||
553 | acpi_ec_sync_query(ec); | ||
534 | mutex_unlock(&ec->lock); | 554 | mutex_unlock(&ec->lock); |
535 | } | 555 | } |
536 | 556 | ||
557 | static void acpi_ec_gpe_query(void *ec_cxt); | ||
558 | |||
559 | static int ec_check_sci(struct acpi_ec *ec, u8 state) | ||
560 | { | ||
561 | if (state & ACPI_EC_FLAG_SCI) { | ||
562 | if (!test_and_set_bit(EC_FLAGS_QUERY_PENDING, &ec->flags)) { | ||
563 | pr_debug(PREFIX "push gpe query to the queue\n"); | ||
564 | return acpi_os_execute(OSL_NOTIFY_HANDLER, | ||
565 | acpi_ec_gpe_query, ec); | ||
566 | } | ||
567 | } | ||
568 | return 0; | ||
569 | } | ||
570 | |||
537 | static u32 acpi_ec_gpe_handler(void *data) | 571 | static u32 acpi_ec_gpe_handler(void *data) |
538 | { | 572 | { |
539 | struct acpi_ec *ec = data; | 573 | struct acpi_ec *ec = data; |
540 | u8 status; | ||
541 | 574 | ||
542 | pr_debug(PREFIX "~~~> interrupt\n"); | 575 | pr_debug(PREFIX "~~~> interrupt\n"); |
543 | status = acpi_ec_read_status(ec); | ||
544 | 576 | ||
545 | advance_transaction(ec, status); | 577 | advance_transaction(ec, acpi_ec_read_status(ec)); |
546 | if (ec_transaction_done(ec) && (status & ACPI_EC_FLAG_IBF) == 0) | 578 | if (ec_transaction_done(ec) && |
579 | (acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF) == 0) { | ||
547 | wake_up(&ec->wait); | 580 | wake_up(&ec->wait); |
548 | ec_check_sci(ec, status); | 581 | ec_check_sci(ec, acpi_ec_read_status(ec)); |
582 | } | ||
549 | return ACPI_INTERRUPT_HANDLED; | 583 | return ACPI_INTERRUPT_HANDLED; |
550 | } | 584 | } |
551 | 585 | ||
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c index 394ae89409c..04b0f007c9b 100644 --- a/drivers/acpi/pci_link.c +++ b/drivers/acpi/pci_link.c | |||
@@ -56,7 +56,7 @@ ACPI_MODULE_NAME("pci_link"); | |||
56 | static int acpi_pci_link_add(struct acpi_device *device); | 56 | static int acpi_pci_link_add(struct acpi_device *device); |
57 | static int acpi_pci_link_remove(struct acpi_device *device, int type); | 57 | static int acpi_pci_link_remove(struct acpi_device *device, int type); |
58 | 58 | ||
59 | static struct acpi_device_id link_device_ids[] = { | 59 | static const struct acpi_device_id link_device_ids[] = { |
60 | {"PNP0C0F", 0}, | 60 | {"PNP0C0F", 0}, |
61 | {"", 0}, | 61 | {"", 0}, |
62 | }; | 62 | }; |
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c index 101cce3681d..64f55b6db73 100644 --- a/drivers/acpi/pci_root.c +++ b/drivers/acpi/pci_root.c | |||
@@ -46,7 +46,7 @@ static int acpi_pci_root_add(struct acpi_device *device); | |||
46 | static int acpi_pci_root_remove(struct acpi_device *device, int type); | 46 | static int acpi_pci_root_remove(struct acpi_device *device, int type); |
47 | static int acpi_pci_root_start(struct acpi_device *device); | 47 | static int acpi_pci_root_start(struct acpi_device *device); |
48 | 48 | ||
49 | static struct acpi_device_id root_device_ids[] = { | 49 | static const struct acpi_device_id root_device_ids[] = { |
50 | {"PNP0A03", 0}, | 50 | {"PNP0A03", 0}, |
51 | {"", 0}, | 51 | {"", 0}, |
52 | }; | 52 | }; |
diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c index 22b29791651..0f30c3c1eea 100644 --- a/drivers/acpi/power.c +++ b/drivers/acpi/power.c | |||
@@ -65,7 +65,7 @@ static int acpi_power_remove(struct acpi_device *device, int type); | |||
65 | static int acpi_power_resume(struct acpi_device *device); | 65 | static int acpi_power_resume(struct acpi_device *device); |
66 | static int acpi_power_open_fs(struct inode *inode, struct file *file); | 66 | static int acpi_power_open_fs(struct inode *inode, struct file *file); |
67 | 67 | ||
68 | static struct acpi_device_id power_device_ids[] = { | 68 | static const struct acpi_device_id power_device_ids[] = { |
69 | {ACPI_POWER_HID, 0}, | 69 | {ACPI_POWER_HID, 0}, |
70 | {"", 0}, | 70 | {"", 0}, |
71 | }; | 71 | }; |
diff --git a/drivers/acpi/power_meter.c b/drivers/acpi/power_meter.c index 2ef7030a0c2..dc4ffadf812 100644 --- a/drivers/acpi/power_meter.c +++ b/drivers/acpi/power_meter.c | |||
@@ -64,7 +64,7 @@ static int can_cap_in_hardware(void) | |||
64 | return force_cap_on || cap_in_hardware; | 64 | return force_cap_on || cap_in_hardware; |
65 | } | 65 | } |
66 | 66 | ||
67 | static struct acpi_device_id power_meter_ids[] = { | 67 | static const struct acpi_device_id power_meter_ids[] = { |
68 | {"ACPI000D", 0}, | 68 | {"ACPI000D", 0}, |
69 | {"", 0}, | 69 | {"", 0}, |
70 | }; | 70 | }; |
@@ -534,6 +534,7 @@ static void remove_domain_devices(struct acpi_power_meter_resource *resource) | |||
534 | 534 | ||
535 | kfree(resource->domain_devices); | 535 | kfree(resource->domain_devices); |
536 | kobject_put(resource->holders_dir); | 536 | kobject_put(resource->holders_dir); |
537 | resource->num_domain_devices = 0; | ||
537 | } | 538 | } |
538 | 539 | ||
539 | static int read_domain_devices(struct acpi_power_meter_resource *resource) | 540 | static int read_domain_devices(struct acpi_power_meter_resource *resource) |
@@ -740,7 +741,6 @@ skip_unsafe_cap: | |||
740 | 741 | ||
741 | return res; | 742 | return res; |
742 | error: | 743 | error: |
743 | remove_domain_devices(resource); | ||
744 | remove_attrs(resource); | 744 | remove_attrs(resource); |
745 | return res; | 745 | return res; |
746 | } | 746 | } |
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index d1676b1754d..7c0441f63b3 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
@@ -305,6 +305,28 @@ static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr) | |||
305 | pr->power.states[ACPI_STATE_C2].latency = acpi_gbl_FADT.C2latency; | 305 | pr->power.states[ACPI_STATE_C2].latency = acpi_gbl_FADT.C2latency; |
306 | pr->power.states[ACPI_STATE_C3].latency = acpi_gbl_FADT.C3latency; | 306 | pr->power.states[ACPI_STATE_C3].latency = acpi_gbl_FADT.C3latency; |
307 | 307 | ||
308 | /* | ||
309 | * FADT specified C2 latency must be less than or equal to | ||
310 | * 100 microseconds. | ||
311 | */ | ||
312 | if (acpi_gbl_FADT.C2latency > ACPI_PROCESSOR_MAX_C2_LATENCY) { | ||
313 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | ||
314 | "C2 latency too large [%d]\n", acpi_gbl_FADT.C2latency)); | ||
315 | /* invalidate C2 */ | ||
316 | pr->power.states[ACPI_STATE_C2].address = 0; | ||
317 | } | ||
318 | |||
319 | /* | ||
320 | * FADT supplied C3 latency must be less than or equal to | ||
321 | * 1000 microseconds. | ||
322 | */ | ||
323 | if (acpi_gbl_FADT.C3latency > ACPI_PROCESSOR_MAX_C3_LATENCY) { | ||
324 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | ||
325 | "C3 latency too large [%d]\n", acpi_gbl_FADT.C3latency)); | ||
326 | /* invalidate C3 */ | ||
327 | pr->power.states[ACPI_STATE_C3].address = 0; | ||
328 | } | ||
329 | |||
308 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 330 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
309 | "lvl2[0x%08x] lvl3[0x%08x]\n", | 331 | "lvl2[0x%08x] lvl3[0x%08x]\n", |
310 | pr->power.states[ACPI_STATE_C2].address, | 332 | pr->power.states[ACPI_STATE_C2].address, |
@@ -494,33 +516,6 @@ static int acpi_processor_get_power_info_cst(struct acpi_processor *pr) | |||
494 | return status; | 516 | return status; |
495 | } | 517 | } |
496 | 518 | ||
497 | static void acpi_processor_power_verify_c2(struct acpi_processor_cx *cx) | ||
498 | { | ||
499 | |||
500 | if (!cx->address) | ||
501 | return; | ||
502 | |||
503 | /* | ||
504 | * C2 latency must be less than or equal to 100 | ||
505 | * microseconds. | ||
506 | */ | ||
507 | else if (cx->latency > ACPI_PROCESSOR_MAX_C2_LATENCY) { | ||
508 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | ||
509 | "latency too large [%d]\n", cx->latency)); | ||
510 | return; | ||
511 | } | ||
512 | |||
513 | /* | ||
514 | * Otherwise we've met all of our C2 requirements. | ||
515 | * Normalize the C2 latency to expidite policy | ||
516 | */ | ||
517 | cx->valid = 1; | ||
518 | |||
519 | cx->latency_ticks = cx->latency; | ||
520 | |||
521 | return; | ||
522 | } | ||
523 | |||
524 | static void acpi_processor_power_verify_c3(struct acpi_processor *pr, | 519 | static void acpi_processor_power_verify_c3(struct acpi_processor *pr, |
525 | struct acpi_processor_cx *cx) | 520 | struct acpi_processor_cx *cx) |
526 | { | 521 | { |
@@ -532,16 +527,6 @@ static void acpi_processor_power_verify_c3(struct acpi_processor *pr, | |||
532 | return; | 527 | return; |
533 | 528 | ||
534 | /* | 529 | /* |
535 | * C3 latency must be less than or equal to 1000 | ||
536 | * microseconds. | ||
537 | */ | ||
538 | else if (cx->latency > ACPI_PROCESSOR_MAX_C3_LATENCY) { | ||
539 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | ||
540 | "latency too large [%d]\n", cx->latency)); | ||
541 | return; | ||
542 | } | ||
543 | |||
544 | /* | ||
545 | * PIIX4 Erratum #18: We don't support C3 when Type-F (fast) | 530 | * PIIX4 Erratum #18: We don't support C3 when Type-F (fast) |
546 | * DMA transfers are used by any ISA device to avoid livelock. | 531 | * DMA transfers are used by any ISA device to avoid livelock. |
547 | * Note that we could disable Type-F DMA (as recommended by | 532 | * Note that we could disable Type-F DMA (as recommended by |
@@ -629,7 +614,10 @@ static int acpi_processor_power_verify(struct acpi_processor *pr) | |||
629 | break; | 614 | break; |
630 | 615 | ||
631 | case ACPI_STATE_C2: | 616 | case ACPI_STATE_C2: |
632 | acpi_processor_power_verify_c2(cx); | 617 | if (!cx->address) |
618 | break; | ||
619 | cx->valid = 1; | ||
620 | cx->latency_ticks = cx->latency; /* Normalize latency */ | ||
633 | break; | 621 | break; |
634 | 622 | ||
635 | case ACPI_STATE_C3: | 623 | case ACPI_STATE_C3: |
diff --git a/drivers/acpi/processor_pdc.c b/drivers/acpi/processor_pdc.c index 30e4dc0cdf3..7247819dbd8 100644 --- a/drivers/acpi/processor_pdc.c +++ b/drivers/acpi/processor_pdc.c | |||
@@ -144,6 +144,29 @@ void acpi_processor_set_pdc(acpi_handle handle) | |||
144 | } | 144 | } |
145 | EXPORT_SYMBOL_GPL(acpi_processor_set_pdc); | 145 | EXPORT_SYMBOL_GPL(acpi_processor_set_pdc); |
146 | 146 | ||
147 | static int early_pdc_optin; | ||
148 | static int set_early_pdc_optin(const struct dmi_system_id *id) | ||
149 | { | ||
150 | early_pdc_optin = 1; | ||
151 | return 0; | ||
152 | } | ||
153 | |||
154 | static struct dmi_system_id __cpuinitdata early_pdc_optin_table[] = { | ||
155 | { | ||
156 | set_early_pdc_optin, "HP Envy", { | ||
157 | DMI_MATCH(DMI_BIOS_VENDOR, "Hewlett-Packard"), | ||
158 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Envy") }, NULL}, | ||
159 | { | ||
160 | set_early_pdc_optin, "HP Pavilion dv6", { | ||
161 | DMI_MATCH(DMI_BIOS_VENDOR, "Hewlett-Packard"), | ||
162 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv6") }, NULL}, | ||
163 | { | ||
164 | set_early_pdc_optin, "HP Pavilion dv7", { | ||
165 | DMI_MATCH(DMI_BIOS_VENDOR, "Hewlett-Packard"), | ||
166 | DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv7") }, NULL}, | ||
167 | {}, | ||
168 | }; | ||
169 | |||
147 | static acpi_status | 170 | static acpi_status |
148 | early_init_pdc(acpi_handle handle, u32 lvl, void *context, void **rv) | 171 | early_init_pdc(acpi_handle handle, u32 lvl, void *context, void **rv) |
149 | { | 172 | { |
@@ -151,7 +174,7 @@ early_init_pdc(acpi_handle handle, u32 lvl, void *context, void **rv) | |||
151 | return AE_OK; | 174 | return AE_OK; |
152 | } | 175 | } |
153 | 176 | ||
154 | void acpi_early_processor_set_pdc(void) | 177 | void __init acpi_early_processor_set_pdc(void) |
155 | { | 178 | { |
156 | /* | 179 | /* |
157 | * Check whether the system is DMI table. If yes, OSPM | 180 | * Check whether the system is DMI table. If yes, OSPM |
@@ -159,6 +182,13 @@ void acpi_early_processor_set_pdc(void) | |||
159 | */ | 182 | */ |
160 | dmi_check_system(processor_idle_dmi_table); | 183 | dmi_check_system(processor_idle_dmi_table); |
161 | 184 | ||
185 | /* | ||
186 | * Allow systems to opt-in to early _PDC evaluation. | ||
187 | */ | ||
188 | dmi_check_system(early_pdc_optin_table); | ||
189 | if (!early_pdc_optin) | ||
190 | return; | ||
191 | |||
162 | acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, | 192 | acpi_walk_namespace(ACPI_TYPE_PROCESSOR, ACPI_ROOT_OBJECT, |
163 | ACPI_UINT32_MAX, | 193 | ACPI_UINT32_MAX, |
164 | early_init_pdc, NULL, NULL, NULL); | 194 | early_init_pdc, NULL, NULL, NULL); |
diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c index 140c5c5b423..6deafb4aa0d 100644 --- a/drivers/acpi/processor_thermal.c +++ b/drivers/acpi/processor_thermal.c | |||
@@ -443,8 +443,7 @@ struct thermal_cooling_device_ops processor_cooling_ops = { | |||
443 | #ifdef CONFIG_ACPI_PROCFS | 443 | #ifdef CONFIG_ACPI_PROCFS |
444 | static int acpi_processor_limit_seq_show(struct seq_file *seq, void *offset) | 444 | static int acpi_processor_limit_seq_show(struct seq_file *seq, void *offset) |
445 | { | 445 | { |
446 | struct acpi_processor *pr = (struct acpi_processor *)seq->private; | 446 | struct acpi_processor *pr = seq->private; |
447 | |||
448 | 447 | ||
449 | if (!pr) | 448 | if (!pr) |
450 | goto end; | 449 | goto end; |
diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c index 52b9db8afc2..b16ddbf23a9 100644 --- a/drivers/acpi/sbs.c +++ b/drivers/acpi/sbs.c | |||
@@ -822,7 +822,10 @@ static int acpi_battery_add(struct acpi_sbs *sbs, int id) | |||
822 | 822 | ||
823 | static void acpi_battery_remove(struct acpi_sbs *sbs, int id) | 823 | static void acpi_battery_remove(struct acpi_sbs *sbs, int id) |
824 | { | 824 | { |
825 | #if defined(CONFIG_ACPI_SYSFS_POWER) || defined(CONFIG_ACPI_PROCFS_POWER) | ||
825 | struct acpi_battery *battery = &sbs->battery[id]; | 826 | struct acpi_battery *battery = &sbs->battery[id]; |
827 | #endif | ||
828 | |||
826 | #ifdef CONFIG_ACPI_SYSFS_POWER | 829 | #ifdef CONFIG_ACPI_SYSFS_POWER |
827 | if (battery->bat.dev) { | 830 | if (battery->bat.dev) { |
828 | if (battery->have_sysfs_alarm) | 831 | if (battery->have_sysfs_alarm) |
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c index d9339806df4..fd09229282e 100644 --- a/drivers/acpi/sbshc.c +++ b/drivers/acpi/sbshc.c | |||
@@ -242,7 +242,7 @@ static int smbus_alarm(void *context) | |||
242 | case ACPI_SBS_CHARGER: | 242 | case ACPI_SBS_CHARGER: |
243 | case ACPI_SBS_MANAGER: | 243 | case ACPI_SBS_MANAGER: |
244 | case ACPI_SBS_BATTERY: | 244 | case ACPI_SBS_BATTERY: |
245 | acpi_os_execute(OSL_GPE_HANDLER, | 245 | acpi_os_execute(OSL_NOTIFY_HANDLER, |
246 | acpi_smbus_callback, hc); | 246 | acpi_smbus_callback, hc); |
247 | default:; | 247 | default:; |
248 | } | 248 | } |
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index 5f2c379ab7b..79d33d908b5 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c | |||
@@ -81,6 +81,23 @@ static int acpi_sleep_prepare(u32 acpi_state) | |||
81 | #ifdef CONFIG_ACPI_SLEEP | 81 | #ifdef CONFIG_ACPI_SLEEP |
82 | static u32 acpi_target_sleep_state = ACPI_STATE_S0; | 82 | static u32 acpi_target_sleep_state = ACPI_STATE_S0; |
83 | /* | 83 | /* |
84 | * According to the ACPI specification the BIOS should make sure that ACPI is | ||
85 | * enabled and SCI_EN bit is set on wake-up from S1 - S3 sleep states. Still, | ||
86 | * some BIOSes don't do that and therefore we use acpi_enable() to enable ACPI | ||
87 | * on such systems during resume. Unfortunately that doesn't help in | ||
88 | * particularly pathological cases in which SCI_EN has to be set directly on | ||
89 | * resume, although the specification states very clearly that this flag is | ||
90 | * owned by the hardware. The set_sci_en_on_resume variable will be set in such | ||
91 | * cases. | ||
92 | */ | ||
93 | static bool set_sci_en_on_resume; | ||
94 | |||
95 | void __init acpi_set_sci_en_on_resume(void) | ||
96 | { | ||
97 | set_sci_en_on_resume = true; | ||
98 | } | ||
99 | |||
100 | /* | ||
84 | * ACPI 1.0 wants us to execute _PTS before suspending devices, so we allow the | 101 | * ACPI 1.0 wants us to execute _PTS before suspending devices, so we allow the |
85 | * user to request that behavior by using the 'acpi_old_suspend_ordering' | 102 | * user to request that behavior by using the 'acpi_old_suspend_ordering' |
86 | * kernel command line option that causes the following variable to be set. | 103 | * kernel command line option that causes the following variable to be set. |
@@ -170,18 +187,6 @@ static void acpi_pm_end(void) | |||
170 | #endif /* CONFIG_ACPI_SLEEP */ | 187 | #endif /* CONFIG_ACPI_SLEEP */ |
171 | 188 | ||
172 | #ifdef CONFIG_SUSPEND | 189 | #ifdef CONFIG_SUSPEND |
173 | /* | ||
174 | * According to the ACPI specification the BIOS should make sure that ACPI is | ||
175 | * enabled and SCI_EN bit is set on wake-up from S1 - S3 sleep states. Still, | ||
176 | * some BIOSes don't do that and therefore we use acpi_enable() to enable ACPI | ||
177 | * on such systems during resume. Unfortunately that doesn't help in | ||
178 | * particularly pathological cases in which SCI_EN has to be set directly on | ||
179 | * resume, although the specification states very clearly that this flag is | ||
180 | * owned by the hardware. The set_sci_en_on_resume variable will be set in such | ||
181 | * cases. | ||
182 | */ | ||
183 | static bool set_sci_en_on_resume; | ||
184 | |||
185 | extern void do_suspend_lowlevel(void); | 190 | extern void do_suspend_lowlevel(void); |
186 | 191 | ||
187 | static u32 acpi_suspend_states[] = { | 192 | static u32 acpi_suspend_states[] = { |
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index 05dff631591..b765790b32b 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c | |||
@@ -78,6 +78,13 @@ MODULE_LICENSE("GPL"); | |||
78 | static int brightness_switch_enabled = 1; | 78 | static int brightness_switch_enabled = 1; |
79 | module_param(brightness_switch_enabled, bool, 0644); | 79 | module_param(brightness_switch_enabled, bool, 0644); |
80 | 80 | ||
81 | /* | ||
82 | * By default, we don't allow duplicate ACPI video bus devices | ||
83 | * under the same VGA controller | ||
84 | */ | ||
85 | static int allow_duplicates; | ||
86 | module_param(allow_duplicates, bool, 0644); | ||
87 | |||
81 | static int register_count = 0; | 88 | static int register_count = 0; |
82 | static int acpi_video_bus_add(struct acpi_device *device); | 89 | static int acpi_video_bus_add(struct acpi_device *device); |
83 | static int acpi_video_bus_remove(struct acpi_device *device, int type); | 90 | static int acpi_video_bus_remove(struct acpi_device *device, int type); |
@@ -999,8 +1006,10 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) | |||
999 | sprintf(name, "acpi_video%d", count++); | 1006 | sprintf(name, "acpi_video%d", count++); |
1000 | device->backlight = backlight_device_register(name, | 1007 | device->backlight = backlight_device_register(name, |
1001 | NULL, device, &acpi_backlight_ops); | 1008 | NULL, device, &acpi_backlight_ops); |
1002 | device->backlight->props.max_brightness = device->brightness->count-3; | ||
1003 | kfree(name); | 1009 | kfree(name); |
1010 | if (IS_ERR(device->backlight)) | ||
1011 | return; | ||
1012 | device->backlight->props.max_brightness = device->brightness->count-3; | ||
1004 | 1013 | ||
1005 | result = sysfs_create_link(&device->backlight->dev.kobj, | 1014 | result = sysfs_create_link(&device->backlight->dev.kobj, |
1006 | &device->dev->dev.kobj, "device"); | 1015 | &device->dev->dev.kobj, "device"); |
@@ -1979,6 +1988,10 @@ acpi_video_switch_brightness(struct acpi_video_device *device, int event) | |||
1979 | unsigned long long level_current, level_next; | 1988 | unsigned long long level_current, level_next; |
1980 | int result = -EINVAL; | 1989 | int result = -EINVAL; |
1981 | 1990 | ||
1991 | /* no warning message if acpi_backlight=vendor is used */ | ||
1992 | if (!acpi_video_backlight_support()) | ||
1993 | return 0; | ||
1994 | |||
1982 | if (!device->brightness) | 1995 | if (!device->brightness) |
1983 | goto out; | 1996 | goto out; |
1984 | 1997 | ||
@@ -2233,11 +2246,47 @@ static int acpi_video_resume(struct acpi_device *device) | |||
2233 | return AE_OK; | 2246 | return AE_OK; |
2234 | } | 2247 | } |
2235 | 2248 | ||
2249 | static acpi_status | ||
2250 | acpi_video_bus_match(acpi_handle handle, u32 level, void *context, | ||
2251 | void **return_value) | ||
2252 | { | ||
2253 | struct acpi_device *device = context; | ||
2254 | struct acpi_device *sibling; | ||
2255 | int result; | ||
2256 | |||
2257 | if (handle == device->handle) | ||
2258 | return AE_CTRL_TERMINATE; | ||
2259 | |||
2260 | result = acpi_bus_get_device(handle, &sibling); | ||
2261 | if (result) | ||
2262 | return AE_OK; | ||
2263 | |||
2264 | if (!strcmp(acpi_device_name(sibling), ACPI_VIDEO_BUS_NAME)) | ||
2265 | return AE_ALREADY_EXISTS; | ||
2266 | |||
2267 | return AE_OK; | ||
2268 | } | ||
2269 | |||
2236 | static int acpi_video_bus_add(struct acpi_device *device) | 2270 | static int acpi_video_bus_add(struct acpi_device *device) |
2237 | { | 2271 | { |
2238 | struct acpi_video_bus *video; | 2272 | struct acpi_video_bus *video; |
2239 | struct input_dev *input; | 2273 | struct input_dev *input; |
2240 | int error; | 2274 | int error; |
2275 | acpi_status status; | ||
2276 | |||
2277 | status = acpi_walk_namespace(ACPI_TYPE_DEVICE, | ||
2278 | device->parent->handle, 1, | ||
2279 | acpi_video_bus_match, NULL, | ||
2280 | device, NULL); | ||
2281 | if (status == AE_ALREADY_EXISTS) { | ||
2282 | printk(KERN_WARNING FW_BUG | ||
2283 | "Duplicate ACPI video bus devices for the" | ||
2284 | " same VGA controller, please try module " | ||
2285 | "parameter \"video.allow_duplicates=1\"" | ||
2286 | "if the current driver doesn't work.\n"); | ||
2287 | if (!allow_duplicates) | ||
2288 | return -ENODEV; | ||
2289 | } | ||
2241 | 2290 | ||
2242 | video = kzalloc(sizeof(struct acpi_video_bus), GFP_KERNEL); | 2291 | video = kzalloc(sizeof(struct acpi_video_bus), GFP_KERNEL); |
2243 | if (!video) | 2292 | if (!video) |
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c index 19136a7e106..6f3f2257d0f 100644 --- a/drivers/ata/ata_piix.c +++ b/drivers/ata/ata_piix.c | |||
@@ -329,7 +329,7 @@ static struct ata_port_operations ich_pata_ops = { | |||
329 | }; | 329 | }; |
330 | 330 | ||
331 | static struct ata_port_operations piix_sata_ops = { | 331 | static struct ata_port_operations piix_sata_ops = { |
332 | .inherits = &ata_bmdma_port_ops, | 332 | .inherits = &ata_bmdma32_port_ops, |
333 | }; | 333 | }; |
334 | 334 | ||
335 | static struct ata_port_operations piix_sidpr_sata_ops = { | 335 | static struct ata_port_operations piix_sidpr_sata_ops = { |
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 22ff51bdbc8..6728328f3be 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -3790,21 +3790,45 @@ int sata_link_debounce(struct ata_link *link, const unsigned long *params, | |||
3790 | int sata_link_resume(struct ata_link *link, const unsigned long *params, | 3790 | int sata_link_resume(struct ata_link *link, const unsigned long *params, |
3791 | unsigned long deadline) | 3791 | unsigned long deadline) |
3792 | { | 3792 | { |
3793 | int tries = ATA_LINK_RESUME_TRIES; | ||
3793 | u32 scontrol, serror; | 3794 | u32 scontrol, serror; |
3794 | int rc; | 3795 | int rc; |
3795 | 3796 | ||
3796 | if ((rc = sata_scr_read(link, SCR_CONTROL, &scontrol))) | 3797 | if ((rc = sata_scr_read(link, SCR_CONTROL, &scontrol))) |
3797 | return rc; | 3798 | return rc; |
3798 | 3799 | ||
3799 | scontrol = (scontrol & 0x0f0) | 0x300; | 3800 | /* |
3801 | * Writes to SControl sometimes get ignored under certain | ||
3802 | * controllers (ata_piix SIDPR). Make sure DET actually is | ||
3803 | * cleared. | ||
3804 | */ | ||
3805 | do { | ||
3806 | scontrol = (scontrol & 0x0f0) | 0x300; | ||
3807 | if ((rc = sata_scr_write(link, SCR_CONTROL, scontrol))) | ||
3808 | return rc; | ||
3809 | /* | ||
3810 | * Some PHYs react badly if SStatus is pounded | ||
3811 | * immediately after resuming. Delay 200ms before | ||
3812 | * debouncing. | ||
3813 | */ | ||
3814 | msleep(200); | ||
3800 | 3815 | ||
3801 | if ((rc = sata_scr_write(link, SCR_CONTROL, scontrol))) | 3816 | /* is SControl restored correctly? */ |
3802 | return rc; | 3817 | if ((rc = sata_scr_read(link, SCR_CONTROL, &scontrol))) |
3818 | return rc; | ||
3819 | } while ((scontrol & 0xf0f) != 0x300 && --tries); | ||
3803 | 3820 | ||
3804 | /* Some PHYs react badly if SStatus is pounded immediately | 3821 | if ((scontrol & 0xf0f) != 0x300) { |
3805 | * after resuming. Delay 200ms before debouncing. | 3822 | ata_link_printk(link, KERN_ERR, |
3806 | */ | 3823 | "failed to resume link (SControl %X)\n", |
3807 | msleep(200); | 3824 | scontrol); |
3825 | return 0; | ||
3826 | } | ||
3827 | |||
3828 | if (tries < ATA_LINK_RESUME_TRIES) | ||
3829 | ata_link_printk(link, KERN_WARNING, | ||
3830 | "link resume succeeded after %d retries\n", | ||
3831 | ATA_LINK_RESUME_TRIES - tries); | ||
3808 | 3832 | ||
3809 | if ((rc = sata_link_debounce(link, params, deadline))) | 3833 | if ((rc = sata_link_debounce(link, params, deadline))) |
3810 | return rc; | 3834 | return rc; |
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 0ea97c942ce..9f6cfac0f2c 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
@@ -2028,8 +2028,9 @@ static void ata_eh_link_autopsy(struct ata_link *link) | |||
2028 | qc->err_mask &= ~(AC_ERR_DEV | AC_ERR_OTHER); | 2028 | qc->err_mask &= ~(AC_ERR_DEV | AC_ERR_OTHER); |
2029 | 2029 | ||
2030 | /* determine whether the command is worth retrying */ | 2030 | /* determine whether the command is worth retrying */ |
2031 | if (!(qc->err_mask & AC_ERR_INVALID) && | 2031 | if (qc->flags & ATA_QCFLAG_IO || |
2032 | ((qc->flags & ATA_QCFLAG_IO) || qc->err_mask != AC_ERR_DEV)) | 2032 | (!(qc->err_mask & AC_ERR_INVALID) && |
2033 | qc->err_mask != AC_ERR_DEV)) | ||
2033 | qc->flags |= ATA_QCFLAG_RETRY; | 2034 | qc->flags |= ATA_QCFLAG_RETRY; |
2034 | 2035 | ||
2035 | /* accumulate error info */ | 2036 | /* accumulate error info */ |
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c index 07d8d00b4d3..63306285c84 100644 --- a/drivers/ata/sata_promise.c +++ b/drivers/ata/sata_promise.c | |||
@@ -862,7 +862,7 @@ static void pdc_error_intr(struct ata_port *ap, struct ata_queued_cmd *qc, | |||
862 | if (port_status & PDC_DRIVE_ERR) | 862 | if (port_status & PDC_DRIVE_ERR) |
863 | ac_err_mask |= AC_ERR_DEV; | 863 | ac_err_mask |= AC_ERR_DEV; |
864 | if (port_status & (PDC_OVERRUN_ERR | PDC_UNDERRUN_ERR)) | 864 | if (port_status & (PDC_OVERRUN_ERR | PDC_UNDERRUN_ERR)) |
865 | ac_err_mask |= AC_ERR_HSM; | 865 | ac_err_mask |= AC_ERR_OTHER; |
866 | if (port_status & (PDC2_ATA_HBA_ERR | PDC2_ATA_DMA_CNT_ERR)) | 866 | if (port_status & (PDC2_ATA_HBA_ERR | PDC2_ATA_DMA_CNT_ERR)) |
867 | ac_err_mask |= AC_ERR_ATA_BUS; | 867 | ac_err_mask |= AC_ERR_ATA_BUS; |
868 | if (port_status & (PDC_PH_ERR | PDC_SH_ERR | PDC_DH_ERR | PDC2_HTO_ERR | 868 | if (port_status & (PDC_PH_ERR | PDC_SH_ERR | PDC_DH_ERR | PDC2_HTO_ERR |
diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c index 090dd485130..42ae452b36b 100644 --- a/drivers/base/devtmpfs.c +++ b/drivers/base/devtmpfs.c | |||
@@ -354,6 +354,7 @@ int __init devtmpfs_init(void) | |||
354 | { | 354 | { |
355 | int err; | 355 | int err; |
356 | struct vfsmount *mnt; | 356 | struct vfsmount *mnt; |
357 | char options[] = "mode=0755"; | ||
357 | 358 | ||
358 | err = register_filesystem(&dev_fs_type); | 359 | err = register_filesystem(&dev_fs_type); |
359 | if (err) { | 360 | if (err) { |
@@ -362,7 +363,7 @@ int __init devtmpfs_init(void) | |||
362 | return err; | 363 | return err; |
363 | } | 364 | } |
364 | 365 | ||
365 | mnt = kern_mount_data(&dev_fs_type, "mode=0755"); | 366 | mnt = kern_mount_data(&dev_fs_type, options); |
366 | if (IS_ERR(mnt)) { | 367 | if (IS_ERR(mnt)) { |
367 | err = PTR_ERR(mnt); | 368 | err = PTR_ERR(mnt); |
368 | printk(KERN_ERR "devtmpfs: unable to create devtmpfs %i\n", err); | 369 | printk(KERN_ERR "devtmpfs: unable to create devtmpfs %i\n", err); |
diff --git a/drivers/base/memory.c b/drivers/base/memory.c index d7d77d4a402..bd025059711 100644 --- a/drivers/base/memory.c +++ b/drivers/base/memory.c | |||
@@ -311,7 +311,7 @@ static SYSDEV_ATTR(removable, 0444, show_mem_removable, NULL); | |||
311 | static ssize_t | 311 | static ssize_t |
312 | print_block_size(struct class *class, char *buf) | 312 | print_block_size(struct class *class, char *buf) |
313 | { | 313 | { |
314 | return sprintf(buf, "%lx\n", (unsigned long)PAGES_PER_SECTION * PAGE_SIZE); | 314 | return sprintf(buf, "%#lx\n", (unsigned long)PAGES_PER_SECTION * PAGE_SIZE); |
315 | } | 315 | } |
316 | 316 | ||
317 | static CLASS_ATTR(block_size_bytes, 0444, print_block_size, NULL); | 317 | static CLASS_ATTR(block_size_bytes, 0444, print_block_size, NULL); |
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index 48adf80926a..a5142bddef4 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c | |||
@@ -446,8 +446,8 @@ EXPORT_SYMBOL_GPL(dpm_resume_noirq); | |||
446 | 446 | ||
447 | /** | 447 | /** |
448 | * legacy_resume - Execute a legacy (bus or class) resume callback for device. | 448 | * legacy_resume - Execute a legacy (bus or class) resume callback for device. |
449 | * dev: Device to resume. | 449 | * @dev: Device to resume. |
450 | * cb: Resume callback to execute. | 450 | * @cb: Resume callback to execute. |
451 | */ | 451 | */ |
452 | static int legacy_resume(struct device *dev, int (*cb)(struct device *dev)) | 452 | static int legacy_resume(struct device *dev, int (*cb)(struct device *dev)) |
453 | { | 453 | { |
@@ -711,8 +711,9 @@ EXPORT_SYMBOL_GPL(dpm_suspend_noirq); | |||
711 | 711 | ||
712 | /** | 712 | /** |
713 | * legacy_suspend - Execute a legacy (bus or class) suspend callback for device. | 713 | * legacy_suspend - Execute a legacy (bus or class) suspend callback for device. |
714 | * dev: Device to suspend. | 714 | * @dev: Device to suspend. |
715 | * cb: Suspend callback to execute. | 715 | * @state: PM transition of the system being carried out. |
716 | * @cb: Suspend callback to execute. | ||
716 | */ | 717 | */ |
717 | static int legacy_suspend(struct device *dev, pm_message_t state, | 718 | static int legacy_suspend(struct device *dev, pm_message_t state, |
718 | int (*cb)(struct device *dev, pm_message_t state)) | 719 | int (*cb)(struct device *dev, pm_message_t state)) |
diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c index eb4fa194394..ce1fa923c41 100644 --- a/drivers/block/DAC960.c +++ b/drivers/block/DAC960.c | |||
@@ -7101,7 +7101,7 @@ static struct DAC960_privdata DAC960_BA_privdata = { | |||
7101 | 7101 | ||
7102 | static struct DAC960_privdata DAC960_LP_privdata = { | 7102 | static struct DAC960_privdata DAC960_LP_privdata = { |
7103 | .HardwareType = DAC960_LP_Controller, | 7103 | .HardwareType = DAC960_LP_Controller, |
7104 | .FirmwareType = DAC960_LP_Controller, | 7104 | .FirmwareType = DAC960_V2_Controller, |
7105 | .InterruptHandler = DAC960_LP_InterruptHandler, | 7105 | .InterruptHandler = DAC960_LP_InterruptHandler, |
7106 | .MemoryWindowSize = DAC960_LP_RegisterWindowSize, | 7106 | .MemoryWindowSize = DAC960_LP_RegisterWindowSize, |
7107 | }; | 7107 | }; |
diff --git a/drivers/block/aoe/aoecmd.c b/drivers/block/aoe/aoecmd.c index 13bb69d2abb..64a223b0cc2 100644 --- a/drivers/block/aoe/aoecmd.c +++ b/drivers/block/aoe/aoecmd.c | |||
@@ -735,21 +735,6 @@ diskstats(struct gendisk *disk, struct bio *bio, ulong duration, sector_t sector | |||
735 | part_stat_unlock(); | 735 | part_stat_unlock(); |
736 | } | 736 | } |
737 | 737 | ||
738 | /* | ||
739 | * Ensure we don't create aliases in VI caches | ||
740 | */ | ||
741 | static inline void | ||
742 | killalias(struct bio *bio) | ||
743 | { | ||
744 | struct bio_vec *bv; | ||
745 | int i; | ||
746 | |||
747 | if (bio_data_dir(bio) == READ) | ||
748 | __bio_for_each_segment(bv, bio, i, 0) { | ||
749 | flush_dcache_page(bv->bv_page); | ||
750 | } | ||
751 | } | ||
752 | |||
753 | void | 738 | void |
754 | aoecmd_ata_rsp(struct sk_buff *skb) | 739 | aoecmd_ata_rsp(struct sk_buff *skb) |
755 | { | 740 | { |
@@ -871,7 +856,7 @@ aoecmd_ata_rsp(struct sk_buff *skb) | |||
871 | if (buf->flags & BUFFL_FAIL) | 856 | if (buf->flags & BUFFL_FAIL) |
872 | bio_endio(buf->bio, -EIO); | 857 | bio_endio(buf->bio, -EIO); |
873 | else { | 858 | else { |
874 | killalias(buf->bio); | 859 | bio_flush_dcache_pages(buf->bio); |
875 | bio_endio(buf->bio, 0); | 860 | bio_endio(buf->bio, 0); |
876 | } | 861 | } |
877 | mempool_free(buf, d->bufpool); | 862 | mempool_free(buf, d->bufpool); |
diff --git a/drivers/block/drbd/Kconfig b/drivers/block/drbd/Kconfig index f4acd04ebee..df098378739 100644 --- a/drivers/block/drbd/Kconfig +++ b/drivers/block/drbd/Kconfig | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | comment "DRBD disabled because PROC_FS, INET or CONNECTOR not selected" | 5 | comment "DRBD disabled because PROC_FS, INET or CONNECTOR not selected" |
6 | depends on !PROC_FS || !INET || !CONNECTOR | 6 | depends on PROC_FS='n' || INET='n' || CONNECTOR='n' |
7 | 7 | ||
8 | config BLK_DEV_DRBD | 8 | config BLK_DEV_DRBD |
9 | tristate "DRBD Distributed Replicated Block Device support" | 9 | tristate "DRBD Distributed Replicated Block Device support" |
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h index 2312d782fe9..2bf3a6ef368 100644 --- a/drivers/block/drbd/drbd_int.h +++ b/drivers/block/drbd/drbd_int.h | |||
@@ -1275,7 +1275,7 @@ struct bm_extent { | |||
1275 | #if DRBD_MAX_SECTORS_BM < DRBD_MAX_SECTORS_32 | 1275 | #if DRBD_MAX_SECTORS_BM < DRBD_MAX_SECTORS_32 |
1276 | #define DRBD_MAX_SECTORS DRBD_MAX_SECTORS_BM | 1276 | #define DRBD_MAX_SECTORS DRBD_MAX_SECTORS_BM |
1277 | #define DRBD_MAX_SECTORS_FLEX DRBD_MAX_SECTORS_BM | 1277 | #define DRBD_MAX_SECTORS_FLEX DRBD_MAX_SECTORS_BM |
1278 | #elif !defined(CONFIG_LBD) && BITS_PER_LONG == 32 | 1278 | #elif !defined(CONFIG_LBDAF) && BITS_PER_LONG == 32 |
1279 | #define DRBD_MAX_SECTORS DRBD_MAX_SECTORS_32 | 1279 | #define DRBD_MAX_SECTORS DRBD_MAX_SECTORS_32 |
1280 | #define DRBD_MAX_SECTORS_FLEX DRBD_MAX_SECTORS_32 | 1280 | #define DRBD_MAX_SECTORS_FLEX DRBD_MAX_SECTORS_32 |
1281 | #else | 1281 | #else |
@@ -1371,10 +1371,9 @@ extern int is_valid_ar_handle(struct drbd_request *, sector_t); | |||
1371 | extern void drbd_suspend_io(struct drbd_conf *mdev); | 1371 | extern void drbd_suspend_io(struct drbd_conf *mdev); |
1372 | extern void drbd_resume_io(struct drbd_conf *mdev); | 1372 | extern void drbd_resume_io(struct drbd_conf *mdev); |
1373 | extern char *ppsize(char *buf, unsigned long long size); | 1373 | extern char *ppsize(char *buf, unsigned long long size); |
1374 | extern sector_t drbd_new_dev_size(struct drbd_conf *, | 1374 | extern sector_t drbd_new_dev_size(struct drbd_conf *, struct drbd_backing_dev *, int); |
1375 | struct drbd_backing_dev *); | ||
1376 | enum determine_dev_size { dev_size_error = -1, unchanged = 0, shrunk = 1, grew = 2 }; | 1375 | enum determine_dev_size { dev_size_error = -1, unchanged = 0, shrunk = 1, grew = 2 }; |
1377 | extern enum determine_dev_size drbd_determin_dev_size(struct drbd_conf *) __must_hold(local); | 1376 | extern enum determine_dev_size drbd_determin_dev_size(struct drbd_conf *, int force) __must_hold(local); |
1378 | extern void resync_after_online_grow(struct drbd_conf *); | 1377 | extern void resync_after_online_grow(struct drbd_conf *); |
1379 | extern void drbd_setup_queue_param(struct drbd_conf *mdev, unsigned int) __must_hold(local); | 1378 | extern void drbd_setup_queue_param(struct drbd_conf *mdev, unsigned int) __must_hold(local); |
1380 | extern int drbd_set_role(struct drbd_conf *mdev, enum drbd_role new_role, | 1379 | extern int drbd_set_role(struct drbd_conf *mdev, enum drbd_role new_role, |
@@ -1490,7 +1489,7 @@ void drbd_bump_write_ordering(struct drbd_conf *mdev, enum write_ordering_e wo); | |||
1490 | 1489 | ||
1491 | /* drbd_proc.c */ | 1490 | /* drbd_proc.c */ |
1492 | extern struct proc_dir_entry *drbd_proc; | 1491 | extern struct proc_dir_entry *drbd_proc; |
1493 | extern struct file_operations drbd_proc_fops; | 1492 | extern const struct file_operations drbd_proc_fops; |
1494 | extern const char *drbd_conn_str(enum drbd_conns s); | 1493 | extern const char *drbd_conn_str(enum drbd_conns s); |
1495 | extern const char *drbd_role_str(enum drbd_role s); | 1494 | extern const char *drbd_role_str(enum drbd_role s); |
1496 | 1495 | ||
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index 157d1e4343c..e898ad9eb1c 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c | |||
@@ -27,7 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | #include <linux/module.h> | 29 | #include <linux/module.h> |
30 | #include <linux/version.h> | ||
31 | #include <linux/drbd.h> | 30 | #include <linux/drbd.h> |
32 | #include <asm/uaccess.h> | 31 | #include <asm/uaccess.h> |
33 | #include <asm/types.h> | 32 | #include <asm/types.h> |
@@ -151,7 +150,7 @@ wait_queue_head_t drbd_pp_wait; | |||
151 | 150 | ||
152 | DEFINE_RATELIMIT_STATE(drbd_ratelimit_state, 5 * HZ, 5); | 151 | DEFINE_RATELIMIT_STATE(drbd_ratelimit_state, 5 * HZ, 5); |
153 | 152 | ||
154 | static struct block_device_operations drbd_ops = { | 153 | static const struct block_device_operations drbd_ops = { |
155 | .owner = THIS_MODULE, | 154 | .owner = THIS_MODULE, |
156 | .open = drbd_open, | 155 | .open = drbd_open, |
157 | .release = drbd_release, | 156 | .release = drbd_release, |
@@ -1299,6 +1298,7 @@ static void after_state_ch(struct drbd_conf *mdev, union drbd_state os, | |||
1299 | dev_err(DEV, "Sending state in drbd_io_error() failed\n"); | 1298 | dev_err(DEV, "Sending state in drbd_io_error() failed\n"); |
1300 | } | 1299 | } |
1301 | 1300 | ||
1301 | wait_event(mdev->misc_wait, !atomic_read(&mdev->local_cnt)); | ||
1302 | lc_destroy(mdev->resync); | 1302 | lc_destroy(mdev->resync); |
1303 | mdev->resync = NULL; | 1303 | mdev->resync = NULL; |
1304 | lc_destroy(mdev->act_log); | 1304 | lc_destroy(mdev->act_log); |
@@ -3623,7 +3623,7 @@ _drbd_fault_random(struct fault_random_state *rsp) | |||
3623 | { | 3623 | { |
3624 | long refresh; | 3624 | long refresh; |
3625 | 3625 | ||
3626 | if (--rsp->count < 0) { | 3626 | if (!rsp->count--) { |
3627 | get_random_bytes(&refresh, sizeof(refresh)); | 3627 | get_random_bytes(&refresh, sizeof(refresh)); |
3628 | rsp->state += refresh; | 3628 | rsp->state += refresh; |
3629 | rsp->count = FAULT_RANDOM_REFRESH; | 3629 | rsp->count = FAULT_RANDOM_REFRESH; |
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c index 4e0726aa53b..1292e062066 100644 --- a/drivers/block/drbd/drbd_nl.c +++ b/drivers/block/drbd/drbd_nl.c | |||
@@ -510,7 +510,7 @@ void drbd_resume_io(struct drbd_conf *mdev) | |||
510 | * Returns 0 on success, negative return values indicate errors. | 510 | * Returns 0 on success, negative return values indicate errors. |
511 | * You should call drbd_md_sync() after calling this function. | 511 | * You should call drbd_md_sync() after calling this function. |
512 | */ | 512 | */ |
513 | enum determine_dev_size drbd_determin_dev_size(struct drbd_conf *mdev) __must_hold(local) | 513 | enum determine_dev_size drbd_determin_dev_size(struct drbd_conf *mdev, int force) __must_hold(local) |
514 | { | 514 | { |
515 | sector_t prev_first_sect, prev_size; /* previous meta location */ | 515 | sector_t prev_first_sect, prev_size; /* previous meta location */ |
516 | sector_t la_size; | 516 | sector_t la_size; |
@@ -541,7 +541,7 @@ enum determine_dev_size drbd_determin_dev_size(struct drbd_conf *mdev) __must_ho | |||
541 | /* TODO: should only be some assert here, not (re)init... */ | 541 | /* TODO: should only be some assert here, not (re)init... */ |
542 | drbd_md_set_sector_offsets(mdev, mdev->ldev); | 542 | drbd_md_set_sector_offsets(mdev, mdev->ldev); |
543 | 543 | ||
544 | size = drbd_new_dev_size(mdev, mdev->ldev); | 544 | size = drbd_new_dev_size(mdev, mdev->ldev, force); |
545 | 545 | ||
546 | if (drbd_get_capacity(mdev->this_bdev) != size || | 546 | if (drbd_get_capacity(mdev->this_bdev) != size || |
547 | drbd_bm_capacity(mdev) != size) { | 547 | drbd_bm_capacity(mdev) != size) { |
@@ -596,7 +596,7 @@ out: | |||
596 | } | 596 | } |
597 | 597 | ||
598 | sector_t | 598 | sector_t |
599 | drbd_new_dev_size(struct drbd_conf *mdev, struct drbd_backing_dev *bdev) | 599 | drbd_new_dev_size(struct drbd_conf *mdev, struct drbd_backing_dev *bdev, int assume_peer_has_space) |
600 | { | 600 | { |
601 | sector_t p_size = mdev->p_size; /* partner's disk size. */ | 601 | sector_t p_size = mdev->p_size; /* partner's disk size. */ |
602 | sector_t la_size = bdev->md.la_size_sect; /* last agreed size. */ | 602 | sector_t la_size = bdev->md.la_size_sect; /* last agreed size. */ |
@@ -606,6 +606,11 @@ drbd_new_dev_size(struct drbd_conf *mdev, struct drbd_backing_dev *bdev) | |||
606 | 606 | ||
607 | m_size = drbd_get_max_capacity(bdev); | 607 | m_size = drbd_get_max_capacity(bdev); |
608 | 608 | ||
609 | if (mdev->state.conn < C_CONNECTED && assume_peer_has_space) { | ||
610 | dev_warn(DEV, "Resize while not connected was forced by the user!\n"); | ||
611 | p_size = m_size; | ||
612 | } | ||
613 | |||
609 | if (p_size && m_size) { | 614 | if (p_size && m_size) { |
610 | size = min_t(sector_t, p_size, m_size); | 615 | size = min_t(sector_t, p_size, m_size); |
611 | } else { | 616 | } else { |
@@ -965,7 +970,7 @@ static int drbd_nl_disk_conf(struct drbd_conf *mdev, struct drbd_nl_cfg_req *nlp | |||
965 | 970 | ||
966 | /* Prevent shrinking of consistent devices ! */ | 971 | /* Prevent shrinking of consistent devices ! */ |
967 | if (drbd_md_test_flag(nbc, MDF_CONSISTENT) && | 972 | if (drbd_md_test_flag(nbc, MDF_CONSISTENT) && |
968 | drbd_new_dev_size(mdev, nbc) < nbc->md.la_size_sect) { | 973 | drbd_new_dev_size(mdev, nbc, 0) < nbc->md.la_size_sect) { |
969 | dev_warn(DEV, "refusing to truncate a consistent device\n"); | 974 | dev_warn(DEV, "refusing to truncate a consistent device\n"); |
970 | retcode = ERR_DISK_TO_SMALL; | 975 | retcode = ERR_DISK_TO_SMALL; |
971 | goto force_diskless_dec; | 976 | goto force_diskless_dec; |
@@ -1052,7 +1057,7 @@ static int drbd_nl_disk_conf(struct drbd_conf *mdev, struct drbd_nl_cfg_req *nlp | |||
1052 | !drbd_md_test_flag(mdev->ldev, MDF_CONNECTED_IND)) | 1057 | !drbd_md_test_flag(mdev->ldev, MDF_CONNECTED_IND)) |
1053 | set_bit(USE_DEGR_WFC_T, &mdev->flags); | 1058 | set_bit(USE_DEGR_WFC_T, &mdev->flags); |
1054 | 1059 | ||
1055 | dd = drbd_determin_dev_size(mdev); | 1060 | dd = drbd_determin_dev_size(mdev, 0); |
1056 | if (dd == dev_size_error) { | 1061 | if (dd == dev_size_error) { |
1057 | retcode = ERR_NOMEM_BITMAP; | 1062 | retcode = ERR_NOMEM_BITMAP; |
1058 | goto force_diskless_dec; | 1063 | goto force_diskless_dec; |
@@ -1271,7 +1276,7 @@ static int drbd_nl_net_conf(struct drbd_conf *mdev, struct drbd_nl_cfg_req *nlp, | |||
1271 | goto fail; | 1276 | goto fail; |
1272 | } | 1277 | } |
1273 | 1278 | ||
1274 | if (crypto_tfm_alg_type(crypto_hash_tfm(tfm)) != CRYPTO_ALG_TYPE_SHASH) { | 1279 | if (!drbd_crypto_is_hash(crypto_hash_tfm(tfm))) { |
1275 | retcode = ERR_AUTH_ALG_ND; | 1280 | retcode = ERR_AUTH_ALG_ND; |
1276 | goto fail; | 1281 | goto fail; |
1277 | } | 1282 | } |
@@ -1504,7 +1509,7 @@ static int drbd_nl_resize(struct drbd_conf *mdev, struct drbd_nl_cfg_req *nlp, | |||
1504 | } | 1509 | } |
1505 | 1510 | ||
1506 | mdev->ldev->dc.disk_size = (sector_t)rs.resize_size; | 1511 | mdev->ldev->dc.disk_size = (sector_t)rs.resize_size; |
1507 | dd = drbd_determin_dev_size(mdev); | 1512 | dd = drbd_determin_dev_size(mdev, rs.resize_force); |
1508 | drbd_md_sync(mdev); | 1513 | drbd_md_sync(mdev); |
1509 | put_ldev(mdev); | 1514 | put_ldev(mdev); |
1510 | if (dd == dev_size_error) { | 1515 | if (dd == dev_size_error) { |
diff --git a/drivers/block/drbd/drbd_proc.c b/drivers/block/drbd/drbd_proc.c index bdd0b4943b1..df8ad9660d8 100644 --- a/drivers/block/drbd/drbd_proc.c +++ b/drivers/block/drbd/drbd_proc.c | |||
@@ -38,7 +38,7 @@ static int drbd_proc_open(struct inode *inode, struct file *file); | |||
38 | 38 | ||
39 | 39 | ||
40 | struct proc_dir_entry *drbd_proc; | 40 | struct proc_dir_entry *drbd_proc; |
41 | struct file_operations drbd_proc_fops = { | 41 | const struct file_operations drbd_proc_fops = { |
42 | .owner = THIS_MODULE, | 42 | .owner = THIS_MODULE, |
43 | .open = drbd_proc_open, | 43 | .open = drbd_proc_open, |
44 | .read = seq_read, | 44 | .read = seq_read, |
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index c548f24f54a..f22a5283128 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <asm/uaccess.h> | 28 | #include <asm/uaccess.h> |
29 | #include <net/sock.h> | 29 | #include <net/sock.h> |
30 | 30 | ||
31 | #include <linux/version.h> | ||
32 | #include <linux/drbd.h> | 31 | #include <linux/drbd.h> |
33 | #include <linux/fs.h> | 32 | #include <linux/fs.h> |
34 | #include <linux/file.h> | 33 | #include <linux/file.h> |
@@ -879,9 +878,13 @@ retry: | |||
879 | 878 | ||
880 | if (mdev->cram_hmac_tfm) { | 879 | if (mdev->cram_hmac_tfm) { |
881 | /* drbd_request_state(mdev, NS(conn, WFAuth)); */ | 880 | /* drbd_request_state(mdev, NS(conn, WFAuth)); */ |
882 | if (!drbd_do_auth(mdev)) { | 881 | switch (drbd_do_auth(mdev)) { |
882 | case -1: | ||
883 | dev_err(DEV, "Authentication of peer failed\n"); | 883 | dev_err(DEV, "Authentication of peer failed\n"); |
884 | return -1; | 884 | return -1; |
885 | case 0: | ||
886 | dev_err(DEV, "Authentication of peer failed, trying again.\n"); | ||
887 | return 0; | ||
885 | } | 888 | } |
886 | } | 889 | } |
887 | 890 | ||
@@ -1202,10 +1205,11 @@ static int receive_Barrier(struct drbd_conf *mdev, struct p_header *h) | |||
1202 | 1205 | ||
1203 | case WO_bdev_flush: | 1206 | case WO_bdev_flush: |
1204 | case WO_drain_io: | 1207 | case WO_drain_io: |
1205 | D_ASSERT(rv == FE_STILL_LIVE); | 1208 | if (rv == FE_STILL_LIVE) { |
1206 | set_bit(DE_BARRIER_IN_NEXT_EPOCH_ISSUED, &mdev->current_epoch->flags); | 1209 | set_bit(DE_BARRIER_IN_NEXT_EPOCH_ISSUED, &mdev->current_epoch->flags); |
1207 | drbd_wait_ee_list_empty(mdev, &mdev->active_ee); | 1210 | drbd_wait_ee_list_empty(mdev, &mdev->active_ee); |
1208 | rv = drbd_flush_after_epoch(mdev, mdev->current_epoch); | 1211 | rv = drbd_flush_after_epoch(mdev, mdev->current_epoch); |
1212 | } | ||
1209 | if (rv == FE_RECYCLED) | 1213 | if (rv == FE_RECYCLED) |
1210 | return TRUE; | 1214 | return TRUE; |
1211 | 1215 | ||
@@ -2866,7 +2870,7 @@ static int receive_sizes(struct drbd_conf *mdev, struct p_header *h) | |||
2866 | 2870 | ||
2867 | /* Never shrink a device with usable data during connect. | 2871 | /* Never shrink a device with usable data during connect. |
2868 | But allow online shrinking if we are connected. */ | 2872 | But allow online shrinking if we are connected. */ |
2869 | if (drbd_new_dev_size(mdev, mdev->ldev) < | 2873 | if (drbd_new_dev_size(mdev, mdev->ldev, 0) < |
2870 | drbd_get_capacity(mdev->this_bdev) && | 2874 | drbd_get_capacity(mdev->this_bdev) && |
2871 | mdev->state.disk >= D_OUTDATED && | 2875 | mdev->state.disk >= D_OUTDATED && |
2872 | mdev->state.conn < C_CONNECTED) { | 2876 | mdev->state.conn < C_CONNECTED) { |
@@ -2881,7 +2885,7 @@ static int receive_sizes(struct drbd_conf *mdev, struct p_header *h) | |||
2881 | #undef min_not_zero | 2885 | #undef min_not_zero |
2882 | 2886 | ||
2883 | if (get_ldev(mdev)) { | 2887 | if (get_ldev(mdev)) { |
2884 | dd = drbd_determin_dev_size(mdev); | 2888 | dd = drbd_determin_dev_size(mdev, 0); |
2885 | put_ldev(mdev); | 2889 | put_ldev(mdev); |
2886 | if (dd == dev_size_error) | 2890 | if (dd == dev_size_error) |
2887 | return FALSE; | 2891 | return FALSE; |
@@ -3831,10 +3835,17 @@ static int drbd_do_auth(struct drbd_conf *mdev) | |||
3831 | { | 3835 | { |
3832 | dev_err(DEV, "This kernel was build without CONFIG_CRYPTO_HMAC.\n"); | 3836 | dev_err(DEV, "This kernel was build without CONFIG_CRYPTO_HMAC.\n"); |
3833 | dev_err(DEV, "You need to disable 'cram-hmac-alg' in drbd.conf.\n"); | 3837 | dev_err(DEV, "You need to disable 'cram-hmac-alg' in drbd.conf.\n"); |
3834 | return 0; | 3838 | return -1; |
3835 | } | 3839 | } |
3836 | #else | 3840 | #else |
3837 | #define CHALLENGE_LEN 64 | 3841 | #define CHALLENGE_LEN 64 |
3842 | |||
3843 | /* Return value: | ||
3844 | 1 - auth succeeded, | ||
3845 | 0 - failed, try again (network error), | ||
3846 | -1 - auth failed, don't try again. | ||
3847 | */ | ||
3848 | |||
3838 | static int drbd_do_auth(struct drbd_conf *mdev) | 3849 | static int drbd_do_auth(struct drbd_conf *mdev) |
3839 | { | 3850 | { |
3840 | char my_challenge[CHALLENGE_LEN]; /* 64 Bytes... */ | 3851 | char my_challenge[CHALLENGE_LEN]; /* 64 Bytes... */ |
@@ -3855,7 +3866,7 @@ static int drbd_do_auth(struct drbd_conf *mdev) | |||
3855 | (u8 *)mdev->net_conf->shared_secret, key_len); | 3866 | (u8 *)mdev->net_conf->shared_secret, key_len); |
3856 | if (rv) { | 3867 | if (rv) { |
3857 | dev_err(DEV, "crypto_hash_setkey() failed with %d\n", rv); | 3868 | dev_err(DEV, "crypto_hash_setkey() failed with %d\n", rv); |
3858 | rv = 0; | 3869 | rv = -1; |
3859 | goto fail; | 3870 | goto fail; |
3860 | } | 3871 | } |
3861 | 3872 | ||
@@ -3878,14 +3889,14 @@ static int drbd_do_auth(struct drbd_conf *mdev) | |||
3878 | 3889 | ||
3879 | if (p.length > CHALLENGE_LEN*2) { | 3890 | if (p.length > CHALLENGE_LEN*2) { |
3880 | dev_err(DEV, "expected AuthChallenge payload too big.\n"); | 3891 | dev_err(DEV, "expected AuthChallenge payload too big.\n"); |
3881 | rv = 0; | 3892 | rv = -1; |
3882 | goto fail; | 3893 | goto fail; |
3883 | } | 3894 | } |
3884 | 3895 | ||
3885 | peers_ch = kmalloc(p.length, GFP_NOIO); | 3896 | peers_ch = kmalloc(p.length, GFP_NOIO); |
3886 | if (peers_ch == NULL) { | 3897 | if (peers_ch == NULL) { |
3887 | dev_err(DEV, "kmalloc of peers_ch failed\n"); | 3898 | dev_err(DEV, "kmalloc of peers_ch failed\n"); |
3888 | rv = 0; | 3899 | rv = -1; |
3889 | goto fail; | 3900 | goto fail; |
3890 | } | 3901 | } |
3891 | 3902 | ||
@@ -3901,7 +3912,7 @@ static int drbd_do_auth(struct drbd_conf *mdev) | |||
3901 | response = kmalloc(resp_size, GFP_NOIO); | 3912 | response = kmalloc(resp_size, GFP_NOIO); |
3902 | if (response == NULL) { | 3913 | if (response == NULL) { |
3903 | dev_err(DEV, "kmalloc of response failed\n"); | 3914 | dev_err(DEV, "kmalloc of response failed\n"); |
3904 | rv = 0; | 3915 | rv = -1; |
3905 | goto fail; | 3916 | goto fail; |
3906 | } | 3917 | } |
3907 | 3918 | ||
@@ -3911,7 +3922,7 @@ static int drbd_do_auth(struct drbd_conf *mdev) | |||
3911 | rv = crypto_hash_digest(&desc, &sg, sg.length, response); | 3922 | rv = crypto_hash_digest(&desc, &sg, sg.length, response); |
3912 | if (rv) { | 3923 | if (rv) { |
3913 | dev_err(DEV, "crypto_hash_digest() failed with %d\n", rv); | 3924 | dev_err(DEV, "crypto_hash_digest() failed with %d\n", rv); |
3914 | rv = 0; | 3925 | rv = -1; |
3915 | goto fail; | 3926 | goto fail; |
3916 | } | 3927 | } |
3917 | 3928 | ||
@@ -3945,9 +3956,9 @@ static int drbd_do_auth(struct drbd_conf *mdev) | |||
3945 | } | 3956 | } |
3946 | 3957 | ||
3947 | right_response = kmalloc(resp_size, GFP_NOIO); | 3958 | right_response = kmalloc(resp_size, GFP_NOIO); |
3948 | if (response == NULL) { | 3959 | if (right_response == NULL) { |
3949 | dev_err(DEV, "kmalloc of right_response failed\n"); | 3960 | dev_err(DEV, "kmalloc of right_response failed\n"); |
3950 | rv = 0; | 3961 | rv = -1; |
3951 | goto fail; | 3962 | goto fail; |
3952 | } | 3963 | } |
3953 | 3964 | ||
@@ -3956,7 +3967,7 @@ static int drbd_do_auth(struct drbd_conf *mdev) | |||
3956 | rv = crypto_hash_digest(&desc, &sg, sg.length, right_response); | 3967 | rv = crypto_hash_digest(&desc, &sg, sg.length, right_response); |
3957 | if (rv) { | 3968 | if (rv) { |
3958 | dev_err(DEV, "crypto_hash_digest() failed with %d\n", rv); | 3969 | dev_err(DEV, "crypto_hash_digest() failed with %d\n", rv); |
3959 | rv = 0; | 3970 | rv = -1; |
3960 | goto fail; | 3971 | goto fail; |
3961 | } | 3972 | } |
3962 | 3973 | ||
@@ -3965,6 +3976,8 @@ static int drbd_do_auth(struct drbd_conf *mdev) | |||
3965 | if (rv) | 3976 | if (rv) |
3966 | dev_info(DEV, "Peer authenticated using %d bytes of '%s' HMAC\n", | 3977 | dev_info(DEV, "Peer authenticated using %d bytes of '%s' HMAC\n", |
3967 | resp_size, mdev->net_conf->cram_hmac_alg); | 3978 | resp_size, mdev->net_conf->cram_hmac_alg); |
3979 | else | ||
3980 | rv = -1; | ||
3968 | 3981 | ||
3969 | fail: | 3982 | fail: |
3970 | kfree(peers_ch); | 3983 | kfree(peers_ch); |
diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c index ed8796f1112..b453c2bca3b 100644 --- a/drivers/block/drbd/drbd_worker.c +++ b/drivers/block/drbd/drbd_worker.c | |||
@@ -24,7 +24,6 @@ | |||
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/module.h> | 26 | #include <linux/module.h> |
27 | #include <linux/version.h> | ||
28 | #include <linux/drbd.h> | 27 | #include <linux/drbd.h> |
29 | #include <linux/sched.h> | 28 | #include <linux/sched.h> |
30 | #include <linux/smp_lock.h> | 29 | #include <linux/smp_lock.h> |
@@ -34,7 +33,6 @@ | |||
34 | #include <linux/mm_inline.h> | 33 | #include <linux/mm_inline.h> |
35 | #include <linux/slab.h> | 34 | #include <linux/slab.h> |
36 | #include <linux/random.h> | 35 | #include <linux/random.h> |
37 | #include <linux/mm.h> | ||
38 | #include <linux/string.h> | 36 | #include <linux/string.h> |
39 | #include <linux/scatterlist.h> | 37 | #include <linux/scatterlist.h> |
40 | 38 | ||
diff --git a/drivers/block/mg_disk.c b/drivers/block/mg_disk.c index e0339aaa181..02b2583df7f 100644 --- a/drivers/block/mg_disk.c +++ b/drivers/block/mg_disk.c | |||
@@ -860,7 +860,7 @@ static int mg_probe(struct platform_device *plat_dev) | |||
860 | err = -EINVAL; | 860 | err = -EINVAL; |
861 | goto probe_err_2; | 861 | goto probe_err_2; |
862 | } | 862 | } |
863 | host->dev_base = ioremap(rsc->start , rsc->end + 1); | 863 | host->dev_base = ioremap(rsc->start, resource_size(rsc)); |
864 | if (!host->dev_base) { | 864 | if (!host->dev_base) { |
865 | printk(KERN_ERR "%s:%d ioremap fail\n", | 865 | printk(KERN_ERR "%s:%d ioremap fail\n", |
866 | __func__, __LINE__); | 866 | __func__, __LINE__); |
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index 31be3ac2e21..e023682be2c 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig | |||
@@ -669,7 +669,7 @@ config VIRTIO_CONSOLE | |||
669 | 669 | ||
670 | config HVCS | 670 | config HVCS |
671 | tristate "IBM Hypervisor Virtual Console Server support" | 671 | tristate "IBM Hypervisor Virtual Console Server support" |
672 | depends on PPC_PSERIES | 672 | depends on PPC_PSERIES && HVC_CONSOLE |
673 | help | 673 | help |
674 | Partitionable IBM Power5 ppc64 machines allow hosting of | 674 | Partitionable IBM Power5 ppc64 machines allow hosting of |
675 | firmware virtual consoles from one Linux partition by | 675 | firmware virtual consoles from one Linux partition by |
diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c index 2fb2e6cc322..1afb8968a34 100644 --- a/drivers/char/agp/amd64-agp.c +++ b/drivers/char/agp/amd64-agp.c | |||
@@ -728,6 +728,10 @@ int __init agp_amd64_init(void) | |||
728 | 728 | ||
729 | if (agp_off) | 729 | if (agp_off) |
730 | return -EINVAL; | 730 | return -EINVAL; |
731 | |||
732 | if (gart_iommu_aperture) | ||
733 | return agp_bridges_found ? 0 : -ENODEV; | ||
734 | |||
731 | err = pci_register_driver(&agp_amd64_pci_driver); | 735 | err = pci_register_driver(&agp_amd64_pci_driver); |
732 | if (err < 0) | 736 | if (err < 0) |
733 | return err; | 737 | return err; |
@@ -766,17 +770,15 @@ int __init agp_amd64_init(void) | |||
766 | 770 | ||
767 | static void __exit agp_amd64_cleanup(void) | 771 | static void __exit agp_amd64_cleanup(void) |
768 | { | 772 | { |
773 | if (gart_iommu_aperture) | ||
774 | return; | ||
769 | if (aperture_resource) | 775 | if (aperture_resource) |
770 | release_resource(aperture_resource); | 776 | release_resource(aperture_resource); |
771 | pci_unregister_driver(&agp_amd64_pci_driver); | 777 | pci_unregister_driver(&agp_amd64_pci_driver); |
772 | } | 778 | } |
773 | 779 | ||
774 | /* On AMD64 the PCI driver needs to initialize this driver early | ||
775 | for the IOMMU, so it has to be called via a backdoor. */ | ||
776 | #ifndef CONFIG_GART_IOMMU | ||
777 | module_init(agp_amd64_init); | 780 | module_init(agp_amd64_init); |
778 | module_exit(agp_amd64_cleanup); | 781 | module_exit(agp_amd64_cleanup); |
779 | #endif | ||
780 | 782 | ||
781 | MODULE_AUTHOR("Dave Jones <davej@redhat.com>, Andi Kleen"); | 783 | MODULE_AUTHOR("Dave Jones <davej@redhat.com>, Andi Kleen"); |
782 | module_param(agp_try_unsupported, bool, 0); | 784 | module_param(agp_try_unsupported, bool, 0); |
diff --git a/drivers/char/agp/backend.c b/drivers/char/agp/backend.c index a56ca080e10..c3ab46da51a 100644 --- a/drivers/char/agp/backend.c +++ b/drivers/char/agp/backend.c | |||
@@ -285,18 +285,22 @@ int agp_add_bridge(struct agp_bridge_data *bridge) | |||
285 | { | 285 | { |
286 | int error; | 286 | int error; |
287 | 287 | ||
288 | if (agp_off) | 288 | if (agp_off) { |
289 | return -ENODEV; | 289 | error = -ENODEV; |
290 | goto err_put_bridge; | ||
291 | } | ||
290 | 292 | ||
291 | if (!bridge->dev) { | 293 | if (!bridge->dev) { |
292 | printk (KERN_DEBUG PFX "Erk, registering with no pci_dev!\n"); | 294 | printk (KERN_DEBUG PFX "Erk, registering with no pci_dev!\n"); |
293 | return -EINVAL; | 295 | error = -EINVAL; |
296 | goto err_put_bridge; | ||
294 | } | 297 | } |
295 | 298 | ||
296 | /* Grab reference on the chipset driver. */ | 299 | /* Grab reference on the chipset driver. */ |
297 | if (!try_module_get(bridge->driver->owner)) { | 300 | if (!try_module_get(bridge->driver->owner)) { |
298 | dev_info(&bridge->dev->dev, "can't lock chipset driver\n"); | 301 | dev_info(&bridge->dev->dev, "can't lock chipset driver\n"); |
299 | return -EINVAL; | 302 | error = -EINVAL; |
303 | goto err_put_bridge; | ||
300 | } | 304 | } |
301 | 305 | ||
302 | error = agp_backend_initialize(bridge); | 306 | error = agp_backend_initialize(bridge); |
@@ -326,6 +330,7 @@ frontend_err: | |||
326 | agp_backend_cleanup(bridge); | 330 | agp_backend_cleanup(bridge); |
327 | err_out: | 331 | err_out: |
328 | module_put(bridge->driver->owner); | 332 | module_put(bridge->driver->owner); |
333 | err_put_bridge: | ||
329 | agp_put_bridge(bridge); | 334 | agp_put_bridge(bridge); |
330 | return error; | 335 | return error; |
331 | } | 336 | } |
diff --git a/drivers/char/agp/hp-agp.c b/drivers/char/agp/hp-agp.c index 9047b271465..58752b70efe 100644 --- a/drivers/char/agp/hp-agp.c +++ b/drivers/char/agp/hp-agp.c | |||
@@ -488,9 +488,8 @@ zx1_gart_probe (acpi_handle obj, u32 depth, void *context, void **ret) | |||
488 | handle = obj; | 488 | handle = obj; |
489 | do { | 489 | do { |
490 | status = acpi_get_object_info(handle, &info); | 490 | status = acpi_get_object_info(handle, &info); |
491 | if (ACPI_SUCCESS(status)) { | 491 | if (ACPI_SUCCESS(status) && (info->valid & ACPI_VALID_HID)) { |
492 | /* TBD check _CID also */ | 492 | /* TBD check _CID also */ |
493 | info->hardware_id.string[sizeof(info->hardware_id.length)-1] = '\0'; | ||
494 | match = (strcmp(info->hardware_id.string, "HWP0001") == 0); | 493 | match = (strcmp(info->hardware_id.string, "HWP0001") == 0); |
495 | kfree(info); | 494 | kfree(info); |
496 | if (match) { | 495 | if (match) { |
@@ -509,6 +508,9 @@ zx1_gart_probe (acpi_handle obj, u32 depth, void *context, void **ret) | |||
509 | handle = parent; | 508 | handle = parent; |
510 | } while (ACPI_SUCCESS(status)); | 509 | } while (ACPI_SUCCESS(status)); |
511 | 510 | ||
511 | if (ACPI_FAILURE(status)) | ||
512 | return AE_OK; /* found no enclosing IOC */ | ||
513 | |||
512 | if (hp_zx1_setup(sba_hpa + HP_ZX1_IOC_OFFSET, lba_hpa)) | 514 | if (hp_zx1_setup(sba_hpa + HP_ZX1_IOC_OFFSET, lba_hpa)) |
513 | return AE_OK; | 515 | return AE_OK; |
514 | 516 | ||
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index 30c36ac2cd0..3999a5f25f3 100644 --- a/drivers/char/agp/intel-agp.c +++ b/drivers/char/agp/intel-agp.c | |||
@@ -2460,10 +2460,14 @@ static int __devinit agp_intel_probe(struct pci_dev *pdev, | |||
2460 | &bridge->mode); | 2460 | &bridge->mode); |
2461 | } | 2461 | } |
2462 | 2462 | ||
2463 | if (bridge->driver->mask_memory == intel_i965_mask_memory) | 2463 | if (bridge->driver->mask_memory == intel_i965_mask_memory) { |
2464 | if (pci_set_dma_mask(intel_private.pcidev, DMA_BIT_MASK(36))) | 2464 | if (pci_set_dma_mask(intel_private.pcidev, DMA_BIT_MASK(36))) |
2465 | dev_err(&intel_private.pcidev->dev, | 2465 | dev_err(&intel_private.pcidev->dev, |
2466 | "set gfx device dma mask 36bit failed!\n"); | 2466 | "set gfx device dma mask 36bit failed!\n"); |
2467 | else | ||
2468 | pci_set_consistent_dma_mask(intel_private.pcidev, | ||
2469 | DMA_BIT_MASK(36)); | ||
2470 | } | ||
2467 | 2471 | ||
2468 | pci_set_drvdata(pdev, bridge); | 2472 | pci_set_drvdata(pdev, bridge); |
2469 | return agp_add_bridge(bridge); | 2473 | return agp_add_bridge(bridge); |
diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c index e989f67bb61..3d9c61e5acb 100644 --- a/drivers/char/hw_random/core.c +++ b/drivers/char/hw_random/core.c | |||
@@ -158,10 +158,11 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf, | |||
158 | goto out; | 158 | goto out; |
159 | } | 159 | } |
160 | } | 160 | } |
161 | out_unlock: | ||
162 | mutex_unlock(&rng_mutex); | ||
163 | out: | 161 | out: |
164 | return ret ? : err; | 162 | return ret ? : err; |
163 | out_unlock: | ||
164 | mutex_unlock(&rng_mutex); | ||
165 | goto out; | ||
165 | } | 166 | } |
166 | 167 | ||
167 | 168 | ||
diff --git a/drivers/char/hw_random/virtio-rng.c b/drivers/char/hw_random/virtio-rng.c index bdaef8e9402..64fe0a793ef 100644 --- a/drivers/char/hw_random/virtio-rng.c +++ b/drivers/char/hw_random/virtio-rng.c | |||
@@ -114,7 +114,7 @@ static struct virtio_device_id id_table[] = { | |||
114 | { 0 }, | 114 | { 0 }, |
115 | }; | 115 | }; |
116 | 116 | ||
117 | static struct virtio_driver virtio_rng = { | 117 | static struct virtio_driver virtio_rng_driver = { |
118 | .driver.name = KBUILD_MODNAME, | 118 | .driver.name = KBUILD_MODNAME, |
119 | .driver.owner = THIS_MODULE, | 119 | .driver.owner = THIS_MODULE, |
120 | .id_table = id_table, | 120 | .id_table = id_table, |
@@ -124,12 +124,12 @@ static struct virtio_driver virtio_rng = { | |||
124 | 124 | ||
125 | static int __init init(void) | 125 | static int __init init(void) |
126 | { | 126 | { |
127 | return register_virtio_driver(&virtio_rng); | 127 | return register_virtio_driver(&virtio_rng_driver); |
128 | } | 128 | } |
129 | 129 | ||
130 | static void __exit fini(void) | 130 | static void __exit fini(void) |
131 | { | 131 | { |
132 | unregister_virtio_driver(&virtio_rng); | 132 | unregister_virtio_driver(&virtio_rng_driver); |
133 | } | 133 | } |
134 | module_init(init); | 134 | module_init(init); |
135 | module_exit(fini); | 135 | module_exit(fini); |
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index 679cd08b80b..176f1751237 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c | |||
@@ -3204,7 +3204,7 @@ static __devinit int init_ipmi_si(void) | |||
3204 | #ifdef CONFIG_ACPI | 3204 | #ifdef CONFIG_ACPI |
3205 | spmi_find_bmc(); | 3205 | spmi_find_bmc(); |
3206 | #endif | 3206 | #endif |
3207 | #ifdef CONFIG_PNP | 3207 | #ifdef CONFIG_ACPI |
3208 | pnp_register_driver(&ipmi_pnp_driver); | 3208 | pnp_register_driver(&ipmi_pnp_driver); |
3209 | #endif | 3209 | #endif |
3210 | 3210 | ||
@@ -3330,7 +3330,7 @@ static __exit void cleanup_ipmi_si(void) | |||
3330 | #ifdef CONFIG_PCI | 3330 | #ifdef CONFIG_PCI |
3331 | pci_unregister_driver(&ipmi_pci_driver); | 3331 | pci_unregister_driver(&ipmi_pci_driver); |
3332 | #endif | 3332 | #endif |
3333 | #ifdef CONFIG_PNP | 3333 | #ifdef CONFIG_ACPI |
3334 | pnp_unregister_driver(&ipmi_pnp_driver); | 3334 | pnp_unregister_driver(&ipmi_pnp_driver); |
3335 | #endif | 3335 | #endif |
3336 | 3336 | ||
diff --git a/drivers/char/nozomi.c b/drivers/char/nozomi.c index 7d73cd43034..2ad7d37afbd 100644 --- a/drivers/char/nozomi.c +++ b/drivers/char/nozomi.c | |||
@@ -1651,10 +1651,10 @@ static void ntty_close(struct tty_struct *tty, struct file *file) | |||
1651 | 1651 | ||
1652 | dc->open_ttys--; | 1652 | dc->open_ttys--; |
1653 | port->count--; | 1653 | port->count--; |
1654 | tty_port_tty_set(port, NULL); | ||
1655 | 1654 | ||
1656 | if (port->count == 0) { | 1655 | if (port->count == 0) { |
1657 | DBG1("close: %d", nport->token_dl); | 1656 | DBG1("close: %d", nport->token_dl); |
1657 | tty_port_tty_set(port, NULL); | ||
1658 | spin_lock_irqsave(&dc->spin_mutex, flags); | 1658 | spin_lock_irqsave(&dc->spin_mutex, flags); |
1659 | dc->last_ier &= ~(nport->token_dl); | 1659 | dc->last_ier &= ~(nport->token_dl); |
1660 | writew(dc->last_ier, dc->reg_ier); | 1660 | writew(dc->last_ier, dc->reg_ier); |
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c index 0798754a607..bba727c3807 100644 --- a/drivers/char/sonypi.c +++ b/drivers/char/sonypi.c | |||
@@ -50,7 +50,6 @@ | |||
50 | #include <linux/err.h> | 50 | #include <linux/err.h> |
51 | #include <linux/kfifo.h> | 51 | #include <linux/kfifo.h> |
52 | #include <linux/platform_device.h> | 52 | #include <linux/platform_device.h> |
53 | #include <linux/smp_lock.h> | ||
54 | 53 | ||
55 | #include <asm/uaccess.h> | 54 | #include <asm/uaccess.h> |
56 | #include <asm/io.h> | 55 | #include <asm/io.h> |
@@ -905,14 +904,13 @@ static int sonypi_misc_release(struct inode *inode, struct file *file) | |||
905 | 904 | ||
906 | static int sonypi_misc_open(struct inode *inode, struct file *file) | 905 | static int sonypi_misc_open(struct inode *inode, struct file *file) |
907 | { | 906 | { |
908 | lock_kernel(); | ||
909 | mutex_lock(&sonypi_device.lock); | 907 | mutex_lock(&sonypi_device.lock); |
910 | /* Flush input queue on first open */ | 908 | /* Flush input queue on first open */ |
911 | if (!sonypi_device.open_count) | 909 | if (!sonypi_device.open_count) |
912 | kfifo_reset(&sonypi_device.fifo); | 910 | kfifo_reset(&sonypi_device.fifo); |
913 | sonypi_device.open_count++; | 911 | sonypi_device.open_count++; |
914 | mutex_unlock(&sonypi_device.lock); | 912 | mutex_unlock(&sonypi_device.lock); |
915 | unlock_kernel(); | 913 | |
916 | return 0; | 914 | return 0; |
917 | } | 915 | } |
918 | 916 | ||
@@ -955,10 +953,10 @@ static unsigned int sonypi_misc_poll(struct file *file, poll_table *wait) | |||
955 | return 0; | 953 | return 0; |
956 | } | 954 | } |
957 | 955 | ||
958 | static int sonypi_misc_ioctl(struct inode *ip, struct file *fp, | 956 | static long sonypi_misc_ioctl(struct file *fp, |
959 | unsigned int cmd, unsigned long arg) | 957 | unsigned int cmd, unsigned long arg) |
960 | { | 958 | { |
961 | int ret = 0; | 959 | long ret = 0; |
962 | void __user *argp = (void __user *)arg; | 960 | void __user *argp = (void __user *)arg; |
963 | u8 val8; | 961 | u8 val8; |
964 | u16 val16; | 962 | u16 val16; |
@@ -1074,7 +1072,8 @@ static const struct file_operations sonypi_misc_fops = { | |||
1074 | .open = sonypi_misc_open, | 1072 | .open = sonypi_misc_open, |
1075 | .release = sonypi_misc_release, | 1073 | .release = sonypi_misc_release, |
1076 | .fasync = sonypi_misc_fasync, | 1074 | .fasync = sonypi_misc_fasync, |
1077 | .ioctl = sonypi_misc_ioctl, | 1075 | .unlocked_ioctl = sonypi_misc_ioctl, |
1076 | .llseek = no_llseek, | ||
1078 | }; | 1077 | }; |
1079 | 1078 | ||
1080 | static struct miscdevice sonypi_misc_device = { | 1079 | static struct miscdevice sonypi_misc_device = { |
diff --git a/drivers/char/toshiba.c b/drivers/char/toshiba.c index 663cd15d7c7..f8bc79f6de3 100644 --- a/drivers/char/toshiba.c +++ b/drivers/char/toshiba.c | |||
@@ -68,7 +68,7 @@ | |||
68 | #include <linux/stat.h> | 68 | #include <linux/stat.h> |
69 | #include <linux/proc_fs.h> | 69 | #include <linux/proc_fs.h> |
70 | #include <linux/seq_file.h> | 70 | #include <linux/seq_file.h> |
71 | 71 | #include <linux/smp_lock.h> | |
72 | #include <linux/toshiba.h> | 72 | #include <linux/toshiba.h> |
73 | 73 | ||
74 | #define TOSH_MINOR_DEV 181 | 74 | #define TOSH_MINOR_DEV 181 |
@@ -88,13 +88,13 @@ static int tosh_date; | |||
88 | static int tosh_sci; | 88 | static int tosh_sci; |
89 | static int tosh_fan; | 89 | static int tosh_fan; |
90 | 90 | ||
91 | static int tosh_ioctl(struct inode *, struct file *, unsigned int, | 91 | static long tosh_ioctl(struct file *, unsigned int, |
92 | unsigned long); | 92 | unsigned long); |
93 | 93 | ||
94 | 94 | ||
95 | static const struct file_operations tosh_fops = { | 95 | static const struct file_operations tosh_fops = { |
96 | .owner = THIS_MODULE, | 96 | .owner = THIS_MODULE, |
97 | .ioctl = tosh_ioctl, | 97 | .unlocked_ioctl = tosh_ioctl, |
98 | }; | 98 | }; |
99 | 99 | ||
100 | static struct miscdevice tosh_device = { | 100 | static struct miscdevice tosh_device = { |
@@ -252,8 +252,7 @@ int tosh_smm(SMMRegisters *regs) | |||
252 | EXPORT_SYMBOL(tosh_smm); | 252 | EXPORT_SYMBOL(tosh_smm); |
253 | 253 | ||
254 | 254 | ||
255 | static int tosh_ioctl(struct inode *ip, struct file *fp, unsigned int cmd, | 255 | static long tosh_ioctl(struct file *fp, unsigned int cmd, unsigned long arg) |
256 | unsigned long arg) | ||
257 | { | 256 | { |
258 | SMMRegisters regs; | 257 | SMMRegisters regs; |
259 | SMMRegisters __user *argp = (SMMRegisters __user *)arg; | 258 | SMMRegisters __user *argp = (SMMRegisters __user *)arg; |
@@ -275,13 +274,16 @@ static int tosh_ioctl(struct inode *ip, struct file *fp, unsigned int cmd, | |||
275 | return -EINVAL; | 274 | return -EINVAL; |
276 | 275 | ||
277 | /* do we need to emulate the fan ? */ | 276 | /* do we need to emulate the fan ? */ |
277 | lock_kernel(); | ||
278 | if (tosh_fan==1) { | 278 | if (tosh_fan==1) { |
279 | if (((ax==0xf300) || (ax==0xf400)) && (bx==0x0004)) { | 279 | if (((ax==0xf300) || (ax==0xf400)) && (bx==0x0004)) { |
280 | err = tosh_emulate_fan(®s); | 280 | err = tosh_emulate_fan(®s); |
281 | unlock_kernel(); | ||
281 | break; | 282 | break; |
282 | } | 283 | } |
283 | } | 284 | } |
284 | err = tosh_smm(®s); | 285 | err = tosh_smm(®s); |
286 | unlock_kernel(); | ||
285 | break; | 287 | break; |
286 | default: | 288 | default: |
287 | return -EINVAL; | 289 | return -EINVAL; |
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index f15df40bc31..c6f3b48be9d 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c | |||
@@ -1951,8 +1951,8 @@ static int tty_fasync(int fd, struct file *filp, int on) | |||
1951 | pid = task_pid(current); | 1951 | pid = task_pid(current); |
1952 | type = PIDTYPE_PID; | 1952 | type = PIDTYPE_PID; |
1953 | } | 1953 | } |
1954 | spin_unlock_irqrestore(&tty->ctrl_lock, flags); | ||
1955 | retval = __f_setown(filp, pid, type, 0); | 1954 | retval = __f_setown(filp, pid, type, 0); |
1955 | spin_unlock_irqrestore(&tty->ctrl_lock, flags); | ||
1956 | if (retval) | 1956 | if (retval) |
1957 | goto out; | 1957 | goto out; |
1958 | } else { | 1958 | } else { |
diff --git a/drivers/cpuidle/governors/menu.c b/drivers/cpuidle/governors/menu.c index 68104434ebb..73655aeb3a6 100644 --- a/drivers/cpuidle/governors/menu.c +++ b/drivers/cpuidle/governors/menu.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/hrtimer.h> | 18 | #include <linux/hrtimer.h> |
19 | #include <linux/tick.h> | 19 | #include <linux/tick.h> |
20 | #include <linux/sched.h> | 20 | #include <linux/sched.h> |
21 | #include <linux/math64.h> | ||
21 | 22 | ||
22 | #define BUCKETS 12 | 23 | #define BUCKETS 12 |
23 | #define RESOLUTION 1024 | 24 | #define RESOLUTION 1024 |
@@ -169,6 +170,12 @@ static DEFINE_PER_CPU(struct menu_device, menu_devices); | |||
169 | 170 | ||
170 | static void menu_update(struct cpuidle_device *dev); | 171 | static void menu_update(struct cpuidle_device *dev); |
171 | 172 | ||
173 | /* This implements DIV_ROUND_CLOSEST but avoids 64 bit division */ | ||
174 | static u64 div_round64(u64 dividend, u32 divisor) | ||
175 | { | ||
176 | return div_u64(dividend + (divisor / 2), divisor); | ||
177 | } | ||
178 | |||
172 | /** | 179 | /** |
173 | * menu_select - selects the next idle state to enter | 180 | * menu_select - selects the next idle state to enter |
174 | * @dev: the CPU | 181 | * @dev: the CPU |
@@ -209,9 +216,8 @@ static int menu_select(struct cpuidle_device *dev) | |||
209 | data->correction_factor[data->bucket] = RESOLUTION * DECAY; | 216 | data->correction_factor[data->bucket] = RESOLUTION * DECAY; |
210 | 217 | ||
211 | /* Make sure to round up for half microseconds */ | 218 | /* Make sure to round up for half microseconds */ |
212 | data->predicted_us = DIV_ROUND_CLOSEST( | 219 | data->predicted_us = div_round64(data->expected_us * data->correction_factor[data->bucket], |
213 | data->expected_us * data->correction_factor[data->bucket], | 220 | RESOLUTION * DECAY); |
214 | RESOLUTION * DECAY); | ||
215 | 221 | ||
216 | /* | 222 | /* |
217 | * We want to default to C1 (hlt), not to busy polling | 223 | * We want to default to C1 (hlt), not to busy polling |
diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c index f15112569c1..efc1a61ca23 100644 --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c | |||
@@ -815,7 +815,7 @@ atc_is_tx_complete(struct dma_chan *chan, | |||
815 | dev_vdbg(chan2dev(chan), "is_tx_complete: %d (d%d, u%d)\n", | 815 | dev_vdbg(chan2dev(chan), "is_tx_complete: %d (d%d, u%d)\n", |
816 | cookie, done ? *done : 0, used ? *used : 0); | 816 | cookie, done ? *done : 0, used ? *used : 0); |
817 | 817 | ||
818 | spin_lock_bh(atchan->lock); | 818 | spin_lock_bh(&atchan->lock); |
819 | 819 | ||
820 | last_complete = atchan->completed_cookie; | 820 | last_complete = atchan->completed_cookie; |
821 | last_used = chan->cookie; | 821 | last_used = chan->cookie; |
@@ -830,7 +830,7 @@ atc_is_tx_complete(struct dma_chan *chan, | |||
830 | ret = dma_async_is_complete(cookie, last_complete, last_used); | 830 | ret = dma_async_is_complete(cookie, last_complete, last_used); |
831 | } | 831 | } |
832 | 832 | ||
833 | spin_unlock_bh(atchan->lock); | 833 | spin_unlock_bh(&atchan->lock); |
834 | 834 | ||
835 | if (done) | 835 | if (done) |
836 | *done = last_complete; | 836 | *done = last_complete; |
diff --git a/drivers/dma/coh901318.c b/drivers/dma/coh901318.c index 4a99cd94536..b5f2ee0f8e2 100644 --- a/drivers/dma/coh901318.c +++ b/drivers/dma/coh901318.c | |||
@@ -1294,8 +1294,8 @@ static int __exit coh901318_remove(struct platform_device *pdev) | |||
1294 | dma_async_device_unregister(&base->dma_slave); | 1294 | dma_async_device_unregister(&base->dma_slave); |
1295 | coh901318_pool_destroy(&base->pool); | 1295 | coh901318_pool_destroy(&base->pool); |
1296 | free_irq(platform_get_irq(pdev, 0), base); | 1296 | free_irq(platform_get_irq(pdev, 0), base); |
1297 | kfree(base); | ||
1298 | iounmap(base->virtbase); | 1297 | iounmap(base->virtbase); |
1298 | kfree(base); | ||
1299 | release_mem_region(pdev->resource->start, | 1299 | release_mem_region(pdev->resource->start, |
1300 | resource_size(pdev->resource)); | 1300 | resource_size(pdev->resource)); |
1301 | return 0; | 1301 | return 0; |
diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c index 285bed0fe17..d28369f7afd 100644 --- a/drivers/dma/dw_dmac.c +++ b/drivers/dma/dw_dmac.c | |||
@@ -1270,8 +1270,6 @@ static int __init dw_probe(struct platform_device *pdev) | |||
1270 | goto err_kfree; | 1270 | goto err_kfree; |
1271 | } | 1271 | } |
1272 | 1272 | ||
1273 | memset(dw, 0, sizeof *dw); | ||
1274 | |||
1275 | dw->regs = ioremap(io->start, DW_REGLEN); | 1273 | dw->regs = ioremap(io->start, DW_REGLEN); |
1276 | if (!dw->regs) { | 1274 | if (!dw->regs) { |
1277 | err = -ENOMEM; | 1275 | err = -ENOMEM; |
diff --git a/drivers/dma/ioat/dma.c b/drivers/dma/ioat/dma.c index c524d36d3c2..dcc4ab78b32 100644 --- a/drivers/dma/ioat/dma.c +++ b/drivers/dma/ioat/dma.c | |||
@@ -1032,7 +1032,7 @@ int __devinit ioat_probe(struct ioatdma_device *device) | |||
1032 | dma->dev = &pdev->dev; | 1032 | dma->dev = &pdev->dev; |
1033 | 1033 | ||
1034 | if (!dma->chancnt) { | 1034 | if (!dma->chancnt) { |
1035 | dev_err(dev, "zero channels detected\n"); | 1035 | dev_err(dev, "channel enumeration error\n"); |
1036 | goto err_setup_interrupts; | 1036 | goto err_setup_interrupts; |
1037 | } | 1037 | } |
1038 | 1038 | ||
diff --git a/drivers/dma/ioat/dma.h b/drivers/dma/ioat/dma.h index 45edde99648..bbc3e78ef33 100644 --- a/drivers/dma/ioat/dma.h +++ b/drivers/dma/ioat/dma.h | |||
@@ -60,6 +60,7 @@ | |||
60 | * @dca: direct cache access context | 60 | * @dca: direct cache access context |
61 | * @intr_quirk: interrupt setup quirk (for ioat_v1 devices) | 61 | * @intr_quirk: interrupt setup quirk (for ioat_v1 devices) |
62 | * @enumerate_channels: hw version specific channel enumeration | 62 | * @enumerate_channels: hw version specific channel enumeration |
63 | * @reset_hw: hw version specific channel (re)initialization | ||
63 | * @cleanup_tasklet: select between the v2 and v3 cleanup routines | 64 | * @cleanup_tasklet: select between the v2 and v3 cleanup routines |
64 | * @timer_fn: select between the v2 and v3 timer watchdog routines | 65 | * @timer_fn: select between the v2 and v3 timer watchdog routines |
65 | * @self_test: hardware version specific self test for each supported op type | 66 | * @self_test: hardware version specific self test for each supported op type |
@@ -78,6 +79,7 @@ struct ioatdma_device { | |||
78 | struct dca_provider *dca; | 79 | struct dca_provider *dca; |
79 | void (*intr_quirk)(struct ioatdma_device *device); | 80 | void (*intr_quirk)(struct ioatdma_device *device); |
80 | int (*enumerate_channels)(struct ioatdma_device *device); | 81 | int (*enumerate_channels)(struct ioatdma_device *device); |
82 | int (*reset_hw)(struct ioat_chan_common *chan); | ||
81 | void (*cleanup_tasklet)(unsigned long data); | 83 | void (*cleanup_tasklet)(unsigned long data); |
82 | void (*timer_fn)(unsigned long data); | 84 | void (*timer_fn)(unsigned long data); |
83 | int (*self_test)(struct ioatdma_device *device); | 85 | int (*self_test)(struct ioatdma_device *device); |
@@ -264,6 +266,22 @@ static inline void ioat_suspend(struct ioat_chan_common *chan) | |||
264 | writeb(IOAT_CHANCMD_SUSPEND, chan->reg_base + IOAT_CHANCMD_OFFSET(ver)); | 266 | writeb(IOAT_CHANCMD_SUSPEND, chan->reg_base + IOAT_CHANCMD_OFFSET(ver)); |
265 | } | 267 | } |
266 | 268 | ||
269 | static inline void ioat_reset(struct ioat_chan_common *chan) | ||
270 | { | ||
271 | u8 ver = chan->device->version; | ||
272 | |||
273 | writeb(IOAT_CHANCMD_RESET, chan->reg_base + IOAT_CHANCMD_OFFSET(ver)); | ||
274 | } | ||
275 | |||
276 | static inline bool ioat_reset_pending(struct ioat_chan_common *chan) | ||
277 | { | ||
278 | u8 ver = chan->device->version; | ||
279 | u8 cmd; | ||
280 | |||
281 | cmd = readb(chan->reg_base + IOAT_CHANCMD_OFFSET(ver)); | ||
282 | return (cmd & IOAT_CHANCMD_RESET) == IOAT_CHANCMD_RESET; | ||
283 | } | ||
284 | |||
267 | static inline void ioat_set_chainaddr(struct ioat_dma_chan *ioat, u64 addr) | 285 | static inline void ioat_set_chainaddr(struct ioat_dma_chan *ioat, u64 addr) |
268 | { | 286 | { |
269 | struct ioat_chan_common *chan = &ioat->base; | 287 | struct ioat_chan_common *chan = &ioat->base; |
diff --git a/drivers/dma/ioat/dma_v2.c b/drivers/dma/ioat/dma_v2.c index 8f1f7f05dea..5f7a500e18d 100644 --- a/drivers/dma/ioat/dma_v2.c +++ b/drivers/dma/ioat/dma_v2.c | |||
@@ -239,20 +239,50 @@ void __ioat2_restart_chan(struct ioat2_dma_chan *ioat) | |||
239 | __ioat2_start_null_desc(ioat); | 239 | __ioat2_start_null_desc(ioat); |
240 | } | 240 | } |
241 | 241 | ||
242 | static void ioat2_restart_channel(struct ioat2_dma_chan *ioat) | 242 | int ioat2_quiesce(struct ioat_chan_common *chan, unsigned long tmo) |
243 | { | 243 | { |
244 | struct ioat_chan_common *chan = &ioat->base; | 244 | unsigned long end = jiffies + tmo; |
245 | unsigned long phys_complete; | 245 | int err = 0; |
246 | u32 status; | 246 | u32 status; |
247 | 247 | ||
248 | status = ioat_chansts(chan); | 248 | status = ioat_chansts(chan); |
249 | if (is_ioat_active(status) || is_ioat_idle(status)) | 249 | if (is_ioat_active(status) || is_ioat_idle(status)) |
250 | ioat_suspend(chan); | 250 | ioat_suspend(chan); |
251 | while (is_ioat_active(status) || is_ioat_idle(status)) { | 251 | while (is_ioat_active(status) || is_ioat_idle(status)) { |
252 | if (end && time_after(jiffies, end)) { | ||
253 | err = -ETIMEDOUT; | ||
254 | break; | ||
255 | } | ||
252 | status = ioat_chansts(chan); | 256 | status = ioat_chansts(chan); |
253 | cpu_relax(); | 257 | cpu_relax(); |
254 | } | 258 | } |
255 | 259 | ||
260 | return err; | ||
261 | } | ||
262 | |||
263 | int ioat2_reset_sync(struct ioat_chan_common *chan, unsigned long tmo) | ||
264 | { | ||
265 | unsigned long end = jiffies + tmo; | ||
266 | int err = 0; | ||
267 | |||
268 | ioat_reset(chan); | ||
269 | while (ioat_reset_pending(chan)) { | ||
270 | if (end && time_after(jiffies, end)) { | ||
271 | err = -ETIMEDOUT; | ||
272 | break; | ||
273 | } | ||
274 | cpu_relax(); | ||
275 | } | ||
276 | |||
277 | return err; | ||
278 | } | ||
279 | |||
280 | static void ioat2_restart_channel(struct ioat2_dma_chan *ioat) | ||
281 | { | ||
282 | struct ioat_chan_common *chan = &ioat->base; | ||
283 | unsigned long phys_complete; | ||
284 | |||
285 | ioat2_quiesce(chan, 0); | ||
256 | if (ioat_cleanup_preamble(chan, &phys_complete)) | 286 | if (ioat_cleanup_preamble(chan, &phys_complete)) |
257 | __cleanup(ioat, phys_complete); | 287 | __cleanup(ioat, phys_complete); |
258 | 288 | ||
@@ -318,6 +348,19 @@ void ioat2_timer_event(unsigned long data) | |||
318 | spin_unlock_bh(&chan->cleanup_lock); | 348 | spin_unlock_bh(&chan->cleanup_lock); |
319 | } | 349 | } |
320 | 350 | ||
351 | static int ioat2_reset_hw(struct ioat_chan_common *chan) | ||
352 | { | ||
353 | /* throw away whatever the channel was doing and get it initialized */ | ||
354 | u32 chanerr; | ||
355 | |||
356 | ioat2_quiesce(chan, msecs_to_jiffies(100)); | ||
357 | |||
358 | chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET); | ||
359 | writel(chanerr, chan->reg_base + IOAT_CHANERR_OFFSET); | ||
360 | |||
361 | return ioat2_reset_sync(chan, msecs_to_jiffies(200)); | ||
362 | } | ||
363 | |||
321 | /** | 364 | /** |
322 | * ioat2_enumerate_channels - find and initialize the device's channels | 365 | * ioat2_enumerate_channels - find and initialize the device's channels |
323 | * @device: the device to be enumerated | 366 | * @device: the device to be enumerated |
@@ -360,6 +403,10 @@ int ioat2_enumerate_channels(struct ioatdma_device *device) | |||
360 | (unsigned long) ioat); | 403 | (unsigned long) ioat); |
361 | ioat->xfercap_log = xfercap_log; | 404 | ioat->xfercap_log = xfercap_log; |
362 | spin_lock_init(&ioat->ring_lock); | 405 | spin_lock_init(&ioat->ring_lock); |
406 | if (device->reset_hw(&ioat->base)) { | ||
407 | i = 0; | ||
408 | break; | ||
409 | } | ||
363 | } | 410 | } |
364 | dma->chancnt = i; | 411 | dma->chancnt = i; |
365 | return i; | 412 | return i; |
@@ -467,7 +514,6 @@ int ioat2_alloc_chan_resources(struct dma_chan *c) | |||
467 | struct ioat2_dma_chan *ioat = to_ioat2_chan(c); | 514 | struct ioat2_dma_chan *ioat = to_ioat2_chan(c); |
468 | struct ioat_chan_common *chan = &ioat->base; | 515 | struct ioat_chan_common *chan = &ioat->base; |
469 | struct ioat_ring_ent **ring; | 516 | struct ioat_ring_ent **ring; |
470 | u32 chanerr; | ||
471 | int order; | 517 | int order; |
472 | 518 | ||
473 | /* have we already been set up? */ | 519 | /* have we already been set up? */ |
@@ -477,12 +523,6 @@ int ioat2_alloc_chan_resources(struct dma_chan *c) | |||
477 | /* Setup register to interrupt and write completion status on error */ | 523 | /* Setup register to interrupt and write completion status on error */ |
478 | writew(IOAT_CHANCTRL_RUN, chan->reg_base + IOAT_CHANCTRL_OFFSET); | 524 | writew(IOAT_CHANCTRL_RUN, chan->reg_base + IOAT_CHANCTRL_OFFSET); |
479 | 525 | ||
480 | chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET); | ||
481 | if (chanerr) { | ||
482 | dev_err(to_dev(chan), "CHANERR = %x, clearing\n", chanerr); | ||
483 | writel(chanerr, chan->reg_base + IOAT_CHANERR_OFFSET); | ||
484 | } | ||
485 | |||
486 | /* allocate a completion writeback area */ | 526 | /* allocate a completion writeback area */ |
487 | /* doing 2 32bit writes to mmio since 1 64b write doesn't work */ | 527 | /* doing 2 32bit writes to mmio since 1 64b write doesn't work */ |
488 | chan->completion = pci_pool_alloc(chan->device->completion_pool, | 528 | chan->completion = pci_pool_alloc(chan->device->completion_pool, |
@@ -746,13 +786,7 @@ void ioat2_free_chan_resources(struct dma_chan *c) | |||
746 | tasklet_disable(&chan->cleanup_task); | 786 | tasklet_disable(&chan->cleanup_task); |
747 | del_timer_sync(&chan->timer); | 787 | del_timer_sync(&chan->timer); |
748 | device->cleanup_tasklet((unsigned long) ioat); | 788 | device->cleanup_tasklet((unsigned long) ioat); |
749 | 789 | device->reset_hw(chan); | |
750 | /* Delay 100ms after reset to allow internal DMA logic to quiesce | ||
751 | * before removing DMA descriptor resources. | ||
752 | */ | ||
753 | writeb(IOAT_CHANCMD_RESET, | ||
754 | chan->reg_base + IOAT_CHANCMD_OFFSET(chan->device->version)); | ||
755 | mdelay(100); | ||
756 | 790 | ||
757 | spin_lock_bh(&ioat->ring_lock); | 791 | spin_lock_bh(&ioat->ring_lock); |
758 | descs = ioat2_ring_space(ioat); | 792 | descs = ioat2_ring_space(ioat); |
@@ -839,6 +873,7 @@ int __devinit ioat2_dma_probe(struct ioatdma_device *device, int dca) | |||
839 | int err; | 873 | int err; |
840 | 874 | ||
841 | device->enumerate_channels = ioat2_enumerate_channels; | 875 | device->enumerate_channels = ioat2_enumerate_channels; |
876 | device->reset_hw = ioat2_reset_hw; | ||
842 | device->cleanup_tasklet = ioat2_cleanup_tasklet; | 877 | device->cleanup_tasklet = ioat2_cleanup_tasklet; |
843 | device->timer_fn = ioat2_timer_event; | 878 | device->timer_fn = ioat2_timer_event; |
844 | device->self_test = ioat_dma_self_test; | 879 | device->self_test = ioat_dma_self_test; |
diff --git a/drivers/dma/ioat/dma_v2.h b/drivers/dma/ioat/dma_v2.h index 1d849ef74d5..3afad8da43c 100644 --- a/drivers/dma/ioat/dma_v2.h +++ b/drivers/dma/ioat/dma_v2.h | |||
@@ -185,6 +185,8 @@ bool reshape_ring(struct ioat2_dma_chan *ioat, int order); | |||
185 | void __ioat2_issue_pending(struct ioat2_dma_chan *ioat); | 185 | void __ioat2_issue_pending(struct ioat2_dma_chan *ioat); |
186 | void ioat2_cleanup_tasklet(unsigned long data); | 186 | void ioat2_cleanup_tasklet(unsigned long data); |
187 | void ioat2_timer_event(unsigned long data); | 187 | void ioat2_timer_event(unsigned long data); |
188 | int ioat2_quiesce(struct ioat_chan_common *chan, unsigned long tmo); | ||
189 | int ioat2_reset_sync(struct ioat_chan_common *chan, unsigned long tmo); | ||
188 | extern struct kobj_type ioat2_ktype; | 190 | extern struct kobj_type ioat2_ktype; |
189 | extern struct kmem_cache *ioat2_cache; | 191 | extern struct kmem_cache *ioat2_cache; |
190 | #endif /* IOATDMA_V2_H */ | 192 | #endif /* IOATDMA_V2_H */ |
diff --git a/drivers/dma/ioat/dma_v3.c b/drivers/dma/ioat/dma_v3.c index 42f6f10fb0c..9908c9e94b2 100644 --- a/drivers/dma/ioat/dma_v3.c +++ b/drivers/dma/ioat/dma_v3.c | |||
@@ -650,9 +650,11 @@ __ioat3_prep_pq_lock(struct dma_chan *c, enum sum_check_flags *result, | |||
650 | 650 | ||
651 | num_descs = ioat2_xferlen_to_descs(ioat, len); | 651 | num_descs = ioat2_xferlen_to_descs(ioat, len); |
652 | /* we need 2x the number of descriptors to cover greater than 3 | 652 | /* we need 2x the number of descriptors to cover greater than 3 |
653 | * sources | 653 | * sources (we need 1 extra source in the q-only continuation |
654 | * case and 3 extra sources in the p+q continuation case. | ||
654 | */ | 655 | */ |
655 | if (src_cnt > 3 || flags & DMA_PREP_CONTINUE) { | 656 | if (src_cnt + dmaf_p_disabled_continue(flags) > 3 || |
657 | (dmaf_continue(flags) && !dmaf_p_disabled_continue(flags))) { | ||
656 | with_ext = 1; | 658 | with_ext = 1; |
657 | num_descs *= 2; | 659 | num_descs *= 2; |
658 | } else | 660 | } else |
@@ -1128,6 +1130,45 @@ static int __devinit ioat3_dma_self_test(struct ioatdma_device *device) | |||
1128 | return 0; | 1130 | return 0; |
1129 | } | 1131 | } |
1130 | 1132 | ||
1133 | static int ioat3_reset_hw(struct ioat_chan_common *chan) | ||
1134 | { | ||
1135 | /* throw away whatever the channel was doing and get it | ||
1136 | * initialized, with ioat3 specific workarounds | ||
1137 | */ | ||
1138 | struct ioatdma_device *device = chan->device; | ||
1139 | struct pci_dev *pdev = device->pdev; | ||
1140 | u32 chanerr; | ||
1141 | u16 dev_id; | ||
1142 | int err; | ||
1143 | |||
1144 | ioat2_quiesce(chan, msecs_to_jiffies(100)); | ||
1145 | |||
1146 | chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET); | ||
1147 | writel(chanerr, chan->reg_base + IOAT_CHANERR_OFFSET); | ||
1148 | |||
1149 | /* -= IOAT ver.3 workarounds =- */ | ||
1150 | /* Write CHANERRMSK_INT with 3E07h to mask out the errors | ||
1151 | * that can cause stability issues for IOAT ver.3, and clear any | ||
1152 | * pending errors | ||
1153 | */ | ||
1154 | pci_write_config_dword(pdev, IOAT_PCI_CHANERRMASK_INT_OFFSET, 0x3e07); | ||
1155 | err = pci_read_config_dword(pdev, IOAT_PCI_CHANERR_INT_OFFSET, &chanerr); | ||
1156 | if (err) { | ||
1157 | dev_err(&pdev->dev, "channel error register unreachable\n"); | ||
1158 | return err; | ||
1159 | } | ||
1160 | pci_write_config_dword(pdev, IOAT_PCI_CHANERR_INT_OFFSET, chanerr); | ||
1161 | |||
1162 | /* Clear DMAUNCERRSTS Cfg-Reg Parity Error status bit | ||
1163 | * (workaround for spurious config parity error after restart) | ||
1164 | */ | ||
1165 | pci_read_config_word(pdev, IOAT_PCI_DEVICE_ID_OFFSET, &dev_id); | ||
1166 | if (dev_id == PCI_DEVICE_ID_INTEL_IOAT_TBG0) | ||
1167 | pci_write_config_dword(pdev, IOAT_PCI_DMAUNCERRSTS_OFFSET, 0x10); | ||
1168 | |||
1169 | return ioat2_reset_sync(chan, msecs_to_jiffies(200)); | ||
1170 | } | ||
1171 | |||
1131 | int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca) | 1172 | int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca) |
1132 | { | 1173 | { |
1133 | struct pci_dev *pdev = device->pdev; | 1174 | struct pci_dev *pdev = device->pdev; |
@@ -1137,10 +1178,10 @@ int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca) | |||
1137 | struct ioat_chan_common *chan; | 1178 | struct ioat_chan_common *chan; |
1138 | bool is_raid_device = false; | 1179 | bool is_raid_device = false; |
1139 | int err; | 1180 | int err; |
1140 | u16 dev_id; | ||
1141 | u32 cap; | 1181 | u32 cap; |
1142 | 1182 | ||
1143 | device->enumerate_channels = ioat2_enumerate_channels; | 1183 | device->enumerate_channels = ioat2_enumerate_channels; |
1184 | device->reset_hw = ioat3_reset_hw; | ||
1144 | device->self_test = ioat3_dma_self_test; | 1185 | device->self_test = ioat3_dma_self_test; |
1145 | dma = &device->common; | 1186 | dma = &device->common; |
1146 | dma->device_prep_dma_memcpy = ioat2_dma_prep_memcpy_lock; | 1187 | dma->device_prep_dma_memcpy = ioat2_dma_prep_memcpy_lock; |
@@ -1216,19 +1257,6 @@ int __devinit ioat3_dma_probe(struct ioatdma_device *device, int dca) | |||
1216 | dma->device_prep_dma_xor_val = NULL; | 1257 | dma->device_prep_dma_xor_val = NULL; |
1217 | #endif | 1258 | #endif |
1218 | 1259 | ||
1219 | /* -= IOAT ver.3 workarounds =- */ | ||
1220 | /* Write CHANERRMSK_INT with 3E07h to mask out the errors | ||
1221 | * that can cause stability issues for IOAT ver.3 | ||
1222 | */ | ||
1223 | pci_write_config_dword(pdev, IOAT_PCI_CHANERRMASK_INT_OFFSET, 0x3e07); | ||
1224 | |||
1225 | /* Clear DMAUNCERRSTS Cfg-Reg Parity Error status bit | ||
1226 | * (workaround for spurious config parity error after restart) | ||
1227 | */ | ||
1228 | pci_read_config_word(pdev, IOAT_PCI_DEVICE_ID_OFFSET, &dev_id); | ||
1229 | if (dev_id == PCI_DEVICE_ID_INTEL_IOAT_TBG0) | ||
1230 | pci_write_config_dword(pdev, IOAT_PCI_DMAUNCERRSTS_OFFSET, 0x10); | ||
1231 | |||
1232 | err = ioat_probe(device); | 1260 | err = ioat_probe(device); |
1233 | if (err) | 1261 | if (err) |
1234 | return err; | 1262 | return err; |
diff --git a/drivers/dma/ioat/registers.h b/drivers/dma/ioat/registers.h index f015ec19670..e8ae63baf58 100644 --- a/drivers/dma/ioat/registers.h +++ b/drivers/dma/ioat/registers.h | |||
@@ -27,6 +27,7 @@ | |||
27 | 27 | ||
28 | #define IOAT_PCI_DEVICE_ID_OFFSET 0x02 | 28 | #define IOAT_PCI_DEVICE_ID_OFFSET 0x02 |
29 | #define IOAT_PCI_DMAUNCERRSTS_OFFSET 0x148 | 29 | #define IOAT_PCI_DMAUNCERRSTS_OFFSET 0x148 |
30 | #define IOAT_PCI_CHANERR_INT_OFFSET 0x180 | ||
30 | #define IOAT_PCI_CHANERRMASK_INT_OFFSET 0x184 | 31 | #define IOAT_PCI_CHANERRMASK_INT_OFFSET 0x184 |
31 | 32 | ||
32 | /* MMIO Device Registers */ | 33 | /* MMIO Device Registers */ |
diff --git a/drivers/dma/shdma.c b/drivers/dma/shdma.c index 2e4a54c8afe..d10cc899c46 100644 --- a/drivers/dma/shdma.c +++ b/drivers/dma/shdma.c | |||
@@ -23,16 +23,19 @@ | |||
23 | #include <linux/dmaengine.h> | 23 | #include <linux/dmaengine.h> |
24 | #include <linux/delay.h> | 24 | #include <linux/delay.h> |
25 | #include <linux/dma-mapping.h> | 25 | #include <linux/dma-mapping.h> |
26 | #include <linux/dmapool.h> | ||
27 | #include <linux/platform_device.h> | 26 | #include <linux/platform_device.h> |
28 | #include <cpu/dma.h> | 27 | #include <cpu/dma.h> |
29 | #include <asm/dma-sh.h> | 28 | #include <asm/dma-sh.h> |
30 | #include "shdma.h" | 29 | #include "shdma.h" |
31 | 30 | ||
32 | /* DMA descriptor control */ | 31 | /* DMA descriptor control */ |
33 | #define DESC_LAST (-1) | 32 | enum sh_dmae_desc_status { |
34 | #define DESC_COMP (1) | 33 | DESC_IDLE, |
35 | #define DESC_NCOMP (0) | 34 | DESC_PREPARED, |
35 | DESC_SUBMITTED, | ||
36 | DESC_COMPLETED, /* completed, have to call callback */ | ||
37 | DESC_WAITING, /* callback called, waiting for ack / re-submit */ | ||
38 | }; | ||
36 | 39 | ||
37 | #define NR_DESCS_PER_CHANNEL 32 | 40 | #define NR_DESCS_PER_CHANNEL 32 |
38 | /* | 41 | /* |
@@ -45,6 +48,8 @@ | |||
45 | */ | 48 | */ |
46 | #define RS_DEFAULT (RS_DUAL) | 49 | #define RS_DEFAULT (RS_DUAL) |
47 | 50 | ||
51 | static void sh_dmae_chan_ld_cleanup(struct sh_dmae_chan *sh_chan, bool all); | ||
52 | |||
48 | #define SH_DMAC_CHAN_BASE(id) (dma_base_addr[id]) | 53 | #define SH_DMAC_CHAN_BASE(id) (dma_base_addr[id]) |
49 | static void sh_dmae_writel(struct sh_dmae_chan *sh_dc, u32 data, u32 reg) | 54 | static void sh_dmae_writel(struct sh_dmae_chan *sh_dc, u32 data, u32 reg) |
50 | { | 55 | { |
@@ -106,11 +111,11 @@ static inline unsigned int calc_xmit_shift(struct sh_dmae_chan *sh_chan) | |||
106 | return ts_shift[(chcr & CHCR_TS_MASK) >> CHCR_TS_SHIFT]; | 111 | return ts_shift[(chcr & CHCR_TS_MASK) >> CHCR_TS_SHIFT]; |
107 | } | 112 | } |
108 | 113 | ||
109 | static void dmae_set_reg(struct sh_dmae_chan *sh_chan, struct sh_dmae_regs hw) | 114 | static void dmae_set_reg(struct sh_dmae_chan *sh_chan, struct sh_dmae_regs *hw) |
110 | { | 115 | { |
111 | sh_dmae_writel(sh_chan, hw.sar, SAR); | 116 | sh_dmae_writel(sh_chan, hw->sar, SAR); |
112 | sh_dmae_writel(sh_chan, hw.dar, DAR); | 117 | sh_dmae_writel(sh_chan, hw->dar, DAR); |
113 | sh_dmae_writel(sh_chan, hw.tcr >> calc_xmit_shift(sh_chan), TCR); | 118 | sh_dmae_writel(sh_chan, hw->tcr >> calc_xmit_shift(sh_chan), TCR); |
114 | } | 119 | } |
115 | 120 | ||
116 | static void dmae_start(struct sh_dmae_chan *sh_chan) | 121 | static void dmae_start(struct sh_dmae_chan *sh_chan) |
@@ -184,8 +189,9 @@ static int dmae_set_dmars(struct sh_dmae_chan *sh_chan, u16 val) | |||
184 | 189 | ||
185 | static dma_cookie_t sh_dmae_tx_submit(struct dma_async_tx_descriptor *tx) | 190 | static dma_cookie_t sh_dmae_tx_submit(struct dma_async_tx_descriptor *tx) |
186 | { | 191 | { |
187 | struct sh_desc *desc = tx_to_sh_desc(tx); | 192 | struct sh_desc *desc = tx_to_sh_desc(tx), *chunk, *last = desc, *c; |
188 | struct sh_dmae_chan *sh_chan = to_sh_chan(tx->chan); | 193 | struct sh_dmae_chan *sh_chan = to_sh_chan(tx->chan); |
194 | dma_async_tx_callback callback = tx->callback; | ||
189 | dma_cookie_t cookie; | 195 | dma_cookie_t cookie; |
190 | 196 | ||
191 | spin_lock_bh(&sh_chan->desc_lock); | 197 | spin_lock_bh(&sh_chan->desc_lock); |
@@ -195,45 +201,53 @@ static dma_cookie_t sh_dmae_tx_submit(struct dma_async_tx_descriptor *tx) | |||
195 | if (cookie < 0) | 201 | if (cookie < 0) |
196 | cookie = 1; | 202 | cookie = 1; |
197 | 203 | ||
198 | /* If desc only in the case of 1 */ | 204 | sh_chan->common.cookie = cookie; |
199 | if (desc->async_tx.cookie != -EBUSY) | 205 | tx->cookie = cookie; |
200 | desc->async_tx.cookie = cookie; | 206 | |
201 | sh_chan->common.cookie = desc->async_tx.cookie; | 207 | /* Mark all chunks of this descriptor as submitted, move to the queue */ |
208 | list_for_each_entry_safe(chunk, c, desc->node.prev, node) { | ||
209 | /* | ||
210 | * All chunks are on the global ld_free, so, we have to find | ||
211 | * the end of the chain ourselves | ||
212 | */ | ||
213 | if (chunk != desc && (chunk->mark == DESC_IDLE || | ||
214 | chunk->async_tx.cookie > 0 || | ||
215 | chunk->async_tx.cookie == -EBUSY || | ||
216 | &chunk->node == &sh_chan->ld_free)) | ||
217 | break; | ||
218 | chunk->mark = DESC_SUBMITTED; | ||
219 | /* Callback goes to the last chunk */ | ||
220 | chunk->async_tx.callback = NULL; | ||
221 | chunk->cookie = cookie; | ||
222 | list_move_tail(&chunk->node, &sh_chan->ld_queue); | ||
223 | last = chunk; | ||
224 | } | ||
225 | |||
226 | last->async_tx.callback = callback; | ||
227 | last->async_tx.callback_param = tx->callback_param; | ||
202 | 228 | ||
203 | list_splice_init(&desc->tx_list, sh_chan->ld_queue.prev); | 229 | dev_dbg(sh_chan->dev, "submit #%d@%p on %d: %x[%d] -> %x\n", |
230 | tx->cookie, &last->async_tx, sh_chan->id, | ||
231 | desc->hw.sar, desc->hw.tcr, desc->hw.dar); | ||
204 | 232 | ||
205 | spin_unlock_bh(&sh_chan->desc_lock); | 233 | spin_unlock_bh(&sh_chan->desc_lock); |
206 | 234 | ||
207 | return cookie; | 235 | return cookie; |
208 | } | 236 | } |
209 | 237 | ||
238 | /* Called with desc_lock held */ | ||
210 | static struct sh_desc *sh_dmae_get_desc(struct sh_dmae_chan *sh_chan) | 239 | static struct sh_desc *sh_dmae_get_desc(struct sh_dmae_chan *sh_chan) |
211 | { | 240 | { |
212 | struct sh_desc *desc, *_desc, *ret = NULL; | 241 | struct sh_desc *desc; |
213 | 242 | ||
214 | spin_lock_bh(&sh_chan->desc_lock); | 243 | list_for_each_entry(desc, &sh_chan->ld_free, node) |
215 | list_for_each_entry_safe(desc, _desc, &sh_chan->ld_free, node) { | 244 | if (desc->mark != DESC_PREPARED) { |
216 | if (async_tx_test_ack(&desc->async_tx)) { | 245 | BUG_ON(desc->mark != DESC_IDLE); |
217 | list_del(&desc->node); | 246 | list_del(&desc->node); |
218 | ret = desc; | 247 | return desc; |
219 | break; | ||
220 | } | 248 | } |
221 | } | ||
222 | spin_unlock_bh(&sh_chan->desc_lock); | ||
223 | |||
224 | return ret; | ||
225 | } | ||
226 | |||
227 | static void sh_dmae_put_desc(struct sh_dmae_chan *sh_chan, struct sh_desc *desc) | ||
228 | { | ||
229 | if (desc) { | ||
230 | spin_lock_bh(&sh_chan->desc_lock); | ||
231 | |||
232 | list_splice_init(&desc->tx_list, &sh_chan->ld_free); | ||
233 | list_add(&desc->node, &sh_chan->ld_free); | ||
234 | 249 | ||
235 | spin_unlock_bh(&sh_chan->desc_lock); | 250 | return NULL; |
236 | } | ||
237 | } | 251 | } |
238 | 252 | ||
239 | static int sh_dmae_alloc_chan_resources(struct dma_chan *chan) | 253 | static int sh_dmae_alloc_chan_resources(struct dma_chan *chan) |
@@ -252,11 +266,10 @@ static int sh_dmae_alloc_chan_resources(struct dma_chan *chan) | |||
252 | dma_async_tx_descriptor_init(&desc->async_tx, | 266 | dma_async_tx_descriptor_init(&desc->async_tx, |
253 | &sh_chan->common); | 267 | &sh_chan->common); |
254 | desc->async_tx.tx_submit = sh_dmae_tx_submit; | 268 | desc->async_tx.tx_submit = sh_dmae_tx_submit; |
255 | desc->async_tx.flags = DMA_CTRL_ACK; | 269 | desc->mark = DESC_IDLE; |
256 | INIT_LIST_HEAD(&desc->tx_list); | ||
257 | sh_dmae_put_desc(sh_chan, desc); | ||
258 | 270 | ||
259 | spin_lock_bh(&sh_chan->desc_lock); | 271 | spin_lock_bh(&sh_chan->desc_lock); |
272 | list_add(&desc->node, &sh_chan->ld_free); | ||
260 | sh_chan->descs_allocated++; | 273 | sh_chan->descs_allocated++; |
261 | } | 274 | } |
262 | spin_unlock_bh(&sh_chan->desc_lock); | 275 | spin_unlock_bh(&sh_chan->desc_lock); |
@@ -273,7 +286,10 @@ static void sh_dmae_free_chan_resources(struct dma_chan *chan) | |||
273 | struct sh_desc *desc, *_desc; | 286 | struct sh_desc *desc, *_desc; |
274 | LIST_HEAD(list); | 287 | LIST_HEAD(list); |
275 | 288 | ||
276 | BUG_ON(!list_empty(&sh_chan->ld_queue)); | 289 | /* Prepared and not submitted descriptors can still be on the queue */ |
290 | if (!list_empty(&sh_chan->ld_queue)) | ||
291 | sh_dmae_chan_ld_cleanup(sh_chan, true); | ||
292 | |||
277 | spin_lock_bh(&sh_chan->desc_lock); | 293 | spin_lock_bh(&sh_chan->desc_lock); |
278 | 294 | ||
279 | list_splice_init(&sh_chan->ld_free, &list); | 295 | list_splice_init(&sh_chan->ld_free, &list); |
@@ -292,6 +308,8 @@ static struct dma_async_tx_descriptor *sh_dmae_prep_memcpy( | |||
292 | struct sh_dmae_chan *sh_chan; | 308 | struct sh_dmae_chan *sh_chan; |
293 | struct sh_desc *first = NULL, *prev = NULL, *new; | 309 | struct sh_desc *first = NULL, *prev = NULL, *new; |
294 | size_t copy_size; | 310 | size_t copy_size; |
311 | LIST_HEAD(tx_list); | ||
312 | int chunks = (len + SH_DMA_TCR_MAX) / (SH_DMA_TCR_MAX + 1); | ||
295 | 313 | ||
296 | if (!chan) | 314 | if (!chan) |
297 | return NULL; | 315 | return NULL; |
@@ -301,108 +319,189 @@ static struct dma_async_tx_descriptor *sh_dmae_prep_memcpy( | |||
301 | 319 | ||
302 | sh_chan = to_sh_chan(chan); | 320 | sh_chan = to_sh_chan(chan); |
303 | 321 | ||
322 | /* Have to lock the whole loop to protect against concurrent release */ | ||
323 | spin_lock_bh(&sh_chan->desc_lock); | ||
324 | |||
325 | /* | ||
326 | * Chaining: | ||
327 | * first descriptor is what user is dealing with in all API calls, its | ||
328 | * cookie is at first set to -EBUSY, at tx-submit to a positive | ||
329 | * number | ||
330 | * if more than one chunk is needed further chunks have cookie = -EINVAL | ||
331 | * the last chunk, if not equal to the first, has cookie = -ENOSPC | ||
332 | * all chunks are linked onto the tx_list head with their .node heads | ||
333 | * only during this function, then they are immediately spliced | ||
334 | * back onto the free list in form of a chain | ||
335 | */ | ||
304 | do { | 336 | do { |
305 | /* Allocate the link descriptor from DMA pool */ | 337 | /* Allocate the link descriptor from the free list */ |
306 | new = sh_dmae_get_desc(sh_chan); | 338 | new = sh_dmae_get_desc(sh_chan); |
307 | if (!new) { | 339 | if (!new) { |
308 | dev_err(sh_chan->dev, | 340 | dev_err(sh_chan->dev, |
309 | "No free memory for link descriptor\n"); | 341 | "No free memory for link descriptor\n"); |
310 | goto err_get_desc; | 342 | list_for_each_entry(new, &tx_list, node) |
343 | new->mark = DESC_IDLE; | ||
344 | list_splice(&tx_list, &sh_chan->ld_free); | ||
345 | spin_unlock_bh(&sh_chan->desc_lock); | ||
346 | return NULL; | ||
311 | } | 347 | } |
312 | 348 | ||
313 | copy_size = min(len, (size_t)SH_DMA_TCR_MAX); | 349 | copy_size = min(len, (size_t)SH_DMA_TCR_MAX + 1); |
314 | 350 | ||
315 | new->hw.sar = dma_src; | 351 | new->hw.sar = dma_src; |
316 | new->hw.dar = dma_dest; | 352 | new->hw.dar = dma_dest; |
317 | new->hw.tcr = copy_size; | 353 | new->hw.tcr = copy_size; |
318 | if (!first) | 354 | if (!first) { |
355 | /* First desc */ | ||
356 | new->async_tx.cookie = -EBUSY; | ||
319 | first = new; | 357 | first = new; |
358 | } else { | ||
359 | /* Other desc - invisible to the user */ | ||
360 | new->async_tx.cookie = -EINVAL; | ||
361 | } | ||
320 | 362 | ||
321 | new->mark = DESC_NCOMP; | 363 | dev_dbg(sh_chan->dev, |
322 | async_tx_ack(&new->async_tx); | 364 | "chaining %u of %u with %p, dst %x, cookie %d\n", |
365 | copy_size, len, &new->async_tx, dma_dest, | ||
366 | new->async_tx.cookie); | ||
367 | |||
368 | new->mark = DESC_PREPARED; | ||
369 | new->async_tx.flags = flags; | ||
370 | new->chunks = chunks--; | ||
323 | 371 | ||
324 | prev = new; | 372 | prev = new; |
325 | len -= copy_size; | 373 | len -= copy_size; |
326 | dma_src += copy_size; | 374 | dma_src += copy_size; |
327 | dma_dest += copy_size; | 375 | dma_dest += copy_size; |
328 | /* Insert the link descriptor to the LD ring */ | 376 | /* Insert the link descriptor to the LD ring */ |
329 | list_add_tail(&new->node, &first->tx_list); | 377 | list_add_tail(&new->node, &tx_list); |
330 | } while (len); | 378 | } while (len); |
331 | 379 | ||
332 | new->async_tx.flags = flags; /* client is in control of this ack */ | 380 | if (new != first) |
333 | new->async_tx.cookie = -EBUSY; /* Last desc */ | 381 | new->async_tx.cookie = -ENOSPC; |
334 | 382 | ||
335 | return &first->async_tx; | 383 | /* Put them back on the free list, so, they don't get lost */ |
384 | list_splice_tail(&tx_list, &sh_chan->ld_free); | ||
336 | 385 | ||
337 | err_get_desc: | 386 | spin_unlock_bh(&sh_chan->desc_lock); |
338 | sh_dmae_put_desc(sh_chan, first); | ||
339 | return NULL; | ||
340 | 387 | ||
388 | return &first->async_tx; | ||
341 | } | 389 | } |
342 | 390 | ||
343 | /* | 391 | static dma_async_tx_callback __ld_cleanup(struct sh_dmae_chan *sh_chan, bool all) |
344 | * sh_chan_ld_cleanup - Clean up link descriptors | ||
345 | * | ||
346 | * This function clean up the ld_queue of DMA channel. | ||
347 | */ | ||
348 | static void sh_dmae_chan_ld_cleanup(struct sh_dmae_chan *sh_chan) | ||
349 | { | 392 | { |
350 | struct sh_desc *desc, *_desc; | 393 | struct sh_desc *desc, *_desc; |
394 | /* Is the "exposed" head of a chain acked? */ | ||
395 | bool head_acked = false; | ||
396 | dma_cookie_t cookie = 0; | ||
397 | dma_async_tx_callback callback = NULL; | ||
398 | void *param = NULL; | ||
351 | 399 | ||
352 | spin_lock_bh(&sh_chan->desc_lock); | 400 | spin_lock_bh(&sh_chan->desc_lock); |
353 | list_for_each_entry_safe(desc, _desc, &sh_chan->ld_queue, node) { | 401 | list_for_each_entry_safe(desc, _desc, &sh_chan->ld_queue, node) { |
354 | dma_async_tx_callback callback; | 402 | struct dma_async_tx_descriptor *tx = &desc->async_tx; |
355 | void *callback_param; | 403 | |
356 | 404 | BUG_ON(tx->cookie > 0 && tx->cookie != desc->cookie); | |
357 | /* non send data */ | 405 | BUG_ON(desc->mark != DESC_SUBMITTED && |
358 | if (desc->mark == DESC_NCOMP) | 406 | desc->mark != DESC_COMPLETED && |
407 | desc->mark != DESC_WAITING); | ||
408 | |||
409 | /* | ||
410 | * queue is ordered, and we use this loop to (1) clean up all | ||
411 | * completed descriptors, and to (2) update descriptor flags of | ||
412 | * any chunks in a (partially) completed chain | ||
413 | */ | ||
414 | if (!all && desc->mark == DESC_SUBMITTED && | ||
415 | desc->cookie != cookie) | ||
359 | break; | 416 | break; |
360 | 417 | ||
361 | /* send data sesc */ | 418 | if (tx->cookie > 0) |
362 | callback = desc->async_tx.callback; | 419 | cookie = tx->cookie; |
363 | callback_param = desc->async_tx.callback_param; | ||
364 | 420 | ||
365 | /* Remove from ld_queue list */ | 421 | if (desc->mark == DESC_COMPLETED && desc->chunks == 1) { |
366 | list_splice_init(&desc->tx_list, &sh_chan->ld_free); | 422 | BUG_ON(sh_chan->completed_cookie != desc->cookie - 1); |
423 | sh_chan->completed_cookie = desc->cookie; | ||
424 | } | ||
367 | 425 | ||
368 | dev_dbg(sh_chan->dev, "link descriptor %p will be recycle.\n", | 426 | /* Call callback on the last chunk */ |
369 | desc); | 427 | if (desc->mark == DESC_COMPLETED && tx->callback) { |
428 | desc->mark = DESC_WAITING; | ||
429 | callback = tx->callback; | ||
430 | param = tx->callback_param; | ||
431 | dev_dbg(sh_chan->dev, "descriptor #%d@%p on %d callback\n", | ||
432 | tx->cookie, tx, sh_chan->id); | ||
433 | BUG_ON(desc->chunks != 1); | ||
434 | break; | ||
435 | } | ||
370 | 436 | ||
371 | list_move(&desc->node, &sh_chan->ld_free); | 437 | if (tx->cookie > 0 || tx->cookie == -EBUSY) { |
372 | /* Run the link descriptor callback function */ | 438 | if (desc->mark == DESC_COMPLETED) { |
373 | if (callback) { | 439 | BUG_ON(tx->cookie < 0); |
374 | spin_unlock_bh(&sh_chan->desc_lock); | 440 | desc->mark = DESC_WAITING; |
375 | dev_dbg(sh_chan->dev, "link descriptor %p callback\n", | 441 | } |
376 | desc); | 442 | head_acked = async_tx_test_ack(tx); |
377 | callback(callback_param); | 443 | } else { |
378 | spin_lock_bh(&sh_chan->desc_lock); | 444 | switch (desc->mark) { |
445 | case DESC_COMPLETED: | ||
446 | desc->mark = DESC_WAITING; | ||
447 | /* Fall through */ | ||
448 | case DESC_WAITING: | ||
449 | if (head_acked) | ||
450 | async_tx_ack(&desc->async_tx); | ||
451 | } | ||
452 | } | ||
453 | |||
454 | dev_dbg(sh_chan->dev, "descriptor %p #%d completed.\n", | ||
455 | tx, tx->cookie); | ||
456 | |||
457 | if (((desc->mark == DESC_COMPLETED || | ||
458 | desc->mark == DESC_WAITING) && | ||
459 | async_tx_test_ack(&desc->async_tx)) || all) { | ||
460 | /* Remove from ld_queue list */ | ||
461 | desc->mark = DESC_IDLE; | ||
462 | list_move(&desc->node, &sh_chan->ld_free); | ||
379 | } | 463 | } |
380 | } | 464 | } |
381 | spin_unlock_bh(&sh_chan->desc_lock); | 465 | spin_unlock_bh(&sh_chan->desc_lock); |
466 | |||
467 | if (callback) | ||
468 | callback(param); | ||
469 | |||
470 | return callback; | ||
471 | } | ||
472 | |||
473 | /* | ||
474 | * sh_chan_ld_cleanup - Clean up link descriptors | ||
475 | * | ||
476 | * This function cleans up the ld_queue of DMA channel. | ||
477 | */ | ||
478 | static void sh_dmae_chan_ld_cleanup(struct sh_dmae_chan *sh_chan, bool all) | ||
479 | { | ||
480 | while (__ld_cleanup(sh_chan, all)) | ||
481 | ; | ||
382 | } | 482 | } |
383 | 483 | ||
384 | static void sh_chan_xfer_ld_queue(struct sh_dmae_chan *sh_chan) | 484 | static void sh_chan_xfer_ld_queue(struct sh_dmae_chan *sh_chan) |
385 | { | 485 | { |
386 | struct list_head *ld_node; | 486 | struct sh_desc *sd; |
387 | struct sh_dmae_regs hw; | ||
388 | 487 | ||
488 | spin_lock_bh(&sh_chan->desc_lock); | ||
389 | /* DMA work check */ | 489 | /* DMA work check */ |
390 | if (dmae_is_busy(sh_chan)) | 490 | if (dmae_is_busy(sh_chan)) { |
491 | spin_unlock_bh(&sh_chan->desc_lock); | ||
391 | return; | 492 | return; |
493 | } | ||
392 | 494 | ||
393 | /* Find the first un-transfer desciptor */ | 495 | /* Find the first un-transfer desciptor */ |
394 | for (ld_node = sh_chan->ld_queue.next; | 496 | list_for_each_entry(sd, &sh_chan->ld_queue, node) |
395 | (ld_node != &sh_chan->ld_queue) | 497 | if (sd->mark == DESC_SUBMITTED) { |
396 | && (to_sh_desc(ld_node)->mark == DESC_COMP); | 498 | /* Get the ld start address from ld_queue */ |
397 | ld_node = ld_node->next) | 499 | dmae_set_reg(sh_chan, &sd->hw); |
398 | cpu_relax(); | 500 | dmae_start(sh_chan); |
399 | 501 | break; | |
400 | if (ld_node != &sh_chan->ld_queue) { | 502 | } |
401 | /* Get the ld start address from ld_queue */ | 503 | |
402 | hw = to_sh_desc(ld_node)->hw; | 504 | spin_unlock_bh(&sh_chan->desc_lock); |
403 | dmae_set_reg(sh_chan, hw); | ||
404 | dmae_start(sh_chan); | ||
405 | } | ||
406 | } | 505 | } |
407 | 506 | ||
408 | static void sh_dmae_memcpy_issue_pending(struct dma_chan *chan) | 507 | static void sh_dmae_memcpy_issue_pending(struct dma_chan *chan) |
@@ -420,12 +519,11 @@ static enum dma_status sh_dmae_is_complete(struct dma_chan *chan, | |||
420 | dma_cookie_t last_used; | 519 | dma_cookie_t last_used; |
421 | dma_cookie_t last_complete; | 520 | dma_cookie_t last_complete; |
422 | 521 | ||
423 | sh_dmae_chan_ld_cleanup(sh_chan); | 522 | sh_dmae_chan_ld_cleanup(sh_chan, false); |
424 | 523 | ||
425 | last_used = chan->cookie; | 524 | last_used = chan->cookie; |
426 | last_complete = sh_chan->completed_cookie; | 525 | last_complete = sh_chan->completed_cookie; |
427 | if (last_complete == -EBUSY) | 526 | BUG_ON(last_complete < 0); |
428 | last_complete = last_used; | ||
429 | 527 | ||
430 | if (done) | 528 | if (done) |
431 | *done = last_complete; | 529 | *done = last_complete; |
@@ -480,11 +578,13 @@ static irqreturn_t sh_dmae_err(int irq, void *data) | |||
480 | err = sh_dmae_rst(0); | 578 | err = sh_dmae_rst(0); |
481 | if (err) | 579 | if (err) |
482 | return err; | 580 | return err; |
581 | #ifdef SH_DMAC_BASE1 | ||
483 | if (shdev->pdata.mode & SHDMA_DMAOR1) { | 582 | if (shdev->pdata.mode & SHDMA_DMAOR1) { |
484 | err = sh_dmae_rst(1); | 583 | err = sh_dmae_rst(1); |
485 | if (err) | 584 | if (err) |
486 | return err; | 585 | return err; |
487 | } | 586 | } |
587 | #endif | ||
488 | disable_irq(irq); | 588 | disable_irq(irq); |
489 | return IRQ_HANDLED; | 589 | return IRQ_HANDLED; |
490 | } | 590 | } |
@@ -494,35 +594,25 @@ static irqreturn_t sh_dmae_err(int irq, void *data) | |||
494 | static void dmae_do_tasklet(unsigned long data) | 594 | static void dmae_do_tasklet(unsigned long data) |
495 | { | 595 | { |
496 | struct sh_dmae_chan *sh_chan = (struct sh_dmae_chan *)data; | 596 | struct sh_dmae_chan *sh_chan = (struct sh_dmae_chan *)data; |
497 | struct sh_desc *desc, *_desc, *cur_desc = NULL; | 597 | struct sh_desc *desc; |
498 | u32 sar_buf = sh_dmae_readl(sh_chan, SAR); | 598 | u32 sar_buf = sh_dmae_readl(sh_chan, SAR); |
499 | 599 | ||
500 | list_for_each_entry_safe(desc, _desc, | 600 | spin_lock(&sh_chan->desc_lock); |
501 | &sh_chan->ld_queue, node) { | 601 | list_for_each_entry(desc, &sh_chan->ld_queue, node) { |
502 | if ((desc->hw.sar + desc->hw.tcr) == sar_buf) { | 602 | if ((desc->hw.sar + desc->hw.tcr) == sar_buf && |
503 | cur_desc = desc; | 603 | desc->mark == DESC_SUBMITTED) { |
604 | dev_dbg(sh_chan->dev, "done #%d@%p dst %u\n", | ||
605 | desc->async_tx.cookie, &desc->async_tx, | ||
606 | desc->hw.dar); | ||
607 | desc->mark = DESC_COMPLETED; | ||
504 | break; | 608 | break; |
505 | } | 609 | } |
506 | } | 610 | } |
611 | spin_unlock(&sh_chan->desc_lock); | ||
507 | 612 | ||
508 | if (cur_desc) { | ||
509 | switch (cur_desc->async_tx.cookie) { | ||
510 | case 0: /* other desc data */ | ||
511 | break; | ||
512 | case -EBUSY: /* last desc */ | ||
513 | sh_chan->completed_cookie = | ||
514 | cur_desc->async_tx.cookie; | ||
515 | break; | ||
516 | default: /* first desc ( 0 < )*/ | ||
517 | sh_chan->completed_cookie = | ||
518 | cur_desc->async_tx.cookie - 1; | ||
519 | break; | ||
520 | } | ||
521 | cur_desc->mark = DESC_COMP; | ||
522 | } | ||
523 | /* Next desc */ | 613 | /* Next desc */ |
524 | sh_chan_xfer_ld_queue(sh_chan); | 614 | sh_chan_xfer_ld_queue(sh_chan); |
525 | sh_dmae_chan_ld_cleanup(sh_chan); | 615 | sh_dmae_chan_ld_cleanup(sh_chan, false); |
526 | } | 616 | } |
527 | 617 | ||
528 | static unsigned int get_dmae_irq(unsigned int id) | 618 | static unsigned int get_dmae_irq(unsigned int id) |
diff --git a/drivers/dma/shdma.h b/drivers/dma/shdma.h index 60b81e529b4..108f1cffb6f 100644 --- a/drivers/dma/shdma.h +++ b/drivers/dma/shdma.h | |||
@@ -13,9 +13,9 @@ | |||
13 | #ifndef __DMA_SHDMA_H | 13 | #ifndef __DMA_SHDMA_H |
14 | #define __DMA_SHDMA_H | 14 | #define __DMA_SHDMA_H |
15 | 15 | ||
16 | #include <linux/device.h> | ||
17 | #include <linux/dmapool.h> | ||
18 | #include <linux/dmaengine.h> | 16 | #include <linux/dmaengine.h> |
17 | #include <linux/interrupt.h> | ||
18 | #include <linux/list.h> | ||
19 | 19 | ||
20 | #define SH_DMA_TCR_MAX 0x00FFFFFF /* 16MB */ | 20 | #define SH_DMA_TCR_MAX 0x00FFFFFF /* 16MB */ |
21 | 21 | ||
@@ -26,13 +26,16 @@ struct sh_dmae_regs { | |||
26 | }; | 26 | }; |
27 | 27 | ||
28 | struct sh_desc { | 28 | struct sh_desc { |
29 | struct list_head tx_list; | ||
30 | struct sh_dmae_regs hw; | 29 | struct sh_dmae_regs hw; |
31 | struct list_head node; | 30 | struct list_head node; |
32 | struct dma_async_tx_descriptor async_tx; | 31 | struct dma_async_tx_descriptor async_tx; |
32 | dma_cookie_t cookie; | ||
33 | int chunks; | ||
33 | int mark; | 34 | int mark; |
34 | }; | 35 | }; |
35 | 36 | ||
37 | struct device; | ||
38 | |||
36 | struct sh_dmae_chan { | 39 | struct sh_dmae_chan { |
37 | dma_cookie_t completed_cookie; /* The maximum cookie completed */ | 40 | dma_cookie_t completed_cookie; /* The maximum cookie completed */ |
38 | spinlock_t desc_lock; /* Descriptor operation lock */ | 41 | spinlock_t desc_lock; /* Descriptor operation lock */ |
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index c5facd951dd..000dc67b85b 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c | |||
@@ -197,7 +197,7 @@ static int amd64_get_scrub_rate(struct mem_ctl_info *mci, u32 *bw) | |||
197 | edac_printk(KERN_DEBUG, EDAC_MC, | 197 | edac_printk(KERN_DEBUG, EDAC_MC, |
198 | "pci-read, sdram scrub control value: %d \n", scrubval); | 198 | "pci-read, sdram scrub control value: %d \n", scrubval); |
199 | 199 | ||
200 | for (i = 0; ARRAY_SIZE(scrubrates); i++) { | 200 | for (i = 0; i < ARRAY_SIZE(scrubrates); i++) { |
201 | if (scrubrates[i].scrubval == scrubval) { | 201 | if (scrubrates[i].scrubval == scrubval) { |
202 | *bw = scrubrates[i].bandwidth; | 202 | *bw = scrubrates[i].bandwidth; |
203 | status = 0; | 203 | status = 0; |
diff --git a/drivers/edac/i5000_edac.c b/drivers/edac/i5000_edac.c index 77a9579d716..adc10a2ac5f 100644 --- a/drivers/edac/i5000_edac.c +++ b/drivers/edac/i5000_edac.c | |||
@@ -577,7 +577,13 @@ static void i5000_process_nonfatal_error_info(struct mem_ctl_info *mci, | |||
577 | debugf0("\tUncorrected bits= 0x%x\n", ue_errors); | 577 | debugf0("\tUncorrected bits= 0x%x\n", ue_errors); |
578 | 578 | ||
579 | branch = EXTRACT_FBDCHAN_INDX(info->ferr_nf_fbd); | 579 | branch = EXTRACT_FBDCHAN_INDX(info->ferr_nf_fbd); |
580 | channel = branch; | 580 | |
581 | /* | ||
582 | * According with i5000 datasheet, bit 28 has no significance | ||
583 | * for errors M4Err-M12Err and M17Err-M21Err, on FERR_NF_FBD | ||
584 | */ | ||
585 | channel = branch & 2; | ||
586 | |||
581 | bank = NREC_BANK(info->nrecmema); | 587 | bank = NREC_BANK(info->nrecmema); |
582 | rank = NREC_RANK(info->nrecmema); | 588 | rank = NREC_RANK(info->nrecmema); |
583 | rdwr = NREC_RDWR(info->nrecmema); | 589 | rdwr = NREC_RDWR(info->nrecmema); |
diff --git a/drivers/firewire/Kconfig b/drivers/firewire/Kconfig index 13efcd36207..a9371b36a9b 100644 --- a/drivers/firewire/Kconfig +++ b/drivers/firewire/Kconfig | |||
@@ -1,5 +1,10 @@ | |||
1 | menu "IEEE 1394 (FireWire) support" | ||
2 | depends on PCI || BROKEN | ||
3 | # firewire-core does not depend on PCI but is | ||
4 | # not useful without PCI controller driver | ||
5 | |||
1 | comment "You can enable one or both FireWire driver stacks." | 6 | comment "You can enable one or both FireWire driver stacks." |
2 | comment "See the help texts for more information." | 7 | comment "The newer stack is recommended." |
3 | 8 | ||
4 | config FIREWIRE | 9 | config FIREWIRE |
5 | tristate "FireWire driver stack" | 10 | tristate "FireWire driver stack" |
@@ -15,16 +20,6 @@ config FIREWIRE | |||
15 | To compile this driver as a module, say M here: the module will be | 20 | To compile this driver as a module, say M here: the module will be |
16 | called firewire-core. | 21 | called firewire-core. |
17 | 22 | ||
18 | This module functionally replaces ieee1394, raw1394, and video1394. | ||
19 | To access it from application programs, you generally need at least | ||
20 | libraw1394 v2. IIDC/DCAM applications need libdc1394 v2. | ||
21 | No libraries are required to access storage devices through the | ||
22 | firewire-sbp2 driver. | ||
23 | |||
24 | NOTE: | ||
25 | FireWire audio devices currently require the old drivers (ieee1394, | ||
26 | ohci1394, raw1394). | ||
27 | |||
28 | config FIREWIRE_OHCI | 23 | config FIREWIRE_OHCI |
29 | tristate "OHCI-1394 controllers" | 24 | tristate "OHCI-1394 controllers" |
30 | depends on PCI && FIREWIRE | 25 | depends on PCI && FIREWIRE |
@@ -34,22 +29,7 @@ config FIREWIRE_OHCI | |||
34 | is the only chipset in use, so say Y here. | 29 | is the only chipset in use, so say Y here. |
35 | 30 | ||
36 | To compile this driver as a module, say M here: The module will be | 31 | To compile this driver as a module, say M here: The module will be |
37 | called firewire-ohci. It replaces ohci1394 of the classic IEEE 1394 | 32 | called firewire-ohci. |
38 | stack. | ||
39 | |||
40 | NOTE: | ||
41 | If you want to install firewire-ohci and ohci1394 together, you | ||
42 | should configure them only as modules and blacklist the driver(s) | ||
43 | which you don't want to have auto-loaded. Add either | ||
44 | |||
45 | blacklist firewire-ohci | ||
46 | or | ||
47 | blacklist ohci1394 | ||
48 | blacklist video1394 | ||
49 | blacklist dv1394 | ||
50 | |||
51 | to /etc/modprobe.conf or /etc/modprobe.d/* and update modprobe.conf | ||
52 | depending on your distribution. | ||
53 | 33 | ||
54 | config FIREWIRE_OHCI_DEBUG | 34 | config FIREWIRE_OHCI_DEBUG |
55 | bool | 35 | bool |
@@ -66,8 +46,7 @@ config FIREWIRE_SBP2 | |||
66 | like scanners. | 46 | like scanners. |
67 | 47 | ||
68 | To compile this driver as a module, say M here: The module will be | 48 | To compile this driver as a module, say M here: The module will be |
69 | called firewire-sbp2. It replaces sbp2 of the classic IEEE 1394 | 49 | called firewire-sbp2. |
70 | stack. | ||
71 | 50 | ||
72 | You should also enable support for disks, CD-ROMs, etc. in the SCSI | 51 | You should also enable support for disks, CD-ROMs, etc. in the SCSI |
73 | configuration section. | 52 | configuration section. |
@@ -83,5 +62,8 @@ config FIREWIRE_NET | |||
83 | NOTE, this driver is not stable yet! | 62 | NOTE, this driver is not stable yet! |
84 | 63 | ||
85 | To compile this driver as a module, say M here: The module will be | 64 | To compile this driver as a module, say M here: The module will be |
86 | called firewire-net. It replaces eth1394 of the classic IEEE 1394 | 65 | called firewire-net. |
87 | stack. | 66 | |
67 | source "drivers/ieee1394/Kconfig" | ||
68 | |||
69 | endmenu | ||
diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c index 231e6ee5ba4..e6d63849e78 100644 --- a/drivers/firewire/core-cdev.c +++ b/drivers/firewire/core-cdev.c | |||
@@ -601,8 +601,9 @@ static void release_request(struct client *client, | |||
601 | struct inbound_transaction_resource *r = container_of(resource, | 601 | struct inbound_transaction_resource *r = container_of(resource, |
602 | struct inbound_transaction_resource, resource); | 602 | struct inbound_transaction_resource, resource); |
603 | 603 | ||
604 | fw_send_response(client->device->card, r->request, | 604 | if (r->request) |
605 | RCODE_CONFLICT_ERROR); | 605 | fw_send_response(client->device->card, r->request, |
606 | RCODE_CONFLICT_ERROR); | ||
606 | kfree(r); | 607 | kfree(r); |
607 | } | 608 | } |
608 | 609 | ||
@@ -645,7 +646,8 @@ static void handle_request(struct fw_card *card, struct fw_request *request, | |||
645 | failed: | 646 | failed: |
646 | kfree(r); | 647 | kfree(r); |
647 | kfree(e); | 648 | kfree(e); |
648 | fw_send_response(card, request, RCODE_CONFLICT_ERROR); | 649 | if (request) |
650 | fw_send_response(card, request, RCODE_CONFLICT_ERROR); | ||
649 | } | 651 | } |
650 | 652 | ||
651 | static void release_address_handler(struct client *client, | 653 | static void release_address_handler(struct client *client, |
@@ -715,15 +717,18 @@ static int ioctl_send_response(struct client *client, void *buffer) | |||
715 | 717 | ||
716 | r = container_of(resource, struct inbound_transaction_resource, | 718 | r = container_of(resource, struct inbound_transaction_resource, |
717 | resource); | 719 | resource); |
718 | if (request->length < r->length) | 720 | if (r->request) { |
719 | r->length = request->length; | 721 | if (request->length < r->length) |
720 | 722 | r->length = request->length; | |
721 | if (copy_from_user(r->data, u64_to_uptr(request->data), r->length)) { | 723 | if (copy_from_user(r->data, u64_to_uptr(request->data), |
722 | ret = -EFAULT; | 724 | r->length)) { |
723 | goto out; | 725 | ret = -EFAULT; |
726 | kfree(r->request); | ||
727 | goto out; | ||
728 | } | ||
729 | fw_send_response(client->device->card, r->request, | ||
730 | request->rcode); | ||
724 | } | 731 | } |
725 | |||
726 | fw_send_response(client->device->card, r->request, request->rcode); | ||
727 | out: | 732 | out: |
728 | kfree(r); | 733 | kfree(r); |
729 | 734 | ||
diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c index 842739df23e..495849eb13c 100644 --- a/drivers/firewire/core-transaction.c +++ b/drivers/firewire/core-transaction.c | |||
@@ -432,14 +432,20 @@ static struct fw_address_handler *lookup_overlapping_address_handler( | |||
432 | return NULL; | 432 | return NULL; |
433 | } | 433 | } |
434 | 434 | ||
435 | static bool is_enclosing_handler(struct fw_address_handler *handler, | ||
436 | unsigned long long offset, size_t length) | ||
437 | { | ||
438 | return handler->offset <= offset && | ||
439 | offset + length <= handler->offset + handler->length; | ||
440 | } | ||
441 | |||
435 | static struct fw_address_handler *lookup_enclosing_address_handler( | 442 | static struct fw_address_handler *lookup_enclosing_address_handler( |
436 | struct list_head *list, unsigned long long offset, size_t length) | 443 | struct list_head *list, unsigned long long offset, size_t length) |
437 | { | 444 | { |
438 | struct fw_address_handler *handler; | 445 | struct fw_address_handler *handler; |
439 | 446 | ||
440 | list_for_each_entry(handler, list, link) { | 447 | list_for_each_entry(handler, list, link) { |
441 | if (handler->offset <= offset && | 448 | if (is_enclosing_handler(handler, offset, length)) |
442 | offset + length <= handler->offset + handler->length) | ||
443 | return handler; | 449 | return handler; |
444 | } | 450 | } |
445 | 451 | ||
@@ -465,6 +471,12 @@ const struct fw_address_region fw_unit_space_region = | |||
465 | { .start = 0xfffff0000900ULL, .end = 0x1000000000000ULL, }; | 471 | { .start = 0xfffff0000900ULL, .end = 0x1000000000000ULL, }; |
466 | #endif /* 0 */ | 472 | #endif /* 0 */ |
467 | 473 | ||
474 | static bool is_in_fcp_region(u64 offset, size_t length) | ||
475 | { | ||
476 | return offset >= (CSR_REGISTER_BASE | CSR_FCP_COMMAND) && | ||
477 | offset + length <= (CSR_REGISTER_BASE | CSR_FCP_END); | ||
478 | } | ||
479 | |||
468 | /** | 480 | /** |
469 | * fw_core_add_address_handler - register for incoming requests | 481 | * fw_core_add_address_handler - register for incoming requests |
470 | * @handler: callback | 482 | * @handler: callback |
@@ -477,8 +489,11 @@ const struct fw_address_region fw_unit_space_region = | |||
477 | * give the details of the particular request. | 489 | * give the details of the particular request. |
478 | * | 490 | * |
479 | * Return value: 0 on success, non-zero otherwise. | 491 | * Return value: 0 on success, non-zero otherwise. |
492 | * | ||
480 | * The start offset of the handler's address region is determined by | 493 | * The start offset of the handler's address region is determined by |
481 | * fw_core_add_address_handler() and is returned in handler->offset. | 494 | * fw_core_add_address_handler() and is returned in handler->offset. |
495 | * | ||
496 | * Address allocations are exclusive, except for the FCP registers. | ||
482 | */ | 497 | */ |
483 | int fw_core_add_address_handler(struct fw_address_handler *handler, | 498 | int fw_core_add_address_handler(struct fw_address_handler *handler, |
484 | const struct fw_address_region *region) | 499 | const struct fw_address_region *region) |
@@ -498,10 +513,12 @@ int fw_core_add_address_handler(struct fw_address_handler *handler, | |||
498 | 513 | ||
499 | handler->offset = region->start; | 514 | handler->offset = region->start; |
500 | while (handler->offset + handler->length <= region->end) { | 515 | while (handler->offset + handler->length <= region->end) { |
501 | other = | 516 | if (is_in_fcp_region(handler->offset, handler->length)) |
502 | lookup_overlapping_address_handler(&address_handler_list, | 517 | other = NULL; |
503 | handler->offset, | 518 | else |
504 | handler->length); | 519 | other = lookup_overlapping_address_handler |
520 | (&address_handler_list, | ||
521 | handler->offset, handler->length); | ||
505 | if (other != NULL) { | 522 | if (other != NULL) { |
506 | handler->offset += other->length; | 523 | handler->offset += other->length; |
507 | } else { | 524 | } else { |
@@ -668,6 +685,9 @@ static struct fw_request *allocate_request(struct fw_packet *p) | |||
668 | void fw_send_response(struct fw_card *card, | 685 | void fw_send_response(struct fw_card *card, |
669 | struct fw_request *request, int rcode) | 686 | struct fw_request *request, int rcode) |
670 | { | 687 | { |
688 | if (WARN_ONCE(!request, "invalid for FCP address handlers")) | ||
689 | return; | ||
690 | |||
671 | /* unified transaction or broadcast transaction: don't respond */ | 691 | /* unified transaction or broadcast transaction: don't respond */ |
672 | if (request->ack != ACK_PENDING || | 692 | if (request->ack != ACK_PENDING || |
673 | HEADER_DESTINATION_IS_BROADCAST(request->request_header[0])) { | 693 | HEADER_DESTINATION_IS_BROADCAST(request->request_header[0])) { |
@@ -686,26 +706,15 @@ void fw_send_response(struct fw_card *card, | |||
686 | } | 706 | } |
687 | EXPORT_SYMBOL(fw_send_response); | 707 | EXPORT_SYMBOL(fw_send_response); |
688 | 708 | ||
689 | void fw_core_handle_request(struct fw_card *card, struct fw_packet *p) | 709 | static void handle_exclusive_region_request(struct fw_card *card, |
710 | struct fw_packet *p, | ||
711 | struct fw_request *request, | ||
712 | unsigned long long offset) | ||
690 | { | 713 | { |
691 | struct fw_address_handler *handler; | 714 | struct fw_address_handler *handler; |
692 | struct fw_request *request; | ||
693 | unsigned long long offset; | ||
694 | unsigned long flags; | 715 | unsigned long flags; |
695 | int tcode, destination, source; | 716 | int tcode, destination, source; |
696 | 717 | ||
697 | if (p->ack != ACK_PENDING && p->ack != ACK_COMPLETE) | ||
698 | return; | ||
699 | |||
700 | request = allocate_request(p); | ||
701 | if (request == NULL) { | ||
702 | /* FIXME: send statically allocated busy packet. */ | ||
703 | return; | ||
704 | } | ||
705 | |||
706 | offset = | ||
707 | ((unsigned long long) | ||
708 | HEADER_GET_OFFSET_HIGH(p->header[1]) << 32) | p->header[2]; | ||
709 | tcode = HEADER_GET_TCODE(p->header[0]); | 718 | tcode = HEADER_GET_TCODE(p->header[0]); |
710 | destination = HEADER_GET_DESTINATION(p->header[0]); | 719 | destination = HEADER_GET_DESTINATION(p->header[0]); |
711 | source = HEADER_GET_SOURCE(p->header[1]); | 720 | source = HEADER_GET_SOURCE(p->header[1]); |
@@ -732,6 +741,73 @@ void fw_core_handle_request(struct fw_card *card, struct fw_packet *p) | |||
732 | request->data, request->length, | 741 | request->data, request->length, |
733 | handler->callback_data); | 742 | handler->callback_data); |
734 | } | 743 | } |
744 | |||
745 | static void handle_fcp_region_request(struct fw_card *card, | ||
746 | struct fw_packet *p, | ||
747 | struct fw_request *request, | ||
748 | unsigned long long offset) | ||
749 | { | ||
750 | struct fw_address_handler *handler; | ||
751 | unsigned long flags; | ||
752 | int tcode, destination, source; | ||
753 | |||
754 | if ((offset != (CSR_REGISTER_BASE | CSR_FCP_COMMAND) && | ||
755 | offset != (CSR_REGISTER_BASE | CSR_FCP_RESPONSE)) || | ||
756 | request->length > 0x200) { | ||
757 | fw_send_response(card, request, RCODE_ADDRESS_ERROR); | ||
758 | |||
759 | return; | ||
760 | } | ||
761 | |||
762 | tcode = HEADER_GET_TCODE(p->header[0]); | ||
763 | destination = HEADER_GET_DESTINATION(p->header[0]); | ||
764 | source = HEADER_GET_SOURCE(p->header[1]); | ||
765 | |||
766 | if (tcode != TCODE_WRITE_QUADLET_REQUEST && | ||
767 | tcode != TCODE_WRITE_BLOCK_REQUEST) { | ||
768 | fw_send_response(card, request, RCODE_TYPE_ERROR); | ||
769 | |||
770 | return; | ||
771 | } | ||
772 | |||
773 | spin_lock_irqsave(&address_handler_lock, flags); | ||
774 | list_for_each_entry(handler, &address_handler_list, link) { | ||
775 | if (is_enclosing_handler(handler, offset, request->length)) | ||
776 | handler->address_callback(card, NULL, tcode, | ||
777 | destination, source, | ||
778 | p->generation, p->speed, | ||
779 | offset, request->data, | ||
780 | request->length, | ||
781 | handler->callback_data); | ||
782 | } | ||
783 | spin_unlock_irqrestore(&address_handler_lock, flags); | ||
784 | |||
785 | fw_send_response(card, request, RCODE_COMPLETE); | ||
786 | } | ||
787 | |||
788 | void fw_core_handle_request(struct fw_card *card, struct fw_packet *p) | ||
789 | { | ||
790 | struct fw_request *request; | ||
791 | unsigned long long offset; | ||
792 | |||
793 | if (p->ack != ACK_PENDING && p->ack != ACK_COMPLETE) | ||
794 | return; | ||
795 | |||
796 | request = allocate_request(p); | ||
797 | if (request == NULL) { | ||
798 | /* FIXME: send statically allocated busy packet. */ | ||
799 | return; | ||
800 | } | ||
801 | |||
802 | offset = ((u64)HEADER_GET_OFFSET_HIGH(p->header[1]) << 32) | | ||
803 | p->header[2]; | ||
804 | |||
805 | if (!is_in_fcp_region(offset, request->length)) | ||
806 | handle_exclusive_region_request(card, p, request, offset); | ||
807 | else | ||
808 | handle_fcp_region_request(card, p, request, offset); | ||
809 | |||
810 | } | ||
735 | EXPORT_SYMBOL(fw_core_handle_request); | 811 | EXPORT_SYMBOL(fw_core_handle_request); |
736 | 812 | ||
737 | void fw_core_handle_response(struct fw_card *card, struct fw_packet *p) | 813 | void fw_core_handle_response(struct fw_card *card, struct fw_packet *p) |
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c index 96768e16086..a61571c63c5 100644 --- a/drivers/firewire/ohci.c +++ b/drivers/firewire/ohci.c | |||
@@ -2226,7 +2226,6 @@ static int ohci_queue_iso_receive_dualbuffer(struct fw_iso_context *base, | |||
2226 | if (rest == 0) | 2226 | if (rest == 0) |
2227 | return -EINVAL; | 2227 | return -EINVAL; |
2228 | 2228 | ||
2229 | /* FIXME: make packet-per-buffer/dual-buffer a context option */ | ||
2230 | while (rest > 0) { | 2229 | while (rest > 0) { |
2231 | d = context_get_descriptors(&ctx->context, | 2230 | d = context_get_descriptors(&ctx->context, |
2232 | z + header_z, &d_bus); | 2231 | z + header_z, &d_bus); |
@@ -2470,7 +2469,10 @@ static int __devinit pci_probe(struct pci_dev *dev, | |||
2470 | } | 2469 | } |
2471 | 2470 | ||
2472 | version = reg_read(ohci, OHCI1394_Version) & 0x00ff00ff; | 2471 | version = reg_read(ohci, OHCI1394_Version) & 0x00ff00ff; |
2472 | #if 0 | ||
2473 | /* FIXME: make it a context option or remove dual-buffer mode */ | ||
2473 | ohci->use_dualbuffer = version >= OHCI_VERSION_1_1; | 2474 | ohci->use_dualbuffer = version >= OHCI_VERSION_1_1; |
2475 | #endif | ||
2474 | 2476 | ||
2475 | /* dual-buffer mode is broken if more than one IR context is active */ | 2477 | /* dual-buffer mode is broken if more than one IR context is active */ |
2476 | if (dev->vendor == PCI_VENDOR_ID_AGERE && | 2478 | if (dev->vendor == PCI_VENDOR_ID_AGERE && |
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig index a019b49ecc9..1f1d88ae68d 100644 --- a/drivers/gpio/Kconfig +++ b/drivers/gpio/Kconfig | |||
@@ -172,6 +172,15 @@ config GPIO_ADP5520 | |||
172 | To compile this driver as a module, choose M here: the module will | 172 | To compile this driver as a module, choose M here: the module will |
173 | be called adp5520-gpio. | 173 | be called adp5520-gpio. |
174 | 174 | ||
175 | config GPIO_ADP5588 | ||
176 | tristate "ADP5588 I2C GPIO expander" | ||
177 | depends on I2C | ||
178 | help | ||
179 | This option enables support for 18 GPIOs found | ||
180 | on Analog Devices ADP5588 GPIO Expanders. | ||
181 | To compile this driver as a module, choose M here: the module will be | ||
182 | called adp5588-gpio. | ||
183 | |||
175 | comment "PCI GPIO expanders:" | 184 | comment "PCI GPIO expanders:" |
176 | 185 | ||
177 | config GPIO_CS5535 | 186 | config GPIO_CS5535 |
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index 52fe4cf734c..48687238edb 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile | |||
@@ -5,6 +5,7 @@ ccflags-$(CONFIG_DEBUG_GPIO) += -DDEBUG | |||
5 | obj-$(CONFIG_GPIOLIB) += gpiolib.o | 5 | obj-$(CONFIG_GPIOLIB) += gpiolib.o |
6 | 6 | ||
7 | obj-$(CONFIG_GPIO_ADP5520) += adp5520-gpio.o | 7 | obj-$(CONFIG_GPIO_ADP5520) += adp5520-gpio.o |
8 | obj-$(CONFIG_GPIO_ADP5588) += adp5588-gpio.o | ||
8 | obj-$(CONFIG_GPIO_LANGWELL) += langwell_gpio.o | 9 | obj-$(CONFIG_GPIO_LANGWELL) += langwell_gpio.o |
9 | obj-$(CONFIG_GPIO_MAX7301) += max7301.o | 10 | obj-$(CONFIG_GPIO_MAX7301) += max7301.o |
10 | obj-$(CONFIG_GPIO_MAX732X) += max732x.o | 11 | obj-$(CONFIG_GPIO_MAX732X) += max732x.o |
diff --git a/drivers/gpio/adp5588-gpio.c b/drivers/gpio/adp5588-gpio.c new file mode 100644 index 00000000000..afc097a16b3 --- /dev/null +++ b/drivers/gpio/adp5588-gpio.c | |||
@@ -0,0 +1,266 @@ | |||
1 | /* | ||
2 | * GPIO Chip driver for Analog Devices | ||
3 | * ADP5588 I/O Expander and QWERTY Keypad Controller | ||
4 | * | ||
5 | * Copyright 2009 Analog Devices Inc. | ||
6 | * | ||
7 | * Licensed under the GPL-2 or later. | ||
8 | */ | ||
9 | |||
10 | #include <linux/module.h> | ||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/i2c.h> | ||
14 | #include <linux/gpio.h> | ||
15 | |||
16 | #include <linux/i2c/adp5588.h> | ||
17 | |||
18 | #define DRV_NAME "adp5588-gpio" | ||
19 | #define MAXGPIO 18 | ||
20 | #define ADP_BANK(offs) ((offs) >> 3) | ||
21 | #define ADP_BIT(offs) (1u << ((offs) & 0x7)) | ||
22 | |||
23 | struct adp5588_gpio { | ||
24 | struct i2c_client *client; | ||
25 | struct gpio_chip gpio_chip; | ||
26 | struct mutex lock; /* protect cached dir, dat_out */ | ||
27 | unsigned gpio_start; | ||
28 | uint8_t dat_out[3]; | ||
29 | uint8_t dir[3]; | ||
30 | }; | ||
31 | |||
32 | static int adp5588_gpio_read(struct i2c_client *client, u8 reg) | ||
33 | { | ||
34 | int ret = i2c_smbus_read_byte_data(client, reg); | ||
35 | |||
36 | if (ret < 0) | ||
37 | dev_err(&client->dev, "Read Error\n"); | ||
38 | |||
39 | return ret; | ||
40 | } | ||
41 | |||
42 | static int adp5588_gpio_write(struct i2c_client *client, u8 reg, u8 val) | ||
43 | { | ||
44 | int ret = i2c_smbus_write_byte_data(client, reg, val); | ||
45 | |||
46 | if (ret < 0) | ||
47 | dev_err(&client->dev, "Write Error\n"); | ||
48 | |||
49 | return ret; | ||
50 | } | ||
51 | |||
52 | static int adp5588_gpio_get_value(struct gpio_chip *chip, unsigned off) | ||
53 | { | ||
54 | struct adp5588_gpio *dev = | ||
55 | container_of(chip, struct adp5588_gpio, gpio_chip); | ||
56 | |||
57 | return !!(adp5588_gpio_read(dev->client, GPIO_DAT_STAT1 + ADP_BANK(off)) | ||
58 | & ADP_BIT(off)); | ||
59 | } | ||
60 | |||
61 | static void adp5588_gpio_set_value(struct gpio_chip *chip, | ||
62 | unsigned off, int val) | ||
63 | { | ||
64 | unsigned bank, bit; | ||
65 | struct adp5588_gpio *dev = | ||
66 | container_of(chip, struct adp5588_gpio, gpio_chip); | ||
67 | |||
68 | bank = ADP_BANK(off); | ||
69 | bit = ADP_BIT(off); | ||
70 | |||
71 | mutex_lock(&dev->lock); | ||
72 | if (val) | ||
73 | dev->dat_out[bank] |= bit; | ||
74 | else | ||
75 | dev->dat_out[bank] &= ~bit; | ||
76 | |||
77 | adp5588_gpio_write(dev->client, GPIO_DAT_OUT1 + bank, | ||
78 | dev->dat_out[bank]); | ||
79 | mutex_unlock(&dev->lock); | ||
80 | } | ||
81 | |||
82 | static int adp5588_gpio_direction_input(struct gpio_chip *chip, unsigned off) | ||
83 | { | ||
84 | int ret; | ||
85 | unsigned bank; | ||
86 | struct adp5588_gpio *dev = | ||
87 | container_of(chip, struct adp5588_gpio, gpio_chip); | ||
88 | |||
89 | bank = ADP_BANK(off); | ||
90 | |||
91 | mutex_lock(&dev->lock); | ||
92 | dev->dir[bank] &= ~ADP_BIT(off); | ||
93 | ret = adp5588_gpio_write(dev->client, GPIO_DIR1 + bank, dev->dir[bank]); | ||
94 | mutex_unlock(&dev->lock); | ||
95 | |||
96 | return ret; | ||
97 | } | ||
98 | |||
99 | static int adp5588_gpio_direction_output(struct gpio_chip *chip, | ||
100 | unsigned off, int val) | ||
101 | { | ||
102 | int ret; | ||
103 | unsigned bank, bit; | ||
104 | struct adp5588_gpio *dev = | ||
105 | container_of(chip, struct adp5588_gpio, gpio_chip); | ||
106 | |||
107 | bank = ADP_BANK(off); | ||
108 | bit = ADP_BIT(off); | ||
109 | |||
110 | mutex_lock(&dev->lock); | ||
111 | dev->dir[bank] |= bit; | ||
112 | |||
113 | if (val) | ||
114 | dev->dat_out[bank] |= bit; | ||
115 | else | ||
116 | dev->dat_out[bank] &= ~bit; | ||
117 | |||
118 | ret = adp5588_gpio_write(dev->client, GPIO_DAT_OUT1 + bank, | ||
119 | dev->dat_out[bank]); | ||
120 | ret |= adp5588_gpio_write(dev->client, GPIO_DIR1 + bank, | ||
121 | dev->dir[bank]); | ||
122 | mutex_unlock(&dev->lock); | ||
123 | |||
124 | return ret; | ||
125 | } | ||
126 | |||
127 | static int __devinit adp5588_gpio_probe(struct i2c_client *client, | ||
128 | const struct i2c_device_id *id) | ||
129 | { | ||
130 | struct adp5588_gpio_platform_data *pdata = client->dev.platform_data; | ||
131 | struct adp5588_gpio *dev; | ||
132 | struct gpio_chip *gc; | ||
133 | int ret, i, revid; | ||
134 | |||
135 | if (pdata == NULL) { | ||
136 | dev_err(&client->dev, "missing platform data\n"); | ||
137 | return -ENODEV; | ||
138 | } | ||
139 | |||
140 | if (!i2c_check_functionality(client->adapter, | ||
141 | I2C_FUNC_SMBUS_BYTE_DATA)) { | ||
142 | dev_err(&client->dev, "SMBUS Byte Data not Supported\n"); | ||
143 | return -EIO; | ||
144 | } | ||
145 | |||
146 | dev = kzalloc(sizeof(*dev), GFP_KERNEL); | ||
147 | if (dev == NULL) { | ||
148 | dev_err(&client->dev, "failed to alloc memory\n"); | ||
149 | return -ENOMEM; | ||
150 | } | ||
151 | |||
152 | dev->client = client; | ||
153 | |||
154 | gc = &dev->gpio_chip; | ||
155 | gc->direction_input = adp5588_gpio_direction_input; | ||
156 | gc->direction_output = adp5588_gpio_direction_output; | ||
157 | gc->get = adp5588_gpio_get_value; | ||
158 | gc->set = adp5588_gpio_set_value; | ||
159 | gc->can_sleep = 1; | ||
160 | |||
161 | gc->base = pdata->gpio_start; | ||
162 | gc->ngpio = MAXGPIO; | ||
163 | gc->label = client->name; | ||
164 | gc->owner = THIS_MODULE; | ||
165 | |||
166 | mutex_init(&dev->lock); | ||
167 | |||
168 | |||
169 | ret = adp5588_gpio_read(dev->client, DEV_ID); | ||
170 | if (ret < 0) | ||
171 | goto err; | ||
172 | |||
173 | revid = ret & ADP5588_DEVICE_ID_MASK; | ||
174 | |||
175 | for (i = 0, ret = 0; i <= ADP_BANK(MAXGPIO); i++) { | ||
176 | dev->dat_out[i] = adp5588_gpio_read(client, GPIO_DAT_OUT1 + i); | ||
177 | dev->dir[i] = adp5588_gpio_read(client, GPIO_DIR1 + i); | ||
178 | ret |= adp5588_gpio_write(client, KP_GPIO1 + i, 0); | ||
179 | ret |= adp5588_gpio_write(client, GPIO_PULL1 + i, | ||
180 | (pdata->pullup_dis_mask >> (8 * i)) & 0xFF); | ||
181 | |||
182 | if (ret) | ||
183 | goto err; | ||
184 | } | ||
185 | |||
186 | ret = gpiochip_add(&dev->gpio_chip); | ||
187 | if (ret) | ||
188 | goto err; | ||
189 | |||
190 | dev_info(&client->dev, "gpios %d..%d on a %s Rev. %d\n", | ||
191 | gc->base, gc->base + gc->ngpio - 1, | ||
192 | client->name, revid); | ||
193 | |||
194 | if (pdata->setup) { | ||
195 | ret = pdata->setup(client, gc->base, gc->ngpio, pdata->context); | ||
196 | if (ret < 0) | ||
197 | dev_warn(&client->dev, "setup failed, %d\n", ret); | ||
198 | } | ||
199 | |||
200 | i2c_set_clientdata(client, dev); | ||
201 | return 0; | ||
202 | |||
203 | err: | ||
204 | kfree(dev); | ||
205 | return ret; | ||
206 | } | ||
207 | |||
208 | static int __devexit adp5588_gpio_remove(struct i2c_client *client) | ||
209 | { | ||
210 | struct adp5588_gpio_platform_data *pdata = client->dev.platform_data; | ||
211 | struct adp5588_gpio *dev = i2c_get_clientdata(client); | ||
212 | int ret; | ||
213 | |||
214 | if (pdata->teardown) { | ||
215 | ret = pdata->teardown(client, | ||
216 | dev->gpio_chip.base, dev->gpio_chip.ngpio, | ||
217 | pdata->context); | ||
218 | if (ret < 0) { | ||
219 | dev_err(&client->dev, "teardown failed %d\n", ret); | ||
220 | return ret; | ||
221 | } | ||
222 | } | ||
223 | |||
224 | ret = gpiochip_remove(&dev->gpio_chip); | ||
225 | if (ret) { | ||
226 | dev_err(&client->dev, "gpiochip_remove failed %d\n", ret); | ||
227 | return ret; | ||
228 | } | ||
229 | |||
230 | kfree(dev); | ||
231 | return 0; | ||
232 | } | ||
233 | |||
234 | static const struct i2c_device_id adp5588_gpio_id[] = { | ||
235 | {DRV_NAME, 0}, | ||
236 | {} | ||
237 | }; | ||
238 | |||
239 | MODULE_DEVICE_TABLE(i2c, adp5588_gpio_id); | ||
240 | |||
241 | static struct i2c_driver adp5588_gpio_driver = { | ||
242 | .driver = { | ||
243 | .name = DRV_NAME, | ||
244 | }, | ||
245 | .probe = adp5588_gpio_probe, | ||
246 | .remove = __devexit_p(adp5588_gpio_remove), | ||
247 | .id_table = adp5588_gpio_id, | ||
248 | }; | ||
249 | |||
250 | static int __init adp5588_gpio_init(void) | ||
251 | { | ||
252 | return i2c_add_driver(&adp5588_gpio_driver); | ||
253 | } | ||
254 | |||
255 | module_init(adp5588_gpio_init); | ||
256 | |||
257 | static void __exit adp5588_gpio_exit(void) | ||
258 | { | ||
259 | i2c_del_driver(&adp5588_gpio_driver); | ||
260 | } | ||
261 | |||
262 | module_exit(adp5588_gpio_exit); | ||
263 | |||
264 | MODULE_AUTHOR("Michael Hennerich <hennerich@blackfin.uclinux.org>"); | ||
265 | MODULE_DESCRIPTION("GPIO ADP5588 Driver"); | ||
266 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index a25ad284a27..350842ad363 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c | |||
@@ -858,8 +858,6 @@ int gpio_sysfs_set_active_low(unsigned gpio, int value) | |||
858 | desc = &gpio_desc[gpio]; | 858 | desc = &gpio_desc[gpio]; |
859 | 859 | ||
860 | if (test_bit(FLAG_EXPORT, &desc->flags)) { | 860 | if (test_bit(FLAG_EXPORT, &desc->flags)) { |
861 | struct device *dev; | ||
862 | |||
863 | dev = class_find_device(&gpio_class, NULL, desc, match_export); | 861 | dev = class_find_device(&gpio_class, NULL, desc, match_export); |
864 | if (dev == NULL) { | 862 | if (dev == NULL) { |
865 | status = -ENODEV; | 863 | status = -ENODEV; |
diff --git a/drivers/gpu/drm/ati_pcigart.c b/drivers/gpu/drm/ati_pcigart.c index 628eae3e9b8..a1fce68e3bb 100644 --- a/drivers/gpu/drm/ati_pcigart.c +++ b/drivers/gpu/drm/ati_pcigart.c | |||
@@ -39,8 +39,7 @@ static int drm_ati_alloc_pcigart_table(struct drm_device *dev, | |||
39 | struct drm_ati_pcigart_info *gart_info) | 39 | struct drm_ati_pcigart_info *gart_info) |
40 | { | 40 | { |
41 | gart_info->table_handle = drm_pci_alloc(dev, gart_info->table_size, | 41 | gart_info->table_handle = drm_pci_alloc(dev, gart_info->table_size, |
42 | PAGE_SIZE, | 42 | PAGE_SIZE); |
43 | gart_info->table_mask); | ||
44 | if (gart_info->table_handle == NULL) | 43 | if (gart_info->table_handle == NULL) |
45 | return -ENOMEM; | 44 | return -ENOMEM; |
46 | 45 | ||
@@ -112,6 +111,13 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga | |||
112 | if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) { | 111 | if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) { |
113 | DRM_DEBUG("PCI: no table in VRAM: using normal RAM\n"); | 112 | DRM_DEBUG("PCI: no table in VRAM: using normal RAM\n"); |
114 | 113 | ||
114 | if (pci_set_dma_mask(dev->pdev, gart_info->table_mask)) { | ||
115 | DRM_ERROR("fail to set dma mask to 0x%Lx\n", | ||
116 | gart_info->table_mask); | ||
117 | ret = 1; | ||
118 | goto done; | ||
119 | } | ||
120 | |||
115 | ret = drm_ati_alloc_pcigart_table(dev, gart_info); | 121 | ret = drm_ati_alloc_pcigart_table(dev, gart_info); |
116 | if (ret) { | 122 | if (ret) { |
117 | DRM_ERROR("cannot allocate PCI GART page!\n"); | 123 | DRM_ERROR("cannot allocate PCI GART page!\n"); |
diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c index 3d09e304f6f..8417cc4c43f 100644 --- a/drivers/gpu/drm/drm_bufs.c +++ b/drivers/gpu/drm/drm_bufs.c | |||
@@ -326,7 +326,7 @@ static int drm_addmap_core(struct drm_device * dev, resource_size_t offset, | |||
326 | * As we're limiting the address to 2^32-1 (or less), | 326 | * As we're limiting the address to 2^32-1 (or less), |
327 | * casting it down to 32 bits is no problem, but we | 327 | * casting it down to 32 bits is no problem, but we |
328 | * need to point to a 64bit variable first. */ | 328 | * need to point to a 64bit variable first. */ |
329 | dmah = drm_pci_alloc(dev, map->size, map->size, 0xffffffffUL); | 329 | dmah = drm_pci_alloc(dev, map->size, map->size); |
330 | if (!dmah) { | 330 | if (!dmah) { |
331 | kfree(map); | 331 | kfree(map); |
332 | return -ENOMEM; | 332 | return -ENOMEM; |
@@ -885,7 +885,7 @@ int drm_addbufs_pci(struct drm_device * dev, struct drm_buf_desc * request) | |||
885 | 885 | ||
886 | while (entry->buf_count < count) { | 886 | while (entry->buf_count < count) { |
887 | 887 | ||
888 | dmah = drm_pci_alloc(dev, PAGE_SIZE << page_order, 0x1000, 0xfffffffful); | 888 | dmah = drm_pci_alloc(dev, PAGE_SIZE << page_order, 0x1000); |
889 | 889 | ||
890 | if (!dmah) { | 890 | if (!dmah) { |
891 | /* Set count correctly so we free the proper amount. */ | 891 | /* Set count correctly so we free the proper amount. */ |
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 5124401f266..d91fb8c0b7b 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c | |||
@@ -158,6 +158,7 @@ static struct drm_conn_prop_enum_list drm_connector_enum_list[] = | |||
158 | { DRM_MODE_CONNECTOR_HDMIA, "HDMI Type A", 0 }, | 158 | { DRM_MODE_CONNECTOR_HDMIA, "HDMI Type A", 0 }, |
159 | { DRM_MODE_CONNECTOR_HDMIB, "HDMI Type B", 0 }, | 159 | { DRM_MODE_CONNECTOR_HDMIB, "HDMI Type B", 0 }, |
160 | { DRM_MODE_CONNECTOR_TV, "TV", 0 }, | 160 | { DRM_MODE_CONNECTOR_TV, "TV", 0 }, |
161 | { DRM_MODE_CONNECTOR_eDP, "Embedded DisplayPort", 0 }, | ||
161 | }; | 162 | }; |
162 | 163 | ||
163 | static struct drm_prop_enum_list drm_encoder_enum_list[] = | 164 | static struct drm_prop_enum_list drm_encoder_enum_list[] = |
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c index 4231d6db72e..7d0f00a935f 100644 --- a/drivers/gpu/drm/drm_crtc_helper.c +++ b/drivers/gpu/drm/drm_crtc_helper.c | |||
@@ -216,7 +216,7 @@ bool drm_helper_crtc_in_use(struct drm_crtc *crtc) | |||
216 | EXPORT_SYMBOL(drm_helper_crtc_in_use); | 216 | EXPORT_SYMBOL(drm_helper_crtc_in_use); |
217 | 217 | ||
218 | /** | 218 | /** |
219 | * drm_disable_unused_functions - disable unused objects | 219 | * drm_helper_disable_unused_functions - disable unused objects |
220 | * @dev: DRM device | 220 | * @dev: DRM device |
221 | * | 221 | * |
222 | * LOCKING: | 222 | * LOCKING: |
@@ -702,7 +702,7 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc, | |||
702 | if (encoder->crtc != crtc) | 702 | if (encoder->crtc != crtc) |
703 | continue; | 703 | continue; |
704 | 704 | ||
705 | DRM_INFO("%s: set mode %s %x\n", drm_get_encoder_name(encoder), | 705 | DRM_DEBUG("%s: set mode %s %x\n", drm_get_encoder_name(encoder), |
706 | mode->name, mode->base.id); | 706 | mode->name, mode->base.id); |
707 | encoder_funcs = encoder->helper_private; | 707 | encoder_funcs = encoder->helper_private; |
708 | encoder_funcs->mode_set(encoder, mode, adjusted_mode); | 708 | encoder_funcs->mode_set(encoder, mode, adjusted_mode); |
@@ -1032,7 +1032,8 @@ bool drm_helper_initial_config(struct drm_device *dev) | |||
1032 | /* | 1032 | /* |
1033 | * we shouldn't end up with no modes here. | 1033 | * we shouldn't end up with no modes here. |
1034 | */ | 1034 | */ |
1035 | WARN(!count, "No connectors reported connected with modes\n"); | 1035 | if (count == 0) |
1036 | printk(KERN_INFO "No connectors reported connected with modes\n"); | ||
1036 | 1037 | ||
1037 | drm_setup_crtcs(dev); | 1038 | drm_setup_crtcs(dev); |
1038 | 1039 | ||
@@ -1162,6 +1163,9 @@ EXPORT_SYMBOL(drm_helper_mode_fill_fb_struct); | |||
1162 | int drm_helper_resume_force_mode(struct drm_device *dev) | 1163 | int drm_helper_resume_force_mode(struct drm_device *dev) |
1163 | { | 1164 | { |
1164 | struct drm_crtc *crtc; | 1165 | struct drm_crtc *crtc; |
1166 | struct drm_encoder *encoder; | ||
1167 | struct drm_encoder_helper_funcs *encoder_funcs; | ||
1168 | struct drm_crtc_helper_funcs *crtc_funcs; | ||
1165 | int ret; | 1169 | int ret; |
1166 | 1170 | ||
1167 | list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { | 1171 | list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { |
@@ -1174,6 +1178,25 @@ int drm_helper_resume_force_mode(struct drm_device *dev) | |||
1174 | 1178 | ||
1175 | if (ret == false) | 1179 | if (ret == false) |
1176 | DRM_ERROR("failed to set mode on crtc %p\n", crtc); | 1180 | DRM_ERROR("failed to set mode on crtc %p\n", crtc); |
1181 | |||
1182 | /* Turn off outputs that were already powered off */ | ||
1183 | if (drm_helper_choose_crtc_dpms(crtc)) { | ||
1184 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { | ||
1185 | |||
1186 | if(encoder->crtc != crtc) | ||
1187 | continue; | ||
1188 | |||
1189 | encoder_funcs = encoder->helper_private; | ||
1190 | if (encoder_funcs->dpms) | ||
1191 | (*encoder_funcs->dpms) (encoder, | ||
1192 | drm_helper_choose_encoder_dpms(encoder)); | ||
1193 | |||
1194 | crtc_funcs = crtc->helper_private; | ||
1195 | if (crtc_funcs->dpms) | ||
1196 | (*crtc_funcs->dpms) (crtc, | ||
1197 | drm_helper_choose_crtc_dpms(crtc)); | ||
1198 | } | ||
1199 | } | ||
1177 | } | 1200 | } |
1178 | /* disable the unused connectors while restoring the modesetting */ | 1201 | /* disable the unused connectors while restoring the modesetting */ |
1179 | drm_helper_disable_unused_functions(dev); | 1202 | drm_helper_disable_unused_functions(dev); |
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 5c9f79877cb..defcaf10846 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c | |||
@@ -911,23 +911,27 @@ static int drm_cvt_modes(struct drm_connector *connector, | |||
911 | struct drm_device *dev = connector->dev; | 911 | struct drm_device *dev = connector->dev; |
912 | struct cvt_timing *cvt; | 912 | struct cvt_timing *cvt; |
913 | const int rates[] = { 60, 85, 75, 60, 50 }; | 913 | const int rates[] = { 60, 85, 75, 60, 50 }; |
914 | const u8 empty[3] = { 0, 0, 0 }; | ||
914 | 915 | ||
915 | for (i = 0; i < 4; i++) { | 916 | for (i = 0; i < 4; i++) { |
916 | int uninitialized_var(width), height; | 917 | int uninitialized_var(width), height; |
917 | cvt = &(timing->data.other_data.data.cvt[i]); | 918 | cvt = &(timing->data.other_data.data.cvt[i]); |
918 | 919 | ||
919 | height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 8) + 1) * 2; | 920 | if (!memcmp(cvt->code, empty, 3)) |
920 | switch (cvt->code[1] & 0xc0) { | 921 | continue; |
922 | |||
923 | height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 4) + 1) * 2; | ||
924 | switch (cvt->code[1] & 0x0c) { | ||
921 | case 0x00: | 925 | case 0x00: |
922 | width = height * 4 / 3; | 926 | width = height * 4 / 3; |
923 | break; | 927 | break; |
924 | case 0x40: | 928 | case 0x04: |
925 | width = height * 16 / 9; | 929 | width = height * 16 / 9; |
926 | break; | 930 | break; |
927 | case 0x80: | 931 | case 0x08: |
928 | width = height * 16 / 10; | 932 | width = height * 16 / 10; |
929 | break; | 933 | break; |
930 | case 0xc0: | 934 | case 0x0c: |
931 | width = height * 15 / 9; | 935 | width = height * 15 / 9; |
932 | break; | 936 | break; |
933 | } | 937 | } |
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 1b49fa055f4..1c2b7d44ec0 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c | |||
@@ -156,7 +156,7 @@ static bool drm_fb_helper_connector_parse_command_line(struct drm_connector *con | |||
156 | force = DRM_FORCE_ON; | 156 | force = DRM_FORCE_ON; |
157 | break; | 157 | break; |
158 | case 'D': | 158 | case 'D': |
159 | if ((connector->connector_type != DRM_MODE_CONNECTOR_DVII) || | 159 | if ((connector->connector_type != DRM_MODE_CONNECTOR_DVII) && |
160 | (connector->connector_type != DRM_MODE_CONNECTOR_HDMIB)) | 160 | (connector->connector_type != DRM_MODE_CONNECTOR_HDMIB)) |
161 | force = DRM_FORCE_ON; | 161 | force = DRM_FORCE_ON; |
162 | else | 162 | else |
@@ -606,11 +606,10 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var, | |||
606 | return -EINVAL; | 606 | return -EINVAL; |
607 | 607 | ||
608 | /* Need to resize the fb object !!! */ | 608 | /* Need to resize the fb object !!! */ |
609 | if (var->xres > fb->width || var->yres > fb->height) { | 609 | if (var->bits_per_pixel > fb->bits_per_pixel || var->xres > fb->width || var->yres > fb->height) { |
610 | DRM_ERROR("Requested width/height is greater than current fb " | 610 | DRM_DEBUG("fb userspace requested width/height/bpp is greater than current fb " |
611 | "object %dx%d > %dx%d\n", var->xres, var->yres, | 611 | "object %dx%d-%d > %dx%d-%d\n", var->xres, var->yres, var->bits_per_pixel, |
612 | fb->width, fb->height); | 612 | fb->width, fb->height, fb->bits_per_pixel); |
613 | DRM_ERROR("Need resizing code.\n"); | ||
614 | return -EINVAL; | 613 | return -EINVAL; |
615 | } | 614 | } |
616 | 615 | ||
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index 7998ee66b31..b98384dbd9a 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c | |||
@@ -115,6 +115,7 @@ void drm_vblank_cleanup(struct drm_device *dev) | |||
115 | 115 | ||
116 | dev->num_crtcs = 0; | 116 | dev->num_crtcs = 0; |
117 | } | 117 | } |
118 | EXPORT_SYMBOL(drm_vblank_cleanup); | ||
118 | 119 | ||
119 | int drm_vblank_init(struct drm_device *dev, int num_crtcs) | 120 | int drm_vblank_init(struct drm_device *dev, int num_crtcs) |
120 | { | 121 | { |
@@ -163,7 +164,6 @@ int drm_vblank_init(struct drm_device *dev, int num_crtcs) | |||
163 | } | 164 | } |
164 | 165 | ||
165 | dev->vblank_disable_allowed = 0; | 166 | dev->vblank_disable_allowed = 0; |
166 | |||
167 | return 0; | 167 | return 0; |
168 | 168 | ||
169 | err: | 169 | err: |
@@ -493,6 +493,9 @@ EXPORT_SYMBOL(drm_vblank_off); | |||
493 | */ | 493 | */ |
494 | void drm_vblank_pre_modeset(struct drm_device *dev, int crtc) | 494 | void drm_vblank_pre_modeset(struct drm_device *dev, int crtc) |
495 | { | 495 | { |
496 | /* vblank is not initialized (IRQ not installed ?) */ | ||
497 | if (!dev->num_crtcs) | ||
498 | return; | ||
496 | /* | 499 | /* |
497 | * To avoid all the problems that might happen if interrupts | 500 | * To avoid all the problems that might happen if interrupts |
498 | * were enabled/disabled around or between these calls, we just | 501 | * were enabled/disabled around or between these calls, we just |
diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index 6d81a02463a..76d63394c77 100644 --- a/drivers/gpu/drm/drm_modes.c +++ b/drivers/gpu/drm/drm_modes.c | |||
@@ -1,9 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * The list_sort function is (presumably) licensed under the GPL (see the | ||
3 | * top level "COPYING" file for details). | ||
4 | * | ||
5 | * The remainder of this file is: | ||
6 | * | ||
7 | * Copyright © 1997-2003 by The XFree86 Project, Inc. | 2 | * Copyright © 1997-2003 by The XFree86 Project, Inc. |
8 | * Copyright © 2007 Dave Airlie | 3 | * Copyright © 2007 Dave Airlie |
9 | * Copyright © 2007-2008 Intel Corporation | 4 | * Copyright © 2007-2008 Intel Corporation |
@@ -36,6 +31,7 @@ | |||
36 | */ | 31 | */ |
37 | 32 | ||
38 | #include <linux/list.h> | 33 | #include <linux/list.h> |
34 | #include <linux/list_sort.h> | ||
39 | #include "drmP.h" | 35 | #include "drmP.h" |
40 | #include "drm.h" | 36 | #include "drm.h" |
41 | #include "drm_crtc.h" | 37 | #include "drm_crtc.h" |
@@ -855,6 +851,7 @@ EXPORT_SYMBOL(drm_mode_prune_invalid); | |||
855 | 851 | ||
856 | /** | 852 | /** |
857 | * drm_mode_compare - compare modes for favorability | 853 | * drm_mode_compare - compare modes for favorability |
854 | * @priv: unused | ||
858 | * @lh_a: list_head for first mode | 855 | * @lh_a: list_head for first mode |
859 | * @lh_b: list_head for second mode | 856 | * @lh_b: list_head for second mode |
860 | * | 857 | * |
@@ -868,7 +865,7 @@ EXPORT_SYMBOL(drm_mode_prune_invalid); | |||
868 | * Negative if @lh_a is better than @lh_b, zero if they're equivalent, or | 865 | * Negative if @lh_a is better than @lh_b, zero if they're equivalent, or |
869 | * positive if @lh_b is better than @lh_a. | 866 | * positive if @lh_b is better than @lh_a. |
870 | */ | 867 | */ |
871 | static int drm_mode_compare(struct list_head *lh_a, struct list_head *lh_b) | 868 | static int drm_mode_compare(void *priv, struct list_head *lh_a, struct list_head *lh_b) |
872 | { | 869 | { |
873 | struct drm_display_mode *a = list_entry(lh_a, struct drm_display_mode, head); | 870 | struct drm_display_mode *a = list_entry(lh_a, struct drm_display_mode, head); |
874 | struct drm_display_mode *b = list_entry(lh_b, struct drm_display_mode, head); | 871 | struct drm_display_mode *b = list_entry(lh_b, struct drm_display_mode, head); |
@@ -885,85 +882,6 @@ static int drm_mode_compare(struct list_head *lh_a, struct list_head *lh_b) | |||
885 | return diff; | 882 | return diff; |
886 | } | 883 | } |
887 | 884 | ||
888 | /* FIXME: what we don't have a list sort function? */ | ||
889 | /* list sort from Mark J Roberts (mjr@znex.org) */ | ||
890 | void list_sort(struct list_head *head, | ||
891 | int (*cmp)(struct list_head *a, struct list_head *b)) | ||
892 | { | ||
893 | struct list_head *p, *q, *e, *list, *tail, *oldhead; | ||
894 | int insize, nmerges, psize, qsize, i; | ||
895 | |||
896 | list = head->next; | ||
897 | list_del(head); | ||
898 | insize = 1; | ||
899 | for (;;) { | ||
900 | p = oldhead = list; | ||
901 | list = tail = NULL; | ||
902 | nmerges = 0; | ||
903 | |||
904 | while (p) { | ||
905 | nmerges++; | ||
906 | q = p; | ||
907 | psize = 0; | ||
908 | for (i = 0; i < insize; i++) { | ||
909 | psize++; | ||
910 | q = q->next == oldhead ? NULL : q->next; | ||
911 | if (!q) | ||
912 | break; | ||
913 | } | ||
914 | |||
915 | qsize = insize; | ||
916 | while (psize > 0 || (qsize > 0 && q)) { | ||
917 | if (!psize) { | ||
918 | e = q; | ||
919 | q = q->next; | ||
920 | qsize--; | ||
921 | if (q == oldhead) | ||
922 | q = NULL; | ||
923 | } else if (!qsize || !q) { | ||
924 | e = p; | ||
925 | p = p->next; | ||
926 | psize--; | ||
927 | if (p == oldhead) | ||
928 | p = NULL; | ||
929 | } else if (cmp(p, q) <= 0) { | ||
930 | e = p; | ||
931 | p = p->next; | ||
932 | psize--; | ||
933 | if (p == oldhead) | ||
934 | p = NULL; | ||
935 | } else { | ||
936 | e = q; | ||
937 | q = q->next; | ||
938 | qsize--; | ||
939 | if (q == oldhead) | ||
940 | q = NULL; | ||
941 | } | ||
942 | if (tail) | ||
943 | tail->next = e; | ||
944 | else | ||
945 | list = e; | ||
946 | e->prev = tail; | ||
947 | tail = e; | ||
948 | } | ||
949 | p = q; | ||
950 | } | ||
951 | |||
952 | tail->next = list; | ||
953 | list->prev = tail; | ||
954 | |||
955 | if (nmerges <= 1) | ||
956 | break; | ||
957 | |||
958 | insize *= 2; | ||
959 | } | ||
960 | |||
961 | head->next = list; | ||
962 | head->prev = list->prev; | ||
963 | list->prev->next = head; | ||
964 | list->prev = head; | ||
965 | } | ||
966 | |||
967 | /** | 885 | /** |
968 | * drm_mode_sort - sort mode list | 886 | * drm_mode_sort - sort mode list |
969 | * @mode_list: list to sort | 887 | * @mode_list: list to sort |
@@ -975,7 +893,7 @@ void list_sort(struct list_head *head, | |||
975 | */ | 893 | */ |
976 | void drm_mode_sort(struct list_head *mode_list) | 894 | void drm_mode_sort(struct list_head *mode_list) |
977 | { | 895 | { |
978 | list_sort(mode_list, drm_mode_compare); | 896 | list_sort(NULL, mode_list, drm_mode_compare); |
979 | } | 897 | } |
980 | EXPORT_SYMBOL(drm_mode_sort); | 898 | EXPORT_SYMBOL(drm_mode_sort); |
981 | 899 | ||
diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c index 577094fb199..e68ebf92fa2 100644 --- a/drivers/gpu/drm/drm_pci.c +++ b/drivers/gpu/drm/drm_pci.c | |||
@@ -47,8 +47,7 @@ | |||
47 | /** | 47 | /** |
48 | * \brief Allocate a PCI consistent memory block, for DMA. | 48 | * \brief Allocate a PCI consistent memory block, for DMA. |
49 | */ | 49 | */ |
50 | drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t align, | 50 | drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t align) |
51 | dma_addr_t maxaddr) | ||
52 | { | 51 | { |
53 | drm_dma_handle_t *dmah; | 52 | drm_dma_handle_t *dmah; |
54 | #if 1 | 53 | #if 1 |
@@ -63,11 +62,6 @@ drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t ali | |||
63 | if (align > size) | 62 | if (align > size) |
64 | return NULL; | 63 | return NULL; |
65 | 64 | ||
66 | if (pci_set_dma_mask(dev->pdev, maxaddr) != 0) { | ||
67 | DRM_ERROR("Setting pci dma mask failed\n"); | ||
68 | return NULL; | ||
69 | } | ||
70 | |||
71 | dmah = kmalloc(sizeof(drm_dma_handle_t), GFP_KERNEL); | 65 | dmah = kmalloc(sizeof(drm_dma_handle_t), GFP_KERNEL); |
72 | if (!dmah) | 66 | if (!dmah) |
73 | return NULL; | 67 | return NULL; |
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 18476bf0b58..9c9998c4dce 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c | |||
@@ -272,7 +272,7 @@ static void i915_dump_pages(struct seq_file *m, struct page **pages, int page_co | |||
272 | mem = kmap_atomic(pages[page], KM_USER0); | 272 | mem = kmap_atomic(pages[page], KM_USER0); |
273 | for (i = 0; i < PAGE_SIZE; i += 4) | 273 | for (i = 0; i < PAGE_SIZE; i += 4) |
274 | seq_printf(m, "%08x : %08x\n", i, mem[i / 4]); | 274 | seq_printf(m, "%08x : %08x\n", i, mem[i / 4]); |
275 | kunmap_atomic(pages[page], KM_USER0); | 275 | kunmap_atomic(mem, KM_USER0); |
276 | } | 276 | } |
277 | } | 277 | } |
278 | 278 | ||
@@ -386,34 +386,6 @@ out: | |||
386 | return 0; | 386 | return 0; |
387 | } | 387 | } |
388 | 388 | ||
389 | static int i915_registers_info(struct seq_file *m, void *data) { | ||
390 | struct drm_info_node *node = (struct drm_info_node *) m->private; | ||
391 | struct drm_device *dev = node->minor->dev; | ||
392 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
393 | uint32_t reg; | ||
394 | |||
395 | #define DUMP_RANGE(start, end) \ | ||
396 | for (reg=start; reg < end; reg += 4) \ | ||
397 | seq_printf(m, "%08x\t%08x\n", reg, I915_READ(reg)); | ||
398 | |||
399 | DUMP_RANGE(0x00000, 0x00fff); /* VGA registers */ | ||
400 | DUMP_RANGE(0x02000, 0x02fff); /* instruction, memory, interrupt control registers */ | ||
401 | DUMP_RANGE(0x03000, 0x031ff); /* FENCE and PPGTT control registers */ | ||
402 | DUMP_RANGE(0x03200, 0x03fff); /* frame buffer compression registers */ | ||
403 | DUMP_RANGE(0x05000, 0x05fff); /* I/O control registers */ | ||
404 | DUMP_RANGE(0x06000, 0x06fff); /* clock control registers */ | ||
405 | DUMP_RANGE(0x07000, 0x07fff); /* 3D internal debug registers */ | ||
406 | DUMP_RANGE(0x07400, 0x088ff); /* GPE debug registers */ | ||
407 | DUMP_RANGE(0x0a000, 0x0afff); /* display palette registers */ | ||
408 | DUMP_RANGE(0x10000, 0x13fff); /* MMIO MCHBAR */ | ||
409 | DUMP_RANGE(0x30000, 0x3ffff); /* overlay registers */ | ||
410 | DUMP_RANGE(0x60000, 0x6ffff); /* display engine pipeline registers */ | ||
411 | DUMP_RANGE(0x70000, 0x72fff); /* display and cursor registers */ | ||
412 | DUMP_RANGE(0x73000, 0x73fff); /* performance counters */ | ||
413 | |||
414 | return 0; | ||
415 | } | ||
416 | |||
417 | static int | 389 | static int |
418 | i915_wedged_open(struct inode *inode, | 390 | i915_wedged_open(struct inode *inode, |
419 | struct file *filp) | 391 | struct file *filp) |
@@ -519,7 +491,6 @@ static int i915_wedged_create(struct dentry *root, struct drm_minor *minor) | |||
519 | } | 491 | } |
520 | 492 | ||
521 | static struct drm_info_list i915_debugfs_list[] = { | 493 | static struct drm_info_list i915_debugfs_list[] = { |
522 | {"i915_regs", i915_registers_info, 0}, | ||
523 | {"i915_gem_active", i915_gem_object_list_info, 0, (void *) ACTIVE_LIST}, | 494 | {"i915_gem_active", i915_gem_object_list_info, 0, (void *) ACTIVE_LIST}, |
524 | {"i915_gem_flushing", i915_gem_object_list_info, 0, (void *) FLUSHING_LIST}, | 495 | {"i915_gem_flushing", i915_gem_object_list_info, 0, (void *) FLUSHING_LIST}, |
525 | {"i915_gem_inactive", i915_gem_object_list_info, 0, (void *) INACTIVE_LIST}, | 496 | {"i915_gem_inactive", i915_gem_object_list_info, 0, (void *) INACTIVE_LIST}, |
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 701bfeac7f5..e660ac07f3b 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
@@ -123,7 +123,7 @@ static int i915_init_phys_hws(struct drm_device *dev) | |||
123 | drm_i915_private_t *dev_priv = dev->dev_private; | 123 | drm_i915_private_t *dev_priv = dev->dev_private; |
124 | /* Program Hardware Status Page */ | 124 | /* Program Hardware Status Page */ |
125 | dev_priv->status_page_dmah = | 125 | dev_priv->status_page_dmah = |
126 | drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0xffffffff); | 126 | drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE); |
127 | 127 | ||
128 | if (!dev_priv->status_page_dmah) { | 128 | if (!dev_priv->status_page_dmah) { |
129 | DRM_ERROR("Can not allocate hardware status page\n"); | 129 | DRM_ERROR("Can not allocate hardware status page\n"); |
@@ -134,6 +134,10 @@ static int i915_init_phys_hws(struct drm_device *dev) | |||
134 | 134 | ||
135 | memset(dev_priv->hw_status_page, 0, PAGE_SIZE); | 135 | memset(dev_priv->hw_status_page, 0, PAGE_SIZE); |
136 | 136 | ||
137 | if (IS_I965G(dev)) | ||
138 | dev_priv->dma_status_page |= (dev_priv->dma_status_page >> 28) & | ||
139 | 0xf0; | ||
140 | |||
137 | I915_WRITE(HWS_PGA, dev_priv->dma_status_page); | 141 | I915_WRITE(HWS_PGA, dev_priv->dma_status_page); |
138 | DRM_DEBUG_DRIVER("Enabled hardware status page\n"); | 142 | DRM_DEBUG_DRIVER("Enabled hardware status page\n"); |
139 | return 0; | 143 | return 0; |
@@ -813,9 +817,13 @@ static int i915_getparam(struct drm_device *dev, void *data, | |||
813 | case I915_PARAM_HAS_PAGEFLIPPING: | 817 | case I915_PARAM_HAS_PAGEFLIPPING: |
814 | value = 1; | 818 | value = 1; |
815 | break; | 819 | break; |
820 | case I915_PARAM_HAS_EXECBUF2: | ||
821 | /* depends on GEM */ | ||
822 | value = dev_priv->has_gem; | ||
823 | break; | ||
816 | default: | 824 | default: |
817 | DRM_DEBUG_DRIVER("Unknown parameter %d\n", | 825 | DRM_DEBUG_DRIVER("Unknown parameter %d\n", |
818 | param->param); | 826 | param->param); |
819 | return -EINVAL; | 827 | return -EINVAL; |
820 | } | 828 | } |
821 | 829 | ||
@@ -1117,7 +1125,8 @@ static void i915_setup_compression(struct drm_device *dev, int size) | |||
1117 | { | 1125 | { |
1118 | struct drm_i915_private *dev_priv = dev->dev_private; | 1126 | struct drm_i915_private *dev_priv = dev->dev_private; |
1119 | struct drm_mm_node *compressed_fb, *compressed_llb; | 1127 | struct drm_mm_node *compressed_fb, *compressed_llb; |
1120 | unsigned long cfb_base, ll_base; | 1128 | unsigned long cfb_base; |
1129 | unsigned long ll_base = 0; | ||
1121 | 1130 | ||
1122 | /* Leave 1M for line length buffer & misc. */ | 1131 | /* Leave 1M for line length buffer & misc. */ |
1123 | compressed_fb = drm_mm_search_free(&dev_priv->vram, size, 4096, 0); | 1132 | compressed_fb = drm_mm_search_free(&dev_priv->vram, size, 4096, 0); |
@@ -1200,14 +1209,6 @@ static int i915_load_modeset_init(struct drm_device *dev, | |||
1200 | dev->mode_config.fb_base = drm_get_resource_start(dev, fb_bar) & | 1209 | dev->mode_config.fb_base = drm_get_resource_start(dev, fb_bar) & |
1201 | 0xff000000; | 1210 | 0xff000000; |
1202 | 1211 | ||
1203 | if (IS_MOBILE(dev) || IS_I9XX(dev)) | ||
1204 | dev_priv->cursor_needs_physical = true; | ||
1205 | else | ||
1206 | dev_priv->cursor_needs_physical = false; | ||
1207 | |||
1208 | if (IS_I965G(dev) || IS_G33(dev)) | ||
1209 | dev_priv->cursor_needs_physical = false; | ||
1210 | |||
1211 | /* Basic memrange allocator for stolen space (aka vram) */ | 1212 | /* Basic memrange allocator for stolen space (aka vram) */ |
1212 | drm_mm_init(&dev_priv->vram, 0, prealloc_size); | 1213 | drm_mm_init(&dev_priv->vram, 0, prealloc_size); |
1213 | DRM_INFO("set up %ldM of stolen space\n", prealloc_size / (1024*1024)); | 1214 | DRM_INFO("set up %ldM of stolen space\n", prealloc_size / (1024*1024)); |
@@ -1257,6 +1258,8 @@ static int i915_load_modeset_init(struct drm_device *dev, | |||
1257 | if (ret) | 1258 | if (ret) |
1258 | goto destroy_ringbuffer; | 1259 | goto destroy_ringbuffer; |
1259 | 1260 | ||
1261 | intel_modeset_init(dev); | ||
1262 | |||
1260 | ret = drm_irq_install(dev); | 1263 | ret = drm_irq_install(dev); |
1261 | if (ret) | 1264 | if (ret) |
1262 | goto destroy_ringbuffer; | 1265 | goto destroy_ringbuffer; |
@@ -1271,8 +1274,6 @@ static int i915_load_modeset_init(struct drm_device *dev, | |||
1271 | 1274 | ||
1272 | I915_WRITE(INSTPM, (1 << 5) | (1 << 21)); | 1275 | I915_WRITE(INSTPM, (1 << 5) | (1 << 21)); |
1273 | 1276 | ||
1274 | intel_modeset_init(dev); | ||
1275 | |||
1276 | drm_helper_initial_config(dev); | 1277 | drm_helper_initial_config(dev); |
1277 | 1278 | ||
1278 | return 0; | 1279 | return 0; |
@@ -1360,7 +1361,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) | |||
1360 | { | 1361 | { |
1361 | struct drm_i915_private *dev_priv = dev->dev_private; | 1362 | struct drm_i915_private *dev_priv = dev->dev_private; |
1362 | resource_size_t base, size; | 1363 | resource_size_t base, size; |
1363 | int ret = 0, mmio_bar = IS_I9XX(dev) ? 0 : 1; | 1364 | int ret = 0, mmio_bar; |
1364 | uint32_t agp_size, prealloc_size, prealloc_start; | 1365 | uint32_t agp_size, prealloc_size, prealloc_start; |
1365 | 1366 | ||
1366 | /* i915 has 4 more counters */ | 1367 | /* i915 has 4 more counters */ |
@@ -1376,8 +1377,10 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) | |||
1376 | 1377 | ||
1377 | dev->dev_private = (void *)dev_priv; | 1378 | dev->dev_private = (void *)dev_priv; |
1378 | dev_priv->dev = dev; | 1379 | dev_priv->dev = dev; |
1380 | dev_priv->info = (struct intel_device_info *) flags; | ||
1379 | 1381 | ||
1380 | /* Add register map (needed for suspend/resume) */ | 1382 | /* Add register map (needed for suspend/resume) */ |
1383 | mmio_bar = IS_I9XX(dev) ? 0 : 1; | ||
1381 | base = drm_get_resource_start(dev, mmio_bar); | 1384 | base = drm_get_resource_start(dev, mmio_bar); |
1382 | size = drm_get_resource_len(dev, mmio_bar); | 1385 | size = drm_get_resource_len(dev, mmio_bar); |
1383 | 1386 | ||
@@ -1652,6 +1655,7 @@ struct drm_ioctl_desc i915_ioctls[] = { | |||
1652 | DRM_IOCTL_DEF(DRM_I915_HWS_ADDR, i915_set_status_page, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), | 1655 | DRM_IOCTL_DEF(DRM_I915_HWS_ADDR, i915_set_status_page, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), |
1653 | DRM_IOCTL_DEF(DRM_I915_GEM_INIT, i915_gem_init_ioctl, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), | 1656 | DRM_IOCTL_DEF(DRM_I915_GEM_INIT, i915_gem_init_ioctl, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY), |
1654 | DRM_IOCTL_DEF(DRM_I915_GEM_EXECBUFFER, i915_gem_execbuffer, DRM_AUTH), | 1657 | DRM_IOCTL_DEF(DRM_I915_GEM_EXECBUFFER, i915_gem_execbuffer, DRM_AUTH), |
1658 | DRM_IOCTL_DEF(DRM_I915_GEM_EXECBUFFER2, i915_gem_execbuffer2, DRM_AUTH), | ||
1655 | DRM_IOCTL_DEF(DRM_I915_GEM_PIN, i915_gem_pin_ioctl, DRM_AUTH|DRM_ROOT_ONLY), | 1659 | DRM_IOCTL_DEF(DRM_I915_GEM_PIN, i915_gem_pin_ioctl, DRM_AUTH|DRM_ROOT_ONLY), |
1656 | DRM_IOCTL_DEF(DRM_I915_GEM_UNPIN, i915_gem_unpin_ioctl, DRM_AUTH|DRM_ROOT_ONLY), | 1660 | DRM_IOCTL_DEF(DRM_I915_GEM_UNPIN, i915_gem_unpin_ioctl, DRM_AUTH|DRM_ROOT_ONLY), |
1657 | DRM_IOCTL_DEF(DRM_I915_GEM_BUSY, i915_gem_busy_ioctl, DRM_AUTH), | 1661 | DRM_IOCTL_DEF(DRM_I915_GEM_BUSY, i915_gem_busy_ioctl, DRM_AUTH), |
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 24286ca168f..46d88965852 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -33,7 +33,6 @@ | |||
33 | #include "i915_drm.h" | 33 | #include "i915_drm.h" |
34 | #include "i915_drv.h" | 34 | #include "i915_drv.h" |
35 | 35 | ||
36 | #include "drm_pciids.h" | ||
37 | #include <linux/console.h> | 36 | #include <linux/console.h> |
38 | #include "drm_crtc_helper.h" | 37 | #include "drm_crtc_helper.h" |
39 | 38 | ||
@@ -46,10 +45,129 @@ module_param_named(fbpercrtc, i915_fbpercrtc, int, 0400); | |||
46 | unsigned int i915_powersave = 1; | 45 | unsigned int i915_powersave = 1; |
47 | module_param_named(powersave, i915_powersave, int, 0400); | 46 | module_param_named(powersave, i915_powersave, int, 0400); |
48 | 47 | ||
48 | unsigned int i915_lvds_downclock = 0; | ||
49 | module_param_named(lvds_downclock, i915_lvds_downclock, int, 0400); | ||
50 | |||
49 | static struct drm_driver driver; | 51 | static struct drm_driver driver; |
50 | 52 | ||
51 | static struct pci_device_id pciidlist[] = { | 53 | #define INTEL_VGA_DEVICE(id, info) { \ |
52 | i915_PCI_IDS | 54 | .class = PCI_CLASS_DISPLAY_VGA << 8, \ |
55 | .class_mask = 0xffff00, \ | ||
56 | .vendor = 0x8086, \ | ||
57 | .device = id, \ | ||
58 | .subvendor = PCI_ANY_ID, \ | ||
59 | .subdevice = PCI_ANY_ID, \ | ||
60 | .driver_data = (unsigned long) info } | ||
61 | |||
62 | const static struct intel_device_info intel_i830_info = { | ||
63 | .is_i8xx = 1, .is_mobile = 1, .cursor_needs_physical = 1, | ||
64 | }; | ||
65 | |||
66 | const static struct intel_device_info intel_845g_info = { | ||
67 | .is_i8xx = 1, | ||
68 | }; | ||
69 | |||
70 | const static struct intel_device_info intel_i85x_info = { | ||
71 | .is_i8xx = 1, .is_mobile = 1, .cursor_needs_physical = 1, | ||
72 | }; | ||
73 | |||
74 | const static struct intel_device_info intel_i865g_info = { | ||
75 | .is_i8xx = 1, | ||
76 | }; | ||
77 | |||
78 | const static struct intel_device_info intel_i915g_info = { | ||
79 | .is_i915g = 1, .is_i9xx = 1, .cursor_needs_physical = 1, | ||
80 | }; | ||
81 | const static struct intel_device_info intel_i915gm_info = { | ||
82 | .is_i9xx = 1, .is_mobile = 1, .has_fbc = 1, | ||
83 | .cursor_needs_physical = 1, | ||
84 | }; | ||
85 | const static struct intel_device_info intel_i945g_info = { | ||
86 | .is_i9xx = 1, .has_hotplug = 1, .cursor_needs_physical = 1, | ||
87 | }; | ||
88 | const static struct intel_device_info intel_i945gm_info = { | ||
89 | .is_i945gm = 1, .is_i9xx = 1, .is_mobile = 1, .has_fbc = 1, | ||
90 | .has_hotplug = 1, .cursor_needs_physical = 1, | ||
91 | }; | ||
92 | |||
93 | const static struct intel_device_info intel_i965g_info = { | ||
94 | .is_i965g = 1, .is_i9xx = 1, .has_hotplug = 1, | ||
95 | }; | ||
96 | |||
97 | const static struct intel_device_info intel_i965gm_info = { | ||
98 | .is_i965g = 1, .is_mobile = 1, .is_i965gm = 1, .is_i9xx = 1, | ||
99 | .is_mobile = 1, .has_fbc = 1, .has_rc6 = 1, | ||
100 | .has_hotplug = 1, | ||
101 | }; | ||
102 | |||
103 | const static struct intel_device_info intel_g33_info = { | ||
104 | .is_g33 = 1, .is_i9xx = 1, .need_gfx_hws = 1, | ||
105 | .has_hotplug = 1, | ||
106 | }; | ||
107 | |||
108 | const static struct intel_device_info intel_g45_info = { | ||
109 | .is_i965g = 1, .is_g4x = 1, .is_i9xx = 1, .need_gfx_hws = 1, | ||
110 | .has_pipe_cxsr = 1, | ||
111 | .has_hotplug = 1, | ||
112 | }; | ||
113 | |||
114 | const static struct intel_device_info intel_gm45_info = { | ||
115 | .is_i965g = 1, .is_mobile = 1, .is_g4x = 1, .is_i9xx = 1, | ||
116 | .is_mobile = 1, .need_gfx_hws = 1, .has_fbc = 1, .has_rc6 = 1, | ||
117 | .has_pipe_cxsr = 1, | ||
118 | .has_hotplug = 1, | ||
119 | }; | ||
120 | |||
121 | const static struct intel_device_info intel_pineview_info = { | ||
122 | .is_g33 = 1, .is_pineview = 1, .is_mobile = 1, .is_i9xx = 1, | ||
123 | .has_pipe_cxsr = 1, | ||
124 | .has_hotplug = 1, | ||
125 | }; | ||
126 | |||
127 | const static struct intel_device_info intel_ironlake_d_info = { | ||
128 | .is_ironlake = 1, .is_i965g = 1, .is_i9xx = 1, .need_gfx_hws = 1, | ||
129 | .has_pipe_cxsr = 1, | ||
130 | .has_hotplug = 1, | ||
131 | }; | ||
132 | |||
133 | const static struct intel_device_info intel_ironlake_m_info = { | ||
134 | .is_ironlake = 1, .is_mobile = 1, .is_i965g = 1, .is_i9xx = 1, | ||
135 | .need_gfx_hws = 1, .has_rc6 = 1, | ||
136 | .has_hotplug = 1, | ||
137 | }; | ||
138 | |||
139 | const static struct pci_device_id pciidlist[] = { | ||
140 | INTEL_VGA_DEVICE(0x3577, &intel_i830_info), | ||
141 | INTEL_VGA_DEVICE(0x2562, &intel_845g_info), | ||
142 | INTEL_VGA_DEVICE(0x3582, &intel_i85x_info), | ||
143 | INTEL_VGA_DEVICE(0x35e8, &intel_i85x_info), | ||
144 | INTEL_VGA_DEVICE(0x2572, &intel_i865g_info), | ||
145 | INTEL_VGA_DEVICE(0x2582, &intel_i915g_info), | ||
146 | INTEL_VGA_DEVICE(0x258a, &intel_i915g_info), | ||
147 | INTEL_VGA_DEVICE(0x2592, &intel_i915gm_info), | ||
148 | INTEL_VGA_DEVICE(0x2772, &intel_i945g_info), | ||
149 | INTEL_VGA_DEVICE(0x27a2, &intel_i945gm_info), | ||
150 | INTEL_VGA_DEVICE(0x27ae, &intel_i945gm_info), | ||
151 | INTEL_VGA_DEVICE(0x2972, &intel_i965g_info), | ||
152 | INTEL_VGA_DEVICE(0x2982, &intel_i965g_info), | ||
153 | INTEL_VGA_DEVICE(0x2992, &intel_i965g_info), | ||
154 | INTEL_VGA_DEVICE(0x29a2, &intel_i965g_info), | ||
155 | INTEL_VGA_DEVICE(0x29b2, &intel_g33_info), | ||
156 | INTEL_VGA_DEVICE(0x29c2, &intel_g33_info), | ||
157 | INTEL_VGA_DEVICE(0x29d2, &intel_g33_info), | ||
158 | INTEL_VGA_DEVICE(0x2a02, &intel_i965gm_info), | ||
159 | INTEL_VGA_DEVICE(0x2a12, &intel_i965gm_info), | ||
160 | INTEL_VGA_DEVICE(0x2a42, &intel_gm45_info), | ||
161 | INTEL_VGA_DEVICE(0x2e02, &intel_g45_info), | ||
162 | INTEL_VGA_DEVICE(0x2e12, &intel_g45_info), | ||
163 | INTEL_VGA_DEVICE(0x2e22, &intel_g45_info), | ||
164 | INTEL_VGA_DEVICE(0x2e32, &intel_g45_info), | ||
165 | INTEL_VGA_DEVICE(0x2e42, &intel_g45_info), | ||
166 | INTEL_VGA_DEVICE(0xa001, &intel_pineview_info), | ||
167 | INTEL_VGA_DEVICE(0xa011, &intel_pineview_info), | ||
168 | INTEL_VGA_DEVICE(0x0042, &intel_ironlake_d_info), | ||
169 | INTEL_VGA_DEVICE(0x0046, &intel_ironlake_m_info), | ||
170 | {0, 0, 0} | ||
53 | }; | 171 | }; |
54 | 172 | ||
55 | #if defined(CONFIG_DRM_I915_KMS) | 173 | #if defined(CONFIG_DRM_I915_KMS) |
@@ -284,6 +402,52 @@ i915_pci_resume(struct pci_dev *pdev) | |||
284 | return i915_resume(dev); | 402 | return i915_resume(dev); |
285 | } | 403 | } |
286 | 404 | ||
405 | static int | ||
406 | i915_pm_suspend(struct device *dev) | ||
407 | { | ||
408 | return i915_pci_suspend(to_pci_dev(dev), PMSG_SUSPEND); | ||
409 | } | ||
410 | |||
411 | static int | ||
412 | i915_pm_resume(struct device *dev) | ||
413 | { | ||
414 | return i915_pci_resume(to_pci_dev(dev)); | ||
415 | } | ||
416 | |||
417 | static int | ||
418 | i915_pm_freeze(struct device *dev) | ||
419 | { | ||
420 | return i915_pci_suspend(to_pci_dev(dev), PMSG_FREEZE); | ||
421 | } | ||
422 | |||
423 | static int | ||
424 | i915_pm_thaw(struct device *dev) | ||
425 | { | ||
426 | /* thaw during hibernate, do nothing! */ | ||
427 | return 0; | ||
428 | } | ||
429 | |||
430 | static int | ||
431 | i915_pm_poweroff(struct device *dev) | ||
432 | { | ||
433 | return i915_pci_suspend(to_pci_dev(dev), PMSG_HIBERNATE); | ||
434 | } | ||
435 | |||
436 | static int | ||
437 | i915_pm_restore(struct device *dev) | ||
438 | { | ||
439 | return i915_pci_resume(to_pci_dev(dev)); | ||
440 | } | ||
441 | |||
442 | const struct dev_pm_ops i915_pm_ops = { | ||
443 | .suspend = i915_pm_suspend, | ||
444 | .resume = i915_pm_resume, | ||
445 | .freeze = i915_pm_freeze, | ||
446 | .thaw = i915_pm_thaw, | ||
447 | .poweroff = i915_pm_poweroff, | ||
448 | .restore = i915_pm_restore, | ||
449 | }; | ||
450 | |||
287 | static struct vm_operations_struct i915_gem_vm_ops = { | 451 | static struct vm_operations_struct i915_gem_vm_ops = { |
288 | .fault = i915_gem_fault, | 452 | .fault = i915_gem_fault, |
289 | .open = drm_gem_vm_open, | 453 | .open = drm_gem_vm_open, |
@@ -303,8 +467,11 @@ static struct drm_driver driver = { | |||
303 | .lastclose = i915_driver_lastclose, | 467 | .lastclose = i915_driver_lastclose, |
304 | .preclose = i915_driver_preclose, | 468 | .preclose = i915_driver_preclose, |
305 | .postclose = i915_driver_postclose, | 469 | .postclose = i915_driver_postclose, |
470 | |||
471 | /* Used in place of i915_pm_ops for non-DRIVER_MODESET */ | ||
306 | .suspend = i915_suspend, | 472 | .suspend = i915_suspend, |
307 | .resume = i915_resume, | 473 | .resume = i915_resume, |
474 | |||
308 | .device_is_agp = i915_driver_device_is_agp, | 475 | .device_is_agp = i915_driver_device_is_agp, |
309 | .enable_vblank = i915_enable_vblank, | 476 | .enable_vblank = i915_enable_vblank, |
310 | .disable_vblank = i915_disable_vblank, | 477 | .disable_vblank = i915_disable_vblank, |
@@ -344,10 +511,7 @@ static struct drm_driver driver = { | |||
344 | .id_table = pciidlist, | 511 | .id_table = pciidlist, |
345 | .probe = i915_pci_probe, | 512 | .probe = i915_pci_probe, |
346 | .remove = i915_pci_remove, | 513 | .remove = i915_pci_remove, |
347 | #ifdef CONFIG_PM | 514 | .driver.pm = &i915_pm_ops, |
348 | .resume = i915_pci_resume, | ||
349 | .suspend = i915_pci_suspend, | ||
350 | #endif | ||
351 | }, | 515 | }, |
352 | 516 | ||
353 | .name = DRIVER_NAME, | 517 | .name = DRIVER_NAME, |
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index fbecac72f5b..2c1669488b5 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -172,9 +172,31 @@ struct drm_i915_display_funcs { | |||
172 | 172 | ||
173 | struct intel_overlay; | 173 | struct intel_overlay; |
174 | 174 | ||
175 | struct intel_device_info { | ||
176 | u8 is_mobile : 1; | ||
177 | u8 is_i8xx : 1; | ||
178 | u8 is_i915g : 1; | ||
179 | u8 is_i9xx : 1; | ||
180 | u8 is_i945gm : 1; | ||
181 | u8 is_i965g : 1; | ||
182 | u8 is_i965gm : 1; | ||
183 | u8 is_g33 : 1; | ||
184 | u8 need_gfx_hws : 1; | ||
185 | u8 is_g4x : 1; | ||
186 | u8 is_pineview : 1; | ||
187 | u8 is_ironlake : 1; | ||
188 | u8 has_fbc : 1; | ||
189 | u8 has_rc6 : 1; | ||
190 | u8 has_pipe_cxsr : 1; | ||
191 | u8 has_hotplug : 1; | ||
192 | u8 cursor_needs_physical : 1; | ||
193 | }; | ||
194 | |||
175 | typedef struct drm_i915_private { | 195 | typedef struct drm_i915_private { |
176 | struct drm_device *dev; | 196 | struct drm_device *dev; |
177 | 197 | ||
198 | const struct intel_device_info *info; | ||
199 | |||
178 | int has_gem; | 200 | int has_gem; |
179 | 201 | ||
180 | void __iomem *regs; | 202 | void __iomem *regs; |
@@ -232,8 +254,6 @@ typedef struct drm_i915_private { | |||
232 | int hangcheck_count; | 254 | int hangcheck_count; |
233 | uint32_t last_acthd; | 255 | uint32_t last_acthd; |
234 | 256 | ||
235 | bool cursor_needs_physical; | ||
236 | |||
237 | struct drm_mm vram; | 257 | struct drm_mm vram; |
238 | 258 | ||
239 | unsigned long cfb_size; | 259 | unsigned long cfb_size; |
@@ -263,6 +283,7 @@ typedef struct drm_i915_private { | |||
263 | unsigned int lvds_use_ssc:1; | 283 | unsigned int lvds_use_ssc:1; |
264 | unsigned int edp_support:1; | 284 | unsigned int edp_support:1; |
265 | int lvds_ssc_freq; | 285 | int lvds_ssc_freq; |
286 | int edp_bpp; | ||
266 | 287 | ||
267 | struct notifier_block lid_notifier; | 288 | struct notifier_block lid_notifier; |
268 | 289 | ||
@@ -287,8 +308,6 @@ typedef struct drm_i915_private { | |||
287 | u32 saveDSPACNTR; | 308 | u32 saveDSPACNTR; |
288 | u32 saveDSPBCNTR; | 309 | u32 saveDSPBCNTR; |
289 | u32 saveDSPARB; | 310 | u32 saveDSPARB; |
290 | u32 saveRENDERSTANDBY; | ||
291 | u32 savePWRCTXA; | ||
292 | u32 saveHWS; | 311 | u32 saveHWS; |
293 | u32 savePIPEACONF; | 312 | u32 savePIPEACONF; |
294 | u32 savePIPEBCONF; | 313 | u32 savePIPEBCONF; |
@@ -561,6 +580,7 @@ typedef struct drm_i915_private { | |||
561 | u16 orig_clock; | 580 | u16 orig_clock; |
562 | int child_dev_num; | 581 | int child_dev_num; |
563 | struct child_device_config *child_dev; | 582 | struct child_device_config *child_dev; |
583 | struct drm_connector *int_lvds_connector; | ||
564 | } drm_i915_private_t; | 584 | } drm_i915_private_t; |
565 | 585 | ||
566 | /** driver private structure attached to each drm_gem_object */ | 586 | /** driver private structure attached to each drm_gem_object */ |
@@ -703,6 +723,7 @@ extern struct drm_ioctl_desc i915_ioctls[]; | |||
703 | extern int i915_max_ioctl; | 723 | extern int i915_max_ioctl; |
704 | extern unsigned int i915_fbpercrtc; | 724 | extern unsigned int i915_fbpercrtc; |
705 | extern unsigned int i915_powersave; | 725 | extern unsigned int i915_powersave; |
726 | extern unsigned int i915_lvds_downclock; | ||
706 | 727 | ||
707 | extern void i915_save_display(struct drm_device *dev); | 728 | extern void i915_save_display(struct drm_device *dev); |
708 | extern void i915_restore_display(struct drm_device *dev); | 729 | extern void i915_restore_display(struct drm_device *dev); |
@@ -794,6 +815,8 @@ int i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data, | |||
794 | struct drm_file *file_priv); | 815 | struct drm_file *file_priv); |
795 | int i915_gem_execbuffer(struct drm_device *dev, void *data, | 816 | int i915_gem_execbuffer(struct drm_device *dev, void *data, |
796 | struct drm_file *file_priv); | 817 | struct drm_file *file_priv); |
818 | int i915_gem_execbuffer2(struct drm_device *dev, void *data, | ||
819 | struct drm_file *file_priv); | ||
797 | int i915_gem_pin_ioctl(struct drm_device *dev, void *data, | 820 | int i915_gem_pin_ioctl(struct drm_device *dev, void *data, |
798 | struct drm_file *file_priv); | 821 | struct drm_file *file_priv); |
799 | int i915_gem_unpin_ioctl(struct drm_device *dev, void *data, | 822 | int i915_gem_unpin_ioctl(struct drm_device *dev, void *data, |
@@ -843,6 +866,7 @@ int i915_do_wait_request(struct drm_device *dev, uint32_t seqno, int interruptib | |||
843 | int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf); | 866 | int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf); |
844 | int i915_gem_object_set_to_gtt_domain(struct drm_gem_object *obj, | 867 | int i915_gem_object_set_to_gtt_domain(struct drm_gem_object *obj, |
845 | int write); | 868 | int write); |
869 | int i915_gem_object_set_to_display_plane(struct drm_gem_object *obj); | ||
846 | int i915_gem_attach_phys_object(struct drm_device *dev, | 870 | int i915_gem_attach_phys_object(struct drm_device *dev, |
847 | struct drm_gem_object *obj, int id); | 871 | struct drm_gem_object *obj, int id); |
848 | void i915_gem_detach_phys_object(struct drm_device *dev, | 872 | void i915_gem_detach_phys_object(struct drm_device *dev, |
@@ -860,6 +884,9 @@ void i915_gem_shrinker_exit(void); | |||
860 | void i915_gem_detect_bit_6_swizzle(struct drm_device *dev); | 884 | void i915_gem_detect_bit_6_swizzle(struct drm_device *dev); |
861 | void i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj); | 885 | void i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj); |
862 | void i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj); | 886 | void i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj); |
887 | bool i915_tiling_ok(struct drm_device *dev, int stride, int size, | ||
888 | int tiling_mode); | ||
889 | bool i915_obj_fenceable(struct drm_device *dev, struct drm_gem_object *obj); | ||
863 | 890 | ||
864 | /* i915_gem_debug.c */ | 891 | /* i915_gem_debug.c */ |
865 | void i915_gem_dump_object(struct drm_gem_object *obj, int len, | 892 | void i915_gem_dump_object(struct drm_gem_object *obj, int len, |
@@ -982,67 +1009,33 @@ extern void g4x_disable_fbc(struct drm_device *dev); | |||
982 | extern int i915_wrap_ring(struct drm_device * dev); | 1009 | extern int i915_wrap_ring(struct drm_device * dev); |
983 | extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | 1010 | extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); |
984 | 1011 | ||
985 | #define IS_I830(dev) ((dev)->pci_device == 0x3577) | 1012 | #define INTEL_INFO(dev) (((struct drm_i915_private *) (dev)->dev_private)->info) |
986 | #define IS_845G(dev) ((dev)->pci_device == 0x2562) | 1013 | |
987 | #define IS_I85X(dev) ((dev)->pci_device == 0x3582) | 1014 | #define IS_I830(dev) ((dev)->pci_device == 0x3577) |
988 | #define IS_I865G(dev) ((dev)->pci_device == 0x2572) | 1015 | #define IS_845G(dev) ((dev)->pci_device == 0x2562) |
989 | #define IS_I8XX(dev) (IS_I830(dev) || IS_845G(dev) || IS_I85X(dev) || IS_I865G(dev)) | 1016 | #define IS_I85X(dev) ((dev)->pci_device == 0x3582) |
990 | 1017 | #define IS_I865G(dev) ((dev)->pci_device == 0x2572) | |
991 | #define IS_I915G(dev) ((dev)->pci_device == 0x2582 || (dev)->pci_device == 0x258a) | 1018 | #define IS_I8XX(dev) (INTEL_INFO(dev)->is_i8xx) |
992 | #define IS_I915GM(dev) ((dev)->pci_device == 0x2592) | 1019 | #define IS_I915G(dev) (INTEL_INFO(dev)->is_i915g) |
993 | #define IS_I945G(dev) ((dev)->pci_device == 0x2772) | 1020 | #define IS_I915GM(dev) ((dev)->pci_device == 0x2592) |
994 | #define IS_I945GM(dev) ((dev)->pci_device == 0x27A2 ||\ | 1021 | #define IS_I945G(dev) ((dev)->pci_device == 0x2772) |
995 | (dev)->pci_device == 0x27AE) | 1022 | #define IS_I945GM(dev) (INTEL_INFO(dev)->is_i945gm) |
996 | #define IS_I965G(dev) ((dev)->pci_device == 0x2972 || \ | 1023 | #define IS_I965G(dev) (INTEL_INFO(dev)->is_i965g) |
997 | (dev)->pci_device == 0x2982 || \ | 1024 | #define IS_I965GM(dev) (INTEL_INFO(dev)->is_i965gm) |
998 | (dev)->pci_device == 0x2992 || \ | 1025 | #define IS_GM45(dev) ((dev)->pci_device == 0x2A42) |
999 | (dev)->pci_device == 0x29A2 || \ | 1026 | #define IS_G4X(dev) (INTEL_INFO(dev)->is_g4x) |
1000 | (dev)->pci_device == 0x2A02 || \ | 1027 | #define IS_PINEVIEW_G(dev) ((dev)->pci_device == 0xa001) |
1001 | (dev)->pci_device == 0x2A12 || \ | 1028 | #define IS_PINEVIEW_M(dev) ((dev)->pci_device == 0xa011) |
1002 | (dev)->pci_device == 0x2A42 || \ | 1029 | #define IS_PINEVIEW(dev) (INTEL_INFO(dev)->is_pineview) |
1003 | (dev)->pci_device == 0x2E02 || \ | 1030 | #define IS_G33(dev) (INTEL_INFO(dev)->is_g33) |
1004 | (dev)->pci_device == 0x2E12 || \ | ||
1005 | (dev)->pci_device == 0x2E22 || \ | ||
1006 | (dev)->pci_device == 0x2E32 || \ | ||
1007 | (dev)->pci_device == 0x2E42 || \ | ||
1008 | (dev)->pci_device == 0x0042 || \ | ||
1009 | (dev)->pci_device == 0x0046) | ||
1010 | |||
1011 | #define IS_I965GM(dev) ((dev)->pci_device == 0x2A02 || \ | ||
1012 | (dev)->pci_device == 0x2A12) | ||
1013 | |||
1014 | #define IS_GM45(dev) ((dev)->pci_device == 0x2A42) | ||
1015 | |||
1016 | #define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \ | ||
1017 | (dev)->pci_device == 0x2E12 || \ | ||
1018 | (dev)->pci_device == 0x2E22 || \ | ||
1019 | (dev)->pci_device == 0x2E32 || \ | ||
1020 | (dev)->pci_device == 0x2E42 || \ | ||
1021 | IS_GM45(dev)) | ||
1022 | |||
1023 | #define IS_PINEVIEW_G(dev) ((dev)->pci_device == 0xa001) | ||
1024 | #define IS_PINEVIEW_M(dev) ((dev)->pci_device == 0xa011) | ||
1025 | #define IS_PINEVIEW(dev) (IS_PINEVIEW_G(dev) || IS_PINEVIEW_M(dev)) | ||
1026 | |||
1027 | #define IS_G33(dev) ((dev)->pci_device == 0x29C2 || \ | ||
1028 | (dev)->pci_device == 0x29B2 || \ | ||
1029 | (dev)->pci_device == 0x29D2 || \ | ||
1030 | (IS_PINEVIEW(dev))) | ||
1031 | |||
1032 | #define IS_IRONLAKE_D(dev) ((dev)->pci_device == 0x0042) | 1031 | #define IS_IRONLAKE_D(dev) ((dev)->pci_device == 0x0042) |
1033 | #define IS_IRONLAKE_M(dev) ((dev)->pci_device == 0x0046) | 1032 | #define IS_IRONLAKE_M(dev) ((dev)->pci_device == 0x0046) |
1034 | #define IS_IRONLAKE(dev) (IS_IRONLAKE_D(dev) || IS_IRONLAKE_M(dev)) | 1033 | #define IS_IRONLAKE(dev) (INTEL_INFO(dev)->is_ironlake) |
1035 | 1034 | #define IS_I9XX(dev) (INTEL_INFO(dev)->is_i9xx) | |
1036 | #define IS_I9XX(dev) (IS_I915G(dev) || IS_I915GM(dev) || IS_I945G(dev) || \ | 1035 | #define IS_MOBILE(dev) (INTEL_INFO(dev)->is_mobile) |
1037 | IS_I945GM(dev) || IS_I965G(dev) || IS_G33(dev) || \ | ||
1038 | IS_IRONLAKE(dev)) | ||
1039 | 1036 | ||
1040 | #define IS_MOBILE(dev) (IS_I830(dev) || IS_I85X(dev) || IS_I915GM(dev) || \ | 1037 | #define I915_NEED_GFX_HWS(dev) (INTEL_INFO(dev)->need_gfx_hws) |
1041 | IS_I945GM(dev) || IS_I965GM(dev) || IS_GM45(dev) || \ | ||
1042 | IS_PINEVIEW(dev) || IS_IRONLAKE_M(dev)) | ||
1043 | 1038 | ||
1044 | #define I915_NEED_GFX_HWS(dev) (IS_G33(dev) || IS_GM45(dev) || IS_G4X(dev) || \ | ||
1045 | IS_IRONLAKE(dev)) | ||
1046 | /* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte | 1039 | /* With the 945 and later, Y tiling got adjusted so that it was 32 128-byte |
1047 | * rows, which changed the alignment requirements and fence programming. | 1040 | * rows, which changed the alignment requirements and fence programming. |
1048 | */ | 1041 | */ |
@@ -1054,17 +1047,14 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
1054 | #define SUPPORTS_EDP(dev) (IS_IRONLAKE_M(dev)) | 1047 | #define SUPPORTS_EDP(dev) (IS_IRONLAKE_M(dev)) |
1055 | #define SUPPORTS_TV(dev) (IS_I9XX(dev) && IS_MOBILE(dev) && \ | 1048 | #define SUPPORTS_TV(dev) (IS_I9XX(dev) && IS_MOBILE(dev) && \ |
1056 | !IS_IRONLAKE(dev) && !IS_PINEVIEW(dev)) | 1049 | !IS_IRONLAKE(dev) && !IS_PINEVIEW(dev)) |
1057 | #define I915_HAS_HOTPLUG(dev) (IS_I945G(dev) || IS_I945GM(dev) || IS_G33(dev) || IS_I965G(dev)) | 1050 | #define I915_HAS_HOTPLUG(dev) (INTEL_INFO(dev)->has_hotplug) |
1058 | /* dsparb controlled by hw only */ | 1051 | /* dsparb controlled by hw only */ |
1059 | #define DSPARB_HWCONTROL(dev) (IS_G4X(dev) || IS_IRONLAKE(dev)) | 1052 | #define DSPARB_HWCONTROL(dev) (IS_G4X(dev) || IS_IRONLAKE(dev)) |
1060 | 1053 | ||
1061 | #define HAS_FW_BLC(dev) (IS_I9XX(dev) || IS_G4X(dev) || IS_IRONLAKE(dev)) | 1054 | #define HAS_FW_BLC(dev) (IS_I9XX(dev) || IS_G4X(dev) || IS_IRONLAKE(dev)) |
1062 | #define HAS_PIPE_CXSR(dev) (IS_G4X(dev) || IS_IRONLAKE(dev)) | 1055 | #define HAS_PIPE_CXSR(dev) (INTEL_INFO(dev)->has_pipe_cxsr) |
1063 | #define I915_HAS_FBC(dev) (IS_MOBILE(dev) && \ | 1056 | #define I915_HAS_FBC(dev) (INTEL_INFO(dev)->has_fbc) |
1064 | (IS_I9XX(dev) || IS_GM45(dev)) && \ | 1057 | #define I915_HAS_RC6(dev) (INTEL_INFO(dev)->has_rc6) |
1065 | !IS_PINEVIEW(dev) && \ | ||
1066 | !IS_IRONLAKE(dev)) | ||
1067 | #define I915_HAS_RC6(dev) (IS_I965GM(dev) || IS_GM45(dev) || IS_IRONLAKE_M(dev)) | ||
1068 | 1058 | ||
1069 | #define PRIMARY_RINGBUFFER_SIZE (128*1024) | 1059 | #define PRIMARY_RINGBUFFER_SIZE (128*1024) |
1070 | 1060 | ||
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 8c463cf2050..0c67924ca80 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -2021,9 +2021,6 @@ i915_gem_object_unbind(struct drm_gem_object *obj) | |||
2021 | /* blow away mappings if mapped through GTT */ | 2021 | /* blow away mappings if mapped through GTT */ |
2022 | i915_gem_release_mmap(obj); | 2022 | i915_gem_release_mmap(obj); |
2023 | 2023 | ||
2024 | if (obj_priv->fence_reg != I915_FENCE_REG_NONE) | ||
2025 | i915_gem_clear_fence_reg(obj); | ||
2026 | |||
2027 | /* Move the object to the CPU domain to ensure that | 2024 | /* Move the object to the CPU domain to ensure that |
2028 | * any possible CPU writes while it's not in the GTT | 2025 | * any possible CPU writes while it's not in the GTT |
2029 | * are flushed when we go to remap it. This will | 2026 | * are flushed when we go to remap it. This will |
@@ -2039,6 +2036,10 @@ i915_gem_object_unbind(struct drm_gem_object *obj) | |||
2039 | 2036 | ||
2040 | BUG_ON(obj_priv->active); | 2037 | BUG_ON(obj_priv->active); |
2041 | 2038 | ||
2039 | /* release the fence reg _after_ flushing */ | ||
2040 | if (obj_priv->fence_reg != I915_FENCE_REG_NONE) | ||
2041 | i915_gem_clear_fence_reg(obj); | ||
2042 | |||
2042 | if (obj_priv->agp_mem != NULL) { | 2043 | if (obj_priv->agp_mem != NULL) { |
2043 | drm_unbind_agp(obj_priv->agp_mem); | 2044 | drm_unbind_agp(obj_priv->agp_mem); |
2044 | drm_free_agp(obj_priv->agp_mem, obj->size / PAGE_SIZE); | 2045 | drm_free_agp(obj_priv->agp_mem, obj->size / PAGE_SIZE); |
@@ -2581,9 +2582,6 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment) | |||
2581 | bool retry_alloc = false; | 2582 | bool retry_alloc = false; |
2582 | int ret; | 2583 | int ret; |
2583 | 2584 | ||
2584 | if (dev_priv->mm.suspended) | ||
2585 | return -EBUSY; | ||
2586 | |||
2587 | if (obj_priv->madv != I915_MADV_WILLNEED) { | 2585 | if (obj_priv->madv != I915_MADV_WILLNEED) { |
2588 | DRM_ERROR("Attempting to bind a purgeable object\n"); | 2586 | DRM_ERROR("Attempting to bind a purgeable object\n"); |
2589 | return -EINVAL; | 2587 | return -EINVAL; |
@@ -2839,6 +2837,57 @@ i915_gem_object_set_to_gtt_domain(struct drm_gem_object *obj, int write) | |||
2839 | return 0; | 2837 | return 0; |
2840 | } | 2838 | } |
2841 | 2839 | ||
2840 | /* | ||
2841 | * Prepare buffer for display plane. Use uninterruptible for possible flush | ||
2842 | * wait, as in modesetting process we're not supposed to be interrupted. | ||
2843 | */ | ||
2844 | int | ||
2845 | i915_gem_object_set_to_display_plane(struct drm_gem_object *obj) | ||
2846 | { | ||
2847 | struct drm_device *dev = obj->dev; | ||
2848 | struct drm_i915_gem_object *obj_priv = obj->driver_private; | ||
2849 | uint32_t old_write_domain, old_read_domains; | ||
2850 | int ret; | ||
2851 | |||
2852 | /* Not valid to be called on unbound objects. */ | ||
2853 | if (obj_priv->gtt_space == NULL) | ||
2854 | return -EINVAL; | ||
2855 | |||
2856 | i915_gem_object_flush_gpu_write_domain(obj); | ||
2857 | |||
2858 | /* Wait on any GPU rendering and flushing to occur. */ | ||
2859 | if (obj_priv->active) { | ||
2860 | #if WATCH_BUF | ||
2861 | DRM_INFO("%s: object %p wait for seqno %08x\n", | ||
2862 | __func__, obj, obj_priv->last_rendering_seqno); | ||
2863 | #endif | ||
2864 | ret = i915_do_wait_request(dev, obj_priv->last_rendering_seqno, 0); | ||
2865 | if (ret != 0) | ||
2866 | return ret; | ||
2867 | } | ||
2868 | |||
2869 | old_write_domain = obj->write_domain; | ||
2870 | old_read_domains = obj->read_domains; | ||
2871 | |||
2872 | obj->read_domains &= I915_GEM_DOMAIN_GTT; | ||
2873 | |||
2874 | i915_gem_object_flush_cpu_write_domain(obj); | ||
2875 | |||
2876 | /* It should now be out of any other write domains, and we can update | ||
2877 | * the domain values for our changes. | ||
2878 | */ | ||
2879 | BUG_ON((obj->write_domain & ~I915_GEM_DOMAIN_GTT) != 0); | ||
2880 | obj->read_domains |= I915_GEM_DOMAIN_GTT; | ||
2881 | obj->write_domain = I915_GEM_DOMAIN_GTT; | ||
2882 | obj_priv->dirty = 1; | ||
2883 | |||
2884 | trace_i915_gem_object_change_domain(obj, | ||
2885 | old_read_domains, | ||
2886 | old_write_domain); | ||
2887 | |||
2888 | return 0; | ||
2889 | } | ||
2890 | |||
2842 | /** | 2891 | /** |
2843 | * Moves a single object to the CPU read, and possibly write domain. | 2892 | * Moves a single object to the CPU read, and possibly write domain. |
2844 | * | 2893 | * |
@@ -3198,7 +3247,7 @@ i915_gem_object_set_cpu_read_domain_range(struct drm_gem_object *obj, | |||
3198 | static int | 3247 | static int |
3199 | i915_gem_object_pin_and_relocate(struct drm_gem_object *obj, | 3248 | i915_gem_object_pin_and_relocate(struct drm_gem_object *obj, |
3200 | struct drm_file *file_priv, | 3249 | struct drm_file *file_priv, |
3201 | struct drm_i915_gem_exec_object *entry, | 3250 | struct drm_i915_gem_exec_object2 *entry, |
3202 | struct drm_i915_gem_relocation_entry *relocs) | 3251 | struct drm_i915_gem_relocation_entry *relocs) |
3203 | { | 3252 | { |
3204 | struct drm_device *dev = obj->dev; | 3253 | struct drm_device *dev = obj->dev; |
@@ -3206,12 +3255,35 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj, | |||
3206 | struct drm_i915_gem_object *obj_priv = obj->driver_private; | 3255 | struct drm_i915_gem_object *obj_priv = obj->driver_private; |
3207 | int i, ret; | 3256 | int i, ret; |
3208 | void __iomem *reloc_page; | 3257 | void __iomem *reloc_page; |
3258 | bool need_fence; | ||
3259 | |||
3260 | need_fence = entry->flags & EXEC_OBJECT_NEEDS_FENCE && | ||
3261 | obj_priv->tiling_mode != I915_TILING_NONE; | ||
3262 | |||
3263 | /* Check fence reg constraints and rebind if necessary */ | ||
3264 | if (need_fence && !i915_obj_fenceable(dev, obj)) | ||
3265 | i915_gem_object_unbind(obj); | ||
3209 | 3266 | ||
3210 | /* Choose the GTT offset for our buffer and put it there. */ | 3267 | /* Choose the GTT offset for our buffer and put it there. */ |
3211 | ret = i915_gem_object_pin(obj, (uint32_t) entry->alignment); | 3268 | ret = i915_gem_object_pin(obj, (uint32_t) entry->alignment); |
3212 | if (ret) | 3269 | if (ret) |
3213 | return ret; | 3270 | return ret; |
3214 | 3271 | ||
3272 | /* | ||
3273 | * Pre-965 chips need a fence register set up in order to | ||
3274 | * properly handle blits to/from tiled surfaces. | ||
3275 | */ | ||
3276 | if (need_fence) { | ||
3277 | ret = i915_gem_object_get_fence_reg(obj); | ||
3278 | if (ret != 0) { | ||
3279 | if (ret != -EBUSY && ret != -ERESTARTSYS) | ||
3280 | DRM_ERROR("Failure to install fence: %d\n", | ||
3281 | ret); | ||
3282 | i915_gem_object_unpin(obj); | ||
3283 | return ret; | ||
3284 | } | ||
3285 | } | ||
3286 | |||
3215 | entry->offset = obj_priv->gtt_offset; | 3287 | entry->offset = obj_priv->gtt_offset; |
3216 | 3288 | ||
3217 | /* Apply the relocations, using the GTT aperture to avoid cache | 3289 | /* Apply the relocations, using the GTT aperture to avoid cache |
@@ -3373,7 +3445,7 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj, | |||
3373 | */ | 3445 | */ |
3374 | static int | 3446 | static int |
3375 | i915_dispatch_gem_execbuffer(struct drm_device *dev, | 3447 | i915_dispatch_gem_execbuffer(struct drm_device *dev, |
3376 | struct drm_i915_gem_execbuffer *exec, | 3448 | struct drm_i915_gem_execbuffer2 *exec, |
3377 | struct drm_clip_rect *cliprects, | 3449 | struct drm_clip_rect *cliprects, |
3378 | uint64_t exec_offset) | 3450 | uint64_t exec_offset) |
3379 | { | 3451 | { |
@@ -3463,7 +3535,7 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file_priv) | |||
3463 | } | 3535 | } |
3464 | 3536 | ||
3465 | static int | 3537 | static int |
3466 | i915_gem_get_relocs_from_user(struct drm_i915_gem_exec_object *exec_list, | 3538 | i915_gem_get_relocs_from_user(struct drm_i915_gem_exec_object2 *exec_list, |
3467 | uint32_t buffer_count, | 3539 | uint32_t buffer_count, |
3468 | struct drm_i915_gem_relocation_entry **relocs) | 3540 | struct drm_i915_gem_relocation_entry **relocs) |
3469 | { | 3541 | { |
@@ -3478,8 +3550,10 @@ i915_gem_get_relocs_from_user(struct drm_i915_gem_exec_object *exec_list, | |||
3478 | } | 3550 | } |
3479 | 3551 | ||
3480 | *relocs = drm_calloc_large(reloc_count, sizeof(**relocs)); | 3552 | *relocs = drm_calloc_large(reloc_count, sizeof(**relocs)); |
3481 | if (*relocs == NULL) | 3553 | if (*relocs == NULL) { |
3554 | DRM_ERROR("failed to alloc relocs, count %d\n", reloc_count); | ||
3482 | return -ENOMEM; | 3555 | return -ENOMEM; |
3556 | } | ||
3483 | 3557 | ||
3484 | for (i = 0; i < buffer_count; i++) { | 3558 | for (i = 0; i < buffer_count; i++) { |
3485 | struct drm_i915_gem_relocation_entry __user *user_relocs; | 3559 | struct drm_i915_gem_relocation_entry __user *user_relocs; |
@@ -3503,7 +3577,7 @@ i915_gem_get_relocs_from_user(struct drm_i915_gem_exec_object *exec_list, | |||
3503 | } | 3577 | } |
3504 | 3578 | ||
3505 | static int | 3579 | static int |
3506 | i915_gem_put_relocs_to_user(struct drm_i915_gem_exec_object *exec_list, | 3580 | i915_gem_put_relocs_to_user(struct drm_i915_gem_exec_object2 *exec_list, |
3507 | uint32_t buffer_count, | 3581 | uint32_t buffer_count, |
3508 | struct drm_i915_gem_relocation_entry *relocs) | 3582 | struct drm_i915_gem_relocation_entry *relocs) |
3509 | { | 3583 | { |
@@ -3536,7 +3610,7 @@ err: | |||
3536 | } | 3610 | } |
3537 | 3611 | ||
3538 | static int | 3612 | static int |
3539 | i915_gem_check_execbuffer (struct drm_i915_gem_execbuffer *exec, | 3613 | i915_gem_check_execbuffer (struct drm_i915_gem_execbuffer2 *exec, |
3540 | uint64_t exec_offset) | 3614 | uint64_t exec_offset) |
3541 | { | 3615 | { |
3542 | uint32_t exec_start, exec_len; | 3616 | uint32_t exec_start, exec_len; |
@@ -3589,18 +3663,18 @@ i915_gem_wait_for_pending_flip(struct drm_device *dev, | |||
3589 | } | 3663 | } |
3590 | 3664 | ||
3591 | int | 3665 | int |
3592 | i915_gem_execbuffer(struct drm_device *dev, void *data, | 3666 | i915_gem_do_execbuffer(struct drm_device *dev, void *data, |
3593 | struct drm_file *file_priv) | 3667 | struct drm_file *file_priv, |
3668 | struct drm_i915_gem_execbuffer2 *args, | ||
3669 | struct drm_i915_gem_exec_object2 *exec_list) | ||
3594 | { | 3670 | { |
3595 | drm_i915_private_t *dev_priv = dev->dev_private; | 3671 | drm_i915_private_t *dev_priv = dev->dev_private; |
3596 | struct drm_i915_gem_execbuffer *args = data; | ||
3597 | struct drm_i915_gem_exec_object *exec_list = NULL; | ||
3598 | struct drm_gem_object **object_list = NULL; | 3672 | struct drm_gem_object **object_list = NULL; |
3599 | struct drm_gem_object *batch_obj; | 3673 | struct drm_gem_object *batch_obj; |
3600 | struct drm_i915_gem_object *obj_priv; | 3674 | struct drm_i915_gem_object *obj_priv; |
3601 | struct drm_clip_rect *cliprects = NULL; | 3675 | struct drm_clip_rect *cliprects = NULL; |
3602 | struct drm_i915_gem_relocation_entry *relocs; | 3676 | struct drm_i915_gem_relocation_entry *relocs; |
3603 | int ret, ret2, i, pinned = 0; | 3677 | int ret = 0, ret2, i, pinned = 0; |
3604 | uint64_t exec_offset; | 3678 | uint64_t exec_offset; |
3605 | uint32_t seqno, flush_domains, reloc_index; | 3679 | uint32_t seqno, flush_domains, reloc_index; |
3606 | int pin_tries, flips; | 3680 | int pin_tries, flips; |
@@ -3614,25 +3688,13 @@ i915_gem_execbuffer(struct drm_device *dev, void *data, | |||
3614 | DRM_ERROR("execbuf with %d buffers\n", args->buffer_count); | 3688 | DRM_ERROR("execbuf with %d buffers\n", args->buffer_count); |
3615 | return -EINVAL; | 3689 | return -EINVAL; |
3616 | } | 3690 | } |
3617 | /* Copy in the exec list from userland */ | ||
3618 | exec_list = drm_malloc_ab(sizeof(*exec_list), args->buffer_count); | ||
3619 | object_list = drm_malloc_ab(sizeof(*object_list), args->buffer_count); | 3691 | object_list = drm_malloc_ab(sizeof(*object_list), args->buffer_count); |
3620 | if (exec_list == NULL || object_list == NULL) { | 3692 | if (object_list == NULL) { |
3621 | DRM_ERROR("Failed to allocate exec or object list " | 3693 | DRM_ERROR("Failed to allocate object list for %d buffers\n", |
3622 | "for %d buffers\n", | ||
3623 | args->buffer_count); | 3694 | args->buffer_count); |
3624 | ret = -ENOMEM; | 3695 | ret = -ENOMEM; |
3625 | goto pre_mutex_err; | 3696 | goto pre_mutex_err; |
3626 | } | 3697 | } |
3627 | ret = copy_from_user(exec_list, | ||
3628 | (struct drm_i915_relocation_entry __user *) | ||
3629 | (uintptr_t) args->buffers_ptr, | ||
3630 | sizeof(*exec_list) * args->buffer_count); | ||
3631 | if (ret != 0) { | ||
3632 | DRM_ERROR("copy %d exec entries failed %d\n", | ||
3633 | args->buffer_count, ret); | ||
3634 | goto pre_mutex_err; | ||
3635 | } | ||
3636 | 3698 | ||
3637 | if (args->num_cliprects != 0) { | 3699 | if (args->num_cliprects != 0) { |
3638 | cliprects = kcalloc(args->num_cliprects, sizeof(*cliprects), | 3700 | cliprects = kcalloc(args->num_cliprects, sizeof(*cliprects), |
@@ -3884,20 +3946,6 @@ err: | |||
3884 | 3946 | ||
3885 | mutex_unlock(&dev->struct_mutex); | 3947 | mutex_unlock(&dev->struct_mutex); |
3886 | 3948 | ||
3887 | if (!ret) { | ||
3888 | /* Copy the new buffer offsets back to the user's exec list. */ | ||
3889 | ret = copy_to_user((struct drm_i915_relocation_entry __user *) | ||
3890 | (uintptr_t) args->buffers_ptr, | ||
3891 | exec_list, | ||
3892 | sizeof(*exec_list) * args->buffer_count); | ||
3893 | if (ret) { | ||
3894 | ret = -EFAULT; | ||
3895 | DRM_ERROR("failed to copy %d exec entries " | ||
3896 | "back to user (%d)\n", | ||
3897 | args->buffer_count, ret); | ||
3898 | } | ||
3899 | } | ||
3900 | |||
3901 | /* Copy the updated relocations out regardless of current error | 3949 | /* Copy the updated relocations out regardless of current error |
3902 | * state. Failure to update the relocs would mean that the next | 3950 | * state. Failure to update the relocs would mean that the next |
3903 | * time userland calls execbuf, it would do so with presumed offset | 3951 | * time userland calls execbuf, it would do so with presumed offset |
@@ -3914,12 +3962,156 @@ err: | |||
3914 | 3962 | ||
3915 | pre_mutex_err: | 3963 | pre_mutex_err: |
3916 | drm_free_large(object_list); | 3964 | drm_free_large(object_list); |
3917 | drm_free_large(exec_list); | ||
3918 | kfree(cliprects); | 3965 | kfree(cliprects); |
3919 | 3966 | ||
3920 | return ret; | 3967 | return ret; |
3921 | } | 3968 | } |
3922 | 3969 | ||
3970 | /* | ||
3971 | * Legacy execbuffer just creates an exec2 list from the original exec object | ||
3972 | * list array and passes it to the real function. | ||
3973 | */ | ||
3974 | int | ||
3975 | i915_gem_execbuffer(struct drm_device *dev, void *data, | ||
3976 | struct drm_file *file_priv) | ||
3977 | { | ||
3978 | struct drm_i915_gem_execbuffer *args = data; | ||
3979 | struct drm_i915_gem_execbuffer2 exec2; | ||
3980 | struct drm_i915_gem_exec_object *exec_list = NULL; | ||
3981 | struct drm_i915_gem_exec_object2 *exec2_list = NULL; | ||
3982 | int ret, i; | ||
3983 | |||
3984 | #if WATCH_EXEC | ||
3985 | DRM_INFO("buffers_ptr %d buffer_count %d len %08x\n", | ||
3986 | (int) args->buffers_ptr, args->buffer_count, args->batch_len); | ||
3987 | #endif | ||
3988 | |||
3989 | if (args->buffer_count < 1) { | ||
3990 | DRM_ERROR("execbuf with %d buffers\n", args->buffer_count); | ||
3991 | return -EINVAL; | ||
3992 | } | ||
3993 | |||
3994 | /* Copy in the exec list from userland */ | ||
3995 | exec_list = drm_malloc_ab(sizeof(*exec_list), args->buffer_count); | ||
3996 | exec2_list = drm_malloc_ab(sizeof(*exec2_list), args->buffer_count); | ||
3997 | if (exec_list == NULL || exec2_list == NULL) { | ||
3998 | DRM_ERROR("Failed to allocate exec list for %d buffers\n", | ||
3999 | args->buffer_count); | ||
4000 | drm_free_large(exec_list); | ||
4001 | drm_free_large(exec2_list); | ||
4002 | return -ENOMEM; | ||
4003 | } | ||
4004 | ret = copy_from_user(exec_list, | ||
4005 | (struct drm_i915_relocation_entry __user *) | ||
4006 | (uintptr_t) args->buffers_ptr, | ||
4007 | sizeof(*exec_list) * args->buffer_count); | ||
4008 | if (ret != 0) { | ||
4009 | DRM_ERROR("copy %d exec entries failed %d\n", | ||
4010 | args->buffer_count, ret); | ||
4011 | drm_free_large(exec_list); | ||
4012 | drm_free_large(exec2_list); | ||
4013 | return -EFAULT; | ||
4014 | } | ||
4015 | |||
4016 | for (i = 0; i < args->buffer_count; i++) { | ||
4017 | exec2_list[i].handle = exec_list[i].handle; | ||
4018 | exec2_list[i].relocation_count = exec_list[i].relocation_count; | ||
4019 | exec2_list[i].relocs_ptr = exec_list[i].relocs_ptr; | ||
4020 | exec2_list[i].alignment = exec_list[i].alignment; | ||
4021 | exec2_list[i].offset = exec_list[i].offset; | ||
4022 | if (!IS_I965G(dev)) | ||
4023 | exec2_list[i].flags = EXEC_OBJECT_NEEDS_FENCE; | ||
4024 | else | ||
4025 | exec2_list[i].flags = 0; | ||
4026 | } | ||
4027 | |||
4028 | exec2.buffers_ptr = args->buffers_ptr; | ||
4029 | exec2.buffer_count = args->buffer_count; | ||
4030 | exec2.batch_start_offset = args->batch_start_offset; | ||
4031 | exec2.batch_len = args->batch_len; | ||
4032 | exec2.DR1 = args->DR1; | ||
4033 | exec2.DR4 = args->DR4; | ||
4034 | exec2.num_cliprects = args->num_cliprects; | ||
4035 | exec2.cliprects_ptr = args->cliprects_ptr; | ||
4036 | exec2.flags = 0; | ||
4037 | |||
4038 | ret = i915_gem_do_execbuffer(dev, data, file_priv, &exec2, exec2_list); | ||
4039 | if (!ret) { | ||
4040 | /* Copy the new buffer offsets back to the user's exec list. */ | ||
4041 | for (i = 0; i < args->buffer_count; i++) | ||
4042 | exec_list[i].offset = exec2_list[i].offset; | ||
4043 | /* ... and back out to userspace */ | ||
4044 | ret = copy_to_user((struct drm_i915_relocation_entry __user *) | ||
4045 | (uintptr_t) args->buffers_ptr, | ||
4046 | exec_list, | ||
4047 | sizeof(*exec_list) * args->buffer_count); | ||
4048 | if (ret) { | ||
4049 | ret = -EFAULT; | ||
4050 | DRM_ERROR("failed to copy %d exec entries " | ||
4051 | "back to user (%d)\n", | ||
4052 | args->buffer_count, ret); | ||
4053 | } | ||
4054 | } | ||
4055 | |||
4056 | drm_free_large(exec_list); | ||
4057 | drm_free_large(exec2_list); | ||
4058 | return ret; | ||
4059 | } | ||
4060 | |||
4061 | int | ||
4062 | i915_gem_execbuffer2(struct drm_device *dev, void *data, | ||
4063 | struct drm_file *file_priv) | ||
4064 | { | ||
4065 | struct drm_i915_gem_execbuffer2 *args = data; | ||
4066 | struct drm_i915_gem_exec_object2 *exec2_list = NULL; | ||
4067 | int ret; | ||
4068 | |||
4069 | #if WATCH_EXEC | ||
4070 | DRM_INFO("buffers_ptr %d buffer_count %d len %08x\n", | ||
4071 | (int) args->buffers_ptr, args->buffer_count, args->batch_len); | ||
4072 | #endif | ||
4073 | |||
4074 | if (args->buffer_count < 1) { | ||
4075 | DRM_ERROR("execbuf2 with %d buffers\n", args->buffer_count); | ||
4076 | return -EINVAL; | ||
4077 | } | ||
4078 | |||
4079 | exec2_list = drm_malloc_ab(sizeof(*exec2_list), args->buffer_count); | ||
4080 | if (exec2_list == NULL) { | ||
4081 | DRM_ERROR("Failed to allocate exec list for %d buffers\n", | ||
4082 | args->buffer_count); | ||
4083 | return -ENOMEM; | ||
4084 | } | ||
4085 | ret = copy_from_user(exec2_list, | ||
4086 | (struct drm_i915_relocation_entry __user *) | ||
4087 | (uintptr_t) args->buffers_ptr, | ||
4088 | sizeof(*exec2_list) * args->buffer_count); | ||
4089 | if (ret != 0) { | ||
4090 | DRM_ERROR("copy %d exec entries failed %d\n", | ||
4091 | args->buffer_count, ret); | ||
4092 | drm_free_large(exec2_list); | ||
4093 | return -EFAULT; | ||
4094 | } | ||
4095 | |||
4096 | ret = i915_gem_do_execbuffer(dev, data, file_priv, args, exec2_list); | ||
4097 | if (!ret) { | ||
4098 | /* Copy the new buffer offsets back to the user's exec list. */ | ||
4099 | ret = copy_to_user((struct drm_i915_relocation_entry __user *) | ||
4100 | (uintptr_t) args->buffers_ptr, | ||
4101 | exec2_list, | ||
4102 | sizeof(*exec2_list) * args->buffer_count); | ||
4103 | if (ret) { | ||
4104 | ret = -EFAULT; | ||
4105 | DRM_ERROR("failed to copy %d exec entries " | ||
4106 | "back to user (%d)\n", | ||
4107 | args->buffer_count, ret); | ||
4108 | } | ||
4109 | } | ||
4110 | |||
4111 | drm_free_large(exec2_list); | ||
4112 | return ret; | ||
4113 | } | ||
4114 | |||
3923 | int | 4115 | int |
3924 | i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment) | 4116 | i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment) |
3925 | { | 4117 | { |
@@ -3933,19 +4125,7 @@ i915_gem_object_pin(struct drm_gem_object *obj, uint32_t alignment) | |||
3933 | if (ret) | 4125 | if (ret) |
3934 | return ret; | 4126 | return ret; |
3935 | } | 4127 | } |
3936 | /* | 4128 | |
3937 | * Pre-965 chips need a fence register set up in order to | ||
3938 | * properly handle tiled surfaces. | ||
3939 | */ | ||
3940 | if (!IS_I965G(dev) && obj_priv->tiling_mode != I915_TILING_NONE) { | ||
3941 | ret = i915_gem_object_get_fence_reg(obj); | ||
3942 | if (ret != 0) { | ||
3943 | if (ret != -EBUSY && ret != -ERESTARTSYS) | ||
3944 | DRM_ERROR("Failure to install fence: %d\n", | ||
3945 | ret); | ||
3946 | return ret; | ||
3947 | } | ||
3948 | } | ||
3949 | obj_priv->pin_count++; | 4129 | obj_priv->pin_count++; |
3950 | 4130 | ||
3951 | /* If the object is not active and not pending a flush, | 4131 | /* If the object is not active and not pending a flush, |
@@ -4708,7 +4888,7 @@ int i915_gem_init_phys_object(struct drm_device *dev, | |||
4708 | 4888 | ||
4709 | phys_obj->id = id; | 4889 | phys_obj->id = id; |
4710 | 4890 | ||
4711 | phys_obj->handle = drm_pci_alloc(dev, size, 0, 0xffffffff); | 4891 | phys_obj->handle = drm_pci_alloc(dev, size, 0); |
4712 | if (!phys_obj->handle) { | 4892 | if (!phys_obj->handle) { |
4713 | ret = -ENOMEM; | 4893 | ret = -ENOMEM; |
4714 | goto kfree_obj; | 4894 | goto kfree_obj; |
diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c index 30d6af6c09b..df278b2685b 100644 --- a/drivers/gpu/drm/i915/i915_gem_tiling.c +++ b/drivers/gpu/drm/i915/i915_gem_tiling.c | |||
@@ -304,35 +304,39 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev) | |||
304 | 304 | ||
305 | 305 | ||
306 | /** | 306 | /** |
307 | * Returns the size of the fence for a tiled object of the given size. | 307 | * Returns whether an object is currently fenceable. If not, it may need |
308 | * to be unbound and have its pitch adjusted. | ||
308 | */ | 309 | */ |
309 | static int | 310 | bool |
310 | i915_get_fence_size(struct drm_device *dev, int size) | 311 | i915_obj_fenceable(struct drm_device *dev, struct drm_gem_object *obj) |
311 | { | 312 | { |
312 | int i; | 313 | struct drm_i915_gem_object *obj_priv = obj->driver_private; |
313 | int start; | ||
314 | 314 | ||
315 | if (IS_I965G(dev)) { | 315 | if (IS_I965G(dev)) { |
316 | /* The 965 can have fences at any page boundary. */ | 316 | /* The 965 can have fences at any page boundary. */ |
317 | return ALIGN(size, 4096); | 317 | if (obj->size & 4095) |
318 | return false; | ||
319 | return true; | ||
320 | } else if (IS_I9XX(dev)) { | ||
321 | if (obj_priv->gtt_offset & ~I915_FENCE_START_MASK) | ||
322 | return false; | ||
318 | } else { | 323 | } else { |
319 | /* Align the size to a power of two greater than the smallest | 324 | if (obj_priv->gtt_offset & ~I830_FENCE_START_MASK) |
320 | * fence size. | 325 | return false; |
321 | */ | 326 | } |
322 | if (IS_I9XX(dev)) | ||
323 | start = 1024 * 1024; | ||
324 | else | ||
325 | start = 512 * 1024; | ||
326 | 327 | ||
327 | for (i = start; i < size; i <<= 1) | 328 | /* Power of two sized... */ |
328 | ; | 329 | if (obj->size & (obj->size - 1)) |
330 | return false; | ||
329 | 331 | ||
330 | return i; | 332 | /* Objects must be size aligned as well */ |
331 | } | 333 | if (obj_priv->gtt_offset & (obj->size - 1)) |
334 | return false; | ||
335 | return true; | ||
332 | } | 336 | } |
333 | 337 | ||
334 | /* Check pitch constriants for all chips & tiling formats */ | 338 | /* Check pitch constriants for all chips & tiling formats */ |
335 | static bool | 339 | bool |
336 | i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode) | 340 | i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode) |
337 | { | 341 | { |
338 | int tile_width; | 342 | int tile_width; |
@@ -384,12 +388,6 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode) | |||
384 | if (stride & (stride - 1)) | 388 | if (stride & (stride - 1)) |
385 | return false; | 389 | return false; |
386 | 390 | ||
387 | /* We don't 0handle the aperture area covered by the fence being bigger | ||
388 | * than the object size. | ||
389 | */ | ||
390 | if (i915_get_fence_size(dev, size) != size) | ||
391 | return false; | ||
392 | |||
393 | return true; | 391 | return true; |
394 | } | 392 | } |
395 | 393 | ||
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 85f4c5de97e..89a071a3e6f 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c | |||
@@ -274,7 +274,6 @@ irqreturn_t ironlake_irq_handler(struct drm_device *dev) | |||
274 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 274 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
275 | int ret = IRQ_NONE; | 275 | int ret = IRQ_NONE; |
276 | u32 de_iir, gt_iir, de_ier, pch_iir; | 276 | u32 de_iir, gt_iir, de_ier, pch_iir; |
277 | u32 new_de_iir, new_gt_iir, new_pch_iir; | ||
278 | struct drm_i915_master_private *master_priv; | 277 | struct drm_i915_master_private *master_priv; |
279 | 278 | ||
280 | /* disable master interrupt before clearing iir */ | 279 | /* disable master interrupt before clearing iir */ |
@@ -286,49 +285,42 @@ irqreturn_t ironlake_irq_handler(struct drm_device *dev) | |||
286 | gt_iir = I915_READ(GTIIR); | 285 | gt_iir = I915_READ(GTIIR); |
287 | pch_iir = I915_READ(SDEIIR); | 286 | pch_iir = I915_READ(SDEIIR); |
288 | 287 | ||
289 | for (;;) { | 288 | if (de_iir == 0 && gt_iir == 0 && pch_iir == 0) |
290 | if (de_iir == 0 && gt_iir == 0 && pch_iir == 0) | 289 | goto done; |
291 | break; | ||
292 | |||
293 | ret = IRQ_HANDLED; | ||
294 | 290 | ||
295 | /* should clear PCH hotplug event before clear CPU irq */ | 291 | ret = IRQ_HANDLED; |
296 | I915_WRITE(SDEIIR, pch_iir); | ||
297 | new_pch_iir = I915_READ(SDEIIR); | ||
298 | |||
299 | I915_WRITE(DEIIR, de_iir); | ||
300 | new_de_iir = I915_READ(DEIIR); | ||
301 | I915_WRITE(GTIIR, gt_iir); | ||
302 | new_gt_iir = I915_READ(GTIIR); | ||
303 | |||
304 | if (dev->primary->master) { | ||
305 | master_priv = dev->primary->master->driver_priv; | ||
306 | if (master_priv->sarea_priv) | ||
307 | master_priv->sarea_priv->last_dispatch = | ||
308 | READ_BREADCRUMB(dev_priv); | ||
309 | } | ||
310 | 292 | ||
311 | if (gt_iir & GT_USER_INTERRUPT) { | 293 | if (dev->primary->master) { |
312 | u32 seqno = i915_get_gem_seqno(dev); | 294 | master_priv = dev->primary->master->driver_priv; |
313 | dev_priv->mm.irq_gem_seqno = seqno; | 295 | if (master_priv->sarea_priv) |
314 | trace_i915_gem_request_complete(dev, seqno); | 296 | master_priv->sarea_priv->last_dispatch = |
315 | DRM_WAKEUP(&dev_priv->irq_queue); | 297 | READ_BREADCRUMB(dev_priv); |
316 | } | 298 | } |
317 | 299 | ||
318 | if (de_iir & DE_GSE) | 300 | if (gt_iir & GT_USER_INTERRUPT) { |
319 | ironlake_opregion_gse_intr(dev); | 301 | u32 seqno = i915_get_gem_seqno(dev); |
302 | dev_priv->mm.irq_gem_seqno = seqno; | ||
303 | trace_i915_gem_request_complete(dev, seqno); | ||
304 | DRM_WAKEUP(&dev_priv->irq_queue); | ||
305 | dev_priv->hangcheck_count = 0; | ||
306 | mod_timer(&dev_priv->hangcheck_timer, jiffies + DRM_I915_HANGCHECK_PERIOD); | ||
307 | } | ||
320 | 308 | ||
321 | /* check event from PCH */ | 309 | if (de_iir & DE_GSE) |
322 | if ((de_iir & DE_PCH_EVENT) && | 310 | ironlake_opregion_gse_intr(dev); |
323 | (pch_iir & SDE_HOTPLUG_MASK)) { | ||
324 | queue_work(dev_priv->wq, &dev_priv->hotplug_work); | ||
325 | } | ||
326 | 311 | ||
327 | de_iir = new_de_iir; | 312 | /* check event from PCH */ |
328 | gt_iir = new_gt_iir; | 313 | if ((de_iir & DE_PCH_EVENT) && |
329 | pch_iir = new_pch_iir; | 314 | (pch_iir & SDE_HOTPLUG_MASK)) { |
315 | queue_work(dev_priv->wq, &dev_priv->hotplug_work); | ||
330 | } | 316 | } |
331 | 317 | ||
318 | /* should clear PCH hotplug event before clear CPU irq */ | ||
319 | I915_WRITE(SDEIIR, pch_iir); | ||
320 | I915_WRITE(GTIIR, gt_iir); | ||
321 | I915_WRITE(DEIIR, de_iir); | ||
322 | |||
323 | done: | ||
332 | I915_WRITE(DEIER, de_ier); | 324 | I915_WRITE(DEIER, de_ier); |
333 | (void)I915_READ(DEIER); | 325 | (void)I915_READ(DEIER); |
334 | 326 | ||
@@ -1084,6 +1076,10 @@ void i915_driver_irq_preinstall(struct drm_device * dev) | |||
1084 | (void) I915_READ(IER); | 1076 | (void) I915_READ(IER); |
1085 | } | 1077 | } |
1086 | 1078 | ||
1079 | /* | ||
1080 | * Must be called after intel_modeset_init or hotplug interrupts won't be | ||
1081 | * enabled correctly. | ||
1082 | */ | ||
1087 | int i915_driver_irq_postinstall(struct drm_device *dev) | 1083 | int i915_driver_irq_postinstall(struct drm_device *dev) |
1088 | { | 1084 | { |
1089 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 1085 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
@@ -1106,19 +1102,23 @@ int i915_driver_irq_postinstall(struct drm_device *dev) | |||
1106 | if (I915_HAS_HOTPLUG(dev)) { | 1102 | if (I915_HAS_HOTPLUG(dev)) { |
1107 | u32 hotplug_en = I915_READ(PORT_HOTPLUG_EN); | 1103 | u32 hotplug_en = I915_READ(PORT_HOTPLUG_EN); |
1108 | 1104 | ||
1109 | /* Leave other bits alone */ | 1105 | /* Note HDMI and DP share bits */ |
1110 | hotplug_en |= HOTPLUG_EN_MASK; | 1106 | if (dev_priv->hotplug_supported_mask & HDMIB_HOTPLUG_INT_STATUS) |
1107 | hotplug_en |= HDMIB_HOTPLUG_INT_EN; | ||
1108 | if (dev_priv->hotplug_supported_mask & HDMIC_HOTPLUG_INT_STATUS) | ||
1109 | hotplug_en |= HDMIC_HOTPLUG_INT_EN; | ||
1110 | if (dev_priv->hotplug_supported_mask & HDMID_HOTPLUG_INT_STATUS) | ||
1111 | hotplug_en |= HDMID_HOTPLUG_INT_EN; | ||
1112 | if (dev_priv->hotplug_supported_mask & SDVOC_HOTPLUG_INT_STATUS) | ||
1113 | hotplug_en |= SDVOC_HOTPLUG_INT_EN; | ||
1114 | if (dev_priv->hotplug_supported_mask & SDVOB_HOTPLUG_INT_STATUS) | ||
1115 | hotplug_en |= SDVOB_HOTPLUG_INT_EN; | ||
1116 | if (dev_priv->hotplug_supported_mask & CRT_HOTPLUG_INT_STATUS) | ||
1117 | hotplug_en |= CRT_HOTPLUG_INT_EN; | ||
1118 | /* Ignore TV since it's buggy */ | ||
1119 | |||
1111 | I915_WRITE(PORT_HOTPLUG_EN, hotplug_en); | 1120 | I915_WRITE(PORT_HOTPLUG_EN, hotplug_en); |
1112 | 1121 | ||
1113 | dev_priv->hotplug_supported_mask = CRT_HOTPLUG_INT_STATUS | | ||
1114 | TV_HOTPLUG_INT_STATUS | SDVOC_HOTPLUG_INT_STATUS | | ||
1115 | SDVOB_HOTPLUG_INT_STATUS; | ||
1116 | if (IS_G4X(dev)) { | ||
1117 | dev_priv->hotplug_supported_mask |= | ||
1118 | HDMIB_HOTPLUG_INT_STATUS | | ||
1119 | HDMIC_HOTPLUG_INT_STATUS | | ||
1120 | HDMID_HOTPLUG_INT_STATUS; | ||
1121 | } | ||
1122 | /* Enable in IER... */ | 1122 | /* Enable in IER... */ |
1123 | enable_mask |= I915_DISPLAY_PORT_INTERRUPT; | 1123 | enable_mask |= I915_DISPLAY_PORT_INTERRUPT; |
1124 | /* and unmask in IMR */ | 1124 | /* and unmask in IMR */ |
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 974b3cf7061..847006c5218 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -879,13 +879,6 @@ | |||
879 | #define CRT_HOTPLUG_DETECT_VOLTAGE_475MV (1 << 2) | 879 | #define CRT_HOTPLUG_DETECT_VOLTAGE_475MV (1 << 2) |
880 | #define CRT_HOTPLUG_MASK (0x3fc) /* Bits 9-2 */ | 880 | #define CRT_HOTPLUG_MASK (0x3fc) /* Bits 9-2 */ |
881 | #define CRT_FORCE_HOTPLUG_MASK 0xfffffe1f | 881 | #define CRT_FORCE_HOTPLUG_MASK 0xfffffe1f |
882 | #define HOTPLUG_EN_MASK (HDMIB_HOTPLUG_INT_EN | \ | ||
883 | HDMIC_HOTPLUG_INT_EN | \ | ||
884 | HDMID_HOTPLUG_INT_EN | \ | ||
885 | SDVOB_HOTPLUG_INT_EN | \ | ||
886 | SDVOC_HOTPLUG_INT_EN | \ | ||
887 | CRT_HOTPLUG_INT_EN) | ||
888 | |||
889 | 882 | ||
890 | #define PORT_HOTPLUG_STAT 0x61114 | 883 | #define PORT_HOTPLUG_STAT 0x61114 |
891 | #define HDMIB_HOTPLUG_INT_STATUS (1 << 29) | 884 | #define HDMIB_HOTPLUG_INT_STATUS (1 << 29) |
@@ -982,6 +975,8 @@ | |||
982 | #define LVDS_PORT_EN (1 << 31) | 975 | #define LVDS_PORT_EN (1 << 31) |
983 | /* Selects pipe B for LVDS data. Must be set on pre-965. */ | 976 | /* Selects pipe B for LVDS data. Must be set on pre-965. */ |
984 | #define LVDS_PIPEB_SELECT (1 << 30) | 977 | #define LVDS_PIPEB_SELECT (1 << 30) |
978 | /* LVDS dithering flag on 965/g4x platform */ | ||
979 | #define LVDS_ENABLE_DITHER (1 << 25) | ||
985 | /* Enable border for unscaled (or aspect-scaled) display */ | 980 | /* Enable border for unscaled (or aspect-scaled) display */ |
986 | #define LVDS_BORDER_ENABLE (1 << 15) | 981 | #define LVDS_BORDER_ENABLE (1 << 15) |
987 | /* | 982 | /* |
@@ -1751,6 +1746,8 @@ | |||
1751 | 1746 | ||
1752 | /* Display & cursor control */ | 1747 | /* Display & cursor control */ |
1753 | 1748 | ||
1749 | /* dithering flag on Ironlake */ | ||
1750 | #define PIPE_ENABLE_DITHER (1 << 4) | ||
1754 | /* Pipe A */ | 1751 | /* Pipe A */ |
1755 | #define PIPEADSL 0x70000 | 1752 | #define PIPEADSL 0x70000 |
1756 | #define PIPEACONF 0x70008 | 1753 | #define PIPEACONF 0x70008 |
@@ -1818,7 +1815,7 @@ | |||
1818 | #define DSPFW_PLANEB_SHIFT 8 | 1815 | #define DSPFW_PLANEB_SHIFT 8 |
1819 | #define DSPFW2 0x70038 | 1816 | #define DSPFW2 0x70038 |
1820 | #define DSPFW_CURSORA_MASK 0x00003f00 | 1817 | #define DSPFW_CURSORA_MASK 0x00003f00 |
1821 | #define DSPFW_CURSORA_SHIFT 16 | 1818 | #define DSPFW_CURSORA_SHIFT 8 |
1822 | #define DSPFW3 0x7003c | 1819 | #define DSPFW3 0x7003c |
1823 | #define DSPFW_HPLL_SR_EN (1<<31) | 1820 | #define DSPFW_HPLL_SR_EN (1<<31) |
1824 | #define DSPFW_CURSOR_SR_SHIFT 24 | 1821 | #define DSPFW_CURSOR_SR_SHIFT 24 |
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c index d5ebb00a9d4..a3b90c9561d 100644 --- a/drivers/gpu/drm/i915/i915_suspend.c +++ b/drivers/gpu/drm/i915/i915_suspend.c | |||
@@ -732,12 +732,6 @@ int i915_save_state(struct drm_device *dev) | |||
732 | 732 | ||
733 | pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB); | 733 | pci_read_config_byte(dev->pdev, LBB, &dev_priv->saveLBB); |
734 | 734 | ||
735 | /* Render Standby */ | ||
736 | if (I915_HAS_RC6(dev)) { | ||
737 | dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY); | ||
738 | dev_priv->savePWRCTXA = I915_READ(PWRCTXA); | ||
739 | } | ||
740 | |||
741 | /* Hardware status page */ | 735 | /* Hardware status page */ |
742 | dev_priv->saveHWS = I915_READ(HWS_PGA); | 736 | dev_priv->saveHWS = I915_READ(HWS_PGA); |
743 | 737 | ||
@@ -793,12 +787,6 @@ int i915_restore_state(struct drm_device *dev) | |||
793 | 787 | ||
794 | pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB); | 788 | pci_write_config_byte(dev->pdev, LBB, dev_priv->saveLBB); |
795 | 789 | ||
796 | /* Render Standby */ | ||
797 | if (I915_HAS_RC6(dev)) { | ||
798 | I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY); | ||
799 | I915_WRITE(PWRCTXA, dev_priv->savePWRCTXA); | ||
800 | } | ||
801 | |||
802 | /* Hardware status page */ | 790 | /* Hardware status page */ |
803 | I915_WRITE(HWS_PGA, dev_priv->saveHWS); | 791 | I915_WRITE(HWS_PGA, dev_priv->saveHWS); |
804 | 792 | ||
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c index f2756774758..15fbc1b5a83 100644 --- a/drivers/gpu/drm/i915/intel_bios.c +++ b/drivers/gpu/drm/i915/intel_bios.c | |||
@@ -33,6 +33,8 @@ | |||
33 | #define SLAVE_ADDR1 0x70 | 33 | #define SLAVE_ADDR1 0x70 |
34 | #define SLAVE_ADDR2 0x72 | 34 | #define SLAVE_ADDR2 0x72 |
35 | 35 | ||
36 | static int panel_type; | ||
37 | |||
36 | static void * | 38 | static void * |
37 | find_section(struct bdb_header *bdb, int section_id) | 39 | find_section(struct bdb_header *bdb, int section_id) |
38 | { | 40 | { |
@@ -128,6 +130,7 @@ parse_lfp_panel_data(struct drm_i915_private *dev_priv, | |||
128 | dev_priv->lvds_dither = lvds_options->pixel_dither; | 130 | dev_priv->lvds_dither = lvds_options->pixel_dither; |
129 | if (lvds_options->panel_type == 0xff) | 131 | if (lvds_options->panel_type == 0xff) |
130 | return; | 132 | return; |
133 | panel_type = lvds_options->panel_type; | ||
131 | 134 | ||
132 | lvds_lfp_data = find_section(bdb, BDB_LVDS_LFP_DATA); | 135 | lvds_lfp_data = find_section(bdb, BDB_LVDS_LFP_DATA); |
133 | if (!lvds_lfp_data) | 136 | if (!lvds_lfp_data) |
@@ -197,7 +200,8 @@ parse_lfp_panel_data(struct drm_i915_private *dev_priv, | |||
197 | memset(temp_mode, 0, sizeof(*temp_mode)); | 200 | memset(temp_mode, 0, sizeof(*temp_mode)); |
198 | } | 201 | } |
199 | kfree(temp_mode); | 202 | kfree(temp_mode); |
200 | if (temp_downclock < panel_fixed_mode->clock) { | 203 | if (temp_downclock < panel_fixed_mode->clock && |
204 | i915_lvds_downclock) { | ||
201 | dev_priv->lvds_downclock_avail = 1; | 205 | dev_priv->lvds_downclock_avail = 1; |
202 | dev_priv->lvds_downclock = temp_downclock; | 206 | dev_priv->lvds_downclock = temp_downclock; |
203 | DRM_DEBUG_KMS("LVDS downclock is found in VBT. ", | 207 | DRM_DEBUG_KMS("LVDS downclock is found in VBT. ", |
@@ -405,6 +409,34 @@ parse_driver_features(struct drm_i915_private *dev_priv, | |||
405 | } | 409 | } |
406 | 410 | ||
407 | static void | 411 | static void |
412 | parse_edp(struct drm_i915_private *dev_priv, struct bdb_header *bdb) | ||
413 | { | ||
414 | struct bdb_edp *edp; | ||
415 | |||
416 | edp = find_section(bdb, BDB_EDP); | ||
417 | if (!edp) { | ||
418 | if (SUPPORTS_EDP(dev_priv->dev) && dev_priv->edp_support) { | ||
419 | DRM_DEBUG_KMS("No eDP BDB found but eDP panel supported,\ | ||
420 | assume 18bpp panel color depth.\n"); | ||
421 | dev_priv->edp_bpp = 18; | ||
422 | } | ||
423 | return; | ||
424 | } | ||
425 | |||
426 | switch ((edp->color_depth >> (panel_type * 2)) & 3) { | ||
427 | case EDP_18BPP: | ||
428 | dev_priv->edp_bpp = 18; | ||
429 | break; | ||
430 | case EDP_24BPP: | ||
431 | dev_priv->edp_bpp = 24; | ||
432 | break; | ||
433 | case EDP_30BPP: | ||
434 | dev_priv->edp_bpp = 30; | ||
435 | break; | ||
436 | } | ||
437 | } | ||
438 | |||
439 | static void | ||
408 | parse_device_mapping(struct drm_i915_private *dev_priv, | 440 | parse_device_mapping(struct drm_i915_private *dev_priv, |
409 | struct bdb_header *bdb) | 441 | struct bdb_header *bdb) |
410 | { | 442 | { |
@@ -521,6 +553,7 @@ intel_init_bios(struct drm_device *dev) | |||
521 | parse_sdvo_device_mapping(dev_priv, bdb); | 553 | parse_sdvo_device_mapping(dev_priv, bdb); |
522 | parse_device_mapping(dev_priv, bdb); | 554 | parse_device_mapping(dev_priv, bdb); |
523 | parse_driver_features(dev_priv, bdb); | 555 | parse_driver_features(dev_priv, bdb); |
556 | parse_edp(dev_priv, bdb); | ||
524 | 557 | ||
525 | pci_unmap_rom(pdev, bios); | 558 | pci_unmap_rom(pdev, bios); |
526 | 559 | ||
diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h index 425ac9d7f72..4c18514f6f8 100644 --- a/drivers/gpu/drm/i915/intel_bios.h +++ b/drivers/gpu/drm/i915/intel_bios.h | |||
@@ -98,6 +98,7 @@ struct vbios_data { | |||
98 | #define BDB_SDVO_LVDS_PNP_IDS 24 | 98 | #define BDB_SDVO_LVDS_PNP_IDS 24 |
99 | #define BDB_SDVO_LVDS_POWER_SEQ 25 | 99 | #define BDB_SDVO_LVDS_POWER_SEQ 25 |
100 | #define BDB_TV_OPTIONS 26 | 100 | #define BDB_TV_OPTIONS 26 |
101 | #define BDB_EDP 27 | ||
101 | #define BDB_LVDS_OPTIONS 40 | 102 | #define BDB_LVDS_OPTIONS 40 |
102 | #define BDB_LVDS_LFP_DATA_PTRS 41 | 103 | #define BDB_LVDS_LFP_DATA_PTRS 41 |
103 | #define BDB_LVDS_LFP_DATA 42 | 104 | #define BDB_LVDS_LFP_DATA 42 |
@@ -426,6 +427,45 @@ struct bdb_driver_features { | |||
426 | u8 custom_vbt_version; | 427 | u8 custom_vbt_version; |
427 | } __attribute__((packed)); | 428 | } __attribute__((packed)); |
428 | 429 | ||
430 | #define EDP_18BPP 0 | ||
431 | #define EDP_24BPP 1 | ||
432 | #define EDP_30BPP 2 | ||
433 | #define EDP_RATE_1_62 0 | ||
434 | #define EDP_RATE_2_7 1 | ||
435 | #define EDP_LANE_1 0 | ||
436 | #define EDP_LANE_2 1 | ||
437 | #define EDP_LANE_4 3 | ||
438 | #define EDP_PREEMPHASIS_NONE 0 | ||
439 | #define EDP_PREEMPHASIS_3_5dB 1 | ||
440 | #define EDP_PREEMPHASIS_6dB 2 | ||
441 | #define EDP_PREEMPHASIS_9_5dB 3 | ||
442 | #define EDP_VSWING_0_4V 0 | ||
443 | #define EDP_VSWING_0_6V 1 | ||
444 | #define EDP_VSWING_0_8V 2 | ||
445 | #define EDP_VSWING_1_2V 3 | ||
446 | |||
447 | struct edp_power_seq { | ||
448 | u16 t3; | ||
449 | u16 t7; | ||
450 | u16 t9; | ||
451 | u16 t10; | ||
452 | u16 t12; | ||
453 | } __attribute__ ((packed)); | ||
454 | |||
455 | struct edp_link_params { | ||
456 | u8 rate:4; | ||
457 | u8 lanes:4; | ||
458 | u8 preemphasis:4; | ||
459 | u8 vswing:4; | ||
460 | } __attribute__ ((packed)); | ||
461 | |||
462 | struct bdb_edp { | ||
463 | struct edp_power_seq power_seqs[16]; | ||
464 | u32 color_depth; | ||
465 | u32 sdrrs_msa_timing_delay; | ||
466 | struct edp_link_params link_params[16]; | ||
467 | } __attribute__ ((packed)); | ||
468 | |||
429 | bool intel_init_bios(struct drm_device *dev); | 469 | bool intel_init_bios(struct drm_device *dev); |
430 | 470 | ||
431 | /* | 471 | /* |
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c index 9f3d3e56341..ddefc871edf 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c | |||
@@ -548,4 +548,6 @@ void intel_crt_init(struct drm_device *dev) | |||
548 | drm_connector_helper_add(connector, &intel_crt_connector_helper_funcs); | 548 | drm_connector_helper_add(connector, &intel_crt_connector_helper_funcs); |
549 | 549 | ||
550 | drm_sysfs_connector_add(connector); | 550 | drm_sysfs_connector_add(connector); |
551 | |||
552 | dev_priv->hotplug_supported_mask |= CRT_HOTPLUG_INT_STATUS; | ||
551 | } | 553 | } |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 52cd9b006da..45da78ef4a9 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -70,8 +70,6 @@ struct intel_limit { | |||
70 | intel_p2_t p2; | 70 | intel_p2_t p2; |
71 | bool (* find_pll)(const intel_limit_t *, struct drm_crtc *, | 71 | bool (* find_pll)(const intel_limit_t *, struct drm_crtc *, |
72 | int, int, intel_clock_t *); | 72 | int, int, intel_clock_t *); |
73 | bool (* find_reduced_pll)(const intel_limit_t *, struct drm_crtc *, | ||
74 | int, int, intel_clock_t *); | ||
75 | }; | 73 | }; |
76 | 74 | ||
77 | #define I8XX_DOT_MIN 25000 | 75 | #define I8XX_DOT_MIN 25000 |
@@ -243,11 +241,11 @@ struct intel_limit { | |||
243 | #define IRONLAKE_VCO_MIN 1760000 | 241 | #define IRONLAKE_VCO_MIN 1760000 |
244 | #define IRONLAKE_VCO_MAX 3510000 | 242 | #define IRONLAKE_VCO_MAX 3510000 |
245 | #define IRONLAKE_N_MIN 1 | 243 | #define IRONLAKE_N_MIN 1 |
246 | #define IRONLAKE_N_MAX 5 | 244 | #define IRONLAKE_N_MAX 6 |
247 | #define IRONLAKE_M_MIN 79 | 245 | #define IRONLAKE_M_MIN 79 |
248 | #define IRONLAKE_M_MAX 118 | 246 | #define IRONLAKE_M_MAX 127 |
249 | #define IRONLAKE_M1_MIN 12 | 247 | #define IRONLAKE_M1_MIN 12 |
250 | #define IRONLAKE_M1_MAX 23 | 248 | #define IRONLAKE_M1_MAX 22 |
251 | #define IRONLAKE_M2_MIN 5 | 249 | #define IRONLAKE_M2_MIN 5 |
252 | #define IRONLAKE_M2_MAX 9 | 250 | #define IRONLAKE_M2_MAX 9 |
253 | #define IRONLAKE_P_SDVO_DAC_MIN 5 | 251 | #define IRONLAKE_P_SDVO_DAC_MIN 5 |
@@ -262,18 +260,20 @@ struct intel_limit { | |||
262 | #define IRONLAKE_P2_LVDS_FAST 7 /* double channel */ | 260 | #define IRONLAKE_P2_LVDS_FAST 7 /* double channel */ |
263 | #define IRONLAKE_P2_DOT_LIMIT 225000 /* 225Mhz */ | 261 | #define IRONLAKE_P2_DOT_LIMIT 225000 /* 225Mhz */ |
264 | 262 | ||
263 | #define IRONLAKE_P_DISPLAY_PORT_MIN 10 | ||
264 | #define IRONLAKE_P_DISPLAY_PORT_MAX 20 | ||
265 | #define IRONLAKE_P2_DISPLAY_PORT_FAST 10 | ||
266 | #define IRONLAKE_P2_DISPLAY_PORT_SLOW 10 | ||
267 | #define IRONLAKE_P2_DISPLAY_PORT_LIMIT 0 | ||
268 | #define IRONLAKE_P1_DISPLAY_PORT_MIN 1 | ||
269 | #define IRONLAKE_P1_DISPLAY_PORT_MAX 2 | ||
270 | |||
265 | static bool | 271 | static bool |
266 | intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, | 272 | intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, |
267 | int target, int refclk, intel_clock_t *best_clock); | 273 | int target, int refclk, intel_clock_t *best_clock); |
268 | static bool | 274 | static bool |
269 | intel_find_best_reduced_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, | ||
270 | int target, int refclk, intel_clock_t *best_clock); | ||
271 | static bool | ||
272 | intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, | 275 | intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, |
273 | int target, int refclk, intel_clock_t *best_clock); | 276 | int target, int refclk, intel_clock_t *best_clock); |
274 | static bool | ||
275 | intel_ironlake_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, | ||
276 | int target, int refclk, intel_clock_t *best_clock); | ||
277 | 277 | ||
278 | static bool | 278 | static bool |
279 | intel_find_pll_g4x_dp(const intel_limit_t *, struct drm_crtc *crtc, | 279 | intel_find_pll_g4x_dp(const intel_limit_t *, struct drm_crtc *crtc, |
@@ -294,7 +294,6 @@ static const intel_limit_t intel_limits_i8xx_dvo = { | |||
294 | .p2 = { .dot_limit = I8XX_P2_SLOW_LIMIT, | 294 | .p2 = { .dot_limit = I8XX_P2_SLOW_LIMIT, |
295 | .p2_slow = I8XX_P2_SLOW, .p2_fast = I8XX_P2_FAST }, | 295 | .p2_slow = I8XX_P2_SLOW, .p2_fast = I8XX_P2_FAST }, |
296 | .find_pll = intel_find_best_PLL, | 296 | .find_pll = intel_find_best_PLL, |
297 | .find_reduced_pll = intel_find_best_reduced_PLL, | ||
298 | }; | 297 | }; |
299 | 298 | ||
300 | static const intel_limit_t intel_limits_i8xx_lvds = { | 299 | static const intel_limit_t intel_limits_i8xx_lvds = { |
@@ -309,7 +308,6 @@ static const intel_limit_t intel_limits_i8xx_lvds = { | |||
309 | .p2 = { .dot_limit = I8XX_P2_SLOW_LIMIT, | 308 | .p2 = { .dot_limit = I8XX_P2_SLOW_LIMIT, |
310 | .p2_slow = I8XX_P2_LVDS_SLOW, .p2_fast = I8XX_P2_LVDS_FAST }, | 309 | .p2_slow = I8XX_P2_LVDS_SLOW, .p2_fast = I8XX_P2_LVDS_FAST }, |
311 | .find_pll = intel_find_best_PLL, | 310 | .find_pll = intel_find_best_PLL, |
312 | .find_reduced_pll = intel_find_best_reduced_PLL, | ||
313 | }; | 311 | }; |
314 | 312 | ||
315 | static const intel_limit_t intel_limits_i9xx_sdvo = { | 313 | static const intel_limit_t intel_limits_i9xx_sdvo = { |
@@ -324,7 +322,6 @@ static const intel_limit_t intel_limits_i9xx_sdvo = { | |||
324 | .p2 = { .dot_limit = I9XX_P2_SDVO_DAC_SLOW_LIMIT, | 322 | .p2 = { .dot_limit = I9XX_P2_SDVO_DAC_SLOW_LIMIT, |
325 | .p2_slow = I9XX_P2_SDVO_DAC_SLOW, .p2_fast = I9XX_P2_SDVO_DAC_FAST }, | 323 | .p2_slow = I9XX_P2_SDVO_DAC_SLOW, .p2_fast = I9XX_P2_SDVO_DAC_FAST }, |
326 | .find_pll = intel_find_best_PLL, | 324 | .find_pll = intel_find_best_PLL, |
327 | .find_reduced_pll = intel_find_best_reduced_PLL, | ||
328 | }; | 325 | }; |
329 | 326 | ||
330 | static const intel_limit_t intel_limits_i9xx_lvds = { | 327 | static const intel_limit_t intel_limits_i9xx_lvds = { |
@@ -342,7 +339,6 @@ static const intel_limit_t intel_limits_i9xx_lvds = { | |||
342 | .p2 = { .dot_limit = I9XX_P2_LVDS_SLOW_LIMIT, | 339 | .p2 = { .dot_limit = I9XX_P2_LVDS_SLOW_LIMIT, |
343 | .p2_slow = I9XX_P2_LVDS_SLOW, .p2_fast = I9XX_P2_LVDS_FAST }, | 340 | .p2_slow = I9XX_P2_LVDS_SLOW, .p2_fast = I9XX_P2_LVDS_FAST }, |
344 | .find_pll = intel_find_best_PLL, | 341 | .find_pll = intel_find_best_PLL, |
345 | .find_reduced_pll = intel_find_best_reduced_PLL, | ||
346 | }; | 342 | }; |
347 | 343 | ||
348 | /* below parameter and function is for G4X Chipset Family*/ | 344 | /* below parameter and function is for G4X Chipset Family*/ |
@@ -360,7 +356,6 @@ static const intel_limit_t intel_limits_g4x_sdvo = { | |||
360 | .p2_fast = G4X_P2_SDVO_FAST | 356 | .p2_fast = G4X_P2_SDVO_FAST |
361 | }, | 357 | }, |
362 | .find_pll = intel_g4x_find_best_PLL, | 358 | .find_pll = intel_g4x_find_best_PLL, |
363 | .find_reduced_pll = intel_g4x_find_best_PLL, | ||
364 | }; | 359 | }; |
365 | 360 | ||
366 | static const intel_limit_t intel_limits_g4x_hdmi = { | 361 | static const intel_limit_t intel_limits_g4x_hdmi = { |
@@ -377,7 +372,6 @@ static const intel_limit_t intel_limits_g4x_hdmi = { | |||
377 | .p2_fast = G4X_P2_HDMI_DAC_FAST | 372 | .p2_fast = G4X_P2_HDMI_DAC_FAST |
378 | }, | 373 | }, |
379 | .find_pll = intel_g4x_find_best_PLL, | 374 | .find_pll = intel_g4x_find_best_PLL, |
380 | .find_reduced_pll = intel_g4x_find_best_PLL, | ||
381 | }; | 375 | }; |
382 | 376 | ||
383 | static const intel_limit_t intel_limits_g4x_single_channel_lvds = { | 377 | static const intel_limit_t intel_limits_g4x_single_channel_lvds = { |
@@ -402,7 +396,6 @@ static const intel_limit_t intel_limits_g4x_single_channel_lvds = { | |||
402 | .p2_fast = G4X_P2_SINGLE_CHANNEL_LVDS_FAST | 396 | .p2_fast = G4X_P2_SINGLE_CHANNEL_LVDS_FAST |
403 | }, | 397 | }, |
404 | .find_pll = intel_g4x_find_best_PLL, | 398 | .find_pll = intel_g4x_find_best_PLL, |
405 | .find_reduced_pll = intel_g4x_find_best_PLL, | ||
406 | }; | 399 | }; |
407 | 400 | ||
408 | static const intel_limit_t intel_limits_g4x_dual_channel_lvds = { | 401 | static const intel_limit_t intel_limits_g4x_dual_channel_lvds = { |
@@ -427,7 +420,6 @@ static const intel_limit_t intel_limits_g4x_dual_channel_lvds = { | |||
427 | .p2_fast = G4X_P2_DUAL_CHANNEL_LVDS_FAST | 420 | .p2_fast = G4X_P2_DUAL_CHANNEL_LVDS_FAST |
428 | }, | 421 | }, |
429 | .find_pll = intel_g4x_find_best_PLL, | 422 | .find_pll = intel_g4x_find_best_PLL, |
430 | .find_reduced_pll = intel_g4x_find_best_PLL, | ||
431 | }; | 423 | }; |
432 | 424 | ||
433 | static const intel_limit_t intel_limits_g4x_display_port = { | 425 | static const intel_limit_t intel_limits_g4x_display_port = { |
@@ -465,7 +457,6 @@ static const intel_limit_t intel_limits_pineview_sdvo = { | |||
465 | .p2 = { .dot_limit = I9XX_P2_SDVO_DAC_SLOW_LIMIT, | 457 | .p2 = { .dot_limit = I9XX_P2_SDVO_DAC_SLOW_LIMIT, |
466 | .p2_slow = I9XX_P2_SDVO_DAC_SLOW, .p2_fast = I9XX_P2_SDVO_DAC_FAST }, | 458 | .p2_slow = I9XX_P2_SDVO_DAC_SLOW, .p2_fast = I9XX_P2_SDVO_DAC_FAST }, |
467 | .find_pll = intel_find_best_PLL, | 459 | .find_pll = intel_find_best_PLL, |
468 | .find_reduced_pll = intel_find_best_reduced_PLL, | ||
469 | }; | 460 | }; |
470 | 461 | ||
471 | static const intel_limit_t intel_limits_pineview_lvds = { | 462 | static const intel_limit_t intel_limits_pineview_lvds = { |
@@ -481,7 +472,6 @@ static const intel_limit_t intel_limits_pineview_lvds = { | |||
481 | .p2 = { .dot_limit = I9XX_P2_LVDS_SLOW_LIMIT, | 472 | .p2 = { .dot_limit = I9XX_P2_LVDS_SLOW_LIMIT, |
482 | .p2_slow = I9XX_P2_LVDS_SLOW, .p2_fast = I9XX_P2_LVDS_SLOW }, | 473 | .p2_slow = I9XX_P2_LVDS_SLOW, .p2_fast = I9XX_P2_LVDS_SLOW }, |
483 | .find_pll = intel_find_best_PLL, | 474 | .find_pll = intel_find_best_PLL, |
484 | .find_reduced_pll = intel_find_best_reduced_PLL, | ||
485 | }; | 475 | }; |
486 | 476 | ||
487 | static const intel_limit_t intel_limits_ironlake_sdvo = { | 477 | static const intel_limit_t intel_limits_ironlake_sdvo = { |
@@ -496,7 +486,7 @@ static const intel_limit_t intel_limits_ironlake_sdvo = { | |||
496 | .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, | 486 | .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, |
497 | .p2_slow = IRONLAKE_P2_SDVO_DAC_SLOW, | 487 | .p2_slow = IRONLAKE_P2_SDVO_DAC_SLOW, |
498 | .p2_fast = IRONLAKE_P2_SDVO_DAC_FAST }, | 488 | .p2_fast = IRONLAKE_P2_SDVO_DAC_FAST }, |
499 | .find_pll = intel_ironlake_find_best_PLL, | 489 | .find_pll = intel_g4x_find_best_PLL, |
500 | }; | 490 | }; |
501 | 491 | ||
502 | static const intel_limit_t intel_limits_ironlake_lvds = { | 492 | static const intel_limit_t intel_limits_ironlake_lvds = { |
@@ -511,7 +501,30 @@ static const intel_limit_t intel_limits_ironlake_lvds = { | |||
511 | .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, | 501 | .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, |
512 | .p2_slow = IRONLAKE_P2_LVDS_SLOW, | 502 | .p2_slow = IRONLAKE_P2_LVDS_SLOW, |
513 | .p2_fast = IRONLAKE_P2_LVDS_FAST }, | 503 | .p2_fast = IRONLAKE_P2_LVDS_FAST }, |
514 | .find_pll = intel_ironlake_find_best_PLL, | 504 | .find_pll = intel_g4x_find_best_PLL, |
505 | }; | ||
506 | |||
507 | static const intel_limit_t intel_limits_ironlake_display_port = { | ||
508 | .dot = { .min = IRONLAKE_DOT_MIN, | ||
509 | .max = IRONLAKE_DOT_MAX }, | ||
510 | .vco = { .min = IRONLAKE_VCO_MIN, | ||
511 | .max = IRONLAKE_VCO_MAX}, | ||
512 | .n = { .min = IRONLAKE_N_MIN, | ||
513 | .max = IRONLAKE_N_MAX }, | ||
514 | .m = { .min = IRONLAKE_M_MIN, | ||
515 | .max = IRONLAKE_M_MAX }, | ||
516 | .m1 = { .min = IRONLAKE_M1_MIN, | ||
517 | .max = IRONLAKE_M1_MAX }, | ||
518 | .m2 = { .min = IRONLAKE_M2_MIN, | ||
519 | .max = IRONLAKE_M2_MAX }, | ||
520 | .p = { .min = IRONLAKE_P_DISPLAY_PORT_MIN, | ||
521 | .max = IRONLAKE_P_DISPLAY_PORT_MAX }, | ||
522 | .p1 = { .min = IRONLAKE_P1_DISPLAY_PORT_MIN, | ||
523 | .max = IRONLAKE_P1_DISPLAY_PORT_MAX}, | ||
524 | .p2 = { .dot_limit = IRONLAKE_P2_DISPLAY_PORT_LIMIT, | ||
525 | .p2_slow = IRONLAKE_P2_DISPLAY_PORT_SLOW, | ||
526 | .p2_fast = IRONLAKE_P2_DISPLAY_PORT_FAST }, | ||
527 | .find_pll = intel_find_pll_ironlake_dp, | ||
515 | }; | 528 | }; |
516 | 529 | ||
517 | static const intel_limit_t *intel_ironlake_limit(struct drm_crtc *crtc) | 530 | static const intel_limit_t *intel_ironlake_limit(struct drm_crtc *crtc) |
@@ -519,6 +532,9 @@ static const intel_limit_t *intel_ironlake_limit(struct drm_crtc *crtc) | |||
519 | const intel_limit_t *limit; | 532 | const intel_limit_t *limit; |
520 | if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) | 533 | if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) |
521 | limit = &intel_limits_ironlake_lvds; | 534 | limit = &intel_limits_ironlake_lvds; |
535 | else if (intel_pipe_has_type(crtc, INTEL_OUTPUT_DISPLAYPORT) || | ||
536 | HAS_eDP) | ||
537 | limit = &intel_limits_ironlake_display_port; | ||
522 | else | 538 | else |
523 | limit = &intel_limits_ironlake_sdvo; | 539 | limit = &intel_limits_ironlake_sdvo; |
524 | 540 | ||
@@ -737,46 +753,6 @@ intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, | |||
737 | return (err != target); | 753 | return (err != target); |
738 | } | 754 | } |
739 | 755 | ||
740 | |||
741 | static bool | ||
742 | intel_find_best_reduced_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, | ||
743 | int target, int refclk, intel_clock_t *best_clock) | ||
744 | |||
745 | { | ||
746 | struct drm_device *dev = crtc->dev; | ||
747 | intel_clock_t clock; | ||
748 | int err = target; | ||
749 | bool found = false; | ||
750 | |||
751 | memcpy(&clock, best_clock, sizeof(intel_clock_t)); | ||
752 | |||
753 | for (clock.m1 = limit->m1.min; clock.m1 <= limit->m1.max; clock.m1++) { | ||
754 | for (clock.m2 = limit->m2.min; clock.m2 <= limit->m2.max; clock.m2++) { | ||
755 | /* m1 is always 0 in Pineview */ | ||
756 | if (clock.m2 >= clock.m1 && !IS_PINEVIEW(dev)) | ||
757 | break; | ||
758 | for (clock.n = limit->n.min; clock.n <= limit->n.max; | ||
759 | clock.n++) { | ||
760 | int this_err; | ||
761 | |||
762 | intel_clock(dev, refclk, &clock); | ||
763 | |||
764 | if (!intel_PLL_is_valid(crtc, &clock)) | ||
765 | continue; | ||
766 | |||
767 | this_err = abs(clock.dot - target); | ||
768 | if (this_err < err) { | ||
769 | *best_clock = clock; | ||
770 | err = this_err; | ||
771 | found = true; | ||
772 | } | ||
773 | } | ||
774 | } | ||
775 | } | ||
776 | |||
777 | return found; | ||
778 | } | ||
779 | |||
780 | static bool | 756 | static bool |
781 | intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, | 757 | intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, |
782 | int target, int refclk, intel_clock_t *best_clock) | 758 | int target, int refclk, intel_clock_t *best_clock) |
@@ -791,7 +767,13 @@ intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, | |||
791 | found = false; | 767 | found = false; |
792 | 768 | ||
793 | if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) { | 769 | if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) { |
794 | if ((I915_READ(LVDS) & LVDS_CLKB_POWER_MASK) == | 770 | int lvds_reg; |
771 | |||
772 | if (IS_IRONLAKE(dev)) | ||
773 | lvds_reg = PCH_LVDS; | ||
774 | else | ||
775 | lvds_reg = LVDS; | ||
776 | if ((I915_READ(lvds_reg) & LVDS_CLKB_POWER_MASK) == | ||
795 | LVDS_CLKB_POWER_UP) | 777 | LVDS_CLKB_POWER_UP) |
796 | clock.p2 = limit->p2.p2_fast; | 778 | clock.p2 = limit->p2.p2_fast; |
797 | else | 779 | else |
@@ -839,6 +821,11 @@ intel_find_pll_ironlake_dp(const intel_limit_t *limit, struct drm_crtc *crtc, | |||
839 | { | 821 | { |
840 | struct drm_device *dev = crtc->dev; | 822 | struct drm_device *dev = crtc->dev; |
841 | intel_clock_t clock; | 823 | intel_clock_t clock; |
824 | |||
825 | /* return directly when it is eDP */ | ||
826 | if (HAS_eDP) | ||
827 | return true; | ||
828 | |||
842 | if (target < 200000) { | 829 | if (target < 200000) { |
843 | clock.n = 1; | 830 | clock.n = 1; |
844 | clock.p1 = 2; | 831 | clock.p1 = 2; |
@@ -857,68 +844,6 @@ intel_find_pll_ironlake_dp(const intel_limit_t *limit, struct drm_crtc *crtc, | |||
857 | return true; | 844 | return true; |
858 | } | 845 | } |
859 | 846 | ||
860 | static bool | ||
861 | intel_ironlake_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, | ||
862 | int target, int refclk, intel_clock_t *best_clock) | ||
863 | { | ||
864 | struct drm_device *dev = crtc->dev; | ||
865 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
866 | intel_clock_t clock; | ||
867 | int err_most = 47; | ||
868 | int err_min = 10000; | ||
869 | |||
870 | /* eDP has only 2 clock choice, no n/m/p setting */ | ||
871 | if (HAS_eDP) | ||
872 | return true; | ||
873 | |||
874 | if (intel_pipe_has_type(crtc, INTEL_OUTPUT_DISPLAYPORT)) | ||
875 | return intel_find_pll_ironlake_dp(limit, crtc, target, | ||
876 | refclk, best_clock); | ||
877 | |||
878 | if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) { | ||
879 | if ((I915_READ(PCH_LVDS) & LVDS_CLKB_POWER_MASK) == | ||
880 | LVDS_CLKB_POWER_UP) | ||
881 | clock.p2 = limit->p2.p2_fast; | ||
882 | else | ||
883 | clock.p2 = limit->p2.p2_slow; | ||
884 | } else { | ||
885 | if (target < limit->p2.dot_limit) | ||
886 | clock.p2 = limit->p2.p2_slow; | ||
887 | else | ||
888 | clock.p2 = limit->p2.p2_fast; | ||
889 | } | ||
890 | |||
891 | memset(best_clock, 0, sizeof(*best_clock)); | ||
892 | for (clock.p1 = limit->p1.max; clock.p1 >= limit->p1.min; clock.p1--) { | ||
893 | /* based on hardware requriment prefer smaller n to precision */ | ||
894 | for (clock.n = limit->n.min; clock.n <= limit->n.max; clock.n++) { | ||
895 | /* based on hardware requirment prefere larger m1,m2 */ | ||
896 | for (clock.m1 = limit->m1.max; | ||
897 | clock.m1 >= limit->m1.min; clock.m1--) { | ||
898 | for (clock.m2 = limit->m2.max; | ||
899 | clock.m2 >= limit->m2.min; clock.m2--) { | ||
900 | int this_err; | ||
901 | |||
902 | intel_clock(dev, refclk, &clock); | ||
903 | if (!intel_PLL_is_valid(crtc, &clock)) | ||
904 | continue; | ||
905 | this_err = abs((10000 - (target*10000/clock.dot))); | ||
906 | if (this_err < err_most) { | ||
907 | *best_clock = clock; | ||
908 | /* found on first matching */ | ||
909 | goto out; | ||
910 | } else if (this_err < err_min) { | ||
911 | *best_clock = clock; | ||
912 | err_min = this_err; | ||
913 | } | ||
914 | } | ||
915 | } | ||
916 | } | ||
917 | } | ||
918 | out: | ||
919 | return true; | ||
920 | } | ||
921 | |||
922 | /* DisplayPort has only two frequencies, 162MHz and 270MHz */ | 847 | /* DisplayPort has only two frequencies, 162MHz and 270MHz */ |
923 | static bool | 848 | static bool |
924 | intel_find_pll_g4x_dp(const intel_limit_t *limit, struct drm_crtc *crtc, | 849 | intel_find_pll_g4x_dp(const intel_limit_t *limit, struct drm_crtc *crtc, |
@@ -1282,7 +1207,7 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y, | |||
1282 | return ret; | 1207 | return ret; |
1283 | } | 1208 | } |
1284 | 1209 | ||
1285 | ret = i915_gem_object_set_to_gtt_domain(obj, 1); | 1210 | ret = i915_gem_object_set_to_display_plane(obj); |
1286 | if (ret != 0) { | 1211 | if (ret != 0) { |
1287 | i915_gem_object_unpin(obj); | 1212 | i915_gem_object_unpin(obj); |
1288 | mutex_unlock(&dev->struct_mutex); | 1213 | mutex_unlock(&dev->struct_mutex); |
@@ -1493,6 +1418,10 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
1493 | int trans_vsync_reg = (pipe == 0) ? TRANS_VSYNC_A : TRANS_VSYNC_B; | 1418 | int trans_vsync_reg = (pipe == 0) ? TRANS_VSYNC_A : TRANS_VSYNC_B; |
1494 | u32 temp; | 1419 | u32 temp; |
1495 | int tries = 5, j, n; | 1420 | int tries = 5, j, n; |
1421 | u32 pipe_bpc; | ||
1422 | |||
1423 | temp = I915_READ(pipeconf_reg); | ||
1424 | pipe_bpc = temp & PIPE_BPC_MASK; | ||
1496 | 1425 | ||
1497 | /* XXX: When our outputs are all unaware of DPMS modes other than off | 1426 | /* XXX: When our outputs are all unaware of DPMS modes other than off |
1498 | * and on, we should map those modes to DRM_MODE_DPMS_OFF in the CRTC. | 1427 | * and on, we should map those modes to DRM_MODE_DPMS_OFF in the CRTC. |
@@ -1524,6 +1453,12 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
1524 | 1453 | ||
1525 | /* enable PCH FDI RX PLL, wait warmup plus DMI latency */ | 1454 | /* enable PCH FDI RX PLL, wait warmup plus DMI latency */ |
1526 | temp = I915_READ(fdi_rx_reg); | 1455 | temp = I915_READ(fdi_rx_reg); |
1456 | /* | ||
1457 | * make the BPC in FDI Rx be consistent with that in | ||
1458 | * pipeconf reg. | ||
1459 | */ | ||
1460 | temp &= ~(0x7 << 16); | ||
1461 | temp |= (pipe_bpc << 11); | ||
1527 | I915_WRITE(fdi_rx_reg, temp | FDI_RX_PLL_ENABLE | | 1462 | I915_WRITE(fdi_rx_reg, temp | FDI_RX_PLL_ENABLE | |
1528 | FDI_SEL_PCDCLK | | 1463 | FDI_SEL_PCDCLK | |
1529 | FDI_DP_PORT_WIDTH_X4); /* default 4 lanes */ | 1464 | FDI_DP_PORT_WIDTH_X4); /* default 4 lanes */ |
@@ -1666,6 +1601,12 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
1666 | 1601 | ||
1667 | /* enable PCH transcoder */ | 1602 | /* enable PCH transcoder */ |
1668 | temp = I915_READ(transconf_reg); | 1603 | temp = I915_READ(transconf_reg); |
1604 | /* | ||
1605 | * make the BPC in transcoder be consistent with | ||
1606 | * that in pipeconf reg. | ||
1607 | */ | ||
1608 | temp &= ~PIPE_BPC_MASK; | ||
1609 | temp |= pipe_bpc; | ||
1669 | I915_WRITE(transconf_reg, temp | TRANS_ENABLE); | 1610 | I915_WRITE(transconf_reg, temp | TRANS_ENABLE); |
1670 | I915_READ(transconf_reg); | 1611 | I915_READ(transconf_reg); |
1671 | 1612 | ||
@@ -1745,6 +1686,9 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
1745 | I915_READ(fdi_tx_reg); | 1686 | I915_READ(fdi_tx_reg); |
1746 | 1687 | ||
1747 | temp = I915_READ(fdi_rx_reg); | 1688 | temp = I915_READ(fdi_rx_reg); |
1689 | /* BPC in FDI rx is consistent with that in pipeconf */ | ||
1690 | temp &= ~(0x07 << 16); | ||
1691 | temp |= (pipe_bpc << 11); | ||
1748 | I915_WRITE(fdi_rx_reg, temp & ~FDI_RX_ENABLE); | 1692 | I915_WRITE(fdi_rx_reg, temp & ~FDI_RX_ENABLE); |
1749 | I915_READ(fdi_rx_reg); | 1693 | I915_READ(fdi_rx_reg); |
1750 | 1694 | ||
@@ -1789,7 +1733,12 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
1789 | } | 1733 | } |
1790 | } | 1734 | } |
1791 | } | 1735 | } |
1792 | 1736 | temp = I915_READ(transconf_reg); | |
1737 | /* BPC in transcoder is consistent with that in pipeconf */ | ||
1738 | temp &= ~PIPE_BPC_MASK; | ||
1739 | temp |= pipe_bpc; | ||
1740 | I915_WRITE(transconf_reg, temp); | ||
1741 | I915_READ(transconf_reg); | ||
1793 | udelay(100); | 1742 | udelay(100); |
1794 | 1743 | ||
1795 | /* disable PCH DPLL */ | 1744 | /* disable PCH DPLL */ |
@@ -2448,7 +2397,7 @@ static void pineview_enable_cxsr(struct drm_device *dev, unsigned long clock, | |||
2448 | * A value of 5us seems to be a good balance; safe for very low end | 2397 | * A value of 5us seems to be a good balance; safe for very low end |
2449 | * platforms but not overly aggressive on lower latency configs. | 2398 | * platforms but not overly aggressive on lower latency configs. |
2450 | */ | 2399 | */ |
2451 | const static int latency_ns = 5000; | 2400 | static const int latency_ns = 5000; |
2452 | 2401 | ||
2453 | static int i9xx_get_fifo_size(struct drm_device *dev, int plane) | 2402 | static int i9xx_get_fifo_size(struct drm_device *dev, int plane) |
2454 | { | 2403 | { |
@@ -2559,7 +2508,7 @@ static void g4x_update_wm(struct drm_device *dev, int planea_clock, | |||
2559 | /* Calc sr entries for one plane configs */ | 2508 | /* Calc sr entries for one plane configs */ |
2560 | if (sr_hdisplay && (!planea_clock || !planeb_clock)) { | 2509 | if (sr_hdisplay && (!planea_clock || !planeb_clock)) { |
2561 | /* self-refresh has much higher latency */ | 2510 | /* self-refresh has much higher latency */ |
2562 | const static int sr_latency_ns = 12000; | 2511 | static const int sr_latency_ns = 12000; |
2563 | 2512 | ||
2564 | sr_clock = planea_clock ? planea_clock : planeb_clock; | 2513 | sr_clock = planea_clock ? planea_clock : planeb_clock; |
2565 | line_time_us = ((sr_hdisplay * 1000) / sr_clock); | 2514 | line_time_us = ((sr_hdisplay * 1000) / sr_clock); |
@@ -2598,7 +2547,7 @@ static void i965_update_wm(struct drm_device *dev, int planea_clock, | |||
2598 | /* Calc sr entries for one plane configs */ | 2547 | /* Calc sr entries for one plane configs */ |
2599 | if (sr_hdisplay && (!planea_clock || !planeb_clock)) { | 2548 | if (sr_hdisplay && (!planea_clock || !planeb_clock)) { |
2600 | /* self-refresh has much higher latency */ | 2549 | /* self-refresh has much higher latency */ |
2601 | const static int sr_latency_ns = 12000; | 2550 | static const int sr_latency_ns = 12000; |
2602 | 2551 | ||
2603 | sr_clock = planea_clock ? planea_clock : planeb_clock; | 2552 | sr_clock = planea_clock ? planea_clock : planeb_clock; |
2604 | line_time_us = ((sr_hdisplay * 1000) / sr_clock); | 2553 | line_time_us = ((sr_hdisplay * 1000) / sr_clock); |
@@ -2667,7 +2616,7 @@ static void i9xx_update_wm(struct drm_device *dev, int planea_clock, | |||
2667 | if (HAS_FW_BLC(dev) && sr_hdisplay && | 2616 | if (HAS_FW_BLC(dev) && sr_hdisplay && |
2668 | (!planea_clock || !planeb_clock)) { | 2617 | (!planea_clock || !planeb_clock)) { |
2669 | /* self-refresh has much higher latency */ | 2618 | /* self-refresh has much higher latency */ |
2670 | const static int sr_latency_ns = 6000; | 2619 | static const int sr_latency_ns = 6000; |
2671 | 2620 | ||
2672 | sr_clock = planea_clock ? planea_clock : planeb_clock; | 2621 | sr_clock = planea_clock ? planea_clock : planeb_clock; |
2673 | line_time_us = ((sr_hdisplay * 1000) / sr_clock); | 2622 | line_time_us = ((sr_hdisplay * 1000) / sr_clock); |
@@ -2906,10 +2855,8 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc, | |||
2906 | return -EINVAL; | 2855 | return -EINVAL; |
2907 | } | 2856 | } |
2908 | 2857 | ||
2909 | if (is_lvds && limit->find_reduced_pll && | 2858 | if (is_lvds && dev_priv->lvds_downclock_avail) { |
2910 | dev_priv->lvds_downclock_avail) { | 2859 | has_reduced_clock = limit->find_pll(limit, crtc, |
2911 | memcpy(&reduced_clock, &clock, sizeof(intel_clock_t)); | ||
2912 | has_reduced_clock = limit->find_reduced_pll(limit, crtc, | ||
2913 | dev_priv->lvds_downclock, | 2860 | dev_priv->lvds_downclock, |
2914 | refclk, | 2861 | refclk, |
2915 | &reduced_clock); | 2862 | &reduced_clock); |
@@ -2969,6 +2916,33 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc, | |||
2969 | 2916 | ||
2970 | /* determine panel color depth */ | 2917 | /* determine panel color depth */ |
2971 | temp = I915_READ(pipeconf_reg); | 2918 | temp = I915_READ(pipeconf_reg); |
2919 | temp &= ~PIPE_BPC_MASK; | ||
2920 | if (is_lvds) { | ||
2921 | int lvds_reg = I915_READ(PCH_LVDS); | ||
2922 | /* the BPC will be 6 if it is 18-bit LVDS panel */ | ||
2923 | if ((lvds_reg & LVDS_A3_POWER_MASK) == LVDS_A3_POWER_UP) | ||
2924 | temp |= PIPE_8BPC; | ||
2925 | else | ||
2926 | temp |= PIPE_6BPC; | ||
2927 | } else if (is_edp) { | ||
2928 | switch (dev_priv->edp_bpp/3) { | ||
2929 | case 8: | ||
2930 | temp |= PIPE_8BPC; | ||
2931 | break; | ||
2932 | case 10: | ||
2933 | temp |= PIPE_10BPC; | ||
2934 | break; | ||
2935 | case 6: | ||
2936 | temp |= PIPE_6BPC; | ||
2937 | break; | ||
2938 | case 12: | ||
2939 | temp |= PIPE_12BPC; | ||
2940 | break; | ||
2941 | } | ||
2942 | } else | ||
2943 | temp |= PIPE_8BPC; | ||
2944 | I915_WRITE(pipeconf_reg, temp); | ||
2945 | I915_READ(pipeconf_reg); | ||
2972 | 2946 | ||
2973 | switch (temp & PIPE_BPC_MASK) { | 2947 | switch (temp & PIPE_BPC_MASK) { |
2974 | case PIPE_8BPC: | 2948 | case PIPE_8BPC: |
@@ -3195,7 +3169,20 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc, | |||
3195 | * appropriately here, but we need to look more thoroughly into how | 3169 | * appropriately here, but we need to look more thoroughly into how |
3196 | * panels behave in the two modes. | 3170 | * panels behave in the two modes. |
3197 | */ | 3171 | */ |
3198 | 3172 | /* set the dithering flag */ | |
3173 | if (IS_I965G(dev)) { | ||
3174 | if (dev_priv->lvds_dither) { | ||
3175 | if (IS_IRONLAKE(dev)) | ||
3176 | pipeconf |= PIPE_ENABLE_DITHER; | ||
3177 | else | ||
3178 | lvds |= LVDS_ENABLE_DITHER; | ||
3179 | } else { | ||
3180 | if (IS_IRONLAKE(dev)) | ||
3181 | pipeconf &= ~PIPE_ENABLE_DITHER; | ||
3182 | else | ||
3183 | lvds &= ~LVDS_ENABLE_DITHER; | ||
3184 | } | ||
3185 | } | ||
3199 | I915_WRITE(lvds_reg, lvds); | 3186 | I915_WRITE(lvds_reg, lvds); |
3200 | I915_READ(lvds_reg); | 3187 | I915_READ(lvds_reg); |
3201 | } | 3188 | } |
@@ -3385,7 +3372,7 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc, | |||
3385 | 3372 | ||
3386 | /* we only need to pin inside GTT if cursor is non-phy */ | 3373 | /* we only need to pin inside GTT if cursor is non-phy */ |
3387 | mutex_lock(&dev->struct_mutex); | 3374 | mutex_lock(&dev->struct_mutex); |
3388 | if (!dev_priv->cursor_needs_physical) { | 3375 | if (!dev_priv->info->cursor_needs_physical) { |
3389 | ret = i915_gem_object_pin(bo, PAGE_SIZE); | 3376 | ret = i915_gem_object_pin(bo, PAGE_SIZE); |
3390 | if (ret) { | 3377 | if (ret) { |
3391 | DRM_ERROR("failed to pin cursor bo\n"); | 3378 | DRM_ERROR("failed to pin cursor bo\n"); |
@@ -3420,7 +3407,7 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc, | |||
3420 | I915_WRITE(base, addr); | 3407 | I915_WRITE(base, addr); |
3421 | 3408 | ||
3422 | if (intel_crtc->cursor_bo) { | 3409 | if (intel_crtc->cursor_bo) { |
3423 | if (dev_priv->cursor_needs_physical) { | 3410 | if (dev_priv->info->cursor_needs_physical) { |
3424 | if (intel_crtc->cursor_bo != bo) | 3411 | if (intel_crtc->cursor_bo != bo) |
3425 | i915_gem_detach_phys_object(dev, intel_crtc->cursor_bo); | 3412 | i915_gem_detach_phys_object(dev, intel_crtc->cursor_bo); |
3426 | } else | 3413 | } else |
@@ -3779,125 +3766,6 @@ static void intel_gpu_idle_timer(unsigned long arg) | |||
3779 | queue_work(dev_priv->wq, &dev_priv->idle_work); | 3766 | queue_work(dev_priv->wq, &dev_priv->idle_work); |
3780 | } | 3767 | } |
3781 | 3768 | ||
3782 | void intel_increase_renderclock(struct drm_device *dev, bool schedule) | ||
3783 | { | ||
3784 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
3785 | |||
3786 | if (IS_IRONLAKE(dev)) | ||
3787 | return; | ||
3788 | |||
3789 | if (!dev_priv->render_reclock_avail) { | ||
3790 | DRM_DEBUG_DRIVER("not reclocking render clock\n"); | ||
3791 | return; | ||
3792 | } | ||
3793 | |||
3794 | /* Restore render clock frequency to original value */ | ||
3795 | if (IS_G4X(dev) || IS_I9XX(dev)) | ||
3796 | pci_write_config_word(dev->pdev, GCFGC, dev_priv->orig_clock); | ||
3797 | else if (IS_I85X(dev)) | ||
3798 | pci_write_config_word(dev->pdev, HPLLCC, dev_priv->orig_clock); | ||
3799 | DRM_DEBUG_DRIVER("increasing render clock frequency\n"); | ||
3800 | |||
3801 | /* Schedule downclock */ | ||
3802 | if (schedule) | ||
3803 | mod_timer(&dev_priv->idle_timer, jiffies + | ||
3804 | msecs_to_jiffies(GPU_IDLE_TIMEOUT)); | ||
3805 | } | ||
3806 | |||
3807 | void intel_decrease_renderclock(struct drm_device *dev) | ||
3808 | { | ||
3809 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
3810 | |||
3811 | if (IS_IRONLAKE(dev)) | ||
3812 | return; | ||
3813 | |||
3814 | if (!dev_priv->render_reclock_avail) { | ||
3815 | DRM_DEBUG_DRIVER("not reclocking render clock\n"); | ||
3816 | return; | ||
3817 | } | ||
3818 | |||
3819 | if (IS_G4X(dev)) { | ||
3820 | u16 gcfgc; | ||
3821 | |||
3822 | /* Adjust render clock... */ | ||
3823 | pci_read_config_word(dev->pdev, GCFGC, &gcfgc); | ||
3824 | |||
3825 | /* Down to minimum... */ | ||
3826 | gcfgc &= ~GM45_GC_RENDER_CLOCK_MASK; | ||
3827 | gcfgc |= GM45_GC_RENDER_CLOCK_266_MHZ; | ||
3828 | |||
3829 | pci_write_config_word(dev->pdev, GCFGC, gcfgc); | ||
3830 | } else if (IS_I965G(dev)) { | ||
3831 | u16 gcfgc; | ||
3832 | |||
3833 | /* Adjust render clock... */ | ||
3834 | pci_read_config_word(dev->pdev, GCFGC, &gcfgc); | ||
3835 | |||
3836 | /* Down to minimum... */ | ||
3837 | gcfgc &= ~I965_GC_RENDER_CLOCK_MASK; | ||
3838 | gcfgc |= I965_GC_RENDER_CLOCK_267_MHZ; | ||
3839 | |||
3840 | pci_write_config_word(dev->pdev, GCFGC, gcfgc); | ||
3841 | } else if (IS_I945G(dev) || IS_I945GM(dev)) { | ||
3842 | u16 gcfgc; | ||
3843 | |||
3844 | /* Adjust render clock... */ | ||
3845 | pci_read_config_word(dev->pdev, GCFGC, &gcfgc); | ||
3846 | |||
3847 | /* Down to minimum... */ | ||
3848 | gcfgc &= ~I945_GC_RENDER_CLOCK_MASK; | ||
3849 | gcfgc |= I945_GC_RENDER_CLOCK_166_MHZ; | ||
3850 | |||
3851 | pci_write_config_word(dev->pdev, GCFGC, gcfgc); | ||
3852 | } else if (IS_I915G(dev)) { | ||
3853 | u16 gcfgc; | ||
3854 | |||
3855 | /* Adjust render clock... */ | ||
3856 | pci_read_config_word(dev->pdev, GCFGC, &gcfgc); | ||
3857 | |||
3858 | /* Down to minimum... */ | ||
3859 | gcfgc &= ~I915_GC_RENDER_CLOCK_MASK; | ||
3860 | gcfgc |= I915_GC_RENDER_CLOCK_166_MHZ; | ||
3861 | |||
3862 | pci_write_config_word(dev->pdev, GCFGC, gcfgc); | ||
3863 | } else if (IS_I85X(dev)) { | ||
3864 | u16 hpllcc; | ||
3865 | |||
3866 | /* Adjust render clock... */ | ||
3867 | pci_read_config_word(dev->pdev, HPLLCC, &hpllcc); | ||
3868 | |||
3869 | /* Up to maximum... */ | ||
3870 | hpllcc &= ~GC_CLOCK_CONTROL_MASK; | ||
3871 | hpllcc |= GC_CLOCK_133_200; | ||
3872 | |||
3873 | pci_write_config_word(dev->pdev, HPLLCC, hpllcc); | ||
3874 | } | ||
3875 | DRM_DEBUG_DRIVER("decreasing render clock frequency\n"); | ||
3876 | } | ||
3877 | |||
3878 | /* Note that no increase function is needed for this - increase_renderclock() | ||
3879 | * will also rewrite these bits | ||
3880 | */ | ||
3881 | void intel_decrease_displayclock(struct drm_device *dev) | ||
3882 | { | ||
3883 | if (IS_IRONLAKE(dev)) | ||
3884 | return; | ||
3885 | |||
3886 | if (IS_I945G(dev) || IS_I945GM(dev) || IS_I915G(dev) || | ||
3887 | IS_I915GM(dev)) { | ||
3888 | u16 gcfgc; | ||
3889 | |||
3890 | /* Adjust render clock... */ | ||
3891 | pci_read_config_word(dev->pdev, GCFGC, &gcfgc); | ||
3892 | |||
3893 | /* Down to minimum... */ | ||
3894 | gcfgc &= ~0xf0; | ||
3895 | gcfgc |= 0x80; | ||
3896 | |||
3897 | pci_write_config_word(dev->pdev, GCFGC, gcfgc); | ||
3898 | } | ||
3899 | } | ||
3900 | |||
3901 | #define CRTC_IDLE_TIMEOUT 1000 /* ms */ | 3769 | #define CRTC_IDLE_TIMEOUT 1000 /* ms */ |
3902 | 3770 | ||
3903 | static void intel_crtc_idle_timer(unsigned long arg) | 3771 | static void intel_crtc_idle_timer(unsigned long arg) |
@@ -4011,12 +3879,6 @@ static void intel_idle_update(struct work_struct *work) | |||
4011 | 3879 | ||
4012 | mutex_lock(&dev->struct_mutex); | 3880 | mutex_lock(&dev->struct_mutex); |
4013 | 3881 | ||
4014 | /* GPU isn't processing, downclock it. */ | ||
4015 | if (!dev_priv->busy) { | ||
4016 | intel_decrease_renderclock(dev); | ||
4017 | intel_decrease_displayclock(dev); | ||
4018 | } | ||
4019 | |||
4020 | list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { | 3882 | list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { |
4021 | /* Skip inactive CRTCs */ | 3883 | /* Skip inactive CRTCs */ |
4022 | if (!crtc->fb) | 3884 | if (!crtc->fb) |
@@ -4050,13 +3912,11 @@ void intel_mark_busy(struct drm_device *dev, struct drm_gem_object *obj) | |||
4050 | if (!drm_core_check_feature(dev, DRIVER_MODESET)) | 3912 | if (!drm_core_check_feature(dev, DRIVER_MODESET)) |
4051 | return; | 3913 | return; |
4052 | 3914 | ||
4053 | if (!dev_priv->busy) { | 3915 | if (!dev_priv->busy) |
4054 | dev_priv->busy = true; | 3916 | dev_priv->busy = true; |
4055 | intel_increase_renderclock(dev, true); | 3917 | else |
4056 | } else { | ||
4057 | mod_timer(&dev_priv->idle_timer, jiffies + | 3918 | mod_timer(&dev_priv->idle_timer, jiffies + |
4058 | msecs_to_jiffies(GPU_IDLE_TIMEOUT)); | 3919 | msecs_to_jiffies(GPU_IDLE_TIMEOUT)); |
4059 | } | ||
4060 | 3920 | ||
4061 | list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { | 3921 | list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { |
4062 | if (!crtc->fb) | 3922 | if (!crtc->fb) |
@@ -4400,29 +4260,43 @@ static void intel_setup_outputs(struct drm_device *dev) | |||
4400 | bool found = false; | 4260 | bool found = false; |
4401 | 4261 | ||
4402 | if (I915_READ(SDVOB) & SDVO_DETECTED) { | 4262 | if (I915_READ(SDVOB) & SDVO_DETECTED) { |
4263 | DRM_DEBUG_KMS("probing SDVOB\n"); | ||
4403 | found = intel_sdvo_init(dev, SDVOB); | 4264 | found = intel_sdvo_init(dev, SDVOB); |
4404 | if (!found && SUPPORTS_INTEGRATED_HDMI(dev)) | 4265 | if (!found && SUPPORTS_INTEGRATED_HDMI(dev)) { |
4266 | DRM_DEBUG_KMS("probing HDMI on SDVOB\n"); | ||
4405 | intel_hdmi_init(dev, SDVOB); | 4267 | intel_hdmi_init(dev, SDVOB); |
4268 | } | ||
4406 | 4269 | ||
4407 | if (!found && SUPPORTS_INTEGRATED_DP(dev)) | 4270 | if (!found && SUPPORTS_INTEGRATED_DP(dev)) { |
4271 | DRM_DEBUG_KMS("probing DP_B\n"); | ||
4408 | intel_dp_init(dev, DP_B); | 4272 | intel_dp_init(dev, DP_B); |
4273 | } | ||
4409 | } | 4274 | } |
4410 | 4275 | ||
4411 | /* Before G4X SDVOC doesn't have its own detect register */ | 4276 | /* Before G4X SDVOC doesn't have its own detect register */ |
4412 | 4277 | ||
4413 | if (I915_READ(SDVOB) & SDVO_DETECTED) | 4278 | if (I915_READ(SDVOB) & SDVO_DETECTED) { |
4279 | DRM_DEBUG_KMS("probing SDVOC\n"); | ||
4414 | found = intel_sdvo_init(dev, SDVOC); | 4280 | found = intel_sdvo_init(dev, SDVOC); |
4281 | } | ||
4415 | 4282 | ||
4416 | if (!found && (I915_READ(SDVOC) & SDVO_DETECTED)) { | 4283 | if (!found && (I915_READ(SDVOC) & SDVO_DETECTED)) { |
4417 | 4284 | ||
4418 | if (SUPPORTS_INTEGRATED_HDMI(dev)) | 4285 | if (SUPPORTS_INTEGRATED_HDMI(dev)) { |
4286 | DRM_DEBUG_KMS("probing HDMI on SDVOC\n"); | ||
4419 | intel_hdmi_init(dev, SDVOC); | 4287 | intel_hdmi_init(dev, SDVOC); |
4420 | if (SUPPORTS_INTEGRATED_DP(dev)) | 4288 | } |
4289 | if (SUPPORTS_INTEGRATED_DP(dev)) { | ||
4290 | DRM_DEBUG_KMS("probing DP_C\n"); | ||
4421 | intel_dp_init(dev, DP_C); | 4291 | intel_dp_init(dev, DP_C); |
4292 | } | ||
4422 | } | 4293 | } |
4423 | 4294 | ||
4424 | if (SUPPORTS_INTEGRATED_DP(dev) && (I915_READ(DP_D) & DP_DETECTED)) | 4295 | if (SUPPORTS_INTEGRATED_DP(dev) && |
4296 | (I915_READ(DP_D) & DP_DETECTED)) { | ||
4297 | DRM_DEBUG_KMS("probing DP_D\n"); | ||
4425 | intel_dp_init(dev, DP_D); | 4298 | intel_dp_init(dev, DP_D); |
4299 | } | ||
4426 | } else if (IS_I8XX(dev)) | 4300 | } else if (IS_I8XX(dev)) |
4427 | intel_dvo_init(dev); | 4301 | intel_dvo_init(dev); |
4428 | 4302 | ||
@@ -4527,6 +4401,42 @@ static const struct drm_mode_config_funcs intel_mode_funcs = { | |||
4527 | .fb_changed = intelfb_probe, | 4401 | .fb_changed = intelfb_probe, |
4528 | }; | 4402 | }; |
4529 | 4403 | ||
4404 | static struct drm_gem_object * | ||
4405 | intel_alloc_power_context(struct drm_device *dev) | ||
4406 | { | ||
4407 | struct drm_gem_object *pwrctx; | ||
4408 | int ret; | ||
4409 | |||
4410 | pwrctx = drm_gem_object_alloc(dev, 4096); | ||
4411 | if (!pwrctx) { | ||
4412 | DRM_DEBUG("failed to alloc power context, RC6 disabled\n"); | ||
4413 | return NULL; | ||
4414 | } | ||
4415 | |||
4416 | mutex_lock(&dev->struct_mutex); | ||
4417 | ret = i915_gem_object_pin(pwrctx, 4096); | ||
4418 | if (ret) { | ||
4419 | DRM_ERROR("failed to pin power context: %d\n", ret); | ||
4420 | goto err_unref; | ||
4421 | } | ||
4422 | |||
4423 | ret = i915_gem_object_set_to_gtt_domain(pwrctx, 1); | ||
4424 | if (ret) { | ||
4425 | DRM_ERROR("failed to set-domain on power context: %d\n", ret); | ||
4426 | goto err_unpin; | ||
4427 | } | ||
4428 | mutex_unlock(&dev->struct_mutex); | ||
4429 | |||
4430 | return pwrctx; | ||
4431 | |||
4432 | err_unpin: | ||
4433 | i915_gem_object_unpin(pwrctx); | ||
4434 | err_unref: | ||
4435 | drm_gem_object_unreference(pwrctx); | ||
4436 | mutex_unlock(&dev->struct_mutex); | ||
4437 | return NULL; | ||
4438 | } | ||
4439 | |||
4530 | void intel_init_clock_gating(struct drm_device *dev) | 4440 | void intel_init_clock_gating(struct drm_device *dev) |
4531 | { | 4441 | { |
4532 | struct drm_i915_private *dev_priv = dev->dev_private; | 4442 | struct drm_i915_private *dev_priv = dev->dev_private; |
@@ -4579,42 +4489,27 @@ void intel_init_clock_gating(struct drm_device *dev) | |||
4579 | * GPU can automatically power down the render unit if given a page | 4489 | * GPU can automatically power down the render unit if given a page |
4580 | * to save state. | 4490 | * to save state. |
4581 | */ | 4491 | */ |
4582 | if (I915_HAS_RC6(dev)) { | 4492 | if (I915_HAS_RC6(dev) && drm_core_check_feature(dev, DRIVER_MODESET)) { |
4583 | struct drm_gem_object *pwrctx; | 4493 | struct drm_i915_gem_object *obj_priv = NULL; |
4584 | struct drm_i915_gem_object *obj_priv; | ||
4585 | int ret; | ||
4586 | 4494 | ||
4587 | if (dev_priv->pwrctx) { | 4495 | if (dev_priv->pwrctx) { |
4588 | obj_priv = dev_priv->pwrctx->driver_private; | 4496 | obj_priv = dev_priv->pwrctx->driver_private; |
4589 | } else { | 4497 | } else { |
4590 | pwrctx = drm_gem_object_alloc(dev, 4096); | 4498 | struct drm_gem_object *pwrctx; |
4591 | if (!pwrctx) { | ||
4592 | DRM_DEBUG("failed to alloc power context, " | ||
4593 | "RC6 disabled\n"); | ||
4594 | goto out; | ||
4595 | } | ||
4596 | 4499 | ||
4597 | ret = i915_gem_object_pin(pwrctx, 4096); | 4500 | pwrctx = intel_alloc_power_context(dev); |
4598 | if (ret) { | 4501 | if (pwrctx) { |
4599 | DRM_ERROR("failed to pin power context: %d\n", | 4502 | dev_priv->pwrctx = pwrctx; |
4600 | ret); | 4503 | obj_priv = pwrctx->driver_private; |
4601 | drm_gem_object_unreference(pwrctx); | ||
4602 | goto out; | ||
4603 | } | 4504 | } |
4604 | |||
4605 | i915_gem_object_set_to_gtt_domain(pwrctx, 1); | ||
4606 | |||
4607 | dev_priv->pwrctx = pwrctx; | ||
4608 | obj_priv = pwrctx->driver_private; | ||
4609 | } | 4505 | } |
4610 | 4506 | ||
4611 | I915_WRITE(PWRCTXA, obj_priv->gtt_offset | PWRCTX_EN); | 4507 | if (obj_priv) { |
4612 | I915_WRITE(MCHBAR_RENDER_STANDBY, | 4508 | I915_WRITE(PWRCTXA, obj_priv->gtt_offset | PWRCTX_EN); |
4613 | I915_READ(MCHBAR_RENDER_STANDBY) & ~RCX_SW_EXIT); | 4509 | I915_WRITE(MCHBAR_RENDER_STANDBY, |
4510 | I915_READ(MCHBAR_RENDER_STANDBY) & ~RCX_SW_EXIT); | ||
4511 | } | ||
4614 | } | 4512 | } |
4615 | |||
4616 | out: | ||
4617 | return; | ||
4618 | } | 4513 | } |
4619 | 4514 | ||
4620 | /* Set up chip specific display functions */ | 4515 | /* Set up chip specific display functions */ |
@@ -4770,7 +4665,6 @@ void intel_modeset_cleanup(struct drm_device *dev) | |||
4770 | del_timer_sync(&intel_crtc->idle_timer); | 4665 | del_timer_sync(&intel_crtc->idle_timer); |
4771 | } | 4666 | } |
4772 | 4667 | ||
4773 | intel_increase_renderclock(dev, false); | ||
4774 | del_timer_sync(&dev_priv->idle_timer); | 4668 | del_timer_sync(&dev_priv->idle_timer); |
4775 | 4669 | ||
4776 | if (dev_priv->display.disable_fbc) | 4670 | if (dev_priv->display.disable_fbc) |
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 4e7aa8b7b93..439506cefc1 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c | |||
@@ -125,9 +125,15 @@ intel_dp_link_clock(uint8_t link_bw) | |||
125 | 125 | ||
126 | /* I think this is a fiction */ | 126 | /* I think this is a fiction */ |
127 | static int | 127 | static int |
128 | intel_dp_link_required(int pixel_clock) | 128 | intel_dp_link_required(struct drm_device *dev, |
129 | struct intel_output *intel_output, int pixel_clock) | ||
129 | { | 130 | { |
130 | return pixel_clock * 3; | 131 | struct drm_i915_private *dev_priv = dev->dev_private; |
132 | |||
133 | if (IS_eDP(intel_output)) | ||
134 | return (pixel_clock * dev_priv->edp_bpp) / 8; | ||
135 | else | ||
136 | return pixel_clock * 3; | ||
131 | } | 137 | } |
132 | 138 | ||
133 | static int | 139 | static int |
@@ -138,7 +144,8 @@ intel_dp_mode_valid(struct drm_connector *connector, | |||
138 | int max_link_clock = intel_dp_link_clock(intel_dp_max_link_bw(intel_output)); | 144 | int max_link_clock = intel_dp_link_clock(intel_dp_max_link_bw(intel_output)); |
139 | int max_lanes = intel_dp_max_lane_count(intel_output); | 145 | int max_lanes = intel_dp_max_lane_count(intel_output); |
140 | 146 | ||
141 | if (intel_dp_link_required(mode->clock) > max_link_clock * max_lanes) | 147 | if (intel_dp_link_required(connector->dev, intel_output, mode->clock) |
148 | > max_link_clock * max_lanes) | ||
142 | return MODE_CLOCK_HIGH; | 149 | return MODE_CLOCK_HIGH; |
143 | 150 | ||
144 | if (mode->clock < 10000) | 151 | if (mode->clock < 10000) |
@@ -492,7 +499,8 @@ intel_dp_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode, | |||
492 | for (clock = 0; clock <= max_clock; clock++) { | 499 | for (clock = 0; clock <= max_clock; clock++) { |
493 | int link_avail = intel_dp_link_clock(bws[clock]) * lane_count; | 500 | int link_avail = intel_dp_link_clock(bws[clock]) * lane_count; |
494 | 501 | ||
495 | if (intel_dp_link_required(mode->clock) <= link_avail) { | 502 | if (intel_dp_link_required(encoder->dev, intel_output, mode->clock) |
503 | <= link_avail) { | ||
496 | dp_priv->link_bw = bws[clock]; | 504 | dp_priv->link_bw = bws[clock]; |
497 | dp_priv->lane_count = lane_count; | 505 | dp_priv->lane_count = lane_count; |
498 | adjusted_mode->clock = intel_dp_link_clock(dp_priv->link_bw); | 506 | adjusted_mode->clock = intel_dp_link_clock(dp_priv->link_bw); |
@@ -1289,53 +1297,7 @@ intel_dp_hot_plug(struct intel_output *intel_output) | |||
1289 | if (dp_priv->dpms_mode == DRM_MODE_DPMS_ON) | 1297 | if (dp_priv->dpms_mode == DRM_MODE_DPMS_ON) |
1290 | intel_dp_check_link_status(intel_output); | 1298 | intel_dp_check_link_status(intel_output); |
1291 | } | 1299 | } |
1292 | /* | 1300 | |
1293 | * Enumerate the child dev array parsed from VBT to check whether | ||
1294 | * the given DP is present. | ||
1295 | * If it is present, return 1. | ||
1296 | * If it is not present, return false. | ||
1297 | * If no child dev is parsed from VBT, it is assumed that the given | ||
1298 | * DP is present. | ||
1299 | */ | ||
1300 | static int dp_is_present_in_vbt(struct drm_device *dev, int dp_reg) | ||
1301 | { | ||
1302 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
1303 | struct child_device_config *p_child; | ||
1304 | int i, dp_port, ret; | ||
1305 | |||
1306 | if (!dev_priv->child_dev_num) | ||
1307 | return 1; | ||
1308 | |||
1309 | dp_port = 0; | ||
1310 | if (dp_reg == DP_B || dp_reg == PCH_DP_B) | ||
1311 | dp_port = PORT_IDPB; | ||
1312 | else if (dp_reg == DP_C || dp_reg == PCH_DP_C) | ||
1313 | dp_port = PORT_IDPC; | ||
1314 | else if (dp_reg == DP_D || dp_reg == PCH_DP_D) | ||
1315 | dp_port = PORT_IDPD; | ||
1316 | |||
1317 | ret = 0; | ||
1318 | for (i = 0; i < dev_priv->child_dev_num; i++) { | ||
1319 | p_child = dev_priv->child_dev + i; | ||
1320 | /* | ||
1321 | * If the device type is not DP, continue. | ||
1322 | */ | ||
1323 | if (p_child->device_type != DEVICE_TYPE_DP && | ||
1324 | p_child->device_type != DEVICE_TYPE_eDP) | ||
1325 | continue; | ||
1326 | /* Find the eDP port */ | ||
1327 | if (dp_reg == DP_A && p_child->device_type == DEVICE_TYPE_eDP) { | ||
1328 | ret = 1; | ||
1329 | break; | ||
1330 | } | ||
1331 | /* Find the DP port */ | ||
1332 | if (p_child->dvo_port == dp_port) { | ||
1333 | ret = 1; | ||
1334 | break; | ||
1335 | } | ||
1336 | } | ||
1337 | return ret; | ||
1338 | } | ||
1339 | void | 1301 | void |
1340 | intel_dp_init(struct drm_device *dev, int output_reg) | 1302 | intel_dp_init(struct drm_device *dev, int output_reg) |
1341 | { | 1303 | { |
@@ -1345,10 +1307,6 @@ intel_dp_init(struct drm_device *dev, int output_reg) | |||
1345 | struct intel_dp_priv *dp_priv; | 1307 | struct intel_dp_priv *dp_priv; |
1346 | const char *name = NULL; | 1308 | const char *name = NULL; |
1347 | 1309 | ||
1348 | if (!dp_is_present_in_vbt(dev, output_reg)) { | ||
1349 | DRM_DEBUG_KMS("DP is not present. Ignore it\n"); | ||
1350 | return; | ||
1351 | } | ||
1352 | intel_output = kcalloc(sizeof(struct intel_output) + | 1310 | intel_output = kcalloc(sizeof(struct intel_output) + |
1353 | sizeof(struct intel_dp_priv), 1, GFP_KERNEL); | 1311 | sizeof(struct intel_dp_priv), 1, GFP_KERNEL); |
1354 | if (!intel_output) | 1312 | if (!intel_output) |
@@ -1373,11 +1331,10 @@ intel_dp_init(struct drm_device *dev, int output_reg) | |||
1373 | else if (output_reg == DP_D || output_reg == PCH_DP_D) | 1331 | else if (output_reg == DP_D || output_reg == PCH_DP_D) |
1374 | intel_output->clone_mask = (1 << INTEL_DP_D_CLONE_BIT); | 1332 | intel_output->clone_mask = (1 << INTEL_DP_D_CLONE_BIT); |
1375 | 1333 | ||
1376 | if (IS_eDP(intel_output)) { | 1334 | if (IS_eDP(intel_output)) |
1377 | intel_output->crtc_mask = (1 << 1); | ||
1378 | intel_output->clone_mask = (1 << INTEL_EDP_CLONE_BIT); | 1335 | intel_output->clone_mask = (1 << INTEL_EDP_CLONE_BIT); |
1379 | } else | 1336 | |
1380 | intel_output->crtc_mask = (1 << 0) | (1 << 1); | 1337 | intel_output->crtc_mask = (1 << 0) | (1 << 1); |
1381 | connector->interlace_allowed = true; | 1338 | connector->interlace_allowed = true; |
1382 | connector->doublescan_allowed = 0; | 1339 | connector->doublescan_allowed = 0; |
1383 | 1340 | ||
@@ -1402,14 +1359,20 @@ intel_dp_init(struct drm_device *dev, int output_reg) | |||
1402 | break; | 1359 | break; |
1403 | case DP_B: | 1360 | case DP_B: |
1404 | case PCH_DP_B: | 1361 | case PCH_DP_B: |
1362 | dev_priv->hotplug_supported_mask |= | ||
1363 | HDMIB_HOTPLUG_INT_STATUS; | ||
1405 | name = "DPDDC-B"; | 1364 | name = "DPDDC-B"; |
1406 | break; | 1365 | break; |
1407 | case DP_C: | 1366 | case DP_C: |
1408 | case PCH_DP_C: | 1367 | case PCH_DP_C: |
1368 | dev_priv->hotplug_supported_mask |= | ||
1369 | HDMIC_HOTPLUG_INT_STATUS; | ||
1409 | name = "DPDDC-C"; | 1370 | name = "DPDDC-C"; |
1410 | break; | 1371 | break; |
1411 | case DP_D: | 1372 | case DP_D: |
1412 | case PCH_DP_D: | 1373 | case PCH_DP_D: |
1374 | dev_priv->hotplug_supported_mask |= | ||
1375 | HDMID_HOTPLUG_INT_STATUS; | ||
1413 | name = "DPDDC-D"; | 1376 | name = "DPDDC-D"; |
1414 | break; | 1377 | break; |
1415 | } | 1378 | } |
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index f04dbbe7d40..0e268deed76 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c | |||
@@ -225,52 +225,6 @@ static const struct drm_encoder_funcs intel_hdmi_enc_funcs = { | |||
225 | .destroy = intel_hdmi_enc_destroy, | 225 | .destroy = intel_hdmi_enc_destroy, |
226 | }; | 226 | }; |
227 | 227 | ||
228 | /* | ||
229 | * Enumerate the child dev array parsed from VBT to check whether | ||
230 | * the given HDMI is present. | ||
231 | * If it is present, return 1. | ||
232 | * If it is not present, return false. | ||
233 | * If no child dev is parsed from VBT, it assumes that the given | ||
234 | * HDMI is present. | ||
235 | */ | ||
236 | static int hdmi_is_present_in_vbt(struct drm_device *dev, int hdmi_reg) | ||
237 | { | ||
238 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
239 | struct child_device_config *p_child; | ||
240 | int i, hdmi_port, ret; | ||
241 | |||
242 | if (!dev_priv->child_dev_num) | ||
243 | return 1; | ||
244 | |||
245 | if (hdmi_reg == SDVOB) | ||
246 | hdmi_port = DVO_B; | ||
247 | else if (hdmi_reg == SDVOC) | ||
248 | hdmi_port = DVO_C; | ||
249 | else if (hdmi_reg == HDMIB) | ||
250 | hdmi_port = DVO_B; | ||
251 | else if (hdmi_reg == HDMIC) | ||
252 | hdmi_port = DVO_C; | ||
253 | else if (hdmi_reg == HDMID) | ||
254 | hdmi_port = DVO_D; | ||
255 | else | ||
256 | return 0; | ||
257 | |||
258 | ret = 0; | ||
259 | for (i = 0; i < dev_priv->child_dev_num; i++) { | ||
260 | p_child = dev_priv->child_dev + i; | ||
261 | /* | ||
262 | * If the device type is not HDMI, continue. | ||
263 | */ | ||
264 | if (p_child->device_type != DEVICE_TYPE_HDMI) | ||
265 | continue; | ||
266 | /* Find the HDMI port */ | ||
267 | if (p_child->dvo_port == hdmi_port) { | ||
268 | ret = 1; | ||
269 | break; | ||
270 | } | ||
271 | } | ||
272 | return ret; | ||
273 | } | ||
274 | void intel_hdmi_init(struct drm_device *dev, int sdvox_reg) | 228 | void intel_hdmi_init(struct drm_device *dev, int sdvox_reg) |
275 | { | 229 | { |
276 | struct drm_i915_private *dev_priv = dev->dev_private; | 230 | struct drm_i915_private *dev_priv = dev->dev_private; |
@@ -278,10 +232,6 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg) | |||
278 | struct intel_output *intel_output; | 232 | struct intel_output *intel_output; |
279 | struct intel_hdmi_priv *hdmi_priv; | 233 | struct intel_hdmi_priv *hdmi_priv; |
280 | 234 | ||
281 | if (!hdmi_is_present_in_vbt(dev, sdvox_reg)) { | ||
282 | DRM_DEBUG_KMS("HDMI is not present. Ignored it \n"); | ||
283 | return; | ||
284 | } | ||
285 | intel_output = kcalloc(sizeof(struct intel_output) + | 235 | intel_output = kcalloc(sizeof(struct intel_output) + |
286 | sizeof(struct intel_hdmi_priv), 1, GFP_KERNEL); | 236 | sizeof(struct intel_hdmi_priv), 1, GFP_KERNEL); |
287 | if (!intel_output) | 237 | if (!intel_output) |
@@ -303,21 +253,26 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg) | |||
303 | if (sdvox_reg == SDVOB) { | 253 | if (sdvox_reg == SDVOB) { |
304 | intel_output->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT); | 254 | intel_output->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT); |
305 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "HDMIB"); | 255 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "HDMIB"); |
256 | dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS; | ||
306 | } else if (sdvox_reg == SDVOC) { | 257 | } else if (sdvox_reg == SDVOC) { |
307 | intel_output->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT); | 258 | intel_output->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT); |
308 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOD, "HDMIC"); | 259 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOD, "HDMIC"); |
260 | dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS; | ||
309 | } else if (sdvox_reg == HDMIB) { | 261 | } else if (sdvox_reg == HDMIB) { |
310 | intel_output->clone_mask = (1 << INTEL_HDMID_CLONE_BIT); | 262 | intel_output->clone_mask = (1 << INTEL_HDMID_CLONE_BIT); |
311 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOE, | 263 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOE, |
312 | "HDMIB"); | 264 | "HDMIB"); |
265 | dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS; | ||
313 | } else if (sdvox_reg == HDMIC) { | 266 | } else if (sdvox_reg == HDMIC) { |
314 | intel_output->clone_mask = (1 << INTEL_HDMIE_CLONE_BIT); | 267 | intel_output->clone_mask = (1 << INTEL_HDMIE_CLONE_BIT); |
315 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOD, | 268 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOD, |
316 | "HDMIC"); | 269 | "HDMIC"); |
270 | dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS; | ||
317 | } else if (sdvox_reg == HDMID) { | 271 | } else if (sdvox_reg == HDMID) { |
318 | intel_output->clone_mask = (1 << INTEL_HDMIF_CLONE_BIT); | 272 | intel_output->clone_mask = (1 << INTEL_HDMIF_CLONE_BIT); |
319 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOF, | 273 | intel_output->ddc_bus = intel_i2c_create(dev, PCH_GPIOF, |
320 | "HDMID"); | 274 | "HDMID"); |
275 | dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS; | ||
321 | } | 276 | } |
322 | if (!intel_output->ddc_bus) | 277 | if (!intel_output->ddc_bus) |
323 | goto err_connector; | 278 | goto err_connector; |
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c index 3118ce274e6..aa74e59bec6 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c | |||
@@ -602,12 +602,33 @@ static void intel_lvds_mode_set(struct drm_encoder *encoder, | |||
602 | /* Some lid devices report incorrect lid status, assume they're connected */ | 602 | /* Some lid devices report incorrect lid status, assume they're connected */ |
603 | static const struct dmi_system_id bad_lid_status[] = { | 603 | static const struct dmi_system_id bad_lid_status[] = { |
604 | { | 604 | { |
605 | .ident = "Compaq nx9020", | ||
606 | .matches = { | ||
607 | DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), | ||
608 | DMI_MATCH(DMI_BOARD_NAME, "3084"), | ||
609 | }, | ||
610 | }, | ||
611 | { | ||
612 | .ident = "Samsung SX20S", | ||
613 | .matches = { | ||
614 | DMI_MATCH(DMI_SYS_VENDOR, "Phoenix Technologies LTD"), | ||
615 | DMI_MATCH(DMI_BOARD_NAME, "SX20S"), | ||
616 | }, | ||
617 | }, | ||
618 | { | ||
605 | .ident = "Aspire One", | 619 | .ident = "Aspire One", |
606 | .matches = { | 620 | .matches = { |
607 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | 621 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), |
608 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire one"), | 622 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire one"), |
609 | }, | 623 | }, |
610 | }, | 624 | }, |
625 | { | ||
626 | .ident = "PC-81005", | ||
627 | .matches = { | ||
628 | DMI_MATCH(DMI_SYS_VENDOR, "MALATA"), | ||
629 | DMI_MATCH(DMI_PRODUCT_NAME, "PC-81005"), | ||
630 | }, | ||
631 | }, | ||
611 | { } | 632 | { } |
612 | }; | 633 | }; |
613 | 634 | ||
@@ -679,7 +700,14 @@ static int intel_lid_notify(struct notifier_block *nb, unsigned long val, | |||
679 | struct drm_i915_private *dev_priv = | 700 | struct drm_i915_private *dev_priv = |
680 | container_of(nb, struct drm_i915_private, lid_notifier); | 701 | container_of(nb, struct drm_i915_private, lid_notifier); |
681 | struct drm_device *dev = dev_priv->dev; | 702 | struct drm_device *dev = dev_priv->dev; |
703 | struct drm_connector *connector = dev_priv->int_lvds_connector; | ||
682 | 704 | ||
705 | /* | ||
706 | * check and update the status of LVDS connector after receiving | ||
707 | * the LID nofication event. | ||
708 | */ | ||
709 | if (connector) | ||
710 | connector->status = connector->funcs->detect(connector); | ||
683 | if (!acpi_lid_open()) { | 711 | if (!acpi_lid_open()) { |
684 | dev_priv->modeset_on_lid = 1; | 712 | dev_priv->modeset_on_lid = 1; |
685 | return NOTIFY_OK; | 713 | return NOTIFY_OK; |
@@ -854,65 +882,6 @@ static const struct dmi_system_id intel_no_lvds[] = { | |||
854 | { } /* terminating entry */ | 882 | { } /* terminating entry */ |
855 | }; | 883 | }; |
856 | 884 | ||
857 | #ifdef CONFIG_ACPI | ||
858 | /* | ||
859 | * check_lid_device -- check whether @handle is an ACPI LID device. | ||
860 | * @handle: ACPI device handle | ||
861 | * @level : depth in the ACPI namespace tree | ||
862 | * @context: the number of LID device when we find the device | ||
863 | * @rv: a return value to fill if desired (Not use) | ||
864 | */ | ||
865 | static acpi_status | ||
866 | check_lid_device(acpi_handle handle, u32 level, void *context, | ||
867 | void **return_value) | ||
868 | { | ||
869 | struct acpi_device *acpi_dev; | ||
870 | int *lid_present = context; | ||
871 | |||
872 | acpi_dev = NULL; | ||
873 | /* Get the acpi device for device handle */ | ||
874 | if (acpi_bus_get_device(handle, &acpi_dev) || !acpi_dev) { | ||
875 | /* If there is no ACPI device for handle, return */ | ||
876 | return AE_OK; | ||
877 | } | ||
878 | |||
879 | if (!strncmp(acpi_device_hid(acpi_dev), "PNP0C0D", 7)) | ||
880 | *lid_present = 1; | ||
881 | |||
882 | return AE_OK; | ||
883 | } | ||
884 | |||
885 | /** | ||
886 | * check whether there exists the ACPI LID device by enumerating the ACPI | ||
887 | * device tree. | ||
888 | */ | ||
889 | static int intel_lid_present(void) | ||
890 | { | ||
891 | int lid_present = 0; | ||
892 | |||
893 | if (acpi_disabled) { | ||
894 | /* If ACPI is disabled, there is no ACPI device tree to | ||
895 | * check, so assume the LID device would have been present. | ||
896 | */ | ||
897 | return 1; | ||
898 | } | ||
899 | |||
900 | acpi_walk_namespace(ACPI_TYPE_DEVICE, ACPI_ROOT_OBJECT, | ||
901 | ACPI_UINT32_MAX, | ||
902 | check_lid_device, NULL, &lid_present, NULL); | ||
903 | |||
904 | return lid_present; | ||
905 | } | ||
906 | #else | ||
907 | static int intel_lid_present(void) | ||
908 | { | ||
909 | /* In the absence of ACPI built in, assume that the LID device would | ||
910 | * have been present. | ||
911 | */ | ||
912 | return 1; | ||
913 | } | ||
914 | #endif | ||
915 | |||
916 | /** | 885 | /** |
917 | * intel_find_lvds_downclock - find the reduced downclock for LVDS in EDID | 886 | * intel_find_lvds_downclock - find the reduced downclock for LVDS in EDID |
918 | * @dev: drm device | 887 | * @dev: drm device |
@@ -957,7 +926,8 @@ static void intel_find_lvds_downclock(struct drm_device *dev, | |||
957 | } | 926 | } |
958 | } | 927 | } |
959 | mutex_unlock(&dev->mode_config.mutex); | 928 | mutex_unlock(&dev->mode_config.mutex); |
960 | if (temp_downclock < panel_fixed_mode->clock) { | 929 | if (temp_downclock < panel_fixed_mode->clock && |
930 | i915_lvds_downclock) { | ||
961 | /* We found the downclock for LVDS. */ | 931 | /* We found the downclock for LVDS. */ |
962 | dev_priv->lvds_downclock_avail = 1; | 932 | dev_priv->lvds_downclock_avail = 1; |
963 | dev_priv->lvds_downclock = temp_downclock; | 933 | dev_priv->lvds_downclock = temp_downclock; |
@@ -1031,12 +1001,8 @@ void intel_lvds_init(struct drm_device *dev) | |||
1031 | if (dmi_check_system(intel_no_lvds)) | 1001 | if (dmi_check_system(intel_no_lvds)) |
1032 | return; | 1002 | return; |
1033 | 1003 | ||
1034 | /* | 1004 | if (!lvds_is_present_in_vbt(dev)) { |
1035 | * Assume LVDS is present if there's an ACPI lid device or if the | 1005 | DRM_DEBUG_KMS("LVDS is not present in VBT\n"); |
1036 | * device is present in the VBT. | ||
1037 | */ | ||
1038 | if (!lvds_is_present_in_vbt(dev) && !intel_lid_present()) { | ||
1039 | DRM_DEBUG_KMS("LVDS is not present in VBT and no lid detected\n"); | ||
1040 | return; | 1006 | return; |
1041 | } | 1007 | } |
1042 | 1008 | ||
@@ -1180,6 +1146,8 @@ out: | |||
1180 | DRM_DEBUG_KMS("lid notifier registration failed\n"); | 1146 | DRM_DEBUG_KMS("lid notifier registration failed\n"); |
1181 | dev_priv->lid_notifier.notifier_call = NULL; | 1147 | dev_priv->lid_notifier.notifier_call = NULL; |
1182 | } | 1148 | } |
1149 | /* keep the LVDS connector */ | ||
1150 | dev_priv->int_lvds_connector = connector; | ||
1183 | drm_sysfs_connector_add(connector); | 1151 | drm_sysfs_connector_add(connector); |
1184 | return; | 1152 | return; |
1185 | 1153 | ||
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index 24a3dc99716..eaacfd0920d 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c | |||
@@ -462,14 +462,63 @@ static int intel_sdvo_get_pixel_multiplier(struct drm_display_mode *mode) | |||
462 | } | 462 | } |
463 | 463 | ||
464 | /** | 464 | /** |
465 | * Don't check status code from this as it switches the bus back to the | 465 | * Try to read the response after issuie the DDC switch command. But it |
466 | * SDVO chips which defeats the purpose of doing a bus switch in the first | 466 | * is noted that we must do the action of reading response and issuing DDC |
467 | * place. | 467 | * switch command in one I2C transaction. Otherwise when we try to start |
468 | * another I2C transaction after issuing the DDC bus switch, it will be | ||
469 | * switched to the internal SDVO register. | ||
468 | */ | 470 | */ |
469 | static void intel_sdvo_set_control_bus_switch(struct intel_output *intel_output, | 471 | static void intel_sdvo_set_control_bus_switch(struct intel_output *intel_output, |
470 | u8 target) | 472 | u8 target) |
471 | { | 473 | { |
472 | intel_sdvo_write_cmd(intel_output, SDVO_CMD_SET_CONTROL_BUS_SWITCH, &target, 1); | 474 | struct intel_sdvo_priv *sdvo_priv = intel_output->dev_priv; |
475 | u8 out_buf[2], cmd_buf[2], ret_value[2], ret; | ||
476 | struct i2c_msg msgs[] = { | ||
477 | { | ||
478 | .addr = sdvo_priv->slave_addr >> 1, | ||
479 | .flags = 0, | ||
480 | .len = 2, | ||
481 | .buf = out_buf, | ||
482 | }, | ||
483 | /* the following two are to read the response */ | ||
484 | { | ||
485 | .addr = sdvo_priv->slave_addr >> 1, | ||
486 | .flags = 0, | ||
487 | .len = 1, | ||
488 | .buf = cmd_buf, | ||
489 | }, | ||
490 | { | ||
491 | .addr = sdvo_priv->slave_addr >> 1, | ||
492 | .flags = I2C_M_RD, | ||
493 | .len = 1, | ||
494 | .buf = ret_value, | ||
495 | }, | ||
496 | }; | ||
497 | |||
498 | intel_sdvo_debug_write(intel_output, SDVO_CMD_SET_CONTROL_BUS_SWITCH, | ||
499 | &target, 1); | ||
500 | /* write the DDC switch command argument */ | ||
501 | intel_sdvo_write_byte(intel_output, SDVO_I2C_ARG_0, target); | ||
502 | |||
503 | out_buf[0] = SDVO_I2C_OPCODE; | ||
504 | out_buf[1] = SDVO_CMD_SET_CONTROL_BUS_SWITCH; | ||
505 | cmd_buf[0] = SDVO_I2C_CMD_STATUS; | ||
506 | cmd_buf[1] = 0; | ||
507 | ret_value[0] = 0; | ||
508 | ret_value[1] = 0; | ||
509 | |||
510 | ret = i2c_transfer(intel_output->i2c_bus, msgs, 3); | ||
511 | if (ret != 3) { | ||
512 | /* failure in I2C transfer */ | ||
513 | DRM_DEBUG_KMS("I2c transfer returned %d\n", ret); | ||
514 | return; | ||
515 | } | ||
516 | if (ret_value[0] != SDVO_CMD_STATUS_SUCCESS) { | ||
517 | DRM_DEBUG_KMS("DDC switch command returns response %d\n", | ||
518 | ret_value[0]); | ||
519 | return; | ||
520 | } | ||
521 | return; | ||
473 | } | 522 | } |
474 | 523 | ||
475 | static bool intel_sdvo_set_target_input(struct intel_output *intel_output, bool target_0, bool target_1) | 524 | static bool intel_sdvo_set_target_input(struct intel_output *intel_output, bool target_0, bool target_1) |
@@ -1579,6 +1628,32 @@ intel_sdvo_hdmi_sink_detect(struct drm_connector *connector, u16 response) | |||
1579 | edid = drm_get_edid(&intel_output->base, | 1628 | edid = drm_get_edid(&intel_output->base, |
1580 | intel_output->ddc_bus); | 1629 | intel_output->ddc_bus); |
1581 | 1630 | ||
1631 | /* This is only applied to SDVO cards with multiple outputs */ | ||
1632 | if (edid == NULL && intel_sdvo_multifunc_encoder(intel_output)) { | ||
1633 | uint8_t saved_ddc, temp_ddc; | ||
1634 | saved_ddc = sdvo_priv->ddc_bus; | ||
1635 | temp_ddc = sdvo_priv->ddc_bus >> 1; | ||
1636 | /* | ||
1637 | * Don't use the 1 as the argument of DDC bus switch to get | ||
1638 | * the EDID. It is used for SDVO SPD ROM. | ||
1639 | */ | ||
1640 | while(temp_ddc > 1) { | ||
1641 | sdvo_priv->ddc_bus = temp_ddc; | ||
1642 | edid = drm_get_edid(&intel_output->base, | ||
1643 | intel_output->ddc_bus); | ||
1644 | if (edid) { | ||
1645 | /* | ||
1646 | * When we can get the EDID, maybe it is the | ||
1647 | * correct DDC bus. Update it. | ||
1648 | */ | ||
1649 | sdvo_priv->ddc_bus = temp_ddc; | ||
1650 | break; | ||
1651 | } | ||
1652 | temp_ddc >>= 1; | ||
1653 | } | ||
1654 | if (edid == NULL) | ||
1655 | sdvo_priv->ddc_bus = saved_ddc; | ||
1656 | } | ||
1582 | /* when there is no edid and no monitor is connected with VGA | 1657 | /* when there is no edid and no monitor is connected with VGA |
1583 | * port, try to use the CRT ddc to read the EDID for DVI-connector | 1658 | * port, try to use the CRT ddc to read the EDID for DVI-connector |
1584 | */ | 1659 | */ |
@@ -2662,6 +2737,7 @@ static void intel_sdvo_create_enhance_property(struct drm_connector *connector) | |||
2662 | 2737 | ||
2663 | bool intel_sdvo_init(struct drm_device *dev, int output_device) | 2738 | bool intel_sdvo_init(struct drm_device *dev, int output_device) |
2664 | { | 2739 | { |
2740 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
2665 | struct drm_connector *connector; | 2741 | struct drm_connector *connector; |
2666 | struct intel_output *intel_output; | 2742 | struct intel_output *intel_output; |
2667 | struct intel_sdvo_priv *sdvo_priv; | 2743 | struct intel_sdvo_priv *sdvo_priv; |
@@ -2708,10 +2784,12 @@ bool intel_sdvo_init(struct drm_device *dev, int output_device) | |||
2708 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "SDVOB DDC BUS"); | 2784 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "SDVOB DDC BUS"); |
2709 | sdvo_priv->analog_ddc_bus = intel_i2c_create(dev, GPIOA, | 2785 | sdvo_priv->analog_ddc_bus = intel_i2c_create(dev, GPIOA, |
2710 | "SDVOB/VGA DDC BUS"); | 2786 | "SDVOB/VGA DDC BUS"); |
2787 | dev_priv->hotplug_supported_mask |= SDVOB_HOTPLUG_INT_STATUS; | ||
2711 | } else { | 2788 | } else { |
2712 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "SDVOC DDC BUS"); | 2789 | intel_output->ddc_bus = intel_i2c_create(dev, GPIOE, "SDVOC DDC BUS"); |
2713 | sdvo_priv->analog_ddc_bus = intel_i2c_create(dev, GPIOA, | 2790 | sdvo_priv->analog_ddc_bus = intel_i2c_create(dev, GPIOA, |
2714 | "SDVOC/VGA DDC BUS"); | 2791 | "SDVOC/VGA DDC BUS"); |
2792 | dev_priv->hotplug_supported_mask |= SDVOC_HOTPLUG_INT_STATUS; | ||
2715 | } | 2793 | } |
2716 | 2794 | ||
2717 | if (intel_output->ddc_bus == NULL) | 2795 | if (intel_output->ddc_bus == NULL) |
diff --git a/drivers/gpu/drm/nouveau/Kconfig b/drivers/gpu/drm/nouveau/Kconfig index b1bc1ea182b..1175429da10 100644 --- a/drivers/gpu/drm/nouveau/Kconfig +++ b/drivers/gpu/drm/nouveau/Kconfig | |||
@@ -30,12 +30,11 @@ config DRM_NOUVEAU_DEBUG | |||
30 | via debugfs. | 30 | via debugfs. |
31 | 31 | ||
32 | menu "I2C encoder or helper chips" | 32 | menu "I2C encoder or helper chips" |
33 | depends on DRM && I2C | 33 | depends on DRM && DRM_KMS_HELPER && I2C |
34 | 34 | ||
35 | config DRM_I2C_CH7006 | 35 | config DRM_I2C_CH7006 |
36 | tristate "Chrontel ch7006 TV encoder" | 36 | tristate "Chrontel ch7006 TV encoder" |
37 | depends on DRM_NOUVEAU | 37 | default m if DRM_NOUVEAU |
38 | default m | ||
39 | help | 38 | help |
40 | Support for Chrontel ch7006 and similar TV encoders, found | 39 | Support for Chrontel ch7006 and similar TV encoders, found |
41 | on some nVidia video cards. | 40 | on some nVidia video cards. |
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index 0cad6d834eb..e342a418d43 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c | |||
@@ -33,10 +33,13 @@ | |||
33 | #include "nouveau_drv.h" | 33 | #include "nouveau_drv.h" |
34 | #include "nouveau_dma.h" | 34 | #include "nouveau_dma.h" |
35 | 35 | ||
36 | #include <linux/log2.h> | ||
37 | |||
36 | static void | 38 | static void |
37 | nouveau_bo_del_ttm(struct ttm_buffer_object *bo) | 39 | nouveau_bo_del_ttm(struct ttm_buffer_object *bo) |
38 | { | 40 | { |
39 | struct drm_nouveau_private *dev_priv = nouveau_bdev(bo->bdev); | 41 | struct drm_nouveau_private *dev_priv = nouveau_bdev(bo->bdev); |
42 | struct drm_device *dev = dev_priv->dev; | ||
40 | struct nouveau_bo *nvbo = nouveau_bo(bo); | 43 | struct nouveau_bo *nvbo = nouveau_bo(bo); |
41 | 44 | ||
42 | ttm_bo_kunmap(&nvbo->kmap); | 45 | ttm_bo_kunmap(&nvbo->kmap); |
@@ -44,12 +47,87 @@ nouveau_bo_del_ttm(struct ttm_buffer_object *bo) | |||
44 | if (unlikely(nvbo->gem)) | 47 | if (unlikely(nvbo->gem)) |
45 | DRM_ERROR("bo %p still attached to GEM object\n", bo); | 48 | DRM_ERROR("bo %p still attached to GEM object\n", bo); |
46 | 49 | ||
50 | if (nvbo->tile) | ||
51 | nv10_mem_expire_tiling(dev, nvbo->tile, NULL); | ||
52 | |||
47 | spin_lock(&dev_priv->ttm.bo_list_lock); | 53 | spin_lock(&dev_priv->ttm.bo_list_lock); |
48 | list_del(&nvbo->head); | 54 | list_del(&nvbo->head); |
49 | spin_unlock(&dev_priv->ttm.bo_list_lock); | 55 | spin_unlock(&dev_priv->ttm.bo_list_lock); |
50 | kfree(nvbo); | 56 | kfree(nvbo); |
51 | } | 57 | } |
52 | 58 | ||
59 | static void | ||
60 | nouveau_bo_fixup_align(struct drm_device *dev, | ||
61 | uint32_t tile_mode, uint32_t tile_flags, | ||
62 | int *align, int *size) | ||
63 | { | ||
64 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
65 | |||
66 | /* | ||
67 | * Some of the tile_flags have a periodic structure of N*4096 bytes, | ||
68 | * align to to that as well as the page size. Overallocate memory to | ||
69 | * avoid corruption of other buffer objects. | ||
70 | */ | ||
71 | if (dev_priv->card_type == NV_50) { | ||
72 | uint32_t block_size = nouveau_mem_fb_amount(dev) >> 15; | ||
73 | int i; | ||
74 | |||
75 | switch (tile_flags) { | ||
76 | case 0x1800: | ||
77 | case 0x2800: | ||
78 | case 0x4800: | ||
79 | case 0x7a00: | ||
80 | *size = roundup(*size, block_size); | ||
81 | if (is_power_of_2(block_size)) { | ||
82 | *size += 3 * block_size; | ||
83 | for (i = 1; i < 10; i++) { | ||
84 | *align = 12 * i * block_size; | ||
85 | if (!(*align % 65536)) | ||
86 | break; | ||
87 | } | ||
88 | } else { | ||
89 | *size += 6 * block_size; | ||
90 | for (i = 1; i < 10; i++) { | ||
91 | *align = 8 * i * block_size; | ||
92 | if (!(*align % 65536)) | ||
93 | break; | ||
94 | } | ||
95 | } | ||
96 | break; | ||
97 | default: | ||
98 | break; | ||
99 | } | ||
100 | |||
101 | } else { | ||
102 | if (tile_mode) { | ||
103 | if (dev_priv->chipset >= 0x40) { | ||
104 | *align = 65536; | ||
105 | *size = roundup(*size, 64 * tile_mode); | ||
106 | |||
107 | } else if (dev_priv->chipset >= 0x30) { | ||
108 | *align = 32768; | ||
109 | *size = roundup(*size, 64 * tile_mode); | ||
110 | |||
111 | } else if (dev_priv->chipset >= 0x20) { | ||
112 | *align = 16384; | ||
113 | *size = roundup(*size, 64 * tile_mode); | ||
114 | |||
115 | } else if (dev_priv->chipset >= 0x10) { | ||
116 | *align = 16384; | ||
117 | *size = roundup(*size, 32 * tile_mode); | ||
118 | } | ||
119 | } | ||
120 | } | ||
121 | |||
122 | /* ALIGN works only on powers of two. */ | ||
123 | *size = roundup(*size, PAGE_SIZE); | ||
124 | |||
125 | if (dev_priv->card_type == NV_50) { | ||
126 | *size = roundup(*size, 65536); | ||
127 | *align = max(65536, *align); | ||
128 | } | ||
129 | } | ||
130 | |||
53 | int | 131 | int |
54 | nouveau_bo_new(struct drm_device *dev, struct nouveau_channel *chan, | 132 | nouveau_bo_new(struct drm_device *dev, struct nouveau_channel *chan, |
55 | int size, int align, uint32_t flags, uint32_t tile_mode, | 133 | int size, int align, uint32_t flags, uint32_t tile_mode, |
@@ -58,7 +136,7 @@ nouveau_bo_new(struct drm_device *dev, struct nouveau_channel *chan, | |||
58 | { | 136 | { |
59 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 137 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
60 | struct nouveau_bo *nvbo; | 138 | struct nouveau_bo *nvbo; |
61 | int ret, n = 0; | 139 | int ret = 0; |
62 | 140 | ||
63 | nvbo = kzalloc(sizeof(struct nouveau_bo), GFP_KERNEL); | 141 | nvbo = kzalloc(sizeof(struct nouveau_bo), GFP_KERNEL); |
64 | if (!nvbo) | 142 | if (!nvbo) |
@@ -70,59 +148,14 @@ nouveau_bo_new(struct drm_device *dev, struct nouveau_channel *chan, | |||
70 | nvbo->tile_mode = tile_mode; | 148 | nvbo->tile_mode = tile_mode; |
71 | nvbo->tile_flags = tile_flags; | 149 | nvbo->tile_flags = tile_flags; |
72 | 150 | ||
73 | /* | 151 | nouveau_bo_fixup_align(dev, tile_mode, tile_flags, &align, &size); |
74 | * Some of the tile_flags have a periodic structure of N*4096 bytes, | ||
75 | * align to to that as well as the page size. Overallocate memory to | ||
76 | * avoid corruption of other buffer objects. | ||
77 | */ | ||
78 | switch (tile_flags) { | ||
79 | case 0x1800: | ||
80 | case 0x2800: | ||
81 | case 0x4800: | ||
82 | case 0x7a00: | ||
83 | if (dev_priv->chipset >= 0xA0) { | ||
84 | /* This is based on high end cards with 448 bits | ||
85 | * memory bus, could be different elsewhere.*/ | ||
86 | size += 6 * 28672; | ||
87 | /* 8 * 28672 is the actual alignment requirement, | ||
88 | * but we must also align to page size. */ | ||
89 | align = 2 * 8 * 28672; | ||
90 | } else if (dev_priv->chipset >= 0x90) { | ||
91 | size += 3 * 16384; | ||
92 | align = 12 * 16834; | ||
93 | } else { | ||
94 | size += 3 * 8192; | ||
95 | /* 12 * 8192 is the actual alignment requirement, | ||
96 | * but we must also align to page size. */ | ||
97 | align = 2 * 12 * 8192; | ||
98 | } | ||
99 | break; | ||
100 | default: | ||
101 | break; | ||
102 | } | ||
103 | |||
104 | align >>= PAGE_SHIFT; | 152 | align >>= PAGE_SHIFT; |
105 | 153 | ||
106 | size = (size + (PAGE_SIZE - 1)) & ~(PAGE_SIZE - 1); | ||
107 | if (dev_priv->card_type == NV_50) { | ||
108 | size = (size + 65535) & ~65535; | ||
109 | if (align < (65536 / PAGE_SIZE)) | ||
110 | align = (65536 / PAGE_SIZE); | ||
111 | } | ||
112 | |||
113 | if (flags & TTM_PL_FLAG_VRAM) | ||
114 | nvbo->placements[n++] = TTM_PL_FLAG_VRAM | TTM_PL_MASK_CACHING; | ||
115 | if (flags & TTM_PL_FLAG_TT) | ||
116 | nvbo->placements[n++] = TTM_PL_FLAG_TT | TTM_PL_MASK_CACHING; | ||
117 | nvbo->placement.fpfn = 0; | 154 | nvbo->placement.fpfn = 0; |
118 | nvbo->placement.lpfn = mappable ? dev_priv->fb_mappable_pages : 0; | 155 | nvbo->placement.lpfn = mappable ? dev_priv->fb_mappable_pages : 0; |
119 | nvbo->placement.placement = nvbo->placements; | 156 | nouveau_bo_placement_set(nvbo, flags); |
120 | nvbo->placement.busy_placement = nvbo->placements; | ||
121 | nvbo->placement.num_placement = n; | ||
122 | nvbo->placement.num_busy_placement = n; | ||
123 | 157 | ||
124 | nvbo->channel = chan; | 158 | nvbo->channel = chan; |
125 | nouveau_bo_placement_set(nvbo, flags); | ||
126 | ret = ttm_bo_init(&dev_priv->ttm.bdev, &nvbo->bo, size, | 159 | ret = ttm_bo_init(&dev_priv->ttm.bdev, &nvbo->bo, size, |
127 | ttm_bo_type_device, &nvbo->placement, align, 0, | 160 | ttm_bo_type_device, &nvbo->placement, align, 0, |
128 | false, NULL, size, nouveau_bo_del_ttm); | 161 | false, NULL, size, nouveau_bo_del_ttm); |
@@ -421,6 +454,7 @@ nouveau_bo_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *pl) | |||
421 | /* GPU-assisted copy using NV_MEMORY_TO_MEMORY_FORMAT, can access | 454 | /* GPU-assisted copy using NV_MEMORY_TO_MEMORY_FORMAT, can access |
422 | * TTM_PL_{VRAM,TT} directly. | 455 | * TTM_PL_{VRAM,TT} directly. |
423 | */ | 456 | */ |
457 | |||
424 | static int | 458 | static int |
425 | nouveau_bo_move_accel_cleanup(struct nouveau_channel *chan, | 459 | nouveau_bo_move_accel_cleanup(struct nouveau_channel *chan, |
426 | struct nouveau_bo *nvbo, bool evict, bool no_wait, | 460 | struct nouveau_bo *nvbo, bool evict, bool no_wait, |
@@ -455,11 +489,12 @@ nouveau_bo_mem_ctxdma(struct nouveau_bo *nvbo, struct nouveau_channel *chan, | |||
455 | } | 489 | } |
456 | 490 | ||
457 | static int | 491 | static int |
458 | nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, int no_wait, | 492 | nouveau_bo_move_m2mf(struct ttm_buffer_object *bo, int evict, bool intr, |
459 | struct ttm_mem_reg *old_mem, struct ttm_mem_reg *new_mem) | 493 | int no_wait, struct ttm_mem_reg *new_mem) |
460 | { | 494 | { |
461 | struct nouveau_bo *nvbo = nouveau_bo(bo); | 495 | struct nouveau_bo *nvbo = nouveau_bo(bo); |
462 | struct drm_nouveau_private *dev_priv = nouveau_bdev(bo->bdev); | 496 | struct drm_nouveau_private *dev_priv = nouveau_bdev(bo->bdev); |
497 | struct ttm_mem_reg *old_mem = &bo->mem; | ||
463 | struct nouveau_channel *chan; | 498 | struct nouveau_channel *chan; |
464 | uint64_t src_offset, dst_offset; | 499 | uint64_t src_offset, dst_offset; |
465 | uint32_t page_count; | 500 | uint32_t page_count; |
@@ -547,7 +582,7 @@ nouveau_bo_move_flipd(struct ttm_buffer_object *bo, bool evict, bool intr, | |||
547 | 582 | ||
548 | placement.fpfn = placement.lpfn = 0; | 583 | placement.fpfn = placement.lpfn = 0; |
549 | placement.num_placement = placement.num_busy_placement = 1; | 584 | placement.num_placement = placement.num_busy_placement = 1; |
550 | placement.placement = &placement_memtype; | 585 | placement.placement = placement.busy_placement = &placement_memtype; |
551 | 586 | ||
552 | tmp_mem = *new_mem; | 587 | tmp_mem = *new_mem; |
553 | tmp_mem.mm_node = NULL; | 588 | tmp_mem.mm_node = NULL; |
@@ -559,7 +594,7 @@ nouveau_bo_move_flipd(struct ttm_buffer_object *bo, bool evict, bool intr, | |||
559 | if (ret) | 594 | if (ret) |
560 | goto out; | 595 | goto out; |
561 | 596 | ||
562 | ret = nouveau_bo_move_m2mf(bo, true, no_wait, &bo->mem, &tmp_mem); | 597 | ret = nouveau_bo_move_m2mf(bo, true, intr, no_wait, &tmp_mem); |
563 | if (ret) | 598 | if (ret) |
564 | goto out; | 599 | goto out; |
565 | 600 | ||
@@ -585,7 +620,7 @@ nouveau_bo_move_flips(struct ttm_buffer_object *bo, bool evict, bool intr, | |||
585 | 620 | ||
586 | placement.fpfn = placement.lpfn = 0; | 621 | placement.fpfn = placement.lpfn = 0; |
587 | placement.num_placement = placement.num_busy_placement = 1; | 622 | placement.num_placement = placement.num_busy_placement = 1; |
588 | placement.placement = &placement_memtype; | 623 | placement.placement = placement.busy_placement = &placement_memtype; |
589 | 624 | ||
590 | tmp_mem = *new_mem; | 625 | tmp_mem = *new_mem; |
591 | tmp_mem.mm_node = NULL; | 626 | tmp_mem.mm_node = NULL; |
@@ -597,7 +632,7 @@ nouveau_bo_move_flips(struct ttm_buffer_object *bo, bool evict, bool intr, | |||
597 | if (ret) | 632 | if (ret) |
598 | goto out; | 633 | goto out; |
599 | 634 | ||
600 | ret = nouveau_bo_move_m2mf(bo, true, no_wait, &bo->mem, new_mem); | 635 | ret = nouveau_bo_move_m2mf(bo, evict, intr, no_wait, new_mem); |
601 | if (ret) | 636 | if (ret) |
602 | goto out; | 637 | goto out; |
603 | 638 | ||
@@ -612,52 +647,106 @@ out: | |||
612 | } | 647 | } |
613 | 648 | ||
614 | static int | 649 | static int |
615 | nouveau_bo_move(struct ttm_buffer_object *bo, bool evict, bool intr, | 650 | nouveau_bo_vm_bind(struct ttm_buffer_object *bo, struct ttm_mem_reg *new_mem, |
616 | bool no_wait, struct ttm_mem_reg *new_mem) | 651 | struct nouveau_tile_reg **new_tile) |
617 | { | 652 | { |
618 | struct drm_nouveau_private *dev_priv = nouveau_bdev(bo->bdev); | 653 | struct drm_nouveau_private *dev_priv = nouveau_bdev(bo->bdev); |
619 | struct nouveau_bo *nvbo = nouveau_bo(bo); | ||
620 | struct drm_device *dev = dev_priv->dev; | 654 | struct drm_device *dev = dev_priv->dev; |
621 | struct ttm_mem_reg *old_mem = &bo->mem; | 655 | struct nouveau_bo *nvbo = nouveau_bo(bo); |
656 | uint64_t offset; | ||
622 | int ret; | 657 | int ret; |
623 | 658 | ||
624 | if (dev_priv->card_type == NV_50 && new_mem->mem_type == TTM_PL_VRAM && | 659 | if (nvbo->no_vm || new_mem->mem_type != TTM_PL_VRAM) { |
625 | !nvbo->no_vm) { | 660 | /* Nothing to do. */ |
626 | uint64_t offset = new_mem->mm_node->start << PAGE_SHIFT; | 661 | *new_tile = NULL; |
662 | return 0; | ||
663 | } | ||
664 | |||
665 | offset = new_mem->mm_node->start << PAGE_SHIFT; | ||
627 | 666 | ||
667 | if (dev_priv->card_type == NV_50) { | ||
628 | ret = nv50_mem_vm_bind_linear(dev, | 668 | ret = nv50_mem_vm_bind_linear(dev, |
629 | offset + dev_priv->vm_vram_base, | 669 | offset + dev_priv->vm_vram_base, |
630 | new_mem->size, nvbo->tile_flags, | 670 | new_mem->size, nvbo->tile_flags, |
631 | offset); | 671 | offset); |
632 | if (ret) | 672 | if (ret) |
633 | return ret; | 673 | return ret; |
674 | |||
675 | } else if (dev_priv->card_type >= NV_10) { | ||
676 | *new_tile = nv10_mem_set_tiling(dev, offset, new_mem->size, | ||
677 | nvbo->tile_mode); | ||
634 | } | 678 | } |
635 | 679 | ||
680 | return 0; | ||
681 | } | ||
682 | |||
683 | static void | ||
684 | nouveau_bo_vm_cleanup(struct ttm_buffer_object *bo, | ||
685 | struct nouveau_tile_reg *new_tile, | ||
686 | struct nouveau_tile_reg **old_tile) | ||
687 | { | ||
688 | struct drm_nouveau_private *dev_priv = nouveau_bdev(bo->bdev); | ||
689 | struct drm_device *dev = dev_priv->dev; | ||
690 | |||
691 | if (dev_priv->card_type >= NV_10 && | ||
692 | dev_priv->card_type < NV_50) { | ||
693 | if (*old_tile) | ||
694 | nv10_mem_expire_tiling(dev, *old_tile, bo->sync_obj); | ||
695 | |||
696 | *old_tile = new_tile; | ||
697 | } | ||
698 | } | ||
699 | |||
700 | static int | ||
701 | nouveau_bo_move(struct ttm_buffer_object *bo, bool evict, bool intr, | ||
702 | bool no_wait, struct ttm_mem_reg *new_mem) | ||
703 | { | ||
704 | struct drm_nouveau_private *dev_priv = nouveau_bdev(bo->bdev); | ||
705 | struct nouveau_bo *nvbo = nouveau_bo(bo); | ||
706 | struct ttm_mem_reg *old_mem = &bo->mem; | ||
707 | struct nouveau_tile_reg *new_tile = NULL; | ||
708 | int ret = 0; | ||
709 | |||
710 | ret = nouveau_bo_vm_bind(bo, new_mem, &new_tile); | ||
711 | if (ret) | ||
712 | return ret; | ||
713 | |||
714 | /* Software copy if the card isn't up and running yet. */ | ||
636 | if (dev_priv->init_state != NOUVEAU_CARD_INIT_DONE || | 715 | if (dev_priv->init_state != NOUVEAU_CARD_INIT_DONE || |
637 | !dev_priv->channel) | 716 | !dev_priv->channel) { |
638 | return ttm_bo_move_memcpy(bo, evict, no_wait, new_mem); | 717 | ret = ttm_bo_move_memcpy(bo, evict, no_wait, new_mem); |
718 | goto out; | ||
719 | } | ||
639 | 720 | ||
721 | /* Fake bo copy. */ | ||
640 | if (old_mem->mem_type == TTM_PL_SYSTEM && !bo->ttm) { | 722 | if (old_mem->mem_type == TTM_PL_SYSTEM && !bo->ttm) { |
641 | BUG_ON(bo->mem.mm_node != NULL); | 723 | BUG_ON(bo->mem.mm_node != NULL); |
642 | bo->mem = *new_mem; | 724 | bo->mem = *new_mem; |
643 | new_mem->mm_node = NULL; | 725 | new_mem->mm_node = NULL; |
644 | return 0; | 726 | goto out; |
645 | } | 727 | } |
646 | 728 | ||
647 | if (new_mem->mem_type == TTM_PL_SYSTEM) { | 729 | /* Hardware assisted copy. */ |
648 | if (old_mem->mem_type == TTM_PL_SYSTEM) | 730 | if (new_mem->mem_type == TTM_PL_SYSTEM) |
649 | return ttm_bo_move_memcpy(bo, evict, no_wait, new_mem); | 731 | ret = nouveau_bo_move_flipd(bo, evict, intr, no_wait, new_mem); |
650 | if (nouveau_bo_move_flipd(bo, evict, intr, no_wait, new_mem)) | 732 | else if (old_mem->mem_type == TTM_PL_SYSTEM) |
651 | return ttm_bo_move_memcpy(bo, evict, no_wait, new_mem); | 733 | ret = nouveau_bo_move_flips(bo, evict, intr, no_wait, new_mem); |
652 | } else if (old_mem->mem_type == TTM_PL_SYSTEM) { | 734 | else |
653 | if (nouveau_bo_move_flips(bo, evict, intr, no_wait, new_mem)) | 735 | ret = nouveau_bo_move_m2mf(bo, evict, intr, no_wait, new_mem); |
654 | return ttm_bo_move_memcpy(bo, evict, no_wait, new_mem); | ||
655 | } else { | ||
656 | if (nouveau_bo_move_m2mf(bo, evict, no_wait, old_mem, new_mem)) | ||
657 | return ttm_bo_move_memcpy(bo, evict, no_wait, new_mem); | ||
658 | } | ||
659 | 736 | ||
660 | return 0; | 737 | if (!ret) |
738 | goto out; | ||
739 | |||
740 | /* Fallback to software copy. */ | ||
741 | ret = ttm_bo_move_memcpy(bo, evict, no_wait, new_mem); | ||
742 | |||
743 | out: | ||
744 | if (ret) | ||
745 | nouveau_bo_vm_cleanup(bo, NULL, &new_tile); | ||
746 | else | ||
747 | nouveau_bo_vm_cleanup(bo, new_tile, &nvbo->tile); | ||
748 | |||
749 | return ret; | ||
661 | } | 750 | } |
662 | 751 | ||
663 | static int | 752 | static int |
diff --git a/drivers/gpu/drm/nouveau/nouveau_channel.c b/drivers/gpu/drm/nouveau/nouveau_channel.c index 9aaa972f882..343d718a966 100644 --- a/drivers/gpu/drm/nouveau/nouveau_channel.c +++ b/drivers/gpu/drm/nouveau/nouveau_channel.c | |||
@@ -158,6 +158,8 @@ nouveau_channel_alloc(struct drm_device *dev, struct nouveau_channel **chan_ret, | |||
158 | return ret; | 158 | return ret; |
159 | } | 159 | } |
160 | 160 | ||
161 | nouveau_dma_pre_init(chan); | ||
162 | |||
161 | /* Locate channel's user control regs */ | 163 | /* Locate channel's user control regs */ |
162 | if (dev_priv->card_type < NV_40) | 164 | if (dev_priv->card_type < NV_40) |
163 | user = NV03_USER(channel); | 165 | user = NV03_USER(channel); |
@@ -235,47 +237,6 @@ nouveau_channel_alloc(struct drm_device *dev, struct nouveau_channel **chan_ret, | |||
235 | return 0; | 237 | return 0; |
236 | } | 238 | } |
237 | 239 | ||
238 | int | ||
239 | nouveau_channel_idle(struct nouveau_channel *chan) | ||
240 | { | ||
241 | struct drm_device *dev = chan->dev; | ||
242 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
243 | struct nouveau_engine *engine = &dev_priv->engine; | ||
244 | uint32_t caches; | ||
245 | int idle; | ||
246 | |||
247 | if (!chan) { | ||
248 | NV_ERROR(dev, "no channel...\n"); | ||
249 | return 1; | ||
250 | } | ||
251 | |||
252 | caches = nv_rd32(dev, NV03_PFIFO_CACHES); | ||
253 | nv_wr32(dev, NV03_PFIFO_CACHES, caches & ~1); | ||
254 | |||
255 | if (engine->fifo.channel_id(dev) != chan->id) { | ||
256 | struct nouveau_gpuobj *ramfc = | ||
257 | chan->ramfc ? chan->ramfc->gpuobj : NULL; | ||
258 | |||
259 | if (!ramfc) { | ||
260 | NV_ERROR(dev, "No RAMFC for channel %d\n", chan->id); | ||
261 | return 1; | ||
262 | } | ||
263 | |||
264 | engine->instmem.prepare_access(dev, false); | ||
265 | if (nv_ro32(dev, ramfc, 0) != nv_ro32(dev, ramfc, 1)) | ||
266 | idle = 0; | ||
267 | else | ||
268 | idle = 1; | ||
269 | engine->instmem.finish_access(dev); | ||
270 | } else { | ||
271 | idle = (nv_rd32(dev, NV04_PFIFO_CACHE1_DMA_GET) == | ||
272 | nv_rd32(dev, NV04_PFIFO_CACHE1_DMA_PUT)); | ||
273 | } | ||
274 | |||
275 | nv_wr32(dev, NV03_PFIFO_CACHES, caches); | ||
276 | return idle; | ||
277 | } | ||
278 | |||
279 | /* stops a fifo */ | 240 | /* stops a fifo */ |
280 | void | 241 | void |
281 | nouveau_channel_free(struct nouveau_channel *chan) | 242 | nouveau_channel_free(struct nouveau_channel *chan) |
@@ -414,7 +375,9 @@ nouveau_ioctl_fifo_alloc(struct drm_device *dev, void *data, | |||
414 | init->subchan[0].grclass = 0x0039; | 375 | init->subchan[0].grclass = 0x0039; |
415 | else | 376 | else |
416 | init->subchan[0].grclass = 0x5039; | 377 | init->subchan[0].grclass = 0x5039; |
417 | init->nr_subchan = 1; | 378 | init->subchan[1].handle = NvSw; |
379 | init->subchan[1].grclass = NV_SW; | ||
380 | init->nr_subchan = 2; | ||
418 | 381 | ||
419 | /* Named memory object area */ | 382 | /* Named memory object area */ |
420 | ret = drm_gem_handle_create(file_priv, chan->notifier_bo->gem, | 383 | ret = drm_gem_handle_create(file_priv, chan->notifier_bo->gem, |
diff --git a/drivers/gpu/drm/nouveau/nouveau_dma.c b/drivers/gpu/drm/nouveau/nouveau_dma.c index 703553687b2..7afbe8b40d5 100644 --- a/drivers/gpu/drm/nouveau/nouveau_dma.c +++ b/drivers/gpu/drm/nouveau/nouveau_dma.c | |||
@@ -29,12 +29,22 @@ | |||
29 | #include "nouveau_drv.h" | 29 | #include "nouveau_drv.h" |
30 | #include "nouveau_dma.h" | 30 | #include "nouveau_dma.h" |
31 | 31 | ||
32 | void | ||
33 | nouveau_dma_pre_init(struct nouveau_channel *chan) | ||
34 | { | ||
35 | chan->dma.max = (chan->pushbuf_bo->bo.mem.size >> 2) - 2; | ||
36 | chan->dma.put = 0; | ||
37 | chan->dma.cur = chan->dma.put; | ||
38 | chan->dma.free = chan->dma.max - chan->dma.cur; | ||
39 | } | ||
40 | |||
32 | int | 41 | int |
33 | nouveau_dma_init(struct nouveau_channel *chan) | 42 | nouveau_dma_init(struct nouveau_channel *chan) |
34 | { | 43 | { |
35 | struct drm_device *dev = chan->dev; | 44 | struct drm_device *dev = chan->dev; |
36 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 45 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
37 | struct nouveau_gpuobj *m2mf = NULL; | 46 | struct nouveau_gpuobj *m2mf = NULL; |
47 | struct nouveau_gpuobj *nvsw = NULL; | ||
38 | int ret, i; | 48 | int ret, i; |
39 | 49 | ||
40 | /* Create NV_MEMORY_TO_MEMORY_FORMAT for buffer moves */ | 50 | /* Create NV_MEMORY_TO_MEMORY_FORMAT for buffer moves */ |
@@ -47,6 +57,15 @@ nouveau_dma_init(struct nouveau_channel *chan) | |||
47 | if (ret) | 57 | if (ret) |
48 | return ret; | 58 | return ret; |
49 | 59 | ||
60 | /* Create an NV_SW object for various sync purposes */ | ||
61 | ret = nouveau_gpuobj_sw_new(chan, NV_SW, &nvsw); | ||
62 | if (ret) | ||
63 | return ret; | ||
64 | |||
65 | ret = nouveau_gpuobj_ref_add(dev, chan, NvSw, nvsw, NULL); | ||
66 | if (ret) | ||
67 | return ret; | ||
68 | |||
50 | /* NV_MEMORY_TO_MEMORY_FORMAT requires a notifier object */ | 69 | /* NV_MEMORY_TO_MEMORY_FORMAT requires a notifier object */ |
51 | ret = nouveau_notifier_alloc(chan, NvNotify0, 32, &chan->m2mf_ntfy); | 70 | ret = nouveau_notifier_alloc(chan, NvNotify0, 32, &chan->m2mf_ntfy); |
52 | if (ret) | 71 | if (ret) |
@@ -64,12 +83,6 @@ nouveau_dma_init(struct nouveau_channel *chan) | |||
64 | return ret; | 83 | return ret; |
65 | } | 84 | } |
66 | 85 | ||
67 | /* Initialise DMA vars */ | ||
68 | chan->dma.max = (chan->pushbuf_bo->bo.mem.size >> 2) - 2; | ||
69 | chan->dma.put = 0; | ||
70 | chan->dma.cur = chan->dma.put; | ||
71 | chan->dma.free = chan->dma.max - chan->dma.cur; | ||
72 | |||
73 | /* Insert NOPS for NOUVEAU_DMA_SKIPS */ | 86 | /* Insert NOPS for NOUVEAU_DMA_SKIPS */ |
74 | ret = RING_SPACE(chan, NOUVEAU_DMA_SKIPS); | 87 | ret = RING_SPACE(chan, NOUVEAU_DMA_SKIPS); |
75 | if (ret) | 88 | if (ret) |
@@ -87,6 +100,13 @@ nouveau_dma_init(struct nouveau_channel *chan) | |||
87 | BEGIN_RING(chan, NvSubM2MF, NV_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY, 1); | 100 | BEGIN_RING(chan, NvSubM2MF, NV_MEMORY_TO_MEMORY_FORMAT_DMA_NOTIFY, 1); |
88 | OUT_RING(chan, NvNotify0); | 101 | OUT_RING(chan, NvNotify0); |
89 | 102 | ||
103 | /* Initialise NV_SW */ | ||
104 | ret = RING_SPACE(chan, 2); | ||
105 | if (ret) | ||
106 | return ret; | ||
107 | BEGIN_RING(chan, NvSubSw, 0, 1); | ||
108 | OUT_RING(chan, NvSw); | ||
109 | |||
90 | /* Sit back and pray the channel works.. */ | 110 | /* Sit back and pray the channel works.. */ |
91 | FIRE_RING(chan); | 111 | FIRE_RING(chan); |
92 | 112 | ||
@@ -113,7 +133,7 @@ READ_GET(struct nouveau_channel *chan, uint32_t *get) | |||
113 | 133 | ||
114 | val = nvchan_rd32(chan, chan->user_get); | 134 | val = nvchan_rd32(chan, chan->user_get); |
115 | if (val < chan->pushbuf_base || | 135 | if (val < chan->pushbuf_base || |
116 | val >= chan->pushbuf_base + chan->pushbuf_bo->bo.mem.size) { | 136 | val > chan->pushbuf_base + (chan->dma.max << 2)) { |
117 | /* meaningless to dma_wait() except to know whether the | 137 | /* meaningless to dma_wait() except to know whether the |
118 | * GPU has stalled or not | 138 | * GPU has stalled or not |
119 | */ | 139 | */ |
diff --git a/drivers/gpu/drm/nouveau/nouveau_dma.h b/drivers/gpu/drm/nouveau/nouveau_dma.h index 04e85d8f757..dabfd655f93 100644 --- a/drivers/gpu/drm/nouveau/nouveau_dma.h +++ b/drivers/gpu/drm/nouveau/nouveau_dma.h | |||
@@ -46,10 +46,11 @@ | |||
46 | /* Hardcoded object assignments to subchannels (subchannel id). */ | 46 | /* Hardcoded object assignments to subchannels (subchannel id). */ |
47 | enum { | 47 | enum { |
48 | NvSubM2MF = 0, | 48 | NvSubM2MF = 0, |
49 | NvSub2D = 1, | 49 | NvSubSw = 1, |
50 | NvSubCtxSurf2D = 1, | 50 | NvSub2D = 2, |
51 | NvSubGdiRect = 2, | 51 | NvSubCtxSurf2D = 2, |
52 | NvSubImageBlit = 3 | 52 | NvSubGdiRect = 3, |
53 | NvSubImageBlit = 4 | ||
53 | }; | 54 | }; |
54 | 55 | ||
55 | /* Object handles. */ | 56 | /* Object handles. */ |
@@ -67,6 +68,7 @@ enum { | |||
67 | NvClipRect = 0x8000000b, | 68 | NvClipRect = 0x8000000b, |
68 | NvGdiRect = 0x8000000c, | 69 | NvGdiRect = 0x8000000c, |
69 | NvImageBlit = 0x8000000d, | 70 | NvImageBlit = 0x8000000d, |
71 | NvSw = 0x8000000e, | ||
70 | 72 | ||
71 | /* G80+ display objects */ | 73 | /* G80+ display objects */ |
72 | NvEvoVRAM = 0x01000000, | 74 | NvEvoVRAM = 0x01000000, |
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h index 5f8cbb79c49..026419fe879 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h | |||
@@ -59,11 +59,19 @@ struct nouveau_grctx; | |||
59 | #define MAX_NUM_DCB_ENTRIES 16 | 59 | #define MAX_NUM_DCB_ENTRIES 16 |
60 | 60 | ||
61 | #define NOUVEAU_MAX_CHANNEL_NR 128 | 61 | #define NOUVEAU_MAX_CHANNEL_NR 128 |
62 | #define NOUVEAU_MAX_TILE_NR 15 | ||
62 | 63 | ||
63 | #define NV50_VM_MAX_VRAM (2*1024*1024*1024ULL) | 64 | #define NV50_VM_MAX_VRAM (2*1024*1024*1024ULL) |
64 | #define NV50_VM_BLOCK (512*1024*1024ULL) | 65 | #define NV50_VM_BLOCK (512*1024*1024ULL) |
65 | #define NV50_VM_VRAM_NR (NV50_VM_MAX_VRAM / NV50_VM_BLOCK) | 66 | #define NV50_VM_VRAM_NR (NV50_VM_MAX_VRAM / NV50_VM_BLOCK) |
66 | 67 | ||
68 | struct nouveau_tile_reg { | ||
69 | struct nouveau_fence *fence; | ||
70 | uint32_t addr; | ||
71 | uint32_t size; | ||
72 | bool used; | ||
73 | }; | ||
74 | |||
67 | struct nouveau_bo { | 75 | struct nouveau_bo { |
68 | struct ttm_buffer_object bo; | 76 | struct ttm_buffer_object bo; |
69 | struct ttm_placement placement; | 77 | struct ttm_placement placement; |
@@ -83,6 +91,7 @@ struct nouveau_bo { | |||
83 | 91 | ||
84 | uint32_t tile_mode; | 92 | uint32_t tile_mode; |
85 | uint32_t tile_flags; | 93 | uint32_t tile_flags; |
94 | struct nouveau_tile_reg *tile; | ||
86 | 95 | ||
87 | struct drm_gem_object *gem; | 96 | struct drm_gem_object *gem; |
88 | struct drm_file *cpu_filp; | 97 | struct drm_file *cpu_filp; |
@@ -277,8 +286,13 @@ struct nouveau_timer_engine { | |||
277 | }; | 286 | }; |
278 | 287 | ||
279 | struct nouveau_fb_engine { | 288 | struct nouveau_fb_engine { |
289 | int num_tiles; | ||
290 | |||
280 | int (*init)(struct drm_device *dev); | 291 | int (*init)(struct drm_device *dev); |
281 | void (*takedown)(struct drm_device *dev); | 292 | void (*takedown)(struct drm_device *dev); |
293 | |||
294 | void (*set_region_tiling)(struct drm_device *dev, int i, uint32_t addr, | ||
295 | uint32_t size, uint32_t pitch); | ||
282 | }; | 296 | }; |
283 | 297 | ||
284 | struct nouveau_fifo_engine { | 298 | struct nouveau_fifo_engine { |
@@ -292,6 +306,8 @@ struct nouveau_fifo_engine { | |||
292 | void (*disable)(struct drm_device *); | 306 | void (*disable)(struct drm_device *); |
293 | void (*enable)(struct drm_device *); | 307 | void (*enable)(struct drm_device *); |
294 | bool (*reassign)(struct drm_device *, bool enable); | 308 | bool (*reassign)(struct drm_device *, bool enable); |
309 | bool (*cache_flush)(struct drm_device *dev); | ||
310 | bool (*cache_pull)(struct drm_device *dev, bool enable); | ||
295 | 311 | ||
296 | int (*channel_id)(struct drm_device *); | 312 | int (*channel_id)(struct drm_device *); |
297 | 313 | ||
@@ -330,6 +346,9 @@ struct nouveau_pgraph_engine { | |||
330 | void (*destroy_context)(struct nouveau_channel *); | 346 | void (*destroy_context)(struct nouveau_channel *); |
331 | int (*load_context)(struct nouveau_channel *); | 347 | int (*load_context)(struct nouveau_channel *); |
332 | int (*unload_context)(struct drm_device *); | 348 | int (*unload_context)(struct drm_device *); |
349 | |||
350 | void (*set_region_tiling)(struct drm_device *dev, int i, uint32_t addr, | ||
351 | uint32_t size, uint32_t pitch); | ||
333 | }; | 352 | }; |
334 | 353 | ||
335 | struct nouveau_engine { | 354 | struct nouveau_engine { |
@@ -548,6 +567,12 @@ struct drm_nouveau_private { | |||
548 | unsigned long sg_handle; | 567 | unsigned long sg_handle; |
549 | } gart_info; | 568 | } gart_info; |
550 | 569 | ||
570 | /* nv10-nv40 tiling regions */ | ||
571 | struct { | ||
572 | struct nouveau_tile_reg reg[NOUVEAU_MAX_TILE_NR]; | ||
573 | spinlock_t lock; | ||
574 | } tile; | ||
575 | |||
551 | /* G8x/G9x virtual address space */ | 576 | /* G8x/G9x virtual address space */ |
552 | uint64_t vm_gart_base; | 577 | uint64_t vm_gart_base; |
553 | uint64_t vm_gart_size; | 578 | uint64_t vm_gart_size; |
@@ -685,6 +710,13 @@ extern void nouveau_mem_release(struct drm_file *, struct mem_block *heap); | |||
685 | extern int nouveau_mem_init(struct drm_device *); | 710 | extern int nouveau_mem_init(struct drm_device *); |
686 | extern int nouveau_mem_init_agp(struct drm_device *); | 711 | extern int nouveau_mem_init_agp(struct drm_device *); |
687 | extern void nouveau_mem_close(struct drm_device *); | 712 | extern void nouveau_mem_close(struct drm_device *); |
713 | extern struct nouveau_tile_reg *nv10_mem_set_tiling(struct drm_device *dev, | ||
714 | uint32_t addr, | ||
715 | uint32_t size, | ||
716 | uint32_t pitch); | ||
717 | extern void nv10_mem_expire_tiling(struct drm_device *dev, | ||
718 | struct nouveau_tile_reg *tile, | ||
719 | struct nouveau_fence *fence); | ||
688 | extern int nv50_mem_vm_bind_linear(struct drm_device *, uint64_t virt, | 720 | extern int nv50_mem_vm_bind_linear(struct drm_device *, uint64_t virt, |
689 | uint32_t size, uint32_t flags, | 721 | uint32_t size, uint32_t flags, |
690 | uint64_t phys); | 722 | uint64_t phys); |
@@ -713,7 +745,6 @@ extern int nouveau_channel_alloc(struct drm_device *dev, | |||
713 | struct drm_file *file_priv, | 745 | struct drm_file *file_priv, |
714 | uint32_t fb_ctxdma, uint32_t tt_ctxdma); | 746 | uint32_t fb_ctxdma, uint32_t tt_ctxdma); |
715 | extern void nouveau_channel_free(struct nouveau_channel *); | 747 | extern void nouveau_channel_free(struct nouveau_channel *); |
716 | extern int nouveau_channel_idle(struct nouveau_channel *chan); | ||
717 | 748 | ||
718 | /* nouveau_object.c */ | 749 | /* nouveau_object.c */ |
719 | extern int nouveau_gpuobj_early_init(struct drm_device *); | 750 | extern int nouveau_gpuobj_early_init(struct drm_device *); |
@@ -756,6 +787,8 @@ extern int nouveau_gpuobj_gart_dma_new(struct nouveau_channel *, | |||
756 | uint32_t *o_ret); | 787 | uint32_t *o_ret); |
757 | extern int nouveau_gpuobj_gr_new(struct nouveau_channel *, int class, | 788 | extern int nouveau_gpuobj_gr_new(struct nouveau_channel *, int class, |
758 | struct nouveau_gpuobj **); | 789 | struct nouveau_gpuobj **); |
790 | extern int nouveau_gpuobj_sw_new(struct nouveau_channel *, int class, | ||
791 | struct nouveau_gpuobj **); | ||
759 | extern int nouveau_ioctl_grobj_alloc(struct drm_device *, void *data, | 792 | extern int nouveau_ioctl_grobj_alloc(struct drm_device *, void *data, |
760 | struct drm_file *); | 793 | struct drm_file *); |
761 | extern int nouveau_ioctl_gpuobj_free(struct drm_device *, void *data, | 794 | extern int nouveau_ioctl_gpuobj_free(struct drm_device *, void *data, |
@@ -804,6 +837,7 @@ nouveau_debugfs_channel_fini(struct nouveau_channel *chan) | |||
804 | #endif | 837 | #endif |
805 | 838 | ||
806 | /* nouveau_dma.c */ | 839 | /* nouveau_dma.c */ |
840 | extern void nouveau_dma_pre_init(struct nouveau_channel *); | ||
807 | extern int nouveau_dma_init(struct nouveau_channel *); | 841 | extern int nouveau_dma_init(struct nouveau_channel *); |
808 | extern int nouveau_dma_wait(struct nouveau_channel *, int size); | 842 | extern int nouveau_dma_wait(struct nouveau_channel *, int size); |
809 | 843 | ||
@@ -879,16 +913,22 @@ extern void nv04_fb_takedown(struct drm_device *); | |||
879 | /* nv10_fb.c */ | 913 | /* nv10_fb.c */ |
880 | extern int nv10_fb_init(struct drm_device *); | 914 | extern int nv10_fb_init(struct drm_device *); |
881 | extern void nv10_fb_takedown(struct drm_device *); | 915 | extern void nv10_fb_takedown(struct drm_device *); |
916 | extern void nv10_fb_set_region_tiling(struct drm_device *, int, uint32_t, | ||
917 | uint32_t, uint32_t); | ||
882 | 918 | ||
883 | /* nv40_fb.c */ | 919 | /* nv40_fb.c */ |
884 | extern int nv40_fb_init(struct drm_device *); | 920 | extern int nv40_fb_init(struct drm_device *); |
885 | extern void nv40_fb_takedown(struct drm_device *); | 921 | extern void nv40_fb_takedown(struct drm_device *); |
922 | extern void nv40_fb_set_region_tiling(struct drm_device *, int, uint32_t, | ||
923 | uint32_t, uint32_t); | ||
886 | 924 | ||
887 | /* nv04_fifo.c */ | 925 | /* nv04_fifo.c */ |
888 | extern int nv04_fifo_init(struct drm_device *); | 926 | extern int nv04_fifo_init(struct drm_device *); |
889 | extern void nv04_fifo_disable(struct drm_device *); | 927 | extern void nv04_fifo_disable(struct drm_device *); |
890 | extern void nv04_fifo_enable(struct drm_device *); | 928 | extern void nv04_fifo_enable(struct drm_device *); |
891 | extern bool nv04_fifo_reassign(struct drm_device *, bool); | 929 | extern bool nv04_fifo_reassign(struct drm_device *, bool); |
930 | extern bool nv04_fifo_cache_flush(struct drm_device *); | ||
931 | extern bool nv04_fifo_cache_pull(struct drm_device *, bool); | ||
892 | extern int nv04_fifo_channel_id(struct drm_device *); | 932 | extern int nv04_fifo_channel_id(struct drm_device *); |
893 | extern int nv04_fifo_create_context(struct nouveau_channel *); | 933 | extern int nv04_fifo_create_context(struct nouveau_channel *); |
894 | extern void nv04_fifo_destroy_context(struct nouveau_channel *); | 934 | extern void nv04_fifo_destroy_context(struct nouveau_channel *); |
@@ -941,6 +981,8 @@ extern void nv10_graph_destroy_context(struct nouveau_channel *); | |||
941 | extern int nv10_graph_load_context(struct nouveau_channel *); | 981 | extern int nv10_graph_load_context(struct nouveau_channel *); |
942 | extern int nv10_graph_unload_context(struct drm_device *); | 982 | extern int nv10_graph_unload_context(struct drm_device *); |
943 | extern void nv10_graph_context_switch(struct drm_device *); | 983 | extern void nv10_graph_context_switch(struct drm_device *); |
984 | extern void nv10_graph_set_region_tiling(struct drm_device *, int, uint32_t, | ||
985 | uint32_t, uint32_t); | ||
944 | 986 | ||
945 | /* nv20_graph.c */ | 987 | /* nv20_graph.c */ |
946 | extern struct nouveau_pgraph_object_class nv20_graph_grclass[]; | 988 | extern struct nouveau_pgraph_object_class nv20_graph_grclass[]; |
@@ -952,6 +994,8 @@ extern int nv20_graph_unload_context(struct drm_device *); | |||
952 | extern int nv20_graph_init(struct drm_device *); | 994 | extern int nv20_graph_init(struct drm_device *); |
953 | extern void nv20_graph_takedown(struct drm_device *); | 995 | extern void nv20_graph_takedown(struct drm_device *); |
954 | extern int nv30_graph_init(struct drm_device *); | 996 | extern int nv30_graph_init(struct drm_device *); |
997 | extern void nv20_graph_set_region_tiling(struct drm_device *, int, uint32_t, | ||
998 | uint32_t, uint32_t); | ||
955 | 999 | ||
956 | /* nv40_graph.c */ | 1000 | /* nv40_graph.c */ |
957 | extern struct nouveau_pgraph_object_class nv40_graph_grclass[]; | 1001 | extern struct nouveau_pgraph_object_class nv40_graph_grclass[]; |
@@ -963,6 +1007,8 @@ extern void nv40_graph_destroy_context(struct nouveau_channel *); | |||
963 | extern int nv40_graph_load_context(struct nouveau_channel *); | 1007 | extern int nv40_graph_load_context(struct nouveau_channel *); |
964 | extern int nv40_graph_unload_context(struct drm_device *); | 1008 | extern int nv40_graph_unload_context(struct drm_device *); |
965 | extern void nv40_grctx_init(struct nouveau_grctx *); | 1009 | extern void nv40_grctx_init(struct nouveau_grctx *); |
1010 | extern void nv40_graph_set_region_tiling(struct drm_device *, int, uint32_t, | ||
1011 | uint32_t, uint32_t); | ||
966 | 1012 | ||
967 | /* nv50_graph.c */ | 1013 | /* nv50_graph.c */ |
968 | extern struct nouveau_pgraph_object_class nv50_graph_grclass[]; | 1014 | extern struct nouveau_pgraph_object_class nv50_graph_grclass[]; |
@@ -1030,8 +1076,7 @@ extern long nouveau_compat_ioctl(struct file *file, unsigned int cmd, | |||
1030 | 1076 | ||
1031 | /* nv04_dac.c */ | 1077 | /* nv04_dac.c */ |
1032 | extern int nv04_dac_create(struct drm_device *dev, struct dcb_entry *entry); | 1078 | extern int nv04_dac_create(struct drm_device *dev, struct dcb_entry *entry); |
1033 | extern enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder, | 1079 | extern uint32_t nv17_dac_sample_load(struct drm_encoder *encoder); |
1034 | struct drm_connector *connector); | ||
1035 | extern int nv04_dac_output_offset(struct drm_encoder *encoder); | 1080 | extern int nv04_dac_output_offset(struct drm_encoder *encoder); |
1036 | extern void nv04_dac_update_dacclk(struct drm_encoder *encoder, bool enable); | 1081 | extern void nv04_dac_update_dacclk(struct drm_encoder *encoder, bool enable); |
1037 | 1082 | ||
@@ -1049,9 +1094,6 @@ extern int nv04_tv_create(struct drm_device *dev, struct dcb_entry *entry); | |||
1049 | 1094 | ||
1050 | /* nv17_tv.c */ | 1095 | /* nv17_tv.c */ |
1051 | extern int nv17_tv_create(struct drm_device *dev, struct dcb_entry *entry); | 1096 | extern int nv17_tv_create(struct drm_device *dev, struct dcb_entry *entry); |
1052 | extern enum drm_connector_status nv17_tv_detect(struct drm_encoder *encoder, | ||
1053 | struct drm_connector *connector, | ||
1054 | uint32_t pin_mask); | ||
1055 | 1097 | ||
1056 | /* nv04_display.c */ | 1098 | /* nv04_display.c */ |
1057 | extern int nv04_display_create(struct drm_device *); | 1099 | extern int nv04_display_create(struct drm_device *); |
@@ -1290,14 +1332,14 @@ nv_two_reg_pll(struct drm_device *dev) | |||
1290 | return false; | 1332 | return false; |
1291 | } | 1333 | } |
1292 | 1334 | ||
1293 | #define NV50_NVSW 0x0000506e | 1335 | #define NV_SW 0x0000506e |
1294 | #define NV50_NVSW_DMA_SEMAPHORE 0x00000060 | 1336 | #define NV_SW_DMA_SEMAPHORE 0x00000060 |
1295 | #define NV50_NVSW_SEMAPHORE_OFFSET 0x00000064 | 1337 | #define NV_SW_SEMAPHORE_OFFSET 0x00000064 |
1296 | #define NV50_NVSW_SEMAPHORE_ACQUIRE 0x00000068 | 1338 | #define NV_SW_SEMAPHORE_ACQUIRE 0x00000068 |
1297 | #define NV50_NVSW_SEMAPHORE_RELEASE 0x0000006c | 1339 | #define NV_SW_SEMAPHORE_RELEASE 0x0000006c |
1298 | #define NV50_NVSW_DMA_VBLSEM 0x0000018c | 1340 | #define NV_SW_DMA_VBLSEM 0x0000018c |
1299 | #define NV50_NVSW_VBLSEM_OFFSET 0x00000400 | 1341 | #define NV_SW_VBLSEM_OFFSET 0x00000400 |
1300 | #define NV50_NVSW_VBLSEM_RELEASE_VALUE 0x00000404 | 1342 | #define NV_SW_VBLSEM_RELEASE_VALUE 0x00000404 |
1301 | #define NV50_NVSW_VBLSEM_RELEASE 0x00000408 | 1343 | #define NV_SW_VBLSEM_RELEASE 0x00000408 |
1302 | 1344 | ||
1303 | #endif /* __NOUVEAU_DRV_H__ */ | 1345 | #endif /* __NOUVEAU_DRV_H__ */ |
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c index 84af25c238b..0b05c869e0e 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c | |||
@@ -64,8 +64,7 @@ nouveau_fbcon_sync(struct fb_info *info) | |||
64 | return 0; | 64 | return 0; |
65 | 65 | ||
66 | if (RING_SPACE(chan, 4)) { | 66 | if (RING_SPACE(chan, 4)) { |
67 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | 67 | nouveau_fbcon_gpu_lockup(info); |
68 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
69 | return 0; | 68 | return 0; |
70 | } | 69 | } |
71 | 70 | ||
@@ -86,8 +85,7 @@ nouveau_fbcon_sync(struct fb_info *info) | |||
86 | } | 85 | } |
87 | 86 | ||
88 | if (ret) { | 87 | if (ret) { |
89 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | 88 | nouveau_fbcon_gpu_lockup(info); |
90 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
91 | return 0; | 89 | return 0; |
92 | } | 90 | } |
93 | 91 | ||
@@ -212,11 +210,11 @@ nouveau_fbcon_create(struct drm_device *dev, uint32_t fb_width, | |||
212 | 210 | ||
213 | mode_cmd.bpp = surface_bpp; | 211 | mode_cmd.bpp = surface_bpp; |
214 | mode_cmd.pitch = mode_cmd.width * (mode_cmd.bpp >> 3); | 212 | mode_cmd.pitch = mode_cmd.width * (mode_cmd.bpp >> 3); |
215 | mode_cmd.pitch = ALIGN(mode_cmd.pitch, 256); | 213 | mode_cmd.pitch = roundup(mode_cmd.pitch, 256); |
216 | mode_cmd.depth = surface_depth; | 214 | mode_cmd.depth = surface_depth; |
217 | 215 | ||
218 | size = mode_cmd.pitch * mode_cmd.height; | 216 | size = mode_cmd.pitch * mode_cmd.height; |
219 | size = ALIGN(size, PAGE_SIZE); | 217 | size = roundup(size, PAGE_SIZE); |
220 | 218 | ||
221 | ret = nouveau_gem_new(dev, dev_priv->channel, size, 0, TTM_PL_FLAG_VRAM, | 219 | ret = nouveau_gem_new(dev, dev_priv->channel, size, 0, TTM_PL_FLAG_VRAM, |
222 | 0, 0x0000, false, true, &nvbo); | 220 | 0, 0x0000, false, true, &nvbo); |
@@ -380,3 +378,12 @@ nouveau_fbcon_remove(struct drm_device *dev, struct drm_framebuffer *fb) | |||
380 | 378 | ||
381 | return 0; | 379 | return 0; |
382 | } | 380 | } |
381 | |||
382 | void nouveau_fbcon_gpu_lockup(struct fb_info *info) | ||
383 | { | ||
384 | struct nouveau_fbcon_par *par = info->par; | ||
385 | struct drm_device *dev = par->dev; | ||
386 | |||
387 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | ||
388 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
389 | } | ||
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.h b/drivers/gpu/drm/nouveau/nouveau_fbcon.h index 8531140fedb..462e0b87b4b 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.h +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.h | |||
@@ -43,5 +43,6 @@ void nouveau_fbcon_zfill(struct drm_device *dev); | |||
43 | int nv04_fbcon_accel_init(struct fb_info *info); | 43 | int nv04_fbcon_accel_init(struct fb_info *info); |
44 | int nv50_fbcon_accel_init(struct fb_info *info); | 44 | int nv50_fbcon_accel_init(struct fb_info *info); |
45 | 45 | ||
46 | void nouveau_fbcon_gpu_lockup(struct fb_info *info); | ||
46 | #endif /* __NV50_FBCON_H__ */ | 47 | #endif /* __NV50_FBCON_H__ */ |
47 | 48 | ||
diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c index dacac9a0842..faddf53ff9e 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fence.c +++ b/drivers/gpu/drm/nouveau/nouveau_fence.c | |||
@@ -142,7 +142,7 @@ nouveau_fence_emit(struct nouveau_fence *fence) | |||
142 | list_add_tail(&fence->entry, &chan->fence.pending); | 142 | list_add_tail(&fence->entry, &chan->fence.pending); |
143 | spin_unlock_irqrestore(&chan->fence.lock, flags); | 143 | spin_unlock_irqrestore(&chan->fence.lock, flags); |
144 | 144 | ||
145 | BEGIN_RING(chan, NvSubM2MF, USE_REFCNT ? 0x0050 : 0x0150, 1); | 145 | BEGIN_RING(chan, NvSubSw, USE_REFCNT ? 0x0050 : 0x0150, 1); |
146 | OUT_RING(chan, fence->sequence); | 146 | OUT_RING(chan, fence->sequence); |
147 | FIRE_RING(chan); | 147 | FIRE_RING(chan); |
148 | 148 | ||
diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 18fd8ac9fca..2009db2426c 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c | |||
@@ -220,7 +220,6 @@ nouveau_gem_set_domain(struct drm_gem_object *gem, uint32_t read_domains, | |||
220 | } | 220 | } |
221 | 221 | ||
222 | struct validate_op { | 222 | struct validate_op { |
223 | struct nouveau_fence *fence; | ||
224 | struct list_head vram_list; | 223 | struct list_head vram_list; |
225 | struct list_head gart_list; | 224 | struct list_head gart_list; |
226 | struct list_head both_list; | 225 | struct list_head both_list; |
@@ -252,17 +251,11 @@ validate_fini_list(struct list_head *list, struct nouveau_fence *fence) | |||
252 | } | 251 | } |
253 | 252 | ||
254 | static void | 253 | static void |
255 | validate_fini(struct validate_op *op, bool success) | 254 | validate_fini(struct validate_op *op, struct nouveau_fence* fence) |
256 | { | 255 | { |
257 | struct nouveau_fence *fence = op->fence; | 256 | validate_fini_list(&op->vram_list, fence); |
258 | 257 | validate_fini_list(&op->gart_list, fence); | |
259 | if (unlikely(!success)) | 258 | validate_fini_list(&op->both_list, fence); |
260 | op->fence = NULL; | ||
261 | |||
262 | validate_fini_list(&op->vram_list, op->fence); | ||
263 | validate_fini_list(&op->gart_list, op->fence); | ||
264 | validate_fini_list(&op->both_list, op->fence); | ||
265 | nouveau_fence_unref((void *)&fence); | ||
266 | } | 259 | } |
267 | 260 | ||
268 | static int | 261 | static int |
@@ -420,10 +413,6 @@ nouveau_gem_pushbuf_validate(struct nouveau_channel *chan, | |||
420 | INIT_LIST_HEAD(&op->gart_list); | 413 | INIT_LIST_HEAD(&op->gart_list); |
421 | INIT_LIST_HEAD(&op->both_list); | 414 | INIT_LIST_HEAD(&op->both_list); |
422 | 415 | ||
423 | ret = nouveau_fence_new(chan, &op->fence, false); | ||
424 | if (ret) | ||
425 | return ret; | ||
426 | |||
427 | if (nr_buffers == 0) | 416 | if (nr_buffers == 0) |
428 | return 0; | 417 | return 0; |
429 | 418 | ||
@@ -541,6 +530,7 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data, | |||
541 | struct drm_nouveau_gem_pushbuf_bo *bo = NULL; | 530 | struct drm_nouveau_gem_pushbuf_bo *bo = NULL; |
542 | struct nouveau_channel *chan; | 531 | struct nouveau_channel *chan; |
543 | struct validate_op op; | 532 | struct validate_op op; |
533 | struct nouveau_fence* fence = 0; | ||
544 | uint32_t *pushbuf = NULL; | 534 | uint32_t *pushbuf = NULL; |
545 | int ret = 0, do_reloc = 0, i; | 535 | int ret = 0, do_reloc = 0, i; |
546 | 536 | ||
@@ -597,7 +587,7 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data, | |||
597 | 587 | ||
598 | OUT_RINGp(chan, pushbuf, req->nr_dwords); | 588 | OUT_RINGp(chan, pushbuf, req->nr_dwords); |
599 | 589 | ||
600 | ret = nouveau_fence_emit(op.fence); | 590 | ret = nouveau_fence_new(chan, &fence, true); |
601 | if (ret) { | 591 | if (ret) { |
602 | NV_ERROR(dev, "error fencing pushbuf: %d\n", ret); | 592 | NV_ERROR(dev, "error fencing pushbuf: %d\n", ret); |
603 | WIND_RING(chan); | 593 | WIND_RING(chan); |
@@ -605,7 +595,7 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data, | |||
605 | } | 595 | } |
606 | 596 | ||
607 | if (nouveau_gem_pushbuf_sync(chan)) { | 597 | if (nouveau_gem_pushbuf_sync(chan)) { |
608 | ret = nouveau_fence_wait(op.fence, NULL, false, false); | 598 | ret = nouveau_fence_wait(fence, NULL, false, false); |
609 | if (ret) { | 599 | if (ret) { |
610 | for (i = 0; i < req->nr_dwords; i++) | 600 | for (i = 0; i < req->nr_dwords; i++) |
611 | NV_ERROR(dev, "0x%08x\n", pushbuf[i]); | 601 | NV_ERROR(dev, "0x%08x\n", pushbuf[i]); |
@@ -614,7 +604,8 @@ nouveau_gem_ioctl_pushbuf(struct drm_device *dev, void *data, | |||
614 | } | 604 | } |
615 | 605 | ||
616 | out: | 606 | out: |
617 | validate_fini(&op, ret == 0); | 607 | validate_fini(&op, fence); |
608 | nouveau_fence_unref((void**)&fence); | ||
618 | mutex_unlock(&dev->struct_mutex); | 609 | mutex_unlock(&dev->struct_mutex); |
619 | kfree(pushbuf); | 610 | kfree(pushbuf); |
620 | kfree(bo); | 611 | kfree(bo); |
@@ -634,6 +625,7 @@ nouveau_gem_ioctl_pushbuf_call(struct drm_device *dev, void *data, | |||
634 | struct drm_gem_object *gem; | 625 | struct drm_gem_object *gem; |
635 | struct nouveau_bo *pbbo; | 626 | struct nouveau_bo *pbbo; |
636 | struct validate_op op; | 627 | struct validate_op op; |
628 | struct nouveau_fence* fence = 0; | ||
637 | int i, ret = 0, do_reloc = 0; | 629 | int i, ret = 0, do_reloc = 0; |
638 | 630 | ||
639 | NOUVEAU_CHECK_INITIALISED_WITH_RETURN; | 631 | NOUVEAU_CHECK_INITIALISED_WITH_RETURN; |
@@ -772,7 +764,7 @@ nouveau_gem_ioctl_pushbuf_call(struct drm_device *dev, void *data, | |||
772 | OUT_RING(chan, 0); | 764 | OUT_RING(chan, 0); |
773 | } | 765 | } |
774 | 766 | ||
775 | ret = nouveau_fence_emit(op.fence); | 767 | ret = nouveau_fence_new(chan, &fence, true); |
776 | if (ret) { | 768 | if (ret) { |
777 | NV_ERROR(dev, "error fencing pushbuf: %d\n", ret); | 769 | NV_ERROR(dev, "error fencing pushbuf: %d\n", ret); |
778 | WIND_RING(chan); | 770 | WIND_RING(chan); |
@@ -780,7 +772,8 @@ nouveau_gem_ioctl_pushbuf_call(struct drm_device *dev, void *data, | |||
780 | } | 772 | } |
781 | 773 | ||
782 | out: | 774 | out: |
783 | validate_fini(&op, ret == 0); | 775 | validate_fini(&op, fence); |
776 | nouveau_fence_unref((void**)&fence); | ||
784 | mutex_unlock(&dev->struct_mutex); | 777 | mutex_unlock(&dev->struct_mutex); |
785 | kfree(bo); | 778 | kfree(bo); |
786 | 779 | ||
diff --git a/drivers/gpu/drm/nouveau/nouveau_irq.c b/drivers/gpu/drm/nouveau/nouveau_irq.c index 370c72c968d..919a619ca7f 100644 --- a/drivers/gpu/drm/nouveau/nouveau_irq.c +++ b/drivers/gpu/drm/nouveau/nouveau_irq.c | |||
@@ -635,6 +635,7 @@ nv50_pgraph_irq_handler(struct drm_device *dev) | |||
635 | 635 | ||
636 | if ((nv_rd32(dev, 0x400500) & isb) != isb) | 636 | if ((nv_rd32(dev, 0x400500) & isb) != isb) |
637 | nv_wr32(dev, 0x400500, nv_rd32(dev, 0x400500) | isb); | 637 | nv_wr32(dev, 0x400500, nv_rd32(dev, 0x400500) | isb); |
638 | nv_wr32(dev, 0x400824, nv_rd32(dev, 0x400824) & ~(1 << 31)); | ||
638 | } | 639 | } |
639 | 640 | ||
640 | nv_wr32(dev, NV03_PMC_INTR_0, NV_PMC_INTR_0_PGRAPH_PENDING); | 641 | nv_wr32(dev, NV03_PMC_INTR_0, NV_PMC_INTR_0_PGRAPH_PENDING); |
diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouveau/nouveau_mem.c index 5158a12f784..fb9bdd6edf1 100644 --- a/drivers/gpu/drm/nouveau/nouveau_mem.c +++ b/drivers/gpu/drm/nouveau/nouveau_mem.c | |||
@@ -192,6 +192,92 @@ void nouveau_mem_release(struct drm_file *file_priv, struct mem_block *heap) | |||
192 | } | 192 | } |
193 | 193 | ||
194 | /* | 194 | /* |
195 | * NV10-NV40 tiling helpers | ||
196 | */ | ||
197 | |||
198 | static void | ||
199 | nv10_mem_set_region_tiling(struct drm_device *dev, int i, uint32_t addr, | ||
200 | uint32_t size, uint32_t pitch) | ||
201 | { | ||
202 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
203 | struct nouveau_fifo_engine *pfifo = &dev_priv->engine.fifo; | ||
204 | struct nouveau_fb_engine *pfb = &dev_priv->engine.fb; | ||
205 | struct nouveau_pgraph_engine *pgraph = &dev_priv->engine.graph; | ||
206 | struct nouveau_tile_reg *tile = &dev_priv->tile.reg[i]; | ||
207 | |||
208 | tile->addr = addr; | ||
209 | tile->size = size; | ||
210 | tile->used = !!pitch; | ||
211 | nouveau_fence_unref((void **)&tile->fence); | ||
212 | |||
213 | if (!pfifo->cache_flush(dev)) | ||
214 | return; | ||
215 | |||
216 | pfifo->reassign(dev, false); | ||
217 | pfifo->cache_flush(dev); | ||
218 | pfifo->cache_pull(dev, false); | ||
219 | |||
220 | nouveau_wait_for_idle(dev); | ||
221 | |||
222 | pgraph->set_region_tiling(dev, i, addr, size, pitch); | ||
223 | pfb->set_region_tiling(dev, i, addr, size, pitch); | ||
224 | |||
225 | pfifo->cache_pull(dev, true); | ||
226 | pfifo->reassign(dev, true); | ||
227 | } | ||
228 | |||
229 | struct nouveau_tile_reg * | ||
230 | nv10_mem_set_tiling(struct drm_device *dev, uint32_t addr, uint32_t size, | ||
231 | uint32_t pitch) | ||
232 | { | ||
233 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
234 | struct nouveau_fb_engine *pfb = &dev_priv->engine.fb; | ||
235 | struct nouveau_tile_reg *tile = dev_priv->tile.reg, *found = NULL; | ||
236 | int i; | ||
237 | |||
238 | spin_lock(&dev_priv->tile.lock); | ||
239 | |||
240 | for (i = 0; i < pfb->num_tiles; i++) { | ||
241 | if (tile[i].used) | ||
242 | /* Tile region in use. */ | ||
243 | continue; | ||
244 | |||
245 | if (tile[i].fence && | ||
246 | !nouveau_fence_signalled(tile[i].fence, NULL)) | ||
247 | /* Pending tile region. */ | ||
248 | continue; | ||
249 | |||
250 | if (max(tile[i].addr, addr) < | ||
251 | min(tile[i].addr + tile[i].size, addr + size)) | ||
252 | /* Kill an intersecting tile region. */ | ||
253 | nv10_mem_set_region_tiling(dev, i, 0, 0, 0); | ||
254 | |||
255 | if (pitch && !found) { | ||
256 | /* Free tile region. */ | ||
257 | nv10_mem_set_region_tiling(dev, i, addr, size, pitch); | ||
258 | found = &tile[i]; | ||
259 | } | ||
260 | } | ||
261 | |||
262 | spin_unlock(&dev_priv->tile.lock); | ||
263 | |||
264 | return found; | ||
265 | } | ||
266 | |||
267 | void | ||
268 | nv10_mem_expire_tiling(struct drm_device *dev, struct nouveau_tile_reg *tile, | ||
269 | struct nouveau_fence *fence) | ||
270 | { | ||
271 | if (fence) { | ||
272 | /* Mark it as pending. */ | ||
273 | tile->fence = fence; | ||
274 | nouveau_fence_ref(fence); | ||
275 | } | ||
276 | |||
277 | tile->used = false; | ||
278 | } | ||
279 | |||
280 | /* | ||
195 | * NV50 VM helpers | 281 | * NV50 VM helpers |
196 | */ | 282 | */ |
197 | int | 283 | int |
@@ -513,6 +599,7 @@ nouveau_mem_init(struct drm_device *dev) | |||
513 | 599 | ||
514 | INIT_LIST_HEAD(&dev_priv->ttm.bo_list); | 600 | INIT_LIST_HEAD(&dev_priv->ttm.bo_list); |
515 | spin_lock_init(&dev_priv->ttm.bo_list_lock); | 601 | spin_lock_init(&dev_priv->ttm.bo_list_lock); |
602 | spin_lock_init(&dev_priv->tile.lock); | ||
516 | 603 | ||
517 | dev_priv->fb_available_size = nouveau_mem_fb_amount(dev); | 604 | dev_priv->fb_available_size = nouveau_mem_fb_amount(dev); |
518 | 605 | ||
diff --git a/drivers/gpu/drm/nouveau/nouveau_object.c b/drivers/gpu/drm/nouveau/nouveau_object.c index 93379bb81be..6c2cf81716d 100644 --- a/drivers/gpu/drm/nouveau/nouveau_object.c +++ b/drivers/gpu/drm/nouveau/nouveau_object.c | |||
@@ -881,7 +881,7 @@ nouveau_gpuobj_gr_new(struct nouveau_channel *chan, int class, | |||
881 | return 0; | 881 | return 0; |
882 | } | 882 | } |
883 | 883 | ||
884 | static int | 884 | int |
885 | nouveau_gpuobj_sw_new(struct nouveau_channel *chan, int class, | 885 | nouveau_gpuobj_sw_new(struct nouveau_channel *chan, int class, |
886 | struct nouveau_gpuobj **gpuobj_ret) | 886 | struct nouveau_gpuobj **gpuobj_ret) |
887 | { | 887 | { |
diff --git a/drivers/gpu/drm/nouveau/nouveau_reg.h b/drivers/gpu/drm/nouveau/nouveau_reg.h index fa1b0e7165b..251f1b3b38b 100644 --- a/drivers/gpu/drm/nouveau/nouveau_reg.h +++ b/drivers/gpu/drm/nouveau/nouveau_reg.h | |||
@@ -349,19 +349,19 @@ | |||
349 | #define NV04_PGRAPH_BLEND 0x00400824 | 349 | #define NV04_PGRAPH_BLEND 0x00400824 |
350 | #define NV04_PGRAPH_STORED_FMT 0x00400830 | 350 | #define NV04_PGRAPH_STORED_FMT 0x00400830 |
351 | #define NV04_PGRAPH_PATT_COLORRAM 0x00400900 | 351 | #define NV04_PGRAPH_PATT_COLORRAM 0x00400900 |
352 | #define NV40_PGRAPH_TILE0(i) (0x00400900 + (i*16)) | 352 | #define NV20_PGRAPH_TILE(i) (0x00400900 + (i*16)) |
353 | #define NV40_PGRAPH_TLIMIT0(i) (0x00400904 + (i*16)) | 353 | #define NV20_PGRAPH_TLIMIT(i) (0x00400904 + (i*16)) |
354 | #define NV40_PGRAPH_TSIZE0(i) (0x00400908 + (i*16)) | 354 | #define NV20_PGRAPH_TSIZE(i) (0x00400908 + (i*16)) |
355 | #define NV40_PGRAPH_TSTATUS0(i) (0x0040090C + (i*16)) | 355 | #define NV20_PGRAPH_TSTATUS(i) (0x0040090C + (i*16)) |
356 | #define NV10_PGRAPH_TILE(i) (0x00400B00 + (i*16)) | 356 | #define NV10_PGRAPH_TILE(i) (0x00400B00 + (i*16)) |
357 | #define NV10_PGRAPH_TLIMIT(i) (0x00400B04 + (i*16)) | 357 | #define NV10_PGRAPH_TLIMIT(i) (0x00400B04 + (i*16)) |
358 | #define NV10_PGRAPH_TSIZE(i) (0x00400B08 + (i*16)) | 358 | #define NV10_PGRAPH_TSIZE(i) (0x00400B08 + (i*16)) |
359 | #define NV10_PGRAPH_TSTATUS(i) (0x00400B0C + (i*16)) | 359 | #define NV10_PGRAPH_TSTATUS(i) (0x00400B0C + (i*16)) |
360 | #define NV04_PGRAPH_U_RAM 0x00400D00 | 360 | #define NV04_PGRAPH_U_RAM 0x00400D00 |
361 | #define NV47_PGRAPH_TILE0(i) (0x00400D00 + (i*16)) | 361 | #define NV47_PGRAPH_TILE(i) (0x00400D00 + (i*16)) |
362 | #define NV47_PGRAPH_TLIMIT0(i) (0x00400D04 + (i*16)) | 362 | #define NV47_PGRAPH_TLIMIT(i) (0x00400D04 + (i*16)) |
363 | #define NV47_PGRAPH_TSIZE0(i) (0x00400D08 + (i*16)) | 363 | #define NV47_PGRAPH_TSIZE(i) (0x00400D08 + (i*16)) |
364 | #define NV47_PGRAPH_TSTATUS0(i) (0x00400D0C + (i*16)) | 364 | #define NV47_PGRAPH_TSTATUS(i) (0x00400D0C + (i*16)) |
365 | #define NV04_PGRAPH_V_RAM 0x00400D40 | 365 | #define NV04_PGRAPH_V_RAM 0x00400D40 |
366 | #define NV04_PGRAPH_W_RAM 0x00400D80 | 366 | #define NV04_PGRAPH_W_RAM 0x00400D80 |
367 | #define NV10_PGRAPH_COMBINER0_IN_ALPHA 0x00400E40 | 367 | #define NV10_PGRAPH_COMBINER0_IN_ALPHA 0x00400E40 |
diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c index e76ec2d207a..09b9a46dfc0 100644 --- a/drivers/gpu/drm/nouveau/nouveau_state.c +++ b/drivers/gpu/drm/nouveau/nouveau_state.c | |||
@@ -76,6 +76,8 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) | |||
76 | engine->fifo.disable = nv04_fifo_disable; | 76 | engine->fifo.disable = nv04_fifo_disable; |
77 | engine->fifo.enable = nv04_fifo_enable; | 77 | engine->fifo.enable = nv04_fifo_enable; |
78 | engine->fifo.reassign = nv04_fifo_reassign; | 78 | engine->fifo.reassign = nv04_fifo_reassign; |
79 | engine->fifo.cache_flush = nv04_fifo_cache_flush; | ||
80 | engine->fifo.cache_pull = nv04_fifo_cache_pull; | ||
79 | engine->fifo.channel_id = nv04_fifo_channel_id; | 81 | engine->fifo.channel_id = nv04_fifo_channel_id; |
80 | engine->fifo.create_context = nv04_fifo_create_context; | 82 | engine->fifo.create_context = nv04_fifo_create_context; |
81 | engine->fifo.destroy_context = nv04_fifo_destroy_context; | 83 | engine->fifo.destroy_context = nv04_fifo_destroy_context; |
@@ -100,6 +102,7 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) | |||
100 | engine->timer.takedown = nv04_timer_takedown; | 102 | engine->timer.takedown = nv04_timer_takedown; |
101 | engine->fb.init = nv10_fb_init; | 103 | engine->fb.init = nv10_fb_init; |
102 | engine->fb.takedown = nv10_fb_takedown; | 104 | engine->fb.takedown = nv10_fb_takedown; |
105 | engine->fb.set_region_tiling = nv10_fb_set_region_tiling; | ||
103 | engine->graph.grclass = nv10_graph_grclass; | 106 | engine->graph.grclass = nv10_graph_grclass; |
104 | engine->graph.init = nv10_graph_init; | 107 | engine->graph.init = nv10_graph_init; |
105 | engine->graph.takedown = nv10_graph_takedown; | 108 | engine->graph.takedown = nv10_graph_takedown; |
@@ -109,12 +112,15 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) | |||
109 | engine->graph.fifo_access = nv04_graph_fifo_access; | 112 | engine->graph.fifo_access = nv04_graph_fifo_access; |
110 | engine->graph.load_context = nv10_graph_load_context; | 113 | engine->graph.load_context = nv10_graph_load_context; |
111 | engine->graph.unload_context = nv10_graph_unload_context; | 114 | engine->graph.unload_context = nv10_graph_unload_context; |
115 | engine->graph.set_region_tiling = nv10_graph_set_region_tiling; | ||
112 | engine->fifo.channels = 32; | 116 | engine->fifo.channels = 32; |
113 | engine->fifo.init = nv10_fifo_init; | 117 | engine->fifo.init = nv10_fifo_init; |
114 | engine->fifo.takedown = nouveau_stub_takedown; | 118 | engine->fifo.takedown = nouveau_stub_takedown; |
115 | engine->fifo.disable = nv04_fifo_disable; | 119 | engine->fifo.disable = nv04_fifo_disable; |
116 | engine->fifo.enable = nv04_fifo_enable; | 120 | engine->fifo.enable = nv04_fifo_enable; |
117 | engine->fifo.reassign = nv04_fifo_reassign; | 121 | engine->fifo.reassign = nv04_fifo_reassign; |
122 | engine->fifo.cache_flush = nv04_fifo_cache_flush; | ||
123 | engine->fifo.cache_pull = nv04_fifo_cache_pull; | ||
118 | engine->fifo.channel_id = nv10_fifo_channel_id; | 124 | engine->fifo.channel_id = nv10_fifo_channel_id; |
119 | engine->fifo.create_context = nv10_fifo_create_context; | 125 | engine->fifo.create_context = nv10_fifo_create_context; |
120 | engine->fifo.destroy_context = nv10_fifo_destroy_context; | 126 | engine->fifo.destroy_context = nv10_fifo_destroy_context; |
@@ -139,6 +145,7 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) | |||
139 | engine->timer.takedown = nv04_timer_takedown; | 145 | engine->timer.takedown = nv04_timer_takedown; |
140 | engine->fb.init = nv10_fb_init; | 146 | engine->fb.init = nv10_fb_init; |
141 | engine->fb.takedown = nv10_fb_takedown; | 147 | engine->fb.takedown = nv10_fb_takedown; |
148 | engine->fb.set_region_tiling = nv10_fb_set_region_tiling; | ||
142 | engine->graph.grclass = nv20_graph_grclass; | 149 | engine->graph.grclass = nv20_graph_grclass; |
143 | engine->graph.init = nv20_graph_init; | 150 | engine->graph.init = nv20_graph_init; |
144 | engine->graph.takedown = nv20_graph_takedown; | 151 | engine->graph.takedown = nv20_graph_takedown; |
@@ -148,12 +155,15 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) | |||
148 | engine->graph.fifo_access = nv04_graph_fifo_access; | 155 | engine->graph.fifo_access = nv04_graph_fifo_access; |
149 | engine->graph.load_context = nv20_graph_load_context; | 156 | engine->graph.load_context = nv20_graph_load_context; |
150 | engine->graph.unload_context = nv20_graph_unload_context; | 157 | engine->graph.unload_context = nv20_graph_unload_context; |
158 | engine->graph.set_region_tiling = nv20_graph_set_region_tiling; | ||
151 | engine->fifo.channels = 32; | 159 | engine->fifo.channels = 32; |
152 | engine->fifo.init = nv10_fifo_init; | 160 | engine->fifo.init = nv10_fifo_init; |
153 | engine->fifo.takedown = nouveau_stub_takedown; | 161 | engine->fifo.takedown = nouveau_stub_takedown; |
154 | engine->fifo.disable = nv04_fifo_disable; | 162 | engine->fifo.disable = nv04_fifo_disable; |
155 | engine->fifo.enable = nv04_fifo_enable; | 163 | engine->fifo.enable = nv04_fifo_enable; |
156 | engine->fifo.reassign = nv04_fifo_reassign; | 164 | engine->fifo.reassign = nv04_fifo_reassign; |
165 | engine->fifo.cache_flush = nv04_fifo_cache_flush; | ||
166 | engine->fifo.cache_pull = nv04_fifo_cache_pull; | ||
157 | engine->fifo.channel_id = nv10_fifo_channel_id; | 167 | engine->fifo.channel_id = nv10_fifo_channel_id; |
158 | engine->fifo.create_context = nv10_fifo_create_context; | 168 | engine->fifo.create_context = nv10_fifo_create_context; |
159 | engine->fifo.destroy_context = nv10_fifo_destroy_context; | 169 | engine->fifo.destroy_context = nv10_fifo_destroy_context; |
@@ -178,6 +188,7 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) | |||
178 | engine->timer.takedown = nv04_timer_takedown; | 188 | engine->timer.takedown = nv04_timer_takedown; |
179 | engine->fb.init = nv10_fb_init; | 189 | engine->fb.init = nv10_fb_init; |
180 | engine->fb.takedown = nv10_fb_takedown; | 190 | engine->fb.takedown = nv10_fb_takedown; |
191 | engine->fb.set_region_tiling = nv10_fb_set_region_tiling; | ||
181 | engine->graph.grclass = nv30_graph_grclass; | 192 | engine->graph.grclass = nv30_graph_grclass; |
182 | engine->graph.init = nv30_graph_init; | 193 | engine->graph.init = nv30_graph_init; |
183 | engine->graph.takedown = nv20_graph_takedown; | 194 | engine->graph.takedown = nv20_graph_takedown; |
@@ -187,12 +198,15 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) | |||
187 | engine->graph.destroy_context = nv20_graph_destroy_context; | 198 | engine->graph.destroy_context = nv20_graph_destroy_context; |
188 | engine->graph.load_context = nv20_graph_load_context; | 199 | engine->graph.load_context = nv20_graph_load_context; |
189 | engine->graph.unload_context = nv20_graph_unload_context; | 200 | engine->graph.unload_context = nv20_graph_unload_context; |
201 | engine->graph.set_region_tiling = nv20_graph_set_region_tiling; | ||
190 | engine->fifo.channels = 32; | 202 | engine->fifo.channels = 32; |
191 | engine->fifo.init = nv10_fifo_init; | 203 | engine->fifo.init = nv10_fifo_init; |
192 | engine->fifo.takedown = nouveau_stub_takedown; | 204 | engine->fifo.takedown = nouveau_stub_takedown; |
193 | engine->fifo.disable = nv04_fifo_disable; | 205 | engine->fifo.disable = nv04_fifo_disable; |
194 | engine->fifo.enable = nv04_fifo_enable; | 206 | engine->fifo.enable = nv04_fifo_enable; |
195 | engine->fifo.reassign = nv04_fifo_reassign; | 207 | engine->fifo.reassign = nv04_fifo_reassign; |
208 | engine->fifo.cache_flush = nv04_fifo_cache_flush; | ||
209 | engine->fifo.cache_pull = nv04_fifo_cache_pull; | ||
196 | engine->fifo.channel_id = nv10_fifo_channel_id; | 210 | engine->fifo.channel_id = nv10_fifo_channel_id; |
197 | engine->fifo.create_context = nv10_fifo_create_context; | 211 | engine->fifo.create_context = nv10_fifo_create_context; |
198 | engine->fifo.destroy_context = nv10_fifo_destroy_context; | 212 | engine->fifo.destroy_context = nv10_fifo_destroy_context; |
@@ -218,6 +232,7 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) | |||
218 | engine->timer.takedown = nv04_timer_takedown; | 232 | engine->timer.takedown = nv04_timer_takedown; |
219 | engine->fb.init = nv40_fb_init; | 233 | engine->fb.init = nv40_fb_init; |
220 | engine->fb.takedown = nv40_fb_takedown; | 234 | engine->fb.takedown = nv40_fb_takedown; |
235 | engine->fb.set_region_tiling = nv40_fb_set_region_tiling; | ||
221 | engine->graph.grclass = nv40_graph_grclass; | 236 | engine->graph.grclass = nv40_graph_grclass; |
222 | engine->graph.init = nv40_graph_init; | 237 | engine->graph.init = nv40_graph_init; |
223 | engine->graph.takedown = nv40_graph_takedown; | 238 | engine->graph.takedown = nv40_graph_takedown; |
@@ -227,12 +242,15 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) | |||
227 | engine->graph.destroy_context = nv40_graph_destroy_context; | 242 | engine->graph.destroy_context = nv40_graph_destroy_context; |
228 | engine->graph.load_context = nv40_graph_load_context; | 243 | engine->graph.load_context = nv40_graph_load_context; |
229 | engine->graph.unload_context = nv40_graph_unload_context; | 244 | engine->graph.unload_context = nv40_graph_unload_context; |
245 | engine->graph.set_region_tiling = nv40_graph_set_region_tiling; | ||
230 | engine->fifo.channels = 32; | 246 | engine->fifo.channels = 32; |
231 | engine->fifo.init = nv40_fifo_init; | 247 | engine->fifo.init = nv40_fifo_init; |
232 | engine->fifo.takedown = nouveau_stub_takedown; | 248 | engine->fifo.takedown = nouveau_stub_takedown; |
233 | engine->fifo.disable = nv04_fifo_disable; | 249 | engine->fifo.disable = nv04_fifo_disable; |
234 | engine->fifo.enable = nv04_fifo_enable; | 250 | engine->fifo.enable = nv04_fifo_enable; |
235 | engine->fifo.reassign = nv04_fifo_reassign; | 251 | engine->fifo.reassign = nv04_fifo_reassign; |
252 | engine->fifo.cache_flush = nv04_fifo_cache_flush; | ||
253 | engine->fifo.cache_pull = nv04_fifo_cache_pull; | ||
236 | engine->fifo.channel_id = nv10_fifo_channel_id; | 254 | engine->fifo.channel_id = nv10_fifo_channel_id; |
237 | engine->fifo.create_context = nv40_fifo_create_context; | 255 | engine->fifo.create_context = nv40_fifo_create_context; |
238 | engine->fifo.destroy_context = nv40_fifo_destroy_context; | 256 | engine->fifo.destroy_context = nv40_fifo_destroy_context; |
@@ -624,7 +642,10 @@ int nouveau_load(struct drm_device *dev, unsigned long flags) | |||
624 | dev_priv->chipset = (reg0 & 0xff00000) >> 20; | 642 | dev_priv->chipset = (reg0 & 0xff00000) >> 20; |
625 | /* NV04 or NV05 */ | 643 | /* NV04 or NV05 */ |
626 | } else if ((reg0 & 0xff00fff0) == 0x20004000) { | 644 | } else if ((reg0 & 0xff00fff0) == 0x20004000) { |
627 | dev_priv->chipset = 0x04; | 645 | if (reg0 & 0x00f00000) |
646 | dev_priv->chipset = 0x05; | ||
647 | else | ||
648 | dev_priv->chipset = 0x04; | ||
628 | } else | 649 | } else |
629 | dev_priv->chipset = 0xff; | 650 | dev_priv->chipset = 0xff; |
630 | 651 | ||
@@ -704,8 +725,8 @@ static void nouveau_close(struct drm_device *dev) | |||
704 | { | 725 | { |
705 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 726 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
706 | 727 | ||
707 | /* In the case of an error dev_priv may not be be allocated yet */ | 728 | /* In the case of an error dev_priv may not be allocated yet */ |
708 | if (dev_priv && dev_priv->card_type) | 729 | if (dev_priv) |
709 | nouveau_card_takedown(dev); | 730 | nouveau_card_takedown(dev); |
710 | } | 731 | } |
711 | 732 | ||
diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c index 187eb84e4da..c385d50f041 100644 --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c | |||
@@ -28,45 +28,17 @@ | |||
28 | 28 | ||
29 | #include "nouveau_drv.h" | 29 | #include "nouveau_drv.h" |
30 | 30 | ||
31 | static struct vm_operations_struct nouveau_ttm_vm_ops; | ||
32 | static const struct vm_operations_struct *ttm_vm_ops; | ||
33 | |||
34 | static int | ||
35 | nouveau_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) | ||
36 | { | ||
37 | struct ttm_buffer_object *bo = vma->vm_private_data; | ||
38 | int ret; | ||
39 | |||
40 | if (unlikely(bo == NULL)) | ||
41 | return VM_FAULT_NOPAGE; | ||
42 | |||
43 | ret = ttm_vm_ops->fault(vma, vmf); | ||
44 | return ret; | ||
45 | } | ||
46 | |||
47 | int | 31 | int |
48 | nouveau_ttm_mmap(struct file *filp, struct vm_area_struct *vma) | 32 | nouveau_ttm_mmap(struct file *filp, struct vm_area_struct *vma) |
49 | { | 33 | { |
50 | struct drm_file *file_priv = filp->private_data; | 34 | struct drm_file *file_priv = filp->private_data; |
51 | struct drm_nouveau_private *dev_priv = | 35 | struct drm_nouveau_private *dev_priv = |
52 | file_priv->minor->dev->dev_private; | 36 | file_priv->minor->dev->dev_private; |
53 | int ret; | ||
54 | 37 | ||
55 | if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET)) | 38 | if (unlikely(vma->vm_pgoff < DRM_FILE_PAGE_OFFSET)) |
56 | return drm_mmap(filp, vma); | 39 | return drm_mmap(filp, vma); |
57 | 40 | ||
58 | ret = ttm_bo_mmap(filp, vma, &dev_priv->ttm.bdev); | 41 | return ttm_bo_mmap(filp, vma, &dev_priv->ttm.bdev); |
59 | if (unlikely(ret != 0)) | ||
60 | return ret; | ||
61 | |||
62 | if (unlikely(ttm_vm_ops == NULL)) { | ||
63 | ttm_vm_ops = vma->vm_ops; | ||
64 | nouveau_ttm_vm_ops = *ttm_vm_ops; | ||
65 | nouveau_ttm_vm_ops.fault = &nouveau_ttm_fault; | ||
66 | } | ||
67 | |||
68 | vma->vm_ops = &nouveau_ttm_vm_ops; | ||
69 | return 0; | ||
70 | } | 42 | } |
71 | 43 | ||
72 | static int | 44 | static int |
diff --git a/drivers/gpu/drm/nouveau/nv04_dac.c b/drivers/gpu/drm/nouveau/nv04_dac.c index d9f32879ba3..d0e038d2894 100644 --- a/drivers/gpu/drm/nouveau/nv04_dac.c +++ b/drivers/gpu/drm/nouveau/nv04_dac.c | |||
@@ -212,16 +212,15 @@ out: | |||
212 | return connector_status_disconnected; | 212 | return connector_status_disconnected; |
213 | } | 213 | } |
214 | 214 | ||
215 | enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder, | 215 | uint32_t nv17_dac_sample_load(struct drm_encoder *encoder) |
216 | struct drm_connector *connector) | ||
217 | { | 216 | { |
218 | struct drm_device *dev = encoder->dev; | 217 | struct drm_device *dev = encoder->dev; |
219 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 218 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
220 | struct dcb_entry *dcb = nouveau_encoder(encoder)->dcb; | 219 | struct dcb_entry *dcb = nouveau_encoder(encoder)->dcb; |
221 | uint32_t testval, regoffset = nv04_dac_output_offset(encoder); | 220 | uint32_t sample, testval, regoffset = nv04_dac_output_offset(encoder); |
222 | uint32_t saved_powerctrl_2 = 0, saved_powerctrl_4 = 0, saved_routput, | 221 | uint32_t saved_powerctrl_2 = 0, saved_powerctrl_4 = 0, saved_routput, |
223 | saved_rtest_ctrl, saved_gpio0, saved_gpio1, temp, routput; | 222 | saved_rtest_ctrl, saved_gpio0, saved_gpio1, temp, routput; |
224 | int head, present = 0; | 223 | int head; |
225 | 224 | ||
226 | #define RGB_TEST_DATA(r, g, b) (r << 0 | g << 10 | b << 20) | 225 | #define RGB_TEST_DATA(r, g, b) (r << 0 | g << 10 | b << 20) |
227 | if (dcb->type == OUTPUT_TV) { | 226 | if (dcb->type == OUTPUT_TV) { |
@@ -287,13 +286,7 @@ enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder, | |||
287 | temp | NV_PRAMDAC_TEST_CONTROL_TP_INS_EN_ASSERTED); | 286 | temp | NV_PRAMDAC_TEST_CONTROL_TP_INS_EN_ASSERTED); |
288 | msleep(5); | 287 | msleep(5); |
289 | 288 | ||
290 | temp = NVReadRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + regoffset); | 289 | sample = NVReadRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + regoffset); |
291 | |||
292 | if (dcb->type == OUTPUT_TV) | ||
293 | present = (nv17_tv_detect(encoder, connector, temp) | ||
294 | == connector_status_connected); | ||
295 | else | ||
296 | present = temp & NV_PRAMDAC_TEST_CONTROL_SENSEB_ALLHI; | ||
297 | 290 | ||
298 | temp = NVReadRAMDAC(dev, head, NV_PRAMDAC_TEST_CONTROL); | 291 | temp = NVReadRAMDAC(dev, head, NV_PRAMDAC_TEST_CONTROL); |
299 | NVWriteRAMDAC(dev, head, NV_PRAMDAC_TEST_CONTROL, | 292 | NVWriteRAMDAC(dev, head, NV_PRAMDAC_TEST_CONTROL, |
@@ -310,15 +303,25 @@ enum drm_connector_status nv17_dac_detect(struct drm_encoder *encoder, | |||
310 | nv17_gpio_set(dev, DCB_GPIO_TVDAC1, saved_gpio1); | 303 | nv17_gpio_set(dev, DCB_GPIO_TVDAC1, saved_gpio1); |
311 | nv17_gpio_set(dev, DCB_GPIO_TVDAC0, saved_gpio0); | 304 | nv17_gpio_set(dev, DCB_GPIO_TVDAC0, saved_gpio0); |
312 | 305 | ||
313 | if (present) { | 306 | return sample; |
314 | NV_INFO(dev, "Load detected on output %c\n", '@' + ffs(dcb->or)); | 307 | } |
308 | |||
309 | static enum drm_connector_status | ||
310 | nv17_dac_detect(struct drm_encoder *encoder, struct drm_connector *connector) | ||
311 | { | ||
312 | struct drm_device *dev = encoder->dev; | ||
313 | struct dcb_entry *dcb = nouveau_encoder(encoder)->dcb; | ||
314 | uint32_t sample = nv17_dac_sample_load(encoder); | ||
315 | |||
316 | if (sample & NV_PRAMDAC_TEST_CONTROL_SENSEB_ALLHI) { | ||
317 | NV_INFO(dev, "Load detected on output %c\n", | ||
318 | '@' + ffs(dcb->or)); | ||
315 | return connector_status_connected; | 319 | return connector_status_connected; |
320 | } else { | ||
321 | return connector_status_disconnected; | ||
316 | } | 322 | } |
317 | |||
318 | return connector_status_disconnected; | ||
319 | } | 323 | } |
320 | 324 | ||
321 | |||
322 | static bool nv04_dac_mode_fixup(struct drm_encoder *encoder, | 325 | static bool nv04_dac_mode_fixup(struct drm_encoder *encoder, |
323 | struct drm_display_mode *mode, | 326 | struct drm_display_mode *mode, |
324 | struct drm_display_mode *adjusted_mode) | 327 | struct drm_display_mode *adjusted_mode) |
diff --git a/drivers/gpu/drm/nouveau/nv04_fbcon.c b/drivers/gpu/drm/nouveau/nv04_fbcon.c index 09a31071ee5..d910873c136 100644 --- a/drivers/gpu/drm/nouveau/nv04_fbcon.c +++ b/drivers/gpu/drm/nouveau/nv04_fbcon.c | |||
@@ -39,8 +39,7 @@ nv04_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region) | |||
39 | return; | 39 | return; |
40 | 40 | ||
41 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 4)) { | 41 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 4)) { |
42 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | 42 | nouveau_fbcon_gpu_lockup(info); |
43 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
44 | } | 43 | } |
45 | 44 | ||
46 | if (info->flags & FBINFO_HWACCEL_DISABLED) { | 45 | if (info->flags & FBINFO_HWACCEL_DISABLED) { |
@@ -62,14 +61,12 @@ nv04_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect) | |||
62 | struct drm_device *dev = par->dev; | 61 | struct drm_device *dev = par->dev; |
63 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 62 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
64 | struct nouveau_channel *chan = dev_priv->channel; | 63 | struct nouveau_channel *chan = dev_priv->channel; |
65 | uint32_t color = ((uint32_t *) info->pseudo_palette)[rect->color]; | ||
66 | 64 | ||
67 | if (info->state != FBINFO_STATE_RUNNING) | 65 | if (info->state != FBINFO_STATE_RUNNING) |
68 | return; | 66 | return; |
69 | 67 | ||
70 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 7)) { | 68 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 7)) { |
71 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | 69 | nouveau_fbcon_gpu_lockup(info); |
72 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
73 | } | 70 | } |
74 | 71 | ||
75 | if (info->flags & FBINFO_HWACCEL_DISABLED) { | 72 | if (info->flags & FBINFO_HWACCEL_DISABLED) { |
@@ -80,7 +77,11 @@ nv04_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect) | |||
80 | BEGIN_RING(chan, NvSubGdiRect, 0x02fc, 1); | 77 | BEGIN_RING(chan, NvSubGdiRect, 0x02fc, 1); |
81 | OUT_RING(chan, (rect->rop != ROP_COPY) ? 1 : 3); | 78 | OUT_RING(chan, (rect->rop != ROP_COPY) ? 1 : 3); |
82 | BEGIN_RING(chan, NvSubGdiRect, 0x03fc, 1); | 79 | BEGIN_RING(chan, NvSubGdiRect, 0x03fc, 1); |
83 | OUT_RING(chan, color); | 80 | if (info->fix.visual == FB_VISUAL_TRUECOLOR || |
81 | info->fix.visual == FB_VISUAL_DIRECTCOLOR) | ||
82 | OUT_RING(chan, ((uint32_t *)info->pseudo_palette)[rect->color]); | ||
83 | else | ||
84 | OUT_RING(chan, rect->color); | ||
84 | BEGIN_RING(chan, NvSubGdiRect, 0x0400, 2); | 85 | BEGIN_RING(chan, NvSubGdiRect, 0x0400, 2); |
85 | OUT_RING(chan, (rect->dx << 16) | rect->dy); | 86 | OUT_RING(chan, (rect->dx << 16) | rect->dy); |
86 | OUT_RING(chan, (rect->width << 16) | rect->height); | 87 | OUT_RING(chan, (rect->width << 16) | rect->height); |
@@ -109,8 +110,7 @@ nv04_fbcon_imageblit(struct fb_info *info, const struct fb_image *image) | |||
109 | } | 110 | } |
110 | 111 | ||
111 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 8)) { | 112 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 8)) { |
112 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | 113 | nouveau_fbcon_gpu_lockup(info); |
113 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
114 | } | 114 | } |
115 | 115 | ||
116 | if (info->flags & FBINFO_HWACCEL_DISABLED) { | 116 | if (info->flags & FBINFO_HWACCEL_DISABLED) { |
@@ -144,8 +144,7 @@ nv04_fbcon_imageblit(struct fb_info *info, const struct fb_image *image) | |||
144 | int iter_len = dsize > 128 ? 128 : dsize; | 144 | int iter_len = dsize > 128 ? 128 : dsize; |
145 | 145 | ||
146 | if (RING_SPACE(chan, iter_len + 1)) { | 146 | if (RING_SPACE(chan, iter_len + 1)) { |
147 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | 147 | nouveau_fbcon_gpu_lockup(info); |
148 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
149 | cfb_imageblit(info, image); | 148 | cfb_imageblit(info, image); |
150 | return; | 149 | return; |
151 | } | 150 | } |
@@ -184,6 +183,7 @@ nv04_fbcon_accel_init(struct fb_info *info) | |||
184 | struct drm_device *dev = par->dev; | 183 | struct drm_device *dev = par->dev; |
185 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 184 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
186 | struct nouveau_channel *chan = dev_priv->channel; | 185 | struct nouveau_channel *chan = dev_priv->channel; |
186 | const int sub = NvSubCtxSurf2D; | ||
187 | int surface_fmt, pattern_fmt, rect_fmt; | 187 | int surface_fmt, pattern_fmt, rect_fmt; |
188 | int ret; | 188 | int ret; |
189 | 189 | ||
@@ -242,30 +242,29 @@ nv04_fbcon_accel_init(struct fb_info *info) | |||
242 | return ret; | 242 | return ret; |
243 | 243 | ||
244 | if (RING_SPACE(chan, 49)) { | 244 | if (RING_SPACE(chan, 49)) { |
245 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | 245 | nouveau_fbcon_gpu_lockup(info); |
246 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
247 | return 0; | 246 | return 0; |
248 | } | 247 | } |
249 | 248 | ||
250 | BEGIN_RING(chan, 1, 0x0000, 1); | 249 | BEGIN_RING(chan, sub, 0x0000, 1); |
251 | OUT_RING(chan, NvCtxSurf2D); | 250 | OUT_RING(chan, NvCtxSurf2D); |
252 | BEGIN_RING(chan, 1, 0x0184, 2); | 251 | BEGIN_RING(chan, sub, 0x0184, 2); |
253 | OUT_RING(chan, NvDmaFB); | 252 | OUT_RING(chan, NvDmaFB); |
254 | OUT_RING(chan, NvDmaFB); | 253 | OUT_RING(chan, NvDmaFB); |
255 | BEGIN_RING(chan, 1, 0x0300, 4); | 254 | BEGIN_RING(chan, sub, 0x0300, 4); |
256 | OUT_RING(chan, surface_fmt); | 255 | OUT_RING(chan, surface_fmt); |
257 | OUT_RING(chan, info->fix.line_length | (info->fix.line_length << 16)); | 256 | OUT_RING(chan, info->fix.line_length | (info->fix.line_length << 16)); |
258 | OUT_RING(chan, info->fix.smem_start - dev->mode_config.fb_base); | 257 | OUT_RING(chan, info->fix.smem_start - dev->mode_config.fb_base); |
259 | OUT_RING(chan, info->fix.smem_start - dev->mode_config.fb_base); | 258 | OUT_RING(chan, info->fix.smem_start - dev->mode_config.fb_base); |
260 | 259 | ||
261 | BEGIN_RING(chan, 1, 0x0000, 1); | 260 | BEGIN_RING(chan, sub, 0x0000, 1); |
262 | OUT_RING(chan, NvRop); | 261 | OUT_RING(chan, NvRop); |
263 | BEGIN_RING(chan, 1, 0x0300, 1); | 262 | BEGIN_RING(chan, sub, 0x0300, 1); |
264 | OUT_RING(chan, 0x55); | 263 | OUT_RING(chan, 0x55); |
265 | 264 | ||
266 | BEGIN_RING(chan, 1, 0x0000, 1); | 265 | BEGIN_RING(chan, sub, 0x0000, 1); |
267 | OUT_RING(chan, NvImagePatt); | 266 | OUT_RING(chan, NvImagePatt); |
268 | BEGIN_RING(chan, 1, 0x0300, 8); | 267 | BEGIN_RING(chan, sub, 0x0300, 8); |
269 | OUT_RING(chan, pattern_fmt); | 268 | OUT_RING(chan, pattern_fmt); |
270 | #ifdef __BIG_ENDIAN | 269 | #ifdef __BIG_ENDIAN |
271 | OUT_RING(chan, 2); | 270 | OUT_RING(chan, 2); |
@@ -279,9 +278,9 @@ nv04_fbcon_accel_init(struct fb_info *info) | |||
279 | OUT_RING(chan, ~0); | 278 | OUT_RING(chan, ~0); |
280 | OUT_RING(chan, ~0); | 279 | OUT_RING(chan, ~0); |
281 | 280 | ||
282 | BEGIN_RING(chan, 1, 0x0000, 1); | 281 | BEGIN_RING(chan, sub, 0x0000, 1); |
283 | OUT_RING(chan, NvClipRect); | 282 | OUT_RING(chan, NvClipRect); |
284 | BEGIN_RING(chan, 1, 0x0300, 2); | 283 | BEGIN_RING(chan, sub, 0x0300, 2); |
285 | OUT_RING(chan, 0); | 284 | OUT_RING(chan, 0); |
286 | OUT_RING(chan, (info->var.yres_virtual << 16) | info->var.xres_virtual); | 285 | OUT_RING(chan, (info->var.yres_virtual << 16) | info->var.xres_virtual); |
287 | 286 | ||
diff --git a/drivers/gpu/drm/nouveau/nv04_fifo.c b/drivers/gpu/drm/nouveau/nv04_fifo.c index 0c3cd53c731..f31347b8c9b 100644 --- a/drivers/gpu/drm/nouveau/nv04_fifo.c +++ b/drivers/gpu/drm/nouveau/nv04_fifo.c | |||
@@ -71,6 +71,40 @@ nv04_fifo_reassign(struct drm_device *dev, bool enable) | |||
71 | return (reassign == 1); | 71 | return (reassign == 1); |
72 | } | 72 | } |
73 | 73 | ||
74 | bool | ||
75 | nv04_fifo_cache_flush(struct drm_device *dev) | ||
76 | { | ||
77 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
78 | struct nouveau_timer_engine *ptimer = &dev_priv->engine.timer; | ||
79 | uint64_t start = ptimer->read(dev); | ||
80 | |||
81 | do { | ||
82 | if (nv_rd32(dev, NV03_PFIFO_CACHE1_GET) == | ||
83 | nv_rd32(dev, NV03_PFIFO_CACHE1_PUT)) | ||
84 | return true; | ||
85 | |||
86 | } while (ptimer->read(dev) - start < 100000000); | ||
87 | |||
88 | NV_ERROR(dev, "Timeout flushing the PFIFO cache.\n"); | ||
89 | |||
90 | return false; | ||
91 | } | ||
92 | |||
93 | bool | ||
94 | nv04_fifo_cache_pull(struct drm_device *dev, bool enable) | ||
95 | { | ||
96 | uint32_t pull = nv_rd32(dev, NV04_PFIFO_CACHE1_PULL0); | ||
97 | |||
98 | if (enable) { | ||
99 | nv_wr32(dev, NV04_PFIFO_CACHE1_PULL0, pull | 1); | ||
100 | } else { | ||
101 | nv_wr32(dev, NV04_PFIFO_CACHE1_PULL0, pull & ~1); | ||
102 | nv_wr32(dev, NV04_PFIFO_CACHE1_HASH, 0); | ||
103 | } | ||
104 | |||
105 | return !!(pull & 1); | ||
106 | } | ||
107 | |||
74 | int | 108 | int |
75 | nv04_fifo_channel_id(struct drm_device *dev) | 109 | nv04_fifo_channel_id(struct drm_device *dev) |
76 | { | 110 | { |
diff --git a/drivers/gpu/drm/nouveau/nv04_graph.c b/drivers/gpu/drm/nouveau/nv04_graph.c index d561d773c0f..e260986ea65 100644 --- a/drivers/gpu/drm/nouveau/nv04_graph.c +++ b/drivers/gpu/drm/nouveau/nv04_graph.c | |||
@@ -28,6 +28,10 @@ | |||
28 | #include "nouveau_drv.h" | 28 | #include "nouveau_drv.h" |
29 | 29 | ||
30 | static uint32_t nv04_graph_ctx_regs[] = { | 30 | static uint32_t nv04_graph_ctx_regs[] = { |
31 | 0x0040053c, | ||
32 | 0x00400544, | ||
33 | 0x00400540, | ||
34 | 0x00400548, | ||
31 | NV04_PGRAPH_CTX_SWITCH1, | 35 | NV04_PGRAPH_CTX_SWITCH1, |
32 | NV04_PGRAPH_CTX_SWITCH2, | 36 | NV04_PGRAPH_CTX_SWITCH2, |
33 | NV04_PGRAPH_CTX_SWITCH3, | 37 | NV04_PGRAPH_CTX_SWITCH3, |
@@ -102,69 +106,69 @@ static uint32_t nv04_graph_ctx_regs[] = { | |||
102 | NV04_PGRAPH_PATT_COLOR0, | 106 | NV04_PGRAPH_PATT_COLOR0, |
103 | NV04_PGRAPH_PATT_COLOR1, | 107 | NV04_PGRAPH_PATT_COLOR1, |
104 | NV04_PGRAPH_PATT_COLORRAM+0x00, | 108 | NV04_PGRAPH_PATT_COLORRAM+0x00, |
105 | NV04_PGRAPH_PATT_COLORRAM+0x01, | ||
106 | NV04_PGRAPH_PATT_COLORRAM+0x02, | ||
107 | NV04_PGRAPH_PATT_COLORRAM+0x03, | ||
108 | NV04_PGRAPH_PATT_COLORRAM+0x04, | 109 | NV04_PGRAPH_PATT_COLORRAM+0x04, |
109 | NV04_PGRAPH_PATT_COLORRAM+0x05, | ||
110 | NV04_PGRAPH_PATT_COLORRAM+0x06, | ||
111 | NV04_PGRAPH_PATT_COLORRAM+0x07, | ||
112 | NV04_PGRAPH_PATT_COLORRAM+0x08, | 110 | NV04_PGRAPH_PATT_COLORRAM+0x08, |
113 | NV04_PGRAPH_PATT_COLORRAM+0x09, | 111 | NV04_PGRAPH_PATT_COLORRAM+0x0c, |
114 | NV04_PGRAPH_PATT_COLORRAM+0x0A, | ||
115 | NV04_PGRAPH_PATT_COLORRAM+0x0B, | ||
116 | NV04_PGRAPH_PATT_COLORRAM+0x0C, | ||
117 | NV04_PGRAPH_PATT_COLORRAM+0x0D, | ||
118 | NV04_PGRAPH_PATT_COLORRAM+0x0E, | ||
119 | NV04_PGRAPH_PATT_COLORRAM+0x0F, | ||
120 | NV04_PGRAPH_PATT_COLORRAM+0x10, | 112 | NV04_PGRAPH_PATT_COLORRAM+0x10, |
121 | NV04_PGRAPH_PATT_COLORRAM+0x11, | ||
122 | NV04_PGRAPH_PATT_COLORRAM+0x12, | ||
123 | NV04_PGRAPH_PATT_COLORRAM+0x13, | ||
124 | NV04_PGRAPH_PATT_COLORRAM+0x14, | 113 | NV04_PGRAPH_PATT_COLORRAM+0x14, |
125 | NV04_PGRAPH_PATT_COLORRAM+0x15, | ||
126 | NV04_PGRAPH_PATT_COLORRAM+0x16, | ||
127 | NV04_PGRAPH_PATT_COLORRAM+0x17, | ||
128 | NV04_PGRAPH_PATT_COLORRAM+0x18, | 114 | NV04_PGRAPH_PATT_COLORRAM+0x18, |
129 | NV04_PGRAPH_PATT_COLORRAM+0x19, | 115 | NV04_PGRAPH_PATT_COLORRAM+0x1c, |
130 | NV04_PGRAPH_PATT_COLORRAM+0x1A, | ||
131 | NV04_PGRAPH_PATT_COLORRAM+0x1B, | ||
132 | NV04_PGRAPH_PATT_COLORRAM+0x1C, | ||
133 | NV04_PGRAPH_PATT_COLORRAM+0x1D, | ||
134 | NV04_PGRAPH_PATT_COLORRAM+0x1E, | ||
135 | NV04_PGRAPH_PATT_COLORRAM+0x1F, | ||
136 | NV04_PGRAPH_PATT_COLORRAM+0x20, | 116 | NV04_PGRAPH_PATT_COLORRAM+0x20, |
137 | NV04_PGRAPH_PATT_COLORRAM+0x21, | ||
138 | NV04_PGRAPH_PATT_COLORRAM+0x22, | ||
139 | NV04_PGRAPH_PATT_COLORRAM+0x23, | ||
140 | NV04_PGRAPH_PATT_COLORRAM+0x24, | 117 | NV04_PGRAPH_PATT_COLORRAM+0x24, |
141 | NV04_PGRAPH_PATT_COLORRAM+0x25, | ||
142 | NV04_PGRAPH_PATT_COLORRAM+0x26, | ||
143 | NV04_PGRAPH_PATT_COLORRAM+0x27, | ||
144 | NV04_PGRAPH_PATT_COLORRAM+0x28, | 118 | NV04_PGRAPH_PATT_COLORRAM+0x28, |
145 | NV04_PGRAPH_PATT_COLORRAM+0x29, | 119 | NV04_PGRAPH_PATT_COLORRAM+0x2c, |
146 | NV04_PGRAPH_PATT_COLORRAM+0x2A, | ||
147 | NV04_PGRAPH_PATT_COLORRAM+0x2B, | ||
148 | NV04_PGRAPH_PATT_COLORRAM+0x2C, | ||
149 | NV04_PGRAPH_PATT_COLORRAM+0x2D, | ||
150 | NV04_PGRAPH_PATT_COLORRAM+0x2E, | ||
151 | NV04_PGRAPH_PATT_COLORRAM+0x2F, | ||
152 | NV04_PGRAPH_PATT_COLORRAM+0x30, | 120 | NV04_PGRAPH_PATT_COLORRAM+0x30, |
153 | NV04_PGRAPH_PATT_COLORRAM+0x31, | ||
154 | NV04_PGRAPH_PATT_COLORRAM+0x32, | ||
155 | NV04_PGRAPH_PATT_COLORRAM+0x33, | ||
156 | NV04_PGRAPH_PATT_COLORRAM+0x34, | 121 | NV04_PGRAPH_PATT_COLORRAM+0x34, |
157 | NV04_PGRAPH_PATT_COLORRAM+0x35, | ||
158 | NV04_PGRAPH_PATT_COLORRAM+0x36, | ||
159 | NV04_PGRAPH_PATT_COLORRAM+0x37, | ||
160 | NV04_PGRAPH_PATT_COLORRAM+0x38, | 122 | NV04_PGRAPH_PATT_COLORRAM+0x38, |
161 | NV04_PGRAPH_PATT_COLORRAM+0x39, | 123 | NV04_PGRAPH_PATT_COLORRAM+0x3c, |
162 | NV04_PGRAPH_PATT_COLORRAM+0x3A, | 124 | NV04_PGRAPH_PATT_COLORRAM+0x40, |
163 | NV04_PGRAPH_PATT_COLORRAM+0x3B, | 125 | NV04_PGRAPH_PATT_COLORRAM+0x44, |
164 | NV04_PGRAPH_PATT_COLORRAM+0x3C, | 126 | NV04_PGRAPH_PATT_COLORRAM+0x48, |
165 | NV04_PGRAPH_PATT_COLORRAM+0x3D, | 127 | NV04_PGRAPH_PATT_COLORRAM+0x4c, |
166 | NV04_PGRAPH_PATT_COLORRAM+0x3E, | 128 | NV04_PGRAPH_PATT_COLORRAM+0x50, |
167 | NV04_PGRAPH_PATT_COLORRAM+0x3F, | 129 | NV04_PGRAPH_PATT_COLORRAM+0x54, |
130 | NV04_PGRAPH_PATT_COLORRAM+0x58, | ||
131 | NV04_PGRAPH_PATT_COLORRAM+0x5c, | ||
132 | NV04_PGRAPH_PATT_COLORRAM+0x60, | ||
133 | NV04_PGRAPH_PATT_COLORRAM+0x64, | ||
134 | NV04_PGRAPH_PATT_COLORRAM+0x68, | ||
135 | NV04_PGRAPH_PATT_COLORRAM+0x6c, | ||
136 | NV04_PGRAPH_PATT_COLORRAM+0x70, | ||
137 | NV04_PGRAPH_PATT_COLORRAM+0x74, | ||
138 | NV04_PGRAPH_PATT_COLORRAM+0x78, | ||
139 | NV04_PGRAPH_PATT_COLORRAM+0x7c, | ||
140 | NV04_PGRAPH_PATT_COLORRAM+0x80, | ||
141 | NV04_PGRAPH_PATT_COLORRAM+0x84, | ||
142 | NV04_PGRAPH_PATT_COLORRAM+0x88, | ||
143 | NV04_PGRAPH_PATT_COLORRAM+0x8c, | ||
144 | NV04_PGRAPH_PATT_COLORRAM+0x90, | ||
145 | NV04_PGRAPH_PATT_COLORRAM+0x94, | ||
146 | NV04_PGRAPH_PATT_COLORRAM+0x98, | ||
147 | NV04_PGRAPH_PATT_COLORRAM+0x9c, | ||
148 | NV04_PGRAPH_PATT_COLORRAM+0xa0, | ||
149 | NV04_PGRAPH_PATT_COLORRAM+0xa4, | ||
150 | NV04_PGRAPH_PATT_COLORRAM+0xa8, | ||
151 | NV04_PGRAPH_PATT_COLORRAM+0xac, | ||
152 | NV04_PGRAPH_PATT_COLORRAM+0xb0, | ||
153 | NV04_PGRAPH_PATT_COLORRAM+0xb4, | ||
154 | NV04_PGRAPH_PATT_COLORRAM+0xb8, | ||
155 | NV04_PGRAPH_PATT_COLORRAM+0xbc, | ||
156 | NV04_PGRAPH_PATT_COLORRAM+0xc0, | ||
157 | NV04_PGRAPH_PATT_COLORRAM+0xc4, | ||
158 | NV04_PGRAPH_PATT_COLORRAM+0xc8, | ||
159 | NV04_PGRAPH_PATT_COLORRAM+0xcc, | ||
160 | NV04_PGRAPH_PATT_COLORRAM+0xd0, | ||
161 | NV04_PGRAPH_PATT_COLORRAM+0xd4, | ||
162 | NV04_PGRAPH_PATT_COLORRAM+0xd8, | ||
163 | NV04_PGRAPH_PATT_COLORRAM+0xdc, | ||
164 | NV04_PGRAPH_PATT_COLORRAM+0xe0, | ||
165 | NV04_PGRAPH_PATT_COLORRAM+0xe4, | ||
166 | NV04_PGRAPH_PATT_COLORRAM+0xe8, | ||
167 | NV04_PGRAPH_PATT_COLORRAM+0xec, | ||
168 | NV04_PGRAPH_PATT_COLORRAM+0xf0, | ||
169 | NV04_PGRAPH_PATT_COLORRAM+0xf4, | ||
170 | NV04_PGRAPH_PATT_COLORRAM+0xf8, | ||
171 | NV04_PGRAPH_PATT_COLORRAM+0xfc, | ||
168 | NV04_PGRAPH_PATTERN, | 172 | NV04_PGRAPH_PATTERN, |
169 | 0x0040080c, | 173 | 0x0040080c, |
170 | NV04_PGRAPH_PATTERN_SHAPE, | 174 | NV04_PGRAPH_PATTERN_SHAPE, |
@@ -247,14 +251,6 @@ static uint32_t nv04_graph_ctx_regs[] = { | |||
247 | 0x004004f8, | 251 | 0x004004f8, |
248 | 0x0040047c, | 252 | 0x0040047c, |
249 | 0x004004fc, | 253 | 0x004004fc, |
250 | 0x0040053c, | ||
251 | 0x00400544, | ||
252 | 0x00400540, | ||
253 | 0x00400548, | ||
254 | 0x00400560, | ||
255 | 0x00400568, | ||
256 | 0x00400564, | ||
257 | 0x0040056c, | ||
258 | 0x00400534, | 254 | 0x00400534, |
259 | 0x00400538, | 255 | 0x00400538, |
260 | 0x00400514, | 256 | 0x00400514, |
@@ -341,9 +337,8 @@ static uint32_t nv04_graph_ctx_regs[] = { | |||
341 | 0x00400500, | 337 | 0x00400500, |
342 | 0x00400504, | 338 | 0x00400504, |
343 | NV04_PGRAPH_VALID1, | 339 | NV04_PGRAPH_VALID1, |
344 | NV04_PGRAPH_VALID2 | 340 | NV04_PGRAPH_VALID2, |
345 | 341 | NV04_PGRAPH_DEBUG_3 | |
346 | |||
347 | }; | 342 | }; |
348 | 343 | ||
349 | struct graph_state { | 344 | struct graph_state { |
@@ -388,6 +383,18 @@ nv04_graph_context_switch(struct drm_device *dev) | |||
388 | pgraph->fifo_access(dev, true); | 383 | pgraph->fifo_access(dev, true); |
389 | } | 384 | } |
390 | 385 | ||
386 | static uint32_t *ctx_reg(struct graph_state *ctx, uint32_t reg) | ||
387 | { | ||
388 | int i; | ||
389 | |||
390 | for (i = 0; i < ARRAY_SIZE(nv04_graph_ctx_regs); i++) { | ||
391 | if (nv04_graph_ctx_regs[i] == reg) | ||
392 | return &ctx->nv04[i]; | ||
393 | } | ||
394 | |||
395 | return NULL; | ||
396 | } | ||
397 | |||
391 | int nv04_graph_create_context(struct nouveau_channel *chan) | 398 | int nv04_graph_create_context(struct nouveau_channel *chan) |
392 | { | 399 | { |
393 | struct graph_state *pgraph_ctx; | 400 | struct graph_state *pgraph_ctx; |
@@ -398,15 +405,8 @@ int nv04_graph_create_context(struct nouveau_channel *chan) | |||
398 | if (pgraph_ctx == NULL) | 405 | if (pgraph_ctx == NULL) |
399 | return -ENOMEM; | 406 | return -ENOMEM; |
400 | 407 | ||
401 | /* dev_priv->fifos[channel].pgraph_ctx_user = channel << 24; */ | 408 | *ctx_reg(pgraph_ctx, NV04_PGRAPH_DEBUG_3) = 0xfad4ff31; |
402 | pgraph_ctx->nv04[0] = 0x0001ffff; | 409 | |
403 | /* is it really needed ??? */ | ||
404 | #if 0 | ||
405 | dev_priv->fifos[channel].pgraph_ctx[1] = | ||
406 | nv_rd32(dev, NV_PGRAPH_DEBUG_4); | ||
407 | dev_priv->fifos[channel].pgraph_ctx[2] = | ||
408 | nv_rd32(dev, 0x004006b0); | ||
409 | #endif | ||
410 | return 0; | 410 | return 0; |
411 | } | 411 | } |
412 | 412 | ||
@@ -429,9 +429,13 @@ int nv04_graph_load_context(struct nouveau_channel *chan) | |||
429 | nv_wr32(dev, nv04_graph_ctx_regs[i], pgraph_ctx->nv04[i]); | 429 | nv_wr32(dev, nv04_graph_ctx_regs[i], pgraph_ctx->nv04[i]); |
430 | 430 | ||
431 | nv_wr32(dev, NV04_PGRAPH_CTX_CONTROL, 0x10010100); | 431 | nv_wr32(dev, NV04_PGRAPH_CTX_CONTROL, 0x10010100); |
432 | nv_wr32(dev, NV04_PGRAPH_CTX_USER, chan->id << 24); | 432 | |
433 | tmp = nv_rd32(dev, NV04_PGRAPH_CTX_USER) & 0x00ffffff; | ||
434 | nv_wr32(dev, NV04_PGRAPH_CTX_USER, tmp | chan->id << 24); | ||
435 | |||
433 | tmp = nv_rd32(dev, NV04_PGRAPH_FFINTFC_ST2); | 436 | tmp = nv_rd32(dev, NV04_PGRAPH_FFINTFC_ST2); |
434 | nv_wr32(dev, NV04_PGRAPH_FFINTFC_ST2, tmp & 0x000fffff); | 437 | nv_wr32(dev, NV04_PGRAPH_FFINTFC_ST2, tmp & 0x000fffff); |
438 | |||
435 | return 0; | 439 | return 0; |
436 | } | 440 | } |
437 | 441 | ||
@@ -494,7 +498,7 @@ int nv04_graph_init(struct drm_device *dev) | |||
494 | nv_wr32(dev, NV04_PGRAPH_STATE , 0xFFFFFFFF); | 498 | nv_wr32(dev, NV04_PGRAPH_STATE , 0xFFFFFFFF); |
495 | nv_wr32(dev, NV04_PGRAPH_CTX_CONTROL , 0x10000100); | 499 | nv_wr32(dev, NV04_PGRAPH_CTX_CONTROL , 0x10000100); |
496 | tmp = nv_rd32(dev, NV04_PGRAPH_CTX_USER) & 0x00ffffff; | 500 | tmp = nv_rd32(dev, NV04_PGRAPH_CTX_USER) & 0x00ffffff; |
497 | tmp |= dev_priv->engine.fifo.channels << 24; | 501 | tmp |= (dev_priv->engine.fifo.channels - 1) << 24; |
498 | nv_wr32(dev, NV04_PGRAPH_CTX_USER, tmp); | 502 | nv_wr32(dev, NV04_PGRAPH_CTX_USER, tmp); |
499 | 503 | ||
500 | /* These don't belong here, they're part of a per-channel context */ | 504 | /* These don't belong here, they're part of a per-channel context */ |
@@ -533,7 +537,7 @@ nv04_graph_mthd_set_operation(struct nouveau_channel *chan, int grclass, | |||
533 | int mthd, uint32_t data) | 537 | int mthd, uint32_t data) |
534 | { | 538 | { |
535 | struct drm_device *dev = chan->dev; | 539 | struct drm_device *dev = chan->dev; |
536 | uint32_t instance = nv_rd32(dev, NV04_PGRAPH_CTX_SWITCH4) & 0xffff; | 540 | uint32_t instance = (nv_rd32(dev, NV04_PGRAPH_CTX_SWITCH4) & 0xffff) << 4; |
537 | int subc = (nv_rd32(dev, NV04_PGRAPH_TRAPPED_ADDR) >> 13) & 0x7; | 541 | int subc = (nv_rd32(dev, NV04_PGRAPH_TRAPPED_ADDR) >> 13) & 0x7; |
538 | uint32_t tmp; | 542 | uint32_t tmp; |
539 | 543 | ||
@@ -547,7 +551,7 @@ nv04_graph_mthd_set_operation(struct nouveau_channel *chan, int grclass, | |||
547 | return 0; | 551 | return 0; |
548 | } | 552 | } |
549 | 553 | ||
550 | static struct nouveau_pgraph_object_method nv04_graph_mthds_m2mf[] = { | 554 | static struct nouveau_pgraph_object_method nv04_graph_mthds_sw[] = { |
551 | { 0x0150, nv04_graph_mthd_set_ref }, | 555 | { 0x0150, nv04_graph_mthd_set_ref }, |
552 | {} | 556 | {} |
553 | }; | 557 | }; |
@@ -558,7 +562,7 @@ static struct nouveau_pgraph_object_method nv04_graph_mthds_set_operation[] = { | |||
558 | }; | 562 | }; |
559 | 563 | ||
560 | struct nouveau_pgraph_object_class nv04_graph_grclass[] = { | 564 | struct nouveau_pgraph_object_class nv04_graph_grclass[] = { |
561 | { 0x0039, false, nv04_graph_mthds_m2mf }, | 565 | { 0x0039, false, NULL }, |
562 | { 0x004a, false, nv04_graph_mthds_set_operation }, /* gdirect */ | 566 | { 0x004a, false, nv04_graph_mthds_set_operation }, /* gdirect */ |
563 | { 0x005f, false, nv04_graph_mthds_set_operation }, /* imageblit */ | 567 | { 0x005f, false, nv04_graph_mthds_set_operation }, /* imageblit */ |
564 | { 0x0061, false, nv04_graph_mthds_set_operation }, /* ifc */ | 568 | { 0x0061, false, nv04_graph_mthds_set_operation }, /* ifc */ |
@@ -574,6 +578,7 @@ struct nouveau_pgraph_object_class nv04_graph_grclass[] = { | |||
574 | { 0x0053, false, NULL }, /* surf3d */ | 578 | { 0x0053, false, NULL }, /* surf3d */ |
575 | { 0x0054, false, NULL }, /* tex_tri */ | 579 | { 0x0054, false, NULL }, /* tex_tri */ |
576 | { 0x0055, false, NULL }, /* multitex_tri */ | 580 | { 0x0055, false, NULL }, /* multitex_tri */ |
581 | { 0x506e, true, nv04_graph_mthds_sw }, | ||
577 | {} | 582 | {} |
578 | }; | 583 | }; |
579 | 584 | ||
diff --git a/drivers/gpu/drm/nouveau/nv10_fb.c b/drivers/gpu/drm/nouveau/nv10_fb.c index 79e2d104d70..cc5cda44e50 100644 --- a/drivers/gpu/drm/nouveau/nv10_fb.c +++ b/drivers/gpu/drm/nouveau/nv10_fb.c | |||
@@ -3,17 +3,37 @@ | |||
3 | #include "nouveau_drv.h" | 3 | #include "nouveau_drv.h" |
4 | #include "nouveau_drm.h" | 4 | #include "nouveau_drm.h" |
5 | 5 | ||
6 | void | ||
7 | nv10_fb_set_region_tiling(struct drm_device *dev, int i, uint32_t addr, | ||
8 | uint32_t size, uint32_t pitch) | ||
9 | { | ||
10 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
11 | uint32_t limit = max(1u, addr + size) - 1; | ||
12 | |||
13 | if (pitch) { | ||
14 | if (dev_priv->card_type >= NV_20) | ||
15 | addr |= 1; | ||
16 | else | ||
17 | addr |= 1 << 31; | ||
18 | } | ||
19 | |||
20 | nv_wr32(dev, NV10_PFB_TLIMIT(i), limit); | ||
21 | nv_wr32(dev, NV10_PFB_TSIZE(i), pitch); | ||
22 | nv_wr32(dev, NV10_PFB_TILE(i), addr); | ||
23 | } | ||
24 | |||
6 | int | 25 | int |
7 | nv10_fb_init(struct drm_device *dev) | 26 | nv10_fb_init(struct drm_device *dev) |
8 | { | 27 | { |
9 | uint32_t fb_bar_size; | 28 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
29 | struct nouveau_fb_engine *pfb = &dev_priv->engine.fb; | ||
10 | int i; | 30 | int i; |
11 | 31 | ||
12 | fb_bar_size = drm_get_resource_len(dev, 0) - 1; | 32 | pfb->num_tiles = NV10_PFB_TILE__SIZE; |
13 | for (i = 0; i < NV10_PFB_TILE__SIZE; i++) { | 33 | |
14 | nv_wr32(dev, NV10_PFB_TILE(i), 0); | 34 | /* Turn all the tiling regions off. */ |
15 | nv_wr32(dev, NV10_PFB_TLIMIT(i), fb_bar_size); | 35 | for (i = 0; i < pfb->num_tiles; i++) |
16 | } | 36 | pfb->set_region_tiling(dev, i, 0, 0, 0); |
17 | 37 | ||
18 | return 0; | 38 | return 0; |
19 | } | 39 | } |
diff --git a/drivers/gpu/drm/nouveau/nv10_graph.c b/drivers/gpu/drm/nouveau/nv10_graph.c index 6870e0ee2e7..fcf2cdd1949 100644 --- a/drivers/gpu/drm/nouveau/nv10_graph.c +++ b/drivers/gpu/drm/nouveau/nv10_graph.c | |||
@@ -807,6 +807,20 @@ void nv10_graph_destroy_context(struct nouveau_channel *chan) | |||
807 | chan->pgraph_ctx = NULL; | 807 | chan->pgraph_ctx = NULL; |
808 | } | 808 | } |
809 | 809 | ||
810 | void | ||
811 | nv10_graph_set_region_tiling(struct drm_device *dev, int i, uint32_t addr, | ||
812 | uint32_t size, uint32_t pitch) | ||
813 | { | ||
814 | uint32_t limit = max(1u, addr + size) - 1; | ||
815 | |||
816 | if (pitch) | ||
817 | addr |= 1 << 31; | ||
818 | |||
819 | nv_wr32(dev, NV10_PGRAPH_TLIMIT(i), limit); | ||
820 | nv_wr32(dev, NV10_PGRAPH_TSIZE(i), pitch); | ||
821 | nv_wr32(dev, NV10_PGRAPH_TILE(i), addr); | ||
822 | } | ||
823 | |||
810 | int nv10_graph_init(struct drm_device *dev) | 824 | int nv10_graph_init(struct drm_device *dev) |
811 | { | 825 | { |
812 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 826 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
@@ -838,17 +852,9 @@ int nv10_graph_init(struct drm_device *dev) | |||
838 | } else | 852 | } else |
839 | nv_wr32(dev, NV10_PGRAPH_DEBUG_4, 0x00000000); | 853 | nv_wr32(dev, NV10_PGRAPH_DEBUG_4, 0x00000000); |
840 | 854 | ||
841 | /* copy tile info from PFB */ | 855 | /* Turn all the tiling regions off. */ |
842 | for (i = 0; i < NV10_PFB_TILE__SIZE; i++) { | 856 | for (i = 0; i < NV10_PFB_TILE__SIZE; i++) |
843 | nv_wr32(dev, NV10_PGRAPH_TILE(i), | 857 | nv10_graph_set_region_tiling(dev, i, 0, 0, 0); |
844 | nv_rd32(dev, NV10_PFB_TILE(i))); | ||
845 | nv_wr32(dev, NV10_PGRAPH_TLIMIT(i), | ||
846 | nv_rd32(dev, NV10_PFB_TLIMIT(i))); | ||
847 | nv_wr32(dev, NV10_PGRAPH_TSIZE(i), | ||
848 | nv_rd32(dev, NV10_PFB_TSIZE(i))); | ||
849 | nv_wr32(dev, NV10_PGRAPH_TSTATUS(i), | ||
850 | nv_rd32(dev, NV10_PFB_TSTATUS(i))); | ||
851 | } | ||
852 | 858 | ||
853 | nv_wr32(dev, NV10_PGRAPH_CTX_SWITCH1, 0x00000000); | 859 | nv_wr32(dev, NV10_PGRAPH_CTX_SWITCH1, 0x00000000); |
854 | nv_wr32(dev, NV10_PGRAPH_CTX_SWITCH2, 0x00000000); | 860 | nv_wr32(dev, NV10_PGRAPH_CTX_SWITCH2, 0x00000000); |
diff --git a/drivers/gpu/drm/nouveau/nv17_tv.c b/drivers/gpu/drm/nouveau/nv17_tv.c index 81c01353a9f..58b917c3341 100644 --- a/drivers/gpu/drm/nouveau/nv17_tv.c +++ b/drivers/gpu/drm/nouveau/nv17_tv.c | |||
@@ -33,13 +33,103 @@ | |||
33 | #include "nouveau_hw.h" | 33 | #include "nouveau_hw.h" |
34 | #include "nv17_tv.h" | 34 | #include "nv17_tv.h" |
35 | 35 | ||
36 | enum drm_connector_status nv17_tv_detect(struct drm_encoder *encoder, | 36 | static uint32_t nv42_tv_sample_load(struct drm_encoder *encoder) |
37 | struct drm_connector *connector, | ||
38 | uint32_t pin_mask) | ||
39 | { | 37 | { |
38 | struct drm_device *dev = encoder->dev; | ||
39 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
40 | uint32_t testval, regoffset = nv04_dac_output_offset(encoder); | ||
41 | uint32_t gpio0, gpio1, fp_htotal, fp_hsync_start, fp_hsync_end, | ||
42 | fp_control, test_ctrl, dacclk, ctv_14, ctv_1c, ctv_6c; | ||
43 | uint32_t sample = 0; | ||
44 | int head; | ||
45 | |||
46 | #define RGB_TEST_DATA(r, g, b) (r << 0 | g << 10 | b << 20) | ||
47 | testval = RGB_TEST_DATA(0x82, 0xeb, 0x82); | ||
48 | if (dev_priv->vbios->tvdactestval) | ||
49 | testval = dev_priv->vbios->tvdactestval; | ||
50 | |||
51 | dacclk = NVReadRAMDAC(dev, 0, NV_PRAMDAC_DACCLK + regoffset); | ||
52 | head = (dacclk & 0x100) >> 8; | ||
53 | |||
54 | /* Save the previous state. */ | ||
55 | gpio1 = nv17_gpio_get(dev, DCB_GPIO_TVDAC1); | ||
56 | gpio0 = nv17_gpio_get(dev, DCB_GPIO_TVDAC0); | ||
57 | fp_htotal = NVReadRAMDAC(dev, head, NV_PRAMDAC_FP_HTOTAL); | ||
58 | fp_hsync_start = NVReadRAMDAC(dev, head, NV_PRAMDAC_FP_HSYNC_START); | ||
59 | fp_hsync_end = NVReadRAMDAC(dev, head, NV_PRAMDAC_FP_HSYNC_END); | ||
60 | fp_control = NVReadRAMDAC(dev, head, NV_PRAMDAC_FP_TG_CONTROL); | ||
61 | test_ctrl = NVReadRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + regoffset); | ||
62 | ctv_1c = NVReadRAMDAC(dev, head, 0x680c1c); | ||
63 | ctv_14 = NVReadRAMDAC(dev, head, 0x680c14); | ||
64 | ctv_6c = NVReadRAMDAC(dev, head, 0x680c6c); | ||
65 | |||
66 | /* Prepare the DAC for load detection. */ | ||
67 | nv17_gpio_set(dev, DCB_GPIO_TVDAC1, true); | ||
68 | nv17_gpio_set(dev, DCB_GPIO_TVDAC0, true); | ||
69 | |||
70 | NVWriteRAMDAC(dev, head, NV_PRAMDAC_FP_HTOTAL, 1343); | ||
71 | NVWriteRAMDAC(dev, head, NV_PRAMDAC_FP_HSYNC_START, 1047); | ||
72 | NVWriteRAMDAC(dev, head, NV_PRAMDAC_FP_HSYNC_END, 1183); | ||
73 | NVWriteRAMDAC(dev, head, NV_PRAMDAC_FP_TG_CONTROL, | ||
74 | NV_PRAMDAC_FP_TG_CONTROL_DISPEN_POS | | ||
75 | NV_PRAMDAC_FP_TG_CONTROL_WIDTH_12 | | ||
76 | NV_PRAMDAC_FP_TG_CONTROL_READ_PROG | | ||
77 | NV_PRAMDAC_FP_TG_CONTROL_HSYNC_POS | | ||
78 | NV_PRAMDAC_FP_TG_CONTROL_VSYNC_POS); | ||
79 | |||
80 | NVWriteRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + regoffset, 0); | ||
81 | |||
82 | NVWriteRAMDAC(dev, 0, NV_PRAMDAC_DACCLK + regoffset, | ||
83 | (dacclk & ~0xff) | 0x22); | ||
84 | msleep(1); | ||
85 | NVWriteRAMDAC(dev, 0, NV_PRAMDAC_DACCLK + regoffset, | ||
86 | (dacclk & ~0xff) | 0x21); | ||
87 | |||
88 | NVWriteRAMDAC(dev, head, 0x680c1c, 1 << 20); | ||
89 | NVWriteRAMDAC(dev, head, 0x680c14, 4 << 16); | ||
90 | |||
91 | /* Sample pin 0x4 (usually S-video luma). */ | ||
92 | NVWriteRAMDAC(dev, head, 0x680c6c, testval >> 10 & 0x3ff); | ||
93 | msleep(20); | ||
94 | sample |= NVReadRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + regoffset) | ||
95 | & 0x4 << 28; | ||
96 | |||
97 | /* Sample the remaining pins. */ | ||
98 | NVWriteRAMDAC(dev, head, 0x680c6c, testval & 0x3ff); | ||
99 | msleep(20); | ||
100 | sample |= NVReadRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + regoffset) | ||
101 | & 0xa << 28; | ||
102 | |||
103 | /* Restore the previous state. */ | ||
104 | NVWriteRAMDAC(dev, head, 0x680c1c, ctv_1c); | ||
105 | NVWriteRAMDAC(dev, head, 0x680c14, ctv_14); | ||
106 | NVWriteRAMDAC(dev, head, 0x680c6c, ctv_6c); | ||
107 | NVWriteRAMDAC(dev, 0, NV_PRAMDAC_DACCLK + regoffset, dacclk); | ||
108 | NVWriteRAMDAC(dev, 0, NV_PRAMDAC_TEST_CONTROL + regoffset, test_ctrl); | ||
109 | NVWriteRAMDAC(dev, head, NV_PRAMDAC_FP_TG_CONTROL, fp_control); | ||
110 | NVWriteRAMDAC(dev, head, NV_PRAMDAC_FP_HSYNC_END, fp_hsync_end); | ||
111 | NVWriteRAMDAC(dev, head, NV_PRAMDAC_FP_HSYNC_START, fp_hsync_start); | ||
112 | NVWriteRAMDAC(dev, head, NV_PRAMDAC_FP_HTOTAL, fp_htotal); | ||
113 | nv17_gpio_set(dev, DCB_GPIO_TVDAC1, gpio1); | ||
114 | nv17_gpio_set(dev, DCB_GPIO_TVDAC0, gpio0); | ||
115 | |||
116 | return sample; | ||
117 | } | ||
118 | |||
119 | static enum drm_connector_status | ||
120 | nv17_tv_detect(struct drm_encoder *encoder, struct drm_connector *connector) | ||
121 | { | ||
122 | struct drm_device *dev = encoder->dev; | ||
123 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
124 | struct drm_mode_config *conf = &dev->mode_config; | ||
40 | struct nv17_tv_encoder *tv_enc = to_tv_enc(encoder); | 125 | struct nv17_tv_encoder *tv_enc = to_tv_enc(encoder); |
126 | struct dcb_entry *dcb = tv_enc->base.dcb; | ||
41 | 127 | ||
42 | tv_enc->pin_mask = pin_mask >> 28 & 0xe; | 128 | if (dev_priv->chipset == 0x42 || |
129 | dev_priv->chipset == 0x43) | ||
130 | tv_enc->pin_mask = nv42_tv_sample_load(encoder) >> 28 & 0xe; | ||
131 | else | ||
132 | tv_enc->pin_mask = nv17_dac_sample_load(encoder) >> 28 & 0xe; | ||
43 | 133 | ||
44 | switch (tv_enc->pin_mask) { | 134 | switch (tv_enc->pin_mask) { |
45 | case 0x2: | 135 | case 0x2: |
@@ -50,7 +140,7 @@ enum drm_connector_status nv17_tv_detect(struct drm_encoder *encoder, | |||
50 | tv_enc->subconnector = DRM_MODE_SUBCONNECTOR_SVIDEO; | 140 | tv_enc->subconnector = DRM_MODE_SUBCONNECTOR_SVIDEO; |
51 | break; | 141 | break; |
52 | case 0xe: | 142 | case 0xe: |
53 | if (nouveau_encoder(encoder)->dcb->tvconf.has_component_output) | 143 | if (dcb->tvconf.has_component_output) |
54 | tv_enc->subconnector = DRM_MODE_SUBCONNECTOR_Component; | 144 | tv_enc->subconnector = DRM_MODE_SUBCONNECTOR_Component; |
55 | else | 145 | else |
56 | tv_enc->subconnector = DRM_MODE_SUBCONNECTOR_SCART; | 146 | tv_enc->subconnector = DRM_MODE_SUBCONNECTOR_SCART; |
@@ -61,11 +151,16 @@ enum drm_connector_status nv17_tv_detect(struct drm_encoder *encoder, | |||
61 | } | 151 | } |
62 | 152 | ||
63 | drm_connector_property_set_value(connector, | 153 | drm_connector_property_set_value(connector, |
64 | encoder->dev->mode_config.tv_subconnector_property, | 154 | conf->tv_subconnector_property, |
65 | tv_enc->subconnector); | 155 | tv_enc->subconnector); |
66 | 156 | ||
67 | return tv_enc->subconnector ? connector_status_connected : | 157 | if (tv_enc->subconnector) { |
68 | connector_status_disconnected; | 158 | NV_INFO(dev, "Load detected on output %c\n", |
159 | '@' + ffs(dcb->or)); | ||
160 | return connector_status_connected; | ||
161 | } else { | ||
162 | return connector_status_disconnected; | ||
163 | } | ||
69 | } | 164 | } |
70 | 165 | ||
71 | static const struct { | 166 | static const struct { |
@@ -633,7 +728,7 @@ static struct drm_encoder_helper_funcs nv17_tv_helper_funcs = { | |||
633 | .prepare = nv17_tv_prepare, | 728 | .prepare = nv17_tv_prepare, |
634 | .commit = nv17_tv_commit, | 729 | .commit = nv17_tv_commit, |
635 | .mode_set = nv17_tv_mode_set, | 730 | .mode_set = nv17_tv_mode_set, |
636 | .detect = nv17_dac_detect, | 731 | .detect = nv17_tv_detect, |
637 | }; | 732 | }; |
638 | 733 | ||
639 | static struct drm_encoder_slave_funcs nv17_tv_slave_funcs = { | 734 | static struct drm_encoder_slave_funcs nv17_tv_slave_funcs = { |
diff --git a/drivers/gpu/drm/nouveau/nv20_graph.c b/drivers/gpu/drm/nouveau/nv20_graph.c index 18ba74f1970..d6fc0a82f03 100644 --- a/drivers/gpu/drm/nouveau/nv20_graph.c +++ b/drivers/gpu/drm/nouveau/nv20_graph.c | |||
@@ -514,6 +514,27 @@ nv20_graph_rdi(struct drm_device *dev) | |||
514 | nouveau_wait_for_idle(dev); | 514 | nouveau_wait_for_idle(dev); |
515 | } | 515 | } |
516 | 516 | ||
517 | void | ||
518 | nv20_graph_set_region_tiling(struct drm_device *dev, int i, uint32_t addr, | ||
519 | uint32_t size, uint32_t pitch) | ||
520 | { | ||
521 | uint32_t limit = max(1u, addr + size) - 1; | ||
522 | |||
523 | if (pitch) | ||
524 | addr |= 1; | ||
525 | |||
526 | nv_wr32(dev, NV20_PGRAPH_TLIMIT(i), limit); | ||
527 | nv_wr32(dev, NV20_PGRAPH_TSIZE(i), pitch); | ||
528 | nv_wr32(dev, NV20_PGRAPH_TILE(i), addr); | ||
529 | |||
530 | nv_wr32(dev, NV10_PGRAPH_RDI_INDEX, 0x00EA0030 + 4 * i); | ||
531 | nv_wr32(dev, NV10_PGRAPH_RDI_DATA, limit); | ||
532 | nv_wr32(dev, NV10_PGRAPH_RDI_INDEX, 0x00EA0050 + 4 * i); | ||
533 | nv_wr32(dev, NV10_PGRAPH_RDI_DATA, pitch); | ||
534 | nv_wr32(dev, NV10_PGRAPH_RDI_INDEX, 0x00EA0010 + 4 * i); | ||
535 | nv_wr32(dev, NV10_PGRAPH_RDI_DATA, addr); | ||
536 | } | ||
537 | |||
517 | int | 538 | int |
518 | nv20_graph_init(struct drm_device *dev) | 539 | nv20_graph_init(struct drm_device *dev) |
519 | { | 540 | { |
@@ -572,27 +593,10 @@ nv20_graph_init(struct drm_device *dev) | |||
572 | nv_wr32(dev, NV10_PGRAPH_RDI_DATA , 0x00000030); | 593 | nv_wr32(dev, NV10_PGRAPH_RDI_DATA , 0x00000030); |
573 | } | 594 | } |
574 | 595 | ||
575 | /* copy tile info from PFB */ | 596 | /* Turn all the tiling regions off. */ |
576 | for (i = 0; i < NV10_PFB_TILE__SIZE; i++) { | 597 | for (i = 0; i < NV10_PFB_TILE__SIZE; i++) |
577 | nv_wr32(dev, 0x00400904 + i * 0x10, | 598 | nv20_graph_set_region_tiling(dev, i, 0, 0, 0); |
578 | nv_rd32(dev, NV10_PFB_TLIMIT(i))); | 599 | |
579 | /* which is NV40_PGRAPH_TLIMIT0(i) ?? */ | ||
580 | nv_wr32(dev, NV10_PGRAPH_RDI_INDEX, 0x00EA0030 + i * 4); | ||
581 | nv_wr32(dev, NV10_PGRAPH_RDI_DATA, | ||
582 | nv_rd32(dev, NV10_PFB_TLIMIT(i))); | ||
583 | nv_wr32(dev, 0x00400908 + i * 0x10, | ||
584 | nv_rd32(dev, NV10_PFB_TSIZE(i))); | ||
585 | /* which is NV40_PGRAPH_TSIZE0(i) ?? */ | ||
586 | nv_wr32(dev, NV10_PGRAPH_RDI_INDEX, 0x00EA0050 + i * 4); | ||
587 | nv_wr32(dev, NV10_PGRAPH_RDI_DATA, | ||
588 | nv_rd32(dev, NV10_PFB_TSIZE(i))); | ||
589 | nv_wr32(dev, 0x00400900 + i * 0x10, | ||
590 | nv_rd32(dev, NV10_PFB_TILE(i))); | ||
591 | /* which is NV40_PGRAPH_TILE0(i) ?? */ | ||
592 | nv_wr32(dev, NV10_PGRAPH_RDI_INDEX, 0x00EA0010 + i * 4); | ||
593 | nv_wr32(dev, NV10_PGRAPH_RDI_DATA, | ||
594 | nv_rd32(dev, NV10_PFB_TILE(i))); | ||
595 | } | ||
596 | for (i = 0; i < 8; i++) { | 600 | for (i = 0; i < 8; i++) { |
597 | nv_wr32(dev, 0x400980 + i * 4, nv_rd32(dev, 0x100300 + i * 4)); | 601 | nv_wr32(dev, 0x400980 + i * 4, nv_rd32(dev, 0x100300 + i * 4)); |
598 | nv_wr32(dev, NV10_PGRAPH_RDI_INDEX, 0x00EA0090 + i * 4); | 602 | nv_wr32(dev, NV10_PGRAPH_RDI_INDEX, 0x00EA0090 + i * 4); |
@@ -704,18 +708,9 @@ nv30_graph_init(struct drm_device *dev) | |||
704 | 708 | ||
705 | nv_wr32(dev, 0x4000c0, 0x00000016); | 709 | nv_wr32(dev, 0x4000c0, 0x00000016); |
706 | 710 | ||
707 | /* copy tile info from PFB */ | 711 | /* Turn all the tiling regions off. */ |
708 | for (i = 0; i < NV10_PFB_TILE__SIZE; i++) { | 712 | for (i = 0; i < NV10_PFB_TILE__SIZE; i++) |
709 | nv_wr32(dev, 0x00400904 + i * 0x10, | 713 | nv20_graph_set_region_tiling(dev, i, 0, 0, 0); |
710 | nv_rd32(dev, NV10_PFB_TLIMIT(i))); | ||
711 | /* which is NV40_PGRAPH_TLIMIT0(i) ?? */ | ||
712 | nv_wr32(dev, 0x00400908 + i * 0x10, | ||
713 | nv_rd32(dev, NV10_PFB_TSIZE(i))); | ||
714 | /* which is NV40_PGRAPH_TSIZE0(i) ?? */ | ||
715 | nv_wr32(dev, 0x00400900 + i * 0x10, | ||
716 | nv_rd32(dev, NV10_PFB_TILE(i))); | ||
717 | /* which is NV40_PGRAPH_TILE0(i) ?? */ | ||
718 | } | ||
719 | 714 | ||
720 | nv_wr32(dev, NV10_PGRAPH_CTX_CONTROL, 0x10000100); | 715 | nv_wr32(dev, NV10_PGRAPH_CTX_CONTROL, 0x10000100); |
721 | nv_wr32(dev, NV10_PGRAPH_STATE , 0xFFFFFFFF); | 716 | nv_wr32(dev, NV10_PGRAPH_STATE , 0xFFFFFFFF); |
diff --git a/drivers/gpu/drm/nouveau/nv40_fb.c b/drivers/gpu/drm/nouveau/nv40_fb.c index ca1d27107a8..3cd07d8d5bd 100644 --- a/drivers/gpu/drm/nouveau/nv40_fb.c +++ b/drivers/gpu/drm/nouveau/nv40_fb.c | |||
@@ -3,12 +3,37 @@ | |||
3 | #include "nouveau_drv.h" | 3 | #include "nouveau_drv.h" |
4 | #include "nouveau_drm.h" | 4 | #include "nouveau_drm.h" |
5 | 5 | ||
6 | void | ||
7 | nv40_fb_set_region_tiling(struct drm_device *dev, int i, uint32_t addr, | ||
8 | uint32_t size, uint32_t pitch) | ||
9 | { | ||
10 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
11 | uint32_t limit = max(1u, addr + size) - 1; | ||
12 | |||
13 | if (pitch) | ||
14 | addr |= 1; | ||
15 | |||
16 | switch (dev_priv->chipset) { | ||
17 | case 0x40: | ||
18 | nv_wr32(dev, NV10_PFB_TLIMIT(i), limit); | ||
19 | nv_wr32(dev, NV10_PFB_TSIZE(i), pitch); | ||
20 | nv_wr32(dev, NV10_PFB_TILE(i), addr); | ||
21 | break; | ||
22 | |||
23 | default: | ||
24 | nv_wr32(dev, NV40_PFB_TLIMIT(i), limit); | ||
25 | nv_wr32(dev, NV40_PFB_TSIZE(i), pitch); | ||
26 | nv_wr32(dev, NV40_PFB_TILE(i), addr); | ||
27 | break; | ||
28 | } | ||
29 | } | ||
30 | |||
6 | int | 31 | int |
7 | nv40_fb_init(struct drm_device *dev) | 32 | nv40_fb_init(struct drm_device *dev) |
8 | { | 33 | { |
9 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 34 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
10 | uint32_t fb_bar_size, tmp; | 35 | struct nouveau_fb_engine *pfb = &dev_priv->engine.fb; |
11 | int num_tiles; | 36 | uint32_t tmp; |
12 | int i; | 37 | int i; |
13 | 38 | ||
14 | /* This is strictly a NV4x register (don't know about NV5x). */ | 39 | /* This is strictly a NV4x register (don't know about NV5x). */ |
@@ -23,35 +48,23 @@ nv40_fb_init(struct drm_device *dev) | |||
23 | case 0x45: | 48 | case 0x45: |
24 | tmp = nv_rd32(dev, NV10_PFB_CLOSE_PAGE2); | 49 | tmp = nv_rd32(dev, NV10_PFB_CLOSE_PAGE2); |
25 | nv_wr32(dev, NV10_PFB_CLOSE_PAGE2, tmp & ~(1 << 15)); | 50 | nv_wr32(dev, NV10_PFB_CLOSE_PAGE2, tmp & ~(1 << 15)); |
26 | num_tiles = NV10_PFB_TILE__SIZE; | 51 | pfb->num_tiles = NV10_PFB_TILE__SIZE; |
27 | break; | 52 | break; |
28 | case 0x46: /* G72 */ | 53 | case 0x46: /* G72 */ |
29 | case 0x47: /* G70 */ | 54 | case 0x47: /* G70 */ |
30 | case 0x49: /* G71 */ | 55 | case 0x49: /* G71 */ |
31 | case 0x4b: /* G73 */ | 56 | case 0x4b: /* G73 */ |
32 | case 0x4c: /* C51 (G7X version) */ | 57 | case 0x4c: /* C51 (G7X version) */ |
33 | num_tiles = NV40_PFB_TILE__SIZE_1; | 58 | pfb->num_tiles = NV40_PFB_TILE__SIZE_1; |
34 | break; | 59 | break; |
35 | default: | 60 | default: |
36 | num_tiles = NV40_PFB_TILE__SIZE_0; | 61 | pfb->num_tiles = NV40_PFB_TILE__SIZE_0; |
37 | break; | 62 | break; |
38 | } | 63 | } |
39 | 64 | ||
40 | fb_bar_size = drm_get_resource_len(dev, 0) - 1; | 65 | /* Turn all the tiling regions off. */ |
41 | switch (dev_priv->chipset) { | 66 | for (i = 0; i < pfb->num_tiles; i++) |
42 | case 0x40: | 67 | pfb->set_region_tiling(dev, i, 0, 0, 0); |
43 | for (i = 0; i < num_tiles; i++) { | ||
44 | nv_wr32(dev, NV10_PFB_TILE(i), 0); | ||
45 | nv_wr32(dev, NV10_PFB_TLIMIT(i), fb_bar_size); | ||
46 | } | ||
47 | break; | ||
48 | default: | ||
49 | for (i = 0; i < num_tiles; i++) { | ||
50 | nv_wr32(dev, NV40_PFB_TILE(i), 0); | ||
51 | nv_wr32(dev, NV40_PFB_TLIMIT(i), fb_bar_size); | ||
52 | } | ||
53 | break; | ||
54 | } | ||
55 | 68 | ||
56 | return 0; | 69 | return 0; |
57 | } | 70 | } |
diff --git a/drivers/gpu/drm/nouveau/nv40_graph.c b/drivers/gpu/drm/nouveau/nv40_graph.c index 2b332bb55ac..53e8afe1dcd 100644 --- a/drivers/gpu/drm/nouveau/nv40_graph.c +++ b/drivers/gpu/drm/nouveau/nv40_graph.c | |||
@@ -181,6 +181,48 @@ nv40_graph_unload_context(struct drm_device *dev) | |||
181 | return ret; | 181 | return ret; |
182 | } | 182 | } |
183 | 183 | ||
184 | void | ||
185 | nv40_graph_set_region_tiling(struct drm_device *dev, int i, uint32_t addr, | ||
186 | uint32_t size, uint32_t pitch) | ||
187 | { | ||
188 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
189 | uint32_t limit = max(1u, addr + size) - 1; | ||
190 | |||
191 | if (pitch) | ||
192 | addr |= 1; | ||
193 | |||
194 | switch (dev_priv->chipset) { | ||
195 | case 0x44: | ||
196 | case 0x4a: | ||
197 | case 0x4e: | ||
198 | nv_wr32(dev, NV20_PGRAPH_TSIZE(i), pitch); | ||
199 | nv_wr32(dev, NV20_PGRAPH_TLIMIT(i), limit); | ||
200 | nv_wr32(dev, NV20_PGRAPH_TILE(i), addr); | ||
201 | break; | ||
202 | |||
203 | case 0x46: | ||
204 | case 0x47: | ||
205 | case 0x49: | ||
206 | case 0x4b: | ||
207 | nv_wr32(dev, NV47_PGRAPH_TSIZE(i), pitch); | ||
208 | nv_wr32(dev, NV47_PGRAPH_TLIMIT(i), limit); | ||
209 | nv_wr32(dev, NV47_PGRAPH_TILE(i), addr); | ||
210 | nv_wr32(dev, NV40_PGRAPH_TSIZE1(i), pitch); | ||
211 | nv_wr32(dev, NV40_PGRAPH_TLIMIT1(i), limit); | ||
212 | nv_wr32(dev, NV40_PGRAPH_TILE1(i), addr); | ||
213 | break; | ||
214 | |||
215 | default: | ||
216 | nv_wr32(dev, NV20_PGRAPH_TSIZE(i), pitch); | ||
217 | nv_wr32(dev, NV20_PGRAPH_TLIMIT(i), limit); | ||
218 | nv_wr32(dev, NV20_PGRAPH_TILE(i), addr); | ||
219 | nv_wr32(dev, NV40_PGRAPH_TSIZE1(i), pitch); | ||
220 | nv_wr32(dev, NV40_PGRAPH_TLIMIT1(i), limit); | ||
221 | nv_wr32(dev, NV40_PGRAPH_TILE1(i), addr); | ||
222 | break; | ||
223 | } | ||
224 | } | ||
225 | |||
184 | /* | 226 | /* |
185 | * G70 0x47 | 227 | * G70 0x47 |
186 | * G71 0x49 | 228 | * G71 0x49 |
@@ -195,7 +237,8 @@ nv40_graph_init(struct drm_device *dev) | |||
195 | { | 237 | { |
196 | struct drm_nouveau_private *dev_priv = | 238 | struct drm_nouveau_private *dev_priv = |
197 | (struct drm_nouveau_private *)dev->dev_private; | 239 | (struct drm_nouveau_private *)dev->dev_private; |
198 | uint32_t vramsz, tmp; | 240 | struct nouveau_fb_engine *pfb = &dev_priv->engine.fb; |
241 | uint32_t vramsz; | ||
199 | int i, j; | 242 | int i, j; |
200 | 243 | ||
201 | nv_wr32(dev, NV03_PMC_ENABLE, nv_rd32(dev, NV03_PMC_ENABLE) & | 244 | nv_wr32(dev, NV03_PMC_ENABLE, nv_rd32(dev, NV03_PMC_ENABLE) & |
@@ -292,74 +335,9 @@ nv40_graph_init(struct drm_device *dev) | |||
292 | nv_wr32(dev, 0x400b38, 0x2ffff800); | 335 | nv_wr32(dev, 0x400b38, 0x2ffff800); |
293 | nv_wr32(dev, 0x400b3c, 0x00006000); | 336 | nv_wr32(dev, 0x400b3c, 0x00006000); |
294 | 337 | ||
295 | /* copy tile info from PFB */ | 338 | /* Turn all the tiling regions off. */ |
296 | switch (dev_priv->chipset) { | 339 | for (i = 0; i < pfb->num_tiles; i++) |
297 | case 0x40: /* vanilla NV40 */ | 340 | nv40_graph_set_region_tiling(dev, i, 0, 0, 0); |
298 | for (i = 0; i < NV10_PFB_TILE__SIZE; i++) { | ||
299 | tmp = nv_rd32(dev, NV10_PFB_TILE(i)); | ||
300 | nv_wr32(dev, NV40_PGRAPH_TILE0(i), tmp); | ||
301 | nv_wr32(dev, NV40_PGRAPH_TILE1(i), tmp); | ||
302 | tmp = nv_rd32(dev, NV10_PFB_TLIMIT(i)); | ||
303 | nv_wr32(dev, NV40_PGRAPH_TLIMIT0(i), tmp); | ||
304 | nv_wr32(dev, NV40_PGRAPH_TLIMIT1(i), tmp); | ||
305 | tmp = nv_rd32(dev, NV10_PFB_TSIZE(i)); | ||
306 | nv_wr32(dev, NV40_PGRAPH_TSIZE0(i), tmp); | ||
307 | nv_wr32(dev, NV40_PGRAPH_TSIZE1(i), tmp); | ||
308 | tmp = nv_rd32(dev, NV10_PFB_TSTATUS(i)); | ||
309 | nv_wr32(dev, NV40_PGRAPH_TSTATUS0(i), tmp); | ||
310 | nv_wr32(dev, NV40_PGRAPH_TSTATUS1(i), tmp); | ||
311 | } | ||
312 | break; | ||
313 | case 0x44: | ||
314 | case 0x4a: | ||
315 | case 0x4e: /* NV44-based cores don't have 0x406900? */ | ||
316 | for (i = 0; i < NV40_PFB_TILE__SIZE_0; i++) { | ||
317 | tmp = nv_rd32(dev, NV40_PFB_TILE(i)); | ||
318 | nv_wr32(dev, NV40_PGRAPH_TILE0(i), tmp); | ||
319 | tmp = nv_rd32(dev, NV40_PFB_TLIMIT(i)); | ||
320 | nv_wr32(dev, NV40_PGRAPH_TLIMIT0(i), tmp); | ||
321 | tmp = nv_rd32(dev, NV40_PFB_TSIZE(i)); | ||
322 | nv_wr32(dev, NV40_PGRAPH_TSIZE0(i), tmp); | ||
323 | tmp = nv_rd32(dev, NV40_PFB_TSTATUS(i)); | ||
324 | nv_wr32(dev, NV40_PGRAPH_TSTATUS0(i), tmp); | ||
325 | } | ||
326 | break; | ||
327 | case 0x46: | ||
328 | case 0x47: | ||
329 | case 0x49: | ||
330 | case 0x4b: /* G7X-based cores */ | ||
331 | for (i = 0; i < NV40_PFB_TILE__SIZE_1; i++) { | ||
332 | tmp = nv_rd32(dev, NV40_PFB_TILE(i)); | ||
333 | nv_wr32(dev, NV47_PGRAPH_TILE0(i), tmp); | ||
334 | nv_wr32(dev, NV40_PGRAPH_TILE1(i), tmp); | ||
335 | tmp = nv_rd32(dev, NV40_PFB_TLIMIT(i)); | ||
336 | nv_wr32(dev, NV47_PGRAPH_TLIMIT0(i), tmp); | ||
337 | nv_wr32(dev, NV40_PGRAPH_TLIMIT1(i), tmp); | ||
338 | tmp = nv_rd32(dev, NV40_PFB_TSIZE(i)); | ||
339 | nv_wr32(dev, NV47_PGRAPH_TSIZE0(i), tmp); | ||
340 | nv_wr32(dev, NV40_PGRAPH_TSIZE1(i), tmp); | ||
341 | tmp = nv_rd32(dev, NV40_PFB_TSTATUS(i)); | ||
342 | nv_wr32(dev, NV47_PGRAPH_TSTATUS0(i), tmp); | ||
343 | nv_wr32(dev, NV40_PGRAPH_TSTATUS1(i), tmp); | ||
344 | } | ||
345 | break; | ||
346 | default: /* everything else */ | ||
347 | for (i = 0; i < NV40_PFB_TILE__SIZE_0; i++) { | ||
348 | tmp = nv_rd32(dev, NV40_PFB_TILE(i)); | ||
349 | nv_wr32(dev, NV40_PGRAPH_TILE0(i), tmp); | ||
350 | nv_wr32(dev, NV40_PGRAPH_TILE1(i), tmp); | ||
351 | tmp = nv_rd32(dev, NV40_PFB_TLIMIT(i)); | ||
352 | nv_wr32(dev, NV40_PGRAPH_TLIMIT0(i), tmp); | ||
353 | nv_wr32(dev, NV40_PGRAPH_TLIMIT1(i), tmp); | ||
354 | tmp = nv_rd32(dev, NV40_PFB_TSIZE(i)); | ||
355 | nv_wr32(dev, NV40_PGRAPH_TSIZE0(i), tmp); | ||
356 | nv_wr32(dev, NV40_PGRAPH_TSIZE1(i), tmp); | ||
357 | tmp = nv_rd32(dev, NV40_PFB_TSTATUS(i)); | ||
358 | nv_wr32(dev, NV40_PGRAPH_TSTATUS0(i), tmp); | ||
359 | nv_wr32(dev, NV40_PGRAPH_TSTATUS1(i), tmp); | ||
360 | } | ||
361 | break; | ||
362 | } | ||
363 | 341 | ||
364 | /* begin RAM config */ | 342 | /* begin RAM config */ |
365 | vramsz = drm_get_resource_len(dev, 0) - 1; | 343 | vramsz = drm_get_resource_len(dev, 0) - 1; |
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c index a9263d92a23..90f0bf59fbc 100644 --- a/drivers/gpu/drm/nouveau/nv50_display.c +++ b/drivers/gpu/drm/nouveau/nv50_display.c | |||
@@ -690,9 +690,21 @@ nv50_display_script_select(struct drm_device *dev, struct dcb_entry *dcbent, | |||
690 | int pxclk) | 690 | int pxclk) |
691 | { | 691 | { |
692 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 692 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
693 | struct nouveau_connector *nv_connector = NULL; | ||
694 | struct drm_encoder *encoder; | ||
693 | struct nvbios *bios = &dev_priv->VBIOS; | 695 | struct nvbios *bios = &dev_priv->VBIOS; |
694 | uint32_t mc, script = 0, or; | 696 | uint32_t mc, script = 0, or; |
695 | 697 | ||
698 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { | ||
699 | struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); | ||
700 | |||
701 | if (nv_encoder->dcb != dcbent) | ||
702 | continue; | ||
703 | |||
704 | nv_connector = nouveau_encoder_connector_get(nv_encoder); | ||
705 | break; | ||
706 | } | ||
707 | |||
696 | or = ffs(dcbent->or) - 1; | 708 | or = ffs(dcbent->or) - 1; |
697 | mc = nv50_display_mode_ctrl(dev, dcbent->type != OUTPUT_ANALOG, or); | 709 | mc = nv50_display_mode_ctrl(dev, dcbent->type != OUTPUT_ANALOG, or); |
698 | switch (dcbent->type) { | 710 | switch (dcbent->type) { |
@@ -711,6 +723,11 @@ nv50_display_script_select(struct drm_device *dev, struct dcb_entry *dcbent, | |||
711 | } else | 723 | } else |
712 | if (bios->fp.strapless_is_24bit & 1) | 724 | if (bios->fp.strapless_is_24bit & 1) |
713 | script |= 0x0200; | 725 | script |= 0x0200; |
726 | |||
727 | if (nv_connector && nv_connector->edid && | ||
728 | (nv_connector->edid->revision >= 4) && | ||
729 | (nv_connector->edid->input & 0x70) >= 0x20) | ||
730 | script |= 0x0200; | ||
714 | } | 731 | } |
715 | 732 | ||
716 | if (nouveau_uscript_lvds >= 0) { | 733 | if (nouveau_uscript_lvds >= 0) { |
diff --git a/drivers/gpu/drm/nouveau/nv50_fbcon.c b/drivers/gpu/drm/nouveau/nv50_fbcon.c index 6bcc6d39e9b..e4f279ee61c 100644 --- a/drivers/gpu/drm/nouveau/nv50_fbcon.c +++ b/drivers/gpu/drm/nouveau/nv50_fbcon.c | |||
@@ -16,9 +16,7 @@ nv50_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect) | |||
16 | 16 | ||
17 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && | 17 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && |
18 | RING_SPACE(chan, rect->rop == ROP_COPY ? 7 : 11)) { | 18 | RING_SPACE(chan, rect->rop == ROP_COPY ? 7 : 11)) { |
19 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | 19 | nouveau_fbcon_gpu_lockup(info); |
20 | |||
21 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
22 | } | 20 | } |
23 | 21 | ||
24 | if (info->flags & FBINFO_HWACCEL_DISABLED) { | 22 | if (info->flags & FBINFO_HWACCEL_DISABLED) { |
@@ -31,7 +29,11 @@ nv50_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect) | |||
31 | OUT_RING(chan, 1); | 29 | OUT_RING(chan, 1); |
32 | } | 30 | } |
33 | BEGIN_RING(chan, NvSub2D, 0x0588, 1); | 31 | BEGIN_RING(chan, NvSub2D, 0x0588, 1); |
34 | OUT_RING(chan, rect->color); | 32 | if (info->fix.visual == FB_VISUAL_TRUECOLOR || |
33 | info->fix.visual == FB_VISUAL_DIRECTCOLOR) | ||
34 | OUT_RING(chan, ((uint32_t *)info->pseudo_palette)[rect->color]); | ||
35 | else | ||
36 | OUT_RING(chan, rect->color); | ||
35 | BEGIN_RING(chan, NvSub2D, 0x0600, 4); | 37 | BEGIN_RING(chan, NvSub2D, 0x0600, 4); |
36 | OUT_RING(chan, rect->dx); | 38 | OUT_RING(chan, rect->dx); |
37 | OUT_RING(chan, rect->dy); | 39 | OUT_RING(chan, rect->dy); |
@@ -56,9 +58,7 @@ nv50_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region) | |||
56 | return; | 58 | return; |
57 | 59 | ||
58 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 12)) { | 60 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 12)) { |
59 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | 61 | nouveau_fbcon_gpu_lockup(info); |
60 | |||
61 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
62 | } | 62 | } |
63 | 63 | ||
64 | if (info->flags & FBINFO_HWACCEL_DISABLED) { | 64 | if (info->flags & FBINFO_HWACCEL_DISABLED) { |
@@ -101,8 +101,7 @@ nv50_fbcon_imageblit(struct fb_info *info, const struct fb_image *image) | |||
101 | } | 101 | } |
102 | 102 | ||
103 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 11)) { | 103 | if (!(info->flags & FBINFO_HWACCEL_DISABLED) && RING_SPACE(chan, 11)) { |
104 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | 104 | nouveau_fbcon_gpu_lockup(info); |
105 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
106 | } | 105 | } |
107 | 106 | ||
108 | if (info->flags & FBINFO_HWACCEL_DISABLED) { | 107 | if (info->flags & FBINFO_HWACCEL_DISABLED) { |
@@ -135,9 +134,7 @@ nv50_fbcon_imageblit(struct fb_info *info, const struct fb_image *image) | |||
135 | int push = dwords > 2047 ? 2047 : dwords; | 134 | int push = dwords > 2047 ? 2047 : dwords; |
136 | 135 | ||
137 | if (RING_SPACE(chan, push + 1)) { | 136 | if (RING_SPACE(chan, push + 1)) { |
138 | NV_ERROR(dev, | 137 | nouveau_fbcon_gpu_lockup(info); |
139 | "GPU lockup - switching to software fbcon\n"); | ||
140 | info->flags |= FBINFO_HWACCEL_DISABLED; | ||
141 | cfb_imageblit(info, image); | 138 | cfb_imageblit(info, image); |
142 | return; | 139 | return; |
143 | } | 140 | } |
@@ -199,7 +196,7 @@ nv50_fbcon_accel_init(struct fb_info *info) | |||
199 | 196 | ||
200 | ret = RING_SPACE(chan, 59); | 197 | ret = RING_SPACE(chan, 59); |
201 | if (ret) { | 198 | if (ret) { |
202 | NV_ERROR(dev, "GPU lockup - switching to software fbcon\n"); | 199 | nouveau_fbcon_gpu_lockup(info); |
203 | return ret; | 200 | return ret; |
204 | } | 201 | } |
205 | 202 | ||
diff --git a/drivers/gpu/drm/nouveau/nv50_fifo.c b/drivers/gpu/drm/nouveau/nv50_fifo.c index b7282284f08..39caf167587 100644 --- a/drivers/gpu/drm/nouveau/nv50_fifo.c +++ b/drivers/gpu/drm/nouveau/nv50_fifo.c | |||
@@ -384,8 +384,8 @@ nv50_fifo_load_context(struct nouveau_channel *chan) | |||
384 | nv_wr32(dev, NV40_PFIFO_CACHE1_DATA(ptr), | 384 | nv_wr32(dev, NV40_PFIFO_CACHE1_DATA(ptr), |
385 | nv_ro32(dev, cache, (ptr * 2) + 1)); | 385 | nv_ro32(dev, cache, (ptr * 2) + 1)); |
386 | } | 386 | } |
387 | nv_wr32(dev, 0x3210, cnt << 2); | 387 | nv_wr32(dev, NV03_PFIFO_CACHE1_PUT, cnt << 2); |
388 | nv_wr32(dev, 0x3270, 0); | 388 | nv_wr32(dev, NV03_PFIFO_CACHE1_GET, 0); |
389 | 389 | ||
390 | /* guessing that all the 0x34xx regs aren't on NV50 */ | 390 | /* guessing that all the 0x34xx regs aren't on NV50 */ |
391 | if (!IS_G80) { | 391 | if (!IS_G80) { |
@@ -398,8 +398,6 @@ nv50_fifo_load_context(struct nouveau_channel *chan) | |||
398 | 398 | ||
399 | dev_priv->engine.instmem.finish_access(dev); | 399 | dev_priv->engine.instmem.finish_access(dev); |
400 | 400 | ||
401 | nv_wr32(dev, NV03_PFIFO_CACHE1_GET, 0); | ||
402 | nv_wr32(dev, NV03_PFIFO_CACHE1_PUT, 0); | ||
403 | nv_wr32(dev, NV03_PFIFO_CACHE1_PUSH1, chan->id | (1<<16)); | 401 | nv_wr32(dev, NV03_PFIFO_CACHE1_PUSH1, chan->id | (1<<16)); |
404 | return 0; | 402 | return 0; |
405 | } | 403 | } |
diff --git a/drivers/gpu/drm/radeon/Makefile b/drivers/gpu/drm/radeon/Makefile index b5f5fe75e6a..1cc7b937b1e 100644 --- a/drivers/gpu/drm/radeon/Makefile +++ b/drivers/gpu/drm/radeon/Makefile | |||
@@ -24,6 +24,9 @@ $(obj)/rv515_reg_safe.h: $(src)/reg_srcs/rv515 $(obj)/mkregtable | |||
24 | $(obj)/r300_reg_safe.h: $(src)/reg_srcs/r300 $(obj)/mkregtable | 24 | $(obj)/r300_reg_safe.h: $(src)/reg_srcs/r300 $(obj)/mkregtable |
25 | $(call if_changed,mkregtable) | 25 | $(call if_changed,mkregtable) |
26 | 26 | ||
27 | $(obj)/r420_reg_safe.h: $(src)/reg_srcs/r420 $(obj)/mkregtable | ||
28 | $(call if_changed,mkregtable) | ||
29 | |||
27 | $(obj)/rs600_reg_safe.h: $(src)/reg_srcs/rs600 $(obj)/mkregtable | 30 | $(obj)/rs600_reg_safe.h: $(src)/reg_srcs/rs600 $(obj)/mkregtable |
28 | $(call if_changed,mkregtable) | 31 | $(call if_changed,mkregtable) |
29 | 32 | ||
@@ -35,6 +38,8 @@ $(obj)/rv515.o: $(obj)/rv515_reg_safe.h | |||
35 | 38 | ||
36 | $(obj)/r300.o: $(obj)/r300_reg_safe.h | 39 | $(obj)/r300.o: $(obj)/r300_reg_safe.h |
37 | 40 | ||
41 | $(obj)/r420.o: $(obj)/r420_reg_safe.h | ||
42 | |||
38 | $(obj)/rs600.o: $(obj)/rs600_reg_safe.h | 43 | $(obj)/rs600.o: $(obj)/rs600_reg_safe.h |
39 | 44 | ||
40 | radeon-y := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o \ | 45 | radeon-y := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o \ |
diff --git a/drivers/gpu/drm/radeon/ObjectID.h b/drivers/gpu/drm/radeon/ObjectID.h index 6d0183c61d3..c714179d1bf 100644 --- a/drivers/gpu/drm/radeon/ObjectID.h +++ b/drivers/gpu/drm/radeon/ObjectID.h | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright 2006-2007 Advanced Micro Devices, Inc. | 2 | * Copyright 2006-2007 Advanced Micro Devices, Inc. |
3 | * | 3 | * |
4 | * Permission is hereby granted, free of charge, to any person obtaining a | 4 | * Permission is hereby granted, free of charge, to any person obtaining a |
5 | * copy of this software and associated documentation files (the "Software"), | 5 | * copy of this software and associated documentation files (the "Software"), |
@@ -41,14 +41,14 @@ | |||
41 | /****************************************************/ | 41 | /****************************************************/ |
42 | /* Encoder Object ID Definition */ | 42 | /* Encoder Object ID Definition */ |
43 | /****************************************************/ | 43 | /****************************************************/ |
44 | #define ENCODER_OBJECT_ID_NONE 0x00 | 44 | #define ENCODER_OBJECT_ID_NONE 0x00 |
45 | 45 | ||
46 | /* Radeon Class Display Hardware */ | 46 | /* Radeon Class Display Hardware */ |
47 | #define ENCODER_OBJECT_ID_INTERNAL_LVDS 0x01 | 47 | #define ENCODER_OBJECT_ID_INTERNAL_LVDS 0x01 |
48 | #define ENCODER_OBJECT_ID_INTERNAL_TMDS1 0x02 | 48 | #define ENCODER_OBJECT_ID_INTERNAL_TMDS1 0x02 |
49 | #define ENCODER_OBJECT_ID_INTERNAL_TMDS2 0x03 | 49 | #define ENCODER_OBJECT_ID_INTERNAL_TMDS2 0x03 |
50 | #define ENCODER_OBJECT_ID_INTERNAL_DAC1 0x04 | 50 | #define ENCODER_OBJECT_ID_INTERNAL_DAC1 0x04 |
51 | #define ENCODER_OBJECT_ID_INTERNAL_DAC2 0x05 /* TV/CV DAC */ | 51 | #define ENCODER_OBJECT_ID_INTERNAL_DAC2 0x05 /* TV/CV DAC */ |
52 | #define ENCODER_OBJECT_ID_INTERNAL_SDVOA 0x06 | 52 | #define ENCODER_OBJECT_ID_INTERNAL_SDVOA 0x06 |
53 | #define ENCODER_OBJECT_ID_INTERNAL_SDVOB 0x07 | 53 | #define ENCODER_OBJECT_ID_INTERNAL_SDVOB 0x07 |
54 | 54 | ||
@@ -56,11 +56,11 @@ | |||
56 | #define ENCODER_OBJECT_ID_SI170B 0x08 | 56 | #define ENCODER_OBJECT_ID_SI170B 0x08 |
57 | #define ENCODER_OBJECT_ID_CH7303 0x09 | 57 | #define ENCODER_OBJECT_ID_CH7303 0x09 |
58 | #define ENCODER_OBJECT_ID_CH7301 0x0A | 58 | #define ENCODER_OBJECT_ID_CH7301 0x0A |
59 | #define ENCODER_OBJECT_ID_INTERNAL_DVO1 0x0B /* This belongs to Radeon Class Display Hardware */ | 59 | #define ENCODER_OBJECT_ID_INTERNAL_DVO1 0x0B /* This belongs to Radeon Class Display Hardware */ |
60 | #define ENCODER_OBJECT_ID_EXTERNAL_SDVOA 0x0C | 60 | #define ENCODER_OBJECT_ID_EXTERNAL_SDVOA 0x0C |
61 | #define ENCODER_OBJECT_ID_EXTERNAL_SDVOB 0x0D | 61 | #define ENCODER_OBJECT_ID_EXTERNAL_SDVOB 0x0D |
62 | #define ENCODER_OBJECT_ID_TITFP513 0x0E | 62 | #define ENCODER_OBJECT_ID_TITFP513 0x0E |
63 | #define ENCODER_OBJECT_ID_INTERNAL_LVTM1 0x0F /* not used for Radeon */ | 63 | #define ENCODER_OBJECT_ID_INTERNAL_LVTM1 0x0F /* not used for Radeon */ |
64 | #define ENCODER_OBJECT_ID_VT1623 0x10 | 64 | #define ENCODER_OBJECT_ID_VT1623 0x10 |
65 | #define ENCODER_OBJECT_ID_HDMI_SI1930 0x11 | 65 | #define ENCODER_OBJECT_ID_HDMI_SI1930 0x11 |
66 | #define ENCODER_OBJECT_ID_HDMI_INTERNAL 0x12 | 66 | #define ENCODER_OBJECT_ID_HDMI_INTERNAL 0x12 |
@@ -68,9 +68,9 @@ | |||
68 | #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1 0x13 | 68 | #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1 0x13 |
69 | #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1 0x14 | 69 | #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1 0x14 |
70 | #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1 0x15 | 70 | #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1 0x15 |
71 | #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2 0x16 /* Shared with CV/TV and CRT */ | 71 | #define ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2 0x16 /* Shared with CV/TV and CRT */ |
72 | #define ENCODER_OBJECT_ID_SI178 0X17 /* External TMDS (dual link, no HDCP.) */ | 72 | #define ENCODER_OBJECT_ID_SI178 0X17 /* External TMDS (dual link, no HDCP.) */ |
73 | #define ENCODER_OBJECT_ID_MVPU_FPGA 0x18 /* MVPU FPGA chip */ | 73 | #define ENCODER_OBJECT_ID_MVPU_FPGA 0x18 /* MVPU FPGA chip */ |
74 | #define ENCODER_OBJECT_ID_INTERNAL_DDI 0x19 | 74 | #define ENCODER_OBJECT_ID_INTERNAL_DDI 0x19 |
75 | #define ENCODER_OBJECT_ID_VT1625 0x1A | 75 | #define ENCODER_OBJECT_ID_VT1625 0x1A |
76 | #define ENCODER_OBJECT_ID_HDMI_SI1932 0x1B | 76 | #define ENCODER_OBJECT_ID_HDMI_SI1932 0x1B |
@@ -86,7 +86,7 @@ | |||
86 | /****************************************************/ | 86 | /****************************************************/ |
87 | /* Connector Object ID Definition */ | 87 | /* Connector Object ID Definition */ |
88 | /****************************************************/ | 88 | /****************************************************/ |
89 | #define CONNECTOR_OBJECT_ID_NONE 0x00 | 89 | #define CONNECTOR_OBJECT_ID_NONE 0x00 |
90 | #define CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I 0x01 | 90 | #define CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I 0x01 |
91 | #define CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I 0x02 | 91 | #define CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I 0x02 |
92 | #define CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D 0x03 | 92 | #define CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D 0x03 |
@@ -96,7 +96,7 @@ | |||
96 | #define CONNECTOR_OBJECT_ID_SVIDEO 0x07 | 96 | #define CONNECTOR_OBJECT_ID_SVIDEO 0x07 |
97 | #define CONNECTOR_OBJECT_ID_YPbPr 0x08 | 97 | #define CONNECTOR_OBJECT_ID_YPbPr 0x08 |
98 | #define CONNECTOR_OBJECT_ID_D_CONNECTOR 0x09 | 98 | #define CONNECTOR_OBJECT_ID_D_CONNECTOR 0x09 |
99 | #define CONNECTOR_OBJECT_ID_9PIN_DIN 0x0A /* Supports both CV & TV */ | 99 | #define CONNECTOR_OBJECT_ID_9PIN_DIN 0x0A /* Supports both CV & TV */ |
100 | #define CONNECTOR_OBJECT_ID_SCART 0x0B | 100 | #define CONNECTOR_OBJECT_ID_SCART 0x0B |
101 | #define CONNECTOR_OBJECT_ID_HDMI_TYPE_A 0x0C | 101 | #define CONNECTOR_OBJECT_ID_HDMI_TYPE_A 0x0C |
102 | #define CONNECTOR_OBJECT_ID_HDMI_TYPE_B 0x0D | 102 | #define CONNECTOR_OBJECT_ID_HDMI_TYPE_B 0x0D |
@@ -106,6 +106,8 @@ | |||
106 | #define CONNECTOR_OBJECT_ID_CROSSFIRE 0x11 | 106 | #define CONNECTOR_OBJECT_ID_CROSSFIRE 0x11 |
107 | #define CONNECTOR_OBJECT_ID_HARDCODE_DVI 0x12 | 107 | #define CONNECTOR_OBJECT_ID_HARDCODE_DVI 0x12 |
108 | #define CONNECTOR_OBJECT_ID_DISPLAYPORT 0x13 | 108 | #define CONNECTOR_OBJECT_ID_DISPLAYPORT 0x13 |
109 | #define CONNECTOR_OBJECT_ID_eDP 0x14 | ||
110 | #define CONNECTOR_OBJECT_ID_MXM 0x15 | ||
109 | 111 | ||
110 | /* deleted */ | 112 | /* deleted */ |
111 | 113 | ||
@@ -116,6 +118,14 @@ | |||
116 | #define ROUTER_OBJECT_ID_I2C_EXTENDER_CNTL 0x01 | 118 | #define ROUTER_OBJECT_ID_I2C_EXTENDER_CNTL 0x01 |
117 | 119 | ||
118 | /****************************************************/ | 120 | /****************************************************/ |
121 | /* Generic Object ID Definition */ | ||
122 | /****************************************************/ | ||
123 | #define GENERIC_OBJECT_ID_NONE 0x00 | ||
124 | #define GENERIC_OBJECT_ID_GLSYNC 0x01 | ||
125 | #define GENERIC_OBJECT_ID_PX2_NON_DRIVABLE 0x02 | ||
126 | #define GENERIC_OBJECT_ID_MXM_OPM 0x03 | ||
127 | |||
128 | /****************************************************/ | ||
119 | /* Graphics Object ENUM ID Definition */ | 129 | /* Graphics Object ENUM ID Definition */ |
120 | /****************************************************/ | 130 | /****************************************************/ |
121 | #define GRAPH_OBJECT_ENUM_ID1 0x01 | 131 | #define GRAPH_OBJECT_ENUM_ID1 0x01 |
@@ -124,6 +134,7 @@ | |||
124 | #define GRAPH_OBJECT_ENUM_ID4 0x04 | 134 | #define GRAPH_OBJECT_ENUM_ID4 0x04 |
125 | #define GRAPH_OBJECT_ENUM_ID5 0x05 | 135 | #define GRAPH_OBJECT_ENUM_ID5 0x05 |
126 | #define GRAPH_OBJECT_ENUM_ID6 0x06 | 136 | #define GRAPH_OBJECT_ENUM_ID6 0x06 |
137 | #define GRAPH_OBJECT_ENUM_ID7 0x07 | ||
127 | 138 | ||
128 | /****************************************************/ | 139 | /****************************************************/ |
129 | /* Graphics Object ID Bit definition */ | 140 | /* Graphics Object ID Bit definition */ |
@@ -133,35 +144,35 @@ | |||
133 | #define RESERVED1_ID_MASK 0x0800 | 144 | #define RESERVED1_ID_MASK 0x0800 |
134 | #define OBJECT_TYPE_MASK 0x7000 | 145 | #define OBJECT_TYPE_MASK 0x7000 |
135 | #define RESERVED2_ID_MASK 0x8000 | 146 | #define RESERVED2_ID_MASK 0x8000 |
136 | 147 | ||
137 | #define OBJECT_ID_SHIFT 0x00 | 148 | #define OBJECT_ID_SHIFT 0x00 |
138 | #define ENUM_ID_SHIFT 0x08 | 149 | #define ENUM_ID_SHIFT 0x08 |
139 | #define OBJECT_TYPE_SHIFT 0x0C | 150 | #define OBJECT_TYPE_SHIFT 0x0C |
140 | 151 | ||
152 | |||
141 | /****************************************************/ | 153 | /****************************************************/ |
142 | /* Graphics Object family definition */ | 154 | /* Graphics Object family definition */ |
143 | /****************************************************/ | 155 | /****************************************************/ |
144 | #define CONSTRUCTOBJECTFAMILYID(GRAPHICS_OBJECT_TYPE, GRAPHICS_OBJECT_ID) \ | 156 | #define CONSTRUCTOBJECTFAMILYID(GRAPHICS_OBJECT_TYPE, GRAPHICS_OBJECT_ID) (GRAPHICS_OBJECT_TYPE << OBJECT_TYPE_SHIFT | \ |
145 | (GRAPHICS_OBJECT_TYPE << OBJECT_TYPE_SHIFT | \ | 157 | GRAPHICS_OBJECT_ID << OBJECT_ID_SHIFT) |
146 | GRAPHICS_OBJECT_ID << OBJECT_ID_SHIFT) | ||
147 | /****************************************************/ | 158 | /****************************************************/ |
148 | /* GPU Object ID definition - Shared with BIOS */ | 159 | /* GPU Object ID definition - Shared with BIOS */ |
149 | /****************************************************/ | 160 | /****************************************************/ |
150 | #define GPU_ENUM_ID1 (GRAPH_OBJECT_TYPE_GPU << OBJECT_TYPE_SHIFT |\ | 161 | #define GPU_ENUM_ID1 ( GRAPH_OBJECT_TYPE_GPU << OBJECT_TYPE_SHIFT |\ |
151 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT) | 162 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT) |
152 | 163 | ||
153 | /****************************************************/ | 164 | /****************************************************/ |
154 | /* Encoder Object ID definition - Shared with BIOS */ | 165 | /* Encoder Object ID definition - Shared with BIOS */ |
155 | /****************************************************/ | 166 | /****************************************************/ |
156 | /* | 167 | /* |
157 | #define ENCODER_INTERNAL_LVDS_ENUM_ID1 0x2101 | 168 | #define ENCODER_INTERNAL_LVDS_ENUM_ID1 0x2101 |
158 | #define ENCODER_INTERNAL_TMDS1_ENUM_ID1 0x2102 | 169 | #define ENCODER_INTERNAL_TMDS1_ENUM_ID1 0x2102 |
159 | #define ENCODER_INTERNAL_TMDS2_ENUM_ID1 0x2103 | 170 | #define ENCODER_INTERNAL_TMDS2_ENUM_ID1 0x2103 |
160 | #define ENCODER_INTERNAL_DAC1_ENUM_ID1 0x2104 | 171 | #define ENCODER_INTERNAL_DAC1_ENUM_ID1 0x2104 |
161 | #define ENCODER_INTERNAL_DAC2_ENUM_ID1 0x2105 | 172 | #define ENCODER_INTERNAL_DAC2_ENUM_ID1 0x2105 |
162 | #define ENCODER_INTERNAL_SDVOA_ENUM_ID1 0x2106 | 173 | #define ENCODER_INTERNAL_SDVOA_ENUM_ID1 0x2106 |
163 | #define ENCODER_INTERNAL_SDVOB_ENUM_ID1 0x2107 | 174 | #define ENCODER_INTERNAL_SDVOB_ENUM_ID1 0x2107 |
164 | #define ENCODER_SIL170B_ENUM_ID1 0x2108 | 175 | #define ENCODER_SIL170B_ENUM_ID1 0x2108 |
165 | #define ENCODER_CH7303_ENUM_ID1 0x2109 | 176 | #define ENCODER_CH7303_ENUM_ID1 0x2109 |
166 | #define ENCODER_CH7301_ENUM_ID1 0x210A | 177 | #define ENCODER_CH7301_ENUM_ID1 0x210A |
167 | #define ENCODER_INTERNAL_DVO1_ENUM_ID1 0x210B | 178 | #define ENCODER_INTERNAL_DVO1_ENUM_ID1 0x210B |
@@ -175,8 +186,8 @@ | |||
175 | #define ENCODER_INTERNAL_KLDSCP_TMDS1_ENUM_ID1 0x2113 | 186 | #define ENCODER_INTERNAL_KLDSCP_TMDS1_ENUM_ID1 0x2113 |
176 | #define ENCODER_INTERNAL_KLDSCP_DVO1_ENUM_ID1 0x2114 | 187 | #define ENCODER_INTERNAL_KLDSCP_DVO1_ENUM_ID1 0x2114 |
177 | #define ENCODER_INTERNAL_KLDSCP_DAC1_ENUM_ID1 0x2115 | 188 | #define ENCODER_INTERNAL_KLDSCP_DAC1_ENUM_ID1 0x2115 |
178 | #define ENCODER_INTERNAL_KLDSCP_DAC2_ENUM_ID1 0x2116 | 189 | #define ENCODER_INTERNAL_KLDSCP_DAC2_ENUM_ID1 0x2116 |
179 | #define ENCODER_SI178_ENUM_ID1 0x2117 | 190 | #define ENCODER_SI178_ENUM_ID1 0x2117 |
180 | #define ENCODER_MVPU_FPGA_ENUM_ID1 0x2118 | 191 | #define ENCODER_MVPU_FPGA_ENUM_ID1 0x2118 |
181 | #define ENCODER_INTERNAL_DDI_ENUM_ID1 0x2119 | 192 | #define ENCODER_INTERNAL_DDI_ENUM_ID1 0x2119 |
182 | #define ENCODER_VT1625_ENUM_ID1 0x211A | 193 | #define ENCODER_VT1625_ENUM_ID1 0x211A |
@@ -185,205 +196,169 @@ | |||
185 | #define ENCODER_DP_DP501_ENUM_ID1 0x211D | 196 | #define ENCODER_DP_DP501_ENUM_ID1 0x211D |
186 | #define ENCODER_INTERNAL_UNIPHY_ENUM_ID1 0x211E | 197 | #define ENCODER_INTERNAL_UNIPHY_ENUM_ID1 0x211E |
187 | */ | 198 | */ |
188 | #define ENCODER_INTERNAL_LVDS_ENUM_ID1 \ | 199 | #define ENCODER_INTERNAL_LVDS_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
189 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 200 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
190 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 201 | ENCODER_OBJECT_ID_INTERNAL_LVDS << OBJECT_ID_SHIFT) |
191 | ENCODER_OBJECT_ID_INTERNAL_LVDS << OBJECT_ID_SHIFT) | 202 | |
192 | 203 | #define ENCODER_INTERNAL_TMDS1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | |
193 | #define ENCODER_INTERNAL_TMDS1_ENUM_ID1 \ | 204 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
194 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 205 | ENCODER_OBJECT_ID_INTERNAL_TMDS1 << OBJECT_ID_SHIFT) |
195 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 206 | |
196 | ENCODER_OBJECT_ID_INTERNAL_TMDS1 << OBJECT_ID_SHIFT) | 207 | #define ENCODER_INTERNAL_TMDS2_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
197 | 208 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | |
198 | #define ENCODER_INTERNAL_TMDS2_ENUM_ID1 \ | 209 | ENCODER_OBJECT_ID_INTERNAL_TMDS2 << OBJECT_ID_SHIFT) |
199 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 210 | |
200 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 211 | #define ENCODER_INTERNAL_DAC1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
201 | ENCODER_OBJECT_ID_INTERNAL_TMDS2 << OBJECT_ID_SHIFT) | 212 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
202 | 213 | ENCODER_OBJECT_ID_INTERNAL_DAC1 << OBJECT_ID_SHIFT) | |
203 | #define ENCODER_INTERNAL_DAC1_ENUM_ID1 \ | 214 | |
204 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 215 | #define ENCODER_INTERNAL_DAC2_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
205 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 216 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
206 | ENCODER_OBJECT_ID_INTERNAL_DAC1 << OBJECT_ID_SHIFT) | 217 | ENCODER_OBJECT_ID_INTERNAL_DAC2 << OBJECT_ID_SHIFT) |
207 | 218 | ||
208 | #define ENCODER_INTERNAL_DAC2_ENUM_ID1 \ | 219 | #define ENCODER_INTERNAL_SDVOA_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
209 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 220 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
210 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 221 | ENCODER_OBJECT_ID_INTERNAL_SDVOA << OBJECT_ID_SHIFT) |
211 | ENCODER_OBJECT_ID_INTERNAL_DAC2 << OBJECT_ID_SHIFT) | 222 | |
212 | 223 | #define ENCODER_INTERNAL_SDVOA_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | |
213 | #define ENCODER_INTERNAL_SDVOA_ENUM_ID1 \ | 224 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
214 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 225 | ENCODER_OBJECT_ID_INTERNAL_SDVOA << OBJECT_ID_SHIFT) |
215 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 226 | |
216 | ENCODER_OBJECT_ID_INTERNAL_SDVOA << OBJECT_ID_SHIFT) | 227 | #define ENCODER_INTERNAL_SDVOB_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
217 | 228 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | |
218 | #define ENCODER_INTERNAL_SDVOA_ENUM_ID2 \ | 229 | ENCODER_OBJECT_ID_INTERNAL_SDVOB << OBJECT_ID_SHIFT) |
219 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 230 | |
220 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | 231 | #define ENCODER_SIL170B_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
221 | ENCODER_OBJECT_ID_INTERNAL_SDVOA << OBJECT_ID_SHIFT) | 232 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
222 | 233 | ENCODER_OBJECT_ID_SI170B << OBJECT_ID_SHIFT) | |
223 | #define ENCODER_INTERNAL_SDVOB_ENUM_ID1 \ | 234 | |
224 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 235 | #define ENCODER_CH7303_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
225 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 236 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
226 | ENCODER_OBJECT_ID_INTERNAL_SDVOB << OBJECT_ID_SHIFT) | 237 | ENCODER_OBJECT_ID_CH7303 << OBJECT_ID_SHIFT) |
227 | 238 | ||
228 | #define ENCODER_SIL170B_ENUM_ID1 \ | 239 | #define ENCODER_CH7301_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
229 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 240 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
230 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 241 | ENCODER_OBJECT_ID_CH7301 << OBJECT_ID_SHIFT) |
231 | ENCODER_OBJECT_ID_SI170B << OBJECT_ID_SHIFT) | 242 | |
232 | 243 | #define ENCODER_INTERNAL_DVO1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | |
233 | #define ENCODER_CH7303_ENUM_ID1 \ | 244 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
234 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 245 | ENCODER_OBJECT_ID_INTERNAL_DVO1 << OBJECT_ID_SHIFT) |
235 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 246 | |
236 | ENCODER_OBJECT_ID_CH7303 << OBJECT_ID_SHIFT) | 247 | #define ENCODER_EXTERNAL_SDVOA_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
237 | 248 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | |
238 | #define ENCODER_CH7301_ENUM_ID1 \ | 249 | ENCODER_OBJECT_ID_EXTERNAL_SDVOA << OBJECT_ID_SHIFT) |
239 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 250 | |
240 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 251 | #define ENCODER_EXTERNAL_SDVOA_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
241 | ENCODER_OBJECT_ID_CH7301 << OBJECT_ID_SHIFT) | 252 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
242 | 253 | ENCODER_OBJECT_ID_EXTERNAL_SDVOA << OBJECT_ID_SHIFT) | |
243 | #define ENCODER_INTERNAL_DVO1_ENUM_ID1 \ | 254 | |
244 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 255 | |
245 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 256 | #define ENCODER_EXTERNAL_SDVOB_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
246 | ENCODER_OBJECT_ID_INTERNAL_DVO1 << OBJECT_ID_SHIFT) | 257 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
247 | 258 | ENCODER_OBJECT_ID_EXTERNAL_SDVOB << OBJECT_ID_SHIFT) | |
248 | #define ENCODER_EXTERNAL_SDVOA_ENUM_ID1 \ | 259 | |
249 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 260 | |
250 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 261 | #define ENCODER_TITFP513_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
251 | ENCODER_OBJECT_ID_EXTERNAL_SDVOA << OBJECT_ID_SHIFT) | 262 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
252 | 263 | ENCODER_OBJECT_ID_TITFP513 << OBJECT_ID_SHIFT) | |
253 | #define ENCODER_EXTERNAL_SDVOA_ENUM_ID2 \ | 264 | |
254 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 265 | #define ENCODER_INTERNAL_LVTM1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
255 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | 266 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
256 | ENCODER_OBJECT_ID_EXTERNAL_SDVOA << OBJECT_ID_SHIFT) | 267 | ENCODER_OBJECT_ID_INTERNAL_LVTM1 << OBJECT_ID_SHIFT) |
257 | 268 | ||
258 | #define ENCODER_EXTERNAL_SDVOB_ENUM_ID1 \ | 269 | #define ENCODER_VT1623_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
259 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 270 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
260 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 271 | ENCODER_OBJECT_ID_VT1623 << OBJECT_ID_SHIFT) |
261 | ENCODER_OBJECT_ID_EXTERNAL_SDVOB << OBJECT_ID_SHIFT) | 272 | |
262 | 273 | #define ENCODER_HDMI_SI1930_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | |
263 | #define ENCODER_TITFP513_ENUM_ID1 \ | 274 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
264 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 275 | ENCODER_OBJECT_ID_HDMI_SI1930 << OBJECT_ID_SHIFT) |
265 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 276 | |
266 | ENCODER_OBJECT_ID_TITFP513 << OBJECT_ID_SHIFT) | 277 | #define ENCODER_HDMI_INTERNAL_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
267 | 278 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | |
268 | #define ENCODER_INTERNAL_LVTM1_ENUM_ID1 \ | 279 | ENCODER_OBJECT_ID_HDMI_INTERNAL << OBJECT_ID_SHIFT) |
269 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 280 | |
270 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 281 | #define ENCODER_INTERNAL_KLDSCP_TMDS1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
271 | ENCODER_OBJECT_ID_INTERNAL_LVTM1 << OBJECT_ID_SHIFT) | 282 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
272 | 283 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1 << OBJECT_ID_SHIFT) | |
273 | #define ENCODER_VT1623_ENUM_ID1 \ | 284 | |
274 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 285 | |
275 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 286 | #define ENCODER_INTERNAL_KLDSCP_TMDS1_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
276 | ENCODER_OBJECT_ID_VT1623 << OBJECT_ID_SHIFT) | 287 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
277 | 288 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1 << OBJECT_ID_SHIFT) | |
278 | #define ENCODER_HDMI_SI1930_ENUM_ID1 \ | 289 | |
279 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 290 | |
280 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 291 | #define ENCODER_INTERNAL_KLDSCP_DVO1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
281 | ENCODER_OBJECT_ID_HDMI_SI1930 << OBJECT_ID_SHIFT) | 292 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
282 | 293 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1 << OBJECT_ID_SHIFT) | |
283 | #define ENCODER_HDMI_INTERNAL_ENUM_ID1 \ | 294 | |
284 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 295 | #define ENCODER_INTERNAL_KLDSCP_DAC1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
285 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 296 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
286 | ENCODER_OBJECT_ID_HDMI_INTERNAL << OBJECT_ID_SHIFT) | 297 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1 << OBJECT_ID_SHIFT) |
287 | 298 | ||
288 | #define ENCODER_INTERNAL_KLDSCP_TMDS1_ENUM_ID1 \ | 299 | #define ENCODER_INTERNAL_KLDSCP_DAC2_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
289 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 300 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
290 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 301 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2 << OBJECT_ID_SHIFT) // Shared with CV/TV and CRT |
291 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1 << OBJECT_ID_SHIFT) | 302 | |
292 | 303 | #define ENCODER_SI178_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | |
293 | #define ENCODER_INTERNAL_KLDSCP_TMDS1_ENUM_ID2 \ | 304 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
294 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 305 | ENCODER_OBJECT_ID_SI178 << OBJECT_ID_SHIFT) |
295 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | 306 | |
296 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1 << OBJECT_ID_SHIFT) | 307 | #define ENCODER_MVPU_FPGA_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
297 | 308 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | |
298 | #define ENCODER_INTERNAL_KLDSCP_DVO1_ENUM_ID1 \ | 309 | ENCODER_OBJECT_ID_MVPU_FPGA << OBJECT_ID_SHIFT) |
299 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 310 | |
300 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 311 | #define ENCODER_INTERNAL_DDI_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
301 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1 << OBJECT_ID_SHIFT) | 312 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
302 | 313 | ENCODER_OBJECT_ID_INTERNAL_DDI << OBJECT_ID_SHIFT) | |
303 | #define ENCODER_INTERNAL_KLDSCP_DAC1_ENUM_ID1 \ | 314 | |
304 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 315 | #define ENCODER_VT1625_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
305 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 316 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
306 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1 << OBJECT_ID_SHIFT) | 317 | ENCODER_OBJECT_ID_VT1625 << OBJECT_ID_SHIFT) |
307 | 318 | ||
308 | #define ENCODER_INTERNAL_KLDSCP_DAC2_ENUM_ID1 \ | 319 | #define ENCODER_HDMI_SI1932_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
309 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 320 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
310 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 321 | ENCODER_OBJECT_ID_HDMI_SI1932 << OBJECT_ID_SHIFT) |
311 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2 << OBJECT_ID_SHIFT) /* Shared with CV/TV and CRT */ | 322 | |
312 | 323 | #define ENCODER_DP_DP501_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | |
313 | #define ENCODER_SI178_ENUM_ID1 \ | 324 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
314 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 325 | ENCODER_OBJECT_ID_DP_DP501 << OBJECT_ID_SHIFT) |
315 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 326 | |
316 | ENCODER_OBJECT_ID_SI178 << OBJECT_ID_SHIFT) | 327 | #define ENCODER_DP_AN9801_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
317 | 328 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | |
318 | #define ENCODER_MVPU_FPGA_ENUM_ID1 \ | 329 | ENCODER_OBJECT_ID_DP_AN9801 << OBJECT_ID_SHIFT) |
319 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 330 | |
320 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 331 | #define ENCODER_INTERNAL_UNIPHY_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
321 | ENCODER_OBJECT_ID_MVPU_FPGA << OBJECT_ID_SHIFT) | 332 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
322 | 333 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT) | |
323 | #define ENCODER_INTERNAL_DDI_ENUM_ID1 \ | 334 | |
324 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 335 | #define ENCODER_INTERNAL_UNIPHY_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
325 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 336 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
326 | ENCODER_OBJECT_ID_INTERNAL_DDI << OBJECT_ID_SHIFT) | 337 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT) |
327 | 338 | ||
328 | #define ENCODER_VT1625_ENUM_ID1 \ | 339 | #define ENCODER_INTERNAL_KLDSCP_LVTMA_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
329 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 340 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
330 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 341 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA << OBJECT_ID_SHIFT) |
331 | ENCODER_OBJECT_ID_VT1625 << OBJECT_ID_SHIFT) | 342 | |
332 | 343 | #define ENCODER_INTERNAL_UNIPHY1_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | |
333 | #define ENCODER_HDMI_SI1932_ENUM_ID1 \ | 344 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
334 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 345 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT) |
335 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 346 | |
336 | ENCODER_OBJECT_ID_HDMI_SI1932 << OBJECT_ID_SHIFT) | 347 | #define ENCODER_INTERNAL_UNIPHY1_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
337 | 348 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | |
338 | #define ENCODER_DP_DP501_ENUM_ID1 \ | 349 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT) |
339 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 350 | |
340 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 351 | #define ENCODER_INTERNAL_UNIPHY2_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
341 | ENCODER_OBJECT_ID_DP_DP501 << OBJECT_ID_SHIFT) | 352 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
342 | 353 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT) | |
343 | #define ENCODER_DP_AN9801_ENUM_ID1 \ | 354 | |
344 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 355 | #define ENCODER_INTERNAL_UNIPHY2_ENUM_ID2 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
345 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 356 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
346 | ENCODER_OBJECT_ID_DP_AN9801 << OBJECT_ID_SHIFT) | 357 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT) |
347 | 358 | ||
348 | #define ENCODER_INTERNAL_UNIPHY_ENUM_ID1 \ | 359 | #define ENCODER_GENERAL_EXTERNAL_DVO_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ |
349 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | 360 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
350 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 361 | ENCODER_OBJECT_ID_GENERAL_EXTERNAL_DVO << OBJECT_ID_SHIFT) |
351 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT) | ||
352 | |||
353 | #define ENCODER_INTERNAL_UNIPHY_ENUM_ID2 \ | ||
354 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | ||
355 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | ||
356 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY << OBJECT_ID_SHIFT) | ||
357 | |||
358 | #define ENCODER_INTERNAL_KLDSCP_LVTMA_ENUM_ID1 \ | ||
359 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | ||
360 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | ||
361 | ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA << OBJECT_ID_SHIFT) | ||
362 | |||
363 | #define ENCODER_INTERNAL_UNIPHY1_ENUM_ID1 \ | ||
364 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | ||
365 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | ||
366 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT) | ||
367 | |||
368 | #define ENCODER_INTERNAL_UNIPHY1_ENUM_ID2 \ | ||
369 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | ||
370 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | ||
371 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY1 << OBJECT_ID_SHIFT) | ||
372 | |||
373 | #define ENCODER_INTERNAL_UNIPHY2_ENUM_ID1 \ | ||
374 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | ||
375 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | ||
376 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT) | ||
377 | |||
378 | #define ENCODER_INTERNAL_UNIPHY2_ENUM_ID2 \ | ||
379 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | ||
380 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | ||
381 | ENCODER_OBJECT_ID_INTERNAL_UNIPHY2 << OBJECT_ID_SHIFT) | ||
382 | |||
383 | #define ENCODER_GENERAL_EXTERNAL_DVO_ENUM_ID1 \ | ||
384 | (GRAPH_OBJECT_TYPE_ENCODER << OBJECT_TYPE_SHIFT |\ | ||
385 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | ||
386 | ENCODER_OBJECT_ID_GENERAL_EXTERNAL_DVO << OBJECT_ID_SHIFT) | ||
387 | 362 | ||
388 | /****************************************************/ | 363 | /****************************************************/ |
389 | /* Connector Object ID definition - Shared with BIOS */ | 364 | /* Connector Object ID definition - Shared with BIOS */ |
@@ -406,167 +381,253 @@ | |||
406 | #define CONNECTOR_7PIN_DIN_ENUM_ID1 0x310F | 381 | #define CONNECTOR_7PIN_DIN_ENUM_ID1 0x310F |
407 | #define CONNECTOR_PCIE_CONNECTOR_ENUM_ID1 0x3110 | 382 | #define CONNECTOR_PCIE_CONNECTOR_ENUM_ID1 0x3110 |
408 | */ | 383 | */ |
409 | #define CONNECTOR_LVDS_ENUM_ID1 \ | 384 | #define CONNECTOR_LVDS_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
410 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 385 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
411 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 386 | CONNECTOR_OBJECT_ID_LVDS << OBJECT_ID_SHIFT) |
412 | CONNECTOR_OBJECT_ID_LVDS << OBJECT_ID_SHIFT) | 387 | |
413 | 388 | #define CONNECTOR_LVDS_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | |
414 | #define CONNECTOR_SINGLE_LINK_DVI_I_ENUM_ID1 \ | 389 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
415 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 390 | CONNECTOR_OBJECT_ID_LVDS << OBJECT_ID_SHIFT) |
416 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 391 | |
417 | CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I << OBJECT_ID_SHIFT) | 392 | #define CONNECTOR_eDP_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
418 | 393 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | |
419 | #define CONNECTOR_SINGLE_LINK_DVI_I_ENUM_ID2 \ | 394 | CONNECTOR_OBJECT_ID_eDP << OBJECT_ID_SHIFT) |
420 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 395 | |
421 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | 396 | #define CONNECTOR_eDP_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
422 | CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I << OBJECT_ID_SHIFT) | 397 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
423 | 398 | CONNECTOR_OBJECT_ID_eDP << OBJECT_ID_SHIFT) | |
424 | #define CONNECTOR_DUAL_LINK_DVI_I_ENUM_ID1 \ | 399 | |
425 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 400 | #define CONNECTOR_SINGLE_LINK_DVI_I_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
426 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 401 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
427 | CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I << OBJECT_ID_SHIFT) | 402 | CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I << OBJECT_ID_SHIFT) |
428 | 403 | ||
429 | #define CONNECTOR_DUAL_LINK_DVI_I_ENUM_ID2 \ | 404 | #define CONNECTOR_SINGLE_LINK_DVI_I_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
430 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 405 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
431 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | 406 | CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I << OBJECT_ID_SHIFT) |
432 | CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I << OBJECT_ID_SHIFT) | 407 | |
433 | 408 | #define CONNECTOR_DUAL_LINK_DVI_I_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | |
434 | #define CONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID1 \ | 409 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
435 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 410 | CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I << OBJECT_ID_SHIFT) |
436 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 411 | |
437 | CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT) | 412 | #define CONNECTOR_DUAL_LINK_DVI_I_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
438 | 413 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | |
439 | #define CONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID2 \ | 414 | CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I << OBJECT_ID_SHIFT) |
440 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 415 | |
441 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | 416 | #define CONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
442 | CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT) | 417 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
443 | 418 | CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT) | |
444 | #define CONNECTOR_DUAL_LINK_DVI_D_ENUM_ID1 \ | 419 | |
445 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 420 | #define CONNECTOR_SINGLE_LINK_DVI_D_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
446 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 421 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
447 | CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D << OBJECT_ID_SHIFT) | 422 | CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_D << OBJECT_ID_SHIFT) |
448 | 423 | ||
449 | #define CONNECTOR_VGA_ENUM_ID1 \ | 424 | #define CONNECTOR_DUAL_LINK_DVI_D_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
450 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 425 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
451 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 426 | CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D << OBJECT_ID_SHIFT) |
452 | CONNECTOR_OBJECT_ID_VGA << OBJECT_ID_SHIFT) | 427 | |
453 | 428 | #define CONNECTOR_DUAL_LINK_DVI_D_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | |
454 | #define CONNECTOR_VGA_ENUM_ID2 \ | 429 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
455 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 430 | CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D << OBJECT_ID_SHIFT) |
456 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | 431 | |
457 | CONNECTOR_OBJECT_ID_VGA << OBJECT_ID_SHIFT) | 432 | #define CONNECTOR_DUAL_LINK_DVI_D_ENUM_ID3 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
458 | 433 | GRAPH_OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\ | |
459 | #define CONNECTOR_COMPOSITE_ENUM_ID1 \ | 434 | CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D << OBJECT_ID_SHIFT) |
460 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 435 | |
461 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 436 | #define CONNECTOR_VGA_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
462 | CONNECTOR_OBJECT_ID_COMPOSITE << OBJECT_ID_SHIFT) | 437 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
463 | 438 | CONNECTOR_OBJECT_ID_VGA << OBJECT_ID_SHIFT) | |
464 | #define CONNECTOR_SVIDEO_ENUM_ID1 \ | 439 | |
465 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 440 | #define CONNECTOR_VGA_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
466 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 441 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
467 | CONNECTOR_OBJECT_ID_SVIDEO << OBJECT_ID_SHIFT) | 442 | CONNECTOR_OBJECT_ID_VGA << OBJECT_ID_SHIFT) |
468 | 443 | ||
469 | #define CONNECTOR_YPbPr_ENUM_ID1 \ | 444 | #define CONNECTOR_COMPOSITE_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
470 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 445 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
471 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 446 | CONNECTOR_OBJECT_ID_COMPOSITE << OBJECT_ID_SHIFT) |
472 | CONNECTOR_OBJECT_ID_YPbPr << OBJECT_ID_SHIFT) | 447 | |
473 | 448 | #define CONNECTOR_COMPOSITE_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | |
474 | #define CONNECTOR_D_CONNECTOR_ENUM_ID1 \ | 449 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
475 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 450 | CONNECTOR_OBJECT_ID_COMPOSITE << OBJECT_ID_SHIFT) |
476 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 451 | |
477 | CONNECTOR_OBJECT_ID_D_CONNECTOR << OBJECT_ID_SHIFT) | 452 | #define CONNECTOR_SVIDEO_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
478 | 453 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | |
479 | #define CONNECTOR_9PIN_DIN_ENUM_ID1 \ | 454 | CONNECTOR_OBJECT_ID_SVIDEO << OBJECT_ID_SHIFT) |
480 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 455 | |
481 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 456 | #define CONNECTOR_SVIDEO_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
482 | CONNECTOR_OBJECT_ID_9PIN_DIN << OBJECT_ID_SHIFT) | 457 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
483 | 458 | CONNECTOR_OBJECT_ID_SVIDEO << OBJECT_ID_SHIFT) | |
484 | #define CONNECTOR_SCART_ENUM_ID1 \ | 459 | |
485 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 460 | #define CONNECTOR_YPbPr_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
486 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 461 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
487 | CONNECTOR_OBJECT_ID_SCART << OBJECT_ID_SHIFT) | 462 | CONNECTOR_OBJECT_ID_YPbPr << OBJECT_ID_SHIFT) |
488 | 463 | ||
489 | #define CONNECTOR_HDMI_TYPE_A_ENUM_ID1 \ | 464 | #define CONNECTOR_YPbPr_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
490 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 465 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
491 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 466 | CONNECTOR_OBJECT_ID_YPbPr << OBJECT_ID_SHIFT) |
492 | CONNECTOR_OBJECT_ID_HDMI_TYPE_A << OBJECT_ID_SHIFT) | 467 | |
493 | 468 | #define CONNECTOR_D_CONNECTOR_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | |
494 | #define CONNECTOR_HDMI_TYPE_B_ENUM_ID1 \ | 469 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
495 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 470 | CONNECTOR_OBJECT_ID_D_CONNECTOR << OBJECT_ID_SHIFT) |
496 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 471 | |
497 | CONNECTOR_OBJECT_ID_HDMI_TYPE_B << OBJECT_ID_SHIFT) | 472 | #define CONNECTOR_D_CONNECTOR_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
498 | 473 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | |
499 | #define CONNECTOR_7PIN_DIN_ENUM_ID1 \ | 474 | CONNECTOR_OBJECT_ID_D_CONNECTOR << OBJECT_ID_SHIFT) |
500 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 475 | |
501 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 476 | #define CONNECTOR_9PIN_DIN_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
502 | CONNECTOR_OBJECT_ID_7PIN_DIN << OBJECT_ID_SHIFT) | 477 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
503 | 478 | CONNECTOR_OBJECT_ID_9PIN_DIN << OBJECT_ID_SHIFT) | |
504 | #define CONNECTOR_PCIE_CONNECTOR_ENUM_ID1 \ | 479 | |
505 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 480 | #define CONNECTOR_9PIN_DIN_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
506 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 481 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
507 | CONNECTOR_OBJECT_ID_PCIE_CONNECTOR << OBJECT_ID_SHIFT) | 482 | CONNECTOR_OBJECT_ID_9PIN_DIN << OBJECT_ID_SHIFT) |
508 | 483 | ||
509 | #define CONNECTOR_PCIE_CONNECTOR_ENUM_ID2 \ | 484 | #define CONNECTOR_SCART_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
510 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 485 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
511 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | 486 | CONNECTOR_OBJECT_ID_SCART << OBJECT_ID_SHIFT) |
512 | CONNECTOR_OBJECT_ID_PCIE_CONNECTOR << OBJECT_ID_SHIFT) | 487 | |
513 | 488 | #define CONNECTOR_SCART_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | |
514 | #define CONNECTOR_CROSSFIRE_ENUM_ID1 \ | 489 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
515 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 490 | CONNECTOR_OBJECT_ID_SCART << OBJECT_ID_SHIFT) |
516 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 491 | |
517 | CONNECTOR_OBJECT_ID_CROSSFIRE << OBJECT_ID_SHIFT) | 492 | #define CONNECTOR_HDMI_TYPE_A_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
518 | 493 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | |
519 | #define CONNECTOR_CROSSFIRE_ENUM_ID2 \ | 494 | CONNECTOR_OBJECT_ID_HDMI_TYPE_A << OBJECT_ID_SHIFT) |
520 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 495 | |
521 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | 496 | #define CONNECTOR_HDMI_TYPE_A_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
522 | CONNECTOR_OBJECT_ID_CROSSFIRE << OBJECT_ID_SHIFT) | 497 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
523 | 498 | CONNECTOR_OBJECT_ID_HDMI_TYPE_A << OBJECT_ID_SHIFT) | |
524 | #define CONNECTOR_HARDCODE_DVI_ENUM_ID1 \ | 499 | |
525 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 500 | #define CONNECTOR_HDMI_TYPE_A_ENUM_ID3 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
526 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 501 | GRAPH_OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\ |
527 | CONNECTOR_OBJECT_ID_HARDCODE_DVI << OBJECT_ID_SHIFT) | 502 | CONNECTOR_OBJECT_ID_HDMI_TYPE_A << OBJECT_ID_SHIFT) |
528 | 503 | ||
529 | #define CONNECTOR_HARDCODE_DVI_ENUM_ID2 \ | 504 | #define CONNECTOR_HDMI_TYPE_B_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
530 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 505 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
531 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | 506 | CONNECTOR_OBJECT_ID_HDMI_TYPE_B << OBJECT_ID_SHIFT) |
532 | CONNECTOR_OBJECT_ID_HARDCODE_DVI << OBJECT_ID_SHIFT) | 507 | |
533 | 508 | #define CONNECTOR_HDMI_TYPE_B_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | |
534 | #define CONNECTOR_DISPLAYPORT_ENUM_ID1 \ | 509 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
535 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 510 | CONNECTOR_OBJECT_ID_HDMI_TYPE_B << OBJECT_ID_SHIFT) |
536 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 511 | |
537 | CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) | 512 | #define CONNECTOR_7PIN_DIN_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
538 | 513 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | |
539 | #define CONNECTOR_DISPLAYPORT_ENUM_ID2 \ | 514 | CONNECTOR_OBJECT_ID_7PIN_DIN << OBJECT_ID_SHIFT) |
540 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 515 | #define CONNECTOR_7PIN_DIN_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
541 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | 516 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
542 | CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) | 517 | CONNECTOR_OBJECT_ID_7PIN_DIN << OBJECT_ID_SHIFT) |
543 | 518 | ||
544 | #define CONNECTOR_DISPLAYPORT_ENUM_ID3 \ | 519 | #define CONNECTOR_PCIE_CONNECTOR_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
545 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 520 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
546 | GRAPH_OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\ | 521 | CONNECTOR_OBJECT_ID_PCIE_CONNECTOR << OBJECT_ID_SHIFT) |
547 | CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) | 522 | |
548 | 523 | #define CONNECTOR_PCIE_CONNECTOR_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | |
549 | #define CONNECTOR_DISPLAYPORT_ENUM_ID4 \ | 524 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ |
550 | (GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | 525 | CONNECTOR_OBJECT_ID_PCIE_CONNECTOR << OBJECT_ID_SHIFT) |
551 | GRAPH_OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\ | 526 | |
552 | CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) | 527 | #define CONNECTOR_CROSSFIRE_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ |
528 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | ||
529 | CONNECTOR_OBJECT_ID_CROSSFIRE << OBJECT_ID_SHIFT) | ||
530 | |||
531 | #define CONNECTOR_CROSSFIRE_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
532 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | ||
533 | CONNECTOR_OBJECT_ID_CROSSFIRE << OBJECT_ID_SHIFT) | ||
534 | |||
535 | |||
536 | #define CONNECTOR_HARDCODE_DVI_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
537 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | ||
538 | CONNECTOR_OBJECT_ID_HARDCODE_DVI << OBJECT_ID_SHIFT) | ||
539 | |||
540 | #define CONNECTOR_HARDCODE_DVI_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
541 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | ||
542 | CONNECTOR_OBJECT_ID_HARDCODE_DVI << OBJECT_ID_SHIFT) | ||
543 | |||
544 | #define CONNECTOR_DISPLAYPORT_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
545 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | ||
546 | CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) | ||
547 | |||
548 | #define CONNECTOR_DISPLAYPORT_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
549 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | ||
550 | CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) | ||
551 | |||
552 | #define CONNECTOR_DISPLAYPORT_ENUM_ID3 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
553 | GRAPH_OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\ | ||
554 | CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) | ||
555 | |||
556 | #define CONNECTOR_DISPLAYPORT_ENUM_ID4 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
557 | GRAPH_OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\ | ||
558 | CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) | ||
559 | |||
560 | #define CONNECTOR_DISPLAYPORT_ENUM_ID5 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
561 | GRAPH_OBJECT_ENUM_ID5 << ENUM_ID_SHIFT |\ | ||
562 | CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) | ||
563 | |||
564 | #define CONNECTOR_DISPLAYPORT_ENUM_ID6 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
565 | GRAPH_OBJECT_ENUM_ID6 << ENUM_ID_SHIFT |\ | ||
566 | CONNECTOR_OBJECT_ID_DISPLAYPORT << OBJECT_ID_SHIFT) | ||
567 | |||
568 | #define CONNECTOR_MXM_ENUM_ID1 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
569 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | ||
570 | CONNECTOR_OBJECT_ID_MXM << OBJECT_ID_SHIFT) //Mapping to MXM_DP_A | ||
571 | |||
572 | #define CONNECTOR_MXM_ENUM_ID2 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
573 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | ||
574 | CONNECTOR_OBJECT_ID_MXM << OBJECT_ID_SHIFT) //Mapping to MXM_DP_B | ||
575 | |||
576 | #define CONNECTOR_MXM_ENUM_ID3 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
577 | GRAPH_OBJECT_ENUM_ID3 << ENUM_ID_SHIFT |\ | ||
578 | CONNECTOR_OBJECT_ID_MXM << OBJECT_ID_SHIFT) //Mapping to MXM_DP_C | ||
579 | |||
580 | #define CONNECTOR_MXM_ENUM_ID4 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
581 | GRAPH_OBJECT_ENUM_ID4 << ENUM_ID_SHIFT |\ | ||
582 | CONNECTOR_OBJECT_ID_MXM << OBJECT_ID_SHIFT) //Mapping to MXM_DP_D | ||
583 | |||
584 | #define CONNECTOR_MXM_ENUM_ID5 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
585 | GRAPH_OBJECT_ENUM_ID5 << ENUM_ID_SHIFT |\ | ||
586 | CONNECTOR_OBJECT_ID_MXM << OBJECT_ID_SHIFT) //Mapping to MXM_LVDS_TXxx | ||
587 | |||
588 | #define CONNECTOR_MXM_ENUM_ID6 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
589 | GRAPH_OBJECT_ENUM_ID6 << ENUM_ID_SHIFT |\ | ||
590 | CONNECTOR_OBJECT_ID_MXM << OBJECT_ID_SHIFT) //Mapping to MXM_LVDS_UXxx | ||
591 | |||
592 | #define CONNECTOR_MXM_ENUM_ID7 ( GRAPH_OBJECT_TYPE_CONNECTOR << OBJECT_TYPE_SHIFT |\ | ||
593 | GRAPH_OBJECT_ENUM_ID7 << ENUM_ID_SHIFT |\ | ||
594 | CONNECTOR_OBJECT_ID_MXM << OBJECT_ID_SHIFT) //Mapping to MXM_DAC | ||
553 | 595 | ||
554 | /****************************************************/ | 596 | /****************************************************/ |
555 | /* Router Object ID definition - Shared with BIOS */ | 597 | /* Router Object ID definition - Shared with BIOS */ |
556 | /****************************************************/ | 598 | /****************************************************/ |
557 | #define ROUTER_I2C_EXTENDER_CNTL_ENUM_ID1 \ | 599 | #define ROUTER_I2C_EXTENDER_CNTL_ENUM_ID1 ( GRAPH_OBJECT_TYPE_ROUTER << OBJECT_TYPE_SHIFT |\ |
558 | (GRAPH_OBJECT_TYPE_ROUTER << OBJECT_TYPE_SHIFT |\ | 600 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ |
559 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | 601 | ROUTER_OBJECT_ID_I2C_EXTENDER_CNTL << OBJECT_ID_SHIFT) |
560 | ROUTER_OBJECT_ID_I2C_EXTENDER_CNTL << OBJECT_ID_SHIFT) | ||
561 | 602 | ||
562 | /* deleted */ | 603 | /* deleted */ |
563 | 604 | ||
564 | /****************************************************/ | 605 | /****************************************************/ |
606 | /* Generic Object ID definition - Shared with BIOS */ | ||
607 | /****************************************************/ | ||
608 | #define GENERICOBJECT_GLSYNC_ENUM_ID1 (GRAPH_OBJECT_TYPE_GENERIC << OBJECT_TYPE_SHIFT |\ | ||
609 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | ||
610 | GENERIC_OBJECT_ID_GLSYNC << OBJECT_ID_SHIFT) | ||
611 | |||
612 | #define GENERICOBJECT_PX2_NON_DRIVABLE_ID1 (GRAPH_OBJECT_TYPE_GENERIC << OBJECT_TYPE_SHIFT |\ | ||
613 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | ||
614 | GENERIC_OBJECT_ID_PX2_NON_DRIVABLE<< OBJECT_ID_SHIFT) | ||
615 | |||
616 | #define GENERICOBJECT_PX2_NON_DRIVABLE_ID2 (GRAPH_OBJECT_TYPE_GENERIC << OBJECT_TYPE_SHIFT |\ | ||
617 | GRAPH_OBJECT_ENUM_ID2 << ENUM_ID_SHIFT |\ | ||
618 | GENERIC_OBJECT_ID_PX2_NON_DRIVABLE<< OBJECT_ID_SHIFT) | ||
619 | |||
620 | #define GENERICOBJECT_MXM_OPM_ENUM_ID1 (GRAPH_OBJECT_TYPE_GENERIC << OBJECT_TYPE_SHIFT |\ | ||
621 | GRAPH_OBJECT_ENUM_ID1 << ENUM_ID_SHIFT |\ | ||
622 | GENERIC_OBJECT_ID_MXM_OPM << OBJECT_ID_SHIFT) | ||
623 | |||
624 | /****************************************************/ | ||
565 | /* Object Cap definition - Shared with BIOS */ | 625 | /* Object Cap definition - Shared with BIOS */ |
566 | /****************************************************/ | 626 | /****************************************************/ |
567 | #define GRAPHICS_OBJECT_CAP_I2C 0x00000001L | 627 | #define GRAPHICS_OBJECT_CAP_I2C 0x00000001L |
568 | #define GRAPHICS_OBJECT_CAP_TABLE_ID 0x00000002L | 628 | #define GRAPHICS_OBJECT_CAP_TABLE_ID 0x00000002L |
569 | 629 | ||
630 | |||
570 | #define GRAPHICS_OBJECT_I2CCOMMAND_TABLE_ID 0x01 | 631 | #define GRAPHICS_OBJECT_I2CCOMMAND_TABLE_ID 0x01 |
571 | #define GRAPHICS_OBJECT_HOTPLUGDETECTIONINTERUPT_TABLE_ID 0x02 | 632 | #define GRAPHICS_OBJECT_HOTPLUGDETECTIONINTERUPT_TABLE_ID 0x02 |
572 | #define GRAPHICS_OBJECT_ENCODER_OUTPUT_PROTECTION_TABLE_ID 0x03 | 633 | #define GRAPHICS_OBJECT_ENCODER_OUTPUT_PROTECTION_TABLE_ID 0x03 |
@@ -575,4 +636,8 @@ | |||
575 | #pragma pack() | 636 | #pragma pack() |
576 | #endif | 637 | #endif |
577 | 638 | ||
578 | #endif /*GRAPHICTYPE */ | 639 | #endif /*GRAPHICTYPE */ |
640 | |||
641 | |||
642 | |||
643 | |||
diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c index 0d63c4436e7..3eb0ca5b3d7 100644 --- a/drivers/gpu/drm/radeon/atombios_dp.c +++ b/drivers/gpu/drm/radeon/atombios_dp.c | |||
@@ -468,7 +468,8 @@ void radeon_dp_set_link_config(struct drm_connector *connector, | |||
468 | struct radeon_connector *radeon_connector; | 468 | struct radeon_connector *radeon_connector; |
469 | struct radeon_connector_atom_dig *dig_connector; | 469 | struct radeon_connector_atom_dig *dig_connector; |
470 | 470 | ||
471 | if (connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) | 471 | if ((connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) || |
472 | (connector->connector_type != DRM_MODE_CONNECTOR_eDP)) | ||
472 | return; | 473 | return; |
473 | 474 | ||
474 | radeon_connector = to_radeon_connector(connector); | 475 | radeon_connector = to_radeon_connector(connector); |
@@ -582,7 +583,8 @@ void dp_link_train(struct drm_encoder *encoder, | |||
582 | u8 train_set[4]; | 583 | u8 train_set[4]; |
583 | int i; | 584 | int i; |
584 | 585 | ||
585 | if (connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) | 586 | if ((connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) || |
587 | (connector->connector_type != DRM_MODE_CONNECTOR_eDP)) | ||
586 | return; | 588 | return; |
587 | 589 | ||
588 | if (!radeon_encoder->enc_priv) | 590 | if (!radeon_encoder->enc_priv) |
diff --git a/drivers/gpu/drm/radeon/mkregtable.c b/drivers/gpu/drm/radeon/mkregtable.c index 0d79577c157..607241c6a8a 100644 --- a/drivers/gpu/drm/radeon/mkregtable.c +++ b/drivers/gpu/drm/radeon/mkregtable.c | |||
@@ -661,8 +661,10 @@ static int parser_auth(struct table *t, const char *filename) | |||
661 | fseek(file, 0, SEEK_SET); | 661 | fseek(file, 0, SEEK_SET); |
662 | 662 | ||
663 | /* get header */ | 663 | /* get header */ |
664 | if (fgets(buf, 1024, file) == NULL) | 664 | if (fgets(buf, 1024, file) == NULL) { |
665 | fclose(file); | ||
665 | return -1; | 666 | return -1; |
667 | } | ||
666 | 668 | ||
667 | /* first line will contain the last register | 669 | /* first line will contain the last register |
668 | * and gpu name */ | 670 | * and gpu name */ |
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c index 71727460968..8760d66e058 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c | |||
@@ -131,7 +131,8 @@ void r100_hpd_init(struct radeon_device *rdev) | |||
131 | break; | 131 | break; |
132 | } | 132 | } |
133 | } | 133 | } |
134 | r100_irq_set(rdev); | 134 | if (rdev->irq.installed) |
135 | r100_irq_set(rdev); | ||
135 | } | 136 | } |
136 | 137 | ||
137 | void r100_hpd_fini(struct radeon_device *rdev) | 138 | void r100_hpd_fini(struct radeon_device *rdev) |
@@ -243,6 +244,11 @@ int r100_irq_set(struct radeon_device *rdev) | |||
243 | { | 244 | { |
244 | uint32_t tmp = 0; | 245 | uint32_t tmp = 0; |
245 | 246 | ||
247 | if (!rdev->irq.installed) { | ||
248 | WARN(1, "Can't enable IRQ/MSI because no handler is installed.\n"); | ||
249 | WREG32(R_000040_GEN_INT_CNTL, 0); | ||
250 | return -EINVAL; | ||
251 | } | ||
246 | if (rdev->irq.sw_int) { | 252 | if (rdev->irq.sw_int) { |
247 | tmp |= RADEON_SW_INT_ENABLE; | 253 | tmp |= RADEON_SW_INT_ENABLE; |
248 | } | 254 | } |
@@ -356,6 +362,11 @@ void r100_fence_ring_emit(struct radeon_device *rdev, | |||
356 | /* Wait until IDLE & CLEAN */ | 362 | /* Wait until IDLE & CLEAN */ |
357 | radeon_ring_write(rdev, PACKET0(0x1720, 0)); | 363 | radeon_ring_write(rdev, PACKET0(0x1720, 0)); |
358 | radeon_ring_write(rdev, (1 << 16) | (1 << 17)); | 364 | radeon_ring_write(rdev, (1 << 16) | (1 << 17)); |
365 | radeon_ring_write(rdev, PACKET0(RADEON_HOST_PATH_CNTL, 0)); | ||
366 | radeon_ring_write(rdev, rdev->config.r100.hdp_cntl | | ||
367 | RADEON_HDP_READ_BUFFER_INVALIDATE); | ||
368 | radeon_ring_write(rdev, PACKET0(RADEON_HOST_PATH_CNTL, 0)); | ||
369 | radeon_ring_write(rdev, rdev->config.r100.hdp_cntl); | ||
359 | /* Emit fence sequence & fire IRQ */ | 370 | /* Emit fence sequence & fire IRQ */ |
360 | radeon_ring_write(rdev, PACKET0(rdev->fence_drv.scratch_reg, 0)); | 371 | radeon_ring_write(rdev, PACKET0(rdev->fence_drv.scratch_reg, 0)); |
361 | radeon_ring_write(rdev, fence->seq); | 372 | radeon_ring_write(rdev, fence->seq); |
@@ -1713,14 +1724,6 @@ void r100_gpu_init(struct radeon_device *rdev) | |||
1713 | r100_hdp_reset(rdev); | 1724 | r100_hdp_reset(rdev); |
1714 | } | 1725 | } |
1715 | 1726 | ||
1716 | void r100_hdp_flush(struct radeon_device *rdev) | ||
1717 | { | ||
1718 | u32 tmp; | ||
1719 | tmp = RREG32(RADEON_HOST_PATH_CNTL); | ||
1720 | tmp |= RADEON_HDP_READ_BUFFER_INVALIDATE; | ||
1721 | WREG32(RADEON_HOST_PATH_CNTL, tmp); | ||
1722 | } | ||
1723 | |||
1724 | void r100_hdp_reset(struct radeon_device *rdev) | 1727 | void r100_hdp_reset(struct radeon_device *rdev) |
1725 | { | 1728 | { |
1726 | uint32_t tmp; | 1729 | uint32_t tmp; |
@@ -3313,6 +3316,7 @@ static int r100_startup(struct radeon_device *rdev) | |||
3313 | } | 3316 | } |
3314 | /* Enable IRQ */ | 3317 | /* Enable IRQ */ |
3315 | r100_irq_set(rdev); | 3318 | r100_irq_set(rdev); |
3319 | rdev->config.r100.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); | ||
3316 | /* 1M ring buffer */ | 3320 | /* 1M ring buffer */ |
3317 | r = r100_cp_init(rdev, 1024 * 1024); | 3321 | r = r100_cp_init(rdev, 1024 * 1024); |
3318 | if (r) { | 3322 | if (r) { |
@@ -3371,6 +3375,7 @@ void r100_fini(struct radeon_device *rdev) | |||
3371 | radeon_gem_fini(rdev); | 3375 | radeon_gem_fini(rdev); |
3372 | if (rdev->flags & RADEON_IS_PCI) | 3376 | if (rdev->flags & RADEON_IS_PCI) |
3373 | r100_pci_gart_fini(rdev); | 3377 | r100_pci_gart_fini(rdev); |
3378 | radeon_agp_fini(rdev); | ||
3374 | radeon_irq_kms_fini(rdev); | 3379 | radeon_irq_kms_fini(rdev); |
3375 | radeon_fence_driver_fini(rdev); | 3380 | radeon_fence_driver_fini(rdev); |
3376 | radeon_bo_fini(rdev); | 3381 | radeon_bo_fini(rdev); |
diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c index 3f2cc9e2e8d..0051d11b907 100644 --- a/drivers/gpu/drm/radeon/r300.c +++ b/drivers/gpu/drm/radeon/r300.c | |||
@@ -36,7 +36,15 @@ | |||
36 | #include "rv350d.h" | 36 | #include "rv350d.h" |
37 | #include "r300_reg_safe.h" | 37 | #include "r300_reg_safe.h" |
38 | 38 | ||
39 | /* This files gather functions specifics to: r300,r350,rv350,rv370,rv380 */ | 39 | /* This files gather functions specifics to: r300,r350,rv350,rv370,rv380 |
40 | * | ||
41 | * GPU Errata: | ||
42 | * - HOST_PATH_CNTL: r300 family seems to dislike write to HOST_PATH_CNTL | ||
43 | * using MMIO to flush host path read cache, this lead to HARDLOCKUP. | ||
44 | * However, scheduling such write to the ring seems harmless, i suspect | ||
45 | * the CP read collide with the flush somehow, or maybe the MC, hard to | ||
46 | * tell. (Jerome Glisse) | ||
47 | */ | ||
40 | 48 | ||
41 | /* | 49 | /* |
42 | * rv370,rv380 PCIE GART | 50 | * rv370,rv380 PCIE GART |
@@ -178,6 +186,11 @@ void r300_fence_ring_emit(struct radeon_device *rdev, | |||
178 | /* Wait until IDLE & CLEAN */ | 186 | /* Wait until IDLE & CLEAN */ |
179 | radeon_ring_write(rdev, PACKET0(0x1720, 0)); | 187 | radeon_ring_write(rdev, PACKET0(0x1720, 0)); |
180 | radeon_ring_write(rdev, (1 << 17) | (1 << 16) | (1 << 9)); | 188 | radeon_ring_write(rdev, (1 << 17) | (1 << 16) | (1 << 9)); |
189 | radeon_ring_write(rdev, PACKET0(RADEON_HOST_PATH_CNTL, 0)); | ||
190 | radeon_ring_write(rdev, rdev->config.r300.hdp_cntl | | ||
191 | RADEON_HDP_READ_BUFFER_INVALIDATE); | ||
192 | radeon_ring_write(rdev, PACKET0(RADEON_HOST_PATH_CNTL, 0)); | ||
193 | radeon_ring_write(rdev, rdev->config.r300.hdp_cntl); | ||
181 | /* Emit fence sequence & fire IRQ */ | 194 | /* Emit fence sequence & fire IRQ */ |
182 | radeon_ring_write(rdev, PACKET0(rdev->fence_drv.scratch_reg, 0)); | 195 | radeon_ring_write(rdev, PACKET0(rdev->fence_drv.scratch_reg, 0)); |
183 | radeon_ring_write(rdev, fence->seq); | 196 | radeon_ring_write(rdev, fence->seq); |
@@ -1258,6 +1271,7 @@ static int r300_startup(struct radeon_device *rdev) | |||
1258 | } | 1271 | } |
1259 | /* Enable IRQ */ | 1272 | /* Enable IRQ */ |
1260 | r100_irq_set(rdev); | 1273 | r100_irq_set(rdev); |
1274 | rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); | ||
1261 | /* 1M ring buffer */ | 1275 | /* 1M ring buffer */ |
1262 | r = r100_cp_init(rdev, 1024 * 1024); | 1276 | r = r100_cp_init(rdev, 1024 * 1024); |
1263 | if (r) { | 1277 | if (r) { |
@@ -1322,6 +1336,7 @@ void r300_fini(struct radeon_device *rdev) | |||
1322 | rv370_pcie_gart_fini(rdev); | 1336 | rv370_pcie_gart_fini(rdev); |
1323 | if (rdev->flags & RADEON_IS_PCI) | 1337 | if (rdev->flags & RADEON_IS_PCI) |
1324 | r100_pci_gart_fini(rdev); | 1338 | r100_pci_gart_fini(rdev); |
1339 | radeon_agp_fini(rdev); | ||
1325 | radeon_irq_kms_fini(rdev); | 1340 | radeon_irq_kms_fini(rdev); |
1326 | radeon_fence_driver_fini(rdev); | 1341 | radeon_fence_driver_fini(rdev); |
1327 | radeon_bo_fini(rdev); | 1342 | radeon_bo_fini(rdev); |
diff --git a/drivers/gpu/drm/radeon/r420.c b/drivers/gpu/drm/radeon/r420.c index c05a7270cf0..053404e71a9 100644 --- a/drivers/gpu/drm/radeon/r420.c +++ b/drivers/gpu/drm/radeon/r420.c | |||
@@ -30,7 +30,15 @@ | |||
30 | #include "radeon_reg.h" | 30 | #include "radeon_reg.h" |
31 | #include "radeon.h" | 31 | #include "radeon.h" |
32 | #include "atom.h" | 32 | #include "atom.h" |
33 | #include "r100d.h" | ||
33 | #include "r420d.h" | 34 | #include "r420d.h" |
35 | #include "r420_reg_safe.h" | ||
36 | |||
37 | static void r420_set_reg_safe(struct radeon_device *rdev) | ||
38 | { | ||
39 | rdev->config.r300.reg_safe_bm = r420_reg_safe_bm; | ||
40 | rdev->config.r300.reg_safe_bm_size = ARRAY_SIZE(r420_reg_safe_bm); | ||
41 | } | ||
34 | 42 | ||
35 | int r420_mc_init(struct radeon_device *rdev) | 43 | int r420_mc_init(struct radeon_device *rdev) |
36 | { | 44 | { |
@@ -165,6 +173,34 @@ static void r420_clock_resume(struct radeon_device *rdev) | |||
165 | WREG32_PLL(R_00000D_SCLK_CNTL, sclk_cntl); | 173 | WREG32_PLL(R_00000D_SCLK_CNTL, sclk_cntl); |
166 | } | 174 | } |
167 | 175 | ||
176 | static void r420_cp_errata_init(struct radeon_device *rdev) | ||
177 | { | ||
178 | /* RV410 and R420 can lock up if CP DMA to host memory happens | ||
179 | * while the 2D engine is busy. | ||
180 | * | ||
181 | * The proper workaround is to queue a RESYNC at the beginning | ||
182 | * of the CP init, apparently. | ||
183 | */ | ||
184 | radeon_scratch_get(rdev, &rdev->config.r300.resync_scratch); | ||
185 | radeon_ring_lock(rdev, 8); | ||
186 | radeon_ring_write(rdev, PACKET0(R300_CP_RESYNC_ADDR, 1)); | ||
187 | radeon_ring_write(rdev, rdev->config.r300.resync_scratch); | ||
188 | radeon_ring_write(rdev, 0xDEADBEEF); | ||
189 | radeon_ring_unlock_commit(rdev); | ||
190 | } | ||
191 | |||
192 | static void r420_cp_errata_fini(struct radeon_device *rdev) | ||
193 | { | ||
194 | /* Catch the RESYNC we dispatched all the way back, | ||
195 | * at the very beginning of the CP init. | ||
196 | */ | ||
197 | radeon_ring_lock(rdev, 8); | ||
198 | radeon_ring_write(rdev, PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); | ||
199 | radeon_ring_write(rdev, R300_RB3D_DC_FINISH); | ||
200 | radeon_ring_unlock_commit(rdev); | ||
201 | radeon_scratch_free(rdev, rdev->config.r300.resync_scratch); | ||
202 | } | ||
203 | |||
168 | static int r420_startup(struct radeon_device *rdev) | 204 | static int r420_startup(struct radeon_device *rdev) |
169 | { | 205 | { |
170 | int r; | 206 | int r; |
@@ -190,12 +226,14 @@ static int r420_startup(struct radeon_device *rdev) | |||
190 | r420_pipes_init(rdev); | 226 | r420_pipes_init(rdev); |
191 | /* Enable IRQ */ | 227 | /* Enable IRQ */ |
192 | r100_irq_set(rdev); | 228 | r100_irq_set(rdev); |
229 | rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); | ||
193 | /* 1M ring buffer */ | 230 | /* 1M ring buffer */ |
194 | r = r100_cp_init(rdev, 1024 * 1024); | 231 | r = r100_cp_init(rdev, 1024 * 1024); |
195 | if (r) { | 232 | if (r) { |
196 | dev_err(rdev->dev, "failled initializing CP (%d).\n", r); | 233 | dev_err(rdev->dev, "failled initializing CP (%d).\n", r); |
197 | return r; | 234 | return r; |
198 | } | 235 | } |
236 | r420_cp_errata_init(rdev); | ||
199 | r = r100_wb_init(rdev); | 237 | r = r100_wb_init(rdev); |
200 | if (r) { | 238 | if (r) { |
201 | dev_err(rdev->dev, "failled initializing WB (%d).\n", r); | 239 | dev_err(rdev->dev, "failled initializing WB (%d).\n", r); |
@@ -238,6 +276,7 @@ int r420_resume(struct radeon_device *rdev) | |||
238 | 276 | ||
239 | int r420_suspend(struct radeon_device *rdev) | 277 | int r420_suspend(struct radeon_device *rdev) |
240 | { | 278 | { |
279 | r420_cp_errata_fini(rdev); | ||
241 | r100_cp_disable(rdev); | 280 | r100_cp_disable(rdev); |
242 | r100_wb_disable(rdev); | 281 | r100_wb_disable(rdev); |
243 | r100_irq_disable(rdev); | 282 | r100_irq_disable(rdev); |
@@ -346,7 +385,7 @@ int r420_init(struct radeon_device *rdev) | |||
346 | if (r) | 385 | if (r) |
347 | return r; | 386 | return r; |
348 | } | 387 | } |
349 | r300_set_reg_safe(rdev); | 388 | r420_set_reg_safe(rdev); |
350 | rdev->accel_working = true; | 389 | rdev->accel_working = true; |
351 | r = r420_startup(rdev); | 390 | r = r420_startup(rdev); |
352 | if (r) { | 391 | if (r) { |
diff --git a/drivers/gpu/drm/radeon/r520.c b/drivers/gpu/drm/radeon/r520.c index 0f3843b6dac..9a189072f2b 100644 --- a/drivers/gpu/drm/radeon/r520.c +++ b/drivers/gpu/drm/radeon/r520.c | |||
@@ -186,6 +186,7 @@ static int r520_startup(struct radeon_device *rdev) | |||
186 | } | 186 | } |
187 | /* Enable IRQ */ | 187 | /* Enable IRQ */ |
188 | rs600_irq_set(rdev); | 188 | rs600_irq_set(rdev); |
189 | rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); | ||
189 | /* 1M ring buffer */ | 190 | /* 1M ring buffer */ |
190 | r = r100_cp_init(rdev, 1024 * 1024); | 191 | r = r100_cp_init(rdev, 1024 * 1024); |
191 | if (r) { | 192 | if (r) { |
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index a0ac3c134b1..f5ff3490929 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c | |||
@@ -285,7 +285,8 @@ void r600_hpd_init(struct radeon_device *rdev) | |||
285 | } | 285 | } |
286 | } | 286 | } |
287 | } | 287 | } |
288 | r600_irq_set(rdev); | 288 | if (rdev->irq.installed) |
289 | r600_irq_set(rdev); | ||
289 | } | 290 | } |
290 | 291 | ||
291 | void r600_hpd_fini(struct radeon_device *rdev) | 292 | void r600_hpd_fini(struct radeon_device *rdev) |
@@ -726,6 +727,10 @@ int r600_mc_init(struct radeon_device *rdev) | |||
726 | a.full = rfixed_const(100); | 727 | a.full = rfixed_const(100); |
727 | rdev->pm.sclk.full = rfixed_const(rdev->clock.default_sclk); | 728 | rdev->pm.sclk.full = rfixed_const(rdev->clock.default_sclk); |
728 | rdev->pm.sclk.full = rfixed_div(rdev->pm.sclk, a); | 729 | rdev->pm.sclk.full = rfixed_div(rdev->pm.sclk, a); |
730 | |||
731 | if (rdev->flags & RADEON_IS_IGP) | ||
732 | rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev); | ||
733 | |||
729 | return 0; | 734 | return 0; |
730 | } | 735 | } |
731 | 736 | ||
@@ -1384,11 +1389,6 @@ void r600_pciep_wreg(struct radeon_device *rdev, u32 reg, u32 v) | |||
1384 | (void)RREG32(PCIE_PORT_DATA); | 1389 | (void)RREG32(PCIE_PORT_DATA); |
1385 | } | 1390 | } |
1386 | 1391 | ||
1387 | void r600_hdp_flush(struct radeon_device *rdev) | ||
1388 | { | ||
1389 | WREG32(R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL, 0x1); | ||
1390 | } | ||
1391 | |||
1392 | /* | 1392 | /* |
1393 | * CP & Ring | 1393 | * CP & Ring |
1394 | */ | 1394 | */ |
@@ -1785,6 +1785,8 @@ void r600_fence_ring_emit(struct radeon_device *rdev, | |||
1785 | radeon_ring_write(rdev, PACKET3(PACKET3_SET_CONFIG_REG, 1)); | 1785 | radeon_ring_write(rdev, PACKET3(PACKET3_SET_CONFIG_REG, 1)); |
1786 | radeon_ring_write(rdev, ((rdev->fence_drv.scratch_reg - PACKET3_SET_CONFIG_REG_OFFSET) >> 2)); | 1786 | radeon_ring_write(rdev, ((rdev->fence_drv.scratch_reg - PACKET3_SET_CONFIG_REG_OFFSET) >> 2)); |
1787 | radeon_ring_write(rdev, fence->seq); | 1787 | radeon_ring_write(rdev, fence->seq); |
1788 | radeon_ring_write(rdev, PACKET0(R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL, 0)); | ||
1789 | radeon_ring_write(rdev, 1); | ||
1788 | /* CP_INTERRUPT packet 3 no longer exists, use packet 0 */ | 1790 | /* CP_INTERRUPT packet 3 no longer exists, use packet 0 */ |
1789 | radeon_ring_write(rdev, PACKET0(CP_INT_STATUS, 0)); | 1791 | radeon_ring_write(rdev, PACKET0(CP_INT_STATUS, 0)); |
1790 | radeon_ring_write(rdev, RB_INT_STAT); | 1792 | radeon_ring_write(rdev, RB_INT_STAT); |
@@ -2089,8 +2091,7 @@ void r600_fini(struct radeon_device *rdev) | |||
2089 | radeon_gem_fini(rdev); | 2091 | radeon_gem_fini(rdev); |
2090 | radeon_fence_driver_fini(rdev); | 2092 | radeon_fence_driver_fini(rdev); |
2091 | radeon_clocks_fini(rdev); | 2093 | radeon_clocks_fini(rdev); |
2092 | if (rdev->flags & RADEON_IS_AGP) | 2094 | radeon_agp_fini(rdev); |
2093 | radeon_agp_fini(rdev); | ||
2094 | radeon_bo_fini(rdev); | 2095 | radeon_bo_fini(rdev); |
2095 | radeon_atombios_fini(rdev); | 2096 | radeon_atombios_fini(rdev); |
2096 | kfree(rdev->bios); | 2097 | kfree(rdev->bios); |
@@ -2461,6 +2462,10 @@ int r600_irq_set(struct radeon_device *rdev) | |||
2461 | u32 mode_int = 0; | 2462 | u32 mode_int = 0; |
2462 | u32 hpd1, hpd2, hpd3, hpd4 = 0, hpd5 = 0, hpd6 = 0; | 2463 | u32 hpd1, hpd2, hpd3, hpd4 = 0, hpd5 = 0, hpd6 = 0; |
2463 | 2464 | ||
2465 | if (!rdev->irq.installed) { | ||
2466 | WARN(1, "Can't enable IRQ/MSI because no handler is installed.\n"); | ||
2467 | return -EINVAL; | ||
2468 | } | ||
2464 | /* don't enable anything if the ih is disabled */ | 2469 | /* don't enable anything if the ih is disabled */ |
2465 | if (!rdev->ih.enabled) | 2470 | if (!rdev->ih.enabled) |
2466 | return 0; | 2471 | return 0; |
@@ -2724,7 +2729,7 @@ restart_ih: | |||
2724 | } | 2729 | } |
2725 | break; | 2730 | break; |
2726 | default: | 2731 | default: |
2727 | DRM_ERROR("Unhandled interrupt: %d %d\n", src_id, src_data); | 2732 | DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data); |
2728 | break; | 2733 | break; |
2729 | } | 2734 | } |
2730 | break; | 2735 | break; |
@@ -2744,7 +2749,7 @@ restart_ih: | |||
2744 | } | 2749 | } |
2745 | break; | 2750 | break; |
2746 | default: | 2751 | default: |
2747 | DRM_ERROR("Unhandled interrupt: %d %d\n", src_id, src_data); | 2752 | DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data); |
2748 | break; | 2753 | break; |
2749 | } | 2754 | } |
2750 | break; | 2755 | break; |
@@ -2793,7 +2798,7 @@ restart_ih: | |||
2793 | } | 2798 | } |
2794 | break; | 2799 | break; |
2795 | default: | 2800 | default: |
2796 | DRM_ERROR("Unhandled interrupt: %d %d\n", src_id, src_data); | 2801 | DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data); |
2797 | break; | 2802 | break; |
2798 | } | 2803 | } |
2799 | break; | 2804 | break; |
@@ -2807,7 +2812,7 @@ restart_ih: | |||
2807 | DRM_DEBUG("IH: CP EOP\n"); | 2812 | DRM_DEBUG("IH: CP EOP\n"); |
2808 | break; | 2813 | break; |
2809 | default: | 2814 | default: |
2810 | DRM_ERROR("Unhandled interrupt: %d %d\n", src_id, src_data); | 2815 | DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data); |
2811 | break; | 2816 | break; |
2812 | } | 2817 | } |
2813 | 2818 | ||
diff --git a/drivers/gpu/drm/radeon/r600_blit_kms.c b/drivers/gpu/drm/radeon/r600_blit_kms.c index 9aecafb51b6..8787ea89dc6 100644 --- a/drivers/gpu/drm/radeon/r600_blit_kms.c +++ b/drivers/gpu/drm/radeon/r600_blit_kms.c | |||
@@ -577,9 +577,9 @@ int r600_blit_prepare_copy(struct radeon_device *rdev, int size_bytes) | |||
577 | ring_size = num_loops * dwords_per_loop; | 577 | ring_size = num_loops * dwords_per_loop; |
578 | /* set default + shaders */ | 578 | /* set default + shaders */ |
579 | ring_size += 40; /* shaders + def state */ | 579 | ring_size += 40; /* shaders + def state */ |
580 | ring_size += 5; /* fence emit for VB IB */ | 580 | ring_size += 7; /* fence emit for VB IB */ |
581 | ring_size += 5; /* done copy */ | 581 | ring_size += 5; /* done copy */ |
582 | ring_size += 5; /* fence emit for done copy */ | 582 | ring_size += 7; /* fence emit for done copy */ |
583 | r = radeon_ring_lock(rdev, ring_size); | 583 | r = radeon_ring_lock(rdev, ring_size); |
584 | WARN_ON(r); | 584 | WARN_ON(r); |
585 | 585 | ||
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index 53b55608102..eb5f99b9469 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
@@ -319,10 +319,12 @@ struct radeon_mc { | |||
319 | u64 real_vram_size; | 319 | u64 real_vram_size; |
320 | int vram_mtrr; | 320 | int vram_mtrr; |
321 | bool vram_is_ddr; | 321 | bool vram_is_ddr; |
322 | bool igp_sideport_enabled; | ||
322 | }; | 323 | }; |
323 | 324 | ||
324 | int radeon_mc_setup(struct radeon_device *rdev); | 325 | int radeon_mc_setup(struct radeon_device *rdev); |
325 | 326 | bool radeon_combios_sideport_present(struct radeon_device *rdev); | |
327 | bool radeon_atombios_sideport_present(struct radeon_device *rdev); | ||
326 | 328 | ||
327 | /* | 329 | /* |
328 | * GPU scratch registers structures, functions & helpers | 330 | * GPU scratch registers structures, functions & helpers |
@@ -654,7 +656,6 @@ struct radeon_asic { | |||
654 | uint32_t offset, uint32_t obj_size); | 656 | uint32_t offset, uint32_t obj_size); |
655 | int (*clear_surface_reg)(struct radeon_device *rdev, int reg); | 657 | int (*clear_surface_reg)(struct radeon_device *rdev, int reg); |
656 | void (*bandwidth_update)(struct radeon_device *rdev); | 658 | void (*bandwidth_update)(struct radeon_device *rdev); |
657 | void (*hdp_flush)(struct radeon_device *rdev); | ||
658 | void (*hpd_init)(struct radeon_device *rdev); | 659 | void (*hpd_init)(struct radeon_device *rdev); |
659 | void (*hpd_fini)(struct radeon_device *rdev); | 660 | void (*hpd_fini)(struct radeon_device *rdev); |
660 | bool (*hpd_sense)(struct radeon_device *rdev, enum radeon_hpd_id hpd); | 661 | bool (*hpd_sense)(struct radeon_device *rdev, enum radeon_hpd_id hpd); |
@@ -667,11 +668,14 @@ struct radeon_asic { | |||
667 | struct r100_asic { | 668 | struct r100_asic { |
668 | const unsigned *reg_safe_bm; | 669 | const unsigned *reg_safe_bm; |
669 | unsigned reg_safe_bm_size; | 670 | unsigned reg_safe_bm_size; |
671 | u32 hdp_cntl; | ||
670 | }; | 672 | }; |
671 | 673 | ||
672 | struct r300_asic { | 674 | struct r300_asic { |
673 | const unsigned *reg_safe_bm; | 675 | const unsigned *reg_safe_bm; |
674 | unsigned reg_safe_bm_size; | 676 | unsigned reg_safe_bm_size; |
677 | u32 resync_scratch; | ||
678 | u32 hdp_cntl; | ||
675 | }; | 679 | }; |
676 | 680 | ||
677 | struct r600_asic { | 681 | struct r600_asic { |
@@ -1007,7 +1011,6 @@ static inline void radeon_ring_write(struct radeon_device *rdev, uint32_t v) | |||
1007 | #define radeon_set_surface_reg(rdev, r, f, p, o, s) ((rdev)->asic->set_surface_reg((rdev), (r), (f), (p), (o), (s))) | 1011 | #define radeon_set_surface_reg(rdev, r, f, p, o, s) ((rdev)->asic->set_surface_reg((rdev), (r), (f), (p), (o), (s))) |
1008 | #define radeon_clear_surface_reg(rdev, r) ((rdev)->asic->clear_surface_reg((rdev), (r))) | 1012 | #define radeon_clear_surface_reg(rdev, r) ((rdev)->asic->clear_surface_reg((rdev), (r))) |
1009 | #define radeon_bandwidth_update(rdev) (rdev)->asic->bandwidth_update((rdev)) | 1013 | #define radeon_bandwidth_update(rdev) (rdev)->asic->bandwidth_update((rdev)) |
1010 | #define radeon_hdp_flush(rdev) (rdev)->asic->hdp_flush((rdev)) | ||
1011 | #define radeon_hpd_init(rdev) (rdev)->asic->hpd_init((rdev)) | 1014 | #define radeon_hpd_init(rdev) (rdev)->asic->hpd_init((rdev)) |
1012 | #define radeon_hpd_fini(rdev) (rdev)->asic->hpd_fini((rdev)) | 1015 | #define radeon_hpd_fini(rdev) (rdev)->asic->hpd_fini((rdev)) |
1013 | #define radeon_hpd_sense(rdev, hpd) (rdev)->asic->hpd_sense((rdev), (hpd)) | 1016 | #define radeon_hpd_sense(rdev, hpd) (rdev)->asic->hpd_sense((rdev), (hpd)) |
diff --git a/drivers/gpu/drm/radeon/radeon_agp.c b/drivers/gpu/drm/radeon/radeon_agp.c index 54bf49a6d67..220f454ea9f 100644 --- a/drivers/gpu/drm/radeon/radeon_agp.c +++ b/drivers/gpu/drm/radeon/radeon_agp.c | |||
@@ -252,10 +252,8 @@ void radeon_agp_resume(struct radeon_device *rdev) | |||
252 | void radeon_agp_fini(struct radeon_device *rdev) | 252 | void radeon_agp_fini(struct radeon_device *rdev) |
253 | { | 253 | { |
254 | #if __OS_HAS_AGP | 254 | #if __OS_HAS_AGP |
255 | if (rdev->flags & RADEON_IS_AGP) { | 255 | if (rdev->ddev->agp && rdev->ddev->agp->acquired) { |
256 | if (rdev->ddev->agp && rdev->ddev->agp->acquired) { | 256 | drm_agp_release(rdev->ddev); |
257 | drm_agp_release(rdev->ddev); | ||
258 | } | ||
259 | } | 257 | } |
260 | #endif | 258 | #endif |
261 | } | 259 | } |
diff --git a/drivers/gpu/drm/radeon/radeon_asic.h b/drivers/gpu/drm/radeon/radeon_asic.h index eb29217bbf1..f2fbd2e4e9d 100644 --- a/drivers/gpu/drm/radeon/radeon_asic.h +++ b/drivers/gpu/drm/radeon/radeon_asic.h | |||
@@ -77,7 +77,6 @@ int r100_clear_surface_reg(struct radeon_device *rdev, int reg); | |||
77 | void r100_bandwidth_update(struct radeon_device *rdev); | 77 | void r100_bandwidth_update(struct radeon_device *rdev); |
78 | void r100_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib); | 78 | void r100_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib); |
79 | int r100_ring_test(struct radeon_device *rdev); | 79 | int r100_ring_test(struct radeon_device *rdev); |
80 | void r100_hdp_flush(struct radeon_device *rdev); | ||
81 | void r100_hpd_init(struct radeon_device *rdev); | 80 | void r100_hpd_init(struct radeon_device *rdev); |
82 | void r100_hpd_fini(struct radeon_device *rdev); | 81 | void r100_hpd_fini(struct radeon_device *rdev); |
83 | bool r100_hpd_sense(struct radeon_device *rdev, enum radeon_hpd_id hpd); | 82 | bool r100_hpd_sense(struct radeon_device *rdev, enum radeon_hpd_id hpd); |
@@ -114,7 +113,6 @@ static struct radeon_asic r100_asic = { | |||
114 | .set_surface_reg = r100_set_surface_reg, | 113 | .set_surface_reg = r100_set_surface_reg, |
115 | .clear_surface_reg = r100_clear_surface_reg, | 114 | .clear_surface_reg = r100_clear_surface_reg, |
116 | .bandwidth_update = &r100_bandwidth_update, | 115 | .bandwidth_update = &r100_bandwidth_update, |
117 | .hdp_flush = &r100_hdp_flush, | ||
118 | .hpd_init = &r100_hpd_init, | 116 | .hpd_init = &r100_hpd_init, |
119 | .hpd_fini = &r100_hpd_fini, | 117 | .hpd_fini = &r100_hpd_fini, |
120 | .hpd_sense = &r100_hpd_sense, | 118 | .hpd_sense = &r100_hpd_sense, |
@@ -174,7 +172,6 @@ static struct radeon_asic r300_asic = { | |||
174 | .set_surface_reg = r100_set_surface_reg, | 172 | .set_surface_reg = r100_set_surface_reg, |
175 | .clear_surface_reg = r100_clear_surface_reg, | 173 | .clear_surface_reg = r100_clear_surface_reg, |
176 | .bandwidth_update = &r100_bandwidth_update, | 174 | .bandwidth_update = &r100_bandwidth_update, |
177 | .hdp_flush = &r100_hdp_flush, | ||
178 | .hpd_init = &r100_hpd_init, | 175 | .hpd_init = &r100_hpd_init, |
179 | .hpd_fini = &r100_hpd_fini, | 176 | .hpd_fini = &r100_hpd_fini, |
180 | .hpd_sense = &r100_hpd_sense, | 177 | .hpd_sense = &r100_hpd_sense, |
@@ -218,7 +215,6 @@ static struct radeon_asic r420_asic = { | |||
218 | .set_surface_reg = r100_set_surface_reg, | 215 | .set_surface_reg = r100_set_surface_reg, |
219 | .clear_surface_reg = r100_clear_surface_reg, | 216 | .clear_surface_reg = r100_clear_surface_reg, |
220 | .bandwidth_update = &r100_bandwidth_update, | 217 | .bandwidth_update = &r100_bandwidth_update, |
221 | .hdp_flush = &r100_hdp_flush, | ||
222 | .hpd_init = &r100_hpd_init, | 218 | .hpd_init = &r100_hpd_init, |
223 | .hpd_fini = &r100_hpd_fini, | 219 | .hpd_fini = &r100_hpd_fini, |
224 | .hpd_sense = &r100_hpd_sense, | 220 | .hpd_sense = &r100_hpd_sense, |
@@ -267,7 +263,6 @@ static struct radeon_asic rs400_asic = { | |||
267 | .set_surface_reg = r100_set_surface_reg, | 263 | .set_surface_reg = r100_set_surface_reg, |
268 | .clear_surface_reg = r100_clear_surface_reg, | 264 | .clear_surface_reg = r100_clear_surface_reg, |
269 | .bandwidth_update = &r100_bandwidth_update, | 265 | .bandwidth_update = &r100_bandwidth_update, |
270 | .hdp_flush = &r100_hdp_flush, | ||
271 | .hpd_init = &r100_hpd_init, | 266 | .hpd_init = &r100_hpd_init, |
272 | .hpd_fini = &r100_hpd_fini, | 267 | .hpd_fini = &r100_hpd_fini, |
273 | .hpd_sense = &r100_hpd_sense, | 268 | .hpd_sense = &r100_hpd_sense, |
@@ -324,7 +319,6 @@ static struct radeon_asic rs600_asic = { | |||
324 | .set_pcie_lanes = NULL, | 319 | .set_pcie_lanes = NULL, |
325 | .set_clock_gating = &radeon_atom_set_clock_gating, | 320 | .set_clock_gating = &radeon_atom_set_clock_gating, |
326 | .bandwidth_update = &rs600_bandwidth_update, | 321 | .bandwidth_update = &rs600_bandwidth_update, |
327 | .hdp_flush = &r100_hdp_flush, | ||
328 | .hpd_init = &rs600_hpd_init, | 322 | .hpd_init = &rs600_hpd_init, |
329 | .hpd_fini = &rs600_hpd_fini, | 323 | .hpd_fini = &rs600_hpd_fini, |
330 | .hpd_sense = &rs600_hpd_sense, | 324 | .hpd_sense = &rs600_hpd_sense, |
@@ -372,7 +366,6 @@ static struct radeon_asic rs690_asic = { | |||
372 | .set_surface_reg = r100_set_surface_reg, | 366 | .set_surface_reg = r100_set_surface_reg, |
373 | .clear_surface_reg = r100_clear_surface_reg, | 367 | .clear_surface_reg = r100_clear_surface_reg, |
374 | .bandwidth_update = &rs690_bandwidth_update, | 368 | .bandwidth_update = &rs690_bandwidth_update, |
375 | .hdp_flush = &r100_hdp_flush, | ||
376 | .hpd_init = &rs600_hpd_init, | 369 | .hpd_init = &rs600_hpd_init, |
377 | .hpd_fini = &rs600_hpd_fini, | 370 | .hpd_fini = &rs600_hpd_fini, |
378 | .hpd_sense = &rs600_hpd_sense, | 371 | .hpd_sense = &rs600_hpd_sense, |
@@ -424,7 +417,6 @@ static struct radeon_asic rv515_asic = { | |||
424 | .set_surface_reg = r100_set_surface_reg, | 417 | .set_surface_reg = r100_set_surface_reg, |
425 | .clear_surface_reg = r100_clear_surface_reg, | 418 | .clear_surface_reg = r100_clear_surface_reg, |
426 | .bandwidth_update = &rv515_bandwidth_update, | 419 | .bandwidth_update = &rv515_bandwidth_update, |
427 | .hdp_flush = &r100_hdp_flush, | ||
428 | .hpd_init = &rs600_hpd_init, | 420 | .hpd_init = &rs600_hpd_init, |
429 | .hpd_fini = &rs600_hpd_fini, | 421 | .hpd_fini = &rs600_hpd_fini, |
430 | .hpd_sense = &rs600_hpd_sense, | 422 | .hpd_sense = &rs600_hpd_sense, |
@@ -467,7 +459,6 @@ static struct radeon_asic r520_asic = { | |||
467 | .set_surface_reg = r100_set_surface_reg, | 459 | .set_surface_reg = r100_set_surface_reg, |
468 | .clear_surface_reg = r100_clear_surface_reg, | 460 | .clear_surface_reg = r100_clear_surface_reg, |
469 | .bandwidth_update = &rv515_bandwidth_update, | 461 | .bandwidth_update = &rv515_bandwidth_update, |
470 | .hdp_flush = &r100_hdp_flush, | ||
471 | .hpd_init = &rs600_hpd_init, | 462 | .hpd_init = &rs600_hpd_init, |
472 | .hpd_fini = &rs600_hpd_fini, | 463 | .hpd_fini = &rs600_hpd_fini, |
473 | .hpd_sense = &rs600_hpd_sense, | 464 | .hpd_sense = &rs600_hpd_sense, |
@@ -508,7 +499,6 @@ int r600_ring_test(struct radeon_device *rdev); | |||
508 | int r600_copy_blit(struct radeon_device *rdev, | 499 | int r600_copy_blit(struct radeon_device *rdev, |
509 | uint64_t src_offset, uint64_t dst_offset, | 500 | uint64_t src_offset, uint64_t dst_offset, |
510 | unsigned num_pages, struct radeon_fence *fence); | 501 | unsigned num_pages, struct radeon_fence *fence); |
511 | void r600_hdp_flush(struct radeon_device *rdev); | ||
512 | void r600_hpd_init(struct radeon_device *rdev); | 502 | void r600_hpd_init(struct radeon_device *rdev); |
513 | void r600_hpd_fini(struct radeon_device *rdev); | 503 | void r600_hpd_fini(struct radeon_device *rdev); |
514 | bool r600_hpd_sense(struct radeon_device *rdev, enum radeon_hpd_id hpd); | 504 | bool r600_hpd_sense(struct radeon_device *rdev, enum radeon_hpd_id hpd); |
@@ -544,7 +534,6 @@ static struct radeon_asic r600_asic = { | |||
544 | .set_surface_reg = r600_set_surface_reg, | 534 | .set_surface_reg = r600_set_surface_reg, |
545 | .clear_surface_reg = r600_clear_surface_reg, | 535 | .clear_surface_reg = r600_clear_surface_reg, |
546 | .bandwidth_update = &rv515_bandwidth_update, | 536 | .bandwidth_update = &rv515_bandwidth_update, |
547 | .hdp_flush = &r600_hdp_flush, | ||
548 | .hpd_init = &r600_hpd_init, | 537 | .hpd_init = &r600_hpd_init, |
549 | .hpd_fini = &r600_hpd_fini, | 538 | .hpd_fini = &r600_hpd_fini, |
550 | .hpd_sense = &r600_hpd_sense, | 539 | .hpd_sense = &r600_hpd_sense, |
@@ -589,7 +578,6 @@ static struct radeon_asic rv770_asic = { | |||
589 | .set_surface_reg = r600_set_surface_reg, | 578 | .set_surface_reg = r600_set_surface_reg, |
590 | .clear_surface_reg = r600_clear_surface_reg, | 579 | .clear_surface_reg = r600_clear_surface_reg, |
591 | .bandwidth_update = &rv515_bandwidth_update, | 580 | .bandwidth_update = &rv515_bandwidth_update, |
592 | .hdp_flush = &r600_hdp_flush, | ||
593 | .hpd_init = &r600_hpd_init, | 581 | .hpd_init = &r600_hpd_init, |
594 | .hpd_fini = &r600_hpd_fini, | 582 | .hpd_fini = &r600_hpd_fini, |
595 | .hpd_sense = &r600_hpd_sense, | 583 | .hpd_sense = &r600_hpd_sense, |
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c index 321044bef71..fa82ca74324 100644 --- a/drivers/gpu/drm/radeon/radeon_atombios.c +++ b/drivers/gpu/drm/radeon/radeon_atombios.c | |||
@@ -114,6 +114,7 @@ static inline struct radeon_i2c_bus_rec radeon_lookup_i2c_gpio(struct radeon_dev | |||
114 | i2c.i2c_id = gpio->sucI2cId.ucAccess; | 114 | i2c.i2c_id = gpio->sucI2cId.ucAccess; |
115 | 115 | ||
116 | i2c.valid = true; | 116 | i2c.valid = true; |
117 | break; | ||
117 | } | 118 | } |
118 | } | 119 | } |
119 | 120 | ||
@@ -345,7 +346,9 @@ const int object_connector_convert[] = { | |||
345 | DRM_MODE_CONNECTOR_Unknown, | 346 | DRM_MODE_CONNECTOR_Unknown, |
346 | DRM_MODE_CONNECTOR_Unknown, | 347 | DRM_MODE_CONNECTOR_Unknown, |
347 | DRM_MODE_CONNECTOR_Unknown, | 348 | DRM_MODE_CONNECTOR_Unknown, |
348 | DRM_MODE_CONNECTOR_DisplayPort | 349 | DRM_MODE_CONNECTOR_DisplayPort, |
350 | DRM_MODE_CONNECTOR_eDP, | ||
351 | DRM_MODE_CONNECTOR_Unknown | ||
349 | }; | 352 | }; |
350 | 353 | ||
351 | bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev) | 354 | bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev) |
@@ -935,6 +938,43 @@ bool radeon_atom_get_clock_info(struct drm_device *dev) | |||
935 | return false; | 938 | return false; |
936 | } | 939 | } |
937 | 940 | ||
941 | union igp_info { | ||
942 | struct _ATOM_INTEGRATED_SYSTEM_INFO info; | ||
943 | struct _ATOM_INTEGRATED_SYSTEM_INFO_V2 info_2; | ||
944 | }; | ||
945 | |||
946 | bool radeon_atombios_sideport_present(struct radeon_device *rdev) | ||
947 | { | ||
948 | struct radeon_mode_info *mode_info = &rdev->mode_info; | ||
949 | int index = GetIndexIntoMasterTable(DATA, IntegratedSystemInfo); | ||
950 | union igp_info *igp_info; | ||
951 | u8 frev, crev; | ||
952 | u16 data_offset; | ||
953 | |||
954 | atom_parse_data_header(mode_info->atom_context, index, NULL, &frev, | ||
955 | &crev, &data_offset); | ||
956 | |||
957 | igp_info = (union igp_info *)(mode_info->atom_context->bios + | ||
958 | data_offset); | ||
959 | |||
960 | if (igp_info) { | ||
961 | switch (crev) { | ||
962 | case 1: | ||
963 | if (igp_info->info.ucMemoryType & 0xf0) | ||
964 | return true; | ||
965 | break; | ||
966 | case 2: | ||
967 | if (igp_info->info_2.ucMemoryType & 0x0f) | ||
968 | return true; | ||
969 | break; | ||
970 | default: | ||
971 | DRM_ERROR("Unsupported IGP table: %d %d\n", frev, crev); | ||
972 | break; | ||
973 | } | ||
974 | } | ||
975 | return false; | ||
976 | } | ||
977 | |||
938 | bool radeon_atombios_get_tmds_info(struct radeon_encoder *encoder, | 978 | bool radeon_atombios_get_tmds_info(struct radeon_encoder *encoder, |
939 | struct radeon_encoder_int_tmds *tmds) | 979 | struct radeon_encoder_int_tmds *tmds) |
940 | { | 980 | { |
@@ -1026,6 +1066,7 @@ static struct radeon_atom_ss *radeon_atombios_get_ss_info(struct | |||
1026 | ss->delay = ss_info->asSS_Info[i].ucSS_Delay; | 1066 | ss->delay = ss_info->asSS_Info[i].ucSS_Delay; |
1027 | ss->range = ss_info->asSS_Info[i].ucSS_Range; | 1067 | ss->range = ss_info->asSS_Info[i].ucSS_Range; |
1028 | ss->refdiv = ss_info->asSS_Info[i].ucRecommendedRef_Div; | 1068 | ss->refdiv = ss_info->asSS_Info[i].ucRecommendedRef_Div; |
1069 | break; | ||
1029 | } | 1070 | } |
1030 | } | 1071 | } |
1031 | } | 1072 | } |
diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c index fd94dbca33a..579c8920e08 100644 --- a/drivers/gpu/drm/radeon/radeon_combios.c +++ b/drivers/gpu/drm/radeon/radeon_combios.c | |||
@@ -595,6 +595,48 @@ bool radeon_combios_get_clock_info(struct drm_device *dev) | |||
595 | return false; | 595 | return false; |
596 | } | 596 | } |
597 | 597 | ||
598 | bool radeon_combios_sideport_present(struct radeon_device *rdev) | ||
599 | { | ||
600 | struct drm_device *dev = rdev->ddev; | ||
601 | u16 igp_info; | ||
602 | |||
603 | igp_info = combios_get_table_offset(dev, COMBIOS_INTEGRATED_SYSTEM_INFO_TABLE); | ||
604 | |||
605 | if (igp_info) { | ||
606 | if (RBIOS16(igp_info + 0x4)) | ||
607 | return true; | ||
608 | } | ||
609 | return false; | ||
610 | } | ||
611 | |||
612 | static const uint32_t default_primarydac_adj[CHIP_LAST] = { | ||
613 | 0x00000808, /* r100 */ | ||
614 | 0x00000808, /* rv100 */ | ||
615 | 0x00000808, /* rs100 */ | ||
616 | 0x00000808, /* rv200 */ | ||
617 | 0x00000808, /* rs200 */ | ||
618 | 0x00000808, /* r200 */ | ||
619 | 0x00000808, /* rv250 */ | ||
620 | 0x00000000, /* rs300 */ | ||
621 | 0x00000808, /* rv280 */ | ||
622 | 0x00000808, /* r300 */ | ||
623 | 0x00000808, /* r350 */ | ||
624 | 0x00000808, /* rv350 */ | ||
625 | 0x00000808, /* rv380 */ | ||
626 | 0x00000808, /* r420 */ | ||
627 | 0x00000808, /* r423 */ | ||
628 | 0x00000808, /* rv410 */ | ||
629 | 0x00000000, /* rs400 */ | ||
630 | 0x00000000, /* rs480 */ | ||
631 | }; | ||
632 | |||
633 | static void radeon_legacy_get_primary_dac_info_from_table(struct radeon_device *rdev, | ||
634 | struct radeon_encoder_primary_dac *p_dac) | ||
635 | { | ||
636 | p_dac->ps2_pdac_adj = default_primarydac_adj[rdev->family]; | ||
637 | return; | ||
638 | } | ||
639 | |||
598 | struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct | 640 | struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct |
599 | radeon_encoder | 641 | radeon_encoder |
600 | *encoder) | 642 | *encoder) |
@@ -604,20 +646,20 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct | |||
604 | uint16_t dac_info; | 646 | uint16_t dac_info; |
605 | uint8_t rev, bg, dac; | 647 | uint8_t rev, bg, dac; |
606 | struct radeon_encoder_primary_dac *p_dac = NULL; | 648 | struct radeon_encoder_primary_dac *p_dac = NULL; |
649 | int found = 0; | ||
607 | 650 | ||
608 | if (rdev->bios == NULL) | 651 | p_dac = kzalloc(sizeof(struct radeon_encoder_primary_dac), |
652 | GFP_KERNEL); | ||
653 | |||
654 | if (!p_dac) | ||
609 | return NULL; | 655 | return NULL; |
610 | 656 | ||
657 | if (rdev->bios == NULL) | ||
658 | goto out; | ||
659 | |||
611 | /* check CRT table */ | 660 | /* check CRT table */ |
612 | dac_info = combios_get_table_offset(dev, COMBIOS_CRT_INFO_TABLE); | 661 | dac_info = combios_get_table_offset(dev, COMBIOS_CRT_INFO_TABLE); |
613 | if (dac_info) { | 662 | if (dac_info) { |
614 | p_dac = | ||
615 | kzalloc(sizeof(struct radeon_encoder_primary_dac), | ||
616 | GFP_KERNEL); | ||
617 | |||
618 | if (!p_dac) | ||
619 | return NULL; | ||
620 | |||
621 | rev = RBIOS8(dac_info) & 0x3; | 663 | rev = RBIOS8(dac_info) & 0x3; |
622 | if (rev < 2) { | 664 | if (rev < 2) { |
623 | bg = RBIOS8(dac_info + 0x2) & 0xf; | 665 | bg = RBIOS8(dac_info + 0x2) & 0xf; |
@@ -628,9 +670,13 @@ struct radeon_encoder_primary_dac *radeon_combios_get_primary_dac_info(struct | |||
628 | dac = RBIOS8(dac_info + 0x3) & 0xf; | 670 | dac = RBIOS8(dac_info + 0x3) & 0xf; |
629 | p_dac->ps2_pdac_adj = (bg << 8) | (dac); | 671 | p_dac->ps2_pdac_adj = (bg << 8) | (dac); |
630 | } | 672 | } |
631 | 673 | found = 1; | |
632 | } | 674 | } |
633 | 675 | ||
676 | out: | ||
677 | if (!found) /* fallback to defaults */ | ||
678 | radeon_legacy_get_primary_dac_info_from_table(rdev, p_dac); | ||
679 | |||
634 | return p_dac; | 680 | return p_dac; |
635 | } | 681 | } |
636 | 682 | ||
@@ -641,6 +687,9 @@ radeon_combios_get_tv_info(struct radeon_device *rdev) | |||
641 | uint16_t tv_info; | 687 | uint16_t tv_info; |
642 | enum radeon_tv_std tv_std = TV_STD_NTSC; | 688 | enum radeon_tv_std tv_std = TV_STD_NTSC; |
643 | 689 | ||
690 | if (rdev->bios == NULL) | ||
691 | return tv_std; | ||
692 | |||
644 | tv_info = combios_get_table_offset(dev, COMBIOS_TV_INFO_TABLE); | 693 | tv_info = combios_get_table_offset(dev, COMBIOS_TV_INFO_TABLE); |
645 | if (tv_info) { | 694 | if (tv_info) { |
646 | if (RBIOS8(tv_info + 6) == 'T') { | 695 | if (RBIOS8(tv_info + 6) == 'T') { |
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 20161567dbf..55266416fa4 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c | |||
@@ -49,8 +49,10 @@ void radeon_connector_hotplug(struct drm_connector *connector) | |||
49 | if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) | 49 | if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) |
50 | radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd); | 50 | radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd); |
51 | 51 | ||
52 | if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { | 52 | if ((connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) || |
53 | if (radeon_dp_getsinktype(radeon_connector) == CONNECTOR_OBJECT_ID_DISPLAYPORT) { | 53 | (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) { |
54 | if ((radeon_dp_getsinktype(radeon_connector) == CONNECTOR_OBJECT_ID_DISPLAYPORT) || | ||
55 | (radeon_dp_getsinktype(radeon_connector) == CONNECTOR_OBJECT_ID_eDP)) { | ||
54 | if (radeon_dp_needs_link_train(radeon_connector)) { | 56 | if (radeon_dp_needs_link_train(radeon_connector)) { |
55 | if (connector->encoder) | 57 | if (connector->encoder) |
56 | dp_link_train(connector->encoder, connector); | 58 | dp_link_train(connector->encoder, connector); |
@@ -615,7 +617,7 @@ static enum drm_connector_status radeon_vga_detect(struct drm_connector *connect | |||
615 | ret = connector_status_connected; | 617 | ret = connector_status_connected; |
616 | } | 618 | } |
617 | } else { | 619 | } else { |
618 | if (radeon_connector->dac_load_detect) { | 620 | if (radeon_connector->dac_load_detect && encoder) { |
619 | encoder_funcs = encoder->helper_private; | 621 | encoder_funcs = encoder->helper_private; |
620 | ret = encoder_funcs->detect(encoder, connector); | 622 | ret = encoder_funcs->detect(encoder, connector); |
621 | } | 623 | } |
@@ -898,10 +900,18 @@ static void radeon_dvi_force(struct drm_connector *connector) | |||
898 | static int radeon_dvi_mode_valid(struct drm_connector *connector, | 900 | static int radeon_dvi_mode_valid(struct drm_connector *connector, |
899 | struct drm_display_mode *mode) | 901 | struct drm_display_mode *mode) |
900 | { | 902 | { |
903 | struct drm_device *dev = connector->dev; | ||
904 | struct radeon_device *rdev = dev->dev_private; | ||
901 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); | 905 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); |
902 | 906 | ||
903 | /* XXX check mode bandwidth */ | 907 | /* XXX check mode bandwidth */ |
904 | 908 | ||
909 | /* clocks over 135 MHz have heat issues with DVI on RV100 */ | ||
910 | if (radeon_connector->use_digital && | ||
911 | (rdev->family == CHIP_RV100) && | ||
912 | (mode->clock > 135000)) | ||
913 | return MODE_CLOCK_HIGH; | ||
914 | |||
905 | if (radeon_connector->use_digital && (mode->clock > 165000)) { | 915 | if (radeon_connector->use_digital && (mode->clock > 165000)) { |
906 | if ((radeon_connector->connector_object_id == CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I) || | 916 | if ((radeon_connector->connector_object_id == CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I) || |
907 | (radeon_connector->connector_object_id == CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D) || | 917 | (radeon_connector->connector_object_id == CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D) || |
@@ -967,7 +977,8 @@ static enum drm_connector_status radeon_dp_detect(struct drm_connector *connecto | |||
967 | } | 977 | } |
968 | 978 | ||
969 | sink_type = radeon_dp_getsinktype(radeon_connector); | 979 | sink_type = radeon_dp_getsinktype(radeon_connector); |
970 | if (sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) { | 980 | if ((sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) || |
981 | (sink_type == CONNECTOR_OBJECT_ID_eDP)) { | ||
971 | if (radeon_dp_getdpcd(radeon_connector)) { | 982 | if (radeon_dp_getdpcd(radeon_connector)) { |
972 | radeon_dig_connector->dp_sink_type = sink_type; | 983 | radeon_dig_connector->dp_sink_type = sink_type; |
973 | ret = connector_status_connected; | 984 | ret = connector_status_connected; |
@@ -992,7 +1003,8 @@ static int radeon_dp_mode_valid(struct drm_connector *connector, | |||
992 | 1003 | ||
993 | /* XXX check mode bandwidth */ | 1004 | /* XXX check mode bandwidth */ |
994 | 1005 | ||
995 | if (radeon_dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) | 1006 | if ((radeon_dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) || |
1007 | (radeon_dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP)) | ||
996 | return radeon_dp_mode_valid_helper(radeon_connector, mode); | 1008 | return radeon_dp_mode_valid_helper(radeon_connector, mode); |
997 | else | 1009 | else |
998 | return MODE_OK; | 1010 | return MODE_OK; |
@@ -1145,6 +1157,7 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1145 | subpixel_order = SubPixelHorizontalRGB; | 1157 | subpixel_order = SubPixelHorizontalRGB; |
1146 | break; | 1158 | break; |
1147 | case DRM_MODE_CONNECTOR_DisplayPort: | 1159 | case DRM_MODE_CONNECTOR_DisplayPort: |
1160 | case DRM_MODE_CONNECTOR_eDP: | ||
1148 | radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL); | 1161 | radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL); |
1149 | if (!radeon_dig_connector) | 1162 | if (!radeon_dig_connector) |
1150 | goto failed; | 1163 | goto failed; |
@@ -1157,10 +1170,16 @@ radeon_add_atom_connector(struct drm_device *dev, | |||
1157 | goto failed; | 1170 | goto failed; |
1158 | if (i2c_bus->valid) { | 1171 | if (i2c_bus->valid) { |
1159 | /* add DP i2c bus */ | 1172 | /* add DP i2c bus */ |
1160 | radeon_dig_connector->dp_i2c_bus = radeon_i2c_create_dp(dev, i2c_bus, "DP-auxch"); | 1173 | if (connector_type == DRM_MODE_CONNECTOR_eDP) |
1174 | radeon_dig_connector->dp_i2c_bus = radeon_i2c_create_dp(dev, i2c_bus, "eDP-auxch"); | ||
1175 | else | ||
1176 | radeon_dig_connector->dp_i2c_bus = radeon_i2c_create_dp(dev, i2c_bus, "DP-auxch"); | ||
1161 | if (!radeon_dig_connector->dp_i2c_bus) | 1177 | if (!radeon_dig_connector->dp_i2c_bus) |
1162 | goto failed; | 1178 | goto failed; |
1163 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DP"); | 1179 | if (connector_type == DRM_MODE_CONNECTOR_eDP) |
1180 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "eDP"); | ||
1181 | else | ||
1182 | radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DP"); | ||
1164 | if (!radeon_connector->ddc_bus) | 1183 | if (!radeon_connector->ddc_bus) |
1165 | goto failed; | 1184 | goto failed; |
1166 | } | 1185 | } |
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c index 0b2f9c2ad2c..06123ba31d3 100644 --- a/drivers/gpu/drm/radeon/radeon_cp.c +++ b/drivers/gpu/drm/radeon/radeon_cp.c | |||
@@ -2145,6 +2145,7 @@ int radeon_master_create(struct drm_device *dev, struct drm_master *master) | |||
2145 | &master_priv->sarea); | 2145 | &master_priv->sarea); |
2146 | if (ret) { | 2146 | if (ret) { |
2147 | DRM_ERROR("SAREA setup failed\n"); | 2147 | DRM_ERROR("SAREA setup failed\n"); |
2148 | kfree(master_priv); | ||
2148 | return ret; | 2149 | return ret; |
2149 | } | 2150 | } |
2150 | master_priv->sarea_priv = master_priv->sarea->handle + sizeof(struct drm_sarea); | 2151 | master_priv->sarea_priv = master_priv->sarea->handle + sizeof(struct drm_sarea); |
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c index 7c6848096bc..0c51f8e4661 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c | |||
@@ -733,16 +733,18 @@ void radeon_device_fini(struct radeon_device *rdev) | |||
733 | */ | 733 | */ |
734 | int radeon_suspend_kms(struct drm_device *dev, pm_message_t state) | 734 | int radeon_suspend_kms(struct drm_device *dev, pm_message_t state) |
735 | { | 735 | { |
736 | struct radeon_device *rdev = dev->dev_private; | 736 | struct radeon_device *rdev; |
737 | struct drm_crtc *crtc; | 737 | struct drm_crtc *crtc; |
738 | int r; | 738 | int r; |
739 | 739 | ||
740 | if (dev == NULL || rdev == NULL) { | 740 | if (dev == NULL || dev->dev_private == NULL) { |
741 | return -ENODEV; | 741 | return -ENODEV; |
742 | } | 742 | } |
743 | if (state.event == PM_EVENT_PRETHAW) { | 743 | if (state.event == PM_EVENT_PRETHAW) { |
744 | return 0; | 744 | return 0; |
745 | } | 745 | } |
746 | rdev = dev->dev_private; | ||
747 | |||
746 | /* unpin the front buffers */ | 748 | /* unpin the front buffers */ |
747 | list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { | 749 | list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { |
748 | struct radeon_framebuffer *rfb = to_radeon_framebuffer(crtc->fb); | 750 | struct radeon_framebuffer *rfb = to_radeon_framebuffer(crtc->fb); |
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c index 91d72b70abc..0ec491ead2f 100644 --- a/drivers/gpu/drm/radeon/radeon_display.c +++ b/drivers/gpu/drm/radeon/radeon_display.c | |||
@@ -234,7 +234,7 @@ static const char *encoder_names[34] = { | |||
234 | "INTERNAL_UNIPHY2", | 234 | "INTERNAL_UNIPHY2", |
235 | }; | 235 | }; |
236 | 236 | ||
237 | static const char *connector_names[13] = { | 237 | static const char *connector_names[15] = { |
238 | "Unknown", | 238 | "Unknown", |
239 | "VGA", | 239 | "VGA", |
240 | "DVI-I", | 240 | "DVI-I", |
@@ -248,6 +248,8 @@ static const char *connector_names[13] = { | |||
248 | "DisplayPort", | 248 | "DisplayPort", |
249 | "HDMI-A", | 249 | "HDMI-A", |
250 | "HDMI-B", | 250 | "HDMI-B", |
251 | "TV", | ||
252 | "eDP", | ||
251 | }; | 253 | }; |
252 | 254 | ||
253 | static const char *hpd_names[7] = { | 255 | static const char *hpd_names[7] = { |
@@ -329,8 +331,11 @@ static bool radeon_setup_enc_conn(struct drm_device *dev) | |||
329 | ret = radeon_get_atom_connector_info_from_object_table(dev); | 331 | ret = radeon_get_atom_connector_info_from_object_table(dev); |
330 | else | 332 | else |
331 | ret = radeon_get_atom_connector_info_from_supported_devices_table(dev); | 333 | ret = radeon_get_atom_connector_info_from_supported_devices_table(dev); |
332 | } else | 334 | } else { |
333 | ret = radeon_get_legacy_connector_info_from_bios(dev); | 335 | ret = radeon_get_legacy_connector_info_from_bios(dev); |
336 | if (ret == false) | ||
337 | ret = radeon_get_legacy_connector_info_from_table(dev); | ||
338 | } | ||
334 | } else { | 339 | } else { |
335 | if (!ASIC_IS_AVIVO(rdev)) | 340 | if (!ASIC_IS_AVIVO(rdev)) |
336 | ret = radeon_get_legacy_connector_info_from_table(dev); | 341 | ret = radeon_get_legacy_connector_info_from_table(dev); |
@@ -349,7 +354,8 @@ int radeon_ddc_get_modes(struct radeon_connector *radeon_connector) | |||
349 | { | 354 | { |
350 | int ret = 0; | 355 | int ret = 0; |
351 | 356 | ||
352 | if (radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_DisplayPort) { | 357 | if ((radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_DisplayPort) || |
358 | (radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_eDP)) { | ||
353 | struct radeon_connector_atom_dig *dig = radeon_connector->con_priv; | 359 | struct radeon_connector_atom_dig *dig = radeon_connector->con_priv; |
354 | if (dig->dp_i2c_bus) | 360 | if (dig->dp_i2c_bus) |
355 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, &dig->dp_i2c_bus->adapter); | 361 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, &dig->dp_i2c_bus->adapter); |
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c index ccba95f83d1..82eb551970b 100644 --- a/drivers/gpu/drm/radeon/radeon_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_encoders.c | |||
@@ -596,21 +596,23 @@ atombios_get_encoder_mode(struct drm_encoder *encoder) | |||
596 | return ATOM_ENCODER_MODE_LVDS; | 596 | return ATOM_ENCODER_MODE_LVDS; |
597 | break; | 597 | break; |
598 | case DRM_MODE_CONNECTOR_DisplayPort: | 598 | case DRM_MODE_CONNECTOR_DisplayPort: |
599 | case DRM_MODE_CONNECTOR_eDP: | ||
599 | radeon_dig_connector = radeon_connector->con_priv; | 600 | radeon_dig_connector = radeon_connector->con_priv; |
600 | if (radeon_dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) | 601 | if ((radeon_dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) || |
602 | (radeon_dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP)) | ||
601 | return ATOM_ENCODER_MODE_DP; | 603 | return ATOM_ENCODER_MODE_DP; |
602 | else if (drm_detect_hdmi_monitor(radeon_connector->edid)) | 604 | else if (drm_detect_hdmi_monitor(radeon_connector->edid)) |
603 | return ATOM_ENCODER_MODE_HDMI; | 605 | return ATOM_ENCODER_MODE_HDMI; |
604 | else | 606 | else |
605 | return ATOM_ENCODER_MODE_DVI; | 607 | return ATOM_ENCODER_MODE_DVI; |
606 | break; | 608 | break; |
607 | case CONNECTOR_DVI_A: | 609 | case DRM_MODE_CONNECTOR_DVIA: |
608 | case CONNECTOR_VGA: | 610 | case DRM_MODE_CONNECTOR_VGA: |
609 | return ATOM_ENCODER_MODE_CRT; | 611 | return ATOM_ENCODER_MODE_CRT; |
610 | break; | 612 | break; |
611 | case CONNECTOR_STV: | 613 | case DRM_MODE_CONNECTOR_Composite: |
612 | case CONNECTOR_CTV: | 614 | case DRM_MODE_CONNECTOR_SVIDEO: |
613 | case CONNECTOR_DIN: | 615 | case DRM_MODE_CONNECTOR_9PinDIN: |
614 | /* fix me */ | 616 | /* fix me */ |
615 | return ATOM_ENCODER_MODE_TV; | 617 | return ATOM_ENCODER_MODE_TV; |
616 | /*return ATOM_ENCODER_MODE_CV;*/ | 618 | /*return ATOM_ENCODER_MODE_CV;*/ |
diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c index 4cdd8b4f754..8495d4e32e1 100644 --- a/drivers/gpu/drm/radeon/radeon_fence.c +++ b/drivers/gpu/drm/radeon/radeon_fence.c | |||
@@ -140,16 +140,15 @@ int radeon_fence_create(struct radeon_device *rdev, struct radeon_fence **fence) | |||
140 | 140 | ||
141 | bool radeon_fence_signaled(struct radeon_fence *fence) | 141 | bool radeon_fence_signaled(struct radeon_fence *fence) |
142 | { | 142 | { |
143 | struct radeon_device *rdev = fence->rdev; | ||
144 | unsigned long irq_flags; | 143 | unsigned long irq_flags; |
145 | bool signaled = false; | 144 | bool signaled = false; |
146 | 145 | ||
147 | if (rdev->gpu_lockup) { | 146 | if (!fence) |
148 | return true; | 147 | return true; |
149 | } | 148 | |
150 | if (fence == NULL) { | 149 | if (fence->rdev->gpu_lockup) |
151 | return true; | 150 | return true; |
152 | } | 151 | |
153 | write_lock_irqsave(&fence->rdev->fence_drv.lock, irq_flags); | 152 | write_lock_irqsave(&fence->rdev->fence_drv.lock, irq_flags); |
154 | signaled = fence->signaled; | 153 | signaled = fence->signaled; |
155 | /* if we are shuting down report all fence as signaled */ | 154 | /* if we are shuting down report all fence as signaled */ |
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c index 60df2d7e7e4..0e1325e1853 100644 --- a/drivers/gpu/drm/radeon/radeon_gem.c +++ b/drivers/gpu/drm/radeon/radeon_gem.c | |||
@@ -131,7 +131,6 @@ int radeon_gem_set_domain(struct drm_gem_object *gobj, | |||
131 | printk(KERN_ERR "Failed to wait for object !\n"); | 131 | printk(KERN_ERR "Failed to wait for object !\n"); |
132 | return r; | 132 | return r; |
133 | } | 133 | } |
134 | radeon_hdp_flush(robj->rdev); | ||
135 | } | 134 | } |
136 | return 0; | 135 | return 0; |
137 | } | 136 | } |
@@ -312,7 +311,6 @@ int radeon_gem_wait_idle_ioctl(struct drm_device *dev, void *data, | |||
312 | mutex_lock(&dev->struct_mutex); | 311 | mutex_lock(&dev->struct_mutex); |
313 | drm_gem_object_unreference(gobj); | 312 | drm_gem_object_unreference(gobj); |
314 | mutex_unlock(&dev->struct_mutex); | 313 | mutex_unlock(&dev->struct_mutex); |
315 | radeon_hdp_flush(robj->rdev); | ||
316 | return r; | 314 | return r; |
317 | } | 315 | } |
318 | 316 | ||
diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c index b79ecc4a7cc..2f349a30019 100644 --- a/drivers/gpu/drm/radeon/radeon_irq.c +++ b/drivers/gpu/drm/radeon/radeon_irq.c | |||
@@ -289,16 +289,16 @@ int radeon_irq_emit(struct drm_device *dev, void *data, struct drm_file *file_pr | |||
289 | drm_radeon_irq_emit_t *emit = data; | 289 | drm_radeon_irq_emit_t *emit = data; |
290 | int result; | 290 | int result; |
291 | 291 | ||
292 | if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600) | ||
293 | return -EINVAL; | ||
294 | |||
295 | LOCK_TEST_WITH_RETURN(dev, file_priv); | ||
296 | |||
297 | if (!dev_priv) { | 292 | if (!dev_priv) { |
298 | DRM_ERROR("called with no initialization\n"); | 293 | DRM_ERROR("called with no initialization\n"); |
299 | return -EINVAL; | 294 | return -EINVAL; |
300 | } | 295 | } |
301 | 296 | ||
297 | if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600) | ||
298 | return -EINVAL; | ||
299 | |||
300 | LOCK_TEST_WITH_RETURN(dev, file_priv); | ||
301 | |||
302 | result = radeon_emit_irq(dev); | 302 | result = radeon_emit_irq(dev); |
303 | 303 | ||
304 | if (DRM_COPY_TO_USER(emit->irq_seq, &result, sizeof(int))) { | 304 | if (DRM_COPY_TO_USER(emit->irq_seq, &result, sizeof(int))) { |
diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c b/drivers/gpu/drm/radeon/radeon_irq_kms.c index 9223296fe37..3cfd60fd008 100644 --- a/drivers/gpu/drm/radeon/radeon_irq_kms.c +++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c | |||
@@ -97,6 +97,7 @@ void radeon_driver_irq_uninstall_kms(struct drm_device *dev) | |||
97 | rdev->irq.sw_int = false; | 97 | rdev->irq.sw_int = false; |
98 | for (i = 0; i < 2; i++) { | 98 | for (i = 0; i < 2; i++) { |
99 | rdev->irq.crtc_vblank_int[i] = false; | 99 | rdev->irq.crtc_vblank_int[i] = false; |
100 | rdev->irq.hpd[i] = false; | ||
100 | } | 101 | } |
101 | radeon_irq_set(rdev); | 102 | radeon_irq_set(rdev); |
102 | } | 103 | } |
@@ -128,17 +129,22 @@ int radeon_irq_kms_init(struct radeon_device *rdev) | |||
128 | DRM_INFO("radeon: using MSI.\n"); | 129 | DRM_INFO("radeon: using MSI.\n"); |
129 | } | 130 | } |
130 | } | 131 | } |
131 | drm_irq_install(rdev->ddev); | ||
132 | rdev->irq.installed = true; | 132 | rdev->irq.installed = true; |
133 | r = drm_irq_install(rdev->ddev); | ||
134 | if (r) { | ||
135 | rdev->irq.installed = false; | ||
136 | return r; | ||
137 | } | ||
133 | DRM_INFO("radeon: irq initialized.\n"); | 138 | DRM_INFO("radeon: irq initialized.\n"); |
134 | return 0; | 139 | return 0; |
135 | } | 140 | } |
136 | 141 | ||
137 | void radeon_irq_kms_fini(struct radeon_device *rdev) | 142 | void radeon_irq_kms_fini(struct radeon_device *rdev) |
138 | { | 143 | { |
144 | drm_vblank_cleanup(rdev->ddev); | ||
139 | if (rdev->irq.installed) { | 145 | if (rdev->irq.installed) { |
140 | rdev->irq.installed = false; | ||
141 | drm_irq_uninstall(rdev->ddev); | 146 | drm_irq_uninstall(rdev->ddev); |
147 | rdev->irq.installed = false; | ||
142 | if (rdev->msi_enabled) | 148 | if (rdev->msi_enabled) |
143 | pci_disable_msi(rdev->pdev); | 149 | pci_disable_msi(rdev->pdev); |
144 | } | 150 | } |
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c index 981508ff703..38e45e231ef 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c | |||
@@ -46,6 +46,7 @@ static void radeon_legacy_lvds_dpms(struct drm_encoder *encoder, int mode) | |||
46 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | 46 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
47 | uint32_t lvds_gen_cntl, lvds_pll_cntl, pixclks_cntl, disp_pwr_man; | 47 | uint32_t lvds_gen_cntl, lvds_pll_cntl, pixclks_cntl, disp_pwr_man; |
48 | int panel_pwr_delay = 2000; | 48 | int panel_pwr_delay = 2000; |
49 | bool is_mac = false; | ||
49 | DRM_DEBUG("\n"); | 50 | DRM_DEBUG("\n"); |
50 | 51 | ||
51 | if (radeon_encoder->enc_priv) { | 52 | if (radeon_encoder->enc_priv) { |
@@ -58,6 +59,15 @@ static void radeon_legacy_lvds_dpms(struct drm_encoder *encoder, int mode) | |||
58 | } | 59 | } |
59 | } | 60 | } |
60 | 61 | ||
62 | /* macs (and possibly some x86 oem systems?) wire up LVDS strangely | ||
63 | * Taken from radeonfb. | ||
64 | */ | ||
65 | if ((rdev->mode_info.connector_table == CT_IBOOK) || | ||
66 | (rdev->mode_info.connector_table == CT_POWERBOOK_EXTERNAL) || | ||
67 | (rdev->mode_info.connector_table == CT_POWERBOOK_INTERNAL) || | ||
68 | (rdev->mode_info.connector_table == CT_POWERBOOK_VGA)) | ||
69 | is_mac = true; | ||
70 | |||
61 | switch (mode) { | 71 | switch (mode) { |
62 | case DRM_MODE_DPMS_ON: | 72 | case DRM_MODE_DPMS_ON: |
63 | disp_pwr_man = RREG32(RADEON_DISP_PWR_MAN); | 73 | disp_pwr_man = RREG32(RADEON_DISP_PWR_MAN); |
@@ -74,6 +84,8 @@ static void radeon_legacy_lvds_dpms(struct drm_encoder *encoder, int mode) | |||
74 | 84 | ||
75 | lvds_gen_cntl = RREG32(RADEON_LVDS_GEN_CNTL); | 85 | lvds_gen_cntl = RREG32(RADEON_LVDS_GEN_CNTL); |
76 | lvds_gen_cntl |= (RADEON_LVDS_ON | RADEON_LVDS_EN | RADEON_LVDS_DIGON | RADEON_LVDS_BLON); | 86 | lvds_gen_cntl |= (RADEON_LVDS_ON | RADEON_LVDS_EN | RADEON_LVDS_DIGON | RADEON_LVDS_BLON); |
87 | if (is_mac) | ||
88 | lvds_gen_cntl |= RADEON_LVDS_BL_MOD_EN; | ||
77 | lvds_gen_cntl &= ~(RADEON_LVDS_DISPLAY_DIS); | 89 | lvds_gen_cntl &= ~(RADEON_LVDS_DISPLAY_DIS); |
78 | udelay(panel_pwr_delay * 1000); | 90 | udelay(panel_pwr_delay * 1000); |
79 | WREG32(RADEON_LVDS_GEN_CNTL, lvds_gen_cntl); | 91 | WREG32(RADEON_LVDS_GEN_CNTL, lvds_gen_cntl); |
@@ -85,7 +97,14 @@ static void radeon_legacy_lvds_dpms(struct drm_encoder *encoder, int mode) | |||
85 | WREG32_PLL_P(RADEON_PIXCLKS_CNTL, 0, ~RADEON_PIXCLK_LVDS_ALWAYS_ONb); | 97 | WREG32_PLL_P(RADEON_PIXCLKS_CNTL, 0, ~RADEON_PIXCLK_LVDS_ALWAYS_ONb); |
86 | lvds_gen_cntl = RREG32(RADEON_LVDS_GEN_CNTL); | 98 | lvds_gen_cntl = RREG32(RADEON_LVDS_GEN_CNTL); |
87 | lvds_gen_cntl |= RADEON_LVDS_DISPLAY_DIS; | 99 | lvds_gen_cntl |= RADEON_LVDS_DISPLAY_DIS; |
88 | lvds_gen_cntl &= ~(RADEON_LVDS_ON | RADEON_LVDS_BLON | RADEON_LVDS_EN | RADEON_LVDS_DIGON); | 100 | if (is_mac) { |
101 | lvds_gen_cntl &= ~RADEON_LVDS_BL_MOD_EN; | ||
102 | WREG32(RADEON_LVDS_GEN_CNTL, lvds_gen_cntl); | ||
103 | lvds_gen_cntl &= ~(RADEON_LVDS_ON | RADEON_LVDS_EN); | ||
104 | } else { | ||
105 | WREG32(RADEON_LVDS_GEN_CNTL, lvds_gen_cntl); | ||
106 | lvds_gen_cntl &= ~(RADEON_LVDS_ON | RADEON_LVDS_BLON | RADEON_LVDS_EN | RADEON_LVDS_DIGON); | ||
107 | } | ||
89 | udelay(panel_pwr_delay * 1000); | 108 | udelay(panel_pwr_delay * 1000); |
90 | WREG32(RADEON_LVDS_GEN_CNTL, lvds_gen_cntl); | 109 | WREG32(RADEON_LVDS_GEN_CNTL, lvds_gen_cntl); |
91 | WREG32_PLL(RADEON_PIXCLKS_CNTL, pixclks_cntl); | 110 | WREG32_PLL(RADEON_PIXCLKS_CNTL, pixclks_cntl); |
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_tv.c b/drivers/gpu/drm/radeon/radeon_legacy_tv.c index 3a12bb0c056..417684daef4 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_tv.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_tv.c | |||
@@ -77,7 +77,7 @@ struct radeon_tv_mode_constants { | |||
77 | unsigned pix_to_tv; | 77 | unsigned pix_to_tv; |
78 | }; | 78 | }; |
79 | 79 | ||
80 | static const uint16_t hor_timing_NTSC[] = { | 80 | static const uint16_t hor_timing_NTSC[MAX_H_CODE_TIMING_LEN] = { |
81 | 0x0007, | 81 | 0x0007, |
82 | 0x003f, | 82 | 0x003f, |
83 | 0x0263, | 83 | 0x0263, |
@@ -98,7 +98,7 @@ static const uint16_t hor_timing_NTSC[] = { | |||
98 | 0 | 98 | 0 |
99 | }; | 99 | }; |
100 | 100 | ||
101 | static const uint16_t vert_timing_NTSC[] = { | 101 | static const uint16_t vert_timing_NTSC[MAX_V_CODE_TIMING_LEN] = { |
102 | 0x2001, | 102 | 0x2001, |
103 | 0x200d, | 103 | 0x200d, |
104 | 0x1006, | 104 | 0x1006, |
@@ -115,7 +115,7 @@ static const uint16_t vert_timing_NTSC[] = { | |||
115 | 0 | 115 | 0 |
116 | }; | 116 | }; |
117 | 117 | ||
118 | static const uint16_t hor_timing_PAL[] = { | 118 | static const uint16_t hor_timing_PAL[MAX_H_CODE_TIMING_LEN] = { |
119 | 0x0007, | 119 | 0x0007, |
120 | 0x0058, | 120 | 0x0058, |
121 | 0x027c, | 121 | 0x027c, |
@@ -136,7 +136,7 @@ static const uint16_t hor_timing_PAL[] = { | |||
136 | 0 | 136 | 0 |
137 | }; | 137 | }; |
138 | 138 | ||
139 | static const uint16_t vert_timing_PAL[] = { | 139 | static const uint16_t vert_timing_PAL[MAX_V_CODE_TIMING_LEN] = { |
140 | 0x2001, | 140 | 0x2001, |
141 | 0x200c, | 141 | 0x200c, |
142 | 0x1005, | 142 | 0x1005, |
@@ -623,9 +623,9 @@ void radeon_legacy_tv_mode_set(struct drm_encoder *encoder, | |||
623 | } | 623 | } |
624 | flicker_removal = (tmp + 500) / 1000; | 624 | flicker_removal = (tmp + 500) / 1000; |
625 | 625 | ||
626 | if (flicker_removal < 3) | 626 | if (flicker_removal < 2) |
627 | flicker_removal = 3; | 627 | flicker_removal = 2; |
628 | for (i = 0; i < 6; ++i) { | 628 | for (i = 0; i < ARRAY_SIZE(SLOPE_limit); ++i) { |
629 | if (flicker_removal == SLOPE_limit[i]) | 629 | if (flicker_removal == SLOPE_limit[i]) |
630 | break; | 630 | break; |
631 | } | 631 | } |
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h index 402369db5ba..91cb041cb40 100644 --- a/drivers/gpu/drm/radeon/radeon_mode.h +++ b/drivers/gpu/drm/radeon/radeon_mode.h | |||
@@ -46,32 +46,6 @@ struct radeon_device; | |||
46 | #define to_radeon_encoder(x) container_of(x, struct radeon_encoder, base) | 46 | #define to_radeon_encoder(x) container_of(x, struct radeon_encoder, base) |
47 | #define to_radeon_framebuffer(x) container_of(x, struct radeon_framebuffer, base) | 47 | #define to_radeon_framebuffer(x) container_of(x, struct radeon_framebuffer, base) |
48 | 48 | ||
49 | enum radeon_connector_type { | ||
50 | CONNECTOR_NONE, | ||
51 | CONNECTOR_VGA, | ||
52 | CONNECTOR_DVI_I, | ||
53 | CONNECTOR_DVI_D, | ||
54 | CONNECTOR_DVI_A, | ||
55 | CONNECTOR_STV, | ||
56 | CONNECTOR_CTV, | ||
57 | CONNECTOR_LVDS, | ||
58 | CONNECTOR_DIGITAL, | ||
59 | CONNECTOR_SCART, | ||
60 | CONNECTOR_HDMI_TYPE_A, | ||
61 | CONNECTOR_HDMI_TYPE_B, | ||
62 | CONNECTOR_0XC, | ||
63 | CONNECTOR_0XD, | ||
64 | CONNECTOR_DIN, | ||
65 | CONNECTOR_DISPLAY_PORT, | ||
66 | CONNECTOR_UNSUPPORTED | ||
67 | }; | ||
68 | |||
69 | enum radeon_dvi_type { | ||
70 | DVI_AUTO, | ||
71 | DVI_DIGITAL, | ||
72 | DVI_ANALOG | ||
73 | }; | ||
74 | |||
75 | enum radeon_rmx_type { | 49 | enum radeon_rmx_type { |
76 | RMX_OFF, | 50 | RMX_OFF, |
77 | RMX_FULL, | 51 | RMX_FULL, |
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index d9ffe1f56e8..4e636de877b 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c | |||
@@ -221,8 +221,9 @@ int radeon_bo_unpin(struct radeon_bo *bo) | |||
221 | int radeon_bo_evict_vram(struct radeon_device *rdev) | 221 | int radeon_bo_evict_vram(struct radeon_device *rdev) |
222 | { | 222 | { |
223 | if (rdev->flags & RADEON_IS_IGP) { | 223 | if (rdev->flags & RADEON_IS_IGP) { |
224 | /* Useless to evict on IGP chips */ | 224 | if (rdev->mc.igp_sideport_enabled == false) |
225 | return 0; | 225 | /* Useless to evict on IGP chips */ |
226 | return 0; | ||
226 | } | 227 | } |
227 | return ttm_bo_evict_mm(&rdev->mman.bdev, TTM_PL_VRAM); | 228 | return ttm_bo_evict_mm(&rdev->mman.bdev, TTM_PL_VRAM); |
228 | } | 229 | } |
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c index 3b0c07b444a..58b5adf974c 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c | |||
@@ -215,7 +215,10 @@ static void radeon_evict_flags(struct ttm_buffer_object *bo, | |||
215 | rbo = container_of(bo, struct radeon_bo, tbo); | 215 | rbo = container_of(bo, struct radeon_bo, tbo); |
216 | switch (bo->mem.mem_type) { | 216 | switch (bo->mem.mem_type) { |
217 | case TTM_PL_VRAM: | 217 | case TTM_PL_VRAM: |
218 | radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_GTT); | 218 | if (rbo->rdev->cp.ready == false) |
219 | radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_CPU); | ||
220 | else | ||
221 | radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_GTT); | ||
219 | break; | 222 | break; |
220 | case TTM_PL_TT: | 223 | case TTM_PL_TT: |
221 | default: | 224 | default: |
diff --git a/drivers/gpu/drm/radeon/reg_srcs/r420 b/drivers/gpu/drm/radeon/reg_srcs/r420 new file mode 100644 index 00000000000..989f7a02083 --- /dev/null +++ b/drivers/gpu/drm/radeon/reg_srcs/r420 | |||
@@ -0,0 +1,795 @@ | |||
1 | r420 0x4f60 | ||
2 | 0x1434 SRC_Y_X | ||
3 | 0x1438 DST_Y_X | ||
4 | 0x143C DST_HEIGHT_WIDTH | ||
5 | 0x146C DP_GUI_MASTER_CNTL | ||
6 | 0x1474 BRUSH_Y_X | ||
7 | 0x1478 DP_BRUSH_BKGD_CLR | ||
8 | 0x147C DP_BRUSH_FRGD_CLR | ||
9 | 0x1480 BRUSH_DATA0 | ||
10 | 0x1484 BRUSH_DATA1 | ||
11 | 0x1598 DST_WIDTH_HEIGHT | ||
12 | 0x15C0 CLR_CMP_CNTL | ||
13 | 0x15C4 CLR_CMP_CLR_SRC | ||
14 | 0x15C8 CLR_CMP_CLR_DST | ||
15 | 0x15CC CLR_CMP_MSK | ||
16 | 0x15D8 DP_SRC_FRGD_CLR | ||
17 | 0x15DC DP_SRC_BKGD_CLR | ||
18 | 0x1600 DST_LINE_START | ||
19 | 0x1604 DST_LINE_END | ||
20 | 0x1608 DST_LINE_PATCOUNT | ||
21 | 0x16C0 DP_CNTL | ||
22 | 0x16CC DP_WRITE_MSK | ||
23 | 0x16D0 DP_CNTL_XDIR_YDIR_YMAJOR | ||
24 | 0x16E8 DEFAULT_SC_BOTTOM_RIGHT | ||
25 | 0x16EC SC_TOP_LEFT | ||
26 | 0x16F0 SC_BOTTOM_RIGHT | ||
27 | 0x16F4 SRC_SC_BOTTOM_RIGHT | ||
28 | 0x1714 DSTCACHE_CTLSTAT | ||
29 | 0x1720 WAIT_UNTIL | ||
30 | 0x172C RBBM_GUICNTL | ||
31 | 0x1D98 VAP_VPORT_XSCALE | ||
32 | 0x1D9C VAP_VPORT_XOFFSET | ||
33 | 0x1DA0 VAP_VPORT_YSCALE | ||
34 | 0x1DA4 VAP_VPORT_YOFFSET | ||
35 | 0x1DA8 VAP_VPORT_ZSCALE | ||
36 | 0x1DAC VAP_VPORT_ZOFFSET | ||
37 | 0x2080 VAP_CNTL | ||
38 | 0x2090 VAP_OUT_VTX_FMT_0 | ||
39 | 0x2094 VAP_OUT_VTX_FMT_1 | ||
40 | 0x20B0 VAP_VTE_CNTL | ||
41 | 0x2138 VAP_VF_MIN_VTX_INDX | ||
42 | 0x2140 VAP_CNTL_STATUS | ||
43 | 0x2150 VAP_PROG_STREAM_CNTL_0 | ||
44 | 0x2154 VAP_PROG_STREAM_CNTL_1 | ||
45 | 0x2158 VAP_PROG_STREAM_CNTL_2 | ||
46 | 0x215C VAP_PROG_STREAM_CNTL_3 | ||
47 | 0x2160 VAP_PROG_STREAM_CNTL_4 | ||
48 | 0x2164 VAP_PROG_STREAM_CNTL_5 | ||
49 | 0x2168 VAP_PROG_STREAM_CNTL_6 | ||
50 | 0x216C VAP_PROG_STREAM_CNTL_7 | ||
51 | 0x2180 VAP_VTX_STATE_CNTL | ||
52 | 0x2184 VAP_VSM_VTX_ASSM | ||
53 | 0x2188 VAP_VTX_STATE_IND_REG_0 | ||
54 | 0x218C VAP_VTX_STATE_IND_REG_1 | ||
55 | 0x2190 VAP_VTX_STATE_IND_REG_2 | ||
56 | 0x2194 VAP_VTX_STATE_IND_REG_3 | ||
57 | 0x2198 VAP_VTX_STATE_IND_REG_4 | ||
58 | 0x219C VAP_VTX_STATE_IND_REG_5 | ||
59 | 0x21A0 VAP_VTX_STATE_IND_REG_6 | ||
60 | 0x21A4 VAP_VTX_STATE_IND_REG_7 | ||
61 | 0x21A8 VAP_VTX_STATE_IND_REG_8 | ||
62 | 0x21AC VAP_VTX_STATE_IND_REG_9 | ||
63 | 0x21B0 VAP_VTX_STATE_IND_REG_10 | ||
64 | 0x21B4 VAP_VTX_STATE_IND_REG_11 | ||
65 | 0x21B8 VAP_VTX_STATE_IND_REG_12 | ||
66 | 0x21BC VAP_VTX_STATE_IND_REG_13 | ||
67 | 0x21C0 VAP_VTX_STATE_IND_REG_14 | ||
68 | 0x21C4 VAP_VTX_STATE_IND_REG_15 | ||
69 | 0x21DC VAP_PSC_SGN_NORM_CNTL | ||
70 | 0x21E0 VAP_PROG_STREAM_CNTL_EXT_0 | ||
71 | 0x21E4 VAP_PROG_STREAM_CNTL_EXT_1 | ||
72 | 0x21E8 VAP_PROG_STREAM_CNTL_EXT_2 | ||
73 | 0x21EC VAP_PROG_STREAM_CNTL_EXT_3 | ||
74 | 0x21F0 VAP_PROG_STREAM_CNTL_EXT_4 | ||
75 | 0x21F4 VAP_PROG_STREAM_CNTL_EXT_5 | ||
76 | 0x21F8 VAP_PROG_STREAM_CNTL_EXT_6 | ||
77 | 0x21FC VAP_PROG_STREAM_CNTL_EXT_7 | ||
78 | 0x2200 VAP_PVS_VECTOR_INDX_REG | ||
79 | 0x2204 VAP_PVS_VECTOR_DATA_REG | ||
80 | 0x2208 VAP_PVS_VECTOR_DATA_REG_128 | ||
81 | 0x221C VAP_CLIP_CNTL | ||
82 | 0x2220 VAP_GB_VERT_CLIP_ADJ | ||
83 | 0x2224 VAP_GB_VERT_DISC_ADJ | ||
84 | 0x2228 VAP_GB_HORZ_CLIP_ADJ | ||
85 | 0x222C VAP_GB_HORZ_DISC_ADJ | ||
86 | 0x2230 VAP_PVS_FLOW_CNTL_ADDRS_0 | ||
87 | 0x2234 VAP_PVS_FLOW_CNTL_ADDRS_1 | ||
88 | 0x2238 VAP_PVS_FLOW_CNTL_ADDRS_2 | ||
89 | 0x223C VAP_PVS_FLOW_CNTL_ADDRS_3 | ||
90 | 0x2240 VAP_PVS_FLOW_CNTL_ADDRS_4 | ||
91 | 0x2244 VAP_PVS_FLOW_CNTL_ADDRS_5 | ||
92 | 0x2248 VAP_PVS_FLOW_CNTL_ADDRS_6 | ||
93 | 0x224C VAP_PVS_FLOW_CNTL_ADDRS_7 | ||
94 | 0x2250 VAP_PVS_FLOW_CNTL_ADDRS_8 | ||
95 | 0x2254 VAP_PVS_FLOW_CNTL_ADDRS_9 | ||
96 | 0x2258 VAP_PVS_FLOW_CNTL_ADDRS_10 | ||
97 | 0x225C VAP_PVS_FLOW_CNTL_ADDRS_11 | ||
98 | 0x2260 VAP_PVS_FLOW_CNTL_ADDRS_12 | ||
99 | 0x2264 VAP_PVS_FLOW_CNTL_ADDRS_13 | ||
100 | 0x2268 VAP_PVS_FLOW_CNTL_ADDRS_14 | ||
101 | 0x226C VAP_PVS_FLOW_CNTL_ADDRS_15 | ||
102 | 0x2284 VAP_PVS_STATE_FLUSH_REG | ||
103 | 0x2288 VAP_PVS_VTX_TIMEOUT_REG | ||
104 | 0x2290 VAP_PVS_FLOW_CNTL_LOOP_INDEX_0 | ||
105 | 0x2294 VAP_PVS_FLOW_CNTL_LOOP_INDEX_1 | ||
106 | 0x2298 VAP_PVS_FLOW_CNTL_LOOP_INDEX_2 | ||
107 | 0x229C VAP_PVS_FLOW_CNTL_LOOP_INDEX_3 | ||
108 | 0x22A0 VAP_PVS_FLOW_CNTL_LOOP_INDEX_4 | ||
109 | 0x22A4 VAP_PVS_FLOW_CNTL_LOOP_INDEX_5 | ||
110 | 0x22A8 VAP_PVS_FLOW_CNTL_LOOP_INDEX_6 | ||
111 | 0x22AC VAP_PVS_FLOW_CNTL_LOOP_INDEX_7 | ||
112 | 0x22B0 VAP_PVS_FLOW_CNTL_LOOP_INDEX_8 | ||
113 | 0x22B4 VAP_PVS_FLOW_CNTL_LOOP_INDEX_9 | ||
114 | 0x22B8 VAP_PVS_FLOW_CNTL_LOOP_INDEX_10 | ||
115 | 0x22BC VAP_PVS_FLOW_CNTL_LOOP_INDEX_11 | ||
116 | 0x22C0 VAP_PVS_FLOW_CNTL_LOOP_INDEX_12 | ||
117 | 0x22C4 VAP_PVS_FLOW_CNTL_LOOP_INDEX_13 | ||
118 | 0x22C8 VAP_PVS_FLOW_CNTL_LOOP_INDEX_14 | ||
119 | 0x22CC VAP_PVS_FLOW_CNTL_LOOP_INDEX_15 | ||
120 | 0x22D0 VAP_PVS_CODE_CNTL_0 | ||
121 | 0x22D4 VAP_PVS_CONST_CNTL | ||
122 | 0x22D8 VAP_PVS_CODE_CNTL_1 | ||
123 | 0x22DC VAP_PVS_FLOW_CNTL_OPC | ||
124 | 0x342C RB2D_DSTCACHE_CTLSTAT | ||
125 | 0x4000 GB_VAP_RASTER_VTX_FMT_0 | ||
126 | 0x4004 GB_VAP_RASTER_VTX_FMT_1 | ||
127 | 0x4008 GB_ENABLE | ||
128 | 0x401C GB_SELECT | ||
129 | 0x4020 GB_AA_CONFIG | ||
130 | 0x4024 GB_FIFO_SIZE | ||
131 | 0x4100 TX_INVALTAGS | ||
132 | 0x4200 GA_POINT_S0 | ||
133 | 0x4204 GA_POINT_T0 | ||
134 | 0x4208 GA_POINT_S1 | ||
135 | 0x420C GA_POINT_T1 | ||
136 | 0x4214 GA_TRIANGLE_STIPPLE | ||
137 | 0x421C GA_POINT_SIZE | ||
138 | 0x4230 GA_POINT_MINMAX | ||
139 | 0x4234 GA_LINE_CNTL | ||
140 | 0x4238 GA_LINE_STIPPLE_CONFIG | ||
141 | 0x4260 GA_LINE_STIPPLE_VALUE | ||
142 | 0x4264 GA_LINE_S0 | ||
143 | 0x4268 GA_LINE_S1 | ||
144 | 0x4278 GA_COLOR_CONTROL | ||
145 | 0x427C GA_SOLID_RG | ||
146 | 0x4280 GA_SOLID_BA | ||
147 | 0x4288 GA_POLY_MODE | ||
148 | 0x428C GA_ROUND_MODE | ||
149 | 0x4290 GA_OFFSET | ||
150 | 0x4294 GA_FOG_SCALE | ||
151 | 0x4298 GA_FOG_OFFSET | ||
152 | 0x42A0 SU_TEX_WRAP | ||
153 | 0x42A4 SU_POLY_OFFSET_FRONT_SCALE | ||
154 | 0x42A8 SU_POLY_OFFSET_FRONT_OFFSET | ||
155 | 0x42AC SU_POLY_OFFSET_BACK_SCALE | ||
156 | 0x42B0 SU_POLY_OFFSET_BACK_OFFSET | ||
157 | 0x42B4 SU_POLY_OFFSET_ENABLE | ||
158 | 0x42B8 SU_CULL_MODE | ||
159 | 0x42C0 SU_DEPTH_SCALE | ||
160 | 0x42C4 SU_DEPTH_OFFSET | ||
161 | 0x42C8 SU_REG_DEST | ||
162 | 0x4300 RS_COUNT | ||
163 | 0x4304 RS_INST_COUNT | ||
164 | 0x4310 RS_IP_0 | ||
165 | 0x4314 RS_IP_1 | ||
166 | 0x4318 RS_IP_2 | ||
167 | 0x431C RS_IP_3 | ||
168 | 0x4320 RS_IP_4 | ||
169 | 0x4324 RS_IP_5 | ||
170 | 0x4328 RS_IP_6 | ||
171 | 0x432C RS_IP_7 | ||
172 | 0x4330 RS_INST_0 | ||
173 | 0x4334 RS_INST_1 | ||
174 | 0x4338 RS_INST_2 | ||
175 | 0x433C RS_INST_3 | ||
176 | 0x4340 RS_INST_4 | ||
177 | 0x4344 RS_INST_5 | ||
178 | 0x4348 RS_INST_6 | ||
179 | 0x434C RS_INST_7 | ||
180 | 0x4350 RS_INST_8 | ||
181 | 0x4354 RS_INST_9 | ||
182 | 0x4358 RS_INST_10 | ||
183 | 0x435C RS_INST_11 | ||
184 | 0x4360 RS_INST_12 | ||
185 | 0x4364 RS_INST_13 | ||
186 | 0x4368 RS_INST_14 | ||
187 | 0x436C RS_INST_15 | ||
188 | 0x43A4 SC_HYPERZ_EN | ||
189 | 0x43A8 SC_EDGERULE | ||
190 | 0x43B0 SC_CLIP_0_A | ||
191 | 0x43B4 SC_CLIP_0_B | ||
192 | 0x43B8 SC_CLIP_1_A | ||
193 | 0x43BC SC_CLIP_1_B | ||
194 | 0x43C0 SC_CLIP_2_A | ||
195 | 0x43C4 SC_CLIP_2_B | ||
196 | 0x43C8 SC_CLIP_3_A | ||
197 | 0x43CC SC_CLIP_3_B | ||
198 | 0x43D0 SC_CLIP_RULE | ||
199 | 0x43E0 SC_SCISSOR0 | ||
200 | 0x43E8 SC_SCREENDOOR | ||
201 | 0x4440 TX_FILTER1_0 | ||
202 | 0x4444 TX_FILTER1_1 | ||
203 | 0x4448 TX_FILTER1_2 | ||
204 | 0x444C TX_FILTER1_3 | ||
205 | 0x4450 TX_FILTER1_4 | ||
206 | 0x4454 TX_FILTER1_5 | ||
207 | 0x4458 TX_FILTER1_6 | ||
208 | 0x445C TX_FILTER1_7 | ||
209 | 0x4460 TX_FILTER1_8 | ||
210 | 0x4464 TX_FILTER1_9 | ||
211 | 0x4468 TX_FILTER1_10 | ||
212 | 0x446C TX_FILTER1_11 | ||
213 | 0x4470 TX_FILTER1_12 | ||
214 | 0x4474 TX_FILTER1_13 | ||
215 | 0x4478 TX_FILTER1_14 | ||
216 | 0x447C TX_FILTER1_15 | ||
217 | 0x4580 TX_CHROMA_KEY_0 | ||
218 | 0x4584 TX_CHROMA_KEY_1 | ||
219 | 0x4588 TX_CHROMA_KEY_2 | ||
220 | 0x458C TX_CHROMA_KEY_3 | ||
221 | 0x4590 TX_CHROMA_KEY_4 | ||
222 | 0x4594 TX_CHROMA_KEY_5 | ||
223 | 0x4598 TX_CHROMA_KEY_6 | ||
224 | 0x459C TX_CHROMA_KEY_7 | ||
225 | 0x45A0 TX_CHROMA_KEY_8 | ||
226 | 0x45A4 TX_CHROMA_KEY_9 | ||
227 | 0x45A8 TX_CHROMA_KEY_10 | ||
228 | 0x45AC TX_CHROMA_KEY_11 | ||
229 | 0x45B0 TX_CHROMA_KEY_12 | ||
230 | 0x45B4 TX_CHROMA_KEY_13 | ||
231 | 0x45B8 TX_CHROMA_KEY_14 | ||
232 | 0x45BC TX_CHROMA_KEY_15 | ||
233 | 0x45C0 TX_BORDER_COLOR_0 | ||
234 | 0x45C4 TX_BORDER_COLOR_1 | ||
235 | 0x45C8 TX_BORDER_COLOR_2 | ||
236 | 0x45CC TX_BORDER_COLOR_3 | ||
237 | 0x45D0 TX_BORDER_COLOR_4 | ||
238 | 0x45D4 TX_BORDER_COLOR_5 | ||
239 | 0x45D8 TX_BORDER_COLOR_6 | ||
240 | 0x45DC TX_BORDER_COLOR_7 | ||
241 | 0x45E0 TX_BORDER_COLOR_8 | ||
242 | 0x45E4 TX_BORDER_COLOR_9 | ||
243 | 0x45E8 TX_BORDER_COLOR_10 | ||
244 | 0x45EC TX_BORDER_COLOR_11 | ||
245 | 0x45F0 TX_BORDER_COLOR_12 | ||
246 | 0x45F4 TX_BORDER_COLOR_13 | ||
247 | 0x45F8 TX_BORDER_COLOR_14 | ||
248 | 0x45FC TX_BORDER_COLOR_15 | ||
249 | 0x4600 US_CONFIG | ||
250 | 0x4604 US_PIXSIZE | ||
251 | 0x4608 US_CODE_OFFSET | ||
252 | 0x460C US_RESET | ||
253 | 0x4610 US_CODE_ADDR_0 | ||
254 | 0x4614 US_CODE_ADDR_1 | ||
255 | 0x4618 US_CODE_ADDR_2 | ||
256 | 0x461C US_CODE_ADDR_3 | ||
257 | 0x4620 US_TEX_INST_0 | ||
258 | 0x4624 US_TEX_INST_1 | ||
259 | 0x4628 US_TEX_INST_2 | ||
260 | 0x462C US_TEX_INST_3 | ||
261 | 0x4630 US_TEX_INST_4 | ||
262 | 0x4634 US_TEX_INST_5 | ||
263 | 0x4638 US_TEX_INST_6 | ||
264 | 0x463C US_TEX_INST_7 | ||
265 | 0x4640 US_TEX_INST_8 | ||
266 | 0x4644 US_TEX_INST_9 | ||
267 | 0x4648 US_TEX_INST_10 | ||
268 | 0x464C US_TEX_INST_11 | ||
269 | 0x4650 US_TEX_INST_12 | ||
270 | 0x4654 US_TEX_INST_13 | ||
271 | 0x4658 US_TEX_INST_14 | ||
272 | 0x465C US_TEX_INST_15 | ||
273 | 0x4660 US_TEX_INST_16 | ||
274 | 0x4664 US_TEX_INST_17 | ||
275 | 0x4668 US_TEX_INST_18 | ||
276 | 0x466C US_TEX_INST_19 | ||
277 | 0x4670 US_TEX_INST_20 | ||
278 | 0x4674 US_TEX_INST_21 | ||
279 | 0x4678 US_TEX_INST_22 | ||
280 | 0x467C US_TEX_INST_23 | ||
281 | 0x4680 US_TEX_INST_24 | ||
282 | 0x4684 US_TEX_INST_25 | ||
283 | 0x4688 US_TEX_INST_26 | ||
284 | 0x468C US_TEX_INST_27 | ||
285 | 0x4690 US_TEX_INST_28 | ||
286 | 0x4694 US_TEX_INST_29 | ||
287 | 0x4698 US_TEX_INST_30 | ||
288 | 0x469C US_TEX_INST_31 | ||
289 | 0x46A4 US_OUT_FMT_0 | ||
290 | 0x46A8 US_OUT_FMT_1 | ||
291 | 0x46AC US_OUT_FMT_2 | ||
292 | 0x46B0 US_OUT_FMT_3 | ||
293 | 0x46B4 US_W_FMT | ||
294 | 0x46B8 US_CODE_BANK | ||
295 | 0x46BC US_CODE_EXT | ||
296 | 0x46C0 US_ALU_RGB_ADDR_0 | ||
297 | 0x46C4 US_ALU_RGB_ADDR_1 | ||
298 | 0x46C8 US_ALU_RGB_ADDR_2 | ||
299 | 0x46CC US_ALU_RGB_ADDR_3 | ||
300 | 0x46D0 US_ALU_RGB_ADDR_4 | ||
301 | 0x46D4 US_ALU_RGB_ADDR_5 | ||
302 | 0x46D8 US_ALU_RGB_ADDR_6 | ||
303 | 0x46DC US_ALU_RGB_ADDR_7 | ||
304 | 0x46E0 US_ALU_RGB_ADDR_8 | ||
305 | 0x46E4 US_ALU_RGB_ADDR_9 | ||
306 | 0x46E8 US_ALU_RGB_ADDR_10 | ||
307 | 0x46EC US_ALU_RGB_ADDR_11 | ||
308 | 0x46F0 US_ALU_RGB_ADDR_12 | ||
309 | 0x46F4 US_ALU_RGB_ADDR_13 | ||
310 | 0x46F8 US_ALU_RGB_ADDR_14 | ||
311 | 0x46FC US_ALU_RGB_ADDR_15 | ||
312 | 0x4700 US_ALU_RGB_ADDR_16 | ||
313 | 0x4704 US_ALU_RGB_ADDR_17 | ||
314 | 0x4708 US_ALU_RGB_ADDR_18 | ||
315 | 0x470C US_ALU_RGB_ADDR_19 | ||
316 | 0x4710 US_ALU_RGB_ADDR_20 | ||
317 | 0x4714 US_ALU_RGB_ADDR_21 | ||
318 | 0x4718 US_ALU_RGB_ADDR_22 | ||
319 | 0x471C US_ALU_RGB_ADDR_23 | ||
320 | 0x4720 US_ALU_RGB_ADDR_24 | ||
321 | 0x4724 US_ALU_RGB_ADDR_25 | ||
322 | 0x4728 US_ALU_RGB_ADDR_26 | ||
323 | 0x472C US_ALU_RGB_ADDR_27 | ||
324 | 0x4730 US_ALU_RGB_ADDR_28 | ||
325 | 0x4734 US_ALU_RGB_ADDR_29 | ||
326 | 0x4738 US_ALU_RGB_ADDR_30 | ||
327 | 0x473C US_ALU_RGB_ADDR_31 | ||
328 | 0x4740 US_ALU_RGB_ADDR_32 | ||
329 | 0x4744 US_ALU_RGB_ADDR_33 | ||
330 | 0x4748 US_ALU_RGB_ADDR_34 | ||
331 | 0x474C US_ALU_RGB_ADDR_35 | ||
332 | 0x4750 US_ALU_RGB_ADDR_36 | ||
333 | 0x4754 US_ALU_RGB_ADDR_37 | ||
334 | 0x4758 US_ALU_RGB_ADDR_38 | ||
335 | 0x475C US_ALU_RGB_ADDR_39 | ||
336 | 0x4760 US_ALU_RGB_ADDR_40 | ||
337 | 0x4764 US_ALU_RGB_ADDR_41 | ||
338 | 0x4768 US_ALU_RGB_ADDR_42 | ||
339 | 0x476C US_ALU_RGB_ADDR_43 | ||
340 | 0x4770 US_ALU_RGB_ADDR_44 | ||
341 | 0x4774 US_ALU_RGB_ADDR_45 | ||
342 | 0x4778 US_ALU_RGB_ADDR_46 | ||
343 | 0x477C US_ALU_RGB_ADDR_47 | ||
344 | 0x4780 US_ALU_RGB_ADDR_48 | ||
345 | 0x4784 US_ALU_RGB_ADDR_49 | ||
346 | 0x4788 US_ALU_RGB_ADDR_50 | ||
347 | 0x478C US_ALU_RGB_ADDR_51 | ||
348 | 0x4790 US_ALU_RGB_ADDR_52 | ||
349 | 0x4794 US_ALU_RGB_ADDR_53 | ||
350 | 0x4798 US_ALU_RGB_ADDR_54 | ||
351 | 0x479C US_ALU_RGB_ADDR_55 | ||
352 | 0x47A0 US_ALU_RGB_ADDR_56 | ||
353 | 0x47A4 US_ALU_RGB_ADDR_57 | ||
354 | 0x47A8 US_ALU_RGB_ADDR_58 | ||
355 | 0x47AC US_ALU_RGB_ADDR_59 | ||
356 | 0x47B0 US_ALU_RGB_ADDR_60 | ||
357 | 0x47B4 US_ALU_RGB_ADDR_61 | ||
358 | 0x47B8 US_ALU_RGB_ADDR_62 | ||
359 | 0x47BC US_ALU_RGB_ADDR_63 | ||
360 | 0x47C0 US_ALU_ALPHA_ADDR_0 | ||
361 | 0x47C4 US_ALU_ALPHA_ADDR_1 | ||
362 | 0x47C8 US_ALU_ALPHA_ADDR_2 | ||
363 | 0x47CC US_ALU_ALPHA_ADDR_3 | ||
364 | 0x47D0 US_ALU_ALPHA_ADDR_4 | ||
365 | 0x47D4 US_ALU_ALPHA_ADDR_5 | ||
366 | 0x47D8 US_ALU_ALPHA_ADDR_6 | ||
367 | 0x47DC US_ALU_ALPHA_ADDR_7 | ||
368 | 0x47E0 US_ALU_ALPHA_ADDR_8 | ||
369 | 0x47E4 US_ALU_ALPHA_ADDR_9 | ||
370 | 0x47E8 US_ALU_ALPHA_ADDR_10 | ||
371 | 0x47EC US_ALU_ALPHA_ADDR_11 | ||
372 | 0x47F0 US_ALU_ALPHA_ADDR_12 | ||
373 | 0x47F4 US_ALU_ALPHA_ADDR_13 | ||
374 | 0x47F8 US_ALU_ALPHA_ADDR_14 | ||
375 | 0x47FC US_ALU_ALPHA_ADDR_15 | ||
376 | 0x4800 US_ALU_ALPHA_ADDR_16 | ||
377 | 0x4804 US_ALU_ALPHA_ADDR_17 | ||
378 | 0x4808 US_ALU_ALPHA_ADDR_18 | ||
379 | 0x480C US_ALU_ALPHA_ADDR_19 | ||
380 | 0x4810 US_ALU_ALPHA_ADDR_20 | ||
381 | 0x4814 US_ALU_ALPHA_ADDR_21 | ||
382 | 0x4818 US_ALU_ALPHA_ADDR_22 | ||
383 | 0x481C US_ALU_ALPHA_ADDR_23 | ||
384 | 0x4820 US_ALU_ALPHA_ADDR_24 | ||
385 | 0x4824 US_ALU_ALPHA_ADDR_25 | ||
386 | 0x4828 US_ALU_ALPHA_ADDR_26 | ||
387 | 0x482C US_ALU_ALPHA_ADDR_27 | ||
388 | 0x4830 US_ALU_ALPHA_ADDR_28 | ||
389 | 0x4834 US_ALU_ALPHA_ADDR_29 | ||
390 | 0x4838 US_ALU_ALPHA_ADDR_30 | ||
391 | 0x483C US_ALU_ALPHA_ADDR_31 | ||
392 | 0x4840 US_ALU_ALPHA_ADDR_32 | ||
393 | 0x4844 US_ALU_ALPHA_ADDR_33 | ||
394 | 0x4848 US_ALU_ALPHA_ADDR_34 | ||
395 | 0x484C US_ALU_ALPHA_ADDR_35 | ||
396 | 0x4850 US_ALU_ALPHA_ADDR_36 | ||
397 | 0x4854 US_ALU_ALPHA_ADDR_37 | ||
398 | 0x4858 US_ALU_ALPHA_ADDR_38 | ||
399 | 0x485C US_ALU_ALPHA_ADDR_39 | ||
400 | 0x4860 US_ALU_ALPHA_ADDR_40 | ||
401 | 0x4864 US_ALU_ALPHA_ADDR_41 | ||
402 | 0x4868 US_ALU_ALPHA_ADDR_42 | ||
403 | 0x486C US_ALU_ALPHA_ADDR_43 | ||
404 | 0x4870 US_ALU_ALPHA_ADDR_44 | ||
405 | 0x4874 US_ALU_ALPHA_ADDR_45 | ||
406 | 0x4878 US_ALU_ALPHA_ADDR_46 | ||
407 | 0x487C US_ALU_ALPHA_ADDR_47 | ||
408 | 0x4880 US_ALU_ALPHA_ADDR_48 | ||
409 | 0x4884 US_ALU_ALPHA_ADDR_49 | ||
410 | 0x4888 US_ALU_ALPHA_ADDR_50 | ||
411 | 0x488C US_ALU_ALPHA_ADDR_51 | ||
412 | 0x4890 US_ALU_ALPHA_ADDR_52 | ||
413 | 0x4894 US_ALU_ALPHA_ADDR_53 | ||
414 | 0x4898 US_ALU_ALPHA_ADDR_54 | ||
415 | 0x489C US_ALU_ALPHA_ADDR_55 | ||
416 | 0x48A0 US_ALU_ALPHA_ADDR_56 | ||
417 | 0x48A4 US_ALU_ALPHA_ADDR_57 | ||
418 | 0x48A8 US_ALU_ALPHA_ADDR_58 | ||
419 | 0x48AC US_ALU_ALPHA_ADDR_59 | ||
420 | 0x48B0 US_ALU_ALPHA_ADDR_60 | ||
421 | 0x48B4 US_ALU_ALPHA_ADDR_61 | ||
422 | 0x48B8 US_ALU_ALPHA_ADDR_62 | ||
423 | 0x48BC US_ALU_ALPHA_ADDR_63 | ||
424 | 0x48C0 US_ALU_RGB_INST_0 | ||
425 | 0x48C4 US_ALU_RGB_INST_1 | ||
426 | 0x48C8 US_ALU_RGB_INST_2 | ||
427 | 0x48CC US_ALU_RGB_INST_3 | ||
428 | 0x48D0 US_ALU_RGB_INST_4 | ||
429 | 0x48D4 US_ALU_RGB_INST_5 | ||
430 | 0x48D8 US_ALU_RGB_INST_6 | ||
431 | 0x48DC US_ALU_RGB_INST_7 | ||
432 | 0x48E0 US_ALU_RGB_INST_8 | ||
433 | 0x48E4 US_ALU_RGB_INST_9 | ||
434 | 0x48E8 US_ALU_RGB_INST_10 | ||
435 | 0x48EC US_ALU_RGB_INST_11 | ||
436 | 0x48F0 US_ALU_RGB_INST_12 | ||
437 | 0x48F4 US_ALU_RGB_INST_13 | ||
438 | 0x48F8 US_ALU_RGB_INST_14 | ||
439 | 0x48FC US_ALU_RGB_INST_15 | ||
440 | 0x4900 US_ALU_RGB_INST_16 | ||
441 | 0x4904 US_ALU_RGB_INST_17 | ||
442 | 0x4908 US_ALU_RGB_INST_18 | ||
443 | 0x490C US_ALU_RGB_INST_19 | ||
444 | 0x4910 US_ALU_RGB_INST_20 | ||
445 | 0x4914 US_ALU_RGB_INST_21 | ||
446 | 0x4918 US_ALU_RGB_INST_22 | ||
447 | 0x491C US_ALU_RGB_INST_23 | ||
448 | 0x4920 US_ALU_RGB_INST_24 | ||
449 | 0x4924 US_ALU_RGB_INST_25 | ||
450 | 0x4928 US_ALU_RGB_INST_26 | ||
451 | 0x492C US_ALU_RGB_INST_27 | ||
452 | 0x4930 US_ALU_RGB_INST_28 | ||
453 | 0x4934 US_ALU_RGB_INST_29 | ||
454 | 0x4938 US_ALU_RGB_INST_30 | ||
455 | 0x493C US_ALU_RGB_INST_31 | ||
456 | 0x4940 US_ALU_RGB_INST_32 | ||
457 | 0x4944 US_ALU_RGB_INST_33 | ||
458 | 0x4948 US_ALU_RGB_INST_34 | ||
459 | 0x494C US_ALU_RGB_INST_35 | ||
460 | 0x4950 US_ALU_RGB_INST_36 | ||
461 | 0x4954 US_ALU_RGB_INST_37 | ||
462 | 0x4958 US_ALU_RGB_INST_38 | ||
463 | 0x495C US_ALU_RGB_INST_39 | ||
464 | 0x4960 US_ALU_RGB_INST_40 | ||
465 | 0x4964 US_ALU_RGB_INST_41 | ||
466 | 0x4968 US_ALU_RGB_INST_42 | ||
467 | 0x496C US_ALU_RGB_INST_43 | ||
468 | 0x4970 US_ALU_RGB_INST_44 | ||
469 | 0x4974 US_ALU_RGB_INST_45 | ||
470 | 0x4978 US_ALU_RGB_INST_46 | ||
471 | 0x497C US_ALU_RGB_INST_47 | ||
472 | 0x4980 US_ALU_RGB_INST_48 | ||
473 | 0x4984 US_ALU_RGB_INST_49 | ||
474 | 0x4988 US_ALU_RGB_INST_50 | ||
475 | 0x498C US_ALU_RGB_INST_51 | ||
476 | 0x4990 US_ALU_RGB_INST_52 | ||
477 | 0x4994 US_ALU_RGB_INST_53 | ||
478 | 0x4998 US_ALU_RGB_INST_54 | ||
479 | 0x499C US_ALU_RGB_INST_55 | ||
480 | 0x49A0 US_ALU_RGB_INST_56 | ||
481 | 0x49A4 US_ALU_RGB_INST_57 | ||
482 | 0x49A8 US_ALU_RGB_INST_58 | ||
483 | 0x49AC US_ALU_RGB_INST_59 | ||
484 | 0x49B0 US_ALU_RGB_INST_60 | ||
485 | 0x49B4 US_ALU_RGB_INST_61 | ||
486 | 0x49B8 US_ALU_RGB_INST_62 | ||
487 | 0x49BC US_ALU_RGB_INST_63 | ||
488 | 0x49C0 US_ALU_ALPHA_INST_0 | ||
489 | 0x49C4 US_ALU_ALPHA_INST_1 | ||
490 | 0x49C8 US_ALU_ALPHA_INST_2 | ||
491 | 0x49CC US_ALU_ALPHA_INST_3 | ||
492 | 0x49D0 US_ALU_ALPHA_INST_4 | ||
493 | 0x49D4 US_ALU_ALPHA_INST_5 | ||
494 | 0x49D8 US_ALU_ALPHA_INST_6 | ||
495 | 0x49DC US_ALU_ALPHA_INST_7 | ||
496 | 0x49E0 US_ALU_ALPHA_INST_8 | ||
497 | 0x49E4 US_ALU_ALPHA_INST_9 | ||
498 | 0x49E8 US_ALU_ALPHA_INST_10 | ||
499 | 0x49EC US_ALU_ALPHA_INST_11 | ||
500 | 0x49F0 US_ALU_ALPHA_INST_12 | ||
501 | 0x49F4 US_ALU_ALPHA_INST_13 | ||
502 | 0x49F8 US_ALU_ALPHA_INST_14 | ||
503 | 0x49FC US_ALU_ALPHA_INST_15 | ||
504 | 0x4A00 US_ALU_ALPHA_INST_16 | ||
505 | 0x4A04 US_ALU_ALPHA_INST_17 | ||
506 | 0x4A08 US_ALU_ALPHA_INST_18 | ||
507 | 0x4A0C US_ALU_ALPHA_INST_19 | ||
508 | 0x4A10 US_ALU_ALPHA_INST_20 | ||
509 | 0x4A14 US_ALU_ALPHA_INST_21 | ||
510 | 0x4A18 US_ALU_ALPHA_INST_22 | ||
511 | 0x4A1C US_ALU_ALPHA_INST_23 | ||
512 | 0x4A20 US_ALU_ALPHA_INST_24 | ||
513 | 0x4A24 US_ALU_ALPHA_INST_25 | ||
514 | 0x4A28 US_ALU_ALPHA_INST_26 | ||
515 | 0x4A2C US_ALU_ALPHA_INST_27 | ||
516 | 0x4A30 US_ALU_ALPHA_INST_28 | ||
517 | 0x4A34 US_ALU_ALPHA_INST_29 | ||
518 | 0x4A38 US_ALU_ALPHA_INST_30 | ||
519 | 0x4A3C US_ALU_ALPHA_INST_31 | ||
520 | 0x4A40 US_ALU_ALPHA_INST_32 | ||
521 | 0x4A44 US_ALU_ALPHA_INST_33 | ||
522 | 0x4A48 US_ALU_ALPHA_INST_34 | ||
523 | 0x4A4C US_ALU_ALPHA_INST_35 | ||
524 | 0x4A50 US_ALU_ALPHA_INST_36 | ||
525 | 0x4A54 US_ALU_ALPHA_INST_37 | ||
526 | 0x4A58 US_ALU_ALPHA_INST_38 | ||
527 | 0x4A5C US_ALU_ALPHA_INST_39 | ||
528 | 0x4A60 US_ALU_ALPHA_INST_40 | ||
529 | 0x4A64 US_ALU_ALPHA_INST_41 | ||
530 | 0x4A68 US_ALU_ALPHA_INST_42 | ||
531 | 0x4A6C US_ALU_ALPHA_INST_43 | ||
532 | 0x4A70 US_ALU_ALPHA_INST_44 | ||
533 | 0x4A74 US_ALU_ALPHA_INST_45 | ||
534 | 0x4A78 US_ALU_ALPHA_INST_46 | ||
535 | 0x4A7C US_ALU_ALPHA_INST_47 | ||
536 | 0x4A80 US_ALU_ALPHA_INST_48 | ||
537 | 0x4A84 US_ALU_ALPHA_INST_49 | ||
538 | 0x4A88 US_ALU_ALPHA_INST_50 | ||
539 | 0x4A8C US_ALU_ALPHA_INST_51 | ||
540 | 0x4A90 US_ALU_ALPHA_INST_52 | ||
541 | 0x4A94 US_ALU_ALPHA_INST_53 | ||
542 | 0x4A98 US_ALU_ALPHA_INST_54 | ||
543 | 0x4A9C US_ALU_ALPHA_INST_55 | ||
544 | 0x4AA0 US_ALU_ALPHA_INST_56 | ||
545 | 0x4AA4 US_ALU_ALPHA_INST_57 | ||
546 | 0x4AA8 US_ALU_ALPHA_INST_58 | ||
547 | 0x4AAC US_ALU_ALPHA_INST_59 | ||
548 | 0x4AB0 US_ALU_ALPHA_INST_60 | ||
549 | 0x4AB4 US_ALU_ALPHA_INST_61 | ||
550 | 0x4AB8 US_ALU_ALPHA_INST_62 | ||
551 | 0x4ABC US_ALU_ALPHA_INST_63 | ||
552 | 0x4AC0 US_ALU_EXT_ADDR_0 | ||
553 | 0x4AC4 US_ALU_EXT_ADDR_1 | ||
554 | 0x4AC8 US_ALU_EXT_ADDR_2 | ||
555 | 0x4ACC US_ALU_EXT_ADDR_3 | ||
556 | 0x4AD0 US_ALU_EXT_ADDR_4 | ||
557 | 0x4AD4 US_ALU_EXT_ADDR_5 | ||
558 | 0x4AD8 US_ALU_EXT_ADDR_6 | ||
559 | 0x4ADC US_ALU_EXT_ADDR_7 | ||
560 | 0x4AE0 US_ALU_EXT_ADDR_8 | ||
561 | 0x4AE4 US_ALU_EXT_ADDR_9 | ||
562 | 0x4AE8 US_ALU_EXT_ADDR_10 | ||
563 | 0x4AEC US_ALU_EXT_ADDR_11 | ||
564 | 0x4AF0 US_ALU_EXT_ADDR_12 | ||
565 | 0x4AF4 US_ALU_EXT_ADDR_13 | ||
566 | 0x4AF8 US_ALU_EXT_ADDR_14 | ||
567 | 0x4AFC US_ALU_EXT_ADDR_15 | ||
568 | 0x4B00 US_ALU_EXT_ADDR_16 | ||
569 | 0x4B04 US_ALU_EXT_ADDR_17 | ||
570 | 0x4B08 US_ALU_EXT_ADDR_18 | ||
571 | 0x4B0C US_ALU_EXT_ADDR_19 | ||
572 | 0x4B10 US_ALU_EXT_ADDR_20 | ||
573 | 0x4B14 US_ALU_EXT_ADDR_21 | ||
574 | 0x4B18 US_ALU_EXT_ADDR_22 | ||
575 | 0x4B1C US_ALU_EXT_ADDR_23 | ||
576 | 0x4B20 US_ALU_EXT_ADDR_24 | ||
577 | 0x4B24 US_ALU_EXT_ADDR_25 | ||
578 | 0x4B28 US_ALU_EXT_ADDR_26 | ||
579 | 0x4B2C US_ALU_EXT_ADDR_27 | ||
580 | 0x4B30 US_ALU_EXT_ADDR_28 | ||
581 | 0x4B34 US_ALU_EXT_ADDR_29 | ||
582 | 0x4B38 US_ALU_EXT_ADDR_30 | ||
583 | 0x4B3C US_ALU_EXT_ADDR_31 | ||
584 | 0x4B40 US_ALU_EXT_ADDR_32 | ||
585 | 0x4B44 US_ALU_EXT_ADDR_33 | ||
586 | 0x4B48 US_ALU_EXT_ADDR_34 | ||
587 | 0x4B4C US_ALU_EXT_ADDR_35 | ||
588 | 0x4B50 US_ALU_EXT_ADDR_36 | ||
589 | 0x4B54 US_ALU_EXT_ADDR_37 | ||
590 | 0x4B58 US_ALU_EXT_ADDR_38 | ||
591 | 0x4B5C US_ALU_EXT_ADDR_39 | ||
592 | 0x4B60 US_ALU_EXT_ADDR_40 | ||
593 | 0x4B64 US_ALU_EXT_ADDR_41 | ||
594 | 0x4B68 US_ALU_EXT_ADDR_42 | ||
595 | 0x4B6C US_ALU_EXT_ADDR_43 | ||
596 | 0x4B70 US_ALU_EXT_ADDR_44 | ||
597 | 0x4B74 US_ALU_EXT_ADDR_45 | ||
598 | 0x4B78 US_ALU_EXT_ADDR_46 | ||
599 | 0x4B7C US_ALU_EXT_ADDR_47 | ||
600 | 0x4B80 US_ALU_EXT_ADDR_48 | ||
601 | 0x4B84 US_ALU_EXT_ADDR_49 | ||
602 | 0x4B88 US_ALU_EXT_ADDR_50 | ||
603 | 0x4B8C US_ALU_EXT_ADDR_51 | ||
604 | 0x4B90 US_ALU_EXT_ADDR_52 | ||
605 | 0x4B94 US_ALU_EXT_ADDR_53 | ||
606 | 0x4B98 US_ALU_EXT_ADDR_54 | ||
607 | 0x4B9C US_ALU_EXT_ADDR_55 | ||
608 | 0x4BA0 US_ALU_EXT_ADDR_56 | ||
609 | 0x4BA4 US_ALU_EXT_ADDR_57 | ||
610 | 0x4BA8 US_ALU_EXT_ADDR_58 | ||
611 | 0x4BAC US_ALU_EXT_ADDR_59 | ||
612 | 0x4BB0 US_ALU_EXT_ADDR_60 | ||
613 | 0x4BB4 US_ALU_EXT_ADDR_61 | ||
614 | 0x4BB8 US_ALU_EXT_ADDR_62 | ||
615 | 0x4BBC US_ALU_EXT_ADDR_63 | ||
616 | 0x4BC0 FG_FOG_BLEND | ||
617 | 0x4BC4 FG_FOG_FACTOR | ||
618 | 0x4BC8 FG_FOG_COLOR_R | ||
619 | 0x4BCC FG_FOG_COLOR_G | ||
620 | 0x4BD0 FG_FOG_COLOR_B | ||
621 | 0x4BD4 FG_ALPHA_FUNC | ||
622 | 0x4BD8 FG_DEPTH_SRC | ||
623 | 0x4C00 US_ALU_CONST_R_0 | ||
624 | 0x4C04 US_ALU_CONST_G_0 | ||
625 | 0x4C08 US_ALU_CONST_B_0 | ||
626 | 0x4C0C US_ALU_CONST_A_0 | ||
627 | 0x4C10 US_ALU_CONST_R_1 | ||
628 | 0x4C14 US_ALU_CONST_G_1 | ||
629 | 0x4C18 US_ALU_CONST_B_1 | ||
630 | 0x4C1C US_ALU_CONST_A_1 | ||
631 | 0x4C20 US_ALU_CONST_R_2 | ||
632 | 0x4C24 US_ALU_CONST_G_2 | ||
633 | 0x4C28 US_ALU_CONST_B_2 | ||
634 | 0x4C2C US_ALU_CONST_A_2 | ||
635 | 0x4C30 US_ALU_CONST_R_3 | ||
636 | 0x4C34 US_ALU_CONST_G_3 | ||
637 | 0x4C38 US_ALU_CONST_B_3 | ||
638 | 0x4C3C US_ALU_CONST_A_3 | ||
639 | 0x4C40 US_ALU_CONST_R_4 | ||
640 | 0x4C44 US_ALU_CONST_G_4 | ||
641 | 0x4C48 US_ALU_CONST_B_4 | ||
642 | 0x4C4C US_ALU_CONST_A_4 | ||
643 | 0x4C50 US_ALU_CONST_R_5 | ||
644 | 0x4C54 US_ALU_CONST_G_5 | ||
645 | 0x4C58 US_ALU_CONST_B_5 | ||
646 | 0x4C5C US_ALU_CONST_A_5 | ||
647 | 0x4C60 US_ALU_CONST_R_6 | ||
648 | 0x4C64 US_ALU_CONST_G_6 | ||
649 | 0x4C68 US_ALU_CONST_B_6 | ||
650 | 0x4C6C US_ALU_CONST_A_6 | ||
651 | 0x4C70 US_ALU_CONST_R_7 | ||
652 | 0x4C74 US_ALU_CONST_G_7 | ||
653 | 0x4C78 US_ALU_CONST_B_7 | ||
654 | 0x4C7C US_ALU_CONST_A_7 | ||
655 | 0x4C80 US_ALU_CONST_R_8 | ||
656 | 0x4C84 US_ALU_CONST_G_8 | ||
657 | 0x4C88 US_ALU_CONST_B_8 | ||
658 | 0x4C8C US_ALU_CONST_A_8 | ||
659 | 0x4C90 US_ALU_CONST_R_9 | ||
660 | 0x4C94 US_ALU_CONST_G_9 | ||
661 | 0x4C98 US_ALU_CONST_B_9 | ||
662 | 0x4C9C US_ALU_CONST_A_9 | ||
663 | 0x4CA0 US_ALU_CONST_R_10 | ||
664 | 0x4CA4 US_ALU_CONST_G_10 | ||
665 | 0x4CA8 US_ALU_CONST_B_10 | ||
666 | 0x4CAC US_ALU_CONST_A_10 | ||
667 | 0x4CB0 US_ALU_CONST_R_11 | ||
668 | 0x4CB4 US_ALU_CONST_G_11 | ||
669 | 0x4CB8 US_ALU_CONST_B_11 | ||
670 | 0x4CBC US_ALU_CONST_A_11 | ||
671 | 0x4CC0 US_ALU_CONST_R_12 | ||
672 | 0x4CC4 US_ALU_CONST_G_12 | ||
673 | 0x4CC8 US_ALU_CONST_B_12 | ||
674 | 0x4CCC US_ALU_CONST_A_12 | ||
675 | 0x4CD0 US_ALU_CONST_R_13 | ||
676 | 0x4CD4 US_ALU_CONST_G_13 | ||
677 | 0x4CD8 US_ALU_CONST_B_13 | ||
678 | 0x4CDC US_ALU_CONST_A_13 | ||
679 | 0x4CE0 US_ALU_CONST_R_14 | ||
680 | 0x4CE4 US_ALU_CONST_G_14 | ||
681 | 0x4CE8 US_ALU_CONST_B_14 | ||
682 | 0x4CEC US_ALU_CONST_A_14 | ||
683 | 0x4CF0 US_ALU_CONST_R_15 | ||
684 | 0x4CF4 US_ALU_CONST_G_15 | ||
685 | 0x4CF8 US_ALU_CONST_B_15 | ||
686 | 0x4CFC US_ALU_CONST_A_15 | ||
687 | 0x4D00 US_ALU_CONST_R_16 | ||
688 | 0x4D04 US_ALU_CONST_G_16 | ||
689 | 0x4D08 US_ALU_CONST_B_16 | ||
690 | 0x4D0C US_ALU_CONST_A_16 | ||
691 | 0x4D10 US_ALU_CONST_R_17 | ||
692 | 0x4D14 US_ALU_CONST_G_17 | ||
693 | 0x4D18 US_ALU_CONST_B_17 | ||
694 | 0x4D1C US_ALU_CONST_A_17 | ||
695 | 0x4D20 US_ALU_CONST_R_18 | ||
696 | 0x4D24 US_ALU_CONST_G_18 | ||
697 | 0x4D28 US_ALU_CONST_B_18 | ||
698 | 0x4D2C US_ALU_CONST_A_18 | ||
699 | 0x4D30 US_ALU_CONST_R_19 | ||
700 | 0x4D34 US_ALU_CONST_G_19 | ||
701 | 0x4D38 US_ALU_CONST_B_19 | ||
702 | 0x4D3C US_ALU_CONST_A_19 | ||
703 | 0x4D40 US_ALU_CONST_R_20 | ||
704 | 0x4D44 US_ALU_CONST_G_20 | ||
705 | 0x4D48 US_ALU_CONST_B_20 | ||
706 | 0x4D4C US_ALU_CONST_A_20 | ||
707 | 0x4D50 US_ALU_CONST_R_21 | ||
708 | 0x4D54 US_ALU_CONST_G_21 | ||
709 | 0x4D58 US_ALU_CONST_B_21 | ||
710 | 0x4D5C US_ALU_CONST_A_21 | ||
711 | 0x4D60 US_ALU_CONST_R_22 | ||
712 | 0x4D64 US_ALU_CONST_G_22 | ||
713 | 0x4D68 US_ALU_CONST_B_22 | ||
714 | 0x4D6C US_ALU_CONST_A_22 | ||
715 | 0x4D70 US_ALU_CONST_R_23 | ||
716 | 0x4D74 US_ALU_CONST_G_23 | ||
717 | 0x4D78 US_ALU_CONST_B_23 | ||
718 | 0x4D7C US_ALU_CONST_A_23 | ||
719 | 0x4D80 US_ALU_CONST_R_24 | ||
720 | 0x4D84 US_ALU_CONST_G_24 | ||
721 | 0x4D88 US_ALU_CONST_B_24 | ||
722 | 0x4D8C US_ALU_CONST_A_24 | ||
723 | 0x4D90 US_ALU_CONST_R_25 | ||
724 | 0x4D94 US_ALU_CONST_G_25 | ||
725 | 0x4D98 US_ALU_CONST_B_25 | ||
726 | 0x4D9C US_ALU_CONST_A_25 | ||
727 | 0x4DA0 US_ALU_CONST_R_26 | ||
728 | 0x4DA4 US_ALU_CONST_G_26 | ||
729 | 0x4DA8 US_ALU_CONST_B_26 | ||
730 | 0x4DAC US_ALU_CONST_A_26 | ||
731 | 0x4DB0 US_ALU_CONST_R_27 | ||
732 | 0x4DB4 US_ALU_CONST_G_27 | ||
733 | 0x4DB8 US_ALU_CONST_B_27 | ||
734 | 0x4DBC US_ALU_CONST_A_27 | ||
735 | 0x4DC0 US_ALU_CONST_R_28 | ||
736 | 0x4DC4 US_ALU_CONST_G_28 | ||
737 | 0x4DC8 US_ALU_CONST_B_28 | ||
738 | 0x4DCC US_ALU_CONST_A_28 | ||
739 | 0x4DD0 US_ALU_CONST_R_29 | ||
740 | 0x4DD4 US_ALU_CONST_G_29 | ||
741 | 0x4DD8 US_ALU_CONST_B_29 | ||
742 | 0x4DDC US_ALU_CONST_A_29 | ||
743 | 0x4DE0 US_ALU_CONST_R_30 | ||
744 | 0x4DE4 US_ALU_CONST_G_30 | ||
745 | 0x4DE8 US_ALU_CONST_B_30 | ||
746 | 0x4DEC US_ALU_CONST_A_30 | ||
747 | 0x4DF0 US_ALU_CONST_R_31 | ||
748 | 0x4DF4 US_ALU_CONST_G_31 | ||
749 | 0x4DF8 US_ALU_CONST_B_31 | ||
750 | 0x4DFC US_ALU_CONST_A_31 | ||
751 | 0x4E04 RB3D_BLENDCNTL_R3 | ||
752 | 0x4E08 RB3D_ABLENDCNTL_R3 | ||
753 | 0x4E0C RB3D_COLOR_CHANNEL_MASK | ||
754 | 0x4E10 RB3D_CONSTANT_COLOR | ||
755 | 0x4E14 RB3D_COLOR_CLEAR_VALUE | ||
756 | 0x4E18 RB3D_ROPCNTL_R3 | ||
757 | 0x4E1C RB3D_CLRCMP_FLIPE_R3 | ||
758 | 0x4E20 RB3D_CLRCMP_CLR_R3 | ||
759 | 0x4E24 RB3D_CLRCMP_MSK_R3 | ||
760 | 0x4E48 RB3D_DEBUG_CTL | ||
761 | 0x4E4C RB3D_DSTCACHE_CTLSTAT_R3 | ||
762 | 0x4E50 RB3D_DITHER_CTL | ||
763 | 0x4E54 RB3D_CMASK_OFFSET0 | ||
764 | 0x4E58 RB3D_CMASK_OFFSET1 | ||
765 | 0x4E5C RB3D_CMASK_OFFSET2 | ||
766 | 0x4E60 RB3D_CMASK_OFFSET3 | ||
767 | 0x4E64 RB3D_CMASK_PITCH0 | ||
768 | 0x4E68 RB3D_CMASK_PITCH1 | ||
769 | 0x4E6C RB3D_CMASK_PITCH2 | ||
770 | 0x4E70 RB3D_CMASK_PITCH3 | ||
771 | 0x4E74 RB3D_CMASK_WRINDEX | ||
772 | 0x4E78 RB3D_CMASK_DWORD | ||
773 | 0x4E7C RB3D_CMASK_RDINDEX | ||
774 | 0x4E80 RB3D_AARESOLVE_OFFSET | ||
775 | 0x4E84 RB3D_AARESOLVE_PITCH | ||
776 | 0x4E88 RB3D_AARESOLVE_CTL | ||
777 | 0x4EA0 RB3D_DISCARD_SRC_PIXEL_LTE_THRESHOLD | ||
778 | 0x4EA4 RB3D_DISCARD_SRC_PIXEL_GTE_THRESHOLD | ||
779 | 0x4F04 ZB_ZSTENCILCNTL | ||
780 | 0x4F08 ZB_STENCILREFMASK | ||
781 | 0x4F14 ZB_ZTOP | ||
782 | 0x4F18 ZB_ZCACHE_CTLSTAT | ||
783 | 0x4F1C ZB_BW_CNTL | ||
784 | 0x4F28 ZB_DEPTHCLEARVALUE | ||
785 | 0x4F30 ZB_ZMASK_OFFSET | ||
786 | 0x4F34 ZB_ZMASK_PITCH | ||
787 | 0x4F38 ZB_ZMASK_WRINDEX | ||
788 | 0x4F3C ZB_ZMASK_DWORD | ||
789 | 0x4F40 ZB_ZMASK_RDINDEX | ||
790 | 0x4F44 ZB_HIZ_OFFSET | ||
791 | 0x4F48 ZB_HIZ_WRINDEX | ||
792 | 0x4F4C ZB_HIZ_DWORD | ||
793 | 0x4F50 ZB_HIZ_RDINDEX | ||
794 | 0x4F54 ZB_HIZ_PITCH | ||
795 | 0x4F58 ZB_ZPASS_DATA | ||
diff --git a/drivers/gpu/drm/radeon/reg_srcs/rs600 b/drivers/gpu/drm/radeon/reg_srcs/rs600 index 8e3c0b807ad..6801b865d1c 100644 --- a/drivers/gpu/drm/radeon/reg_srcs/rs600 +++ b/drivers/gpu/drm/radeon/reg_srcs/rs600 | |||
@@ -153,7 +153,7 @@ rs600 0x6d40 | |||
153 | 0x42A4 SU_POLY_OFFSET_FRONT_SCALE | 153 | 0x42A4 SU_POLY_OFFSET_FRONT_SCALE |
154 | 0x42A8 SU_POLY_OFFSET_FRONT_OFFSET | 154 | 0x42A8 SU_POLY_OFFSET_FRONT_OFFSET |
155 | 0x42AC SU_POLY_OFFSET_BACK_SCALE | 155 | 0x42AC SU_POLY_OFFSET_BACK_SCALE |
156 | 0x42B0 SU_POLY_OFFSET_BACK_OFFSET | 156 | 0x42B0 SU_POLY_OFFSET_BACK_OFFSET |
157 | 0x42B4 SU_POLY_OFFSET_ENABLE | 157 | 0x42B4 SU_POLY_OFFSET_ENABLE |
158 | 0x42B8 SU_CULL_MODE | 158 | 0x42B8 SU_CULL_MODE |
159 | 0x42C0 SU_DEPTH_SCALE | 159 | 0x42C0 SU_DEPTH_SCALE |
@@ -291,6 +291,8 @@ rs600 0x6d40 | |||
291 | 0x46AC US_OUT_FMT_2 | 291 | 0x46AC US_OUT_FMT_2 |
292 | 0x46B0 US_OUT_FMT_3 | 292 | 0x46B0 US_OUT_FMT_3 |
293 | 0x46B4 US_W_FMT | 293 | 0x46B4 US_W_FMT |
294 | 0x46B8 US_CODE_BANK | ||
295 | 0x46BC US_CODE_EXT | ||
294 | 0x46C0 US_ALU_RGB_ADDR_0 | 296 | 0x46C0 US_ALU_RGB_ADDR_0 |
295 | 0x46C4 US_ALU_RGB_ADDR_1 | 297 | 0x46C4 US_ALU_RGB_ADDR_1 |
296 | 0x46C8 US_ALU_RGB_ADDR_2 | 298 | 0x46C8 US_ALU_RGB_ADDR_2 |
@@ -547,6 +549,70 @@ rs600 0x6d40 | |||
547 | 0x4AB4 US_ALU_ALPHA_INST_61 | 549 | 0x4AB4 US_ALU_ALPHA_INST_61 |
548 | 0x4AB8 US_ALU_ALPHA_INST_62 | 550 | 0x4AB8 US_ALU_ALPHA_INST_62 |
549 | 0x4ABC US_ALU_ALPHA_INST_63 | 551 | 0x4ABC US_ALU_ALPHA_INST_63 |
552 | 0x4AC0 US_ALU_EXT_ADDR_0 | ||
553 | 0x4AC4 US_ALU_EXT_ADDR_1 | ||
554 | 0x4AC8 US_ALU_EXT_ADDR_2 | ||
555 | 0x4ACC US_ALU_EXT_ADDR_3 | ||
556 | 0x4AD0 US_ALU_EXT_ADDR_4 | ||
557 | 0x4AD4 US_ALU_EXT_ADDR_5 | ||
558 | 0x4AD8 US_ALU_EXT_ADDR_6 | ||
559 | 0x4ADC US_ALU_EXT_ADDR_7 | ||
560 | 0x4AE0 US_ALU_EXT_ADDR_8 | ||
561 | 0x4AE4 US_ALU_EXT_ADDR_9 | ||
562 | 0x4AE8 US_ALU_EXT_ADDR_10 | ||
563 | 0x4AEC US_ALU_EXT_ADDR_11 | ||
564 | 0x4AF0 US_ALU_EXT_ADDR_12 | ||
565 | 0x4AF4 US_ALU_EXT_ADDR_13 | ||
566 | 0x4AF8 US_ALU_EXT_ADDR_14 | ||
567 | 0x4AFC US_ALU_EXT_ADDR_15 | ||
568 | 0x4B00 US_ALU_EXT_ADDR_16 | ||
569 | 0x4B04 US_ALU_EXT_ADDR_17 | ||
570 | 0x4B08 US_ALU_EXT_ADDR_18 | ||
571 | 0x4B0C US_ALU_EXT_ADDR_19 | ||
572 | 0x4B10 US_ALU_EXT_ADDR_20 | ||
573 | 0x4B14 US_ALU_EXT_ADDR_21 | ||
574 | 0x4B18 US_ALU_EXT_ADDR_22 | ||
575 | 0x4B1C US_ALU_EXT_ADDR_23 | ||
576 | 0x4B20 US_ALU_EXT_ADDR_24 | ||
577 | 0x4B24 US_ALU_EXT_ADDR_25 | ||
578 | 0x4B28 US_ALU_EXT_ADDR_26 | ||
579 | 0x4B2C US_ALU_EXT_ADDR_27 | ||
580 | 0x4B30 US_ALU_EXT_ADDR_28 | ||
581 | 0x4B34 US_ALU_EXT_ADDR_29 | ||
582 | 0x4B38 US_ALU_EXT_ADDR_30 | ||
583 | 0x4B3C US_ALU_EXT_ADDR_31 | ||
584 | 0x4B40 US_ALU_EXT_ADDR_32 | ||
585 | 0x4B44 US_ALU_EXT_ADDR_33 | ||
586 | 0x4B48 US_ALU_EXT_ADDR_34 | ||
587 | 0x4B4C US_ALU_EXT_ADDR_35 | ||
588 | 0x4B50 US_ALU_EXT_ADDR_36 | ||
589 | 0x4B54 US_ALU_EXT_ADDR_37 | ||
590 | 0x4B58 US_ALU_EXT_ADDR_38 | ||
591 | 0x4B5C US_ALU_EXT_ADDR_39 | ||
592 | 0x4B60 US_ALU_EXT_ADDR_40 | ||
593 | 0x4B64 US_ALU_EXT_ADDR_41 | ||
594 | 0x4B68 US_ALU_EXT_ADDR_42 | ||
595 | 0x4B6C US_ALU_EXT_ADDR_43 | ||
596 | 0x4B70 US_ALU_EXT_ADDR_44 | ||
597 | 0x4B74 US_ALU_EXT_ADDR_45 | ||
598 | 0x4B78 US_ALU_EXT_ADDR_46 | ||
599 | 0x4B7C US_ALU_EXT_ADDR_47 | ||
600 | 0x4B80 US_ALU_EXT_ADDR_48 | ||
601 | 0x4B84 US_ALU_EXT_ADDR_49 | ||
602 | 0x4B88 US_ALU_EXT_ADDR_50 | ||
603 | 0x4B8C US_ALU_EXT_ADDR_51 | ||
604 | 0x4B90 US_ALU_EXT_ADDR_52 | ||
605 | 0x4B94 US_ALU_EXT_ADDR_53 | ||
606 | 0x4B98 US_ALU_EXT_ADDR_54 | ||
607 | 0x4B9C US_ALU_EXT_ADDR_55 | ||
608 | 0x4BA0 US_ALU_EXT_ADDR_56 | ||
609 | 0x4BA4 US_ALU_EXT_ADDR_57 | ||
610 | 0x4BA8 US_ALU_EXT_ADDR_58 | ||
611 | 0x4BAC US_ALU_EXT_ADDR_59 | ||
612 | 0x4BB0 US_ALU_EXT_ADDR_60 | ||
613 | 0x4BB4 US_ALU_EXT_ADDR_61 | ||
614 | 0x4BB8 US_ALU_EXT_ADDR_62 | ||
615 | 0x4BBC US_ALU_EXT_ADDR_63 | ||
550 | 0x4BC0 FG_FOG_BLEND | 616 | 0x4BC0 FG_FOG_BLEND |
551 | 0x4BC4 FG_FOG_FACTOR | 617 | 0x4BC4 FG_FOG_FACTOR |
552 | 0x4BC8 FG_FOG_COLOR_R | 618 | 0x4BC8 FG_FOG_COLOR_R |
diff --git a/drivers/gpu/drm/radeon/reg_srcs/rv515 b/drivers/gpu/drm/radeon/reg_srcs/rv515 index 0102a0d5735..38abf63bf2c 100644 --- a/drivers/gpu/drm/radeon/reg_srcs/rv515 +++ b/drivers/gpu/drm/radeon/reg_srcs/rv515 | |||
@@ -161,7 +161,12 @@ rv515 0x6d40 | |||
161 | 0x401C GB_SELECT | 161 | 0x401C GB_SELECT |
162 | 0x4020 GB_AA_CONFIG | 162 | 0x4020 GB_AA_CONFIG |
163 | 0x4024 GB_FIFO_SIZE | 163 | 0x4024 GB_FIFO_SIZE |
164 | 0x4028 GB_Z_PEQ_CONFIG | ||
164 | 0x4100 TX_INVALTAGS | 165 | 0x4100 TX_INVALTAGS |
166 | 0x4114 SU_TEX_WRAP_PS3 | ||
167 | 0x4118 PS3_ENABLE | ||
168 | 0x411c PS3_VTX_FMT | ||
169 | 0x4120 PS3_TEX_SOURCE | ||
165 | 0x4200 GA_POINT_S0 | 170 | 0x4200 GA_POINT_S0 |
166 | 0x4204 GA_POINT_T0 | 171 | 0x4204 GA_POINT_T0 |
167 | 0x4208 GA_POINT_S1 | 172 | 0x4208 GA_POINT_S1 |
@@ -171,6 +176,7 @@ rv515 0x6d40 | |||
171 | 0x4230 GA_POINT_MINMAX | 176 | 0x4230 GA_POINT_MINMAX |
172 | 0x4234 GA_LINE_CNTL | 177 | 0x4234 GA_LINE_CNTL |
173 | 0x4238 GA_LINE_STIPPLE_CONFIG | 178 | 0x4238 GA_LINE_STIPPLE_CONFIG |
179 | 0x4258 GA_COLOR_CONTROL_PS3 | ||
174 | 0x4260 GA_LINE_STIPPLE_VALUE | 180 | 0x4260 GA_LINE_STIPPLE_VALUE |
175 | 0x4264 GA_LINE_S0 | 181 | 0x4264 GA_LINE_S0 |
176 | 0x4268 GA_LINE_S1 | 182 | 0x4268 GA_LINE_S1 |
diff --git a/drivers/gpu/drm/radeon/rs400.c b/drivers/gpu/drm/radeon/rs400.c index 368415df5f3..9f5418983e2 100644 --- a/drivers/gpu/drm/radeon/rs400.c +++ b/drivers/gpu/drm/radeon/rs400.c | |||
@@ -356,6 +356,7 @@ static int rs400_mc_init(struct radeon_device *rdev) | |||
356 | rdev->mc.vram_location = G_00015C_MC_FB_START(tmp) << 16; | 356 | rdev->mc.vram_location = G_00015C_MC_FB_START(tmp) << 16; |
357 | rdev->mc.gtt_location = 0xFFFFFFFFUL; | 357 | rdev->mc.gtt_location = 0xFFFFFFFFUL; |
358 | r = radeon_mc_setup(rdev); | 358 | r = radeon_mc_setup(rdev); |
359 | rdev->mc.igp_sideport_enabled = radeon_combios_sideport_present(rdev); | ||
359 | if (r) | 360 | if (r) |
360 | return r; | 361 | return r; |
361 | return 0; | 362 | return 0; |
@@ -395,6 +396,7 @@ static int rs400_startup(struct radeon_device *rdev) | |||
395 | return r; | 396 | return r; |
396 | /* Enable IRQ */ | 397 | /* Enable IRQ */ |
397 | r100_irq_set(rdev); | 398 | r100_irq_set(rdev); |
399 | rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); | ||
398 | /* 1M ring buffer */ | 400 | /* 1M ring buffer */ |
399 | r = r100_cp_init(rdev, 1024 * 1024); | 401 | r = r100_cp_init(rdev, 1024 * 1024); |
400 | if (r) { | 402 | if (r) { |
diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c index 4f8ea426057..d5255751e7b 100644 --- a/drivers/gpu/drm/radeon/rs600.c +++ b/drivers/gpu/drm/radeon/rs600.c | |||
@@ -56,6 +56,7 @@ int rs600_mc_init(struct radeon_device *rdev) | |||
56 | rdev->mc.vram_location = G_000004_MC_FB_START(tmp) << 16; | 56 | rdev->mc.vram_location = G_000004_MC_FB_START(tmp) << 16; |
57 | rdev->mc.gtt_location = 0xffffffffUL; | 57 | rdev->mc.gtt_location = 0xffffffffUL; |
58 | r = radeon_mc_setup(rdev); | 58 | r = radeon_mc_setup(rdev); |
59 | rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev); | ||
59 | if (r) | 60 | if (r) |
60 | return r; | 61 | return r; |
61 | return 0; | 62 | return 0; |
@@ -134,7 +135,8 @@ void rs600_hpd_init(struct radeon_device *rdev) | |||
134 | break; | 135 | break; |
135 | } | 136 | } |
136 | } | 137 | } |
137 | rs600_irq_set(rdev); | 138 | if (rdev->irq.installed) |
139 | rs600_irq_set(rdev); | ||
138 | } | 140 | } |
139 | 141 | ||
140 | void rs600_hpd_fini(struct radeon_device *rdev) | 142 | void rs600_hpd_fini(struct radeon_device *rdev) |
@@ -315,6 +317,11 @@ int rs600_irq_set(struct radeon_device *rdev) | |||
315 | u32 hpd2 = RREG32(R_007D18_DC_HOT_PLUG_DETECT2_INT_CONTROL) & | 317 | u32 hpd2 = RREG32(R_007D18_DC_HOT_PLUG_DETECT2_INT_CONTROL) & |
316 | ~S_007D18_DC_HOT_PLUG_DETECT2_INT_EN(1); | 318 | ~S_007D18_DC_HOT_PLUG_DETECT2_INT_EN(1); |
317 | 319 | ||
320 | if (!rdev->irq.installed) { | ||
321 | WARN(1, "Can't enable IRQ/MSI because no handler is installed.\n"); | ||
322 | WREG32(R_000040_GEN_INT_CNTL, 0); | ||
323 | return -EINVAL; | ||
324 | } | ||
318 | if (rdev->irq.sw_int) { | 325 | if (rdev->irq.sw_int) { |
319 | tmp |= S_000040_SW_INT_EN(1); | 326 | tmp |= S_000040_SW_INT_EN(1); |
320 | } | 327 | } |
@@ -396,7 +403,7 @@ int rs600_irq_process(struct radeon_device *rdev) | |||
396 | } | 403 | } |
397 | while (status || r500_disp_int) { | 404 | while (status || r500_disp_int) { |
398 | /* SW interrupt */ | 405 | /* SW interrupt */ |
399 | if (G_000040_SW_INT_EN(status)) | 406 | if (G_000044_SW_INT(status)) |
400 | radeon_fence_process(rdev); | 407 | radeon_fence_process(rdev); |
401 | /* Vertical blank interrupts */ | 408 | /* Vertical blank interrupts */ |
402 | if (G_007EDC_LB_D1_VBLANK_INTERRUPT(r500_disp_int)) | 409 | if (G_007EDC_LB_D1_VBLANK_INTERRUPT(r500_disp_int)) |
@@ -553,6 +560,7 @@ static int rs600_startup(struct radeon_device *rdev) | |||
553 | return r; | 560 | return r; |
554 | /* Enable IRQ */ | 561 | /* Enable IRQ */ |
555 | rs600_irq_set(rdev); | 562 | rs600_irq_set(rdev); |
563 | rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); | ||
556 | /* 1M ring buffer */ | 564 | /* 1M ring buffer */ |
557 | r = r100_cp_init(rdev, 1024 * 1024); | 565 | r = r100_cp_init(rdev, 1024 * 1024); |
558 | if (r) { | 566 | if (r) { |
diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c index 1e22f52d603..cd31da91377 100644 --- a/drivers/gpu/drm/radeon/rs690.c +++ b/drivers/gpu/drm/radeon/rs690.c | |||
@@ -172,6 +172,7 @@ static int rs690_mc_init(struct radeon_device *rdev) | |||
172 | rdev->mc.vram_location = G_000100_MC_FB_START(tmp) << 16; | 172 | rdev->mc.vram_location = G_000100_MC_FB_START(tmp) << 16; |
173 | rdev->mc.gtt_location = 0xFFFFFFFFUL; | 173 | rdev->mc.gtt_location = 0xFFFFFFFFUL; |
174 | r = radeon_mc_setup(rdev); | 174 | r = radeon_mc_setup(rdev); |
175 | rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev); | ||
175 | if (r) | 176 | if (r) |
176 | return r; | 177 | return r; |
177 | return 0; | 178 | return 0; |
@@ -625,6 +626,7 @@ static int rs690_startup(struct radeon_device *rdev) | |||
625 | return r; | 626 | return r; |
626 | /* Enable IRQ */ | 627 | /* Enable IRQ */ |
627 | rs600_irq_set(rdev); | 628 | rs600_irq_set(rdev); |
629 | rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); | ||
628 | /* 1M ring buffer */ | 630 | /* 1M ring buffer */ |
629 | r = r100_cp_init(rdev, 1024 * 1024); | 631 | r = r100_cp_init(rdev, 1024 * 1024); |
630 | if (r) { | 632 | if (r) { |
diff --git a/drivers/gpu/drm/radeon/rv515.c b/drivers/gpu/drm/radeon/rv515.c index 59632a506b4..62756717b04 100644 --- a/drivers/gpu/drm/radeon/rv515.c +++ b/drivers/gpu/drm/radeon/rv515.c | |||
@@ -479,6 +479,7 @@ static int rv515_startup(struct radeon_device *rdev) | |||
479 | } | 479 | } |
480 | /* Enable IRQ */ | 480 | /* Enable IRQ */ |
481 | rs600_irq_set(rdev); | 481 | rs600_irq_set(rdev); |
482 | rdev->config.r300.hdp_cntl = RREG32(RADEON_HOST_PATH_CNTL); | ||
482 | /* 1M ring buffer */ | 483 | /* 1M ring buffer */ |
483 | r = r100_cp_init(rdev, 1024 * 1024); | 484 | r = r100_cp_init(rdev, 1024 * 1024); |
484 | if (r) { | 485 | if (r) { |
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c index 3bcb66e5278..59c71245fb9 100644 --- a/drivers/gpu/drm/radeon/rv770.c +++ b/drivers/gpu/drm/radeon/rv770.c | |||
@@ -1096,8 +1096,7 @@ void rv770_fini(struct radeon_device *rdev) | |||
1096 | radeon_gem_fini(rdev); | 1096 | radeon_gem_fini(rdev); |
1097 | radeon_fence_driver_fini(rdev); | 1097 | radeon_fence_driver_fini(rdev); |
1098 | radeon_clocks_fini(rdev); | 1098 | radeon_clocks_fini(rdev); |
1099 | if (rdev->flags & RADEON_IS_AGP) | 1099 | radeon_agp_fini(rdev); |
1100 | radeon_agp_fini(rdev); | ||
1101 | radeon_bo_fini(rdev); | 1100 | radeon_bo_fini(rdev); |
1102 | radeon_atombios_fini(rdev); | 1101 | radeon_atombios_fini(rdev); |
1103 | kfree(rdev->bios); | 1102 | kfree(rdev->bios); |
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c index 4b96e7a898c..5b4d66dc1a0 100644 --- a/drivers/hid/hid-apple.c +++ b/drivers/hid/hid-apple.c | |||
@@ -431,6 +431,13 @@ static const struct hid_device_id apple_devices[] = { | |||
431 | .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD }, | 431 | .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD }, |
432 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS), | 432 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS), |
433 | .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS }, | 433 | .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS }, |
434 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI), | ||
435 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, | ||
436 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO), | ||
437 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN | | ||
438 | APPLE_ISO_KEYBOARD }, | ||
439 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS), | ||
440 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, | ||
434 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY), | 441 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY), |
435 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, | 442 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, |
436 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY), | 443 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY), |
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 80792d38d25..eabe5f87c6c 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -1285,6 +1285,9 @@ static const struct hid_device_id hid_blacklist[] = { | |||
1285 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI) }, | 1285 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI) }, |
1286 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO) }, | 1286 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO) }, |
1287 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS) }, | 1287 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS) }, |
1288 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI) }, | ||
1289 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO) }, | ||
1290 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS) }, | ||
1288 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, | 1291 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, |
1289 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, | 1292 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, |
1290 | { HID_USB_DEVICE(USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM) }, | 1293 | { HID_USB_DEVICE(USB_VENDOR_ID_BELKIN, USB_DEVICE_ID_FLIP_KVM) }, |
@@ -1553,6 +1556,7 @@ static const struct hid_device_id hid_ignore_list[] = { | |||
1553 | { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EARTHMATE) }, | 1556 | { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EARTHMATE) }, |
1554 | { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EM_LT20) }, | 1557 | { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EM_LT20) }, |
1555 | { HID_USB_DEVICE(USB_VENDOR_ID_ESSENTIAL_REALITY, USB_DEVICE_ID_ESSENTIAL_REALITY_P5) }, | 1558 | { HID_USB_DEVICE(USB_VENDOR_ID_ESSENTIAL_REALITY, USB_DEVICE_ID_ESSENTIAL_REALITY_P5) }, |
1559 | { HID_USB_DEVICE(USB_VENDOR_ID_ETT, USB_DEVICE_ID_TC5UH) }, | ||
1556 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0001) }, | 1560 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0001) }, |
1557 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0002) }, | 1561 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0002) }, |
1558 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0003) }, | 1562 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0003) }, |
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index 3839340e293..010368e649e 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h | |||
@@ -88,6 +88,9 @@ | |||
88 | #define USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI 0x0236 | 88 | #define USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI 0x0236 |
89 | #define USB_DEVICE_ID_APPLE_WELLSPRING3_ISO 0x0237 | 89 | #define USB_DEVICE_ID_APPLE_WELLSPRING3_ISO 0x0237 |
90 | #define USB_DEVICE_ID_APPLE_WELLSPRING3_JIS 0x0238 | 90 | #define USB_DEVICE_ID_APPLE_WELLSPRING3_JIS 0x0238 |
91 | #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI 0x0239 | ||
92 | #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO 0x023a | ||
93 | #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b | ||
91 | #define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a | 94 | #define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a |
92 | #define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b | 95 | #define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b |
93 | #define USB_DEVICE_ID_APPLE_ATV_IRCONTROL 0x8241 | 96 | #define USB_DEVICE_ID_APPLE_ATV_IRCONTROL 0x8241 |
@@ -166,6 +169,9 @@ | |||
166 | #define USB_VENDOR_ID_ESSENTIAL_REALITY 0x0d7f | 169 | #define USB_VENDOR_ID_ESSENTIAL_REALITY 0x0d7f |
167 | #define USB_DEVICE_ID_ESSENTIAL_REALITY_P5 0x0100 | 170 | #define USB_DEVICE_ID_ESSENTIAL_REALITY_P5 0x0100 |
168 | 171 | ||
172 | #define USB_VENDOR_ID_ETT 0x0664 | ||
173 | #define USB_DEVICE_ID_TC5UH 0x0309 | ||
174 | |||
169 | #define USB_VENDOR_ID_EZKEY 0x0518 | 175 | #define USB_VENDOR_ID_EZKEY 0x0518 |
170 | #define USB_DEVICE_ID_BTC_8193 0x0002 | 176 | #define USB_DEVICE_ID_BTC_8193 0x0002 |
171 | 177 | ||
diff --git a/drivers/hid/hid-samsung.c b/drivers/hid/hid-samsung.c index 5b222eed069..510dd134059 100644 --- a/drivers/hid/hid-samsung.c +++ b/drivers/hid/hid-samsung.c | |||
@@ -39,7 +39,17 @@ | |||
39 | * | 39 | * |
40 | * 3. 135 byte report descriptor | 40 | * 3. 135 byte report descriptor |
41 | * Report #4 has an array field with logical range 0..17 instead of 1..14. | 41 | * Report #4 has an array field with logical range 0..17 instead of 1..14. |
42 | * | ||
43 | * 4. 171 byte report descriptor | ||
44 | * Report #3 has an array field with logical range 0..1 instead of 1..3. | ||
42 | */ | 45 | */ |
46 | static inline void samsung_dev_trace(struct hid_device *hdev, | ||
47 | unsigned int rsize) | ||
48 | { | ||
49 | dev_info(&hdev->dev, "fixing up Samsung IrDA %d byte report " | ||
50 | "descriptor\n", rsize); | ||
51 | } | ||
52 | |||
43 | static void samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, | 53 | static void samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, |
44 | unsigned int rsize) | 54 | unsigned int rsize) |
45 | { | 55 | { |
@@ -47,8 +57,7 @@ static void samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, | |||
47 | rdesc[177] == 0x75 && rdesc[178] == 0x30 && | 57 | rdesc[177] == 0x75 && rdesc[178] == 0x30 && |
48 | rdesc[179] == 0x95 && rdesc[180] == 0x01 && | 58 | rdesc[179] == 0x95 && rdesc[180] == 0x01 && |
49 | rdesc[182] == 0x40) { | 59 | rdesc[182] == 0x40) { |
50 | dev_info(&hdev->dev, "fixing up Samsung IrDA %d byte report " | 60 | samsung_dev_trace(hdev, 184); |
51 | "descriptor\n", 184); | ||
52 | rdesc[176] = 0xff; | 61 | rdesc[176] = 0xff; |
53 | rdesc[178] = 0x08; | 62 | rdesc[178] = 0x08; |
54 | rdesc[180] = 0x06; | 63 | rdesc[180] = 0x06; |
@@ -56,17 +65,21 @@ static void samsung_report_fixup(struct hid_device *hdev, __u8 *rdesc, | |||
56 | } else | 65 | } else |
57 | if (rsize == 203 && rdesc[192] == 0x15 && rdesc[193] == 0x0 && | 66 | if (rsize == 203 && rdesc[192] == 0x15 && rdesc[193] == 0x0 && |
58 | rdesc[194] == 0x25 && rdesc[195] == 0x12) { | 67 | rdesc[194] == 0x25 && rdesc[195] == 0x12) { |
59 | dev_info(&hdev->dev, "fixing up Samsung IrDA %d byte report " | 68 | samsung_dev_trace(hdev, 203); |
60 | "descriptor\n", 203); | ||
61 | rdesc[193] = 0x1; | 69 | rdesc[193] = 0x1; |
62 | rdesc[195] = 0xf; | 70 | rdesc[195] = 0xf; |
63 | } else | 71 | } else |
64 | if (rsize == 135 && rdesc[124] == 0x15 && rdesc[125] == 0x0 && | 72 | if (rsize == 135 && rdesc[124] == 0x15 && rdesc[125] == 0x0 && |
65 | rdesc[126] == 0x25 && rdesc[127] == 0x11) { | 73 | rdesc[126] == 0x25 && rdesc[127] == 0x11) { |
66 | dev_info(&hdev->dev, "fixing up Samsung IrDA %d byte report " | 74 | samsung_dev_trace(hdev, 135); |
67 | "descriptor\n", 135); | ||
68 | rdesc[125] = 0x1; | 75 | rdesc[125] = 0x1; |
69 | rdesc[127] = 0xe; | 76 | rdesc[127] = 0xe; |
77 | } else | ||
78 | if (rsize == 171 && rdesc[160] == 0x15 && rdesc[161] == 0x0 && | ||
79 | rdesc[162] == 0x25 && rdesc[163] == 0x01) { | ||
80 | samsung_dev_trace(hdev, 171); | ||
81 | rdesc[161] = 0x1; | ||
82 | rdesc[163] = 0x3; | ||
70 | } | 83 | } |
71 | } | 84 | } |
72 | 85 | ||
diff --git a/drivers/hid/hid-wacom.c b/drivers/hid/hid-wacom.c index 74754217224..12dcda52920 100644 --- a/drivers/hid/hid-wacom.c +++ b/drivers/hid/hid-wacom.c | |||
@@ -142,6 +142,7 @@ static int wacom_raw_event(struct hid_device *hdev, struct hid_report *report, | |||
142 | wdata->butstate = rw; | 142 | wdata->butstate = rw; |
143 | input_report_key(input, BTN_0, rw & 0x02); | 143 | input_report_key(input, BTN_0, rw & 0x02); |
144 | input_report_key(input, BTN_1, rw & 0x01); | 144 | input_report_key(input, BTN_1, rw & 0x01); |
145 | input_report_key(input, BTN_TOOL_FINGER, 0xf0); | ||
145 | input_event(input, EV_MSC, MSC_SERIAL, 0xf0); | 146 | input_event(input, EV_MSC, MSC_SERIAL, 0xf0); |
146 | input_sync(input); | 147 | input_sync(input); |
147 | } | 148 | } |
@@ -196,6 +197,9 @@ static int wacom_probe(struct hid_device *hdev, | |||
196 | /* Pad */ | 197 | /* Pad */ |
197 | input->evbit[0] |= BIT(EV_MSC); | 198 | input->evbit[0] |= BIT(EV_MSC); |
198 | input->mscbit[0] |= BIT(MSC_SERIAL); | 199 | input->mscbit[0] |= BIT(MSC_SERIAL); |
200 | set_bit(BTN_0, input->keybit); | ||
201 | set_bit(BTN_1, input->keybit); | ||
202 | set_bit(BTN_TOOL_FINGER, input->keybit); | ||
199 | 203 | ||
200 | /* Distance, rubber and mouse */ | 204 | /* Distance, rubber and mouse */ |
201 | input->absbit[0] |= BIT(ABS_DISTANCE); | 205 | input->absbit[0] |= BIT(ABS_DISTANCE); |
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig index 46c3c566307..68cf87749a4 100644 --- a/drivers/hwmon/Kconfig +++ b/drivers/hwmon/Kconfig | |||
@@ -392,7 +392,7 @@ config SENSORS_GL520SM | |||
392 | 392 | ||
393 | config SENSORS_CORETEMP | 393 | config SENSORS_CORETEMP |
394 | tristate "Intel Core/Core2/Atom temperature sensor" | 394 | tristate "Intel Core/Core2/Atom temperature sensor" |
395 | depends on X86 && EXPERIMENTAL | 395 | depends on X86 && PCI && EXPERIMENTAL |
396 | help | 396 | help |
397 | If you say yes here you get support for the temperature | 397 | If you say yes here you get support for the temperature |
398 | sensor inside your CPU. Most of the family 6 CPUs | 398 | sensor inside your CPU. Most of the family 6 CPUs |
@@ -792,6 +792,16 @@ config SENSORS_ADS7828 | |||
792 | This driver can also be built as a module. If so, the module | 792 | This driver can also be built as a module. If so, the module |
793 | will be called ads7828. | 793 | will be called ads7828. |
794 | 794 | ||
795 | config SENSORS_AMC6821 | ||
796 | tristate "Texas Instruments AMC6821" | ||
797 | depends on I2C && EXPERIMENTAL | ||
798 | help | ||
799 | If you say yes here you get support for the Texas Instruments | ||
800 | AMC6821 hardware monitoring chips. | ||
801 | |||
802 | This driver can also be build as a module. If so, the module | ||
803 | will be called amc6821. | ||
804 | |||
795 | config SENSORS_THMC50 | 805 | config SENSORS_THMC50 |
796 | tristate "Texas Instruments THMC50 / Analog Devices ADM1022" | 806 | tristate "Texas Instruments THMC50 / Analog Devices ADM1022" |
797 | depends on I2C && EXPERIMENTAL | 807 | depends on I2C && EXPERIMENTAL |
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile index 450c8e89427..4bc215c0953 100644 --- a/drivers/hwmon/Makefile +++ b/drivers/hwmon/Makefile | |||
@@ -86,6 +86,7 @@ obj-$(CONFIG_SENSORS_SIS5595) += sis5595.o | |||
86 | obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o | 86 | obj-$(CONFIG_SENSORS_SMSC47B397)+= smsc47b397.o |
87 | obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o | 87 | obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o |
88 | obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o | 88 | obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o |
89 | obj-$(CONFIG_SENSORS_AMC6821) += amc6821.o | ||
89 | obj-$(CONFIG_SENSORS_THMC50) += thmc50.o | 90 | obj-$(CONFIG_SENSORS_THMC50) += thmc50.o |
90 | obj-$(CONFIG_SENSORS_TMP401) += tmp401.o | 91 | obj-$(CONFIG_SENSORS_TMP401) += tmp401.o |
91 | obj-$(CONFIG_SENSORS_TMP421) += tmp421.o | 92 | obj-$(CONFIG_SENSORS_TMP421) += tmp421.o |
diff --git a/drivers/hwmon/adt7462.c b/drivers/hwmon/adt7462.c index a1a7ef14b51..a31e77c776a 100644 --- a/drivers/hwmon/adt7462.c +++ b/drivers/hwmon/adt7462.c | |||
@@ -94,7 +94,7 @@ static const unsigned short normal_i2c[] = { 0x58, 0x5C, I2C_CLIENT_END }; | |||
94 | #define ADT7462_PIN24_SHIFT 6 | 94 | #define ADT7462_PIN24_SHIFT 6 |
95 | #define ADT7462_PIN26_VOLT_INPUT 0x08 | 95 | #define ADT7462_PIN26_VOLT_INPUT 0x08 |
96 | #define ADT7462_PIN25_VOLT_INPUT 0x20 | 96 | #define ADT7462_PIN25_VOLT_INPUT 0x20 |
97 | #define ADT7462_PIN28_SHIFT 6 /* cfg3 */ | 97 | #define ADT7462_PIN28_SHIFT 4 /* cfg3 */ |
98 | #define ADT7462_PIN28_VOLT 0x5 | 98 | #define ADT7462_PIN28_VOLT 0x5 |
99 | 99 | ||
100 | #define ADT7462_REG_ALARM1 0xB8 | 100 | #define ADT7462_REG_ALARM1 0xB8 |
diff --git a/drivers/hwmon/amc6821.c b/drivers/hwmon/amc6821.c new file mode 100644 index 00000000000..1c89d922d61 --- /dev/null +++ b/drivers/hwmon/amc6821.c | |||
@@ -0,0 +1,1116 @@ | |||
1 | /* | ||
2 | amc6821.c - Part of lm_sensors, Linux kernel modules for hardware | ||
3 | monitoring | ||
4 | Copyright (C) 2009 T. Mertelj <tomaz.mertelj@guest.arnes.si> | ||
5 | |||
6 | Based on max6650.c: | ||
7 | Copyright (C) 2007 Hans J. Koch <hjk@linutronix.de> | ||
8 | |||
9 | This program is free software; you can redistribute it and/or modify | ||
10 | it under the terms of the GNU General Public License as published by | ||
11 | the Free Software Foundation; either version 2 of the License, or | ||
12 | (at your option) any later version. | ||
13 | |||
14 | This program is distributed in the hope that it will be useful, | ||
15 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | GNU General Public License for more details. | ||
18 | |||
19 | You should have received a copy of the GNU General Public License | ||
20 | along with this program; if not, write to the Free Software | ||
21 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
22 | */ | ||
23 | |||
24 | |||
25 | #include <linux/kernel.h> /* Needed for KERN_INFO */ | ||
26 | #include <linux/module.h> | ||
27 | #include <linux/init.h> | ||
28 | #include <linux/slab.h> | ||
29 | #include <linux/jiffies.h> | ||
30 | #include <linux/i2c.h> | ||
31 | #include <linux/hwmon.h> | ||
32 | #include <linux/hwmon-sysfs.h> | ||
33 | #include <linux/err.h> | ||
34 | #include <linux/mutex.h> | ||
35 | |||
36 | |||
37 | /* | ||
38 | * Addresses to scan. | ||
39 | */ | ||
40 | |||
41 | static const unsigned short normal_i2c[] = {0x18, 0x19, 0x1a, 0x2c, 0x2d, 0x2e, | ||
42 | 0x4c, 0x4d, 0x4e, I2C_CLIENT_END}; | ||
43 | |||
44 | |||
45 | |||
46 | /* | ||
47 | * Insmod parameters | ||
48 | */ | ||
49 | |||
50 | static int pwminv = 0; /*Inverted PWM output. */ | ||
51 | module_param(pwminv, int, S_IRUGO); | ||
52 | |||
53 | static int init = 1; /*Power-on initialization.*/ | ||
54 | module_param(init, int, S_IRUGO); | ||
55 | |||
56 | |||
57 | enum chips { amc6821 }; | ||
58 | |||
59 | #define AMC6821_REG_DEV_ID 0x3D | ||
60 | #define AMC6821_REG_COMP_ID 0x3E | ||
61 | #define AMC6821_REG_CONF1 0x00 | ||
62 | #define AMC6821_REG_CONF2 0x01 | ||
63 | #define AMC6821_REG_CONF3 0x3F | ||
64 | #define AMC6821_REG_CONF4 0x04 | ||
65 | #define AMC6821_REG_STAT1 0x02 | ||
66 | #define AMC6821_REG_STAT2 0x03 | ||
67 | #define AMC6821_REG_TDATA_LOW 0x08 | ||
68 | #define AMC6821_REG_TDATA_HI 0x09 | ||
69 | #define AMC6821_REG_LTEMP_HI 0x0A | ||
70 | #define AMC6821_REG_RTEMP_HI 0x0B | ||
71 | #define AMC6821_REG_LTEMP_LIMIT_MIN 0x15 | ||
72 | #define AMC6821_REG_LTEMP_LIMIT_MAX 0x14 | ||
73 | #define AMC6821_REG_RTEMP_LIMIT_MIN 0x19 | ||
74 | #define AMC6821_REG_RTEMP_LIMIT_MAX 0x18 | ||
75 | #define AMC6821_REG_LTEMP_CRIT 0x1B | ||
76 | #define AMC6821_REG_RTEMP_CRIT 0x1D | ||
77 | #define AMC6821_REG_PSV_TEMP 0x1C | ||
78 | #define AMC6821_REG_DCY 0x22 | ||
79 | #define AMC6821_REG_LTEMP_FAN_CTRL 0x24 | ||
80 | #define AMC6821_REG_RTEMP_FAN_CTRL 0x25 | ||
81 | #define AMC6821_REG_DCY_LOW_TEMP 0x21 | ||
82 | |||
83 | #define AMC6821_REG_TACH_LLIMITL 0x10 | ||
84 | #define AMC6821_REG_TACH_LLIMITH 0x11 | ||
85 | #define AMC6821_REG_TACH_HLIMITL 0x12 | ||
86 | #define AMC6821_REG_TACH_HLIMITH 0x13 | ||
87 | |||
88 | #define AMC6821_CONF1_START 0x01 | ||
89 | #define AMC6821_CONF1_FAN_INT_EN 0x02 | ||
90 | #define AMC6821_CONF1_FANIE 0x04 | ||
91 | #define AMC6821_CONF1_PWMINV 0x08 | ||
92 | #define AMC6821_CONF1_FAN_FAULT_EN 0x10 | ||
93 | #define AMC6821_CONF1_FDRC0 0x20 | ||
94 | #define AMC6821_CONF1_FDRC1 0x40 | ||
95 | #define AMC6821_CONF1_THERMOVIE 0x80 | ||
96 | |||
97 | #define AMC6821_CONF2_PWM_EN 0x01 | ||
98 | #define AMC6821_CONF2_TACH_MODE 0x02 | ||
99 | #define AMC6821_CONF2_TACH_EN 0x04 | ||
100 | #define AMC6821_CONF2_RTFIE 0x08 | ||
101 | #define AMC6821_CONF2_LTOIE 0x10 | ||
102 | #define AMC6821_CONF2_RTOIE 0x20 | ||
103 | #define AMC6821_CONF2_PSVIE 0x40 | ||
104 | #define AMC6821_CONF2_RST 0x80 | ||
105 | |||
106 | #define AMC6821_CONF3_THERM_FAN_EN 0x80 | ||
107 | #define AMC6821_CONF3_REV_MASK 0x0F | ||
108 | |||
109 | #define AMC6821_CONF4_OVREN 0x10 | ||
110 | #define AMC6821_CONF4_TACH_FAST 0x20 | ||
111 | #define AMC6821_CONF4_PSPR 0x40 | ||
112 | #define AMC6821_CONF4_MODE 0x80 | ||
113 | |||
114 | #define AMC6821_STAT1_RPM_ALARM 0x01 | ||
115 | #define AMC6821_STAT1_FANS 0x02 | ||
116 | #define AMC6821_STAT1_RTH 0x04 | ||
117 | #define AMC6821_STAT1_RTL 0x08 | ||
118 | #define AMC6821_STAT1_R_THERM 0x10 | ||
119 | #define AMC6821_STAT1_RTF 0x20 | ||
120 | #define AMC6821_STAT1_LTH 0x40 | ||
121 | #define AMC6821_STAT1_LTL 0x80 | ||
122 | |||
123 | #define AMC6821_STAT2_RTC 0x08 | ||
124 | #define AMC6821_STAT2_LTC 0x10 | ||
125 | #define AMC6821_STAT2_LPSV 0x20 | ||
126 | #define AMC6821_STAT2_L_THERM 0x40 | ||
127 | #define AMC6821_STAT2_THERM_IN 0x80 | ||
128 | |||
129 | enum {IDX_TEMP1_INPUT = 0, IDX_TEMP1_MIN, IDX_TEMP1_MAX, | ||
130 | IDX_TEMP1_CRIT, IDX_TEMP2_INPUT, IDX_TEMP2_MIN, | ||
131 | IDX_TEMP2_MAX, IDX_TEMP2_CRIT, | ||
132 | TEMP_IDX_LEN, }; | ||
133 | |||
134 | static const u8 temp_reg[] = {AMC6821_REG_LTEMP_HI, | ||
135 | AMC6821_REG_LTEMP_LIMIT_MIN, | ||
136 | AMC6821_REG_LTEMP_LIMIT_MAX, | ||
137 | AMC6821_REG_LTEMP_CRIT, | ||
138 | AMC6821_REG_RTEMP_HI, | ||
139 | AMC6821_REG_RTEMP_LIMIT_MIN, | ||
140 | AMC6821_REG_RTEMP_LIMIT_MAX, | ||
141 | AMC6821_REG_RTEMP_CRIT, }; | ||
142 | |||
143 | enum {IDX_FAN1_INPUT = 0, IDX_FAN1_MIN, IDX_FAN1_MAX, | ||
144 | FAN1_IDX_LEN, }; | ||
145 | |||
146 | static const u8 fan_reg_low[] = {AMC6821_REG_TDATA_LOW, | ||
147 | AMC6821_REG_TACH_LLIMITL, | ||
148 | AMC6821_REG_TACH_HLIMITL, }; | ||
149 | |||
150 | |||
151 | static const u8 fan_reg_hi[] = {AMC6821_REG_TDATA_HI, | ||
152 | AMC6821_REG_TACH_LLIMITH, | ||
153 | AMC6821_REG_TACH_HLIMITH, }; | ||
154 | |||
155 | static int amc6821_probe( | ||
156 | struct i2c_client *client, | ||
157 | const struct i2c_device_id *id); | ||
158 | static int amc6821_detect( | ||
159 | struct i2c_client *client, | ||
160 | struct i2c_board_info *info); | ||
161 | static int amc6821_init_client(struct i2c_client *client); | ||
162 | static int amc6821_remove(struct i2c_client *client); | ||
163 | static struct amc6821_data *amc6821_update_device(struct device *dev); | ||
164 | |||
165 | /* | ||
166 | * Driver data (common to all clients) | ||
167 | */ | ||
168 | |||
169 | static const struct i2c_device_id amc6821_id[] = { | ||
170 | { "amc6821", amc6821 }, | ||
171 | { } | ||
172 | }; | ||
173 | |||
174 | MODULE_DEVICE_TABLE(i2c, amc6821_id); | ||
175 | |||
176 | static struct i2c_driver amc6821_driver = { | ||
177 | .class = I2C_CLASS_HWMON, | ||
178 | .driver = { | ||
179 | .name = "amc6821", | ||
180 | }, | ||
181 | .probe = amc6821_probe, | ||
182 | .remove = amc6821_remove, | ||
183 | .id_table = amc6821_id, | ||
184 | .detect = amc6821_detect, | ||
185 | .address_list = normal_i2c, | ||
186 | }; | ||
187 | |||
188 | |||
189 | /* | ||
190 | * Client data (each client gets its own) | ||
191 | */ | ||
192 | |||
193 | struct amc6821_data { | ||
194 | struct device *hwmon_dev; | ||
195 | struct mutex update_lock; | ||
196 | char valid; /* zero until following fields are valid */ | ||
197 | unsigned long last_updated; /* in jiffies */ | ||
198 | |||
199 | /* register values */ | ||
200 | int temp[TEMP_IDX_LEN]; | ||
201 | |||
202 | u16 fan[FAN1_IDX_LEN]; | ||
203 | u8 fan1_div; | ||
204 | |||
205 | u8 pwm1; | ||
206 | u8 temp1_auto_point_temp[3]; | ||
207 | u8 temp2_auto_point_temp[3]; | ||
208 | u8 pwm1_auto_point_pwm[3]; | ||
209 | u8 pwm1_enable; | ||
210 | u8 pwm1_auto_channels_temp; | ||
211 | |||
212 | u8 stat1; | ||
213 | u8 stat2; | ||
214 | }; | ||
215 | |||
216 | |||
217 | static ssize_t get_temp( | ||
218 | struct device *dev, | ||
219 | struct device_attribute *devattr, | ||
220 | char *buf) | ||
221 | { | ||
222 | struct amc6821_data *data = amc6821_update_device(dev); | ||
223 | int ix = to_sensor_dev_attr(devattr)->index; | ||
224 | |||
225 | return sprintf(buf, "%d\n", data->temp[ix] * 1000); | ||
226 | } | ||
227 | |||
228 | |||
229 | |||
230 | static ssize_t set_temp( | ||
231 | struct device *dev, | ||
232 | struct device_attribute *attr, | ||
233 | const char *buf, | ||
234 | size_t count) | ||
235 | { | ||
236 | struct i2c_client *client = to_i2c_client(dev); | ||
237 | struct amc6821_data *data = i2c_get_clientdata(client); | ||
238 | int ix = to_sensor_dev_attr(attr)->index; | ||
239 | long val; | ||
240 | |||
241 | int ret = strict_strtol(buf, 10, &val); | ||
242 | if (ret) | ||
243 | return ret; | ||
244 | val = SENSORS_LIMIT(val / 1000, -128, 127); | ||
245 | |||
246 | mutex_lock(&data->update_lock); | ||
247 | data->temp[ix] = val; | ||
248 | if (i2c_smbus_write_byte_data(client, temp_reg[ix], data->temp[ix])) { | ||
249 | dev_err(&client->dev, "Register write error, aborting.\n"); | ||
250 | count = -EIO; | ||
251 | } | ||
252 | mutex_unlock(&data->update_lock); | ||
253 | return count; | ||
254 | } | ||
255 | |||
256 | |||
257 | |||
258 | |||
259 | static ssize_t get_temp_alarm( | ||
260 | struct device *dev, | ||
261 | struct device_attribute *devattr, | ||
262 | char *buf) | ||
263 | { | ||
264 | struct amc6821_data *data = amc6821_update_device(dev); | ||
265 | int ix = to_sensor_dev_attr(devattr)->index; | ||
266 | u8 flag; | ||
267 | |||
268 | switch (ix) { | ||
269 | case IDX_TEMP1_MIN: | ||
270 | flag = data->stat1 & AMC6821_STAT1_LTL; | ||
271 | break; | ||
272 | case IDX_TEMP1_MAX: | ||
273 | flag = data->stat1 & AMC6821_STAT1_LTH; | ||
274 | break; | ||
275 | case IDX_TEMP1_CRIT: | ||
276 | flag = data->stat2 & AMC6821_STAT2_LTC; | ||
277 | break; | ||
278 | case IDX_TEMP2_MIN: | ||
279 | flag = data->stat1 & AMC6821_STAT1_RTL; | ||
280 | break; | ||
281 | case IDX_TEMP2_MAX: | ||
282 | flag = data->stat1 & AMC6821_STAT1_RTH; | ||
283 | break; | ||
284 | case IDX_TEMP2_CRIT: | ||
285 | flag = data->stat2 & AMC6821_STAT2_RTC; | ||
286 | break; | ||
287 | default: | ||
288 | dev_dbg(dev, "Unknown attr->index (%d).\n", ix); | ||
289 | return -EINVAL; | ||
290 | } | ||
291 | if (flag) | ||
292 | return sprintf(buf, "1"); | ||
293 | else | ||
294 | return sprintf(buf, "0"); | ||
295 | } | ||
296 | |||
297 | |||
298 | |||
299 | |||
300 | static ssize_t get_temp2_fault( | ||
301 | struct device *dev, | ||
302 | struct device_attribute *devattr, | ||
303 | char *buf) | ||
304 | { | ||
305 | struct amc6821_data *data = amc6821_update_device(dev); | ||
306 | if (data->stat1 & AMC6821_STAT1_RTF) | ||
307 | return sprintf(buf, "1"); | ||
308 | else | ||
309 | return sprintf(buf, "0"); | ||
310 | } | ||
311 | |||
312 | static ssize_t get_pwm1( | ||
313 | struct device *dev, | ||
314 | struct device_attribute *devattr, | ||
315 | char *buf) | ||
316 | { | ||
317 | struct amc6821_data *data = amc6821_update_device(dev); | ||
318 | return sprintf(buf, "%d\n", data->pwm1); | ||
319 | } | ||
320 | |||
321 | static ssize_t set_pwm1( | ||
322 | struct device *dev, | ||
323 | struct device_attribute *devattr, | ||
324 | const char *buf, | ||
325 | size_t count) | ||
326 | { | ||
327 | struct i2c_client *client = to_i2c_client(dev); | ||
328 | struct amc6821_data *data = i2c_get_clientdata(client); | ||
329 | long val; | ||
330 | int ret = strict_strtol(buf, 10, &val); | ||
331 | if (ret) | ||
332 | return ret; | ||
333 | |||
334 | mutex_lock(&data->update_lock); | ||
335 | data->pwm1 = SENSORS_LIMIT(val , 0, 255); | ||
336 | i2c_smbus_write_byte_data(client, AMC6821_REG_DCY, data->pwm1); | ||
337 | mutex_unlock(&data->update_lock); | ||
338 | return count; | ||
339 | } | ||
340 | |||
341 | static ssize_t get_pwm1_enable( | ||
342 | struct device *dev, | ||
343 | struct device_attribute *devattr, | ||
344 | char *buf) | ||
345 | { | ||
346 | struct amc6821_data *data = amc6821_update_device(dev); | ||
347 | return sprintf(buf, "%d\n", data->pwm1_enable); | ||
348 | } | ||
349 | |||
350 | static ssize_t set_pwm1_enable( | ||
351 | struct device *dev, | ||
352 | struct device_attribute *attr, | ||
353 | const char *buf, | ||
354 | size_t count) | ||
355 | { | ||
356 | struct i2c_client *client = to_i2c_client(dev); | ||
357 | struct amc6821_data *data = i2c_get_clientdata(client); | ||
358 | long val; | ||
359 | int config = strict_strtol(buf, 10, &val); | ||
360 | if (config) | ||
361 | return config; | ||
362 | |||
363 | config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF1); | ||
364 | if (config < 0) { | ||
365 | dev_err(&client->dev, | ||
366 | "Error reading configuration register, aborting.\n"); | ||
367 | return -EIO; | ||
368 | } | ||
369 | |||
370 | switch (val) { | ||
371 | case 1: | ||
372 | config &= ~AMC6821_CONF1_FDRC0; | ||
373 | config &= ~AMC6821_CONF1_FDRC1; | ||
374 | break; | ||
375 | case 2: | ||
376 | config &= ~AMC6821_CONF1_FDRC0; | ||
377 | config |= AMC6821_CONF1_FDRC1; | ||
378 | break; | ||
379 | case 3: | ||
380 | config |= AMC6821_CONF1_FDRC0; | ||
381 | config |= AMC6821_CONF1_FDRC1; | ||
382 | break; | ||
383 | default: | ||
384 | return -EINVAL; | ||
385 | } | ||
386 | mutex_lock(&data->update_lock); | ||
387 | if (i2c_smbus_write_byte_data(client, AMC6821_REG_CONF1, config)) { | ||
388 | dev_err(&client->dev, | ||
389 | "Configuration register write error, aborting.\n"); | ||
390 | count = -EIO; | ||
391 | } | ||
392 | mutex_unlock(&data->update_lock); | ||
393 | return count; | ||
394 | } | ||
395 | |||
396 | |||
397 | static ssize_t get_pwm1_auto_channels_temp( | ||
398 | struct device *dev, | ||
399 | struct device_attribute *devattr, | ||
400 | char *buf) | ||
401 | { | ||
402 | struct amc6821_data *data = amc6821_update_device(dev); | ||
403 | return sprintf(buf, "%d\n", data->pwm1_auto_channels_temp); | ||
404 | } | ||
405 | |||
406 | |||
407 | static ssize_t get_temp_auto_point_temp( | ||
408 | struct device *dev, | ||
409 | struct device_attribute *devattr, | ||
410 | char *buf) | ||
411 | { | ||
412 | int ix = to_sensor_dev_attr_2(devattr)->index; | ||
413 | int nr = to_sensor_dev_attr_2(devattr)->nr; | ||
414 | struct amc6821_data *data = amc6821_update_device(dev); | ||
415 | switch (nr) { | ||
416 | case 1: | ||
417 | return sprintf(buf, "%d\n", | ||
418 | data->temp1_auto_point_temp[ix] * 1000); | ||
419 | break; | ||
420 | case 2: | ||
421 | return sprintf(buf, "%d\n", | ||
422 | data->temp2_auto_point_temp[ix] * 1000); | ||
423 | break; | ||
424 | default: | ||
425 | dev_dbg(dev, "Unknown attr->nr (%d).\n", nr); | ||
426 | return -EINVAL; | ||
427 | } | ||
428 | } | ||
429 | |||
430 | |||
431 | static ssize_t get_pwm1_auto_point_pwm( | ||
432 | struct device *dev, | ||
433 | struct device_attribute *devattr, | ||
434 | char *buf) | ||
435 | { | ||
436 | int ix = to_sensor_dev_attr(devattr)->index; | ||
437 | struct amc6821_data *data = amc6821_update_device(dev); | ||
438 | return sprintf(buf, "%d\n", data->pwm1_auto_point_pwm[ix]); | ||
439 | } | ||
440 | |||
441 | |||
442 | static inline ssize_t set_slope_register(struct i2c_client *client, | ||
443 | u8 reg, | ||
444 | u8 dpwm, | ||
445 | u8 *ptemp) | ||
446 | { | ||
447 | int dt; | ||
448 | u8 tmp; | ||
449 | |||
450 | dt = ptemp[2]-ptemp[1]; | ||
451 | for (tmp = 4; tmp > 0; tmp--) { | ||
452 | if (dt * (0x20 >> tmp) >= dpwm) | ||
453 | break; | ||
454 | } | ||
455 | tmp |= (ptemp[1] & 0x7C) << 1; | ||
456 | if (i2c_smbus_write_byte_data(client, | ||
457 | reg, tmp)) { | ||
458 | dev_err(&client->dev, "Register write error, aborting.\n"); | ||
459 | return -EIO; | ||
460 | } | ||
461 | return 0; | ||
462 | } | ||
463 | |||
464 | |||
465 | |||
466 | static ssize_t set_temp_auto_point_temp( | ||
467 | struct device *dev, | ||
468 | struct device_attribute *attr, | ||
469 | const char *buf, | ||
470 | size_t count) | ||
471 | { | ||
472 | struct i2c_client *client = to_i2c_client(dev); | ||
473 | struct amc6821_data *data = amc6821_update_device(dev); | ||
474 | int ix = to_sensor_dev_attr_2(attr)->index; | ||
475 | int nr = to_sensor_dev_attr_2(attr)->nr; | ||
476 | u8 *ptemp; | ||
477 | u8 reg; | ||
478 | int dpwm; | ||
479 | long val; | ||
480 | int ret = strict_strtol(buf, 10, &val); | ||
481 | if (ret) | ||
482 | return ret; | ||
483 | |||
484 | switch (nr) { | ||
485 | case 1: | ||
486 | ptemp = data->temp1_auto_point_temp; | ||
487 | reg = AMC6821_REG_LTEMP_FAN_CTRL; | ||
488 | break; | ||
489 | case 2: | ||
490 | ptemp = data->temp2_auto_point_temp; | ||
491 | reg = AMC6821_REG_RTEMP_FAN_CTRL; | ||
492 | break; | ||
493 | default: | ||
494 | dev_dbg(dev, "Unknown attr->nr (%d).\n", nr); | ||
495 | return -EINVAL; | ||
496 | } | ||
497 | |||
498 | data->valid = 0; | ||
499 | mutex_lock(&data->update_lock); | ||
500 | switch (ix) { | ||
501 | case 0: | ||
502 | ptemp[0] = SENSORS_LIMIT(val / 1000, 0, | ||
503 | data->temp1_auto_point_temp[1]); | ||
504 | ptemp[0] = SENSORS_LIMIT(ptemp[0], 0, | ||
505 | data->temp2_auto_point_temp[1]); | ||
506 | ptemp[0] = SENSORS_LIMIT(ptemp[0], 0, 63); | ||
507 | if (i2c_smbus_write_byte_data( | ||
508 | client, | ||
509 | AMC6821_REG_PSV_TEMP, | ||
510 | ptemp[0])) { | ||
511 | dev_err(&client->dev, | ||
512 | "Register write error, aborting.\n"); | ||
513 | count = -EIO; | ||
514 | } | ||
515 | goto EXIT; | ||
516 | break; | ||
517 | case 1: | ||
518 | ptemp[1] = SENSORS_LIMIT( | ||
519 | val / 1000, | ||
520 | (ptemp[0] & 0x7C) + 4, | ||
521 | 124); | ||
522 | ptemp[1] &= 0x7C; | ||
523 | ptemp[2] = SENSORS_LIMIT( | ||
524 | ptemp[2], ptemp[1] + 1, | ||
525 | 255); | ||
526 | break; | ||
527 | case 2: | ||
528 | ptemp[2] = SENSORS_LIMIT( | ||
529 | val / 1000, | ||
530 | ptemp[1]+1, | ||
531 | 255); | ||
532 | break; | ||
533 | default: | ||
534 | dev_dbg(dev, "Unknown attr->index (%d).\n", ix); | ||
535 | count = -EINVAL; | ||
536 | goto EXIT; | ||
537 | } | ||
538 | dpwm = data->pwm1_auto_point_pwm[2] - data->pwm1_auto_point_pwm[1]; | ||
539 | if (set_slope_register(client, reg, dpwm, ptemp)) | ||
540 | count = -EIO; | ||
541 | |||
542 | EXIT: | ||
543 | mutex_unlock(&data->update_lock); | ||
544 | return count; | ||
545 | } | ||
546 | |||
547 | |||
548 | |||
549 | static ssize_t set_pwm1_auto_point_pwm( | ||
550 | struct device *dev, | ||
551 | struct device_attribute *attr, | ||
552 | const char *buf, | ||
553 | size_t count) | ||
554 | { | ||
555 | struct i2c_client *client = to_i2c_client(dev); | ||
556 | struct amc6821_data *data = i2c_get_clientdata(client); | ||
557 | int dpwm; | ||
558 | long val; | ||
559 | int ret = strict_strtol(buf, 10, &val); | ||
560 | if (ret) | ||
561 | return ret; | ||
562 | |||
563 | mutex_lock(&data->update_lock); | ||
564 | data->pwm1_auto_point_pwm[1] = SENSORS_LIMIT(val, 0, 254); | ||
565 | if (i2c_smbus_write_byte_data(client, AMC6821_REG_DCY_LOW_TEMP, | ||
566 | data->pwm1_auto_point_pwm[1])) { | ||
567 | dev_err(&client->dev, "Register write error, aborting.\n"); | ||
568 | count = -EIO; | ||
569 | goto EXIT; | ||
570 | } | ||
571 | dpwm = data->pwm1_auto_point_pwm[2] - data->pwm1_auto_point_pwm[1]; | ||
572 | if (set_slope_register(client, AMC6821_REG_LTEMP_FAN_CTRL, dpwm, | ||
573 | data->temp1_auto_point_temp)) { | ||
574 | count = -EIO; | ||
575 | goto EXIT; | ||
576 | } | ||
577 | if (set_slope_register(client, AMC6821_REG_RTEMP_FAN_CTRL, dpwm, | ||
578 | data->temp2_auto_point_temp)) { | ||
579 | count = -EIO; | ||
580 | goto EXIT; | ||
581 | } | ||
582 | |||
583 | EXIT: | ||
584 | data->valid = 0; | ||
585 | mutex_unlock(&data->update_lock); | ||
586 | return count; | ||
587 | } | ||
588 | |||
589 | static ssize_t get_fan( | ||
590 | struct device *dev, | ||
591 | struct device_attribute *devattr, | ||
592 | char *buf) | ||
593 | { | ||
594 | struct amc6821_data *data = amc6821_update_device(dev); | ||
595 | int ix = to_sensor_dev_attr(devattr)->index; | ||
596 | if (0 == data->fan[ix]) | ||
597 | return sprintf(buf, "0"); | ||
598 | return sprintf(buf, "%d\n", (int)(6000000 / data->fan[ix])); | ||
599 | } | ||
600 | |||
601 | |||
602 | |||
603 | static ssize_t get_fan1_fault( | ||
604 | struct device *dev, | ||
605 | struct device_attribute *devattr, | ||
606 | char *buf) | ||
607 | { | ||
608 | struct amc6821_data *data = amc6821_update_device(dev); | ||
609 | if (data->stat1 & AMC6821_STAT1_FANS) | ||
610 | return sprintf(buf, "1"); | ||
611 | else | ||
612 | return sprintf(buf, "0"); | ||
613 | } | ||
614 | |||
615 | |||
616 | |||
617 | static ssize_t set_fan( | ||
618 | struct device *dev, | ||
619 | struct device_attribute *attr, | ||
620 | const char *buf, size_t count) | ||
621 | { | ||
622 | struct i2c_client *client = to_i2c_client(dev); | ||
623 | struct amc6821_data *data = i2c_get_clientdata(client); | ||
624 | long val; | ||
625 | int ix = to_sensor_dev_attr(attr)->index; | ||
626 | int ret = strict_strtol(buf, 10, &val); | ||
627 | if (ret) | ||
628 | return ret; | ||
629 | val = 1 > val ? 0xFFFF : 6000000/val; | ||
630 | |||
631 | mutex_lock(&data->update_lock); | ||
632 | data->fan[ix] = (u16) SENSORS_LIMIT(val, 1, 0xFFFF); | ||
633 | if (i2c_smbus_write_byte_data(client, fan_reg_low[ix], | ||
634 | data->fan[ix] & 0xFF)) { | ||
635 | dev_err(&client->dev, "Register write error, aborting.\n"); | ||
636 | count = -EIO; | ||
637 | goto EXIT; | ||
638 | } | ||
639 | if (i2c_smbus_write_byte_data(client, | ||
640 | fan_reg_hi[ix], data->fan[ix] >> 8)) { | ||
641 | dev_err(&client->dev, "Register write error, aborting.\n"); | ||
642 | count = -EIO; | ||
643 | } | ||
644 | EXIT: | ||
645 | mutex_unlock(&data->update_lock); | ||
646 | return count; | ||
647 | } | ||
648 | |||
649 | |||
650 | |||
651 | static ssize_t get_fan1_div( | ||
652 | struct device *dev, | ||
653 | struct device_attribute *devattr, | ||
654 | char *buf) | ||
655 | { | ||
656 | struct amc6821_data *data = amc6821_update_device(dev); | ||
657 | return sprintf(buf, "%d\n", data->fan1_div); | ||
658 | } | ||
659 | |||
660 | static ssize_t set_fan1_div( | ||
661 | struct device *dev, | ||
662 | struct device_attribute *attr, | ||
663 | const char *buf, size_t count) | ||
664 | { | ||
665 | struct i2c_client *client = to_i2c_client(dev); | ||
666 | struct amc6821_data *data = i2c_get_clientdata(client); | ||
667 | long val; | ||
668 | int config = strict_strtol(buf, 10, &val); | ||
669 | if (config) | ||
670 | return config; | ||
671 | |||
672 | config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF4); | ||
673 | if (config < 0) { | ||
674 | dev_err(&client->dev, | ||
675 | "Error reading configuration register, aborting.\n"); | ||
676 | return -EIO; | ||
677 | } | ||
678 | mutex_lock(&data->update_lock); | ||
679 | switch (val) { | ||
680 | case 2: | ||
681 | config &= ~AMC6821_CONF4_PSPR; | ||
682 | data->fan1_div = 2; | ||
683 | break; | ||
684 | case 4: | ||
685 | config |= AMC6821_CONF4_PSPR; | ||
686 | data->fan1_div = 4; | ||
687 | break; | ||
688 | default: | ||
689 | mutex_unlock(&data->update_lock); | ||
690 | count = -EINVAL; | ||
691 | goto EXIT; | ||
692 | } | ||
693 | if (i2c_smbus_write_byte_data(client, AMC6821_REG_CONF4, config)) { | ||
694 | dev_err(&client->dev, | ||
695 | "Configuration register write error, aborting.\n"); | ||
696 | count = -EIO; | ||
697 | } | ||
698 | EXIT: | ||
699 | mutex_unlock(&data->update_lock); | ||
700 | return count; | ||
701 | } | ||
702 | |||
703 | |||
704 | |||
705 | static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, | ||
706 | get_temp, NULL, IDX_TEMP1_INPUT); | ||
707 | static SENSOR_DEVICE_ATTR(temp1_min, S_IRUGO | S_IWUSR, get_temp, | ||
708 | set_temp, IDX_TEMP1_MIN); | ||
709 | static SENSOR_DEVICE_ATTR(temp1_max, S_IRUGO | S_IWUSR, get_temp, | ||
710 | set_temp, IDX_TEMP1_MAX); | ||
711 | static SENSOR_DEVICE_ATTR(temp1_crit, S_IRUGO | S_IWUSR, get_temp, | ||
712 | set_temp, IDX_TEMP1_CRIT); | ||
713 | static SENSOR_DEVICE_ATTR(temp1_min_alarm, S_IRUGO, | ||
714 | get_temp_alarm, NULL, IDX_TEMP1_MIN); | ||
715 | static SENSOR_DEVICE_ATTR(temp1_max_alarm, S_IRUGO, | ||
716 | get_temp_alarm, NULL, IDX_TEMP1_MAX); | ||
717 | static SENSOR_DEVICE_ATTR(temp1_crit_alarm, S_IRUGO, | ||
718 | get_temp_alarm, NULL, IDX_TEMP1_CRIT); | ||
719 | static SENSOR_DEVICE_ATTR(temp2_input, S_IRUGO | S_IWUSR, | ||
720 | get_temp, NULL, IDX_TEMP2_INPUT); | ||
721 | static SENSOR_DEVICE_ATTR(temp2_min, S_IRUGO | S_IWUSR, get_temp, | ||
722 | set_temp, IDX_TEMP2_MIN); | ||
723 | static SENSOR_DEVICE_ATTR(temp2_max, S_IRUGO | S_IWUSR, get_temp, | ||
724 | set_temp, IDX_TEMP2_MAX); | ||
725 | static SENSOR_DEVICE_ATTR(temp2_crit, S_IRUGO | S_IWUSR, get_temp, | ||
726 | set_temp, IDX_TEMP2_CRIT); | ||
727 | static SENSOR_DEVICE_ATTR(temp2_fault, S_IRUGO, | ||
728 | get_temp2_fault, NULL, 0); | ||
729 | static SENSOR_DEVICE_ATTR(temp2_min_alarm, S_IRUGO, | ||
730 | get_temp_alarm, NULL, IDX_TEMP2_MIN); | ||
731 | static SENSOR_DEVICE_ATTR(temp2_max_alarm, S_IRUGO, | ||
732 | get_temp_alarm, NULL, IDX_TEMP2_MAX); | ||
733 | static SENSOR_DEVICE_ATTR(temp2_crit_alarm, S_IRUGO, | ||
734 | get_temp_alarm, NULL, IDX_TEMP2_CRIT); | ||
735 | static SENSOR_DEVICE_ATTR(fan1_input, S_IRUGO, get_fan, NULL, IDX_FAN1_INPUT); | ||
736 | static SENSOR_DEVICE_ATTR(fan1_min, S_IRUGO | S_IWUSR, | ||
737 | get_fan, set_fan, IDX_FAN1_MIN); | ||
738 | static SENSOR_DEVICE_ATTR(fan1_max, S_IRUGO | S_IWUSR, | ||
739 | get_fan, set_fan, IDX_FAN1_MAX); | ||
740 | static SENSOR_DEVICE_ATTR(fan1_fault, S_IRUGO, get_fan1_fault, NULL, 0); | ||
741 | static SENSOR_DEVICE_ATTR(fan1_div, S_IRUGO | S_IWUSR, | ||
742 | get_fan1_div, set_fan1_div, 0); | ||
743 | |||
744 | static SENSOR_DEVICE_ATTR(pwm1, S_IWUSR | S_IRUGO, get_pwm1, set_pwm1, 0); | ||
745 | static SENSOR_DEVICE_ATTR(pwm1_enable, S_IWUSR | S_IRUGO, | ||
746 | get_pwm1_enable, set_pwm1_enable, 0); | ||
747 | static SENSOR_DEVICE_ATTR(pwm1_auto_point1_pwm, S_IRUGO, | ||
748 | get_pwm1_auto_point_pwm, NULL, 0); | ||
749 | static SENSOR_DEVICE_ATTR(pwm1_auto_point2_pwm, S_IWUSR | S_IRUGO, | ||
750 | get_pwm1_auto_point_pwm, set_pwm1_auto_point_pwm, 1); | ||
751 | static SENSOR_DEVICE_ATTR(pwm1_auto_point3_pwm, S_IRUGO, | ||
752 | get_pwm1_auto_point_pwm, NULL, 2); | ||
753 | static SENSOR_DEVICE_ATTR(pwm1_auto_channels_temp, S_IRUGO, | ||
754 | get_pwm1_auto_channels_temp, NULL, 0); | ||
755 | static SENSOR_DEVICE_ATTR_2(temp1_auto_point1_temp, S_IRUGO, | ||
756 | get_temp_auto_point_temp, NULL, 1, 0); | ||
757 | static SENSOR_DEVICE_ATTR_2(temp1_auto_point2_temp, S_IWUSR | S_IRUGO, | ||
758 | get_temp_auto_point_temp, set_temp_auto_point_temp, 1, 1); | ||
759 | static SENSOR_DEVICE_ATTR_2(temp1_auto_point3_temp, S_IWUSR | S_IRUGO, | ||
760 | get_temp_auto_point_temp, set_temp_auto_point_temp, 1, 2); | ||
761 | |||
762 | static SENSOR_DEVICE_ATTR_2(temp2_auto_point1_temp, S_IWUSR | S_IRUGO, | ||
763 | get_temp_auto_point_temp, set_temp_auto_point_temp, 2, 0); | ||
764 | static SENSOR_DEVICE_ATTR_2(temp2_auto_point2_temp, S_IWUSR | S_IRUGO, | ||
765 | get_temp_auto_point_temp, set_temp_auto_point_temp, 2, 1); | ||
766 | static SENSOR_DEVICE_ATTR_2(temp2_auto_point3_temp, S_IWUSR | S_IRUGO, | ||
767 | get_temp_auto_point_temp, set_temp_auto_point_temp, 2, 2); | ||
768 | |||
769 | |||
770 | |||
771 | static struct attribute *amc6821_attrs[] = { | ||
772 | &sensor_dev_attr_temp1_input.dev_attr.attr, | ||
773 | &sensor_dev_attr_temp1_min.dev_attr.attr, | ||
774 | &sensor_dev_attr_temp1_max.dev_attr.attr, | ||
775 | &sensor_dev_attr_temp1_crit.dev_attr.attr, | ||
776 | &sensor_dev_attr_temp1_min_alarm.dev_attr.attr, | ||
777 | &sensor_dev_attr_temp1_max_alarm.dev_attr.attr, | ||
778 | &sensor_dev_attr_temp1_crit_alarm.dev_attr.attr, | ||
779 | &sensor_dev_attr_temp2_input.dev_attr.attr, | ||
780 | &sensor_dev_attr_temp2_min.dev_attr.attr, | ||
781 | &sensor_dev_attr_temp2_max.dev_attr.attr, | ||
782 | &sensor_dev_attr_temp2_crit.dev_attr.attr, | ||
783 | &sensor_dev_attr_temp2_min_alarm.dev_attr.attr, | ||
784 | &sensor_dev_attr_temp2_max_alarm.dev_attr.attr, | ||
785 | &sensor_dev_attr_temp2_crit_alarm.dev_attr.attr, | ||
786 | &sensor_dev_attr_temp2_fault.dev_attr.attr, | ||
787 | &sensor_dev_attr_fan1_input.dev_attr.attr, | ||
788 | &sensor_dev_attr_fan1_min.dev_attr.attr, | ||
789 | &sensor_dev_attr_fan1_max.dev_attr.attr, | ||
790 | &sensor_dev_attr_fan1_fault.dev_attr.attr, | ||
791 | &sensor_dev_attr_fan1_div.dev_attr.attr, | ||
792 | &sensor_dev_attr_pwm1.dev_attr.attr, | ||
793 | &sensor_dev_attr_pwm1_enable.dev_attr.attr, | ||
794 | &sensor_dev_attr_pwm1_auto_channels_temp.dev_attr.attr, | ||
795 | &sensor_dev_attr_pwm1_auto_point1_pwm.dev_attr.attr, | ||
796 | &sensor_dev_attr_pwm1_auto_point2_pwm.dev_attr.attr, | ||
797 | &sensor_dev_attr_pwm1_auto_point3_pwm.dev_attr.attr, | ||
798 | &sensor_dev_attr_temp1_auto_point1_temp.dev_attr.attr, | ||
799 | &sensor_dev_attr_temp1_auto_point2_temp.dev_attr.attr, | ||
800 | &sensor_dev_attr_temp1_auto_point3_temp.dev_attr.attr, | ||
801 | &sensor_dev_attr_temp2_auto_point1_temp.dev_attr.attr, | ||
802 | &sensor_dev_attr_temp2_auto_point2_temp.dev_attr.attr, | ||
803 | &sensor_dev_attr_temp2_auto_point3_temp.dev_attr.attr, | ||
804 | NULL | ||
805 | }; | ||
806 | |||
807 | static struct attribute_group amc6821_attr_grp = { | ||
808 | .attrs = amc6821_attrs, | ||
809 | }; | ||
810 | |||
811 | |||
812 | |||
813 | /* Return 0 if detection is successful, -ENODEV otherwise */ | ||
814 | static int amc6821_detect( | ||
815 | struct i2c_client *client, | ||
816 | struct i2c_board_info *info) | ||
817 | { | ||
818 | struct i2c_adapter *adapter = client->adapter; | ||
819 | int address = client->addr; | ||
820 | int dev_id, comp_id; | ||
821 | |||
822 | dev_dbg(&adapter->dev, "amc6821_detect called.\n"); | ||
823 | |||
824 | if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) { | ||
825 | dev_dbg(&adapter->dev, | ||
826 | "amc6821: I2C bus doesn't support byte mode, " | ||
827 | "skipping.\n"); | ||
828 | return -ENODEV; | ||
829 | } | ||
830 | |||
831 | dev_id = i2c_smbus_read_byte_data(client, AMC6821_REG_DEV_ID); | ||
832 | comp_id = i2c_smbus_read_byte_data(client, AMC6821_REG_COMP_ID); | ||
833 | if (dev_id != 0x21 || comp_id != 0x49) { | ||
834 | dev_dbg(&adapter->dev, | ||
835 | "amc6821: detection failed at 0x%02x.\n", | ||
836 | address); | ||
837 | return -ENODEV; | ||
838 | } | ||
839 | |||
840 | /* Bit 7 of the address register is ignored, so we can check the | ||
841 | ID registers again */ | ||
842 | dev_id = i2c_smbus_read_byte_data(client, 0x80 | AMC6821_REG_DEV_ID); | ||
843 | comp_id = i2c_smbus_read_byte_data(client, 0x80 | AMC6821_REG_COMP_ID); | ||
844 | if (dev_id != 0x21 || comp_id != 0x49) { | ||
845 | dev_dbg(&adapter->dev, | ||
846 | "amc6821: detection failed at 0x%02x.\n", | ||
847 | address); | ||
848 | return -ENODEV; | ||
849 | } | ||
850 | |||
851 | dev_info(&adapter->dev, "amc6821: chip found at 0x%02x.\n", address); | ||
852 | strlcpy(info->type, "amc6821", I2C_NAME_SIZE); | ||
853 | |||
854 | return 0; | ||
855 | } | ||
856 | |||
857 | static int amc6821_probe( | ||
858 | struct i2c_client *client, | ||
859 | const struct i2c_device_id *id) | ||
860 | { | ||
861 | struct amc6821_data *data; | ||
862 | int err; | ||
863 | |||
864 | data = kzalloc(sizeof(struct amc6821_data), GFP_KERNEL); | ||
865 | if (!data) { | ||
866 | dev_err(&client->dev, "out of memory.\n"); | ||
867 | return -ENOMEM; | ||
868 | } | ||
869 | |||
870 | |||
871 | i2c_set_clientdata(client, data); | ||
872 | mutex_init(&data->update_lock); | ||
873 | |||
874 | /* | ||
875 | * Initialize the amc6821 chip | ||
876 | */ | ||
877 | err = amc6821_init_client(client); | ||
878 | if (err) | ||
879 | goto err_free; | ||
880 | |||
881 | err = sysfs_create_group(&client->dev.kobj, &amc6821_attr_grp); | ||
882 | if (err) | ||
883 | goto err_free; | ||
884 | |||
885 | data->hwmon_dev = hwmon_device_register(&client->dev); | ||
886 | if (!IS_ERR(data->hwmon_dev)) | ||
887 | return 0; | ||
888 | |||
889 | err = PTR_ERR(data->hwmon_dev); | ||
890 | dev_err(&client->dev, "error registering hwmon device.\n"); | ||
891 | sysfs_remove_group(&client->dev.kobj, &amc6821_attr_grp); | ||
892 | err_free: | ||
893 | kfree(data); | ||
894 | return err; | ||
895 | } | ||
896 | |||
897 | static int amc6821_remove(struct i2c_client *client) | ||
898 | { | ||
899 | struct amc6821_data *data = i2c_get_clientdata(client); | ||
900 | |||
901 | hwmon_device_unregister(data->hwmon_dev); | ||
902 | sysfs_remove_group(&client->dev.kobj, &amc6821_attr_grp); | ||
903 | |||
904 | kfree(data); | ||
905 | |||
906 | return 0; | ||
907 | } | ||
908 | |||
909 | |||
910 | static int amc6821_init_client(struct i2c_client *client) | ||
911 | { | ||
912 | int config; | ||
913 | int err = -EIO; | ||
914 | |||
915 | if (init) { | ||
916 | config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF4); | ||
917 | |||
918 | if (config < 0) { | ||
919 | dev_err(&client->dev, | ||
920 | "Error reading configuration register, aborting.\n"); | ||
921 | return err; | ||
922 | } | ||
923 | |||
924 | config |= AMC6821_CONF4_MODE; | ||
925 | |||
926 | if (i2c_smbus_write_byte_data(client, AMC6821_REG_CONF4, | ||
927 | config)) { | ||
928 | dev_err(&client->dev, | ||
929 | "Configuration register write error, aborting.\n"); | ||
930 | return err; | ||
931 | } | ||
932 | |||
933 | config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF3); | ||
934 | |||
935 | if (config < 0) { | ||
936 | dev_err(&client->dev, | ||
937 | "Error reading configuration register, aborting.\n"); | ||
938 | return err; | ||
939 | } | ||
940 | |||
941 | dev_info(&client->dev, "Revision %d\n", config & 0x0f); | ||
942 | |||
943 | config &= ~AMC6821_CONF3_THERM_FAN_EN; | ||
944 | |||
945 | if (i2c_smbus_write_byte_data(client, AMC6821_REG_CONF3, | ||
946 | config)) { | ||
947 | dev_err(&client->dev, | ||
948 | "Configuration register write error, aborting.\n"); | ||
949 | return err; | ||
950 | } | ||
951 | |||
952 | config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF2); | ||
953 | |||
954 | if (config < 0) { | ||
955 | dev_err(&client->dev, | ||
956 | "Error reading configuration register, aborting.\n"); | ||
957 | return err; | ||
958 | } | ||
959 | |||
960 | config &= ~AMC6821_CONF2_RTFIE; | ||
961 | config &= ~AMC6821_CONF2_LTOIE; | ||
962 | config &= ~AMC6821_CONF2_RTOIE; | ||
963 | if (i2c_smbus_write_byte_data(client, | ||
964 | AMC6821_REG_CONF2, config)) { | ||
965 | dev_err(&client->dev, | ||
966 | "Configuration register write error, aborting.\n"); | ||
967 | return err; | ||
968 | } | ||
969 | |||
970 | config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF1); | ||
971 | |||
972 | if (config < 0) { | ||
973 | dev_err(&client->dev, | ||
974 | "Error reading configuration register, aborting.\n"); | ||
975 | return err; | ||
976 | } | ||
977 | |||
978 | config &= ~AMC6821_CONF1_THERMOVIE; | ||
979 | config &= ~AMC6821_CONF1_FANIE; | ||
980 | config |= AMC6821_CONF1_START; | ||
981 | if (pwminv) | ||
982 | config |= AMC6821_CONF1_PWMINV; | ||
983 | else | ||
984 | config &= ~AMC6821_CONF1_PWMINV; | ||
985 | |||
986 | if (i2c_smbus_write_byte_data( | ||
987 | client, AMC6821_REG_CONF1, config)) { | ||
988 | dev_err(&client->dev, | ||
989 | "Configuration register write error, aborting.\n"); | ||
990 | return err; | ||
991 | } | ||
992 | } | ||
993 | return 0; | ||
994 | } | ||
995 | |||
996 | |||
997 | static struct amc6821_data *amc6821_update_device(struct device *dev) | ||
998 | { | ||
999 | struct i2c_client *client = to_i2c_client(dev); | ||
1000 | struct amc6821_data *data = i2c_get_clientdata(client); | ||
1001 | int timeout = HZ; | ||
1002 | u8 reg; | ||
1003 | int i; | ||
1004 | |||
1005 | mutex_lock(&data->update_lock); | ||
1006 | |||
1007 | if (time_after(jiffies, data->last_updated + timeout) || | ||
1008 | !data->valid) { | ||
1009 | |||
1010 | for (i = 0; i < TEMP_IDX_LEN; i++) | ||
1011 | data->temp[i] = i2c_smbus_read_byte_data(client, | ||
1012 | temp_reg[i]); | ||
1013 | |||
1014 | data->stat1 = i2c_smbus_read_byte_data(client, | ||
1015 | AMC6821_REG_STAT1); | ||
1016 | data->stat2 = i2c_smbus_read_byte_data(client, | ||
1017 | AMC6821_REG_STAT2); | ||
1018 | |||
1019 | data->pwm1 = i2c_smbus_read_byte_data(client, | ||
1020 | AMC6821_REG_DCY); | ||
1021 | for (i = 0; i < FAN1_IDX_LEN; i++) { | ||
1022 | data->fan[i] = i2c_smbus_read_byte_data( | ||
1023 | client, | ||
1024 | fan_reg_low[i]); | ||
1025 | data->fan[i] += i2c_smbus_read_byte_data( | ||
1026 | client, | ||
1027 | fan_reg_hi[i]) << 8; | ||
1028 | } | ||
1029 | data->fan1_div = i2c_smbus_read_byte_data(client, | ||
1030 | AMC6821_REG_CONF4); | ||
1031 | data->fan1_div = data->fan1_div & AMC6821_CONF4_PSPR ? 4 : 2; | ||
1032 | |||
1033 | data->pwm1_auto_point_pwm[0] = 0; | ||
1034 | data->pwm1_auto_point_pwm[2] = 255; | ||
1035 | data->pwm1_auto_point_pwm[1] = i2c_smbus_read_byte_data(client, | ||
1036 | AMC6821_REG_DCY_LOW_TEMP); | ||
1037 | |||
1038 | data->temp1_auto_point_temp[0] = | ||
1039 | i2c_smbus_read_byte_data(client, | ||
1040 | AMC6821_REG_PSV_TEMP); | ||
1041 | data->temp2_auto_point_temp[0] = | ||
1042 | data->temp1_auto_point_temp[0]; | ||
1043 | reg = i2c_smbus_read_byte_data(client, | ||
1044 | AMC6821_REG_LTEMP_FAN_CTRL); | ||
1045 | data->temp1_auto_point_temp[1] = (reg & 0xF8) >> 1; | ||
1046 | reg &= 0x07; | ||
1047 | reg = 0x20 >> reg; | ||
1048 | if (reg > 0) | ||
1049 | data->temp1_auto_point_temp[2] = | ||
1050 | data->temp1_auto_point_temp[1] + | ||
1051 | (data->pwm1_auto_point_pwm[2] - | ||
1052 | data->pwm1_auto_point_pwm[1]) / reg; | ||
1053 | else | ||
1054 | data->temp1_auto_point_temp[2] = 255; | ||
1055 | |||
1056 | reg = i2c_smbus_read_byte_data(client, | ||
1057 | AMC6821_REG_RTEMP_FAN_CTRL); | ||
1058 | data->temp2_auto_point_temp[1] = (reg & 0xF8) >> 1; | ||
1059 | reg &= 0x07; | ||
1060 | reg = 0x20 >> reg; | ||
1061 | if (reg > 0) | ||
1062 | data->temp2_auto_point_temp[2] = | ||
1063 | data->temp2_auto_point_temp[1] + | ||
1064 | (data->pwm1_auto_point_pwm[2] - | ||
1065 | data->pwm1_auto_point_pwm[1]) / reg; | ||
1066 | else | ||
1067 | data->temp2_auto_point_temp[2] = 255; | ||
1068 | |||
1069 | reg = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF1); | ||
1070 | reg = (reg >> 5) & 0x3; | ||
1071 | switch (reg) { | ||
1072 | case 0: /*open loop: software sets pwm1*/ | ||
1073 | data->pwm1_auto_channels_temp = 0; | ||
1074 | data->pwm1_enable = 1; | ||
1075 | break; | ||
1076 | case 2: /*closed loop: remote T (temp2)*/ | ||
1077 | data->pwm1_auto_channels_temp = 2; | ||
1078 | data->pwm1_enable = 2; | ||
1079 | break; | ||
1080 | case 3: /*closed loop: local and remote T (temp2)*/ | ||
1081 | data->pwm1_auto_channels_temp = 3; | ||
1082 | data->pwm1_enable = 3; | ||
1083 | break; | ||
1084 | case 1: /*semi-open loop: software sets rpm, chip controls pwm1, | ||
1085 | *currently not implemented | ||
1086 | */ | ||
1087 | data->pwm1_auto_channels_temp = 0; | ||
1088 | data->pwm1_enable = 0; | ||
1089 | break; | ||
1090 | } | ||
1091 | |||
1092 | data->last_updated = jiffies; | ||
1093 | data->valid = 1; | ||
1094 | } | ||
1095 | mutex_unlock(&data->update_lock); | ||
1096 | return data; | ||
1097 | } | ||
1098 | |||
1099 | |||
1100 | static int __init amc6821_init(void) | ||
1101 | { | ||
1102 | return i2c_add_driver(&amc6821_driver); | ||
1103 | } | ||
1104 | |||
1105 | static void __exit amc6821_exit(void) | ||
1106 | { | ||
1107 | i2c_del_driver(&amc6821_driver); | ||
1108 | } | ||
1109 | |||
1110 | module_init(amc6821_init); | ||
1111 | module_exit(amc6821_exit); | ||
1112 | |||
1113 | |||
1114 | MODULE_LICENSE("GPL"); | ||
1115 | MODULE_AUTHOR("T. Mertelj <tomaz.mertelj@guest.arnes.si>"); | ||
1116 | MODULE_DESCRIPTION("Texas Instruments amc6821 hwmon driver"); | ||
diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c index 5a3ee00c0e7..6811346c1c6 100644 --- a/drivers/hwmon/asus_atk0110.c +++ b/drivers/hwmon/asus_atk0110.c | |||
@@ -5,6 +5,7 @@ | |||
5 | * See COPYING in the top level directory of the kernel tree. | 5 | * See COPYING in the top level directory of the kernel tree. |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #include <linux/debugfs.h> | ||
8 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
9 | #include <linux/hwmon.h> | 10 | #include <linux/hwmon.h> |
10 | #include <linux/list.h> | 11 | #include <linux/list.h> |
@@ -101,6 +102,11 @@ struct atk_data { | |||
101 | int temperature_count; | 102 | int temperature_count; |
102 | int fan_count; | 103 | int fan_count; |
103 | struct list_head sensor_list; | 104 | struct list_head sensor_list; |
105 | |||
106 | struct { | ||
107 | struct dentry *root; | ||
108 | u32 id; | ||
109 | } debugfs; | ||
104 | }; | 110 | }; |
105 | 111 | ||
106 | 112 | ||
@@ -624,6 +630,187 @@ static int atk_read_value(struct atk_sensor_data *sensor, u64 *value) | |||
624 | return err; | 630 | return err; |
625 | } | 631 | } |
626 | 632 | ||
633 | #ifdef CONFIG_DEBUG_FS | ||
634 | static int atk_debugfs_gitm_get(void *p, u64 *val) | ||
635 | { | ||
636 | struct atk_data *data = p; | ||
637 | union acpi_object *ret; | ||
638 | struct atk_acpi_ret_buffer *buf; | ||
639 | int err = 0; | ||
640 | |||
641 | if (!data->read_handle) | ||
642 | return -ENODEV; | ||
643 | |||
644 | if (!data->debugfs.id) | ||
645 | return -EINVAL; | ||
646 | |||
647 | ret = atk_gitm(data, data->debugfs.id); | ||
648 | if (IS_ERR(ret)) | ||
649 | return PTR_ERR(ret); | ||
650 | |||
651 | buf = (struct atk_acpi_ret_buffer *)ret->buffer.pointer; | ||
652 | if (buf->flags) | ||
653 | *val = buf->value; | ||
654 | else | ||
655 | err = -EIO; | ||
656 | |||
657 | return err; | ||
658 | } | ||
659 | |||
660 | DEFINE_SIMPLE_ATTRIBUTE(atk_debugfs_gitm, | ||
661 | atk_debugfs_gitm_get, | ||
662 | NULL, | ||
663 | "0x%08llx\n") | ||
664 | |||
665 | static int atk_acpi_print(char *buf, size_t sz, union acpi_object *obj) | ||
666 | { | ||
667 | int ret = 0; | ||
668 | |||
669 | switch (obj->type) { | ||
670 | case ACPI_TYPE_INTEGER: | ||
671 | ret = snprintf(buf, sz, "0x%08llx\n", obj->integer.value); | ||
672 | break; | ||
673 | case ACPI_TYPE_STRING: | ||
674 | ret = snprintf(buf, sz, "%s\n", obj->string.pointer); | ||
675 | break; | ||
676 | } | ||
677 | |||
678 | return ret; | ||
679 | } | ||
680 | |||
681 | static void atk_pack_print(char *buf, size_t sz, union acpi_object *pack) | ||
682 | { | ||
683 | int ret; | ||
684 | int i; | ||
685 | |||
686 | for (i = 0; i < pack->package.count; i++) { | ||
687 | union acpi_object *obj = &pack->package.elements[i]; | ||
688 | |||
689 | ret = atk_acpi_print(buf, sz, obj); | ||
690 | if (ret >= sz) | ||
691 | break; | ||
692 | buf += ret; | ||
693 | sz -= ret; | ||
694 | } | ||
695 | } | ||
696 | |||
697 | static int atk_debugfs_ggrp_open(struct inode *inode, struct file *file) | ||
698 | { | ||
699 | struct atk_data *data = inode->i_private; | ||
700 | char *buf = NULL; | ||
701 | union acpi_object *ret; | ||
702 | u8 cls; | ||
703 | int i; | ||
704 | |||
705 | if (!data->enumerate_handle) | ||
706 | return -ENODEV; | ||
707 | if (!data->debugfs.id) | ||
708 | return -EINVAL; | ||
709 | |||
710 | cls = (data->debugfs.id & 0xff000000) >> 24; | ||
711 | ret = atk_ggrp(data, cls); | ||
712 | if (IS_ERR(ret)) | ||
713 | return PTR_ERR(ret); | ||
714 | |||
715 | for (i = 0; i < ret->package.count; i++) { | ||
716 | union acpi_object *pack = &ret->package.elements[i]; | ||
717 | union acpi_object *id; | ||
718 | |||
719 | if (pack->type != ACPI_TYPE_PACKAGE) | ||
720 | continue; | ||
721 | if (!pack->package.count) | ||
722 | continue; | ||
723 | id = &pack->package.elements[0]; | ||
724 | if (id->integer.value == data->debugfs.id) { | ||
725 | /* Print the package */ | ||
726 | buf = kzalloc(512, GFP_KERNEL); | ||
727 | if (!buf) { | ||
728 | ACPI_FREE(ret); | ||
729 | return -ENOMEM; | ||
730 | } | ||
731 | atk_pack_print(buf, 512, pack); | ||
732 | break; | ||
733 | } | ||
734 | } | ||
735 | ACPI_FREE(ret); | ||
736 | |||
737 | if (!buf) | ||
738 | return -EINVAL; | ||
739 | |||
740 | file->private_data = buf; | ||
741 | |||
742 | return nonseekable_open(inode, file); | ||
743 | } | ||
744 | |||
745 | static ssize_t atk_debugfs_ggrp_read(struct file *file, char __user *buf, | ||
746 | size_t count, loff_t *pos) | ||
747 | { | ||
748 | char *str = file->private_data; | ||
749 | size_t len = strlen(str); | ||
750 | |||
751 | return simple_read_from_buffer(buf, count, pos, str, len); | ||
752 | } | ||
753 | |||
754 | static int atk_debugfs_ggrp_release(struct inode *inode, struct file *file) | ||
755 | { | ||
756 | kfree(file->private_data); | ||
757 | return 0; | ||
758 | } | ||
759 | |||
760 | static const struct file_operations atk_debugfs_ggrp_fops = { | ||
761 | .read = atk_debugfs_ggrp_read, | ||
762 | .open = atk_debugfs_ggrp_open, | ||
763 | .release = atk_debugfs_ggrp_release, | ||
764 | }; | ||
765 | |||
766 | static void atk_debugfs_init(struct atk_data *data) | ||
767 | { | ||
768 | struct dentry *d; | ||
769 | struct dentry *f; | ||
770 | |||
771 | data->debugfs.id = 0; | ||
772 | |||
773 | d = debugfs_create_dir("asus_atk0110", NULL); | ||
774 | if (!d || IS_ERR(d)) | ||
775 | return; | ||
776 | |||
777 | f = debugfs_create_x32("id", S_IRUSR | S_IWUSR, d, &data->debugfs.id); | ||
778 | if (!f || IS_ERR(f)) | ||
779 | goto cleanup; | ||
780 | |||
781 | f = debugfs_create_file("gitm", S_IRUSR, d, data, | ||
782 | &atk_debugfs_gitm); | ||
783 | if (!f || IS_ERR(f)) | ||
784 | goto cleanup; | ||
785 | |||
786 | f = debugfs_create_file("ggrp", S_IRUSR, d, data, | ||
787 | &atk_debugfs_ggrp_fops); | ||
788 | if (!f || IS_ERR(f)) | ||
789 | goto cleanup; | ||
790 | |||
791 | data->debugfs.root = d; | ||
792 | |||
793 | return; | ||
794 | cleanup: | ||
795 | debugfs_remove_recursive(d); | ||
796 | } | ||
797 | |||
798 | static void atk_debugfs_cleanup(struct atk_data *data) | ||
799 | { | ||
800 | debugfs_remove_recursive(data->debugfs.root); | ||
801 | } | ||
802 | |||
803 | #else /* CONFIG_DEBUG_FS */ | ||
804 | |||
805 | static void atk_debugfs_init(struct atk_data *data) | ||
806 | { | ||
807 | } | ||
808 | |||
809 | static void atk_debugfs_cleanup(struct atk_data *data) | ||
810 | { | ||
811 | } | ||
812 | #endif | ||
813 | |||
627 | static int atk_add_sensor(struct atk_data *data, union acpi_object *obj) | 814 | static int atk_add_sensor(struct atk_data *data, union acpi_object *obj) |
628 | { | 815 | { |
629 | struct device *dev = &data->acpi_dev->dev; | 816 | struct device *dev = &data->acpi_dev->dev; |
@@ -1047,76 +1234,75 @@ remove: | |||
1047 | return err; | 1234 | return err; |
1048 | } | 1235 | } |
1049 | 1236 | ||
1050 | static int atk_check_old_if(struct atk_data *data) | 1237 | static int atk_probe_if(struct atk_data *data) |
1051 | { | 1238 | { |
1052 | struct device *dev = &data->acpi_dev->dev; | 1239 | struct device *dev = &data->acpi_dev->dev; |
1053 | acpi_handle ret; | 1240 | acpi_handle ret; |
1054 | acpi_status status; | 1241 | acpi_status status; |
1242 | int err = 0; | ||
1055 | 1243 | ||
1056 | /* RTMP: read temperature */ | 1244 | /* RTMP: read temperature */ |
1057 | status = acpi_get_handle(data->atk_handle, METHOD_OLD_READ_TMP, &ret); | 1245 | status = acpi_get_handle(data->atk_handle, METHOD_OLD_READ_TMP, &ret); |
1058 | if (status != AE_OK) { | 1246 | if (ACPI_SUCCESS(status)) |
1247 | data->rtmp_handle = ret; | ||
1248 | else | ||
1059 | dev_dbg(dev, "method " METHOD_OLD_READ_TMP " not found: %s\n", | 1249 | dev_dbg(dev, "method " METHOD_OLD_READ_TMP " not found: %s\n", |
1060 | acpi_format_exception(status)); | 1250 | acpi_format_exception(status)); |
1061 | return -ENODEV; | ||
1062 | } | ||
1063 | data->rtmp_handle = ret; | ||
1064 | 1251 | ||
1065 | /* RVLT: read voltage */ | 1252 | /* RVLT: read voltage */ |
1066 | status = acpi_get_handle(data->atk_handle, METHOD_OLD_READ_VLT, &ret); | 1253 | status = acpi_get_handle(data->atk_handle, METHOD_OLD_READ_VLT, &ret); |
1067 | if (status != AE_OK) { | 1254 | if (ACPI_SUCCESS(status)) |
1255 | data->rvlt_handle = ret; | ||
1256 | else | ||
1068 | dev_dbg(dev, "method " METHOD_OLD_READ_VLT " not found: %s\n", | 1257 | dev_dbg(dev, "method " METHOD_OLD_READ_VLT " not found: %s\n", |
1069 | acpi_format_exception(status)); | 1258 | acpi_format_exception(status)); |
1070 | return -ENODEV; | ||
1071 | } | ||
1072 | data->rvlt_handle = ret; | ||
1073 | 1259 | ||
1074 | /* RFAN: read fan status */ | 1260 | /* RFAN: read fan status */ |
1075 | status = acpi_get_handle(data->atk_handle, METHOD_OLD_READ_FAN, &ret); | 1261 | status = acpi_get_handle(data->atk_handle, METHOD_OLD_READ_FAN, &ret); |
1076 | if (status != AE_OK) { | 1262 | if (ACPI_SUCCESS(status)) |
1263 | data->rfan_handle = ret; | ||
1264 | else | ||
1077 | dev_dbg(dev, "method " METHOD_OLD_READ_FAN " not found: %s\n", | 1265 | dev_dbg(dev, "method " METHOD_OLD_READ_FAN " not found: %s\n", |
1078 | acpi_format_exception(status)); | 1266 | acpi_format_exception(status)); |
1079 | return -ENODEV; | ||
1080 | } | ||
1081 | data->rfan_handle = ret; | ||
1082 | |||
1083 | return 0; | ||
1084 | } | ||
1085 | |||
1086 | static int atk_check_new_if(struct atk_data *data) | ||
1087 | { | ||
1088 | struct device *dev = &data->acpi_dev->dev; | ||
1089 | acpi_handle ret; | ||
1090 | acpi_status status; | ||
1091 | 1267 | ||
1092 | /* Enumeration */ | 1268 | /* Enumeration */ |
1093 | status = acpi_get_handle(data->atk_handle, METHOD_ENUMERATE, &ret); | 1269 | status = acpi_get_handle(data->atk_handle, METHOD_ENUMERATE, &ret); |
1094 | if (status != AE_OK) { | 1270 | if (ACPI_SUCCESS(status)) |
1271 | data->enumerate_handle = ret; | ||
1272 | else | ||
1095 | dev_dbg(dev, "method " METHOD_ENUMERATE " not found: %s\n", | 1273 | dev_dbg(dev, "method " METHOD_ENUMERATE " not found: %s\n", |
1096 | acpi_format_exception(status)); | 1274 | acpi_format_exception(status)); |
1097 | return -ENODEV; | ||
1098 | } | ||
1099 | data->enumerate_handle = ret; | ||
1100 | 1275 | ||
1101 | /* De-multiplexer (read) */ | 1276 | /* De-multiplexer (read) */ |
1102 | status = acpi_get_handle(data->atk_handle, METHOD_READ, &ret); | 1277 | status = acpi_get_handle(data->atk_handle, METHOD_READ, &ret); |
1103 | if (status != AE_OK) { | 1278 | if (ACPI_SUCCESS(status)) |
1279 | data->read_handle = ret; | ||
1280 | else | ||
1104 | dev_dbg(dev, "method " METHOD_READ " not found: %s\n", | 1281 | dev_dbg(dev, "method " METHOD_READ " not found: %s\n", |
1105 | acpi_format_exception(status)); | 1282 | acpi_format_exception(status)); |
1106 | return -ENODEV; | ||
1107 | } | ||
1108 | data->read_handle = ret; | ||
1109 | 1283 | ||
1110 | /* De-multiplexer (write) */ | 1284 | /* De-multiplexer (write) */ |
1111 | status = acpi_get_handle(data->atk_handle, METHOD_WRITE, &ret); | 1285 | status = acpi_get_handle(data->atk_handle, METHOD_WRITE, &ret); |
1112 | if (status != AE_OK) { | 1286 | if (ACPI_SUCCESS(status)) |
1113 | dev_dbg(dev, "method " METHOD_READ " not found: %s\n", | 1287 | data->write_handle = ret; |
1288 | else | ||
1289 | dev_dbg(dev, "method " METHOD_WRITE " not found: %s\n", | ||
1114 | acpi_format_exception(status)); | 1290 | acpi_format_exception(status)); |
1115 | return -ENODEV; | ||
1116 | } | ||
1117 | data->write_handle = ret; | ||
1118 | 1291 | ||
1119 | return 0; | 1292 | /* Check for hwmon methods: first check "old" style methods; note that |
1293 | * both may be present: in this case we stick to the old interface; | ||
1294 | * analysis of multiple DSDTs indicates that when both interfaces | ||
1295 | * are present the new one (GGRP/GITM) is not functional. | ||
1296 | */ | ||
1297 | if (data->rtmp_handle && data->rvlt_handle && data->rfan_handle) | ||
1298 | data->old_interface = true; | ||
1299 | else if (data->enumerate_handle && data->read_handle && | ||
1300 | data->write_handle) | ||
1301 | data->old_interface = false; | ||
1302 | else | ||
1303 | err = -ENODEV; | ||
1304 | |||
1305 | return err; | ||
1120 | } | 1306 | } |
1121 | 1307 | ||
1122 | static int atk_add(struct acpi_device *device) | 1308 | static int atk_add(struct acpi_device *device) |
@@ -1155,28 +1341,19 @@ static int atk_add(struct acpi_device *device) | |||
1155 | } | 1341 | } |
1156 | ACPI_FREE(buf.pointer); | 1342 | ACPI_FREE(buf.pointer); |
1157 | 1343 | ||
1158 | /* Check for hwmon methods: first check "old" style methods; note that | 1344 | err = atk_probe_if(data); |
1159 | * both may be present: in this case we stick to the old interface; | 1345 | if (err) { |
1160 | * analysis of multiple DSDTs indicates that when both interfaces | 1346 | dev_err(&device->dev, "No usable hwmon interface detected\n"); |
1161 | * are present the new one (GGRP/GITM) is not functional. | 1347 | goto out; |
1162 | */ | ||
1163 | err = atk_check_old_if(data); | ||
1164 | if (!err) { | ||
1165 | dev_dbg(&device->dev, "Using old hwmon interface\n"); | ||
1166 | data->old_interface = true; | ||
1167 | } else { | ||
1168 | err = atk_check_new_if(data); | ||
1169 | if (err) | ||
1170 | goto out; | ||
1171 | |||
1172 | dev_dbg(&device->dev, "Using new hwmon interface\n"); | ||
1173 | data->old_interface = false; | ||
1174 | } | 1348 | } |
1175 | 1349 | ||
1176 | if (data->old_interface) | 1350 | if (data->old_interface) { |
1351 | dev_dbg(&device->dev, "Using old hwmon interface\n"); | ||
1177 | err = atk_enumerate_old_hwmon(data); | 1352 | err = atk_enumerate_old_hwmon(data); |
1178 | else | 1353 | } else { |
1354 | dev_dbg(&device->dev, "Using new hwmon interface\n"); | ||
1179 | err = atk_enumerate_new_hwmon(data); | 1355 | err = atk_enumerate_new_hwmon(data); |
1356 | } | ||
1180 | if (err < 0) | 1357 | if (err < 0) |
1181 | goto out; | 1358 | goto out; |
1182 | if (err == 0) { | 1359 | if (err == 0) { |
@@ -1190,6 +1367,8 @@ static int atk_add(struct acpi_device *device) | |||
1190 | if (err) | 1367 | if (err) |
1191 | goto cleanup; | 1368 | goto cleanup; |
1192 | 1369 | ||
1370 | atk_debugfs_init(data); | ||
1371 | |||
1193 | device->driver_data = data; | 1372 | device->driver_data = data; |
1194 | return 0; | 1373 | return 0; |
1195 | cleanup: | 1374 | cleanup: |
@@ -1208,6 +1387,8 @@ static int atk_remove(struct acpi_device *device, int type) | |||
1208 | 1387 | ||
1209 | device->driver_data = NULL; | 1388 | device->driver_data = NULL; |
1210 | 1389 | ||
1390 | atk_debugfs_cleanup(data); | ||
1391 | |||
1211 | atk_remove_files(data); | 1392 | atk_remove_files(data); |
1212 | atk_free_sensors(data); | 1393 | atk_free_sensors(data); |
1213 | hwmon_device_unregister(data->hwmon_dev); | 1394 | hwmon_device_unregister(data->hwmon_dev); |
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c index caef39cda8c..2d7bceeed0b 100644 --- a/drivers/hwmon/coretemp.c +++ b/drivers/hwmon/coretemp.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include <linux/list.h> | 33 | #include <linux/list.h> |
34 | #include <linux/platform_device.h> | 34 | #include <linux/platform_device.h> |
35 | #include <linux/cpu.h> | 35 | #include <linux/cpu.h> |
36 | #include <linux/pci.h> | ||
36 | #include <asm/msr.h> | 37 | #include <asm/msr.h> |
37 | #include <asm/processor.h> | 38 | #include <asm/processor.h> |
38 | 39 | ||
@@ -161,6 +162,7 @@ static int __devinit adjust_tjmax(struct cpuinfo_x86 *c, u32 id, struct device * | |||
161 | int usemsr_ee = 1; | 162 | int usemsr_ee = 1; |
162 | int err; | 163 | int err; |
163 | u32 eax, edx; | 164 | u32 eax, edx; |
165 | struct pci_dev *host_bridge; | ||
164 | 166 | ||
165 | /* Early chips have no MSR for TjMax */ | 167 | /* Early chips have no MSR for TjMax */ |
166 | 168 | ||
@@ -168,11 +170,21 @@ static int __devinit adjust_tjmax(struct cpuinfo_x86 *c, u32 id, struct device * | |||
168 | usemsr_ee = 0; | 170 | usemsr_ee = 0; |
169 | } | 171 | } |
170 | 172 | ||
171 | /* Atoms seems to have TjMax at 90C */ | 173 | /* Atom CPUs */ |
172 | 174 | ||
173 | if (c->x86_model == 0x1c) { | 175 | if (c->x86_model == 0x1c) { |
174 | usemsr_ee = 0; | 176 | usemsr_ee = 0; |
175 | tjmax = 90000; | 177 | |
178 | host_bridge = pci_get_bus_and_slot(0, PCI_DEVFN(0, 0)); | ||
179 | |||
180 | if (host_bridge && host_bridge->vendor == PCI_VENDOR_ID_INTEL | ||
181 | && (host_bridge->device == 0xa000 /* NM10 based nettop */ | ||
182 | || host_bridge->device == 0xa010)) /* NM10 based netbook */ | ||
183 | tjmax = 100000; | ||
184 | else | ||
185 | tjmax = 90000; | ||
186 | |||
187 | pci_dev_put(host_bridge); | ||
176 | } | 188 | } |
177 | 189 | ||
178 | if ((c->x86_model > 0xe) && (usemsr_ee)) { | 190 | if ((c->x86_model > 0xe) && (usemsr_ee)) { |
diff --git a/drivers/hwmon/k10temp.c b/drivers/hwmon/k10temp.c index d8a26d16d94..099a2138cdf 100644 --- a/drivers/hwmon/k10temp.c +++ b/drivers/hwmon/k10temp.c | |||
@@ -33,6 +33,16 @@ static bool force; | |||
33 | module_param(force, bool, 0444); | 33 | module_param(force, bool, 0444); |
34 | MODULE_PARM_DESC(force, "force loading on processors with erratum 319"); | 34 | MODULE_PARM_DESC(force, "force loading on processors with erratum 319"); |
35 | 35 | ||
36 | /* CPUID function 0x80000001, ebx */ | ||
37 | #define CPUID_PKGTYPE_MASK 0xf0000000 | ||
38 | #define CPUID_PKGTYPE_F 0x00000000 | ||
39 | #define CPUID_PKGTYPE_AM2R2_AM3 0x10000000 | ||
40 | |||
41 | /* DRAM controller (PCI function 2) */ | ||
42 | #define REG_DCT0_CONFIG_HIGH 0x094 | ||
43 | #define DDR3_MODE 0x00000100 | ||
44 | |||
45 | /* miscellaneous (PCI function 3) */ | ||
36 | #define REG_HARDWARE_THERMAL_CONTROL 0x64 | 46 | #define REG_HARDWARE_THERMAL_CONTROL 0x64 |
37 | #define HTC_ENABLE 0x00000001 | 47 | #define HTC_ENABLE 0x00000001 |
38 | 48 | ||
@@ -85,13 +95,28 @@ static SENSOR_DEVICE_ATTR(temp1_crit, S_IRUGO, show_temp_crit, NULL, 0); | |||
85 | static SENSOR_DEVICE_ATTR(temp1_crit_hyst, S_IRUGO, show_temp_crit, NULL, 1); | 95 | static SENSOR_DEVICE_ATTR(temp1_crit_hyst, S_IRUGO, show_temp_crit, NULL, 1); |
86 | static DEVICE_ATTR(name, S_IRUGO, show_name, NULL); | 96 | static DEVICE_ATTR(name, S_IRUGO, show_name, NULL); |
87 | 97 | ||
88 | static bool __devinit has_erratum_319(void) | 98 | static bool __devinit has_erratum_319(struct pci_dev *pdev) |
89 | { | 99 | { |
100 | u32 pkg_type, reg_dram_cfg; | ||
101 | |||
102 | if (boot_cpu_data.x86 != 0x10) | ||
103 | return false; | ||
104 | |||
90 | /* | 105 | /* |
91 | * Erratum 319: The thermal sensor of older Family 10h processors | 106 | * Erratum 319: The thermal sensor of Socket F/AM2+ processors |
92 | * (B steppings) may be unreliable. | 107 | * may be unreliable. |
93 | */ | 108 | */ |
94 | return boot_cpu_data.x86 == 0x10 && boot_cpu_data.x86_model <= 2; | 109 | pkg_type = cpuid_ebx(0x80000001) & CPUID_PKGTYPE_MASK; |
110 | if (pkg_type == CPUID_PKGTYPE_F) | ||
111 | return true; | ||
112 | if (pkg_type != CPUID_PKGTYPE_AM2R2_AM3) | ||
113 | return false; | ||
114 | |||
115 | /* Differentiate between AM2+ (bad) and AM3 (good) */ | ||
116 | pci_bus_read_config_dword(pdev->bus, | ||
117 | PCI_DEVFN(PCI_SLOT(pdev->devfn), 2), | ||
118 | REG_DCT0_CONFIG_HIGH, ®_dram_cfg); | ||
119 | return !(reg_dram_cfg & DDR3_MODE); | ||
95 | } | 120 | } |
96 | 121 | ||
97 | static int __devinit k10temp_probe(struct pci_dev *pdev, | 122 | static int __devinit k10temp_probe(struct pci_dev *pdev, |
@@ -99,9 +124,10 @@ static int __devinit k10temp_probe(struct pci_dev *pdev, | |||
99 | { | 124 | { |
100 | struct device *hwmon_dev; | 125 | struct device *hwmon_dev; |
101 | u32 reg_caps, reg_htc; | 126 | u32 reg_caps, reg_htc; |
127 | int unreliable = has_erratum_319(pdev); | ||
102 | int err; | 128 | int err; |
103 | 129 | ||
104 | if (has_erratum_319() && !force) { | 130 | if (unreliable && !force) { |
105 | dev_err(&pdev->dev, | 131 | dev_err(&pdev->dev, |
106 | "unreliable CPU thermal sensor; monitoring disabled\n"); | 132 | "unreliable CPU thermal sensor; monitoring disabled\n"); |
107 | err = -ENODEV; | 133 | err = -ENODEV; |
@@ -139,7 +165,7 @@ static int __devinit k10temp_probe(struct pci_dev *pdev, | |||
139 | } | 165 | } |
140 | dev_set_drvdata(&pdev->dev, hwmon_dev); | 166 | dev_set_drvdata(&pdev->dev, hwmon_dev); |
141 | 167 | ||
142 | if (has_erratum_319() && force) | 168 | if (unreliable && force) |
143 | dev_warn(&pdev->dev, | 169 | dev_warn(&pdev->dev, |
144 | "unreliable CPU thermal sensor; check erratum 319\n"); | 170 | "unreliable CPU thermal sensor; check erratum 319\n"); |
145 | return 0; | 171 | return 0; |
@@ -169,7 +195,7 @@ static void __devexit k10temp_remove(struct pci_dev *pdev) | |||
169 | dev_set_drvdata(&pdev->dev, NULL); | 195 | dev_set_drvdata(&pdev->dev, NULL); |
170 | } | 196 | } |
171 | 197 | ||
172 | static struct pci_device_id k10temp_id_table[] = { | 198 | static const struct pci_device_id k10temp_id_table[] = { |
173 | { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_10H_NB_MISC) }, | 199 | { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_10H_NB_MISC) }, |
174 | { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_11H_NB_MISC) }, | 200 | { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_11H_NB_MISC) }, |
175 | {} | 201 | {} |
diff --git a/drivers/hwmon/k8temp.c b/drivers/hwmon/k8temp.c index 1fe99511184..0ceb6d6200a 100644 --- a/drivers/hwmon/k8temp.c +++ b/drivers/hwmon/k8temp.c | |||
@@ -136,7 +136,7 @@ static SENSOR_DEVICE_ATTR_2(temp3_input, S_IRUGO, show_temp, NULL, 1, 0); | |||
136 | static SENSOR_DEVICE_ATTR_2(temp4_input, S_IRUGO, show_temp, NULL, 1, 1); | 136 | static SENSOR_DEVICE_ATTR_2(temp4_input, S_IRUGO, show_temp, NULL, 1, 1); |
137 | static DEVICE_ATTR(name, S_IRUGO, show_name, NULL); | 137 | static DEVICE_ATTR(name, S_IRUGO, show_name, NULL); |
138 | 138 | ||
139 | static struct pci_device_id k8temp_ids[] = { | 139 | static const struct pci_device_id k8temp_ids[] = { |
140 | { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_K8_NB_MISC) }, | 140 | { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_K8_NB_MISC) }, |
141 | { 0 }, | 141 | { 0 }, |
142 | }; | 142 | }; |
diff --git a/drivers/hwmon/sis5595.c b/drivers/hwmon/sis5595.c index 12f2e708656..79c2931e300 100644 --- a/drivers/hwmon/sis5595.c +++ b/drivers/hwmon/sis5595.c | |||
@@ -697,7 +697,7 @@ static struct sis5595_data *sis5595_update_device(struct device *dev) | |||
697 | return data; | 697 | return data; |
698 | } | 698 | } |
699 | 699 | ||
700 | static struct pci_device_id sis5595_pci_ids[] = { | 700 | static const struct pci_device_id sis5595_pci_ids[] = { |
701 | { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) }, | 701 | { PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_503) }, |
702 | { 0, } | 702 | { 0, } |
703 | }; | 703 | }; |
diff --git a/drivers/hwmon/via686a.c b/drivers/hwmon/via686a.c index 39e82a492f2..f397ce7ad59 100644 --- a/drivers/hwmon/via686a.c +++ b/drivers/hwmon/via686a.c | |||
@@ -767,7 +767,7 @@ static struct via686a_data *via686a_update_device(struct device *dev) | |||
767 | return data; | 767 | return data; |
768 | } | 768 | } |
769 | 769 | ||
770 | static struct pci_device_id via686a_pci_ids[] = { | 770 | static const struct pci_device_id via686a_pci_ids[] = { |
771 | { PCI_DEVICE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4) }, | 771 | { PCI_DEVICE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4) }, |
772 | { 0, } | 772 | { 0, } |
773 | }; | 773 | }; |
diff --git a/drivers/hwmon/vt8231.c b/drivers/hwmon/vt8231.c index 470a1226ba2..d47b4c9949c 100644 --- a/drivers/hwmon/vt8231.c +++ b/drivers/hwmon/vt8231.c | |||
@@ -697,7 +697,7 @@ static struct platform_driver vt8231_driver = { | |||
697 | .remove = __devexit_p(vt8231_remove), | 697 | .remove = __devexit_p(vt8231_remove), |
698 | }; | 698 | }; |
699 | 699 | ||
700 | static struct pci_device_id vt8231_pci_ids[] = { | 700 | static const struct pci_device_id vt8231_pci_ids[] = { |
701 | { PCI_DEVICE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8231_4) }, | 701 | { PCI_DEVICE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8231_4) }, |
702 | { 0, } | 702 | { 0, } |
703 | }; | 703 | }; |
diff --git a/drivers/i2c/busses/i2c-ali1563.c b/drivers/i2c/busses/i2c-ali1563.c index f70f46582c6..4687af40dd5 100644 --- a/drivers/i2c/busses/i2c-ali1563.c +++ b/drivers/i2c/busses/i2c-ali1563.c | |||
@@ -87,9 +87,9 @@ static int ali1563_transaction(struct i2c_adapter * a, int size) | |||
87 | outb_p(inb_p(SMB_HST_CNTL2) | HST_CNTL2_START, SMB_HST_CNTL2); | 87 | outb_p(inb_p(SMB_HST_CNTL2) | HST_CNTL2_START, SMB_HST_CNTL2); |
88 | 88 | ||
89 | timeout = ALI1563_MAX_TIMEOUT; | 89 | timeout = ALI1563_MAX_TIMEOUT; |
90 | do | 90 | do { |
91 | msleep(1); | 91 | msleep(1); |
92 | while (((data = inb_p(SMB_HST_STS)) & HST_STS_BUSY) && --timeout); | 92 | } while (((data = inb_p(SMB_HST_STS)) & HST_STS_BUSY) && --timeout); |
93 | 93 | ||
94 | dev_dbg(&a->dev, "Transaction (post): STS=%02x, CNTL1=%02x, " | 94 | dev_dbg(&a->dev, "Transaction (post): STS=%02x, CNTL1=%02x, " |
95 | "CNTL2=%02x, CMD=%02x, ADD=%02x, DAT0=%02x, DAT1=%02x\n", | 95 | "CNTL2=%02x, CMD=%02x, ADD=%02x, DAT0=%02x, DAT1=%02x\n", |
@@ -157,9 +157,9 @@ static int ali1563_block_start(struct i2c_adapter * a) | |||
157 | outb_p(inb_p(SMB_HST_CNTL2) | HST_CNTL2_START, SMB_HST_CNTL2); | 157 | outb_p(inb_p(SMB_HST_CNTL2) | HST_CNTL2_START, SMB_HST_CNTL2); |
158 | 158 | ||
159 | timeout = ALI1563_MAX_TIMEOUT; | 159 | timeout = ALI1563_MAX_TIMEOUT; |
160 | do | 160 | do { |
161 | msleep(1); | 161 | msleep(1); |
162 | while (!((data = inb_p(SMB_HST_STS)) & HST_STS_DONE) && --timeout); | 162 | } while (!((data = inb_p(SMB_HST_STS)) & HST_STS_DONE) && --timeout); |
163 | 163 | ||
164 | dev_dbg(&a->dev, "Block (post): STS=%02x, CNTL1=%02x, " | 164 | dev_dbg(&a->dev, "Block (post): STS=%02x, CNTL1=%02x, " |
165 | "CNTL2=%02x, CMD=%02x, ADD=%02x, DAT0=%02x, DAT1=%02x\n", | 165 | "CNTL2=%02x, CMD=%02x, ADD=%02x, DAT0=%02x, DAT1=%02x\n", |
diff --git a/drivers/i2c/busses/i2c-pca-isa.c b/drivers/i2c/busses/i2c-pca-isa.c index 0ed68e2ccd2..f7346a9bd95 100644 --- a/drivers/i2c/busses/i2c-pca-isa.c +++ b/drivers/i2c/busses/i2c-pca-isa.c | |||
@@ -75,7 +75,7 @@ static int pca_isa_waitforcompletion(void *pd) | |||
75 | unsigned long timeout; | 75 | unsigned long timeout; |
76 | 76 | ||
77 | if (irq > -1) { | 77 | if (irq > -1) { |
78 | ret = wait_event_interruptible_timeout(pca_wait, | 78 | ret = wait_event_timeout(pca_wait, |
79 | pca_isa_readbyte(pd, I2C_PCA_CON) | 79 | pca_isa_readbyte(pd, I2C_PCA_CON) |
80 | & I2C_PCA_CON_SI, pca_isa_ops.timeout); | 80 | & I2C_PCA_CON_SI, pca_isa_ops.timeout); |
81 | } else { | 81 | } else { |
@@ -96,7 +96,7 @@ static void pca_isa_resetchip(void *pd) | |||
96 | } | 96 | } |
97 | 97 | ||
98 | static irqreturn_t pca_handler(int this_irq, void *dev_id) { | 98 | static irqreturn_t pca_handler(int this_irq, void *dev_id) { |
99 | wake_up_interruptible(&pca_wait); | 99 | wake_up(&pca_wait); |
100 | return IRQ_HANDLED; | 100 | return IRQ_HANDLED; |
101 | } | 101 | } |
102 | 102 | ||
diff --git a/drivers/i2c/busses/i2c-pca-platform.c b/drivers/i2c/busses/i2c-pca-platform.c index c4df9d411cd..5b2213df5ed 100644 --- a/drivers/i2c/busses/i2c-pca-platform.c +++ b/drivers/i2c/busses/i2c-pca-platform.c | |||
@@ -84,7 +84,7 @@ static int i2c_pca_pf_waitforcompletion(void *pd) | |||
84 | unsigned long timeout; | 84 | unsigned long timeout; |
85 | 85 | ||
86 | if (i2c->irq) { | 86 | if (i2c->irq) { |
87 | ret = wait_event_interruptible_timeout(i2c->wait, | 87 | ret = wait_event_timeout(i2c->wait, |
88 | i2c->algo_data.read_byte(i2c, I2C_PCA_CON) | 88 | i2c->algo_data.read_byte(i2c, I2C_PCA_CON) |
89 | & I2C_PCA_CON_SI, i2c->adap.timeout); | 89 | & I2C_PCA_CON_SI, i2c->adap.timeout); |
90 | } else { | 90 | } else { |
@@ -122,7 +122,7 @@ static irqreturn_t i2c_pca_pf_handler(int this_irq, void *dev_id) | |||
122 | if ((i2c->algo_data.read_byte(i2c, I2C_PCA_CON) & I2C_PCA_CON_SI) == 0) | 122 | if ((i2c->algo_data.read_byte(i2c, I2C_PCA_CON) & I2C_PCA_CON_SI) == 0) |
123 | return IRQ_NONE; | 123 | return IRQ_NONE; |
124 | 124 | ||
125 | wake_up_interruptible(&i2c->wait); | 125 | wake_up(&i2c->wait); |
126 | 126 | ||
127 | return IRQ_HANDLED; | 127 | return IRQ_HANDLED; |
128 | } | 128 | } |
diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c index 1e245e9cad3..e56e4b6823c 100644 --- a/drivers/i2c/busses/i2c-piix4.c +++ b/drivers/i2c/busses/i2c-piix4.c | |||
@@ -324,12 +324,12 @@ static int piix4_transaction(void) | |||
324 | else | 324 | else |
325 | msleep(1); | 325 | msleep(1); |
326 | 326 | ||
327 | while ((timeout++ < MAX_TIMEOUT) && | 327 | while ((++timeout < MAX_TIMEOUT) && |
328 | ((temp = inb_p(SMBHSTSTS)) & 0x01)) | 328 | ((temp = inb_p(SMBHSTSTS)) & 0x01)) |
329 | msleep(1); | 329 | msleep(1); |
330 | 330 | ||
331 | /* If the SMBus is still busy, we give up */ | 331 | /* If the SMBus is still busy, we give up */ |
332 | if (timeout >= MAX_TIMEOUT) { | 332 | if (timeout == MAX_TIMEOUT) { |
333 | dev_err(&piix4_adapter.dev, "SMBus Timeout!\n"); | 333 | dev_err(&piix4_adapter.dev, "SMBus Timeout!\n"); |
334 | result = -ETIMEDOUT; | 334 | result = -ETIMEDOUT; |
335 | } | 335 | } |
diff --git a/drivers/i2c/busses/i2c-viapro.c b/drivers/i2c/busses/i2c-viapro.c index e4b1543015a..a84a909e123 100644 --- a/drivers/i2c/busses/i2c-viapro.c +++ b/drivers/i2c/busses/i2c-viapro.c | |||
@@ -165,10 +165,10 @@ static int vt596_transaction(u8 size) | |||
165 | do { | 165 | do { |
166 | msleep(1); | 166 | msleep(1); |
167 | temp = inb_p(SMBHSTSTS); | 167 | temp = inb_p(SMBHSTSTS); |
168 | } while ((temp & 0x01) && (timeout++ < MAX_TIMEOUT)); | 168 | } while ((temp & 0x01) && (++timeout < MAX_TIMEOUT)); |
169 | 169 | ||
170 | /* If the SMBus is still busy, we give up */ | 170 | /* If the SMBus is still busy, we give up */ |
171 | if (timeout >= MAX_TIMEOUT) { | 171 | if (timeout == MAX_TIMEOUT) { |
172 | result = -ETIMEDOUT; | 172 | result = -ETIMEDOUT; |
173 | dev_err(&vt596_adapter.dev, "SMBus timeout!\n"); | 173 | dev_err(&vt596_adapter.dev, "SMBus timeout!\n"); |
174 | } | 174 | } |
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 0ac2f90ab84..10be7b5fbe9 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c | |||
@@ -248,7 +248,7 @@ static const struct attribute_group *i2c_dev_attr_groups[] = { | |||
248 | NULL | 248 | NULL |
249 | }; | 249 | }; |
250 | 250 | ||
251 | const static struct dev_pm_ops i2c_device_pm_ops = { | 251 | static const struct dev_pm_ops i2c_device_pm_ops = { |
252 | .suspend = i2c_device_pm_suspend, | 252 | .suspend = i2c_device_pm_suspend, |
253 | .resume = i2c_device_pm_resume, | 253 | .resume = i2c_device_pm_resume, |
254 | }; | 254 | }; |
@@ -843,6 +843,9 @@ int i2c_del_adapter(struct i2c_adapter *adap) | |||
843 | adap->dev.parent); | 843 | adap->dev.parent); |
844 | #endif | 844 | #endif |
845 | 845 | ||
846 | /* device name is gone after device_unregister */ | ||
847 | dev_dbg(&adap->dev, "adapter [%s] unregistered\n", adap->name); | ||
848 | |||
846 | /* clean up the sysfs representation */ | 849 | /* clean up the sysfs representation */ |
847 | init_completion(&adap->dev_released); | 850 | init_completion(&adap->dev_released); |
848 | device_unregister(&adap->dev); | 851 | device_unregister(&adap->dev); |
@@ -855,8 +858,6 @@ int i2c_del_adapter(struct i2c_adapter *adap) | |||
855 | idr_remove(&i2c_adapter_idr, adap->nr); | 858 | idr_remove(&i2c_adapter_idr, adap->nr); |
856 | mutex_unlock(&core_lock); | 859 | mutex_unlock(&core_lock); |
857 | 860 | ||
858 | dev_dbg(&adap->dev, "adapter [%s] unregistered\n", adap->name); | ||
859 | |||
860 | /* Clear the device structure in case this adapter is ever going to be | 861 | /* Clear the device structure in case this adapter is ever going to be |
861 | added again */ | 862 | added again */ |
862 | memset(&adap->dev, 0, sizeof(adap->dev)); | 863 | memset(&adap->dev, 0, sizeof(adap->dev)); |
diff --git a/drivers/ieee1394/Kconfig b/drivers/ieee1394/Kconfig index f102fcc7e52..e02096cf7d9 100644 --- a/drivers/ieee1394/Kconfig +++ b/drivers/ieee1394/Kconfig | |||
@@ -1,8 +1,3 @@ | |||
1 | menu "IEEE 1394 (FireWire) support" | ||
2 | depends on PCI || BROKEN | ||
3 | |||
4 | source "drivers/firewire/Kconfig" | ||
5 | |||
6 | config IEEE1394 | 1 | config IEEE1394 |
7 | tristate "Legacy alternative FireWire driver stack" | 2 | tristate "Legacy alternative FireWire driver stack" |
8 | depends on PCI || BROKEN | 3 | depends on PCI || BROKEN |
@@ -16,8 +11,13 @@ config IEEE1394 | |||
16 | is the core support only, you will also need to select a driver for | 11 | is the core support only, you will also need to select a driver for |
17 | your IEEE 1394 adapter. | 12 | your IEEE 1394 adapter. |
18 | 13 | ||
19 | To compile this driver as a module, say M here: the | 14 | To compile this driver as a module, say M here: the module will be |
20 | module will be called ieee1394. | 15 | called ieee1394. |
16 | |||
17 | NOTE: | ||
18 | ieee1394 is superseded by the newer firewire-core driver. See | ||
19 | http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for | ||
20 | further information on how to switch to the new FireWire drivers. | ||
21 | 21 | ||
22 | config IEEE1394_OHCI1394 | 22 | config IEEE1394_OHCI1394 |
23 | tristate "OHCI-1394 controllers" | 23 | tristate "OHCI-1394 controllers" |
@@ -29,19 +29,23 @@ config IEEE1394_OHCI1394 | |||
29 | use one of these chipsets. It should work with any OHCI-1394 | 29 | use one of these chipsets. It should work with any OHCI-1394 |
30 | compliant card, however. | 30 | compliant card, however. |
31 | 31 | ||
32 | To compile this driver as a module, say M here: the | 32 | To compile this driver as a module, say M here: the module will be |
33 | module will be called ohci1394. | 33 | called ohci1394. |
34 | 34 | ||
35 | NOTE: | 35 | NOTE: |
36 | ohci1394 is superseded by the newer firewire-ohci driver. See | ||
37 | http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for | ||
38 | further information on how to switch to the new FireWire drivers. | ||
39 | |||
36 | If you want to install firewire-ohci and ohci1394 together, you | 40 | If you want to install firewire-ohci and ohci1394 together, you |
37 | should configure them only as modules and blacklist the driver(s) | 41 | should configure them only as modules and blacklist the driver(s) |
38 | which you don't want to have auto-loaded. Add either | 42 | which you don't want to have auto-loaded. Add either |
39 | 43 | ||
40 | blacklist firewire-ohci | ||
41 | or | ||
42 | blacklist ohci1394 | 44 | blacklist ohci1394 |
43 | blacklist video1394 | 45 | blacklist video1394 |
44 | blacklist dv1394 | 46 | blacklist dv1394 |
47 | or | ||
48 | blacklist firewire-ohci | ||
45 | 49 | ||
46 | to /etc/modprobe.conf or /etc/modprobe.d/* and update modprobe.conf | 50 | to /etc/modprobe.conf or /etc/modprobe.d/* and update modprobe.conf |
47 | depending on your distribution. | 51 | depending on your distribution. |
@@ -58,8 +62,8 @@ config IEEE1394_PCILYNX | |||
58 | Instruments PCILynx chip. Note: this driver is written for revision | 62 | Instruments PCILynx chip. Note: this driver is written for revision |
59 | 2 of this chip and may not work with revision 0. | 63 | 2 of this chip and may not work with revision 0. |
60 | 64 | ||
61 | To compile this driver as a module, say M here: the | 65 | To compile this driver as a module, say M here: the module will be |
62 | module will be called pcilynx. | 66 | called pcilynx. |
63 | 67 | ||
64 | Only some old and now very rare PCI and CardBus cards and | 68 | Only some old and now very rare PCI and CardBus cards and |
65 | PowerMacs G3 B&W contain the PCILynx controller. Therefore | 69 | PowerMacs G3 B&W contain the PCILynx controller. Therefore |
@@ -79,6 +83,14 @@ config IEEE1394_SBP2 | |||
79 | You should also enable support for disks, CD-ROMs, etc. in the SCSI | 83 | You should also enable support for disks, CD-ROMs, etc. in the SCSI |
80 | configuration section. | 84 | configuration section. |
81 | 85 | ||
86 | To compile this driver as a module, say M here: the module will be | ||
87 | called sbp2. | ||
88 | |||
89 | NOTE: | ||
90 | sbp2 is superseded by the newer firewire-sbp2 driver. See | ||
91 | http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for | ||
92 | further information on how to switch to the new FireWire drivers. | ||
93 | |||
82 | config IEEE1394_SBP2_PHYS_DMA | 94 | config IEEE1394_SBP2_PHYS_DMA |
83 | bool "Enable replacement for physical DMA in SBP2" | 95 | bool "Enable replacement for physical DMA in SBP2" |
84 | depends on IEEE1394_SBP2 && VIRT_TO_BUS && EXPERIMENTAL | 96 | depends on IEEE1394_SBP2 && VIRT_TO_BUS && EXPERIMENTAL |
@@ -111,6 +123,11 @@ config IEEE1394_ETH1394 | |||
111 | 123 | ||
112 | The module is called eth1394 although it does not emulate Ethernet. | 124 | The module is called eth1394 although it does not emulate Ethernet. |
113 | 125 | ||
126 | NOTE: | ||
127 | eth1394 is superseded by the newer firewire-net driver. See | ||
128 | http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for | ||
129 | further information on how to switch to the new FireWire drivers. | ||
130 | |||
114 | config IEEE1394_RAWIO | 131 | config IEEE1394_RAWIO |
115 | tristate "raw1394 userspace interface" | 132 | tristate "raw1394 userspace interface" |
116 | depends on IEEE1394 | 133 | depends on IEEE1394 |
@@ -123,6 +140,11 @@ config IEEE1394_RAWIO | |||
123 | To compile this driver as a module, say M here: the module will be | 140 | To compile this driver as a module, say M here: the module will be |
124 | called raw1394. | 141 | called raw1394. |
125 | 142 | ||
143 | NOTE: | ||
144 | raw1394 is superseded by the newer firewire-core driver. See | ||
145 | http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for | ||
146 | further information on how to switch to the new FireWire drivers. | ||
147 | |||
126 | config IEEE1394_VIDEO1394 | 148 | config IEEE1394_VIDEO1394 |
127 | tristate "video1394 userspace interface" | 149 | tristate "video1394 userspace interface" |
128 | depends on IEEE1394 && IEEE1394_OHCI1394 | 150 | depends on IEEE1394 && IEEE1394_OHCI1394 |
@@ -136,13 +158,18 @@ config IEEE1394_VIDEO1394 | |||
136 | To compile this driver as a module, say M here: the module will be | 158 | To compile this driver as a module, say M here: the module will be |
137 | called video1394. | 159 | called video1394. |
138 | 160 | ||
161 | NOTE: | ||
162 | video1394 is superseded by the newer firewire-core driver. See | ||
163 | http://ieee1394.wiki.kernel.org/index.php/Juju_Migration for | ||
164 | further information on how to switch to the new FireWire drivers. | ||
165 | |||
139 | config IEEE1394_DV1394 | 166 | config IEEE1394_DV1394 |
140 | tristate "dv1394 userspace interface (deprecated)" | 167 | tristate "dv1394 userspace interface (deprecated)" |
141 | depends on IEEE1394 && IEEE1394_OHCI1394 | 168 | depends on IEEE1394 && IEEE1394_OHCI1394 |
142 | help | 169 | help |
143 | The dv1394 driver is unsupported and may be removed from Linux in a | 170 | The dv1394 driver is unsupported and may be removed from Linux in a |
144 | future release. Its functionality is now provided by raw1394 together | 171 | future release. Its functionality is now provided by either |
145 | with libraries such as libiec61883. | 172 | raw1394 or firewire-core together with libraries such as libiec61883. |
146 | 173 | ||
147 | config IEEE1394_VERBOSEDEBUG | 174 | config IEEE1394_VERBOSEDEBUG |
148 | bool "Excessive debugging output" | 175 | bool "Excessive debugging output" |
@@ -153,5 +180,3 @@ config IEEE1394_VERBOSEDEBUG | |||
153 | will quickly result in large amounts of data sent to the system log. | 180 | will quickly result in large amounts of data sent to the system log. |
154 | 181 | ||
155 | Say Y if you really need the debugging output. Everyone else says N. | 182 | Say Y if you really need the debugging output. Everyone else says N. |
156 | |||
157 | endmenu | ||
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index fbdd7310600..cc9b5940fa9 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c | |||
@@ -2083,7 +2083,7 @@ static int cma_get_port(struct rdma_id_private *id_priv) | |||
2083 | static int cma_check_linklocal(struct rdma_dev_addr *dev_addr, | 2083 | static int cma_check_linklocal(struct rdma_dev_addr *dev_addr, |
2084 | struct sockaddr *addr) | 2084 | struct sockaddr *addr) |
2085 | { | 2085 | { |
2086 | #if defined(CONFIG_IPv6) || defined(CONFIG_IPV6_MODULE) | 2086 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) |
2087 | struct sockaddr_in6 *sin6; | 2087 | struct sockaddr_in6 *sin6; |
2088 | 2088 | ||
2089 | if (addr->sa_family != AF_INET6) | 2089 | if (addr->sa_family != AF_INET6) |
diff --git a/drivers/infiniband/hw/mlx4/qp.c b/drivers/infiniband/hw/mlx4/qp.c index 989555cee88..2a97c964b9e 100644 --- a/drivers/infiniband/hw/mlx4/qp.c +++ b/drivers/infiniband/hw/mlx4/qp.c | |||
@@ -1752,7 +1752,7 @@ int mlx4_ib_post_recv(struct ib_qp *ibqp, struct ib_recv_wr *wr, | |||
1752 | ind = qp->rq.head & (qp->rq.wqe_cnt - 1); | 1752 | ind = qp->rq.head & (qp->rq.wqe_cnt - 1); |
1753 | 1753 | ||
1754 | for (nreq = 0; wr; ++nreq, wr = wr->next) { | 1754 | for (nreq = 0; wr; ++nreq, wr = wr->next) { |
1755 | if (mlx4_wq_overflow(&qp->rq, nreq, qp->ibqp.send_cq)) { | 1755 | if (mlx4_wq_overflow(&qp->rq, nreq, qp->ibqp.recv_cq)) { |
1756 | err = -ENOMEM; | 1756 | err = -ENOMEM; |
1757 | *bad_wr = wr; | 1757 | *bad_wr = wr; |
1758 | goto out; | 1758 | goto out; |
diff --git a/drivers/infiniband/hw/mlx4/srq.c b/drivers/infiniband/hw/mlx4/srq.c index d42565258fb..cf8085bcbd6 100644 --- a/drivers/infiniband/hw/mlx4/srq.c +++ b/drivers/infiniband/hw/mlx4/srq.c | |||
@@ -74,6 +74,7 @@ struct ib_srq *mlx4_ib_create_srq(struct ib_pd *pd, | |||
74 | struct mlx4_ib_dev *dev = to_mdev(pd->device); | 74 | struct mlx4_ib_dev *dev = to_mdev(pd->device); |
75 | struct mlx4_ib_srq *srq; | 75 | struct mlx4_ib_srq *srq; |
76 | struct mlx4_wqe_srq_next_seg *next; | 76 | struct mlx4_wqe_srq_next_seg *next; |
77 | struct mlx4_wqe_data_seg *scatter; | ||
77 | int desc_size; | 78 | int desc_size; |
78 | int buf_size; | 79 | int buf_size; |
79 | int err; | 80 | int err; |
@@ -149,6 +150,11 @@ struct ib_srq *mlx4_ib_create_srq(struct ib_pd *pd, | |||
149 | next = get_wqe(srq, i); | 150 | next = get_wqe(srq, i); |
150 | next->next_wqe_index = | 151 | next->next_wqe_index = |
151 | cpu_to_be16((i + 1) & (srq->msrq.max - 1)); | 152 | cpu_to_be16((i + 1) & (srq->msrq.max - 1)); |
153 | |||
154 | for (scatter = (void *) (next + 1); | ||
155 | (void *) scatter < (void *) next + desc_size; | ||
156 | ++scatter) | ||
157 | scatter->lkey = cpu_to_be32(MLX4_INVALID_LKEY); | ||
152 | } | 158 | } |
153 | 159 | ||
154 | err = mlx4_mtt_init(dev->dev, srq->buf.npages, srq->buf.page_shift, | 160 | err = mlx4_mtt_init(dev->dev, srq->buf.npages, srq->buf.page_shift, |
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index dee6706038a..258c639571b 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c | |||
@@ -59,7 +59,8 @@ static void evdev_pass_event(struct evdev_client *client, | |||
59 | client->head &= EVDEV_BUFFER_SIZE - 1; | 59 | client->head &= EVDEV_BUFFER_SIZE - 1; |
60 | spin_unlock(&client->buffer_lock); | 60 | spin_unlock(&client->buffer_lock); |
61 | 61 | ||
62 | kill_fasync(&client->fasync, SIGIO, POLL_IN); | 62 | if (event->type == EV_SYN) |
63 | kill_fasync(&client->fasync, SIGIO, POLL_IN); | ||
63 | } | 64 | } |
64 | 65 | ||
65 | /* | 66 | /* |
diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c index b483b2995fa..f967008f332 100644 --- a/drivers/input/ff-memless.c +++ b/drivers/input/ff-memless.c | |||
@@ -221,11 +221,27 @@ static int get_compatible_type(struct ff_device *ff, int effect_type) | |||
221 | } | 221 | } |
222 | 222 | ||
223 | /* | 223 | /* |
224 | * Only left/right direction should be used (under/over 0x8000) for | ||
225 | * forward/reverse motor direction (to keep calculation fast & simple). | ||
226 | */ | ||
227 | static u16 ml_calculate_direction(u16 direction, u16 force, | ||
228 | u16 new_direction, u16 new_force) | ||
229 | { | ||
230 | if (!force) | ||
231 | return new_direction; | ||
232 | if (!new_force) | ||
233 | return direction; | ||
234 | return (((u32)(direction >> 1) * force + | ||
235 | (new_direction >> 1) * new_force) / | ||
236 | (force + new_force)) << 1; | ||
237 | } | ||
238 | |||
239 | /* | ||
224 | * Combine two effects and apply gain. | 240 | * Combine two effects and apply gain. |
225 | */ | 241 | */ |
226 | static void ml_combine_effects(struct ff_effect *effect, | 242 | static void ml_combine_effects(struct ff_effect *effect, |
227 | struct ml_effect_state *state, | 243 | struct ml_effect_state *state, |
228 | unsigned int gain) | 244 | int gain) |
229 | { | 245 | { |
230 | struct ff_effect *new = state->effect; | 246 | struct ff_effect *new = state->effect; |
231 | unsigned int strong, weak, i; | 247 | unsigned int strong, weak, i; |
@@ -252,8 +268,21 @@ static void ml_combine_effects(struct ff_effect *effect, | |||
252 | break; | 268 | break; |
253 | 269 | ||
254 | case FF_RUMBLE: | 270 | case FF_RUMBLE: |
255 | strong = new->u.rumble.strong_magnitude * gain / 0xffff; | 271 | strong = (u32)new->u.rumble.strong_magnitude * gain / 0xffff; |
256 | weak = new->u.rumble.weak_magnitude * gain / 0xffff; | 272 | weak = (u32)new->u.rumble.weak_magnitude * gain / 0xffff; |
273 | |||
274 | if (effect->u.rumble.strong_magnitude + strong) | ||
275 | effect->direction = ml_calculate_direction( | ||
276 | effect->direction, | ||
277 | effect->u.rumble.strong_magnitude, | ||
278 | new->direction, strong); | ||
279 | else if (effect->u.rumble.weak_magnitude + weak) | ||
280 | effect->direction = ml_calculate_direction( | ||
281 | effect->direction, | ||
282 | effect->u.rumble.weak_magnitude, | ||
283 | new->direction, weak); | ||
284 | else | ||
285 | effect->direction = 0; | ||
257 | effect->u.rumble.strong_magnitude = | 286 | effect->u.rumble.strong_magnitude = |
258 | min(strong + effect->u.rumble.strong_magnitude, | 287 | min(strong + effect->u.rumble.strong_magnitude, |
259 | 0xffffU); | 288 | 0xffffU); |
@@ -268,6 +297,13 @@ static void ml_combine_effects(struct ff_effect *effect, | |||
268 | /* here we also scale it 0x7fff => 0xffff */ | 297 | /* here we also scale it 0x7fff => 0xffff */ |
269 | i = i * gain / 0x7fff; | 298 | i = i * gain / 0x7fff; |
270 | 299 | ||
300 | if (effect->u.rumble.strong_magnitude + i) | ||
301 | effect->direction = ml_calculate_direction( | ||
302 | effect->direction, | ||
303 | effect->u.rumble.strong_magnitude, | ||
304 | new->direction, i); | ||
305 | else | ||
306 | effect->direction = 0; | ||
271 | effect->u.rumble.strong_magnitude = | 307 | effect->u.rumble.strong_magnitude = |
272 | min(i + effect->u.rumble.strong_magnitude, 0xffffU); | 308 | min(i + effect->u.rumble.strong_magnitude, 0xffffU); |
273 | effect->u.rumble.weak_magnitude = | 309 | effect->u.rumble.weak_magnitude = |
@@ -411,8 +447,6 @@ static int ml_ff_playback(struct input_dev *dev, int effect_id, int value) | |||
411 | msecs_to_jiffies(state->effect->replay.length); | 447 | msecs_to_jiffies(state->effect->replay.length); |
412 | state->adj_at = state->play_at; | 448 | state->adj_at = state->play_at; |
413 | 449 | ||
414 | ml_schedule_timer(ml); | ||
415 | |||
416 | } else { | 450 | } else { |
417 | debug("initiated stop"); | 451 | debug("initiated stop"); |
418 | 452 | ||
@@ -420,10 +454,10 @@ static int ml_ff_playback(struct input_dev *dev, int effect_id, int value) | |||
420 | __set_bit(FF_EFFECT_ABORTING, &state->flags); | 454 | __set_bit(FF_EFFECT_ABORTING, &state->flags); |
421 | else | 455 | else |
422 | __clear_bit(FF_EFFECT_STARTED, &state->flags); | 456 | __clear_bit(FF_EFFECT_STARTED, &state->flags); |
423 | |||
424 | ml_play_effects(ml); | ||
425 | } | 457 | } |
426 | 458 | ||
459 | ml_play_effects(ml); | ||
460 | |||
427 | return 0; | 461 | return 0; |
428 | } | 462 | } |
429 | 463 | ||
diff --git a/drivers/input/input.c b/drivers/input/input.c index ab060710688..30b503b8d67 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/mutex.h> | 24 | #include <linux/mutex.h> |
25 | #include <linux/rcupdate.h> | 25 | #include <linux/rcupdate.h> |
26 | #include <linux/smp_lock.h> | 26 | #include <linux/smp_lock.h> |
27 | #include "input-compat.h" | ||
27 | 28 | ||
28 | MODULE_AUTHOR("Vojtech Pavlik <vojtech@suse.cz>"); | 29 | MODULE_AUTHOR("Vojtech Pavlik <vojtech@suse.cz>"); |
29 | MODULE_DESCRIPTION("Input core"); | 30 | MODULE_DESCRIPTION("Input core"); |
@@ -764,6 +765,40 @@ static int input_attach_handler(struct input_dev *dev, struct input_handler *han | |||
764 | return error; | 765 | return error; |
765 | } | 766 | } |
766 | 767 | ||
768 | #ifdef CONFIG_COMPAT | ||
769 | |||
770 | static int input_bits_to_string(char *buf, int buf_size, | ||
771 | unsigned long bits, bool skip_empty) | ||
772 | { | ||
773 | int len = 0; | ||
774 | |||
775 | if (INPUT_COMPAT_TEST) { | ||
776 | u32 dword = bits >> 32; | ||
777 | if (dword || !skip_empty) | ||
778 | len += snprintf(buf, buf_size, "%x ", dword); | ||
779 | |||
780 | dword = bits & 0xffffffffUL; | ||
781 | if (dword || !skip_empty || len) | ||
782 | len += snprintf(buf + len, max(buf_size - len, 0), | ||
783 | "%x", dword); | ||
784 | } else { | ||
785 | if (bits || !skip_empty) | ||
786 | len += snprintf(buf, buf_size, "%lx", bits); | ||
787 | } | ||
788 | |||
789 | return len; | ||
790 | } | ||
791 | |||
792 | #else /* !CONFIG_COMPAT */ | ||
793 | |||
794 | static int input_bits_to_string(char *buf, int buf_size, | ||
795 | unsigned long bits, bool skip_empty) | ||
796 | { | ||
797 | return bits || !skip_empty ? | ||
798 | snprintf(buf, buf_size, "%lx", bits) : 0; | ||
799 | } | ||
800 | |||
801 | #endif | ||
767 | 802 | ||
768 | #ifdef CONFIG_PROC_FS | 803 | #ifdef CONFIG_PROC_FS |
769 | 804 | ||
@@ -832,14 +867,25 @@ static void input_seq_print_bitmap(struct seq_file *seq, const char *name, | |||
832 | unsigned long *bitmap, int max) | 867 | unsigned long *bitmap, int max) |
833 | { | 868 | { |
834 | int i; | 869 | int i; |
835 | 870 | bool skip_empty = true; | |
836 | for (i = BITS_TO_LONGS(max) - 1; i > 0; i--) | 871 | char buf[18]; |
837 | if (bitmap[i]) | ||
838 | break; | ||
839 | 872 | ||
840 | seq_printf(seq, "B: %s=", name); | 873 | seq_printf(seq, "B: %s=", name); |
841 | for (; i >= 0; i--) | 874 | |
842 | seq_printf(seq, "%lx%s", bitmap[i], i > 0 ? " " : ""); | 875 | for (i = BITS_TO_LONGS(max) - 1; i >= 0; i--) { |
876 | if (input_bits_to_string(buf, sizeof(buf), | ||
877 | bitmap[i], skip_empty)) { | ||
878 | skip_empty = false; | ||
879 | seq_printf(seq, "%s%s", buf, i > 0 ? " " : ""); | ||
880 | } | ||
881 | } | ||
882 | |||
883 | /* | ||
884 | * If no output was produced print a single 0. | ||
885 | */ | ||
886 | if (skip_empty) | ||
887 | seq_puts(seq, "0"); | ||
888 | |||
843 | seq_putc(seq, '\n'); | 889 | seq_putc(seq, '\n'); |
844 | } | 890 | } |
845 | 891 | ||
@@ -1128,14 +1174,23 @@ static int input_print_bitmap(char *buf, int buf_size, unsigned long *bitmap, | |||
1128 | { | 1174 | { |
1129 | int i; | 1175 | int i; |
1130 | int len = 0; | 1176 | int len = 0; |
1177 | bool skip_empty = true; | ||
1178 | |||
1179 | for (i = BITS_TO_LONGS(max) - 1; i >= 0; i--) { | ||
1180 | len += input_bits_to_string(buf + len, max(buf_size - len, 0), | ||
1181 | bitmap[i], skip_empty); | ||
1182 | if (len) { | ||
1183 | skip_empty = false; | ||
1184 | if (i > 0) | ||
1185 | len += snprintf(buf + len, max(buf_size - len, 0), " "); | ||
1186 | } | ||
1187 | } | ||
1131 | 1188 | ||
1132 | for (i = BITS_TO_LONGS(max) - 1; i > 0; i--) | 1189 | /* |
1133 | if (bitmap[i]) | 1190 | * If no output was produced print a single 0. |
1134 | break; | 1191 | */ |
1135 | 1192 | if (len == 0) | |
1136 | for (; i >= 0; i--) | 1193 | len = snprintf(buf, buf_size, "%d", 0); |
1137 | len += snprintf(buf + len, max(buf_size - len, 0), | ||
1138 | "%lx%s", bitmap[i], i > 0 ? " " : ""); | ||
1139 | 1194 | ||
1140 | if (add_cr) | 1195 | if (add_cr) |
1141 | len += snprintf(buf + len, max(buf_size - len, 0), "\n"); | 1196 | len += snprintf(buf + len, max(buf_size - len, 0), "\n"); |
@@ -1150,7 +1205,8 @@ static ssize_t input_dev_show_cap_##bm(struct device *dev, \ | |||
1150 | { \ | 1205 | { \ |
1151 | struct input_dev *input_dev = to_input_dev(dev); \ | 1206 | struct input_dev *input_dev = to_input_dev(dev); \ |
1152 | int len = input_print_bitmap(buf, PAGE_SIZE, \ | 1207 | int len = input_print_bitmap(buf, PAGE_SIZE, \ |
1153 | input_dev->bm##bit, ev##_MAX, 1); \ | 1208 | input_dev->bm##bit, ev##_MAX, \ |
1209 | true); \ | ||
1154 | return min_t(int, len, PAGE_SIZE); \ | 1210 | return min_t(int, len, PAGE_SIZE); \ |
1155 | } \ | 1211 | } \ |
1156 | static DEVICE_ATTR(bm, S_IRUGO, input_dev_show_cap_##bm, NULL) | 1212 | static DEVICE_ATTR(bm, S_IRUGO, input_dev_show_cap_##bm, NULL) |
@@ -1214,7 +1270,7 @@ static int input_add_uevent_bm_var(struct kobj_uevent_env *env, | |||
1214 | 1270 | ||
1215 | len = input_print_bitmap(&env->buf[env->buflen - 1], | 1271 | len = input_print_bitmap(&env->buf[env->buflen - 1], |
1216 | sizeof(env->buf) - env->buflen, | 1272 | sizeof(env->buf) - env->buflen, |
1217 | bitmap, max, 0); | 1273 | bitmap, max, false); |
1218 | if (len >= (sizeof(env->buf) - env->buflen)) | 1274 | if (len >= (sizeof(env->buf) - env->buflen)) |
1219 | return -ENOMEM; | 1275 | return -ENOMEM; |
1220 | 1276 | ||
diff --git a/drivers/input/joystick/gf2k.c b/drivers/input/joystick/gf2k.c index 67c207f5b1a..45ac70eae0a 100644 --- a/drivers/input/joystick/gf2k.c +++ b/drivers/input/joystick/gf2k.c | |||
@@ -277,7 +277,7 @@ static int gf2k_connect(struct gameport *gameport, struct gameport_driver *drv) | |||
277 | } | 277 | } |
278 | 278 | ||
279 | #ifdef RESET_WORKS | 279 | #ifdef RESET_WORKS |
280 | if ((gf2k->id != (GB(19,2,0) | GB(15,3,2) | GB(12,3,5))) || | 280 | if ((gf2k->id != (GB(19,2,0) | GB(15,3,2) | GB(12,3,5))) && |
281 | (gf2k->id != (GB(31,2,0) | GB(27,3,2) | GB(24,3,5)))) { | 281 | (gf2k->id != (GB(31,2,0) | GB(27,3,2) | GB(24,3,5)))) { |
282 | err = -ENODEV; | 282 | err = -ENODEV; |
283 | goto fail2; | 283 | goto fail2; |
diff --git a/drivers/input/joystick/iforce/iforce-main.c b/drivers/input/joystick/iforce/iforce-main.c index f6c688cae33..b1edd778639 100644 --- a/drivers/input/joystick/iforce/iforce-main.c +++ b/drivers/input/joystick/iforce/iforce-main.c | |||
@@ -210,7 +210,7 @@ static int iforce_open(struct input_dev *dev) | |||
210 | return 0; | 210 | return 0; |
211 | } | 211 | } |
212 | 212 | ||
213 | static void iforce_release(struct input_dev *dev) | 213 | static void iforce_close(struct input_dev *dev) |
214 | { | 214 | { |
215 | struct iforce *iforce = input_get_drvdata(dev); | 215 | struct iforce *iforce = input_get_drvdata(dev); |
216 | int i; | 216 | int i; |
@@ -228,30 +228,17 @@ static void iforce_release(struct input_dev *dev) | |||
228 | 228 | ||
229 | /* Disable force feedback playback */ | 229 | /* Disable force feedback playback */ |
230 | iforce_send_packet(iforce, FF_CMD_ENABLE, "\001"); | 230 | iforce_send_packet(iforce, FF_CMD_ENABLE, "\001"); |
231 | /* Wait for the command to complete */ | ||
232 | wait_event_interruptible(iforce->wait, | ||
233 | !test_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags)); | ||
231 | } | 234 | } |
232 | 235 | ||
233 | switch (iforce->bus) { | 236 | switch (iforce->bus) { |
234 | #ifdef CONFIG_JOYSTICK_IFORCE_USB | 237 | #ifdef CONFIG_JOYSTICK_IFORCE_USB |
235 | case IFORCE_USB: | ||
236 | usb_kill_urb(iforce->irq); | ||
237 | |||
238 | /* The device was unplugged before the file | ||
239 | * was released */ | ||
240 | if (iforce->usbdev == NULL) { | ||
241 | iforce_delete_device(iforce); | ||
242 | kfree(iforce); | ||
243 | } | ||
244 | break; | ||
245 | #endif | ||
246 | } | ||
247 | } | ||
248 | |||
249 | void iforce_delete_device(struct iforce *iforce) | ||
250 | { | ||
251 | switch (iforce->bus) { | ||
252 | #ifdef CONFIG_JOYSTICK_IFORCE_USB | ||
253 | case IFORCE_USB: | 238 | case IFORCE_USB: |
254 | iforce_usb_delete(iforce); | 239 | usb_kill_urb(iforce->irq); |
240 | usb_kill_urb(iforce->out); | ||
241 | usb_kill_urb(iforce->ctrl); | ||
255 | break; | 242 | break; |
256 | #endif | 243 | #endif |
257 | #ifdef CONFIG_JOYSTICK_IFORCE_232 | 244 | #ifdef CONFIG_JOYSTICK_IFORCE_232 |
@@ -303,7 +290,7 @@ int iforce_init_device(struct iforce *iforce) | |||
303 | 290 | ||
304 | input_dev->name = "Unknown I-Force device"; | 291 | input_dev->name = "Unknown I-Force device"; |
305 | input_dev->open = iforce_open; | 292 | input_dev->open = iforce_open; |
306 | input_dev->close = iforce_release; | 293 | input_dev->close = iforce_close; |
307 | 294 | ||
308 | /* | 295 | /* |
309 | * On-device memory allocation. | 296 | * On-device memory allocation. |
diff --git a/drivers/input/joystick/iforce/iforce-usb.c b/drivers/input/joystick/iforce/iforce-usb.c index 9f289d8f52c..b41303d3ec5 100644 --- a/drivers/input/joystick/iforce/iforce-usb.c +++ b/drivers/input/joystick/iforce/iforce-usb.c | |||
@@ -109,6 +109,7 @@ static void iforce_usb_out(struct urb *urb) | |||
109 | struct iforce *iforce = urb->context; | 109 | struct iforce *iforce = urb->context; |
110 | 110 | ||
111 | if (urb->status) { | 111 | if (urb->status) { |
112 | clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags); | ||
112 | dbg("urb->status %d, exiting", urb->status); | 113 | dbg("urb->status %d, exiting", urb->status); |
113 | return; | 114 | return; |
114 | } | 115 | } |
@@ -186,33 +187,19 @@ fail: | |||
186 | return err; | 187 | return err; |
187 | } | 188 | } |
188 | 189 | ||
189 | /* Called by iforce_delete() */ | ||
190 | void iforce_usb_delete(struct iforce* iforce) | ||
191 | { | ||
192 | usb_kill_urb(iforce->irq); | ||
193 | usb_kill_urb(iforce->out); | ||
194 | usb_kill_urb(iforce->ctrl); | ||
195 | |||
196 | usb_free_urb(iforce->irq); | ||
197 | usb_free_urb(iforce->out); | ||
198 | usb_free_urb(iforce->ctrl); | ||
199 | } | ||
200 | |||
201 | static void iforce_usb_disconnect(struct usb_interface *intf) | 190 | static void iforce_usb_disconnect(struct usb_interface *intf) |
202 | { | 191 | { |
203 | struct iforce *iforce = usb_get_intfdata(intf); | 192 | struct iforce *iforce = usb_get_intfdata(intf); |
204 | int open = 0; /* FIXME! iforce->dev.handle->open; */ | ||
205 | 193 | ||
206 | usb_set_intfdata(intf, NULL); | 194 | usb_set_intfdata(intf, NULL); |
207 | if (iforce) { | ||
208 | iforce->usbdev = NULL; | ||
209 | input_unregister_device(iforce->dev); | ||
210 | 195 | ||
211 | if (!open) { | 196 | input_unregister_device(iforce->dev); |
212 | iforce_delete_device(iforce); | 197 | |
213 | kfree(iforce); | 198 | usb_free_urb(iforce->irq); |
214 | } | 199 | usb_free_urb(iforce->out); |
215 | } | 200 | usb_free_urb(iforce->ctrl); |
201 | |||
202 | kfree(iforce); | ||
216 | } | 203 | } |
217 | 204 | ||
218 | static struct usb_device_id iforce_usb_ids [] = { | 205 | static struct usb_device_id iforce_usb_ids [] = { |
diff --git a/drivers/input/joystick/iforce/iforce.h b/drivers/input/joystick/iforce/iforce.h index f2d91f4028c..9f494b75848 100644 --- a/drivers/input/joystick/iforce/iforce.h +++ b/drivers/input/joystick/iforce/iforce.h | |||
@@ -150,11 +150,9 @@ void iforce_serial_xmit(struct iforce *iforce); | |||
150 | 150 | ||
151 | /* iforce-usb.c */ | 151 | /* iforce-usb.c */ |
152 | void iforce_usb_xmit(struct iforce *iforce); | 152 | void iforce_usb_xmit(struct iforce *iforce); |
153 | void iforce_usb_delete(struct iforce *iforce); | ||
154 | 153 | ||
155 | /* iforce-main.c */ | 154 | /* iforce-main.c */ |
156 | int iforce_init_device(struct iforce *iforce); | 155 | int iforce_init_device(struct iforce *iforce); |
157 | void iforce_delete_device(struct iforce *iforce); | ||
158 | 156 | ||
159 | /* iforce-packets.c */ | 157 | /* iforce-packets.c */ |
160 | int iforce_control_playback(struct iforce*, u16 id, unsigned int); | 158 | int iforce_control_playback(struct iforce*, u16 id, unsigned int); |
diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c index 482cb1204e4..8a28fb7846d 100644 --- a/drivers/input/joystick/xpad.c +++ b/drivers/input/joystick/xpad.c | |||
@@ -446,7 +446,7 @@ static void xpad_irq_in(struct urb *urb) | |||
446 | } | 446 | } |
447 | 447 | ||
448 | exit: | 448 | exit: |
449 | retval = usb_submit_urb (urb, GFP_ATOMIC); | 449 | retval = usb_submit_urb(urb, GFP_ATOMIC); |
450 | if (retval) | 450 | if (retval) |
451 | err ("%s - usb_submit_urb failed with result %d", | 451 | err ("%s - usb_submit_urb failed with result %d", |
452 | __func__, retval); | 452 | __func__, retval); |
@@ -571,7 +571,7 @@ static int xpad_play_effect(struct input_dev *dev, void *data, | |||
571 | xpad->odata[6] = 0x00; | 571 | xpad->odata[6] = 0x00; |
572 | xpad->odata[7] = 0x00; | 572 | xpad->odata[7] = 0x00; |
573 | xpad->irq_out->transfer_buffer_length = 8; | 573 | xpad->irq_out->transfer_buffer_length = 8; |
574 | usb_submit_urb(xpad->irq_out, GFP_KERNEL); | 574 | usb_submit_urb(xpad->irq_out, GFP_ATOMIC); |
575 | } | 575 | } |
576 | 576 | ||
577 | return 0; | 577 | return 0; |
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c index a3573570c52..7b4056292ea 100644 --- a/drivers/input/keyboard/atkbd.c +++ b/drivers/input/keyboard/atkbd.c | |||
@@ -134,7 +134,8 @@ static const unsigned short atkbd_unxlate_table[128] = { | |||
134 | #define ATKBD_CMD_GETID 0x02f2 | 134 | #define ATKBD_CMD_GETID 0x02f2 |
135 | #define ATKBD_CMD_SETREP 0x10f3 | 135 | #define ATKBD_CMD_SETREP 0x10f3 |
136 | #define ATKBD_CMD_ENABLE 0x00f4 | 136 | #define ATKBD_CMD_ENABLE 0x00f4 |
137 | #define ATKBD_CMD_RESET_DIS 0x00f5 | 137 | #define ATKBD_CMD_RESET_DIS 0x00f5 /* Reset to defaults and disable */ |
138 | #define ATKBD_CMD_RESET_DEF 0x00f6 /* Reset to defaults */ | ||
138 | #define ATKBD_CMD_SETALL_MBR 0x00fa | 139 | #define ATKBD_CMD_SETALL_MBR 0x00fa |
139 | #define ATKBD_CMD_RESET_BAT 0x02ff | 140 | #define ATKBD_CMD_RESET_BAT 0x02ff |
140 | #define ATKBD_CMD_RESEND 0x00fe | 141 | #define ATKBD_CMD_RESEND 0x00fe |
@@ -224,8 +225,10 @@ struct atkbd { | |||
224 | 225 | ||
225 | struct delayed_work event_work; | 226 | struct delayed_work event_work; |
226 | unsigned long event_jiffies; | 227 | unsigned long event_jiffies; |
227 | struct mutex event_mutex; | ||
228 | unsigned long event_mask; | 228 | unsigned long event_mask; |
229 | |||
230 | /* Serializes reconnect(), attr->set() and event work */ | ||
231 | struct mutex mutex; | ||
229 | }; | 232 | }; |
230 | 233 | ||
231 | /* | 234 | /* |
@@ -576,7 +579,7 @@ static void atkbd_event_work(struct work_struct *work) | |||
576 | { | 579 | { |
577 | struct atkbd *atkbd = container_of(work, struct atkbd, event_work.work); | 580 | struct atkbd *atkbd = container_of(work, struct atkbd, event_work.work); |
578 | 581 | ||
579 | mutex_lock(&atkbd->event_mutex); | 582 | mutex_lock(&atkbd->mutex); |
580 | 583 | ||
581 | if (!atkbd->enabled) { | 584 | if (!atkbd->enabled) { |
582 | /* | 585 | /* |
@@ -595,7 +598,7 @@ static void atkbd_event_work(struct work_struct *work) | |||
595 | atkbd_set_repeat_rate(atkbd); | 598 | atkbd_set_repeat_rate(atkbd); |
596 | } | 599 | } |
597 | 600 | ||
598 | mutex_unlock(&atkbd->event_mutex); | 601 | mutex_unlock(&atkbd->mutex); |
599 | } | 602 | } |
600 | 603 | ||
601 | /* | 604 | /* |
@@ -611,7 +614,7 @@ static void atkbd_schedule_event_work(struct atkbd *atkbd, int event_bit) | |||
611 | 614 | ||
612 | atkbd->event_jiffies = jiffies; | 615 | atkbd->event_jiffies = jiffies; |
613 | set_bit(event_bit, &atkbd->event_mask); | 616 | set_bit(event_bit, &atkbd->event_mask); |
614 | wmb(); | 617 | mb(); |
615 | schedule_delayed_work(&atkbd->event_work, delay); | 618 | schedule_delayed_work(&atkbd->event_work, delay); |
616 | } | 619 | } |
617 | 620 | ||
@@ -836,7 +839,7 @@ static void atkbd_cleanup(struct serio *serio) | |||
836 | struct atkbd *atkbd = serio_get_drvdata(serio); | 839 | struct atkbd *atkbd = serio_get_drvdata(serio); |
837 | 840 | ||
838 | atkbd_disable(atkbd); | 841 | atkbd_disable(atkbd); |
839 | ps2_command(&atkbd->ps2dev, NULL, ATKBD_CMD_RESET_BAT); | 842 | ps2_command(&atkbd->ps2dev, NULL, ATKBD_CMD_RESET_DEF); |
840 | } | 843 | } |
841 | 844 | ||
842 | 845 | ||
@@ -848,13 +851,20 @@ static void atkbd_disconnect(struct serio *serio) | |||
848 | { | 851 | { |
849 | struct atkbd *atkbd = serio_get_drvdata(serio); | 852 | struct atkbd *atkbd = serio_get_drvdata(serio); |
850 | 853 | ||
854 | sysfs_remove_group(&serio->dev.kobj, &atkbd_attribute_group); | ||
855 | |||
851 | atkbd_disable(atkbd); | 856 | atkbd_disable(atkbd); |
852 | 857 | ||
853 | /* make sure we don't have a command in flight */ | 858 | input_unregister_device(atkbd->dev); |
859 | |||
860 | /* | ||
861 | * Make sure we don't have a command in flight. | ||
862 | * Note that since atkbd->enabled is false event work will keep | ||
863 | * rescheduling itself until it gets canceled and will not try | ||
864 | * accessing freed input device or serio port. | ||
865 | */ | ||
854 | cancel_delayed_work_sync(&atkbd->event_work); | 866 | cancel_delayed_work_sync(&atkbd->event_work); |
855 | 867 | ||
856 | sysfs_remove_group(&serio->dev.kobj, &atkbd_attribute_group); | ||
857 | input_unregister_device(atkbd->dev); | ||
858 | serio_close(serio); | 868 | serio_close(serio); |
859 | serio_set_drvdata(serio, NULL); | 869 | serio_set_drvdata(serio, NULL); |
860 | kfree(atkbd); | 870 | kfree(atkbd); |
@@ -1086,7 +1096,7 @@ static int atkbd_connect(struct serio *serio, struct serio_driver *drv) | |||
1086 | atkbd->dev = dev; | 1096 | atkbd->dev = dev; |
1087 | ps2_init(&atkbd->ps2dev, serio); | 1097 | ps2_init(&atkbd->ps2dev, serio); |
1088 | INIT_DELAYED_WORK(&atkbd->event_work, atkbd_event_work); | 1098 | INIT_DELAYED_WORK(&atkbd->event_work, atkbd_event_work); |
1089 | mutex_init(&atkbd->event_mutex); | 1099 | mutex_init(&atkbd->mutex); |
1090 | 1100 | ||
1091 | switch (serio->id.type) { | 1101 | switch (serio->id.type) { |
1092 | 1102 | ||
@@ -1159,19 +1169,23 @@ static int atkbd_reconnect(struct serio *serio) | |||
1159 | { | 1169 | { |
1160 | struct atkbd *atkbd = serio_get_drvdata(serio); | 1170 | struct atkbd *atkbd = serio_get_drvdata(serio); |
1161 | struct serio_driver *drv = serio->drv; | 1171 | struct serio_driver *drv = serio->drv; |
1172 | int retval = -1; | ||
1162 | 1173 | ||
1163 | if (!atkbd || !drv) { | 1174 | if (!atkbd || !drv) { |
1164 | printk(KERN_DEBUG "atkbd: reconnect request, but serio is disconnected, ignoring...\n"); | 1175 | printk(KERN_DEBUG "atkbd: reconnect request, but serio is disconnected, ignoring...\n"); |
1165 | return -1; | 1176 | return -1; |
1166 | } | 1177 | } |
1167 | 1178 | ||
1179 | mutex_lock(&atkbd->mutex); | ||
1180 | |||
1168 | atkbd_disable(atkbd); | 1181 | atkbd_disable(atkbd); |
1169 | 1182 | ||
1170 | if (atkbd->write) { | 1183 | if (atkbd->write) { |
1171 | if (atkbd_probe(atkbd)) | 1184 | if (atkbd_probe(atkbd)) |
1172 | return -1; | 1185 | goto out; |
1186 | |||
1173 | if (atkbd->set != atkbd_select_set(atkbd, atkbd->set, atkbd->extra)) | 1187 | if (atkbd->set != atkbd_select_set(atkbd, atkbd->set, atkbd->extra)) |
1174 | return -1; | 1188 | goto out; |
1175 | 1189 | ||
1176 | atkbd_activate(atkbd); | 1190 | atkbd_activate(atkbd); |
1177 | 1191 | ||
@@ -1189,8 +1203,11 @@ static int atkbd_reconnect(struct serio *serio) | |||
1189 | } | 1203 | } |
1190 | 1204 | ||
1191 | atkbd_enable(atkbd); | 1205 | atkbd_enable(atkbd); |
1206 | retval = 0; | ||
1192 | 1207 | ||
1193 | return 0; | 1208 | out: |
1209 | mutex_unlock(&atkbd->mutex); | ||
1210 | return retval; | ||
1194 | } | 1211 | } |
1195 | 1212 | ||
1196 | static struct serio_device_id atkbd_serio_ids[] = { | 1213 | static struct serio_device_id atkbd_serio_ids[] = { |
@@ -1234,47 +1251,28 @@ static ssize_t atkbd_attr_show_helper(struct device *dev, char *buf, | |||
1234 | ssize_t (*handler)(struct atkbd *, char *)) | 1251 | ssize_t (*handler)(struct atkbd *, char *)) |
1235 | { | 1252 | { |
1236 | struct serio *serio = to_serio_port(dev); | 1253 | struct serio *serio = to_serio_port(dev); |
1237 | int retval; | 1254 | struct atkbd *atkbd = serio_get_drvdata(serio); |
1238 | |||
1239 | retval = serio_pin_driver(serio); | ||
1240 | if (retval) | ||
1241 | return retval; | ||
1242 | |||
1243 | if (serio->drv != &atkbd_drv) { | ||
1244 | retval = -ENODEV; | ||
1245 | goto out; | ||
1246 | } | ||
1247 | |||
1248 | retval = handler((struct atkbd *)serio_get_drvdata(serio), buf); | ||
1249 | 1255 | ||
1250 | out: | 1256 | return handler(atkbd, buf); |
1251 | serio_unpin_driver(serio); | ||
1252 | return retval; | ||
1253 | } | 1257 | } |
1254 | 1258 | ||
1255 | static ssize_t atkbd_attr_set_helper(struct device *dev, const char *buf, size_t count, | 1259 | static ssize_t atkbd_attr_set_helper(struct device *dev, const char *buf, size_t count, |
1256 | ssize_t (*handler)(struct atkbd *, const char *, size_t)) | 1260 | ssize_t (*handler)(struct atkbd *, const char *, size_t)) |
1257 | { | 1261 | { |
1258 | struct serio *serio = to_serio_port(dev); | 1262 | struct serio *serio = to_serio_port(dev); |
1259 | struct atkbd *atkbd; | 1263 | struct atkbd *atkbd = serio_get_drvdata(serio); |
1260 | int retval; | 1264 | int retval; |
1261 | 1265 | ||
1262 | retval = serio_pin_driver(serio); | 1266 | retval = mutex_lock_interruptible(&atkbd->mutex); |
1263 | if (retval) | 1267 | if (retval) |
1264 | return retval; | 1268 | return retval; |
1265 | 1269 | ||
1266 | if (serio->drv != &atkbd_drv) { | ||
1267 | retval = -ENODEV; | ||
1268 | goto out; | ||
1269 | } | ||
1270 | |||
1271 | atkbd = serio_get_drvdata(serio); | ||
1272 | atkbd_disable(atkbd); | 1270 | atkbd_disable(atkbd); |
1273 | retval = handler(atkbd, buf, count); | 1271 | retval = handler(atkbd, buf, count); |
1274 | atkbd_enable(atkbd); | 1272 | atkbd_enable(atkbd); |
1275 | 1273 | ||
1276 | out: | 1274 | mutex_unlock(&atkbd->mutex); |
1277 | serio_unpin_driver(serio); | 1275 | |
1278 | return retval; | 1276 | return retval; |
1279 | } | 1277 | } |
1280 | 1278 | ||
diff --git a/drivers/input/keyboard/davinci_keyscan.c b/drivers/input/keyboard/davinci_keyscan.c index 6e52d855f63..d410d7a52f1 100644 --- a/drivers/input/keyboard/davinci_keyscan.c +++ b/drivers/input/keyboard/davinci_keyscan.c | |||
@@ -174,6 +174,14 @@ static int __init davinci_ks_probe(struct platform_device *pdev) | |||
174 | struct davinci_ks_platform_data *pdata = pdev->dev.platform_data; | 174 | struct davinci_ks_platform_data *pdata = pdev->dev.platform_data; |
175 | int error, i; | 175 | int error, i; |
176 | 176 | ||
177 | if (pdata->device_enable) { | ||
178 | error = pdata->device_enable(dev); | ||
179 | if (error < 0) { | ||
180 | dev_dbg(dev, "device enable function failed\n"); | ||
181 | return error; | ||
182 | } | ||
183 | } | ||
184 | |||
177 | if (!pdata->keymap) { | 185 | if (!pdata->keymap) { |
178 | dev_dbg(dev, "no keymap from pdata\n"); | 186 | dev_dbg(dev, "no keymap from pdata\n"); |
179 | return -EINVAL; | 187 | return -EINVAL; |
diff --git a/drivers/input/keyboard/matrix_keypad.c b/drivers/input/keyboard/matrix_keypad.c index 34f4a29d497..d3c8b61a941 100644 --- a/drivers/input/keyboard/matrix_keypad.c +++ b/drivers/input/keyboard/matrix_keypad.c | |||
@@ -29,11 +29,13 @@ struct matrix_keypad { | |||
29 | unsigned short *keycodes; | 29 | unsigned short *keycodes; |
30 | unsigned int row_shift; | 30 | unsigned int row_shift; |
31 | 31 | ||
32 | DECLARE_BITMAP(disabled_gpios, MATRIX_MAX_ROWS); | ||
33 | |||
32 | uint32_t last_key_state[MATRIX_MAX_COLS]; | 34 | uint32_t last_key_state[MATRIX_MAX_COLS]; |
33 | struct delayed_work work; | 35 | struct delayed_work work; |
36 | spinlock_t lock; | ||
34 | bool scan_pending; | 37 | bool scan_pending; |
35 | bool stopped; | 38 | bool stopped; |
36 | spinlock_t lock; | ||
37 | }; | 39 | }; |
38 | 40 | ||
39 | /* | 41 | /* |
@@ -222,9 +224,16 @@ static int matrix_keypad_suspend(struct device *dev) | |||
222 | 224 | ||
223 | matrix_keypad_stop(keypad->input_dev); | 225 | matrix_keypad_stop(keypad->input_dev); |
224 | 226 | ||
225 | if (device_may_wakeup(&pdev->dev)) | 227 | if (device_may_wakeup(&pdev->dev)) { |
226 | for (i = 0; i < pdata->num_row_gpios; i++) | 228 | for (i = 0; i < pdata->num_row_gpios; i++) { |
227 | enable_irq_wake(gpio_to_irq(pdata->row_gpios[i])); | 229 | if (!test_bit(i, keypad->disabled_gpios)) { |
230 | unsigned int gpio = pdata->row_gpios[i]; | ||
231 | |||
232 | if (enable_irq_wake(gpio_to_irq(gpio)) == 0) | ||
233 | __set_bit(i, keypad->disabled_gpios); | ||
234 | } | ||
235 | } | ||
236 | } | ||
228 | 237 | ||
229 | return 0; | 238 | return 0; |
230 | } | 239 | } |
@@ -236,9 +245,15 @@ static int matrix_keypad_resume(struct device *dev) | |||
236 | const struct matrix_keypad_platform_data *pdata = keypad->pdata; | 245 | const struct matrix_keypad_platform_data *pdata = keypad->pdata; |
237 | int i; | 246 | int i; |
238 | 247 | ||
239 | if (device_may_wakeup(&pdev->dev)) | 248 | if (device_may_wakeup(&pdev->dev)) { |
240 | for (i = 0; i < pdata->num_row_gpios; i++) | 249 | for (i = 0; i < pdata->num_row_gpios; i++) { |
241 | disable_irq_wake(gpio_to_irq(pdata->row_gpios[i])); | 250 | if (test_and_clear_bit(i, keypad->disabled_gpios)) { |
251 | unsigned int gpio = pdata->row_gpios[i]; | ||
252 | |||
253 | disable_irq_wake(gpio_to_irq(gpio)); | ||
254 | } | ||
255 | } | ||
256 | } | ||
242 | 257 | ||
243 | matrix_keypad_start(keypad->input_dev); | 258 | matrix_keypad_start(keypad->input_dev); |
244 | 259 | ||
diff --git a/drivers/input/keyboard/twl4030_keypad.c b/drivers/input/keyboard/twl4030_keypad.c index eeaa7acb9cf..21d6184efa9 100644 --- a/drivers/input/keyboard/twl4030_keypad.c +++ b/drivers/input/keyboard/twl4030_keypad.c | |||
@@ -253,14 +253,6 @@ static irqreturn_t do_kp_irq(int irq, void *_kp) | |||
253 | u8 reg; | 253 | u8 reg; |
254 | int ret; | 254 | int ret; |
255 | 255 | ||
256 | #ifdef CONFIG_LOCKDEP | ||
257 | /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which | ||
258 | * we don't want and can't tolerate. Although it might be | ||
259 | * friendlier not to borrow this thread context... | ||
260 | */ | ||
261 | local_irq_enable(); | ||
262 | #endif | ||
263 | |||
264 | /* Read & Clear TWL4030 pending interrupt */ | 256 | /* Read & Clear TWL4030 pending interrupt */ |
265 | ret = twl4030_kpread(kp, ®, KEYP_ISR1, 1); | 257 | ret = twl4030_kpread(kp, ®, KEYP_ISR1, 1); |
266 | 258 | ||
@@ -403,7 +395,8 @@ static int __devinit twl4030_kp_probe(struct platform_device *pdev) | |||
403 | * | 395 | * |
404 | * NOTE: we assume this host is wired to TWL4040 INT1, not INT2 ... | 396 | * NOTE: we assume this host is wired to TWL4040 INT1, not INT2 ... |
405 | */ | 397 | */ |
406 | error = request_irq(kp->irq, do_kp_irq, 0, pdev->name, kp); | 398 | error = request_threaded_irq(kp->irq, NULL, do_kp_irq, |
399 | 0, pdev->name, kp); | ||
407 | if (error) { | 400 | if (error) { |
408 | dev_info(kp->dbg_dev, "request_irq failed for irq no=%d\n", | 401 | dev_info(kp->dbg_dev, "request_irq failed for irq no=%d\n", |
409 | kp->irq); | 402 | kp->irq); |
diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c index bdde5c88903..e9069b87fde 100644 --- a/drivers/input/misc/twl4030-pwrbutton.c +++ b/drivers/input/misc/twl4030-pwrbutton.c | |||
@@ -39,18 +39,8 @@ static irqreturn_t powerbutton_irq(int irq, void *_pwr) | |||
39 | int err; | 39 | int err; |
40 | u8 value; | 40 | u8 value; |
41 | 41 | ||
42 | #ifdef CONFIG_LOCKDEP | ||
43 | /* WORKAROUND for lockdep forcing IRQF_DISABLED on us, which | ||
44 | * we don't want and can't tolerate since this is a threaded | ||
45 | * IRQ and can sleep due to the i2c reads it has to issue. | ||
46 | * Although it might be friendlier not to borrow this thread | ||
47 | * context... | ||
48 | */ | ||
49 | local_irq_enable(); | ||
50 | #endif | ||
51 | |||
52 | err = twl_i2c_read_u8(TWL4030_MODULE_PM_MASTER, &value, | 42 | err = twl_i2c_read_u8(TWL4030_MODULE_PM_MASTER, &value, |
53 | STS_HW_CONDITIONS); | 43 | STS_HW_CONDITIONS); |
54 | if (!err) { | 44 | if (!err) { |
55 | input_report_key(pwr, KEY_POWER, value & PWR_PWRON_IRQ); | 45 | input_report_key(pwr, KEY_POWER, value & PWR_PWRON_IRQ); |
56 | input_sync(pwr); | 46 | input_sync(pwr); |
@@ -80,7 +70,7 @@ static int __devinit twl4030_pwrbutton_probe(struct platform_device *pdev) | |||
80 | pwr->phys = "twl4030_pwrbutton/input0"; | 70 | pwr->phys = "twl4030_pwrbutton/input0"; |
81 | pwr->dev.parent = &pdev->dev; | 71 | pwr->dev.parent = &pdev->dev; |
82 | 72 | ||
83 | err = request_irq(irq, powerbutton_irq, | 73 | err = request_threaded_irq(irq, NULL, powerbutton_irq, |
84 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, | 74 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, |
85 | "twl4030_pwrbutton", pwr); | 75 | "twl4030_pwrbutton", pwr); |
86 | if (err < 0) { | 76 | if (err < 0) { |
diff --git a/drivers/input/misc/wistron_btns.c b/drivers/input/misc/wistron_btns.c index 38da6ab0438..c0afb71a3a6 100644 --- a/drivers/input/misc/wistron_btns.c +++ b/drivers/input/misc/wistron_btns.c | |||
@@ -1328,7 +1328,7 @@ static struct platform_driver wistron_driver = { | |||
1328 | .driver = { | 1328 | .driver = { |
1329 | .name = "wistron-bios", | 1329 | .name = "wistron-bios", |
1330 | .owner = THIS_MODULE, | 1330 | .owner = THIS_MODULE, |
1331 | #if CONFIG_PM | 1331 | #ifdef CONFIG_PM |
1332 | .pm = &wistron_pm_ops, | 1332 | .pm = &wistron_pm_ops, |
1333 | #endif | 1333 | #endif |
1334 | }, | 1334 | }, |
diff --git a/drivers/input/mouse/Kconfig b/drivers/input/mouse/Kconfig index 3feeb3af8ab..c714ca2407f 100644 --- a/drivers/input/mouse/Kconfig +++ b/drivers/input/mouse/Kconfig | |||
@@ -70,7 +70,7 @@ config MOUSE_PS2_SYNAPTICS | |||
70 | config MOUSE_PS2_LIFEBOOK | 70 | config MOUSE_PS2_LIFEBOOK |
71 | bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EMBEDDED | 71 | bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EMBEDDED |
72 | default y | 72 | default y |
73 | depends on MOUSE_PS2 && X86 | 73 | depends on MOUSE_PS2 && X86 && DMI |
74 | help | 74 | help |
75 | Say Y here if you have a Fujitsu B-series Lifebook PS/2 | 75 | Say Y here if you have a Fujitsu B-series Lifebook PS/2 |
76 | TouchScreen connected to your system. | 76 | TouchScreen connected to your system. |
diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c index 0d1d33468b4..4f8fe0886b2 100644 --- a/drivers/input/mouse/bcm5974.c +++ b/drivers/input/mouse/bcm5974.c | |||
@@ -139,6 +139,7 @@ struct tp_finger { | |||
139 | /* trackpad finger data size, empirically at least ten fingers */ | 139 | /* trackpad finger data size, empirically at least ten fingers */ |
140 | #define SIZEOF_FINGER sizeof(struct tp_finger) | 140 | #define SIZEOF_FINGER sizeof(struct tp_finger) |
141 | #define SIZEOF_ALL_FINGERS (16 * SIZEOF_FINGER) | 141 | #define SIZEOF_ALL_FINGERS (16 * SIZEOF_FINGER) |
142 | #define MAX_FINGER_ORIENTATION 16384 | ||
142 | 143 | ||
143 | /* device-specific parameters */ | 144 | /* device-specific parameters */ |
144 | struct bcm5974_param { | 145 | struct bcm5974_param { |
@@ -284,6 +285,26 @@ static void setup_events_to_report(struct input_dev *input_dev, | |||
284 | input_set_abs_params(input_dev, ABS_Y, | 285 | input_set_abs_params(input_dev, ABS_Y, |
285 | 0, cfg->y.dim, cfg->y.fuzz, 0); | 286 | 0, cfg->y.dim, cfg->y.fuzz, 0); |
286 | 287 | ||
288 | /* finger touch area */ | ||
289 | input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, | ||
290 | cfg->w.devmin, cfg->w.devmax, 0, 0); | ||
291 | input_set_abs_params(input_dev, ABS_MT_TOUCH_MINOR, | ||
292 | cfg->w.devmin, cfg->w.devmax, 0, 0); | ||
293 | /* finger approach area */ | ||
294 | input_set_abs_params(input_dev, ABS_MT_WIDTH_MAJOR, | ||
295 | cfg->w.devmin, cfg->w.devmax, 0, 0); | ||
296 | input_set_abs_params(input_dev, ABS_MT_WIDTH_MINOR, | ||
297 | cfg->w.devmin, cfg->w.devmax, 0, 0); | ||
298 | /* finger orientation */ | ||
299 | input_set_abs_params(input_dev, ABS_MT_ORIENTATION, | ||
300 | -MAX_FINGER_ORIENTATION, | ||
301 | MAX_FINGER_ORIENTATION, 0, 0); | ||
302 | /* finger position */ | ||
303 | input_set_abs_params(input_dev, ABS_MT_POSITION_X, | ||
304 | cfg->x.devmin, cfg->x.devmax, 0, 0); | ||
305 | input_set_abs_params(input_dev, ABS_MT_POSITION_Y, | ||
306 | cfg->y.devmin, cfg->y.devmax, 0, 0); | ||
307 | |||
287 | __set_bit(EV_KEY, input_dev->evbit); | 308 | __set_bit(EV_KEY, input_dev->evbit); |
288 | __set_bit(BTN_TOUCH, input_dev->keybit); | 309 | __set_bit(BTN_TOUCH, input_dev->keybit); |
289 | __set_bit(BTN_TOOL_FINGER, input_dev->keybit); | 310 | __set_bit(BTN_TOOL_FINGER, input_dev->keybit); |
@@ -310,13 +331,29 @@ static int report_bt_state(struct bcm5974 *dev, int size) | |||
310 | return 0; | 331 | return 0; |
311 | } | 332 | } |
312 | 333 | ||
334 | static void report_finger_data(struct input_dev *input, | ||
335 | const struct bcm5974_config *cfg, | ||
336 | const struct tp_finger *f) | ||
337 | { | ||
338 | input_report_abs(input, ABS_MT_TOUCH_MAJOR, raw2int(f->force_major)); | ||
339 | input_report_abs(input, ABS_MT_TOUCH_MINOR, raw2int(f->force_minor)); | ||
340 | input_report_abs(input, ABS_MT_WIDTH_MAJOR, raw2int(f->size_major)); | ||
341 | input_report_abs(input, ABS_MT_WIDTH_MINOR, raw2int(f->size_minor)); | ||
342 | input_report_abs(input, ABS_MT_ORIENTATION, | ||
343 | MAX_FINGER_ORIENTATION - raw2int(f->orientation)); | ||
344 | input_report_abs(input, ABS_MT_POSITION_X, raw2int(f->abs_x)); | ||
345 | input_report_abs(input, ABS_MT_POSITION_Y, | ||
346 | cfg->y.devmin + cfg->y.devmax - raw2int(f->abs_y)); | ||
347 | input_mt_sync(input); | ||
348 | } | ||
349 | |||
313 | /* report trackpad data as logical trackpad state */ | 350 | /* report trackpad data as logical trackpad state */ |
314 | static int report_tp_state(struct bcm5974 *dev, int size) | 351 | static int report_tp_state(struct bcm5974 *dev, int size) |
315 | { | 352 | { |
316 | const struct bcm5974_config *c = &dev->cfg; | 353 | const struct bcm5974_config *c = &dev->cfg; |
317 | const struct tp_finger *f; | 354 | const struct tp_finger *f; |
318 | struct input_dev *input = dev->input; | 355 | struct input_dev *input = dev->input; |
319 | int raw_p, raw_w, raw_x, raw_y, raw_n; | 356 | int raw_p, raw_w, raw_x, raw_y, raw_n, i; |
320 | int ptest, origin, ibt = 0, nmin = 0, nmax = 0; | 357 | int ptest, origin, ibt = 0, nmin = 0, nmax = 0; |
321 | int abs_p = 0, abs_w = 0, abs_x = 0, abs_y = 0; | 358 | int abs_p = 0, abs_w = 0, abs_x = 0, abs_y = 0; |
322 | 359 | ||
@@ -329,6 +366,11 @@ static int report_tp_state(struct bcm5974 *dev, int size) | |||
329 | 366 | ||
330 | /* always track the first finger; when detached, start over */ | 367 | /* always track the first finger; when detached, start over */ |
331 | if (raw_n) { | 368 | if (raw_n) { |
369 | |||
370 | /* report raw trackpad data */ | ||
371 | for (i = 0; i < raw_n; i++) | ||
372 | report_finger_data(input, c, &f[i]); | ||
373 | |||
332 | raw_p = raw2int(f->force_major); | 374 | raw_p = raw2int(f->force_major); |
333 | raw_w = raw2int(f->size_major); | 375 | raw_w = raw2int(f->size_major); |
334 | raw_x = raw2int(f->abs_x); | 376 | raw_x = raw2int(f->abs_x); |
diff --git a/drivers/input/mouse/hgpk.c b/drivers/input/mouse/hgpk.c index b146237266d..90be30e9355 100644 --- a/drivers/input/mouse/hgpk.c +++ b/drivers/input/mouse/hgpk.c | |||
@@ -427,7 +427,6 @@ static void hgpk_recalib_work(struct work_struct *work) | |||
427 | 427 | ||
428 | static int hgpk_register(struct psmouse *psmouse) | 428 | static int hgpk_register(struct psmouse *psmouse) |
429 | { | 429 | { |
430 | struct input_dev *dev = psmouse->dev; | ||
431 | int err; | 430 | int err; |
432 | 431 | ||
433 | /* register handlers */ | 432 | /* register handlers */ |
diff --git a/drivers/input/mouse/lifebook.c b/drivers/input/mouse/lifebook.c index 2e6bdfea016..6d7aa10d10f 100644 --- a/drivers/input/mouse/lifebook.c +++ b/drivers/input/mouse/lifebook.c | |||
@@ -44,7 +44,6 @@ static int lifebook_set_6byte_proto(const struct dmi_system_id *d) | |||
44 | } | 44 | } |
45 | 45 | ||
46 | static const struct dmi_system_id __initconst lifebook_dmi_table[] = { | 46 | static const struct dmi_system_id __initconst lifebook_dmi_table[] = { |
47 | #if defined(CONFIG_DMI) && defined(CONFIG_X86) | ||
48 | { | 47 | { |
49 | /* FLORA-ie 55mi */ | 48 | /* FLORA-ie 55mi */ |
50 | .matches = { | 49 | .matches = { |
@@ -118,7 +117,6 @@ static const struct dmi_system_id __initconst lifebook_dmi_table[] = { | |||
118 | }, | 117 | }, |
119 | }, | 118 | }, |
120 | { } | 119 | { } |
121 | #endif | ||
122 | }; | 120 | }; |
123 | 121 | ||
124 | void __init lifebook_module_init(void) | 122 | void __init lifebook_module_init(void) |
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c index fd0bc094616..9774bdfaa48 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c | |||
@@ -627,8 +627,15 @@ static int psmouse_extensions(struct psmouse *psmouse, | |||
627 | synaptics_hardware = true; | 627 | synaptics_hardware = true; |
628 | 628 | ||
629 | if (max_proto > PSMOUSE_IMEX) { | 629 | if (max_proto > PSMOUSE_IMEX) { |
630 | if (!set_properties || synaptics_init(psmouse) == 0) | 630 | /* |
631 | * Try activating protocol, but check if support is enabled first, since | ||
632 | * we try detecting Synaptics even when protocol is disabled. | ||
633 | */ | ||
634 | if (synaptics_supported() && | ||
635 | (!set_properties || synaptics_init(psmouse) == 0)) { | ||
631 | return PSMOUSE_SYNAPTICS; | 636 | return PSMOUSE_SYNAPTICS; |
637 | } | ||
638 | |||
632 | /* | 639 | /* |
633 | * Some Synaptics touchpads can emulate extended protocols (like IMPS/2). | 640 | * Some Synaptics touchpads can emulate extended protocols (like IMPS/2). |
634 | * Unfortunately Logitech/Genius probes confuse some firmware versions so | 641 | * Unfortunately Logitech/Genius probes confuse some firmware versions so |
@@ -683,19 +690,6 @@ static int psmouse_extensions(struct psmouse *psmouse, | |||
683 | max_proto = PSMOUSE_IMEX; | 690 | max_proto = PSMOUSE_IMEX; |
684 | } | 691 | } |
685 | 692 | ||
686 | /* | ||
687 | * Try Finger Sensing Pad | ||
688 | */ | ||
689 | if (max_proto > PSMOUSE_IMEX) { | ||
690 | if (fsp_detect(psmouse, set_properties) == 0) { | ||
691 | if (!set_properties || fsp_init(psmouse) == 0) | ||
692 | return PSMOUSE_FSP; | ||
693 | /* | ||
694 | * Init failed, try basic relative protocols | ||
695 | */ | ||
696 | max_proto = PSMOUSE_IMEX; | ||
697 | } | ||
698 | } | ||
699 | 693 | ||
700 | if (max_proto > PSMOUSE_IMEX) { | 694 | if (max_proto > PSMOUSE_IMEX) { |
701 | if (genius_detect(psmouse, set_properties) == 0) | 695 | if (genius_detect(psmouse, set_properties) == 0) |
@@ -712,6 +706,21 @@ static int psmouse_extensions(struct psmouse *psmouse, | |||
712 | } | 706 | } |
713 | 707 | ||
714 | /* | 708 | /* |
709 | * Try Finger Sensing Pad. We do it here because its probe upsets | ||
710 | * Trackpoint devices (causing TP_READ_ID command to time out). | ||
711 | */ | ||
712 | if (max_proto > PSMOUSE_IMEX) { | ||
713 | if (fsp_detect(psmouse, set_properties) == 0) { | ||
714 | if (!set_properties || fsp_init(psmouse) == 0) | ||
715 | return PSMOUSE_FSP; | ||
716 | /* | ||
717 | * Init failed, try basic relative protocols | ||
718 | */ | ||
719 | max_proto = PSMOUSE_IMEX; | ||
720 | } | ||
721 | } | ||
722 | |||
723 | /* | ||
715 | * Reset to defaults in case the device got confused by extended | 724 | * Reset to defaults in case the device got confused by extended |
716 | * protocol probes. Note that we follow up with full reset because | 725 | * protocol probes. Note that we follow up with full reset because |
717 | * some mice put themselves to sleep when they see PSMOUSE_RESET_DIS. | 726 | * some mice put themselves to sleep when they see PSMOUSE_RESET_DIS. |
@@ -1137,7 +1146,10 @@ static void psmouse_cleanup(struct serio *serio) | |||
1137 | if (psmouse->cleanup) | 1146 | if (psmouse->cleanup) |
1138 | psmouse->cleanup(psmouse); | 1147 | psmouse->cleanup(psmouse); |
1139 | 1148 | ||
1140 | psmouse_reset(psmouse); | 1149 | /* |
1150 | * Reset the mouse to defaults (bare PS/2 protocol). | ||
1151 | */ | ||
1152 | ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_RESET_DIS); | ||
1141 | 1153 | ||
1142 | /* | 1154 | /* |
1143 | * Some boxes, such as HP nx7400, get terribly confused if mouse | 1155 | * Some boxes, such as HP nx7400, get terribly confused if mouse |
@@ -1447,24 +1459,10 @@ ssize_t psmouse_attr_show_helper(struct device *dev, struct device_attribute *de | |||
1447 | struct serio *serio = to_serio_port(dev); | 1459 | struct serio *serio = to_serio_port(dev); |
1448 | struct psmouse_attribute *attr = to_psmouse_attr(devattr); | 1460 | struct psmouse_attribute *attr = to_psmouse_attr(devattr); |
1449 | struct psmouse *psmouse; | 1461 | struct psmouse *psmouse; |
1450 | int retval; | ||
1451 | |||
1452 | retval = serio_pin_driver(serio); | ||
1453 | if (retval) | ||
1454 | return retval; | ||
1455 | |||
1456 | if (serio->drv != &psmouse_drv) { | ||
1457 | retval = -ENODEV; | ||
1458 | goto out; | ||
1459 | } | ||
1460 | 1462 | ||
1461 | psmouse = serio_get_drvdata(serio); | 1463 | psmouse = serio_get_drvdata(serio); |
1462 | 1464 | ||
1463 | retval = attr->show(psmouse, attr->data, buf); | 1465 | return attr->show(psmouse, attr->data, buf); |
1464 | |||
1465 | out: | ||
1466 | serio_unpin_driver(serio); | ||
1467 | return retval; | ||
1468 | } | 1466 | } |
1469 | 1467 | ||
1470 | ssize_t psmouse_attr_set_helper(struct device *dev, struct device_attribute *devattr, | 1468 | ssize_t psmouse_attr_set_helper(struct device *dev, struct device_attribute *devattr, |
@@ -1475,18 +1473,9 @@ ssize_t psmouse_attr_set_helper(struct device *dev, struct device_attribute *dev | |||
1475 | struct psmouse *psmouse, *parent = NULL; | 1473 | struct psmouse *psmouse, *parent = NULL; |
1476 | int retval; | 1474 | int retval; |
1477 | 1475 | ||
1478 | retval = serio_pin_driver(serio); | ||
1479 | if (retval) | ||
1480 | return retval; | ||
1481 | |||
1482 | if (serio->drv != &psmouse_drv) { | ||
1483 | retval = -ENODEV; | ||
1484 | goto out_unpin; | ||
1485 | } | ||
1486 | |||
1487 | retval = mutex_lock_interruptible(&psmouse_mutex); | 1476 | retval = mutex_lock_interruptible(&psmouse_mutex); |
1488 | if (retval) | 1477 | if (retval) |
1489 | goto out_unpin; | 1478 | goto out; |
1490 | 1479 | ||
1491 | psmouse = serio_get_drvdata(serio); | 1480 | psmouse = serio_get_drvdata(serio); |
1492 | 1481 | ||
@@ -1516,8 +1505,7 @@ ssize_t psmouse_attr_set_helper(struct device *dev, struct device_attribute *dev | |||
1516 | 1505 | ||
1517 | out_unlock: | 1506 | out_unlock: |
1518 | mutex_unlock(&psmouse_mutex); | 1507 | mutex_unlock(&psmouse_mutex); |
1519 | out_unpin: | 1508 | out: |
1520 | serio_unpin_driver(serio); | ||
1521 | return retval; | 1509 | return retval; |
1522 | } | 1510 | } |
1523 | 1511 | ||
@@ -1579,9 +1567,7 @@ static ssize_t psmouse_attr_set_protocol(struct psmouse *psmouse, void *data, co | |||
1579 | } | 1567 | } |
1580 | 1568 | ||
1581 | mutex_unlock(&psmouse_mutex); | 1569 | mutex_unlock(&psmouse_mutex); |
1582 | serio_unpin_driver(serio); | ||
1583 | serio_unregister_child_port(serio); | 1570 | serio_unregister_child_port(serio); |
1584 | serio_pin_driver_uninterruptible(serio); | ||
1585 | mutex_lock(&psmouse_mutex); | 1571 | mutex_lock(&psmouse_mutex); |
1586 | 1572 | ||
1587 | if (serio->drv != &psmouse_drv) { | 1573 | if (serio->drv != &psmouse_drv) { |
diff --git a/drivers/input/mouse/sentelic.c b/drivers/input/mouse/sentelic.c index 77b9fd0b3fb..81a6b81cb2f 100644 --- a/drivers/input/mouse/sentelic.c +++ b/drivers/input/mouse/sentelic.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * Finger Sensing Pad PS/2 mouse driver. | 2 | * Finger Sensing Pad PS/2 mouse driver. |
3 | * | 3 | * |
4 | * Copyright (C) 2005-2007 Asia Vital Components Co., Ltd. | 4 | * Copyright (C) 2005-2007 Asia Vital Components Co., Ltd. |
5 | * Copyright (C) 2005-2009 Tai-hwa Liang, Sentelic Corporation. | 5 | * Copyright (C) 2005-2010 Tai-hwa Liang, Sentelic Corporation. |
6 | * | 6 | * |
7 | * This program is free software; you can redistribute it and/or | 7 | * This program is free software; you can redistribute it and/or |
8 | * modify it under the terms of the GNU General Public License | 8 | * modify it under the terms of the GNU General Public License |
@@ -658,9 +658,9 @@ static psmouse_ret_t fsp_process_byte(struct psmouse *psmouse) | |||
658 | if (packet[3] & BIT(1)) | 658 | if (packet[3] & BIT(1)) |
659 | button_status |= 0x0f; /* wheel up */ | 659 | button_status |= 0x0f; /* wheel up */ |
660 | if (packet[3] & BIT(2)) | 660 | if (packet[3] & BIT(2)) |
661 | button_status |= BIT(5);/* horizontal left */ | 661 | button_status |= BIT(4);/* horizontal left */ |
662 | if (packet[3] & BIT(3)) | 662 | if (packet[3] & BIT(3)) |
663 | button_status |= BIT(4);/* horizontal right */ | 663 | button_status |= BIT(5);/* horizontal right */ |
664 | /* push back to packet queue */ | 664 | /* push back to packet queue */ |
665 | if (button_status != 0) | 665 | if (button_status != 0) |
666 | packet[3] = button_status; | 666 | packet[3] = button_status; |
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c index 05689e73219..d3f5243fa09 100644 --- a/drivers/input/mouse/synaptics.c +++ b/drivers/input/mouse/synaptics.c | |||
@@ -743,6 +743,11 @@ int synaptics_init(struct psmouse *psmouse) | |||
743 | return -1; | 743 | return -1; |
744 | } | 744 | } |
745 | 745 | ||
746 | bool synaptics_supported(void) | ||
747 | { | ||
748 | return true; | ||
749 | } | ||
750 | |||
746 | #else /* CONFIG_MOUSE_PS2_SYNAPTICS */ | 751 | #else /* CONFIG_MOUSE_PS2_SYNAPTICS */ |
747 | 752 | ||
748 | void __init synaptics_module_init(void) | 753 | void __init synaptics_module_init(void) |
@@ -754,5 +759,10 @@ int synaptics_init(struct psmouse *psmouse) | |||
754 | return -ENOSYS; | 759 | return -ENOSYS; |
755 | } | 760 | } |
756 | 761 | ||
762 | bool synaptics_supported(void) | ||
763 | { | ||
764 | return false; | ||
765 | } | ||
766 | |||
757 | #endif /* CONFIG_MOUSE_PS2_SYNAPTICS */ | 767 | #endif /* CONFIG_MOUSE_PS2_SYNAPTICS */ |
758 | 768 | ||
diff --git a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h index 838e7f2c9b3..f0f40a331dc 100644 --- a/drivers/input/mouse/synaptics.h +++ b/drivers/input/mouse/synaptics.h | |||
@@ -109,5 +109,6 @@ void synaptics_module_init(void); | |||
109 | int synaptics_detect(struct psmouse *psmouse, bool set_properties); | 109 | int synaptics_detect(struct psmouse *psmouse, bool set_properties); |
110 | int synaptics_init(struct psmouse *psmouse); | 110 | int synaptics_init(struct psmouse *psmouse); |
111 | void synaptics_reset(struct psmouse *psmouse); | 111 | void synaptics_reset(struct psmouse *psmouse); |
112 | bool synaptics_supported(void); | ||
112 | 113 | ||
113 | #endif /* _SYNAPTICS_H */ | 114 | #endif /* _SYNAPTICS_H */ |
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index 64b688daf48..2a5982e532f 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h | |||
@@ -524,6 +524,13 @@ static const struct dmi_system_id __initconst i8042_dmi_laptop_table[] = { | |||
524 | */ | 524 | */ |
525 | static const struct dmi_system_id __initconst i8042_dmi_dritek_table[] = { | 525 | static const struct dmi_system_id __initconst i8042_dmi_dritek_table[] = { |
526 | { | 526 | { |
527 | /* Acer Aspire 5610 */ | ||
528 | .matches = { | ||
529 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
530 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5610"), | ||
531 | }, | ||
532 | }, | ||
533 | { | ||
527 | /* Acer Aspire 5630 */ | 534 | /* Acer Aspire 5630 */ |
528 | .matches = { | 535 | .matches = { |
529 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | 536 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), |
diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c index 0236f0d5fd9..e0f30186d51 100644 --- a/drivers/input/serio/serio.c +++ b/drivers/input/serio/serio.c | |||
@@ -284,13 +284,7 @@ static void serio_handle_event(void) | |||
284 | 284 | ||
285 | mutex_lock(&serio_mutex); | 285 | mutex_lock(&serio_mutex); |
286 | 286 | ||
287 | /* | 287 | while ((event = serio_get_event())) { |
288 | * Note that we handle only one event here to give swsusp | ||
289 | * a chance to freeze kseriod thread. Serio events should | ||
290 | * be pretty rare so we are not concerned about taking | ||
291 | * performance hit. | ||
292 | */ | ||
293 | if ((event = serio_get_event())) { | ||
294 | 288 | ||
295 | switch (event->type) { | 289 | switch (event->type) { |
296 | case SERIO_REGISTER_PORT: | 290 | case SERIO_REGISTER_PORT: |
@@ -380,10 +374,9 @@ static struct serio *serio_get_pending_child(struct serio *parent) | |||
380 | 374 | ||
381 | static int serio_thread(void *nothing) | 375 | static int serio_thread(void *nothing) |
382 | { | 376 | { |
383 | set_freezable(); | ||
384 | do { | 377 | do { |
385 | serio_handle_event(); | 378 | serio_handle_event(); |
386 | wait_event_freezable(serio_wait, | 379 | wait_event_interruptible(serio_wait, |
387 | kthread_should_stop() || !list_empty(&serio_event_list)); | 380 | kthread_should_stop() || !list_empty(&serio_event_list)); |
388 | } while (!kthread_should_stop()); | 381 | } while (!kthread_should_stop()); |
389 | 382 | ||
diff --git a/drivers/isdn/hardware/mISDN/hfcmulti.c b/drivers/isdn/hardware/mISDN/hfcmulti.c index a6624ad252c..1a1420d7a82 100644 --- a/drivers/isdn/hardware/mISDN/hfcmulti.c +++ b/drivers/isdn/hardware/mISDN/hfcmulti.c | |||
@@ -3152,7 +3152,7 @@ static void | |||
3152 | hfcmulti_pcm(struct hfc_multi *hc, int ch, int slot_tx, int bank_tx, | 3152 | hfcmulti_pcm(struct hfc_multi *hc, int ch, int slot_tx, int bank_tx, |
3153 | int slot_rx, int bank_rx) | 3153 | int slot_rx, int bank_rx) |
3154 | { | 3154 | { |
3155 | if (slot_rx < 0 || slot_rx < 0 || bank_tx < 0 || bank_rx < 0) { | 3155 | if (slot_tx < 0 || slot_rx < 0 || bank_tx < 0 || bank_rx < 0) { |
3156 | /* disable PCM */ | 3156 | /* disable PCM */ |
3157 | mode_hfcmulti(hc, ch, hc->chan[ch].protocol, -1, 0, -1, 0); | 3157 | mode_hfcmulti(hc, ch, hc->chan[ch].protocol, -1, 0, -1, 0); |
3158 | return; | 3158 | return; |
diff --git a/drivers/lguest/segments.c b/drivers/lguest/segments.c index 951c57b0a7e..ede46581351 100644 --- a/drivers/lguest/segments.c +++ b/drivers/lguest/segments.c | |||
@@ -179,8 +179,10 @@ void load_guest_gdt_entry(struct lg_cpu *cpu, u32 num, u32 lo, u32 hi) | |||
179 | * We assume the Guest has the same number of GDT entries as the | 179 | * We assume the Guest has the same number of GDT entries as the |
180 | * Host, otherwise we'd have to dynamically allocate the Guest GDT. | 180 | * Host, otherwise we'd have to dynamically allocate the Guest GDT. |
181 | */ | 181 | */ |
182 | if (num >= ARRAY_SIZE(cpu->arch.gdt)) | 182 | if (num >= ARRAY_SIZE(cpu->arch.gdt)) { |
183 | kill_guest(cpu, "too many gdt entries %i", num); | 183 | kill_guest(cpu, "too many gdt entries %i", num); |
184 | return; | ||
185 | } | ||
184 | 186 | ||
185 | /* Set it up, then fix it. */ | 187 | /* Set it up, then fix it. */ |
186 | cpu->arch.gdt[num].a = lo; | 188 | cpu->arch.gdt[num].a = lo; |
diff --git a/drivers/macintosh/smu.c b/drivers/macintosh/smu.c index 96faa799b82..f96feeb6b9c 100644 --- a/drivers/macintosh/smu.c +++ b/drivers/macintosh/smu.c | |||
@@ -660,7 +660,7 @@ static int smu_platform_probe(struct of_device* dev, | |||
660 | return 0; | 660 | return 0; |
661 | } | 661 | } |
662 | 662 | ||
663 | static struct of_device_id smu_platform_match[] = | 663 | static const struct of_device_id smu_platform_match[] = |
664 | { | 664 | { |
665 | { | 665 | { |
666 | .type = "smu", | 666 | .type = "smu", |
diff --git a/drivers/macintosh/therm_pm72.c b/drivers/macintosh/therm_pm72.c index ea32c7e5a9a..454bc501df3 100644 --- a/drivers/macintosh/therm_pm72.c +++ b/drivers/macintosh/therm_pm72.c | |||
@@ -2211,7 +2211,7 @@ static int fcu_of_remove(struct of_device* dev) | |||
2211 | return 0; | 2211 | return 0; |
2212 | } | 2212 | } |
2213 | 2213 | ||
2214 | static struct of_device_id fcu_match[] = | 2214 | static const struct of_device_id fcu_match[] = |
2215 | { | 2215 | { |
2216 | { | 2216 | { |
2217 | .type = "fcu", | 2217 | .type = "fcu", |
diff --git a/drivers/macintosh/therm_windtunnel.c b/drivers/macintosh/therm_windtunnel.c index 3fbe41b0ac0..ba48fd76396 100644 --- a/drivers/macintosh/therm_windtunnel.c +++ b/drivers/macintosh/therm_windtunnel.c | |||
@@ -457,7 +457,7 @@ therm_of_remove( struct of_device *dev ) | |||
457 | return 0; | 457 | return 0; |
458 | } | 458 | } |
459 | 459 | ||
460 | static struct of_device_id therm_of_match[] = {{ | 460 | static const struct of_device_id therm_of_match[] = {{ |
461 | .name = "fan", | 461 | .name = "fan", |
462 | .compatible = "adm1030" | 462 | .compatible = "adm1030" |
463 | }, {} | 463 | }, {} |
diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c index be625475cf6..4b22feb01a0 100644 --- a/drivers/md/dm-table.c +++ b/drivers/md/dm-table.c | |||
@@ -503,16 +503,15 @@ int dm_set_device_limits(struct dm_target *ti, struct dm_dev *dev, | |||
503 | return 0; | 503 | return 0; |
504 | } | 504 | } |
505 | 505 | ||
506 | if (blk_stack_limits(limits, &q->limits, start << 9) < 0) | 506 | if (bdev_stack_limits(limits, bdev, start) < 0) |
507 | DMWARN("%s: target device %s is misaligned: " | 507 | DMWARN("%s: adding target device %s caused an alignment inconsistency: " |
508 | "physical_block_size=%u, logical_block_size=%u, " | 508 | "physical_block_size=%u, logical_block_size=%u, " |
509 | "alignment_offset=%u, start=%llu", | 509 | "alignment_offset=%u, start=%llu", |
510 | dm_device_name(ti->table->md), bdevname(bdev, b), | 510 | dm_device_name(ti->table->md), bdevname(bdev, b), |
511 | q->limits.physical_block_size, | 511 | q->limits.physical_block_size, |
512 | q->limits.logical_block_size, | 512 | q->limits.logical_block_size, |
513 | q->limits.alignment_offset, | 513 | q->limits.alignment_offset, |
514 | (unsigned long long) start << 9); | 514 | (unsigned long long) start << SECTOR_SHIFT); |
515 | |||
516 | 515 | ||
517 | /* | 516 | /* |
518 | * Check if merge fn is supported. | 517 | * Check if merge fn is supported. |
@@ -1026,9 +1025,9 @@ combine_limits: | |||
1026 | * for the table. | 1025 | * for the table. |
1027 | */ | 1026 | */ |
1028 | if (blk_stack_limits(limits, &ti_limits, 0) < 0) | 1027 | if (blk_stack_limits(limits, &ti_limits, 0) < 0) |
1029 | DMWARN("%s: target device " | 1028 | DMWARN("%s: adding target device " |
1030 | "(start sect %llu len %llu) " | 1029 | "(start sect %llu len %llu) " |
1031 | "is misaligned", | 1030 | "caused an alignment inconsistency", |
1032 | dm_device_name(table->md), | 1031 | dm_device_name(table->md), |
1033 | (unsigned long long) ti->begin, | 1032 | (unsigned long long) ti->begin, |
1034 | (unsigned long long) ti->len); | 1033 | (unsigned long long) ti->len); |
@@ -1080,15 +1079,6 @@ void dm_table_set_restrictions(struct dm_table *t, struct request_queue *q, | |||
1080 | struct queue_limits *limits) | 1079 | struct queue_limits *limits) |
1081 | { | 1080 | { |
1082 | /* | 1081 | /* |
1083 | * Each target device in the table has a data area that should normally | ||
1084 | * be aligned such that the DM device's alignment_offset is 0. | ||
1085 | * FIXME: Propagate alignment_offsets up the stack and warn of | ||
1086 | * sub-optimal or inconsistent settings. | ||
1087 | */ | ||
1088 | limits->alignment_offset = 0; | ||
1089 | limits->misaligned = 0; | ||
1090 | |||
1091 | /* | ||
1092 | * Copy table's limits to the DM device's request_queue | 1082 | * Copy table's limits to the DM device's request_queue |
1093 | */ | 1083 | */ |
1094 | q->limits = *limits; | 1084 | q->limits = *limits; |
diff --git a/drivers/md/md.c b/drivers/md/md.c index f4f5f82f9f5..dd3dfe42d5a 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -386,7 +386,9 @@ static void mddev_put(mddev_t *mddev) | |||
386 | if (!atomic_dec_and_lock(&mddev->active, &all_mddevs_lock)) | 386 | if (!atomic_dec_and_lock(&mddev->active, &all_mddevs_lock)) |
387 | return; | 387 | return; |
388 | if (!mddev->raid_disks && list_empty(&mddev->disks) && | 388 | if (!mddev->raid_disks && list_empty(&mddev->disks) && |
389 | !mddev->hold_active) { | 389 | mddev->ctime == 0 && !mddev->hold_active) { |
390 | /* Array is not configured at all, and not held active, | ||
391 | * so destroy it */ | ||
390 | list_del(&mddev->all_mddevs); | 392 | list_del(&mddev->all_mddevs); |
391 | if (mddev->gendisk) { | 393 | if (mddev->gendisk) { |
392 | /* we did a probe so need to clean up. | 394 | /* we did a probe so need to clean up. |
@@ -4355,7 +4357,7 @@ static int do_md_run(mddev_t * mddev) | |||
4355 | mddev->barriers_work = 1; | 4357 | mddev->barriers_work = 1; |
4356 | mddev->ok_start_degraded = start_dirty_degraded; | 4358 | mddev->ok_start_degraded = start_dirty_degraded; |
4357 | 4359 | ||
4358 | if (start_readonly) | 4360 | if (start_readonly && mddev->ro == 0) |
4359 | mddev->ro = 2; /* read-only, but switch on first write */ | 4361 | mddev->ro = 2; /* read-only, but switch on first write */ |
4360 | 4362 | ||
4361 | err = mddev->pers->run(mddev); | 4363 | err = mddev->pers->run(mddev); |
@@ -4419,33 +4421,6 @@ static int do_md_run(mddev_t * mddev) | |||
4419 | 4421 | ||
4420 | set_capacity(disk, mddev->array_sectors); | 4422 | set_capacity(disk, mddev->array_sectors); |
4421 | 4423 | ||
4422 | /* If there is a partially-recovered drive we need to | ||
4423 | * start recovery here. If we leave it to md_check_recovery, | ||
4424 | * it will remove the drives and not do the right thing | ||
4425 | */ | ||
4426 | if (mddev->degraded && !mddev->sync_thread) { | ||
4427 | int spares = 0; | ||
4428 | list_for_each_entry(rdev, &mddev->disks, same_set) | ||
4429 | if (rdev->raid_disk >= 0 && | ||
4430 | !test_bit(In_sync, &rdev->flags) && | ||
4431 | !test_bit(Faulty, &rdev->flags)) | ||
4432 | /* complete an interrupted recovery */ | ||
4433 | spares++; | ||
4434 | if (spares && mddev->pers->sync_request) { | ||
4435 | mddev->recovery = 0; | ||
4436 | set_bit(MD_RECOVERY_RUNNING, &mddev->recovery); | ||
4437 | mddev->sync_thread = md_register_thread(md_do_sync, | ||
4438 | mddev, | ||
4439 | "resync"); | ||
4440 | if (!mddev->sync_thread) { | ||
4441 | printk(KERN_ERR "%s: could not start resync" | ||
4442 | " thread...\n", | ||
4443 | mdname(mddev)); | ||
4444 | /* leave the spares where they are, it shouldn't hurt */ | ||
4445 | mddev->recovery = 0; | ||
4446 | } | ||
4447 | } | ||
4448 | } | ||
4449 | md_wakeup_thread(mddev->thread); | 4424 | md_wakeup_thread(mddev->thread); |
4450 | md_wakeup_thread(mddev->sync_thread); /* possibly kick off a reshape */ | 4425 | md_wakeup_thread(mddev->sync_thread); /* possibly kick off a reshape */ |
4451 | 4426 | ||
@@ -5262,6 +5237,10 @@ static int set_array_info(mddev_t * mddev, mdu_array_info_t *info) | |||
5262 | mddev->minor_version = info->minor_version; | 5237 | mddev->minor_version = info->minor_version; |
5263 | mddev->patch_version = info->patch_version; | 5238 | mddev->patch_version = info->patch_version; |
5264 | mddev->persistent = !info->not_persistent; | 5239 | mddev->persistent = !info->not_persistent; |
5240 | /* ensure mddev_put doesn't delete this now that there | ||
5241 | * is some minimal configuration. | ||
5242 | */ | ||
5243 | mddev->ctime = get_seconds(); | ||
5265 | return 0; | 5244 | return 0; |
5266 | } | 5245 | } |
5267 | mddev->major_version = MD_MAJOR_VERSION; | 5246 | mddev->major_version = MD_MAJOR_VERSION; |
@@ -6494,10 +6473,11 @@ void md_do_sync(mddev_t *mddev) | |||
6494 | mddev->curr_resync = 2; | 6473 | mddev->curr_resync = 2; |
6495 | 6474 | ||
6496 | try_again: | 6475 | try_again: |
6497 | if (kthread_should_stop()) { | 6476 | if (kthread_should_stop()) |
6498 | set_bit(MD_RECOVERY_INTR, &mddev->recovery); | 6477 | set_bit(MD_RECOVERY_INTR, &mddev->recovery); |
6478 | |||
6479 | if (test_bit(MD_RECOVERY_INTR, &mddev->recovery)) | ||
6499 | goto skip; | 6480 | goto skip; |
6500 | } | ||
6501 | for_each_mddev(mddev2, tmp) { | 6481 | for_each_mddev(mddev2, tmp) { |
6502 | if (mddev2 == mddev) | 6482 | if (mddev2 == mddev) |
6503 | continue; | 6483 | continue; |
diff --git a/drivers/media/IR/ir-keytable.c b/drivers/media/IR/ir-keytable.c index bff7a535603..b521ed9d6e2 100644 --- a/drivers/media/IR/ir-keytable.c +++ b/drivers/media/IR/ir-keytable.c | |||
@@ -13,7 +13,7 @@ | |||
13 | */ | 13 | */ |
14 | 14 | ||
15 | 15 | ||
16 | #include <linux/usb/input.h> | 16 | #include <linux/input.h> |
17 | #include <media/ir-common.h> | 17 | #include <media/ir-common.h> |
18 | 18 | ||
19 | #define IR_TAB_MIN_SIZE 32 | 19 | #define IR_TAB_MIN_SIZE 32 |
diff --git a/drivers/media/common/tuners/tda8290.c b/drivers/media/common/tuners/tda8290.c index c190b0dedee..2833137fa81 100644 --- a/drivers/media/common/tuners/tda8290.c +++ b/drivers/media/common/tuners/tda8290.c | |||
@@ -144,7 +144,8 @@ static void set_audio(struct dvb_frontend *fe, | |||
144 | } | 144 | } |
145 | 145 | ||
146 | if (params->mode == V4L2_TUNER_RADIO) { | 146 | if (params->mode == V4L2_TUNER_RADIO) { |
147 | priv->tda8290_easy_mode = 0x01; /* Start with MN values */ | 147 | /* Set TDA8295 to FM radio; Start TDA8290 with MN values */ |
148 | priv->tda8290_easy_mode = (priv->ver & TDA8295) ? 0x80 : 0x01; | ||
148 | tuner_dbg("setting to radio FM\n"); | 149 | tuner_dbg("setting to radio FM\n"); |
149 | } else { | 150 | } else { |
150 | tuner_dbg("setting tda829x to system %s\n", mode); | 151 | tuner_dbg("setting tda829x to system %s\n", mode); |
@@ -672,16 +673,19 @@ static int tda8290_probe(struct tuner_i2c_props *i2c_props) | |||
672 | static int tda8295_probe(struct tuner_i2c_props *i2c_props) | 673 | static int tda8295_probe(struct tuner_i2c_props *i2c_props) |
673 | { | 674 | { |
674 | #define TDA8295_ID 0x8a | 675 | #define TDA8295_ID 0x8a |
676 | #define TDA8295C2_ID 0x8b | ||
675 | unsigned char tda8295_id[] = { 0x2f, 0x00 }; | 677 | unsigned char tda8295_id[] = { 0x2f, 0x00 }; |
676 | 678 | ||
677 | /* detect tda8295 */ | 679 | /* detect tda8295 */ |
678 | tuner_i2c_xfer_send(i2c_props, &tda8295_id[0], 1); | 680 | tuner_i2c_xfer_send(i2c_props, &tda8295_id[0], 1); |
679 | tuner_i2c_xfer_recv(i2c_props, &tda8295_id[1], 1); | 681 | tuner_i2c_xfer_recv(i2c_props, &tda8295_id[1], 1); |
680 | 682 | ||
681 | if (tda8295_id[1] == TDA8295_ID) { | 683 | if ((tda8295_id[1] & 0xfe) == TDA8295_ID) { |
682 | if (debug) | 684 | if (debug) |
683 | printk(KERN_DEBUG "%s: tda8295 detected @ %d-%04x\n", | 685 | printk(KERN_DEBUG "%s: %s detected @ %d-%04x\n", |
684 | __func__, i2c_adapter_id(i2c_props->adap), | 686 | __func__, (tda8295_id[1] == TDA8295_ID) ? |
687 | "tda8295c1" : "tda8295c2", | ||
688 | i2c_adapter_id(i2c_props->adap), | ||
685 | i2c_props->addr); | 689 | i2c_props->addr); |
686 | return 0; | 690 | return 0; |
687 | } | 691 | } |
diff --git a/drivers/media/dvb/Kconfig b/drivers/media/dvb/Kconfig index 35d0817126e..cf8f65f309d 100644 --- a/drivers/media/dvb/Kconfig +++ b/drivers/media/dvb/Kconfig | |||
@@ -72,6 +72,10 @@ comment "Supported Earthsoft PT1 Adapters" | |||
72 | depends on DVB_CORE && PCI && I2C | 72 | depends on DVB_CORE && PCI && I2C |
73 | source "drivers/media/dvb/pt1/Kconfig" | 73 | source "drivers/media/dvb/pt1/Kconfig" |
74 | 74 | ||
75 | comment "Supported Mantis Adapters" | ||
76 | depends on DVB_CORE && PCI && I2C | ||
77 | source "drivers/media/dvb/mantis/Kconfig" | ||
78 | |||
75 | comment "Supported DVB Frontends" | 79 | comment "Supported DVB Frontends" |
76 | depends on DVB_CORE | 80 | depends on DVB_CORE |
77 | source "drivers/media/dvb/frontends/Kconfig" | 81 | source "drivers/media/dvb/frontends/Kconfig" |
diff --git a/drivers/media/dvb/Makefile b/drivers/media/dvb/Makefile index 16d262ddb45..c12922c3659 100644 --- a/drivers/media/dvb/Makefile +++ b/drivers/media/dvb/Makefile | |||
@@ -2,6 +2,18 @@ | |||
2 | # Makefile for the kernel multimedia device drivers. | 2 | # Makefile for the kernel multimedia device drivers. |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := dvb-core/ frontends/ ttpci/ ttusb-dec/ ttusb-budget/ b2c2/ bt8xx/ dvb-usb/ pluto2/ siano/ dm1105/ pt1/ | 5 | obj-y := dvb-core/ \ |
6 | frontends/ \ | ||
7 | ttpci/ \ | ||
8 | ttusb-dec/ \ | ||
9 | ttusb-budget/ \ | ||
10 | b2c2/ \ | ||
11 | bt8xx/ \ | ||
12 | dvb-usb/ \ | ||
13 | pluto2/ \ | ||
14 | siano/ \ | ||
15 | dm1105/ \ | ||
16 | pt1/ \ | ||
17 | mantis/ | ||
6 | 18 | ||
7 | obj-$(CONFIG_DVB_FIREDTV) += firewire/ | 19 | obj-$(CONFIG_DVB_FIREDTV) += firewire/ |
diff --git a/drivers/media/dvb/firewire/firedtv-fw.c b/drivers/media/dvb/firewire/firedtv-fw.c index fe44789ab03..6223bf01efe 100644 --- a/drivers/media/dvb/firewire/firedtv-fw.c +++ b/drivers/media/dvb/firewire/firedtv-fw.c | |||
@@ -202,14 +202,8 @@ static void handle_fcp(struct fw_card *card, struct fw_request *request, | |||
202 | unsigned long flags; | 202 | unsigned long flags; |
203 | int su; | 203 | int su; |
204 | 204 | ||
205 | if ((tcode != TCODE_WRITE_QUADLET_REQUEST && | 205 | if (length < 2 || (((u8 *)payload)[0] & 0xf0) != 0) |
206 | tcode != TCODE_WRITE_BLOCK_REQUEST) || | ||
207 | offset != CSR_REGISTER_BASE + CSR_FCP_RESPONSE || | ||
208 | length == 0 || | ||
209 | (((u8 *)payload)[0] & 0xf0) != 0) { | ||
210 | fw_send_response(card, request, RCODE_TYPE_ERROR); | ||
211 | return; | 206 | return; |
212 | } | ||
213 | 207 | ||
214 | su = ((u8 *)payload)[1] & 0x7; | 208 | su = ((u8 *)payload)[1] & 0x7; |
215 | 209 | ||
@@ -230,10 +224,8 @@ static void handle_fcp(struct fw_card *card, struct fw_request *request, | |||
230 | } | 224 | } |
231 | spin_unlock_irqrestore(&node_list_lock, flags); | 225 | spin_unlock_irqrestore(&node_list_lock, flags); |
232 | 226 | ||
233 | if (fdtv) { | 227 | if (fdtv) |
234 | avc_recv(fdtv, payload, length); | 228 | avc_recv(fdtv, payload, length); |
235 | fw_send_response(card, request, RCODE_COMPLETE); | ||
236 | } | ||
237 | } | 229 | } |
238 | 230 | ||
239 | static struct fw_address_handler fcp_handler = { | 231 | static struct fw_address_handler fcp_handler = { |
diff --git a/drivers/media/dvb/frontends/Kconfig b/drivers/media/dvb/frontends/Kconfig index a3b8b697349..cd7f9b7cbff 100644 --- a/drivers/media/dvb/frontends/Kconfig +++ b/drivers/media/dvb/frontends/Kconfig | |||
@@ -208,6 +208,14 @@ config DVB_DS3000 | |||
208 | help | 208 | help |
209 | A DVB-S/S2 tuner module. Say Y when you want to support this frontend. | 209 | A DVB-S/S2 tuner module. Say Y when you want to support this frontend. |
210 | 210 | ||
211 | config DVB_MB86A16 | ||
212 | tristate "Fujitsu MB86A16 based" | ||
213 | depends on DVB_CORE && I2C | ||
214 | default m if DVB_FE_CUSTOMISE | ||
215 | help | ||
216 | A DVB-S/DSS Direct Conversion reveiver. | ||
217 | Say Y when you want to support this frontend. | ||
218 | |||
211 | comment "DVB-T (terrestrial) frontends" | 219 | comment "DVB-T (terrestrial) frontends" |
212 | depends on DVB_CORE | 220 | depends on DVB_CORE |
213 | 221 | ||
@@ -587,6 +595,17 @@ config DVB_ATBM8830 | |||
587 | help | 595 | help |
588 | A DMB-TH tuner module. Say Y when you want to support this frontend. | 596 | A DMB-TH tuner module. Say Y when you want to support this frontend. |
589 | 597 | ||
598 | config DVB_TDA665x | ||
599 | tristate "TDA665x tuner" | ||
600 | depends on DVB_CORE && I2C | ||
601 | default m if DVB_FE_CUSTOMISE | ||
602 | help | ||
603 | Support for tuner modules based on Philips TDA6650/TDA6651 chips. | ||
604 | Say Y when you want to support this chip. | ||
605 | |||
606 | Currently supported tuners: | ||
607 | * Panasonic ENV57H12D5 (ET-50DT) | ||
608 | |||
590 | comment "Tools to develop new frontends" | 609 | comment "Tools to develop new frontends" |
591 | 610 | ||
592 | config DVB_DUMMY_FE | 611 | config DVB_DUMMY_FE |
diff --git a/drivers/media/dvb/frontends/Makefile b/drivers/media/dvb/frontends/Makefile index 47575cc7b69..874e8ada4d1 100644 --- a/drivers/media/dvb/frontends/Makefile +++ b/drivers/media/dvb/frontends/Makefile | |||
@@ -64,6 +64,7 @@ obj-$(CONFIG_DVB_TDA10048) += tda10048.o | |||
64 | obj-$(CONFIG_DVB_TUNER_CX24113) += cx24113.o | 64 | obj-$(CONFIG_DVB_TUNER_CX24113) += cx24113.o |
65 | obj-$(CONFIG_DVB_S5H1411) += s5h1411.o | 65 | obj-$(CONFIG_DVB_S5H1411) += s5h1411.o |
66 | obj-$(CONFIG_DVB_LGS8GL5) += lgs8gl5.o | 66 | obj-$(CONFIG_DVB_LGS8GL5) += lgs8gl5.o |
67 | obj-$(CONFIG_DVB_TDA665x) += tda665x.o | ||
67 | obj-$(CONFIG_DVB_LGS8GXX) += lgs8gxx.o | 68 | obj-$(CONFIG_DVB_LGS8GXX) += lgs8gxx.o |
68 | obj-$(CONFIG_DVB_ATBM8830) += atbm8830.o | 69 | obj-$(CONFIG_DVB_ATBM8830) += atbm8830.o |
69 | obj-$(CONFIG_DVB_DUMMY_FE) += dvb_dummy_fe.o | 70 | obj-$(CONFIG_DVB_DUMMY_FE) += dvb_dummy_fe.o |
@@ -80,3 +81,4 @@ obj-$(CONFIG_DVB_STV6110x) += stv6110x.o | |||
80 | obj-$(CONFIG_DVB_ISL6423) += isl6423.o | 81 | obj-$(CONFIG_DVB_ISL6423) += isl6423.o |
81 | obj-$(CONFIG_DVB_EC100) += ec100.o | 82 | obj-$(CONFIG_DVB_EC100) += ec100.o |
82 | obj-$(CONFIG_DVB_DS3000) += ds3000.o | 83 | obj-$(CONFIG_DVB_DS3000) += ds3000.o |
84 | obj-$(CONFIG_DVB_MB86A16) += mb86a16.o | ||
diff --git a/drivers/media/dvb/frontends/dib8000.h b/drivers/media/dvb/frontends/dib8000.h index d99619ae983..b1ee2079963 100644 --- a/drivers/media/dvb/frontends/dib8000.h +++ b/drivers/media/dvb/frontends/dib8000.h | |||
@@ -100,7 +100,7 @@ static inline int dib8000_set_tune_state(struct dvb_frontend *fe, enum frontend_ | |||
100 | static inline enum frontend_tune_state dib8000_get_tune_state(struct dvb_frontend *fe) | 100 | static inline enum frontend_tune_state dib8000_get_tune_state(struct dvb_frontend *fe) |
101 | { | 101 | { |
102 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); | 102 | printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); |
103 | return CT_SHUTDOWN, | 103 | return CT_SHUTDOWN; |
104 | } | 104 | } |
105 | static inline void dib8000_pwm_agc_reset(struct dvb_frontend *fe) | 105 | static inline void dib8000_pwm_agc_reset(struct dvb_frontend *fe) |
106 | { | 106 | { |
diff --git a/drivers/media/dvb/frontends/lgdt3305.h b/drivers/media/dvb/frontends/lgdt3305.h index 4fa6e52d1fe..9cb11c9cae5 100644 --- a/drivers/media/dvb/frontends/lgdt3305.h +++ b/drivers/media/dvb/frontends/lgdt3305.h | |||
@@ -54,13 +54,13 @@ struct lgdt3305_config { | |||
54 | u16 usref_qam256; /* default: 0x2a80 */ | 54 | u16 usref_qam256; /* default: 0x2a80 */ |
55 | 55 | ||
56 | /* disable i2c repeater - 0:repeater enabled 1:repeater disabled */ | 56 | /* disable i2c repeater - 0:repeater enabled 1:repeater disabled */ |
57 | int deny_i2c_rptr:1; | 57 | unsigned int deny_i2c_rptr:1; |
58 | 58 | ||
59 | /* spectral inversion - 0:disabled 1:enabled */ | 59 | /* spectral inversion - 0:disabled 1:enabled */ |
60 | int spectral_inversion:1; | 60 | unsigned int spectral_inversion:1; |
61 | 61 | ||
62 | /* use RF AGC loop - 0:disabled 1:enabled */ | 62 | /* use RF AGC loop - 0:disabled 1:enabled */ |
63 | int rf_agc_loop:1; | 63 | unsigned int rf_agc_loop:1; |
64 | 64 | ||
65 | enum lgdt3305_mpeg_mode mpeg_mode; | 65 | enum lgdt3305_mpeg_mode mpeg_mode; |
66 | enum lgdt3305_tp_clock_edge tpclk_edge; | 66 | enum lgdt3305_tp_clock_edge tpclk_edge; |
diff --git a/drivers/media/dvb/frontends/mb86a16.c b/drivers/media/dvb/frontends/mb86a16.c new file mode 100644 index 00000000000..d05f7500e0c --- /dev/null +++ b/drivers/media/dvb/frontends/mb86a16.c | |||
@@ -0,0 +1,1878 @@ | |||
1 | /* | ||
2 | Fujitsu MB86A16 DVB-S/DSS DC Receiver driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/init.h> | ||
22 | #include <linux/kernel.h> | ||
23 | #include <linux/module.h> | ||
24 | #include <linux/moduleparam.h> | ||
25 | |||
26 | #include "dvb_frontend.h" | ||
27 | #include "mb86a16.h" | ||
28 | #include "mb86a16_priv.h" | ||
29 | |||
30 | unsigned int verbose = 5; | ||
31 | module_param(verbose, int, 0644); | ||
32 | |||
33 | #define ABS(x) ((x) < 0 ? (-x) : (x)) | ||
34 | |||
35 | struct mb86a16_state { | ||
36 | struct i2c_adapter *i2c_adap; | ||
37 | const struct mb86a16_config *config; | ||
38 | struct dvb_frontend frontend; | ||
39 | |||
40 | /* tuning parameters */ | ||
41 | int frequency; | ||
42 | int srate; | ||
43 | |||
44 | /* Internal stuff */ | ||
45 | int master_clk; | ||
46 | int deci; | ||
47 | int csel; | ||
48 | int rsel; | ||
49 | }; | ||
50 | |||
51 | #define MB86A16_ERROR 0 | ||
52 | #define MB86A16_NOTICE 1 | ||
53 | #define MB86A16_INFO 2 | ||
54 | #define MB86A16_DEBUG 3 | ||
55 | |||
56 | #define dprintk(x, y, z, format, arg...) do { \ | ||
57 | if (z) { \ | ||
58 | if ((x > MB86A16_ERROR) && (x > y)) \ | ||
59 | printk(KERN_ERR "%s: " format "\n", __func__, ##arg); \ | ||
60 | else if ((x > MB86A16_NOTICE) && (x > y)) \ | ||
61 | printk(KERN_NOTICE "%s: " format "\n", __func__, ##arg); \ | ||
62 | else if ((x > MB86A16_INFO) && (x > y)) \ | ||
63 | printk(KERN_INFO "%s: " format "\n", __func__, ##arg); \ | ||
64 | else if ((x > MB86A16_DEBUG) && (x > y)) \ | ||
65 | printk(KERN_DEBUG "%s: " format "\n", __func__, ##arg); \ | ||
66 | } else { \ | ||
67 | if (x > y) \ | ||
68 | printk(format, ##arg); \ | ||
69 | } \ | ||
70 | } while (0) | ||
71 | |||
72 | #define TRACE_IN dprintk(verbose, MB86A16_DEBUG, 1, "-->()") | ||
73 | #define TRACE_OUT dprintk(verbose, MB86A16_DEBUG, 1, "()-->") | ||
74 | |||
75 | static int mb86a16_write(struct mb86a16_state *state, u8 reg, u8 val) | ||
76 | { | ||
77 | int ret; | ||
78 | u8 buf[] = { reg, val }; | ||
79 | |||
80 | struct i2c_msg msg = { | ||
81 | .addr = state->config->demod_address, | ||
82 | .flags = 0, | ||
83 | .buf = buf, | ||
84 | .len = 2 | ||
85 | }; | ||
86 | |||
87 | dprintk(verbose, MB86A16_DEBUG, 1, | ||
88 | "writing to [0x%02x],Reg[0x%02x],Data[0x%02x]", | ||
89 | state->config->demod_address, buf[0], buf[1]); | ||
90 | |||
91 | ret = i2c_transfer(state->i2c_adap, &msg, 1); | ||
92 | |||
93 | return (ret != 1) ? -EREMOTEIO : 0; | ||
94 | } | ||
95 | |||
96 | static int mb86a16_read(struct mb86a16_state *state, u8 reg, u8 *val) | ||
97 | { | ||
98 | int ret; | ||
99 | u8 b0[] = { reg }; | ||
100 | u8 b1[] = { 0 }; | ||
101 | |||
102 | struct i2c_msg msg[] = { | ||
103 | { | ||
104 | .addr = state->config->demod_address, | ||
105 | .flags = 0, | ||
106 | .buf = b0, | ||
107 | .len = 1 | ||
108 | }, { | ||
109 | .addr = state->config->demod_address, | ||
110 | .flags = I2C_M_RD, | ||
111 | .buf = b1, | ||
112 | .len = 1 | ||
113 | } | ||
114 | }; | ||
115 | ret = i2c_transfer(state->i2c_adap, msg, 2); | ||
116 | if (ret != 2) { | ||
117 | dprintk(verbose, MB86A16_ERROR, 1, "read error(reg=0x%02x, ret=0x%i)", | ||
118 | reg, ret); | ||
119 | |||
120 | return -EREMOTEIO; | ||
121 | } | ||
122 | *val = b1[0]; | ||
123 | |||
124 | return ret; | ||
125 | } | ||
126 | |||
127 | static int CNTM_set(struct mb86a16_state *state, | ||
128 | unsigned char timint1, | ||
129 | unsigned char timint2, | ||
130 | unsigned char cnext) | ||
131 | { | ||
132 | unsigned char val; | ||
133 | |||
134 | val = (timint1 << 4) | (timint2 << 2) | cnext; | ||
135 | if (mb86a16_write(state, MB86A16_CNTMR, val) < 0) | ||
136 | goto err; | ||
137 | |||
138 | return 0; | ||
139 | |||
140 | err: | ||
141 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
142 | return -EREMOTEIO; | ||
143 | } | ||
144 | |||
145 | static int smrt_set(struct mb86a16_state *state, int rate) | ||
146 | { | ||
147 | int tmp ; | ||
148 | int m ; | ||
149 | unsigned char STOFS0, STOFS1; | ||
150 | |||
151 | m = 1 << state->deci; | ||
152 | tmp = (8192 * state->master_clk - 2 * m * rate * 8192 + state->master_clk / 2) / state->master_clk; | ||
153 | |||
154 | STOFS0 = tmp & 0x0ff; | ||
155 | STOFS1 = (tmp & 0xf00) >> 8; | ||
156 | |||
157 | if (mb86a16_write(state, MB86A16_SRATE1, (state->deci << 2) | | ||
158 | (state->csel << 1) | | ||
159 | state->rsel) < 0) | ||
160 | goto err; | ||
161 | if (mb86a16_write(state, MB86A16_SRATE2, STOFS0) < 0) | ||
162 | goto err; | ||
163 | if (mb86a16_write(state, MB86A16_SRATE3, STOFS1) < 0) | ||
164 | goto err; | ||
165 | |||
166 | return 0; | ||
167 | err: | ||
168 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
169 | return -1; | ||
170 | } | ||
171 | |||
172 | static int srst(struct mb86a16_state *state) | ||
173 | { | ||
174 | if (mb86a16_write(state, MB86A16_RESET, 0x04) < 0) | ||
175 | goto err; | ||
176 | |||
177 | return 0; | ||
178 | err: | ||
179 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
180 | return -EREMOTEIO; | ||
181 | |||
182 | } | ||
183 | |||
184 | static int afcex_data_set(struct mb86a16_state *state, | ||
185 | unsigned char AFCEX_L, | ||
186 | unsigned char AFCEX_H) | ||
187 | { | ||
188 | if (mb86a16_write(state, MB86A16_AFCEXL, AFCEX_L) < 0) | ||
189 | goto err; | ||
190 | if (mb86a16_write(state, MB86A16_AFCEXH, AFCEX_H) < 0) | ||
191 | goto err; | ||
192 | |||
193 | return 0; | ||
194 | err: | ||
195 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
196 | |||
197 | return -1; | ||
198 | } | ||
199 | |||
200 | static int afcofs_data_set(struct mb86a16_state *state, | ||
201 | unsigned char AFCEX_L, | ||
202 | unsigned char AFCEX_H) | ||
203 | { | ||
204 | if (mb86a16_write(state, 0x58, AFCEX_L) < 0) | ||
205 | goto err; | ||
206 | if (mb86a16_write(state, 0x59, AFCEX_H) < 0) | ||
207 | goto err; | ||
208 | |||
209 | return 0; | ||
210 | err: | ||
211 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
212 | return -EREMOTEIO; | ||
213 | } | ||
214 | |||
215 | static int stlp_set(struct mb86a16_state *state, | ||
216 | unsigned char STRAS, | ||
217 | unsigned char STRBS) | ||
218 | { | ||
219 | if (mb86a16_write(state, MB86A16_STRFILTCOEF1, (STRBS << 3) | (STRAS)) < 0) | ||
220 | goto err; | ||
221 | |||
222 | return 0; | ||
223 | err: | ||
224 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
225 | return -EREMOTEIO; | ||
226 | } | ||
227 | |||
228 | static int Vi_set(struct mb86a16_state *state, unsigned char ETH, unsigned char VIA) | ||
229 | { | ||
230 | if (mb86a16_write(state, MB86A16_VISET2, 0x04) < 0) | ||
231 | goto err; | ||
232 | if (mb86a16_write(state, MB86A16_VISET3, 0xf5) < 0) | ||
233 | goto err; | ||
234 | |||
235 | return 0; | ||
236 | err: | ||
237 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
238 | return -EREMOTEIO; | ||
239 | } | ||
240 | |||
241 | static int initial_set(struct mb86a16_state *state) | ||
242 | { | ||
243 | if (stlp_set(state, 5, 7)) | ||
244 | goto err; | ||
245 | |||
246 | udelay(100); | ||
247 | if (afcex_data_set(state, 0, 0)) | ||
248 | goto err; | ||
249 | |||
250 | udelay(100); | ||
251 | if (afcofs_data_set(state, 0, 0)) | ||
252 | goto err; | ||
253 | |||
254 | udelay(100); | ||
255 | if (mb86a16_write(state, MB86A16_CRLFILTCOEF1, 0x16) < 0) | ||
256 | goto err; | ||
257 | if (mb86a16_write(state, 0x2f, 0x21) < 0) | ||
258 | goto err; | ||
259 | if (mb86a16_write(state, MB86A16_VIMAG, 0x38) < 0) | ||
260 | goto err; | ||
261 | if (mb86a16_write(state, MB86A16_FAGCS1, 0x00) < 0) | ||
262 | goto err; | ||
263 | if (mb86a16_write(state, MB86A16_FAGCS2, 0x1c) < 0) | ||
264 | goto err; | ||
265 | if (mb86a16_write(state, MB86A16_FAGCS3, 0x20) < 0) | ||
266 | goto err; | ||
267 | if (mb86a16_write(state, MB86A16_FAGCS4, 0x1e) < 0) | ||
268 | goto err; | ||
269 | if (mb86a16_write(state, MB86A16_FAGCS5, 0x23) < 0) | ||
270 | goto err; | ||
271 | if (mb86a16_write(state, 0x54, 0xff) < 0) | ||
272 | goto err; | ||
273 | if (mb86a16_write(state, MB86A16_TSOUT, 0x00) < 0) | ||
274 | goto err; | ||
275 | |||
276 | return 0; | ||
277 | |||
278 | err: | ||
279 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
280 | return -EREMOTEIO; | ||
281 | } | ||
282 | |||
283 | static int S01T_set(struct mb86a16_state *state, | ||
284 | unsigned char s1t, | ||
285 | unsigned s0t) | ||
286 | { | ||
287 | if (mb86a16_write(state, 0x33, (s1t << 3) | s0t) < 0) | ||
288 | goto err; | ||
289 | |||
290 | return 0; | ||
291 | err: | ||
292 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
293 | return -EREMOTEIO; | ||
294 | } | ||
295 | |||
296 | |||
297 | static int EN_set(struct mb86a16_state *state, | ||
298 | int cren, | ||
299 | int afcen) | ||
300 | { | ||
301 | unsigned char val; | ||
302 | |||
303 | val = 0x7a | (cren << 7) | (afcen << 2); | ||
304 | if (mb86a16_write(state, 0x49, val) < 0) | ||
305 | goto err; | ||
306 | |||
307 | return 0; | ||
308 | err: | ||
309 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
310 | return -EREMOTEIO; | ||
311 | } | ||
312 | |||
313 | static int AFCEXEN_set(struct mb86a16_state *state, | ||
314 | int afcexen, | ||
315 | int smrt) | ||
316 | { | ||
317 | unsigned char AFCA ; | ||
318 | |||
319 | if (smrt > 18875) | ||
320 | AFCA = 4; | ||
321 | else if (smrt > 9375) | ||
322 | AFCA = 3; | ||
323 | else if (smrt > 2250) | ||
324 | AFCA = 2; | ||
325 | else | ||
326 | AFCA = 1; | ||
327 | |||
328 | if (mb86a16_write(state, 0x2a, 0x02 | (afcexen << 5) | (AFCA << 2)) < 0) | ||
329 | goto err; | ||
330 | |||
331 | return 0; | ||
332 | |||
333 | err: | ||
334 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
335 | return -EREMOTEIO; | ||
336 | } | ||
337 | |||
338 | static int DAGC_data_set(struct mb86a16_state *state, | ||
339 | unsigned char DAGCA, | ||
340 | unsigned char DAGCW) | ||
341 | { | ||
342 | if (mb86a16_write(state, 0x2d, (DAGCA << 3) | DAGCW) < 0) | ||
343 | goto err; | ||
344 | |||
345 | return 0; | ||
346 | |||
347 | err: | ||
348 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
349 | return -EREMOTEIO; | ||
350 | } | ||
351 | |||
352 | static void smrt_info_get(struct mb86a16_state *state, int rate) | ||
353 | { | ||
354 | if (rate >= 37501) { | ||
355 | state->deci = 0; state->csel = 0; state->rsel = 0; | ||
356 | } else if (rate >= 30001) { | ||
357 | state->deci = 0; state->csel = 0; state->rsel = 1; | ||
358 | } else if (rate >= 26251) { | ||
359 | state->deci = 0; state->csel = 1; state->rsel = 0; | ||
360 | } else if (rate >= 22501) { | ||
361 | state->deci = 0; state->csel = 1; state->rsel = 1; | ||
362 | } else if (rate >= 18751) { | ||
363 | state->deci = 1; state->csel = 0; state->rsel = 0; | ||
364 | } else if (rate >= 15001) { | ||
365 | state->deci = 1; state->csel = 0; state->rsel = 1; | ||
366 | } else if (rate >= 13126) { | ||
367 | state->deci = 1; state->csel = 1; state->rsel = 0; | ||
368 | } else if (rate >= 11251) { | ||
369 | state->deci = 1; state->csel = 1; state->rsel = 1; | ||
370 | } else if (rate >= 9376) { | ||
371 | state->deci = 2; state->csel = 0; state->rsel = 0; | ||
372 | } else if (rate >= 7501) { | ||
373 | state->deci = 2; state->csel = 0; state->rsel = 1; | ||
374 | } else if (rate >= 6563) { | ||
375 | state->deci = 2; state->csel = 1; state->rsel = 0; | ||
376 | } else if (rate >= 5626) { | ||
377 | state->deci = 2; state->csel = 1; state->rsel = 1; | ||
378 | } else if (rate >= 4688) { | ||
379 | state->deci = 3; state->csel = 0; state->rsel = 0; | ||
380 | } else if (rate >= 3751) { | ||
381 | state->deci = 3; state->csel = 0; state->rsel = 1; | ||
382 | } else if (rate >= 3282) { | ||
383 | state->deci = 3; state->csel = 1; state->rsel = 0; | ||
384 | } else if (rate >= 2814) { | ||
385 | state->deci = 3; state->csel = 1; state->rsel = 1; | ||
386 | } else if (rate >= 2344) { | ||
387 | state->deci = 4; state->csel = 0; state->rsel = 0; | ||
388 | } else if (rate >= 1876) { | ||
389 | state->deci = 4; state->csel = 0; state->rsel = 1; | ||
390 | } else if (rate >= 1641) { | ||
391 | state->deci = 4; state->csel = 1; state->rsel = 0; | ||
392 | } else if (rate >= 1407) { | ||
393 | state->deci = 4; state->csel = 1; state->rsel = 1; | ||
394 | } else if (rate >= 1172) { | ||
395 | state->deci = 5; state->csel = 0; state->rsel = 0; | ||
396 | } else if (rate >= 939) { | ||
397 | state->deci = 5; state->csel = 0; state->rsel = 1; | ||
398 | } else if (rate >= 821) { | ||
399 | state->deci = 5; state->csel = 1; state->rsel = 0; | ||
400 | } else { | ||
401 | state->deci = 5; state->csel = 1; state->rsel = 1; | ||
402 | } | ||
403 | |||
404 | if (state->csel == 0) | ||
405 | state->master_clk = 92000; | ||
406 | else | ||
407 | state->master_clk = 61333; | ||
408 | |||
409 | } | ||
410 | |||
411 | static int signal_det(struct mb86a16_state *state, | ||
412 | int smrt, | ||
413 | unsigned char *SIG) | ||
414 | { | ||
415 | |||
416 | int ret ; | ||
417 | int smrtd ; | ||
418 | int wait_sym ; | ||
419 | |||
420 | u32 wait_t; | ||
421 | unsigned char S[3] ; | ||
422 | int i ; | ||
423 | |||
424 | if (*SIG > 45) { | ||
425 | if (CNTM_set(state, 2, 1, 2) < 0) { | ||
426 | dprintk(verbose, MB86A16_ERROR, 1, "CNTM set Error"); | ||
427 | return -1; | ||
428 | } | ||
429 | wait_sym = 40000; | ||
430 | } else { | ||
431 | if (CNTM_set(state, 3, 1, 2) < 0) { | ||
432 | dprintk(verbose, MB86A16_ERROR, 1, "CNTM set Error"); | ||
433 | return -1; | ||
434 | } | ||
435 | wait_sym = 80000; | ||
436 | } | ||
437 | for (i = 0; i < 3; i++) { | ||
438 | if (i == 0) | ||
439 | smrtd = smrt * 98 / 100; | ||
440 | else if (i == 1) | ||
441 | smrtd = smrt; | ||
442 | else | ||
443 | smrtd = smrt * 102 / 100; | ||
444 | smrt_info_get(state, smrtd); | ||
445 | smrt_set(state, smrtd); | ||
446 | srst(state); | ||
447 | wait_t = (wait_sym + 99 * smrtd / 100) / smrtd; | ||
448 | if (wait_t == 0) | ||
449 | wait_t = 1; | ||
450 | msleep_interruptible(10); | ||
451 | if (mb86a16_read(state, 0x37, &(S[i])) != 2) { | ||
452 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
453 | return -EREMOTEIO; | ||
454 | } | ||
455 | } | ||
456 | if ((S[1] > S[0] * 112 / 100) && | ||
457 | (S[1] > S[2] * 112 / 100)) { | ||
458 | |||
459 | ret = 1; | ||
460 | } else { | ||
461 | ret = 0; | ||
462 | } | ||
463 | *SIG = S[1]; | ||
464 | |||
465 | if (CNTM_set(state, 0, 1, 2) < 0) { | ||
466 | dprintk(verbose, MB86A16_ERROR, 1, "CNTM set Error"); | ||
467 | return -1; | ||
468 | } | ||
469 | |||
470 | return ret; | ||
471 | } | ||
472 | |||
473 | static int rf_val_set(struct mb86a16_state *state, | ||
474 | int f, | ||
475 | int smrt, | ||
476 | unsigned char R) | ||
477 | { | ||
478 | unsigned char C, F, B; | ||
479 | int M; | ||
480 | unsigned char rf_val[5]; | ||
481 | int ack = -1; | ||
482 | |||
483 | if (smrt > 37750) | ||
484 | C = 1; | ||
485 | else if (smrt > 18875) | ||
486 | C = 2; | ||
487 | else if (smrt > 5500) | ||
488 | C = 3; | ||
489 | else | ||
490 | C = 4; | ||
491 | |||
492 | if (smrt > 30500) | ||
493 | F = 3; | ||
494 | else if (smrt > 9375) | ||
495 | F = 1; | ||
496 | else if (smrt > 4625) | ||
497 | F = 0; | ||
498 | else | ||
499 | F = 2; | ||
500 | |||
501 | if (f < 1060) | ||
502 | B = 0; | ||
503 | else if (f < 1175) | ||
504 | B = 1; | ||
505 | else if (f < 1305) | ||
506 | B = 2; | ||
507 | else if (f < 1435) | ||
508 | B = 3; | ||
509 | else if (f < 1570) | ||
510 | B = 4; | ||
511 | else if (f < 1715) | ||
512 | B = 5; | ||
513 | else if (f < 1845) | ||
514 | B = 6; | ||
515 | else if (f < 1980) | ||
516 | B = 7; | ||
517 | else if (f < 2080) | ||
518 | B = 8; | ||
519 | else | ||
520 | B = 9; | ||
521 | |||
522 | M = f * (1 << R) / 2; | ||
523 | |||
524 | rf_val[0] = 0x01 | (C << 3) | (F << 1); | ||
525 | rf_val[1] = (R << 5) | ((M & 0x1f000) >> 12); | ||
526 | rf_val[2] = (M & 0x00ff0) >> 4; | ||
527 | rf_val[3] = ((M & 0x0000f) << 4) | B; | ||
528 | |||
529 | /* Frequency Set */ | ||
530 | if (mb86a16_write(state, 0x21, rf_val[0]) < 0) | ||
531 | ack = 0; | ||
532 | if (mb86a16_write(state, 0x22, rf_val[1]) < 0) | ||
533 | ack = 0; | ||
534 | if (mb86a16_write(state, 0x23, rf_val[2]) < 0) | ||
535 | ack = 0; | ||
536 | if (mb86a16_write(state, 0x24, rf_val[3]) < 0) | ||
537 | ack = 0; | ||
538 | if (mb86a16_write(state, 0x25, 0x01) < 0) | ||
539 | ack = 0; | ||
540 | if (ack == 0) { | ||
541 | dprintk(verbose, MB86A16_ERROR, 1, "RF Setup - I2C transfer error"); | ||
542 | return -EREMOTEIO; | ||
543 | } | ||
544 | |||
545 | return 0; | ||
546 | } | ||
547 | |||
548 | static int afcerr_chk(struct mb86a16_state *state) | ||
549 | { | ||
550 | unsigned char AFCM_L, AFCM_H ; | ||
551 | int AFCM ; | ||
552 | int afcm, afcerr ; | ||
553 | |||
554 | if (mb86a16_read(state, 0x0e, &AFCM_L) != 2) | ||
555 | goto err; | ||
556 | if (mb86a16_read(state, 0x0f, &AFCM_H) != 2) | ||
557 | goto err; | ||
558 | |||
559 | AFCM = (AFCM_H << 8) + AFCM_L; | ||
560 | |||
561 | if (AFCM > 2048) | ||
562 | afcm = AFCM - 4096; | ||
563 | else | ||
564 | afcm = AFCM; | ||
565 | afcerr = afcm * state->master_clk / 8192; | ||
566 | |||
567 | return afcerr; | ||
568 | |||
569 | err: | ||
570 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
571 | return -EREMOTEIO; | ||
572 | } | ||
573 | |||
574 | static int dagcm_val_get(struct mb86a16_state *state) | ||
575 | { | ||
576 | int DAGCM; | ||
577 | unsigned char DAGCM_H, DAGCM_L; | ||
578 | |||
579 | if (mb86a16_read(state, 0x45, &DAGCM_L) != 2) | ||
580 | goto err; | ||
581 | if (mb86a16_read(state, 0x46, &DAGCM_H) != 2) | ||
582 | goto err; | ||
583 | |||
584 | DAGCM = (DAGCM_H << 8) + DAGCM_L; | ||
585 | |||
586 | return DAGCM; | ||
587 | |||
588 | err: | ||
589 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
590 | return -EREMOTEIO; | ||
591 | } | ||
592 | |||
593 | static int mb86a16_read_status(struct dvb_frontend *fe, fe_status_t *status) | ||
594 | { | ||
595 | u8 stat, stat2; | ||
596 | struct mb86a16_state *state = fe->demodulator_priv; | ||
597 | |||
598 | *status = 0; | ||
599 | |||
600 | if (mb86a16_read(state, MB86A16_SIG1, &stat) != 2) | ||
601 | goto err; | ||
602 | if (mb86a16_read(state, MB86A16_SIG2, &stat2) != 2) | ||
603 | goto err; | ||
604 | if ((stat > 25) && (stat2 > 25)) | ||
605 | *status |= FE_HAS_SIGNAL; | ||
606 | if ((stat > 45) && (stat2 > 45)) | ||
607 | *status |= FE_HAS_CARRIER; | ||
608 | |||
609 | if (mb86a16_read(state, MB86A16_STATUS, &stat) != 2) | ||
610 | goto err; | ||
611 | |||
612 | if (stat & 0x01) | ||
613 | *status |= FE_HAS_SYNC; | ||
614 | if (stat & 0x01) | ||
615 | *status |= FE_HAS_VITERBI; | ||
616 | |||
617 | if (mb86a16_read(state, MB86A16_FRAMESYNC, &stat) != 2) | ||
618 | goto err; | ||
619 | |||
620 | if ((stat & 0x0f) && (*status & FE_HAS_VITERBI)) | ||
621 | *status |= FE_HAS_LOCK; | ||
622 | |||
623 | return 0; | ||
624 | |||
625 | err: | ||
626 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
627 | return -EREMOTEIO; | ||
628 | } | ||
629 | |||
630 | static int sync_chk(struct mb86a16_state *state, | ||
631 | unsigned char *VIRM) | ||
632 | { | ||
633 | unsigned char val; | ||
634 | int sync; | ||
635 | |||
636 | if (mb86a16_read(state, 0x0d, &val) != 2) | ||
637 | goto err; | ||
638 | |||
639 | dprintk(verbose, MB86A16_INFO, 1, "Status = %02x,", val); | ||
640 | sync = val & 0x01; | ||
641 | *VIRM = (val & 0x1c) >> 2; | ||
642 | |||
643 | return sync; | ||
644 | err: | ||
645 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
646 | return -EREMOTEIO; | ||
647 | |||
648 | } | ||
649 | |||
650 | static int freqerr_chk(struct mb86a16_state *state, | ||
651 | int fTP, | ||
652 | int smrt, | ||
653 | int unit) | ||
654 | { | ||
655 | unsigned char CRM, AFCML, AFCMH; | ||
656 | unsigned char temp1, temp2, temp3; | ||
657 | int crm, afcm, AFCM; | ||
658 | int crrerr, afcerr; /* kHz */ | ||
659 | int frqerr; /* MHz */ | ||
660 | int afcen, afcexen = 0; | ||
661 | int R, M, fOSC, fOSC_OFS; | ||
662 | |||
663 | if (mb86a16_read(state, 0x43, &CRM) != 2) | ||
664 | goto err; | ||
665 | |||
666 | if (CRM > 127) | ||
667 | crm = CRM - 256; | ||
668 | else | ||
669 | crm = CRM; | ||
670 | |||
671 | crrerr = smrt * crm / 256; | ||
672 | if (mb86a16_read(state, 0x49, &temp1) != 2) | ||
673 | goto err; | ||
674 | |||
675 | afcen = (temp1 & 0x04) >> 2; | ||
676 | if (afcen == 0) { | ||
677 | if (mb86a16_read(state, 0x2a, &temp1) != 2) | ||
678 | goto err; | ||
679 | afcexen = (temp1 & 0x20) >> 5; | ||
680 | } | ||
681 | |||
682 | if (afcen == 1) { | ||
683 | if (mb86a16_read(state, 0x0e, &AFCML) != 2) | ||
684 | goto err; | ||
685 | if (mb86a16_read(state, 0x0f, &AFCMH) != 2) | ||
686 | goto err; | ||
687 | } else if (afcexen == 1) { | ||
688 | if (mb86a16_read(state, 0x2b, &AFCML) != 2) | ||
689 | goto err; | ||
690 | if (mb86a16_read(state, 0x2c, &AFCMH) != 2) | ||
691 | goto err; | ||
692 | } | ||
693 | if ((afcen == 1) || (afcexen == 1)) { | ||
694 | smrt_info_get(state, smrt); | ||
695 | AFCM = ((AFCMH & 0x01) << 8) + AFCML; | ||
696 | if (AFCM > 255) | ||
697 | afcm = AFCM - 512; | ||
698 | else | ||
699 | afcm = AFCM; | ||
700 | |||
701 | afcerr = afcm * state->master_clk / 8192; | ||
702 | } else | ||
703 | afcerr = 0; | ||
704 | |||
705 | if (mb86a16_read(state, 0x22, &temp1) != 2) | ||
706 | goto err; | ||
707 | if (mb86a16_read(state, 0x23, &temp2) != 2) | ||
708 | goto err; | ||
709 | if (mb86a16_read(state, 0x24, &temp3) != 2) | ||
710 | goto err; | ||
711 | |||
712 | R = (temp1 & 0xe0) >> 5; | ||
713 | M = ((temp1 & 0x1f) << 12) + (temp2 << 4) + (temp3 >> 4); | ||
714 | if (R == 0) | ||
715 | fOSC = 2 * M; | ||
716 | else | ||
717 | fOSC = M; | ||
718 | |||
719 | fOSC_OFS = fOSC - fTP; | ||
720 | |||
721 | if (unit == 0) { /* MHz */ | ||
722 | if (crrerr + afcerr + fOSC_OFS * 1000 >= 0) | ||
723 | frqerr = (crrerr + afcerr + fOSC_OFS * 1000 + 500) / 1000; | ||
724 | else | ||
725 | frqerr = (crrerr + afcerr + fOSC_OFS * 1000 - 500) / 1000; | ||
726 | } else { /* kHz */ | ||
727 | frqerr = crrerr + afcerr + fOSC_OFS * 1000; | ||
728 | } | ||
729 | |||
730 | return frqerr; | ||
731 | err: | ||
732 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
733 | return -EREMOTEIO; | ||
734 | } | ||
735 | |||
736 | static unsigned char vco_dev_get(struct mb86a16_state *state, int smrt) | ||
737 | { | ||
738 | unsigned char R; | ||
739 | |||
740 | if (smrt > 9375) | ||
741 | R = 0; | ||
742 | else | ||
743 | R = 1; | ||
744 | |||
745 | return R; | ||
746 | } | ||
747 | |||
748 | static void swp_info_get(struct mb86a16_state *state, | ||
749 | int fOSC_start, | ||
750 | int smrt, | ||
751 | int v, int R, | ||
752 | int swp_ofs, | ||
753 | int *fOSC, | ||
754 | int *afcex_freq, | ||
755 | unsigned char *AFCEX_L, | ||
756 | unsigned char *AFCEX_H) | ||
757 | { | ||
758 | int AFCEX ; | ||
759 | int crnt_swp_freq ; | ||
760 | |||
761 | crnt_swp_freq = fOSC_start * 1000 + v * swp_ofs; | ||
762 | |||
763 | if (R == 0) | ||
764 | *fOSC = (crnt_swp_freq + 1000) / 2000 * 2; | ||
765 | else | ||
766 | *fOSC = (crnt_swp_freq + 500) / 1000; | ||
767 | |||
768 | if (*fOSC >= crnt_swp_freq) | ||
769 | *afcex_freq = *fOSC * 1000 - crnt_swp_freq; | ||
770 | else | ||
771 | *afcex_freq = crnt_swp_freq - *fOSC * 1000; | ||
772 | |||
773 | AFCEX = *afcex_freq * 8192 / state->master_clk; | ||
774 | *AFCEX_L = AFCEX & 0x00ff; | ||
775 | *AFCEX_H = (AFCEX & 0x0f00) >> 8; | ||
776 | } | ||
777 | |||
778 | |||
779 | static int swp_freq_calcuation(struct mb86a16_state *state, int i, int v, int *V, int vmax, int vmin, | ||
780 | int SIGMIN, int fOSC, int afcex_freq, int swp_ofs, unsigned char *SIG1) | ||
781 | { | ||
782 | int swp_freq ; | ||
783 | |||
784 | if ((i % 2 == 1) && (v <= vmax)) { | ||
785 | /* positive v (case 1) */ | ||
786 | if ((v - 1 == vmin) && | ||
787 | (*(V + 30 + v) >= 0) && | ||
788 | (*(V + 30 + v - 1) >= 0) && | ||
789 | (*(V + 30 + v - 1) > *(V + 30 + v)) && | ||
790 | (*(V + 30 + v - 1) > SIGMIN)) { | ||
791 | |||
792 | swp_freq = fOSC * 1000 + afcex_freq - swp_ofs; | ||
793 | *SIG1 = *(V + 30 + v - 1); | ||
794 | } else if ((v == vmax) && | ||
795 | (*(V + 30 + v) >= 0) && | ||
796 | (*(V + 30 + v - 1) >= 0) && | ||
797 | (*(V + 30 + v) > *(V + 30 + v - 1)) && | ||
798 | (*(V + 30 + v) > SIGMIN)) { | ||
799 | /* (case 2) */ | ||
800 | swp_freq = fOSC * 1000 + afcex_freq; | ||
801 | *SIG1 = *(V + 30 + v); | ||
802 | } else if ((*(V + 30 + v) > 0) && | ||
803 | (*(V + 30 + v - 1) > 0) && | ||
804 | (*(V + 30 + v - 2) > 0) && | ||
805 | (*(V + 30 + v - 3) > 0) && | ||
806 | (*(V + 30 + v - 1) > *(V + 30 + v)) && | ||
807 | (*(V + 30 + v - 2) > *(V + 30 + v - 3)) && | ||
808 | ((*(V + 30 + v - 1) > SIGMIN) || | ||
809 | (*(V + 30 + v - 2) > SIGMIN))) { | ||
810 | /* (case 3) */ | ||
811 | if (*(V + 30 + v - 1) >= *(V + 30 + v - 2)) { | ||
812 | swp_freq = fOSC * 1000 + afcex_freq - swp_ofs; | ||
813 | *SIG1 = *(V + 30 + v - 1); | ||
814 | } else { | ||
815 | swp_freq = fOSC * 1000 + afcex_freq - swp_ofs * 2; | ||
816 | *SIG1 = *(V + 30 + v - 2); | ||
817 | } | ||
818 | } else if ((v == vmax) && | ||
819 | (*(V + 30 + v) >= 0) && | ||
820 | (*(V + 30 + v - 1) >= 0) && | ||
821 | (*(V + 30 + v - 2) >= 0) && | ||
822 | (*(V + 30 + v) > *(V + 30 + v - 2)) && | ||
823 | (*(V + 30 + v - 1) > *(V + 30 + v - 2)) && | ||
824 | ((*(V + 30 + v) > SIGMIN) || | ||
825 | (*(V + 30 + v - 1) > SIGMIN))) { | ||
826 | /* (case 4) */ | ||
827 | if (*(V + 30 + v) >= *(V + 30 + v - 1)) { | ||
828 | swp_freq = fOSC * 1000 + afcex_freq; | ||
829 | *SIG1 = *(V + 30 + v); | ||
830 | } else { | ||
831 | swp_freq = fOSC * 1000 + afcex_freq - swp_ofs; | ||
832 | *SIG1 = *(V + 30 + v - 1); | ||
833 | } | ||
834 | } else { | ||
835 | swp_freq = -1 ; | ||
836 | } | ||
837 | } else if ((i % 2 == 0) && (v >= vmin)) { | ||
838 | /* Negative v (case 1) */ | ||
839 | if ((*(V + 30 + v) > 0) && | ||
840 | (*(V + 30 + v + 1) > 0) && | ||
841 | (*(V + 30 + v + 2) > 0) && | ||
842 | (*(V + 30 + v + 1) > *(V + 30 + v)) && | ||
843 | (*(V + 30 + v + 1) > *(V + 30 + v + 2)) && | ||
844 | (*(V + 30 + v + 1) > SIGMIN)) { | ||
845 | |||
846 | swp_freq = fOSC * 1000 + afcex_freq + swp_ofs; | ||
847 | *SIG1 = *(V + 30 + v + 1); | ||
848 | } else if ((v + 1 == vmax) && | ||
849 | (*(V + 30 + v) >= 0) && | ||
850 | (*(V + 30 + v + 1) >= 0) && | ||
851 | (*(V + 30 + v + 1) > *(V + 30 + v)) && | ||
852 | (*(V + 30 + v + 1) > SIGMIN)) { | ||
853 | /* (case 2) */ | ||
854 | swp_freq = fOSC * 1000 + afcex_freq + swp_ofs; | ||
855 | *SIG1 = *(V + 30 + v); | ||
856 | } else if ((v == vmin) && | ||
857 | (*(V + 30 + v) > 0) && | ||
858 | (*(V + 30 + v + 1) > 0) && | ||
859 | (*(V + 30 + v + 2) > 0) && | ||
860 | (*(V + 30 + v) > *(V + 30 + v + 1)) && | ||
861 | (*(V + 30 + v) > *(V + 30 + v + 2)) && | ||
862 | (*(V + 30 + v) > SIGMIN)) { | ||
863 | /* (case 3) */ | ||
864 | swp_freq = fOSC * 1000 + afcex_freq; | ||
865 | *SIG1 = *(V + 30 + v); | ||
866 | } else if ((*(V + 30 + v) >= 0) && | ||
867 | (*(V + 30 + v + 1) >= 0) && | ||
868 | (*(V + 30 + v + 2) >= 0) && | ||
869 | (*(V + 30 + v + 3) >= 0) && | ||
870 | (*(V + 30 + v + 1) > *(V + 30 + v)) && | ||
871 | (*(V + 30 + v + 2) > *(V + 30 + v + 3)) && | ||
872 | ((*(V + 30 + v + 1) > SIGMIN) || | ||
873 | (*(V + 30 + v + 2) > SIGMIN))) { | ||
874 | /* (case 4) */ | ||
875 | if (*(V + 30 + v + 1) >= *(V + 30 + v + 2)) { | ||
876 | swp_freq = fOSC * 1000 + afcex_freq + swp_ofs; | ||
877 | *SIG1 = *(V + 30 + v + 1); | ||
878 | } else { | ||
879 | swp_freq = fOSC * 1000 + afcex_freq + swp_ofs * 2; | ||
880 | *SIG1 = *(V + 30 + v + 2); | ||
881 | } | ||
882 | } else if ((*(V + 30 + v) >= 0) && | ||
883 | (*(V + 30 + v + 1) >= 0) && | ||
884 | (*(V + 30 + v + 2) >= 0) && | ||
885 | (*(V + 30 + v + 3) >= 0) && | ||
886 | (*(V + 30 + v) > *(V + 30 + v + 2)) && | ||
887 | (*(V + 30 + v + 1) > *(V + 30 + v + 2)) && | ||
888 | (*(V + 30 + v) > *(V + 30 + v + 3)) && | ||
889 | (*(V + 30 + v + 1) > *(V + 30 + v + 3)) && | ||
890 | ((*(V + 30 + v) > SIGMIN) || | ||
891 | (*(V + 30 + v + 1) > SIGMIN))) { | ||
892 | /* (case 5) */ | ||
893 | if (*(V + 30 + v) >= *(V + 30 + v + 1)) { | ||
894 | swp_freq = fOSC * 1000 + afcex_freq; | ||
895 | *SIG1 = *(V + 30 + v); | ||
896 | } else { | ||
897 | swp_freq = fOSC * 1000 + afcex_freq + swp_ofs; | ||
898 | *SIG1 = *(V + 30 + v + 1); | ||
899 | } | ||
900 | } else if ((v + 2 == vmin) && | ||
901 | (*(V + 30 + v) >= 0) && | ||
902 | (*(V + 30 + v + 1) >= 0) && | ||
903 | (*(V + 30 + v + 2) >= 0) && | ||
904 | (*(V + 30 + v + 1) > *(V + 30 + v)) && | ||
905 | (*(V + 30 + v + 2) > *(V + 30 + v)) && | ||
906 | ((*(V + 30 + v + 1) > SIGMIN) || | ||
907 | (*(V + 30 + v + 2) > SIGMIN))) { | ||
908 | /* (case 6) */ | ||
909 | if (*(V + 30 + v + 1) >= *(V + 30 + v + 2)) { | ||
910 | swp_freq = fOSC * 1000 + afcex_freq + swp_ofs; | ||
911 | *SIG1 = *(V + 30 + v + 1); | ||
912 | } else { | ||
913 | swp_freq = fOSC * 1000 + afcex_freq + swp_ofs * 2; | ||
914 | *SIG1 = *(V + 30 + v + 2); | ||
915 | } | ||
916 | } else if ((vmax == 0) && (vmin == 0) && (*(V + 30 + v) > SIGMIN)) { | ||
917 | swp_freq = fOSC * 1000; | ||
918 | *SIG1 = *(V + 30 + v); | ||
919 | } else | ||
920 | swp_freq = -1; | ||
921 | } else | ||
922 | swp_freq = -1; | ||
923 | |||
924 | return swp_freq; | ||
925 | } | ||
926 | |||
927 | static void swp_info_get2(struct mb86a16_state *state, | ||
928 | int smrt, | ||
929 | int R, | ||
930 | int swp_freq, | ||
931 | int *afcex_freq, | ||
932 | int *fOSC, | ||
933 | unsigned char *AFCEX_L, | ||
934 | unsigned char *AFCEX_H) | ||
935 | { | ||
936 | int AFCEX ; | ||
937 | |||
938 | if (R == 0) | ||
939 | *fOSC = (swp_freq + 1000) / 2000 * 2; | ||
940 | else | ||
941 | *fOSC = (swp_freq + 500) / 1000; | ||
942 | |||
943 | if (*fOSC >= swp_freq) | ||
944 | *afcex_freq = *fOSC * 1000 - swp_freq; | ||
945 | else | ||
946 | *afcex_freq = swp_freq - *fOSC * 1000; | ||
947 | |||
948 | AFCEX = *afcex_freq * 8192 / state->master_clk; | ||
949 | *AFCEX_L = AFCEX & 0x00ff; | ||
950 | *AFCEX_H = (AFCEX & 0x0f00) >> 8; | ||
951 | } | ||
952 | |||
953 | static void afcex_info_get(struct mb86a16_state *state, | ||
954 | int afcex_freq, | ||
955 | unsigned char *AFCEX_L, | ||
956 | unsigned char *AFCEX_H) | ||
957 | { | ||
958 | int AFCEX ; | ||
959 | |||
960 | AFCEX = afcex_freq * 8192 / state->master_clk; | ||
961 | *AFCEX_L = AFCEX & 0x00ff; | ||
962 | *AFCEX_H = (AFCEX & 0x0f00) >> 8; | ||
963 | } | ||
964 | |||
965 | static int SEQ_set(struct mb86a16_state *state, unsigned char loop) | ||
966 | { | ||
967 | /* SLOCK0 = 0 */ | ||
968 | if (mb86a16_write(state, 0x32, 0x02 | (loop << 2)) < 0) { | ||
969 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
970 | return -EREMOTEIO; | ||
971 | } | ||
972 | |||
973 | return 0; | ||
974 | } | ||
975 | |||
976 | static int iq_vt_set(struct mb86a16_state *state, unsigned char IQINV) | ||
977 | { | ||
978 | /* Viterbi Rate, IQ Settings */ | ||
979 | if (mb86a16_write(state, 0x06, 0xdf | (IQINV << 5)) < 0) { | ||
980 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
981 | return -EREMOTEIO; | ||
982 | } | ||
983 | |||
984 | return 0; | ||
985 | } | ||
986 | |||
987 | static int FEC_srst(struct mb86a16_state *state) | ||
988 | { | ||
989 | if (mb86a16_write(state, MB86A16_RESET, 0x02) < 0) { | ||
990 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
991 | return -EREMOTEIO; | ||
992 | } | ||
993 | |||
994 | return 0; | ||
995 | } | ||
996 | |||
997 | static int S2T_set(struct mb86a16_state *state, unsigned char S2T) | ||
998 | { | ||
999 | if (mb86a16_write(state, 0x34, 0x70 | S2T) < 0) { | ||
1000 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
1001 | return -EREMOTEIO; | ||
1002 | } | ||
1003 | |||
1004 | return 0; | ||
1005 | } | ||
1006 | |||
1007 | static int S45T_set(struct mb86a16_state *state, unsigned char S4T, unsigned char S5T) | ||
1008 | { | ||
1009 | if (mb86a16_write(state, 0x35, 0x00 | (S5T << 4) | S4T) < 0) { | ||
1010 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
1011 | return -EREMOTEIO; | ||
1012 | } | ||
1013 | |||
1014 | return 0; | ||
1015 | } | ||
1016 | |||
1017 | |||
1018 | static int mb86a16_set_fe(struct mb86a16_state *state) | ||
1019 | { | ||
1020 | u8 agcval, cnmval; | ||
1021 | |||
1022 | int i, j; | ||
1023 | int fOSC = 0; | ||
1024 | int fOSC_start = 0; | ||
1025 | int wait_t; | ||
1026 | int fcp; | ||
1027 | int swp_ofs; | ||
1028 | int V[60]; | ||
1029 | u8 SIG1MIN; | ||
1030 | |||
1031 | unsigned char CREN, AFCEN, AFCEXEN; | ||
1032 | unsigned char SIG1; | ||
1033 | unsigned char TIMINT1, TIMINT2, TIMEXT; | ||
1034 | unsigned char S0T, S1T; | ||
1035 | unsigned char S2T; | ||
1036 | /* unsigned char S2T, S3T; */ | ||
1037 | unsigned char S4T, S5T; | ||
1038 | unsigned char AFCEX_L, AFCEX_H; | ||
1039 | unsigned char R; | ||
1040 | unsigned char VIRM; | ||
1041 | unsigned char ETH, VIA; | ||
1042 | unsigned char junk; | ||
1043 | |||
1044 | int loop; | ||
1045 | int ftemp; | ||
1046 | int v, vmax, vmin; | ||
1047 | int vmax_his, vmin_his; | ||
1048 | int swp_freq, prev_swp_freq[20]; | ||
1049 | int prev_freq_num; | ||
1050 | int signal_dupl; | ||
1051 | int afcex_freq; | ||
1052 | int signal; | ||
1053 | int afcerr; | ||
1054 | int temp_freq, delta_freq; | ||
1055 | int dagcm[4]; | ||
1056 | int smrt_d; | ||
1057 | /* int freq_err; */ | ||
1058 | int n; | ||
1059 | int ret = -1; | ||
1060 | int sync; | ||
1061 | |||
1062 | dprintk(verbose, MB86A16_INFO, 1, "freq=%d Mhz, symbrt=%d Ksps", state->frequency, state->srate); | ||
1063 | |||
1064 | fcp = 3000; | ||
1065 | swp_ofs = state->srate / 4; | ||
1066 | |||
1067 | for (i = 0; i < 60; i++) | ||
1068 | V[i] = -1; | ||
1069 | |||
1070 | for (i = 0; i < 20; i++) | ||
1071 | prev_swp_freq[i] = 0; | ||
1072 | |||
1073 | SIG1MIN = 25; | ||
1074 | |||
1075 | for (n = 0; ((n < 3) && (ret == -1)); n++) { | ||
1076 | SEQ_set(state, 0); | ||
1077 | iq_vt_set(state, 0); | ||
1078 | |||
1079 | CREN = 0; | ||
1080 | AFCEN = 0; | ||
1081 | AFCEXEN = 1; | ||
1082 | TIMINT1 = 0; | ||
1083 | TIMINT2 = 1; | ||
1084 | TIMEXT = 2; | ||
1085 | S1T = 0; | ||
1086 | S0T = 0; | ||
1087 | |||
1088 | if (initial_set(state) < 0) { | ||
1089 | dprintk(verbose, MB86A16_ERROR, 1, "initial set failed"); | ||
1090 | return -1; | ||
1091 | } | ||
1092 | if (DAGC_data_set(state, 3, 2) < 0) { | ||
1093 | dprintk(verbose, MB86A16_ERROR, 1, "DAGC data set error"); | ||
1094 | return -1; | ||
1095 | } | ||
1096 | if (EN_set(state, CREN, AFCEN) < 0) { | ||
1097 | dprintk(verbose, MB86A16_ERROR, 1, "EN set error"); | ||
1098 | return -1; /* (0, 0) */ | ||
1099 | } | ||
1100 | if (AFCEXEN_set(state, AFCEXEN, state->srate) < 0) { | ||
1101 | dprintk(verbose, MB86A16_ERROR, 1, "AFCEXEN set error"); | ||
1102 | return -1; /* (1, smrt) = (1, symbolrate) */ | ||
1103 | } | ||
1104 | if (CNTM_set(state, TIMINT1, TIMINT2, TIMEXT) < 0) { | ||
1105 | dprintk(verbose, MB86A16_ERROR, 1, "CNTM set error"); | ||
1106 | return -1; /* (0, 1, 2) */ | ||
1107 | } | ||
1108 | if (S01T_set(state, S1T, S0T) < 0) { | ||
1109 | dprintk(verbose, MB86A16_ERROR, 1, "S01T set error"); | ||
1110 | return -1; /* (0, 0) */ | ||
1111 | } | ||
1112 | smrt_info_get(state, state->srate); | ||
1113 | if (smrt_set(state, state->srate) < 0) { | ||
1114 | dprintk(verbose, MB86A16_ERROR, 1, "smrt info get error"); | ||
1115 | return -1; | ||
1116 | } | ||
1117 | |||
1118 | R = vco_dev_get(state, state->srate); | ||
1119 | if (R == 1) | ||
1120 | fOSC_start = state->frequency; | ||
1121 | |||
1122 | else if (R == 0) { | ||
1123 | if (state->frequency % 2 == 0) { | ||
1124 | fOSC_start = state->frequency; | ||
1125 | } else { | ||
1126 | fOSC_start = state->frequency + 1; | ||
1127 | if (fOSC_start > 2150) | ||
1128 | fOSC_start = state->frequency - 1; | ||
1129 | } | ||
1130 | } | ||
1131 | loop = 1; | ||
1132 | ftemp = fOSC_start * 1000; | ||
1133 | vmax = 0 ; | ||
1134 | while (loop == 1) { | ||
1135 | ftemp = ftemp + swp_ofs; | ||
1136 | vmax++; | ||
1137 | |||
1138 | /* Upper bound */ | ||
1139 | if (ftemp > 2150000) { | ||
1140 | loop = 0; | ||
1141 | vmax--; | ||
1142 | } else { | ||
1143 | if ((ftemp == 2150000) || | ||
1144 | (ftemp - state->frequency * 1000 >= fcp + state->srate / 4)) | ||
1145 | loop = 0; | ||
1146 | } | ||
1147 | } | ||
1148 | |||
1149 | loop = 1; | ||
1150 | ftemp = fOSC_start * 1000; | ||
1151 | vmin = 0 ; | ||
1152 | while (loop == 1) { | ||
1153 | ftemp = ftemp - swp_ofs; | ||
1154 | vmin--; | ||
1155 | |||
1156 | /* Lower bound */ | ||
1157 | if (ftemp < 950000) { | ||
1158 | loop = 0; | ||
1159 | vmin++; | ||
1160 | } else { | ||
1161 | if ((ftemp == 950000) || | ||
1162 | (state->frequency * 1000 - ftemp >= fcp + state->srate / 4)) | ||
1163 | loop = 0; | ||
1164 | } | ||
1165 | } | ||
1166 | |||
1167 | wait_t = (8000 + state->srate / 2) / state->srate; | ||
1168 | if (wait_t == 0) | ||
1169 | wait_t = 1; | ||
1170 | |||
1171 | i = 0; | ||
1172 | j = 0; | ||
1173 | prev_freq_num = 0; | ||
1174 | loop = 1; | ||
1175 | signal = 0; | ||
1176 | vmax_his = 0; | ||
1177 | vmin_his = 0; | ||
1178 | v = 0; | ||
1179 | |||
1180 | while (loop == 1) { | ||
1181 | swp_info_get(state, fOSC_start, state->srate, | ||
1182 | v, R, swp_ofs, &fOSC, | ||
1183 | &afcex_freq, &AFCEX_L, &AFCEX_H); | ||
1184 | |||
1185 | udelay(100); | ||
1186 | if (rf_val_set(state, fOSC, state->srate, R) < 0) { | ||
1187 | dprintk(verbose, MB86A16_ERROR, 1, "rf val set error"); | ||
1188 | return -1; | ||
1189 | } | ||
1190 | udelay(100); | ||
1191 | if (afcex_data_set(state, AFCEX_L, AFCEX_H) < 0) { | ||
1192 | dprintk(verbose, MB86A16_ERROR, 1, "afcex data set error"); | ||
1193 | return -1; | ||
1194 | } | ||
1195 | if (srst(state) < 0) { | ||
1196 | dprintk(verbose, MB86A16_ERROR, 1, "srst error"); | ||
1197 | return -1; | ||
1198 | } | ||
1199 | msleep_interruptible(wait_t); | ||
1200 | |||
1201 | if (mb86a16_read(state, 0x37, &SIG1) != 2) { | ||
1202 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
1203 | return -1; | ||
1204 | } | ||
1205 | V[30 + v] = SIG1 ; | ||
1206 | swp_freq = swp_freq_calcuation(state, i, v, V, vmax, vmin, | ||
1207 | SIG1MIN, fOSC, afcex_freq, | ||
1208 | swp_ofs, &SIG1); /* changed */ | ||
1209 | |||
1210 | signal_dupl = 0; | ||
1211 | for (j = 0; j < prev_freq_num; j++) { | ||
1212 | if ((ABS(prev_swp_freq[j] - swp_freq)) < (swp_ofs * 3 / 2)) { | ||
1213 | signal_dupl = 1; | ||
1214 | dprintk(verbose, MB86A16_INFO, 1, "Probably Duplicate Signal, j = %d", j); | ||
1215 | } | ||
1216 | } | ||
1217 | if ((signal_dupl == 0) && (swp_freq > 0) && (ABS(swp_freq - state->frequency * 1000) < fcp + state->srate / 6)) { | ||
1218 | dprintk(verbose, MB86A16_DEBUG, 1, "------ Signal detect ------ [swp_freq=[%07d, srate=%05d]]", swp_freq, state->srate); | ||
1219 | prev_swp_freq[prev_freq_num] = swp_freq; | ||
1220 | prev_freq_num++; | ||
1221 | swp_info_get2(state, state->srate, R, swp_freq, | ||
1222 | &afcex_freq, &fOSC, | ||
1223 | &AFCEX_L, &AFCEX_H); | ||
1224 | |||
1225 | if (rf_val_set(state, fOSC, state->srate, R) < 0) { | ||
1226 | dprintk(verbose, MB86A16_ERROR, 1, "rf val set error"); | ||
1227 | return -1; | ||
1228 | } | ||
1229 | if (afcex_data_set(state, AFCEX_L, AFCEX_H) < 0) { | ||
1230 | dprintk(verbose, MB86A16_ERROR, 1, "afcex data set error"); | ||
1231 | return -1; | ||
1232 | } | ||
1233 | signal = signal_det(state, state->srate, &SIG1); | ||
1234 | if (signal == 1) { | ||
1235 | dprintk(verbose, MB86A16_ERROR, 1, "***** Signal Found *****"); | ||
1236 | loop = 0; | ||
1237 | } else { | ||
1238 | dprintk(verbose, MB86A16_ERROR, 1, "!!!!! No signal !!!!!, try again..."); | ||
1239 | smrt_info_get(state, state->srate); | ||
1240 | if (smrt_set(state, state->srate) < 0) { | ||
1241 | dprintk(verbose, MB86A16_ERROR, 1, "smrt set error"); | ||
1242 | return -1; | ||
1243 | } | ||
1244 | } | ||
1245 | } | ||
1246 | if (v > vmax) | ||
1247 | vmax_his = 1 ; | ||
1248 | if (v < vmin) | ||
1249 | vmin_his = 1 ; | ||
1250 | i++; | ||
1251 | |||
1252 | if ((i % 2 == 1) && (vmax_his == 1)) | ||
1253 | i++; | ||
1254 | if ((i % 2 == 0) && (vmin_his == 1)) | ||
1255 | i++; | ||
1256 | |||
1257 | if (i % 2 == 1) | ||
1258 | v = (i + 1) / 2; | ||
1259 | else | ||
1260 | v = -i / 2; | ||
1261 | |||
1262 | if ((vmax_his == 1) && (vmin_his == 1)) | ||
1263 | loop = 0 ; | ||
1264 | } | ||
1265 | |||
1266 | if (signal == 1) { | ||
1267 | dprintk(verbose, MB86A16_INFO, 1, " Start Freq Error Check"); | ||
1268 | S1T = 7 ; | ||
1269 | S0T = 1 ; | ||
1270 | CREN = 0 ; | ||
1271 | AFCEN = 1 ; | ||
1272 | AFCEXEN = 0 ; | ||
1273 | |||
1274 | if (S01T_set(state, S1T, S0T) < 0) { | ||
1275 | dprintk(verbose, MB86A16_ERROR, 1, "S01T set error"); | ||
1276 | return -1; | ||
1277 | } | ||
1278 | smrt_info_get(state, state->srate); | ||
1279 | if (smrt_set(state, state->srate) < 0) { | ||
1280 | dprintk(verbose, MB86A16_ERROR, 1, "smrt set error"); | ||
1281 | return -1; | ||
1282 | } | ||
1283 | if (EN_set(state, CREN, AFCEN) < 0) { | ||
1284 | dprintk(verbose, MB86A16_ERROR, 1, "EN set error"); | ||
1285 | return -1; | ||
1286 | } | ||
1287 | if (AFCEXEN_set(state, AFCEXEN, state->srate) < 0) { | ||
1288 | dprintk(verbose, MB86A16_ERROR, 1, "AFCEXEN set error"); | ||
1289 | return -1; | ||
1290 | } | ||
1291 | afcex_info_get(state, afcex_freq, &AFCEX_L, &AFCEX_H); | ||
1292 | if (afcofs_data_set(state, AFCEX_L, AFCEX_H) < 0) { | ||
1293 | dprintk(verbose, MB86A16_ERROR, 1, "AFCOFS data set error"); | ||
1294 | return -1; | ||
1295 | } | ||
1296 | if (srst(state) < 0) { | ||
1297 | dprintk(verbose, MB86A16_ERROR, 1, "srst error"); | ||
1298 | return -1; | ||
1299 | } | ||
1300 | /* delay 4~200 */ | ||
1301 | wait_t = 200000 / state->master_clk + 200000 / state->srate; | ||
1302 | msleep(wait_t); | ||
1303 | afcerr = afcerr_chk(state); | ||
1304 | if (afcerr == -1) | ||
1305 | return -1; | ||
1306 | |||
1307 | swp_freq = fOSC * 1000 + afcerr ; | ||
1308 | AFCEXEN = 1 ; | ||
1309 | if (state->srate >= 1500) | ||
1310 | smrt_d = state->srate / 3; | ||
1311 | else | ||
1312 | smrt_d = state->srate / 2; | ||
1313 | smrt_info_get(state, smrt_d); | ||
1314 | if (smrt_set(state, smrt_d) < 0) { | ||
1315 | dprintk(verbose, MB86A16_ERROR, 1, "smrt set error"); | ||
1316 | return -1; | ||
1317 | } | ||
1318 | if (AFCEXEN_set(state, AFCEXEN, smrt_d) < 0) { | ||
1319 | dprintk(verbose, MB86A16_ERROR, 1, "AFCEXEN set error"); | ||
1320 | return -1; | ||
1321 | } | ||
1322 | R = vco_dev_get(state, smrt_d); | ||
1323 | if (DAGC_data_set(state, 2, 0) < 0) { | ||
1324 | dprintk(verbose, MB86A16_ERROR, 1, "DAGC data set error"); | ||
1325 | return -1; | ||
1326 | } | ||
1327 | for (i = 0; i < 3; i++) { | ||
1328 | temp_freq = swp_freq + (i - 1) * state->srate / 8; | ||
1329 | swp_info_get2(state, smrt_d, R, temp_freq, &afcex_freq, &fOSC, &AFCEX_L, &AFCEX_H); | ||
1330 | if (rf_val_set(state, fOSC, smrt_d, R) < 0) { | ||
1331 | dprintk(verbose, MB86A16_ERROR, 1, "rf val set error"); | ||
1332 | return -1; | ||
1333 | } | ||
1334 | if (afcex_data_set(state, AFCEX_L, AFCEX_H) < 0) { | ||
1335 | dprintk(verbose, MB86A16_ERROR, 1, "afcex data set error"); | ||
1336 | return -1; | ||
1337 | } | ||
1338 | wait_t = 200000 / state->master_clk + 40000 / smrt_d; | ||
1339 | msleep(wait_t); | ||
1340 | dagcm[i] = dagcm_val_get(state); | ||
1341 | } | ||
1342 | if ((dagcm[0] > dagcm[1]) && | ||
1343 | (dagcm[0] > dagcm[2]) && | ||
1344 | (dagcm[0] - dagcm[1] > 2 * (dagcm[2] - dagcm[1]))) { | ||
1345 | |||
1346 | temp_freq = swp_freq - 2 * state->srate / 8; | ||
1347 | swp_info_get2(state, smrt_d, R, temp_freq, &afcex_freq, &fOSC, &AFCEX_L, &AFCEX_H); | ||
1348 | if (rf_val_set(state, fOSC, smrt_d, R) < 0) { | ||
1349 | dprintk(verbose, MB86A16_ERROR, 1, "rf val set error"); | ||
1350 | return -1; | ||
1351 | } | ||
1352 | if (afcex_data_set(state, AFCEX_L, AFCEX_H) < 0) { | ||
1353 | dprintk(verbose, MB86A16_ERROR, 1, "afcex data set"); | ||
1354 | return -1; | ||
1355 | } | ||
1356 | wait_t = 200000 / state->master_clk + 40000 / smrt_d; | ||
1357 | msleep(wait_t); | ||
1358 | dagcm[3] = dagcm_val_get(state); | ||
1359 | if (dagcm[3] > dagcm[1]) | ||
1360 | delta_freq = (dagcm[2] - dagcm[0] + dagcm[1] - dagcm[3]) * state->srate / 300; | ||
1361 | else | ||
1362 | delta_freq = 0; | ||
1363 | } else if ((dagcm[2] > dagcm[1]) && | ||
1364 | (dagcm[2] > dagcm[0]) && | ||
1365 | (dagcm[2] - dagcm[1] > 2 * (dagcm[0] - dagcm[1]))) { | ||
1366 | |||
1367 | temp_freq = swp_freq + 2 * state->srate / 8; | ||
1368 | swp_info_get2(state, smrt_d, R, temp_freq, &afcex_freq, &fOSC, &AFCEX_L, &AFCEX_H); | ||
1369 | if (rf_val_set(state, fOSC, smrt_d, R) < 0) { | ||
1370 | dprintk(verbose, MB86A16_ERROR, 1, "rf val set"); | ||
1371 | return -1; | ||
1372 | } | ||
1373 | if (afcex_data_set(state, AFCEX_L, AFCEX_H) < 0) { | ||
1374 | dprintk(verbose, MB86A16_ERROR, 1, "afcex data set"); | ||
1375 | return -1; | ||
1376 | } | ||
1377 | wait_t = 200000 / state->master_clk + 40000 / smrt_d; | ||
1378 | msleep(wait_t); | ||
1379 | dagcm[3] = dagcm_val_get(state); | ||
1380 | if (dagcm[3] > dagcm[1]) | ||
1381 | delta_freq = (dagcm[2] - dagcm[0] + dagcm[3] - dagcm[1]) * state->srate / 300; | ||
1382 | else | ||
1383 | delta_freq = 0 ; | ||
1384 | |||
1385 | } else { | ||
1386 | delta_freq = 0 ; | ||
1387 | } | ||
1388 | dprintk(verbose, MB86A16_INFO, 1, "SWEEP Frequency = %d", swp_freq); | ||
1389 | swp_freq += delta_freq; | ||
1390 | dprintk(verbose, MB86A16_INFO, 1, "Adjusting .., DELTA Freq = %d, SWEEP Freq=%d", delta_freq, swp_freq); | ||
1391 | if (ABS(state->frequency * 1000 - swp_freq) > 3800) { | ||
1392 | dprintk(verbose, MB86A16_INFO, 1, "NO -- SIGNAL !"); | ||
1393 | } else { | ||
1394 | |||
1395 | S1T = 0; | ||
1396 | S0T = 3; | ||
1397 | CREN = 1; | ||
1398 | AFCEN = 0; | ||
1399 | AFCEXEN = 1; | ||
1400 | |||
1401 | if (S01T_set(state, S1T, S0T) < 0) { | ||
1402 | dprintk(verbose, MB86A16_ERROR, 1, "S01T set error"); | ||
1403 | return -1; | ||
1404 | } | ||
1405 | if (DAGC_data_set(state, 0, 0) < 0) { | ||
1406 | dprintk(verbose, MB86A16_ERROR, 1, "DAGC data set error"); | ||
1407 | return -1; | ||
1408 | } | ||
1409 | R = vco_dev_get(state, state->srate); | ||
1410 | smrt_info_get(state, state->srate); | ||
1411 | if (smrt_set(state, state->srate) < 0) { | ||
1412 | dprintk(verbose, MB86A16_ERROR, 1, "smrt set error"); | ||
1413 | return -1; | ||
1414 | } | ||
1415 | if (EN_set(state, CREN, AFCEN) < 0) { | ||
1416 | dprintk(verbose, MB86A16_ERROR, 1, "EN set error"); | ||
1417 | return -1; | ||
1418 | } | ||
1419 | if (AFCEXEN_set(state, AFCEXEN, state->srate) < 0) { | ||
1420 | dprintk(verbose, MB86A16_ERROR, 1, "AFCEXEN set error"); | ||
1421 | return -1; | ||
1422 | } | ||
1423 | swp_info_get2(state, state->srate, R, swp_freq, &afcex_freq, &fOSC, &AFCEX_L, &AFCEX_H); | ||
1424 | if (rf_val_set(state, fOSC, state->srate, R) < 0) { | ||
1425 | dprintk(verbose, MB86A16_ERROR, 1, "rf val set error"); | ||
1426 | return -1; | ||
1427 | } | ||
1428 | if (afcex_data_set(state, AFCEX_L, AFCEX_H) < 0) { | ||
1429 | dprintk(verbose, MB86A16_ERROR, 1, "afcex data set error"); | ||
1430 | return -1; | ||
1431 | } | ||
1432 | if (srst(state) < 0) { | ||
1433 | dprintk(verbose, MB86A16_ERROR, 1, "srst error"); | ||
1434 | return -1; | ||
1435 | } | ||
1436 | wait_t = 7 + (10000 + state->srate / 2) / state->srate; | ||
1437 | if (wait_t == 0) | ||
1438 | wait_t = 1; | ||
1439 | msleep_interruptible(wait_t); | ||
1440 | if (mb86a16_read(state, 0x37, &SIG1) != 2) { | ||
1441 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
1442 | return -EREMOTEIO; | ||
1443 | } | ||
1444 | |||
1445 | if (SIG1 > 110) { | ||
1446 | S2T = 4; S4T = 1; S5T = 6; ETH = 4; VIA = 6; | ||
1447 | wait_t = 7 + (917504 + state->srate / 2) / state->srate; | ||
1448 | } else if (SIG1 > 105) { | ||
1449 | S2T = 4; S4T = 2; S5T = 8; ETH = 7; VIA = 2; | ||
1450 | wait_t = 7 + (1048576 + state->srate / 2) / state->srate; | ||
1451 | } else if (SIG1 > 85) { | ||
1452 | S2T = 5; S4T = 2; S5T = 8; ETH = 7; VIA = 2; | ||
1453 | wait_t = 7 + (1310720 + state->srate / 2) / state->srate; | ||
1454 | } else if (SIG1 > 65) { | ||
1455 | S2T = 6; S4T = 2; S5T = 8; ETH = 7; VIA = 2; | ||
1456 | wait_t = 7 + (1572864 + state->srate / 2) / state->srate; | ||
1457 | } else { | ||
1458 | S2T = 7; S4T = 2; S5T = 8; ETH = 7; VIA = 2; | ||
1459 | wait_t = 7 + (2097152 + state->srate / 2) / state->srate; | ||
1460 | } | ||
1461 | wait_t *= 2; /* FOS */ | ||
1462 | S2T_set(state, S2T); | ||
1463 | S45T_set(state, S4T, S5T); | ||
1464 | Vi_set(state, ETH, VIA); | ||
1465 | srst(state); | ||
1466 | msleep_interruptible(wait_t); | ||
1467 | sync = sync_chk(state, &VIRM); | ||
1468 | dprintk(verbose, MB86A16_INFO, 1, "-------- Viterbi=[%d] SYNC=[%d] ---------", VIRM, sync); | ||
1469 | if (VIRM) { | ||
1470 | if (VIRM == 4) { | ||
1471 | /* 5/6 */ | ||
1472 | if (SIG1 > 110) | ||
1473 | wait_t = (786432 + state->srate / 2) / state->srate; | ||
1474 | else | ||
1475 | wait_t = (1572864 + state->srate / 2) / state->srate; | ||
1476 | if (state->srate < 5000) | ||
1477 | /* FIXME ! , should be a long wait ! */ | ||
1478 | msleep_interruptible(wait_t); | ||
1479 | else | ||
1480 | msleep_interruptible(wait_t); | ||
1481 | |||
1482 | if (sync_chk(state, &junk) == 0) { | ||
1483 | iq_vt_set(state, 1); | ||
1484 | FEC_srst(state); | ||
1485 | } | ||
1486 | } | ||
1487 | /* 1/2, 2/3, 3/4, 7/8 */ | ||
1488 | if (SIG1 > 110) | ||
1489 | wait_t = (786432 + state->srate / 2) / state->srate; | ||
1490 | else | ||
1491 | wait_t = (1572864 + state->srate / 2) / state->srate; | ||
1492 | msleep_interruptible(wait_t); | ||
1493 | SEQ_set(state, 1); | ||
1494 | } else { | ||
1495 | dprintk(verbose, MB86A16_INFO, 1, "NO -- SYNC"); | ||
1496 | SEQ_set(state, 1); | ||
1497 | ret = -1; | ||
1498 | } | ||
1499 | } | ||
1500 | } else { | ||
1501 | dprintk(verbose, MB86A16_INFO, 1, "NO -- SIGNAL"); | ||
1502 | ret = -1; | ||
1503 | } | ||
1504 | |||
1505 | sync = sync_chk(state, &junk); | ||
1506 | if (sync) { | ||
1507 | dprintk(verbose, MB86A16_INFO, 1, "******* SYNC *******"); | ||
1508 | freqerr_chk(state, state->frequency, state->srate, 1); | ||
1509 | ret = 0; | ||
1510 | break; | ||
1511 | } | ||
1512 | } | ||
1513 | |||
1514 | mb86a16_read(state, 0x15, &agcval); | ||
1515 | mb86a16_read(state, 0x26, &cnmval); | ||
1516 | dprintk(verbose, MB86A16_INFO, 1, "AGC = %02x CNM = %02x", agcval, cnmval); | ||
1517 | |||
1518 | return ret; | ||
1519 | } | ||
1520 | |||
1521 | static int mb86a16_send_diseqc_msg(struct dvb_frontend *fe, | ||
1522 | struct dvb_diseqc_master_cmd *cmd) | ||
1523 | { | ||
1524 | struct mb86a16_state *state = fe->demodulator_priv; | ||
1525 | int i; | ||
1526 | u8 regs; | ||
1527 | |||
1528 | if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA) < 0) | ||
1529 | goto err; | ||
1530 | if (mb86a16_write(state, MB86A16_DCCOUT, 0x00) < 0) | ||
1531 | goto err; | ||
1532 | if (mb86a16_write(state, MB86A16_TONEOUT2, 0x04) < 0) | ||
1533 | goto err; | ||
1534 | |||
1535 | regs = 0x18; | ||
1536 | |||
1537 | if (cmd->msg_len > 5 || cmd->msg_len < 4) | ||
1538 | return -EINVAL; | ||
1539 | |||
1540 | for (i = 0; i < cmd->msg_len; i++) { | ||
1541 | if (mb86a16_write(state, regs, cmd->msg[i]) < 0) | ||
1542 | goto err; | ||
1543 | |||
1544 | regs++; | ||
1545 | } | ||
1546 | i += 0x90; | ||
1547 | |||
1548 | msleep_interruptible(10); | ||
1549 | |||
1550 | if (mb86a16_write(state, MB86A16_DCC1, i) < 0) | ||
1551 | goto err; | ||
1552 | if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN) < 0) | ||
1553 | goto err; | ||
1554 | |||
1555 | return 0; | ||
1556 | |||
1557 | err: | ||
1558 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
1559 | return -EREMOTEIO; | ||
1560 | } | ||
1561 | |||
1562 | static int mb86a16_send_diseqc_burst(struct dvb_frontend *fe, fe_sec_mini_cmd_t burst) | ||
1563 | { | ||
1564 | struct mb86a16_state *state = fe->demodulator_priv; | ||
1565 | |||
1566 | switch (burst) { | ||
1567 | case SEC_MINI_A: | ||
1568 | if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA | | ||
1569 | MB86A16_DCC1_TBEN | | ||
1570 | MB86A16_DCC1_TBO) < 0) | ||
1571 | goto err; | ||
1572 | if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN) < 0) | ||
1573 | goto err; | ||
1574 | break; | ||
1575 | case SEC_MINI_B: | ||
1576 | if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA | | ||
1577 | MB86A16_DCC1_TBEN) < 0) | ||
1578 | goto err; | ||
1579 | if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN) < 0) | ||
1580 | goto err; | ||
1581 | break; | ||
1582 | } | ||
1583 | |||
1584 | return 0; | ||
1585 | err: | ||
1586 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
1587 | return -EREMOTEIO; | ||
1588 | } | ||
1589 | |||
1590 | static int mb86a16_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone) | ||
1591 | { | ||
1592 | struct mb86a16_state *state = fe->demodulator_priv; | ||
1593 | |||
1594 | switch (tone) { | ||
1595 | case SEC_TONE_ON: | ||
1596 | if (mb86a16_write(state, MB86A16_TONEOUT2, 0x00) < 0) | ||
1597 | goto err; | ||
1598 | if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA | | ||
1599 | MB86A16_DCC1_CTOE) < 0) | ||
1600 | |||
1601 | goto err; | ||
1602 | if (mb86a16_write(state, MB86A16_DCCOUT, MB86A16_DCCOUT_DISEN) < 0) | ||
1603 | goto err; | ||
1604 | break; | ||
1605 | case SEC_TONE_OFF: | ||
1606 | if (mb86a16_write(state, MB86A16_TONEOUT2, 0x04) < 0) | ||
1607 | goto err; | ||
1608 | if (mb86a16_write(state, MB86A16_DCC1, MB86A16_DCC1_DISTA) < 0) | ||
1609 | goto err; | ||
1610 | if (mb86a16_write(state, MB86A16_DCCOUT, 0x00) < 0) | ||
1611 | goto err; | ||
1612 | break; | ||
1613 | default: | ||
1614 | return -EINVAL; | ||
1615 | } | ||
1616 | return 0; | ||
1617 | |||
1618 | err: | ||
1619 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
1620 | return -EREMOTEIO; | ||
1621 | } | ||
1622 | |||
1623 | static enum dvbfe_search mb86a16_search(struct dvb_frontend *fe, | ||
1624 | struct dvb_frontend_parameters *p) | ||
1625 | { | ||
1626 | struct mb86a16_state *state = fe->demodulator_priv; | ||
1627 | |||
1628 | state->frequency = p->frequency / 1000; | ||
1629 | state->srate = p->u.qpsk.symbol_rate / 1000; | ||
1630 | |||
1631 | if (!mb86a16_set_fe(state)) { | ||
1632 | dprintk(verbose, MB86A16_ERROR, 1, "Succesfully acquired LOCK"); | ||
1633 | return DVBFE_ALGO_SEARCH_SUCCESS; | ||
1634 | } | ||
1635 | |||
1636 | dprintk(verbose, MB86A16_ERROR, 1, "Lock acquisition failed!"); | ||
1637 | return DVBFE_ALGO_SEARCH_FAILED; | ||
1638 | } | ||
1639 | |||
1640 | static void mb86a16_release(struct dvb_frontend *fe) | ||
1641 | { | ||
1642 | struct mb86a16_state *state = fe->demodulator_priv; | ||
1643 | kfree(state); | ||
1644 | } | ||
1645 | |||
1646 | static int mb86a16_init(struct dvb_frontend *fe) | ||
1647 | { | ||
1648 | return 0; | ||
1649 | } | ||
1650 | |||
1651 | static int mb86a16_sleep(struct dvb_frontend *fe) | ||
1652 | { | ||
1653 | return 0; | ||
1654 | } | ||
1655 | |||
1656 | static int mb86a16_read_ber(struct dvb_frontend *fe, u32 *ber) | ||
1657 | { | ||
1658 | u8 ber_mon, ber_tab, ber_lsb, ber_mid, ber_msb, ber_tim, ber_rst; | ||
1659 | u32 timer; | ||
1660 | |||
1661 | struct mb86a16_state *state = fe->demodulator_priv; | ||
1662 | |||
1663 | *ber = 0; | ||
1664 | if (mb86a16_read(state, MB86A16_BERMON, &ber_mon) != 2) | ||
1665 | goto err; | ||
1666 | if (mb86a16_read(state, MB86A16_BERTAB, &ber_tab) != 2) | ||
1667 | goto err; | ||
1668 | if (mb86a16_read(state, MB86A16_BERLSB, &ber_lsb) != 2) | ||
1669 | goto err; | ||
1670 | if (mb86a16_read(state, MB86A16_BERMID, &ber_mid) != 2) | ||
1671 | goto err; | ||
1672 | if (mb86a16_read(state, MB86A16_BERMSB, &ber_msb) != 2) | ||
1673 | goto err; | ||
1674 | /* BER monitor invalid when BER_EN = 0 */ | ||
1675 | if (ber_mon & 0x04) { | ||
1676 | /* coarse, fast calculation */ | ||
1677 | *ber = ber_tab & 0x1f; | ||
1678 | dprintk(verbose, MB86A16_DEBUG, 1, "BER coarse=[0x%02x]", *ber); | ||
1679 | if (ber_mon & 0x01) { | ||
1680 | /* | ||
1681 | * BER_SEL = 1, The monitored BER is the estimated | ||
1682 | * value with a Reed-Solomon decoder error amount at | ||
1683 | * the deinterleaver output. | ||
1684 | * monitored BER is expressed as a 20 bit output in total | ||
1685 | */ | ||
1686 | ber_rst = ber_mon >> 3; | ||
1687 | *ber = (((ber_msb << 8) | ber_mid) << 8) | ber_lsb; | ||
1688 | if (ber_rst == 0) | ||
1689 | timer = 12500000; | ||
1690 | if (ber_rst == 1) | ||
1691 | timer = 25000000; | ||
1692 | if (ber_rst == 2) | ||
1693 | timer = 50000000; | ||
1694 | if (ber_rst == 3) | ||
1695 | timer = 100000000; | ||
1696 | |||
1697 | *ber /= timer; | ||
1698 | dprintk(verbose, MB86A16_DEBUG, 1, "BER fine=[0x%02x]", *ber); | ||
1699 | } else { | ||
1700 | /* | ||
1701 | * BER_SEL = 0, The monitored BER is the estimated | ||
1702 | * value with a Viterbi decoder error amount at the | ||
1703 | * QPSK demodulator output. | ||
1704 | * monitored BER is expressed as a 24 bit output in total | ||
1705 | */ | ||
1706 | ber_tim = ber_mon >> 1; | ||
1707 | *ber = (((ber_msb << 8) | ber_mid) << 8) | ber_lsb; | ||
1708 | if (ber_tim == 0) | ||
1709 | timer = 16; | ||
1710 | if (ber_tim == 1) | ||
1711 | timer = 24; | ||
1712 | |||
1713 | *ber /= 2 ^ timer; | ||
1714 | dprintk(verbose, MB86A16_DEBUG, 1, "BER fine=[0x%02x]", *ber); | ||
1715 | } | ||
1716 | } | ||
1717 | return 0; | ||
1718 | err: | ||
1719 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
1720 | return -EREMOTEIO; | ||
1721 | } | ||
1722 | |||
1723 | static int mb86a16_read_signal_strength(struct dvb_frontend *fe, u16 *strength) | ||
1724 | { | ||
1725 | u8 agcm = 0; | ||
1726 | struct mb86a16_state *state = fe->demodulator_priv; | ||
1727 | |||
1728 | *strength = 0; | ||
1729 | if (mb86a16_read(state, MB86A16_AGCM, &agcm) != 2) { | ||
1730 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
1731 | return -EREMOTEIO; | ||
1732 | } | ||
1733 | |||
1734 | *strength = ((0xff - agcm) * 100) / 256; | ||
1735 | dprintk(verbose, MB86A16_DEBUG, 1, "Signal strength=[%d %%]", (u8) *strength); | ||
1736 | *strength = (0xffff - 0xff) + agcm; | ||
1737 | |||
1738 | return 0; | ||
1739 | } | ||
1740 | |||
1741 | struct cnr { | ||
1742 | u8 cn_reg; | ||
1743 | u8 cn_val; | ||
1744 | }; | ||
1745 | |||
1746 | static const struct cnr cnr_tab[] = { | ||
1747 | { 35, 2 }, | ||
1748 | { 40, 3 }, | ||
1749 | { 50, 4 }, | ||
1750 | { 60, 5 }, | ||
1751 | { 70, 6 }, | ||
1752 | { 80, 7 }, | ||
1753 | { 92, 8 }, | ||
1754 | { 103, 9 }, | ||
1755 | { 115, 10 }, | ||
1756 | { 138, 12 }, | ||
1757 | { 162, 15 }, | ||
1758 | { 180, 18 }, | ||
1759 | { 185, 19 }, | ||
1760 | { 189, 20 }, | ||
1761 | { 195, 22 }, | ||
1762 | { 199, 24 }, | ||
1763 | { 201, 25 }, | ||
1764 | { 202, 26 }, | ||
1765 | { 203, 27 }, | ||
1766 | { 205, 28 }, | ||
1767 | { 208, 30 } | ||
1768 | }; | ||
1769 | |||
1770 | static int mb86a16_read_snr(struct dvb_frontend *fe, u16 *snr) | ||
1771 | { | ||
1772 | struct mb86a16_state *state = fe->demodulator_priv; | ||
1773 | int i = 0; | ||
1774 | int low_tide = 2, high_tide = 30, q_level; | ||
1775 | u8 cn; | ||
1776 | |||
1777 | *snr = 0; | ||
1778 | if (mb86a16_read(state, 0x26, &cn) != 2) { | ||
1779 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
1780 | return -EREMOTEIO; | ||
1781 | } | ||
1782 | |||
1783 | for (i = 0; i < ARRAY_SIZE(cnr_tab); i++) { | ||
1784 | if (cn < cnr_tab[i].cn_reg) { | ||
1785 | *snr = cnr_tab[i].cn_val; | ||
1786 | break; | ||
1787 | } | ||
1788 | } | ||
1789 | q_level = (*snr * 100) / (high_tide - low_tide); | ||
1790 | dprintk(verbose, MB86A16_ERROR, 1, "SNR (Quality) = [%d dB], Level=%d %%", *snr, q_level); | ||
1791 | *snr = (0xffff - 0xff) + *snr; | ||
1792 | |||
1793 | return 0; | ||
1794 | } | ||
1795 | |||
1796 | static int mb86a16_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks) | ||
1797 | { | ||
1798 | u8 dist; | ||
1799 | struct mb86a16_state *state = fe->demodulator_priv; | ||
1800 | |||
1801 | if (mb86a16_read(state, MB86A16_DISTMON, &dist) != 2) { | ||
1802 | dprintk(verbose, MB86A16_ERROR, 1, "I2C transfer error"); | ||
1803 | return -EREMOTEIO; | ||
1804 | } | ||
1805 | *ucblocks = dist; | ||
1806 | |||
1807 | return 0; | ||
1808 | } | ||
1809 | |||
1810 | static enum dvbfe_algo mb86a16_frontend_algo(struct dvb_frontend *fe) | ||
1811 | { | ||
1812 | return DVBFE_ALGO_CUSTOM; | ||
1813 | } | ||
1814 | |||
1815 | static struct dvb_frontend_ops mb86a16_ops = { | ||
1816 | .info = { | ||
1817 | .name = "Fujitsu MB86A16 DVB-S", | ||
1818 | .type = FE_QPSK, | ||
1819 | .frequency_min = 950000, | ||
1820 | .frequency_max = 2150000, | ||
1821 | .frequency_stepsize = 3000, | ||
1822 | .frequency_tolerance = 0, | ||
1823 | .symbol_rate_min = 1000000, | ||
1824 | .symbol_rate_max = 45000000, | ||
1825 | .symbol_rate_tolerance = 500, | ||
1826 | .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | | ||
1827 | FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | | ||
1828 | FE_CAN_FEC_7_8 | FE_CAN_QPSK | | ||
1829 | FE_CAN_FEC_AUTO | ||
1830 | }, | ||
1831 | .release = mb86a16_release, | ||
1832 | |||
1833 | .get_frontend_algo = mb86a16_frontend_algo, | ||
1834 | .search = mb86a16_search, | ||
1835 | .read_status = mb86a16_read_status, | ||
1836 | .init = mb86a16_init, | ||
1837 | .sleep = mb86a16_sleep, | ||
1838 | .read_status = mb86a16_read_status, | ||
1839 | |||
1840 | .read_ber = mb86a16_read_ber, | ||
1841 | .read_signal_strength = mb86a16_read_signal_strength, | ||
1842 | .read_snr = mb86a16_read_snr, | ||
1843 | .read_ucblocks = mb86a16_read_ucblocks, | ||
1844 | |||
1845 | .diseqc_send_master_cmd = mb86a16_send_diseqc_msg, | ||
1846 | .diseqc_send_burst = mb86a16_send_diseqc_burst, | ||
1847 | .set_tone = mb86a16_set_tone, | ||
1848 | }; | ||
1849 | |||
1850 | struct dvb_frontend *mb86a16_attach(const struct mb86a16_config *config, | ||
1851 | struct i2c_adapter *i2c_adap) | ||
1852 | { | ||
1853 | u8 dev_id = 0; | ||
1854 | struct mb86a16_state *state = NULL; | ||
1855 | |||
1856 | state = kmalloc(sizeof(struct mb86a16_state), GFP_KERNEL); | ||
1857 | if (state == NULL) | ||
1858 | goto error; | ||
1859 | |||
1860 | state->config = config; | ||
1861 | state->i2c_adap = i2c_adap; | ||
1862 | |||
1863 | mb86a16_read(state, 0x7f, &dev_id); | ||
1864 | if (dev_id != 0xfe) | ||
1865 | goto error; | ||
1866 | |||
1867 | memcpy(&state->frontend.ops, &mb86a16_ops, sizeof(struct dvb_frontend_ops)); | ||
1868 | state->frontend.demodulator_priv = state; | ||
1869 | state->frontend.ops.set_voltage = state->config->set_voltage; | ||
1870 | |||
1871 | return &state->frontend; | ||
1872 | error: | ||
1873 | kfree(state); | ||
1874 | return NULL; | ||
1875 | } | ||
1876 | EXPORT_SYMBOL(mb86a16_attach); | ||
1877 | MODULE_LICENSE("GPL"); | ||
1878 | MODULE_AUTHOR("Manu Abraham"); | ||
diff --git a/drivers/media/dvb/frontends/mb86a16.h b/drivers/media/dvb/frontends/mb86a16.h new file mode 100644 index 00000000000..6ea8c376394 --- /dev/null +++ b/drivers/media/dvb/frontends/mb86a16.h | |||
@@ -0,0 +1,52 @@ | |||
1 | /* | ||
2 | Fujitsu MB86A16 DVB-S/DSS DC Receiver driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MB86A16_H | ||
22 | #define __MB86A16_H | ||
23 | |||
24 | #include <linux/dvb/frontend.h> | ||
25 | #include "dvb_frontend.h" | ||
26 | |||
27 | |||
28 | struct mb86a16_config { | ||
29 | u8 demod_address; | ||
30 | |||
31 | int (*set_voltage)(struct dvb_frontend *fe, fe_sec_voltage_t voltage); | ||
32 | }; | ||
33 | |||
34 | |||
35 | |||
36 | #if defined(CONFIG_DVB_MB86A16) || (defined(CONFIG_DVB_MB86A16_MODULE) && defined(MODULE)) | ||
37 | |||
38 | extern struct dvb_frontend *mb86a16_attach(const struct mb86a16_config *config, | ||
39 | struct i2c_adapter *i2c_adap); | ||
40 | |||
41 | #else | ||
42 | |||
43 | static inline struct dvb_frontend *mb86a16_attach(const struct mb86a16_config *config, | ||
44 | struct i2c_adapter *i2c_adap) | ||
45 | { | ||
46 | printk(KERN_WARNING "%s: Driver disabled by Kconfig\n", __func__); | ||
47 | return NULL; | ||
48 | } | ||
49 | |||
50 | #endif /* CONFIG_DVB_MB86A16 */ | ||
51 | |||
52 | #endif /* __MB86A16_H */ | ||
diff --git a/drivers/media/dvb/frontends/mb86a16_priv.h b/drivers/media/dvb/frontends/mb86a16_priv.h new file mode 100644 index 00000000000..360a35acfe8 --- /dev/null +++ b/drivers/media/dvb/frontends/mb86a16_priv.h | |||
@@ -0,0 +1,151 @@ | |||
1 | /* | ||
2 | Fujitsu MB86A16 DVB-S/DSS DC Receiver driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MB86A16_PRIV_H | ||
22 | #define __MB86A16_PRIV_H | ||
23 | |||
24 | #define MB86A16_TSOUT 0x00 | ||
25 | #define MB86A16_TSOUT_HIZSEL (0x01 << 5) | ||
26 | #define MB86A16_TSOUT_HIZCNTI (0x01 << 4) | ||
27 | #define MB86A16_TSOUT_MODE (0x01 << 3) | ||
28 | #define MB86A16_TSOUT_ORDER (0x01 << 2) | ||
29 | #define MB86A16_TSOUT_ERROR (0x01 << 1) | ||
30 | #define Mb86A16_TSOUT_EDGE (0x01 << 0) | ||
31 | |||
32 | #define MB86A16_FEC 0x01 | ||
33 | #define MB86A16_FEC_FSYNC (0x01 << 5) | ||
34 | #define MB86A16_FEC_PCKB8 (0x01 << 4) | ||
35 | #define MB86A16_FEC_DVDS (0x01 << 3) | ||
36 | #define MB86A16_FEC_EREN (0x01 << 2) | ||
37 | #define Mb86A16_FEC_RSEN (0x01 << 1) | ||
38 | #define MB86A16_FEC_DIEN (0x01 << 0) | ||
39 | |||
40 | #define MB86A16_AGC 0x02 | ||
41 | #define MB86A16_AGC_AGMD (0x01 << 6) | ||
42 | #define MB86A16_AGC_AGCW (0x0f << 2) | ||
43 | #define MB86A16_AGC_AGCP (0x01 << 1) | ||
44 | #define MB86A16_AGC_AGCR (0x01 << 0) | ||
45 | |||
46 | #define MB86A16_SRATE1 0x03 | ||
47 | #define MB86A16_SRATE1_DECI (0x07 << 2) | ||
48 | #define MB86A16_SRATE1_CSEL (0x01 << 1) | ||
49 | #define MB86A16_SRATE1_RSEL (0x01 << 0) | ||
50 | |||
51 | #define MB86A16_SRATE2 0x04 | ||
52 | #define MB86A16_SRATE2_STOFSL (0xff << 0) | ||
53 | |||
54 | #define MB86A16_SRATE3 0x05 | ||
55 | #define MB86A16_SRATE2_STOFSH (0xff << 0) | ||
56 | |||
57 | #define MB86A16_VITERBI 0x06 | ||
58 | #define MB86A16_FRAMESYNC 0x07 | ||
59 | #define MB86A16_CRLFILTCOEF1 0x08 | ||
60 | #define MB86A16_CRLFILTCOEF2 0x09 | ||
61 | #define MB86A16_STRFILTCOEF1 0x0a | ||
62 | #define MB86A16_STRFILTCOEF2 0x0b | ||
63 | #define MB86A16_RESET 0x0c | ||
64 | #define MB86A16_STATUS 0x0d | ||
65 | #define MB86A16_AFCML 0x0e | ||
66 | #define MB86A16_AFCMH 0x0f | ||
67 | #define MB86A16_BERMON 0x10 | ||
68 | #define MB86A16_BERTAB 0x11 | ||
69 | #define MB86A16_BERLSB 0x12 | ||
70 | #define MB86A16_BERMID 0x13 | ||
71 | #define MB86A16_BERMSB 0x14 | ||
72 | #define MB86A16_AGCM 0x15 | ||
73 | |||
74 | #define MB86A16_DCC1 0x16 | ||
75 | #define MB86A16_DCC1_DISTA (0x01 << 7) | ||
76 | #define MB86A16_DCC1_PRTY (0x01 << 6) | ||
77 | #define MB86A16_DCC1_CTOE (0x01 << 5) | ||
78 | #define MB86A16_DCC1_TBEN (0x01 << 4) | ||
79 | #define MB86A16_DCC1_TBO (0x01 << 3) | ||
80 | #define MB86A16_DCC1_NUM (0x07 << 0) | ||
81 | |||
82 | #define MB86A16_DCC2 0x17 | ||
83 | #define MB86A16_DCC2_DCBST (0x01 << 0) | ||
84 | |||
85 | #define MB86A16_DCC3 0x18 | ||
86 | #define MB86A16_DCC3_CODE0 (0xff << 0) | ||
87 | |||
88 | #define MB86A16_DCC4 0x19 | ||
89 | #define MB86A16_DCC4_CODE1 (0xff << 0) | ||
90 | |||
91 | #define MB86A16_DCC5 0x1a | ||
92 | #define MB86A16_DCC5_CODE2 (0xff << 0) | ||
93 | |||
94 | #define MB86A16_DCC6 0x1b | ||
95 | #define MB86A16_DCC6_CODE3 (0xff << 0) | ||
96 | |||
97 | #define MB86A16_DCC7 0x1c | ||
98 | #define MB86A16_DCC7_CODE4 (0xff << 0) | ||
99 | |||
100 | #define MB86A16_DCC8 0x1d | ||
101 | #define MB86A16_DCC8_CODE5 (0xff << 0) | ||
102 | |||
103 | #define MB86A16_DCCOUT 0x1e | ||
104 | #define MB86A16_DCCOUT_DISEN (0x01 << 0) | ||
105 | |||
106 | #define MB86A16_TONEOUT1 0x1f | ||
107 | #define MB86A16_TONE_TDIVL (0xff << 0) | ||
108 | |||
109 | #define MB86A16_TONEOUT2 0x20 | ||
110 | #define MB86A16_TONE_TMD (0x03 << 2) | ||
111 | #define MB86A16_TONE_TDIVH (0x03 << 0) | ||
112 | |||
113 | #define MB86A16_FREQ1 0x21 | ||
114 | #define MB86A16_FREQ2 0x22 | ||
115 | #define MB86A16_FREQ3 0x23 | ||
116 | #define MB86A16_FREQ4 0x24 | ||
117 | #define MB86A16_FREQSET 0x25 | ||
118 | #define MB86A16_CNM 0x26 | ||
119 | #define MB86A16_PORT0 0x27 | ||
120 | #define MB86A16_PORT1 0x28 | ||
121 | #define MB86A16_DRCFILT 0x29 | ||
122 | #define MB86A16_AFC 0x2a | ||
123 | #define MB86A16_AFCEXL 0x2b | ||
124 | #define MB86A16_AFCEXH 0x2c | ||
125 | #define MB86A16_DAGC 0x2d | ||
126 | #define MB86A16_SEQMODE 0x32 | ||
127 | #define MB86A16_S0S1T 0x33 | ||
128 | #define MB86A16_S2S3T 0x34 | ||
129 | #define MB86A16_S4S5T 0x35 | ||
130 | #define MB86A16_CNTMR 0x36 | ||
131 | #define MB86A16_SIG1 0x37 | ||
132 | #define MB86A16_SIG2 0x38 | ||
133 | #define MB86A16_VIMAG 0x39 | ||
134 | #define MB86A16_VISET1 0x3a | ||
135 | #define MB86A16_VISET2 0x3b | ||
136 | #define MB86A16_VISET3 0x3c | ||
137 | #define MB86A16_FAGCS1 0x3d | ||
138 | #define MB86A16_FAGCS2 0x3e | ||
139 | #define MB86A16_FAGCS3 0x3f | ||
140 | #define MB86A16_FAGCS4 0x40 | ||
141 | #define MB86A16_FAGCS5 0x41 | ||
142 | #define MB86A16_FAGCS6 0x42 | ||
143 | #define MB86A16_CRM 0x43 | ||
144 | #define MB86A16_STRM 0x44 | ||
145 | #define MB86A16_DAGCML 0x45 | ||
146 | #define MB86A16_DAGCMH 0x46 | ||
147 | #define MB86A16_QPSKTST 0x49 | ||
148 | #define MB86A16_DISTMON 0x52 | ||
149 | #define MB86A16_VERSION 0x7f | ||
150 | |||
151 | #endif /* __MB86A16_PRIV_H */ | ||
diff --git a/drivers/media/dvb/frontends/tda10021.c b/drivers/media/dvb/frontends/tda10021.c index 6c1dbf9288d..6ca533ea0f0 100644 --- a/drivers/media/dvb/frontends/tda10021.c +++ b/drivers/media/dvb/frontends/tda10021.c | |||
@@ -426,6 +426,10 @@ struct dvb_frontend* tda10021_attach(const struct tda1002x_config* config, | |||
426 | id = tda10021_readreg(state, 0x1a); | 426 | id = tda10021_readreg(state, 0x1a); |
427 | if ((id & 0xf0) != 0x70) goto error; | 427 | if ((id & 0xf0) != 0x70) goto error; |
428 | 428 | ||
429 | /* Don't claim TDA10023 */ | ||
430 | if (id == 0x7d) | ||
431 | goto error; | ||
432 | |||
429 | printk("TDA10021: i2c-addr = 0x%02x, id = 0x%02x\n", | 433 | printk("TDA10021: i2c-addr = 0x%02x, id = 0x%02x\n", |
430 | state->config->demod_address, id); | 434 | state->config->demod_address, id); |
431 | 435 | ||
diff --git a/drivers/media/dvb/frontends/tda665x.c b/drivers/media/dvb/frontends/tda665x.c new file mode 100644 index 00000000000..87d52739c82 --- /dev/null +++ b/drivers/media/dvb/frontends/tda665x.c | |||
@@ -0,0 +1,257 @@ | |||
1 | /* | ||
2 | TDA665x tuner driver | ||
3 | Copyright (C) Manu Abraham (abraham.manu@gmail.com) | ||
4 | |||
5 | This program is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published by | ||
7 | the Free Software Foundation; either version 2 of the License, or | ||
8 | (at your option) any later version. | ||
9 | |||
10 | This program is distributed in the hope that it will be useful, | ||
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | GNU General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with this program; if not, write to the Free Software | ||
17 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
18 | */ | ||
19 | |||
20 | #include <linux/init.h> | ||
21 | #include <linux/kernel.h> | ||
22 | #include <linux/module.h> | ||
23 | |||
24 | #include "dvb_frontend.h" | ||
25 | #include "tda665x.h" | ||
26 | |||
27 | struct tda665x_state { | ||
28 | struct dvb_frontend *fe; | ||
29 | struct i2c_adapter *i2c; | ||
30 | const struct tda665x_config *config; | ||
31 | |||
32 | u32 frequency; | ||
33 | u32 bandwidth; | ||
34 | }; | ||
35 | |||
36 | static int tda665x_read(struct tda665x_state *state, u8 *buf) | ||
37 | { | ||
38 | const struct tda665x_config *config = state->config; | ||
39 | int err = 0; | ||
40 | struct i2c_msg msg = { .addr = config->addr, .flags = I2C_M_RD, .buf = buf, .len = 2 }; | ||
41 | |||
42 | err = i2c_transfer(state->i2c, &msg, 1); | ||
43 | if (err != 1) | ||
44 | goto exit; | ||
45 | |||
46 | return err; | ||
47 | exit: | ||
48 | printk(KERN_ERR "%s: I/O Error err=<%d>\n", __func__, err); | ||
49 | return err; | ||
50 | } | ||
51 | |||
52 | static int tda665x_write(struct tda665x_state *state, u8 *buf, u8 length) | ||
53 | { | ||
54 | const struct tda665x_config *config = state->config; | ||
55 | int err = 0; | ||
56 | struct i2c_msg msg = { .addr = config->addr, .flags = 0, .buf = buf, .len = length }; | ||
57 | |||
58 | err = i2c_transfer(state->i2c, &msg, 1); | ||
59 | if (err != 1) | ||
60 | goto exit; | ||
61 | |||
62 | return err; | ||
63 | exit: | ||
64 | printk(KERN_ERR "%s: I/O Error err=<%d>\n", __func__, err); | ||
65 | return err; | ||
66 | } | ||
67 | |||
68 | static int tda665x_get_state(struct dvb_frontend *fe, | ||
69 | enum tuner_param param, | ||
70 | struct tuner_state *tstate) | ||
71 | { | ||
72 | struct tda665x_state *state = fe->tuner_priv; | ||
73 | int err = 0; | ||
74 | |||
75 | switch (param) { | ||
76 | case DVBFE_TUNER_FREQUENCY: | ||
77 | tstate->frequency = state->frequency; | ||
78 | break; | ||
79 | case DVBFE_TUNER_BANDWIDTH: | ||
80 | break; | ||
81 | default: | ||
82 | printk(KERN_ERR "%s: Unknown parameter (param=%d)\n", __func__, param); | ||
83 | err = -EINVAL; | ||
84 | break; | ||
85 | } | ||
86 | |||
87 | return err; | ||
88 | } | ||
89 | |||
90 | static int tda665x_get_status(struct dvb_frontend *fe, u32 *status) | ||
91 | { | ||
92 | struct tda665x_state *state = fe->tuner_priv; | ||
93 | u8 result = 0; | ||
94 | int err = 0; | ||
95 | |||
96 | *status = 0; | ||
97 | |||
98 | err = tda665x_read(state, &result); | ||
99 | if (err < 0) | ||
100 | goto exit; | ||
101 | |||
102 | if ((result >> 6) & 0x01) { | ||
103 | printk(KERN_DEBUG "%s: Tuner Phase Locked\n", __func__); | ||
104 | *status = 1; | ||
105 | } | ||
106 | |||
107 | return err; | ||
108 | exit: | ||
109 | printk(KERN_ERR "%s: I/O Error\n", __func__); | ||
110 | return err; | ||
111 | } | ||
112 | |||
113 | static int tda665x_set_state(struct dvb_frontend *fe, | ||
114 | enum tuner_param param, | ||
115 | struct tuner_state *tstate) | ||
116 | { | ||
117 | struct tda665x_state *state = fe->tuner_priv; | ||
118 | const struct tda665x_config *config = state->config; | ||
119 | u32 frequency, status = 0; | ||
120 | u8 buf[4]; | ||
121 | int err = 0; | ||
122 | |||
123 | if (param & DVBFE_TUNER_FREQUENCY) { | ||
124 | |||
125 | frequency = tstate->frequency; | ||
126 | if ((frequency < config->frequency_max) || (frequency > config->frequency_min)) { | ||
127 | printk(KERN_ERR "%s: Frequency beyond limits, frequency=%d\n", __func__, frequency); | ||
128 | return -EINVAL; | ||
129 | } | ||
130 | |||
131 | frequency += config->frequency_offst; | ||
132 | frequency *= config->ref_multiplier; | ||
133 | frequency += config->ref_divider >> 1; | ||
134 | frequency /= config->ref_divider; | ||
135 | |||
136 | buf[0] = (u8) (frequency & 0x7f00) >> 8; | ||
137 | buf[1] = (u8) (frequency & 0x00ff) >> 0; | ||
138 | buf[2] = 0x80 | 0x40 | 0x02; | ||
139 | buf[3] = 0x00; | ||
140 | |||
141 | /* restore frequency */ | ||
142 | frequency = tstate->frequency; | ||
143 | |||
144 | if (frequency < 153000000) { | ||
145 | /* VHF-L */ | ||
146 | buf[3] |= 0x01; /* fc, Low Band, 47 - 153 MHz */ | ||
147 | if (frequency < 68000000) | ||
148 | buf[3] |= 0x40; /* 83uA */ | ||
149 | if (frequency < 1040000000) | ||
150 | buf[3] |= 0x60; /* 122uA */ | ||
151 | if (frequency < 1250000000) | ||
152 | buf[3] |= 0x80; /* 163uA */ | ||
153 | else | ||
154 | buf[3] |= 0xa0; /* 254uA */ | ||
155 | } else if (frequency < 438000000) { | ||
156 | /* VHF-H */ | ||
157 | buf[3] |= 0x02; /* fc, Mid Band, 153 - 438 MHz */ | ||
158 | if (frequency < 230000000) | ||
159 | buf[3] |= 0x40; | ||
160 | if (frequency < 300000000) | ||
161 | buf[3] |= 0x60; | ||
162 | else | ||
163 | buf[3] |= 0x80; | ||
164 | } else { | ||
165 | /* UHF */ | ||
166 | buf[3] |= 0x04; /* fc, High Band, 438 - 862 MHz */ | ||
167 | if (frequency < 470000000) | ||
168 | buf[3] |= 0x60; | ||
169 | if (frequency < 526000000) | ||
170 | buf[3] |= 0x80; | ||
171 | else | ||
172 | buf[3] |= 0xa0; | ||
173 | } | ||
174 | |||
175 | /* Set params */ | ||
176 | err = tda665x_write(state, buf, 5); | ||
177 | if (err < 0) | ||
178 | goto exit; | ||
179 | |||
180 | /* sleep for some time */ | ||
181 | printk(KERN_DEBUG "%s: Waiting to Phase LOCK\n", __func__); | ||
182 | msleep(20); | ||
183 | /* check status */ | ||
184 | err = tda665x_get_status(fe, &status); | ||
185 | if (err < 0) | ||
186 | goto exit; | ||
187 | |||
188 | if (status == 1) { | ||
189 | printk(KERN_DEBUG "%s: Tuner Phase locked: status=%d\n", __func__, status); | ||
190 | state->frequency = frequency; /* cache successful state */ | ||
191 | } else { | ||
192 | printk(KERN_ERR "%s: No Phase lock: status=%d\n", __func__, status); | ||
193 | } | ||
194 | } else { | ||
195 | printk(KERN_ERR "%s: Unknown parameter (param=%d)\n", __func__, param); | ||
196 | return -EINVAL; | ||
197 | } | ||
198 | |||
199 | return 0; | ||
200 | exit: | ||
201 | printk(KERN_ERR "%s: I/O Error\n", __func__); | ||
202 | return err; | ||
203 | } | ||
204 | |||
205 | static int tda665x_release(struct dvb_frontend *fe) | ||
206 | { | ||
207 | struct tda665x_state *state = fe->tuner_priv; | ||
208 | |||
209 | fe->tuner_priv = NULL; | ||
210 | kfree(state); | ||
211 | return 0; | ||
212 | } | ||
213 | |||
214 | static struct dvb_tuner_ops tda665x_ops = { | ||
215 | |||
216 | .set_state = tda665x_set_state, | ||
217 | .get_state = tda665x_get_state, | ||
218 | .get_status = tda665x_get_status, | ||
219 | .release = tda665x_release | ||
220 | }; | ||
221 | |||
222 | struct dvb_frontend *tda665x_attach(struct dvb_frontend *fe, | ||
223 | const struct tda665x_config *config, | ||
224 | struct i2c_adapter *i2c) | ||
225 | { | ||
226 | struct tda665x_state *state = NULL; | ||
227 | struct dvb_tuner_info *info; | ||
228 | |||
229 | state = kzalloc(sizeof(struct tda665x_state), GFP_KERNEL); | ||
230 | if (state == NULL) | ||
231 | goto exit; | ||
232 | |||
233 | state->config = config; | ||
234 | state->i2c = i2c; | ||
235 | state->fe = fe; | ||
236 | fe->tuner_priv = state; | ||
237 | fe->ops.tuner_ops = tda665x_ops; | ||
238 | info = &fe->ops.tuner_ops.info; | ||
239 | |||
240 | memcpy(info->name, config->name, sizeof(config->name)); | ||
241 | info->frequency_min = config->frequency_min; | ||
242 | info->frequency_max = config->frequency_max; | ||
243 | info->frequency_step = config->frequency_offst; | ||
244 | |||
245 | printk(KERN_DEBUG "%s: Attaching TDA665x (%s) tuner\n", __func__, info->name); | ||
246 | |||
247 | return fe; | ||
248 | |||
249 | exit: | ||
250 | kfree(state); | ||
251 | return NULL; | ||
252 | } | ||
253 | EXPORT_SYMBOL(tda665x_attach); | ||
254 | |||
255 | MODULE_DESCRIPTION("TDA665x driver"); | ||
256 | MODULE_AUTHOR("Manu Abraham"); | ||
257 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/media/dvb/frontends/tda665x.h b/drivers/media/dvb/frontends/tda665x.h new file mode 100644 index 00000000000..ec7927aa75a --- /dev/null +++ b/drivers/media/dvb/frontends/tda665x.h | |||
@@ -0,0 +1,52 @@ | |||
1 | /* | ||
2 | TDA665x tuner driver | ||
3 | Copyright (C) Manu Abraham (abraham.manu@gmail.com) | ||
4 | |||
5 | This program is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published by | ||
7 | the Free Software Foundation; either version 2 of the License, or | ||
8 | (at your option) any later version. | ||
9 | |||
10 | This program is distributed in the hope that it will be useful, | ||
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | GNU General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with this program; if not, write to the Free Software | ||
17 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
18 | */ | ||
19 | |||
20 | #ifndef __TDA665x_H | ||
21 | #define __TDA665x_H | ||
22 | |||
23 | struct tda665x_config { | ||
24 | char name[128]; | ||
25 | |||
26 | u8 addr; | ||
27 | u32 frequency_min; | ||
28 | u32 frequency_max; | ||
29 | u32 frequency_offst; | ||
30 | u32 ref_multiplier; | ||
31 | u32 ref_divider; | ||
32 | }; | ||
33 | |||
34 | #if defined(CONFIG_DVB_TDA665x) || (defined(CONFIG_DVB_TDA665x_MODULE) && defined(MODULE)) | ||
35 | |||
36 | extern struct dvb_frontend *tda665x_attach(struct dvb_frontend *fe, | ||
37 | const struct tda665x_config *config, | ||
38 | struct i2c_adapter *i2c); | ||
39 | |||
40 | #else | ||
41 | |||
42 | static inline struct dvb_frontend *tda665x_attach(struct dvb_frontend *fe, | ||
43 | const struct tda665x_config *config, | ||
44 | struct i2c_adapter *i2c) | ||
45 | { | ||
46 | printk(KERN_WARNING "%s: Driver disabled by Kconfig\n", __func__); | ||
47 | return NULL; | ||
48 | } | ||
49 | |||
50 | #endif /* CONFIG_DVB_TDA665x */ | ||
51 | |||
52 | #endif /* __TDA665x_H */ | ||
diff --git a/drivers/media/dvb/mantis/Kconfig b/drivers/media/dvb/mantis/Kconfig new file mode 100644 index 00000000000..f7b72a32adf --- /dev/null +++ b/drivers/media/dvb/mantis/Kconfig | |||
@@ -0,0 +1,32 @@ | |||
1 | config MANTIS_CORE | ||
2 | tristate "Mantis/Hopper PCI bridge based devices" | ||
3 | depends on PCI && I2C && INPUT | ||
4 | |||
5 | help | ||
6 | Support for PCI cards based on the Mantis and Hopper PCi bridge. | ||
7 | |||
8 | Say Y if you own such a device and want to use it. | ||
9 | |||
10 | config DVB_MANTIS | ||
11 | tristate "MANTIS based cards" | ||
12 | depends on MANTIS_CORE && DVB_CORE && PCI && I2C | ||
13 | select DVB_MB86A16 | ||
14 | select DVB_ZL10353 | ||
15 | select DVB_STV0299 | ||
16 | select DVB_PLL | ||
17 | help | ||
18 | Support for PCI cards based on the Mantis PCI bridge. | ||
19 | Say Y when you have a Mantis based DVB card and want to use it. | ||
20 | |||
21 | If unsure say N. | ||
22 | |||
23 | config DVB_HOPPER | ||
24 | tristate "HOPPER based cards" | ||
25 | depends on MANTIS_CORE && DVB_CORE && PCI && I2C | ||
26 | select DVB_ZL10353 | ||
27 | select DVB_PLL | ||
28 | help | ||
29 | Support for PCI cards based on the Hopper PCI bridge. | ||
30 | Say Y when you have a Hopper based DVB card and want to use it. | ||
31 | |||
32 | If unsure say N | ||
diff --git a/drivers/media/dvb/mantis/Makefile b/drivers/media/dvb/mantis/Makefile new file mode 100644 index 00000000000..98dc5cd258a --- /dev/null +++ b/drivers/media/dvb/mantis/Makefile | |||
@@ -0,0 +1,28 @@ | |||
1 | mantis_core-objs := mantis_ioc.o \ | ||
2 | mantis_uart.o \ | ||
3 | mantis_dma.o \ | ||
4 | mantis_pci.o \ | ||
5 | mantis_i2c.o \ | ||
6 | mantis_dvb.o \ | ||
7 | mantis_evm.o \ | ||
8 | mantis_hif.o \ | ||
9 | mantis_ca.o \ | ||
10 | mantis_pcmcia.o \ | ||
11 | mantis_input.o | ||
12 | |||
13 | mantis-objs := mantis_cards.o \ | ||
14 | mantis_vp1033.o \ | ||
15 | mantis_vp1034.o \ | ||
16 | mantis_vp1041.o \ | ||
17 | mantis_vp2033.o \ | ||
18 | mantis_vp2040.o \ | ||
19 | mantis_vp3030.o | ||
20 | |||
21 | hopper-objs := hopper_cards.o \ | ||
22 | hopper_vp3028.o | ||
23 | |||
24 | obj-$(CONFIG_MANTIS_CORE) += mantis_core.o | ||
25 | obj-$(CONFIG_DVB_MANTIS) += mantis.o | ||
26 | obj-$(CONFIG_DVB_HOPPER) += hopper.o | ||
27 | |||
28 | EXTRA_CFLAGS = -Idrivers/media/dvb/dvb-core/ -Idrivers/media/dvb/frontends/ | ||
diff --git a/drivers/media/dvb/mantis/hopper_cards.c b/drivers/media/dvb/mantis/hopper_cards.c new file mode 100644 index 00000000000..d073c61e3c0 --- /dev/null +++ b/drivers/media/dvb/mantis/hopper_cards.c | |||
@@ -0,0 +1,275 @@ | |||
1 | /* | ||
2 | Hopper PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/module.h> | ||
22 | #include <linux/moduleparam.h> | ||
23 | #include <linux/kernel.h> | ||
24 | #include <linux/pci.h> | ||
25 | #include <asm/irq.h> | ||
26 | #include <linux/interrupt.h> | ||
27 | |||
28 | #include "dmxdev.h" | ||
29 | #include "dvbdev.h" | ||
30 | #include "dvb_demux.h" | ||
31 | #include "dvb_frontend.h" | ||
32 | #include "dvb_net.h" | ||
33 | |||
34 | #include "mantis_common.h" | ||
35 | #include "hopper_vp3028.h" | ||
36 | #include "mantis_dma.h" | ||
37 | #include "mantis_dvb.h" | ||
38 | #include "mantis_uart.h" | ||
39 | #include "mantis_ioc.h" | ||
40 | #include "mantis_pci.h" | ||
41 | #include "mantis_i2c.h" | ||
42 | #include "mantis_reg.h" | ||
43 | |||
44 | static unsigned int verbose; | ||
45 | module_param(verbose, int, 0644); | ||
46 | MODULE_PARM_DESC(verbose, "verbose startup messages, default is 1 (yes)"); | ||
47 | |||
48 | #define DRIVER_NAME "Hopper" | ||
49 | |||
50 | static char *label[10] = { | ||
51 | "DMA", | ||
52 | "IRQ-0", | ||
53 | "IRQ-1", | ||
54 | "OCERR", | ||
55 | "PABRT", | ||
56 | "RIPRR", | ||
57 | "PPERR", | ||
58 | "FTRGT", | ||
59 | "RISCI", | ||
60 | "RACK" | ||
61 | }; | ||
62 | |||
63 | static int devs; | ||
64 | |||
65 | static irqreturn_t hopper_irq_handler(int irq, void *dev_id) | ||
66 | { | ||
67 | u32 stat = 0, mask = 0, lstat = 0, mstat = 0; | ||
68 | u32 rst_stat = 0, rst_mask = 0; | ||
69 | |||
70 | struct mantis_pci *mantis; | ||
71 | struct mantis_ca *ca; | ||
72 | |||
73 | mantis = (struct mantis_pci *) dev_id; | ||
74 | if (unlikely(mantis == NULL)) { | ||
75 | dprintk(MANTIS_ERROR, 1, "Mantis == NULL"); | ||
76 | return IRQ_NONE; | ||
77 | } | ||
78 | ca = mantis->mantis_ca; | ||
79 | |||
80 | stat = mmread(MANTIS_INT_STAT); | ||
81 | mask = mmread(MANTIS_INT_MASK); | ||
82 | mstat = lstat = stat & ~MANTIS_INT_RISCSTAT; | ||
83 | if (!(stat & mask)) | ||
84 | return IRQ_NONE; | ||
85 | |||
86 | rst_mask = MANTIS_GPIF_WRACK | | ||
87 | MANTIS_GPIF_OTHERR | | ||
88 | MANTIS_SBUF_WSTO | | ||
89 | MANTIS_GPIF_EXTIRQ; | ||
90 | |||
91 | rst_stat = mmread(MANTIS_GPIF_STATUS); | ||
92 | rst_stat &= rst_mask; | ||
93 | mmwrite(rst_stat, MANTIS_GPIF_STATUS); | ||
94 | |||
95 | mantis->mantis_int_stat = stat; | ||
96 | mantis->mantis_int_mask = mask; | ||
97 | dprintk(MANTIS_DEBUG, 0, "\n-- Stat=<%02x> Mask=<%02x> --", stat, mask); | ||
98 | if (stat & MANTIS_INT_RISCEN) { | ||
99 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[0]); | ||
100 | } | ||
101 | if (stat & MANTIS_INT_IRQ0) { | ||
102 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[1]); | ||
103 | mantis->gpif_status = rst_stat; | ||
104 | wake_up(&ca->hif_write_wq); | ||
105 | schedule_work(&ca->hif_evm_work); | ||
106 | } | ||
107 | if (stat & MANTIS_INT_IRQ1) { | ||
108 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]); | ||
109 | schedule_work(&mantis->uart_work); | ||
110 | } | ||
111 | if (stat & MANTIS_INT_OCERR) { | ||
112 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]); | ||
113 | } | ||
114 | if (stat & MANTIS_INT_PABORT) { | ||
115 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[4]); | ||
116 | } | ||
117 | if (stat & MANTIS_INT_RIPERR) { | ||
118 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[5]); | ||
119 | } | ||
120 | if (stat & MANTIS_INT_PPERR) { | ||
121 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[6]); | ||
122 | } | ||
123 | if (stat & MANTIS_INT_FTRGT) { | ||
124 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[7]); | ||
125 | } | ||
126 | if (stat & MANTIS_INT_RISCI) { | ||
127 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[8]); | ||
128 | mantis->finished_block = (stat & MANTIS_INT_RISCSTAT) >> 28; | ||
129 | tasklet_schedule(&mantis->tasklet); | ||
130 | } | ||
131 | if (stat & MANTIS_INT_I2CDONE) { | ||
132 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[9]); | ||
133 | wake_up(&mantis->i2c_wq); | ||
134 | } | ||
135 | mmwrite(stat, MANTIS_INT_STAT); | ||
136 | stat &= ~(MANTIS_INT_RISCEN | MANTIS_INT_I2CDONE | | ||
137 | MANTIS_INT_I2CRACK | MANTIS_INT_PCMCIA7 | | ||
138 | MANTIS_INT_PCMCIA6 | MANTIS_INT_PCMCIA5 | | ||
139 | MANTIS_INT_PCMCIA4 | MANTIS_INT_PCMCIA3 | | ||
140 | MANTIS_INT_PCMCIA2 | MANTIS_INT_PCMCIA1 | | ||
141 | MANTIS_INT_PCMCIA0 | MANTIS_INT_IRQ1 | | ||
142 | MANTIS_INT_IRQ0 | MANTIS_INT_OCERR | | ||
143 | MANTIS_INT_PABORT | MANTIS_INT_RIPERR | | ||
144 | MANTIS_INT_PPERR | MANTIS_INT_FTRGT | | ||
145 | MANTIS_INT_RISCI); | ||
146 | |||
147 | if (stat) | ||
148 | dprintk(MANTIS_DEBUG, 0, "<Unknown> Stat=<%02x> Mask=<%02x>", stat, mask); | ||
149 | |||
150 | dprintk(MANTIS_DEBUG, 0, "\n"); | ||
151 | return IRQ_HANDLED; | ||
152 | } | ||
153 | |||
154 | static int __devinit hopper_pci_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id) | ||
155 | { | ||
156 | struct mantis_pci *mantis; | ||
157 | struct mantis_hwconfig *config; | ||
158 | int err = 0; | ||
159 | |||
160 | mantis = kzalloc(sizeof(struct mantis_pci), GFP_KERNEL); | ||
161 | if (mantis == NULL) { | ||
162 | printk(KERN_ERR "%s ERROR: Out of memory\n", __func__); | ||
163 | err = -ENOMEM; | ||
164 | goto fail0; | ||
165 | } | ||
166 | |||
167 | mantis->num = devs; | ||
168 | mantis->verbose = verbose; | ||
169 | mantis->pdev = pdev; | ||
170 | config = (struct mantis_hwconfig *) pci_id->driver_data; | ||
171 | config->irq_handler = &hopper_irq_handler; | ||
172 | mantis->hwconfig = config; | ||
173 | |||
174 | err = mantis_pci_init(mantis); | ||
175 | if (err) { | ||
176 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis PCI initialization failed <%d>", err); | ||
177 | goto fail1; | ||
178 | } | ||
179 | |||
180 | err = mantis_stream_control(mantis, STREAM_TO_HIF); | ||
181 | if (err < 0) { | ||
182 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis stream control failed <%d>", err); | ||
183 | goto fail1; | ||
184 | } | ||
185 | |||
186 | err = mantis_i2c_init(mantis); | ||
187 | if (err < 0) { | ||
188 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis I2C initialization failed <%d>", err); | ||
189 | goto fail2; | ||
190 | } | ||
191 | |||
192 | err = mantis_get_mac(mantis); | ||
193 | if (err < 0) { | ||
194 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis MAC address read failed <%d>", err); | ||
195 | goto fail2; | ||
196 | } | ||
197 | |||
198 | err = mantis_dma_init(mantis); | ||
199 | if (err < 0) { | ||
200 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DMA initialization failed <%d>", err); | ||
201 | goto fail3; | ||
202 | } | ||
203 | |||
204 | err = mantis_dvb_init(mantis); | ||
205 | if (err < 0) { | ||
206 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DVB initialization failed <%d>", err); | ||
207 | goto fail4; | ||
208 | } | ||
209 | devs++; | ||
210 | |||
211 | return err; | ||
212 | |||
213 | fail4: | ||
214 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DMA exit! <%d>", err); | ||
215 | mantis_dma_exit(mantis); | ||
216 | |||
217 | fail3: | ||
218 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis I2C exit! <%d>", err); | ||
219 | mantis_i2c_exit(mantis); | ||
220 | |||
221 | fail2: | ||
222 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis PCI exit! <%d>", err); | ||
223 | mantis_pci_exit(mantis); | ||
224 | |||
225 | fail1: | ||
226 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis free! <%d>", err); | ||
227 | kfree(mantis); | ||
228 | |||
229 | fail0: | ||
230 | return err; | ||
231 | } | ||
232 | |||
233 | static void __devexit hopper_pci_remove(struct pci_dev *pdev) | ||
234 | { | ||
235 | struct mantis_pci *mantis = pci_get_drvdata(pdev); | ||
236 | |||
237 | if (mantis) { | ||
238 | mantis_dvb_exit(mantis); | ||
239 | mantis_dma_exit(mantis); | ||
240 | mantis_i2c_exit(mantis); | ||
241 | mantis_pci_exit(mantis); | ||
242 | kfree(mantis); | ||
243 | } | ||
244 | return; | ||
245 | |||
246 | } | ||
247 | |||
248 | static struct pci_device_id hopper_pci_table[] = { | ||
249 | MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_3028_DVB_T, &vp3028_config), | ||
250 | { } | ||
251 | }; | ||
252 | |||
253 | static struct pci_driver hopper_pci_driver = { | ||
254 | .name = DRIVER_NAME, | ||
255 | .id_table = hopper_pci_table, | ||
256 | .probe = hopper_pci_probe, | ||
257 | .remove = hopper_pci_remove, | ||
258 | }; | ||
259 | |||
260 | static int __devinit hopper_init(void) | ||
261 | { | ||
262 | return pci_register_driver(&hopper_pci_driver); | ||
263 | } | ||
264 | |||
265 | static void __devexit hopper_exit(void) | ||
266 | { | ||
267 | return pci_unregister_driver(&hopper_pci_driver); | ||
268 | } | ||
269 | |||
270 | module_init(hopper_init); | ||
271 | module_exit(hopper_exit); | ||
272 | |||
273 | MODULE_DESCRIPTION("HOPPER driver"); | ||
274 | MODULE_AUTHOR("Manu Abraham"); | ||
275 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/media/dvb/mantis/hopper_vp3028.c b/drivers/media/dvb/mantis/hopper_vp3028.c new file mode 100644 index 00000000000..96674c78e86 --- /dev/null +++ b/drivers/media/dvb/mantis/hopper_vp3028.c | |||
@@ -0,0 +1,88 @@ | |||
1 | /* | ||
2 | Hopper VP-3028 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/signal.h> | ||
22 | #include <linux/sched.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | |||
25 | #include "dmxdev.h" | ||
26 | #include "dvbdev.h" | ||
27 | #include "dvb_demux.h" | ||
28 | #include "dvb_frontend.h" | ||
29 | #include "dvb_net.h" | ||
30 | |||
31 | #include "zl10353.h" | ||
32 | #include "mantis_common.h" | ||
33 | #include "mantis_ioc.h" | ||
34 | #include "mantis_dvb.h" | ||
35 | #include "hopper_vp3028.h" | ||
36 | |||
37 | struct zl10353_config hopper_vp3028_config = { | ||
38 | .demod_address = 0x0f, | ||
39 | }; | ||
40 | |||
41 | #define MANTIS_MODEL_NAME "VP-3028" | ||
42 | #define MANTIS_DEV_TYPE "DVB-T" | ||
43 | |||
44 | static int vp3028_frontend_init(struct mantis_pci *mantis, struct dvb_frontend *fe) | ||
45 | { | ||
46 | struct i2c_adapter *adapter = &mantis->adapter; | ||
47 | struct mantis_hwconfig *config = mantis->hwconfig; | ||
48 | int err = 0; | ||
49 | |||
50 | gpio_set_bits(mantis, config->reset, 0); | ||
51 | msleep(100); | ||
52 | err = mantis_frontend_power(mantis, POWER_ON); | ||
53 | msleep(100); | ||
54 | gpio_set_bits(mantis, config->reset, 1); | ||
55 | |||
56 | err = mantis_frontend_power(mantis, POWER_ON); | ||
57 | if (err == 0) { | ||
58 | msleep(250); | ||
59 | dprintk(MANTIS_ERROR, 1, "Probing for 10353 (DVB-T)"); | ||
60 | fe = zl10353_attach(&hopper_vp3028_config, adapter); | ||
61 | |||
62 | if (!fe) | ||
63 | return -1; | ||
64 | } else { | ||
65 | dprintk(MANTIS_ERROR, 1, "Frontend on <%s> POWER ON failed! <%d>", | ||
66 | adapter->name, | ||
67 | err); | ||
68 | |||
69 | return -EIO; | ||
70 | } | ||
71 | dprintk(MANTIS_ERROR, 1, "Done!"); | ||
72 | |||
73 | return 0; | ||
74 | } | ||
75 | |||
76 | struct mantis_hwconfig vp3028_config = { | ||
77 | .model_name = MANTIS_MODEL_NAME, | ||
78 | .dev_type = MANTIS_DEV_TYPE, | ||
79 | .ts_size = MANTIS_TS_188, | ||
80 | |||
81 | .baud_rate = MANTIS_BAUD_9600, | ||
82 | .parity = MANTIS_PARITY_NONE, | ||
83 | .bytes = 0, | ||
84 | |||
85 | .frontend_init = vp3028_frontend_init, | ||
86 | .power = GPIF_A00, | ||
87 | .reset = GPIF_A03, | ||
88 | }; | ||
diff --git a/drivers/media/dvb/mantis/hopper_vp3028.h b/drivers/media/dvb/mantis/hopper_vp3028.h new file mode 100644 index 00000000000..57239498bc8 --- /dev/null +++ b/drivers/media/dvb/mantis/hopper_vp3028.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | Hopper VP-3028 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_VP3028_H | ||
22 | #define __MANTIS_VP3028_H | ||
23 | |||
24 | #include "mantis_common.h" | ||
25 | |||
26 | #define MANTIS_VP_3028_DVB_T 0x0028 | ||
27 | |||
28 | extern struct mantis_hwconfig vp3028_config; | ||
29 | |||
30 | #endif /* __MANTIS_VP3028_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_ca.c b/drivers/media/dvb/mantis/mantis_ca.c new file mode 100644 index 00000000000..403ce043d00 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_ca.c | |||
@@ -0,0 +1,207 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/signal.h> | ||
22 | #include <linux/sched.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | |||
25 | #include "dmxdev.h" | ||
26 | #include "dvbdev.h" | ||
27 | #include "dvb_demux.h" | ||
28 | #include "dvb_frontend.h" | ||
29 | #include "dvb_net.h" | ||
30 | |||
31 | #include "mantis_common.h" | ||
32 | #include "mantis_link.h" | ||
33 | #include "mantis_hif.h" | ||
34 | #include "mantis_reg.h" | ||
35 | |||
36 | #include "mantis_ca.h" | ||
37 | |||
38 | static int mantis_ca_read_attr_mem(struct dvb_ca_en50221 *en50221, int slot, int addr) | ||
39 | { | ||
40 | struct mantis_ca *ca = en50221->data; | ||
41 | struct mantis_pci *mantis = ca->ca_priv; | ||
42 | |||
43 | dprintk(MANTIS_DEBUG, 1, "Slot(%d): Request Attribute Mem Read", slot); | ||
44 | |||
45 | if (slot != 0) | ||
46 | return -EINVAL; | ||
47 | |||
48 | return mantis_hif_read_mem(ca, addr); | ||
49 | } | ||
50 | |||
51 | static int mantis_ca_write_attr_mem(struct dvb_ca_en50221 *en50221, int slot, int addr, u8 data) | ||
52 | { | ||
53 | struct mantis_ca *ca = en50221->data; | ||
54 | struct mantis_pci *mantis = ca->ca_priv; | ||
55 | |||
56 | dprintk(MANTIS_DEBUG, 1, "Slot(%d): Request Attribute Mem Write", slot); | ||
57 | |||
58 | if (slot != 0) | ||
59 | return -EINVAL; | ||
60 | |||
61 | return mantis_hif_write_mem(ca, addr, data); | ||
62 | } | ||
63 | |||
64 | static int mantis_ca_read_cam_ctl(struct dvb_ca_en50221 *en50221, int slot, u8 addr) | ||
65 | { | ||
66 | struct mantis_ca *ca = en50221->data; | ||
67 | struct mantis_pci *mantis = ca->ca_priv; | ||
68 | |||
69 | dprintk(MANTIS_DEBUG, 1, "Slot(%d): Request CAM control Read", slot); | ||
70 | |||
71 | if (slot != 0) | ||
72 | return -EINVAL; | ||
73 | |||
74 | return mantis_hif_read_iom(ca, addr); | ||
75 | } | ||
76 | |||
77 | static int mantis_ca_write_cam_ctl(struct dvb_ca_en50221 *en50221, int slot, u8 addr, u8 data) | ||
78 | { | ||
79 | struct mantis_ca *ca = en50221->data; | ||
80 | struct mantis_pci *mantis = ca->ca_priv; | ||
81 | |||
82 | dprintk(MANTIS_DEBUG, 1, "Slot(%d): Request CAM control Write", slot); | ||
83 | |||
84 | if (slot != 0) | ||
85 | return -EINVAL; | ||
86 | |||
87 | return mantis_hif_write_iom(ca, addr, data); | ||
88 | } | ||
89 | |||
90 | static int mantis_ca_slot_reset(struct dvb_ca_en50221 *en50221, int slot) | ||
91 | { | ||
92 | struct mantis_ca *ca = en50221->data; | ||
93 | struct mantis_pci *mantis = ca->ca_priv; | ||
94 | |||
95 | dprintk(MANTIS_DEBUG, 1, "Slot(%d): Slot RESET", slot); | ||
96 | udelay(500); /* Wait.. */ | ||
97 | mmwrite(0xda, MANTIS_PCMCIA_RESET); /* Leading edge assert */ | ||
98 | udelay(500); | ||
99 | mmwrite(0x00, MANTIS_PCMCIA_RESET); /* Trailing edge deassert */ | ||
100 | msleep(1000); | ||
101 | dvb_ca_en50221_camready_irq(&ca->en50221, 0); | ||
102 | |||
103 | return 0; | ||
104 | } | ||
105 | |||
106 | static int mantis_ca_slot_shutdown(struct dvb_ca_en50221 *en50221, int slot) | ||
107 | { | ||
108 | struct mantis_ca *ca = en50221->data; | ||
109 | struct mantis_pci *mantis = ca->ca_priv; | ||
110 | |||
111 | dprintk(MANTIS_DEBUG, 1, "Slot(%d): Slot shutdown", slot); | ||
112 | |||
113 | return 0; | ||
114 | } | ||
115 | |||
116 | static int mantis_ts_control(struct dvb_ca_en50221 *en50221, int slot) | ||
117 | { | ||
118 | struct mantis_ca *ca = en50221->data; | ||
119 | struct mantis_pci *mantis = ca->ca_priv; | ||
120 | |||
121 | dprintk(MANTIS_DEBUG, 1, "Slot(%d): TS control", slot); | ||
122 | /* mantis_set_direction(mantis, 1); */ /* Enable TS through CAM */ | ||
123 | |||
124 | return 0; | ||
125 | } | ||
126 | |||
127 | static int mantis_slot_status(struct dvb_ca_en50221 *en50221, int slot, int open) | ||
128 | { | ||
129 | struct mantis_ca *ca = en50221->data; | ||
130 | struct mantis_pci *mantis = ca->ca_priv; | ||
131 | |||
132 | dprintk(MANTIS_DEBUG, 1, "Slot(%d): Poll Slot status", slot); | ||
133 | |||
134 | if (ca->slot_state == MODULE_INSERTED) { | ||
135 | dprintk(MANTIS_DEBUG, 1, "CA Module present and ready"); | ||
136 | return DVB_CA_EN50221_POLL_CAM_PRESENT | DVB_CA_EN50221_POLL_CAM_READY; | ||
137 | } else { | ||
138 | dprintk(MANTIS_DEBUG, 1, "CA Module not present or not ready"); | ||
139 | } | ||
140 | |||
141 | return 0; | ||
142 | } | ||
143 | |||
144 | int mantis_ca_init(struct mantis_pci *mantis) | ||
145 | { | ||
146 | struct dvb_adapter *dvb_adapter = &mantis->dvb_adapter; | ||
147 | struct mantis_ca *ca; | ||
148 | int ca_flags = 0, result; | ||
149 | |||
150 | dprintk(MANTIS_DEBUG, 1, "Initializing Mantis CA"); | ||
151 | ca = kzalloc(sizeof(struct mantis_ca), GFP_KERNEL); | ||
152 | if (!ca) { | ||
153 | dprintk(MANTIS_ERROR, 1, "Out of memory!, exiting .."); | ||
154 | result = -ENOMEM; | ||
155 | goto err; | ||
156 | } | ||
157 | |||
158 | ca->ca_priv = mantis; | ||
159 | mantis->mantis_ca = ca; | ||
160 | ca_flags = DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE; | ||
161 | /* register CA interface */ | ||
162 | ca->en50221.owner = THIS_MODULE; | ||
163 | ca->en50221.read_attribute_mem = mantis_ca_read_attr_mem; | ||
164 | ca->en50221.write_attribute_mem = mantis_ca_write_attr_mem; | ||
165 | ca->en50221.read_cam_control = mantis_ca_read_cam_ctl; | ||
166 | ca->en50221.write_cam_control = mantis_ca_write_cam_ctl; | ||
167 | ca->en50221.slot_reset = mantis_ca_slot_reset; | ||
168 | ca->en50221.slot_shutdown = mantis_ca_slot_shutdown; | ||
169 | ca->en50221.slot_ts_enable = mantis_ts_control; | ||
170 | ca->en50221.poll_slot_status = mantis_slot_status; | ||
171 | ca->en50221.data = ca; | ||
172 | |||
173 | mutex_init(&ca->ca_lock); | ||
174 | |||
175 | init_waitqueue_head(&ca->hif_data_wq); | ||
176 | init_waitqueue_head(&ca->hif_opdone_wq); | ||
177 | init_waitqueue_head(&ca->hif_write_wq); | ||
178 | |||
179 | dprintk(MANTIS_ERROR, 1, "Registering EN50221 device"); | ||
180 | result = dvb_ca_en50221_init(dvb_adapter, &ca->en50221, ca_flags, 1); | ||
181 | if (result != 0) { | ||
182 | dprintk(MANTIS_ERROR, 1, "EN50221: Initialization failed <%d>", result); | ||
183 | goto err; | ||
184 | } | ||
185 | dprintk(MANTIS_ERROR, 1, "Registered EN50221 device"); | ||
186 | mantis_evmgr_init(ca); | ||
187 | return 0; | ||
188 | err: | ||
189 | kfree(ca); | ||
190 | return result; | ||
191 | } | ||
192 | EXPORT_SYMBOL_GPL(mantis_ca_init); | ||
193 | |||
194 | void mantis_ca_exit(struct mantis_pci *mantis) | ||
195 | { | ||
196 | struct mantis_ca *ca = mantis->mantis_ca; | ||
197 | |||
198 | dprintk(MANTIS_DEBUG, 1, "Mantis CA exit"); | ||
199 | |||
200 | mantis_evmgr_exit(ca); | ||
201 | dprintk(MANTIS_ERROR, 1, "Unregistering EN50221 device"); | ||
202 | if (ca) | ||
203 | dvb_ca_en50221_release(&ca->en50221); | ||
204 | |||
205 | kfree(ca); | ||
206 | } | ||
207 | EXPORT_SYMBOL_GPL(mantis_ca_exit); | ||
diff --git a/drivers/media/dvb/mantis/mantis_ca.h b/drivers/media/dvb/mantis/mantis_ca.h new file mode 100644 index 00000000000..dc63e55f7ec --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_ca.h | |||
@@ -0,0 +1,27 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_CA_H | ||
22 | #define __MANTIS_CA_H | ||
23 | |||
24 | extern int mantis_ca_init(struct mantis_pci *mantis); | ||
25 | extern void mantis_ca_exit(struct mantis_pci *mantis); | ||
26 | |||
27 | #endif /* __MANTIS_CA_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_cards.c b/drivers/media/dvb/mantis/mantis_cards.c new file mode 100644 index 00000000000..16f1708fd3b --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_cards.c | |||
@@ -0,0 +1,305 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/module.h> | ||
22 | #include <linux/moduleparam.h> | ||
23 | #include <linux/kernel.h> | ||
24 | #include <linux/pci.h> | ||
25 | #include <asm/irq.h> | ||
26 | #include <linux/interrupt.h> | ||
27 | |||
28 | #include "dmxdev.h" | ||
29 | #include "dvbdev.h" | ||
30 | #include "dvb_demux.h" | ||
31 | #include "dvb_frontend.h" | ||
32 | #include "dvb_net.h" | ||
33 | |||
34 | #include "mantis_common.h" | ||
35 | |||
36 | #include "mantis_vp1033.h" | ||
37 | #include "mantis_vp1034.h" | ||
38 | #include "mantis_vp1041.h" | ||
39 | #include "mantis_vp2033.h" | ||
40 | #include "mantis_vp2040.h" | ||
41 | #include "mantis_vp3030.h" | ||
42 | |||
43 | #include "mantis_dma.h" | ||
44 | #include "mantis_ca.h" | ||
45 | #include "mantis_dvb.h" | ||
46 | #include "mantis_uart.h" | ||
47 | #include "mantis_ioc.h" | ||
48 | #include "mantis_pci.h" | ||
49 | #include "mantis_i2c.h" | ||
50 | #include "mantis_reg.h" | ||
51 | |||
52 | static unsigned int verbose; | ||
53 | module_param(verbose, int, 0644); | ||
54 | MODULE_PARM_DESC(verbose, "verbose startup messages, default is 1 (yes)"); | ||
55 | |||
56 | static int devs; | ||
57 | |||
58 | #define DRIVER_NAME "Mantis" | ||
59 | |||
60 | static char *label[10] = { | ||
61 | "DMA", | ||
62 | "IRQ-0", | ||
63 | "IRQ-1", | ||
64 | "OCERR", | ||
65 | "PABRT", | ||
66 | "RIPRR", | ||
67 | "PPERR", | ||
68 | "FTRGT", | ||
69 | "RISCI", | ||
70 | "RACK" | ||
71 | }; | ||
72 | |||
73 | static irqreturn_t mantis_irq_handler(int irq, void *dev_id) | ||
74 | { | ||
75 | u32 stat = 0, mask = 0, lstat = 0, mstat = 0; | ||
76 | u32 rst_stat = 0, rst_mask = 0; | ||
77 | |||
78 | struct mantis_pci *mantis; | ||
79 | struct mantis_ca *ca; | ||
80 | |||
81 | mantis = (struct mantis_pci *) dev_id; | ||
82 | if (unlikely(mantis == NULL)) { | ||
83 | dprintk(MANTIS_ERROR, 1, "Mantis == NULL"); | ||
84 | return IRQ_NONE; | ||
85 | } | ||
86 | ca = mantis->mantis_ca; | ||
87 | |||
88 | stat = mmread(MANTIS_INT_STAT); | ||
89 | mask = mmread(MANTIS_INT_MASK); | ||
90 | mstat = lstat = stat & ~MANTIS_INT_RISCSTAT; | ||
91 | if (!(stat & mask)) | ||
92 | return IRQ_NONE; | ||
93 | |||
94 | rst_mask = MANTIS_GPIF_WRACK | | ||
95 | MANTIS_GPIF_OTHERR | | ||
96 | MANTIS_SBUF_WSTO | | ||
97 | MANTIS_GPIF_EXTIRQ; | ||
98 | |||
99 | rst_stat = mmread(MANTIS_GPIF_STATUS); | ||
100 | rst_stat &= rst_mask; | ||
101 | mmwrite(rst_stat, MANTIS_GPIF_STATUS); | ||
102 | |||
103 | mantis->mantis_int_stat = stat; | ||
104 | mantis->mantis_int_mask = mask; | ||
105 | dprintk(MANTIS_DEBUG, 0, "\n-- Stat=<%02x> Mask=<%02x> --", stat, mask); | ||
106 | if (stat & MANTIS_INT_RISCEN) { | ||
107 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[0]); | ||
108 | } | ||
109 | if (stat & MANTIS_INT_IRQ0) { | ||
110 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[1]); | ||
111 | mantis->gpif_status = rst_stat; | ||
112 | wake_up(&ca->hif_write_wq); | ||
113 | schedule_work(&ca->hif_evm_work); | ||
114 | } | ||
115 | if (stat & MANTIS_INT_IRQ1) { | ||
116 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]); | ||
117 | schedule_work(&mantis->uart_work); | ||
118 | } | ||
119 | if (stat & MANTIS_INT_OCERR) { | ||
120 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[3]); | ||
121 | } | ||
122 | if (stat & MANTIS_INT_PABORT) { | ||
123 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[4]); | ||
124 | } | ||
125 | if (stat & MANTIS_INT_RIPERR) { | ||
126 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[5]); | ||
127 | } | ||
128 | if (stat & MANTIS_INT_PPERR) { | ||
129 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[6]); | ||
130 | } | ||
131 | if (stat & MANTIS_INT_FTRGT) { | ||
132 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[7]); | ||
133 | } | ||
134 | if (stat & MANTIS_INT_RISCI) { | ||
135 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[8]); | ||
136 | mantis->finished_block = (stat & MANTIS_INT_RISCSTAT) >> 28; | ||
137 | tasklet_schedule(&mantis->tasklet); | ||
138 | } | ||
139 | if (stat & MANTIS_INT_I2CDONE) { | ||
140 | dprintk(MANTIS_DEBUG, 0, "<%s>", label[9]); | ||
141 | wake_up(&mantis->i2c_wq); | ||
142 | } | ||
143 | mmwrite(stat, MANTIS_INT_STAT); | ||
144 | stat &= ~(MANTIS_INT_RISCEN | MANTIS_INT_I2CDONE | | ||
145 | MANTIS_INT_I2CRACK | MANTIS_INT_PCMCIA7 | | ||
146 | MANTIS_INT_PCMCIA6 | MANTIS_INT_PCMCIA5 | | ||
147 | MANTIS_INT_PCMCIA4 | MANTIS_INT_PCMCIA3 | | ||
148 | MANTIS_INT_PCMCIA2 | MANTIS_INT_PCMCIA1 | | ||
149 | MANTIS_INT_PCMCIA0 | MANTIS_INT_IRQ1 | | ||
150 | MANTIS_INT_IRQ0 | MANTIS_INT_OCERR | | ||
151 | MANTIS_INT_PABORT | MANTIS_INT_RIPERR | | ||
152 | MANTIS_INT_PPERR | MANTIS_INT_FTRGT | | ||
153 | MANTIS_INT_RISCI); | ||
154 | |||
155 | if (stat) | ||
156 | dprintk(MANTIS_DEBUG, 0, "<Unknown> Stat=<%02x> Mask=<%02x>", stat, mask); | ||
157 | |||
158 | dprintk(MANTIS_DEBUG, 0, "\n"); | ||
159 | return IRQ_HANDLED; | ||
160 | } | ||
161 | |||
162 | static int __devinit mantis_pci_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id) | ||
163 | { | ||
164 | struct mantis_pci *mantis; | ||
165 | struct mantis_hwconfig *config; | ||
166 | int err = 0; | ||
167 | |||
168 | mantis = kzalloc(sizeof(struct mantis_pci), GFP_KERNEL); | ||
169 | if (mantis == NULL) { | ||
170 | printk(KERN_ERR "%s ERROR: Out of memory\n", __func__); | ||
171 | err = -ENOMEM; | ||
172 | goto fail0; | ||
173 | } | ||
174 | |||
175 | mantis->num = devs; | ||
176 | mantis->verbose = verbose; | ||
177 | mantis->pdev = pdev; | ||
178 | config = (struct mantis_hwconfig *) pci_id->driver_data; | ||
179 | config->irq_handler = &mantis_irq_handler; | ||
180 | mantis->hwconfig = config; | ||
181 | |||
182 | err = mantis_pci_init(mantis); | ||
183 | if (err) { | ||
184 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis PCI initialization failed <%d>", err); | ||
185 | goto fail1; | ||
186 | } | ||
187 | |||
188 | err = mantis_stream_control(mantis, STREAM_TO_HIF); | ||
189 | if (err < 0) { | ||
190 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis stream control failed <%d>", err); | ||
191 | goto fail1; | ||
192 | } | ||
193 | |||
194 | err = mantis_i2c_init(mantis); | ||
195 | if (err < 0) { | ||
196 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis I2C initialization failed <%d>", err); | ||
197 | goto fail2; | ||
198 | } | ||
199 | |||
200 | err = mantis_get_mac(mantis); | ||
201 | if (err < 0) { | ||
202 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis MAC address read failed <%d>", err); | ||
203 | goto fail2; | ||
204 | } | ||
205 | |||
206 | err = mantis_dma_init(mantis); | ||
207 | if (err < 0) { | ||
208 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DMA initialization failed <%d>", err); | ||
209 | goto fail3; | ||
210 | } | ||
211 | |||
212 | err = mantis_dvb_init(mantis); | ||
213 | if (err < 0) { | ||
214 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DVB initialization failed <%d>", err); | ||
215 | goto fail4; | ||
216 | } | ||
217 | err = mantis_uart_init(mantis); | ||
218 | if (err < 0) { | ||
219 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART initialization failed <%d>", err); | ||
220 | goto fail6; | ||
221 | } | ||
222 | |||
223 | devs++; | ||
224 | |||
225 | return err; | ||
226 | |||
227 | |||
228 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis UART exit! <%d>", err); | ||
229 | mantis_uart_exit(mantis); | ||
230 | |||
231 | fail6: | ||
232 | fail4: | ||
233 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DMA exit! <%d>", err); | ||
234 | mantis_dma_exit(mantis); | ||
235 | |||
236 | fail3: | ||
237 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis I2C exit! <%d>", err); | ||
238 | mantis_i2c_exit(mantis); | ||
239 | |||
240 | fail2: | ||
241 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis PCI exit! <%d>", err); | ||
242 | mantis_pci_exit(mantis); | ||
243 | |||
244 | fail1: | ||
245 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis free! <%d>", err); | ||
246 | kfree(mantis); | ||
247 | |||
248 | fail0: | ||
249 | return err; | ||
250 | } | ||
251 | |||
252 | static void __devexit mantis_pci_remove(struct pci_dev *pdev) | ||
253 | { | ||
254 | struct mantis_pci *mantis = pci_get_drvdata(pdev); | ||
255 | |||
256 | if (mantis) { | ||
257 | |||
258 | mantis_uart_exit(mantis); | ||
259 | mantis_dvb_exit(mantis); | ||
260 | mantis_dma_exit(mantis); | ||
261 | mantis_i2c_exit(mantis); | ||
262 | mantis_pci_exit(mantis); | ||
263 | kfree(mantis); | ||
264 | } | ||
265 | return; | ||
266 | } | ||
267 | |||
268 | static struct pci_device_id mantis_pci_table[] = { | ||
269 | MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_1033_DVB_S, &vp1033_config), | ||
270 | MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_1034_DVB_S, &vp1034_config), | ||
271 | MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_1041_DVB_S2, &vp1041_config), | ||
272 | MAKE_ENTRY(TECHNISAT, SKYSTAR_HD2_10, &vp1041_config), | ||
273 | MAKE_ENTRY(TECHNISAT, SKYSTAR_HD2_20, &vp1041_config), | ||
274 | MAKE_ENTRY(TERRATEC, CINERGY_S2_PCI_HD, &vp1041_config), | ||
275 | MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_2033_DVB_C, &vp2033_config), | ||
276 | MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_2040_DVB_C, &vp2040_config), | ||
277 | MAKE_ENTRY(TECHNISAT, CABLESTAR_HD2, &vp2040_config), | ||
278 | MAKE_ENTRY(TERRATEC, CINERGY_C, &vp2033_config), | ||
279 | MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_3030_DVB_T, &vp3030_config), | ||
280 | { } | ||
281 | }; | ||
282 | |||
283 | static struct pci_driver mantis_pci_driver = { | ||
284 | .name = DRIVER_NAME, | ||
285 | .id_table = mantis_pci_table, | ||
286 | .probe = mantis_pci_probe, | ||
287 | .remove = mantis_pci_remove, | ||
288 | }; | ||
289 | |||
290 | static int __devinit mantis_init(void) | ||
291 | { | ||
292 | return pci_register_driver(&mantis_pci_driver); | ||
293 | } | ||
294 | |||
295 | static void __devexit mantis_exit(void) | ||
296 | { | ||
297 | return pci_unregister_driver(&mantis_pci_driver); | ||
298 | } | ||
299 | |||
300 | module_init(mantis_init); | ||
301 | module_exit(mantis_exit); | ||
302 | |||
303 | MODULE_DESCRIPTION("MANTIS driver"); | ||
304 | MODULE_AUTHOR("Manu Abraham"); | ||
305 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/media/dvb/mantis/mantis_common.h b/drivers/media/dvb/mantis/mantis_common.h new file mode 100644 index 00000000000..d0b645a483c --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_common.h | |||
@@ -0,0 +1,179 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_COMMON_H | ||
22 | #define __MANTIS_COMMON_H | ||
23 | |||
24 | #include <linux/mutex.h> | ||
25 | #include <linux/workqueue.h> | ||
26 | |||
27 | #include "mantis_uart.h" | ||
28 | |||
29 | #include "mantis_link.h" | ||
30 | |||
31 | #define MANTIS_ERROR 0 | ||
32 | #define MANTIS_NOTICE 1 | ||
33 | #define MANTIS_INFO 2 | ||
34 | #define MANTIS_DEBUG 3 | ||
35 | #define MANTIS_TMG 9 | ||
36 | |||
37 | #define dprintk(y, z, format, arg...) do { \ | ||
38 | if (z) { \ | ||
39 | if ((mantis->verbose > MANTIS_ERROR) && (mantis->verbose > y)) \ | ||
40 | printk(KERN_ERR "%s (%d): " format "\n" , __func__ , mantis->num , ##arg); \ | ||
41 | else if ((mantis->verbose > MANTIS_NOTICE) && (mantis->verbose > y)) \ | ||
42 | printk(KERN_NOTICE "%s (%d): " format "\n" , __func__ , mantis->num , ##arg); \ | ||
43 | else if ((mantis->verbose > MANTIS_INFO) && (mantis->verbose > y)) \ | ||
44 | printk(KERN_INFO "%s (%d): " format "\n" , __func__ , mantis->num , ##arg); \ | ||
45 | else if ((mantis->verbose > MANTIS_DEBUG) && (mantis->verbose > y)) \ | ||
46 | printk(KERN_DEBUG "%s (%d): " format "\n" , __func__ , mantis->num , ##arg); \ | ||
47 | else if ((mantis->verbose > MANTIS_TMG) && (mantis->verbose > y)) \ | ||
48 | printk(KERN_DEBUG "%s (%d): " format "\n" , __func__ , mantis->num , ##arg); \ | ||
49 | } else { \ | ||
50 | if (mantis->verbose > y) \ | ||
51 | printk(format , ##arg); \ | ||
52 | } \ | ||
53 | } while(0) | ||
54 | |||
55 | #define mwrite(dat, addr) writel((dat), addr) | ||
56 | #define mread(addr) readl(addr) | ||
57 | |||
58 | #define mmwrite(dat, addr) mwrite((dat), (mantis->mmio + (addr))) | ||
59 | #define mmread(addr) mread(mantis->mmio + (addr)) | ||
60 | |||
61 | #define MANTIS_TS_188 0 | ||
62 | #define MANTIS_TS_204 1 | ||
63 | |||
64 | #define TWINHAN_TECHNOLOGIES 0x1822 | ||
65 | #define MANTIS 0x4e35 | ||
66 | |||
67 | #define TECHNISAT 0x1ae4 | ||
68 | #define TERRATEC 0x153b | ||
69 | |||
70 | #define MAKE_ENTRY(__subven, __subdev, __configptr) { \ | ||
71 | .vendor = TWINHAN_TECHNOLOGIES, \ | ||
72 | .device = MANTIS, \ | ||
73 | .subvendor = (__subven), \ | ||
74 | .subdevice = (__subdev), \ | ||
75 | .driver_data = (unsigned long) (__configptr) \ | ||
76 | } | ||
77 | |||
78 | enum mantis_i2c_mode { | ||
79 | MANTIS_PAGE_MODE = 0, | ||
80 | MANTIS_BYTE_MODE, | ||
81 | }; | ||
82 | |||
83 | struct mantis_pci; | ||
84 | |||
85 | struct mantis_hwconfig { | ||
86 | char *model_name; | ||
87 | char *dev_type; | ||
88 | u32 ts_size; | ||
89 | |||
90 | enum mantis_baud baud_rate; | ||
91 | enum mantis_parity parity; | ||
92 | u32 bytes; | ||
93 | |||
94 | irqreturn_t (*irq_handler)(int irq, void *dev_id); | ||
95 | int (*frontend_init)(struct mantis_pci *mantis, struct dvb_frontend *fe); | ||
96 | |||
97 | u8 power; | ||
98 | u8 reset; | ||
99 | |||
100 | enum mantis_i2c_mode i2c_mode; | ||
101 | }; | ||
102 | |||
103 | struct mantis_pci { | ||
104 | unsigned int verbose; | ||
105 | |||
106 | /* PCI stuff */ | ||
107 | u16 vendor_id; | ||
108 | u16 device_id; | ||
109 | u16 subsystem_vendor; | ||
110 | u16 subsystem_device; | ||
111 | |||
112 | u8 latency; | ||
113 | |||
114 | struct pci_dev *pdev; | ||
115 | |||
116 | unsigned long mantis_addr; | ||
117 | void __iomem *mmio; | ||
118 | |||
119 | u8 irq; | ||
120 | u8 revision; | ||
121 | |||
122 | unsigned int num; | ||
123 | |||
124 | /* RISC Core */ | ||
125 | u32 finished_block; | ||
126 | u32 last_block; | ||
127 | u32 line_bytes; | ||
128 | u32 line_count; | ||
129 | u32 risc_pos; | ||
130 | u8 *buf_cpu; | ||
131 | dma_addr_t buf_dma; | ||
132 | u32 *risc_cpu; | ||
133 | dma_addr_t risc_dma; | ||
134 | |||
135 | struct tasklet_struct tasklet; | ||
136 | |||
137 | struct i2c_adapter adapter; | ||
138 | int i2c_rc; | ||
139 | wait_queue_head_t i2c_wq; | ||
140 | struct mutex i2c_lock; | ||
141 | |||
142 | /* DVB stuff */ | ||
143 | struct dvb_adapter dvb_adapter; | ||
144 | struct dvb_frontend *fe; | ||
145 | struct dvb_demux demux; | ||
146 | struct dmxdev dmxdev; | ||
147 | struct dmx_frontend fe_hw; | ||
148 | struct dmx_frontend fe_mem; | ||
149 | struct dvb_net dvbnet; | ||
150 | |||
151 | u8 feeds; | ||
152 | |||
153 | struct mantis_hwconfig *hwconfig; | ||
154 | |||
155 | u32 mantis_int_stat; | ||
156 | u32 mantis_int_mask; | ||
157 | |||
158 | /* board specific */ | ||
159 | u8 mac_address[8]; | ||
160 | u32 sub_vendor_id; | ||
161 | u32 sub_device_id; | ||
162 | |||
163 | /* A12 A13 A14 */ | ||
164 | u32 gpio_status; | ||
165 | |||
166 | u32 gpif_status; | ||
167 | |||
168 | struct mantis_ca *mantis_ca; | ||
169 | |||
170 | wait_queue_head_t uart_wq; | ||
171 | struct work_struct uart_work; | ||
172 | spinlock_t uart_lock; | ||
173 | |||
174 | struct input_dev *rc; | ||
175 | }; | ||
176 | |||
177 | #define MANTIS_HIF_STATUS (mantis->gpio_status) | ||
178 | |||
179 | #endif /* __MANTIS_COMMON_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_core.c b/drivers/media/dvb/mantis/mantis_core.c new file mode 100644 index 00000000000..8113b23ce44 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_core.c | |||
@@ -0,0 +1,238 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include "mantis_common.h" | ||
22 | #include "mantis_core.h" | ||
23 | #include "mantis_vp1033.h" | ||
24 | #include "mantis_vp1034.h" | ||
25 | #include "mantis_vp1041.h" | ||
26 | #include "mantis_vp2033.h" | ||
27 | #include "mantis_vp2040.h" | ||
28 | #include "mantis_vp3030.h" | ||
29 | |||
30 | static int read_eeprom_byte(struct mantis_pci *mantis, u8 *data, u8 length) | ||
31 | { | ||
32 | int err; | ||
33 | struct i2c_msg msg[] = { | ||
34 | { | ||
35 | .addr = 0x50, | ||
36 | .flags = 0, | ||
37 | .buf = data, | ||
38 | .len = 1 | ||
39 | }, { | ||
40 | .addr = 0x50, | ||
41 | .flags = I2C_M_RD, | ||
42 | .buf = data, | ||
43 | .len = length | ||
44 | }, | ||
45 | }; | ||
46 | |||
47 | err = i2c_transfer(&mantis->adapter, msg, 2); | ||
48 | if (err < 0) { | ||
49 | dprintk(verbose, MANTIS_ERROR, 1, | ||
50 | "ERROR: i2c read: < err=%i d0=0x%02x d1=0x%02x >", | ||
51 | err, data[0], data[1]); | ||
52 | |||
53 | return err; | ||
54 | } | ||
55 | |||
56 | return 0; | ||
57 | } | ||
58 | |||
59 | static int write_eeprom_byte(struct mantis_pci *mantis, u8 *data, u8 length) | ||
60 | { | ||
61 | int err; | ||
62 | |||
63 | struct i2c_msg msg = { | ||
64 | .addr = 0x50, | ||
65 | .flags = 0, | ||
66 | .buf = data, | ||
67 | .len = length | ||
68 | }; | ||
69 | |||
70 | err = i2c_transfer(&mantis->adapter, &msg, 1); | ||
71 | if (err < 0) { | ||
72 | dprintk(verbose, MANTIS_ERROR, 1, | ||
73 | "ERROR: i2c write: < err=%i length=0x%02x d0=0x%02x, d1=0x%02x >", | ||
74 | err, length, data[0], data[1]); | ||
75 | |||
76 | return err; | ||
77 | } | ||
78 | |||
79 | return 0; | ||
80 | } | ||
81 | |||
82 | static int get_mac_address(struct mantis_pci *mantis) | ||
83 | { | ||
84 | int err; | ||
85 | |||
86 | mantis->mac_address[0] = 0x08; | ||
87 | err = read_eeprom_byte(mantis, &mantis->mac_address[0], 6); | ||
88 | if (err < 0) { | ||
89 | dprintk(verbose, MANTIS_ERROR, 1, "Mantis EEPROM read error"); | ||
90 | |||
91 | return err; | ||
92 | } | ||
93 | dprintk(verbose, MANTIS_ERROR, 0, | ||
94 | " MAC Address=[%02x:%02x:%02x:%02x:%02x:%02x]\n", | ||
95 | mantis->mac_address[0], mantis->mac_address[1], | ||
96 | mantis->mac_address[2], mantis->mac_address[3], | ||
97 | mantis->mac_address[4], mantis->mac_address[5]); | ||
98 | |||
99 | return 0; | ||
100 | } | ||
101 | |||
102 | #define MANTIS_MODEL_UNKNOWN "UNKNOWN" | ||
103 | #define MANTIS_DEV_UNKNOWN "UNKNOWN" | ||
104 | |||
105 | struct mantis_hwconfig unknown_device = { | ||
106 | .model_name = MANTIS_MODEL_UNKNOWN, | ||
107 | .dev_type = MANTIS_DEV_UNKNOWN, | ||
108 | }; | ||
109 | |||
110 | static void mantis_load_config(struct mantis_pci *mantis) | ||
111 | { | ||
112 | switch (mantis->subsystem_device) { | ||
113 | case MANTIS_VP_1033_DVB_S: /* VP-1033 */ | ||
114 | mantis->hwconfig = &vp1033_mantis_config; | ||
115 | break; | ||
116 | case MANTIS_VP_1034_DVB_S: /* VP-1034 */ | ||
117 | mantis->hwconfig = &vp1034_mantis_config; | ||
118 | break; | ||
119 | case MANTIS_VP_1041_DVB_S2: /* VP-1041 */ | ||
120 | case TECHNISAT_SKYSTAR_HD2: | ||
121 | mantis->hwconfig = &vp1041_mantis_config; | ||
122 | break; | ||
123 | case MANTIS_VP_2033_DVB_C: /* VP-2033 */ | ||
124 | mantis->hwconfig = &vp2033_mantis_config; | ||
125 | break; | ||
126 | case MANTIS_VP_2040_DVB_C: /* VP-2040 */ | ||
127 | case TERRATEC_CINERGY_C_PCI: /* VP-2040 clone */ | ||
128 | case TECHNISAT_CABLESTAR_HD2: | ||
129 | mantis->hwconfig = &vp2040_mantis_config; | ||
130 | break; | ||
131 | case MANTIS_VP_3030_DVB_T: /* VP-3030 */ | ||
132 | mantis->hwconfig = &vp3030_mantis_config; | ||
133 | break; | ||
134 | default: | ||
135 | mantis->hwconfig = &unknown_device; | ||
136 | break; | ||
137 | } | ||
138 | } | ||
139 | |||
140 | int mantis_core_init(struct mantis_pci *mantis) | ||
141 | { | ||
142 | int err = 0; | ||
143 | |||
144 | mantis_load_config(mantis); | ||
145 | dprintk(verbose, MANTIS_ERROR, 0, "found a %s PCI %s device on (%02x:%02x.%x),\n", | ||
146 | mantis->hwconfig->model_name, mantis->hwconfig->dev_type, | ||
147 | mantis->pdev->bus->number, PCI_SLOT(mantis->pdev->devfn), PCI_FUNC(mantis->pdev->devfn)); | ||
148 | dprintk(verbose, MANTIS_ERROR, 0, " Mantis Rev %d [%04x:%04x], ", | ||
149 | mantis->revision, | ||
150 | mantis->subsystem_vendor, mantis->subsystem_device); | ||
151 | dprintk(verbose, MANTIS_ERROR, 0, | ||
152 | "irq: %d, latency: %d\n memory: 0x%lx, mmio: 0x%p\n", | ||
153 | mantis->pdev->irq, mantis->latency, | ||
154 | mantis->mantis_addr, mantis->mantis_mmio); | ||
155 | |||
156 | err = mantis_i2c_init(mantis); | ||
157 | if (err < 0) { | ||
158 | dprintk(verbose, MANTIS_ERROR, 1, "Mantis I2C init failed"); | ||
159 | return err; | ||
160 | } | ||
161 | err = get_mac_address(mantis); | ||
162 | if (err < 0) { | ||
163 | dprintk(verbose, MANTIS_ERROR, 1, "get MAC address failed"); | ||
164 | return err; | ||
165 | } | ||
166 | err = mantis_dma_init(mantis); | ||
167 | if (err < 0) { | ||
168 | dprintk(verbose, MANTIS_ERROR, 1, "Mantis DMA init failed"); | ||
169 | return err; | ||
170 | } | ||
171 | err = mantis_dvb_init(mantis); | ||
172 | if (err < 0) { | ||
173 | dprintk(verbose, MANTIS_DEBUG, 1, "Mantis DVB init failed"); | ||
174 | return err; | ||
175 | } | ||
176 | err = mantis_uart_init(mantis); | ||
177 | if (err < 0) { | ||
178 | dprintk(verbose, MANTIS_DEBUG, 1, "Mantis UART init failed"); | ||
179 | return err; | ||
180 | } | ||
181 | |||
182 | return 0; | ||
183 | } | ||
184 | |||
185 | int mantis_core_exit(struct mantis_pci *mantis) | ||
186 | { | ||
187 | mantis_dma_stop(mantis); | ||
188 | dprintk(verbose, MANTIS_ERROR, 1, "DMA engine stopping"); | ||
189 | |||
190 | mantis_uart_exit(mantis); | ||
191 | dprintk(verbose, MANTIS_ERROR, 1, "UART exit failed"); | ||
192 | |||
193 | if (mantis_dma_exit(mantis) < 0) | ||
194 | dprintk(verbose, MANTIS_ERROR, 1, "DMA exit failed"); | ||
195 | if (mantis_dvb_exit(mantis) < 0) | ||
196 | dprintk(verbose, MANTIS_ERROR, 1, "DVB exit failed"); | ||
197 | if (mantis_i2c_exit(mantis) < 0) | ||
198 | dprintk(verbose, MANTIS_ERROR, 1, "I2C adapter delete.. failed"); | ||
199 | |||
200 | return 0; | ||
201 | } | ||
202 | |||
203 | /* Turn the given bit on or off. */ | ||
204 | void gpio_set_bits(struct mantis_pci *mantis, u32 bitpos, u8 value) | ||
205 | { | ||
206 | u32 cur; | ||
207 | |||
208 | cur = mmread(MANTIS_GPIF_ADDR); | ||
209 | if (value) | ||
210 | mantis->gpio_status = cur | (1 << bitpos); | ||
211 | else | ||
212 | mantis->gpio_status = cur & (~(1 << bitpos)); | ||
213 | |||
214 | mmwrite(mantis->gpio_status, MANTIS_GPIF_ADDR); | ||
215 | mmwrite(0x00, MANTIS_GPIF_DOUT); | ||
216 | udelay(100); | ||
217 | } | ||
218 | |||
219 | /* direction = 0 , no CI passthrough ; 1 , CI passthrough */ | ||
220 | void mantis_set_direction(struct mantis_pci *mantis, int direction) | ||
221 | { | ||
222 | u32 reg; | ||
223 | |||
224 | reg = mmread(0x28); | ||
225 | dprintk(verbose, MANTIS_DEBUG, 1, "TS direction setup"); | ||
226 | if (direction == 0x01) { | ||
227 | /* to CI */ | ||
228 | reg |= 0x04; | ||
229 | mmwrite(reg, 0x28); | ||
230 | reg &= 0xff - 0x04; | ||
231 | mmwrite(reg, 0x28); | ||
232 | } else { | ||
233 | reg &= 0xff - 0x04; | ||
234 | mmwrite(reg, 0x28); | ||
235 | reg |= 0x04; | ||
236 | mmwrite(reg, 0x28); | ||
237 | } | ||
238 | } | ||
diff --git a/drivers/media/dvb/mantis/mantis_core.h b/drivers/media/dvb/mantis/mantis_core.h new file mode 100644 index 00000000000..833ee42e694 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_core.h | |||
@@ -0,0 +1,57 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_CORE_H | ||
22 | #define __MANTIS_CORE_H | ||
23 | |||
24 | #include "mantis_common.h" | ||
25 | |||
26 | |||
27 | #define FE_TYPE_SAT 0 | ||
28 | #define FE_TYPE_CAB 1 | ||
29 | #define FE_TYPE_TER 2 | ||
30 | |||
31 | #define FE_TYPE_TS204 0 | ||
32 | #define FE_TYPE_TS188 1 | ||
33 | |||
34 | |||
35 | struct vendorname { | ||
36 | u8 *sub_vendor_name; | ||
37 | u32 sub_vendor_id; | ||
38 | }; | ||
39 | |||
40 | struct devicetype { | ||
41 | u8 *sub_device_name; | ||
42 | u32 sub_device_id; | ||
43 | u8 device_type; | ||
44 | u32 type_flags; | ||
45 | }; | ||
46 | |||
47 | |||
48 | extern int mantis_dma_init(struct mantis_pci *mantis); | ||
49 | extern int mantis_dma_exit(struct mantis_pci *mantis); | ||
50 | extern void mantis_dma_start(struct mantis_pci *mantis); | ||
51 | extern void mantis_dma_stop(struct mantis_pci *mantis); | ||
52 | extern int mantis_i2c_init(struct mantis_pci *mantis); | ||
53 | extern int mantis_i2c_exit(struct mantis_pci *mantis); | ||
54 | extern int mantis_core_init(struct mantis_pci *mantis); | ||
55 | extern int mantis_core_exit(struct mantis_pci *mantis); | ||
56 | |||
57 | #endif /* __MANTIS_CORE_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_dma.c b/drivers/media/dvb/mantis/mantis_dma.c new file mode 100644 index 00000000000..46202a4012a --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_dma.c | |||
@@ -0,0 +1,256 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/kernel.h> | ||
22 | #include <asm/page.h> | ||
23 | #include <linux/vmalloc.h> | ||
24 | #include <linux/pci.h> | ||
25 | |||
26 | #include <asm/irq.h> | ||
27 | #include <linux/signal.h> | ||
28 | #include <linux/sched.h> | ||
29 | #include <linux/interrupt.h> | ||
30 | |||
31 | #include "dmxdev.h" | ||
32 | #include "dvbdev.h" | ||
33 | #include "dvb_demux.h" | ||
34 | #include "dvb_frontend.h" | ||
35 | #include "dvb_net.h" | ||
36 | |||
37 | #include "mantis_common.h" | ||
38 | #include "mantis_reg.h" | ||
39 | #include "mantis_dma.h" | ||
40 | |||
41 | #define RISC_WRITE (0x01 << 28) | ||
42 | #define RISC_JUMP (0x07 << 28) | ||
43 | #define RISC_IRQ (0x01 << 24) | ||
44 | |||
45 | #define RISC_STATUS(status) ((((~status) & 0x0f) << 20) | ((status & 0x0f) << 16)) | ||
46 | #define RISC_FLUSH() (mantis->risc_pos = 0) | ||
47 | #define RISC_INSTR(opcode) (mantis->risc_cpu[mantis->risc_pos++] = cpu_to_le32(opcode)) | ||
48 | |||
49 | #define MANTIS_BUF_SIZE (64 * 1024) | ||
50 | #define MANTIS_BLOCK_BYTES (MANTIS_BUF_SIZE >> 4) | ||
51 | #define MANTIS_BLOCK_COUNT (1 << 4) | ||
52 | #define MANTIS_RISC_SIZE PAGE_SIZE | ||
53 | |||
54 | int mantis_dma_exit(struct mantis_pci *mantis) | ||
55 | { | ||
56 | if (mantis->buf_cpu) { | ||
57 | dprintk(MANTIS_ERROR, 1, | ||
58 | "DMA=0x%lx cpu=0x%p size=%d", | ||
59 | (unsigned long) mantis->buf_dma, | ||
60 | mantis->buf_cpu, | ||
61 | MANTIS_BUF_SIZE); | ||
62 | |||
63 | pci_free_consistent(mantis->pdev, MANTIS_BUF_SIZE, | ||
64 | mantis->buf_cpu, mantis->buf_dma); | ||
65 | |||
66 | mantis->buf_cpu = NULL; | ||
67 | } | ||
68 | if (mantis->risc_cpu) { | ||
69 | dprintk(MANTIS_ERROR, 1, | ||
70 | "RISC=0x%lx cpu=0x%p size=%lx", | ||
71 | (unsigned long) mantis->risc_dma, | ||
72 | mantis->risc_cpu, | ||
73 | MANTIS_RISC_SIZE); | ||
74 | |||
75 | pci_free_consistent(mantis->pdev, MANTIS_RISC_SIZE, | ||
76 | mantis->risc_cpu, mantis->risc_dma); | ||
77 | |||
78 | mantis->risc_cpu = NULL; | ||
79 | } | ||
80 | |||
81 | return 0; | ||
82 | } | ||
83 | EXPORT_SYMBOL_GPL(mantis_dma_exit); | ||
84 | |||
85 | static inline int mantis_alloc_buffers(struct mantis_pci *mantis) | ||
86 | { | ||
87 | if (!mantis->buf_cpu) { | ||
88 | mantis->buf_cpu = pci_alloc_consistent(mantis->pdev, | ||
89 | MANTIS_BUF_SIZE, | ||
90 | &mantis->buf_dma); | ||
91 | if (!mantis->buf_cpu) { | ||
92 | dprintk(MANTIS_ERROR, 1, | ||
93 | "DMA buffer allocation failed"); | ||
94 | |||
95 | goto err; | ||
96 | } | ||
97 | dprintk(MANTIS_ERROR, 1, | ||
98 | "DMA=0x%lx cpu=0x%p size=%d", | ||
99 | (unsigned long) mantis->buf_dma, | ||
100 | mantis->buf_cpu, MANTIS_BUF_SIZE); | ||
101 | } | ||
102 | if (!mantis->risc_cpu) { | ||
103 | mantis->risc_cpu = pci_alloc_consistent(mantis->pdev, | ||
104 | MANTIS_RISC_SIZE, | ||
105 | &mantis->risc_dma); | ||
106 | |||
107 | if (!mantis->risc_cpu) { | ||
108 | dprintk(MANTIS_ERROR, 1, | ||
109 | "RISC program allocation failed"); | ||
110 | |||
111 | mantis_dma_exit(mantis); | ||
112 | |||
113 | goto err; | ||
114 | } | ||
115 | dprintk(MANTIS_ERROR, 1, | ||
116 | "RISC=0x%lx cpu=0x%p size=%lx", | ||
117 | (unsigned long) mantis->risc_dma, | ||
118 | mantis->risc_cpu, MANTIS_RISC_SIZE); | ||
119 | } | ||
120 | |||
121 | return 0; | ||
122 | err: | ||
123 | dprintk(MANTIS_ERROR, 1, "Out of memory (?) ....."); | ||
124 | return -ENOMEM; | ||
125 | } | ||
126 | |||
127 | static inline int mantis_calc_lines(struct mantis_pci *mantis) | ||
128 | { | ||
129 | mantis->line_bytes = MANTIS_BLOCK_BYTES; | ||
130 | mantis->line_count = MANTIS_BLOCK_COUNT; | ||
131 | |||
132 | while (mantis->line_bytes > 4095) { | ||
133 | mantis->line_bytes >>= 1; | ||
134 | mantis->line_count <<= 1; | ||
135 | } | ||
136 | |||
137 | dprintk(MANTIS_DEBUG, 1, "Mantis RISC block bytes=[%d], line bytes=[%d], line count=[%d]", | ||
138 | MANTIS_BLOCK_BYTES, mantis->line_bytes, mantis->line_count); | ||
139 | |||
140 | if (mantis->line_count > 255) { | ||
141 | dprintk(MANTIS_ERROR, 1, "Buffer size error"); | ||
142 | return -EINVAL; | ||
143 | } | ||
144 | |||
145 | return 0; | ||
146 | } | ||
147 | |||
148 | int mantis_dma_init(struct mantis_pci *mantis) | ||
149 | { | ||
150 | int err = 0; | ||
151 | |||
152 | dprintk(MANTIS_DEBUG, 1, "Mantis DMA init"); | ||
153 | if (mantis_alloc_buffers(mantis) < 0) { | ||
154 | dprintk(MANTIS_ERROR, 1, "Error allocating DMA buffer"); | ||
155 | |||
156 | /* Stop RISC Engine */ | ||
157 | mmwrite(0, MANTIS_DMA_CTL); | ||
158 | |||
159 | goto err; | ||
160 | } | ||
161 | err = mantis_calc_lines(mantis); | ||
162 | if (err < 0) { | ||
163 | dprintk(MANTIS_ERROR, 1, "Mantis calc lines failed"); | ||
164 | |||
165 | goto err; | ||
166 | } | ||
167 | |||
168 | return 0; | ||
169 | err: | ||
170 | return err; | ||
171 | } | ||
172 | EXPORT_SYMBOL_GPL(mantis_dma_init); | ||
173 | |||
174 | static inline void mantis_risc_program(struct mantis_pci *mantis) | ||
175 | { | ||
176 | u32 buf_pos = 0; | ||
177 | u32 line; | ||
178 | |||
179 | dprintk(MANTIS_DEBUG, 1, "Mantis create RISC program"); | ||
180 | RISC_FLUSH(); | ||
181 | |||
182 | dprintk(MANTIS_DEBUG, 1, "risc len lines %u, bytes per line %u", | ||
183 | mantis->line_count, mantis->line_bytes); | ||
184 | |||
185 | for (line = 0; line < mantis->line_count; line++) { | ||
186 | dprintk(MANTIS_DEBUG, 1, "RISC PROG line=[%d]", line); | ||
187 | if (!(buf_pos % MANTIS_BLOCK_BYTES)) { | ||
188 | RISC_INSTR(RISC_WRITE | | ||
189 | RISC_IRQ | | ||
190 | RISC_STATUS(((buf_pos / MANTIS_BLOCK_BYTES) + | ||
191 | (MANTIS_BLOCK_COUNT - 1)) % | ||
192 | MANTIS_BLOCK_COUNT) | | ||
193 | mantis->line_bytes); | ||
194 | } else { | ||
195 | RISC_INSTR(RISC_WRITE | mantis->line_bytes); | ||
196 | } | ||
197 | RISC_INSTR(mantis->buf_dma + buf_pos); | ||
198 | buf_pos += mantis->line_bytes; | ||
199 | } | ||
200 | RISC_INSTR(RISC_JUMP); | ||
201 | RISC_INSTR(mantis->risc_dma); | ||
202 | } | ||
203 | |||
204 | void mantis_dma_start(struct mantis_pci *mantis) | ||
205 | { | ||
206 | dprintk(MANTIS_DEBUG, 1, "Mantis Start DMA engine"); | ||
207 | |||
208 | mantis_risc_program(mantis); | ||
209 | mmwrite(mantis->risc_dma, MANTIS_RISC_START); | ||
210 | mmwrite(mmread(MANTIS_GPIF_ADDR) | MANTIS_GPIF_HIFRDWRN, MANTIS_GPIF_ADDR); | ||
211 | |||
212 | mmwrite(0, MANTIS_DMA_CTL); | ||
213 | mantis->last_block = mantis->finished_block = 0; | ||
214 | |||
215 | mmwrite(mmread(MANTIS_INT_MASK) | MANTIS_INT_RISCI, MANTIS_INT_MASK); | ||
216 | |||
217 | mmwrite(MANTIS_FIFO_EN | MANTIS_DCAP_EN | ||
218 | | MANTIS_RISC_EN, MANTIS_DMA_CTL); | ||
219 | |||
220 | } | ||
221 | |||
222 | void mantis_dma_stop(struct mantis_pci *mantis) | ||
223 | { | ||
224 | u32 stat = 0, mask = 0; | ||
225 | |||
226 | stat = mmread(MANTIS_INT_STAT); | ||
227 | mask = mmread(MANTIS_INT_MASK); | ||
228 | dprintk(MANTIS_DEBUG, 1, "Mantis Stop DMA engine"); | ||
229 | |||
230 | mmwrite((mmread(MANTIS_GPIF_ADDR) & (~(MANTIS_GPIF_HIFRDWRN))), MANTIS_GPIF_ADDR); | ||
231 | |||
232 | mmwrite((mmread(MANTIS_DMA_CTL) & ~(MANTIS_FIFO_EN | | ||
233 | MANTIS_DCAP_EN | | ||
234 | MANTIS_RISC_EN)), MANTIS_DMA_CTL); | ||
235 | |||
236 | mmwrite(mmread(MANTIS_INT_STAT), MANTIS_INT_STAT); | ||
237 | |||
238 | mmwrite(mmread(MANTIS_INT_MASK) & ~(MANTIS_INT_RISCI | | ||
239 | MANTIS_INT_RISCEN), MANTIS_INT_MASK); | ||
240 | } | ||
241 | |||
242 | |||
243 | void mantis_dma_xfer(unsigned long data) | ||
244 | { | ||
245 | struct mantis_pci *mantis = (struct mantis_pci *) data; | ||
246 | struct mantis_hwconfig *config = mantis->hwconfig; | ||
247 | |||
248 | while (mantis->last_block != mantis->finished_block) { | ||
249 | dprintk(MANTIS_DEBUG, 1, "last block=[%d] finished block=[%d]", | ||
250 | mantis->last_block, mantis->finished_block); | ||
251 | |||
252 | (config->ts_size ? dvb_dmx_swfilter_204 : dvb_dmx_swfilter) | ||
253 | (&mantis->demux, &mantis->buf_cpu[mantis->last_block * MANTIS_BLOCK_BYTES], MANTIS_BLOCK_BYTES); | ||
254 | mantis->last_block = (mantis->last_block + 1) % MANTIS_BLOCK_COUNT; | ||
255 | } | ||
256 | } | ||
diff --git a/drivers/media/dvb/mantis/mantis_dma.h b/drivers/media/dvb/mantis/mantis_dma.h new file mode 100644 index 00000000000..6be00fa8209 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_dma.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_DMA_H | ||
22 | #define __MANTIS_DMA_H | ||
23 | |||
24 | extern int mantis_dma_init(struct mantis_pci *mantis); | ||
25 | extern int mantis_dma_exit(struct mantis_pci *mantis); | ||
26 | extern void mantis_dma_start(struct mantis_pci *mantis); | ||
27 | extern void mantis_dma_stop(struct mantis_pci *mantis); | ||
28 | extern void mantis_dma_xfer(unsigned long data); | ||
29 | |||
30 | #endif /* __MANTIS_DMA_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_dvb.c b/drivers/media/dvb/mantis/mantis_dvb.c new file mode 100644 index 00000000000..99d82eec3b0 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_dvb.c | |||
@@ -0,0 +1,296 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | Copyright (C) Manu Abraham (abraham.manu@gmail.com) | ||
4 | |||
5 | This program is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published by | ||
7 | the Free Software Foundation; either version 2 of the License, or | ||
8 | (at your option) any later version. | ||
9 | |||
10 | This program is distributed in the hope that it will be useful, | ||
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | GNU General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with this program; if not, write to the Free Software | ||
17 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
18 | */ | ||
19 | |||
20 | #include <linux/kernel.h> | ||
21 | #include <linux/bitops.h> | ||
22 | |||
23 | #include <linux/signal.h> | ||
24 | #include <linux/sched.h> | ||
25 | #include <linux/interrupt.h> | ||
26 | #include <linux/pci.h> | ||
27 | #include <linux/i2c.h> | ||
28 | |||
29 | #include "dmxdev.h" | ||
30 | #include "dvbdev.h" | ||
31 | #include "dvb_demux.h" | ||
32 | #include "dvb_frontend.h" | ||
33 | #include "dvb_net.h" | ||
34 | |||
35 | #include "mantis_common.h" | ||
36 | #include "mantis_dma.h" | ||
37 | #include "mantis_ca.h" | ||
38 | #include "mantis_ioc.h" | ||
39 | #include "mantis_dvb.h" | ||
40 | |||
41 | DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); | ||
42 | |||
43 | int mantis_frontend_power(struct mantis_pci *mantis, enum mantis_power power) | ||
44 | { | ||
45 | struct mantis_hwconfig *config = mantis->hwconfig; | ||
46 | |||
47 | switch (power) { | ||
48 | case POWER_ON: | ||
49 | dprintk(MANTIS_DEBUG, 1, "Power ON"); | ||
50 | gpio_set_bits(mantis, config->power, POWER_ON); | ||
51 | msleep(100); | ||
52 | gpio_set_bits(mantis, config->power, POWER_ON); | ||
53 | msleep(100); | ||
54 | break; | ||
55 | |||
56 | case POWER_OFF: | ||
57 | dprintk(MANTIS_DEBUG, 1, "Power OFF"); | ||
58 | gpio_set_bits(mantis, config->power, POWER_OFF); | ||
59 | msleep(100); | ||
60 | break; | ||
61 | |||
62 | default: | ||
63 | dprintk(MANTIS_DEBUG, 1, "Unknown state <%02x>", power); | ||
64 | return -1; | ||
65 | } | ||
66 | |||
67 | return 0; | ||
68 | } | ||
69 | EXPORT_SYMBOL_GPL(mantis_frontend_power); | ||
70 | |||
71 | void mantis_frontend_soft_reset(struct mantis_pci *mantis) | ||
72 | { | ||
73 | struct mantis_hwconfig *config = mantis->hwconfig; | ||
74 | |||
75 | dprintk(MANTIS_DEBUG, 1, "Frontend RESET"); | ||
76 | gpio_set_bits(mantis, config->reset, 0); | ||
77 | msleep(100); | ||
78 | gpio_set_bits(mantis, config->reset, 0); | ||
79 | msleep(100); | ||
80 | gpio_set_bits(mantis, config->reset, 1); | ||
81 | msleep(100); | ||
82 | gpio_set_bits(mantis, config->reset, 1); | ||
83 | msleep(100); | ||
84 | |||
85 | return; | ||
86 | } | ||
87 | EXPORT_SYMBOL_GPL(mantis_frontend_soft_reset); | ||
88 | |||
89 | static int mantis_frontend_shutdown(struct mantis_pci *mantis) | ||
90 | { | ||
91 | int err; | ||
92 | |||
93 | mantis_frontend_soft_reset(mantis); | ||
94 | err = mantis_frontend_power(mantis, POWER_OFF); | ||
95 | if (err != 0) { | ||
96 | dprintk(MANTIS_ERROR, 1, "Frontend POWER OFF failed! <%d>", err); | ||
97 | return 1; | ||
98 | } | ||
99 | |||
100 | return 0; | ||
101 | } | ||
102 | |||
103 | static int mantis_dvb_start_feed(struct dvb_demux_feed *dvbdmxfeed) | ||
104 | { | ||
105 | struct dvb_demux *dvbdmx = dvbdmxfeed->demux; | ||
106 | struct mantis_pci *mantis = dvbdmx->priv; | ||
107 | |||
108 | dprintk(MANTIS_DEBUG, 1, "Mantis DVB Start feed"); | ||
109 | if (!dvbdmx->dmx.frontend) { | ||
110 | dprintk(MANTIS_DEBUG, 1, "no frontend ?"); | ||
111 | return -EINVAL; | ||
112 | } | ||
113 | |||
114 | mantis->feeds++; | ||
115 | dprintk(MANTIS_DEBUG, 1, "mantis start feed, feeds=%d", mantis->feeds); | ||
116 | |||
117 | if (mantis->feeds == 1) { | ||
118 | dprintk(MANTIS_DEBUG, 1, "mantis start feed & dma"); | ||
119 | mantis_dma_start(mantis); | ||
120 | } | ||
121 | |||
122 | return mantis->feeds; | ||
123 | } | ||
124 | |||
125 | static int mantis_dvb_stop_feed(struct dvb_demux_feed *dvbdmxfeed) | ||
126 | { | ||
127 | struct dvb_demux *dvbdmx = dvbdmxfeed->demux; | ||
128 | struct mantis_pci *mantis = dvbdmx->priv; | ||
129 | |||
130 | dprintk(MANTIS_DEBUG, 1, "Mantis DVB Stop feed"); | ||
131 | if (!dvbdmx->dmx.frontend) { | ||
132 | dprintk(MANTIS_DEBUG, 1, "no frontend ?"); | ||
133 | return -EINVAL; | ||
134 | } | ||
135 | |||
136 | mantis->feeds--; | ||
137 | if (mantis->feeds == 0) { | ||
138 | dprintk(MANTIS_DEBUG, 1, "mantis stop feed and dma"); | ||
139 | mantis_dma_stop(mantis); | ||
140 | } | ||
141 | |||
142 | return 0; | ||
143 | } | ||
144 | |||
145 | int __devinit mantis_dvb_init(struct mantis_pci *mantis) | ||
146 | { | ||
147 | struct mantis_hwconfig *config = mantis->hwconfig; | ||
148 | int result = -1; | ||
149 | |||
150 | dprintk(MANTIS_DEBUG, 1, "dvb_register_adapter"); | ||
151 | |||
152 | result = dvb_register_adapter(&mantis->dvb_adapter, | ||
153 | "Mantis DVB adapter", | ||
154 | THIS_MODULE, | ||
155 | &mantis->pdev->dev, | ||
156 | adapter_nr); | ||
157 | |||
158 | if (result < 0) { | ||
159 | |||
160 | dprintk(MANTIS_ERROR, 1, "Error registering adapter"); | ||
161 | return -ENODEV; | ||
162 | } | ||
163 | |||
164 | mantis->dvb_adapter.priv = mantis; | ||
165 | mantis->demux.dmx.capabilities = DMX_TS_FILTERING | | ||
166 | DMX_SECTION_FILTERING | | ||
167 | DMX_MEMORY_BASED_FILTERING; | ||
168 | |||
169 | mantis->demux.priv = mantis; | ||
170 | mantis->demux.filternum = 256; | ||
171 | mantis->demux.feednum = 256; | ||
172 | mantis->demux.start_feed = mantis_dvb_start_feed; | ||
173 | mantis->demux.stop_feed = mantis_dvb_stop_feed; | ||
174 | mantis->demux.write_to_decoder = NULL; | ||
175 | |||
176 | dprintk(MANTIS_DEBUG, 1, "dvb_dmx_init"); | ||
177 | result = dvb_dmx_init(&mantis->demux); | ||
178 | if (result < 0) { | ||
179 | dprintk(MANTIS_ERROR, 1, "dvb_dmx_init failed, ERROR=%d", result); | ||
180 | |||
181 | goto err0; | ||
182 | } | ||
183 | |||
184 | mantis->dmxdev.filternum = 256; | ||
185 | mantis->dmxdev.demux = &mantis->demux.dmx; | ||
186 | mantis->dmxdev.capabilities = 0; | ||
187 | dprintk(MANTIS_DEBUG, 1, "dvb_dmxdev_init"); | ||
188 | |||
189 | result = dvb_dmxdev_init(&mantis->dmxdev, &mantis->dvb_adapter); | ||
190 | if (result < 0) { | ||
191 | |||
192 | dprintk(MANTIS_ERROR, 1, "dvb_dmxdev_init failed, ERROR=%d", result); | ||
193 | goto err1; | ||
194 | } | ||
195 | |||
196 | mantis->fe_hw.source = DMX_FRONTEND_0; | ||
197 | result = mantis->demux.dmx.add_frontend(&mantis->demux.dmx, &mantis->fe_hw); | ||
198 | if (result < 0) { | ||
199 | |||
200 | dprintk(MANTIS_ERROR, 1, "dvb_dmx_init failed, ERROR=%d", result); | ||
201 | goto err2; | ||
202 | } | ||
203 | |||
204 | mantis->fe_mem.source = DMX_MEMORY_FE; | ||
205 | result = mantis->demux.dmx.add_frontend(&mantis->demux.dmx, &mantis->fe_mem); | ||
206 | if (result < 0) { | ||
207 | dprintk(MANTIS_ERROR, 1, "dvb_dmx_init failed, ERROR=%d", result); | ||
208 | goto err3; | ||
209 | } | ||
210 | |||
211 | result = mantis->demux.dmx.connect_frontend(&mantis->demux.dmx, &mantis->fe_hw); | ||
212 | if (result < 0) { | ||
213 | dprintk(MANTIS_ERROR, 1, "dvb_dmx_init failed, ERROR=%d", result); | ||
214 | goto err4; | ||
215 | } | ||
216 | |||
217 | dvb_net_init(&mantis->dvb_adapter, &mantis->dvbnet, &mantis->demux.dmx); | ||
218 | tasklet_init(&mantis->tasklet, mantis_dma_xfer, (unsigned long) mantis); | ||
219 | if (mantis->hwconfig) { | ||
220 | result = config->frontend_init(mantis, mantis->fe); | ||
221 | if (result < 0) { | ||
222 | dprintk(MANTIS_ERROR, 1, "!!! NO Frontends found !!!"); | ||
223 | goto err5; | ||
224 | } else { | ||
225 | if (mantis->fe == NULL) { | ||
226 | dprintk(MANTIS_ERROR, 1, "FE <NULL>"); | ||
227 | goto err5; | ||
228 | } | ||
229 | |||
230 | if (dvb_register_frontend(&mantis->dvb_adapter, mantis->fe)) { | ||
231 | dprintk(MANTIS_ERROR, 1, "ERROR: Frontend registration failed"); | ||
232 | |||
233 | if (mantis->fe->ops.release) | ||
234 | mantis->fe->ops.release(mantis->fe); | ||
235 | |||
236 | mantis->fe = NULL; | ||
237 | goto err5; | ||
238 | } | ||
239 | } | ||
240 | } | ||
241 | |||
242 | return 0; | ||
243 | |||
244 | /* Error conditions .. */ | ||
245 | err5: | ||
246 | tasklet_kill(&mantis->tasklet); | ||
247 | dvb_net_release(&mantis->dvbnet); | ||
248 | dvb_unregister_frontend(mantis->fe); | ||
249 | dvb_frontend_detach(mantis->fe); | ||
250 | err4: | ||
251 | mantis->demux.dmx.remove_frontend(&mantis->demux.dmx, &mantis->fe_mem); | ||
252 | |||
253 | err3: | ||
254 | mantis->demux.dmx.remove_frontend(&mantis->demux.dmx, &mantis->fe_hw); | ||
255 | |||
256 | err2: | ||
257 | dvb_dmxdev_release(&mantis->dmxdev); | ||
258 | |||
259 | err1: | ||
260 | dvb_dmx_release(&mantis->demux); | ||
261 | |||
262 | err0: | ||
263 | dvb_unregister_adapter(&mantis->dvb_adapter); | ||
264 | |||
265 | return result; | ||
266 | } | ||
267 | EXPORT_SYMBOL_GPL(mantis_dvb_init); | ||
268 | |||
269 | int __devexit mantis_dvb_exit(struct mantis_pci *mantis) | ||
270 | { | ||
271 | int err; | ||
272 | |||
273 | if (mantis->fe) { | ||
274 | /* mantis_ca_exit(mantis); */ | ||
275 | err = mantis_frontend_shutdown(mantis); | ||
276 | if (err != 0) | ||
277 | dprintk(MANTIS_ERROR, 1, "Frontend exit while POWER ON! <%d>", err); | ||
278 | dvb_unregister_frontend(mantis->fe); | ||
279 | dvb_frontend_detach(mantis->fe); | ||
280 | } | ||
281 | |||
282 | tasklet_kill(&mantis->tasklet); | ||
283 | dvb_net_release(&mantis->dvbnet); | ||
284 | |||
285 | mantis->demux.dmx.remove_frontend(&mantis->demux.dmx, &mantis->fe_mem); | ||
286 | mantis->demux.dmx.remove_frontend(&mantis->demux.dmx, &mantis->fe_hw); | ||
287 | |||
288 | dvb_dmxdev_release(&mantis->dmxdev); | ||
289 | dvb_dmx_release(&mantis->demux); | ||
290 | |||
291 | dprintk(MANTIS_DEBUG, 1, "dvb_unregister_adapter"); | ||
292 | dvb_unregister_adapter(&mantis->dvb_adapter); | ||
293 | |||
294 | return 0; | ||
295 | } | ||
296 | EXPORT_SYMBOL_GPL(mantis_dvb_exit); | ||
diff --git a/drivers/media/dvb/mantis/mantis_dvb.h b/drivers/media/dvb/mantis/mantis_dvb.h new file mode 100644 index 00000000000..464199db304 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_dvb.h | |||
@@ -0,0 +1,35 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_DVB_H | ||
22 | #define __MANTIS_DVB_H | ||
23 | |||
24 | enum mantis_power { | ||
25 | POWER_OFF = 0, | ||
26 | POWER_ON = 1 | ||
27 | }; | ||
28 | |||
29 | extern int mantis_frontend_power(struct mantis_pci *mantis, enum mantis_power power); | ||
30 | extern void mantis_frontend_soft_reset(struct mantis_pci *mantis); | ||
31 | |||
32 | extern int mantis_dvb_init(struct mantis_pci *mantis); | ||
33 | extern int mantis_dvb_exit(struct mantis_pci *mantis); | ||
34 | |||
35 | #endif /* __MANTIS_DVB_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_evm.c b/drivers/media/dvb/mantis/mantis_evm.c new file mode 100644 index 00000000000..a7b369a439d --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_evm.c | |||
@@ -0,0 +1,117 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/kernel.h> | ||
22 | |||
23 | #include <linux/signal.h> | ||
24 | #include <linux/sched.h> | ||
25 | #include <linux/interrupt.h> | ||
26 | |||
27 | #include "dmxdev.h" | ||
28 | #include "dvbdev.h" | ||
29 | #include "dvb_demux.h" | ||
30 | #include "dvb_frontend.h" | ||
31 | #include "dvb_net.h" | ||
32 | |||
33 | #include "mantis_common.h" | ||
34 | #include "mantis_link.h" | ||
35 | #include "mantis_hif.h" | ||
36 | #include "mantis_reg.h" | ||
37 | |||
38 | static void mantis_hifevm_work(struct work_struct *work) | ||
39 | { | ||
40 | struct mantis_ca *ca = container_of(work, struct mantis_ca, hif_evm_work); | ||
41 | struct mantis_pci *mantis = ca->ca_priv; | ||
42 | |||
43 | u32 gpif_stat, gpif_mask; | ||
44 | |||
45 | gpif_stat = mmread(MANTIS_GPIF_STATUS); | ||
46 | gpif_mask = mmread(MANTIS_GPIF_IRQCFG); | ||
47 | |||
48 | if (gpif_stat & MANTIS_GPIF_DETSTAT) { | ||
49 | if (gpif_stat & MANTIS_CARD_PLUGIN) { | ||
50 | dprintk(MANTIS_DEBUG, 1, "Event Mgr: Adapter(%d) Slot(0): CAM Plugin", mantis->num); | ||
51 | mmwrite(0xdada0000, MANTIS_CARD_RESET); | ||
52 | mantis_event_cam_plugin(ca); | ||
53 | dvb_ca_en50221_camchange_irq(&ca->en50221, | ||
54 | 0, | ||
55 | DVB_CA_EN50221_CAMCHANGE_INSERTED); | ||
56 | } | ||
57 | } else { | ||
58 | if (gpif_stat & MANTIS_CARD_PLUGOUT) { | ||
59 | dprintk(MANTIS_DEBUG, 1, "Event Mgr: Adapter(%d) Slot(0): CAM Unplug", mantis->num); | ||
60 | mmwrite(0xdada0000, MANTIS_CARD_RESET); | ||
61 | mantis_event_cam_unplug(ca); | ||
62 | dvb_ca_en50221_camchange_irq(&ca->en50221, | ||
63 | 0, | ||
64 | DVB_CA_EN50221_CAMCHANGE_REMOVED); | ||
65 | } | ||
66 | } | ||
67 | |||
68 | if (mantis->gpif_status & MANTIS_GPIF_EXTIRQ) | ||
69 | dprintk(MANTIS_DEBUG, 1, "Event Mgr: Adapter(%d) Slot(0): Ext IRQ", mantis->num); | ||
70 | |||
71 | if (mantis->gpif_status & MANTIS_SBUF_WSTO) | ||
72 | dprintk(MANTIS_DEBUG, 1, "Event Mgr: Adapter(%d) Slot(0): Smart Buffer Timeout", mantis->num); | ||
73 | |||
74 | if (mantis->gpif_status & MANTIS_GPIF_OTHERR) | ||
75 | dprintk(MANTIS_DEBUG, 1, "Event Mgr: Adapter(%d) Slot(0): Alignment Error", mantis->num); | ||
76 | |||
77 | if (gpif_stat & MANTIS_SBUF_OVFLW) | ||
78 | dprintk(MANTIS_DEBUG, 1, "Event Mgr: Adapter(%d) Slot(0): Smart Buffer Overflow", mantis->num); | ||
79 | |||
80 | if (gpif_stat & MANTIS_GPIF_BRRDY) | ||
81 | dprintk(MANTIS_DEBUG, 1, "Event Mgr: Adapter(%d) Slot(0): Smart Buffer Read Ready", mantis->num); | ||
82 | |||
83 | if (gpif_stat & MANTIS_GPIF_INTSTAT) | ||
84 | dprintk(MANTIS_DEBUG, 1, "Event Mgr: Adapter(%d) Slot(0): GPIF IRQ", mantis->num); | ||
85 | |||
86 | if (gpif_stat & MANTIS_SBUF_EMPTY) | ||
87 | dprintk(MANTIS_DEBUG, 1, "Event Mgr: Adapter(%d) Slot(0): Smart Buffer Empty", mantis->num); | ||
88 | |||
89 | if (gpif_stat & MANTIS_SBUF_OPDONE) { | ||
90 | dprintk(MANTIS_DEBUG, 1, "Event Mgr: Adapter(%d) Slot(0): Smart Buffer operation complete", mantis->num); | ||
91 | ca->sbuf_status = MANTIS_SBUF_DATA_AVAIL; | ||
92 | ca->hif_event = MANTIS_SBUF_OPDONE; | ||
93 | wake_up(&ca->hif_opdone_wq); | ||
94 | } | ||
95 | } | ||
96 | |||
97 | int mantis_evmgr_init(struct mantis_ca *ca) | ||
98 | { | ||
99 | struct mantis_pci *mantis = ca->ca_priv; | ||
100 | |||
101 | dprintk(MANTIS_DEBUG, 1, "Initializing Mantis Host I/F Event manager"); | ||
102 | INIT_WORK(&ca->hif_evm_work, mantis_hifevm_work); | ||
103 | mantis_pcmcia_init(ca); | ||
104 | schedule_work(&ca->hif_evm_work); | ||
105 | mantis_hif_init(ca); | ||
106 | return 0; | ||
107 | } | ||
108 | |||
109 | void mantis_evmgr_exit(struct mantis_ca *ca) | ||
110 | { | ||
111 | struct mantis_pci *mantis = ca->ca_priv; | ||
112 | |||
113 | dprintk(MANTIS_DEBUG, 1, "Mantis Host I/F Event manager exiting"); | ||
114 | flush_scheduled_work(); | ||
115 | mantis_hif_exit(ca); | ||
116 | mantis_pcmcia_exit(ca); | ||
117 | } | ||
diff --git a/drivers/media/dvb/mantis/mantis_hif.c b/drivers/media/dvb/mantis/mantis_hif.c new file mode 100644 index 00000000000..7477dac628b --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_hif.c | |||
@@ -0,0 +1,240 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/kernel.h> | ||
22 | #include <linux/signal.h> | ||
23 | #include <linux/sched.h> | ||
24 | |||
25 | #include <linux/signal.h> | ||
26 | #include <linux/sched.h> | ||
27 | #include <linux/interrupt.h> | ||
28 | |||
29 | #include "dmxdev.h" | ||
30 | #include "dvbdev.h" | ||
31 | #include "dvb_demux.h" | ||
32 | #include "dvb_frontend.h" | ||
33 | #include "dvb_net.h" | ||
34 | |||
35 | #include "mantis_common.h" | ||
36 | |||
37 | #include "mantis_hif.h" | ||
38 | #include "mantis_link.h" /* temporary due to physical layer stuff */ | ||
39 | |||
40 | #include "mantis_reg.h" | ||
41 | |||
42 | |||
43 | static int mantis_hif_sbuf_opdone_wait(struct mantis_ca *ca) | ||
44 | { | ||
45 | struct mantis_pci *mantis = ca->ca_priv; | ||
46 | int rc = 0; | ||
47 | |||
48 | if (wait_event_timeout(ca->hif_opdone_wq, | ||
49 | ca->hif_event & MANTIS_SBUF_OPDONE, | ||
50 | msecs_to_jiffies(500)) == -ERESTARTSYS) { | ||
51 | |||
52 | dprintk(MANTIS_ERROR, 1, "Adapter(%d) Slot(0): Smart buffer operation timeout !", mantis->num); | ||
53 | rc = -EREMOTEIO; | ||
54 | } | ||
55 | dprintk(MANTIS_DEBUG, 1, "Smart Buffer Operation complete"); | ||
56 | ca->hif_event &= ~MANTIS_SBUF_OPDONE; | ||
57 | return rc; | ||
58 | } | ||
59 | |||
60 | static int mantis_hif_write_wait(struct mantis_ca *ca) | ||
61 | { | ||
62 | struct mantis_pci *mantis = ca->ca_priv; | ||
63 | u32 opdone = 0, timeout = 0; | ||
64 | int rc = 0; | ||
65 | |||
66 | if (wait_event_timeout(ca->hif_write_wq, | ||
67 | mantis->gpif_status & MANTIS_GPIF_WRACK, | ||
68 | msecs_to_jiffies(500)) == -ERESTARTSYS) { | ||
69 | |||
70 | dprintk(MANTIS_ERROR, 1, "Adapter(%d) Slot(0): Write ACK timed out !", mantis->num); | ||
71 | rc = -EREMOTEIO; | ||
72 | } | ||
73 | dprintk(MANTIS_DEBUG, 1, "Write Acknowledged"); | ||
74 | mantis->gpif_status &= ~MANTIS_GPIF_WRACK; | ||
75 | while (!opdone) { | ||
76 | opdone = (mmread(MANTIS_GPIF_STATUS) & MANTIS_SBUF_OPDONE); | ||
77 | udelay(500); | ||
78 | timeout++; | ||
79 | if (timeout > 100) { | ||
80 | dprintk(MANTIS_ERROR, 1, "Adater(%d) Slot(0): Write operation timed out!", mantis->num); | ||
81 | rc = -ETIMEDOUT; | ||
82 | break; | ||
83 | } | ||
84 | } | ||
85 | dprintk(MANTIS_DEBUG, 1, "HIF Write success"); | ||
86 | return rc; | ||
87 | } | ||
88 | |||
89 | |||
90 | int mantis_hif_read_mem(struct mantis_ca *ca, u32 addr) | ||
91 | { | ||
92 | struct mantis_pci *mantis = ca->ca_priv; | ||
93 | u32 hif_addr = 0, data, count = 4; | ||
94 | |||
95 | dprintk(MANTIS_DEBUG, 1, "Adapter(%d) Slot(0): Request HIF Mem Read", mantis->num); | ||
96 | mutex_lock(&ca->ca_lock); | ||
97 | hif_addr &= ~MANTIS_GPIF_PCMCIAREG; | ||
98 | hif_addr &= ~MANTIS_GPIF_PCMCIAIOM; | ||
99 | hif_addr |= MANTIS_HIF_STATUS; | ||
100 | hif_addr |= addr; | ||
101 | |||
102 | mmwrite(hif_addr, MANTIS_GPIF_BRADDR); | ||
103 | mmwrite(count, MANTIS_GPIF_BRBYTES); | ||
104 | udelay(20); | ||
105 | mmwrite(hif_addr | MANTIS_GPIF_HIFRDWRN, MANTIS_GPIF_ADDR); | ||
106 | |||
107 | if (mantis_hif_sbuf_opdone_wait(ca) != 0) { | ||
108 | dprintk(MANTIS_ERROR, 1, "Adapter(%d) Slot(0): GPIF Smart Buffer operation failed", mantis->num); | ||
109 | mutex_unlock(&ca->ca_lock); | ||
110 | return -EREMOTEIO; | ||
111 | } | ||
112 | data = mmread(MANTIS_GPIF_DIN); | ||
113 | mutex_unlock(&ca->ca_lock); | ||
114 | dprintk(MANTIS_DEBUG, 1, "Mem Read: 0x%02x", data); | ||
115 | return (data >> 24) & 0xff; | ||
116 | } | ||
117 | |||
118 | int mantis_hif_write_mem(struct mantis_ca *ca, u32 addr, u8 data) | ||
119 | { | ||
120 | struct mantis_slot *slot = ca->slot; | ||
121 | struct mantis_pci *mantis = ca->ca_priv; | ||
122 | u32 hif_addr = 0; | ||
123 | |||
124 | dprintk(MANTIS_DEBUG, 1, "Adapter(%d) Slot(0): Request HIF Mem Write", mantis->num); | ||
125 | mutex_lock(&ca->ca_lock); | ||
126 | hif_addr &= ~MANTIS_GPIF_HIFRDWRN; | ||
127 | hif_addr &= ~MANTIS_GPIF_PCMCIAREG; | ||
128 | hif_addr &= ~MANTIS_GPIF_PCMCIAIOM; | ||
129 | hif_addr |= MANTIS_HIF_STATUS; | ||
130 | hif_addr |= addr; | ||
131 | |||
132 | mmwrite(slot->slave_cfg, MANTIS_GPIF_CFGSLA); /* Slot0 alone for now */ | ||
133 | mmwrite(hif_addr, MANTIS_GPIF_ADDR); | ||
134 | mmwrite(data, MANTIS_GPIF_DOUT); | ||
135 | |||
136 | if (mantis_hif_write_wait(ca) != 0) { | ||
137 | dprintk(MANTIS_ERROR, 1, "Adapter(%d) Slot(0): HIF Smart Buffer operation failed", mantis->num); | ||
138 | mutex_unlock(&ca->ca_lock); | ||
139 | return -EREMOTEIO; | ||
140 | } | ||
141 | dprintk(MANTIS_DEBUG, 1, "Mem Write: (0x%02x to 0x%02x)", data, addr); | ||
142 | mutex_unlock(&ca->ca_lock); | ||
143 | |||
144 | return 0; | ||
145 | } | ||
146 | |||
147 | int mantis_hif_read_iom(struct mantis_ca *ca, u32 addr) | ||
148 | { | ||
149 | struct mantis_pci *mantis = ca->ca_priv; | ||
150 | u32 data, hif_addr = 0; | ||
151 | |||
152 | dprintk(MANTIS_DEBUG, 1, "Adapter(%d) Slot(0): Request HIF I/O Read", mantis->num); | ||
153 | mutex_lock(&ca->ca_lock); | ||
154 | hif_addr &= ~MANTIS_GPIF_PCMCIAREG; | ||
155 | hif_addr |= MANTIS_GPIF_PCMCIAIOM; | ||
156 | hif_addr |= MANTIS_HIF_STATUS; | ||
157 | hif_addr |= addr; | ||
158 | |||
159 | mmwrite(hif_addr, MANTIS_GPIF_BRADDR); | ||
160 | mmwrite(1, MANTIS_GPIF_BRBYTES); | ||
161 | udelay(20); | ||
162 | mmwrite(hif_addr | MANTIS_GPIF_HIFRDWRN, MANTIS_GPIF_ADDR); | ||
163 | |||
164 | if (mantis_hif_sbuf_opdone_wait(ca) != 0) { | ||
165 | dprintk(MANTIS_ERROR, 1, "Adapter(%d) Slot(0): HIF Smart Buffer operation failed", mantis->num); | ||
166 | mutex_unlock(&ca->ca_lock); | ||
167 | return -EREMOTEIO; | ||
168 | } | ||
169 | data = mmread(MANTIS_GPIF_DIN); | ||
170 | dprintk(MANTIS_DEBUG, 1, "I/O Read: 0x%02x", data); | ||
171 | udelay(50); | ||
172 | mutex_unlock(&ca->ca_lock); | ||
173 | |||
174 | return (u8) data; | ||
175 | } | ||
176 | |||
177 | int mantis_hif_write_iom(struct mantis_ca *ca, u32 addr, u8 data) | ||
178 | { | ||
179 | struct mantis_pci *mantis = ca->ca_priv; | ||
180 | u32 hif_addr = 0; | ||
181 | |||
182 | dprintk(MANTIS_DEBUG, 1, "Adapter(%d) Slot(0): Request HIF I/O Write", mantis->num); | ||
183 | mutex_lock(&ca->ca_lock); | ||
184 | hif_addr &= ~MANTIS_GPIF_PCMCIAREG; | ||
185 | hif_addr &= ~MANTIS_GPIF_HIFRDWRN; | ||
186 | hif_addr |= MANTIS_GPIF_PCMCIAIOM; | ||
187 | hif_addr |= MANTIS_HIF_STATUS; | ||
188 | hif_addr |= addr; | ||
189 | |||
190 | mmwrite(hif_addr, MANTIS_GPIF_ADDR); | ||
191 | mmwrite(data, MANTIS_GPIF_DOUT); | ||
192 | |||
193 | if (mantis_hif_write_wait(ca) != 0) { | ||
194 | dprintk(MANTIS_ERROR, 1, "Adapter(%d) Slot(0): HIF Smart Buffer operation failed", mantis->num); | ||
195 | mutex_unlock(&ca->ca_lock); | ||
196 | return -EREMOTEIO; | ||
197 | } | ||
198 | dprintk(MANTIS_DEBUG, 1, "I/O Write: (0x%02x to 0x%02x)", data, addr); | ||
199 | mutex_unlock(&ca->ca_lock); | ||
200 | udelay(50); | ||
201 | |||
202 | return 0; | ||
203 | } | ||
204 | |||
205 | int mantis_hif_init(struct mantis_ca *ca) | ||
206 | { | ||
207 | struct mantis_slot *slot = ca->slot; | ||
208 | struct mantis_pci *mantis = ca->ca_priv; | ||
209 | u32 irqcfg; | ||
210 | |||
211 | slot[0].slave_cfg = 0x70773028; | ||
212 | dprintk(MANTIS_ERROR, 1, "Adapter(%d) Initializing Mantis Host Interface", mantis->num); | ||
213 | |||
214 | mutex_lock(&ca->ca_lock); | ||
215 | irqcfg = mmread(MANTIS_GPIF_IRQCFG); | ||
216 | irqcfg = MANTIS_MASK_BRRDY | | ||
217 | MANTIS_MASK_WRACK | | ||
218 | MANTIS_MASK_EXTIRQ | | ||
219 | MANTIS_MASK_WSTO | | ||
220 | MANTIS_MASK_OTHERR | | ||
221 | MANTIS_MASK_OVFLW; | ||
222 | |||
223 | mmwrite(irqcfg, MANTIS_GPIF_IRQCFG); | ||
224 | mutex_unlock(&ca->ca_lock); | ||
225 | |||
226 | return 0; | ||
227 | } | ||
228 | |||
229 | void mantis_hif_exit(struct mantis_ca *ca) | ||
230 | { | ||
231 | struct mantis_pci *mantis = ca->ca_priv; | ||
232 | u32 irqcfg; | ||
233 | |||
234 | dprintk(MANTIS_ERROR, 1, "Adapter(%d) Exiting Mantis Host Interface", mantis->num); | ||
235 | mutex_lock(&ca->ca_lock); | ||
236 | irqcfg = mmread(MANTIS_GPIF_IRQCFG); | ||
237 | irqcfg &= ~MANTIS_MASK_BRRDY; | ||
238 | mmwrite(irqcfg, MANTIS_GPIF_IRQCFG); | ||
239 | mutex_unlock(&ca->ca_lock); | ||
240 | } | ||
diff --git a/drivers/media/dvb/mantis/mantis_hif.h b/drivers/media/dvb/mantis/mantis_hif.h new file mode 100644 index 00000000000..9094f9ed236 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_hif.h | |||
@@ -0,0 +1,29 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_HIF_H | ||
22 | #define __MANTIS_HIF_H | ||
23 | |||
24 | #define MANTIS_HIF_MEMRD 1 | ||
25 | #define MANTIS_HIF_MEMWR 2 | ||
26 | #define MANTIS_HIF_IOMRD 3 | ||
27 | #define MANTIS_HIF_IOMWR 4 | ||
28 | |||
29 | #endif /* __MANTIS_HIF_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_i2c.c b/drivers/media/dvb/mantis/mantis_i2c.c new file mode 100644 index 00000000000..7870bcf9689 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_i2c.c | |||
@@ -0,0 +1,267 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <asm/io.h> | ||
22 | #include <linux/ioport.h> | ||
23 | #include <linux/pci.h> | ||
24 | #include <linux/i2c.h> | ||
25 | |||
26 | #include "dmxdev.h" | ||
27 | #include "dvbdev.h" | ||
28 | #include "dvb_demux.h" | ||
29 | #include "dvb_frontend.h" | ||
30 | #include "dvb_net.h" | ||
31 | |||
32 | #include "mantis_common.h" | ||
33 | #include "mantis_reg.h" | ||
34 | #include "mantis_i2c.h" | ||
35 | |||
36 | #define TRIALS 10000 | ||
37 | |||
38 | static int mantis_i2c_read(struct mantis_pci *mantis, const struct i2c_msg *msg) | ||
39 | { | ||
40 | u32 rxd, i, stat, trials; | ||
41 | |||
42 | dprintk(MANTIS_INFO, 0, " %s: Address=[0x%02x] <R>[ ", | ||
43 | __func__, msg->addr); | ||
44 | |||
45 | for (i = 0; i < msg->len; i++) { | ||
46 | rxd = (msg->addr << 25) | (1 << 24) | ||
47 | | MANTIS_I2C_RATE_3 | ||
48 | | MANTIS_I2C_STOP | ||
49 | | MANTIS_I2C_PGMODE; | ||
50 | |||
51 | if (i == (msg->len - 1)) | ||
52 | rxd &= ~MANTIS_I2C_STOP; | ||
53 | |||
54 | mmwrite(MANTIS_INT_I2CDONE, MANTIS_INT_STAT); | ||
55 | mmwrite(rxd, MANTIS_I2CDATA_CTL); | ||
56 | |||
57 | /* wait for xfer completion */ | ||
58 | for (trials = 0; trials < TRIALS; trials++) { | ||
59 | stat = mmread(MANTIS_INT_STAT); | ||
60 | if (stat & MANTIS_INT_I2CDONE) | ||
61 | break; | ||
62 | } | ||
63 | |||
64 | dprintk(MANTIS_TMG, 0, "I2CDONE: trials=%d\n", trials); | ||
65 | |||
66 | /* wait for xfer completion */ | ||
67 | for (trials = 0; trials < TRIALS; trials++) { | ||
68 | stat = mmread(MANTIS_INT_STAT); | ||
69 | if (stat & MANTIS_INT_I2CRACK) | ||
70 | break; | ||
71 | } | ||
72 | |||
73 | dprintk(MANTIS_TMG, 0, "I2CRACK: trials=%d\n", trials); | ||
74 | |||
75 | rxd = mmread(MANTIS_I2CDATA_CTL); | ||
76 | msg->buf[i] = (u8)((rxd >> 8) & 0xFF); | ||
77 | dprintk(MANTIS_INFO, 0, "%02x ", msg->buf[i]); | ||
78 | } | ||
79 | dprintk(MANTIS_INFO, 0, "]\n"); | ||
80 | |||
81 | return 0; | ||
82 | } | ||
83 | |||
84 | static int mantis_i2c_write(struct mantis_pci *mantis, const struct i2c_msg *msg) | ||
85 | { | ||
86 | int i; | ||
87 | u32 txd = 0, stat, trials; | ||
88 | |||
89 | dprintk(MANTIS_INFO, 0, " %s: Address=[0x%02x] <W>[ ", | ||
90 | __func__, msg->addr); | ||
91 | |||
92 | for (i = 0; i < msg->len; i++) { | ||
93 | dprintk(MANTIS_INFO, 0, "%02x ", msg->buf[i]); | ||
94 | txd = (msg->addr << 25) | (msg->buf[i] << 8) | ||
95 | | MANTIS_I2C_RATE_3 | ||
96 | | MANTIS_I2C_STOP | ||
97 | | MANTIS_I2C_PGMODE; | ||
98 | |||
99 | if (i == (msg->len - 1)) | ||
100 | txd &= ~MANTIS_I2C_STOP; | ||
101 | |||
102 | mmwrite(MANTIS_INT_I2CDONE, MANTIS_INT_STAT); | ||
103 | mmwrite(txd, MANTIS_I2CDATA_CTL); | ||
104 | |||
105 | /* wait for xfer completion */ | ||
106 | for (trials = 0; trials < TRIALS; trials++) { | ||
107 | stat = mmread(MANTIS_INT_STAT); | ||
108 | if (stat & MANTIS_INT_I2CDONE) | ||
109 | break; | ||
110 | } | ||
111 | |||
112 | dprintk(MANTIS_TMG, 0, "I2CDONE: trials=%d\n", trials); | ||
113 | |||
114 | /* wait for xfer completion */ | ||
115 | for (trials = 0; trials < TRIALS; trials++) { | ||
116 | stat = mmread(MANTIS_INT_STAT); | ||
117 | if (stat & MANTIS_INT_I2CRACK) | ||
118 | break; | ||
119 | } | ||
120 | |||
121 | dprintk(MANTIS_TMG, 0, "I2CRACK: trials=%d\n", trials); | ||
122 | } | ||
123 | dprintk(MANTIS_INFO, 0, "]\n"); | ||
124 | |||
125 | return 0; | ||
126 | } | ||
127 | |||
128 | static int mantis_i2c_xfer(struct i2c_adapter *adapter, struct i2c_msg *msgs, int num) | ||
129 | { | ||
130 | int ret = 0, i = 0, trials; | ||
131 | u32 stat, data, txd; | ||
132 | struct mantis_pci *mantis; | ||
133 | struct mantis_hwconfig *config; | ||
134 | |||
135 | mantis = i2c_get_adapdata(adapter); | ||
136 | BUG_ON(!mantis); | ||
137 | config = mantis->hwconfig; | ||
138 | BUG_ON(!config); | ||
139 | |||
140 | dprintk(MANTIS_DEBUG, 1, "Messages:%d", num); | ||
141 | mutex_lock(&mantis->i2c_lock); | ||
142 | |||
143 | while (i < num) { | ||
144 | /* Byte MODE */ | ||
145 | if ((config->i2c_mode & MANTIS_BYTE_MODE) && | ||
146 | ((i + 1) < num) && | ||
147 | (msgs[i].len < 2) && | ||
148 | (msgs[i + 1].len < 2) && | ||
149 | (msgs[i + 1].flags & I2C_M_RD)) { | ||
150 | |||
151 | dprintk(MANTIS_DEBUG, 0, " Byte MODE:\n"); | ||
152 | |||
153 | /* Read operation */ | ||
154 | txd = msgs[i].addr << 25 | (0x1 << 24) | ||
155 | | (msgs[i].buf[0] << 16) | ||
156 | | MANTIS_I2C_RATE_3; | ||
157 | |||
158 | mmwrite(txd, MANTIS_I2CDATA_CTL); | ||
159 | /* wait for xfer completion */ | ||
160 | for (trials = 0; trials < TRIALS; trials++) { | ||
161 | stat = mmread(MANTIS_INT_STAT); | ||
162 | if (stat & MANTIS_INT_I2CDONE) | ||
163 | break; | ||
164 | } | ||
165 | |||
166 | /* check for xfer completion */ | ||
167 | if (stat & MANTIS_INT_I2CDONE) { | ||
168 | /* check xfer was acknowledged */ | ||
169 | if (stat & MANTIS_INT_I2CRACK) { | ||
170 | data = mmread(MANTIS_I2CDATA_CTL); | ||
171 | msgs[i + 1].buf[0] = (data >> 8) & 0xff; | ||
172 | dprintk(MANTIS_DEBUG, 0, " Byte <%d> RXD=0x%02x [%02x]\n", 0x0, data, msgs[i + 1].buf[0]); | ||
173 | } else { | ||
174 | /* I/O error */ | ||
175 | dprintk(MANTIS_ERROR, 1, " I/O error, LINE:%d", __LINE__); | ||
176 | ret = -EIO; | ||
177 | break; | ||
178 | } | ||
179 | } else { | ||
180 | /* I/O error */ | ||
181 | dprintk(MANTIS_ERROR, 1, " I/O error, LINE:%d", __LINE__); | ||
182 | ret = -EIO; | ||
183 | break; | ||
184 | } | ||
185 | i += 2; /* Write/Read operation in one go */ | ||
186 | } | ||
187 | |||
188 | if (i < num) { | ||
189 | if (msgs[i].flags & I2C_M_RD) | ||
190 | ret = mantis_i2c_read(mantis, &msgs[i]); | ||
191 | else | ||
192 | ret = mantis_i2c_write(mantis, &msgs[i]); | ||
193 | |||
194 | i++; | ||
195 | if (ret < 0) | ||
196 | goto bail_out; | ||
197 | } | ||
198 | |||
199 | } | ||
200 | |||
201 | mutex_unlock(&mantis->i2c_lock); | ||
202 | |||
203 | return num; | ||
204 | |||
205 | bail_out: | ||
206 | mutex_unlock(&mantis->i2c_lock); | ||
207 | return ret; | ||
208 | } | ||
209 | |||
210 | static u32 mantis_i2c_func(struct i2c_adapter *adapter) | ||
211 | { | ||
212 | return I2C_FUNC_SMBUS_EMUL; | ||
213 | } | ||
214 | |||
215 | static struct i2c_algorithm mantis_algo = { | ||
216 | .master_xfer = mantis_i2c_xfer, | ||
217 | .functionality = mantis_i2c_func, | ||
218 | }; | ||
219 | |||
220 | int __devinit mantis_i2c_init(struct mantis_pci *mantis) | ||
221 | { | ||
222 | u32 intstat, intmask; | ||
223 | struct i2c_adapter *i2c_adapter = &mantis->adapter; | ||
224 | struct pci_dev *pdev = mantis->pdev; | ||
225 | |||
226 | init_waitqueue_head(&mantis->i2c_wq); | ||
227 | mutex_init(&mantis->i2c_lock); | ||
228 | strncpy(i2c_adapter->name, "Mantis I2C", sizeof(i2c_adapter->name)); | ||
229 | i2c_set_adapdata(i2c_adapter, mantis); | ||
230 | |||
231 | i2c_adapter->owner = THIS_MODULE; | ||
232 | i2c_adapter->class = I2C_CLASS_TV_DIGITAL; | ||
233 | i2c_adapter->algo = &mantis_algo; | ||
234 | i2c_adapter->algo_data = NULL; | ||
235 | i2c_adapter->timeout = 500; | ||
236 | i2c_adapter->retries = 3; | ||
237 | i2c_adapter->dev.parent = &pdev->dev; | ||
238 | |||
239 | mantis->i2c_rc = i2c_add_adapter(i2c_adapter); | ||
240 | if (mantis->i2c_rc < 0) | ||
241 | return mantis->i2c_rc; | ||
242 | |||
243 | dprintk(MANTIS_DEBUG, 1, "Initializing I2C .."); | ||
244 | |||
245 | intstat = mmread(MANTIS_INT_STAT); | ||
246 | intmask = mmread(MANTIS_INT_MASK); | ||
247 | mmwrite(intstat, MANTIS_INT_STAT); | ||
248 | dprintk(MANTIS_DEBUG, 1, "Disabling I2C interrupt"); | ||
249 | intmask = mmread(MANTIS_INT_MASK); | ||
250 | mmwrite((intmask & ~MANTIS_INT_I2CDONE), MANTIS_INT_MASK); | ||
251 | |||
252 | return 0; | ||
253 | } | ||
254 | EXPORT_SYMBOL_GPL(mantis_i2c_init); | ||
255 | |||
256 | int mantis_i2c_exit(struct mantis_pci *mantis) | ||
257 | { | ||
258 | u32 intmask; | ||
259 | |||
260 | dprintk(MANTIS_DEBUG, 1, "Disabling I2C interrupt"); | ||
261 | intmask = mmread(MANTIS_INT_MASK); | ||
262 | mmwrite((intmask & ~MANTIS_INT_I2CDONE), MANTIS_INT_MASK); | ||
263 | |||
264 | dprintk(MANTIS_DEBUG, 1, "Removing I2C adapter"); | ||
265 | return i2c_del_adapter(&mantis->adapter); | ||
266 | } | ||
267 | EXPORT_SYMBOL_GPL(mantis_i2c_exit); | ||
diff --git a/drivers/media/dvb/mantis/mantis_i2c.h b/drivers/media/dvb/mantis/mantis_i2c.h new file mode 100644 index 00000000000..1342df2faed --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_i2c.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_I2C_H | ||
22 | #define __MANTIS_I2C_H | ||
23 | |||
24 | #define I2C_STOP (1 << 0) | ||
25 | #define I2C_READ (1 << 1) | ||
26 | |||
27 | extern int mantis_i2c_init(struct mantis_pci *mantis); | ||
28 | extern int mantis_i2c_exit(struct mantis_pci *mantis); | ||
29 | |||
30 | #endif /* __MANTIS_I2C_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_input.c b/drivers/media/dvb/mantis/mantis_input.c new file mode 100644 index 00000000000..6a9df779441 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_input.c | |||
@@ -0,0 +1,148 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/input.h> | ||
22 | #include <media/ir-common.h> | ||
23 | #include <linux/pci.h> | ||
24 | |||
25 | #include "dmxdev.h" | ||
26 | #include "dvbdev.h" | ||
27 | #include "dvb_demux.h" | ||
28 | #include "dvb_frontend.h" | ||
29 | #include "dvb_net.h" | ||
30 | |||
31 | #include "mantis_common.h" | ||
32 | #include "mantis_reg.h" | ||
33 | #include "mantis_uart.h" | ||
34 | |||
35 | static struct ir_scancode mantis_ir_table[] = { | ||
36 | { 0x29, KEY_POWER }, | ||
37 | { 0x28, KEY_FAVORITES }, | ||
38 | { 0x30, KEY_TEXT }, | ||
39 | { 0x17, KEY_INFO }, /* Preview */ | ||
40 | { 0x23, KEY_EPG }, | ||
41 | { 0x3b, KEY_F22 }, /* Record List */ | ||
42 | { 0x3c, KEY_1 }, | ||
43 | { 0x3e, KEY_2 }, | ||
44 | { 0x39, KEY_3 }, | ||
45 | { 0x36, KEY_4 }, | ||
46 | { 0x22, KEY_5 }, | ||
47 | { 0x20, KEY_6 }, | ||
48 | { 0x32, KEY_7 }, | ||
49 | { 0x26, KEY_8 }, | ||
50 | { 0x24, KEY_9 }, | ||
51 | { 0x2a, KEY_0 }, | ||
52 | |||
53 | { 0x33, KEY_CANCEL }, | ||
54 | { 0x2c, KEY_BACK }, | ||
55 | { 0x15, KEY_CLEAR }, | ||
56 | { 0x3f, KEY_TAB }, | ||
57 | { 0x10, KEY_ENTER }, | ||
58 | { 0x14, KEY_UP }, | ||
59 | { 0x0d, KEY_RIGHT }, | ||
60 | { 0x0e, KEY_DOWN }, | ||
61 | { 0x11, KEY_LEFT }, | ||
62 | |||
63 | { 0x21, KEY_VOLUMEUP }, | ||
64 | { 0x35, KEY_VOLUMEDOWN }, | ||
65 | { 0x3d, KEY_CHANNELDOWN }, | ||
66 | { 0x3a, KEY_CHANNELUP }, | ||
67 | { 0x2e, KEY_RECORD }, | ||
68 | { 0x2b, KEY_PLAY }, | ||
69 | { 0x13, KEY_PAUSE }, | ||
70 | { 0x25, KEY_STOP }, | ||
71 | |||
72 | { 0x1f, KEY_REWIND }, | ||
73 | { 0x2d, KEY_FASTFORWARD }, | ||
74 | { 0x1e, KEY_PREVIOUS }, /* Replay |< */ | ||
75 | { 0x1d, KEY_NEXT }, /* Skip >| */ | ||
76 | |||
77 | { 0x0b, KEY_CAMERA }, /* Capture */ | ||
78 | { 0x0f, KEY_LANGUAGE }, /* SAP */ | ||
79 | { 0x18, KEY_MODE }, /* PIP */ | ||
80 | { 0x12, KEY_ZOOM }, /* Full screen */ | ||
81 | { 0x1c, KEY_SUBTITLE }, | ||
82 | { 0x2f, KEY_MUTE }, | ||
83 | { 0x16, KEY_F20 }, /* L/R */ | ||
84 | { 0x38, KEY_F21 }, /* Hibernate */ | ||
85 | |||
86 | { 0x37, KEY_SWITCHVIDEOMODE }, /* A/V */ | ||
87 | { 0x31, KEY_AGAIN }, /* Recall */ | ||
88 | { 0x1a, KEY_KPPLUS }, /* Zoom+ */ | ||
89 | { 0x19, KEY_KPMINUS }, /* Zoom- */ | ||
90 | { 0x27, KEY_RED }, | ||
91 | { 0x0C, KEY_GREEN }, | ||
92 | { 0x01, KEY_YELLOW }, | ||
93 | { 0x00, KEY_BLUE }, | ||
94 | }; | ||
95 | |||
96 | struct ir_scancode_table ir_mantis = { | ||
97 | .scan = mantis_ir_table, | ||
98 | .size = ARRAY_SIZE(mantis_ir_table), | ||
99 | }; | ||
100 | EXPORT_SYMBOL_GPL(ir_mantis); | ||
101 | |||
102 | int mantis_input_init(struct mantis_pci *mantis) | ||
103 | { | ||
104 | struct input_dev *rc; | ||
105 | struct ir_input_state rc_state; | ||
106 | char name[80], dev[80]; | ||
107 | int err; | ||
108 | |||
109 | rc = input_allocate_device(); | ||
110 | if (!rc) { | ||
111 | dprintk(MANTIS_ERROR, 1, "Input device allocate failed"); | ||
112 | return -ENOMEM; | ||
113 | } | ||
114 | |||
115 | sprintf(name, "Mantis %s IR receiver", mantis->hwconfig->model_name); | ||
116 | sprintf(dev, "pci-%s/ir0", pci_name(mantis->pdev)); | ||
117 | |||
118 | rc->name = name; | ||
119 | rc->phys = dev; | ||
120 | |||
121 | ir_input_init(rc, &rc_state, IR_TYPE_OTHER); | ||
122 | |||
123 | rc->id.bustype = BUS_PCI; | ||
124 | rc->id.vendor = mantis->vendor_id; | ||
125 | rc->id.product = mantis->device_id; | ||
126 | rc->id.version = 1; | ||
127 | rc->dev = mantis->pdev->dev; | ||
128 | |||
129 | err = ir_input_register(rc, &ir_mantis); | ||
130 | if (err) { | ||
131 | dprintk(MANTIS_ERROR, 1, "IR device registration failed, ret = %d", err); | ||
132 | input_free_device(rc); | ||
133 | return -ENODEV; | ||
134 | } | ||
135 | |||
136 | mantis->rc = rc; | ||
137 | |||
138 | return 0; | ||
139 | } | ||
140 | |||
141 | int mantis_exit(struct mantis_pci *mantis) | ||
142 | { | ||
143 | struct input_dev *rc = mantis->rc; | ||
144 | |||
145 | ir_input_unregister(rc); | ||
146 | |||
147 | return 0; | ||
148 | } | ||
diff --git a/drivers/media/dvb/mantis/mantis_ioc.c b/drivers/media/dvb/mantis/mantis_ioc.c new file mode 100644 index 00000000000..de148ded52d --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_ioc.c | |||
@@ -0,0 +1,130 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/kernel.h> | ||
22 | #include <linux/i2c.h> | ||
23 | |||
24 | #include <linux/signal.h> | ||
25 | #include <linux/sched.h> | ||
26 | #include <linux/interrupt.h> | ||
27 | |||
28 | #include "dmxdev.h" | ||
29 | #include "dvbdev.h" | ||
30 | #include "dvb_demux.h" | ||
31 | #include "dvb_frontend.h" | ||
32 | #include "dvb_net.h" | ||
33 | |||
34 | #include "mantis_common.h" | ||
35 | #include "mantis_reg.h" | ||
36 | #include "mantis_ioc.h" | ||
37 | |||
38 | static int read_eeprom_bytes(struct mantis_pci *mantis, u8 reg, u8 *data, u8 length) | ||
39 | { | ||
40 | struct i2c_adapter *adapter = &mantis->adapter; | ||
41 | int err; | ||
42 | u8 buf = reg; | ||
43 | |||
44 | struct i2c_msg msg[] = { | ||
45 | { .addr = 0x50, .flags = 0, .buf = &buf, .len = 1 }, | ||
46 | { .addr = 0x50, .flags = I2C_M_RD, .buf = data, .len = length }, | ||
47 | }; | ||
48 | |||
49 | err = i2c_transfer(adapter, msg, 2); | ||
50 | if (err < 0) { | ||
51 | dprintk(MANTIS_ERROR, 1, "ERROR: i2c read: < err=%i d0=0x%02x d1=0x%02x >", | ||
52 | err, data[0], data[1]); | ||
53 | |||
54 | return err; | ||
55 | } | ||
56 | |||
57 | return 0; | ||
58 | } | ||
59 | int mantis_get_mac(struct mantis_pci *mantis) | ||
60 | { | ||
61 | int err; | ||
62 | u8 mac_addr[6] = {0}; | ||
63 | |||
64 | err = read_eeprom_bytes(mantis, 0x08, mac_addr, 6); | ||
65 | if (err < 0) { | ||
66 | dprintk(MANTIS_ERROR, 1, "ERROR: Mantis EEPROM read error <%d>", err); | ||
67 | |||
68 | return err; | ||
69 | } | ||
70 | |||
71 | dprintk(MANTIS_ERROR, 0, | ||
72 | " MAC Address=[%02x:%02x:%02x:%02x:%02x:%02x]\n", | ||
73 | mac_addr[0], | ||
74 | mac_addr[1], | ||
75 | mac_addr[2], | ||
76 | mac_addr[3], | ||
77 | mac_addr[4], | ||
78 | mac_addr[5]); | ||
79 | |||
80 | return 0; | ||
81 | } | ||
82 | EXPORT_SYMBOL_GPL(mantis_get_mac); | ||
83 | |||
84 | /* Turn the given bit on or off. */ | ||
85 | void gpio_set_bits(struct mantis_pci *mantis, u32 bitpos, u8 value) | ||
86 | { | ||
87 | u32 cur; | ||
88 | |||
89 | dprintk(MANTIS_DEBUG, 1, "Set Bit <%d> to <%d>", bitpos, value); | ||
90 | cur = mmread(MANTIS_GPIF_ADDR); | ||
91 | if (value) | ||
92 | mantis->gpio_status = cur | (1 << bitpos); | ||
93 | else | ||
94 | mantis->gpio_status = cur & (~(1 << bitpos)); | ||
95 | |||
96 | dprintk(MANTIS_DEBUG, 1, "GPIO Value <%02x>", mantis->gpio_status); | ||
97 | mmwrite(mantis->gpio_status, MANTIS_GPIF_ADDR); | ||
98 | mmwrite(0x00, MANTIS_GPIF_DOUT); | ||
99 | } | ||
100 | EXPORT_SYMBOL_GPL(gpio_set_bits); | ||
101 | |||
102 | int mantis_stream_control(struct mantis_pci *mantis, enum mantis_stream_control stream_ctl) | ||
103 | { | ||
104 | u32 reg; | ||
105 | |||
106 | reg = mmread(MANTIS_CONTROL); | ||
107 | switch (stream_ctl) { | ||
108 | case STREAM_TO_HIF: | ||
109 | dprintk(MANTIS_DEBUG, 1, "Set stream to HIF"); | ||
110 | reg &= 0xff - MANTIS_BYPASS; | ||
111 | mmwrite(reg, MANTIS_CONTROL); | ||
112 | reg |= MANTIS_BYPASS; | ||
113 | mmwrite(reg, MANTIS_CONTROL); | ||
114 | break; | ||
115 | |||
116 | case STREAM_TO_CAM: | ||
117 | dprintk(MANTIS_DEBUG, 1, "Set stream to CAM"); | ||
118 | reg |= MANTIS_BYPASS; | ||
119 | mmwrite(reg, MANTIS_CONTROL); | ||
120 | reg &= 0xff - MANTIS_BYPASS; | ||
121 | mmwrite(reg, MANTIS_CONTROL); | ||
122 | break; | ||
123 | default: | ||
124 | dprintk(MANTIS_ERROR, 1, "Unknown MODE <%02x>", stream_ctl); | ||
125 | return -1; | ||
126 | } | ||
127 | |||
128 | return 0; | ||
129 | } | ||
130 | EXPORT_SYMBOL_GPL(mantis_stream_control); | ||
diff --git a/drivers/media/dvb/mantis/mantis_ioc.h b/drivers/media/dvb/mantis/mantis_ioc.h new file mode 100644 index 00000000000..188fe5a8161 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_ioc.h | |||
@@ -0,0 +1,51 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_IOC_H | ||
22 | #define __MANTIS_IOC_H | ||
23 | |||
24 | #define GPIF_A00 0x00 | ||
25 | #define GPIF_A01 0x01 | ||
26 | #define GPIF_A02 0x02 | ||
27 | #define GPIF_A03 0x03 | ||
28 | #define GPIF_A04 0x04 | ||
29 | #define GPIF_A05 0x05 | ||
30 | #define GPIF_A06 0x06 | ||
31 | #define GPIF_A07 0x07 | ||
32 | #define GPIF_A08 0x08 | ||
33 | #define GPIF_A09 0x09 | ||
34 | #define GPIF_A10 0x0a | ||
35 | #define GPIF_A11 0x0b | ||
36 | |||
37 | #define GPIF_A12 0x0c | ||
38 | #define GPIF_A13 0x0d | ||
39 | #define GPIF_A14 0x0e | ||
40 | |||
41 | enum mantis_stream_control { | ||
42 | STREAM_TO_HIF = 0, | ||
43 | STREAM_TO_CAM | ||
44 | }; | ||
45 | |||
46 | extern int mantis_get_mac(struct mantis_pci *mantis); | ||
47 | extern void gpio_set_bits(struct mantis_pci *mantis, u32 bitpos, u8 value); | ||
48 | |||
49 | extern int mantis_stream_control(struct mantis_pci *mantis, enum mantis_stream_control stream_ctl); | ||
50 | |||
51 | #endif /* __MANTIS_IOC_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_link.h b/drivers/media/dvb/mantis/mantis_link.h new file mode 100644 index 00000000000..2a814774a00 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_link.h | |||
@@ -0,0 +1,83 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_LINK_H | ||
22 | #define __MANTIS_LINK_H | ||
23 | |||
24 | #include <linux/mutex.h> | ||
25 | #include <linux/workqueue.h> | ||
26 | #include "dvb_ca_en50221.h" | ||
27 | |||
28 | enum mantis_sbuf_status { | ||
29 | MANTIS_SBUF_DATA_AVAIL = 1, | ||
30 | MANTIS_SBUF_DATA_EMPTY = 2, | ||
31 | MANTIS_SBUF_DATA_OVFLW = 3 | ||
32 | }; | ||
33 | |||
34 | struct mantis_slot { | ||
35 | u32 timeout; | ||
36 | u32 slave_cfg; | ||
37 | u32 bar; | ||
38 | }; | ||
39 | |||
40 | /* Physical layer */ | ||
41 | enum mantis_slot_state { | ||
42 | MODULE_INSERTED = 3, | ||
43 | MODULE_XTRACTED = 4 | ||
44 | }; | ||
45 | |||
46 | struct mantis_ca { | ||
47 | struct mantis_slot slot[4]; | ||
48 | |||
49 | struct work_struct hif_evm_work; | ||
50 | |||
51 | u32 hif_event; | ||
52 | wait_queue_head_t hif_opdone_wq; | ||
53 | wait_queue_head_t hif_brrdyw_wq; | ||
54 | wait_queue_head_t hif_data_wq; | ||
55 | wait_queue_head_t hif_write_wq; /* HIF Write op */ | ||
56 | |||
57 | enum mantis_sbuf_status sbuf_status; | ||
58 | |||
59 | enum mantis_slot_state slot_state; | ||
60 | |||
61 | void *ca_priv; | ||
62 | |||
63 | struct dvb_ca_en50221 en50221; | ||
64 | struct mutex ca_lock; | ||
65 | }; | ||
66 | |||
67 | /* CA */ | ||
68 | extern void mantis_event_cam_plugin(struct mantis_ca *ca); | ||
69 | extern void mantis_event_cam_unplug(struct mantis_ca *ca); | ||
70 | extern int mantis_pcmcia_init(struct mantis_ca *ca); | ||
71 | extern void mantis_pcmcia_exit(struct mantis_ca *ca); | ||
72 | extern int mantis_evmgr_init(struct mantis_ca *ca); | ||
73 | extern void mantis_evmgr_exit(struct mantis_ca *ca); | ||
74 | |||
75 | /* HIF */ | ||
76 | extern int mantis_hif_init(struct mantis_ca *ca); | ||
77 | extern void mantis_hif_exit(struct mantis_ca *ca); | ||
78 | extern int mantis_hif_read_mem(struct mantis_ca *ca, u32 addr); | ||
79 | extern int mantis_hif_write_mem(struct mantis_ca *ca, u32 addr, u8 data); | ||
80 | extern int mantis_hif_read_iom(struct mantis_ca *ca, u32 addr); | ||
81 | extern int mantis_hif_write_iom(struct mantis_ca *ca, u32 addr, u8 data); | ||
82 | |||
83 | #endif /* __MANTIS_LINK_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_pci.c b/drivers/media/dvb/mantis/mantis_pci.c new file mode 100644 index 00000000000..6c7534af6b4 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_pci.c | |||
@@ -0,0 +1,177 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/module.h> | ||
22 | #include <linux/moduleparam.h> | ||
23 | #include <linux/kernel.h> | ||
24 | #include <asm/io.h> | ||
25 | #include <asm/pgtable.h> | ||
26 | #include <asm/page.h> | ||
27 | #include <linux/kmod.h> | ||
28 | #include <linux/vmalloc.h> | ||
29 | #include <linux/init.h> | ||
30 | #include <linux/device.h> | ||
31 | #include <linux/pci.h> | ||
32 | |||
33 | #include <asm/irq.h> | ||
34 | #include <linux/signal.h> | ||
35 | #include <linux/sched.h> | ||
36 | #include <linux/interrupt.h> | ||
37 | |||
38 | #include "dmxdev.h" | ||
39 | #include "dvbdev.h" | ||
40 | #include "dvb_demux.h" | ||
41 | #include "dvb_frontend.h" | ||
42 | #include "dvb_net.h" | ||
43 | |||
44 | #include <asm/irq.h> | ||
45 | #include <linux/signal.h> | ||
46 | #include <linux/sched.h> | ||
47 | #include <linux/interrupt.h> | ||
48 | |||
49 | #include "mantis_common.h" | ||
50 | #include "mantis_reg.h" | ||
51 | #include "mantis_pci.h" | ||
52 | |||
53 | #define DRIVER_NAME "Mantis Core" | ||
54 | |||
55 | int __devinit mantis_pci_init(struct mantis_pci *mantis) | ||
56 | { | ||
57 | u8 revision, latency; | ||
58 | struct mantis_hwconfig *config = mantis->hwconfig; | ||
59 | struct pci_dev *pdev = mantis->pdev; | ||
60 | int err, ret = 0; | ||
61 | |||
62 | dprintk(MANTIS_ERROR, 0, "found a %s PCI %s device on (%02x:%02x.%x),\n", | ||
63 | config->model_name, | ||
64 | config->dev_type, | ||
65 | mantis->pdev->bus->number, | ||
66 | PCI_SLOT(mantis->pdev->devfn), | ||
67 | PCI_FUNC(mantis->pdev->devfn)); | ||
68 | |||
69 | err = pci_enable_device(pdev); | ||
70 | if (err != 0) { | ||
71 | ret = -ENODEV; | ||
72 | dprintk(MANTIS_ERROR, 1, "ERROR: PCI enable failed <%i>", err); | ||
73 | goto fail0; | ||
74 | } | ||
75 | |||
76 | err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); | ||
77 | if (err != 0) { | ||
78 | dprintk(MANTIS_ERROR, 1, "ERROR: Unable to obtain 32 bit DMA <%i>", err); | ||
79 | ret = -ENOMEM; | ||
80 | goto fail1; | ||
81 | } | ||
82 | |||
83 | pci_set_master(pdev); | ||
84 | |||
85 | if (!request_mem_region(pci_resource_start(pdev, 0), | ||
86 | pci_resource_len(pdev, 0), | ||
87 | DRIVER_NAME)) { | ||
88 | |||
89 | dprintk(MANTIS_ERROR, 1, "ERROR: BAR0 Request failed !"); | ||
90 | ret = -ENODEV; | ||
91 | goto fail1; | ||
92 | } | ||
93 | |||
94 | mantis->mmio = ioremap(pci_resource_start(pdev, 0), | ||
95 | pci_resource_len(pdev, 0)); | ||
96 | |||
97 | if (!mantis->mmio) { | ||
98 | dprintk(MANTIS_ERROR, 1, "ERROR: BAR0 remap failed !"); | ||
99 | ret = -ENODEV; | ||
100 | goto fail2; | ||
101 | } | ||
102 | |||
103 | pci_read_config_byte(pdev, PCI_LATENCY_TIMER, &latency); | ||
104 | pci_read_config_byte(pdev, PCI_CLASS_REVISION, &revision); | ||
105 | mantis->latency = latency; | ||
106 | mantis->revision = revision; | ||
107 | |||
108 | dprintk(MANTIS_ERROR, 0, " Mantis Rev %d [%04x:%04x], ", | ||
109 | mantis->revision, | ||
110 | mantis->pdev->subsystem_vendor, | ||
111 | mantis->pdev->subsystem_device); | ||
112 | |||
113 | dprintk(MANTIS_ERROR, 0, | ||
114 | "irq: %d, latency: %d\n memory: 0x%lx, mmio: 0x%p\n", | ||
115 | mantis->pdev->irq, | ||
116 | mantis->latency, | ||
117 | mantis->mantis_addr, | ||
118 | mantis->mmio); | ||
119 | |||
120 | err = request_irq(pdev->irq, | ||
121 | config->irq_handler, | ||
122 | IRQF_SHARED, | ||
123 | DRIVER_NAME, | ||
124 | mantis); | ||
125 | |||
126 | if (err != 0) { | ||
127 | |||
128 | dprintk(MANTIS_ERROR, 1, "ERROR: IRQ registration failed ! <%d>", err); | ||
129 | ret = -ENODEV; | ||
130 | goto fail3; | ||
131 | } | ||
132 | |||
133 | pci_set_drvdata(pdev, mantis); | ||
134 | return ret; | ||
135 | |||
136 | /* Error conditions */ | ||
137 | fail3: | ||
138 | dprintk(MANTIS_ERROR, 1, "ERROR: <%d> I/O unmap", ret); | ||
139 | if (mantis->mmio) | ||
140 | iounmap(mantis->mmio); | ||
141 | |||
142 | fail2: | ||
143 | dprintk(MANTIS_ERROR, 1, "ERROR: <%d> releasing regions", ret); | ||
144 | release_mem_region(pci_resource_start(pdev, 0), | ||
145 | pci_resource_len(pdev, 0)); | ||
146 | |||
147 | fail1: | ||
148 | dprintk(MANTIS_ERROR, 1, "ERROR: <%d> disabling device", ret); | ||
149 | pci_disable_device(pdev); | ||
150 | |||
151 | fail0: | ||
152 | dprintk(MANTIS_ERROR, 1, "ERROR: <%d> exiting", ret); | ||
153 | pci_set_drvdata(pdev, NULL); | ||
154 | return ret; | ||
155 | } | ||
156 | EXPORT_SYMBOL_GPL(mantis_pci_init); | ||
157 | |||
158 | void mantis_pci_exit(struct mantis_pci *mantis) | ||
159 | { | ||
160 | struct pci_dev *pdev = mantis->pdev; | ||
161 | |||
162 | dprintk(MANTIS_NOTICE, 1, " mem: 0x%p", mantis->mmio); | ||
163 | free_irq(pdev->irq, mantis); | ||
164 | if (mantis->mmio) { | ||
165 | iounmap(mantis->mmio); | ||
166 | release_mem_region(pci_resource_start(pdev, 0), | ||
167 | pci_resource_len(pdev, 0)); | ||
168 | } | ||
169 | |||
170 | pci_disable_device(pdev); | ||
171 | pci_set_drvdata(pdev, NULL); | ||
172 | } | ||
173 | EXPORT_SYMBOL_GPL(mantis_pci_exit); | ||
174 | |||
175 | MODULE_DESCRIPTION("Mantis PCI DTV bridge driver"); | ||
176 | MODULE_AUTHOR("Manu Abraham"); | ||
177 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/media/dvb/mantis/mantis_pci.h b/drivers/media/dvb/mantis/mantis_pci.h new file mode 100644 index 00000000000..65f00451908 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_pci.h | |||
@@ -0,0 +1,27 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_PCI_H | ||
22 | #define __MANTIS_PCI_H | ||
23 | |||
24 | extern int mantis_pci_init(struct mantis_pci *mantis); | ||
25 | extern void mantis_pci_exit(struct mantis_pci *mantis); | ||
26 | |||
27 | #endif /* __MANTIS_PCI_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_pcmcia.c b/drivers/media/dvb/mantis/mantis_pcmcia.c new file mode 100644 index 00000000000..5cb545b913f --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_pcmcia.c | |||
@@ -0,0 +1,120 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/kernel.h> | ||
22 | |||
23 | #include <linux/signal.h> | ||
24 | #include <linux/sched.h> | ||
25 | #include <linux/interrupt.h> | ||
26 | |||
27 | #include "dmxdev.h" | ||
28 | #include "dvbdev.h" | ||
29 | #include "dvb_demux.h" | ||
30 | #include "dvb_frontend.h" | ||
31 | #include "dvb_net.h" | ||
32 | |||
33 | #include "mantis_common.h" | ||
34 | #include "mantis_link.h" /* temporary due to physical layer stuff */ | ||
35 | #include "mantis_reg.h" | ||
36 | |||
37 | /* | ||
38 | * If Slot state is already PLUG_IN event and we are called | ||
39 | * again, definitely it is jitter alone | ||
40 | */ | ||
41 | void mantis_event_cam_plugin(struct mantis_ca *ca) | ||
42 | { | ||
43 | struct mantis_pci *mantis = ca->ca_priv; | ||
44 | |||
45 | u32 gpif_irqcfg; | ||
46 | |||
47 | if (ca->slot_state == MODULE_XTRACTED) { | ||
48 | dprintk(MANTIS_DEBUG, 1, "Event: CAM Plugged IN: Adapter(%d) Slot(0)", mantis->num); | ||
49 | udelay(50); | ||
50 | mmwrite(0xda000000, MANTIS_CARD_RESET); | ||
51 | gpif_irqcfg = mmread(MANTIS_GPIF_IRQCFG); | ||
52 | gpif_irqcfg |= MANTIS_MASK_PLUGOUT; | ||
53 | gpif_irqcfg &= ~MANTIS_MASK_PLUGIN; | ||
54 | mmwrite(gpif_irqcfg, MANTIS_GPIF_IRQCFG); | ||
55 | udelay(500); | ||
56 | ca->slot_state = MODULE_INSERTED; | ||
57 | } | ||
58 | udelay(100); | ||
59 | } | ||
60 | |||
61 | /* | ||
62 | * If Slot state is already UN_PLUG event and we are called | ||
63 | * again, definitely it is jitter alone | ||
64 | */ | ||
65 | void mantis_event_cam_unplug(struct mantis_ca *ca) | ||
66 | { | ||
67 | struct mantis_pci *mantis = ca->ca_priv; | ||
68 | |||
69 | u32 gpif_irqcfg; | ||
70 | |||
71 | if (ca->slot_state == MODULE_INSERTED) { | ||
72 | dprintk(MANTIS_DEBUG, 1, "Event: CAM Unplugged: Adapter(%d) Slot(0)", mantis->num); | ||
73 | udelay(50); | ||
74 | mmwrite(0x00da0000, MANTIS_CARD_RESET); | ||
75 | gpif_irqcfg = mmread(MANTIS_GPIF_IRQCFG); | ||
76 | gpif_irqcfg |= MANTIS_MASK_PLUGIN; | ||
77 | gpif_irqcfg &= ~MANTIS_MASK_PLUGOUT; | ||
78 | mmwrite(gpif_irqcfg, MANTIS_GPIF_IRQCFG); | ||
79 | udelay(500); | ||
80 | ca->slot_state = MODULE_XTRACTED; | ||
81 | } | ||
82 | udelay(100); | ||
83 | } | ||
84 | |||
85 | int mantis_pcmcia_init(struct mantis_ca *ca) | ||
86 | { | ||
87 | struct mantis_pci *mantis = ca->ca_priv; | ||
88 | |||
89 | u32 gpif_stat, card_stat; | ||
90 | |||
91 | mmwrite(mmread(MANTIS_INT_MASK) | MANTIS_INT_IRQ0, MANTIS_INT_MASK); | ||
92 | gpif_stat = mmread(MANTIS_GPIF_STATUS); | ||
93 | card_stat = mmread(MANTIS_GPIF_IRQCFG); | ||
94 | |||
95 | if (gpif_stat & MANTIS_GPIF_DETSTAT) { | ||
96 | dprintk(MANTIS_DEBUG, 1, "CAM found on Adapter(%d) Slot(0)", mantis->num); | ||
97 | mmwrite(card_stat | MANTIS_MASK_PLUGOUT, MANTIS_GPIF_IRQCFG); | ||
98 | ca->slot_state = MODULE_INSERTED; | ||
99 | dvb_ca_en50221_camchange_irq(&ca->en50221, | ||
100 | 0, | ||
101 | DVB_CA_EN50221_CAMCHANGE_INSERTED); | ||
102 | } else { | ||
103 | dprintk(MANTIS_DEBUG, 1, "Empty Slot on Adapter(%d) Slot(0)", mantis->num); | ||
104 | mmwrite(card_stat | MANTIS_MASK_PLUGIN, MANTIS_GPIF_IRQCFG); | ||
105 | ca->slot_state = MODULE_XTRACTED; | ||
106 | dvb_ca_en50221_camchange_irq(&ca->en50221, | ||
107 | 0, | ||
108 | DVB_CA_EN50221_CAMCHANGE_REMOVED); | ||
109 | } | ||
110 | |||
111 | return 0; | ||
112 | } | ||
113 | |||
114 | void mantis_pcmcia_exit(struct mantis_ca *ca) | ||
115 | { | ||
116 | struct mantis_pci *mantis = ca->ca_priv; | ||
117 | |||
118 | mmwrite(mmread(MANTIS_GPIF_STATUS) & (~MANTIS_CARD_PLUGOUT | ~MANTIS_CARD_PLUGIN), MANTIS_GPIF_STATUS); | ||
119 | mmwrite(mmread(MANTIS_INT_MASK) & ~MANTIS_INT_IRQ0, MANTIS_INT_MASK); | ||
120 | } | ||
diff --git a/drivers/media/dvb/mantis/mantis_reg.h b/drivers/media/dvb/mantis/mantis_reg.h new file mode 100644 index 00000000000..7761f9dc7fe --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_reg.h | |||
@@ -0,0 +1,197 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_REG_H | ||
22 | #define __MANTIS_REG_H | ||
23 | |||
24 | /* Interrupts */ | ||
25 | #define MANTIS_INT_STAT 0x00 | ||
26 | #define MANTIS_INT_MASK 0x04 | ||
27 | |||
28 | #define MANTIS_INT_RISCSTAT (0x0f << 28) | ||
29 | #define MANTIS_INT_RISCEN (0x01 << 27) | ||
30 | #define MANTIS_INT_I2CRACK (0x01 << 26) | ||
31 | |||
32 | /* #define MANTIS_INT_GPIF (0xff << 12) */ | ||
33 | |||
34 | #define MANTIS_INT_PCMCIA7 (0x01 << 19) | ||
35 | #define MANTIS_INT_PCMCIA6 (0x01 << 18) | ||
36 | #define MANTIS_INT_PCMCIA5 (0x01 << 17) | ||
37 | #define MANTIS_INT_PCMCIA4 (0x01 << 16) | ||
38 | #define MANTIS_INT_PCMCIA3 (0x01 << 15) | ||
39 | #define MANTIS_INT_PCMCIA2 (0x01 << 14) | ||
40 | #define MANTIS_INT_PCMCIA1 (0x01 << 13) | ||
41 | #define MANTIS_INT_PCMCIA0 (0x01 << 12) | ||
42 | #define MANTIS_INT_IRQ1 (0x01 << 11) | ||
43 | #define MANTIS_INT_IRQ0 (0x01 << 10) | ||
44 | #define MANTIS_INT_OCERR (0x01 << 8) | ||
45 | #define MANTIS_INT_PABORT (0x01 << 7) | ||
46 | #define MANTIS_INT_RIPERR (0x01 << 6) | ||
47 | #define MANTIS_INT_PPERR (0x01 << 5) | ||
48 | #define MANTIS_INT_FTRGT (0x01 << 3) | ||
49 | #define MANTIS_INT_RISCI (0x01 << 1) | ||
50 | #define MANTIS_INT_I2CDONE (0x01 << 0) | ||
51 | |||
52 | /* DMA */ | ||
53 | #define MANTIS_DMA_CTL 0x08 | ||
54 | #define MANTIS_GPIF_RD (0xff << 24) | ||
55 | #define MANTIS_GPIF_WR (0xff << 16) | ||
56 | #define MANTIS_CPU_DO (0x01 << 10) | ||
57 | #define MANTIS_DRV_DO (0x01 << 9) | ||
58 | #define MANTIS_I2C_RD (0x01 << 7) | ||
59 | #define MANTIS_I2C_WR (0x01 << 6) | ||
60 | #define MANTIS_DCAP_MODE (0x01 << 5) | ||
61 | #define MANTIS_FIFO_TP_4 (0x00 << 3) | ||
62 | #define MANTIS_FIFO_TP_8 (0x01 << 3) | ||
63 | #define MANTIS_FIFO_TP_16 (0x02 << 3) | ||
64 | #define MANTIS_FIFO_EN (0x01 << 2) | ||
65 | #define MANTIS_DCAP_EN (0x01 << 1) | ||
66 | #define MANTIS_RISC_EN (0x01 << 0) | ||
67 | |||
68 | /* DEBUG */ | ||
69 | #define MANTIS_DEBUGREG 0x0c | ||
70 | #define MANTIS_DATINV (0x0e << 7) | ||
71 | #define MANTIS_TOP_DEBUGSEL (0x07 << 4) | ||
72 | #define MANTIS_PCMCIA_DEBUGSEL (0x0f << 0) | ||
73 | |||
74 | #define MANTIS_RISC_START 0x10 | ||
75 | #define MANTIS_RISC_PC 0x14 | ||
76 | |||
77 | /* I2C */ | ||
78 | #define MANTIS_I2CDATA_CTL 0x18 | ||
79 | #define MANTIS_I2C_RATE_1 (0x00 << 6) | ||
80 | #define MANTIS_I2C_RATE_2 (0x01 << 6) | ||
81 | #define MANTIS_I2C_RATE_3 (0x02 << 6) | ||
82 | #define MANTIS_I2C_RATE_4 (0x03 << 6) | ||
83 | #define MANTIS_I2C_STOP (0x01 << 5) | ||
84 | #define MANTIS_I2C_PGMODE (0x01 << 3) | ||
85 | |||
86 | /* DATA */ | ||
87 | #define MANTIS_CMD_DATA_R1 0x20 | ||
88 | #define MANTIS_CMD_DATA_3 (0xff << 24) | ||
89 | #define MANTIS_CMD_DATA_2 (0xff << 16) | ||
90 | #define MANTIS_CMD_DATA_1 (0xff << 8) | ||
91 | #define MANTIS_CMD_DATA_0 (0xff << 0) | ||
92 | |||
93 | #define MANTIS_CMD_DATA_R2 0x24 | ||
94 | #define MANTIS_CMD_DATA_7 (0xff << 24) | ||
95 | #define MANTIS_CMD_DATA_6 (0xff << 16) | ||
96 | #define MANTIS_CMD_DATA_5 (0xff << 8) | ||
97 | #define MANTIS_CMD_DATA_4 (0xff << 0) | ||
98 | |||
99 | #define MANTIS_CONTROL 0x28 | ||
100 | #define MANTIS_DET (0x01 << 7) | ||
101 | #define MANTIS_DAT_CF_EN (0x01 << 6) | ||
102 | #define MANTIS_ACS (0x03 << 4) | ||
103 | #define MANTIS_VCCEN (0x01 << 3) | ||
104 | #define MANTIS_BYPASS (0x01 << 2) | ||
105 | #define MANTIS_MRST (0x01 << 1) | ||
106 | #define MANTIS_CRST_INT (0x01 << 0) | ||
107 | |||
108 | #define MANTIS_GPIF_CFGSLA 0x84 | ||
109 | #define MANTIS_GPIF_WAITSMPL (0x07 << 28) | ||
110 | #define MANTIS_GPIF_BYTEADDRSUB (0x01 << 25) | ||
111 | #define MANTIS_GPIF_WAITPOL (0x01 << 24) | ||
112 | #define MANTIS_GPIF_NCDELAY (0x07 << 20) | ||
113 | #define MANTIS_GPIF_RW2CSDELAY (0x07 << 16) | ||
114 | #define MANTIS_GPIF_SLFTIMEDMODE (0x01 << 15) | ||
115 | #define MANTIS_GPIF_SLFTIMEDDELY (0x7f << 8) | ||
116 | #define MANTIS_GPIF_DEVTYPE (0x07 << 4) | ||
117 | #define MANTIS_GPIF_BIGENDIAN (0x01 << 3) | ||
118 | #define MANTIS_GPIF_FETCHCMD (0x03 << 1) | ||
119 | #define MANTIS_GPIF_HWORDDEV (0x01 << 0) | ||
120 | |||
121 | #define MANTIS_GPIF_WSTOPER 0x90 | ||
122 | #define MANTIS_GPIF_WSTOPERWREN3 (0x01 << 31) | ||
123 | #define MANTIS_GPIF_PARBOOTN (0x01 << 29) | ||
124 | #define MANTIS_GPIF_WSTOPERSLID3 (0x1f << 24) | ||
125 | #define MANTIS_GPIF_WSTOPERWREN2 (0x01 << 23) | ||
126 | #define MANTIS_GPIF_WSTOPERSLID2 (0x1f << 16) | ||
127 | #define MANTIS_GPIF_WSTOPERWREN1 (0x01 << 15) | ||
128 | #define MANTIS_GPIF_WSTOPERSLID1 (0x1f << 8) | ||
129 | #define MANTIS_GPIF_WSTOPERWREN0 (0x01 << 7) | ||
130 | #define MANTIS_GPIF_WSTOPERSLID0 (0x1f << 0) | ||
131 | |||
132 | #define MANTIS_GPIF_CS2RW 0x94 | ||
133 | #define MANTIS_GPIF_CS2RWWREN3 (0x01 << 31) | ||
134 | #define MANTIS_GPIF_CS2RWDELY3 (0x3f << 24) | ||
135 | #define MANTIS_GPIF_CS2RWWREN2 (0x01 << 23) | ||
136 | #define MANTIS_GPIF_CS2RWDELY2 (0x3f << 16) | ||
137 | #define MANTIS_GPIF_CS2RWWREN1 (0x01 << 15) | ||
138 | #define MANTIS_GPIF_CS2RWDELY1 (0x3f << 8) | ||
139 | #define MANTIS_GPIF_CS2RWWREN0 (0x01 << 7) | ||
140 | #define MANTIS_GPIF_CS2RWDELY0 (0x3f << 0) | ||
141 | |||
142 | #define MANTIS_GPIF_IRQCFG 0x98 | ||
143 | #define MANTIS_GPIF_IRQPOL (0x01 << 8) | ||
144 | #define MANTIS_MASK_WRACK (0x01 << 7) | ||
145 | #define MANTIS_MASK_BRRDY (0x01 << 6) | ||
146 | #define MANTIS_MASK_OVFLW (0x01 << 5) | ||
147 | #define MANTIS_MASK_OTHERR (0x01 << 4) | ||
148 | #define MANTIS_MASK_WSTO (0x01 << 3) | ||
149 | #define MANTIS_MASK_EXTIRQ (0x01 << 2) | ||
150 | #define MANTIS_MASK_PLUGIN (0x01 << 1) | ||
151 | #define MANTIS_MASK_PLUGOUT (0x01 << 0) | ||
152 | |||
153 | #define MANTIS_GPIF_STATUS 0x9c | ||
154 | #define MANTIS_SBUF_KILLOP (0x01 << 15) | ||
155 | #define MANTIS_SBUF_OPDONE (0x01 << 14) | ||
156 | #define MANTIS_SBUF_EMPTY (0x01 << 13) | ||
157 | #define MANTIS_GPIF_DETSTAT (0x01 << 9) | ||
158 | #define MANTIS_GPIF_INTSTAT (0x01 << 8) | ||
159 | #define MANTIS_GPIF_WRACK (0x01 << 7) | ||
160 | #define MANTIS_GPIF_BRRDY (0x01 << 6) | ||
161 | #define MANTIS_SBUF_OVFLW (0x01 << 5) | ||
162 | #define MANTIS_GPIF_OTHERR (0x01 << 4) | ||
163 | #define MANTIS_SBUF_WSTO (0x01 << 3) | ||
164 | #define MANTIS_GPIF_EXTIRQ (0x01 << 2) | ||
165 | #define MANTIS_CARD_PLUGIN (0x01 << 1) | ||
166 | #define MANTIS_CARD_PLUGOUT (0x01 << 0) | ||
167 | |||
168 | #define MANTIS_GPIF_BRADDR 0xa0 | ||
169 | #define MANTIS_GPIF_PCMCIAREG (0x01 << 27) | ||
170 | #define MANTIS_GPIF_PCMCIAIOM (0x01 << 26) | ||
171 | #define MANTIS_GPIF_BR_ADDR (0xfffffff << 0) | ||
172 | |||
173 | #define MANTIS_GPIF_BRBYTES 0xa4 | ||
174 | #define MANTIS_GPIF_BRCNT (0xfff << 0) | ||
175 | |||
176 | #define MANTIS_PCMCIA_RESET 0xa8 | ||
177 | #define MANTIS_PCMCIA_RSTVAL (0xff << 0) | ||
178 | |||
179 | #define MANTIS_CARD_RESET 0xac | ||
180 | |||
181 | #define MANTIS_GPIF_ADDR 0xb0 | ||
182 | #define MANTIS_GPIF_HIFRDWRN (0x01 << 31) | ||
183 | #define MANTIS_GPIF_PCMCIAREG (0x01 << 27) | ||
184 | #define MANTIS_GPIF_PCMCIAIOM (0x01 << 26) | ||
185 | #define MANTIS_GPIF_HIFADDR (0xfffffff << 0) | ||
186 | |||
187 | #define MANTIS_GPIF_DOUT 0xb4 | ||
188 | #define MANTIS_GPIF_HIFDOUT (0xfffffff << 0) | ||
189 | |||
190 | #define MANTIS_GPIF_DIN 0xb8 | ||
191 | #define MANTIS_GPIF_HIFDIN (0xfffffff << 0) | ||
192 | |||
193 | #define MANTIS_GPIF_SPARE 0xbc | ||
194 | #define MANTIS_GPIF_LOGICRD (0xffff << 16) | ||
195 | #define MANTIS_GPIF_LOGICRW (0xffff << 0) | ||
196 | |||
197 | #endif /* __MANTIS_REG_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_uart.c b/drivers/media/dvb/mantis/mantis_uart.c new file mode 100644 index 00000000000..7d2f2398fa8 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_uart.c | |||
@@ -0,0 +1,186 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/kernel.h> | ||
22 | #include <linux/spinlock.h> | ||
23 | |||
24 | #include <linux/signal.h> | ||
25 | #include <linux/sched.h> | ||
26 | #include <linux/interrupt.h> | ||
27 | |||
28 | #include "dmxdev.h" | ||
29 | #include "dvbdev.h" | ||
30 | #include "dvb_demux.h" | ||
31 | #include "dvb_frontend.h" | ||
32 | #include "dvb_net.h" | ||
33 | |||
34 | #include "mantis_common.h" | ||
35 | #include "mantis_reg.h" | ||
36 | #include "mantis_uart.h" | ||
37 | |||
38 | struct mantis_uart_params { | ||
39 | enum mantis_baud baud_rate; | ||
40 | enum mantis_parity parity; | ||
41 | }; | ||
42 | |||
43 | static struct { | ||
44 | char string[7]; | ||
45 | } rates[5] = { | ||
46 | { "9600" }, | ||
47 | { "19200" }, | ||
48 | { "38400" }, | ||
49 | { "57600" }, | ||
50 | { "115200" } | ||
51 | }; | ||
52 | |||
53 | static struct { | ||
54 | char string[5]; | ||
55 | } parity[3] = { | ||
56 | { "NONE" }, | ||
57 | { "ODD" }, | ||
58 | { "EVEN" } | ||
59 | }; | ||
60 | |||
61 | #define UART_MAX_BUF 16 | ||
62 | |||
63 | int mantis_uart_read(struct mantis_pci *mantis, u8 *data) | ||
64 | { | ||
65 | struct mantis_hwconfig *config = mantis->hwconfig; | ||
66 | u32 stat = 0, i; | ||
67 | |||
68 | /* get data */ | ||
69 | for (i = 0; i < (config->bytes + 1); i++) { | ||
70 | |||
71 | stat = mmread(MANTIS_UART_STAT); | ||
72 | |||
73 | if (stat & MANTIS_UART_RXFIFO_FULL) { | ||
74 | dprintk(MANTIS_ERROR, 1, "RX Fifo FULL"); | ||
75 | } | ||
76 | data[i] = mmread(MANTIS_UART_RXD) & 0x3f; | ||
77 | |||
78 | dprintk(MANTIS_DEBUG, 1, "Reading ... <%02x>", data[i] & 0x3f); | ||
79 | |||
80 | if (data[i] & (1 << 7)) { | ||
81 | dprintk(MANTIS_ERROR, 1, "UART framing error"); | ||
82 | return -EINVAL; | ||
83 | } | ||
84 | if (data[i] & (1 << 6)) { | ||
85 | dprintk(MANTIS_ERROR, 1, "UART parity error"); | ||
86 | return -EINVAL; | ||
87 | } | ||
88 | } | ||
89 | |||
90 | return 0; | ||
91 | } | ||
92 | |||
93 | static void mantis_uart_work(struct work_struct *work) | ||
94 | { | ||
95 | struct mantis_pci *mantis = container_of(work, struct mantis_pci, uart_work); | ||
96 | struct mantis_hwconfig *config = mantis->hwconfig; | ||
97 | u8 buf[16]; | ||
98 | int i; | ||
99 | |||
100 | mantis_uart_read(mantis, buf); | ||
101 | |||
102 | for (i = 0; i < (config->bytes + 1); i++) | ||
103 | dprintk(MANTIS_INFO, 1, "UART BUF:%d <%02x> ", i, buf[i]); | ||
104 | |||
105 | dprintk(MANTIS_DEBUG, 0, "\n"); | ||
106 | } | ||
107 | |||
108 | static int mantis_uart_setup(struct mantis_pci *mantis, | ||
109 | struct mantis_uart_params *params) | ||
110 | { | ||
111 | u32 reg; | ||
112 | |||
113 | mmwrite((mmread(MANTIS_UART_CTL) | (params->parity & 0x3)), MANTIS_UART_CTL); | ||
114 | |||
115 | reg = mmread(MANTIS_UART_BAUD); | ||
116 | |||
117 | switch (params->baud_rate) { | ||
118 | case MANTIS_BAUD_9600: | ||
119 | reg |= 0xd8; | ||
120 | break; | ||
121 | case MANTIS_BAUD_19200: | ||
122 | reg |= 0x6c; | ||
123 | break; | ||
124 | case MANTIS_BAUD_38400: | ||
125 | reg |= 0x36; | ||
126 | break; | ||
127 | case MANTIS_BAUD_57600: | ||
128 | reg |= 0x23; | ||
129 | break; | ||
130 | case MANTIS_BAUD_115200: | ||
131 | reg |= 0x11; | ||
132 | break; | ||
133 | default: | ||
134 | return -EINVAL; | ||
135 | } | ||
136 | |||
137 | mmwrite(reg, MANTIS_UART_BAUD); | ||
138 | |||
139 | return 0; | ||
140 | } | ||
141 | |||
142 | int mantis_uart_init(struct mantis_pci *mantis) | ||
143 | { | ||
144 | struct mantis_hwconfig *config = mantis->hwconfig; | ||
145 | struct mantis_uart_params params; | ||
146 | |||
147 | /* default parity: */ | ||
148 | params.baud_rate = config->baud_rate; | ||
149 | params.parity = config->parity; | ||
150 | dprintk(MANTIS_INFO, 1, "Initializing UART @ %sbps parity:%s", | ||
151 | rates[params.baud_rate].string, | ||
152 | parity[params.parity].string); | ||
153 | |||
154 | init_waitqueue_head(&mantis->uart_wq); | ||
155 | spin_lock_init(&mantis->uart_lock); | ||
156 | |||
157 | INIT_WORK(&mantis->uart_work, mantis_uart_work); | ||
158 | |||
159 | /* disable interrupt */ | ||
160 | mmwrite(mmread(MANTIS_UART_CTL) & 0xffef, MANTIS_UART_CTL); | ||
161 | |||
162 | mantis_uart_setup(mantis, ¶ms); | ||
163 | |||
164 | /* default 1 byte */ | ||
165 | mmwrite((mmread(MANTIS_UART_BAUD) | (config->bytes << 8)), MANTIS_UART_BAUD); | ||
166 | |||
167 | /* flush buffer */ | ||
168 | mmwrite((mmread(MANTIS_UART_CTL) | MANTIS_UART_RXFLUSH), MANTIS_UART_CTL); | ||
169 | |||
170 | /* enable interrupt */ | ||
171 | mmwrite(mmread(MANTIS_INT_MASK) | 0x800, MANTIS_INT_MASK); | ||
172 | mmwrite(mmread(MANTIS_UART_CTL) | MANTIS_UART_RXINT, MANTIS_UART_CTL); | ||
173 | |||
174 | schedule_work(&mantis->uart_work); | ||
175 | dprintk(MANTIS_DEBUG, 1, "UART succesfully initialized"); | ||
176 | |||
177 | return 0; | ||
178 | } | ||
179 | EXPORT_SYMBOL_GPL(mantis_uart_init); | ||
180 | |||
181 | void mantis_uart_exit(struct mantis_pci *mantis) | ||
182 | { | ||
183 | /* disable interrupt */ | ||
184 | mmwrite(mmread(MANTIS_UART_CTL) & 0xffef, MANTIS_UART_CTL); | ||
185 | } | ||
186 | EXPORT_SYMBOL_GPL(mantis_uart_exit); | ||
diff --git a/drivers/media/dvb/mantis/mantis_uart.h b/drivers/media/dvb/mantis/mantis_uart.h new file mode 100644 index 00000000000..ffb62a0a5a1 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_uart.h | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | Mantis PCI bridge driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_UART_H | ||
22 | #define __MANTIS_UART_H | ||
23 | |||
24 | #define MANTIS_UART_CTL 0xe0 | ||
25 | #define MANTIS_UART_RXINT (1 << 4) | ||
26 | #define MANTIS_UART_RXFLUSH (1 << 2) | ||
27 | |||
28 | #define MANTIS_UART_RXD 0xe8 | ||
29 | #define MANTIS_UART_BAUD 0xec | ||
30 | |||
31 | #define MANTIS_UART_STAT 0xf0 | ||
32 | #define MANTIS_UART_RXFIFO_DATA (1 << 7) | ||
33 | #define MANTIS_UART_RXFIFO_EMPTY (1 << 6) | ||
34 | #define MANTIS_UART_RXFIFO_FULL (1 << 3) | ||
35 | #define MANTIS_UART_FRAME_ERR (1 << 2) | ||
36 | #define MANTIS_UART_PARITY_ERR (1 << 1) | ||
37 | #define MANTIS_UART_RXTHRESH_INT (1 << 0) | ||
38 | |||
39 | enum mantis_baud { | ||
40 | MANTIS_BAUD_9600 = 0, | ||
41 | MANTIS_BAUD_19200, | ||
42 | MANTIS_BAUD_38400, | ||
43 | MANTIS_BAUD_57600, | ||
44 | MANTIS_BAUD_115200 | ||
45 | }; | ||
46 | |||
47 | enum mantis_parity { | ||
48 | MANTIS_PARITY_NONE = 0, | ||
49 | MANTIS_PARITY_EVEN, | ||
50 | MANTIS_PARITY_ODD, | ||
51 | }; | ||
52 | |||
53 | struct mantis_pci; | ||
54 | |||
55 | extern int mantis_uart_init(struct mantis_pci *mantis); | ||
56 | extern void mantis_uart_exit(struct mantis_pci *mantis); | ||
57 | |||
58 | #endif /* __MANTIS_UART_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp1033.c b/drivers/media/dvb/mantis/mantis_vp1033.c new file mode 100644 index 00000000000..4a723bda003 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp1033.c | |||
@@ -0,0 +1,212 @@ | |||
1 | /* | ||
2 | Mantis VP-1033 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/signal.h> | ||
22 | #include <linux/sched.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | |||
25 | #include "dmxdev.h" | ||
26 | #include "dvbdev.h" | ||
27 | #include "dvb_demux.h" | ||
28 | #include "dvb_frontend.h" | ||
29 | #include "dvb_net.h" | ||
30 | |||
31 | #include "stv0299.h" | ||
32 | #include "mantis_common.h" | ||
33 | #include "mantis_ioc.h" | ||
34 | #include "mantis_dvb.h" | ||
35 | #include "mantis_vp1033.h" | ||
36 | #include "mantis_reg.h" | ||
37 | |||
38 | u8 lgtdqcs001f_inittab[] = { | ||
39 | 0x01, 0x15, | ||
40 | 0x02, 0x00, | ||
41 | 0x03, 0x00, | ||
42 | 0x04, 0x2a, | ||
43 | 0x05, 0x85, | ||
44 | 0x06, 0x02, | ||
45 | 0x07, 0x00, | ||
46 | 0x08, 0x00, | ||
47 | 0x0c, 0x01, | ||
48 | 0x0d, 0x81, | ||
49 | 0x0e, 0x44, | ||
50 | 0x0f, 0x94, | ||
51 | 0x10, 0x3c, | ||
52 | 0x11, 0x84, | ||
53 | 0x12, 0xb9, | ||
54 | 0x13, 0xb5, | ||
55 | 0x14, 0x4f, | ||
56 | 0x15, 0xc9, | ||
57 | 0x16, 0x80, | ||
58 | 0x17, 0x36, | ||
59 | 0x18, 0xfb, | ||
60 | 0x19, 0xcf, | ||
61 | 0x1a, 0xbc, | ||
62 | 0x1c, 0x2b, | ||
63 | 0x1d, 0x27, | ||
64 | 0x1e, 0x00, | ||
65 | 0x1f, 0x0b, | ||
66 | 0x20, 0xa1, | ||
67 | 0x21, 0x60, | ||
68 | 0x22, 0x00, | ||
69 | 0x23, 0x00, | ||
70 | 0x28, 0x00, | ||
71 | 0x29, 0x28, | ||
72 | 0x2a, 0x14, | ||
73 | 0x2b, 0x0f, | ||
74 | 0x2c, 0x09, | ||
75 | 0x2d, 0x05, | ||
76 | 0x31, 0x1f, | ||
77 | 0x32, 0x19, | ||
78 | 0x33, 0xfc, | ||
79 | 0x34, 0x13, | ||
80 | 0xff, 0xff, | ||
81 | }; | ||
82 | |||
83 | #define MANTIS_MODEL_NAME "VP-1033" | ||
84 | #define MANTIS_DEV_TYPE "DVB-S/DSS" | ||
85 | |||
86 | int lgtdqcs001f_tuner_set(struct dvb_frontend *fe, | ||
87 | struct dvb_frontend_parameters *params) | ||
88 | { | ||
89 | struct mantis_pci *mantis = fe->dvb->priv; | ||
90 | struct i2c_adapter *adapter = &mantis->adapter; | ||
91 | |||
92 | u8 buf[4]; | ||
93 | u32 div; | ||
94 | |||
95 | |||
96 | struct i2c_msg msg = {.addr = 0x61, .flags = 0, .buf = buf, .len = sizeof(buf)}; | ||
97 | |||
98 | div = params->frequency / 250; | ||
99 | |||
100 | buf[0] = (div >> 8) & 0x7f; | ||
101 | buf[1] = div & 0xff; | ||
102 | buf[2] = 0x83; | ||
103 | buf[3] = 0xc0; | ||
104 | |||
105 | if (params->frequency < 1531000) | ||
106 | buf[3] |= 0x04; | ||
107 | else | ||
108 | buf[3] &= ~0x04; | ||
109 | if (i2c_transfer(adapter, &msg, 1) < 0) { | ||
110 | dprintk(MANTIS_ERROR, 1, "Write: I2C Transfer failed"); | ||
111 | return -EIO; | ||
112 | } | ||
113 | msleep_interruptible(100); | ||
114 | |||
115 | return 0; | ||
116 | } | ||
117 | |||
118 | int lgtdqcs001f_set_symbol_rate(struct dvb_frontend *fe, | ||
119 | u32 srate, u32 ratio) | ||
120 | { | ||
121 | u8 aclk = 0; | ||
122 | u8 bclk = 0; | ||
123 | |||
124 | if (srate < 1500000) { | ||
125 | aclk = 0xb7; | ||
126 | bclk = 0x47; | ||
127 | } else if (srate < 3000000) { | ||
128 | aclk = 0xb7; | ||
129 | bclk = 0x4b; | ||
130 | } else if (srate < 7000000) { | ||
131 | aclk = 0xb7; | ||
132 | bclk = 0x4f; | ||
133 | } else if (srate < 14000000) { | ||
134 | aclk = 0xb7; | ||
135 | bclk = 0x53; | ||
136 | } else if (srate < 30000000) { | ||
137 | aclk = 0xb6; | ||
138 | bclk = 0x53; | ||
139 | } else if (srate < 45000000) { | ||
140 | aclk = 0xb4; | ||
141 | bclk = 0x51; | ||
142 | } | ||
143 | stv0299_writereg(fe, 0x13, aclk); | ||
144 | stv0299_writereg(fe, 0x14, bclk); | ||
145 | |||
146 | stv0299_writereg(fe, 0x1f, (ratio >> 16) & 0xff); | ||
147 | stv0299_writereg(fe, 0x20, (ratio >> 8) & 0xff); | ||
148 | stv0299_writereg(fe, 0x21, ratio & 0xf0); | ||
149 | |||
150 | return 0; | ||
151 | } | ||
152 | |||
153 | struct stv0299_config lgtdqcs001f_config = { | ||
154 | .demod_address = 0x68, | ||
155 | .inittab = lgtdqcs001f_inittab, | ||
156 | .mclk = 88000000UL, | ||
157 | .invert = 0, | ||
158 | .skip_reinit = 0, | ||
159 | .volt13_op0_op1 = STV0299_VOLT13_OP0, | ||
160 | .min_delay_ms = 100, | ||
161 | .set_symbol_rate = lgtdqcs001f_set_symbol_rate, | ||
162 | }; | ||
163 | |||
164 | static int vp1033_frontend_init(struct mantis_pci *mantis, struct dvb_frontend *fe) | ||
165 | { | ||
166 | struct i2c_adapter *adapter = &mantis->adapter; | ||
167 | |||
168 | int err = 0; | ||
169 | |||
170 | err = mantis_frontend_power(mantis, POWER_ON); | ||
171 | if (err == 0) { | ||
172 | mantis_frontend_soft_reset(mantis); | ||
173 | msleep(250); | ||
174 | |||
175 | dprintk(MANTIS_ERROR, 1, "Probing for STV0299 (DVB-S)"); | ||
176 | fe = stv0299_attach(&lgtdqcs001f_config, adapter); | ||
177 | |||
178 | if (fe) { | ||
179 | fe->ops.tuner_ops.set_params = lgtdqcs001f_tuner_set; | ||
180 | dprintk(MANTIS_ERROR, 1, "found STV0299 DVB-S frontend @ 0x%02x", | ||
181 | lgtdqcs001f_config.demod_address); | ||
182 | |||
183 | dprintk(MANTIS_ERROR, 1, "Mantis DVB-S STV0299 frontend attach success"); | ||
184 | } else { | ||
185 | return -1; | ||
186 | } | ||
187 | } else { | ||
188 | dprintk(MANTIS_ERROR, 1, "Frontend on <%s> POWER ON failed! <%d>", | ||
189 | adapter->name, | ||
190 | err); | ||
191 | |||
192 | return -EIO; | ||
193 | } | ||
194 | mantis->fe = fe; | ||
195 | dprintk(MANTIS_ERROR, 1, "Done!"); | ||
196 | |||
197 | return 0; | ||
198 | } | ||
199 | |||
200 | struct mantis_hwconfig vp1033_config = { | ||
201 | .model_name = MANTIS_MODEL_NAME, | ||
202 | .dev_type = MANTIS_DEV_TYPE, | ||
203 | .ts_size = MANTIS_TS_204, | ||
204 | |||
205 | .baud_rate = MANTIS_BAUD_9600, | ||
206 | .parity = MANTIS_PARITY_NONE, | ||
207 | .bytes = 0, | ||
208 | |||
209 | .frontend_init = vp1033_frontend_init, | ||
210 | .power = GPIF_A12, | ||
211 | .reset = GPIF_A13, | ||
212 | }; | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp1033.h b/drivers/media/dvb/mantis/mantis_vp1033.h new file mode 100644 index 00000000000..7daaa1bf127 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp1033.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | Mantis VP-1033 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_VP1033_H | ||
22 | #define __MANTIS_VP1033_H | ||
23 | |||
24 | #include "mantis_common.h" | ||
25 | |||
26 | #define MANTIS_VP_1033_DVB_S 0x0016 | ||
27 | |||
28 | extern struct mantis_hwconfig vp1033_config; | ||
29 | |||
30 | #endif /* __MANTIS_VP1033_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp1034.c b/drivers/media/dvb/mantis/mantis_vp1034.c new file mode 100644 index 00000000000..8e6ae558ee5 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp1034.c | |||
@@ -0,0 +1,119 @@ | |||
1 | /* | ||
2 | Mantis VP-1034 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/signal.h> | ||
22 | #include <linux/sched.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | |||
25 | #include "dmxdev.h" | ||
26 | #include "dvbdev.h" | ||
27 | #include "dvb_demux.h" | ||
28 | #include "dvb_frontend.h" | ||
29 | #include "dvb_net.h" | ||
30 | |||
31 | #include "mb86a16.h" | ||
32 | #include "mantis_common.h" | ||
33 | #include "mantis_ioc.h" | ||
34 | #include "mantis_dvb.h" | ||
35 | #include "mantis_vp1034.h" | ||
36 | #include "mantis_reg.h" | ||
37 | |||
38 | struct mb86a16_config vp1034_mb86a16_config = { | ||
39 | .demod_address = 0x08, | ||
40 | .set_voltage = vp1034_set_voltage, | ||
41 | }; | ||
42 | |||
43 | #define MANTIS_MODEL_NAME "VP-1034" | ||
44 | #define MANTIS_DEV_TYPE "DVB-S/DSS" | ||
45 | |||
46 | int vp1034_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) | ||
47 | { | ||
48 | struct mantis_pci *mantis = fe->dvb->priv; | ||
49 | |||
50 | switch (voltage) { | ||
51 | case SEC_VOLTAGE_13: | ||
52 | dprintk(MANTIS_ERROR, 1, "Polarization=[13V]"); | ||
53 | gpio_set_bits(mantis, 13, 1); | ||
54 | gpio_set_bits(mantis, 14, 0); | ||
55 | break; | ||
56 | case SEC_VOLTAGE_18: | ||
57 | dprintk(MANTIS_ERROR, 1, "Polarization=[18V]"); | ||
58 | gpio_set_bits(mantis, 13, 1); | ||
59 | gpio_set_bits(mantis, 14, 1); | ||
60 | break; | ||
61 | case SEC_VOLTAGE_OFF: | ||
62 | dprintk(MANTIS_ERROR, 1, "Frontend (dummy) POWERDOWN"); | ||
63 | break; | ||
64 | default: | ||
65 | dprintk(MANTIS_ERROR, 1, "Invalid = (%d)", (u32) voltage); | ||
66 | return -EINVAL; | ||
67 | } | ||
68 | mmwrite(0x00, MANTIS_GPIF_DOUT); | ||
69 | |||
70 | return 0; | ||
71 | } | ||
72 | |||
73 | static int vp1034_frontend_init(struct mantis_pci *mantis, struct dvb_frontend *fe) | ||
74 | { | ||
75 | struct i2c_adapter *adapter = &mantis->adapter; | ||
76 | |||
77 | int err = 0; | ||
78 | |||
79 | err = mantis_frontend_power(mantis, POWER_ON); | ||
80 | if (err == 0) { | ||
81 | mantis_frontend_soft_reset(mantis); | ||
82 | msleep(250); | ||
83 | |||
84 | dprintk(MANTIS_ERROR, 1, "Probing for MB86A16 (DVB-S/DSS)"); | ||
85 | fe = mb86a16_attach(&vp1034_mb86a16_config, adapter); | ||
86 | if (fe) { | ||
87 | dprintk(MANTIS_ERROR, 1, | ||
88 | "found MB86A16 DVB-S/DSS frontend @0x%02x", | ||
89 | vp1034_mb86a16_config.demod_address); | ||
90 | |||
91 | } else { | ||
92 | return -1; | ||
93 | } | ||
94 | } else { | ||
95 | dprintk(MANTIS_ERROR, 1, "Frontend on <%s> POWER ON failed! <%d>", | ||
96 | adapter->name, | ||
97 | err); | ||
98 | |||
99 | return -EIO; | ||
100 | } | ||
101 | mantis->fe = fe; | ||
102 | dprintk(MANTIS_ERROR, 1, "Done!"); | ||
103 | |||
104 | return 0; | ||
105 | } | ||
106 | |||
107 | struct mantis_hwconfig vp1034_config = { | ||
108 | .model_name = MANTIS_MODEL_NAME, | ||
109 | .dev_type = MANTIS_DEV_TYPE, | ||
110 | .ts_size = MANTIS_TS_204, | ||
111 | |||
112 | .baud_rate = MANTIS_BAUD_9600, | ||
113 | .parity = MANTIS_PARITY_NONE, | ||
114 | .bytes = 0, | ||
115 | |||
116 | .frontend_init = vp1034_frontend_init, | ||
117 | .power = GPIF_A12, | ||
118 | .reset = GPIF_A13, | ||
119 | }; | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp1034.h b/drivers/media/dvb/mantis/mantis_vp1034.h new file mode 100644 index 00000000000..323f38ef8e3 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp1034.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | Mantis VP-1034 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_VP1034_H | ||
22 | #define __MANTIS_VP1034_H | ||
23 | |||
24 | #include "dvb_frontend.h" | ||
25 | #include "mantis_common.h" | ||
26 | |||
27 | |||
28 | #define MANTIS_VP_1034_DVB_S 0x0014 | ||
29 | |||
30 | extern struct mantis_hwconfig vp1034_config; | ||
31 | extern int vp1034_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage); | ||
32 | |||
33 | #endif /* __MANTIS_VP1034_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp1041.c b/drivers/media/dvb/mantis/mantis_vp1041.c new file mode 100644 index 00000000000..515346dd31d --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp1041.c | |||
@@ -0,0 +1,358 @@ | |||
1 | /* | ||
2 | Mantis VP-1041 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/signal.h> | ||
22 | #include <linux/sched.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | |||
25 | #include "dmxdev.h" | ||
26 | #include "dvbdev.h" | ||
27 | #include "dvb_demux.h" | ||
28 | #include "dvb_frontend.h" | ||
29 | #include "dvb_net.h" | ||
30 | |||
31 | #include "mantis_common.h" | ||
32 | #include "mantis_ioc.h" | ||
33 | #include "mantis_dvb.h" | ||
34 | #include "mantis_vp1041.h" | ||
35 | #include "stb0899_reg.h" | ||
36 | #include "stb0899_drv.h" | ||
37 | #include "stb0899_cfg.h" | ||
38 | #include "stb6100_cfg.h" | ||
39 | #include "stb6100.h" | ||
40 | #include "lnbp21.h" | ||
41 | |||
42 | #define MANTIS_MODEL_NAME "VP-1041" | ||
43 | #define MANTIS_DEV_TYPE "DSS/DVB-S/DVB-S2" | ||
44 | |||
45 | static const struct stb0899_s1_reg vp1041_stb0899_s1_init_1[] = { | ||
46 | |||
47 | /* 0x0000000b, *//* SYSREG */ | ||
48 | { STB0899_DEV_ID , 0x30 }, | ||
49 | { STB0899_DISCNTRL1 , 0x32 }, | ||
50 | { STB0899_DISCNTRL2 , 0x80 }, | ||
51 | { STB0899_DISRX_ST0 , 0x04 }, | ||
52 | { STB0899_DISRX_ST1 , 0x00 }, | ||
53 | { STB0899_DISPARITY , 0x00 }, | ||
54 | { STB0899_DISFIFO , 0x00 }, | ||
55 | { STB0899_DISSTATUS , 0x20 }, | ||
56 | { STB0899_DISF22 , 0x99 }, | ||
57 | { STB0899_DISF22RX , 0xa8 }, | ||
58 | /* SYSREG ? */ | ||
59 | { STB0899_ACRPRESC , 0x11 }, | ||
60 | { STB0899_ACRDIV1 , 0x0a }, | ||
61 | { STB0899_ACRDIV2 , 0x05 }, | ||
62 | { STB0899_DACR1 , 0x00 }, | ||
63 | { STB0899_DACR2 , 0x00 }, | ||
64 | { STB0899_OUTCFG , 0x00 }, | ||
65 | { STB0899_MODECFG , 0x00 }, | ||
66 | { STB0899_IRQSTATUS_3 , 0xfe }, | ||
67 | { STB0899_IRQSTATUS_2 , 0x03 }, | ||
68 | { STB0899_IRQSTATUS_1 , 0x7c }, | ||
69 | { STB0899_IRQSTATUS_0 , 0xf4 }, | ||
70 | { STB0899_IRQMSK_3 , 0xf3 }, | ||
71 | { STB0899_IRQMSK_2 , 0xfc }, | ||
72 | { STB0899_IRQMSK_1 , 0xff }, | ||
73 | { STB0899_IRQMSK_0 , 0xff }, | ||
74 | { STB0899_IRQCFG , 0x00 }, | ||
75 | { STB0899_I2CCFG , 0x88 }, | ||
76 | { STB0899_I2CRPT , 0x58 }, | ||
77 | { STB0899_IOPVALUE5 , 0x00 }, | ||
78 | { STB0899_IOPVALUE4 , 0x33 }, | ||
79 | { STB0899_IOPVALUE3 , 0x6d }, | ||
80 | { STB0899_IOPVALUE2 , 0x90 }, | ||
81 | { STB0899_IOPVALUE1 , 0x60 }, | ||
82 | { STB0899_IOPVALUE0 , 0x00 }, | ||
83 | { STB0899_GPIO00CFG , 0x82 }, | ||
84 | { STB0899_GPIO01CFG , 0x82 }, | ||
85 | { STB0899_GPIO02CFG , 0x82 }, | ||
86 | { STB0899_GPIO03CFG , 0x82 }, | ||
87 | { STB0899_GPIO04CFG , 0x82 }, | ||
88 | { STB0899_GPIO05CFG , 0x82 }, | ||
89 | { STB0899_GPIO06CFG , 0x82 }, | ||
90 | { STB0899_GPIO07CFG , 0x82 }, | ||
91 | { STB0899_GPIO08CFG , 0x82 }, | ||
92 | { STB0899_GPIO09CFG , 0x82 }, | ||
93 | { STB0899_GPIO10CFG , 0x82 }, | ||
94 | { STB0899_GPIO11CFG , 0x82 }, | ||
95 | { STB0899_GPIO12CFG , 0x82 }, | ||
96 | { STB0899_GPIO13CFG , 0x82 }, | ||
97 | { STB0899_GPIO14CFG , 0x82 }, | ||
98 | { STB0899_GPIO15CFG , 0x82 }, | ||
99 | { STB0899_GPIO16CFG , 0x82 }, | ||
100 | { STB0899_GPIO17CFG , 0x82 }, | ||
101 | { STB0899_GPIO18CFG , 0x82 }, | ||
102 | { STB0899_GPIO19CFG , 0x82 }, | ||
103 | { STB0899_GPIO20CFG , 0x82 }, | ||
104 | { STB0899_SDATCFG , 0xb8 }, | ||
105 | { STB0899_SCLTCFG , 0xba }, | ||
106 | { STB0899_AGCRFCFG , 0x1c }, /* 0x11 */ | ||
107 | { STB0899_GPIO22 , 0x82 }, /* AGCBB2CFG */ | ||
108 | { STB0899_GPIO21 , 0x91 }, /* AGCBB1CFG */ | ||
109 | { STB0899_DIRCLKCFG , 0x82 }, | ||
110 | { STB0899_CLKOUT27CFG , 0x7e }, | ||
111 | { STB0899_STDBYCFG , 0x82 }, | ||
112 | { STB0899_CS0CFG , 0x82 }, | ||
113 | { STB0899_CS1CFG , 0x82 }, | ||
114 | { STB0899_DISEQCOCFG , 0x20 }, | ||
115 | { STB0899_GPIO32CFG , 0x82 }, | ||
116 | { STB0899_GPIO33CFG , 0x82 }, | ||
117 | { STB0899_GPIO34CFG , 0x82 }, | ||
118 | { STB0899_GPIO35CFG , 0x82 }, | ||
119 | { STB0899_GPIO36CFG , 0x82 }, | ||
120 | { STB0899_GPIO37CFG , 0x82 }, | ||
121 | { STB0899_GPIO38CFG , 0x82 }, | ||
122 | { STB0899_GPIO39CFG , 0x82 }, | ||
123 | { STB0899_NCOARSE , 0x17 }, /* 0x15 = 27 Mhz Clock, F/3 = 198MHz, F/6 = 99MHz */ | ||
124 | { STB0899_SYNTCTRL , 0x02 }, /* 0x00 = CLK from CLKI, 0x02 = CLK from XTALI */ | ||
125 | { STB0899_FILTCTRL , 0x00 }, | ||
126 | { STB0899_SYSCTRL , 0x01 }, | ||
127 | { STB0899_STOPCLK1 , 0x20 }, | ||
128 | { STB0899_STOPCLK2 , 0x00 }, | ||
129 | { STB0899_INTBUFSTATUS , 0x00 }, | ||
130 | { STB0899_INTBUFCTRL , 0x0a }, | ||
131 | { 0xffff , 0xff }, | ||
132 | }; | ||
133 | |||
134 | static const struct stb0899_s1_reg vp1041_stb0899_s1_init_3[] = { | ||
135 | { STB0899_DEMOD , 0x00 }, | ||
136 | { STB0899_RCOMPC , 0xc9 }, | ||
137 | { STB0899_AGC1CN , 0x01 }, | ||
138 | { STB0899_AGC1REF , 0x10 }, | ||
139 | { STB0899_RTC , 0x23 }, | ||
140 | { STB0899_TMGCFG , 0x4e }, | ||
141 | { STB0899_AGC2REF , 0x34 }, | ||
142 | { STB0899_TLSR , 0x84 }, | ||
143 | { STB0899_CFD , 0xf7 }, | ||
144 | { STB0899_ACLC , 0x87 }, | ||
145 | { STB0899_BCLC , 0x94 }, | ||
146 | { STB0899_EQON , 0x41 }, | ||
147 | { STB0899_LDT , 0xf1 }, | ||
148 | { STB0899_LDT2 , 0xe3 }, | ||
149 | { STB0899_EQUALREF , 0xb4 }, | ||
150 | { STB0899_TMGRAMP , 0x10 }, | ||
151 | { STB0899_TMGTHD , 0x30 }, | ||
152 | { STB0899_IDCCOMP , 0xfd }, | ||
153 | { STB0899_QDCCOMP , 0xff }, | ||
154 | { STB0899_POWERI , 0x0c }, | ||
155 | { STB0899_POWERQ , 0x0f }, | ||
156 | { STB0899_RCOMP , 0x6c }, | ||
157 | { STB0899_AGCIQIN , 0x80 }, | ||
158 | { STB0899_AGC2I1 , 0x06 }, | ||
159 | { STB0899_AGC2I2 , 0x00 }, | ||
160 | { STB0899_TLIR , 0x30 }, | ||
161 | { STB0899_RTF , 0x7f }, | ||
162 | { STB0899_DSTATUS , 0x00 }, | ||
163 | { STB0899_LDI , 0xbc }, | ||
164 | { STB0899_CFRM , 0xea }, | ||
165 | { STB0899_CFRL , 0x31 }, | ||
166 | { STB0899_NIRM , 0x2b }, | ||
167 | { STB0899_NIRL , 0x80 }, | ||
168 | { STB0899_ISYMB , 0x1d }, | ||
169 | { STB0899_QSYMB , 0xa6 }, | ||
170 | { STB0899_SFRH , 0x2f }, | ||
171 | { STB0899_SFRM , 0x68 }, | ||
172 | { STB0899_SFRL , 0x40 }, | ||
173 | { STB0899_SFRUPH , 0x2f }, | ||
174 | { STB0899_SFRUPM , 0x68 }, | ||
175 | { STB0899_SFRUPL , 0x40 }, | ||
176 | { STB0899_EQUAI1 , 0x02 }, | ||
177 | { STB0899_EQUAQ1 , 0xff }, | ||
178 | { STB0899_EQUAI2 , 0x04 }, | ||
179 | { STB0899_EQUAQ2 , 0x05 }, | ||
180 | { STB0899_EQUAI3 , 0x02 }, | ||
181 | { STB0899_EQUAQ3 , 0xfd }, | ||
182 | { STB0899_EQUAI4 , 0x03 }, | ||
183 | { STB0899_EQUAQ4 , 0x07 }, | ||
184 | { STB0899_EQUAI5 , 0x08 }, | ||
185 | { STB0899_EQUAQ5 , 0xf5 }, | ||
186 | { STB0899_DSTATUS2 , 0x00 }, | ||
187 | { STB0899_VSTATUS , 0x00 }, | ||
188 | { STB0899_VERROR , 0x86 }, | ||
189 | { STB0899_IQSWAP , 0x2a }, | ||
190 | { STB0899_ECNT1M , 0x00 }, | ||
191 | { STB0899_ECNT1L , 0x00 }, | ||
192 | { STB0899_ECNT2M , 0x00 }, | ||
193 | { STB0899_ECNT2L , 0x00 }, | ||
194 | { STB0899_ECNT3M , 0x0a }, | ||
195 | { STB0899_ECNT3L , 0xad }, | ||
196 | { STB0899_FECAUTO1 , 0x06 }, | ||
197 | { STB0899_FECM , 0x01 }, | ||
198 | { STB0899_VTH12 , 0xb0 }, | ||
199 | { STB0899_VTH23 , 0x7a }, | ||
200 | { STB0899_VTH34 , 0x58 }, | ||
201 | { STB0899_VTH56 , 0x38 }, | ||
202 | { STB0899_VTH67 , 0x34 }, | ||
203 | { STB0899_VTH78 , 0x24 }, | ||
204 | { STB0899_PRVIT , 0xff }, | ||
205 | { STB0899_VITSYNC , 0x19 }, | ||
206 | { STB0899_RSULC , 0xb1 }, /* DVB = 0xb1, DSS = 0xa1 */ | ||
207 | { STB0899_TSULC , 0x42 }, | ||
208 | { STB0899_RSLLC , 0x41 }, | ||
209 | { STB0899_TSLPL , 0x12 }, | ||
210 | { STB0899_TSCFGH , 0x0c }, | ||
211 | { STB0899_TSCFGM , 0x00 }, | ||
212 | { STB0899_TSCFGL , 0x00 }, | ||
213 | { STB0899_TSOUT , 0x69 }, /* 0x0d for CAM */ | ||
214 | { STB0899_RSSYNCDEL , 0x00 }, | ||
215 | { STB0899_TSINHDELH , 0x02 }, | ||
216 | { STB0899_TSINHDELM , 0x00 }, | ||
217 | { STB0899_TSINHDELL , 0x00 }, | ||
218 | { STB0899_TSLLSTKM , 0x1b }, | ||
219 | { STB0899_TSLLSTKL , 0xb3 }, | ||
220 | { STB0899_TSULSTKM , 0x00 }, | ||
221 | { STB0899_TSULSTKL , 0x00 }, | ||
222 | { STB0899_PCKLENUL , 0xbc }, | ||
223 | { STB0899_PCKLENLL , 0xcc }, | ||
224 | { STB0899_RSPCKLEN , 0xbd }, | ||
225 | { STB0899_TSSTATUS , 0x90 }, | ||
226 | { STB0899_ERRCTRL1 , 0xb6 }, | ||
227 | { STB0899_ERRCTRL2 , 0x95 }, | ||
228 | { STB0899_ERRCTRL3 , 0x8d }, | ||
229 | { STB0899_DMONMSK1 , 0x27 }, | ||
230 | { STB0899_DMONMSK0 , 0x03 }, | ||
231 | { STB0899_DEMAPVIT , 0x5c }, | ||
232 | { STB0899_PLPARM , 0x19 }, | ||
233 | { STB0899_PDELCTRL , 0x48 }, | ||
234 | { STB0899_PDELCTRL2 , 0x00 }, | ||
235 | { STB0899_BBHCTRL1 , 0x00 }, | ||
236 | { STB0899_BBHCTRL2 , 0x00 }, | ||
237 | { STB0899_HYSTTHRESH , 0x77 }, | ||
238 | { STB0899_MATCSTM , 0x00 }, | ||
239 | { STB0899_MATCSTL , 0x00 }, | ||
240 | { STB0899_UPLCSTM , 0x00 }, | ||
241 | { STB0899_UPLCSTL , 0x00 }, | ||
242 | { STB0899_DFLCSTM , 0x00 }, | ||
243 | { STB0899_DFLCSTL , 0x00 }, | ||
244 | { STB0899_SYNCCST , 0x00 }, | ||
245 | { STB0899_SYNCDCSTM , 0x00 }, | ||
246 | { STB0899_SYNCDCSTL , 0x00 }, | ||
247 | { STB0899_ISI_ENTRY , 0x00 }, | ||
248 | { STB0899_ISI_BIT_EN , 0x00 }, | ||
249 | { STB0899_MATSTRM , 0xf0 }, | ||
250 | { STB0899_MATSTRL , 0x02 }, | ||
251 | { STB0899_UPLSTRM , 0x45 }, | ||
252 | { STB0899_UPLSTRL , 0x60 }, | ||
253 | { STB0899_DFLSTRM , 0xe3 }, | ||
254 | { STB0899_DFLSTRL , 0x00 }, | ||
255 | { STB0899_SYNCSTR , 0x47 }, | ||
256 | { STB0899_SYNCDSTRM , 0x05 }, | ||
257 | { STB0899_SYNCDSTRL , 0x18 }, | ||
258 | { STB0899_CFGPDELSTATUS1 , 0x19 }, | ||
259 | { STB0899_CFGPDELSTATUS2 , 0x2b }, | ||
260 | { STB0899_BBFERRORM , 0x00 }, | ||
261 | { STB0899_BBFERRORL , 0x01 }, | ||
262 | { STB0899_UPKTERRORM , 0x00 }, | ||
263 | { STB0899_UPKTERRORL , 0x00 }, | ||
264 | { 0xffff , 0xff }, | ||
265 | }; | ||
266 | |||
267 | struct stb0899_config vp1041_stb0899_config = { | ||
268 | .init_dev = vp1041_stb0899_s1_init_1, | ||
269 | .init_s2_demod = stb0899_s2_init_2, | ||
270 | .init_s1_demod = vp1041_stb0899_s1_init_3, | ||
271 | .init_s2_fec = stb0899_s2_init_4, | ||
272 | .init_tst = stb0899_s1_init_5, | ||
273 | |||
274 | .demod_address = 0x68, /* 0xd0 >> 1 */ | ||
275 | |||
276 | .xtal_freq = 27000000, | ||
277 | .inversion = IQ_SWAP_ON, /* 1 */ | ||
278 | |||
279 | .lo_clk = 76500000, | ||
280 | .hi_clk = 99000000, | ||
281 | |||
282 | .esno_ave = STB0899_DVBS2_ESNO_AVE, | ||
283 | .esno_quant = STB0899_DVBS2_ESNO_QUANT, | ||
284 | .avframes_coarse = STB0899_DVBS2_AVFRAMES_COARSE, | ||
285 | .avframes_fine = STB0899_DVBS2_AVFRAMES_FINE, | ||
286 | .miss_threshold = STB0899_DVBS2_MISS_THRESHOLD, | ||
287 | .uwp_threshold_acq = STB0899_DVBS2_UWP_THRESHOLD_ACQ, | ||
288 | .uwp_threshold_track = STB0899_DVBS2_UWP_THRESHOLD_TRACK, | ||
289 | .uwp_threshold_sof = STB0899_DVBS2_UWP_THRESHOLD_SOF, | ||
290 | .sof_search_timeout = STB0899_DVBS2_SOF_SEARCH_TIMEOUT, | ||
291 | |||
292 | .btr_nco_bits = STB0899_DVBS2_BTR_NCO_BITS, | ||
293 | .btr_gain_shift_offset = STB0899_DVBS2_BTR_GAIN_SHIFT_OFFSET, | ||
294 | .crl_nco_bits = STB0899_DVBS2_CRL_NCO_BITS, | ||
295 | .ldpc_max_iter = STB0899_DVBS2_LDPC_MAX_ITER, | ||
296 | |||
297 | .tuner_get_frequency = stb6100_get_frequency, | ||
298 | .tuner_set_frequency = stb6100_set_frequency, | ||
299 | .tuner_set_bandwidth = stb6100_set_bandwidth, | ||
300 | .tuner_get_bandwidth = stb6100_get_bandwidth, | ||
301 | .tuner_set_rfsiggain = NULL, | ||
302 | }; | ||
303 | |||
304 | struct stb6100_config vp1041_stb6100_config = { | ||
305 | .tuner_address = 0x60, | ||
306 | .refclock = 27000000, | ||
307 | }; | ||
308 | |||
309 | static int vp1041_frontend_init(struct mantis_pci *mantis, struct dvb_frontend *fe) | ||
310 | { | ||
311 | struct i2c_adapter *adapter = &mantis->adapter; | ||
312 | |||
313 | int err = 0; | ||
314 | |||
315 | err = mantis_frontend_power(mantis, POWER_ON); | ||
316 | if (err == 0) { | ||
317 | mantis_frontend_soft_reset(mantis); | ||
318 | msleep(250); | ||
319 | mantis->fe = stb0899_attach(&vp1041_stb0899_config, adapter); | ||
320 | if (mantis->fe) { | ||
321 | dprintk(MANTIS_ERROR, 1, | ||
322 | "found STB0899 DVB-S/DVB-S2 frontend @0x%02x", | ||
323 | vp1041_stb0899_config.demod_address); | ||
324 | |||
325 | if (stb6100_attach(mantis->fe, &vp1041_stb6100_config, adapter)) { | ||
326 | if (!lnbp21_attach(mantis->fe, adapter, 0, 0)) | ||
327 | dprintk(MANTIS_ERROR, 1, "No LNBP21 found!"); | ||
328 | } | ||
329 | } else { | ||
330 | return -EREMOTEIO; | ||
331 | } | ||
332 | } else { | ||
333 | dprintk(MANTIS_ERROR, 1, "Frontend on <%s> POWER ON failed! <%d>", | ||
334 | adapter->name, | ||
335 | err); | ||
336 | |||
337 | return -EIO; | ||
338 | } | ||
339 | |||
340 | |||
341 | dprintk(MANTIS_ERROR, 1, "Done!"); | ||
342 | |||
343 | return 0; | ||
344 | } | ||
345 | |||
346 | struct mantis_hwconfig vp1041_config = { | ||
347 | .model_name = MANTIS_MODEL_NAME, | ||
348 | .dev_type = MANTIS_DEV_TYPE, | ||
349 | .ts_size = MANTIS_TS_188, | ||
350 | |||
351 | .baud_rate = MANTIS_BAUD_9600, | ||
352 | .parity = MANTIS_PARITY_NONE, | ||
353 | .bytes = 0, | ||
354 | |||
355 | .frontend_init = vp1041_frontend_init, | ||
356 | .power = GPIF_A12, | ||
357 | .reset = GPIF_A13, | ||
358 | }; | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp1041.h b/drivers/media/dvb/mantis/mantis_vp1041.h new file mode 100644 index 00000000000..1ae5b3de808 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp1041.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | Mantis VP-1041 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_VP1041_H | ||
22 | #define __MANTIS_VP1041_H | ||
23 | |||
24 | #include "mantis_common.h" | ||
25 | |||
26 | #define MANTIS_VP_1041_DVB_S2 0x0031 | ||
27 | #define SKYSTAR_HD2_10 0x0001 | ||
28 | #define SKYSTAR_HD2_20 0x0003 | ||
29 | #define CINERGY_S2_PCI_HD 0x1179 | ||
30 | |||
31 | extern struct mantis_hwconfig vp1041_config; | ||
32 | |||
33 | #endif /* __MANTIS_VP1041_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp2033.c b/drivers/media/dvb/mantis/mantis_vp2033.c new file mode 100644 index 00000000000..10ce81790a8 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp2033.c | |||
@@ -0,0 +1,187 @@ | |||
1 | /* | ||
2 | Mantis VP-2033 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/signal.h> | ||
22 | #include <linux/sched.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | |||
25 | #include "dmxdev.h" | ||
26 | #include "dvbdev.h" | ||
27 | #include "dvb_demux.h" | ||
28 | #include "dvb_frontend.h" | ||
29 | #include "dvb_net.h" | ||
30 | |||
31 | #include "tda1002x.h" | ||
32 | #include "mantis_common.h" | ||
33 | #include "mantis_ioc.h" | ||
34 | #include "mantis_dvb.h" | ||
35 | #include "mantis_vp2033.h" | ||
36 | |||
37 | #define MANTIS_MODEL_NAME "VP-2033" | ||
38 | #define MANTIS_DEV_TYPE "DVB-C" | ||
39 | |||
40 | struct tda1002x_config vp2033_tda1002x_cu1216_config = { | ||
41 | .demod_address = 0x18 >> 1, | ||
42 | .invert = 1, | ||
43 | }; | ||
44 | |||
45 | struct tda10023_config vp2033_tda10023_cu1216_config = { | ||
46 | .demod_address = 0x18 >> 1, | ||
47 | .invert = 1, | ||
48 | }; | ||
49 | |||
50 | static u8 read_pwm(struct mantis_pci *mantis) | ||
51 | { | ||
52 | struct i2c_adapter *adapter = &mantis->adapter; | ||
53 | |||
54 | u8 b = 0xff; | ||
55 | u8 pwm; | ||
56 | struct i2c_msg msg[] = { | ||
57 | {.addr = 0x50, .flags = 0, .buf = &b, .len = 1}, | ||
58 | {.addr = 0x50, .flags = I2C_M_RD, .buf = &pwm, .len = 1} | ||
59 | }; | ||
60 | |||
61 | if ((i2c_transfer(adapter, msg, 2) != 2) | ||
62 | || (pwm == 0xff)) | ||
63 | pwm = 0x48; | ||
64 | |||
65 | return pwm; | ||
66 | } | ||
67 | |||
68 | static int tda1002x_cu1216_tuner_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) | ||
69 | { | ||
70 | struct mantis_pci *mantis = fe->dvb->priv; | ||
71 | struct i2c_adapter *adapter = &mantis->adapter; | ||
72 | |||
73 | u8 buf[6]; | ||
74 | struct i2c_msg msg = {.addr = 0x60, .flags = 0, .buf = buf, .len = sizeof(buf)}; | ||
75 | int i; | ||
76 | |||
77 | #define CU1216_IF 36125000 | ||
78 | #define TUNER_MUL 62500 | ||
79 | |||
80 | u32 div = (params->frequency + CU1216_IF + TUNER_MUL / 2) / TUNER_MUL; | ||
81 | |||
82 | buf[0] = (div >> 8) & 0x7f; | ||
83 | buf[1] = div & 0xff; | ||
84 | buf[2] = 0xce; | ||
85 | buf[3] = (params->frequency < 150000000 ? 0x01 : | ||
86 | params->frequency < 445000000 ? 0x02 : 0x04); | ||
87 | buf[4] = 0xde; | ||
88 | buf[5] = 0x20; | ||
89 | |||
90 | if (fe->ops.i2c_gate_ctrl) | ||
91 | fe->ops.i2c_gate_ctrl(fe, 1); | ||
92 | |||
93 | if (i2c_transfer(adapter, &msg, 1) != 1) | ||
94 | return -EIO; | ||
95 | |||
96 | /* wait for the pll lock */ | ||
97 | msg.flags = I2C_M_RD; | ||
98 | msg.len = 1; | ||
99 | for (i = 0; i < 20; i++) { | ||
100 | if (fe->ops.i2c_gate_ctrl) | ||
101 | fe->ops.i2c_gate_ctrl(fe, 1); | ||
102 | |||
103 | if (i2c_transfer(adapter, &msg, 1) == 1 && (buf[0] & 0x40)) | ||
104 | break; | ||
105 | |||
106 | msleep(10); | ||
107 | } | ||
108 | |||
109 | /* switch the charge pump to the lower current */ | ||
110 | msg.flags = 0; | ||
111 | msg.len = 2; | ||
112 | msg.buf = &buf[2]; | ||
113 | buf[2] &= ~0x40; | ||
114 | if (fe->ops.i2c_gate_ctrl) | ||
115 | fe->ops.i2c_gate_ctrl(fe, 1); | ||
116 | |||
117 | if (i2c_transfer(adapter, &msg, 1) != 1) | ||
118 | return -EIO; | ||
119 | |||
120 | return 0; | ||
121 | } | ||
122 | |||
123 | static int vp2033_frontend_init(struct mantis_pci *mantis, struct dvb_frontend *fe) | ||
124 | { | ||
125 | struct i2c_adapter *adapter = &mantis->adapter; | ||
126 | |||
127 | int err = 0; | ||
128 | |||
129 | err = mantis_frontend_power(mantis, POWER_ON); | ||
130 | if (err == 0) { | ||
131 | mantis_frontend_soft_reset(mantis); | ||
132 | msleep(250); | ||
133 | |||
134 | dprintk(MANTIS_ERROR, 1, "Probing for CU1216 (DVB-C)"); | ||
135 | fe = tda10021_attach(&vp2033_tda1002x_cu1216_config, | ||
136 | adapter, | ||
137 | read_pwm(mantis)); | ||
138 | |||
139 | if (fe) { | ||
140 | dprintk(MANTIS_ERROR, 1, | ||
141 | "found Philips CU1216 DVB-C frontend (TDA10021) @ 0x%02x", | ||
142 | vp2033_tda1002x_cu1216_config.demod_address); | ||
143 | } else { | ||
144 | fe = tda10023_attach(&vp2033_tda10023_cu1216_config, | ||
145 | adapter, | ||
146 | read_pwm(mantis)); | ||
147 | |||
148 | if (fe) { | ||
149 | dprintk(MANTIS_ERROR, 1, | ||
150 | "found Philips CU1216 DVB-C frontend (TDA10023) @ 0x%02x", | ||
151 | vp2033_tda1002x_cu1216_config.demod_address); | ||
152 | } | ||
153 | } | ||
154 | |||
155 | if (fe) { | ||
156 | fe->ops.tuner_ops.set_params = tda1002x_cu1216_tuner_set; | ||
157 | dprintk(MANTIS_ERROR, 1, "Mantis DVB-C Philips CU1216 frontend attach success"); | ||
158 | } else { | ||
159 | return -1; | ||
160 | } | ||
161 | } else { | ||
162 | dprintk(MANTIS_ERROR, 1, "Frontend on <%s> POWER ON failed! <%d>", | ||
163 | adapter->name, | ||
164 | err); | ||
165 | |||
166 | return -EIO; | ||
167 | } | ||
168 | |||
169 | mantis->fe = fe; | ||
170 | dprintk(MANTIS_DEBUG, 1, "Done!"); | ||
171 | |||
172 | return 0; | ||
173 | } | ||
174 | |||
175 | struct mantis_hwconfig vp2033_config = { | ||
176 | .model_name = MANTIS_MODEL_NAME, | ||
177 | .dev_type = MANTIS_DEV_TYPE, | ||
178 | .ts_size = MANTIS_TS_204, | ||
179 | |||
180 | .baud_rate = MANTIS_BAUD_9600, | ||
181 | .parity = MANTIS_PARITY_NONE, | ||
182 | .bytes = 0, | ||
183 | |||
184 | .frontend_init = vp2033_frontend_init, | ||
185 | .power = GPIF_A12, | ||
186 | .reset = GPIF_A13, | ||
187 | }; | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp2033.h b/drivers/media/dvb/mantis/mantis_vp2033.h new file mode 100644 index 00000000000..c55242b79d5 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp2033.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | Mantis VP-2033 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_VP2033_H | ||
22 | #define __MANTIS_VP2033_H | ||
23 | |||
24 | #include "mantis_common.h" | ||
25 | |||
26 | #define MANTIS_VP_2033_DVB_C 0x0008 | ||
27 | |||
28 | extern struct mantis_hwconfig vp2033_config; | ||
29 | |||
30 | #endif /* __MANTIS_VP2033_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp2040.c b/drivers/media/dvb/mantis/mantis_vp2040.c new file mode 100644 index 00000000000..a7ca233e800 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp2040.c | |||
@@ -0,0 +1,186 @@ | |||
1 | /* | ||
2 | Mantis VP-2040 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/signal.h> | ||
22 | #include <linux/sched.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | |||
25 | #include "dmxdev.h" | ||
26 | #include "dvbdev.h" | ||
27 | #include "dvb_demux.h" | ||
28 | #include "dvb_frontend.h" | ||
29 | #include "dvb_net.h" | ||
30 | |||
31 | #include "tda1002x.h" | ||
32 | #include "mantis_common.h" | ||
33 | #include "mantis_ioc.h" | ||
34 | #include "mantis_dvb.h" | ||
35 | #include "mantis_vp2040.h" | ||
36 | |||
37 | #define MANTIS_MODEL_NAME "VP-2040" | ||
38 | #define MANTIS_DEV_TYPE "DVB-C" | ||
39 | |||
40 | struct tda1002x_config vp2040_tda1002x_cu1216_config = { | ||
41 | .demod_address = 0x18 >> 1, | ||
42 | .invert = 1, | ||
43 | }; | ||
44 | |||
45 | struct tda10023_config vp2040_tda10023_cu1216_config = { | ||
46 | .demod_address = 0x18 >> 1, | ||
47 | .invert = 1, | ||
48 | }; | ||
49 | |||
50 | static int tda1002x_cu1216_tuner_set(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) | ||
51 | { | ||
52 | struct mantis_pci *mantis = fe->dvb->priv; | ||
53 | struct i2c_adapter *adapter = &mantis->adapter; | ||
54 | |||
55 | u8 buf[6]; | ||
56 | struct i2c_msg msg = {.addr = 0x60, .flags = 0, .buf = buf, .len = sizeof(buf)}; | ||
57 | int i; | ||
58 | |||
59 | #define CU1216_IF 36125000 | ||
60 | #define TUNER_MUL 62500 | ||
61 | |||
62 | u32 div = (params->frequency + CU1216_IF + TUNER_MUL / 2) / TUNER_MUL; | ||
63 | |||
64 | buf[0] = (div >> 8) & 0x7f; | ||
65 | buf[1] = div & 0xff; | ||
66 | buf[2] = 0xce; | ||
67 | buf[3] = (params->frequency < 150000000 ? 0x01 : | ||
68 | params->frequency < 445000000 ? 0x02 : 0x04); | ||
69 | buf[4] = 0xde; | ||
70 | buf[5] = 0x20; | ||
71 | |||
72 | if (fe->ops.i2c_gate_ctrl) | ||
73 | fe->ops.i2c_gate_ctrl(fe, 1); | ||
74 | |||
75 | if (i2c_transfer(adapter, &msg, 1) != 1) | ||
76 | return -EIO; | ||
77 | |||
78 | /* wait for the pll lock */ | ||
79 | msg.flags = I2C_M_RD; | ||
80 | msg.len = 1; | ||
81 | for (i = 0; i < 20; i++) { | ||
82 | if (fe->ops.i2c_gate_ctrl) | ||
83 | fe->ops.i2c_gate_ctrl(fe, 1); | ||
84 | |||
85 | if (i2c_transfer(adapter, &msg, 1) == 1 && (buf[0] & 0x40)) | ||
86 | break; | ||
87 | |||
88 | msleep(10); | ||
89 | } | ||
90 | |||
91 | /* switch the charge pump to the lower current */ | ||
92 | msg.flags = 0; | ||
93 | msg.len = 2; | ||
94 | msg.buf = &buf[2]; | ||
95 | buf[2] &= ~0x40; | ||
96 | if (fe->ops.i2c_gate_ctrl) | ||
97 | fe->ops.i2c_gate_ctrl(fe, 1); | ||
98 | |||
99 | if (i2c_transfer(adapter, &msg, 1) != 1) | ||
100 | return -EIO; | ||
101 | |||
102 | return 0; | ||
103 | } | ||
104 | |||
105 | static u8 read_pwm(struct mantis_pci *mantis) | ||
106 | { | ||
107 | struct i2c_adapter *adapter = &mantis->adapter; | ||
108 | |||
109 | u8 b = 0xff; | ||
110 | u8 pwm; | ||
111 | struct i2c_msg msg[] = { | ||
112 | {.addr = 0x50, .flags = 0, .buf = &b, .len = 1}, | ||
113 | {.addr = 0x50, .flags = I2C_M_RD, .buf = &pwm, .len = 1} | ||
114 | }; | ||
115 | |||
116 | if ((i2c_transfer(adapter, msg, 2) != 2) | ||
117 | || (pwm == 0xff)) | ||
118 | pwm = 0x48; | ||
119 | |||
120 | return pwm; | ||
121 | } | ||
122 | |||
123 | static int vp2040_frontend_init(struct mantis_pci *mantis, struct dvb_frontend *fe) | ||
124 | { | ||
125 | struct i2c_adapter *adapter = &mantis->adapter; | ||
126 | |||
127 | int err = 0; | ||
128 | |||
129 | err = mantis_frontend_power(mantis, POWER_ON); | ||
130 | if (err == 0) { | ||
131 | mantis_frontend_soft_reset(mantis); | ||
132 | msleep(250); | ||
133 | |||
134 | dprintk(MANTIS_ERROR, 1, "Probing for CU1216 (DVB-C)"); | ||
135 | fe = tda10021_attach(&vp2040_tda1002x_cu1216_config, | ||
136 | adapter, | ||
137 | read_pwm(mantis)); | ||
138 | |||
139 | if (fe) { | ||
140 | dprintk(MANTIS_ERROR, 1, | ||
141 | "found Philips CU1216 DVB-C frontend (TDA10021) @ 0x%02x", | ||
142 | vp2040_tda1002x_cu1216_config.demod_address); | ||
143 | } else { | ||
144 | fe = tda10023_attach(&vp2040_tda10023_cu1216_config, | ||
145 | adapter, | ||
146 | read_pwm(mantis)); | ||
147 | |||
148 | if (fe) { | ||
149 | dprintk(MANTIS_ERROR, 1, | ||
150 | "found Philips CU1216 DVB-C frontend (TDA10023) @ 0x%02x", | ||
151 | vp2040_tda1002x_cu1216_config.demod_address); | ||
152 | } | ||
153 | } | ||
154 | |||
155 | if (fe) { | ||
156 | fe->ops.tuner_ops.set_params = tda1002x_cu1216_tuner_set; | ||
157 | dprintk(MANTIS_ERROR, 1, "Mantis DVB-C Philips CU1216 frontend attach success"); | ||
158 | } else { | ||
159 | return -1; | ||
160 | } | ||
161 | } else { | ||
162 | dprintk(MANTIS_ERROR, 1, "Frontend on <%s> POWER ON failed! <%d>", | ||
163 | adapter->name, | ||
164 | err); | ||
165 | |||
166 | return -EIO; | ||
167 | } | ||
168 | mantis->fe = fe; | ||
169 | dprintk(MANTIS_DEBUG, 1, "Done!"); | ||
170 | |||
171 | return 0; | ||
172 | } | ||
173 | |||
174 | struct mantis_hwconfig vp2040_config = { | ||
175 | .model_name = MANTIS_MODEL_NAME, | ||
176 | .dev_type = MANTIS_DEV_TYPE, | ||
177 | .ts_size = MANTIS_TS_204, | ||
178 | |||
179 | .baud_rate = MANTIS_BAUD_9600, | ||
180 | .parity = MANTIS_PARITY_NONE, | ||
181 | .bytes = 0, | ||
182 | |||
183 | .frontend_init = vp2040_frontend_init, | ||
184 | .power = GPIF_A12, | ||
185 | .reset = GPIF_A13, | ||
186 | }; | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp2040.h b/drivers/media/dvb/mantis/mantis_vp2040.h new file mode 100644 index 00000000000..d125e219b68 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp2040.h | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | Mantis VP-2040 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_VP2040_H | ||
22 | #define __MANTIS_VP2040_H | ||
23 | |||
24 | #include "mantis_common.h" | ||
25 | |||
26 | #define MANTIS_VP_2040_DVB_C 0x0043 | ||
27 | #define CINERGY_C 0x1178 | ||
28 | #define CABLESTAR_HD2 0x0002 | ||
29 | |||
30 | extern struct mantis_hwconfig vp2040_config; | ||
31 | |||
32 | #endif /* __MANTIS_VP2040_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp3028.c b/drivers/media/dvb/mantis/mantis_vp3028.c new file mode 100644 index 00000000000..4155c838a18 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp3028.c | |||
@@ -0,0 +1,38 @@ | |||
1 | /* | ||
2 | Mantis VP-3028 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include "mantis_common.h" | ||
22 | #include "mantis_vp3028.h" | ||
23 | |||
24 | struct zl10353_config mantis_vp3028_config = { | ||
25 | .demod_address = 0x0f, | ||
26 | }; | ||
27 | |||
28 | #define MANTIS_MODEL_NAME "VP-3028" | ||
29 | #define MANTIS_DEV_TYPE "DVB-T" | ||
30 | |||
31 | struct mantis_hwconfig vp3028_mantis_config = { | ||
32 | .model_name = MANTIS_MODEL_NAME, | ||
33 | .dev_type = MANTIS_DEV_TYPE, | ||
34 | .ts_size = MANTIS_TS_188, | ||
35 | .baud_rate = MANTIS_BAUD_9600, | ||
36 | .parity = MANTIS_PARITY_NONE, | ||
37 | .bytes = 0, | ||
38 | }; | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp3028.h b/drivers/media/dvb/mantis/mantis_vp3028.h new file mode 100644 index 00000000000..b07be6adc52 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp3028.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | Mantis VP-3028 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_VP3028_H | ||
22 | #define __MANTIS_VP3028_H | ||
23 | |||
24 | #include "dvb_frontend.h" | ||
25 | #include "mantis_common.h" | ||
26 | #include "zl10353.h" | ||
27 | |||
28 | #define MANTIS_VP_3028_DVB_T 0x0028 | ||
29 | |||
30 | extern struct zl10353_config mantis_vp3028_config; | ||
31 | extern struct mantis_hwconfig vp3028_mantis_config; | ||
32 | |||
33 | #endif /* __MANTIS_VP3028_H */ | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp3030.c b/drivers/media/dvb/mantis/mantis_vp3030.c new file mode 100644 index 00000000000..1f433421495 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp3030.c | |||
@@ -0,0 +1,105 @@ | |||
1 | /* | ||
2 | Mantis VP-3030 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/signal.h> | ||
22 | #include <linux/sched.h> | ||
23 | #include <linux/interrupt.h> | ||
24 | |||
25 | #include "dmxdev.h" | ||
26 | #include "dvbdev.h" | ||
27 | #include "dvb_demux.h" | ||
28 | #include "dvb_frontend.h" | ||
29 | #include "dvb_net.h" | ||
30 | |||
31 | #include "zl10353.h" | ||
32 | #include "tda665x.h" | ||
33 | #include "mantis_common.h" | ||
34 | #include "mantis_ioc.h" | ||
35 | #include "mantis_dvb.h" | ||
36 | #include "mantis_vp3030.h" | ||
37 | |||
38 | struct zl10353_config mantis_vp3030_config = { | ||
39 | .demod_address = 0x0f, | ||
40 | }; | ||
41 | |||
42 | struct tda665x_config env57h12d5_config = { | ||
43 | .name = "ENV57H12D5 (ET-50DT)", | ||
44 | .addr = 0x60, | ||
45 | .frequency_min = 47000000, | ||
46 | .frequency_max = 862000000, | ||
47 | .frequency_offst = 3616667, | ||
48 | .ref_multiplier = 6, /* 1/6 MHz */ | ||
49 | .ref_divider = 100000, /* 1/6 MHz */ | ||
50 | }; | ||
51 | |||
52 | #define MANTIS_MODEL_NAME "VP-3030" | ||
53 | #define MANTIS_DEV_TYPE "DVB-T" | ||
54 | |||
55 | |||
56 | static int vp3030_frontend_init(struct mantis_pci *mantis, struct dvb_frontend *fe) | ||
57 | { | ||
58 | struct i2c_adapter *adapter = &mantis->adapter; | ||
59 | struct mantis_hwconfig *config = mantis->hwconfig; | ||
60 | int err = 0; | ||
61 | |||
62 | gpio_set_bits(mantis, config->reset, 0); | ||
63 | msleep(100); | ||
64 | err = mantis_frontend_power(mantis, POWER_ON); | ||
65 | msleep(100); | ||
66 | gpio_set_bits(mantis, config->reset, 1); | ||
67 | |||
68 | if (err == 0) { | ||
69 | msleep(250); | ||
70 | dprintk(MANTIS_ERROR, 1, "Probing for 10353 (DVB-T)"); | ||
71 | fe = zl10353_attach(&mantis_vp3030_config, adapter); | ||
72 | |||
73 | if (!fe) | ||
74 | return -1; | ||
75 | |||
76 | tda665x_attach(fe, &env57h12d5_config, adapter); | ||
77 | } else { | ||
78 | dprintk(MANTIS_ERROR, 1, "Frontend on <%s> POWER ON failed! <%d>", | ||
79 | adapter->name, | ||
80 | err); | ||
81 | |||
82 | return -EIO; | ||
83 | |||
84 | } | ||
85 | mantis->fe = fe; | ||
86 | dprintk(MANTIS_ERROR, 1, "Done!"); | ||
87 | |||
88 | return 0; | ||
89 | } | ||
90 | |||
91 | struct mantis_hwconfig vp3030_config = { | ||
92 | .model_name = MANTIS_MODEL_NAME, | ||
93 | .dev_type = MANTIS_DEV_TYPE, | ||
94 | .ts_size = MANTIS_TS_188, | ||
95 | |||
96 | .baud_rate = MANTIS_BAUD_9600, | ||
97 | .parity = MANTIS_PARITY_NONE, | ||
98 | .bytes = 0, | ||
99 | |||
100 | .frontend_init = vp3030_frontend_init, | ||
101 | .power = GPIF_A12, | ||
102 | .reset = GPIF_A13, | ||
103 | |||
104 | .i2c_mode = MANTIS_BYTE_MODE | ||
105 | }; | ||
diff --git a/drivers/media/dvb/mantis/mantis_vp3030.h b/drivers/media/dvb/mantis/mantis_vp3030.h new file mode 100644 index 00000000000..5f12c426627 --- /dev/null +++ b/drivers/media/dvb/mantis/mantis_vp3030.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | Mantis VP-3030 driver | ||
3 | |||
4 | Copyright (C) Manu Abraham (abraham.manu@gmail.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 as published by | ||
8 | the Free Software Foundation; either version 2 of the License, or | ||
9 | (at your option) any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, | ||
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | GNU General Public License for more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License | ||
17 | along with this program; if not, write to the Free Software | ||
18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef __MANTIS_VP3030_H | ||
22 | #define __MANTIS_VP3030_H | ||
23 | |||
24 | #include "mantis_common.h" | ||
25 | |||
26 | #define MANTIS_VP_3030_DVB_T 0x0024 | ||
27 | |||
28 | extern struct mantis_hwconfig vp3030_config; | ||
29 | |||
30 | #endif /* __MANTIS_VP3030_H */ | ||
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c index e930a67d526..bd6214d4ab3 100644 --- a/drivers/media/video/gspca/gspca.c +++ b/drivers/media/video/gspca/gspca.c | |||
@@ -1815,6 +1815,8 @@ static int vidioc_qbuf(struct file *file, void *priv, | |||
1815 | /* put the buffer in the 'queued' queue */ | 1815 | /* put the buffer in the 'queued' queue */ |
1816 | i = gspca_dev->fr_q; | 1816 | i = gspca_dev->fr_q; |
1817 | gspca_dev->fr_queue[i] = index; | 1817 | gspca_dev->fr_queue[i] = index; |
1818 | if (gspca_dev->fr_i == i) | ||
1819 | gspca_dev->cur_frame = frame; | ||
1818 | gspca_dev->fr_q = (i + 1) % gspca_dev->nframes; | 1820 | gspca_dev->fr_q = (i + 1) % gspca_dev->nframes; |
1819 | PDEBUG(D_FRAM, "qbuf q:%d i:%d o:%d", | 1821 | PDEBUG(D_FRAM, "qbuf q:%d i:%d o:%d", |
1820 | gspca_dev->fr_q, | 1822 | gspca_dev->fr_q, |
diff --git a/drivers/media/video/gspca/m5602/m5602_s5k4aa.c b/drivers/media/video/gspca/m5602/m5602_s5k4aa.c index aa2f3c7e2cb..1b536f7d30c 100644 --- a/drivers/media/video/gspca/m5602/m5602_s5k4aa.c +++ b/drivers/media/video/gspca/m5602/m5602_s5k4aa.c | |||
@@ -48,6 +48,12 @@ static | |||
48 | DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xa 2528") | 48 | DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xa 2528") |
49 | } | 49 | } |
50 | }, { | 50 | }, { |
51 | .ident = "Fujitsu-Siemens Amilo Xi 2428", | ||
52 | .matches = { | ||
53 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
54 | DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xi 2428") | ||
55 | } | ||
56 | }, { | ||
51 | .ident = "Fujitsu-Siemens Amilo Xi 2528", | 57 | .ident = "Fujitsu-Siemens Amilo Xi 2528", |
52 | .matches = { | 58 | .matches = { |
53 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | 59 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), |
diff --git a/drivers/media/video/gspca/ov534.c b/drivers/media/video/gspca/ov534.c index 4dbb882c83d..0a6b8f07a69 100644 --- a/drivers/media/video/gspca/ov534.c +++ b/drivers/media/video/gspca/ov534.c | |||
@@ -1533,7 +1533,7 @@ static void setexposure_96(struct gspca_dev *gspca_dev) | |||
1533 | static void setsharpness_96(struct gspca_dev *gspca_dev) | 1533 | static void setsharpness_96(struct gspca_dev *gspca_dev) |
1534 | { | 1534 | { |
1535 | struct sd *sd = (struct sd *) gspca_dev; | 1535 | struct sd *sd = (struct sd *) gspca_dev; |
1536 | u8 val; | 1536 | s8 val; |
1537 | 1537 | ||
1538 | val = sd->sharpness; | 1538 | val = sd->sharpness; |
1539 | if (val < 0) { /* auto */ | 1539 | if (val < 0) { /* auto */ |
diff --git a/drivers/media/video/gspca/sn9c20x.c b/drivers/media/video/gspca/sn9c20x.c index 4cff8035614..0ca1c06652b 100644 --- a/drivers/media/video/gspca/sn9c20x.c +++ b/drivers/media/video/gspca/sn9c20x.c | |||
@@ -2319,7 +2319,7 @@ static void do_autogain(struct gspca_dev *gspca_dev, u16 avg_lum) | |||
2319 | } | 2319 | } |
2320 | } | 2320 | } |
2321 | if (avg_lum > MAX_AVG_LUM) { | 2321 | if (avg_lum > MAX_AVG_LUM) { |
2322 | if (sd->gain - 1 >= 0) { | 2322 | if (sd->gain >= 1) { |
2323 | sd->gain--; | 2323 | sd->gain--; |
2324 | set_gain(gspca_dev); | 2324 | set_gain(gspca_dev); |
2325 | } | 2325 | } |
diff --git a/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h b/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h index 487d4055534..96c61926d37 100644 --- a/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h +++ b/drivers/media/video/gspca/stv06xx/stv06xx_vv6410.h | |||
@@ -228,6 +228,7 @@ static const struct stv_init stv_bridge_init[] = { | |||
228 | /* This reg is written twice. Some kind of reset? */ | 228 | /* This reg is written twice. Some kind of reset? */ |
229 | {NULL, 0x1620, 0x80}, | 229 | {NULL, 0x1620, 0x80}, |
230 | {NULL, 0x1620, 0x00}, | 230 | {NULL, 0x1620, 0x00}, |
231 | {NULL, 0x1443, 0x00}, | ||
231 | {NULL, 0x1423, 0x04}, | 232 | {NULL, 0x1423, 0x04}, |
232 | {x1500, 0x1500, ARRAY_SIZE(x1500)}, | 233 | {x1500, 0x1500, ARRAY_SIZE(x1500)}, |
233 | {x1536, 0x1536, ARRAY_SIZE(x1536)}, | 234 | {x1536, 0x1536, ARRAY_SIZE(x1536)}, |
diff --git a/drivers/media/video/gspca/sunplus.c b/drivers/media/video/gspca/sunplus.c index 716df6b15fc..306b7d75b4a 100644 --- a/drivers/media/video/gspca/sunplus.c +++ b/drivers/media/video/gspca/sunplus.c | |||
@@ -709,7 +709,7 @@ static void spca504B_SetSizeType(struct gspca_dev *gspca_dev) | |||
709 | spca504B_PollingDataReady(gspca_dev); | 709 | spca504B_PollingDataReady(gspca_dev); |
710 | 710 | ||
711 | /* Init the cam width height with some values get on init ? */ | 711 | /* Init the cam width height with some values get on init ? */ |
712 | reg_w_riv(gspca_dev, 0x31, 0, 0x04); | 712 | reg_w_riv(gspca_dev, 0x31, 0x0004, 0x00); |
713 | spca504B_WaitCmdStatus(gspca_dev); | 713 | spca504B_WaitCmdStatus(gspca_dev); |
714 | spca504B_PollingDataReady(gspca_dev); | 714 | spca504B_PollingDataReady(gspca_dev); |
715 | break; | 715 | break; |
@@ -807,14 +807,14 @@ static void init_ctl_reg(struct gspca_dev *gspca_dev) | |||
807 | default: | 807 | default: |
808 | /* case BRIDGE_SPCA533: */ | 808 | /* case BRIDGE_SPCA533: */ |
809 | /* case BRIDGE_SPCA504B: */ | 809 | /* case BRIDGE_SPCA504B: */ |
810 | reg_w_riv(gspca_dev, 0, 0x00, 0x21ad); /* hue */ | 810 | reg_w_riv(gspca_dev, 0, 0x21ad, 0x00); /* hue */ |
811 | reg_w_riv(gspca_dev, 0, 0x01, 0x21ac); /* sat/hue */ | 811 | reg_w_riv(gspca_dev, 0, 0x21ac, 0x01); /* sat/hue */ |
812 | reg_w_riv(gspca_dev, 0, 0x00, 0x21a3); /* gamma */ | 812 | reg_w_riv(gspca_dev, 0, 0x21a3, 0x00); /* gamma */ |
813 | break; | 813 | break; |
814 | case BRIDGE_SPCA536: | 814 | case BRIDGE_SPCA536: |
815 | reg_w_riv(gspca_dev, 0, 0x40, 0x20f5); | 815 | reg_w_riv(gspca_dev, 0, 0x20f5, 0x40); |
816 | reg_w_riv(gspca_dev, 0, 0x01, 0x20f4); | 816 | reg_w_riv(gspca_dev, 0, 0x20f4, 0x01); |
817 | reg_w_riv(gspca_dev, 0, 0x00, 0x2089); | 817 | reg_w_riv(gspca_dev, 0, 0x2089, 0x00); |
818 | break; | 818 | break; |
819 | } | 819 | } |
820 | if (pollreg) | 820 | if (pollreg) |
@@ -887,11 +887,11 @@ static int sd_init(struct gspca_dev *gspca_dev) | |||
887 | switch (sd->bridge) { | 887 | switch (sd->bridge) { |
888 | case BRIDGE_SPCA504B: | 888 | case BRIDGE_SPCA504B: |
889 | reg_w_riv(gspca_dev, 0x1d, 0x00, 0); | 889 | reg_w_riv(gspca_dev, 0x1d, 0x00, 0); |
890 | reg_w_riv(gspca_dev, 0, 0x01, 0x2306); | 890 | reg_w_riv(gspca_dev, 0x00, 0x2306, 0x01); |
891 | reg_w_riv(gspca_dev, 0, 0x00, 0x0d04); | 891 | reg_w_riv(gspca_dev, 0x00, 0x0d04, 0x00); |
892 | reg_w_riv(gspca_dev, 0, 0x00, 0x2000); | 892 | reg_w_riv(gspca_dev, 0x00, 0x2000, 0x00); |
893 | reg_w_riv(gspca_dev, 0, 0x13, 0x2301); | 893 | reg_w_riv(gspca_dev, 0x00, 0x2301, 0x13); |
894 | reg_w_riv(gspca_dev, 0, 0x00, 0x2306); | 894 | reg_w_riv(gspca_dev, 0x00, 0x2306, 0x00); |
895 | /* fall thru */ | 895 | /* fall thru */ |
896 | case BRIDGE_SPCA533: | 896 | case BRIDGE_SPCA533: |
897 | spca504B_PollingDataReady(gspca_dev); | 897 | spca504B_PollingDataReady(gspca_dev); |
@@ -1000,7 +1000,7 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
1000 | spca504B_WaitCmdStatus(gspca_dev); | 1000 | spca504B_WaitCmdStatus(gspca_dev); |
1001 | break; | 1001 | break; |
1002 | default: | 1002 | default: |
1003 | reg_w_riv(gspca_dev, 0x31, 0, 0x04); | 1003 | reg_w_riv(gspca_dev, 0x31, 0x0004, 0x00); |
1004 | spca504B_WaitCmdStatus(gspca_dev); | 1004 | spca504B_WaitCmdStatus(gspca_dev); |
1005 | spca504B_PollingDataReady(gspca_dev); | 1005 | spca504B_PollingDataReady(gspca_dev); |
1006 | break; | 1006 | break; |
diff --git a/drivers/media/video/gspca/vc032x.c b/drivers/media/video/gspca/vc032x.c index c090efcd804..71921c87842 100644 --- a/drivers/media/video/gspca/vc032x.c +++ b/drivers/media/video/gspca/vc032x.c | |||
@@ -3009,6 +3009,10 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev, | |||
3009 | int l; | 3009 | int l; |
3010 | 3010 | ||
3011 | frame = gspca_get_i_frame(gspca_dev); | 3011 | frame = gspca_get_i_frame(gspca_dev); |
3012 | if (frame == NULL) { | ||
3013 | gspca_dev->last_packet_type = DISCARD_PACKET; | ||
3014 | return; | ||
3015 | } | ||
3012 | l = frame->data_end - frame->data; | 3016 | l = frame->data_end - frame->data; |
3013 | if (len > frame->v4l2_buf.length - l) | 3017 | if (len > frame->v4l2_buf.length - l) |
3014 | len = frame->v4l2_buf.length - l; | 3018 | len = frame->v4l2_buf.length - l; |
diff --git a/drivers/media/video/mx1_camera.c b/drivers/media/video/mx1_camera.c index 2ba14fb5b03..c167cc3de49 100644 --- a/drivers/media/video/mx1_camera.c +++ b/drivers/media/video/mx1_camera.c | |||
@@ -718,7 +718,7 @@ static int __init mx1_camera_probe(struct platform_device *pdev) | |||
718 | 718 | ||
719 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 719 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
720 | irq = platform_get_irq(pdev, 0); | 720 | irq = platform_get_irq(pdev, 0); |
721 | if (!res || !irq) { | 721 | if (!res || (int)irq <= 0) { |
722 | err = -ENODEV; | 722 | err = -ENODEV; |
723 | goto exit; | 723 | goto exit; |
724 | } | 724 | } |
diff --git a/drivers/media/video/rj54n1cb0c.c b/drivers/media/video/rj54n1cb0c.c index 7e42989ce0e..805226e0d9c 100644 --- a/drivers/media/video/rj54n1cb0c.c +++ b/drivers/media/video/rj54n1cb0c.c | |||
@@ -563,7 +563,7 @@ static int rj54n1_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) | |||
563 | struct i2c_client *client = sd->priv; | 563 | struct i2c_client *client = sd->priv; |
564 | struct rj54n1 *rj54n1 = to_rj54n1(client); | 564 | struct rj54n1 *rj54n1 = to_rj54n1(client); |
565 | struct v4l2_rect *rect = &a->c; | 565 | struct v4l2_rect *rect = &a->c; |
566 | unsigned int dummy, output_w, output_h, | 566 | unsigned int dummy = 0, output_w, output_h, |
567 | input_w = rect->width, input_h = rect->height; | 567 | input_w = rect->width, input_h = rect->height; |
568 | int ret; | 568 | int ret; |
569 | 569 | ||
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c index 9f85e917f9f..a7ad7810fdd 100644 --- a/drivers/media/video/saa7134/saa7134-core.c +++ b/drivers/media/video/saa7134/saa7134-core.c | |||
@@ -420,19 +420,6 @@ int saa7134_set_dmabits(struct saa7134_dev *dev) | |||
420 | ctrl |= SAA7134_MAIN_CTRL_TE5; | 420 | ctrl |= SAA7134_MAIN_CTRL_TE5; |
421 | irq |= SAA7134_IRQ1_INTE_RA2_1 | | 421 | irq |= SAA7134_IRQ1_INTE_RA2_1 | |
422 | SAA7134_IRQ1_INTE_RA2_0; | 422 | SAA7134_IRQ1_INTE_RA2_0; |
423 | |||
424 | /* dma: setup channel 5 (= TS) */ | ||
425 | |||
426 | saa_writeb(SAA7134_TS_DMA0, (dev->ts.nr_packets - 1) & 0xff); | ||
427 | saa_writeb(SAA7134_TS_DMA1, | ||
428 | ((dev->ts.nr_packets - 1) >> 8) & 0xff); | ||
429 | /* TSNOPIT=0, TSCOLAP=0 */ | ||
430 | saa_writeb(SAA7134_TS_DMA2, | ||
431 | (((dev->ts.nr_packets - 1) >> 16) & 0x3f) | 0x00); | ||
432 | saa_writel(SAA7134_RS_PITCH(5), TS_PACKET_SIZE); | ||
433 | saa_writel(SAA7134_RS_CONTROL(5), SAA7134_RS_CONTROL_BURST_16 | | ||
434 | SAA7134_RS_CONTROL_ME | | ||
435 | (dev->ts.pt_ts.dma >> 12)); | ||
436 | } | 423 | } |
437 | 424 | ||
438 | /* set task conditions + field handling */ | 425 | /* set task conditions + field handling */ |
diff --git a/drivers/media/video/saa7134/saa7134-ts.c b/drivers/media/video/saa7134/saa7134-ts.c index 03488ba4c99..b9817d74943 100644 --- a/drivers/media/video/saa7134/saa7134-ts.c +++ b/drivers/media/video/saa7134/saa7134-ts.c | |||
@@ -250,6 +250,19 @@ int saa7134_ts_start(struct saa7134_dev *dev) | |||
250 | 250 | ||
251 | BUG_ON(dev->ts_started); | 251 | BUG_ON(dev->ts_started); |
252 | 252 | ||
253 | /* dma: setup channel 5 (= TS) */ | ||
254 | saa_writeb(SAA7134_TS_DMA0, (dev->ts.nr_packets - 1) & 0xff); | ||
255 | saa_writeb(SAA7134_TS_DMA1, | ||
256 | ((dev->ts.nr_packets - 1) >> 8) & 0xff); | ||
257 | /* TSNOPIT=0, TSCOLAP=0 */ | ||
258 | saa_writeb(SAA7134_TS_DMA2, | ||
259 | (((dev->ts.nr_packets - 1) >> 16) & 0x3f) | 0x00); | ||
260 | saa_writel(SAA7134_RS_PITCH(5), TS_PACKET_SIZE); | ||
261 | saa_writel(SAA7134_RS_CONTROL(5), SAA7134_RS_CONTROL_BURST_16 | | ||
262 | SAA7134_RS_CONTROL_ME | | ||
263 | (dev->ts.pt_ts.dma >> 12)); | ||
264 | |||
265 | /* reset hardware TS buffers */ | ||
253 | saa_writeb(SAA7134_TS_SERIAL1, 0x00); | 266 | saa_writeb(SAA7134_TS_SERIAL1, 0x00); |
254 | saa_writeb(SAA7134_TS_SERIAL1, 0x03); | 267 | saa_writeb(SAA7134_TS_SERIAL1, 0x03); |
255 | saa_writeb(SAA7134_TS_SERIAL1, 0x00); | 268 | saa_writeb(SAA7134_TS_SERIAL1, 0x00); |
diff --git a/drivers/media/video/sh_mobile_ceu_camera.c b/drivers/media/video/sh_mobile_ceu_camera.c index d69363f0d8c..f09c7140d6b 100644 --- a/drivers/media/video/sh_mobile_ceu_camera.c +++ b/drivers/media/video/sh_mobile_ceu_camera.c | |||
@@ -1827,7 +1827,7 @@ static int __devinit sh_mobile_ceu_probe(struct platform_device *pdev) | |||
1827 | 1827 | ||
1828 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1828 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1829 | irq = platform_get_irq(pdev, 0); | 1829 | irq = platform_get_irq(pdev, 0); |
1830 | if (!res || !irq) { | 1830 | if (!res || (int)irq <= 0) { |
1831 | dev_err(&pdev->dev, "Not enough CEU platform resources.\n"); | 1831 | dev_err(&pdev->dev, "Not enough CEU platform resources.\n"); |
1832 | err = -ENODEV; | 1832 | err = -ENODEV; |
1833 | goto exit; | 1833 | goto exit; |
diff --git a/drivers/media/video/uvc/uvc_ctrl.c b/drivers/media/video/uvc/uvc_ctrl.c index 0469d7a876a..ec8ef8c5560 100644 --- a/drivers/media/video/uvc/uvc_ctrl.c +++ b/drivers/media/video/uvc/uvc_ctrl.c | |||
@@ -1393,7 +1393,7 @@ uvc_ctrl_prune_entity(struct uvc_device *dev, struct uvc_entity *entity) | |||
1393 | size = entity->processing.bControlSize; | 1393 | size = entity->processing.bControlSize; |
1394 | 1394 | ||
1395 | for (i = 0; i < ARRAY_SIZE(blacklist); ++i) { | 1395 | for (i = 0; i < ARRAY_SIZE(blacklist); ++i) { |
1396 | if (!usb_match_id(dev->intf, &blacklist[i].id)) | 1396 | if (!usb_match_one_id(dev->intf, &blacklist[i].id)) |
1397 | continue; | 1397 | continue; |
1398 | 1398 | ||
1399 | if (blacklist[i].index >= 8 * size || | 1399 | if (blacklist[i].index >= 8 * size || |
diff --git a/drivers/media/video/uvc/uvc_queue.c b/drivers/media/video/uvc/uvc_queue.c index f854698c406..ea11839cba4 100644 --- a/drivers/media/video/uvc/uvc_queue.c +++ b/drivers/media/video/uvc/uvc_queue.c | |||
@@ -59,9 +59,9 @@ | |||
59 | * returns immediately. | 59 | * returns immediately. |
60 | * | 60 | * |
61 | * When the buffer is full, the completion handler removes it from the irq | 61 | * When the buffer is full, the completion handler removes it from the irq |
62 | * queue, marks it as ready (UVC_BUF_STATE_DONE) and wakes its wait queue. | 62 | * queue, marks it as done (UVC_BUF_STATE_DONE) and wakes its wait queue. |
63 | * At that point, any process waiting on the buffer will be woken up. If a | 63 | * At that point, any process waiting on the buffer will be woken up. If a |
64 | * process tries to dequeue a buffer after it has been marked ready, the | 64 | * process tries to dequeue a buffer after it has been marked done, the |
65 | * dequeing will succeed immediately. | 65 | * dequeing will succeed immediately. |
66 | * | 66 | * |
67 | * 2. Buffers are queued, user is waiting on a buffer and the device gets | 67 | * 2. Buffers are queued, user is waiting on a buffer and the device gets |
@@ -201,6 +201,7 @@ static void __uvc_query_buffer(struct uvc_buffer *buf, | |||
201 | break; | 201 | break; |
202 | case UVC_BUF_STATE_QUEUED: | 202 | case UVC_BUF_STATE_QUEUED: |
203 | case UVC_BUF_STATE_ACTIVE: | 203 | case UVC_BUF_STATE_ACTIVE: |
204 | case UVC_BUF_STATE_READY: | ||
204 | v4l2_buf->flags |= V4L2_BUF_FLAG_QUEUED; | 205 | v4l2_buf->flags |= V4L2_BUF_FLAG_QUEUED; |
205 | break; | 206 | break; |
206 | case UVC_BUF_STATE_IDLE: | 207 | case UVC_BUF_STATE_IDLE: |
@@ -295,13 +296,15 @@ static int uvc_queue_waiton(struct uvc_buffer *buf, int nonblocking) | |||
295 | { | 296 | { |
296 | if (nonblocking) { | 297 | if (nonblocking) { |
297 | return (buf->state != UVC_BUF_STATE_QUEUED && | 298 | return (buf->state != UVC_BUF_STATE_QUEUED && |
298 | buf->state != UVC_BUF_STATE_ACTIVE) | 299 | buf->state != UVC_BUF_STATE_ACTIVE && |
300 | buf->state != UVC_BUF_STATE_READY) | ||
299 | ? 0 : -EAGAIN; | 301 | ? 0 : -EAGAIN; |
300 | } | 302 | } |
301 | 303 | ||
302 | return wait_event_interruptible(buf->wait, | 304 | return wait_event_interruptible(buf->wait, |
303 | buf->state != UVC_BUF_STATE_QUEUED && | 305 | buf->state != UVC_BUF_STATE_QUEUED && |
304 | buf->state != UVC_BUF_STATE_ACTIVE); | 306 | buf->state != UVC_BUF_STATE_ACTIVE && |
307 | buf->state != UVC_BUF_STATE_READY); | ||
305 | } | 308 | } |
306 | 309 | ||
307 | /* | 310 | /* |
@@ -348,6 +351,7 @@ int uvc_dequeue_buffer(struct uvc_video_queue *queue, | |||
348 | case UVC_BUF_STATE_IDLE: | 351 | case UVC_BUF_STATE_IDLE: |
349 | case UVC_BUF_STATE_QUEUED: | 352 | case UVC_BUF_STATE_QUEUED: |
350 | case UVC_BUF_STATE_ACTIVE: | 353 | case UVC_BUF_STATE_ACTIVE: |
354 | case UVC_BUF_STATE_READY: | ||
351 | default: | 355 | default: |
352 | uvc_trace(UVC_TRACE_CAPTURE, "[E] Invalid buffer state %u " | 356 | uvc_trace(UVC_TRACE_CAPTURE, "[E] Invalid buffer state %u " |
353 | "(driver bug?).\n", buf->state); | 357 | "(driver bug?).\n", buf->state); |
@@ -489,6 +493,7 @@ struct uvc_buffer *uvc_queue_next_buffer(struct uvc_video_queue *queue, | |||
489 | 493 | ||
490 | spin_lock_irqsave(&queue->irqlock, flags); | 494 | spin_lock_irqsave(&queue->irqlock, flags); |
491 | list_del(&buf->queue); | 495 | list_del(&buf->queue); |
496 | buf->state = UVC_BUF_STATE_DONE; | ||
492 | if (!list_empty(&queue->irqqueue)) | 497 | if (!list_empty(&queue->irqqueue)) |
493 | nextbuf = list_first_entry(&queue->irqqueue, struct uvc_buffer, | 498 | nextbuf = list_first_entry(&queue->irqqueue, struct uvc_buffer, |
494 | queue); | 499 | queue); |
diff --git a/drivers/media/video/uvc/uvc_video.c b/drivers/media/video/uvc/uvc_video.c index 9a9802830d4..7dcf534a0cf 100644 --- a/drivers/media/video/uvc/uvc_video.c +++ b/drivers/media/video/uvc/uvc_video.c | |||
@@ -441,7 +441,7 @@ static int uvc_video_decode_start(struct uvc_streaming *stream, | |||
441 | if (fid != stream->last_fid && buf->buf.bytesused != 0) { | 441 | if (fid != stream->last_fid && buf->buf.bytesused != 0) { |
442 | uvc_trace(UVC_TRACE_FRAME, "Frame complete (FID bit " | 442 | uvc_trace(UVC_TRACE_FRAME, "Frame complete (FID bit " |
443 | "toggled).\n"); | 443 | "toggled).\n"); |
444 | buf->state = UVC_BUF_STATE_DONE; | 444 | buf->state = UVC_BUF_STATE_READY; |
445 | return -EAGAIN; | 445 | return -EAGAIN; |
446 | } | 446 | } |
447 | 447 | ||
@@ -470,7 +470,7 @@ static void uvc_video_decode_data(struct uvc_streaming *stream, | |||
470 | /* Complete the current frame if the buffer size was exceeded. */ | 470 | /* Complete the current frame if the buffer size was exceeded. */ |
471 | if (len > maxlen) { | 471 | if (len > maxlen) { |
472 | uvc_trace(UVC_TRACE_FRAME, "Frame complete (overflow).\n"); | 472 | uvc_trace(UVC_TRACE_FRAME, "Frame complete (overflow).\n"); |
473 | buf->state = UVC_BUF_STATE_DONE; | 473 | buf->state = UVC_BUF_STATE_READY; |
474 | } | 474 | } |
475 | } | 475 | } |
476 | 476 | ||
@@ -482,7 +482,7 @@ static void uvc_video_decode_end(struct uvc_streaming *stream, | |||
482 | uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n"); | 482 | uvc_trace(UVC_TRACE_FRAME, "Frame complete (EOF found).\n"); |
483 | if (data[0] == len) | 483 | if (data[0] == len) |
484 | uvc_trace(UVC_TRACE_FRAME, "EOF in empty payload.\n"); | 484 | uvc_trace(UVC_TRACE_FRAME, "EOF in empty payload.\n"); |
485 | buf->state = UVC_BUF_STATE_DONE; | 485 | buf->state = UVC_BUF_STATE_READY; |
486 | if (stream->dev->quirks & UVC_QUIRK_STREAM_NO_FID) | 486 | if (stream->dev->quirks & UVC_QUIRK_STREAM_NO_FID) |
487 | stream->last_fid ^= UVC_STREAM_FID; | 487 | stream->last_fid ^= UVC_STREAM_FID; |
488 | } | 488 | } |
@@ -568,8 +568,7 @@ static void uvc_video_decode_isoc(struct urb *urb, struct uvc_streaming *stream, | |||
568 | uvc_video_decode_end(stream, buf, mem, | 568 | uvc_video_decode_end(stream, buf, mem, |
569 | urb->iso_frame_desc[i].actual_length); | 569 | urb->iso_frame_desc[i].actual_length); |
570 | 570 | ||
571 | if (buf->state == UVC_BUF_STATE_DONE || | 571 | if (buf->state == UVC_BUF_STATE_READY) |
572 | buf->state == UVC_BUF_STATE_ERROR) | ||
573 | buf = uvc_queue_next_buffer(&stream->queue, buf); | 572 | buf = uvc_queue_next_buffer(&stream->queue, buf); |
574 | } | 573 | } |
575 | } | 574 | } |
@@ -627,8 +626,7 @@ static void uvc_video_decode_bulk(struct urb *urb, struct uvc_streaming *stream, | |||
627 | if (!stream->bulk.skip_payload && buf != NULL) { | 626 | if (!stream->bulk.skip_payload && buf != NULL) { |
628 | uvc_video_decode_end(stream, buf, stream->bulk.header, | 627 | uvc_video_decode_end(stream, buf, stream->bulk.header, |
629 | stream->bulk.payload_size); | 628 | stream->bulk.payload_size); |
630 | if (buf->state == UVC_BUF_STATE_DONE || | 629 | if (buf->state == UVC_BUF_STATE_READY) |
631 | buf->state == UVC_BUF_STATE_ERROR) | ||
632 | buf = uvc_queue_next_buffer(&stream->queue, | 630 | buf = uvc_queue_next_buffer(&stream->queue, |
633 | buf); | 631 | buf); |
634 | } | 632 | } |
@@ -669,7 +667,7 @@ static void uvc_video_encode_bulk(struct urb *urb, struct uvc_streaming *stream, | |||
669 | stream->bulk.payload_size == stream->bulk.max_payload_size) { | 667 | stream->bulk.payload_size == stream->bulk.max_payload_size) { |
670 | if (buf->buf.bytesused == stream->queue.buf_used) { | 668 | if (buf->buf.bytesused == stream->queue.buf_used) { |
671 | stream->queue.buf_used = 0; | 669 | stream->queue.buf_used = 0; |
672 | buf->state = UVC_BUF_STATE_DONE; | 670 | buf->state = UVC_BUF_STATE_READY; |
673 | uvc_queue_next_buffer(&stream->queue, buf); | 671 | uvc_queue_next_buffer(&stream->queue, buf); |
674 | stream->last_fid ^= UVC_STREAM_FID; | 672 | stream->last_fid ^= UVC_STREAM_FID; |
675 | } | 673 | } |
@@ -924,10 +922,8 @@ static int uvc_init_video_bulk(struct uvc_streaming *stream, | |||
924 | static int uvc_init_video(struct uvc_streaming *stream, gfp_t gfp_flags) | 922 | static int uvc_init_video(struct uvc_streaming *stream, gfp_t gfp_flags) |
925 | { | 923 | { |
926 | struct usb_interface *intf = stream->intf; | 924 | struct usb_interface *intf = stream->intf; |
927 | struct usb_host_interface *alts; | 925 | struct usb_host_endpoint *ep; |
928 | struct usb_host_endpoint *ep = NULL; | 926 | unsigned int i; |
929 | int intfnum = stream->intfnum; | ||
930 | unsigned int bandwidth, psize, i; | ||
931 | int ret; | 927 | int ret; |
932 | 928 | ||
933 | stream->last_fid = -1; | 929 | stream->last_fid = -1; |
@@ -936,6 +932,12 @@ static int uvc_init_video(struct uvc_streaming *stream, gfp_t gfp_flags) | |||
936 | stream->bulk.payload_size = 0; | 932 | stream->bulk.payload_size = 0; |
937 | 933 | ||
938 | if (intf->num_altsetting > 1) { | 934 | if (intf->num_altsetting > 1) { |
935 | struct usb_host_endpoint *best_ep = NULL; | ||
936 | unsigned int best_psize = 3 * 1024; | ||
937 | unsigned int bandwidth; | ||
938 | unsigned int uninitialized_var(altsetting); | ||
939 | int intfnum = stream->intfnum; | ||
940 | |||
939 | /* Isochronous endpoint, select the alternate setting. */ | 941 | /* Isochronous endpoint, select the alternate setting. */ |
940 | bandwidth = stream->ctrl.dwMaxPayloadTransferSize; | 942 | bandwidth = stream->ctrl.dwMaxPayloadTransferSize; |
941 | 943 | ||
@@ -949,6 +951,9 @@ static int uvc_init_video(struct uvc_streaming *stream, gfp_t gfp_flags) | |||
949 | } | 951 | } |
950 | 952 | ||
951 | for (i = 0; i < intf->num_altsetting; ++i) { | 953 | for (i = 0; i < intf->num_altsetting; ++i) { |
954 | struct usb_host_interface *alts; | ||
955 | unsigned int psize; | ||
956 | |||
952 | alts = &intf->altsetting[i]; | 957 | alts = &intf->altsetting[i]; |
953 | ep = uvc_find_endpoint(alts, | 958 | ep = uvc_find_endpoint(alts, |
954 | stream->header.bEndpointAddress); | 959 | stream->header.bEndpointAddress); |
@@ -958,21 +963,27 @@ static int uvc_init_video(struct uvc_streaming *stream, gfp_t gfp_flags) | |||
958 | /* Check if the bandwidth is high enough. */ | 963 | /* Check if the bandwidth is high enough. */ |
959 | psize = le16_to_cpu(ep->desc.wMaxPacketSize); | 964 | psize = le16_to_cpu(ep->desc.wMaxPacketSize); |
960 | psize = (psize & 0x07ff) * (1 + ((psize >> 11) & 3)); | 965 | psize = (psize & 0x07ff) * (1 + ((psize >> 11) & 3)); |
961 | if (psize >= bandwidth) | 966 | if (psize >= bandwidth && psize <= best_psize) { |
962 | break; | 967 | altsetting = i; |
968 | best_psize = psize; | ||
969 | best_ep = ep; | ||
970 | } | ||
963 | } | 971 | } |
964 | 972 | ||
965 | if (i >= intf->num_altsetting) { | 973 | if (best_ep == NULL) { |
966 | uvc_trace(UVC_TRACE_VIDEO, "No fast enough alt setting " | 974 | uvc_trace(UVC_TRACE_VIDEO, "No fast enough alt setting " |
967 | "for requested bandwidth.\n"); | 975 | "for requested bandwidth.\n"); |
968 | return -EIO; | 976 | return -EIO; |
969 | } | 977 | } |
970 | 978 | ||
971 | ret = usb_set_interface(stream->dev->udev, intfnum, i); | 979 | uvc_trace(UVC_TRACE_VIDEO, "Selecting alternate setting %u " |
980 | "(%u B/frame bandwidth).\n", altsetting, best_psize); | ||
981 | |||
982 | ret = usb_set_interface(stream->dev->udev, intfnum, altsetting); | ||
972 | if (ret < 0) | 983 | if (ret < 0) |
973 | return ret; | 984 | return ret; |
974 | 985 | ||
975 | ret = uvc_init_video_isoc(stream, ep, gfp_flags); | 986 | ret = uvc_init_video_isoc(stream, best_ep, gfp_flags); |
976 | } else { | 987 | } else { |
977 | /* Bulk endpoint, proceed to URB initialization. */ | 988 | /* Bulk endpoint, proceed to URB initialization. */ |
978 | ep = uvc_find_endpoint(&intf->altsetting[0], | 989 | ep = uvc_find_endpoint(&intf->altsetting[0], |
diff --git a/drivers/media/video/uvc/uvcvideo.h b/drivers/media/video/uvc/uvcvideo.h index 7ec9a04ced5..2337585001e 100644 --- a/drivers/media/video/uvc/uvcvideo.h +++ b/drivers/media/video/uvc/uvcvideo.h | |||
@@ -365,8 +365,9 @@ enum uvc_buffer_state { | |||
365 | UVC_BUF_STATE_IDLE = 0, | 365 | UVC_BUF_STATE_IDLE = 0, |
366 | UVC_BUF_STATE_QUEUED = 1, | 366 | UVC_BUF_STATE_QUEUED = 1, |
367 | UVC_BUF_STATE_ACTIVE = 2, | 367 | UVC_BUF_STATE_ACTIVE = 2, |
368 | UVC_BUF_STATE_DONE = 3, | 368 | UVC_BUF_STATE_READY = 3, |
369 | UVC_BUF_STATE_ERROR = 4, | 369 | UVC_BUF_STATE_DONE = 4, |
370 | UVC_BUF_STATE_ERROR = 5, | ||
370 | }; | 371 | }; |
371 | 372 | ||
372 | struct uvc_buffer { | 373 | struct uvc_buffer { |
diff --git a/drivers/message/i2o/i2o_config.c b/drivers/message/i2o/i2o_config.c index efba7021948..3d5f40cd69d 100644 --- a/drivers/message/i2o/i2o_config.c +++ b/drivers/message/i2o/i2o_config.c | |||
@@ -40,8 +40,7 @@ | |||
40 | 40 | ||
41 | #define SG_TABLESIZE 30 | 41 | #define SG_TABLESIZE 30 |
42 | 42 | ||
43 | static int i2o_cfg_ioctl(struct inode *, struct file *, unsigned int, | 43 | static long i2o_cfg_ioctl(struct file *, unsigned int, unsigned long); |
44 | unsigned long); | ||
45 | 44 | ||
46 | static spinlock_t i2o_config_lock; | 45 | static spinlock_t i2o_config_lock; |
47 | 46 | ||
@@ -751,7 +750,7 @@ static long i2o_cfg_compat_ioctl(struct file *file, unsigned cmd, | |||
751 | lock_kernel(); | 750 | lock_kernel(); |
752 | switch (cmd) { | 751 | switch (cmd) { |
753 | case I2OGETIOPS: | 752 | case I2OGETIOPS: |
754 | ret = i2o_cfg_ioctl(NULL, file, cmd, arg); | 753 | ret = i2o_cfg_ioctl(file, cmd, arg); |
755 | break; | 754 | break; |
756 | case I2OPASSTHRU32: | 755 | case I2OPASSTHRU32: |
757 | ret = i2o_cfg_passthru32(file, cmd, arg); | 756 | ret = i2o_cfg_passthru32(file, cmd, arg); |
@@ -984,11 +983,11 @@ out: | |||
984 | /* | 983 | /* |
985 | * IOCTL Handler | 984 | * IOCTL Handler |
986 | */ | 985 | */ |
987 | static int i2o_cfg_ioctl(struct inode *inode, struct file *fp, unsigned int cmd, | 986 | static long i2o_cfg_ioctl(struct file *fp, unsigned int cmd, unsigned long arg) |
988 | unsigned long arg) | ||
989 | { | 987 | { |
990 | int ret; | 988 | int ret; |
991 | 989 | ||
990 | lock_kernel(); | ||
992 | switch (cmd) { | 991 | switch (cmd) { |
993 | case I2OGETIOPS: | 992 | case I2OGETIOPS: |
994 | ret = i2o_cfg_getiops(arg); | 993 | ret = i2o_cfg_getiops(arg); |
@@ -1044,7 +1043,7 @@ static int i2o_cfg_ioctl(struct inode *inode, struct file *fp, unsigned int cmd, | |||
1044 | osm_debug("unknown ioctl called!\n"); | 1043 | osm_debug("unknown ioctl called!\n"); |
1045 | ret = -EINVAL; | 1044 | ret = -EINVAL; |
1046 | } | 1045 | } |
1047 | 1046 | unlock_kernel(); | |
1048 | return ret; | 1047 | return ret; |
1049 | } | 1048 | } |
1050 | 1049 | ||
@@ -1118,7 +1117,7 @@ static int cfg_release(struct inode *inode, struct file *file) | |||
1118 | static const struct file_operations config_fops = { | 1117 | static const struct file_operations config_fops = { |
1119 | .owner = THIS_MODULE, | 1118 | .owner = THIS_MODULE, |
1120 | .llseek = no_llseek, | 1119 | .llseek = no_llseek, |
1121 | .ioctl = i2o_cfg_ioctl, | 1120 | .unlocked_ioctl = i2o_cfg_ioctl, |
1122 | #ifdef CONFIG_COMPAT | 1121 | #ifdef CONFIG_COMPAT |
1123 | .compat_ioctl = i2o_cfg_compat_ioctl, | 1122 | .compat_ioctl = i2o_cfg_compat_ioctl, |
1124 | #endif | 1123 | #endif |
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index ca2f2c4ff05..8f0d18409ed 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile | |||
@@ -11,9 +11,9 @@ obj-$(CONFIG_HTC_PASIC3) += htc-pasic3.o | |||
11 | 11 | ||
12 | obj-$(CONFIG_MFD_DM355EVM_MSP) += dm355evm_msp.o | 12 | obj-$(CONFIG_MFD_DM355EVM_MSP) += dm355evm_msp.o |
13 | 13 | ||
14 | obj-$(CONFIG_MFD_T7L66XB) += t7l66xb.o | 14 | obj-$(CONFIG_MFD_T7L66XB) += t7l66xb.o tmio_core.o |
15 | obj-$(CONFIG_MFD_TC6387XB) += tc6387xb.o | 15 | obj-$(CONFIG_MFD_TC6387XB) += tc6387xb.o tmio_core.o |
16 | obj-$(CONFIG_MFD_TC6393XB) += tc6393xb.o | 16 | obj-$(CONFIG_MFD_TC6393XB) += tc6393xb.o tmio_core.o |
17 | 17 | ||
18 | obj-$(CONFIG_MFD_WM8400) += wm8400-core.o | 18 | obj-$(CONFIG_MFD_WM8400) += wm8400-core.o |
19 | wm831x-objs := wm831x-core.o wm831x-irq.o wm831x-otp.o | 19 | wm831x-objs := wm831x-core.o wm831x-irq.o wm831x-otp.o |
diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c index e22128c3e9a..95c1e6bd172 100644 --- a/drivers/mfd/asic3.c +++ b/drivers/mfd/asic3.c | |||
@@ -80,6 +80,7 @@ struct asic3 { | |||
80 | u16 irq_bothedge[4]; | 80 | u16 irq_bothedge[4]; |
81 | struct gpio_chip gpio; | 81 | struct gpio_chip gpio; |
82 | struct device *dev; | 82 | struct device *dev; |
83 | void __iomem *tmio_cnf; | ||
83 | 84 | ||
84 | struct asic3_clk clocks[ARRAY_SIZE(asic3_clk_init)]; | 85 | struct asic3_clk clocks[ARRAY_SIZE(asic3_clk_init)]; |
85 | }; | 86 | }; |
@@ -685,8 +686,24 @@ static struct mfd_cell asic3_cell_ds1wm = { | |||
685 | .resources = ds1wm_resources, | 686 | .resources = ds1wm_resources, |
686 | }; | 687 | }; |
687 | 688 | ||
689 | static void asic3_mmc_pwr(struct platform_device *pdev, int state) | ||
690 | { | ||
691 | struct asic3 *asic = dev_get_drvdata(pdev->dev.parent); | ||
692 | |||
693 | tmio_core_mmc_pwr(asic->tmio_cnf, 1 - asic->bus_shift, state); | ||
694 | } | ||
695 | |||
696 | static void asic3_mmc_clk_div(struct platform_device *pdev, int state) | ||
697 | { | ||
698 | struct asic3 *asic = dev_get_drvdata(pdev->dev.parent); | ||
699 | |||
700 | tmio_core_mmc_clk_div(asic->tmio_cnf, 1 - asic->bus_shift, state); | ||
701 | } | ||
702 | |||
688 | static struct tmio_mmc_data asic3_mmc_data = { | 703 | static struct tmio_mmc_data asic3_mmc_data = { |
689 | .hclk = 24576000, | 704 | .hclk = 24576000, |
705 | .set_pwr = asic3_mmc_pwr, | ||
706 | .set_clk_div = asic3_mmc_clk_div, | ||
690 | }; | 707 | }; |
691 | 708 | ||
692 | static struct resource asic3_mmc_resources[] = { | 709 | static struct resource asic3_mmc_resources[] = { |
@@ -696,11 +713,6 @@ static struct resource asic3_mmc_resources[] = { | |||
696 | .flags = IORESOURCE_MEM, | 713 | .flags = IORESOURCE_MEM, |
697 | }, | 714 | }, |
698 | { | 715 | { |
699 | .start = ASIC3_SD_CONFIG_BASE, | ||
700 | .end = ASIC3_SD_CONFIG_BASE + 0x1ff, | ||
701 | .flags = IORESOURCE_MEM, | ||
702 | }, | ||
703 | { | ||
704 | .start = 0, | 716 | .start = 0, |
705 | .end = 0, | 717 | .end = 0, |
706 | .flags = IORESOURCE_IRQ, | 718 | .flags = IORESOURCE_IRQ, |
@@ -743,6 +755,10 @@ static int asic3_mmc_enable(struct platform_device *pdev) | |||
743 | asic3_set_register(asic, ASIC3_OFFSET(SDHWCTRL, SDCONF), | 755 | asic3_set_register(asic, ASIC3_OFFSET(SDHWCTRL, SDCONF), |
744 | ASIC3_SDHWCTRL_SDPWR, 1); | 756 | ASIC3_SDHWCTRL_SDPWR, 1); |
745 | 757 | ||
758 | /* ASIC3_SD_CTRL_BASE assumes 32-bit addressing, TMIO is 16-bit */ | ||
759 | tmio_core_mmc_enable(asic->tmio_cnf, 1 - asic->bus_shift, | ||
760 | ASIC3_SD_CTRL_BASE >> 1); | ||
761 | |||
746 | return 0; | 762 | return 0; |
747 | } | 763 | } |
748 | 764 | ||
@@ -797,10 +813,15 @@ static int __init asic3_mfd_probe(struct platform_device *pdev, | |||
797 | asic3_cell_ds1wm.data_size = sizeof(asic3_cell_ds1wm); | 813 | asic3_cell_ds1wm.data_size = sizeof(asic3_cell_ds1wm); |
798 | 814 | ||
799 | /* MMC */ | 815 | /* MMC */ |
816 | asic->tmio_cnf = ioremap((ASIC3_SD_CONFIG_BASE >> asic->bus_shift) + | ||
817 | mem_sdio->start, 0x400 >> asic->bus_shift); | ||
818 | if (!asic->tmio_cnf) { | ||
819 | ret = -ENOMEM; | ||
820 | dev_dbg(asic->dev, "Couldn't ioremap SD_CONFIG\n"); | ||
821 | goto out; | ||
822 | } | ||
800 | asic3_mmc_resources[0].start >>= asic->bus_shift; | 823 | asic3_mmc_resources[0].start >>= asic->bus_shift; |
801 | asic3_mmc_resources[0].end >>= asic->bus_shift; | 824 | asic3_mmc_resources[0].end >>= asic->bus_shift; |
802 | asic3_mmc_resources[1].start >>= asic->bus_shift; | ||
803 | asic3_mmc_resources[1].end >>= asic->bus_shift; | ||
804 | 825 | ||
805 | asic3_cell_mmc.platform_data = &asic3_cell_mmc; | 826 | asic3_cell_mmc.platform_data = &asic3_cell_mmc; |
806 | asic3_cell_mmc.data_size = sizeof(asic3_cell_mmc); | 827 | asic3_cell_mmc.data_size = sizeof(asic3_cell_mmc); |
@@ -820,7 +841,10 @@ static int __init asic3_mfd_probe(struct platform_device *pdev, | |||
820 | 841 | ||
821 | static void asic3_mfd_remove(struct platform_device *pdev) | 842 | static void asic3_mfd_remove(struct platform_device *pdev) |
822 | { | 843 | { |
844 | struct asic3 *asic = platform_get_drvdata(pdev); | ||
845 | |||
823 | mfd_remove_devices(&pdev->dev); | 846 | mfd_remove_devices(&pdev->dev); |
847 | iounmap(asic->tmio_cnf); | ||
824 | } | 848 | } |
825 | 849 | ||
826 | /* Core */ | 850 | /* Core */ |
diff --git a/drivers/mfd/mc13783-core.c b/drivers/mfd/mc13783-core.c index a1ade2324ea..735c8a4d164 100644 --- a/drivers/mfd/mc13783-core.c +++ b/drivers/mfd/mc13783-core.c | |||
@@ -619,6 +619,8 @@ err_revision: | |||
619 | } | 619 | } |
620 | /* This should go away (END) */ | 620 | /* This should go away (END) */ |
621 | 621 | ||
622 | mc13783_unlock(mc13783); | ||
623 | |||
622 | if (pdata->flags & MC13783_USE_ADC) | 624 | if (pdata->flags & MC13783_USE_ADC) |
623 | mc13783_add_subdevice(mc13783, "mc13783-adc"); | 625 | mc13783_add_subdevice(mc13783, "mc13783-adc"); |
624 | 626 | ||
@@ -641,8 +643,6 @@ err_revision: | |||
641 | if (pdata->flags & MC13783_USE_TOUCHSCREEN) | 643 | if (pdata->flags & MC13783_USE_TOUCHSCREEN) |
642 | mc13783_add_subdevice(mc13783, "mc13783-ts"); | 644 | mc13783_add_subdevice(mc13783, "mc13783-ts"); |
643 | 645 | ||
644 | mc13783_unlock(mc13783); | ||
645 | |||
646 | return 0; | 646 | return 0; |
647 | } | 647 | } |
648 | 648 | ||
diff --git a/drivers/mfd/t7l66xb.c b/drivers/mfd/t7l66xb.c index 0a255c1f1ce..bcf4687d4af 100644 --- a/drivers/mfd/t7l66xb.c +++ b/drivers/mfd/t7l66xb.c | |||
@@ -38,6 +38,19 @@ enum { | |||
38 | T7L66XB_CELL_MMC, | 38 | T7L66XB_CELL_MMC, |
39 | }; | 39 | }; |
40 | 40 | ||
41 | static const struct resource t7l66xb_mmc_resources[] = { | ||
42 | { | ||
43 | .start = 0x800, | ||
44 | .end = 0x9ff, | ||
45 | .flags = IORESOURCE_MEM, | ||
46 | }, | ||
47 | { | ||
48 | .start = IRQ_T7L66XB_MMC, | ||
49 | .end = IRQ_T7L66XB_MMC, | ||
50 | .flags = IORESOURCE_IRQ, | ||
51 | }, | ||
52 | }; | ||
53 | |||
41 | #define SCR_REVID 0x08 /* b Revision ID */ | 54 | #define SCR_REVID 0x08 /* b Revision ID */ |
42 | #define SCR_IMR 0x42 /* b Interrupt Mask */ | 55 | #define SCR_IMR 0x42 /* b Interrupt Mask */ |
43 | #define SCR_DEV_CTL 0xe0 /* b Device control */ | 56 | #define SCR_DEV_CTL 0xe0 /* b Device control */ |
@@ -83,6 +96,9 @@ static int t7l66xb_mmc_enable(struct platform_device *mmc) | |||
83 | 96 | ||
84 | spin_unlock_irqrestore(&t7l66xb->lock, flags); | 97 | spin_unlock_irqrestore(&t7l66xb->lock, flags); |
85 | 98 | ||
99 | tmio_core_mmc_enable(t7l66xb->scr + 0x200, 0, | ||
100 | t7l66xb_mmc_resources[0].start & 0xfffe); | ||
101 | |||
86 | return 0; | 102 | return 0; |
87 | } | 103 | } |
88 | 104 | ||
@@ -106,28 +122,28 @@ static int t7l66xb_mmc_disable(struct platform_device *mmc) | |||
106 | return 0; | 122 | return 0; |
107 | } | 123 | } |
108 | 124 | ||
125 | static void t7l66xb_mmc_pwr(struct platform_device *mmc, int state) | ||
126 | { | ||
127 | struct platform_device *dev = to_platform_device(mmc->dev.parent); | ||
128 | struct t7l66xb *t7l66xb = platform_get_drvdata(dev); | ||
129 | |||
130 | tmio_core_mmc_pwr(t7l66xb->scr + 0x200, 0, state); | ||
131 | } | ||
132 | |||
133 | static void t7l66xb_mmc_clk_div(struct platform_device *mmc, int state) | ||
134 | { | ||
135 | struct platform_device *dev = to_platform_device(mmc->dev.parent); | ||
136 | struct t7l66xb *t7l66xb = platform_get_drvdata(dev); | ||
137 | |||
138 | tmio_core_mmc_clk_div(t7l66xb->scr + 0x200, 0, state); | ||
139 | } | ||
140 | |||
109 | /*--------------------------------------------------------------------------*/ | 141 | /*--------------------------------------------------------------------------*/ |
110 | 142 | ||
111 | static struct tmio_mmc_data t7166xb_mmc_data = { | 143 | static struct tmio_mmc_data t7166xb_mmc_data = { |
112 | .hclk = 24000000, | 144 | .hclk = 24000000, |
113 | }; | 145 | .set_pwr = t7l66xb_mmc_pwr, |
114 | 146 | .set_clk_div = t7l66xb_mmc_clk_div, | |
115 | static const struct resource t7l66xb_mmc_resources[] = { | ||
116 | { | ||
117 | .start = 0x800, | ||
118 | .end = 0x9ff, | ||
119 | .flags = IORESOURCE_MEM, | ||
120 | }, | ||
121 | { | ||
122 | .start = 0x200, | ||
123 | .end = 0x2ff, | ||
124 | .flags = IORESOURCE_MEM, | ||
125 | }, | ||
126 | { | ||
127 | .start = IRQ_T7L66XB_MMC, | ||
128 | .end = IRQ_T7L66XB_MMC, | ||
129 | .flags = IORESOURCE_IRQ, | ||
130 | }, | ||
131 | }; | 147 | }; |
132 | 148 | ||
133 | static const struct resource t7l66xb_nand_resources[] = { | 149 | static const struct resource t7l66xb_nand_resources[] = { |
@@ -282,6 +298,9 @@ static int t7l66xb_resume(struct platform_device *dev) | |||
282 | if (pdata && pdata->resume) | 298 | if (pdata && pdata->resume) |
283 | pdata->resume(dev); | 299 | pdata->resume(dev); |
284 | 300 | ||
301 | tmio_core_mmc_enable(t7l66xb->scr + 0x200, 0, | ||
302 | t7l66xb_mmc_resources[0].start & 0xfffe); | ||
303 | |||
285 | return 0; | 304 | return 0; |
286 | } | 305 | } |
287 | #else | 306 | #else |
diff --git a/drivers/mfd/tc6387xb.c b/drivers/mfd/tc6387xb.c index 3280ab33f88..5c7f04343d5 100644 --- a/drivers/mfd/tc6387xb.c +++ b/drivers/mfd/tc6387xb.c | |||
@@ -22,28 +22,52 @@ enum { | |||
22 | TC6387XB_CELL_MMC, | 22 | TC6387XB_CELL_MMC, |
23 | }; | 23 | }; |
24 | 24 | ||
25 | struct tc6387xb { | ||
26 | void __iomem *scr; | ||
27 | struct clk *clk32k; | ||
28 | struct resource rscr; | ||
29 | }; | ||
30 | |||
31 | static struct resource tc6387xb_mmc_resources[] = { | ||
32 | { | ||
33 | .start = 0x800, | ||
34 | .end = 0x9ff, | ||
35 | .flags = IORESOURCE_MEM, | ||
36 | }, | ||
37 | { | ||
38 | .start = 0, | ||
39 | .end = 0, | ||
40 | .flags = IORESOURCE_IRQ, | ||
41 | }, | ||
42 | }; | ||
43 | |||
44 | /*--------------------------------------------------------------------------*/ | ||
45 | |||
25 | #ifdef CONFIG_PM | 46 | #ifdef CONFIG_PM |
26 | static int tc6387xb_suspend(struct platform_device *dev, pm_message_t state) | 47 | static int tc6387xb_suspend(struct platform_device *dev, pm_message_t state) |
27 | { | 48 | { |
28 | struct clk *clk32k = platform_get_drvdata(dev); | 49 | struct tc6387xb *tc6387xb = platform_get_drvdata(dev); |
29 | struct tc6387xb_platform_data *pdata = dev->dev.platform_data; | 50 | struct tc6387xb_platform_data *pdata = dev->dev.platform_data; |
30 | 51 | ||
31 | if (pdata && pdata->suspend) | 52 | if (pdata && pdata->suspend) |
32 | pdata->suspend(dev); | 53 | pdata->suspend(dev); |
33 | clk_disable(clk32k); | 54 | clk_disable(tc6387xb->clk32k); |
34 | 55 | ||
35 | return 0; | 56 | return 0; |
36 | } | 57 | } |
37 | 58 | ||
38 | static int tc6387xb_resume(struct platform_device *dev) | 59 | static int tc6387xb_resume(struct platform_device *dev) |
39 | { | 60 | { |
40 | struct clk *clk32k = platform_get_drvdata(dev); | 61 | struct tc6387xb *tc6387xb = platform_get_drvdata(dev); |
41 | struct tc6387xb_platform_data *pdata = dev->dev.platform_data; | 62 | struct tc6387xb_platform_data *pdata = dev->dev.platform_data; |
42 | 63 | ||
43 | clk_enable(clk32k); | 64 | clk_enable(tc6387xb->clk32k); |
44 | if (pdata && pdata->resume) | 65 | if (pdata && pdata->resume) |
45 | pdata->resume(dev); | 66 | pdata->resume(dev); |
46 | 67 | ||
68 | tmio_core_mmc_resume(tc6387xb->scr + 0x200, 0, | ||
69 | tc6387xb_mmc_resources[0].start & 0xfffe); | ||
70 | |||
47 | return 0; | 71 | return 0; |
48 | } | 72 | } |
49 | #else | 73 | #else |
@@ -53,12 +77,32 @@ static int tc6387xb_resume(struct platform_device *dev) | |||
53 | 77 | ||
54 | /*--------------------------------------------------------------------------*/ | 78 | /*--------------------------------------------------------------------------*/ |
55 | 79 | ||
80 | static void tc6387xb_mmc_pwr(struct platform_device *mmc, int state) | ||
81 | { | ||
82 | struct platform_device *dev = to_platform_device(mmc->dev.parent); | ||
83 | struct tc6387xb *tc6387xb = platform_get_drvdata(dev); | ||
84 | |||
85 | tmio_core_mmc_pwr(tc6387xb->scr + 0x200, 0, state); | ||
86 | } | ||
87 | |||
88 | static void tc6387xb_mmc_clk_div(struct platform_device *mmc, int state) | ||
89 | { | ||
90 | struct platform_device *dev = to_platform_device(mmc->dev.parent); | ||
91 | struct tc6387xb *tc6387xb = platform_get_drvdata(dev); | ||
92 | |||
93 | tmio_core_mmc_clk_div(tc6387xb->scr + 0x200, 0, state); | ||
94 | } | ||
95 | |||
96 | |||
56 | static int tc6387xb_mmc_enable(struct platform_device *mmc) | 97 | static int tc6387xb_mmc_enable(struct platform_device *mmc) |
57 | { | 98 | { |
58 | struct platform_device *dev = to_platform_device(mmc->dev.parent); | 99 | struct platform_device *dev = to_platform_device(mmc->dev.parent); |
59 | struct clk *clk32k = platform_get_drvdata(dev); | 100 | struct tc6387xb *tc6387xb = platform_get_drvdata(dev); |
60 | 101 | ||
61 | clk_enable(clk32k); | 102 | clk_enable(tc6387xb->clk32k); |
103 | |||
104 | tmio_core_mmc_enable(tc6387xb->scr + 0x200, 0, | ||
105 | tc6387xb_mmc_resources[0].start & 0xfffe); | ||
62 | 106 | ||
63 | return 0; | 107 | return 0; |
64 | } | 108 | } |
@@ -66,36 +110,20 @@ static int tc6387xb_mmc_enable(struct platform_device *mmc) | |||
66 | static int tc6387xb_mmc_disable(struct platform_device *mmc) | 110 | static int tc6387xb_mmc_disable(struct platform_device *mmc) |
67 | { | 111 | { |
68 | struct platform_device *dev = to_platform_device(mmc->dev.parent); | 112 | struct platform_device *dev = to_platform_device(mmc->dev.parent); |
69 | struct clk *clk32k = platform_get_drvdata(dev); | 113 | struct tc6387xb *tc6387xb = platform_get_drvdata(dev); |
70 | 114 | ||
71 | clk_disable(clk32k); | 115 | clk_disable(tc6387xb->clk32k); |
72 | 116 | ||
73 | return 0; | 117 | return 0; |
74 | } | 118 | } |
75 | 119 | ||
76 | /*--------------------------------------------------------------------------*/ | ||
77 | |||
78 | static struct tmio_mmc_data tc6387xb_mmc_data = { | 120 | static struct tmio_mmc_data tc6387xb_mmc_data = { |
79 | .hclk = 24000000, | 121 | .hclk = 24000000, |
122 | .set_pwr = tc6387xb_mmc_pwr, | ||
123 | .set_clk_div = tc6387xb_mmc_clk_div, | ||
80 | }; | 124 | }; |
81 | 125 | ||
82 | static struct resource tc6387xb_mmc_resources[] = { | 126 | /*--------------------------------------------------------------------------*/ |
83 | { | ||
84 | .start = 0x800, | ||
85 | .end = 0x9ff, | ||
86 | .flags = IORESOURCE_MEM, | ||
87 | }, | ||
88 | { | ||
89 | .start = 0x200, | ||
90 | .end = 0x2ff, | ||
91 | .flags = IORESOURCE_MEM, | ||
92 | }, | ||
93 | { | ||
94 | .start = 0, | ||
95 | .end = 0, | ||
96 | .flags = IORESOURCE_IRQ, | ||
97 | }, | ||
98 | }; | ||
99 | 127 | ||
100 | static struct mfd_cell tc6387xb_cells[] = { | 128 | static struct mfd_cell tc6387xb_cells[] = { |
101 | [TC6387XB_CELL_MMC] = { | 129 | [TC6387XB_CELL_MMC] = { |
@@ -111,8 +139,9 @@ static struct mfd_cell tc6387xb_cells[] = { | |||
111 | static int tc6387xb_probe(struct platform_device *dev) | 139 | static int tc6387xb_probe(struct platform_device *dev) |
112 | { | 140 | { |
113 | struct tc6387xb_platform_data *pdata = dev->dev.platform_data; | 141 | struct tc6387xb_platform_data *pdata = dev->dev.platform_data; |
114 | struct resource *iomem; | 142 | struct resource *iomem, *rscr; |
115 | struct clk *clk32k; | 143 | struct clk *clk32k; |
144 | struct tc6387xb *tc6387xb; | ||
116 | int irq, ret; | 145 | int irq, ret; |
117 | 146 | ||
118 | iomem = platform_get_resource(dev, IORESOURCE_MEM, 0); | 147 | iomem = platform_get_resource(dev, IORESOURCE_MEM, 0); |
@@ -120,18 +149,40 @@ static int tc6387xb_probe(struct platform_device *dev) | |||
120 | return -EINVAL; | 149 | return -EINVAL; |
121 | } | 150 | } |
122 | 151 | ||
152 | tc6387xb = kzalloc(sizeof *tc6387xb, GFP_KERNEL); | ||
153 | if (!tc6387xb) | ||
154 | return -ENOMEM; | ||
155 | |||
123 | ret = platform_get_irq(dev, 0); | 156 | ret = platform_get_irq(dev, 0); |
124 | if (ret >= 0) | 157 | if (ret >= 0) |
125 | irq = ret; | 158 | irq = ret; |
126 | else | 159 | else |
127 | goto err_resource; | 160 | goto err_no_irq; |
128 | 161 | ||
129 | clk32k = clk_get(&dev->dev, "CLK_CK32K"); | 162 | clk32k = clk_get(&dev->dev, "CLK_CK32K"); |
130 | if (IS_ERR(clk32k)) { | 163 | if (IS_ERR(clk32k)) { |
131 | ret = PTR_ERR(clk32k); | 164 | ret = PTR_ERR(clk32k); |
165 | goto err_no_clk; | ||
166 | } | ||
167 | |||
168 | rscr = &tc6387xb->rscr; | ||
169 | rscr->name = "tc6387xb-core"; | ||
170 | rscr->start = iomem->start; | ||
171 | rscr->end = iomem->start + 0xff; | ||
172 | rscr->flags = IORESOURCE_MEM; | ||
173 | |||
174 | ret = request_resource(iomem, rscr); | ||
175 | if (ret) | ||
132 | goto err_resource; | 176 | goto err_resource; |
177 | |||
178 | tc6387xb->scr = ioremap(rscr->start, rscr->end - rscr->start + 1); | ||
179 | if (!tc6387xb->scr) { | ||
180 | ret = -ENOMEM; | ||
181 | goto err_ioremap; | ||
133 | } | 182 | } |
134 | platform_set_drvdata(dev, clk32k); | 183 | |
184 | tc6387xb->clk32k = clk32k; | ||
185 | platform_set_drvdata(dev, tc6387xb); | ||
135 | 186 | ||
136 | if (pdata && pdata->enable) | 187 | if (pdata && pdata->enable) |
137 | pdata->enable(dev); | 188 | pdata->enable(dev); |
@@ -149,8 +200,13 @@ static int tc6387xb_probe(struct platform_device *dev) | |||
149 | if (!ret) | 200 | if (!ret) |
150 | return 0; | 201 | return 0; |
151 | 202 | ||
152 | clk_put(clk32k); | 203 | err_ioremap: |
204 | release_resource(&tc6387xb->rscr); | ||
153 | err_resource: | 205 | err_resource: |
206 | clk_put(clk32k); | ||
207 | err_no_clk: | ||
208 | err_no_irq: | ||
209 | kfree(tc6387xb); | ||
154 | return ret; | 210 | return ret; |
155 | } | 211 | } |
156 | 212 | ||
@@ -195,3 +251,4 @@ MODULE_DESCRIPTION("Toshiba TC6387XB core driver"); | |||
195 | MODULE_LICENSE("GPL v2"); | 251 | MODULE_LICENSE("GPL v2"); |
196 | MODULE_AUTHOR("Ian Molton"); | 252 | MODULE_AUTHOR("Ian Molton"); |
197 | MODULE_ALIAS("platform:tc6387xb"); | 253 | MODULE_ALIAS("platform:tc6387xb"); |
254 | |||
diff --git a/drivers/mfd/tc6393xb.c b/drivers/mfd/tc6393xb.c index 1429a7341a9..4bc5a08a2b0 100644 --- a/drivers/mfd/tc6393xb.c +++ b/drivers/mfd/tc6393xb.c | |||
@@ -136,10 +136,6 @@ static int tc6393xb_nand_enable(struct platform_device *nand) | |||
136 | return 0; | 136 | return 0; |
137 | } | 137 | } |
138 | 138 | ||
139 | static struct tmio_mmc_data tc6393xb_mmc_data = { | ||
140 | .hclk = 24000000, | ||
141 | }; | ||
142 | |||
143 | static struct resource __devinitdata tc6393xb_nand_resources[] = { | 139 | static struct resource __devinitdata tc6393xb_nand_resources[] = { |
144 | { | 140 | { |
145 | .start = 0x1000, | 141 | .start = 0x1000, |
@@ -165,11 +161,6 @@ static struct resource __devinitdata tc6393xb_mmc_resources[] = { | |||
165 | .flags = IORESOURCE_MEM, | 161 | .flags = IORESOURCE_MEM, |
166 | }, | 162 | }, |
167 | { | 163 | { |
168 | .start = 0x200, | ||
169 | .end = 0x2ff, | ||
170 | .flags = IORESOURCE_MEM, | ||
171 | }, | ||
172 | { | ||
173 | .start = IRQ_TC6393_MMC, | 164 | .start = IRQ_TC6393_MMC, |
174 | .end = IRQ_TC6393_MMC, | 165 | .end = IRQ_TC6393_MMC, |
175 | .flags = IORESOURCE_IRQ, | 166 | .flags = IORESOURCE_IRQ, |
@@ -346,6 +337,50 @@ int tc6393xb_lcd_mode(struct platform_device *fb, | |||
346 | } | 337 | } |
347 | EXPORT_SYMBOL(tc6393xb_lcd_mode); | 338 | EXPORT_SYMBOL(tc6393xb_lcd_mode); |
348 | 339 | ||
340 | static int tc6393xb_mmc_enable(struct platform_device *mmc) | ||
341 | { | ||
342 | struct platform_device *dev = to_platform_device(mmc->dev.parent); | ||
343 | struct tc6393xb *tc6393xb = platform_get_drvdata(dev); | ||
344 | |||
345 | tmio_core_mmc_enable(tc6393xb->scr + 0x200, 0, | ||
346 | tc6393xb_mmc_resources[0].start & 0xfffe); | ||
347 | |||
348 | return 0; | ||
349 | } | ||
350 | |||
351 | static int tc6393xb_mmc_resume(struct platform_device *mmc) | ||
352 | { | ||
353 | struct platform_device *dev = to_platform_device(mmc->dev.parent); | ||
354 | struct tc6393xb *tc6393xb = platform_get_drvdata(dev); | ||
355 | |||
356 | tmio_core_mmc_resume(tc6393xb->scr + 0x200, 0, | ||
357 | tc6393xb_mmc_resources[0].start & 0xfffe); | ||
358 | |||
359 | return 0; | ||
360 | } | ||
361 | |||
362 | static void tc6393xb_mmc_pwr(struct platform_device *mmc, int state) | ||
363 | { | ||
364 | struct platform_device *dev = to_platform_device(mmc->dev.parent); | ||
365 | struct tc6393xb *tc6393xb = platform_get_drvdata(dev); | ||
366 | |||
367 | tmio_core_mmc_pwr(tc6393xb->scr + 0x200, 0, state); | ||
368 | } | ||
369 | |||
370 | static void tc6393xb_mmc_clk_div(struct platform_device *mmc, int state) | ||
371 | { | ||
372 | struct platform_device *dev = to_platform_device(mmc->dev.parent); | ||
373 | struct tc6393xb *tc6393xb = platform_get_drvdata(dev); | ||
374 | |||
375 | tmio_core_mmc_clk_div(tc6393xb->scr + 0x200, 0, state); | ||
376 | } | ||
377 | |||
378 | static struct tmio_mmc_data tc6393xb_mmc_data = { | ||
379 | .hclk = 24000000, | ||
380 | .set_pwr = tc6393xb_mmc_pwr, | ||
381 | .set_clk_div = tc6393xb_mmc_clk_div, | ||
382 | }; | ||
383 | |||
349 | static struct mfd_cell __devinitdata tc6393xb_cells[] = { | 384 | static struct mfd_cell __devinitdata tc6393xb_cells[] = { |
350 | [TC6393XB_CELL_NAND] = { | 385 | [TC6393XB_CELL_NAND] = { |
351 | .name = "tmio-nand", | 386 | .name = "tmio-nand", |
@@ -355,6 +390,8 @@ static struct mfd_cell __devinitdata tc6393xb_cells[] = { | |||
355 | }, | 390 | }, |
356 | [TC6393XB_CELL_MMC] = { | 391 | [TC6393XB_CELL_MMC] = { |
357 | .name = "tmio-mmc", | 392 | .name = "tmio-mmc", |
393 | .enable = tc6393xb_mmc_enable, | ||
394 | .resume = tc6393xb_mmc_resume, | ||
358 | .driver_data = &tc6393xb_mmc_data, | 395 | .driver_data = &tc6393xb_mmc_data, |
359 | .num_resources = ARRAY_SIZE(tc6393xb_mmc_resources), | 396 | .num_resources = ARRAY_SIZE(tc6393xb_mmc_resources), |
360 | .resources = tc6393xb_mmc_resources, | 397 | .resources = tc6393xb_mmc_resources, |
@@ -836,3 +873,4 @@ MODULE_LICENSE("GPL v2"); | |||
836 | MODULE_AUTHOR("Ian Molton, Dmitry Baryshkov and Dirk Opfer"); | 873 | MODULE_AUTHOR("Ian Molton, Dmitry Baryshkov and Dirk Opfer"); |
837 | MODULE_DESCRIPTION("tc6393xb Toshiba Mobile IO Controller"); | 874 | MODULE_DESCRIPTION("tc6393xb Toshiba Mobile IO Controller"); |
838 | MODULE_ALIAS("platform:tc6393xb"); | 875 | MODULE_ALIAS("platform:tc6393xb"); |
876 | |||
diff --git a/drivers/mfd/tmio_core.c b/drivers/mfd/tmio_core.c new file mode 100644 index 00000000000..eddc19ae464 --- /dev/null +++ b/drivers/mfd/tmio_core.c | |||
@@ -0,0 +1,52 @@ | |||
1 | /* | ||
2 | * Copyright(c) 2009 Ian Molton <spyro@f2s.com> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | |||
9 | #include <linux/mfd/tmio.h> | ||
10 | |||
11 | int tmio_core_mmc_enable(void __iomem *cnf, int shift, unsigned long base) | ||
12 | { | ||
13 | /* Enable the MMC/SD Control registers */ | ||
14 | sd_config_write16(cnf, shift, CNF_CMD, SDCREN); | ||
15 | sd_config_write32(cnf, shift, CNF_CTL_BASE, base & 0xfffe); | ||
16 | |||
17 | /* Disable SD power during suspend */ | ||
18 | sd_config_write8(cnf, shift, CNF_PWR_CTL_3, 0x01); | ||
19 | |||
20 | /* The below is required but why? FIXME */ | ||
21 | sd_config_write8(cnf, shift, CNF_STOP_CLK_CTL, 0x1f); | ||
22 | |||
23 | /* Power down SD bus */ | ||
24 | sd_config_write8(cnf, shift, CNF_PWR_CTL_2, 0x00); | ||
25 | |||
26 | return 0; | ||
27 | } | ||
28 | EXPORT_SYMBOL(tmio_core_mmc_enable); | ||
29 | |||
30 | int tmio_core_mmc_resume(void __iomem *cnf, int shift, unsigned long base) | ||
31 | { | ||
32 | |||
33 | /* Enable the MMC/SD Control registers */ | ||
34 | sd_config_write16(cnf, shift, CNF_CMD, SDCREN); | ||
35 | sd_config_write32(cnf, shift, CNF_CTL_BASE, base & 0xfffe); | ||
36 | |||
37 | return 0; | ||
38 | } | ||
39 | EXPORT_SYMBOL(tmio_core_mmc_resume); | ||
40 | |||
41 | void tmio_core_mmc_pwr(void __iomem *cnf, int shift, int state) | ||
42 | { | ||
43 | sd_config_write8(cnf, shift, CNF_PWR_CTL_2, state ? 0x02 : 0x00); | ||
44 | } | ||
45 | EXPORT_SYMBOL(tmio_core_mmc_pwr); | ||
46 | |||
47 | void tmio_core_mmc_clk_div(void __iomem *cnf, int shift, int state) | ||
48 | { | ||
49 | sd_config_write8(cnf, shift, CNF_SD_CLK_MODE, state ? 1 : 0); | ||
50 | } | ||
51 | EXPORT_SYMBOL(tmio_core_mmc_clk_div); | ||
52 | |||
diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c index 20d29bafc9f..9df9a5ad38f 100644 --- a/drivers/mfd/twl4030-irq.c +++ b/drivers/mfd/twl4030-irq.c | |||
@@ -568,12 +568,12 @@ static void twl4030_sih_do_edge(struct work_struct *work) | |||
568 | 568 | ||
569 | bytes[byte] &= ~(0x03 << off); | 569 | bytes[byte] &= ~(0x03 << off); |
570 | 570 | ||
571 | spin_lock_irq(&d->lock); | 571 | raw_spin_lock_irq(&d->lock); |
572 | if (d->status & IRQ_TYPE_EDGE_RISING) | 572 | if (d->status & IRQ_TYPE_EDGE_RISING) |
573 | bytes[byte] |= BIT(off + 1); | 573 | bytes[byte] |= BIT(off + 1); |
574 | if (d->status & IRQ_TYPE_EDGE_FALLING) | 574 | if (d->status & IRQ_TYPE_EDGE_FALLING) |
575 | bytes[byte] |= BIT(off + 0); | 575 | bytes[byte] |= BIT(off + 0); |
576 | spin_unlock_irq(&d->lock); | 576 | raw_spin_unlock_irq(&d->lock); |
577 | 577 | ||
578 | edge_change &= ~BIT(i); | 578 | edge_change &= ~BIT(i); |
579 | } | 579 | } |
diff --git a/drivers/mfd/wm8350-core.c b/drivers/mfd/wm8350-core.c index 8485a701806..9a970bd6877 100644 --- a/drivers/mfd/wm8350-core.c +++ b/drivers/mfd/wm8350-core.c | |||
@@ -134,8 +134,7 @@ static inline int is_reg_locked(struct wm8350 *wm8350, u8 reg) | |||
134 | wm8350->reg_cache[WM8350_SECURITY] == WM8350_UNLOCK_KEY) | 134 | wm8350->reg_cache[WM8350_SECURITY] == WM8350_UNLOCK_KEY) |
135 | return 0; | 135 | return 0; |
136 | 136 | ||
137 | if ((reg == WM8350_GPIO_CONFIGURATION_I_O) || | 137 | if ((reg >= WM8350_GPIO_FUNCTION_SELECT_1 && |
138 | (reg >= WM8350_GPIO_FUNCTION_SELECT_1 && | ||
139 | reg <= WM8350_GPIO_FUNCTION_SELECT_4) || | 138 | reg <= WM8350_GPIO_FUNCTION_SELECT_4) || |
140 | (reg >= WM8350_BATTERY_CHARGER_CONTROL_1 && | 139 | (reg >= WM8350_BATTERY_CHARGER_CONTROL_1 && |
141 | reg <= WM8350_BATTERY_CHARGER_CONTROL_3)) | 140 | reg <= WM8350_BATTERY_CHARGER_CONTROL_3)) |
diff --git a/drivers/mfd/wm8350-irq.c b/drivers/mfd/wm8350-irq.c index c8df547c474..9025f29e270 100644 --- a/drivers/mfd/wm8350-irq.c +++ b/drivers/mfd/wm8350-irq.c | |||
@@ -434,7 +434,7 @@ int wm8350_register_irq(struct wm8350 *wm8350, int irq, | |||
434 | irq_handler_t handler, unsigned long flags, | 434 | irq_handler_t handler, unsigned long flags, |
435 | const char *name, void *data) | 435 | const char *name, void *data) |
436 | { | 436 | { |
437 | if (irq < 0 || irq > WM8350_NUM_IRQ || !handler) | 437 | if (irq < 0 || irq >= WM8350_NUM_IRQ || !handler) |
438 | return -EINVAL; | 438 | return -EINVAL; |
439 | 439 | ||
440 | if (wm8350->irq[irq].handler) | 440 | if (wm8350->irq[irq].handler) |
@@ -453,7 +453,7 @@ EXPORT_SYMBOL_GPL(wm8350_register_irq); | |||
453 | 453 | ||
454 | int wm8350_free_irq(struct wm8350 *wm8350, int irq) | 454 | int wm8350_free_irq(struct wm8350 *wm8350, int irq) |
455 | { | 455 | { |
456 | if (irq < 0 || irq > WM8350_NUM_IRQ) | 456 | if (irq < 0 || irq >= WM8350_NUM_IRQ) |
457 | return -EINVAL; | 457 | return -EINVAL; |
458 | 458 | ||
459 | wm8350_mask_irq(wm8350, irq); | 459 | wm8350_mask_irq(wm8350, irq); |
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index 85f0e8cd875..1f552c6e757 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c | |||
@@ -85,7 +85,14 @@ static void mmc_blk_put(struct mmc_blk_data *md) | |||
85 | mutex_lock(&open_lock); | 85 | mutex_lock(&open_lock); |
86 | md->usage--; | 86 | md->usage--; |
87 | if (md->usage == 0) { | 87 | if (md->usage == 0) { |
88 | int devmaj = MAJOR(disk_devt(md->disk)); | ||
88 | int devidx = MINOR(disk_devt(md->disk)) >> MMC_SHIFT; | 89 | int devidx = MINOR(disk_devt(md->disk)) >> MMC_SHIFT; |
90 | |||
91 | if (!devmaj) | ||
92 | devidx = md->disk->first_minor >> MMC_SHIFT; | ||
93 | |||
94 | blk_cleanup_queue(md->queue.queue); | ||
95 | |||
89 | __clear_bit(devidx, dev_use); | 96 | __clear_bit(devidx, dev_use); |
90 | 97 | ||
91 | put_disk(md->disk); | 98 | put_disk(md->disk); |
@@ -613,6 +620,7 @@ static int mmc_blk_probe(struct mmc_card *card) | |||
613 | return 0; | 620 | return 0; |
614 | 621 | ||
615 | out: | 622 | out: |
623 | mmc_cleanup_queue(&md->queue); | ||
616 | mmc_blk_put(md); | 624 | mmc_blk_put(md); |
617 | 625 | ||
618 | return err; | 626 | return err; |
diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c index 49e582356c6..c5a7a855f4b 100644 --- a/drivers/mmc/card/queue.c +++ b/drivers/mmc/card/queue.c | |||
@@ -90,9 +90,10 @@ static void mmc_request(struct request_queue *q) | |||
90 | struct request *req; | 90 | struct request *req; |
91 | 91 | ||
92 | if (!mq) { | 92 | if (!mq) { |
93 | printk(KERN_ERR "MMC: killing requests for dead queue\n"); | 93 | while ((req = blk_fetch_request(q)) != NULL) { |
94 | while ((req = blk_fetch_request(q)) != NULL) | 94 | req->cmd_flags |= REQ_QUIET; |
95 | __blk_end_request_all(req, -EIO); | 95 | __blk_end_request_all(req, -EIO); |
96 | } | ||
96 | return; | 97 | return; |
97 | } | 98 | } |
98 | 99 | ||
@@ -223,17 +224,18 @@ void mmc_cleanup_queue(struct mmc_queue *mq) | |||
223 | struct request_queue *q = mq->queue; | 224 | struct request_queue *q = mq->queue; |
224 | unsigned long flags; | 225 | unsigned long flags; |
225 | 226 | ||
226 | /* Mark that we should start throwing out stragglers */ | ||
227 | spin_lock_irqsave(q->queue_lock, flags); | ||
228 | q->queuedata = NULL; | ||
229 | spin_unlock_irqrestore(q->queue_lock, flags); | ||
230 | |||
231 | /* Make sure the queue isn't suspended, as that will deadlock */ | 227 | /* Make sure the queue isn't suspended, as that will deadlock */ |
232 | mmc_queue_resume(mq); | 228 | mmc_queue_resume(mq); |
233 | 229 | ||
234 | /* Then terminate our worker thread */ | 230 | /* Then terminate our worker thread */ |
235 | kthread_stop(mq->thread); | 231 | kthread_stop(mq->thread); |
236 | 232 | ||
233 | /* Empty the queue */ | ||
234 | spin_lock_irqsave(q->queue_lock, flags); | ||
235 | q->queuedata = NULL; | ||
236 | blk_start_queue(q); | ||
237 | spin_unlock_irqrestore(q->queue_lock, flags); | ||
238 | |||
237 | if (mq->bounce_sg) | 239 | if (mq->bounce_sg) |
238 | kfree(mq->bounce_sg); | 240 | kfree(mq->bounce_sg); |
239 | mq->bounce_sg = NULL; | 241 | mq->bounce_sg = NULL; |
@@ -245,8 +247,6 @@ void mmc_cleanup_queue(struct mmc_queue *mq) | |||
245 | kfree(mq->bounce_buf); | 247 | kfree(mq->bounce_buf); |
246 | mq->bounce_buf = NULL; | 248 | mq->bounce_buf = NULL; |
247 | 249 | ||
248 | blk_cleanup_queue(mq->queue); | ||
249 | |||
250 | mq->card = NULL; | 250 | mq->card = NULL; |
251 | } | 251 | } |
252 | EXPORT_SYMBOL(mmc_cleanup_queue); | 252 | EXPORT_SYMBOL(mmc_cleanup_queue); |
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index c11189446a1..0eac6c81490 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c | |||
@@ -207,7 +207,7 @@ static int mmc_read_ext_csd(struct mmc_card *card) | |||
207 | } | 207 | } |
208 | 208 | ||
209 | card->ext_csd.rev = ext_csd[EXT_CSD_REV]; | 209 | card->ext_csd.rev = ext_csd[EXT_CSD_REV]; |
210 | if (card->ext_csd.rev > 3) { | 210 | if (card->ext_csd.rev > 5) { |
211 | printk(KERN_ERR "%s: unrecognised EXT_CSD structure " | 211 | printk(KERN_ERR "%s: unrecognised EXT_CSD structure " |
212 | "version %d\n", mmc_hostname(card->host), | 212 | "version %d\n", mmc_hostname(card->host), |
213 | card->ext_csd.rev); | 213 | card->ext_csd.rev); |
diff --git a/drivers/mmc/host/tmio_mmc.c b/drivers/mmc/host/tmio_mmc.c index 7cccc852374..e22c3fa3516 100644 --- a/drivers/mmc/host/tmio_mmc.c +++ b/drivers/mmc/host/tmio_mmc.c | |||
@@ -46,7 +46,9 @@ static void tmio_mmc_set_clock(struct tmio_mmc_host *host, int new_clock) | |||
46 | clk |= 0x100; | 46 | clk |= 0x100; |
47 | } | 47 | } |
48 | 48 | ||
49 | sd_config_write8(host, CNF_SD_CLK_MODE, clk >> 22); | 49 | if (host->set_clk_div) |
50 | host->set_clk_div(host->pdev, (clk>>22) & 1); | ||
51 | |||
50 | sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & 0x1ff); | 52 | sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & 0x1ff); |
51 | } | 53 | } |
52 | 54 | ||
@@ -427,12 +429,13 @@ static void tmio_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | |||
427 | /* Power sequence - OFF -> ON -> UP */ | 429 | /* Power sequence - OFF -> ON -> UP */ |
428 | switch (ios->power_mode) { | 430 | switch (ios->power_mode) { |
429 | case MMC_POWER_OFF: /* power down SD bus */ | 431 | case MMC_POWER_OFF: /* power down SD bus */ |
430 | sd_config_write8(host, CNF_PWR_CTL_2, 0x00); | 432 | if (host->set_pwr) |
433 | host->set_pwr(host->pdev, 0); | ||
431 | tmio_mmc_clk_stop(host); | 434 | tmio_mmc_clk_stop(host); |
432 | break; | 435 | break; |
433 | case MMC_POWER_ON: /* power up SD bus */ | 436 | case MMC_POWER_ON: /* power up SD bus */ |
434 | 437 | if (host->set_pwr) | |
435 | sd_config_write8(host, CNF_PWR_CTL_2, 0x02); | 438 | host->set_pwr(host->pdev, 1); |
436 | break; | 439 | break; |
437 | case MMC_POWER_UP: /* start bus clock */ | 440 | case MMC_POWER_UP: /* start bus clock */ |
438 | tmio_mmc_clk_start(host); | 441 | tmio_mmc_clk_start(host); |
@@ -485,21 +488,15 @@ static int tmio_mmc_resume(struct platform_device *dev) | |||
485 | { | 488 | { |
486 | struct mfd_cell *cell = (struct mfd_cell *)dev->dev.platform_data; | 489 | struct mfd_cell *cell = (struct mfd_cell *)dev->dev.platform_data; |
487 | struct mmc_host *mmc = platform_get_drvdata(dev); | 490 | struct mmc_host *mmc = platform_get_drvdata(dev); |
488 | struct tmio_mmc_host *host = mmc_priv(mmc); | ||
489 | int ret = 0; | 491 | int ret = 0; |
490 | 492 | ||
491 | /* Tell the MFD core we are ready to be enabled */ | 493 | /* Tell the MFD core we are ready to be enabled */ |
492 | if (cell->enable) { | 494 | if (cell->resume) { |
493 | ret = cell->enable(dev); | 495 | ret = cell->resume(dev); |
494 | if (ret) | 496 | if (ret) |
495 | goto out; | 497 | goto out; |
496 | } | 498 | } |
497 | 499 | ||
498 | /* Enable the MMC/SD Control registers */ | ||
499 | sd_config_write16(host, CNF_CMD, SDCREN); | ||
500 | sd_config_write32(host, CNF_CTL_BASE, | ||
501 | (dev->resource[0].start >> host->bus_shift) & 0xfffe); | ||
502 | |||
503 | mmc_resume_host(mmc); | 500 | mmc_resume_host(mmc); |
504 | 501 | ||
505 | out: | 502 | out: |
@@ -514,17 +511,16 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev) | |||
514 | { | 511 | { |
515 | struct mfd_cell *cell = (struct mfd_cell *)dev->dev.platform_data; | 512 | struct mfd_cell *cell = (struct mfd_cell *)dev->dev.platform_data; |
516 | struct tmio_mmc_data *pdata; | 513 | struct tmio_mmc_data *pdata; |
517 | struct resource *res_ctl, *res_cnf; | 514 | struct resource *res_ctl; |
518 | struct tmio_mmc_host *host; | 515 | struct tmio_mmc_host *host; |
519 | struct mmc_host *mmc; | 516 | struct mmc_host *mmc; |
520 | int ret = -EINVAL; | 517 | int ret = -EINVAL; |
521 | 518 | ||
522 | if (dev->num_resources != 3) | 519 | if (dev->num_resources != 2) |
523 | goto out; | 520 | goto out; |
524 | 521 | ||
525 | res_ctl = platform_get_resource(dev, IORESOURCE_MEM, 0); | 522 | res_ctl = platform_get_resource(dev, IORESOURCE_MEM, 0); |
526 | res_cnf = platform_get_resource(dev, IORESOURCE_MEM, 1); | 523 | if (!res_ctl) |
527 | if (!res_ctl || !res_cnf) | ||
528 | goto out; | 524 | goto out; |
529 | 525 | ||
530 | pdata = cell->driver_data; | 526 | pdata = cell->driver_data; |
@@ -539,8 +535,12 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev) | |||
539 | 535 | ||
540 | host = mmc_priv(mmc); | 536 | host = mmc_priv(mmc); |
541 | host->mmc = mmc; | 537 | host->mmc = mmc; |
538 | host->pdev = dev; | ||
542 | platform_set_drvdata(dev, mmc); | 539 | platform_set_drvdata(dev, mmc); |
543 | 540 | ||
541 | host->set_pwr = pdata->set_pwr; | ||
542 | host->set_clk_div = pdata->set_clk_div; | ||
543 | |||
544 | /* SD control register space size is 0x200, 0x400 for bus_shift=1 */ | 544 | /* SD control register space size is 0x200, 0x400 for bus_shift=1 */ |
545 | host->bus_shift = resource_size(res_ctl) >> 10; | 545 | host->bus_shift = resource_size(res_ctl) >> 10; |
546 | 546 | ||
@@ -548,10 +548,6 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev) | |||
548 | if (!host->ctl) | 548 | if (!host->ctl) |
549 | goto host_free; | 549 | goto host_free; |
550 | 550 | ||
551 | host->cnf = ioremap(res_cnf->start, resource_size(res_cnf)); | ||
552 | if (!host->cnf) | ||
553 | goto unmap_ctl; | ||
554 | |||
555 | mmc->ops = &tmio_mmc_ops; | 551 | mmc->ops = &tmio_mmc_ops; |
556 | mmc->caps = MMC_CAP_4_BIT_DATA; | 552 | mmc->caps = MMC_CAP_4_BIT_DATA; |
557 | mmc->f_max = pdata->hclk; | 553 | mmc->f_max = pdata->hclk; |
@@ -562,23 +558,9 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev) | |||
562 | if (cell->enable) { | 558 | if (cell->enable) { |
563 | ret = cell->enable(dev); | 559 | ret = cell->enable(dev); |
564 | if (ret) | 560 | if (ret) |
565 | goto unmap_cnf; | 561 | goto unmap_ctl; |
566 | } | 562 | } |
567 | 563 | ||
568 | /* Enable the MMC/SD Control registers */ | ||
569 | sd_config_write16(host, CNF_CMD, SDCREN); | ||
570 | sd_config_write32(host, CNF_CTL_BASE, | ||
571 | (dev->resource[0].start >> host->bus_shift) & 0xfffe); | ||
572 | |||
573 | /* Disable SD power during suspend */ | ||
574 | sd_config_write8(host, CNF_PWR_CTL_3, 0x01); | ||
575 | |||
576 | /* The below is required but why? FIXME */ | ||
577 | sd_config_write8(host, CNF_STOP_CLK_CTL, 0x1f); | ||
578 | |||
579 | /* Power down SD bus*/ | ||
580 | sd_config_write8(host, CNF_PWR_CTL_2, 0x00); | ||
581 | |||
582 | tmio_mmc_clk_stop(host); | 564 | tmio_mmc_clk_stop(host); |
583 | reset(host); | 565 | reset(host); |
584 | 566 | ||
@@ -586,14 +568,14 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev) | |||
586 | if (ret >= 0) | 568 | if (ret >= 0) |
587 | host->irq = ret; | 569 | host->irq = ret; |
588 | else | 570 | else |
589 | goto unmap_cnf; | 571 | goto unmap_ctl; |
590 | 572 | ||
591 | disable_mmc_irqs(host, TMIO_MASK_ALL); | 573 | disable_mmc_irqs(host, TMIO_MASK_ALL); |
592 | 574 | ||
593 | ret = request_irq(host->irq, tmio_mmc_irq, IRQF_DISABLED | | 575 | ret = request_irq(host->irq, tmio_mmc_irq, IRQF_DISABLED | |
594 | IRQF_TRIGGER_FALLING, dev_name(&dev->dev), host); | 576 | IRQF_TRIGGER_FALLING, dev_name(&dev->dev), host); |
595 | if (ret) | 577 | if (ret) |
596 | goto unmap_cnf; | 578 | goto unmap_ctl; |
597 | 579 | ||
598 | mmc_add_host(mmc); | 580 | mmc_add_host(mmc); |
599 | 581 | ||
@@ -605,8 +587,6 @@ static int __devinit tmio_mmc_probe(struct platform_device *dev) | |||
605 | 587 | ||
606 | return 0; | 588 | return 0; |
607 | 589 | ||
608 | unmap_cnf: | ||
609 | iounmap(host->cnf); | ||
610 | unmap_ctl: | 590 | unmap_ctl: |
611 | iounmap(host->ctl); | 591 | iounmap(host->ctl); |
612 | host_free: | 592 | host_free: |
@@ -626,7 +606,6 @@ static int __devexit tmio_mmc_remove(struct platform_device *dev) | |||
626 | mmc_remove_host(mmc); | 606 | mmc_remove_host(mmc); |
627 | free_irq(host->irq, host); | 607 | free_irq(host->irq, host); |
628 | iounmap(host->ctl); | 608 | iounmap(host->ctl); |
629 | iounmap(host->cnf); | ||
630 | mmc_free_host(mmc); | 609 | mmc_free_host(mmc); |
631 | } | 610 | } |
632 | 611 | ||
diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h index 9fa99859497..692dc23363b 100644 --- a/drivers/mmc/host/tmio_mmc.h +++ b/drivers/mmc/host/tmio_mmc.h | |||
@@ -11,26 +11,6 @@ | |||
11 | 11 | ||
12 | #include <linux/highmem.h> | 12 | #include <linux/highmem.h> |
13 | 13 | ||
14 | #define CNF_CMD 0x04 | ||
15 | #define CNF_CTL_BASE 0x10 | ||
16 | #define CNF_INT_PIN 0x3d | ||
17 | #define CNF_STOP_CLK_CTL 0x40 | ||
18 | #define CNF_GCLK_CTL 0x41 | ||
19 | #define CNF_SD_CLK_MODE 0x42 | ||
20 | #define CNF_PIN_STATUS 0x44 | ||
21 | #define CNF_PWR_CTL_1 0x48 | ||
22 | #define CNF_PWR_CTL_2 0x49 | ||
23 | #define CNF_PWR_CTL_3 0x4a | ||
24 | #define CNF_CARD_DETECT_MODE 0x4c | ||
25 | #define CNF_SD_SLOT 0x50 | ||
26 | #define CNF_EXT_GCLK_CTL_1 0xf0 | ||
27 | #define CNF_EXT_GCLK_CTL_2 0xf1 | ||
28 | #define CNF_EXT_GCLK_CTL_3 0xf9 | ||
29 | #define CNF_SD_LED_EN_1 0xfa | ||
30 | #define CNF_SD_LED_EN_2 0xfe | ||
31 | |||
32 | #define SDCREN 0x2 /* Enable access to MMC CTL regs. (flag in COMMAND_REG)*/ | ||
33 | |||
34 | #define CTL_SD_CMD 0x00 | 14 | #define CTL_SD_CMD 0x00 |
35 | #define CTL_ARG_REG 0x04 | 15 | #define CTL_ARG_REG 0x04 |
36 | #define CTL_STOP_INTERNAL_ACTION 0x08 | 16 | #define CTL_STOP_INTERNAL_ACTION 0x08 |
@@ -110,7 +90,6 @@ | |||
110 | 90 | ||
111 | 91 | ||
112 | struct tmio_mmc_host { | 92 | struct tmio_mmc_host { |
113 | void __iomem *cnf; | ||
114 | void __iomem *ctl; | 93 | void __iomem *ctl; |
115 | unsigned long bus_shift; | 94 | unsigned long bus_shift; |
116 | struct mmc_command *cmd; | 95 | struct mmc_command *cmd; |
@@ -119,10 +98,16 @@ struct tmio_mmc_host { | |||
119 | struct mmc_host *mmc; | 98 | struct mmc_host *mmc; |
120 | int irq; | 99 | int irq; |
121 | 100 | ||
101 | /* Callbacks for clock / power control */ | ||
102 | void (*set_pwr)(struct platform_device *host, int state); | ||
103 | void (*set_clk_div)(struct platform_device *host, int state); | ||
104 | |||
122 | /* pio related stuff */ | 105 | /* pio related stuff */ |
123 | struct scatterlist *sg_ptr; | 106 | struct scatterlist *sg_ptr; |
124 | unsigned int sg_len; | 107 | unsigned int sg_len; |
125 | unsigned int sg_off; | 108 | unsigned int sg_off; |
109 | |||
110 | struct platform_device *pdev; | ||
126 | }; | 111 | }; |
127 | 112 | ||
128 | #include <linux/io.h> | 113 | #include <linux/io.h> |
@@ -163,25 +148,6 @@ static inline void sd_ctrl_write32(struct tmio_mmc_host *host, int addr, | |||
163 | writew(val >> 16, host->ctl + ((addr + 2) << host->bus_shift)); | 148 | writew(val >> 16, host->ctl + ((addr + 2) << host->bus_shift)); |
164 | } | 149 | } |
165 | 150 | ||
166 | static inline void sd_config_write8(struct tmio_mmc_host *host, int addr, | ||
167 | u8 val) | ||
168 | { | ||
169 | writeb(val, host->cnf + (addr << host->bus_shift)); | ||
170 | } | ||
171 | |||
172 | static inline void sd_config_write16(struct tmio_mmc_host *host, int addr, | ||
173 | u16 val) | ||
174 | { | ||
175 | writew(val, host->cnf + (addr << host->bus_shift)); | ||
176 | } | ||
177 | |||
178 | static inline void sd_config_write32(struct tmio_mmc_host *host, int addr, | ||
179 | u32 val) | ||
180 | { | ||
181 | writew(val, host->cnf + (addr << host->bus_shift)); | ||
182 | writew(val >> 16, host->cnf + ((addr + 2) << host->bus_shift)); | ||
183 | } | ||
184 | |||
185 | #include <linux/scatterlist.h> | 151 | #include <linux/scatterlist.h> |
186 | #include <linux/blkdev.h> | 152 | #include <linux/blkdev.h> |
187 | 153 | ||
diff --git a/drivers/net/3c507.c b/drivers/net/3c507.c index fbc231153e5..77cf0901a44 100644 --- a/drivers/net/3c507.c +++ b/drivers/net/3c507.c | |||
@@ -56,6 +56,7 @@ static const char version[] = | |||
56 | #include <linux/errno.h> | 56 | #include <linux/errno.h> |
57 | #include <linux/netdevice.h> | 57 | #include <linux/netdevice.h> |
58 | #include <linux/etherdevice.h> | 58 | #include <linux/etherdevice.h> |
59 | #include <linux/if_ether.h> | ||
59 | #include <linux/skbuff.h> | 60 | #include <linux/skbuff.h> |
60 | #include <linux/slab.h> | 61 | #include <linux/slab.h> |
61 | #include <linux/init.h> | 62 | #include <linux/init.h> |
@@ -734,8 +735,7 @@ static void init_82586_mem(struct net_device *dev) | |||
734 | memcpy_toio(lp->base, init_words + 5, sizeof(init_words) - 10); | 735 | memcpy_toio(lp->base, init_words + 5, sizeof(init_words) - 10); |
735 | 736 | ||
736 | /* Fill in the station address. */ | 737 | /* Fill in the station address. */ |
737 | memcpy_toio(lp->base+SA_OFFSET, dev->dev_addr, | 738 | memcpy_toio(lp->base+SA_OFFSET, dev->dev_addr, ETH_ALEN); |
738 | sizeof(dev->dev_addr)); | ||
739 | 739 | ||
740 | /* The Tx-block list is written as needed. We just set up the values. */ | 740 | /* The Tx-block list is written as needed. We just set up the values. */ |
741 | lp->tx_cmd_link = IDLELOOP + 4; | 741 | lp->tx_cmd_link = IDLELOOP + 4; |
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index e58a65391ad..dd9a09c72df 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -2346,6 +2346,7 @@ config GELIC_NET | |||
2346 | 2346 | ||
2347 | config GELIC_WIRELESS | 2347 | config GELIC_WIRELESS |
2348 | bool "PS3 Wireless support" | 2348 | bool "PS3 Wireless support" |
2349 | depends on WLAN | ||
2349 | depends on GELIC_NET | 2350 | depends on GELIC_NET |
2350 | select WIRELESS_EXT | 2351 | select WIRELESS_EXT |
2351 | help | 2352 | help |
@@ -2358,6 +2359,7 @@ config GELIC_WIRELESS | |||
2358 | config GELIC_WIRELESS_OLD_PSK_INTERFACE | 2359 | config GELIC_WIRELESS_OLD_PSK_INTERFACE |
2359 | bool "PS3 Wireless private PSK interface (OBSOLETE)" | 2360 | bool "PS3 Wireless private PSK interface (OBSOLETE)" |
2360 | depends on GELIC_WIRELESS | 2361 | depends on GELIC_WIRELESS |
2362 | select WEXT_PRIV | ||
2361 | help | 2363 | help |
2362 | This option retains the obsolete private interface to pass | 2364 | This option retains the obsolete private interface to pass |
2363 | the PSK from user space programs to the driver. The PSK | 2365 | the PSK from user space programs to the driver. The PSK |
diff --git a/drivers/net/arm/Kconfig b/drivers/net/arm/Kconfig index c37ee9e6b67..39e1c0d3947 100644 --- a/drivers/net/arm/Kconfig +++ b/drivers/net/arm/Kconfig | |||
@@ -68,6 +68,7 @@ config W90P910_ETH | |||
68 | tristate "Nuvoton w90p910 Ethernet support" | 68 | tristate "Nuvoton w90p910 Ethernet support" |
69 | depends on ARM && ARCH_W90X900 | 69 | depends on ARM && ARCH_W90X900 |
70 | select PHYLIB | 70 | select PHYLIB |
71 | select MII | ||
71 | help | 72 | help |
72 | Say Y here if you want to use built-in Ethernet ports | 73 | Say Y here if you want to use built-in Ethernet ports |
73 | on w90p910 processor. | 74 | on w90p910 processor. |
diff --git a/drivers/net/atarilance.c b/drivers/net/atarilance.c index c5721cb3826..cc9ed864391 100644 --- a/drivers/net/atarilance.c +++ b/drivers/net/atarilance.c | |||
@@ -663,7 +663,7 @@ static int lance_open( struct net_device *dev ) | |||
663 | while (--i > 0) | 663 | while (--i > 0) |
664 | if (DREG & CSR0_IDON) | 664 | if (DREG & CSR0_IDON) |
665 | break; | 665 | break; |
666 | if (i < 0 || (DREG & CSR0_ERR)) { | 666 | if (i <= 0 || (DREG & CSR0_ERR)) { |
667 | DPRINTK( 2, ( "lance_open(): opening %s failed, i=%d, csr0=%04x\n", | 667 | DPRINTK( 2, ( "lance_open(): opening %s failed, i=%d, csr0=%04x\n", |
668 | dev->name, i, DREG )); | 668 | dev->name, i, DREG )); |
669 | DREG = CSR0_STOP; | 669 | DREG = CSR0_STOP; |
diff --git a/drivers/net/atlx/atl2.c b/drivers/net/atlx/atl2.c index c0451d75cdc..ec52529394a 100644 --- a/drivers/net/atlx/atl2.c +++ b/drivers/net/atlx/atl2.c | |||
@@ -1959,12 +1959,15 @@ static int atl2_get_eeprom(struct net_device *netdev, | |||
1959 | return -ENOMEM; | 1959 | return -ENOMEM; |
1960 | 1960 | ||
1961 | for (i = first_dword; i < last_dword; i++) { | 1961 | for (i = first_dword; i < last_dword; i++) { |
1962 | if (!atl2_read_eeprom(hw, i*4, &(eeprom_buff[i-first_dword]))) | 1962 | if (!atl2_read_eeprom(hw, i*4, &(eeprom_buff[i-first_dword]))) { |
1963 | return -EIO; | 1963 | ret_val = -EIO; |
1964 | goto free; | ||
1965 | } | ||
1964 | } | 1966 | } |
1965 | 1967 | ||
1966 | memcpy(bytes, (u8 *)eeprom_buff + (eeprom->offset & 3), | 1968 | memcpy(bytes, (u8 *)eeprom_buff + (eeprom->offset & 3), |
1967 | eeprom->len); | 1969 | eeprom->len); |
1970 | free: | ||
1968 | kfree(eeprom_buff); | 1971 | kfree(eeprom_buff); |
1969 | 1972 | ||
1970 | return ret_val; | 1973 | return ret_val; |
diff --git a/drivers/net/benet/be.h b/drivers/net/benet/be.h index 9e56014d27e..9fd8e5ecd5d 100644 --- a/drivers/net/benet/be.h +++ b/drivers/net/benet/be.h | |||
@@ -275,6 +275,7 @@ struct be_adapter { | |||
275 | u32 tx_fc; /* Tx flow control */ | 275 | u32 tx_fc; /* Tx flow control */ |
276 | int link_speed; | 276 | int link_speed; |
277 | u8 port_type; | 277 | u8 port_type; |
278 | u8 transceiver; | ||
278 | }; | 279 | }; |
279 | 280 | ||
280 | extern const struct ethtool_ops be_ethtool_ops; | 281 | extern const struct ethtool_ops be_ethtool_ops; |
diff --git a/drivers/net/benet/be_cmds.c b/drivers/net/benet/be_cmds.c index 1b68bd98dc0..102ade13416 100644 --- a/drivers/net/benet/be_cmds.c +++ b/drivers/net/benet/be_cmds.c | |||
@@ -1479,6 +1479,41 @@ err: | |||
1479 | return status; | 1479 | return status; |
1480 | } | 1480 | } |
1481 | 1481 | ||
1482 | int be_cmd_set_loopback(struct be_adapter *adapter, u8 port_num, | ||
1483 | u8 loopback_type, u8 enable) | ||
1484 | { | ||
1485 | struct be_mcc_wrb *wrb; | ||
1486 | struct be_cmd_req_set_lmode *req; | ||
1487 | int status; | ||
1488 | |||
1489 | spin_lock_bh(&adapter->mcc_lock); | ||
1490 | |||
1491 | wrb = wrb_from_mccq(adapter); | ||
1492 | if (!wrb) { | ||
1493 | status = -EBUSY; | ||
1494 | goto err; | ||
1495 | } | ||
1496 | |||
1497 | req = embedded_payload(wrb); | ||
1498 | |||
1499 | be_wrb_hdr_prepare(wrb, sizeof(*req), true, 0, | ||
1500 | OPCODE_LOWLEVEL_SET_LOOPBACK_MODE); | ||
1501 | |||
1502 | be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_LOWLEVEL, | ||
1503 | OPCODE_LOWLEVEL_SET_LOOPBACK_MODE, | ||
1504 | sizeof(*req)); | ||
1505 | |||
1506 | req->src_port = port_num; | ||
1507 | req->dest_port = port_num; | ||
1508 | req->loopback_type = loopback_type; | ||
1509 | req->loopback_state = enable; | ||
1510 | |||
1511 | status = be_mcc_notify_wait(adapter); | ||
1512 | err: | ||
1513 | spin_unlock_bh(&adapter->mcc_lock); | ||
1514 | return status; | ||
1515 | } | ||
1516 | |||
1482 | int be_cmd_loopback_test(struct be_adapter *adapter, u32 port_num, | 1517 | int be_cmd_loopback_test(struct be_adapter *adapter, u32 port_num, |
1483 | u32 loopback_type, u32 pkt_size, u32 num_pkts, u64 pattern) | 1518 | u32 loopback_type, u32 pkt_size, u32 num_pkts, u64 pattern) |
1484 | { | 1519 | { |
@@ -1501,6 +1536,7 @@ int be_cmd_loopback_test(struct be_adapter *adapter, u32 port_num, | |||
1501 | 1536 | ||
1502 | be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_LOWLEVEL, | 1537 | be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_LOWLEVEL, |
1503 | OPCODE_LOWLEVEL_LOOPBACK_TEST, sizeof(*req)); | 1538 | OPCODE_LOWLEVEL_LOOPBACK_TEST, sizeof(*req)); |
1539 | req->hdr.timeout = 4; | ||
1504 | 1540 | ||
1505 | req->pattern = cpu_to_le64(pattern); | 1541 | req->pattern = cpu_to_le64(pattern); |
1506 | req->src_port = cpu_to_le32(port_num); | 1542 | req->src_port = cpu_to_le32(port_num); |
diff --git a/drivers/net/benet/be_cmds.h b/drivers/net/benet/be_cmds.h index 92b87ef156e..c002b8391b4 100644 --- a/drivers/net/benet/be_cmds.h +++ b/drivers/net/benet/be_cmds.h | |||
@@ -155,6 +155,7 @@ struct be_mcc_mailbox { | |||
155 | 155 | ||
156 | #define OPCODE_LOWLEVEL_HOST_DDR_DMA 17 | 156 | #define OPCODE_LOWLEVEL_HOST_DDR_DMA 17 |
157 | #define OPCODE_LOWLEVEL_LOOPBACK_TEST 18 | 157 | #define OPCODE_LOWLEVEL_LOOPBACK_TEST 18 |
158 | #define OPCODE_LOWLEVEL_SET_LOOPBACK_MODE 19 | ||
158 | 159 | ||
159 | struct be_cmd_req_hdr { | 160 | struct be_cmd_req_hdr { |
160 | u8 opcode; /* dword 0 */ | 161 | u8 opcode; /* dword 0 */ |
@@ -821,6 +822,19 @@ struct be_cmd_resp_loopback_test { | |||
821 | u32 ticks_compl; | 822 | u32 ticks_compl; |
822 | }; | 823 | }; |
823 | 824 | ||
825 | struct be_cmd_req_set_lmode { | ||
826 | struct be_cmd_req_hdr hdr; | ||
827 | u8 src_port; | ||
828 | u8 dest_port; | ||
829 | u8 loopback_type; | ||
830 | u8 loopback_state; | ||
831 | }; | ||
832 | |||
833 | struct be_cmd_resp_set_lmode { | ||
834 | struct be_cmd_resp_hdr resp_hdr; | ||
835 | u8 rsvd0[4]; | ||
836 | }; | ||
837 | |||
824 | /********************** DDR DMA test *********************/ | 838 | /********************** DDR DMA test *********************/ |
825 | struct be_cmd_req_ddrdma_test { | 839 | struct be_cmd_req_ddrdma_test { |
826 | struct be_cmd_req_hdr hdr; | 840 | struct be_cmd_req_hdr hdr; |
@@ -912,3 +926,5 @@ extern int be_cmd_loopback_test(struct be_adapter *adapter, u32 port_num, | |||
912 | u32 num_pkts, u64 pattern); | 926 | u32 num_pkts, u64 pattern); |
913 | extern int be_cmd_ddr_dma_test(struct be_adapter *adapter, u64 pattern, | 927 | extern int be_cmd_ddr_dma_test(struct be_adapter *adapter, u64 pattern, |
914 | u32 byte_cnt, struct be_dma_mem *cmd); | 928 | u32 byte_cnt, struct be_dma_mem *cmd); |
929 | extern int be_cmd_set_loopback(struct be_adapter *adapter, u8 port_num, | ||
930 | u8 loopback_type, u8 enable); | ||
diff --git a/drivers/net/benet/be_ethtool.c b/drivers/net/benet/be_ethtool.c index 298b92cbd68..5d001c4deac 100644 --- a/drivers/net/benet/be_ethtool.c +++ b/drivers/net/benet/be_ethtool.c | |||
@@ -118,6 +118,7 @@ static const char et_self_tests[][ETH_GSTRING_LEN] = { | |||
118 | #define BE_MAC_LOOPBACK 0x0 | 118 | #define BE_MAC_LOOPBACK 0x0 |
119 | #define BE_PHY_LOOPBACK 0x1 | 119 | #define BE_PHY_LOOPBACK 0x1 |
120 | #define BE_ONE_PORT_EXT_LOOPBACK 0x2 | 120 | #define BE_ONE_PORT_EXT_LOOPBACK 0x2 |
121 | #define BE_NO_LOOPBACK 0xff | ||
121 | 122 | ||
122 | static void | 123 | static void |
123 | be_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo) | 124 | be_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo) |
@@ -339,28 +340,50 @@ static int be_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd) | |||
339 | 340 | ||
340 | status = be_cmd_read_port_type(adapter, adapter->port_num, | 341 | status = be_cmd_read_port_type(adapter, adapter->port_num, |
341 | &connector); | 342 | &connector); |
342 | switch (connector) { | 343 | if (!status) { |
343 | case 7: | 344 | switch (connector) { |
344 | ecmd->port = PORT_FIBRE; | 345 | case 7: |
345 | break; | 346 | ecmd->port = PORT_FIBRE; |
346 | default: | 347 | ecmd->transceiver = XCVR_EXTERNAL; |
347 | ecmd->port = PORT_TP; | 348 | break; |
348 | break; | 349 | case 0: |
350 | ecmd->port = PORT_TP; | ||
351 | ecmd->transceiver = XCVR_EXTERNAL; | ||
352 | break; | ||
353 | default: | ||
354 | ecmd->port = PORT_TP; | ||
355 | ecmd->transceiver = XCVR_INTERNAL; | ||
356 | break; | ||
357 | } | ||
358 | } else { | ||
359 | ecmd->port = PORT_AUI; | ||
360 | ecmd->transceiver = XCVR_INTERNAL; | ||
349 | } | 361 | } |
350 | 362 | ||
351 | /* Save for future use */ | 363 | /* Save for future use */ |
352 | adapter->link_speed = ecmd->speed; | 364 | adapter->link_speed = ecmd->speed; |
353 | adapter->port_type = ecmd->port; | 365 | adapter->port_type = ecmd->port; |
366 | adapter->transceiver = ecmd->transceiver; | ||
354 | } else { | 367 | } else { |
355 | ecmd->speed = adapter->link_speed; | 368 | ecmd->speed = adapter->link_speed; |
356 | ecmd->port = adapter->port_type; | 369 | ecmd->port = adapter->port_type; |
370 | ecmd->transceiver = adapter->transceiver; | ||
357 | } | 371 | } |
358 | 372 | ||
359 | ecmd->duplex = DUPLEX_FULL; | 373 | ecmd->duplex = DUPLEX_FULL; |
360 | ecmd->autoneg = AUTONEG_DISABLE; | 374 | ecmd->autoneg = AUTONEG_DISABLE; |
361 | ecmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_TP); | ||
362 | ecmd->phy_address = adapter->port_num; | 375 | ecmd->phy_address = adapter->port_num; |
363 | ecmd->transceiver = XCVR_INTERNAL; | 376 | switch (ecmd->port) { |
377 | case PORT_FIBRE: | ||
378 | ecmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE); | ||
379 | break; | ||
380 | case PORT_TP: | ||
381 | ecmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_TP); | ||
382 | break; | ||
383 | case PORT_AUI: | ||
384 | ecmd->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_AUI); | ||
385 | break; | ||
386 | } | ||
364 | 387 | ||
365 | return 0; | 388 | return 0; |
366 | } | 389 | } |
@@ -489,6 +512,19 @@ err: | |||
489 | return ret; | 512 | return ret; |
490 | } | 513 | } |
491 | 514 | ||
515 | static u64 be_loopback_test(struct be_adapter *adapter, u8 loopback_type, | ||
516 | u64 *status) | ||
517 | { | ||
518 | be_cmd_set_loopback(adapter, adapter->port_num, | ||
519 | loopback_type, 1); | ||
520 | *status = be_cmd_loopback_test(adapter, adapter->port_num, | ||
521 | loopback_type, 1500, | ||
522 | 2, 0xabc); | ||
523 | be_cmd_set_loopback(adapter, adapter->port_num, | ||
524 | BE_NO_LOOPBACK, 1); | ||
525 | return *status; | ||
526 | } | ||
527 | |||
492 | static void | 528 | static void |
493 | be_self_test(struct net_device *netdev, struct ethtool_test *test, u64 *data) | 529 | be_self_test(struct net_device *netdev, struct ethtool_test *test, u64 *data) |
494 | { | 530 | { |
@@ -497,23 +533,18 @@ be_self_test(struct net_device *netdev, struct ethtool_test *test, u64 *data) | |||
497 | memset(data, 0, sizeof(u64) * ETHTOOL_TESTS_NUM); | 533 | memset(data, 0, sizeof(u64) * ETHTOOL_TESTS_NUM); |
498 | 534 | ||
499 | if (test->flags & ETH_TEST_FL_OFFLINE) { | 535 | if (test->flags & ETH_TEST_FL_OFFLINE) { |
500 | data[0] = be_cmd_loopback_test(adapter, adapter->port_num, | 536 | if (be_loopback_test(adapter, BE_MAC_LOOPBACK, |
501 | BE_MAC_LOOPBACK, 1500, | 537 | &data[0]) != 0) { |
502 | 2, 0xabc); | ||
503 | if (data[0] != 0) | ||
504 | test->flags |= ETH_TEST_FL_FAILED; | 538 | test->flags |= ETH_TEST_FL_FAILED; |
505 | 539 | } | |
506 | data[1] = be_cmd_loopback_test(adapter, adapter->port_num, | 540 | if (be_loopback_test(adapter, BE_PHY_LOOPBACK, |
507 | BE_PHY_LOOPBACK, 1500, | 541 | &data[1]) != 0) { |
508 | 2, 0xabc); | ||
509 | if (data[1] != 0) | ||
510 | test->flags |= ETH_TEST_FL_FAILED; | 542 | test->flags |= ETH_TEST_FL_FAILED; |
511 | 543 | } | |
512 | data[2] = be_cmd_loopback_test(adapter, adapter->port_num, | 544 | if (be_loopback_test(adapter, BE_ONE_PORT_EXT_LOOPBACK, |
513 | BE_ONE_PORT_EXT_LOOPBACK, | 545 | &data[2]) != 0) { |
514 | 1500, 2, 0xabc); | ||
515 | if (data[2] != 0) | ||
516 | test->flags |= ETH_TEST_FL_FAILED; | 546 | test->flags |= ETH_TEST_FL_FAILED; |
547 | } | ||
517 | 548 | ||
518 | data[3] = be_test_ddr_dma(adapter); | 549 | data[3] = be_test_ddr_dma(adapter); |
519 | if (data[3] != 0) | 550 | if (data[3] != 0) |
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c index 77ba13520d8..306c2b8165e 100644 --- a/drivers/net/bnx2x_main.c +++ b/drivers/net/bnx2x_main.c | |||
@@ -7593,6 +7593,8 @@ static int bnx2x_nic_load(struct bnx2x *bp, int load_mode) | |||
7593 | if (bp->cnic_eth_dev.drv_state & CNIC_DRV_STATE_REGD) { | 7593 | if (bp->cnic_eth_dev.drv_state & CNIC_DRV_STATE_REGD) { |
7594 | bnx2x_set_iscsi_eth_mac_addr(bp, 1); | 7594 | bnx2x_set_iscsi_eth_mac_addr(bp, 1); |
7595 | bp->cnic_flags |= BNX2X_CNIC_FLAG_MAC_SET; | 7595 | bp->cnic_flags |= BNX2X_CNIC_FLAG_MAC_SET; |
7596 | bnx2x_init_sb(bp, bp->cnic_sb, bp->cnic_sb_mapping, | ||
7597 | CNIC_SB_ID(bp)); | ||
7596 | } | 7598 | } |
7597 | mutex_unlock(&bp->cnic_mutex); | 7599 | mutex_unlock(&bp->cnic_mutex); |
7598 | #endif | 7600 | #endif |
diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c index 0fb7a4964e7..822f586d72a 100644 --- a/drivers/net/bonding/bond_3ad.c +++ b/drivers/net/bonding/bond_3ad.c | |||
@@ -1580,7 +1580,7 @@ static void ad_agg_selection_logic(struct aggregator *agg) | |||
1580 | // check if any partner replys | 1580 | // check if any partner replys |
1581 | if (best->is_individual) { | 1581 | if (best->is_individual) { |
1582 | pr_warning("%s: Warning: No 802.3ad response from the link partner for any adapters in the bond\n", | 1582 | pr_warning("%s: Warning: No 802.3ad response from the link partner for any adapters in the bond\n", |
1583 | best->slave->dev->master->name); | 1583 | best->slave ? best->slave->dev->master->name : "NULL"); |
1584 | } | 1584 | } |
1585 | 1585 | ||
1586 | best->is_active = 1; | 1586 | best->is_active = 1; |
diff --git a/drivers/net/can/mcp251x.c b/drivers/net/can/mcp251x.c index 9c5a1537939..1a72ca066a1 100644 --- a/drivers/net/can/mcp251x.c +++ b/drivers/net/can/mcp251x.c | |||
@@ -990,7 +990,7 @@ static int __devinit mcp251x_can_probe(struct spi_device *spi) | |||
990 | goto error_tx_buf; | 990 | goto error_tx_buf; |
991 | } | 991 | } |
992 | priv->spi_rx_buf = kmalloc(SPI_TRANSFER_BUF_LEN, GFP_KERNEL); | 992 | priv->spi_rx_buf = kmalloc(SPI_TRANSFER_BUF_LEN, GFP_KERNEL); |
993 | if (!priv->spi_tx_buf) { | 993 | if (!priv->spi_rx_buf) { |
994 | ret = -ENOMEM; | 994 | ret = -ENOMEM; |
995 | goto error_rx_buf; | 995 | goto error_rx_buf; |
996 | } | 996 | } |
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c index af9321617ce..0e79cef95c0 100644 --- a/drivers/net/cs89x0.c +++ b/drivers/net/cs89x0.c | |||
@@ -1325,8 +1325,7 @@ net_open(struct net_device *dev) | |||
1325 | write_irq(dev, lp->chip_type, dev->irq); | 1325 | write_irq(dev, lp->chip_type, dev->irq); |
1326 | ret = request_irq(dev->irq, net_interrupt, 0, dev->name, dev); | 1326 | ret = request_irq(dev->irq, net_interrupt, 0, dev->name, dev); |
1327 | if (ret) { | 1327 | if (ret) { |
1328 | if (net_debug) | 1328 | printk(KERN_ERR "cs89x0: request_irq(%d) failed\n", dev->irq); |
1329 | printk(KERN_DEBUG "cs89x0: request_irq(%d) failed\n", dev->irq); | ||
1330 | goto bad_out; | 1329 | goto bad_out; |
1331 | } | 1330 | } |
1332 | } | 1331 | } |
diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c index 34e03104c3c..33c4fe26178 100644 --- a/drivers/net/davinci_emac.c +++ b/drivers/net/davinci_emac.c | |||
@@ -2711,6 +2711,8 @@ static int __devinit davinci_emac_probe(struct platform_device *pdev) | |||
2711 | SET_ETHTOOL_OPS(ndev, ðtool_ops); | 2711 | SET_ETHTOOL_OPS(ndev, ðtool_ops); |
2712 | netif_napi_add(ndev, &priv->napi, emac_poll, EMAC_POLL_WEIGHT); | 2712 | netif_napi_add(ndev, &priv->napi, emac_poll, EMAC_POLL_WEIGHT); |
2713 | 2713 | ||
2714 | clk_enable(emac_clk); | ||
2715 | |||
2714 | /* register the network device */ | 2716 | /* register the network device */ |
2715 | SET_NETDEV_DEV(ndev, &pdev->dev); | 2717 | SET_NETDEV_DEV(ndev, &pdev->dev); |
2716 | rc = register_netdev(ndev); | 2718 | rc = register_netdev(ndev); |
@@ -2720,7 +2722,6 @@ static int __devinit davinci_emac_probe(struct platform_device *pdev) | |||
2720 | goto netdev_reg_err; | 2722 | goto netdev_reg_err; |
2721 | } | 2723 | } |
2722 | 2724 | ||
2723 | clk_enable(emac_clk); | ||
2724 | 2725 | ||
2725 | /* MII/Phy intialisation, mdio bus registration */ | 2726 | /* MII/Phy intialisation, mdio bus registration */ |
2726 | emac_mii = mdiobus_alloc(); | 2727 | emac_mii = mdiobus_alloc(); |
@@ -2760,6 +2761,7 @@ mdiobus_quit: | |||
2760 | 2761 | ||
2761 | netdev_reg_err: | 2762 | netdev_reg_err: |
2762 | mdio_alloc_err: | 2763 | mdio_alloc_err: |
2764 | clk_disable(emac_clk); | ||
2763 | no_irq_res: | 2765 | no_irq_res: |
2764 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 2766 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
2765 | release_mem_region(res->start, res->end - res->start + 1); | 2767 | release_mem_region(res->start, res->end - res->start + 1); |
diff --git a/drivers/net/e1000e/82571.c b/drivers/net/e1000e/82571.c index b979464091b..02d67d047d9 100644 --- a/drivers/net/e1000e/82571.c +++ b/drivers/net/e1000e/82571.c | |||
@@ -237,6 +237,8 @@ static s32 e1000_init_mac_params_82571(struct e1000_adapter *adapter) | |||
237 | /* Set if manageability features are enabled. */ | 237 | /* Set if manageability features are enabled. */ |
238 | mac->arc_subsystem_valid = (er32(FWSM) & E1000_FWSM_MODE_MASK) | 238 | mac->arc_subsystem_valid = (er32(FWSM) & E1000_FWSM_MODE_MASK) |
239 | ? true : false; | 239 | ? true : false; |
240 | /* Adaptive IFS supported */ | ||
241 | mac->adaptive_ifs = true; | ||
240 | 242 | ||
241 | /* check for link */ | 243 | /* check for link */ |
242 | switch (hw->phy.media_type) { | 244 | switch (hw->phy.media_type) { |
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h index cebbd9079d5..d6ee28f6ea0 100644 --- a/drivers/net/e1000e/e1000.h +++ b/drivers/net/e1000e/e1000.h | |||
@@ -582,7 +582,6 @@ extern s32 e1000_read_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, | |||
582 | extern s32 e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data); | 582 | extern s32 e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data); |
583 | extern s32 e1000_write_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, | 583 | extern s32 e1000_write_phy_reg_hv_locked(struct e1000_hw *hw, u32 offset, |
584 | u16 data); | 584 | u16 data); |
585 | extern s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw, bool slow); | ||
586 | extern s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw); | 585 | extern s32 e1000_link_stall_workaround_hv(struct e1000_hw *hw); |
587 | extern s32 e1000_copper_link_setup_82577(struct e1000_hw *hw); | 586 | extern s32 e1000_copper_link_setup_82577(struct e1000_hw *hw); |
588 | extern s32 e1000_check_polarity_82577(struct e1000_hw *hw); | 587 | extern s32 e1000_check_polarity_82577(struct e1000_hw *hw); |
diff --git a/drivers/net/e1000e/es2lan.c b/drivers/net/e1000e/es2lan.c index 3028f23da89..e2aa3b78856 100644 --- a/drivers/net/e1000e/es2lan.c +++ b/drivers/net/e1000e/es2lan.c | |||
@@ -224,6 +224,8 @@ static s32 e1000_init_mac_params_80003es2lan(struct e1000_adapter *adapter) | |||
224 | /* Set if manageability features are enabled. */ | 224 | /* Set if manageability features are enabled. */ |
225 | mac->arc_subsystem_valid = (er32(FWSM) & E1000_FWSM_MODE_MASK) | 225 | mac->arc_subsystem_valid = (er32(FWSM) & E1000_FWSM_MODE_MASK) |
226 | ? true : false; | 226 | ? true : false; |
227 | /* Adaptive IFS not supported */ | ||
228 | mac->adaptive_ifs = false; | ||
227 | 229 | ||
228 | /* check for link */ | 230 | /* check for link */ |
229 | switch (hw->phy.media_type) { | 231 | switch (hw->phy.media_type) { |
diff --git a/drivers/net/e1000e/hw.h b/drivers/net/e1000e/hw.h index 2784cf44a6f..eccf29b75c4 100644 --- a/drivers/net/e1000e/hw.h +++ b/drivers/net/e1000e/hw.h | |||
@@ -818,6 +818,7 @@ struct e1000_mac_info { | |||
818 | 818 | ||
819 | u8 forced_speed_duplex; | 819 | u8 forced_speed_duplex; |
820 | 820 | ||
821 | bool adaptive_ifs; | ||
821 | bool arc_subsystem_valid; | 822 | bool arc_subsystem_valid; |
822 | bool autoneg; | 823 | bool autoneg; |
823 | bool autoneg_failed; | 824 | bool autoneg_failed; |
diff --git a/drivers/net/e1000e/ich8lan.c b/drivers/net/e1000e/ich8lan.c index 9b09246af06..8b6ecd12788 100644 --- a/drivers/net/e1000e/ich8lan.c +++ b/drivers/net/e1000e/ich8lan.c | |||
@@ -138,6 +138,10 @@ | |||
138 | #define E1000_NVM_K1_CONFIG 0x1B /* NVM K1 Config Word */ | 138 | #define E1000_NVM_K1_CONFIG 0x1B /* NVM K1 Config Word */ |
139 | #define E1000_NVM_K1_ENABLE 0x1 /* NVM Enable K1 bit */ | 139 | #define E1000_NVM_K1_ENABLE 0x1 /* NVM Enable K1 bit */ |
140 | 140 | ||
141 | /* KMRN Mode Control */ | ||
142 | #define HV_KMRN_MODE_CTRL PHY_REG(769, 16) | ||
143 | #define HV_KMRN_MDIO_SLOW 0x0400 | ||
144 | |||
141 | /* ICH GbE Flash Hardware Sequencing Flash Status Register bit breakdown */ | 145 | /* ICH GbE Flash Hardware Sequencing Flash Status Register bit breakdown */ |
142 | /* Offset 04h HSFSTS */ | 146 | /* Offset 04h HSFSTS */ |
143 | union ich8_hws_flash_status { | 147 | union ich8_hws_flash_status { |
@@ -219,6 +223,7 @@ static s32 e1000_set_lplu_state_pchlan(struct e1000_hw *hw, bool active); | |||
219 | static void e1000_power_down_phy_copper_ich8lan(struct e1000_hw *hw); | 223 | static void e1000_power_down_phy_copper_ich8lan(struct e1000_hw *hw); |
220 | static void e1000_lan_init_done_ich8lan(struct e1000_hw *hw); | 224 | static void e1000_lan_init_done_ich8lan(struct e1000_hw *hw); |
221 | static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link); | 225 | static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link); |
226 | static s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw); | ||
222 | 227 | ||
223 | static inline u16 __er16flash(struct e1000_hw *hw, unsigned long reg) | 228 | static inline u16 __er16flash(struct e1000_hw *hw, unsigned long reg) |
224 | { | 229 | { |
@@ -270,7 +275,21 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) | |||
270 | phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; | 275 | phy->autoneg_mask = AUTONEG_ADVERTISE_SPEED_DEFAULT; |
271 | 276 | ||
272 | phy->id = e1000_phy_unknown; | 277 | phy->id = e1000_phy_unknown; |
273 | e1000e_get_phy_id(hw); | 278 | ret_val = e1000e_get_phy_id(hw); |
279 | if (ret_val) | ||
280 | goto out; | ||
281 | if ((phy->id == 0) || (phy->id == PHY_REVISION_MASK)) { | ||
282 | /* | ||
283 | * In case the PHY needs to be in mdio slow mode (eg. 82577), | ||
284 | * set slow mode and try to get the PHY id again. | ||
285 | */ | ||
286 | ret_val = e1000_set_mdio_slow_mode_hv(hw); | ||
287 | if (ret_val) | ||
288 | goto out; | ||
289 | ret_val = e1000e_get_phy_id(hw); | ||
290 | if (ret_val) | ||
291 | goto out; | ||
292 | } | ||
274 | phy->type = e1000e_get_phy_type_from_id(phy->id); | 293 | phy->type = e1000e_get_phy_type_from_id(phy->id); |
275 | 294 | ||
276 | switch (phy->type) { | 295 | switch (phy->type) { |
@@ -292,6 +311,7 @@ static s32 e1000_init_phy_params_pchlan(struct e1000_hw *hw) | |||
292 | break; | 311 | break; |
293 | } | 312 | } |
294 | 313 | ||
314 | out: | ||
295 | return ret_val; | 315 | return ret_val; |
296 | } | 316 | } |
297 | 317 | ||
@@ -454,6 +474,8 @@ static s32 e1000_init_mac_params_ich8lan(struct e1000_adapter *adapter) | |||
454 | mac->rar_entry_count--; | 474 | mac->rar_entry_count--; |
455 | /* Set if manageability features are enabled. */ | 475 | /* Set if manageability features are enabled. */ |
456 | mac->arc_subsystem_valid = true; | 476 | mac->arc_subsystem_valid = true; |
477 | /* Adaptive IFS supported */ | ||
478 | mac->adaptive_ifs = true; | ||
457 | 479 | ||
458 | /* LED operations */ | 480 | /* LED operations */ |
459 | switch (mac->type) { | 481 | switch (mac->type) { |
@@ -1074,16 +1096,44 @@ out: | |||
1074 | 1096 | ||
1075 | 1097 | ||
1076 | /** | 1098 | /** |
1099 | * e1000_set_mdio_slow_mode_hv - Set slow MDIO access mode | ||
1100 | * @hw: pointer to the HW structure | ||
1101 | **/ | ||
1102 | static s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw) | ||
1103 | { | ||
1104 | s32 ret_val; | ||
1105 | u16 data; | ||
1106 | |||
1107 | ret_val = e1e_rphy(hw, HV_KMRN_MODE_CTRL, &data); | ||
1108 | if (ret_val) | ||
1109 | return ret_val; | ||
1110 | |||
1111 | data |= HV_KMRN_MDIO_SLOW; | ||
1112 | |||
1113 | ret_val = e1e_wphy(hw, HV_KMRN_MODE_CTRL, data); | ||
1114 | |||
1115 | return ret_val; | ||
1116 | } | ||
1117 | |||
1118 | /** | ||
1077 | * e1000_hv_phy_workarounds_ich8lan - A series of Phy workarounds to be | 1119 | * e1000_hv_phy_workarounds_ich8lan - A series of Phy workarounds to be |
1078 | * done after every PHY reset. | 1120 | * done after every PHY reset. |
1079 | **/ | 1121 | **/ |
1080 | static s32 e1000_hv_phy_workarounds_ich8lan(struct e1000_hw *hw) | 1122 | static s32 e1000_hv_phy_workarounds_ich8lan(struct e1000_hw *hw) |
1081 | { | 1123 | { |
1082 | s32 ret_val = 0; | 1124 | s32 ret_val = 0; |
1125 | u16 phy_data; | ||
1083 | 1126 | ||
1084 | if (hw->mac.type != e1000_pchlan) | 1127 | if (hw->mac.type != e1000_pchlan) |
1085 | return ret_val; | 1128 | return ret_val; |
1086 | 1129 | ||
1130 | /* Set MDIO slow mode before any other MDIO access */ | ||
1131 | if (hw->phy.type == e1000_phy_82577) { | ||
1132 | ret_val = e1000_set_mdio_slow_mode_hv(hw); | ||
1133 | if (ret_val) | ||
1134 | goto out; | ||
1135 | } | ||
1136 | |||
1087 | if (((hw->phy.type == e1000_phy_82577) && | 1137 | if (((hw->phy.type == e1000_phy_82577) && |
1088 | ((hw->phy.revision == 1) || (hw->phy.revision == 2))) || | 1138 | ((hw->phy.revision == 1) || (hw->phy.revision == 2))) || |
1089 | ((hw->phy.type == e1000_phy_82578) && (hw->phy.revision == 1))) { | 1139 | ((hw->phy.type == e1000_phy_82578) && (hw->phy.revision == 1))) { |
@@ -1116,16 +1166,32 @@ static s32 e1000_hv_phy_workarounds_ich8lan(struct e1000_hw *hw) | |||
1116 | 1166 | ||
1117 | hw->phy.addr = 1; | 1167 | hw->phy.addr = 1; |
1118 | ret_val = e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, 0); | 1168 | ret_val = e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, 0); |
1169 | hw->phy.ops.release(hw); | ||
1119 | if (ret_val) | 1170 | if (ret_val) |
1120 | goto out; | 1171 | goto out; |
1121 | hw->phy.ops.release(hw); | ||
1122 | 1172 | ||
1123 | /* | 1173 | /* |
1124 | * Configure the K1 Si workaround during phy reset assuming there is | 1174 | * Configure the K1 Si workaround during phy reset assuming there is |
1125 | * link so that it disables K1 if link is in 1Gbps. | 1175 | * link so that it disables K1 if link is in 1Gbps. |
1126 | */ | 1176 | */ |
1127 | ret_val = e1000_k1_gig_workaround_hv(hw, true); | 1177 | ret_val = e1000_k1_gig_workaround_hv(hw, true); |
1178 | if (ret_val) | ||
1179 | goto out; | ||
1128 | 1180 | ||
1181 | /* Workaround for link disconnects on a busy hub in half duplex */ | ||
1182 | ret_val = hw->phy.ops.acquire(hw); | ||
1183 | if (ret_val) | ||
1184 | goto out; | ||
1185 | ret_val = hw->phy.ops.read_reg_locked(hw, | ||
1186 | PHY_REG(BM_PORT_CTRL_PAGE, 17), | ||
1187 | &phy_data); | ||
1188 | if (ret_val) | ||
1189 | goto release; | ||
1190 | ret_val = hw->phy.ops.write_reg_locked(hw, | ||
1191 | PHY_REG(BM_PORT_CTRL_PAGE, 17), | ||
1192 | phy_data & 0x00FF); | ||
1193 | release: | ||
1194 | hw->phy.ops.release(hw); | ||
1129 | out: | 1195 | out: |
1130 | return ret_val; | 1196 | return ret_val; |
1131 | } | 1197 | } |
@@ -1182,6 +1248,7 @@ static s32 e1000_phy_hw_reset_ich8lan(struct e1000_hw *hw) | |||
1182 | /* Allow time for h/w to get to a quiescent state after reset */ | 1248 | /* Allow time for h/w to get to a quiescent state after reset */ |
1183 | mdelay(10); | 1249 | mdelay(10); |
1184 | 1250 | ||
1251 | /* Perform any necessary post-reset workarounds */ | ||
1185 | if (hw->mac.type == e1000_pchlan) { | 1252 | if (hw->mac.type == e1000_pchlan) { |
1186 | ret_val = e1000_hv_phy_workarounds_ich8lan(hw); | 1253 | ret_val = e1000_hv_phy_workarounds_ich8lan(hw); |
1187 | if (ret_val) | 1254 | if (ret_val) |
@@ -2482,6 +2549,10 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw) | |||
2482 | if (!ret_val) | 2549 | if (!ret_val) |
2483 | e1000_release_swflag_ich8lan(hw); | 2550 | e1000_release_swflag_ich8lan(hw); |
2484 | 2551 | ||
2552 | /* Perform any necessary post-reset workarounds */ | ||
2553 | if (hw->mac.type == e1000_pchlan) | ||
2554 | ret_val = e1000_hv_phy_workarounds_ich8lan(hw); | ||
2555 | |||
2485 | if (ctrl & E1000_CTRL_PHY_RST) | 2556 | if (ctrl & E1000_CTRL_PHY_RST) |
2486 | ret_val = hw->phy.ops.get_cfg_done(hw); | 2557 | ret_val = hw->phy.ops.get_cfg_done(hw); |
2487 | 2558 | ||
@@ -2526,9 +2597,6 @@ static s32 e1000_reset_hw_ich8lan(struct e1000_hw *hw) | |||
2526 | kab |= E1000_KABGTXD_BGSQLBIAS; | 2597 | kab |= E1000_KABGTXD_BGSQLBIAS; |
2527 | ew32(KABGTXD, kab); | 2598 | ew32(KABGTXD, kab); |
2528 | 2599 | ||
2529 | if (hw->mac.type == e1000_pchlan) | ||
2530 | ret_val = e1000_hv_phy_workarounds_ich8lan(hw); | ||
2531 | |||
2532 | out: | 2600 | out: |
2533 | return ret_val; | 2601 | return ret_val; |
2534 | } | 2602 | } |
diff --git a/drivers/net/e1000e/lib.c b/drivers/net/e1000e/lib.c index a86c17548c1..2fa9b36a2c5 100644 --- a/drivers/net/e1000e/lib.c +++ b/drivers/net/e1000e/lib.c | |||
@@ -125,6 +125,7 @@ void e1000_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value) | |||
125 | void e1000e_init_rx_addrs(struct e1000_hw *hw, u16 rar_count) | 125 | void e1000e_init_rx_addrs(struct e1000_hw *hw, u16 rar_count) |
126 | { | 126 | { |
127 | u32 i; | 127 | u32 i; |
128 | u8 mac_addr[ETH_ALEN] = {0}; | ||
128 | 129 | ||
129 | /* Setup the receive address */ | 130 | /* Setup the receive address */ |
130 | e_dbg("Programming MAC Address into RAR[0]\n"); | 131 | e_dbg("Programming MAC Address into RAR[0]\n"); |
@@ -133,12 +134,8 @@ void e1000e_init_rx_addrs(struct e1000_hw *hw, u16 rar_count) | |||
133 | 134 | ||
134 | /* Zero out the other (rar_entry_count - 1) receive addresses */ | 135 | /* Zero out the other (rar_entry_count - 1) receive addresses */ |
135 | e_dbg("Clearing RAR[1-%u]\n", rar_count-1); | 136 | e_dbg("Clearing RAR[1-%u]\n", rar_count-1); |
136 | for (i = 1; i < rar_count; i++) { | 137 | for (i = 1; i < rar_count; i++) |
137 | E1000_WRITE_REG_ARRAY(hw, E1000_RA, (i << 1), 0); | 138 | e1000e_rar_set(hw, mac_addr, i); |
138 | e1e_flush(); | ||
139 | E1000_WRITE_REG_ARRAY(hw, E1000_RA, ((i << 1) + 1), 0); | ||
140 | e1e_flush(); | ||
141 | } | ||
142 | } | 139 | } |
143 | 140 | ||
144 | /** | 141 | /** |
@@ -164,10 +161,19 @@ void e1000e_rar_set(struct e1000_hw *hw, u8 *addr, u32 index) | |||
164 | 161 | ||
165 | rar_high = ((u32) addr[4] | ((u32) addr[5] << 8)); | 162 | rar_high = ((u32) addr[4] | ((u32) addr[5] << 8)); |
166 | 163 | ||
167 | rar_high |= E1000_RAH_AV; | 164 | /* If MAC address zero, no need to set the AV bit */ |
165 | if (rar_low || rar_high) | ||
166 | rar_high |= E1000_RAH_AV; | ||
168 | 167 | ||
169 | E1000_WRITE_REG_ARRAY(hw, E1000_RA, (index << 1), rar_low); | 168 | /* |
170 | E1000_WRITE_REG_ARRAY(hw, E1000_RA, ((index << 1) + 1), rar_high); | 169 | * Some bridges will combine consecutive 32-bit writes into |
170 | * a single burst write, which will malfunction on some parts. | ||
171 | * The flushes avoid this. | ||
172 | */ | ||
173 | ew32(RAL(index), rar_low); | ||
174 | e1e_flush(); | ||
175 | ew32(RAH(index), rar_high); | ||
176 | e1e_flush(); | ||
171 | } | 177 | } |
172 | 178 | ||
173 | /** | 179 | /** |
@@ -1609,6 +1615,11 @@ void e1000e_reset_adaptive(struct e1000_hw *hw) | |||
1609 | { | 1615 | { |
1610 | struct e1000_mac_info *mac = &hw->mac; | 1616 | struct e1000_mac_info *mac = &hw->mac; |
1611 | 1617 | ||
1618 | if (!mac->adaptive_ifs) { | ||
1619 | e_dbg("Not in Adaptive IFS mode!\n"); | ||
1620 | goto out; | ||
1621 | } | ||
1622 | |||
1612 | mac->current_ifs_val = 0; | 1623 | mac->current_ifs_val = 0; |
1613 | mac->ifs_min_val = IFS_MIN; | 1624 | mac->ifs_min_val = IFS_MIN; |
1614 | mac->ifs_max_val = IFS_MAX; | 1625 | mac->ifs_max_val = IFS_MAX; |
@@ -1617,6 +1628,8 @@ void e1000e_reset_adaptive(struct e1000_hw *hw) | |||
1617 | 1628 | ||
1618 | mac->in_ifs_mode = false; | 1629 | mac->in_ifs_mode = false; |
1619 | ew32(AIT, 0); | 1630 | ew32(AIT, 0); |
1631 | out: | ||
1632 | return; | ||
1620 | } | 1633 | } |
1621 | 1634 | ||
1622 | /** | 1635 | /** |
@@ -1630,6 +1643,11 @@ void e1000e_update_adaptive(struct e1000_hw *hw) | |||
1630 | { | 1643 | { |
1631 | struct e1000_mac_info *mac = &hw->mac; | 1644 | struct e1000_mac_info *mac = &hw->mac; |
1632 | 1645 | ||
1646 | if (!mac->adaptive_ifs) { | ||
1647 | e_dbg("Not in Adaptive IFS mode!\n"); | ||
1648 | goto out; | ||
1649 | } | ||
1650 | |||
1633 | if ((mac->collision_delta * mac->ifs_ratio) > mac->tx_packet_delta) { | 1651 | if ((mac->collision_delta * mac->ifs_ratio) > mac->tx_packet_delta) { |
1634 | if (mac->tx_packet_delta > MIN_NUM_XMITS) { | 1652 | if (mac->tx_packet_delta > MIN_NUM_XMITS) { |
1635 | mac->in_ifs_mode = true; | 1653 | mac->in_ifs_mode = true; |
@@ -1650,6 +1668,8 @@ void e1000e_update_adaptive(struct e1000_hw *hw) | |||
1650 | ew32(AIT, 0); | 1668 | ew32(AIT, 0); |
1651 | } | 1669 | } |
1652 | } | 1670 | } |
1671 | out: | ||
1672 | return; | ||
1653 | } | 1673 | } |
1654 | 1674 | ||
1655 | /** | 1675 | /** |
@@ -2287,10 +2307,12 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw) | |||
2287 | s32 ret_val, hdr_csum, csum; | 2307 | s32 ret_val, hdr_csum, csum; |
2288 | u8 i, len; | 2308 | u8 i, len; |
2289 | 2309 | ||
2310 | hw->mac.tx_pkt_filtering = true; | ||
2311 | |||
2290 | /* No manageability, no filtering */ | 2312 | /* No manageability, no filtering */ |
2291 | if (!e1000e_check_mng_mode(hw)) { | 2313 | if (!e1000e_check_mng_mode(hw)) { |
2292 | hw->mac.tx_pkt_filtering = false; | 2314 | hw->mac.tx_pkt_filtering = false; |
2293 | return 0; | 2315 | goto out; |
2294 | } | 2316 | } |
2295 | 2317 | ||
2296 | /* | 2318 | /* |
@@ -2298,9 +2320,9 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw) | |||
2298 | * reason, disable filtering. | 2320 | * reason, disable filtering. |
2299 | */ | 2321 | */ |
2300 | ret_val = e1000_mng_enable_host_if(hw); | 2322 | ret_val = e1000_mng_enable_host_if(hw); |
2301 | if (ret_val != 0) { | 2323 | if (ret_val) { |
2302 | hw->mac.tx_pkt_filtering = false; | 2324 | hw->mac.tx_pkt_filtering = false; |
2303 | return ret_val; | 2325 | goto out; |
2304 | } | 2326 | } |
2305 | 2327 | ||
2306 | /* Read in the header. Length and offset are in dwords. */ | 2328 | /* Read in the header. Length and offset are in dwords. */ |
@@ -2319,17 +2341,17 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw) | |||
2319 | */ | 2341 | */ |
2320 | if ((hdr_csum != csum) || (hdr->signature != E1000_IAMT_SIGNATURE)) { | 2342 | if ((hdr_csum != csum) || (hdr->signature != E1000_IAMT_SIGNATURE)) { |
2321 | hw->mac.tx_pkt_filtering = true; | 2343 | hw->mac.tx_pkt_filtering = true; |
2322 | return 1; | 2344 | goto out; |
2323 | } | 2345 | } |
2324 | 2346 | ||
2325 | /* Cookie area is valid, make the final check for filtering. */ | 2347 | /* Cookie area is valid, make the final check for filtering. */ |
2326 | if (!(hdr->status & E1000_MNG_DHCP_COOKIE_STATUS_PARSING)) { | 2348 | if (!(hdr->status & E1000_MNG_DHCP_COOKIE_STATUS_PARSING)) { |
2327 | hw->mac.tx_pkt_filtering = false; | 2349 | hw->mac.tx_pkt_filtering = false; |
2328 | return 0; | 2350 | goto out; |
2329 | } | 2351 | } |
2330 | 2352 | ||
2331 | hw->mac.tx_pkt_filtering = true; | 2353 | out: |
2332 | return 1; | 2354 | return hw->mac.tx_pkt_filtering; |
2333 | } | 2355 | } |
2334 | 2356 | ||
2335 | /** | 2357 | /** |
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index 762b697ce73..c45965a256b 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c | |||
@@ -3315,24 +3315,24 @@ void e1000e_update_stats(struct e1000_adapter *adapter) | |||
3315 | if ((hw->phy.type == e1000_phy_82578) || | 3315 | if ((hw->phy.type == e1000_phy_82578) || |
3316 | (hw->phy.type == e1000_phy_82577)) { | 3316 | (hw->phy.type == e1000_phy_82577)) { |
3317 | e1e_rphy(hw, HV_SCC_UPPER, &phy_data); | 3317 | e1e_rphy(hw, HV_SCC_UPPER, &phy_data); |
3318 | e1e_rphy(hw, HV_SCC_LOWER, &phy_data); | 3318 | if (!e1e_rphy(hw, HV_SCC_LOWER, &phy_data)) |
3319 | adapter->stats.scc += phy_data; | 3319 | adapter->stats.scc += phy_data; |
3320 | 3320 | ||
3321 | e1e_rphy(hw, HV_ECOL_UPPER, &phy_data); | 3321 | e1e_rphy(hw, HV_ECOL_UPPER, &phy_data); |
3322 | e1e_rphy(hw, HV_ECOL_LOWER, &phy_data); | 3322 | if (!e1e_rphy(hw, HV_ECOL_LOWER, &phy_data)) |
3323 | adapter->stats.ecol += phy_data; | 3323 | adapter->stats.ecol += phy_data; |
3324 | 3324 | ||
3325 | e1e_rphy(hw, HV_MCC_UPPER, &phy_data); | 3325 | e1e_rphy(hw, HV_MCC_UPPER, &phy_data); |
3326 | e1e_rphy(hw, HV_MCC_LOWER, &phy_data); | 3326 | if (!e1e_rphy(hw, HV_MCC_LOWER, &phy_data)) |
3327 | adapter->stats.mcc += phy_data; | 3327 | adapter->stats.mcc += phy_data; |
3328 | 3328 | ||
3329 | e1e_rphy(hw, HV_LATECOL_UPPER, &phy_data); | 3329 | e1e_rphy(hw, HV_LATECOL_UPPER, &phy_data); |
3330 | e1e_rphy(hw, HV_LATECOL_LOWER, &phy_data); | 3330 | if (!e1e_rphy(hw, HV_LATECOL_LOWER, &phy_data)) |
3331 | adapter->stats.latecol += phy_data; | 3331 | adapter->stats.latecol += phy_data; |
3332 | 3332 | ||
3333 | e1e_rphy(hw, HV_DC_UPPER, &phy_data); | 3333 | e1e_rphy(hw, HV_DC_UPPER, &phy_data); |
3334 | e1e_rphy(hw, HV_DC_LOWER, &phy_data); | 3334 | if (!e1e_rphy(hw, HV_DC_LOWER, &phy_data)) |
3335 | adapter->stats.dc += phy_data; | 3335 | adapter->stats.dc += phy_data; |
3336 | } else { | 3336 | } else { |
3337 | adapter->stats.scc += er32(SCC); | 3337 | adapter->stats.scc += er32(SCC); |
3338 | adapter->stats.ecol += er32(ECOL); | 3338 | adapter->stats.ecol += er32(ECOL); |
@@ -3360,8 +3360,8 @@ void e1000e_update_stats(struct e1000_adapter *adapter) | |||
3360 | if ((hw->phy.type == e1000_phy_82578) || | 3360 | if ((hw->phy.type == e1000_phy_82578) || |
3361 | (hw->phy.type == e1000_phy_82577)) { | 3361 | (hw->phy.type == e1000_phy_82577)) { |
3362 | e1e_rphy(hw, HV_COLC_UPPER, &phy_data); | 3362 | e1e_rphy(hw, HV_COLC_UPPER, &phy_data); |
3363 | e1e_rphy(hw, HV_COLC_LOWER, &phy_data); | 3363 | if (!e1e_rphy(hw, HV_COLC_LOWER, &phy_data)) |
3364 | hw->mac.collision_delta = phy_data; | 3364 | hw->mac.collision_delta = phy_data; |
3365 | } else { | 3365 | } else { |
3366 | hw->mac.collision_delta = er32(COLC); | 3366 | hw->mac.collision_delta = er32(COLC); |
3367 | } | 3367 | } |
@@ -3372,8 +3372,8 @@ void e1000e_update_stats(struct e1000_adapter *adapter) | |||
3372 | if ((hw->phy.type == e1000_phy_82578) || | 3372 | if ((hw->phy.type == e1000_phy_82578) || |
3373 | (hw->phy.type == e1000_phy_82577)) { | 3373 | (hw->phy.type == e1000_phy_82577)) { |
3374 | e1e_rphy(hw, HV_TNCRS_UPPER, &phy_data); | 3374 | e1e_rphy(hw, HV_TNCRS_UPPER, &phy_data); |
3375 | e1e_rphy(hw, HV_TNCRS_LOWER, &phy_data); | 3375 | if (!e1e_rphy(hw, HV_TNCRS_LOWER, &phy_data)) |
3376 | adapter->stats.tncrs += phy_data; | 3376 | adapter->stats.tncrs += phy_data; |
3377 | } else { | 3377 | } else { |
3378 | if ((hw->mac.type != e1000_82574) && | 3378 | if ((hw->mac.type != e1000_82574) && |
3379 | (hw->mac.type != e1000_82583)) | 3379 | (hw->mac.type != e1000_82583)) |
@@ -4674,6 +4674,7 @@ static int e1000_resume(struct pci_dev *pdev) | |||
4674 | 4674 | ||
4675 | pci_set_power_state(pdev, PCI_D0); | 4675 | pci_set_power_state(pdev, PCI_D0); |
4676 | pci_restore_state(pdev); | 4676 | pci_restore_state(pdev); |
4677 | pci_save_state(pdev); | ||
4677 | e1000e_disable_l1aspm(pdev); | 4678 | e1000e_disable_l1aspm(pdev); |
4678 | 4679 | ||
4679 | err = pci_enable_device_mem(pdev); | 4680 | err = pci_enable_device_mem(pdev); |
@@ -4825,6 +4826,7 @@ static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev) | |||
4825 | } else { | 4826 | } else { |
4826 | pci_set_master(pdev); | 4827 | pci_set_master(pdev); |
4827 | pci_restore_state(pdev); | 4828 | pci_restore_state(pdev); |
4829 | pci_save_state(pdev); | ||
4828 | 4830 | ||
4829 | pci_enable_wake(pdev, PCI_D3hot, 0); | 4831 | pci_enable_wake(pdev, PCI_D3hot, 0); |
4830 | pci_enable_wake(pdev, PCI_D3cold, 0); | 4832 | pci_enable_wake(pdev, PCI_D3cold, 0); |
diff --git a/drivers/net/e1000e/phy.c b/drivers/net/e1000e/phy.c index 55a2c0acfee..7f3ceb9dad6 100644 --- a/drivers/net/e1000e/phy.c +++ b/drivers/net/e1000e/phy.c | |||
@@ -152,32 +152,9 @@ s32 e1000e_get_phy_id(struct e1000_hw *hw) | |||
152 | if (phy->id != 0 && phy->id != PHY_REVISION_MASK) | 152 | if (phy->id != 0 && phy->id != PHY_REVISION_MASK) |
153 | goto out; | 153 | goto out; |
154 | 154 | ||
155 | /* | ||
156 | * If the PHY ID is still unknown, we may have an 82577 | ||
157 | * without link. We will try again after setting Slow MDIC | ||
158 | * mode. No harm in trying again in this case since the PHY | ||
159 | * ID is unknown at this point anyway. | ||
160 | */ | ||
161 | ret_val = phy->ops.acquire(hw); | ||
162 | if (ret_val) | ||
163 | goto out; | ||
164 | ret_val = e1000_set_mdio_slow_mode_hv(hw, true); | ||
165 | if (ret_val) | ||
166 | goto out; | ||
167 | phy->ops.release(hw); | ||
168 | |||
169 | retry_count++; | 155 | retry_count++; |
170 | } | 156 | } |
171 | out: | 157 | out: |
172 | /* Revert to MDIO fast mode, if applicable */ | ||
173 | if (retry_count) { | ||
174 | ret_val = phy->ops.acquire(hw); | ||
175 | if (ret_val) | ||
176 | return ret_val; | ||
177 | ret_val = e1000_set_mdio_slow_mode_hv(hw, false); | ||
178 | phy->ops.release(hw); | ||
179 | } | ||
180 | |||
181 | return ret_val; | 158 | return ret_val; |
182 | } | 159 | } |
183 | 160 | ||
@@ -2791,38 +2768,6 @@ static s32 e1000_set_d0_lplu_state(struct e1000_hw *hw, bool active) | |||
2791 | } | 2768 | } |
2792 | 2769 | ||
2793 | /** | 2770 | /** |
2794 | * e1000_set_mdio_slow_mode_hv - Set slow MDIO access mode | ||
2795 | * @hw: pointer to the HW structure | ||
2796 | * @slow: true for slow mode, false for normal mode | ||
2797 | * | ||
2798 | * Assumes semaphore already acquired. | ||
2799 | **/ | ||
2800 | s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw, bool slow) | ||
2801 | { | ||
2802 | s32 ret_val = 0; | ||
2803 | u16 data = 0; | ||
2804 | |||
2805 | /* Set MDIO mode - page 769, register 16: 0x2580==slow, 0x2180==fast */ | ||
2806 | hw->phy.addr = 1; | ||
2807 | ret_val = e1000e_write_phy_reg_mdic(hw, IGP01E1000_PHY_PAGE_SELECT, | ||
2808 | (BM_PORT_CTRL_PAGE << IGP_PAGE_SHIFT)); | ||
2809 | if (ret_val) | ||
2810 | goto out; | ||
2811 | |||
2812 | ret_val = e1000e_write_phy_reg_mdic(hw, BM_CS_CTRL1, | ||
2813 | (0x2180 | (slow << 10))); | ||
2814 | if (ret_val) | ||
2815 | goto out; | ||
2816 | |||
2817 | /* dummy read when reverting to fast mode - throw away result */ | ||
2818 | if (!slow) | ||
2819 | ret_val = e1000e_read_phy_reg_mdic(hw, BM_CS_CTRL1, &data); | ||
2820 | |||
2821 | out: | ||
2822 | return ret_val; | ||
2823 | } | ||
2824 | |||
2825 | /** | ||
2826 | * __e1000_read_phy_reg_hv - Read HV PHY register | 2771 | * __e1000_read_phy_reg_hv - Read HV PHY register |
2827 | * @hw: pointer to the HW structure | 2772 | * @hw: pointer to the HW structure |
2828 | * @offset: register offset to be read | 2773 | * @offset: register offset to be read |
@@ -2839,7 +2784,6 @@ static s32 __e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data, | |||
2839 | s32 ret_val; | 2784 | s32 ret_val; |
2840 | u16 page = BM_PHY_REG_PAGE(offset); | 2785 | u16 page = BM_PHY_REG_PAGE(offset); |
2841 | u16 reg = BM_PHY_REG_NUM(offset); | 2786 | u16 reg = BM_PHY_REG_NUM(offset); |
2842 | bool in_slow_mode = false; | ||
2843 | 2787 | ||
2844 | if (!locked) { | 2788 | if (!locked) { |
2845 | ret_val = hw->phy.ops.acquire(hw); | 2789 | ret_val = hw->phy.ops.acquire(hw); |
@@ -2847,16 +2791,6 @@ static s32 __e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data, | |||
2847 | return ret_val; | 2791 | return ret_val; |
2848 | } | 2792 | } |
2849 | 2793 | ||
2850 | /* Workaround failure in MDIO access while cable is disconnected */ | ||
2851 | if ((hw->phy.type == e1000_phy_82577) && | ||
2852 | !(er32(STATUS) & E1000_STATUS_LU)) { | ||
2853 | ret_val = e1000_set_mdio_slow_mode_hv(hw, true); | ||
2854 | if (ret_val) | ||
2855 | goto out; | ||
2856 | |||
2857 | in_slow_mode = true; | ||
2858 | } | ||
2859 | |||
2860 | /* Page 800 works differently than the rest so it has its own func */ | 2794 | /* Page 800 works differently than the rest so it has its own func */ |
2861 | if (page == BM_WUC_PAGE) { | 2795 | if (page == BM_WUC_PAGE) { |
2862 | ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, | 2796 | ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, |
@@ -2893,10 +2827,6 @@ static s32 __e1000_read_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 *data, | |||
2893 | ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & reg, | 2827 | ret_val = e1000e_read_phy_reg_mdic(hw, MAX_PHY_REG_ADDRESS & reg, |
2894 | data); | 2828 | data); |
2895 | out: | 2829 | out: |
2896 | /* Revert to MDIO fast mode, if applicable */ | ||
2897 | if ((hw->phy.type == e1000_phy_82577) && in_slow_mode) | ||
2898 | ret_val |= e1000_set_mdio_slow_mode_hv(hw, false); | ||
2899 | |||
2900 | if (!locked) | 2830 | if (!locked) |
2901 | hw->phy.ops.release(hw); | 2831 | hw->phy.ops.release(hw); |
2902 | 2832 | ||
@@ -2948,7 +2878,6 @@ static s32 __e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data, | |||
2948 | s32 ret_val; | 2878 | s32 ret_val; |
2949 | u16 page = BM_PHY_REG_PAGE(offset); | 2879 | u16 page = BM_PHY_REG_PAGE(offset); |
2950 | u16 reg = BM_PHY_REG_NUM(offset); | 2880 | u16 reg = BM_PHY_REG_NUM(offset); |
2951 | bool in_slow_mode = false; | ||
2952 | 2881 | ||
2953 | if (!locked) { | 2882 | if (!locked) { |
2954 | ret_val = hw->phy.ops.acquire(hw); | 2883 | ret_val = hw->phy.ops.acquire(hw); |
@@ -2956,16 +2885,6 @@ static s32 __e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data, | |||
2956 | return ret_val; | 2885 | return ret_val; |
2957 | } | 2886 | } |
2958 | 2887 | ||
2959 | /* Workaround failure in MDIO access while cable is disconnected */ | ||
2960 | if ((hw->phy.type == e1000_phy_82577) && | ||
2961 | !(er32(STATUS) & E1000_STATUS_LU)) { | ||
2962 | ret_val = e1000_set_mdio_slow_mode_hv(hw, true); | ||
2963 | if (ret_val) | ||
2964 | goto out; | ||
2965 | |||
2966 | in_slow_mode = true; | ||
2967 | } | ||
2968 | |||
2969 | /* Page 800 works differently than the rest so it has its own func */ | 2888 | /* Page 800 works differently than the rest so it has its own func */ |
2970 | if (page == BM_WUC_PAGE) { | 2889 | if (page == BM_WUC_PAGE) { |
2971 | ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, | 2890 | ret_val = e1000_access_phy_wakeup_reg_bm(hw, offset, |
@@ -3019,10 +2938,6 @@ static s32 __e1000_write_phy_reg_hv(struct e1000_hw *hw, u32 offset, u16 data, | |||
3019 | data); | 2938 | data); |
3020 | 2939 | ||
3021 | out: | 2940 | out: |
3022 | /* Revert to MDIO fast mode, if applicable */ | ||
3023 | if ((hw->phy.type == e1000_phy_82577) && in_slow_mode) | ||
3024 | ret_val |= e1000_set_mdio_slow_mode_hv(hw, false); | ||
3025 | |||
3026 | if (!locked) | 2941 | if (!locked) |
3027 | hw->phy.ops.release(hw); | 2942 | hw->phy.ops.release(hw); |
3028 | 2943 | ||
diff --git a/drivers/net/fsl_pq_mdio.c b/drivers/net/fsl_pq_mdio.c index 25fabb3eedc..d5160edf2fc 100644 --- a/drivers/net/fsl_pq_mdio.c +++ b/drivers/net/fsl_pq_mdio.c | |||
@@ -46,6 +46,11 @@ | |||
46 | #include "gianfar.h" | 46 | #include "gianfar.h" |
47 | #include "fsl_pq_mdio.h" | 47 | #include "fsl_pq_mdio.h" |
48 | 48 | ||
49 | struct fsl_pq_mdio_priv { | ||
50 | void __iomem *map; | ||
51 | struct fsl_pq_mdio __iomem *regs; | ||
52 | }; | ||
53 | |||
49 | /* | 54 | /* |
50 | * Write value to the PHY at mii_id at register regnum, | 55 | * Write value to the PHY at mii_id at register regnum, |
51 | * on the bus attached to the local interface, which may be different from the | 56 | * on the bus attached to the local interface, which may be different from the |
@@ -105,7 +110,9 @@ int fsl_pq_local_mdio_read(struct fsl_pq_mdio __iomem *regs, | |||
105 | 110 | ||
106 | static struct fsl_pq_mdio __iomem *fsl_pq_mdio_get_regs(struct mii_bus *bus) | 111 | static struct fsl_pq_mdio __iomem *fsl_pq_mdio_get_regs(struct mii_bus *bus) |
107 | { | 112 | { |
108 | return (void __iomem __force *)bus->priv; | 113 | struct fsl_pq_mdio_priv *priv = bus->priv; |
114 | |||
115 | return priv->regs; | ||
109 | } | 116 | } |
110 | 117 | ||
111 | /* | 118 | /* |
@@ -266,6 +273,7 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev, | |||
266 | { | 273 | { |
267 | struct device_node *np = ofdev->node; | 274 | struct device_node *np = ofdev->node; |
268 | struct device_node *tbi; | 275 | struct device_node *tbi; |
276 | struct fsl_pq_mdio_priv *priv; | ||
269 | struct fsl_pq_mdio __iomem *regs = NULL; | 277 | struct fsl_pq_mdio __iomem *regs = NULL; |
270 | void __iomem *map; | 278 | void __iomem *map; |
271 | u32 __iomem *tbipa; | 279 | u32 __iomem *tbipa; |
@@ -274,14 +282,19 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev, | |||
274 | u64 addr = 0, size = 0; | 282 | u64 addr = 0, size = 0; |
275 | int err = 0; | 283 | int err = 0; |
276 | 284 | ||
285 | priv = kzalloc(sizeof(*priv), GFP_KERNEL); | ||
286 | if (!priv) | ||
287 | return -ENOMEM; | ||
288 | |||
277 | new_bus = mdiobus_alloc(); | 289 | new_bus = mdiobus_alloc(); |
278 | if (NULL == new_bus) | 290 | if (NULL == new_bus) |
279 | return -ENOMEM; | 291 | goto err_free_priv; |
280 | 292 | ||
281 | new_bus->name = "Freescale PowerQUICC MII Bus", | 293 | new_bus->name = "Freescale PowerQUICC MII Bus", |
282 | new_bus->read = &fsl_pq_mdio_read, | 294 | new_bus->read = &fsl_pq_mdio_read, |
283 | new_bus->write = &fsl_pq_mdio_write, | 295 | new_bus->write = &fsl_pq_mdio_write, |
284 | new_bus->reset = &fsl_pq_mdio_reset, | 296 | new_bus->reset = &fsl_pq_mdio_reset, |
297 | new_bus->priv = priv; | ||
285 | fsl_pq_mdio_bus_name(new_bus->id, np); | 298 | fsl_pq_mdio_bus_name(new_bus->id, np); |
286 | 299 | ||
287 | /* Set the PHY base address */ | 300 | /* Set the PHY base address */ |
@@ -291,6 +304,7 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev, | |||
291 | err = -ENOMEM; | 304 | err = -ENOMEM; |
292 | goto err_free_bus; | 305 | goto err_free_bus; |
293 | } | 306 | } |
307 | priv->map = map; | ||
294 | 308 | ||
295 | if (of_device_is_compatible(np, "fsl,gianfar-mdio") || | 309 | if (of_device_is_compatible(np, "fsl,gianfar-mdio") || |
296 | of_device_is_compatible(np, "fsl,gianfar-tbi") || | 310 | of_device_is_compatible(np, "fsl,gianfar-tbi") || |
@@ -298,8 +312,7 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev, | |||
298 | of_device_is_compatible(np, "ucc_geth_phy")) | 312 | of_device_is_compatible(np, "ucc_geth_phy")) |
299 | map -= offsetof(struct fsl_pq_mdio, miimcfg); | 313 | map -= offsetof(struct fsl_pq_mdio, miimcfg); |
300 | regs = map; | 314 | regs = map; |
301 | 315 | priv->regs = regs; | |
302 | new_bus->priv = (void __force *)regs; | ||
303 | 316 | ||
304 | new_bus->irq = kcalloc(PHY_MAX_ADDR, sizeof(int), GFP_KERNEL); | 317 | new_bus->irq = kcalloc(PHY_MAX_ADDR, sizeof(int), GFP_KERNEL); |
305 | 318 | ||
@@ -392,10 +405,11 @@ static int fsl_pq_mdio_probe(struct of_device *ofdev, | |||
392 | err_free_irqs: | 405 | err_free_irqs: |
393 | kfree(new_bus->irq); | 406 | kfree(new_bus->irq); |
394 | err_unmap_regs: | 407 | err_unmap_regs: |
395 | iounmap(regs); | 408 | iounmap(priv->map); |
396 | err_free_bus: | 409 | err_free_bus: |
397 | kfree(new_bus); | 410 | kfree(new_bus); |
398 | 411 | err_free_priv: | |
412 | kfree(priv); | ||
399 | return err; | 413 | return err; |
400 | } | 414 | } |
401 | 415 | ||
@@ -404,14 +418,16 @@ static int fsl_pq_mdio_remove(struct of_device *ofdev) | |||
404 | { | 418 | { |
405 | struct device *device = &ofdev->dev; | 419 | struct device *device = &ofdev->dev; |
406 | struct mii_bus *bus = dev_get_drvdata(device); | 420 | struct mii_bus *bus = dev_get_drvdata(device); |
421 | struct fsl_pq_mdio_priv *priv = bus->priv; | ||
407 | 422 | ||
408 | mdiobus_unregister(bus); | 423 | mdiobus_unregister(bus); |
409 | 424 | ||
410 | dev_set_drvdata(device, NULL); | 425 | dev_set_drvdata(device, NULL); |
411 | 426 | ||
412 | iounmap(fsl_pq_mdio_get_regs(bus)); | 427 | iounmap(priv->map); |
413 | bus->priv = NULL; | 428 | bus->priv = NULL; |
414 | mdiobus_free(bus); | 429 | mdiobus_free(bus); |
430 | kfree(priv); | ||
415 | 431 | ||
416 | return 0; | 432 | return 0; |
417 | } | 433 | } |
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index e0620d08464..8bd3c9f1753 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c | |||
@@ -143,7 +143,6 @@ void gfar_start(struct net_device *dev); | |||
143 | static void gfar_clear_exact_match(struct net_device *dev); | 143 | static void gfar_clear_exact_match(struct net_device *dev); |
144 | static void gfar_set_mac_for_addr(struct net_device *dev, int num, u8 *addr); | 144 | static void gfar_set_mac_for_addr(struct net_device *dev, int num, u8 *addr); |
145 | static int gfar_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); | 145 | static int gfar_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); |
146 | u16 gfar_select_queue(struct net_device *dev, struct sk_buff *skb); | ||
147 | 146 | ||
148 | MODULE_AUTHOR("Freescale Semiconductor, Inc"); | 147 | MODULE_AUTHOR("Freescale Semiconductor, Inc"); |
149 | MODULE_DESCRIPTION("Gianfar Ethernet Driver"); | 148 | MODULE_DESCRIPTION("Gianfar Ethernet Driver"); |
@@ -455,7 +454,6 @@ static const struct net_device_ops gfar_netdev_ops = { | |||
455 | .ndo_set_multicast_list = gfar_set_multi, | 454 | .ndo_set_multicast_list = gfar_set_multi, |
456 | .ndo_tx_timeout = gfar_timeout, | 455 | .ndo_tx_timeout = gfar_timeout, |
457 | .ndo_do_ioctl = gfar_ioctl, | 456 | .ndo_do_ioctl = gfar_ioctl, |
458 | .ndo_select_queue = gfar_select_queue, | ||
459 | .ndo_get_stats = gfar_get_stats, | 457 | .ndo_get_stats = gfar_get_stats, |
460 | .ndo_vlan_rx_register = gfar_vlan_rx_register, | 458 | .ndo_vlan_rx_register = gfar_vlan_rx_register, |
461 | .ndo_set_mac_address = eth_mac_addr, | 459 | .ndo_set_mac_address = eth_mac_addr, |
@@ -506,10 +504,6 @@ static inline int gfar_uses_fcb(struct gfar_private *priv) | |||
506 | return priv->vlgrp || priv->rx_csum_enable; | 504 | return priv->vlgrp || priv->rx_csum_enable; |
507 | } | 505 | } |
508 | 506 | ||
509 | u16 gfar_select_queue(struct net_device *dev, struct sk_buff *skb) | ||
510 | { | ||
511 | return skb_get_queue_mapping(skb); | ||
512 | } | ||
513 | static void free_tx_pointers(struct gfar_private *priv) | 507 | static void free_tx_pointers(struct gfar_private *priv) |
514 | { | 508 | { |
515 | int i = 0; | 509 | int i = 0; |
@@ -2470,10 +2464,11 @@ static int gfar_process_frame(struct net_device *dev, struct sk_buff *skb, | |||
2470 | fcb = (struct rxfcb *)skb->data; | 2464 | fcb = (struct rxfcb *)skb->data; |
2471 | 2465 | ||
2472 | /* Remove the FCB from the skb */ | 2466 | /* Remove the FCB from the skb */ |
2473 | skb_set_queue_mapping(skb, fcb->rq); | ||
2474 | /* Remove the padded bytes, if there are any */ | 2467 | /* Remove the padded bytes, if there are any */ |
2475 | if (amount_pull) | 2468 | if (amount_pull) { |
2469 | skb_record_rx_queue(skb, fcb->rq); | ||
2476 | skb_pull(skb, amount_pull); | 2470 | skb_pull(skb, amount_pull); |
2471 | } | ||
2477 | 2472 | ||
2478 | if (priv->rx_csum_enable) | 2473 | if (priv->rx_csum_enable) |
2479 | gfar_rx_checksum(skb, fcb); | 2474 | gfar_rx_checksum(skb, fcb); |
@@ -2554,7 +2549,7 @@ int gfar_clean_rx_ring(struct gfar_priv_rx_q *rx_queue, int rx_work_limit) | |||
2554 | /* Remove the FCS from the packet length */ | 2549 | /* Remove the FCS from the packet length */ |
2555 | skb_put(skb, pkt_len); | 2550 | skb_put(skb, pkt_len); |
2556 | rx_queue->stats.rx_bytes += pkt_len; | 2551 | rx_queue->stats.rx_bytes += pkt_len; |
2557 | 2552 | skb_record_rx_queue(skb, rx_queue->qindex); | |
2558 | gfar_process_frame(dev, skb, amount_pull); | 2553 | gfar_process_frame(dev, skb, amount_pull); |
2559 | 2554 | ||
2560 | } else { | 2555 | } else { |
diff --git a/drivers/net/hamradio/bpqether.c b/drivers/net/hamradio/bpqether.c index ae5f11c8fc1..bdadf3e23c9 100644 --- a/drivers/net/hamradio/bpqether.c +++ b/drivers/net/hamradio/bpqether.c | |||
@@ -248,6 +248,7 @@ static netdev_tx_t bpq_xmit(struct sk_buff *skb, struct net_device *dev) | |||
248 | { | 248 | { |
249 | unsigned char *ptr; | 249 | unsigned char *ptr; |
250 | struct bpqdev *bpq; | 250 | struct bpqdev *bpq; |
251 | struct net_device *orig_dev; | ||
251 | int size; | 252 | int size; |
252 | 253 | ||
253 | /* | 254 | /* |
@@ -282,8 +283,9 @@ static netdev_tx_t bpq_xmit(struct sk_buff *skb, struct net_device *dev) | |||
282 | 283 | ||
283 | bpq = netdev_priv(dev); | 284 | bpq = netdev_priv(dev); |
284 | 285 | ||
286 | orig_dev = dev; | ||
285 | if ((dev = bpq_get_ether_dev(dev)) == NULL) { | 287 | if ((dev = bpq_get_ether_dev(dev)) == NULL) { |
286 | dev->stats.tx_dropped++; | 288 | orig_dev->stats.tx_dropped++; |
287 | kfree_skb(skb); | 289 | kfree_skb(skb); |
288 | return NETDEV_TX_OK; | 290 | return NETDEV_TX_OK; |
289 | } | 291 | } |
diff --git a/drivers/net/ibmlana.c b/drivers/net/ibmlana.c index 090a6d3af11..052c74091d9 100644 --- a/drivers/net/ibmlana.c +++ b/drivers/net/ibmlana.c | |||
@@ -87,6 +87,7 @@ History: | |||
87 | #include <linux/module.h> | 87 | #include <linux/module.h> |
88 | #include <linux/netdevice.h> | 88 | #include <linux/netdevice.h> |
89 | #include <linux/etherdevice.h> | 89 | #include <linux/etherdevice.h> |
90 | #include <linux/if_ether.h> | ||
90 | #include <linux/skbuff.h> | 91 | #include <linux/skbuff.h> |
91 | #include <linux/bitops.h> | 92 | #include <linux/bitops.h> |
92 | 93 | ||
@@ -988,7 +989,7 @@ static int __devinit ibmlana_init_one(struct device *kdev) | |||
988 | 989 | ||
989 | /* copy out MAC address */ | 990 | /* copy out MAC address */ |
990 | 991 | ||
991 | for (z = 0; z < sizeof(dev->dev_addr); z++) | 992 | for (z = 0; z < ETH_ALEN; z++) |
992 | dev->dev_addr[z] = inb(dev->base_addr + MACADDRPROM + z); | 993 | dev->dev_addr[z] = inb(dev->base_addr + MACADDRPROM + z); |
993 | 994 | ||
994 | /* print config */ | 995 | /* print config */ |
diff --git a/drivers/net/igb/e1000_82575.c b/drivers/net/igb/e1000_82575.c index e8e9e9194a8..c505b50d1fa 100644 --- a/drivers/net/igb/e1000_82575.c +++ b/drivers/net/igb/e1000_82575.c | |||
@@ -1096,9 +1096,7 @@ static s32 igb_setup_serdes_link_82575(struct e1000_hw *hw) | |||
1096 | hw_dbg("Configuring Autoneg:PCS_LCTL=0x%08X\n", reg); | 1096 | hw_dbg("Configuring Autoneg:PCS_LCTL=0x%08X\n", reg); |
1097 | } else { | 1097 | } else { |
1098 | /* Set PCS register for forced link */ | 1098 | /* Set PCS register for forced link */ |
1099 | reg |= E1000_PCS_LCTL_FSD | /* Force Speed */ | 1099 | reg |= E1000_PCS_LCTL_FSD; /* Force Speed */ |
1100 | E1000_PCS_LCTL_FORCE_LINK | /* Force Link */ | ||
1101 | E1000_PCS_LCTL_FLV_LINK_UP; /* Force link value up */ | ||
1102 | 1100 | ||
1103 | hw_dbg("Configuring Forced Link:PCS_LCTL=0x%08X\n", reg); | 1101 | hw_dbg("Configuring Forced Link:PCS_LCTL=0x%08X\n", reg); |
1104 | } | 1102 | } |
diff --git a/drivers/net/igb/e1000_phy.c b/drivers/net/igb/e1000_phy.c index 5c9d73e9bb8..3670a66401b 100644 --- a/drivers/net/igb/e1000_phy.c +++ b/drivers/net/igb/e1000_phy.c | |||
@@ -457,15 +457,6 @@ s32 igb_copper_link_setup_82580(struct e1000_hw *hw) | |||
457 | phy_data |= I82580_CFG_ENABLE_DOWNSHIFT; | 457 | phy_data |= I82580_CFG_ENABLE_DOWNSHIFT; |
458 | 458 | ||
459 | ret_val = phy->ops.write_reg(hw, I82580_CFG_REG, phy_data); | 459 | ret_val = phy->ops.write_reg(hw, I82580_CFG_REG, phy_data); |
460 | if (ret_val) | ||
461 | goto out; | ||
462 | |||
463 | /* Set number of link attempts before downshift */ | ||
464 | ret_val = phy->ops.read_reg(hw, I82580_CTRL_REG, &phy_data); | ||
465 | if (ret_val) | ||
466 | goto out; | ||
467 | phy_data &= ~I82580_CTRL_DOWNSHIFT_MASK; | ||
468 | ret_val = phy->ops.write_reg(hw, I82580_CTRL_REG, phy_data); | ||
469 | 460 | ||
470 | out: | 461 | out: |
471 | return ret_val; | 462 | return ret_val; |
diff --git a/drivers/net/igb/igb_ethtool.c b/drivers/net/igb/igb_ethtool.c index ac9d5272650..f771a6c0877 100644 --- a/drivers/net/igb/igb_ethtool.c +++ b/drivers/net/igb/igb_ethtool.c | |||
@@ -1795,7 +1795,7 @@ static int igb_wol_exclusion(struct igb_adapter *adapter, | |||
1795 | /* dual port cards only support WoL on port A from now on | 1795 | /* dual port cards only support WoL on port A from now on |
1796 | * unless it was enabled in the eeprom for port B | 1796 | * unless it was enabled in the eeprom for port B |
1797 | * so exclude FUNC_1 ports from having WoL enabled */ | 1797 | * so exclude FUNC_1 ports from having WoL enabled */ |
1798 | if (rd32(E1000_STATUS) & E1000_STATUS_FUNC_1 && | 1798 | if ((rd32(E1000_STATUS) & E1000_STATUS_FUNC_MASK) && |
1799 | !adapter->eeprom_wol) { | 1799 | !adapter->eeprom_wol) { |
1800 | wol->supported = 0; | 1800 | wol->supported = 0; |
1801 | break; | 1801 | break; |
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index 78963a0e128..933c64ff246 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c | |||
@@ -1306,13 +1306,8 @@ void igb_reset(struct igb_adapter *adapter) | |||
1306 | hwm = min(((pba << 10) * 9 / 10), | 1306 | hwm = min(((pba << 10) * 9 / 10), |
1307 | ((pba << 10) - 2 * adapter->max_frame_size)); | 1307 | ((pba << 10) - 2 * adapter->max_frame_size)); |
1308 | 1308 | ||
1309 | if (mac->type < e1000_82576) { | 1309 | fc->high_water = hwm & 0xFFF0; /* 16-byte granularity */ |
1310 | fc->high_water = hwm & 0xFFF8; /* 8-byte granularity */ | 1310 | fc->low_water = fc->high_water - 16; |
1311 | fc->low_water = fc->high_water - 8; | ||
1312 | } else { | ||
1313 | fc->high_water = hwm & 0xFFF0; /* 16-byte granularity */ | ||
1314 | fc->low_water = fc->high_water - 16; | ||
1315 | } | ||
1316 | fc->pause_time = 0xFFFF; | 1311 | fc->pause_time = 0xFFFF; |
1317 | fc->send_xon = 1; | 1312 | fc->send_xon = 1; |
1318 | fc->current_mode = fc->requested_mode; | 1313 | fc->current_mode = fc->requested_mode; |
diff --git a/drivers/net/igbvf/netdev.c b/drivers/net/igbvf/netdev.c index e9dd95f136a..0dbd0320023 100644 --- a/drivers/net/igbvf/netdev.c +++ b/drivers/net/igbvf/netdev.c | |||
@@ -2763,7 +2763,8 @@ static int __devinit igbvf_probe(struct pci_dev *pdev, | |||
2763 | err = hw->mac.ops.reset_hw(hw); | 2763 | err = hw->mac.ops.reset_hw(hw); |
2764 | if (err) { | 2764 | if (err) { |
2765 | dev_info(&pdev->dev, | 2765 | dev_info(&pdev->dev, |
2766 | "PF still in reset state, assigning new address\n"); | 2766 | "PF still in reset state, assigning new address." |
2767 | " Is the PF interface up?\n"); | ||
2767 | random_ether_addr(hw->mac.addr); | 2768 | random_ether_addr(hw->mac.addr); |
2768 | } else { | 2769 | } else { |
2769 | err = hw->mac.ops.read_mac_addr(hw); | 2770 | err = hw->mac.ops.read_mac_addr(hw); |
diff --git a/drivers/net/ixgbe/Makefile b/drivers/net/ixgbe/Makefile index 21b41f42b61..bfef0ebcba9 100644 --- a/drivers/net/ixgbe/Makefile +++ b/drivers/net/ixgbe/Makefile | |||
@@ -1,7 +1,7 @@ | |||
1 | ################################################################################ | 1 | ################################################################################ |
2 | # | 2 | # |
3 | # Intel 10 Gigabit PCI Express Linux driver | 3 | # Intel 10 Gigabit PCI Express Linux driver |
4 | # Copyright(c) 1999 - 2009 Intel Corporation. | 4 | # Copyright(c) 1999 - 2010 Intel Corporation. |
5 | # | 5 | # |
6 | # This program is free software; you can redistribute it and/or modify it | 6 | # This program is free software; you can redistribute it and/or modify it |
7 | # under the terms and conditions of the GNU General Public License, | 7 | # under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe.h b/drivers/net/ixgbe/ixgbe.h index 8da8eb53508..303e7bd39b6 100644 --- a/drivers/net/ixgbe/ixgbe.h +++ b/drivers/net/ixgbe/ixgbe.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_82598.c b/drivers/net/ixgbe/ixgbe_82598.c index 204177d78ce..3103f416531 100644 --- a/drivers/net/ixgbe/ixgbe_82598.c +++ b/drivers/net/ixgbe/ixgbe_82598.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_82599.c b/drivers/net/ixgbe/ixgbe_82599.c index 538340527aa..b49bd6b9feb 100644 --- a/drivers/net/ixgbe/ixgbe_82599.c +++ b/drivers/net/ixgbe/ixgbe_82599.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_common.c b/drivers/net/ixgbe/ixgbe_common.c index 688b8ca5da3..21f158f79dd 100644 --- a/drivers/net/ixgbe/ixgbe_common.c +++ b/drivers/net/ixgbe/ixgbe_common.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_common.h b/drivers/net/ixgbe/ixgbe_common.h index 27f3214bed2..dfff0ffaa50 100644 --- a/drivers/net/ixgbe/ixgbe_common.h +++ b/drivers/net/ixgbe/ixgbe_common.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_dcb.c b/drivers/net/ixgbe/ixgbe_dcb.c index a1562287342..9aea4f04bbd 100644 --- a/drivers/net/ixgbe/ixgbe_dcb.c +++ b/drivers/net/ixgbe/ixgbe_dcb.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_dcb.h b/drivers/net/ixgbe/ixgbe_dcb.h index 64a9fa15c05..5caafd4afbc 100644 --- a/drivers/net/ixgbe/ixgbe_dcb.h +++ b/drivers/net/ixgbe/ixgbe_dcb.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82598.c b/drivers/net/ixgbe/ixgbe_dcb_82598.c index f30263898eb..f0e9279d466 100644 --- a/drivers/net/ixgbe/ixgbe_dcb_82598.c +++ b/drivers/net/ixgbe/ixgbe_dcb_82598.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82598.h b/drivers/net/ixgbe/ixgbe_dcb_82598.h index ebbe53c352a..cc728fa092e 100644 --- a/drivers/net/ixgbe/ixgbe_dcb_82598.h +++ b/drivers/net/ixgbe/ixgbe_dcb_82598.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82599.c b/drivers/net/ixgbe/ixgbe_dcb_82599.c index ec8a252636d..4f7a26ab411 100644 --- a/drivers/net/ixgbe/ixgbe_dcb_82599.c +++ b/drivers/net/ixgbe/ixgbe_dcb_82599.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_dcb_82599.h b/drivers/net/ixgbe/ixgbe_dcb_82599.h index 9e5e2827e4a..0f3f791e1e1 100644 --- a/drivers/net/ixgbe/ixgbe_dcb_82599.h +++ b/drivers/net/ixgbe/ixgbe_dcb_82599.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_dcb_nl.c b/drivers/net/ixgbe/ixgbe_dcb_nl.c index 3c7a79a7d7c..56f37f66b69 100644 --- a/drivers/net/ixgbe/ixgbe_dcb_nl.c +++ b/drivers/net/ixgbe/ixgbe_dcb_nl.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_ethtool.c b/drivers/net/ixgbe/ixgbe_ethtool.c index 0bd49d3b9f6..d77961fc75f 100644 --- a/drivers/net/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ixgbe/ixgbe_ethtool.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_fcoe.c b/drivers/net/ixgbe/ixgbe_fcoe.c index da32a108a7b..e9a20c88c15 100644 --- a/drivers/net/ixgbe/ixgbe_fcoe.c +++ b/drivers/net/ixgbe/ixgbe_fcoe.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_fcoe.h b/drivers/net/ixgbe/ixgbe_fcoe.h index de8ff53187d..abf4b2b3f25 100644 --- a/drivers/net/ixgbe/ixgbe_fcoe.h +++ b/drivers/net/ixgbe/ixgbe_fcoe.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index bd64387563f..9c9202f40b1 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
@@ -52,7 +52,7 @@ static const char ixgbe_driver_string[] = | |||
52 | 52 | ||
53 | #define DRV_VERSION "2.0.44-k2" | 53 | #define DRV_VERSION "2.0.44-k2" |
54 | const char ixgbe_driver_version[] = DRV_VERSION; | 54 | const char ixgbe_driver_version[] = DRV_VERSION; |
55 | static char ixgbe_copyright[] = "Copyright (c) 1999-2009 Intel Corporation."; | 55 | static char ixgbe_copyright[] = "Copyright (c) 1999-2010 Intel Corporation."; |
56 | 56 | ||
57 | static const struct ixgbe_info *ixgbe_info_tbl[] = { | 57 | static const struct ixgbe_info *ixgbe_info_tbl[] = { |
58 | [board_82598] = &ixgbe_82598_info, | 58 | [board_82598] = &ixgbe_82598_info, |
@@ -262,10 +262,12 @@ static inline bool ixgbe_tx_is_paused(struct ixgbe_adapter *adapter, | |||
262 | int reg_idx = tx_ring->reg_idx; | 262 | int reg_idx = tx_ring->reg_idx; |
263 | int dcb_i = adapter->ring_feature[RING_F_DCB].indices; | 263 | int dcb_i = adapter->ring_feature[RING_F_DCB].indices; |
264 | 264 | ||
265 | if (adapter->hw.mac.type == ixgbe_mac_82598EB) { | 265 | switch (adapter->hw.mac.type) { |
266 | case ixgbe_mac_82598EB: | ||
266 | tc = reg_idx >> 2; | 267 | tc = reg_idx >> 2; |
267 | txoff = IXGBE_TFCS_TXOFF0; | 268 | txoff = IXGBE_TFCS_TXOFF0; |
268 | } else if (adapter->hw.mac.type == ixgbe_mac_82599EB) { | 269 | break; |
270 | case ixgbe_mac_82599EB: | ||
269 | tc = 0; | 271 | tc = 0; |
270 | txoff = IXGBE_TFCS_TXOFF; | 272 | txoff = IXGBE_TFCS_TXOFF; |
271 | if (dcb_i == 8) { | 273 | if (dcb_i == 8) { |
@@ -284,6 +286,9 @@ static inline bool ixgbe_tx_is_paused(struct ixgbe_adapter *adapter, | |||
284 | tc += (reg_idx - 96) >> 4; | 286 | tc += (reg_idx - 96) >> 4; |
285 | } | 287 | } |
286 | } | 288 | } |
289 | break; | ||
290 | default: | ||
291 | tc = 0; | ||
287 | } | 292 | } |
288 | txoff <<= tc; | 293 | txoff <<= tc; |
289 | } | 294 | } |
@@ -4373,6 +4378,11 @@ static int ixgbe_resume(struct pci_dev *pdev) | |||
4373 | 4378 | ||
4374 | pci_set_power_state(pdev, PCI_D0); | 4379 | pci_set_power_state(pdev, PCI_D0); |
4375 | pci_restore_state(pdev); | 4380 | pci_restore_state(pdev); |
4381 | /* | ||
4382 | * pci_restore_state clears dev->state_saved so call | ||
4383 | * pci_save_state to restore it. | ||
4384 | */ | ||
4385 | pci_save_state(pdev); | ||
4376 | 4386 | ||
4377 | err = pci_enable_device_mem(pdev); | 4387 | err = pci_enable_device_mem(pdev); |
4378 | if (err) { | 4388 | if (err) { |
@@ -5566,6 +5576,10 @@ static void ixgbe_netpoll(struct net_device *netdev) | |||
5566 | struct ixgbe_adapter *adapter = netdev_priv(netdev); | 5576 | struct ixgbe_adapter *adapter = netdev_priv(netdev); |
5567 | int i; | 5577 | int i; |
5568 | 5578 | ||
5579 | /* if interface is down do nothing */ | ||
5580 | if (test_bit(__IXGBE_DOWN, &adapter->state)) | ||
5581 | return; | ||
5582 | |||
5569 | adapter->flags |= IXGBE_FLAG_IN_NETPOLL; | 5583 | adapter->flags |= IXGBE_FLAG_IN_NETPOLL; |
5570 | if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) { | 5584 | if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) { |
5571 | int num_q_vectors = adapter->num_msix_vectors - NON_Q_VECTORS; | 5585 | int num_q_vectors = adapter->num_msix_vectors - NON_Q_VECTORS; |
diff --git a/drivers/net/ixgbe/ixgbe_phy.c b/drivers/net/ixgbe/ixgbe_phy.c index 9ecad17522c..1c1efd38695 100644 --- a/drivers/net/ixgbe/ixgbe_phy.c +++ b/drivers/net/ixgbe/ixgbe_phy.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_phy.h b/drivers/net/ixgbe/ixgbe_phy.h index 9b700f5bf1e..9cf5f3b4cc5 100644 --- a/drivers/net/ixgbe/ixgbe_phy.h +++ b/drivers/net/ixgbe/ixgbe_phy.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ixgbe/ixgbe_type.h b/drivers/net/ixgbe/ixgbe_type.h index 84650c6ebe0..9eafddfa1b9 100644 --- a/drivers/net/ixgbe/ixgbe_type.h +++ b/drivers/net/ixgbe/ixgbe_type.h | |||
@@ -1,7 +1,7 @@ | |||
1 | /******************************************************************************* | 1 | /******************************************************************************* |
2 | 2 | ||
3 | Intel 10 Gigabit PCI Express Linux driver | 3 | Intel 10 Gigabit PCI Express Linux driver |
4 | Copyright(c) 1999 - 2009 Intel Corporation. | 4 | Copyright(c) 1999 - 2010 Intel Corporation. |
5 | 5 | ||
6 | This program is free software; you can redistribute it and/or modify it | 6 | This program is free software; you can redistribute it and/or modify it |
7 | under the terms and conditions of the GNU General Public License, | 7 | under the terms and conditions of the GNU General Public License, |
diff --git a/drivers/net/ll_temac_main.c b/drivers/net/ll_temac_main.c index 336e7c7a927..a8522bd73ae 100644 --- a/drivers/net/ll_temac_main.c +++ b/drivers/net/ll_temac_main.c | |||
@@ -134,7 +134,7 @@ static int temac_dma_bd_init(struct net_device *ndev) | |||
134 | struct sk_buff *skb; | 134 | struct sk_buff *skb; |
135 | int i; | 135 | int i; |
136 | 136 | ||
137 | lp->rx_skb = kzalloc(sizeof(struct sk_buff)*RX_BD_NUM, GFP_KERNEL); | 137 | lp->rx_skb = kzalloc(sizeof(*lp->rx_skb) * RX_BD_NUM, GFP_KERNEL); |
138 | /* allocate the tx and rx ring buffer descriptors. */ | 138 | /* allocate the tx and rx ring buffer descriptors. */ |
139 | /* returns a virtual addres and a physical address. */ | 139 | /* returns a virtual addres and a physical address. */ |
140 | lp->tx_bd_v = dma_alloc_coherent(ndev->dev.parent, | 140 | lp->tx_bd_v = dma_alloc_coherent(ndev->dev.parent, |
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c index 291a505fd4f..3cf56d90d85 100644 --- a/drivers/net/mlx4/main.c +++ b/drivers/net/mlx4/main.c | |||
@@ -1174,7 +1174,7 @@ static int __mlx4_init_one(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1174 | return 0; | 1174 | return 0; |
1175 | 1175 | ||
1176 | err_port: | 1176 | err_port: |
1177 | for (port = 1; port <= dev->caps.num_ports; port++) | 1177 | for (--port; port >= 1; --port) |
1178 | mlx4_cleanup_port_info(&priv->port[port]); | 1178 | mlx4_cleanup_port_info(&priv->port[port]); |
1179 | 1179 | ||
1180 | mlx4_cleanup_mcg_table(dev); | 1180 | mlx4_cleanup_mcg_table(dev); |
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index 1405a170bb4..af67af55efe 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -656,6 +656,7 @@ static int rxq_refill(struct rx_queue *rxq, int budget) | |||
656 | struct sk_buff *skb; | 656 | struct sk_buff *skb; |
657 | int rx; | 657 | int rx; |
658 | struct rx_desc *rx_desc; | 658 | struct rx_desc *rx_desc; |
659 | int size; | ||
659 | 660 | ||
660 | skb = __skb_dequeue(&mp->rx_recycle); | 661 | skb = __skb_dequeue(&mp->rx_recycle); |
661 | if (skb == NULL) | 662 | if (skb == NULL) |
@@ -678,10 +679,11 @@ static int rxq_refill(struct rx_queue *rxq, int budget) | |||
678 | 679 | ||
679 | rx_desc = rxq->rx_desc_area + rx; | 680 | rx_desc = rxq->rx_desc_area + rx; |
680 | 681 | ||
682 | size = skb->end - skb->data; | ||
681 | rx_desc->buf_ptr = dma_map_single(mp->dev->dev.parent, | 683 | rx_desc->buf_ptr = dma_map_single(mp->dev->dev.parent, |
682 | skb->data, mp->skb_size, | 684 | skb->data, size, |
683 | DMA_FROM_DEVICE); | 685 | DMA_FROM_DEVICE); |
684 | rx_desc->buf_size = mp->skb_size; | 686 | rx_desc->buf_size = size; |
685 | rxq->rx_skb[rx] = skb; | 687 | rxq->rx_skb[rx] = skb; |
686 | wmb(); | 688 | wmb(); |
687 | rx_desc->cmd_sts = BUFFER_OWNED_BY_DMA | RX_ENABLE_INTERRUPT; | 689 | rx_desc->cmd_sts = BUFFER_OWNED_BY_DMA | RX_ENABLE_INTERRUPT; |
diff --git a/drivers/net/netxen/netxen_nic.h b/drivers/net/netxen/netxen_nic.h index 76cd1f3e9fc..9bc5bd1d538 100644 --- a/drivers/net/netxen/netxen_nic.h +++ b/drivers/net/netxen/netxen_nic.h | |||
@@ -53,8 +53,8 @@ | |||
53 | 53 | ||
54 | #define _NETXEN_NIC_LINUX_MAJOR 4 | 54 | #define _NETXEN_NIC_LINUX_MAJOR 4 |
55 | #define _NETXEN_NIC_LINUX_MINOR 0 | 55 | #define _NETXEN_NIC_LINUX_MINOR 0 |
56 | #define _NETXEN_NIC_LINUX_SUBVERSION 65 | 56 | #define _NETXEN_NIC_LINUX_SUBVERSION 72 |
57 | #define NETXEN_NIC_LINUX_VERSIONID "4.0.65" | 57 | #define NETXEN_NIC_LINUX_VERSIONID "4.0.72" |
58 | 58 | ||
59 | #define NETXEN_VERSION_CODE(a, b, c) (((a) << 24) + ((b) << 16) + (c)) | 59 | #define NETXEN_VERSION_CODE(a, b, c) (((a) << 24) + ((b) << 16) + (c)) |
60 | #define _major(v) (((v) >> 24) & 0xff) | 60 | #define _major(v) (((v) >> 24) & 0xff) |
diff --git a/drivers/net/netxen/netxen_nic_ethtool.c b/drivers/net/netxen/netxen_nic_ethtool.c index ddd704ae018..542f408333f 100644 --- a/drivers/net/netxen/netxen_nic_ethtool.c +++ b/drivers/net/netxen/netxen_nic_ethtool.c | |||
@@ -66,7 +66,7 @@ static const char netxen_nic_gstrings_test[][ETH_GSTRING_LEN] = { | |||
66 | 66 | ||
67 | #define NETXEN_NIC_TEST_LEN ARRAY_SIZE(netxen_nic_gstrings_test) | 67 | #define NETXEN_NIC_TEST_LEN ARRAY_SIZE(netxen_nic_gstrings_test) |
68 | 68 | ||
69 | #define NETXEN_NIC_REGS_COUNT 42 | 69 | #define NETXEN_NIC_REGS_COUNT 30 |
70 | #define NETXEN_NIC_REGS_LEN (NETXEN_NIC_REGS_COUNT * sizeof(__le32)) | 70 | #define NETXEN_NIC_REGS_LEN (NETXEN_NIC_REGS_COUNT * sizeof(__le32)) |
71 | #define NETXEN_MAX_EEPROM_LEN 1024 | 71 | #define NETXEN_MAX_EEPROM_LEN 1024 |
72 | 72 | ||
@@ -312,150 +312,91 @@ static int netxen_nic_get_regs_len(struct net_device *dev) | |||
312 | return NETXEN_NIC_REGS_LEN; | 312 | return NETXEN_NIC_REGS_LEN; |
313 | } | 313 | } |
314 | 314 | ||
315 | struct netxen_niu_regs { | ||
316 | __u32 reg[NETXEN_NIC_REGS_COUNT]; | ||
317 | }; | ||
318 | |||
319 | static struct netxen_niu_regs niu_registers[] = { | ||
320 | { | ||
321 | /* GB Mode */ | ||
322 | { | ||
323 | NETXEN_NIU_GB_SERDES_RESET, | ||
324 | NETXEN_NIU_GB0_MII_MODE, | ||
325 | NETXEN_NIU_GB1_MII_MODE, | ||
326 | NETXEN_NIU_GB2_MII_MODE, | ||
327 | NETXEN_NIU_GB3_MII_MODE, | ||
328 | NETXEN_NIU_GB0_GMII_MODE, | ||
329 | NETXEN_NIU_GB1_GMII_MODE, | ||
330 | NETXEN_NIU_GB2_GMII_MODE, | ||
331 | NETXEN_NIU_GB3_GMII_MODE, | ||
332 | NETXEN_NIU_REMOTE_LOOPBACK, | ||
333 | NETXEN_NIU_GB0_HALF_DUPLEX, | ||
334 | NETXEN_NIU_GB1_HALF_DUPLEX, | ||
335 | NETXEN_NIU_RESET_SYS_FIFOS, | ||
336 | NETXEN_NIU_GB_CRC_DROP, | ||
337 | NETXEN_NIU_GB_DROP_WRONGADDR, | ||
338 | NETXEN_NIU_TEST_MUX_CTL, | ||
339 | |||
340 | NETXEN_NIU_GB_MAC_CONFIG_0(0), | ||
341 | NETXEN_NIU_GB_MAC_CONFIG_1(0), | ||
342 | NETXEN_NIU_GB_HALF_DUPLEX_CTRL(0), | ||
343 | NETXEN_NIU_GB_MAX_FRAME_SIZE(0), | ||
344 | NETXEN_NIU_GB_TEST_REG(0), | ||
345 | NETXEN_NIU_GB_MII_MGMT_CONFIG(0), | ||
346 | NETXEN_NIU_GB_MII_MGMT_COMMAND(0), | ||
347 | NETXEN_NIU_GB_MII_MGMT_ADDR(0), | ||
348 | NETXEN_NIU_GB_MII_MGMT_CTRL(0), | ||
349 | NETXEN_NIU_GB_MII_MGMT_STATUS(0), | ||
350 | NETXEN_NIU_GB_MII_MGMT_INDICATE(0), | ||
351 | NETXEN_NIU_GB_INTERFACE_CTRL(0), | ||
352 | NETXEN_NIU_GB_INTERFACE_STATUS(0), | ||
353 | NETXEN_NIU_GB_STATION_ADDR_0(0), | ||
354 | NETXEN_NIU_GB_STATION_ADDR_1(0), | ||
355 | -1, | ||
356 | } | ||
357 | }, | ||
358 | { | ||
359 | /* XG Mode */ | ||
360 | { | ||
361 | NETXEN_NIU_XG_SINGLE_TERM, | ||
362 | NETXEN_NIU_XG_DRIVE_HI, | ||
363 | NETXEN_NIU_XG_DRIVE_LO, | ||
364 | NETXEN_NIU_XG_DTX, | ||
365 | NETXEN_NIU_XG_DEQ, | ||
366 | NETXEN_NIU_XG_WORD_ALIGN, | ||
367 | NETXEN_NIU_XG_RESET, | ||
368 | NETXEN_NIU_XG_POWER_DOWN, | ||
369 | NETXEN_NIU_XG_RESET_PLL, | ||
370 | NETXEN_NIU_XG_SERDES_LOOPBACK, | ||
371 | NETXEN_NIU_XG_DO_BYTE_ALIGN, | ||
372 | NETXEN_NIU_XG_TX_ENABLE, | ||
373 | NETXEN_NIU_XG_RX_ENABLE, | ||
374 | NETXEN_NIU_XG_STATUS, | ||
375 | NETXEN_NIU_XG_PAUSE_THRESHOLD, | ||
376 | NETXEN_NIU_XGE_CONFIG_0, | ||
377 | NETXEN_NIU_XGE_CONFIG_1, | ||
378 | NETXEN_NIU_XGE_IPG, | ||
379 | NETXEN_NIU_XGE_STATION_ADDR_0_HI, | ||
380 | NETXEN_NIU_XGE_STATION_ADDR_0_1, | ||
381 | NETXEN_NIU_XGE_STATION_ADDR_1_LO, | ||
382 | NETXEN_NIU_XGE_STATUS, | ||
383 | NETXEN_NIU_XGE_MAX_FRAME_SIZE, | ||
384 | NETXEN_NIU_XGE_PAUSE_FRAME_VALUE, | ||
385 | NETXEN_NIU_XGE_TX_BYTE_CNT, | ||
386 | NETXEN_NIU_XGE_TX_FRAME_CNT, | ||
387 | NETXEN_NIU_XGE_RX_BYTE_CNT, | ||
388 | NETXEN_NIU_XGE_RX_FRAME_CNT, | ||
389 | NETXEN_NIU_XGE_AGGR_ERROR_CNT, | ||
390 | NETXEN_NIU_XGE_MULTICAST_FRAME_CNT, | ||
391 | NETXEN_NIU_XGE_UNICAST_FRAME_CNT, | ||
392 | NETXEN_NIU_XGE_CRC_ERROR_CNT, | ||
393 | NETXEN_NIU_XGE_OVERSIZE_FRAME_ERR, | ||
394 | NETXEN_NIU_XGE_UNDERSIZE_FRAME_ERR, | ||
395 | NETXEN_NIU_XGE_LOCAL_ERROR_CNT, | ||
396 | NETXEN_NIU_XGE_REMOTE_ERROR_CNT, | ||
397 | NETXEN_NIU_XGE_CONTROL_CHAR_CNT, | ||
398 | NETXEN_NIU_XGE_PAUSE_FRAME_CNT, | ||
399 | -1, | ||
400 | } | ||
401 | } | ||
402 | }; | ||
403 | |||
404 | static void | 315 | static void |
405 | netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p) | 316 | netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p) |
406 | { | 317 | { |
407 | struct netxen_adapter *adapter = netdev_priv(dev); | 318 | struct netxen_adapter *adapter = netdev_priv(dev); |
408 | __u32 mode, *regs_buff = p; | 319 | struct netxen_recv_context *recv_ctx = &adapter->recv_ctx; |
409 | int i, window; | 320 | struct nx_host_sds_ring *sds_ring; |
321 | u32 *regs_buff = p; | ||
322 | int ring, i = 0; | ||
323 | int port = adapter->physical_port; | ||
410 | 324 | ||
411 | memset(p, 0, NETXEN_NIC_REGS_LEN); | 325 | memset(p, 0, NETXEN_NIC_REGS_LEN); |
326 | |||
412 | regs->version = (1 << 24) | (adapter->ahw.revision_id << 16) | | 327 | regs->version = (1 << 24) | (adapter->ahw.revision_id << 16) | |
413 | (adapter->pdev)->device; | 328 | (adapter->pdev)->device; |
414 | /* which mode */ | ||
415 | regs_buff[0] = NXRD32(adapter, NETXEN_NIU_MODE); | ||
416 | mode = regs_buff[0]; | ||
417 | |||
418 | /* Common registers to all the modes */ | ||
419 | regs_buff[2] = NXRD32(adapter, NETXEN_NIU_STRAP_VALUE_SAVE_HIGHER); | ||
420 | /* GB/XGB Mode */ | ||
421 | mode = (mode / 2) - 1; | ||
422 | window = 0; | ||
423 | if (mode <= 1) { | ||
424 | for (i = 3; niu_registers[mode].reg[i - 3] != -1; i++) { | ||
425 | /* GB: port specific registers */ | ||
426 | if (mode == 0 && i >= 19) | ||
427 | window = adapter->physical_port * | ||
428 | NETXEN_NIC_PORT_WINDOW; | ||
429 | |||
430 | regs_buff[i] = NXRD32(adapter, | ||
431 | niu_registers[mode].reg[i - 3] + window); | ||
432 | } | ||
433 | 329 | ||
330 | if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC) | ||
331 | return; | ||
332 | |||
333 | regs_buff[i++] = NXRD32(adapter, CRB_CMDPEG_STATE); | ||
334 | regs_buff[i++] = NXRD32(adapter, CRB_RCVPEG_STATE); | ||
335 | regs_buff[i++] = NXRD32(adapter, CRB_FW_CAPABILITIES_1); | ||
336 | regs_buff[i++] = NXRDIO(adapter, adapter->crb_int_state_reg); | ||
337 | regs_buff[i++] = NXRD32(adapter, NX_CRB_DEV_REF_COUNT); | ||
338 | regs_buff[i++] = NXRD32(adapter, NX_CRB_DEV_STATE); | ||
339 | regs_buff[i++] = NXRD32(adapter, NETXEN_PEG_ALIVE_COUNTER); | ||
340 | regs_buff[i++] = NXRD32(adapter, NETXEN_PEG_HALT_STATUS1); | ||
341 | regs_buff[i++] = NXRD32(adapter, NETXEN_PEG_HALT_STATUS2); | ||
342 | |||
343 | regs_buff[i++] = NXRD32(adapter, NETXEN_CRB_PEG_NET_0+0x3c); | ||
344 | regs_buff[i++] = NXRD32(adapter, NETXEN_CRB_PEG_NET_1+0x3c); | ||
345 | regs_buff[i++] = NXRD32(adapter, NETXEN_CRB_PEG_NET_2+0x3c); | ||
346 | regs_buff[i++] = NXRD32(adapter, NETXEN_CRB_PEG_NET_3+0x3c); | ||
347 | |||
348 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { | ||
349 | |||
350 | regs_buff[i++] = NXRD32(adapter, NETXEN_CRB_PEG_NET_4+0x3c); | ||
351 | i += 2; | ||
352 | |||
353 | regs_buff[i++] = NXRD32(adapter, CRB_XG_STATE_P3); | ||
354 | regs_buff[i++] = le32_to_cpu(*(adapter->tx_ring->hw_consumer)); | ||
355 | |||
356 | } else { | ||
357 | i++; | ||
358 | |||
359 | regs_buff[i++] = NXRD32(adapter, | ||
360 | NETXEN_NIU_XGE_CONFIG_0+(0x10000*port)); | ||
361 | regs_buff[i++] = NXRD32(adapter, | ||
362 | NETXEN_NIU_XGE_CONFIG_1+(0x10000*port)); | ||
363 | |||
364 | regs_buff[i++] = NXRD32(adapter, CRB_XG_STATE); | ||
365 | regs_buff[i++] = NXRDIO(adapter, | ||
366 | adapter->tx_ring->crb_cmd_consumer); | ||
367 | } | ||
368 | |||
369 | regs_buff[i++] = NXRDIO(adapter, adapter->tx_ring->crb_cmd_producer); | ||
370 | |||
371 | regs_buff[i++] = NXRDIO(adapter, | ||
372 | recv_ctx->rds_rings[0].crb_rcv_producer); | ||
373 | regs_buff[i++] = NXRDIO(adapter, | ||
374 | recv_ctx->rds_rings[1].crb_rcv_producer); | ||
375 | |||
376 | regs_buff[i++] = adapter->max_sds_rings; | ||
377 | |||
378 | for (ring = 0; ring < adapter->max_sds_rings; ring++) { | ||
379 | sds_ring = &(recv_ctx->sds_rings[ring]); | ||
380 | regs_buff[i++] = NXRDIO(adapter, | ||
381 | sds_ring->crb_sts_consumer); | ||
434 | } | 382 | } |
435 | } | 383 | } |
436 | 384 | ||
437 | static u32 netxen_nic_test_link(struct net_device *dev) | 385 | static u32 netxen_nic_test_link(struct net_device *dev) |
438 | { | 386 | { |
439 | struct netxen_adapter *adapter = netdev_priv(dev); | 387 | struct netxen_adapter *adapter = netdev_priv(dev); |
440 | __u32 status; | 388 | u32 val, port; |
441 | int val; | ||
442 | 389 | ||
443 | /* read which mode */ | 390 | port = adapter->physical_port; |
444 | if (adapter->ahw.port_type == NETXEN_NIC_GBE) { | 391 | if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) { |
445 | if (adapter->phy_read && | 392 | val = NXRD32(adapter, CRB_XG_STATE_P3); |
446 | adapter->phy_read(adapter, | 393 | val = XG_LINK_STATE_P3(adapter->ahw.pci_func, val); |
447 | NETXEN_NIU_GB_MII_MGMT_ADDR_PHY_STATUS, | 394 | return (val == XG_LINK_UP_P3) ? 0 : 1; |
448 | &status) != 0) | 395 | } else { |
449 | return -EIO; | ||
450 | else { | ||
451 | val = netxen_get_phy_link(status); | ||
452 | return !val; | ||
453 | } | ||
454 | } else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) { | ||
455 | val = NXRD32(adapter, CRB_XG_STATE); | 396 | val = NXRD32(adapter, CRB_XG_STATE); |
397 | val = (val >> port*8) & 0xff; | ||
456 | return (val == XG_LINK_UP) ? 0 : 1; | 398 | return (val == XG_LINK_UP) ? 0 : 1; |
457 | } | 399 | } |
458 | return -EIO; | ||
459 | } | 400 | } |
460 | 401 | ||
461 | static int | 402 | static int |
diff --git a/drivers/net/netxen/netxen_nic_hw.c b/drivers/net/netxen/netxen_nic_hw.c index 2e364fee3cb..85e28e60ecf 100644 --- a/drivers/net/netxen/netxen_nic_hw.c +++ b/drivers/net/netxen/netxen_nic_hw.c | |||
@@ -345,8 +345,7 @@ netxen_pcie_sem_lock(struct netxen_adapter *adapter, int sem, u32 id_reg) | |||
345 | void | 345 | void |
346 | netxen_pcie_sem_unlock(struct netxen_adapter *adapter, int sem) | 346 | netxen_pcie_sem_unlock(struct netxen_adapter *adapter, int sem) |
347 | { | 347 | { |
348 | int val; | 348 | NXRD32(adapter, NETXEN_PCIE_REG(PCIE_SEM_UNLOCK(sem))); |
349 | val = NXRD32(adapter, NETXEN_PCIE_REG(PCIE_SEM_UNLOCK(sem))); | ||
350 | } | 349 | } |
351 | 350 | ||
352 | int netxen_niu_xg_init_port(struct netxen_adapter *adapter, int port) | 351 | int netxen_niu_xg_init_port(struct netxen_adapter *adapter, int port) |
@@ -691,6 +690,9 @@ void netxen_p3_nic_set_multi(struct net_device *netdev) | |||
691 | struct list_head *head; | 690 | struct list_head *head; |
692 | nx_mac_list_t *cur; | 691 | nx_mac_list_t *cur; |
693 | 692 | ||
693 | if (adapter->is_up != NETXEN_ADAPTER_UP_MAGIC) | ||
694 | return; | ||
695 | |||
694 | list_splice_tail_init(&adapter->mac_list, &del_list); | 696 | list_splice_tail_init(&adapter->mac_list, &del_list); |
695 | 697 | ||
696 | nx_p3_nic_add_mac(adapter, adapter->mac_addr, &del_list); | 698 | nx_p3_nic_add_mac(adapter, adapter->mac_addr, &del_list); |
diff --git a/drivers/net/netxen/netxen_nic_init.c b/drivers/net/netxen/netxen_nic_init.c index 02f8d4b4db6..64cff68d372 100644 --- a/drivers/net/netxen/netxen_nic_init.c +++ b/drivers/net/netxen/netxen_nic_init.c | |||
@@ -184,6 +184,8 @@ skip_rds: | |||
184 | 184 | ||
185 | tx_ring = adapter->tx_ring; | 185 | tx_ring = adapter->tx_ring; |
186 | vfree(tx_ring->cmd_buf_arr); | 186 | vfree(tx_ring->cmd_buf_arr); |
187 | kfree(tx_ring); | ||
188 | adapter->tx_ring = NULL; | ||
187 | } | 189 | } |
188 | 190 | ||
189 | int netxen_alloc_sw_resources(struct netxen_adapter *adapter) | 191 | int netxen_alloc_sw_resources(struct netxen_adapter *adapter) |
@@ -782,7 +784,7 @@ netxen_need_fw_reset(struct netxen_adapter *adapter) | |||
782 | if (NXRD32(adapter, CRB_CMDPEG_STATE) == PHAN_INITIALIZE_FAILED) | 784 | if (NXRD32(adapter, CRB_CMDPEG_STATE) == PHAN_INITIALIZE_FAILED) |
783 | return 1; | 785 | return 1; |
784 | 786 | ||
785 | old_count = count = NXRD32(adapter, NETXEN_PEG_ALIVE_COUNTER); | 787 | old_count = NXRD32(adapter, NETXEN_PEG_ALIVE_COUNTER); |
786 | 788 | ||
787 | for (i = 0; i < 10; i++) { | 789 | for (i = 0; i < 10; i++) { |
788 | 790 | ||
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c index 6cae26a5bd6..9f9d6081959 100644 --- a/drivers/net/netxen/netxen_nic_main.c +++ b/drivers/net/netxen/netxen_nic_main.c | |||
@@ -340,7 +340,7 @@ netxen_check_hw_init(struct netxen_adapter *adapter, int first_boot) | |||
340 | if (!(first_boot & 0x4)) { | 340 | if (!(first_boot & 0x4)) { |
341 | first_boot |= 0x4; | 341 | first_boot |= 0x4; |
342 | NXWR32(adapter, NETXEN_PCIE_REG(0x4), first_boot); | 342 | NXWR32(adapter, NETXEN_PCIE_REG(0x4), first_boot); |
343 | first_boot = NXRD32(adapter, NETXEN_PCIE_REG(0x4)); | 343 | NXRD32(adapter, NETXEN_PCIE_REG(0x4)); |
344 | } | 344 | } |
345 | 345 | ||
346 | /* This is the first boot after power up */ | 346 | /* This is the first boot after power up */ |
@@ -1898,12 +1898,8 @@ static void netxen_nic_handle_phy_intr(struct netxen_adapter *adapter) | |||
1898 | linkup = (val == XG_LINK_UP_P3); | 1898 | linkup = (val == XG_LINK_UP_P3); |
1899 | } else { | 1899 | } else { |
1900 | val = NXRD32(adapter, CRB_XG_STATE); | 1900 | val = NXRD32(adapter, CRB_XG_STATE); |
1901 | if (adapter->ahw.port_type == NETXEN_NIC_GBE) | 1901 | val = (val >> port*8) & 0xff; |
1902 | linkup = (val >> port) & 1; | 1902 | linkup = (val == XG_LINK_UP); |
1903 | else { | ||
1904 | val = (val >> port*8) & 0xff; | ||
1905 | linkup = (val == XG_LINK_UP); | ||
1906 | } | ||
1907 | } | 1903 | } |
1908 | 1904 | ||
1909 | netxen_advert_link_change(adapter, linkup); | 1905 | netxen_advert_link_change(adapter, linkup); |
diff --git a/drivers/net/niu.c b/drivers/net/niu.c index 8ce58c4c7dd..2aed2b382c4 100644 --- a/drivers/net/niu.c +++ b/drivers/net/niu.c | |||
@@ -2844,7 +2844,7 @@ static int tcam_wait_bit(struct niu *np, u64 bit) | |||
2844 | break; | 2844 | break; |
2845 | udelay(1); | 2845 | udelay(1); |
2846 | } | 2846 | } |
2847 | if (limit < 0) | 2847 | if (limit <= 0) |
2848 | return -ENODEV; | 2848 | return -ENODEV; |
2849 | 2849 | ||
2850 | return 0; | 2850 | return 0; |
diff --git a/drivers/net/pcmcia/nmclan_cs.c b/drivers/net/pcmcia/nmclan_cs.c index 8a5ae3b182e..12e3233868e 100644 --- a/drivers/net/pcmcia/nmclan_cs.c +++ b/drivers/net/pcmcia/nmclan_cs.c | |||
@@ -1402,7 +1402,6 @@ static void BuildLAF(int *ladrf, int *adr) | |||
1402 | for (i = 0; i < 8; i++) | 1402 | for (i = 0; i < 8; i++) |
1403 | printk(KERN_CONT " %02X", ladrf[i]); | 1403 | printk(KERN_CONT " %02X", ladrf[i]); |
1404 | printk(KERN_CONT "\n"); | 1404 | printk(KERN_CONT "\n"); |
1405 | } | ||
1406 | #endif | 1405 | #endif |
1407 | } /* BuildLAF */ | 1406 | } /* BuildLAF */ |
1408 | 1407 | ||
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c index 92ed3fbf89a..776cad2f571 100644 --- a/drivers/net/pcmcia/pcnet_cs.c +++ b/drivers/net/pcmcia/pcnet_cs.c | |||
@@ -1741,7 +1741,7 @@ static struct pcmcia_device_id pcnet_ids[] = { | |||
1741 | PCMCIA_MFC_DEVICE_CIS_PROD_ID4(0, "NSC MF LAN/Modem", 0x58fc6056, "cis/DP83903.cis"), | 1741 | PCMCIA_MFC_DEVICE_CIS_PROD_ID4(0, "NSC MF LAN/Modem", 0x58fc6056, "cis/DP83903.cis"), |
1742 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0175, 0x0000, "cis/DP83903.cis"), | 1742 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(0, 0x0175, 0x0000, "cis/DP83903.cis"), |
1743 | PCMCIA_DEVICE_CIS_MANF_CARD(0xc00f, 0x0002, "cis/LA-PCM.cis"), | 1743 | PCMCIA_DEVICE_CIS_MANF_CARD(0xc00f, 0x0002, "cis/LA-PCM.cis"), |
1744 | PCMCIA_DEVICE_CIS_PROD_ID12("KTI", "PE520 PLUS", 0xad180345, 0x9d58d392, "PE520.cis"), | 1744 | PCMCIA_DEVICE_CIS_PROD_ID12("KTI", "PE520 PLUS", 0xad180345, 0x9d58d392, "cis/PE520.cis"), |
1745 | PCMCIA_DEVICE_CIS_PROD_ID12("NDC", "Ethernet", 0x01c43ae1, 0x00b2e941, "cis/NE2K.cis"), | 1745 | PCMCIA_DEVICE_CIS_PROD_ID12("NDC", "Ethernet", 0x01c43ae1, 0x00b2e941, "cis/NE2K.cis"), |
1746 | PCMCIA_DEVICE_CIS_PROD_ID12("PMX ", "PE-200", 0x34f3f1c8, 0x10b59f8c, "cis/PE-200.cis"), | 1746 | PCMCIA_DEVICE_CIS_PROD_ID12("PMX ", "PE-200", 0x34f3f1c8, 0x10b59f8c, "cis/PE-200.cis"), |
1747 | PCMCIA_DEVICE_CIS_PROD_ID12("TAMARACK", "Ethernet", 0xcf434fba, 0x00b2e941, "cis/tamarack.cis"), | 1747 | PCMCIA_DEVICE_CIS_PROD_ID12("TAMARACK", "Ethernet", 0xcf434fba, 0x00b2e941, "cis/tamarack.cis"), |
@@ -1754,7 +1754,7 @@ MODULE_DEVICE_TABLE(pcmcia, pcnet_ids); | |||
1754 | MODULE_FIRMWARE("cis/PCMLM28.cis"); | 1754 | MODULE_FIRMWARE("cis/PCMLM28.cis"); |
1755 | MODULE_FIRMWARE("cis/DP83903.cis"); | 1755 | MODULE_FIRMWARE("cis/DP83903.cis"); |
1756 | MODULE_FIRMWARE("cis/LA-PCM.cis"); | 1756 | MODULE_FIRMWARE("cis/LA-PCM.cis"); |
1757 | MODULE_FIRMWARE("PE520.cis"); | 1757 | MODULE_FIRMWARE("cis/PE520.cis"); |
1758 | MODULE_FIRMWARE("cis/NE2K.cis"); | 1758 | MODULE_FIRMWARE("cis/NE2K.cis"); |
1759 | MODULE_FIRMWARE("cis/PE-200.cis"); | 1759 | MODULE_FIRMWARE("cis/PE-200.cis"); |
1760 | MODULE_FIRMWARE("cis/tamarack.cis"); | 1760 | MODULE_FIRMWARE("cis/tamarack.cis"); |
diff --git a/drivers/net/pcnet32.c b/drivers/net/pcnet32.c index dcc67a35e8f..e154677ff70 100644 --- a/drivers/net/pcnet32.c +++ b/drivers/net/pcnet32.c | |||
@@ -45,6 +45,7 @@ static const char *const version = | |||
45 | #include <linux/crc32.h> | 45 | #include <linux/crc32.h> |
46 | #include <linux/netdevice.h> | 46 | #include <linux/netdevice.h> |
47 | #include <linux/etherdevice.h> | 47 | #include <linux/etherdevice.h> |
48 | #include <linux/if_ether.h> | ||
48 | #include <linux/skbuff.h> | 49 | #include <linux/skbuff.h> |
49 | #include <linux/spinlock.h> | 50 | #include <linux/spinlock.h> |
50 | #include <linux/moduleparam.h> | 51 | #include <linux/moduleparam.h> |
@@ -1765,7 +1766,7 @@ pcnet32_probe1(unsigned long ioaddr, int shared, struct pci_dev *pdev) | |||
1765 | 1766 | ||
1766 | /* if the ethernet address is not valid, force to 00:00:00:00:00:00 */ | 1767 | /* if the ethernet address is not valid, force to 00:00:00:00:00:00 */ |
1767 | if (!is_valid_ether_addr(dev->perm_addr)) | 1768 | if (!is_valid_ether_addr(dev->perm_addr)) |
1768 | memset(dev->dev_addr, 0, sizeof(dev->dev_addr)); | 1769 | memset(dev->dev_addr, 0, ETH_ALEN); |
1769 | 1770 | ||
1770 | if (pcnet32_debug & NETIF_MSG_PROBE) { | 1771 | if (pcnet32_debug & NETIF_MSG_PROBE) { |
1771 | printk(" %pM", dev->dev_addr); | 1772 | printk(" %pM", dev->dev_addr); |
diff --git a/drivers/net/phy/broadcom.c b/drivers/net/phy/broadcom.c index c13cf64095b..33c4b12a63b 100644 --- a/drivers/net/phy/broadcom.c +++ b/drivers/net/phy/broadcom.c | |||
@@ -331,8 +331,8 @@ static void bcm54xx_adjust_rxrefclk(struct phy_device *phydev) | |||
331 | bool clk125en = true; | 331 | bool clk125en = true; |
332 | 332 | ||
333 | /* Abort if we are using an untested phy. */ | 333 | /* Abort if we are using an untested phy. */ |
334 | if (BRCM_PHY_MODEL(phydev) != PHY_ID_BCM57780 || | 334 | if (BRCM_PHY_MODEL(phydev) != PHY_ID_BCM57780 && |
335 | BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610 || | 335 | BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610 && |
336 | BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610M) | 336 | BRCM_PHY_MODEL(phydev) != PHY_ID_BCM50610M) |
337 | return; | 337 | return; |
338 | 338 | ||
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c index bd4e8d72dc0..e17b70291bb 100644 --- a/drivers/net/phy/mdio_bus.c +++ b/drivers/net/phy/mdio_bus.c | |||
@@ -264,6 +264,8 @@ static int mdio_bus_match(struct device *dev, struct device_driver *drv) | |||
264 | (phydev->phy_id & phydrv->phy_id_mask)); | 264 | (phydev->phy_id & phydrv->phy_id_mask)); |
265 | } | 265 | } |
266 | 266 | ||
267 | #ifdef CONFIG_PM | ||
268 | |||
267 | static bool mdio_bus_phy_may_suspend(struct phy_device *phydev) | 269 | static bool mdio_bus_phy_may_suspend(struct phy_device *phydev) |
268 | { | 270 | { |
269 | struct device_driver *drv = phydev->dev.driver; | 271 | struct device_driver *drv = phydev->dev.driver; |
@@ -295,34 +297,88 @@ static bool mdio_bus_phy_may_suspend(struct phy_device *phydev) | |||
295 | return true; | 297 | return true; |
296 | } | 298 | } |
297 | 299 | ||
298 | /* Suspend and resume. Copied from platform_suspend and | 300 | static int mdio_bus_suspend(struct device *dev) |
299 | * platform_resume | ||
300 | */ | ||
301 | static int mdio_bus_suspend(struct device * dev, pm_message_t state) | ||
302 | { | 301 | { |
303 | struct phy_driver *phydrv = to_phy_driver(dev->driver); | 302 | struct phy_driver *phydrv = to_phy_driver(dev->driver); |
304 | struct phy_device *phydev = to_phy_device(dev); | 303 | struct phy_device *phydev = to_phy_device(dev); |
305 | 304 | ||
305 | /* | ||
306 | * We must stop the state machine manually, otherwise it stops out of | ||
307 | * control, possibly with the phydev->lock held. Upon resume, netdev | ||
308 | * may call phy routines that try to grab the same lock, and that may | ||
309 | * lead to a deadlock. | ||
310 | */ | ||
311 | if (phydev->attached_dev) | ||
312 | phy_stop_machine(phydev); | ||
313 | |||
306 | if (!mdio_bus_phy_may_suspend(phydev)) | 314 | if (!mdio_bus_phy_may_suspend(phydev)) |
307 | return 0; | 315 | return 0; |
316 | |||
308 | return phydrv->suspend(phydev); | 317 | return phydrv->suspend(phydev); |
309 | } | 318 | } |
310 | 319 | ||
311 | static int mdio_bus_resume(struct device * dev) | 320 | static int mdio_bus_resume(struct device *dev) |
312 | { | 321 | { |
313 | struct phy_driver *phydrv = to_phy_driver(dev->driver); | 322 | struct phy_driver *phydrv = to_phy_driver(dev->driver); |
314 | struct phy_device *phydev = to_phy_device(dev); | 323 | struct phy_device *phydev = to_phy_device(dev); |
324 | int ret; | ||
315 | 325 | ||
316 | if (!mdio_bus_phy_may_suspend(phydev)) | 326 | if (!mdio_bus_phy_may_suspend(phydev)) |
327 | goto no_resume; | ||
328 | |||
329 | ret = phydrv->resume(phydev); | ||
330 | if (ret < 0) | ||
331 | return ret; | ||
332 | |||
333 | no_resume: | ||
334 | if (phydev->attached_dev) | ||
335 | phy_start_machine(phydev, NULL); | ||
336 | |||
337 | return 0; | ||
338 | } | ||
339 | |||
340 | static int mdio_bus_restore(struct device *dev) | ||
341 | { | ||
342 | struct phy_device *phydev = to_phy_device(dev); | ||
343 | struct net_device *netdev = phydev->attached_dev; | ||
344 | int ret; | ||
345 | |||
346 | if (!netdev) | ||
317 | return 0; | 347 | return 0; |
318 | return phydrv->resume(phydev); | 348 | |
349 | ret = phy_init_hw(phydev); | ||
350 | if (ret < 0) | ||
351 | return ret; | ||
352 | |||
353 | /* The PHY needs to renegotiate. */ | ||
354 | phydev->link = 0; | ||
355 | phydev->state = PHY_UP; | ||
356 | |||
357 | phy_start_machine(phydev, NULL); | ||
358 | |||
359 | return 0; | ||
319 | } | 360 | } |
320 | 361 | ||
362 | static struct dev_pm_ops mdio_bus_pm_ops = { | ||
363 | .suspend = mdio_bus_suspend, | ||
364 | .resume = mdio_bus_resume, | ||
365 | .freeze = mdio_bus_suspend, | ||
366 | .thaw = mdio_bus_resume, | ||
367 | .restore = mdio_bus_restore, | ||
368 | }; | ||
369 | |||
370 | #define MDIO_BUS_PM_OPS (&mdio_bus_pm_ops) | ||
371 | |||
372 | #else | ||
373 | |||
374 | #define MDIO_BUS_PM_OPS NULL | ||
375 | |||
376 | #endif /* CONFIG_PM */ | ||
377 | |||
321 | struct bus_type mdio_bus_type = { | 378 | struct bus_type mdio_bus_type = { |
322 | .name = "mdio_bus", | 379 | .name = "mdio_bus", |
323 | .match = mdio_bus_match, | 380 | .match = mdio_bus_match, |
324 | .suspend = mdio_bus_suspend, | 381 | .pm = MDIO_BUS_PM_OPS, |
325 | .resume = mdio_bus_resume, | ||
326 | }; | 382 | }; |
327 | EXPORT_SYMBOL(mdio_bus_type); | 383 | EXPORT_SYMBOL(mdio_bus_type); |
328 | 384 | ||
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index b10fedd8214..8212b2b9342 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c | |||
@@ -378,6 +378,20 @@ void phy_disconnect(struct phy_device *phydev) | |||
378 | } | 378 | } |
379 | EXPORT_SYMBOL(phy_disconnect); | 379 | EXPORT_SYMBOL(phy_disconnect); |
380 | 380 | ||
381 | int phy_init_hw(struct phy_device *phydev) | ||
382 | { | ||
383 | int ret; | ||
384 | |||
385 | if (!phydev->drv || !phydev->drv->config_init) | ||
386 | return 0; | ||
387 | |||
388 | ret = phy_scan_fixups(phydev); | ||
389 | if (ret < 0) | ||
390 | return ret; | ||
391 | |||
392 | return phydev->drv->config_init(phydev); | ||
393 | } | ||
394 | |||
381 | /** | 395 | /** |
382 | * phy_attach_direct - attach a network device to a given PHY device pointer | 396 | * phy_attach_direct - attach a network device to a given PHY device pointer |
383 | * @dev: network device to attach | 397 | * @dev: network device to attach |
@@ -425,21 +439,7 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, | |||
425 | /* Do initial configuration here, now that | 439 | /* Do initial configuration here, now that |
426 | * we have certain key parameters | 440 | * we have certain key parameters |
427 | * (dev_flags and interface) */ | 441 | * (dev_flags and interface) */ |
428 | if (phydev->drv->config_init) { | 442 | return phy_init_hw(phydev); |
429 | int err; | ||
430 | |||
431 | err = phy_scan_fixups(phydev); | ||
432 | |||
433 | if (err < 0) | ||
434 | return err; | ||
435 | |||
436 | err = phydev->drv->config_init(phydev); | ||
437 | |||
438 | if (err < 0) | ||
439 | return err; | ||
440 | } | ||
441 | |||
442 | return 0; | ||
443 | } | 443 | } |
444 | EXPORT_SYMBOL(phy_attach_direct); | 444 | EXPORT_SYMBOL(phy_attach_direct); |
445 | 445 | ||
diff --git a/drivers/net/rrunner.c b/drivers/net/rrunner.c index 20a71749154..1c257098d0a 100644 --- a/drivers/net/rrunner.c +++ b/drivers/net/rrunner.c | |||
@@ -1293,7 +1293,7 @@ static void rr_dump(struct net_device *dev) | |||
1293 | 1293 | ||
1294 | printk("Error code 0x%x\n", readl(®s->Fail1)); | 1294 | printk("Error code 0x%x\n", readl(®s->Fail1)); |
1295 | 1295 | ||
1296 | index = (((readl(®s->EvtPrd) >> 8) & 0xff ) - 1) % EVT_RING_ENTRIES; | 1296 | index = (((readl(®s->EvtPrd) >> 8) & 0xff) - 1) % TX_RING_ENTRIES; |
1297 | cons = rrpriv->dirty_tx; | 1297 | cons = rrpriv->dirty_tx; |
1298 | printk("TX ring index %i, TX consumer %i\n", | 1298 | printk("TX ring index %i, TX consumer %i\n", |
1299 | index, cons); | 1299 | index, cons); |
diff --git a/drivers/net/sfc/efx.c b/drivers/net/sfc/efx.c index f983e3b507c..103e8b0e2a0 100644 --- a/drivers/net/sfc/efx.c +++ b/drivers/net/sfc/efx.c | |||
@@ -741,14 +741,14 @@ static int efx_probe_port(struct efx_nic *efx) | |||
741 | 741 | ||
742 | EFX_LOG(efx, "create port\n"); | 742 | EFX_LOG(efx, "create port\n"); |
743 | 743 | ||
744 | if (phy_flash_cfg) | ||
745 | efx->phy_mode = PHY_MODE_SPECIAL; | ||
746 | |||
744 | /* Connect up MAC/PHY operations table */ | 747 | /* Connect up MAC/PHY operations table */ |
745 | rc = efx->type->probe_port(efx); | 748 | rc = efx->type->probe_port(efx); |
746 | if (rc) | 749 | if (rc) |
747 | goto err; | 750 | goto err; |
748 | 751 | ||
749 | if (phy_flash_cfg) | ||
750 | efx->phy_mode = PHY_MODE_SPECIAL; | ||
751 | |||
752 | /* Sanity check MAC address */ | 752 | /* Sanity check MAC address */ |
753 | if (is_valid_ether_addr(efx->mac_address)) { | 753 | if (is_valid_ether_addr(efx->mac_address)) { |
754 | memcpy(efx->net_dev->dev_addr, efx->mac_address, ETH_ALEN); | 754 | memcpy(efx->net_dev->dev_addr, efx->mac_address, ETH_ALEN); |
diff --git a/drivers/net/sfc/falcon.c b/drivers/net/sfc/falcon.c index 17afcd26e87..9d009c46e96 100644 --- a/drivers/net/sfc/falcon.c +++ b/drivers/net/sfc/falcon.c | |||
@@ -925,6 +925,7 @@ static int falcon_probe_port(struct efx_nic *efx) | |||
925 | 925 | ||
926 | static void falcon_remove_port(struct efx_nic *efx) | 926 | static void falcon_remove_port(struct efx_nic *efx) |
927 | { | 927 | { |
928 | efx->phy_op->remove(efx); | ||
928 | efx_nic_free_buffer(efx, &efx->stats_buffer); | 929 | efx_nic_free_buffer(efx, &efx->stats_buffer); |
929 | } | 930 | } |
930 | 931 | ||
diff --git a/drivers/net/sfc/falcon_xmac.c b/drivers/net/sfc/falcon_xmac.c index 3da933f8f07..8ccab2c67a2 100644 --- a/drivers/net/sfc/falcon_xmac.c +++ b/drivers/net/sfc/falcon_xmac.c | |||
@@ -111,16 +111,12 @@ static void falcon_mask_status_intr(struct efx_nic *efx, bool enable) | |||
111 | efx_writeo(efx, ®, FR_AB_XM_MGT_INT_MASK); | 111 | efx_writeo(efx, ®, FR_AB_XM_MGT_INT_MASK); |
112 | } | 112 | } |
113 | 113 | ||
114 | /* Get status of XAUI link */ | 114 | static bool falcon_xgxs_link_ok(struct efx_nic *efx) |
115 | static bool falcon_xaui_link_ok(struct efx_nic *efx) | ||
116 | { | 115 | { |
117 | efx_oword_t reg; | 116 | efx_oword_t reg; |
118 | bool align_done, link_ok = false; | 117 | bool align_done, link_ok = false; |
119 | int sync_status; | 118 | int sync_status; |
120 | 119 | ||
121 | if (LOOPBACK_INTERNAL(efx)) | ||
122 | return true; | ||
123 | |||
124 | /* Read link status */ | 120 | /* Read link status */ |
125 | efx_reado(efx, ®, FR_AB_XX_CORE_STAT); | 121 | efx_reado(efx, ®, FR_AB_XX_CORE_STAT); |
126 | 122 | ||
@@ -135,14 +131,24 @@ static bool falcon_xaui_link_ok(struct efx_nic *efx) | |||
135 | EFX_SET_OWORD_FIELD(reg, FRF_AB_XX_DISPERR, FFE_AB_XX_STAT_ALL_LANES); | 131 | EFX_SET_OWORD_FIELD(reg, FRF_AB_XX_DISPERR, FFE_AB_XX_STAT_ALL_LANES); |
136 | efx_writeo(efx, ®, FR_AB_XX_CORE_STAT); | 132 | efx_writeo(efx, ®, FR_AB_XX_CORE_STAT); |
137 | 133 | ||
138 | /* If the link is up, then check the phy side of the xaui link */ | ||
139 | if (efx->link_state.up && link_ok) | ||
140 | if (efx->mdio.mmds & (1 << MDIO_MMD_PHYXS)) | ||
141 | link_ok = efx_mdio_phyxgxs_lane_sync(efx); | ||
142 | |||
143 | return link_ok; | 134 | return link_ok; |
144 | } | 135 | } |
145 | 136 | ||
137 | static bool falcon_xmac_link_ok(struct efx_nic *efx) | ||
138 | { | ||
139 | /* | ||
140 | * Check MAC's XGXS link status except when using XGMII loopback | ||
141 | * which bypasses the XGXS block. | ||
142 | * If possible, check PHY's XGXS link status except when using | ||
143 | * MAC loopback. | ||
144 | */ | ||
145 | return (efx->loopback_mode == LOOPBACK_XGMII || | ||
146 | falcon_xgxs_link_ok(efx)) && | ||
147 | (!(efx->mdio.mmds & (1 << MDIO_MMD_PHYXS)) || | ||
148 | LOOPBACK_INTERNAL(efx) || | ||
149 | efx_mdio_phyxgxs_lane_sync(efx)); | ||
150 | } | ||
151 | |||
146 | void falcon_reconfigure_xmac_core(struct efx_nic *efx) | 152 | void falcon_reconfigure_xmac_core(struct efx_nic *efx) |
147 | { | 153 | { |
148 | unsigned int max_frame_len; | 154 | unsigned int max_frame_len; |
@@ -245,9 +251,9 @@ static void falcon_reconfigure_xgxs_core(struct efx_nic *efx) | |||
245 | 251 | ||
246 | 252 | ||
247 | /* Try to bring up the Falcon side of the Falcon-Phy XAUI link */ | 253 | /* Try to bring up the Falcon side of the Falcon-Phy XAUI link */ |
248 | static bool falcon_check_xaui_link_up(struct efx_nic *efx, int tries) | 254 | static bool falcon_xmac_link_ok_retry(struct efx_nic *efx, int tries) |
249 | { | 255 | { |
250 | bool mac_up = falcon_xaui_link_ok(efx); | 256 | bool mac_up = falcon_xmac_link_ok(efx); |
251 | 257 | ||
252 | if (LOOPBACK_MASK(efx) & LOOPBACKS_EXTERNAL(efx) & LOOPBACKS_WS || | 258 | if (LOOPBACK_MASK(efx) & LOOPBACKS_EXTERNAL(efx) & LOOPBACKS_WS || |
253 | efx_phy_mode_disabled(efx->phy_mode)) | 259 | efx_phy_mode_disabled(efx->phy_mode)) |
@@ -261,7 +267,7 @@ static bool falcon_check_xaui_link_up(struct efx_nic *efx, int tries) | |||
261 | falcon_reset_xaui(efx); | 267 | falcon_reset_xaui(efx); |
262 | udelay(200); | 268 | udelay(200); |
263 | 269 | ||
264 | mac_up = falcon_xaui_link_ok(efx); | 270 | mac_up = falcon_xmac_link_ok(efx); |
265 | --tries; | 271 | --tries; |
266 | } | 272 | } |
267 | 273 | ||
@@ -272,7 +278,7 @@ static bool falcon_check_xaui_link_up(struct efx_nic *efx, int tries) | |||
272 | 278 | ||
273 | static bool falcon_xmac_check_fault(struct efx_nic *efx) | 279 | static bool falcon_xmac_check_fault(struct efx_nic *efx) |
274 | { | 280 | { |
275 | return !falcon_check_xaui_link_up(efx, 5); | 281 | return !falcon_xmac_link_ok_retry(efx, 5); |
276 | } | 282 | } |
277 | 283 | ||
278 | static int falcon_reconfigure_xmac(struct efx_nic *efx) | 284 | static int falcon_reconfigure_xmac(struct efx_nic *efx) |
@@ -284,7 +290,7 @@ static int falcon_reconfigure_xmac(struct efx_nic *efx) | |||
284 | 290 | ||
285 | falcon_reconfigure_mac_wrapper(efx); | 291 | falcon_reconfigure_mac_wrapper(efx); |
286 | 292 | ||
287 | efx->xmac_poll_required = !falcon_check_xaui_link_up(efx, 5); | 293 | efx->xmac_poll_required = !falcon_xmac_link_ok_retry(efx, 5); |
288 | falcon_mask_status_intr(efx, true); | 294 | falcon_mask_status_intr(efx, true); |
289 | 295 | ||
290 | return 0; | 296 | return 0; |
@@ -357,7 +363,7 @@ void falcon_poll_xmac(struct efx_nic *efx) | |||
357 | return; | 363 | return; |
358 | 364 | ||
359 | falcon_mask_status_intr(efx, false); | 365 | falcon_mask_status_intr(efx, false); |
360 | efx->xmac_poll_required = !falcon_check_xaui_link_up(efx, 1); | 366 | efx->xmac_poll_required = !falcon_xmac_link_ok_retry(efx, 1); |
361 | falcon_mask_status_intr(efx, true); | 367 | falcon_mask_status_intr(efx, true); |
362 | } | 368 | } |
363 | 369 | ||
diff --git a/drivers/net/sfc/mcdi.c b/drivers/net/sfc/mcdi.c index 683353b904c..0d4eba7266e 100644 --- a/drivers/net/sfc/mcdi.c +++ b/drivers/net/sfc/mcdi.c | |||
@@ -142,8 +142,9 @@ static int efx_mcdi_poll(struct efx_nic *efx) | |||
142 | if (spins != 0) { | 142 | if (spins != 0) { |
143 | --spins; | 143 | --spins; |
144 | udelay(1); | 144 | udelay(1); |
145 | } else | 145 | } else { |
146 | schedule(); | 146 | schedule_timeout_uninterruptible(1); |
147 | } | ||
147 | 148 | ||
148 | time = get_seconds(); | 149 | time = get_seconds(); |
149 | 150 | ||
diff --git a/drivers/net/sfc/mcdi_phy.c b/drivers/net/sfc/mcdi_phy.c index 0e1bcc5a0d5..eb694af7a47 100644 --- a/drivers/net/sfc/mcdi_phy.c +++ b/drivers/net/sfc/mcdi_phy.c | |||
@@ -304,31 +304,47 @@ static u32 mcdi_to_ethtool_media(u32 media) | |||
304 | 304 | ||
305 | static int efx_mcdi_phy_probe(struct efx_nic *efx) | 305 | static int efx_mcdi_phy_probe(struct efx_nic *efx) |
306 | { | 306 | { |
307 | struct efx_mcdi_phy_cfg *phy_cfg; | 307 | struct efx_mcdi_phy_cfg *phy_data; |
308 | u8 outbuf[MC_CMD_GET_LINK_OUT_LEN]; | ||
309 | u32 caps; | ||
308 | int rc; | 310 | int rc; |
309 | 311 | ||
310 | /* TODO: Move phy_data initialisation to | 312 | /* Initialise and populate phy_data */ |
311 | * phy_op->probe/remove, rather than init/fini */ | 313 | phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL); |
312 | phy_cfg = kzalloc(sizeof(*phy_cfg), GFP_KERNEL); | 314 | if (phy_data == NULL) |
313 | if (phy_cfg == NULL) { | 315 | return -ENOMEM; |
314 | rc = -ENOMEM; | 316 | |
315 | goto fail_alloc; | 317 | rc = efx_mcdi_get_phy_cfg(efx, phy_data); |
316 | } | ||
317 | rc = efx_mcdi_get_phy_cfg(efx, phy_cfg); | ||
318 | if (rc != 0) | 318 | if (rc != 0) |
319 | goto fail; | 319 | goto fail; |
320 | 320 | ||
321 | efx->phy_type = phy_cfg->type; | 321 | /* Read initial link advertisement */ |
322 | BUILD_BUG_ON(MC_CMD_GET_LINK_IN_LEN != 0); | ||
323 | rc = efx_mcdi_rpc(efx, MC_CMD_GET_LINK, NULL, 0, | ||
324 | outbuf, sizeof(outbuf), NULL); | ||
325 | if (rc) | ||
326 | goto fail; | ||
327 | |||
328 | /* Fill out nic state */ | ||
329 | efx->phy_data = phy_data; | ||
330 | efx->phy_type = phy_data->type; | ||
322 | 331 | ||
323 | efx->mdio_bus = phy_cfg->channel; | 332 | efx->mdio_bus = phy_data->channel; |
324 | efx->mdio.prtad = phy_cfg->port; | 333 | efx->mdio.prtad = phy_data->port; |
325 | efx->mdio.mmds = phy_cfg->mmd_mask & ~(1 << MC_CMD_MMD_CLAUSE22); | 334 | efx->mdio.mmds = phy_data->mmd_mask & ~(1 << MC_CMD_MMD_CLAUSE22); |
326 | efx->mdio.mode_support = 0; | 335 | efx->mdio.mode_support = 0; |
327 | if (phy_cfg->mmd_mask & (1 << MC_CMD_MMD_CLAUSE22)) | 336 | if (phy_data->mmd_mask & (1 << MC_CMD_MMD_CLAUSE22)) |
328 | efx->mdio.mode_support |= MDIO_SUPPORTS_C22; | 337 | efx->mdio.mode_support |= MDIO_SUPPORTS_C22; |
329 | if (phy_cfg->mmd_mask & ~(1 << MC_CMD_MMD_CLAUSE22)) | 338 | if (phy_data->mmd_mask & ~(1 << MC_CMD_MMD_CLAUSE22)) |
330 | efx->mdio.mode_support |= MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22; | 339 | efx->mdio.mode_support |= MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22; |
331 | 340 | ||
341 | caps = MCDI_DWORD(outbuf, GET_LINK_OUT_CAP); | ||
342 | if (caps & (1 << MC_CMD_PHY_CAP_AN_LBN)) | ||
343 | efx->link_advertising = | ||
344 | mcdi_to_ethtool_cap(phy_data->media, caps); | ||
345 | else | ||
346 | phy_data->forced_cap = caps; | ||
347 | |||
332 | /* Assert that we can map efx -> mcdi loopback modes */ | 348 | /* Assert that we can map efx -> mcdi loopback modes */ |
333 | BUILD_BUG_ON(LOOPBACK_NONE != MC_CMD_LOOPBACK_NONE); | 349 | BUILD_BUG_ON(LOOPBACK_NONE != MC_CMD_LOOPBACK_NONE); |
334 | BUILD_BUG_ON(LOOPBACK_DATA != MC_CMD_LOOPBACK_DATA); | 350 | BUILD_BUG_ON(LOOPBACK_DATA != MC_CMD_LOOPBACK_DATA); |
@@ -365,46 +381,6 @@ static int efx_mcdi_phy_probe(struct efx_nic *efx) | |||
365 | * but by convention we don't */ | 381 | * but by convention we don't */ |
366 | efx->loopback_modes &= ~(1 << LOOPBACK_NONE); | 382 | efx->loopback_modes &= ~(1 << LOOPBACK_NONE); |
367 | 383 | ||
368 | kfree(phy_cfg); | ||
369 | |||
370 | return 0; | ||
371 | |||
372 | fail: | ||
373 | kfree(phy_cfg); | ||
374 | fail_alloc: | ||
375 | return rc; | ||
376 | } | ||
377 | |||
378 | static int efx_mcdi_phy_init(struct efx_nic *efx) | ||
379 | { | ||
380 | struct efx_mcdi_phy_cfg *phy_data; | ||
381 | u8 outbuf[MC_CMD_GET_LINK_OUT_LEN]; | ||
382 | u32 caps; | ||
383 | int rc; | ||
384 | |||
385 | phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL); | ||
386 | if (phy_data == NULL) | ||
387 | return -ENOMEM; | ||
388 | |||
389 | rc = efx_mcdi_get_phy_cfg(efx, phy_data); | ||
390 | if (rc != 0) | ||
391 | goto fail; | ||
392 | |||
393 | efx->phy_data = phy_data; | ||
394 | |||
395 | BUILD_BUG_ON(MC_CMD_GET_LINK_IN_LEN != 0); | ||
396 | rc = efx_mcdi_rpc(efx, MC_CMD_GET_LINK, NULL, 0, | ||
397 | outbuf, sizeof(outbuf), NULL); | ||
398 | if (rc) | ||
399 | goto fail; | ||
400 | |||
401 | caps = MCDI_DWORD(outbuf, GET_LINK_OUT_CAP); | ||
402 | if (caps & (1 << MC_CMD_PHY_CAP_AN_LBN)) | ||
403 | efx->link_advertising = | ||
404 | mcdi_to_ethtool_cap(phy_data->media, caps); | ||
405 | else | ||
406 | phy_data->forced_cap = caps; | ||
407 | |||
408 | return 0; | 384 | return 0; |
409 | 385 | ||
410 | fail: | 386 | fail: |
@@ -504,7 +480,7 @@ static bool efx_mcdi_phy_poll(struct efx_nic *efx) | |||
504 | return !efx_link_state_equal(&efx->link_state, &old_state); | 480 | return !efx_link_state_equal(&efx->link_state, &old_state); |
505 | } | 481 | } |
506 | 482 | ||
507 | static void efx_mcdi_phy_fini(struct efx_nic *efx) | 483 | static void efx_mcdi_phy_remove(struct efx_nic *efx) |
508 | { | 484 | { |
509 | struct efx_mcdi_phy_data *phy_data = efx->phy_data; | 485 | struct efx_mcdi_phy_data *phy_data = efx->phy_data; |
510 | 486 | ||
@@ -586,10 +562,11 @@ static int efx_mcdi_phy_set_settings(struct efx_nic *efx, struct ethtool_cmd *ec | |||
586 | 562 | ||
587 | struct efx_phy_operations efx_mcdi_phy_ops = { | 563 | struct efx_phy_operations efx_mcdi_phy_ops = { |
588 | .probe = efx_mcdi_phy_probe, | 564 | .probe = efx_mcdi_phy_probe, |
589 | .init = efx_mcdi_phy_init, | 565 | .init = efx_port_dummy_op_int, |
590 | .reconfigure = efx_mcdi_phy_reconfigure, | 566 | .reconfigure = efx_mcdi_phy_reconfigure, |
591 | .poll = efx_mcdi_phy_poll, | 567 | .poll = efx_mcdi_phy_poll, |
592 | .fini = efx_mcdi_phy_fini, | 568 | .fini = efx_port_dummy_op_void, |
569 | .remove = efx_mcdi_phy_remove, | ||
593 | .get_settings = efx_mcdi_phy_get_settings, | 570 | .get_settings = efx_mcdi_phy_get_settings, |
594 | .set_settings = efx_mcdi_phy_set_settings, | 571 | .set_settings = efx_mcdi_phy_set_settings, |
595 | .run_tests = NULL, | 572 | .run_tests = NULL, |
diff --git a/drivers/net/sfc/net_driver.h b/drivers/net/sfc/net_driver.h index 34c381f009b..d5aab5b3fa0 100644 --- a/drivers/net/sfc/net_driver.h +++ b/drivers/net/sfc/net_driver.h | |||
@@ -524,6 +524,7 @@ struct efx_phy_operations { | |||
524 | int (*probe) (struct efx_nic *efx); | 524 | int (*probe) (struct efx_nic *efx); |
525 | int (*init) (struct efx_nic *efx); | 525 | int (*init) (struct efx_nic *efx); |
526 | void (*fini) (struct efx_nic *efx); | 526 | void (*fini) (struct efx_nic *efx); |
527 | void (*remove) (struct efx_nic *efx); | ||
527 | int (*reconfigure) (struct efx_nic *efx); | 528 | int (*reconfigure) (struct efx_nic *efx); |
528 | bool (*poll) (struct efx_nic *efx); | 529 | bool (*poll) (struct efx_nic *efx); |
529 | void (*get_settings) (struct efx_nic *efx, | 530 | void (*get_settings) (struct efx_nic *efx, |
diff --git a/drivers/net/sfc/nic.c b/drivers/net/sfc/nic.c index a577be22786..db44224ed2c 100644 --- a/drivers/net/sfc/nic.c +++ b/drivers/net/sfc/nic.c | |||
@@ -1576,6 +1576,8 @@ void efx_nic_init_common(struct efx_nic *efx) | |||
1576 | EFX_SET_OWORD_FIELD(temp, FRF_AZ_TX_SOFT_EVT_EN, 1); | 1576 | EFX_SET_OWORD_FIELD(temp, FRF_AZ_TX_SOFT_EVT_EN, 1); |
1577 | /* Prefetch threshold 2 => fetch when descriptor cache half empty */ | 1577 | /* Prefetch threshold 2 => fetch when descriptor cache half empty */ |
1578 | EFX_SET_OWORD_FIELD(temp, FRF_AZ_TX_PREF_THRESHOLD, 2); | 1578 | EFX_SET_OWORD_FIELD(temp, FRF_AZ_TX_PREF_THRESHOLD, 2); |
1579 | /* Disable hardware watchdog which can misfire */ | ||
1580 | EFX_SET_OWORD_FIELD(temp, FRF_AZ_TX_PREF_WD_TMR, 0x3fffff); | ||
1579 | /* Squash TX of packets of 16 bytes or less */ | 1581 | /* Squash TX of packets of 16 bytes or less */ |
1580 | if (efx_nic_rev(efx) >= EFX_REV_FALCON_B0) | 1582 | if (efx_nic_rev(efx) >= EFX_REV_FALCON_B0) |
1581 | EFX_SET_OWORD_FIELD(temp, FRF_BZ_TX_FLUSH_MIN_LEN_EN, 1); | 1583 | EFX_SET_OWORD_FIELD(temp, FRF_BZ_TX_FLUSH_MIN_LEN_EN, 1); |
diff --git a/drivers/net/sfc/qt202x_phy.c b/drivers/net/sfc/qt202x_phy.c index 3800fc791b2..ff8f0a417fa 100644 --- a/drivers/net/sfc/qt202x_phy.c +++ b/drivers/net/sfc/qt202x_phy.c | |||
@@ -33,6 +33,9 @@ | |||
33 | #define PCS_FW_HEARTBEAT_REG 0xd7ee | 33 | #define PCS_FW_HEARTBEAT_REG 0xd7ee |
34 | #define PCS_FW_HEARTB_LBN 0 | 34 | #define PCS_FW_HEARTB_LBN 0 |
35 | #define PCS_FW_HEARTB_WIDTH 8 | 35 | #define PCS_FW_HEARTB_WIDTH 8 |
36 | #define PCS_FW_PRODUCT_CODE_1 0xd7f0 | ||
37 | #define PCS_FW_VERSION_1 0xd7f3 | ||
38 | #define PCS_FW_BUILD_1 0xd7f6 | ||
36 | #define PCS_UC8051_STATUS_REG 0xd7fd | 39 | #define PCS_UC8051_STATUS_REG 0xd7fd |
37 | #define PCS_UC_STATUS_LBN 0 | 40 | #define PCS_UC_STATUS_LBN 0 |
38 | #define PCS_UC_STATUS_WIDTH 8 | 41 | #define PCS_UC_STATUS_WIDTH 8 |
@@ -52,14 +55,24 @@ void falcon_qt202x_set_led(struct efx_nic *p, int led, int mode) | |||
52 | 55 | ||
53 | struct qt202x_phy_data { | 56 | struct qt202x_phy_data { |
54 | enum efx_phy_mode phy_mode; | 57 | enum efx_phy_mode phy_mode; |
58 | bool bug17190_in_bad_state; | ||
59 | unsigned long bug17190_timer; | ||
60 | u32 firmware_ver; | ||
55 | }; | 61 | }; |
56 | 62 | ||
57 | #define QT2022C2_MAX_RESET_TIME 500 | 63 | #define QT2022C2_MAX_RESET_TIME 500 |
58 | #define QT2022C2_RESET_WAIT 10 | 64 | #define QT2022C2_RESET_WAIT 10 |
59 | 65 | ||
60 | static int qt2025c_wait_reset(struct efx_nic *efx) | 66 | #define QT2025C_MAX_HEARTB_TIME (5 * HZ) |
67 | #define QT2025C_HEARTB_WAIT 100 | ||
68 | #define QT2025C_MAX_FWSTART_TIME (25 * HZ / 10) | ||
69 | #define QT2025C_FWSTART_WAIT 100 | ||
70 | |||
71 | #define BUG17190_INTERVAL (2 * HZ) | ||
72 | |||
73 | static int qt2025c_wait_heartbeat(struct efx_nic *efx) | ||
61 | { | 74 | { |
62 | unsigned long timeout = jiffies + 10 * HZ; | 75 | unsigned long timeout = jiffies + QT2025C_MAX_HEARTB_TIME; |
63 | int reg, old_counter = 0; | 76 | int reg, old_counter = 0; |
64 | 77 | ||
65 | /* Wait for firmware heartbeat to start */ | 78 | /* Wait for firmware heartbeat to start */ |
@@ -74,11 +87,25 @@ static int qt2025c_wait_reset(struct efx_nic *efx) | |||
74 | old_counter = counter; | 87 | old_counter = counter; |
75 | else if (counter != old_counter) | 88 | else if (counter != old_counter) |
76 | break; | 89 | break; |
77 | if (time_after(jiffies, timeout)) | 90 | if (time_after(jiffies, timeout)) { |
91 | /* Some cables have EEPROMs that conflict with the | ||
92 | * PHY's on-board EEPROM so it cannot load firmware */ | ||
93 | EFX_ERR(efx, "If an SFP+ direct attach cable is" | ||
94 | " connected, please check that it complies" | ||
95 | " with the SFP+ specification\n"); | ||
78 | return -ETIMEDOUT; | 96 | return -ETIMEDOUT; |
79 | msleep(10); | 97 | } |
98 | msleep(QT2025C_HEARTB_WAIT); | ||
80 | } | 99 | } |
81 | 100 | ||
101 | return 0; | ||
102 | } | ||
103 | |||
104 | static int qt2025c_wait_fw_status_good(struct efx_nic *efx) | ||
105 | { | ||
106 | unsigned long timeout = jiffies + QT2025C_MAX_FWSTART_TIME; | ||
107 | int reg; | ||
108 | |||
82 | /* Wait for firmware status to look good */ | 109 | /* Wait for firmware status to look good */ |
83 | for (;;) { | 110 | for (;;) { |
84 | reg = efx_mdio_read(efx, MDIO_MMD_PCS, PCS_UC8051_STATUS_REG); | 111 | reg = efx_mdio_read(efx, MDIO_MMD_PCS, PCS_UC8051_STATUS_REG); |
@@ -90,7 +117,178 @@ static int qt2025c_wait_reset(struct efx_nic *efx) | |||
90 | break; | 117 | break; |
91 | if (time_after(jiffies, timeout)) | 118 | if (time_after(jiffies, timeout)) |
92 | return -ETIMEDOUT; | 119 | return -ETIMEDOUT; |
120 | msleep(QT2025C_FWSTART_WAIT); | ||
121 | } | ||
122 | |||
123 | return 0; | ||
124 | } | ||
125 | |||
126 | static void qt2025c_restart_firmware(struct efx_nic *efx) | ||
127 | { | ||
128 | /* Restart microcontroller execution of firmware from RAM */ | ||
129 | efx_mdio_write(efx, 3, 0xe854, 0x00c0); | ||
130 | efx_mdio_write(efx, 3, 0xe854, 0x0040); | ||
131 | msleep(50); | ||
132 | } | ||
133 | |||
134 | static int qt2025c_wait_reset(struct efx_nic *efx) | ||
135 | { | ||
136 | int rc; | ||
137 | |||
138 | rc = qt2025c_wait_heartbeat(efx); | ||
139 | if (rc != 0) | ||
140 | return rc; | ||
141 | |||
142 | rc = qt2025c_wait_fw_status_good(efx); | ||
143 | if (rc == -ETIMEDOUT) { | ||
144 | /* Bug 17689: occasionally heartbeat starts but firmware status | ||
145 | * code never progresses beyond 0x00. Try again, once, after | ||
146 | * restarting execution of the firmware image. */ | ||
147 | EFX_LOG(efx, "bashing QT2025C microcontroller\n"); | ||
148 | qt2025c_restart_firmware(efx); | ||
149 | rc = qt2025c_wait_heartbeat(efx); | ||
150 | if (rc != 0) | ||
151 | return rc; | ||
152 | rc = qt2025c_wait_fw_status_good(efx); | ||
153 | } | ||
154 | |||
155 | return rc; | ||
156 | } | ||
157 | |||
158 | static void qt2025c_firmware_id(struct efx_nic *efx) | ||
159 | { | ||
160 | struct qt202x_phy_data *phy_data = efx->phy_data; | ||
161 | u8 firmware_id[9]; | ||
162 | size_t i; | ||
163 | |||
164 | for (i = 0; i < sizeof(firmware_id); i++) | ||
165 | firmware_id[i] = efx_mdio_read(efx, MDIO_MMD_PCS, | ||
166 | PCS_FW_PRODUCT_CODE_1 + i); | ||
167 | EFX_INFO(efx, "QT2025C firmware %xr%d v%d.%d.%d.%d [20%02d-%02d-%02d]\n", | ||
168 | (firmware_id[0] << 8) | firmware_id[1], firmware_id[2], | ||
169 | firmware_id[3] >> 4, firmware_id[3] & 0xf, | ||
170 | firmware_id[4], firmware_id[5], | ||
171 | firmware_id[6], firmware_id[7], firmware_id[8]); | ||
172 | phy_data->firmware_ver = ((firmware_id[3] & 0xf0) << 20) | | ||
173 | ((firmware_id[3] & 0x0f) << 16) | | ||
174 | (firmware_id[4] << 8) | firmware_id[5]; | ||
175 | } | ||
176 | |||
177 | static void qt2025c_bug17190_workaround(struct efx_nic *efx) | ||
178 | { | ||
179 | struct qt202x_phy_data *phy_data = efx->phy_data; | ||
180 | |||
181 | /* The PHY can get stuck in a state where it reports PHY_XS and PMA/PMD | ||
182 | * layers up, but PCS down (no block_lock). If we notice this state | ||
183 | * persisting for a couple of seconds, we switch PMA/PMD loopback | ||
184 | * briefly on and then off again, which is normally sufficient to | ||
185 | * recover it. | ||
186 | */ | ||
187 | if (efx->link_state.up || | ||
188 | !efx_mdio_links_ok(efx, MDIO_DEVS_PMAPMD | MDIO_DEVS_PHYXS)) { | ||
189 | phy_data->bug17190_in_bad_state = false; | ||
190 | return; | ||
191 | } | ||
192 | |||
193 | if (!phy_data->bug17190_in_bad_state) { | ||
194 | phy_data->bug17190_in_bad_state = true; | ||
195 | phy_data->bug17190_timer = jiffies + BUG17190_INTERVAL; | ||
196 | return; | ||
197 | } | ||
198 | |||
199 | if (time_after_eq(jiffies, phy_data->bug17190_timer)) { | ||
200 | EFX_LOG(efx, "bashing QT2025C PMA/PMD\n"); | ||
201 | efx_mdio_set_flag(efx, MDIO_MMD_PMAPMD, MDIO_CTRL1, | ||
202 | MDIO_PMA_CTRL1_LOOPBACK, true); | ||
93 | msleep(100); | 203 | msleep(100); |
204 | efx_mdio_set_flag(efx, MDIO_MMD_PMAPMD, MDIO_CTRL1, | ||
205 | MDIO_PMA_CTRL1_LOOPBACK, false); | ||
206 | phy_data->bug17190_timer = jiffies + BUG17190_INTERVAL; | ||
207 | } | ||
208 | } | ||
209 | |||
210 | static int qt2025c_select_phy_mode(struct efx_nic *efx) | ||
211 | { | ||
212 | struct qt202x_phy_data *phy_data = efx->phy_data; | ||
213 | struct falcon_board *board = falcon_board(efx); | ||
214 | int reg, rc, i; | ||
215 | uint16_t phy_op_mode; | ||
216 | |||
217 | /* Only 2.0.1.0+ PHY firmware supports the more optimal SFP+ | ||
218 | * Self-Configure mode. Don't attempt any switching if we encounter | ||
219 | * older firmware. */ | ||
220 | if (phy_data->firmware_ver < 0x02000100) | ||
221 | return 0; | ||
222 | |||
223 | /* In general we will get optimal behaviour in "SFP+ Self-Configure" | ||
224 | * mode; however, that powers down most of the PHY when no module is | ||
225 | * present, so we must use a different mode (any fixed mode will do) | ||
226 | * to be sure that loopbacks will work. */ | ||
227 | phy_op_mode = (efx->loopback_mode == LOOPBACK_NONE) ? 0x0038 : 0x0020; | ||
228 | |||
229 | /* Only change mode if really necessary */ | ||
230 | reg = efx_mdio_read(efx, 1, 0xc319); | ||
231 | if ((reg & 0x0038) == phy_op_mode) | ||
232 | return 0; | ||
233 | EFX_LOG(efx, "Switching PHY to mode 0x%04x\n", phy_op_mode); | ||
234 | |||
235 | /* This sequence replicates the register writes configured in the boot | ||
236 | * EEPROM (including the differences between board revisions), except | ||
237 | * that the operating mode is changed, and the PHY is prevented from | ||
238 | * unnecessarily reloading the main firmware image again. */ | ||
239 | efx_mdio_write(efx, 1, 0xc300, 0x0000); | ||
240 | /* (Note: this portion of the boot EEPROM sequence, which bit-bashes 9 | ||
241 | * STOPs onto the firmware/module I2C bus to reset it, varies across | ||
242 | * board revisions, as the bus is connected to different GPIO/LED | ||
243 | * outputs on the PHY.) */ | ||
244 | if (board->major == 0 && board->minor < 2) { | ||
245 | efx_mdio_write(efx, 1, 0xc303, 0x4498); | ||
246 | for (i = 0; i < 9; i++) { | ||
247 | efx_mdio_write(efx, 1, 0xc303, 0x4488); | ||
248 | efx_mdio_write(efx, 1, 0xc303, 0x4480); | ||
249 | efx_mdio_write(efx, 1, 0xc303, 0x4490); | ||
250 | efx_mdio_write(efx, 1, 0xc303, 0x4498); | ||
251 | } | ||
252 | } else { | ||
253 | efx_mdio_write(efx, 1, 0xc303, 0x0920); | ||
254 | efx_mdio_write(efx, 1, 0xd008, 0x0004); | ||
255 | for (i = 0; i < 9; i++) { | ||
256 | efx_mdio_write(efx, 1, 0xc303, 0x0900); | ||
257 | efx_mdio_write(efx, 1, 0xd008, 0x0005); | ||
258 | efx_mdio_write(efx, 1, 0xc303, 0x0920); | ||
259 | efx_mdio_write(efx, 1, 0xd008, 0x0004); | ||
260 | } | ||
261 | efx_mdio_write(efx, 1, 0xc303, 0x4900); | ||
262 | } | ||
263 | efx_mdio_write(efx, 1, 0xc303, 0x4900); | ||
264 | efx_mdio_write(efx, 1, 0xc302, 0x0004); | ||
265 | efx_mdio_write(efx, 1, 0xc316, 0x0013); | ||
266 | efx_mdio_write(efx, 1, 0xc318, 0x0054); | ||
267 | efx_mdio_write(efx, 1, 0xc319, phy_op_mode); | ||
268 | efx_mdio_write(efx, 1, 0xc31a, 0x0098); | ||
269 | efx_mdio_write(efx, 3, 0x0026, 0x0e00); | ||
270 | efx_mdio_write(efx, 3, 0x0027, 0x0013); | ||
271 | efx_mdio_write(efx, 3, 0x0028, 0xa528); | ||
272 | efx_mdio_write(efx, 1, 0xd006, 0x000a); | ||
273 | efx_mdio_write(efx, 1, 0xd007, 0x0009); | ||
274 | efx_mdio_write(efx, 1, 0xd008, 0x0004); | ||
275 | /* This additional write is not present in the boot EEPROM. It | ||
276 | * prevents the PHY's internal boot ROM doing another pointless (and | ||
277 | * slow) reload of the firmware image (the microcontroller's code | ||
278 | * memory is not affected by the microcontroller reset). */ | ||
279 | efx_mdio_write(efx, 1, 0xc317, 0x00ff); | ||
280 | efx_mdio_write(efx, 1, 0xc300, 0x0002); | ||
281 | msleep(20); | ||
282 | |||
283 | /* Restart microcontroller execution of firmware from RAM */ | ||
284 | qt2025c_restart_firmware(efx); | ||
285 | |||
286 | /* Wait for the microcontroller to be ready again */ | ||
287 | rc = qt2025c_wait_reset(efx); | ||
288 | if (rc < 0) { | ||
289 | EFX_ERR(efx, "PHY microcontroller reset during mode switch " | ||
290 | "timed out\n"); | ||
291 | return rc; | ||
94 | } | 292 | } |
95 | 293 | ||
96 | return 0; | 294 | return 0; |
@@ -137,6 +335,16 @@ static int qt202x_reset_phy(struct efx_nic *efx) | |||
137 | 335 | ||
138 | static int qt202x_phy_probe(struct efx_nic *efx) | 336 | static int qt202x_phy_probe(struct efx_nic *efx) |
139 | { | 337 | { |
338 | struct qt202x_phy_data *phy_data; | ||
339 | |||
340 | phy_data = kzalloc(sizeof(struct qt202x_phy_data), GFP_KERNEL); | ||
341 | if (!phy_data) | ||
342 | return -ENOMEM; | ||
343 | efx->phy_data = phy_data; | ||
344 | phy_data->phy_mode = efx->phy_mode; | ||
345 | phy_data->bug17190_in_bad_state = false; | ||
346 | phy_data->bug17190_timer = 0; | ||
347 | |||
140 | efx->mdio.mmds = QT202X_REQUIRED_DEVS; | 348 | efx->mdio.mmds = QT202X_REQUIRED_DEVS; |
141 | efx->mdio.mode_support = MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22; | 349 | efx->mdio.mode_support = MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22; |
142 | efx->loopback_modes = QT202X_LOOPBACKS | FALCON_XMAC_LOOPBACKS; | 350 | efx->loopback_modes = QT202X_LOOPBACKS | FALCON_XMAC_LOOPBACKS; |
@@ -145,7 +353,6 @@ static int qt202x_phy_probe(struct efx_nic *efx) | |||
145 | 353 | ||
146 | static int qt202x_phy_init(struct efx_nic *efx) | 354 | static int qt202x_phy_init(struct efx_nic *efx) |
147 | { | 355 | { |
148 | struct qt202x_phy_data *phy_data; | ||
149 | u32 devid; | 356 | u32 devid; |
150 | int rc; | 357 | int rc; |
151 | 358 | ||
@@ -155,17 +362,14 @@ static int qt202x_phy_init(struct efx_nic *efx) | |||
155 | return rc; | 362 | return rc; |
156 | } | 363 | } |
157 | 364 | ||
158 | phy_data = kzalloc(sizeof(struct qt202x_phy_data), GFP_KERNEL); | ||
159 | if (!phy_data) | ||
160 | return -ENOMEM; | ||
161 | efx->phy_data = phy_data; | ||
162 | |||
163 | devid = efx_mdio_read_id(efx, MDIO_MMD_PHYXS); | 365 | devid = efx_mdio_read_id(efx, MDIO_MMD_PHYXS); |
164 | EFX_INFO(efx, "PHY ID reg %x (OUI %06x model %02x revision %x)\n", | 366 | EFX_INFO(efx, "PHY ID reg %x (OUI %06x model %02x revision %x)\n", |
165 | devid, efx_mdio_id_oui(devid), efx_mdio_id_model(devid), | 367 | devid, efx_mdio_id_oui(devid), efx_mdio_id_model(devid), |
166 | efx_mdio_id_rev(devid)); | 368 | efx_mdio_id_rev(devid)); |
167 | 369 | ||
168 | phy_data->phy_mode = efx->phy_mode; | 370 | if (efx->phy_type == PHY_TYPE_QT2025C) |
371 | qt2025c_firmware_id(efx); | ||
372 | |||
169 | return 0; | 373 | return 0; |
170 | } | 374 | } |
171 | 375 | ||
@@ -183,6 +387,9 @@ static bool qt202x_phy_poll(struct efx_nic *efx) | |||
183 | efx->link_state.fd = true; | 387 | efx->link_state.fd = true; |
184 | efx->link_state.fc = efx->wanted_fc; | 388 | efx->link_state.fc = efx->wanted_fc; |
185 | 389 | ||
390 | if (efx->phy_type == PHY_TYPE_QT2025C) | ||
391 | qt2025c_bug17190_workaround(efx); | ||
392 | |||
186 | return efx->link_state.up != was_up; | 393 | return efx->link_state.up != was_up; |
187 | } | 394 | } |
188 | 395 | ||
@@ -191,6 +398,10 @@ static int qt202x_phy_reconfigure(struct efx_nic *efx) | |||
191 | struct qt202x_phy_data *phy_data = efx->phy_data; | 398 | struct qt202x_phy_data *phy_data = efx->phy_data; |
192 | 399 | ||
193 | if (efx->phy_type == PHY_TYPE_QT2025C) { | 400 | if (efx->phy_type == PHY_TYPE_QT2025C) { |
401 | int rc = qt2025c_select_phy_mode(efx); | ||
402 | if (rc) | ||
403 | return rc; | ||
404 | |||
194 | /* There are several different register bits which can | 405 | /* There are several different register bits which can |
195 | * disable TX (and save power) on direct-attach cables | 406 | * disable TX (and save power) on direct-attach cables |
196 | * or optical transceivers, varying somewhat between | 407 | * or optical transceivers, varying somewhat between |
@@ -224,7 +435,7 @@ static void qt202x_phy_get_settings(struct efx_nic *efx, struct ethtool_cmd *ecm | |||
224 | mdio45_ethtool_gset(&efx->mdio, ecmd); | 435 | mdio45_ethtool_gset(&efx->mdio, ecmd); |
225 | } | 436 | } |
226 | 437 | ||
227 | static void qt202x_phy_fini(struct efx_nic *efx) | 438 | static void qt202x_phy_remove(struct efx_nic *efx) |
228 | { | 439 | { |
229 | /* Free the context block */ | 440 | /* Free the context block */ |
230 | kfree(efx->phy_data); | 441 | kfree(efx->phy_data); |
@@ -236,7 +447,8 @@ struct efx_phy_operations falcon_qt202x_phy_ops = { | |||
236 | .init = qt202x_phy_init, | 447 | .init = qt202x_phy_init, |
237 | .reconfigure = qt202x_phy_reconfigure, | 448 | .reconfigure = qt202x_phy_reconfigure, |
238 | .poll = qt202x_phy_poll, | 449 | .poll = qt202x_phy_poll, |
239 | .fini = qt202x_phy_fini, | 450 | .fini = efx_port_dummy_op_void, |
451 | .remove = qt202x_phy_remove, | ||
240 | .get_settings = qt202x_phy_get_settings, | 452 | .get_settings = qt202x_phy_get_settings, |
241 | .set_settings = efx_mdio_set_settings, | 453 | .set_settings = efx_mdio_set_settings, |
242 | }; | 454 | }; |
diff --git a/drivers/net/sfc/selftest.c b/drivers/net/sfc/selftest.c index af393357979..250c8827b84 100644 --- a/drivers/net/sfc/selftest.c +++ b/drivers/net/sfc/selftest.c | |||
@@ -79,10 +79,14 @@ struct efx_loopback_state { | |||
79 | static int efx_test_mdio(struct efx_nic *efx, struct efx_self_tests *tests) | 79 | static int efx_test_mdio(struct efx_nic *efx, struct efx_self_tests *tests) |
80 | { | 80 | { |
81 | int rc = 0; | 81 | int rc = 0; |
82 | int devad = __ffs(efx->mdio.mmds); | 82 | int devad; |
83 | u16 physid1, physid2; | 83 | u16 physid1, physid2; |
84 | 84 | ||
85 | if (efx->phy_type == PHY_TYPE_NONE) | 85 | if (efx->mdio.mode_support & MDIO_SUPPORTS_C45) |
86 | devad = __ffs(efx->mdio.mmds); | ||
87 | else if (efx->mdio.mode_support & MDIO_SUPPORTS_C22) | ||
88 | devad = MDIO_DEVAD_NONE; | ||
89 | else | ||
86 | return 0; | 90 | return 0; |
87 | 91 | ||
88 | mutex_lock(&efx->mac_lock); | 92 | mutex_lock(&efx->mac_lock); |
diff --git a/drivers/net/sfc/siena.c b/drivers/net/sfc/siena.c index de07a4f031b..f8c6771e66d 100644 --- a/drivers/net/sfc/siena.c +++ b/drivers/net/sfc/siena.c | |||
@@ -133,6 +133,7 @@ static int siena_probe_port(struct efx_nic *efx) | |||
133 | 133 | ||
134 | void siena_remove_port(struct efx_nic *efx) | 134 | void siena_remove_port(struct efx_nic *efx) |
135 | { | 135 | { |
136 | efx->phy_op->remove(efx); | ||
136 | efx_nic_free_buffer(efx, &efx->stats_buffer); | 137 | efx_nic_free_buffer(efx, &efx->stats_buffer); |
137 | } | 138 | } |
138 | 139 | ||
diff --git a/drivers/net/sfc/tenxpress.c b/drivers/net/sfc/tenxpress.c index ca11572a49a..3009c297c13 100644 --- a/drivers/net/sfc/tenxpress.c +++ b/drivers/net/sfc/tenxpress.c | |||
@@ -202,10 +202,14 @@ static ssize_t set_phy_short_reach(struct device *dev, | |||
202 | int rc; | 202 | int rc; |
203 | 203 | ||
204 | rtnl_lock(); | 204 | rtnl_lock(); |
205 | efx_mdio_set_flag(efx, MDIO_MMD_PMAPMD, MDIO_PMA_10GBT_TXPWR, | 205 | if (efx->state != STATE_RUNNING) { |
206 | MDIO_PMA_10GBT_TXPWR_SHORT, | 206 | rc = -EBUSY; |
207 | count != 0 && *buf != '0'); | 207 | } else { |
208 | rc = efx_reconfigure_port(efx); | 208 | efx_mdio_set_flag(efx, MDIO_MMD_PMAPMD, MDIO_PMA_10GBT_TXPWR, |
209 | MDIO_PMA_10GBT_TXPWR_SHORT, | ||
210 | count != 0 && *buf != '0'); | ||
211 | rc = efx_reconfigure_port(efx); | ||
212 | } | ||
209 | rtnl_unlock(); | 213 | rtnl_unlock(); |
210 | 214 | ||
211 | return rc < 0 ? rc : (ssize_t)count; | 215 | return rc < 0 ? rc : (ssize_t)count; |
@@ -298,36 +302,62 @@ static int tenxpress_init(struct efx_nic *efx) | |||
298 | return 0; | 302 | return 0; |
299 | } | 303 | } |
300 | 304 | ||
301 | static int sfx7101_phy_probe(struct efx_nic *efx) | 305 | static int tenxpress_phy_probe(struct efx_nic *efx) |
302 | { | 306 | { |
303 | efx->mdio.mmds = TENXPRESS_REQUIRED_DEVS; | 307 | struct tenxpress_phy_data *phy_data; |
304 | efx->mdio.mode_support = MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22; | 308 | int rc; |
305 | efx->loopback_modes = SFX7101_LOOPBACKS | FALCON_XMAC_LOOPBACKS; | 309 | |
306 | return 0; | 310 | /* Allocate phy private storage */ |
307 | } | 311 | phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL); |
312 | if (!phy_data) | ||
313 | return -ENOMEM; | ||
314 | efx->phy_data = phy_data; | ||
315 | phy_data->phy_mode = efx->phy_mode; | ||
316 | |||
317 | /* Create any special files */ | ||
318 | if (efx->phy_type == PHY_TYPE_SFT9001B) { | ||
319 | rc = device_create_file(&efx->pci_dev->dev, | ||
320 | &dev_attr_phy_short_reach); | ||
321 | if (rc) | ||
322 | goto fail; | ||
323 | } | ||
324 | |||
325 | if (efx->phy_type == PHY_TYPE_SFX7101) { | ||
326 | efx->mdio.mmds = TENXPRESS_REQUIRED_DEVS; | ||
327 | efx->mdio.mode_support = MDIO_SUPPORTS_C45; | ||
328 | |||
329 | efx->loopback_modes = SFX7101_LOOPBACKS | FALCON_XMAC_LOOPBACKS; | ||
330 | |||
331 | efx->link_advertising = (ADVERTISED_TP | ADVERTISED_Autoneg | | ||
332 | ADVERTISED_10000baseT_Full); | ||
333 | } else { | ||
334 | efx->mdio.mmds = TENXPRESS_REQUIRED_DEVS; | ||
335 | efx->mdio.mode_support = MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22; | ||
336 | |||
337 | efx->loopback_modes = (SFT9001_LOOPBACKS | | ||
338 | FALCON_XMAC_LOOPBACKS | | ||
339 | FALCON_GMAC_LOOPBACKS); | ||
340 | |||
341 | efx->link_advertising = (ADVERTISED_TP | ADVERTISED_Autoneg | | ||
342 | ADVERTISED_10000baseT_Full | | ||
343 | ADVERTISED_1000baseT_Full | | ||
344 | ADVERTISED_100baseT_Full); | ||
345 | } | ||
308 | 346 | ||
309 | static int sft9001_phy_probe(struct efx_nic *efx) | ||
310 | { | ||
311 | efx->mdio.mmds = TENXPRESS_REQUIRED_DEVS; | ||
312 | efx->mdio.mode_support = MDIO_SUPPORTS_C45 | MDIO_EMULATE_C22; | ||
313 | efx->loopback_modes = (SFT9001_LOOPBACKS | FALCON_XMAC_LOOPBACKS | | ||
314 | FALCON_GMAC_LOOPBACKS); | ||
315 | return 0; | 347 | return 0; |
348 | |||
349 | fail: | ||
350 | kfree(efx->phy_data); | ||
351 | efx->phy_data = NULL; | ||
352 | return rc; | ||
316 | } | 353 | } |
317 | 354 | ||
318 | static int tenxpress_phy_init(struct efx_nic *efx) | 355 | static int tenxpress_phy_init(struct efx_nic *efx) |
319 | { | 356 | { |
320 | struct tenxpress_phy_data *phy_data; | 357 | int rc; |
321 | int rc = 0; | ||
322 | 358 | ||
323 | falcon_board(efx)->type->init_phy(efx); | 359 | falcon_board(efx)->type->init_phy(efx); |
324 | 360 | ||
325 | phy_data = kzalloc(sizeof(*phy_data), GFP_KERNEL); | ||
326 | if (!phy_data) | ||
327 | return -ENOMEM; | ||
328 | efx->phy_data = phy_data; | ||
329 | phy_data->phy_mode = efx->phy_mode; | ||
330 | |||
331 | if (!(efx->phy_mode & PHY_MODE_SPECIAL)) { | 361 | if (!(efx->phy_mode & PHY_MODE_SPECIAL)) { |
332 | if (efx->phy_type == PHY_TYPE_SFT9001A) { | 362 | if (efx->phy_type == PHY_TYPE_SFT9001A) { |
333 | int reg; | 363 | int reg; |
@@ -341,44 +371,27 @@ static int tenxpress_phy_init(struct efx_nic *efx) | |||
341 | 371 | ||
342 | rc = efx_mdio_wait_reset_mmds(efx, TENXPRESS_REQUIRED_DEVS); | 372 | rc = efx_mdio_wait_reset_mmds(efx, TENXPRESS_REQUIRED_DEVS); |
343 | if (rc < 0) | 373 | if (rc < 0) |
344 | goto fail; | 374 | return rc; |
345 | 375 | ||
346 | rc = efx_mdio_check_mmds(efx, TENXPRESS_REQUIRED_DEVS, 0); | 376 | rc = efx_mdio_check_mmds(efx, TENXPRESS_REQUIRED_DEVS, 0); |
347 | if (rc < 0) | 377 | if (rc < 0) |
348 | goto fail; | 378 | return rc; |
349 | } | 379 | } |
350 | 380 | ||
351 | rc = tenxpress_init(efx); | 381 | rc = tenxpress_init(efx); |
352 | if (rc < 0) | 382 | if (rc < 0) |
353 | goto fail; | 383 | return rc; |
354 | 384 | ||
355 | /* Initialise advertising flags */ | 385 | /* Reinitialise flow control settings */ |
356 | efx->link_advertising = (ADVERTISED_TP | ADVERTISED_Autoneg | | ||
357 | ADVERTISED_10000baseT_Full); | ||
358 | if (efx->phy_type != PHY_TYPE_SFX7101) | ||
359 | efx->link_advertising |= (ADVERTISED_1000baseT_Full | | ||
360 | ADVERTISED_100baseT_Full); | ||
361 | efx_link_set_wanted_fc(efx, efx->wanted_fc); | 386 | efx_link_set_wanted_fc(efx, efx->wanted_fc); |
362 | efx_mdio_an_reconfigure(efx); | 387 | efx_mdio_an_reconfigure(efx); |
363 | 388 | ||
364 | if (efx->phy_type == PHY_TYPE_SFT9001B) { | ||
365 | rc = device_create_file(&efx->pci_dev->dev, | ||
366 | &dev_attr_phy_short_reach); | ||
367 | if (rc) | ||
368 | goto fail; | ||
369 | } | ||
370 | |||
371 | schedule_timeout_uninterruptible(HZ / 5); /* 200ms */ | 389 | schedule_timeout_uninterruptible(HZ / 5); /* 200ms */ |
372 | 390 | ||
373 | /* Let XGXS and SerDes out of reset */ | 391 | /* Let XGXS and SerDes out of reset */ |
374 | falcon_reset_xaui(efx); | 392 | falcon_reset_xaui(efx); |
375 | 393 | ||
376 | return 0; | 394 | return 0; |
377 | |||
378 | fail: | ||
379 | kfree(efx->phy_data); | ||
380 | efx->phy_data = NULL; | ||
381 | return rc; | ||
382 | } | 395 | } |
383 | 396 | ||
384 | /* Perform a "special software reset" on the PHY. The caller is | 397 | /* Perform a "special software reset" on the PHY. The caller is |
@@ -589,25 +602,26 @@ static bool tenxpress_phy_poll(struct efx_nic *efx) | |||
589 | return !efx_link_state_equal(&efx->link_state, &old_state); | 602 | return !efx_link_state_equal(&efx->link_state, &old_state); |
590 | } | 603 | } |
591 | 604 | ||
592 | static void tenxpress_phy_fini(struct efx_nic *efx) | 605 | static void sfx7101_phy_fini(struct efx_nic *efx) |
593 | { | 606 | { |
594 | int reg; | 607 | int reg; |
595 | 608 | ||
609 | /* Power down the LNPGA */ | ||
610 | reg = (1 << PMA_PMD_LNPGA_POWERDOWN_LBN); | ||
611 | efx_mdio_write(efx, MDIO_MMD_PMAPMD, PMA_PMD_XCONTROL_REG, reg); | ||
612 | |||
613 | /* Waiting here ensures that the board fini, which can turn | ||
614 | * off the power to the PHY, won't get run until the LNPGA | ||
615 | * powerdown has been given long enough to complete. */ | ||
616 | schedule_timeout_uninterruptible(LNPGA_PDOWN_WAIT); /* 200 ms */ | ||
617 | } | ||
618 | |||
619 | static void tenxpress_phy_remove(struct efx_nic *efx) | ||
620 | { | ||
596 | if (efx->phy_type == PHY_TYPE_SFT9001B) | 621 | if (efx->phy_type == PHY_TYPE_SFT9001B) |
597 | device_remove_file(&efx->pci_dev->dev, | 622 | device_remove_file(&efx->pci_dev->dev, |
598 | &dev_attr_phy_short_reach); | 623 | &dev_attr_phy_short_reach); |
599 | 624 | ||
600 | if (efx->phy_type == PHY_TYPE_SFX7101) { | ||
601 | /* Power down the LNPGA */ | ||
602 | reg = (1 << PMA_PMD_LNPGA_POWERDOWN_LBN); | ||
603 | efx_mdio_write(efx, MDIO_MMD_PMAPMD, PMA_PMD_XCONTROL_REG, reg); | ||
604 | |||
605 | /* Waiting here ensures that the board fini, which can turn | ||
606 | * off the power to the PHY, won't get run until the LNPGA | ||
607 | * powerdown has been given long enough to complete. */ | ||
608 | schedule_timeout_uninterruptible(LNPGA_PDOWN_WAIT); /* 200 ms */ | ||
609 | } | ||
610 | |||
611 | kfree(efx->phy_data); | 625 | kfree(efx->phy_data); |
612 | efx->phy_data = NULL; | 626 | efx->phy_data = NULL; |
613 | } | 627 | } |
@@ -819,11 +833,12 @@ static void sft9001_set_npage_adv(struct efx_nic *efx, u32 advertising) | |||
819 | } | 833 | } |
820 | 834 | ||
821 | struct efx_phy_operations falcon_sfx7101_phy_ops = { | 835 | struct efx_phy_operations falcon_sfx7101_phy_ops = { |
822 | .probe = sfx7101_phy_probe, | 836 | .probe = tenxpress_phy_probe, |
823 | .init = tenxpress_phy_init, | 837 | .init = tenxpress_phy_init, |
824 | .reconfigure = tenxpress_phy_reconfigure, | 838 | .reconfigure = tenxpress_phy_reconfigure, |
825 | .poll = tenxpress_phy_poll, | 839 | .poll = tenxpress_phy_poll, |
826 | .fini = tenxpress_phy_fini, | 840 | .fini = sfx7101_phy_fini, |
841 | .remove = tenxpress_phy_remove, | ||
827 | .get_settings = tenxpress_get_settings, | 842 | .get_settings = tenxpress_get_settings, |
828 | .set_settings = tenxpress_set_settings, | 843 | .set_settings = tenxpress_set_settings, |
829 | .set_npage_adv = sfx7101_set_npage_adv, | 844 | .set_npage_adv = sfx7101_set_npage_adv, |
@@ -832,11 +847,12 @@ struct efx_phy_operations falcon_sfx7101_phy_ops = { | |||
832 | }; | 847 | }; |
833 | 848 | ||
834 | struct efx_phy_operations falcon_sft9001_phy_ops = { | 849 | struct efx_phy_operations falcon_sft9001_phy_ops = { |
835 | .probe = sft9001_phy_probe, | 850 | .probe = tenxpress_phy_probe, |
836 | .init = tenxpress_phy_init, | 851 | .init = tenxpress_phy_init, |
837 | .reconfigure = tenxpress_phy_reconfigure, | 852 | .reconfigure = tenxpress_phy_reconfigure, |
838 | .poll = tenxpress_phy_poll, | 853 | .poll = tenxpress_phy_poll, |
839 | .fini = tenxpress_phy_fini, | 854 | .fini = efx_port_dummy_op_void, |
855 | .remove = tenxpress_phy_remove, | ||
840 | .get_settings = tenxpress_get_settings, | 856 | .get_settings = tenxpress_get_settings, |
841 | .set_settings = tenxpress_set_settings, | 857 | .set_settings = tenxpress_set_settings, |
842 | .set_npage_adv = sft9001_set_npage_adv, | 858 | .set_npage_adv = sft9001_set_npage_adv, |
diff --git a/drivers/net/sfc/tx.c b/drivers/net/sfc/tx.c index e669f94e821..a8b70ef6d81 100644 --- a/drivers/net/sfc/tx.c +++ b/drivers/net/sfc/tx.c | |||
@@ -821,8 +821,6 @@ static void efx_enqueue_unwind(struct efx_tx_queue *tx_queue) | |||
821 | EFX_TXQ_MASK]; | 821 | EFX_TXQ_MASK]; |
822 | efx_tsoh_free(tx_queue, buffer); | 822 | efx_tsoh_free(tx_queue, buffer); |
823 | EFX_BUG_ON_PARANOID(buffer->skb); | 823 | EFX_BUG_ON_PARANOID(buffer->skb); |
824 | buffer->len = 0; | ||
825 | buffer->continuation = true; | ||
826 | if (buffer->unmap_len) { | 824 | if (buffer->unmap_len) { |
827 | unmap_addr = (buffer->dma_addr + buffer->len - | 825 | unmap_addr = (buffer->dma_addr + buffer->len - |
828 | buffer->unmap_len); | 826 | buffer->unmap_len); |
@@ -836,6 +834,8 @@ static void efx_enqueue_unwind(struct efx_tx_queue *tx_queue) | |||
836 | PCI_DMA_TODEVICE); | 834 | PCI_DMA_TODEVICE); |
837 | buffer->unmap_len = 0; | 835 | buffer->unmap_len = 0; |
838 | } | 836 | } |
837 | buffer->len = 0; | ||
838 | buffer->continuation = true; | ||
839 | } | 839 | } |
840 | } | 840 | } |
841 | 841 | ||
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c index ca6285016df..7402b858cab 100644 --- a/drivers/net/sh_eth.c +++ b/drivers/net/sh_eth.c | |||
@@ -110,7 +110,7 @@ static void sh_eth_reset(struct net_device *ndev) | |||
110 | mdelay(1); | 110 | mdelay(1); |
111 | cnt--; | 111 | cnt--; |
112 | } | 112 | } |
113 | if (cnt < 0) | 113 | if (cnt == 0) |
114 | printk(KERN_ERR "Device reset fail\n"); | 114 | printk(KERN_ERR "Device reset fail\n"); |
115 | 115 | ||
116 | /* Table Init */ | 116 | /* Table Init */ |
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 1c01b96c961..37f486b65f6 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -1844,7 +1844,8 @@ static void sky2_tx_complete(struct sky2_port *sky2, u16 done) | |||
1844 | sky2->tx_cons = idx; | 1844 | sky2->tx_cons = idx; |
1845 | smp_mb(); | 1845 | smp_mb(); |
1846 | 1846 | ||
1847 | if (tx_avail(sky2) > MAX_SKB_TX_LE + 4) | 1847 | /* Wake unless it's detached, and called e.g. from sky2_down() */ |
1848 | if (tx_avail(sky2) > MAX_SKB_TX_LE + 4 && netif_device_present(dev)) | ||
1848 | netif_wake_queue(dev); | 1849 | netif_wake_queue(dev); |
1849 | } | 1850 | } |
1850 | 1851 | ||
@@ -4684,6 +4685,7 @@ static int __devinit sky2_probe(struct pci_dev *pdev, | |||
4684 | INIT_WORK(&hw->restart_work, sky2_restart); | 4685 | INIT_WORK(&hw->restart_work, sky2_restart); |
4685 | 4686 | ||
4686 | pci_set_drvdata(pdev, hw); | 4687 | pci_set_drvdata(pdev, hw); |
4688 | pdev->d3_delay = 150; | ||
4687 | 4689 | ||
4688 | return 0; | 4690 | return 0; |
4689 | 4691 | ||
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 3a74d216859..7f82b0238e0 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * Copyright (C) 2001, 2002, 2003, 2004 David S. Miller (davem@redhat.com) | 4 | * Copyright (C) 2001, 2002, 2003, 2004 David S. Miller (davem@redhat.com) |
5 | * Copyright (C) 2001, 2002, 2003 Jeff Garzik (jgarzik@pobox.com) | 5 | * Copyright (C) 2001, 2002, 2003 Jeff Garzik (jgarzik@pobox.com) |
6 | * Copyright (C) 2004 Sun Microsystems Inc. | 6 | * Copyright (C) 2004 Sun Microsystems Inc. |
7 | * Copyright (C) 2005-2009 Broadcom Corporation. | 7 | * Copyright (C) 2005-2010 Broadcom Corporation. |
8 | * | 8 | * |
9 | * Firmware is: | 9 | * Firmware is: |
10 | * Derived from proprietary unpublished source code, | 10 | * Derived from proprietary unpublished source code, |
@@ -68,8 +68,8 @@ | |||
68 | 68 | ||
69 | #define DRV_MODULE_NAME "tg3" | 69 | #define DRV_MODULE_NAME "tg3" |
70 | #define PFX DRV_MODULE_NAME ": " | 70 | #define PFX DRV_MODULE_NAME ": " |
71 | #define DRV_MODULE_VERSION "3.105" | 71 | #define DRV_MODULE_VERSION "3.106" |
72 | #define DRV_MODULE_RELDATE "December 2, 2009" | 72 | #define DRV_MODULE_RELDATE "January 12, 2010" |
73 | 73 | ||
74 | #define TG3_DEF_MAC_MODE 0 | 74 | #define TG3_DEF_MAC_MODE 0 |
75 | #define TG3_DEF_RX_MODE 0 | 75 | #define TG3_DEF_RX_MODE 0 |
@@ -1037,7 +1037,11 @@ static void tg3_mdio_start(struct tg3 *tp) | |||
1037 | else | 1037 | else |
1038 | tp->phy_addr = 1; | 1038 | tp->phy_addr = 1; |
1039 | 1039 | ||
1040 | is_serdes = tr32(SG_DIG_STATUS) & SG_DIG_IS_SERDES; | 1040 | if (tp->pci_chip_rev_id != CHIPREV_ID_5717_A0) |
1041 | is_serdes = tr32(SG_DIG_STATUS) & SG_DIG_IS_SERDES; | ||
1042 | else | ||
1043 | is_serdes = tr32(TG3_CPMU_PHY_STRAP) & | ||
1044 | TG3_CPMU_PHY_STRAP_IS_SERDES; | ||
1041 | if (is_serdes) | 1045 | if (is_serdes) |
1042 | tp->phy_addr += 7; | 1046 | tp->phy_addr += 7; |
1043 | } else | 1047 | } else |
@@ -4693,8 +4697,9 @@ next_pkt: | |||
4693 | (*post_ptr)++; | 4697 | (*post_ptr)++; |
4694 | 4698 | ||
4695 | if (unlikely(rx_std_posted >= tp->rx_std_max_post)) { | 4699 | if (unlikely(rx_std_posted >= tp->rx_std_max_post)) { |
4696 | u32 idx = *post_ptr % TG3_RX_RING_SIZE; | 4700 | tpr->rx_std_prod_idx = std_prod_idx % TG3_RX_RING_SIZE; |
4697 | tw32_rx_mbox(TG3_RX_STD_PROD_IDX_REG, idx); | 4701 | tw32_rx_mbox(TG3_RX_STD_PROD_IDX_REG, |
4702 | tpr->rx_std_prod_idx); | ||
4698 | work_mask &= ~RXD_OPAQUE_RING_STD; | 4703 | work_mask &= ~RXD_OPAQUE_RING_STD; |
4699 | rx_std_posted = 0; | 4704 | rx_std_posted = 0; |
4700 | } | 4705 | } |
@@ -7742,7 +7747,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) | |||
7742 | ((u64) tpr->rx_std_mapping >> 32)); | 7747 | ((u64) tpr->rx_std_mapping >> 32)); |
7743 | tw32(RCVDBDI_STD_BD + TG3_BDINFO_HOST_ADDR + TG3_64BIT_REG_LOW, | 7748 | tw32(RCVDBDI_STD_BD + TG3_BDINFO_HOST_ADDR + TG3_64BIT_REG_LOW, |
7744 | ((u64) tpr->rx_std_mapping & 0xffffffff)); | 7749 | ((u64) tpr->rx_std_mapping & 0xffffffff)); |
7745 | if (!(tp->tg3_flags3 & TG3_FLG3_5755_PLUS)) | 7750 | if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5717) |
7746 | tw32(RCVDBDI_STD_BD + TG3_BDINFO_NIC_ADDR, | 7751 | tw32(RCVDBDI_STD_BD + TG3_BDINFO_NIC_ADDR, |
7747 | NIC_SRAM_RX_BUFFER_DESC); | 7752 | NIC_SRAM_RX_BUFFER_DESC); |
7748 | 7753 | ||
@@ -12122,7 +12127,8 @@ static void __devinit tg3_get_eeprom_hw_cfg(struct tg3 *tp) | |||
12122 | 12127 | ||
12123 | tp->phy_id = eeprom_phy_id; | 12128 | tp->phy_id = eeprom_phy_id; |
12124 | if (eeprom_phy_serdes) { | 12129 | if (eeprom_phy_serdes) { |
12125 | if (tp->tg3_flags2 & TG3_FLG2_5780_CLASS) | 12130 | if ((tp->tg3_flags2 & TG3_FLG2_5780_CLASS) || |
12131 | GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717) | ||
12126 | tp->tg3_flags2 |= TG3_FLG2_MII_SERDES; | 12132 | tp->tg3_flags2 |= TG3_FLG2_MII_SERDES; |
12127 | else | 12133 | else |
12128 | tp->tg3_flags2 |= TG3_FLG2_PHY_SERDES; | 12134 | tp->tg3_flags2 |= TG3_FLG2_PHY_SERDES; |
@@ -13384,6 +13390,11 @@ static int __devinit tg3_get_invariants(struct tg3 *tp) | |||
13384 | if (err) | 13390 | if (err) |
13385 | return err; | 13391 | return err; |
13386 | 13392 | ||
13393 | if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 && | ||
13394 | (tp->pci_chip_rev_id != CHIPREV_ID_5717_A0 || | ||
13395 | (tp->tg3_flags2 & TG3_FLG2_MII_SERDES))) | ||
13396 | return -ENOTSUPP; | ||
13397 | |||
13387 | /* Initialize data/descriptor byte/word swapping. */ | 13398 | /* Initialize data/descriptor byte/word swapping. */ |
13388 | val = tr32(GRC_MODE); | 13399 | val = tr32(GRC_MODE); |
13389 | val &= GRC_MODE_HOST_STACKUP; | 13400 | val &= GRC_MODE_HOST_STACKUP; |
diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h index cd30889650f..8a167912902 100644 --- a/drivers/net/tg3.h +++ b/drivers/net/tg3.h | |||
@@ -4,6 +4,7 @@ | |||
4 | * Copyright (C) 2001, 2002, 2003, 2004 David S. Miller (davem@redhat.com) | 4 | * Copyright (C) 2001, 2002, 2003, 2004 David S. Miller (davem@redhat.com) |
5 | * Copyright (C) 2001 Jeff Garzik (jgarzik@pobox.com) | 5 | * Copyright (C) 2001 Jeff Garzik (jgarzik@pobox.com) |
6 | * Copyright (C) 2004 Sun Microsystems Inc. | 6 | * Copyright (C) 2004 Sun Microsystems Inc. |
7 | * Copyright (C) 2007-2010 Broadcom Corporation. | ||
7 | */ | 8 | */ |
8 | 9 | ||
9 | #ifndef _T3_H | 10 | #ifndef _T3_H |
@@ -1054,6 +1055,8 @@ | |||
1054 | #define CPMU_MUTEX_REQ_DRIVER 0x00001000 | 1055 | #define CPMU_MUTEX_REQ_DRIVER 0x00001000 |
1055 | #define TG3_CPMU_MUTEX_GNT 0x00003660 | 1056 | #define TG3_CPMU_MUTEX_GNT 0x00003660 |
1056 | #define CPMU_MUTEX_GNT_DRIVER 0x00001000 | 1057 | #define CPMU_MUTEX_GNT_DRIVER 0x00001000 |
1058 | #define TG3_CPMU_PHY_STRAP 0x00003664 | ||
1059 | #define TG3_CPMU_PHY_STRAP_IS_SERDES 0x00000020 | ||
1057 | /* 0x3664 --> 0x3800 unused */ | 1060 | /* 0x3664 --> 0x3800 unused */ |
1058 | 1061 | ||
1059 | /* Mbuf cluster free registers */ | 1062 | /* Mbuf cluster free registers */ |
diff --git a/drivers/net/tulip/Kconfig b/drivers/net/tulip/Kconfig index 1cc8cf4425d..516713fa0a0 100644 --- a/drivers/net/tulip/Kconfig +++ b/drivers/net/tulip/Kconfig | |||
@@ -101,6 +101,10 @@ config TULIP_NAPI_HW_MITIGATION | |||
101 | 101 | ||
102 | If in doubt, say Y. | 102 | If in doubt, say Y. |
103 | 103 | ||
104 | config TULIP_DM910X | ||
105 | def_bool y | ||
106 | depends on TULIP && SPARC | ||
107 | |||
104 | config DE4X5 | 108 | config DE4X5 |
105 | tristate "Generic DECchip & DIGITAL EtherWORKS PCI/EISA" | 109 | tristate "Generic DECchip & DIGITAL EtherWORKS PCI/EISA" |
106 | depends on PCI || EISA | 110 | depends on PCI || EISA |
diff --git a/drivers/net/tulip/dmfe.c b/drivers/net/tulip/dmfe.c index ad63621913c..6f44ebf5891 100644 --- a/drivers/net/tulip/dmfe.c +++ b/drivers/net/tulip/dmfe.c | |||
@@ -92,6 +92,10 @@ | |||
92 | #include <asm/uaccess.h> | 92 | #include <asm/uaccess.h> |
93 | #include <asm/irq.h> | 93 | #include <asm/irq.h> |
94 | 94 | ||
95 | #ifdef CONFIG_TULIP_DM910X | ||
96 | #include <linux/of.h> | ||
97 | #endif | ||
98 | |||
95 | 99 | ||
96 | /* Board/System/Debug information/definition ---------------- */ | 100 | /* Board/System/Debug information/definition ---------------- */ |
97 | #define PCI_DM9132_ID 0x91321282 /* Davicom DM9132 ID */ | 101 | #define PCI_DM9132_ID 0x91321282 /* Davicom DM9132 ID */ |
@@ -377,6 +381,23 @@ static int __devinit dmfe_init_one (struct pci_dev *pdev, | |||
377 | if (!printed_version++) | 381 | if (!printed_version++) |
378 | printk(version); | 382 | printk(version); |
379 | 383 | ||
384 | /* | ||
385 | * SPARC on-board DM910x chips should be handled by the main | ||
386 | * tulip driver, except for early DM9100s. | ||
387 | */ | ||
388 | #ifdef CONFIG_TULIP_DM910X | ||
389 | if ((ent->driver_data == PCI_DM9100_ID && pdev->revision >= 0x30) || | ||
390 | ent->driver_data == PCI_DM9102_ID) { | ||
391 | struct device_node *dp = pci_device_to_OF_node(pdev); | ||
392 | |||
393 | if (dp && of_get_property(dp, "local-mac-address", NULL)) { | ||
394 | printk(KERN_INFO DRV_NAME | ||
395 | ": skipping on-board DM910x (use tulip)\n"); | ||
396 | return -ENODEV; | ||
397 | } | ||
398 | } | ||
399 | #endif | ||
400 | |||
380 | /* Init network device */ | 401 | /* Init network device */ |
381 | dev = alloc_etherdev(sizeof(*db)); | 402 | dev = alloc_etherdev(sizeof(*db)); |
382 | if (dev == NULL) | 403 | if (dev == NULL) |
diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c index 0fa3140d65b..595777dcadb 100644 --- a/drivers/net/tulip/tulip_core.c +++ b/drivers/net/tulip/tulip_core.c | |||
@@ -196,9 +196,13 @@ struct tulip_chip_table tulip_tbl[] = { | |||
196 | | HAS_NWAY | HAS_PCI_MWI, tulip_timer, tulip_media_task }, | 196 | | HAS_NWAY | HAS_PCI_MWI, tulip_timer, tulip_media_task }, |
197 | 197 | ||
198 | /* DM910X */ | 198 | /* DM910X */ |
199 | #ifdef CONFIG_TULIP_DM910X | ||
199 | { "Davicom DM9102/DM9102A", 128, 0x0001ebef, | 200 | { "Davicom DM9102/DM9102A", 128, 0x0001ebef, |
200 | HAS_MII | HAS_MEDIA_TABLE | CSR12_IN_SROM | HAS_ACPI, | 201 | HAS_MII | HAS_MEDIA_TABLE | CSR12_IN_SROM | HAS_ACPI, |
201 | tulip_timer, tulip_media_task }, | 202 | tulip_timer, tulip_media_task }, |
203 | #else | ||
204 | { NULL }, | ||
205 | #endif | ||
202 | 206 | ||
203 | /* RS7112 */ | 207 | /* RS7112 */ |
204 | { "Conexant LANfinity", 256, 0x0001ebef, | 208 | { "Conexant LANfinity", 256, 0x0001ebef, |
@@ -228,8 +232,10 @@ static struct pci_device_id tulip_pci_tbl[] = { | |||
228 | { 0x1259, 0xa120, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, | 232 | { 0x1259, 0xa120, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, |
229 | { 0x11F6, 0x9881, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMPEX9881 }, | 233 | { 0x11F6, 0x9881, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMPEX9881 }, |
230 | { 0x8086, 0x0039, PCI_ANY_ID, PCI_ANY_ID, 0, 0, I21145 }, | 234 | { 0x8086, 0x0039, PCI_ANY_ID, PCI_ANY_ID, 0, 0, I21145 }, |
235 | #ifdef CONFIG_TULIP_DM910X | ||
231 | { 0x1282, 0x9100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DM910X }, | 236 | { 0x1282, 0x9100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DM910X }, |
232 | { 0x1282, 0x9102, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DM910X }, | 237 | { 0x1282, 0x9102, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DM910X }, |
238 | #endif | ||
233 | { 0x1113, 0x1216, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, | 239 | { 0x1113, 0x1216, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, |
234 | { 0x1113, 0x1217, PCI_ANY_ID, PCI_ANY_ID, 0, 0, MX98715 }, | 240 | { 0x1113, 0x1217, PCI_ANY_ID, PCI_ANY_ID, 0, 0, MX98715 }, |
235 | { 0x1113, 0x9511, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, | 241 | { 0x1113, 0x9511, PCI_ANY_ID, PCI_ANY_ID, 0, 0, COMET }, |
@@ -1299,18 +1305,30 @@ static int __devinit tulip_init_one (struct pci_dev *pdev, | |||
1299 | } | 1305 | } |
1300 | 1306 | ||
1301 | /* | 1307 | /* |
1302 | * Early DM9100's need software CRC and the DMFE driver | 1308 | * DM910x chips should be handled by the dmfe driver, except |
1309 | * on-board chips on SPARC systems. Also, early DM9100s need | ||
1310 | * software CRC which only the dmfe driver supports. | ||
1303 | */ | 1311 | */ |
1304 | 1312 | ||
1305 | if (pdev->vendor == 0x1282 && pdev->device == 0x9100) | 1313 | #ifdef CONFIG_TULIP_DM910X |
1306 | { | 1314 | if (chip_idx == DM910X) { |
1307 | /* Read Chip revision */ | 1315 | struct device_node *dp; |
1308 | if (pdev->revision < 0x30) | 1316 | |
1309 | { | 1317 | if (pdev->vendor == 0x1282 && pdev->device == 0x9100 && |
1310 | printk(KERN_ERR PFX "skipping early DM9100 with Crc bug (use dmfe)\n"); | 1318 | pdev->revision < 0x30) { |
1319 | printk(KERN_INFO PFX | ||
1320 | "skipping early DM9100 with Crc bug (use dmfe)\n"); | ||
1321 | return -ENODEV; | ||
1322 | } | ||
1323 | |||
1324 | dp = pci_device_to_OF_node(pdev); | ||
1325 | if (!(dp && of_get_property(dp, "local-mac-address", NULL))) { | ||
1326 | printk(KERN_INFO PFX | ||
1327 | "skipping DM910x expansion card (use dmfe)\n"); | ||
1311 | return -ENODEV; | 1328 | return -ENODEV; |
1312 | } | 1329 | } |
1313 | } | 1330 | } |
1331 | #endif | ||
1314 | 1332 | ||
1315 | /* | 1333 | /* |
1316 | * Looks for early PCI chipsets where people report hangs | 1334 | * Looks for early PCI chipsets where people report hangs |
diff --git a/drivers/net/tun.c b/drivers/net/tun.c index 01e99f22210..2834a01bae2 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c | |||
@@ -849,13 +849,13 @@ static void tun_sock_write_space(struct sock *sk) | |||
849 | if (sk->sk_sleep && waitqueue_active(sk->sk_sleep)) | 849 | if (sk->sk_sleep && waitqueue_active(sk->sk_sleep)) |
850 | wake_up_interruptible_sync(sk->sk_sleep); | 850 | wake_up_interruptible_sync(sk->sk_sleep); |
851 | 851 | ||
852 | tun = container_of(sk, struct tun_sock, sk)->tun; | 852 | tun = tun_sk(sk)->tun; |
853 | kill_fasync(&tun->fasync, SIGIO, POLL_OUT); | 853 | kill_fasync(&tun->fasync, SIGIO, POLL_OUT); |
854 | } | 854 | } |
855 | 855 | ||
856 | static void tun_sock_destruct(struct sock *sk) | 856 | static void tun_sock_destruct(struct sock *sk) |
857 | { | 857 | { |
858 | free_netdev(container_of(sk, struct tun_sock, sk)->tun->dev); | 858 | free_netdev(tun_sk(sk)->tun->dev); |
859 | } | 859 | } |
860 | 860 | ||
861 | static struct proto tun_proto = { | 861 | static struct proto tun_proto = { |
@@ -990,7 +990,7 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr) | |||
990 | sk->sk_write_space = tun_sock_write_space; | 990 | sk->sk_write_space = tun_sock_write_space; |
991 | sk->sk_sndbuf = INT_MAX; | 991 | sk->sk_sndbuf = INT_MAX; |
992 | 992 | ||
993 | container_of(sk, struct tun_sock, sk)->tun = tun; | 993 | tun_sk(sk)->tun = tun; |
994 | 994 | ||
995 | security_tun_dev_post_create(sk); | 995 | security_tun_dev_post_create(sk); |
996 | 996 | ||
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c index afaf088b72e..96bdc0b4388 100644 --- a/drivers/net/ucc_geth.c +++ b/drivers/net/ucc_geth.c | |||
@@ -1563,7 +1563,10 @@ static int ugeth_disable(struct ucc_geth_private *ugeth, enum comm_dir mode) | |||
1563 | 1563 | ||
1564 | static void ugeth_quiesce(struct ucc_geth_private *ugeth) | 1564 | static void ugeth_quiesce(struct ucc_geth_private *ugeth) |
1565 | { | 1565 | { |
1566 | /* Wait for and prevent any further xmits. */ | 1566 | /* Prevent any further xmits, plus detach the device. */ |
1567 | netif_device_detach(ugeth->ndev); | ||
1568 | |||
1569 | /* Wait for any current xmits to finish. */ | ||
1567 | netif_tx_disable(ugeth->ndev); | 1570 | netif_tx_disable(ugeth->ndev); |
1568 | 1571 | ||
1569 | /* Disable the interrupt to avoid NAPI rescheduling. */ | 1572 | /* Disable the interrupt to avoid NAPI rescheduling. */ |
@@ -1577,7 +1580,7 @@ static void ugeth_activate(struct ucc_geth_private *ugeth) | |||
1577 | { | 1580 | { |
1578 | napi_enable(&ugeth->napi); | 1581 | napi_enable(&ugeth->napi); |
1579 | enable_irq(ugeth->ug_info->uf_info.irq); | 1582 | enable_irq(ugeth->ug_info->uf_info.irq); |
1580 | netif_tx_wake_all_queues(ugeth->ndev); | 1583 | netif_device_attach(ugeth->ndev); |
1581 | } | 1584 | } |
1582 | 1585 | ||
1583 | /* Called every time the controller might need to be made | 1586 | /* Called every time the controller might need to be made |
@@ -1648,25 +1651,28 @@ static void adjust_link(struct net_device *dev) | |||
1648 | ugeth->oldspeed = phydev->speed; | 1651 | ugeth->oldspeed = phydev->speed; |
1649 | } | 1652 | } |
1650 | 1653 | ||
1651 | /* | ||
1652 | * To change the MAC configuration we need to disable the | ||
1653 | * controller. To do so, we have to either grab ugeth->lock, | ||
1654 | * which is a bad idea since 'graceful stop' commands might | ||
1655 | * take quite a while, or we can quiesce driver's activity. | ||
1656 | */ | ||
1657 | ugeth_quiesce(ugeth); | ||
1658 | ugeth_disable(ugeth, COMM_DIR_RX_AND_TX); | ||
1659 | |||
1660 | out_be32(&ug_regs->maccfg2, tempval); | ||
1661 | out_be32(&uf_regs->upsmr, upsmr); | ||
1662 | |||
1663 | ugeth_enable(ugeth, COMM_DIR_RX_AND_TX); | ||
1664 | ugeth_activate(ugeth); | ||
1665 | |||
1666 | if (!ugeth->oldlink) { | 1654 | if (!ugeth->oldlink) { |
1667 | new_state = 1; | 1655 | new_state = 1; |
1668 | ugeth->oldlink = 1; | 1656 | ugeth->oldlink = 1; |
1669 | } | 1657 | } |
1658 | |||
1659 | if (new_state) { | ||
1660 | /* | ||
1661 | * To change the MAC configuration we need to disable | ||
1662 | * the controller. To do so, we have to either grab | ||
1663 | * ugeth->lock, which is a bad idea since 'graceful | ||
1664 | * stop' commands might take quite a while, or we can | ||
1665 | * quiesce driver's activity. | ||
1666 | */ | ||
1667 | ugeth_quiesce(ugeth); | ||
1668 | ugeth_disable(ugeth, COMM_DIR_RX_AND_TX); | ||
1669 | |||
1670 | out_be32(&ug_regs->maccfg2, tempval); | ||
1671 | out_be32(&uf_regs->upsmr, upsmr); | ||
1672 | |||
1673 | ugeth_enable(ugeth, COMM_DIR_RX_AND_TX); | ||
1674 | ugeth_activate(ugeth); | ||
1675 | } | ||
1670 | } else if (ugeth->oldlink) { | 1676 | } else if (ugeth->oldlink) { |
1671 | new_state = 1; | 1677 | new_state = 1; |
1672 | ugeth->oldlink = 0; | 1678 | ugeth->oldlink = 0; |
@@ -3273,7 +3279,7 @@ static int ucc_geth_tx(struct net_device *dev, u8 txQ) | |||
3273 | /* Handle the transmitted buffer and release */ | 3279 | /* Handle the transmitted buffer and release */ |
3274 | /* the BD to be used with the current frame */ | 3280 | /* the BD to be used with the current frame */ |
3275 | 3281 | ||
3276 | if ((bd == ugeth->txBd[txQ]) && (netif_queue_stopped(dev) == 0)) | 3282 | if (bd == ugeth->txBd[txQ]) /* queue empty? */ |
3277 | break; | 3283 | break; |
3278 | 3284 | ||
3279 | dev->stats.tx_packets++; | 3285 | dev->stats.tx_packets++; |
@@ -3601,6 +3607,7 @@ static int ucc_geth_suspend(struct of_device *ofdev, pm_message_t state) | |||
3601 | if (!netif_running(ndev)) | 3607 | if (!netif_running(ndev)) |
3602 | return 0; | 3608 | return 0; |
3603 | 3609 | ||
3610 | netif_device_detach(ndev); | ||
3604 | napi_disable(&ugeth->napi); | 3611 | napi_disable(&ugeth->napi); |
3605 | 3612 | ||
3606 | /* | 3613 | /* |
@@ -3659,7 +3666,7 @@ static int ucc_geth_resume(struct of_device *ofdev) | |||
3659 | phy_start(ugeth->phydev); | 3666 | phy_start(ugeth->phydev); |
3660 | 3667 | ||
3661 | napi_enable(&ugeth->napi); | 3668 | napi_enable(&ugeth->napi); |
3662 | netif_start_queue(ndev); | 3669 | netif_device_attach(ndev); |
3663 | 3670 | ||
3664 | return 0; | 3671 | return 0; |
3665 | } | 3672 | } |
diff --git a/drivers/net/ucc_geth.h b/drivers/net/ucc_geth.h index a007e2acf65..ef1fbeb11c6 100644 --- a/drivers/net/ucc_geth.h +++ b/drivers/net/ucc_geth.h | |||
@@ -838,13 +838,13 @@ struct ucc_geth_hardware_statistics { | |||
838 | using the maximum is | 838 | using the maximum is |
839 | easier */ | 839 | easier */ |
840 | #define UCC_GETH_SEND_QUEUE_QUEUE_DESCRIPTOR_ALIGNMENT 32 | 840 | #define UCC_GETH_SEND_QUEUE_QUEUE_DESCRIPTOR_ALIGNMENT 32 |
841 | #define UCC_GETH_SCHEDULER_ALIGNMENT 4 /* This is a guess */ | 841 | #define UCC_GETH_SCHEDULER_ALIGNMENT 8 /* This is a guess */ |
842 | #define UCC_GETH_TX_STATISTICS_ALIGNMENT 4 /* This is a guess */ | 842 | #define UCC_GETH_TX_STATISTICS_ALIGNMENT 4 /* This is a guess */ |
843 | #define UCC_GETH_RX_STATISTICS_ALIGNMENT 4 /* This is a guess */ | 843 | #define UCC_GETH_RX_STATISTICS_ALIGNMENT 4 /* This is a guess */ |
844 | #define UCC_GETH_RX_INTERRUPT_COALESCING_ALIGNMENT 64 | 844 | #define UCC_GETH_RX_INTERRUPT_COALESCING_ALIGNMENT 64 |
845 | #define UCC_GETH_RX_BD_QUEUES_ALIGNMENT 8 /* This is a guess */ | 845 | #define UCC_GETH_RX_BD_QUEUES_ALIGNMENT 8 /* This is a guess */ |
846 | #define UCC_GETH_RX_PREFETCHED_BDS_ALIGNMENT 128 /* This is a guess */ | 846 | #define UCC_GETH_RX_PREFETCHED_BDS_ALIGNMENT 128 /* This is a guess */ |
847 | #define UCC_GETH_RX_EXTENDED_FILTERING_GLOBAL_PARAMETERS_ALIGNMENT 4 /* This | 847 | #define UCC_GETH_RX_EXTENDED_FILTERING_GLOBAL_PARAMETERS_ALIGNMENT 8 /* This |
848 | is a | 848 | is a |
849 | guess | 849 | guess |
850 | */ | 850 | */ |
@@ -899,16 +899,17 @@ struct ucc_geth_hardware_statistics { | |||
899 | #define UCC_GETH_UTFS_INIT 512 /* Tx virtual FIFO size | 899 | #define UCC_GETH_UTFS_INIT 512 /* Tx virtual FIFO size |
900 | */ | 900 | */ |
901 | #define UCC_GETH_UTFET_INIT 256 /* 1/2 utfs */ | 901 | #define UCC_GETH_UTFET_INIT 256 /* 1/2 utfs */ |
902 | #define UCC_GETH_UTFTT_INIT 128 | 902 | #define UCC_GETH_UTFTT_INIT 512 |
903 | /* Gigabit Ethernet (1000 Mbps) */ | 903 | /* Gigabit Ethernet (1000 Mbps) */ |
904 | #define UCC_GETH_URFS_GIGA_INIT 4096/*2048*/ /* Rx virtual | 904 | #define UCC_GETH_URFS_GIGA_INIT 4096/*2048*/ /* Rx virtual |
905 | FIFO size */ | 905 | FIFO size */ |
906 | #define UCC_GETH_URFET_GIGA_INIT 2048/*1024*/ /* 1/2 urfs */ | 906 | #define UCC_GETH_URFET_GIGA_INIT 2048/*1024*/ /* 1/2 urfs */ |
907 | #define UCC_GETH_URFSET_GIGA_INIT 3072/*1536*/ /* 3/4 urfs */ | 907 | #define UCC_GETH_URFSET_GIGA_INIT 3072/*1536*/ /* 3/4 urfs */ |
908 | #define UCC_GETH_UTFS_GIGA_INIT 8192/*2048*/ /* Tx virtual | 908 | #define UCC_GETH_UTFS_GIGA_INIT 4096/*2048*/ /* Tx virtual |
909 | FIFO size */ | ||
910 | #define UCC_GETH_UTFET_GIGA_INIT 2048/*1024*/ /* 1/2 utfs */ | ||
911 | #define UCC_GETH_UTFTT_GIGA_INIT 4096/*0x40*/ /* Tx virtual | ||
909 | FIFO size */ | 912 | FIFO size */ |
910 | #define UCC_GETH_UTFET_GIGA_INIT 4096/*1024*/ /* 1/2 utfs */ | ||
911 | #define UCC_GETH_UTFTT_GIGA_INIT 0x400/*0x40*/ /* */ | ||
912 | 913 | ||
913 | #define UCC_GETH_REMODER_INIT 0 /* bits that must be | 914 | #define UCC_GETH_REMODER_INIT 0 /* bits that must be |
914 | set */ | 915 | set */ |
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c index f78f0903b07..6895f153123 100644 --- a/drivers/net/usb/hso.c +++ b/drivers/net/usb/hso.c | |||
@@ -286,6 +286,7 @@ struct hso_device { | |||
286 | u8 usb_gone; | 286 | u8 usb_gone; |
287 | struct work_struct async_get_intf; | 287 | struct work_struct async_get_intf; |
288 | struct work_struct async_put_intf; | 288 | struct work_struct async_put_intf; |
289 | struct work_struct reset_device; | ||
289 | 290 | ||
290 | struct usb_device *usb; | 291 | struct usb_device *usb; |
291 | struct usb_interface *interface; | 292 | struct usb_interface *interface; |
@@ -332,7 +333,8 @@ static void hso_kick_transmit(struct hso_serial *serial); | |||
332 | /* Helper functions */ | 333 | /* Helper functions */ |
333 | static int hso_mux_submit_intr_urb(struct hso_shared_int *mux_int, | 334 | static int hso_mux_submit_intr_urb(struct hso_shared_int *mux_int, |
334 | struct usb_device *usb, gfp_t gfp); | 335 | struct usb_device *usb, gfp_t gfp); |
335 | static void log_usb_status(int status, const char *function); | 336 | static void handle_usb_error(int status, const char *function, |
337 | struct hso_device *hso_dev); | ||
336 | static struct usb_endpoint_descriptor *hso_get_ep(struct usb_interface *intf, | 338 | static struct usb_endpoint_descriptor *hso_get_ep(struct usb_interface *intf, |
337 | int type, int dir); | 339 | int type, int dir); |
338 | static int hso_get_mux_ports(struct usb_interface *intf, unsigned char *ports); | 340 | static int hso_get_mux_ports(struct usb_interface *intf, unsigned char *ports); |
@@ -350,6 +352,7 @@ static void async_put_intf(struct work_struct *data); | |||
350 | static int hso_put_activity(struct hso_device *hso_dev); | 352 | static int hso_put_activity(struct hso_device *hso_dev); |
351 | static int hso_get_activity(struct hso_device *hso_dev); | 353 | static int hso_get_activity(struct hso_device *hso_dev); |
352 | static void tiocmget_intr_callback(struct urb *urb); | 354 | static void tiocmget_intr_callback(struct urb *urb); |
355 | static void reset_device(struct work_struct *data); | ||
353 | /*****************************************************************************/ | 356 | /*****************************************************************************/ |
354 | /* Helping functions */ | 357 | /* Helping functions */ |
355 | /*****************************************************************************/ | 358 | /*****************************************************************************/ |
@@ -461,10 +464,17 @@ static const struct usb_device_id hso_ids[] = { | |||
461 | {USB_DEVICE(0x0af0, 0x7501)}, /* GTM 382 */ | 464 | {USB_DEVICE(0x0af0, 0x7501)}, /* GTM 382 */ |
462 | {USB_DEVICE(0x0af0, 0x7601)}, /* GE40x */ | 465 | {USB_DEVICE(0x0af0, 0x7601)}, /* GE40x */ |
463 | {USB_DEVICE(0x0af0, 0x7701)}, | 466 | {USB_DEVICE(0x0af0, 0x7701)}, |
467 | {USB_DEVICE(0x0af0, 0x7706)}, | ||
464 | {USB_DEVICE(0x0af0, 0x7801)}, | 468 | {USB_DEVICE(0x0af0, 0x7801)}, |
465 | {USB_DEVICE(0x0af0, 0x7901)}, | 469 | {USB_DEVICE(0x0af0, 0x7901)}, |
470 | {USB_DEVICE(0x0af0, 0x7A01)}, | ||
471 | {USB_DEVICE(0x0af0, 0x7A05)}, | ||
466 | {USB_DEVICE(0x0af0, 0x8200)}, | 472 | {USB_DEVICE(0x0af0, 0x8200)}, |
467 | {USB_DEVICE(0x0af0, 0x8201)}, | 473 | {USB_DEVICE(0x0af0, 0x8201)}, |
474 | {USB_DEVICE(0x0af0, 0x8300)}, | ||
475 | {USB_DEVICE(0x0af0, 0x8302)}, | ||
476 | {USB_DEVICE(0x0af0, 0x8304)}, | ||
477 | {USB_DEVICE(0x0af0, 0x8400)}, | ||
468 | {USB_DEVICE(0x0af0, 0xd035)}, | 478 | {USB_DEVICE(0x0af0, 0xd035)}, |
469 | {USB_DEVICE(0x0af0, 0xd055)}, | 479 | {USB_DEVICE(0x0af0, 0xd055)}, |
470 | {USB_DEVICE(0x0af0, 0xd155)}, | 480 | {USB_DEVICE(0x0af0, 0xd155)}, |
@@ -473,6 +483,8 @@ static const struct usb_device_id hso_ids[] = { | |||
473 | {USB_DEVICE(0x0af0, 0xd157)}, | 483 | {USB_DEVICE(0x0af0, 0xd157)}, |
474 | {USB_DEVICE(0x0af0, 0xd257)}, | 484 | {USB_DEVICE(0x0af0, 0xd257)}, |
475 | {USB_DEVICE(0x0af0, 0xd357)}, | 485 | {USB_DEVICE(0x0af0, 0xd357)}, |
486 | {USB_DEVICE(0x0af0, 0xd058)}, | ||
487 | {USB_DEVICE(0x0af0, 0xc100)}, | ||
476 | {} | 488 | {} |
477 | }; | 489 | }; |
478 | MODULE_DEVICE_TABLE(usb, hso_ids); | 490 | MODULE_DEVICE_TABLE(usb, hso_ids); |
@@ -655,8 +667,8 @@ static void set_serial_by_index(unsigned index, struct hso_serial *serial) | |||
655 | spin_unlock_irqrestore(&serial_table_lock, flags); | 667 | spin_unlock_irqrestore(&serial_table_lock, flags); |
656 | } | 668 | } |
657 | 669 | ||
658 | /* log a meaningful explanation of an USB status */ | 670 | static void handle_usb_error(int status, const char *function, |
659 | static void log_usb_status(int status, const char *function) | 671 | struct hso_device *hso_dev) |
660 | { | 672 | { |
661 | char *explanation; | 673 | char *explanation; |
662 | 674 | ||
@@ -685,10 +697,20 @@ static void log_usb_status(int status, const char *function) | |||
685 | case -EMSGSIZE: | 697 | case -EMSGSIZE: |
686 | explanation = "internal error"; | 698 | explanation = "internal error"; |
687 | break; | 699 | break; |
700 | case -EILSEQ: | ||
701 | case -EPROTO: | ||
702 | case -ETIME: | ||
703 | case -ETIMEDOUT: | ||
704 | explanation = "protocol error"; | ||
705 | if (hso_dev) | ||
706 | schedule_work(&hso_dev->reset_device); | ||
707 | break; | ||
688 | default: | 708 | default: |
689 | explanation = "unknown status"; | 709 | explanation = "unknown status"; |
690 | break; | 710 | break; |
691 | } | 711 | } |
712 | |||
713 | /* log a meaningful explanation of an USB status */ | ||
692 | D1("%s: received USB status - %s (%d)", function, explanation, status); | 714 | D1("%s: received USB status - %s (%d)", function, explanation, status); |
693 | } | 715 | } |
694 | 716 | ||
@@ -762,7 +784,7 @@ static void write_bulk_callback(struct urb *urb) | |||
762 | /* log status, but don't act on it, we don't need to resubmit anything | 784 | /* log status, but don't act on it, we don't need to resubmit anything |
763 | * anyhow */ | 785 | * anyhow */ |
764 | if (status) | 786 | if (status) |
765 | log_usb_status(status, __func__); | 787 | handle_usb_error(status, __func__, odev->parent); |
766 | 788 | ||
767 | hso_put_activity(odev->parent); | 789 | hso_put_activity(odev->parent); |
768 | 790 | ||
@@ -806,7 +828,7 @@ static netdev_tx_t hso_net_start_xmit(struct sk_buff *skb, | |||
806 | result = usb_submit_urb(odev->mux_bulk_tx_urb, GFP_ATOMIC); | 828 | result = usb_submit_urb(odev->mux_bulk_tx_urb, GFP_ATOMIC); |
807 | if (result) { | 829 | if (result) { |
808 | dev_warn(&odev->parent->interface->dev, | 830 | dev_warn(&odev->parent->interface->dev, |
809 | "failed mux_bulk_tx_urb %d", result); | 831 | "failed mux_bulk_tx_urb %d\n", result); |
810 | net->stats.tx_errors++; | 832 | net->stats.tx_errors++; |
811 | netif_start_queue(net); | 833 | netif_start_queue(net); |
812 | } else { | 834 | } else { |
@@ -998,7 +1020,7 @@ static void read_bulk_callback(struct urb *urb) | |||
998 | 1020 | ||
999 | /* is al ok? (Filip: Who's Al ?) */ | 1021 | /* is al ok? (Filip: Who's Al ?) */ |
1000 | if (status) { | 1022 | if (status) { |
1001 | log_usb_status(status, __func__); | 1023 | handle_usb_error(status, __func__, odev->parent); |
1002 | return; | 1024 | return; |
1003 | } | 1025 | } |
1004 | 1026 | ||
@@ -1019,7 +1041,8 @@ static void read_bulk_callback(struct urb *urb) | |||
1019 | if (odev->parent->port_spec & HSO_INFO_CRC_BUG) { | 1041 | if (odev->parent->port_spec & HSO_INFO_CRC_BUG) { |
1020 | u32 rest; | 1042 | u32 rest; |
1021 | u8 crc_check[4] = { 0xDE, 0xAD, 0xBE, 0xEF }; | 1043 | u8 crc_check[4] = { 0xDE, 0xAD, 0xBE, 0xEF }; |
1022 | rest = urb->actual_length % odev->in_endp->wMaxPacketSize; | 1044 | rest = urb->actual_length % |
1045 | le16_to_cpu(odev->in_endp->wMaxPacketSize); | ||
1023 | if (((rest == 5) || (rest == 6)) && | 1046 | if (((rest == 5) || (rest == 6)) && |
1024 | !memcmp(((u8 *) urb->transfer_buffer) + | 1047 | !memcmp(((u8 *) urb->transfer_buffer) + |
1025 | urb->actual_length - 4, crc_check, 4)) { | 1048 | urb->actual_length - 4, crc_check, 4)) { |
@@ -1053,7 +1076,7 @@ static void read_bulk_callback(struct urb *urb) | |||
1053 | result = usb_submit_urb(urb, GFP_ATOMIC); | 1076 | result = usb_submit_urb(urb, GFP_ATOMIC); |
1054 | if (result) | 1077 | if (result) |
1055 | dev_warn(&odev->parent->interface->dev, | 1078 | dev_warn(&odev->parent->interface->dev, |
1056 | "%s failed submit mux_bulk_rx_urb %d", __func__, | 1079 | "%s failed submit mux_bulk_rx_urb %d\n", __func__, |
1057 | result); | 1080 | result); |
1058 | } | 1081 | } |
1059 | 1082 | ||
@@ -1207,7 +1230,7 @@ static void hso_std_serial_read_bulk_callback(struct urb *urb) | |||
1207 | D1("serial == NULL"); | 1230 | D1("serial == NULL"); |
1208 | return; | 1231 | return; |
1209 | } else if (status) { | 1232 | } else if (status) { |
1210 | log_usb_status(status, __func__); | 1233 | handle_usb_error(status, __func__, serial->parent); |
1211 | return; | 1234 | return; |
1212 | } | 1235 | } |
1213 | 1236 | ||
@@ -1225,7 +1248,7 @@ static void hso_std_serial_read_bulk_callback(struct urb *urb) | |||
1225 | u8 crc_check[4] = { 0xDE, 0xAD, 0xBE, 0xEF }; | 1248 | u8 crc_check[4] = { 0xDE, 0xAD, 0xBE, 0xEF }; |
1226 | rest = | 1249 | rest = |
1227 | urb->actual_length % | 1250 | urb->actual_length % |
1228 | serial->in_endp->wMaxPacketSize; | 1251 | le16_to_cpu(serial->in_endp->wMaxPacketSize); |
1229 | if (((rest == 5) || (rest == 6)) && | 1252 | if (((rest == 5) || (rest == 6)) && |
1230 | !memcmp(((u8 *) urb->transfer_buffer) + | 1253 | !memcmp(((u8 *) urb->transfer_buffer) + |
1231 | urb->actual_length - 4, crc_check, 4)) { | 1254 | urb->actual_length - 4, crc_check, 4)) { |
@@ -1513,7 +1536,7 @@ static void tiocmget_intr_callback(struct urb *urb) | |||
1513 | if (!serial) | 1536 | if (!serial) |
1514 | return; | 1537 | return; |
1515 | if (status) { | 1538 | if (status) { |
1516 | log_usb_status(status, __func__); | 1539 | handle_usb_error(status, __func__, serial->parent); |
1517 | return; | 1540 | return; |
1518 | } | 1541 | } |
1519 | tiocmget = serial->tiocmget; | 1542 | tiocmget = serial->tiocmget; |
@@ -1700,6 +1723,10 @@ static int hso_serial_tiocmset(struct tty_struct *tty, struct file *file, | |||
1700 | D1("no tty structures"); | 1723 | D1("no tty structures"); |
1701 | return -EINVAL; | 1724 | return -EINVAL; |
1702 | } | 1725 | } |
1726 | |||
1727 | if ((serial->parent->port_spec & HSO_PORT_MASK) != HSO_PORT_MODEM) | ||
1728 | return -EINVAL; | ||
1729 | |||
1703 | if_num = serial->parent->interface->altsetting->desc.bInterfaceNumber; | 1730 | if_num = serial->parent->interface->altsetting->desc.bInterfaceNumber; |
1704 | 1731 | ||
1705 | spin_lock_irqsave(&serial->serial_lock, flags); | 1732 | spin_lock_irqsave(&serial->serial_lock, flags); |
@@ -1838,7 +1865,7 @@ static int mux_device_request(struct hso_serial *serial, u8 type, u16 port, | |||
1838 | result = usb_submit_urb(ctrl_urb, GFP_ATOMIC); | 1865 | result = usb_submit_urb(ctrl_urb, GFP_ATOMIC); |
1839 | if (result) { | 1866 | if (result) { |
1840 | dev_err(&ctrl_urb->dev->dev, | 1867 | dev_err(&ctrl_urb->dev->dev, |
1841 | "%s failed submit ctrl_urb %d type %d", __func__, | 1868 | "%s failed submit ctrl_urb %d type %d\n", __func__, |
1842 | result, type); | 1869 | result, type); |
1843 | return result; | 1870 | return result; |
1844 | } | 1871 | } |
@@ -1888,7 +1915,7 @@ static void intr_callback(struct urb *urb) | |||
1888 | 1915 | ||
1889 | /* status check */ | 1916 | /* status check */ |
1890 | if (status) { | 1917 | if (status) { |
1891 | log_usb_status(status, __func__); | 1918 | handle_usb_error(status, __func__, NULL); |
1892 | return; | 1919 | return; |
1893 | } | 1920 | } |
1894 | D4("\n--- Got intr callback 0x%02X ---", status); | 1921 | D4("\n--- Got intr callback 0x%02X ---", status); |
@@ -1905,18 +1932,18 @@ static void intr_callback(struct urb *urb) | |||
1905 | if (serial != NULL) { | 1932 | if (serial != NULL) { |
1906 | D1("Pending read interrupt on port %d\n", i); | 1933 | D1("Pending read interrupt on port %d\n", i); |
1907 | spin_lock(&serial->serial_lock); | 1934 | spin_lock(&serial->serial_lock); |
1908 | if (serial->rx_state == RX_IDLE) { | 1935 | if (serial->rx_state == RX_IDLE && |
1936 | serial->open_count > 0) { | ||
1909 | /* Setup and send a ctrl req read on | 1937 | /* Setup and send a ctrl req read on |
1910 | * port i */ | 1938 | * port i */ |
1911 | if (!serial->rx_urb_filled[0]) { | 1939 | if (!serial->rx_urb_filled[0]) { |
1912 | serial->rx_state = RX_SENT; | 1940 | serial->rx_state = RX_SENT; |
1913 | hso_mux_serial_read(serial); | 1941 | hso_mux_serial_read(serial); |
1914 | } else | 1942 | } else |
1915 | serial->rx_state = RX_PENDING; | 1943 | serial->rx_state = RX_PENDING; |
1916 | |||
1917 | } else { | 1944 | } else { |
1918 | D1("Already pending a read on " | 1945 | D1("Already a read pending on " |
1919 | "port %d\n", i); | 1946 | "port %d or port not open\n", i); |
1920 | } | 1947 | } |
1921 | spin_unlock(&serial->serial_lock); | 1948 | spin_unlock(&serial->serial_lock); |
1922 | } | 1949 | } |
@@ -1958,7 +1985,7 @@ static void hso_std_serial_write_bulk_callback(struct urb *urb) | |||
1958 | tty = tty_kref_get(serial->tty); | 1985 | tty = tty_kref_get(serial->tty); |
1959 | spin_unlock(&serial->serial_lock); | 1986 | spin_unlock(&serial->serial_lock); |
1960 | if (status) { | 1987 | if (status) { |
1961 | log_usb_status(status, __func__); | 1988 | handle_usb_error(status, __func__, serial->parent); |
1962 | tty_kref_put(tty); | 1989 | tty_kref_put(tty); |
1963 | return; | 1990 | return; |
1964 | } | 1991 | } |
@@ -2014,7 +2041,7 @@ static void ctrl_callback(struct urb *urb) | |||
2014 | tty = tty_kref_get(serial->tty); | 2041 | tty = tty_kref_get(serial->tty); |
2015 | spin_unlock(&serial->serial_lock); | 2042 | spin_unlock(&serial->serial_lock); |
2016 | if (status) { | 2043 | if (status) { |
2017 | log_usb_status(status, __func__); | 2044 | handle_usb_error(status, __func__, serial->parent); |
2018 | tty_kref_put(tty); | 2045 | tty_kref_put(tty); |
2019 | return; | 2046 | return; |
2020 | } | 2047 | } |
@@ -2358,12 +2385,12 @@ static int hso_serial_common_create(struct hso_serial *serial, int num_urbs, | |||
2358 | serial->tx_data_length = tx_size; | 2385 | serial->tx_data_length = tx_size; |
2359 | serial->tx_data = kzalloc(serial->tx_data_length, GFP_KERNEL); | 2386 | serial->tx_data = kzalloc(serial->tx_data_length, GFP_KERNEL); |
2360 | if (!serial->tx_data) { | 2387 | if (!serial->tx_data) { |
2361 | dev_err(dev, "%s - Out of memory", __func__); | 2388 | dev_err(dev, "%s - Out of memory\n", __func__); |
2362 | goto exit; | 2389 | goto exit; |
2363 | } | 2390 | } |
2364 | serial->tx_buffer = kzalloc(serial->tx_data_length, GFP_KERNEL); | 2391 | serial->tx_buffer = kzalloc(serial->tx_data_length, GFP_KERNEL); |
2365 | if (!serial->tx_buffer) { | 2392 | if (!serial->tx_buffer) { |
2366 | dev_err(dev, "%s - Out of memory", __func__); | 2393 | dev_err(dev, "%s - Out of memory\n", __func__); |
2367 | goto exit; | 2394 | goto exit; |
2368 | } | 2395 | } |
2369 | 2396 | ||
@@ -2391,6 +2418,7 @@ static struct hso_device *hso_create_device(struct usb_interface *intf, | |||
2391 | 2418 | ||
2392 | INIT_WORK(&hso_dev->async_get_intf, async_get_intf); | 2419 | INIT_WORK(&hso_dev->async_get_intf, async_get_intf); |
2393 | INIT_WORK(&hso_dev->async_put_intf, async_put_intf); | 2420 | INIT_WORK(&hso_dev->async_put_intf, async_put_intf); |
2421 | INIT_WORK(&hso_dev->reset_device, reset_device); | ||
2394 | 2422 | ||
2395 | return hso_dev; | 2423 | return hso_dev; |
2396 | } | 2424 | } |
@@ -2831,13 +2859,14 @@ struct hso_shared_int *hso_create_shared_int(struct usb_interface *interface) | |||
2831 | 2859 | ||
2832 | mux->shared_intr_urb = usb_alloc_urb(0, GFP_KERNEL); | 2860 | mux->shared_intr_urb = usb_alloc_urb(0, GFP_KERNEL); |
2833 | if (!mux->shared_intr_urb) { | 2861 | if (!mux->shared_intr_urb) { |
2834 | dev_err(&interface->dev, "Could not allocate intr urb?"); | 2862 | dev_err(&interface->dev, "Could not allocate intr urb?\n"); |
2835 | goto exit; | 2863 | goto exit; |
2836 | } | 2864 | } |
2837 | mux->shared_intr_buf = kzalloc(mux->intr_endp->wMaxPacketSize, | 2865 | mux->shared_intr_buf = |
2838 | GFP_KERNEL); | 2866 | kzalloc(le16_to_cpu(mux->intr_endp->wMaxPacketSize), |
2867 | GFP_KERNEL); | ||
2839 | if (!mux->shared_intr_buf) { | 2868 | if (!mux->shared_intr_buf) { |
2840 | dev_err(&interface->dev, "Could not allocate intr buf?"); | 2869 | dev_err(&interface->dev, "Could not allocate intr buf?\n"); |
2841 | goto exit; | 2870 | goto exit; |
2842 | } | 2871 | } |
2843 | 2872 | ||
@@ -3132,6 +3161,26 @@ out: | |||
3132 | return result; | 3161 | return result; |
3133 | } | 3162 | } |
3134 | 3163 | ||
3164 | static void reset_device(struct work_struct *data) | ||
3165 | { | ||
3166 | struct hso_device *hso_dev = | ||
3167 | container_of(data, struct hso_device, reset_device); | ||
3168 | struct usb_device *usb = hso_dev->usb; | ||
3169 | int result; | ||
3170 | |||
3171 | if (hso_dev->usb_gone) { | ||
3172 | D1("No reset during disconnect\n"); | ||
3173 | } else { | ||
3174 | result = usb_lock_device_for_reset(usb, hso_dev->interface); | ||
3175 | if (result < 0) | ||
3176 | D1("unable to lock device for reset: %d\n", result); | ||
3177 | else { | ||
3178 | usb_reset_device(usb); | ||
3179 | usb_unlock_device(usb); | ||
3180 | } | ||
3181 | } | ||
3182 | } | ||
3183 | |||
3135 | static void hso_serial_ref_free(struct kref *ref) | 3184 | static void hso_serial_ref_free(struct kref *ref) |
3136 | { | 3185 | { |
3137 | struct hso_device *hso_dev = container_of(ref, struct hso_device, ref); | 3186 | struct hso_device *hso_dev = container_of(ref, struct hso_device, ref); |
@@ -3232,13 +3281,13 @@ static int hso_mux_submit_intr_urb(struct hso_shared_int *shared_int, | |||
3232 | usb_rcvintpipe(usb, | 3281 | usb_rcvintpipe(usb, |
3233 | shared_int->intr_endp->bEndpointAddress & 0x7F), | 3282 | shared_int->intr_endp->bEndpointAddress & 0x7F), |
3234 | shared_int->shared_intr_buf, | 3283 | shared_int->shared_intr_buf, |
3235 | shared_int->intr_endp->wMaxPacketSize, | 3284 | 1, |
3236 | intr_callback, shared_int, | 3285 | intr_callback, shared_int, |
3237 | shared_int->intr_endp->bInterval); | 3286 | shared_int->intr_endp->bInterval); |
3238 | 3287 | ||
3239 | result = usb_submit_urb(shared_int->shared_intr_urb, gfp); | 3288 | result = usb_submit_urb(shared_int->shared_intr_urb, gfp); |
3240 | if (result) | 3289 | if (result) |
3241 | dev_warn(&usb->dev, "%s failed mux_intr_urb %d", __func__, | 3290 | dev_warn(&usb->dev, "%s failed mux_intr_urb %d\n", __func__, |
3242 | result); | 3291 | result); |
3243 | 3292 | ||
3244 | return result; | 3293 | return result; |
diff --git a/drivers/net/usb/rtl8150.c b/drivers/net/usb/rtl8150.c index f14d225404d..fd19db0d250 100644 --- a/drivers/net/usb/rtl8150.c +++ b/drivers/net/usb/rtl8150.c | |||
@@ -270,7 +270,7 @@ static int read_mii_word(rtl8150_t * dev, u8 phy, __u8 indx, u16 * reg) | |||
270 | get_registers(dev, PHYCNT, 1, data); | 270 | get_registers(dev, PHYCNT, 1, data); |
271 | } while ((data[0] & PHY_GO) && (i++ < MII_TIMEOUT)); | 271 | } while ((data[0] & PHY_GO) && (i++ < MII_TIMEOUT)); |
272 | 272 | ||
273 | if (i < MII_TIMEOUT) { | 273 | if (i <= MII_TIMEOUT) { |
274 | get_registers(dev, PHYDAT, 2, data); | 274 | get_registers(dev, PHYDAT, 2, data); |
275 | *reg = data[0] | (data[1] << 8); | 275 | *reg = data[0] | (data[1] << 8); |
276 | return 0; | 276 | return 0; |
@@ -295,7 +295,7 @@ static int write_mii_word(rtl8150_t * dev, u8 phy, __u8 indx, u16 reg) | |||
295 | get_registers(dev, PHYCNT, 1, data); | 295 | get_registers(dev, PHYCNT, 1, data); |
296 | } while ((data[0] & PHY_GO) && (i++ < MII_TIMEOUT)); | 296 | } while ((data[0] & PHY_GO) && (i++ < MII_TIMEOUT)); |
297 | 297 | ||
298 | if (i < MII_TIMEOUT) | 298 | if (i <= MII_TIMEOUT) |
299 | return 0; | 299 | return 0; |
300 | else | 300 | else |
301 | return 1; | 301 | return 1; |
diff --git a/drivers/net/via-rhine.c b/drivers/net/via-rhine.c index 593e01f64e9..611b8043595 100644 --- a/drivers/net/via-rhine.c +++ b/drivers/net/via-rhine.c | |||
@@ -102,6 +102,7 @@ static const int multicast_filter_limit = 32; | |||
102 | #include <linux/ethtool.h> | 102 | #include <linux/ethtool.h> |
103 | #include <linux/crc32.h> | 103 | #include <linux/crc32.h> |
104 | #include <linux/bitops.h> | 104 | #include <linux/bitops.h> |
105 | #include <linux/workqueue.h> | ||
105 | #include <asm/processor.h> /* Processor type for cache alignment. */ | 106 | #include <asm/processor.h> /* Processor type for cache alignment. */ |
106 | #include <asm/io.h> | 107 | #include <asm/io.h> |
107 | #include <asm/irq.h> | 108 | #include <asm/irq.h> |
@@ -389,6 +390,7 @@ struct rhine_private { | |||
389 | struct net_device *dev; | 390 | struct net_device *dev; |
390 | struct napi_struct napi; | 391 | struct napi_struct napi; |
391 | spinlock_t lock; | 392 | spinlock_t lock; |
393 | struct work_struct reset_task; | ||
392 | 394 | ||
393 | /* Frequently used values: keep some adjacent for cache effect. */ | 395 | /* Frequently used values: keep some adjacent for cache effect. */ |
394 | u32 quirks; | 396 | u32 quirks; |
@@ -407,6 +409,7 @@ struct rhine_private { | |||
407 | static int mdio_read(struct net_device *dev, int phy_id, int location); | 409 | static int mdio_read(struct net_device *dev, int phy_id, int location); |
408 | static void mdio_write(struct net_device *dev, int phy_id, int location, int value); | 410 | static void mdio_write(struct net_device *dev, int phy_id, int location, int value); |
409 | static int rhine_open(struct net_device *dev); | 411 | static int rhine_open(struct net_device *dev); |
412 | static void rhine_reset_task(struct work_struct *work); | ||
410 | static void rhine_tx_timeout(struct net_device *dev); | 413 | static void rhine_tx_timeout(struct net_device *dev); |
411 | static netdev_tx_t rhine_start_tx(struct sk_buff *skb, | 414 | static netdev_tx_t rhine_start_tx(struct sk_buff *skb, |
412 | struct net_device *dev); | 415 | struct net_device *dev); |
@@ -775,6 +778,8 @@ static int __devinit rhine_init_one(struct pci_dev *pdev, | |||
775 | dev->irq = pdev->irq; | 778 | dev->irq = pdev->irq; |
776 | 779 | ||
777 | spin_lock_init(&rp->lock); | 780 | spin_lock_init(&rp->lock); |
781 | INIT_WORK(&rp->reset_task, rhine_reset_task); | ||
782 | |||
778 | rp->mii_if.dev = dev; | 783 | rp->mii_if.dev = dev; |
779 | rp->mii_if.mdio_read = mdio_read; | 784 | rp->mii_if.mdio_read = mdio_read; |
780 | rp->mii_if.mdio_write = mdio_write; | 785 | rp->mii_if.mdio_write = mdio_write; |
@@ -1179,22 +1184,18 @@ static int rhine_open(struct net_device *dev) | |||
1179 | return 0; | 1184 | return 0; |
1180 | } | 1185 | } |
1181 | 1186 | ||
1182 | static void rhine_tx_timeout(struct net_device *dev) | 1187 | static void rhine_reset_task(struct work_struct *work) |
1183 | { | 1188 | { |
1184 | struct rhine_private *rp = netdev_priv(dev); | 1189 | struct rhine_private *rp = container_of(work, struct rhine_private, |
1185 | void __iomem *ioaddr = rp->base; | 1190 | reset_task); |
1186 | 1191 | struct net_device *dev = rp->dev; | |
1187 | printk(KERN_WARNING "%s: Transmit timed out, status %4.4x, PHY status " | ||
1188 | "%4.4x, resetting...\n", | ||
1189 | dev->name, ioread16(ioaddr + IntrStatus), | ||
1190 | mdio_read(dev, rp->mii_if.phy_id, MII_BMSR)); | ||
1191 | 1192 | ||
1192 | /* protect against concurrent rx interrupts */ | 1193 | /* protect against concurrent rx interrupts */ |
1193 | disable_irq(rp->pdev->irq); | 1194 | disable_irq(rp->pdev->irq); |
1194 | 1195 | ||
1195 | napi_disable(&rp->napi); | 1196 | napi_disable(&rp->napi); |
1196 | 1197 | ||
1197 | spin_lock(&rp->lock); | 1198 | spin_lock_bh(&rp->lock); |
1198 | 1199 | ||
1199 | /* clear all descriptors */ | 1200 | /* clear all descriptors */ |
1200 | free_tbufs(dev); | 1201 | free_tbufs(dev); |
@@ -1206,7 +1207,7 @@ static void rhine_tx_timeout(struct net_device *dev) | |||
1206 | rhine_chip_reset(dev); | 1207 | rhine_chip_reset(dev); |
1207 | init_registers(dev); | 1208 | init_registers(dev); |
1208 | 1209 | ||
1209 | spin_unlock(&rp->lock); | 1210 | spin_unlock_bh(&rp->lock); |
1210 | enable_irq(rp->pdev->irq); | 1211 | enable_irq(rp->pdev->irq); |
1211 | 1212 | ||
1212 | dev->trans_start = jiffies; | 1213 | dev->trans_start = jiffies; |
@@ -1214,6 +1215,19 @@ static void rhine_tx_timeout(struct net_device *dev) | |||
1214 | netif_wake_queue(dev); | 1215 | netif_wake_queue(dev); |
1215 | } | 1216 | } |
1216 | 1217 | ||
1218 | static void rhine_tx_timeout(struct net_device *dev) | ||
1219 | { | ||
1220 | struct rhine_private *rp = netdev_priv(dev); | ||
1221 | void __iomem *ioaddr = rp->base; | ||
1222 | |||
1223 | printk(KERN_WARNING "%s: Transmit timed out, status %4.4x, PHY status " | ||
1224 | "%4.4x, resetting...\n", | ||
1225 | dev->name, ioread16(ioaddr + IntrStatus), | ||
1226 | mdio_read(dev, rp->mii_if.phy_id, MII_BMSR)); | ||
1227 | |||
1228 | schedule_work(&rp->reset_task); | ||
1229 | } | ||
1230 | |||
1217 | static netdev_tx_t rhine_start_tx(struct sk_buff *skb, | 1231 | static netdev_tx_t rhine_start_tx(struct sk_buff *skb, |
1218 | struct net_device *dev) | 1232 | struct net_device *dev) |
1219 | { | 1233 | { |
@@ -1830,10 +1844,11 @@ static int rhine_close(struct net_device *dev) | |||
1830 | struct rhine_private *rp = netdev_priv(dev); | 1844 | struct rhine_private *rp = netdev_priv(dev); |
1831 | void __iomem *ioaddr = rp->base; | 1845 | void __iomem *ioaddr = rp->base; |
1832 | 1846 | ||
1833 | spin_lock_irq(&rp->lock); | ||
1834 | |||
1835 | netif_stop_queue(dev); | ||
1836 | napi_disable(&rp->napi); | 1847 | napi_disable(&rp->napi); |
1848 | cancel_work_sync(&rp->reset_task); | ||
1849 | netif_stop_queue(dev); | ||
1850 | |||
1851 | spin_lock_irq(&rp->lock); | ||
1837 | 1852 | ||
1838 | if (debug > 1) | 1853 | if (debug > 1) |
1839 | printk(KERN_DEBUG "%s: Shutting down ethercard, " | 1854 | printk(KERN_DEBUG "%s: Shutting down ethercard, " |
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c index 4ceb441f268..c93f58f5c6f 100644 --- a/drivers/net/via-velocity.c +++ b/drivers/net/via-velocity.c | |||
@@ -2237,8 +2237,6 @@ static int velocity_open(struct net_device *dev) | |||
2237 | /* Ensure chip is running */ | 2237 | /* Ensure chip is running */ |
2238 | pci_set_power_state(vptr->pdev, PCI_D0); | 2238 | pci_set_power_state(vptr->pdev, PCI_D0); |
2239 | 2239 | ||
2240 | velocity_give_many_rx_descs(vptr); | ||
2241 | |||
2242 | velocity_init_registers(vptr, VELOCITY_INIT_COLD); | 2240 | velocity_init_registers(vptr, VELOCITY_INIT_COLD); |
2243 | 2241 | ||
2244 | ret = request_irq(vptr->pdev->irq, velocity_intr, IRQF_SHARED, | 2242 | ret = request_irq(vptr->pdev->irq, velocity_intr, IRQF_SHARED, |
@@ -2250,6 +2248,8 @@ static int velocity_open(struct net_device *dev) | |||
2250 | goto out; | 2248 | goto out; |
2251 | } | 2249 | } |
2252 | 2250 | ||
2251 | velocity_give_many_rx_descs(vptr); | ||
2252 | |||
2253 | mac_enable_int(vptr->mac_regs); | 2253 | mac_enable_int(vptr->mac_regs); |
2254 | netif_start_queue(dev); | 2254 | netif_start_queue(dev); |
2255 | napi_enable(&vptr->napi); | 2255 | napi_enable(&vptr->napi); |
@@ -2339,10 +2339,10 @@ static int velocity_change_mtu(struct net_device *dev, int new_mtu) | |||
2339 | 2339 | ||
2340 | dev->mtu = new_mtu; | 2340 | dev->mtu = new_mtu; |
2341 | 2341 | ||
2342 | velocity_give_many_rx_descs(vptr); | ||
2343 | |||
2344 | velocity_init_registers(vptr, VELOCITY_INIT_COLD); | 2342 | velocity_init_registers(vptr, VELOCITY_INIT_COLD); |
2345 | 2343 | ||
2344 | velocity_give_many_rx_descs(vptr); | ||
2345 | |||
2346 | mac_enable_int(vptr->mac_regs); | 2346 | mac_enable_int(vptr->mac_regs); |
2347 | netif_start_queue(dev); | 2347 | netif_start_queue(dev); |
2348 | 2348 | ||
diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c index f1c4b2a1e86..b9685e82f7b 100644 --- a/drivers/net/vxge/vxge-main.c +++ b/drivers/net/vxge/vxge-main.c | |||
@@ -310,7 +310,7 @@ static int vxge_rx_map(void *dtrh, struct vxge_ring *ring) | |||
310 | dma_addr = pci_map_single(ring->pdev, rx_priv->skb_data, | 310 | dma_addr = pci_map_single(ring->pdev, rx_priv->skb_data, |
311 | rx_priv->data_size, PCI_DMA_FROMDEVICE); | 311 | rx_priv->data_size, PCI_DMA_FROMDEVICE); |
312 | 312 | ||
313 | if (dma_addr == 0) { | 313 | if (unlikely(pci_dma_mapping_error(ring->pdev, dma_addr))) { |
314 | ring->stats.pci_map_fail++; | 314 | ring->stats.pci_map_fail++; |
315 | return -EIO; | 315 | return -EIO; |
316 | } | 316 | } |
@@ -4087,21 +4087,21 @@ vxge_probe(struct pci_dev *pdev, const struct pci_device_id *pre) | |||
4087 | goto _exit0; | 4087 | goto _exit0; |
4088 | } | 4088 | } |
4089 | 4089 | ||
4090 | if (!pci_set_dma_mask(pdev, 0xffffffffffffffffULL)) { | 4090 | if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { |
4091 | vxge_debug_ll_config(VXGE_TRACE, | 4091 | vxge_debug_ll_config(VXGE_TRACE, |
4092 | "%s : using 64bit DMA", __func__); | 4092 | "%s : using 64bit DMA", __func__); |
4093 | 4093 | ||
4094 | high_dma = 1; | 4094 | high_dma = 1; |
4095 | 4095 | ||
4096 | if (pci_set_consistent_dma_mask(pdev, | 4096 | if (pci_set_consistent_dma_mask(pdev, |
4097 | 0xffffffffffffffffULL)) { | 4097 | DMA_BIT_MASK(64))) { |
4098 | vxge_debug_init(VXGE_ERR, | 4098 | vxge_debug_init(VXGE_ERR, |
4099 | "%s : unable to obtain 64bit DMA for " | 4099 | "%s : unable to obtain 64bit DMA for " |
4100 | "consistent allocations", __func__); | 4100 | "consistent allocations", __func__); |
4101 | ret = -ENOMEM; | 4101 | ret = -ENOMEM; |
4102 | goto _exit1; | 4102 | goto _exit1; |
4103 | } | 4103 | } |
4104 | } else if (!pci_set_dma_mask(pdev, 0xffffffffUL)) { | 4104 | } else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { |
4105 | vxge_debug_ll_config(VXGE_TRACE, | 4105 | vxge_debug_ll_config(VXGE_TRACE, |
4106 | "%s : using 32bit DMA", __func__); | 4106 | "%s : using 32bit DMA", __func__); |
4107 | } else { | 4107 | } else { |
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c index a4c086f069b..e63b7c40d0e 100644 --- a/drivers/net/wireless/ath/ath5k/base.c +++ b/drivers/net/wireless/ath/ath5k/base.c | |||
@@ -1903,17 +1903,6 @@ accept: | |||
1903 | rxs->noise = sc->ah->ah_noise_floor; | 1903 | rxs->noise = sc->ah->ah_noise_floor; |
1904 | rxs->signal = rxs->noise + rs.rs_rssi; | 1904 | rxs->signal = rxs->noise + rs.rs_rssi; |
1905 | 1905 | ||
1906 | /* An rssi of 35 indicates you should be able use | ||
1907 | * 54 Mbps reliably. A more elaborate scheme can be used | ||
1908 | * here but it requires a map of SNR/throughput for each | ||
1909 | * possible mode used */ | ||
1910 | rxs->qual = rs.rs_rssi * 100 / 35; | ||
1911 | |||
1912 | /* rssi can be more than 35 though, anything above that | ||
1913 | * should be considered at 100% */ | ||
1914 | if (rxs->qual > 100) | ||
1915 | rxs->qual = 100; | ||
1916 | |||
1917 | rxs->antenna = rs.rs_antenna; | 1906 | rxs->antenna = rs.rs_antenna; |
1918 | rxs->rate_idx = ath5k_hw_to_driver_rix(sc, rs.rs_rate); | 1907 | rxs->rate_idx = ath5k_hw_to_driver_rix(sc, rs.rs_rate); |
1919 | rxs->flag |= ath5k_rx_decrypted(sc, ds, skb, &rs); | 1908 | rxs->flag |= ath5k_rx_decrypted(sc, ds, skb, &rs); |
@@ -2381,6 +2370,9 @@ ath5k_init(struct ath5k_softc *sc) | |||
2381 | */ | 2370 | */ |
2382 | ath5k_stop_locked(sc); | 2371 | ath5k_stop_locked(sc); |
2383 | 2372 | ||
2373 | /* Set PHY calibration interval */ | ||
2374 | ah->ah_cal_intval = ath5k_calinterval; | ||
2375 | |||
2384 | /* | 2376 | /* |
2385 | * The basic interface to setting the hardware in a good | 2377 | * The basic interface to setting the hardware in a good |
2386 | * state is ``reset''. On return the hardware is known to | 2378 | * state is ``reset''. On return the hardware is known to |
@@ -2408,10 +2400,6 @@ ath5k_init(struct ath5k_softc *sc) | |||
2408 | 2400 | ||
2409 | /* Set ack to be sent at low bit-rates */ | 2401 | /* Set ack to be sent at low bit-rates */ |
2410 | ath5k_hw_set_ack_bitrate_high(ah, false); | 2402 | ath5k_hw_set_ack_bitrate_high(ah, false); |
2411 | |||
2412 | /* Set PHY calibration inteval */ | ||
2413 | ah->ah_cal_intval = ath5k_calinterval; | ||
2414 | |||
2415 | ret = 0; | 2403 | ret = 0; |
2416 | done: | 2404 | done: |
2417 | mmiowb(); | 2405 | mmiowb(); |
diff --git a/drivers/net/wireless/ath/ath5k/eeprom.c b/drivers/net/wireless/ath/ath5k/eeprom.c index 5d1c8677f18..6a3f4da7fb4 100644 --- a/drivers/net/wireless/ath/ath5k/eeprom.c +++ b/drivers/net/wireless/ath/ath5k/eeprom.c | |||
@@ -97,7 +97,7 @@ ath5k_eeprom_init_header(struct ath5k_hw *ah) | |||
97 | struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom; | 97 | struct ath5k_eeprom_info *ee = &ah->ah_capabilities.cap_eeprom; |
98 | int ret; | 98 | int ret; |
99 | u16 val; | 99 | u16 val; |
100 | u32 cksum, offset; | 100 | u32 cksum, offset, eep_max = AR5K_EEPROM_INFO_MAX; |
101 | 101 | ||
102 | /* | 102 | /* |
103 | * Read values from EEPROM and store them in the capability structure | 103 | * Read values from EEPROM and store them in the capability structure |
@@ -116,12 +116,38 @@ ath5k_eeprom_init_header(struct ath5k_hw *ah) | |||
116 | * Validate the checksum of the EEPROM date. There are some | 116 | * Validate the checksum of the EEPROM date. There are some |
117 | * devices with invalid EEPROMs. | 117 | * devices with invalid EEPROMs. |
118 | */ | 118 | */ |
119 | for (cksum = 0, offset = 0; offset < AR5K_EEPROM_INFO_MAX; offset++) { | 119 | AR5K_EEPROM_READ(AR5K_EEPROM_SIZE_UPPER, val); |
120 | if (val) { | ||
121 | eep_max = (val & AR5K_EEPROM_SIZE_UPPER_MASK) << | ||
122 | AR5K_EEPROM_SIZE_ENDLOC_SHIFT; | ||
123 | AR5K_EEPROM_READ(AR5K_EEPROM_SIZE_LOWER, val); | ||
124 | eep_max = (eep_max | val) - AR5K_EEPROM_INFO_BASE; | ||
125 | |||
126 | /* | ||
127 | * Fail safe check to prevent stupid loops due | ||
128 | * to busted EEPROMs. XXX: This value is likely too | ||
129 | * big still, waiting on a better value. | ||
130 | */ | ||
131 | if (eep_max > (3 * AR5K_EEPROM_INFO_MAX)) { | ||
132 | ATH5K_ERR(ah->ah_sc, "Invalid max custom EEPROM size: " | ||
133 | "%d (0x%04x) max expected: %d (0x%04x)\n", | ||
134 | eep_max, eep_max, | ||
135 | 3 * AR5K_EEPROM_INFO_MAX, | ||
136 | 3 * AR5K_EEPROM_INFO_MAX); | ||
137 | return -EIO; | ||
138 | } | ||
139 | } | ||
140 | |||
141 | for (cksum = 0, offset = 0; offset < eep_max; offset++) { | ||
120 | AR5K_EEPROM_READ(AR5K_EEPROM_INFO(offset), val); | 142 | AR5K_EEPROM_READ(AR5K_EEPROM_INFO(offset), val); |
121 | cksum ^= val; | 143 | cksum ^= val; |
122 | } | 144 | } |
123 | if (cksum != AR5K_EEPROM_INFO_CKSUM) { | 145 | if (cksum != AR5K_EEPROM_INFO_CKSUM) { |
124 | ATH5K_ERR(ah->ah_sc, "Invalid EEPROM checksum 0x%04x\n", cksum); | 146 | ATH5K_ERR(ah->ah_sc, "Invalid EEPROM " |
147 | "checksum: 0x%04x eep_max: 0x%04x (%s)\n", | ||
148 | cksum, eep_max, | ||
149 | eep_max == AR5K_EEPROM_INFO_MAX ? | ||
150 | "default size" : "custom size"); | ||
125 | return -EIO; | 151 | return -EIO; |
126 | } | 152 | } |
127 | 153 | ||
diff --git a/drivers/net/wireless/ath/ath5k/eeprom.h b/drivers/net/wireless/ath/ath5k/eeprom.h index 0123f3521a0..473a483bb9c 100644 --- a/drivers/net/wireless/ath/ath5k/eeprom.h +++ b/drivers/net/wireless/ath/ath5k/eeprom.h | |||
@@ -37,6 +37,14 @@ | |||
37 | #define AR5K_EEPROM_RFKILL_POLARITY_S 1 | 37 | #define AR5K_EEPROM_RFKILL_POLARITY_S 1 |
38 | 38 | ||
39 | #define AR5K_EEPROM_REG_DOMAIN 0x00bf /* EEPROM regdom */ | 39 | #define AR5K_EEPROM_REG_DOMAIN 0x00bf /* EEPROM regdom */ |
40 | |||
41 | /* FLASH(EEPROM) Defines for AR531X chips */ | ||
42 | #define AR5K_EEPROM_SIZE_LOWER 0x1b /* size info -- lower */ | ||
43 | #define AR5K_EEPROM_SIZE_UPPER 0x1c /* size info -- upper */ | ||
44 | #define AR5K_EEPROM_SIZE_UPPER_MASK 0xfff0 | ||
45 | #define AR5K_EEPROM_SIZE_UPPER_SHIFT 4 | ||
46 | #define AR5K_EEPROM_SIZE_ENDLOC_SHIFT 12 | ||
47 | |||
40 | #define AR5K_EEPROM_CHECKSUM 0x00c0 /* EEPROM checksum */ | 48 | #define AR5K_EEPROM_CHECKSUM 0x00c0 /* EEPROM checksum */ |
41 | #define AR5K_EEPROM_INFO_BASE 0x00c0 /* EEPROM header */ | 49 | #define AR5K_EEPROM_INFO_BASE 0x00c0 /* EEPROM header */ |
42 | #define AR5K_EEPROM_INFO_MAX (0x400 - AR5K_EEPROM_INFO_BASE) | 50 | #define AR5K_EEPROM_INFO_MAX (0x400 - AR5K_EEPROM_INFO_BASE) |
diff --git a/drivers/net/wireless/ath/ath9k/Kconfig b/drivers/net/wireless/ath/ath9k/Kconfig index 03a1106ad72..5774cea23a3 100644 --- a/drivers/net/wireless/ath/ath9k/Kconfig +++ b/drivers/net/wireless/ath/ath9k/Kconfig | |||
@@ -25,7 +25,7 @@ config ATH9K | |||
25 | 25 | ||
26 | config ATH9K_DEBUGFS | 26 | config ATH9K_DEBUGFS |
27 | bool "Atheros ath9k debugging" | 27 | bool "Atheros ath9k debugging" |
28 | depends on ATH9K | 28 | depends on ATH9K && DEBUG_FS |
29 | ---help--- | 29 | ---help--- |
30 | Say Y, if you need access to ath9k's statistics for | 30 | Say Y, if you need access to ath9k's statistics for |
31 | interrupts, rate control, etc. | 31 | interrupts, rate control, etc. |
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h index e2cef2ff5d8..1597a42731e 100644 --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h | |||
@@ -33,11 +33,11 @@ struct ath_node; | |||
33 | 33 | ||
34 | /* Macro to expand scalars to 64-bit objects */ | 34 | /* Macro to expand scalars to 64-bit objects */ |
35 | 35 | ||
36 | #define ito64(x) (sizeof(x) == 8) ? \ | 36 | #define ito64(x) (sizeof(x) == 1) ? \ |
37 | (((unsigned long long int)(x)) & (0xff)) : \ | 37 | (((unsigned long long int)(x)) & (0xff)) : \ |
38 | (sizeof(x) == 16) ? \ | 38 | (sizeof(x) == 2) ? \ |
39 | (((unsigned long long int)(x)) & 0xffff) : \ | 39 | (((unsigned long long int)(x)) & 0xffff) : \ |
40 | ((sizeof(x) == 32) ? \ | 40 | ((sizeof(x) == 4) ? \ |
41 | (((unsigned long long int)(x)) & 0xffffffff) : \ | 41 | (((unsigned long long int)(x)) & 0xffffffff) : \ |
42 | (unsigned long long int)(x)) | 42 | (unsigned long long int)(x)) |
43 | 43 | ||
diff --git a/drivers/net/wireless/ath/ath9k/mac.c b/drivers/net/wireless/ath/ath9k/mac.c index 71b84d91dcf..efc420cd42b 100644 --- a/drivers/net/wireless/ath/ath9k/mac.c +++ b/drivers/net/wireless/ath/ath9k/mac.c | |||
@@ -186,7 +186,7 @@ bool ath9k_hw_stoptxdma(struct ath_hw *ah, u32 q) | |||
186 | wait = wait_time; | 186 | wait = wait_time; |
187 | while (ath9k_hw_numtxpending(ah, q)) { | 187 | while (ath9k_hw_numtxpending(ah, q)) { |
188 | if ((--wait) == 0) { | 188 | if ((--wait) == 0) { |
189 | ath_print(common, ATH_DBG_QUEUE, | 189 | ath_print(common, ATH_DBG_FATAL, |
190 | "Failed to stop TX DMA in 100 " | 190 | "Failed to stop TX DMA in 100 " |
191 | "msec after killing last frame\n"); | 191 | "msec after killing last frame\n"); |
192 | break; | 192 | break; |
diff --git a/drivers/net/wireless/ath/ath9k/mac.h b/drivers/net/wireless/ath/ath9k/mac.h index 0c87771383f..e185479e295 100644 --- a/drivers/net/wireless/ath/ath9k/mac.h +++ b/drivers/net/wireless/ath/ath9k/mac.h | |||
@@ -77,6 +77,9 @@ | |||
77 | #define ATH9K_TXERR_XTXOP 0x08 | 77 | #define ATH9K_TXERR_XTXOP 0x08 |
78 | #define ATH9K_TXERR_TIMER_EXPIRED 0x10 | 78 | #define ATH9K_TXERR_TIMER_EXPIRED 0x10 |
79 | #define ATH9K_TX_ACKED 0x20 | 79 | #define ATH9K_TX_ACKED 0x20 |
80 | #define ATH9K_TXERR_MASK \ | ||
81 | (ATH9K_TXERR_XRETRY | ATH9K_TXERR_FILT | ATH9K_TXERR_FIFO | \ | ||
82 | ATH9K_TXERR_XTXOP | ATH9K_TXERR_TIMER_EXPIRED) | ||
80 | 83 | ||
81 | #define ATH9K_TX_BA 0x01 | 84 | #define ATH9K_TX_BA 0x01 |
82 | #define ATH9K_TX_PWRMGMT 0x02 | 85 | #define ATH9K_TX_PWRMGMT 0x02 |
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index c4874345251..996eb90263c 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
@@ -1973,6 +1973,9 @@ int ath_reset(struct ath_softc *sc, bool retry_tx) | |||
1973 | struct ieee80211_hw *hw = sc->hw; | 1973 | struct ieee80211_hw *hw = sc->hw; |
1974 | int r; | 1974 | int r; |
1975 | 1975 | ||
1976 | /* Stop ANI */ | ||
1977 | del_timer_sync(&common->ani.timer); | ||
1978 | |||
1976 | ath9k_hw_set_interrupts(ah, 0); | 1979 | ath9k_hw_set_interrupts(ah, 0); |
1977 | ath_drain_all_txq(sc, retry_tx); | 1980 | ath_drain_all_txq(sc, retry_tx); |
1978 | ath_stoprecv(sc); | 1981 | ath_stoprecv(sc); |
@@ -2014,6 +2017,9 @@ int ath_reset(struct ath_softc *sc, bool retry_tx) | |||
2014 | } | 2017 | } |
2015 | } | 2018 | } |
2016 | 2019 | ||
2020 | /* Start ANI */ | ||
2021 | ath_start_ani(common); | ||
2022 | |||
2017 | return r; | 2023 | return r; |
2018 | } | 2024 | } |
2019 | 2025 | ||
@@ -2508,6 +2514,9 @@ static void ath9k_stop(struct ieee80211_hw *hw) | |||
2508 | return; /* another wiphy still in use */ | 2514 | return; /* another wiphy still in use */ |
2509 | } | 2515 | } |
2510 | 2516 | ||
2517 | /* Ensure HW is awake when we try to shut it down. */ | ||
2518 | ath9k_ps_wakeup(sc); | ||
2519 | |||
2511 | if (ah->btcoex_hw.enabled) { | 2520 | if (ah->btcoex_hw.enabled) { |
2512 | ath9k_hw_btcoex_disable(ah); | 2521 | ath9k_hw_btcoex_disable(ah); |
2513 | if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE) | 2522 | if (ah->btcoex_hw.scheme == ATH_BTCOEX_CFG_3WIRE) |
@@ -2528,6 +2537,9 @@ static void ath9k_stop(struct ieee80211_hw *hw) | |||
2528 | /* disable HAL and put h/w to sleep */ | 2537 | /* disable HAL and put h/w to sleep */ |
2529 | ath9k_hw_disable(ah); | 2538 | ath9k_hw_disable(ah); |
2530 | ath9k_hw_configpcipowersave(ah, 1, 1); | 2539 | ath9k_hw_configpcipowersave(ah, 1, 1); |
2540 | ath9k_ps_restore(sc); | ||
2541 | |||
2542 | /* Finally, put the chip in FULL SLEEP mode */ | ||
2531 | ath9k_setpower(sc, ATH9K_PM_FULL_SLEEP); | 2543 | ath9k_setpower(sc, ATH9K_PM_FULL_SLEEP); |
2532 | 2544 | ||
2533 | sc->sc_flags |= SC_OP_INVALID; | 2545 | sc->sc_flags |= SC_OP_INVALID; |
@@ -2641,8 +2653,10 @@ static void ath9k_remove_interface(struct ieee80211_hw *hw, | |||
2641 | if ((sc->sc_ah->opmode == NL80211_IFTYPE_AP) || | 2653 | if ((sc->sc_ah->opmode == NL80211_IFTYPE_AP) || |
2642 | (sc->sc_ah->opmode == NL80211_IFTYPE_ADHOC) || | 2654 | (sc->sc_ah->opmode == NL80211_IFTYPE_ADHOC) || |
2643 | (sc->sc_ah->opmode == NL80211_IFTYPE_MESH_POINT)) { | 2655 | (sc->sc_ah->opmode == NL80211_IFTYPE_MESH_POINT)) { |
2656 | ath9k_ps_wakeup(sc); | ||
2644 | ath9k_hw_stoptxdma(sc->sc_ah, sc->beacon.beaconq); | 2657 | ath9k_hw_stoptxdma(sc->sc_ah, sc->beacon.beaconq); |
2645 | ath_beacon_return(sc, avp); | 2658 | ath_beacon_return(sc, avp); |
2659 | ath9k_ps_restore(sc); | ||
2646 | } | 2660 | } |
2647 | 2661 | ||
2648 | sc->sc_flags &= ~SC_OP_BEACONS; | 2662 | sc->sc_flags &= ~SC_OP_BEACONS; |
@@ -3091,15 +3105,21 @@ static int ath9k_ampdu_action(struct ieee80211_hw *hw, | |||
3091 | case IEEE80211_AMPDU_RX_STOP: | 3105 | case IEEE80211_AMPDU_RX_STOP: |
3092 | break; | 3106 | break; |
3093 | case IEEE80211_AMPDU_TX_START: | 3107 | case IEEE80211_AMPDU_TX_START: |
3108 | ath9k_ps_wakeup(sc); | ||
3094 | ath_tx_aggr_start(sc, sta, tid, ssn); | 3109 | ath_tx_aggr_start(sc, sta, tid, ssn); |
3095 | ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); | 3110 | ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); |
3111 | ath9k_ps_restore(sc); | ||
3096 | break; | 3112 | break; |
3097 | case IEEE80211_AMPDU_TX_STOP: | 3113 | case IEEE80211_AMPDU_TX_STOP: |
3114 | ath9k_ps_wakeup(sc); | ||
3098 | ath_tx_aggr_stop(sc, sta, tid); | 3115 | ath_tx_aggr_stop(sc, sta, tid); |
3099 | ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); | 3116 | ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); |
3117 | ath9k_ps_restore(sc); | ||
3100 | break; | 3118 | break; |
3101 | case IEEE80211_AMPDU_TX_OPERATIONAL: | 3119 | case IEEE80211_AMPDU_TX_OPERATIONAL: |
3120 | ath9k_ps_wakeup(sc); | ||
3102 | ath_tx_aggr_resume(sc, sta, tid); | 3121 | ath_tx_aggr_resume(sc, sta, tid); |
3122 | ath9k_ps_restore(sc); | ||
3103 | break; | 3123 | break; |
3104 | default: | 3124 | default: |
3105 | ath_print(ath9k_hw_common(sc->sc_ah), ATH_DBG_FATAL, | 3125 | ath_print(ath9k_hw_common(sc->sc_ah), ATH_DBG_FATAL, |
diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c index 5321f735e5a..f7af5ea5475 100644 --- a/drivers/net/wireless/ath/ath9k/pci.c +++ b/drivers/net/wireless/ath/ath9k/pci.c | |||
@@ -96,7 +96,7 @@ static void ath_pci_bt_coex_prep(struct ath_common *common) | |||
96 | pci_write_config_byte(pdev, ATH_PCIE_CAP_LINK_CTRL, aspm); | 96 | pci_write_config_byte(pdev, ATH_PCIE_CAP_LINK_CTRL, aspm); |
97 | } | 97 | } |
98 | 98 | ||
99 | const static struct ath_bus_ops ath_pci_bus_ops = { | 99 | static const struct ath_bus_ops ath_pci_bus_ops = { |
100 | .read_cachesize = ath_pci_read_cachesize, | 100 | .read_cachesize = ath_pci_read_cachesize, |
101 | .cleanup = ath_pci_cleanup, | 101 | .cleanup = ath_pci_cleanup, |
102 | .eeprom_read = ath_pci_eeprom_read, | 102 | .eeprom_read = ath_pci_eeprom_read, |
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index 2a11cc57cee..fa12b9060b0 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c | |||
@@ -1108,11 +1108,11 @@ void ath_drain_all_txq(struct ath_softc *sc, bool retry_tx) | |||
1108 | if (npend) { | 1108 | if (npend) { |
1109 | int r; | 1109 | int r; |
1110 | 1110 | ||
1111 | ath_print(common, ATH_DBG_XMIT, | 1111 | ath_print(common, ATH_DBG_FATAL, |
1112 | "Unable to stop TxDMA. Reset HAL!\n"); | 1112 | "Unable to stop TxDMA. Reset HAL!\n"); |
1113 | 1113 | ||
1114 | spin_lock_bh(&sc->sc_resetlock); | 1114 | spin_lock_bh(&sc->sc_resetlock); |
1115 | r = ath9k_hw_reset(ah, sc->sc_ah->curchan, true); | 1115 | r = ath9k_hw_reset(ah, sc->sc_ah->curchan, false); |
1116 | if (r) | 1116 | if (r) |
1117 | ath_print(common, ATH_DBG_FATAL, | 1117 | ath_print(common, ATH_DBG_FATAL, |
1118 | "Unable to reset hardware; reset status %d\n", | 1118 | "Unable to reset hardware; reset status %d\n", |
@@ -1414,17 +1414,9 @@ static void assign_aggr_tid_seqno(struct sk_buff *skb, | |||
1414 | * For HT capable stations, we save tidno for later use. | 1414 | * For HT capable stations, we save tidno for later use. |
1415 | * We also override seqno set by upper layer with the one | 1415 | * We also override seqno set by upper layer with the one |
1416 | * in tx aggregation state. | 1416 | * in tx aggregation state. |
1417 | * | ||
1418 | * If fragmentation is on, the sequence number is | ||
1419 | * not overridden, since it has been | ||
1420 | * incremented by the fragmentation routine. | ||
1421 | * | ||
1422 | * FIXME: check if the fragmentation threshold exceeds | ||
1423 | * IEEE80211 max. | ||
1424 | */ | 1417 | */ |
1425 | tid = ATH_AN_2_TID(an, bf->bf_tidno); | 1418 | tid = ATH_AN_2_TID(an, bf->bf_tidno); |
1426 | hdr->seq_ctrl = cpu_to_le16(tid->seq_next << | 1419 | hdr->seq_ctrl = cpu_to_le16(tid->seq_next << IEEE80211_SEQ_SEQ_SHIFT); |
1427 | IEEE80211_SEQ_SEQ_SHIFT); | ||
1428 | bf->bf_seqno = tid->seq_next; | 1420 | bf->bf_seqno = tid->seq_next; |
1429 | INCR(tid->seq_next, IEEE80211_SEQ_MAX); | 1421 | INCR(tid->seq_next, IEEE80211_SEQ_MAX); |
1430 | } | 1422 | } |
@@ -1636,7 +1628,8 @@ static int ath_tx_setup_buffer(struct ieee80211_hw *hw, struct ath_buf *bf, | |||
1636 | bf->bf_keyix = ATH9K_TXKEYIX_INVALID; | 1628 | bf->bf_keyix = ATH9K_TXKEYIX_INVALID; |
1637 | } | 1629 | } |
1638 | 1630 | ||
1639 | if (ieee80211_is_data_qos(fc) && (sc->sc_flags & SC_OP_TXAGGR)) | 1631 | if (ieee80211_is_data_qos(fc) && bf_isht(bf) && |
1632 | (sc->sc_flags & SC_OP_TXAGGR)) | ||
1640 | assign_aggr_tid_seqno(skb, bf); | 1633 | assign_aggr_tid_seqno(skb, bf); |
1641 | 1634 | ||
1642 | bf->bf_mpdu = skb; | 1635 | bf->bf_mpdu = skb; |
@@ -1780,7 +1773,8 @@ void ath_tx_cabq(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
1780 | struct ath_wiphy *aphy = hw->priv; | 1773 | struct ath_wiphy *aphy = hw->priv; |
1781 | struct ath_softc *sc = aphy->sc; | 1774 | struct ath_softc *sc = aphy->sc; |
1782 | struct ath_common *common = ath9k_hw_common(sc->sc_ah); | 1775 | struct ath_common *common = ath9k_hw_common(sc->sc_ah); |
1783 | int hdrlen, padsize; | 1776 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; |
1777 | int padpos, padsize; | ||
1784 | struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); | 1778 | struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); |
1785 | struct ath_tx_control txctl; | 1779 | struct ath_tx_control txctl; |
1786 | 1780 | ||
@@ -1792,7 +1786,6 @@ void ath_tx_cabq(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
1792 | * BSSes. | 1786 | * BSSes. |
1793 | */ | 1787 | */ |
1794 | if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) { | 1788 | if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) { |
1795 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; | ||
1796 | if (info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT) | 1789 | if (info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT) |
1797 | sc->tx.seq_no += 0x10; | 1790 | sc->tx.seq_no += 0x10; |
1798 | hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG); | 1791 | hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG); |
@@ -1800,9 +1793,9 @@ void ath_tx_cabq(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
1800 | } | 1793 | } |
1801 | 1794 | ||
1802 | /* Add the padding after the header if this is not already done */ | 1795 | /* Add the padding after the header if this is not already done */ |
1803 | hdrlen = ieee80211_get_hdrlen_from_skb(skb); | 1796 | padpos = ath9k_cmn_padpos(hdr->frame_control); |
1804 | if (hdrlen & 3) { | 1797 | padsize = padpos & 3; |
1805 | padsize = hdrlen % 4; | 1798 | if (padsize && skb->len>padpos) { |
1806 | if (skb_headroom(skb) < padsize) { | 1799 | if (skb_headroom(skb) < padsize) { |
1807 | ath_print(common, ATH_DBG_XMIT, | 1800 | ath_print(common, ATH_DBG_XMIT, |
1808 | "TX CABQ padding failed\n"); | 1801 | "TX CABQ padding failed\n"); |
@@ -1810,7 +1803,7 @@ void ath_tx_cabq(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
1810 | return; | 1803 | return; |
1811 | } | 1804 | } |
1812 | skb_push(skb, padsize); | 1805 | skb_push(skb, padsize); |
1813 | memmove(skb->data, skb->data + padsize, hdrlen); | 1806 | memmove(skb->data, skb->data + padsize, padpos); |
1814 | } | 1807 | } |
1815 | 1808 | ||
1816 | txctl.txq = sc->beacon.cabq; | 1809 | txctl.txq = sc->beacon.cabq; |
@@ -1838,7 +1831,8 @@ static void ath_tx_complete(struct ath_softc *sc, struct sk_buff *skb, | |||
1838 | struct ieee80211_hw *hw = sc->hw; | 1831 | struct ieee80211_hw *hw = sc->hw; |
1839 | struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); | 1832 | struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); |
1840 | struct ath_common *common = ath9k_hw_common(sc->sc_ah); | 1833 | struct ath_common *common = ath9k_hw_common(sc->sc_ah); |
1841 | int hdrlen, padsize; | 1834 | struct ieee80211_hdr * hdr = (struct ieee80211_hdr *)skb->data; |
1835 | int padpos, padsize; | ||
1842 | 1836 | ||
1843 | ath_print(common, ATH_DBG_XMIT, "TX complete: skb: %p\n", skb); | 1837 | ath_print(common, ATH_DBG_XMIT, "TX complete: skb: %p\n", skb); |
1844 | 1838 | ||
@@ -1853,14 +1847,14 @@ static void ath_tx_complete(struct ath_softc *sc, struct sk_buff *skb, | |||
1853 | tx_info->flags |= IEEE80211_TX_STAT_ACK; | 1847 | tx_info->flags |= IEEE80211_TX_STAT_ACK; |
1854 | } | 1848 | } |
1855 | 1849 | ||
1856 | hdrlen = ieee80211_get_hdrlen_from_skb(skb); | 1850 | padpos = ath9k_cmn_padpos(hdr->frame_control); |
1857 | padsize = hdrlen & 3; | 1851 | padsize = padpos & 3; |
1858 | if (padsize && hdrlen >= 24) { | 1852 | if (padsize && skb->len>padpos+padsize) { |
1859 | /* | 1853 | /* |
1860 | * Remove MAC header padding before giving the frame back to | 1854 | * Remove MAC header padding before giving the frame back to |
1861 | * mac80211. | 1855 | * mac80211. |
1862 | */ | 1856 | */ |
1863 | memmove(skb->data + padsize, skb->data, hdrlen); | 1857 | memmove(skb->data + padsize, skb->data, padpos); |
1864 | skb_pull(skb, padsize); | 1858 | skb_pull(skb, padsize); |
1865 | } | 1859 | } |
1866 | 1860 | ||
@@ -2078,7 +2072,7 @@ static void ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq) | |||
2078 | &txq->axq_q, lastbf->list.prev); | 2072 | &txq->axq_q, lastbf->list.prev); |
2079 | 2073 | ||
2080 | txq->axq_depth--; | 2074 | txq->axq_depth--; |
2081 | txok = !(ds->ds_txstat.ts_status & ATH9K_TXERR_FILT); | 2075 | txok = !(ds->ds_txstat.ts_status & ATH9K_TXERR_MASK); |
2082 | txq->axq_tx_inprogress = false; | 2076 | txq->axq_tx_inprogress = false; |
2083 | spin_unlock_bh(&txq->axq_lock); | 2077 | spin_unlock_bh(&txq->axq_lock); |
2084 | 2078 | ||
diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c index 027be275e03..88d1fd02d40 100644 --- a/drivers/net/wireless/b43/dma.c +++ b/drivers/net/wireless/b43/dma.c | |||
@@ -383,160 +383,44 @@ static inline | |||
383 | } | 383 | } |
384 | } | 384 | } |
385 | 385 | ||
386 | /* Check if a DMA region fits the device constraints. | ||
387 | * Returns true, if the region is OK for usage with this device. */ | ||
388 | static inline bool b43_dma_address_ok(struct b43_dmaring *ring, | ||
389 | dma_addr_t addr, size_t size) | ||
390 | { | ||
391 | switch (ring->type) { | ||
392 | case B43_DMA_30BIT: | ||
393 | if ((u64)addr + size > (1ULL << 30)) | ||
394 | return 0; | ||
395 | break; | ||
396 | case B43_DMA_32BIT: | ||
397 | if ((u64)addr + size > (1ULL << 32)) | ||
398 | return 0; | ||
399 | break; | ||
400 | case B43_DMA_64BIT: | ||
401 | /* Currently we can't have addresses beyond | ||
402 | * 64bit in the kernel. */ | ||
403 | break; | ||
404 | } | ||
405 | return 1; | ||
406 | } | ||
407 | |||
408 | #define is_4k_aligned(addr) (((u64)(addr) & 0x0FFFull) == 0) | ||
409 | #define is_8k_aligned(addr) (((u64)(addr) & 0x1FFFull) == 0) | ||
410 | |||
411 | static void b43_unmap_and_free_ringmem(struct b43_dmaring *ring, void *base, | ||
412 | dma_addr_t dmaaddr, size_t size) | ||
413 | { | ||
414 | ssb_dma_unmap_single(ring->dev->dev, dmaaddr, size, DMA_TO_DEVICE); | ||
415 | free_pages((unsigned long)base, get_order(size)); | ||
416 | } | ||
417 | |||
418 | static void * __b43_get_and_map_ringmem(struct b43_dmaring *ring, | ||
419 | dma_addr_t *dmaaddr, size_t size, | ||
420 | gfp_t gfp_flags) | ||
421 | { | ||
422 | void *base; | ||
423 | |||
424 | base = (void *)__get_free_pages(gfp_flags, get_order(size)); | ||
425 | if (!base) | ||
426 | return NULL; | ||
427 | memset(base, 0, size); | ||
428 | *dmaaddr = ssb_dma_map_single(ring->dev->dev, base, size, | ||
429 | DMA_TO_DEVICE); | ||
430 | if (ssb_dma_mapping_error(ring->dev->dev, *dmaaddr)) { | ||
431 | free_pages((unsigned long)base, get_order(size)); | ||
432 | return NULL; | ||
433 | } | ||
434 | |||
435 | return base; | ||
436 | } | ||
437 | |||
438 | static void * b43_get_and_map_ringmem(struct b43_dmaring *ring, | ||
439 | dma_addr_t *dmaaddr, size_t size) | ||
440 | { | ||
441 | void *base; | ||
442 | |||
443 | base = __b43_get_and_map_ringmem(ring, dmaaddr, size, | ||
444 | GFP_KERNEL); | ||
445 | if (!base) { | ||
446 | b43err(ring->dev->wl, "Failed to allocate or map pages " | ||
447 | "for DMA ringmemory\n"); | ||
448 | return NULL; | ||
449 | } | ||
450 | if (!b43_dma_address_ok(ring, *dmaaddr, size)) { | ||
451 | /* The memory does not fit our device constraints. | ||
452 | * Retry with GFP_DMA set to get lower memory. */ | ||
453 | b43_unmap_and_free_ringmem(ring, base, *dmaaddr, size); | ||
454 | base = __b43_get_and_map_ringmem(ring, dmaaddr, size, | ||
455 | GFP_KERNEL | GFP_DMA); | ||
456 | if (!base) { | ||
457 | b43err(ring->dev->wl, "Failed to allocate or map pages " | ||
458 | "in the GFP_DMA region for DMA ringmemory\n"); | ||
459 | return NULL; | ||
460 | } | ||
461 | if (!b43_dma_address_ok(ring, *dmaaddr, size)) { | ||
462 | b43_unmap_and_free_ringmem(ring, base, *dmaaddr, size); | ||
463 | b43err(ring->dev->wl, "Failed to allocate DMA " | ||
464 | "ringmemory that fits device constraints\n"); | ||
465 | return NULL; | ||
466 | } | ||
467 | } | ||
468 | /* We expect the memory to be 4k aligned, at least. */ | ||
469 | if (B43_WARN_ON(!is_4k_aligned(*dmaaddr))) { | ||
470 | b43_unmap_and_free_ringmem(ring, base, *dmaaddr, size); | ||
471 | return NULL; | ||
472 | } | ||
473 | |||
474 | return base; | ||
475 | } | ||
476 | |||
477 | static int alloc_ringmemory(struct b43_dmaring *ring) | 386 | static int alloc_ringmemory(struct b43_dmaring *ring) |
478 | { | 387 | { |
479 | unsigned int required; | 388 | gfp_t flags = GFP_KERNEL; |
480 | void *base; | 389 | |
481 | dma_addr_t dmaaddr; | 390 | /* The specs call for 4K buffers for 30- and 32-bit DMA with 4K |
482 | 391 | * alignment and 8K buffers for 64-bit DMA with 8K alignment. Testing | |
483 | /* There are several requirements to the descriptor ring memory: | 392 | * has shown that 4K is sufficient for the latter as long as the buffer |
484 | * - The memory region needs to fit the address constraints for the | 393 | * does not cross an 8K boundary. |
485 | * device (same as for frame buffers). | 394 | * |
486 | * - For 30/32bit DMA devices, the descriptor ring must be 4k aligned. | 395 | * For unknown reasons - possibly a hardware error - the BCM4311 rev |
487 | * - For 64bit DMA devices, the descriptor ring must be 8k aligned. | 396 | * 02, which uses 64-bit DMA, needs the ring buffer in very low memory, |
397 | * which accounts for the GFP_DMA flag below. | ||
398 | * | ||
399 | * The flags here must match the flags in free_ringmemory below! | ||
488 | */ | 400 | */ |
489 | |||
490 | if (ring->type == B43_DMA_64BIT) | 401 | if (ring->type == B43_DMA_64BIT) |
491 | required = ring->nr_slots * sizeof(struct b43_dmadesc64); | 402 | flags |= GFP_DMA; |
492 | else | 403 | ring->descbase = ssb_dma_alloc_consistent(ring->dev->dev, |
493 | required = ring->nr_slots * sizeof(struct b43_dmadesc32); | 404 | B43_DMA_RINGMEMSIZE, |
494 | if (B43_WARN_ON(required > 0x1000)) | 405 | &(ring->dmabase), flags); |
406 | if (!ring->descbase) { | ||
407 | b43err(ring->dev->wl, "DMA ringmemory allocation failed\n"); | ||
495 | return -ENOMEM; | 408 | return -ENOMEM; |
496 | |||
497 | ring->alloc_descsize = 0x1000; | ||
498 | base = b43_get_and_map_ringmem(ring, &dmaaddr, ring->alloc_descsize); | ||
499 | if (!base) | ||
500 | return -ENOMEM; | ||
501 | ring->alloc_descbase = base; | ||
502 | ring->alloc_dmabase = dmaaddr; | ||
503 | |||
504 | if ((ring->type != B43_DMA_64BIT) || is_8k_aligned(dmaaddr)) { | ||
505 | /* We're on <=32bit DMA, or we already got 8k aligned memory. | ||
506 | * That's all we need, so we're fine. */ | ||
507 | ring->descbase = base; | ||
508 | ring->dmabase = dmaaddr; | ||
509 | return 0; | ||
510 | } | ||
511 | b43_unmap_and_free_ringmem(ring, base, dmaaddr, ring->alloc_descsize); | ||
512 | |||
513 | /* Ok, we failed at the 8k alignment requirement. | ||
514 | * Try to force-align the memory region now. */ | ||
515 | ring->alloc_descsize = 0x2000; | ||
516 | base = b43_get_and_map_ringmem(ring, &dmaaddr, ring->alloc_descsize); | ||
517 | if (!base) | ||
518 | return -ENOMEM; | ||
519 | ring->alloc_descbase = base; | ||
520 | ring->alloc_dmabase = dmaaddr; | ||
521 | |||
522 | if (is_8k_aligned(dmaaddr)) { | ||
523 | /* We're already 8k aligned. That Ok, too. */ | ||
524 | ring->descbase = base; | ||
525 | ring->dmabase = dmaaddr; | ||
526 | return 0; | ||
527 | } | 409 | } |
528 | /* Force-align it to 8k */ | 410 | memset(ring->descbase, 0, B43_DMA_RINGMEMSIZE); |
529 | ring->descbase = (void *)((u8 *)base + 0x1000); | ||
530 | ring->dmabase = dmaaddr + 0x1000; | ||
531 | B43_WARN_ON(!is_8k_aligned(ring->dmabase)); | ||
532 | 411 | ||
533 | return 0; | 412 | return 0; |
534 | } | 413 | } |
535 | 414 | ||
536 | static void free_ringmemory(struct b43_dmaring *ring) | 415 | static void free_ringmemory(struct b43_dmaring *ring) |
537 | { | 416 | { |
538 | b43_unmap_and_free_ringmem(ring, ring->alloc_descbase, | 417 | gfp_t flags = GFP_KERNEL; |
539 | ring->alloc_dmabase, ring->alloc_descsize); | 418 | |
419 | if (ring->type == B43_DMA_64BIT) | ||
420 | flags |= GFP_DMA; | ||
421 | |||
422 | ssb_dma_free_consistent(ring->dev->dev, B43_DMA_RINGMEMSIZE, | ||
423 | ring->descbase, ring->dmabase, flags); | ||
540 | } | 424 | } |
541 | 425 | ||
542 | /* Reset the RX DMA channel */ | 426 | /* Reset the RX DMA channel */ |
@@ -646,14 +530,29 @@ static bool b43_dma_mapping_error(struct b43_dmaring *ring, | |||
646 | if (unlikely(ssb_dma_mapping_error(ring->dev->dev, addr))) | 530 | if (unlikely(ssb_dma_mapping_error(ring->dev->dev, addr))) |
647 | return 1; | 531 | return 1; |
648 | 532 | ||
649 | if (!b43_dma_address_ok(ring, addr, buffersize)) { | 533 | switch (ring->type) { |
650 | /* We can't support this address. Unmap it again. */ | 534 | case B43_DMA_30BIT: |
651 | unmap_descbuffer(ring, addr, buffersize, dma_to_device); | 535 | if ((u64)addr + buffersize > (1ULL << 30)) |
652 | return 1; | 536 | goto address_error; |
537 | break; | ||
538 | case B43_DMA_32BIT: | ||
539 | if ((u64)addr + buffersize > (1ULL << 32)) | ||
540 | goto address_error; | ||
541 | break; | ||
542 | case B43_DMA_64BIT: | ||
543 | /* Currently we can't have addresses beyond | ||
544 | * 64bit in the kernel. */ | ||
545 | break; | ||
653 | } | 546 | } |
654 | 547 | ||
655 | /* The address is OK. */ | 548 | /* The address is OK. */ |
656 | return 0; | 549 | return 0; |
550 | |||
551 | address_error: | ||
552 | /* We can't support this address. Unmap it again. */ | ||
553 | unmap_descbuffer(ring, addr, buffersize, dma_to_device); | ||
554 | |||
555 | return 1; | ||
657 | } | 556 | } |
658 | 557 | ||
659 | static bool b43_rx_buffer_is_poisoned(struct b43_dmaring *ring, struct sk_buff *skb) | 558 | static bool b43_rx_buffer_is_poisoned(struct b43_dmaring *ring, struct sk_buff *skb) |
@@ -715,9 +614,6 @@ static int setup_rx_descbuffer(struct b43_dmaring *ring, | |||
715 | meta->dmaaddr = dmaaddr; | 614 | meta->dmaaddr = dmaaddr; |
716 | ring->ops->fill_descriptor(ring, desc, dmaaddr, | 615 | ring->ops->fill_descriptor(ring, desc, dmaaddr, |
717 | ring->rx_buffersize, 0, 0, 0); | 616 | ring->rx_buffersize, 0, 0, 0); |
718 | ssb_dma_sync_single_for_device(ring->dev->dev, | ||
719 | ring->alloc_dmabase, | ||
720 | ring->alloc_descsize, DMA_TO_DEVICE); | ||
721 | 617 | ||
722 | return 0; | 618 | return 0; |
723 | } | 619 | } |
@@ -1354,9 +1250,6 @@ static int dma_tx_fragment(struct b43_dmaring *ring, | |||
1354 | } | 1250 | } |
1355 | /* Now transfer the whole frame. */ | 1251 | /* Now transfer the whole frame. */ |
1356 | wmb(); | 1252 | wmb(); |
1357 | ssb_dma_sync_single_for_device(ring->dev->dev, | ||
1358 | ring->alloc_dmabase, | ||
1359 | ring->alloc_descsize, DMA_TO_DEVICE); | ||
1360 | ops->poke_tx(ring, next_slot(ring, slot)); | 1253 | ops->poke_tx(ring, next_slot(ring, slot)); |
1361 | return 0; | 1254 | return 0; |
1362 | 1255 | ||
diff --git a/drivers/net/wireless/b43/dma.h b/drivers/net/wireless/b43/dma.h index e607b392314..f7ab37c4cdb 100644 --- a/drivers/net/wireless/b43/dma.h +++ b/drivers/net/wireless/b43/dma.h | |||
@@ -157,6 +157,7 @@ struct b43_dmadesc_generic { | |||
157 | } __attribute__ ((__packed__)); | 157 | } __attribute__ ((__packed__)); |
158 | 158 | ||
159 | /* Misc DMA constants */ | 159 | /* Misc DMA constants */ |
160 | #define B43_DMA_RINGMEMSIZE PAGE_SIZE | ||
160 | #define B43_DMA0_RX_FRAMEOFFSET 30 | 161 | #define B43_DMA0_RX_FRAMEOFFSET 30 |
161 | 162 | ||
162 | /* DMA engine tuning knobs */ | 163 | /* DMA engine tuning knobs */ |
@@ -246,12 +247,6 @@ struct b43_dmaring { | |||
246 | /* The QOS priority assigned to this ring. Only used for TX rings. | 247 | /* The QOS priority assigned to this ring. Only used for TX rings. |
247 | * This is the mac80211 "queue" value. */ | 248 | * This is the mac80211 "queue" value. */ |
248 | u8 queue_prio; | 249 | u8 queue_prio; |
249 | /* Pointers and size of the originally allocated and mapped memory | ||
250 | * region for the descriptor ring. */ | ||
251 | void *alloc_descbase; | ||
252 | dma_addr_t alloc_dmabase; | ||
253 | unsigned int alloc_descsize; | ||
254 | /* Pointer to our wireless device. */ | ||
255 | struct b43_wldev *dev; | 250 | struct b43_wldev *dev; |
256 | #ifdef CONFIG_B43_DEBUG | 251 | #ifdef CONFIG_B43_DEBUG |
257 | /* Maximum number of used slots. */ | 252 | /* Maximum number of used slots. */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c index 7da1dab933d..234891d8cc1 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945.c | |||
@@ -681,19 +681,13 @@ static void iwl3945_rx_reply_rx(struct iwl_priv *priv, | |||
681 | snr = rx_stats_sig_avg / rx_stats_noise_diff; | 681 | snr = rx_stats_sig_avg / rx_stats_noise_diff; |
682 | rx_status.noise = rx_status.signal - | 682 | rx_status.noise = rx_status.signal - |
683 | iwl3945_calc_db_from_ratio(snr); | 683 | iwl3945_calc_db_from_ratio(snr); |
684 | rx_status.qual = iwl3945_calc_sig_qual(rx_status.signal, | ||
685 | rx_status.noise); | ||
686 | |||
687 | /* If noise info not available, calculate signal quality indicator (%) | ||
688 | * using just the dBm signal level. */ | ||
689 | } else { | 684 | } else { |
690 | rx_status.noise = priv->last_rx_noise; | 685 | rx_status.noise = priv->last_rx_noise; |
691 | rx_status.qual = iwl3945_calc_sig_qual(rx_status.signal, 0); | ||
692 | } | 686 | } |
693 | 687 | ||
694 | 688 | ||
695 | IWL_DEBUG_STATS(priv, "Rssi %d noise %d qual %d sig_avg %d noise_diff %d\n", | 689 | IWL_DEBUG_STATS(priv, "Rssi %d noise %d sig_avg %d noise_diff %d\n", |
696 | rx_status.signal, rx_status.noise, rx_status.qual, | 690 | rx_status.signal, rx_status.noise, |
697 | rx_stats_sig_avg, rx_stats_noise_diff); | 691 | rx_stats_sig_avg, rx_stats_noise_diff); |
698 | 692 | ||
699 | header = (struct ieee80211_hdr *)IWL_RX_DATA(pkt); | 693 | header = (struct ieee80211_hdr *)IWL_RX_DATA(pkt); |
@@ -1835,8 +1829,7 @@ static int iwl3945_send_rxon_assoc(struct iwl_priv *priv) | |||
1835 | rc = -EIO; | 1829 | rc = -EIO; |
1836 | } | 1830 | } |
1837 | 1831 | ||
1838 | priv->alloc_rxb_page--; | 1832 | iwl_free_pages(priv, cmd.reply_page); |
1839 | free_pages(cmd.reply_page, priv->hw_params.rx_page_order); | ||
1840 | 1833 | ||
1841 | return rc; | 1834 | return rc; |
1842 | } | 1835 | } |
@@ -2836,6 +2829,7 @@ static struct iwl_cfg iwl3945_bg_cfg = { | |||
2836 | .use_isr_legacy = true, | 2829 | .use_isr_legacy = true, |
2837 | .ht_greenfield_support = false, | 2830 | .ht_greenfield_support = false, |
2838 | .led_compensation = 64, | 2831 | .led_compensation = 64, |
2832 | .broken_powersave = true, | ||
2839 | }; | 2833 | }; |
2840 | 2834 | ||
2841 | static struct iwl_cfg iwl3945_abg_cfg = { | 2835 | static struct iwl_cfg iwl3945_abg_cfg = { |
@@ -2852,6 +2846,7 @@ static struct iwl_cfg iwl3945_abg_cfg = { | |||
2852 | .use_isr_legacy = true, | 2846 | .use_isr_legacy = true, |
2853 | .ht_greenfield_support = false, | 2847 | .ht_greenfield_support = false, |
2854 | .led_compensation = 64, | 2848 | .led_compensation = 64, |
2849 | .broken_powersave = true, | ||
2855 | }; | 2850 | }; |
2856 | 2851 | ||
2857 | struct pci_device_id iwl3945_hw_card_ids[] = { | 2852 | struct pci_device_id iwl3945_hw_card_ids[] = { |
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.h b/drivers/net/wireless/iwlwifi/iwl-3945.h index ecc23ec1f6a..531fa125f5a 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.h +++ b/drivers/net/wireless/iwlwifi/iwl-3945.h | |||
@@ -222,7 +222,6 @@ struct iwl3945_ibss_seq { | |||
222 | * | 222 | * |
223 | *****************************************************************************/ | 223 | *****************************************************************************/ |
224 | extern int iwl3945_calc_db_from_ratio(int sig_ratio); | 224 | extern int iwl3945_calc_db_from_ratio(int sig_ratio); |
225 | extern int iwl3945_calc_sig_qual(int rssi_dbm, int noise_dbm); | ||
226 | extern void iwl3945_rx_replenish(void *data); | 225 | extern void iwl3945_rx_replenish(void *data); |
227 | extern void iwl3945_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq); | 226 | extern void iwl3945_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq); |
228 | extern unsigned int iwl3945_fill_beacon_frame(struct iwl_priv *priv, | 227 | extern unsigned int iwl3945_fill_beacon_frame(struct iwl_priv *priv, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 386513b601f..9b4b8b5c757 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
@@ -1204,7 +1204,7 @@ static int iwl4965_fill_txpower_tbl(struct iwl_priv *priv, u8 band, u16 channel, | |||
1204 | iwl4965_interpolate_chan(priv, channel, &ch_eeprom_info); | 1204 | iwl4965_interpolate_chan(priv, channel, &ch_eeprom_info); |
1205 | 1205 | ||
1206 | /* calculate tx gain adjustment based on power supply voltage */ | 1206 | /* calculate tx gain adjustment based on power supply voltage */ |
1207 | voltage = priv->calib_info->voltage; | 1207 | voltage = le16_to_cpu(priv->calib_info->voltage); |
1208 | init_voltage = (s32)le32_to_cpu(priv->card_alive_init.voltage); | 1208 | init_voltage = (s32)le32_to_cpu(priv->card_alive_init.voltage); |
1209 | voltage_compensation = | 1209 | voltage_compensation = |
1210 | iwl4965_get_voltage_compensation(voltage, init_voltage); | 1210 | iwl4965_get_voltage_compensation(voltage, init_voltage); |
@@ -1961,7 +1961,7 @@ static void iwl4965_rx_reply_tx(struct iwl_priv *priv, | |||
1961 | struct ieee80211_tx_info *info; | 1961 | struct ieee80211_tx_info *info; |
1962 | struct iwl4965_tx_resp *tx_resp = (void *)&pkt->u.raw[0]; | 1962 | struct iwl4965_tx_resp *tx_resp = (void *)&pkt->u.raw[0]; |
1963 | u32 status = le32_to_cpu(tx_resp->u.status); | 1963 | u32 status = le32_to_cpu(tx_resp->u.status); |
1964 | int tid = MAX_TID_COUNT; | 1964 | int uninitialized_var(tid); |
1965 | int sta_id; | 1965 | int sta_id; |
1966 | int freed; | 1966 | int freed; |
1967 | u8 *qc = NULL; | 1967 | u8 *qc = NULL; |
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000-hw.h b/drivers/net/wireless/iwlwifi/iwl-5000-hw.h index 4ef6804a455..bc056e9ab85 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000-hw.h +++ b/drivers/net/wireless/iwlwifi/iwl-5000-hw.h | |||
@@ -92,11 +92,15 @@ | |||
92 | 92 | ||
93 | static inline s32 iwl_temp_calib_to_offset(struct iwl_priv *priv) | 93 | static inline s32 iwl_temp_calib_to_offset(struct iwl_priv *priv) |
94 | { | 94 | { |
95 | u16 *temp_calib = (u16 *)iwl_eeprom_query_addr(priv, | 95 | u16 temperature, voltage; |
96 | EEPROM_5000_TEMPERATURE); | 96 | __le16 *temp_calib = |
97 | /* offset = temperature - voltage / coef */ | 97 | (__le16 *)iwl_eeprom_query_addr(priv, EEPROM_5000_TEMPERATURE); |
98 | s32 offset = (s32)(temp_calib[0] - temp_calib[1] / IWL_5150_VOLTAGE_TO_TEMPERATURE_COEFF); | 98 | |
99 | return offset; | 99 | temperature = le16_to_cpu(temp_calib[0]); |
100 | voltage = le16_to_cpu(temp_calib[1]); | ||
101 | |||
102 | /* offset = temp - volt / coeff */ | ||
103 | return (s32)(temperature - voltage / IWL_5150_VOLTAGE_TO_TEMPERATURE_COEFF); | ||
100 | } | 104 | } |
101 | 105 | ||
102 | /* Fixed (non-configurable) rx data from phy */ | 106 | /* Fixed (non-configurable) rx data from phy */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c index e2f8615c8c9..33a5866538e 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000.c +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c | |||
@@ -333,14 +333,15 @@ static void iwl5000_set_ct_threshold(struct iwl_priv *priv) | |||
333 | static int iwl5000_set_Xtal_calib(struct iwl_priv *priv) | 333 | static int iwl5000_set_Xtal_calib(struct iwl_priv *priv) |
334 | { | 334 | { |
335 | struct iwl_calib_xtal_freq_cmd cmd; | 335 | struct iwl_calib_xtal_freq_cmd cmd; |
336 | u16 *xtal_calib = (u16 *)iwl_eeprom_query_addr(priv, EEPROM_5000_XTAL); | 336 | __le16 *xtal_calib = |
337 | (__le16 *)iwl_eeprom_query_addr(priv, EEPROM_5000_XTAL); | ||
337 | 338 | ||
338 | cmd.hdr.op_code = IWL_PHY_CALIBRATE_CRYSTAL_FRQ_CMD; | 339 | cmd.hdr.op_code = IWL_PHY_CALIBRATE_CRYSTAL_FRQ_CMD; |
339 | cmd.hdr.first_group = 0; | 340 | cmd.hdr.first_group = 0; |
340 | cmd.hdr.groups_num = 1; | 341 | cmd.hdr.groups_num = 1; |
341 | cmd.hdr.data_valid = 1; | 342 | cmd.hdr.data_valid = 1; |
342 | cmd.cap_pin1 = (u8)xtal_calib[0]; | 343 | cmd.cap_pin1 = le16_to_cpu(xtal_calib[0]); |
343 | cmd.cap_pin2 = (u8)xtal_calib[1]; | 344 | cmd.cap_pin2 = le16_to_cpu(xtal_calib[1]); |
344 | return iwl_calib_set(&priv->calib_results[IWL_CALIB_XTAL], | 345 | return iwl_calib_set(&priv->calib_results[IWL_CALIB_XTAL], |
345 | (u8 *)&cmd, sizeof(cmd)); | 346 | (u8 *)&cmd, sizeof(cmd)); |
346 | } | 347 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c index fe511cbf012..b93e4915819 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c | |||
@@ -150,7 +150,7 @@ static s32 expected_tpt_mimo3_40MHz[4][IWL_RATE_COUNT] = { | |||
150 | }; | 150 | }; |
151 | 151 | ||
152 | /* mbps, mcs */ | 152 | /* mbps, mcs */ |
153 | const static struct iwl_rate_mcs_info iwl_rate_mcs[IWL_RATE_COUNT] = { | 153 | static const struct iwl_rate_mcs_info iwl_rate_mcs[IWL_RATE_COUNT] = { |
154 | { "1", "BPSK DSSS"}, | 154 | { "1", "BPSK DSSS"}, |
155 | { "2", "QPSK DSSS"}, | 155 | { "2", "QPSK DSSS"}, |
156 | {"5.5", "BPSK CCK"}, | 156 | {"5.5", "BPSK CCK"}, |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index b8377efb3ba..1c9866daf81 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
@@ -1842,7 +1842,7 @@ void iwl_dump_nic_event_log(struct iwl_priv *priv, bool full_log) | |||
1842 | } | 1842 | } |
1843 | 1843 | ||
1844 | #ifdef CONFIG_IWLWIFI_DEBUG | 1844 | #ifdef CONFIG_IWLWIFI_DEBUG |
1845 | if (!(iwl_get_debug_level(priv) & IWL_DL_FW_ERRORS)) | 1845 | if (!(iwl_get_debug_level(priv) & IWL_DL_FW_ERRORS) && !full_log) |
1846 | size = (size > DEFAULT_DUMP_EVENT_LOG_ENTRIES) | 1846 | size = (size > DEFAULT_DUMP_EVENT_LOG_ENTRIES) |
1847 | ? DEFAULT_DUMP_EVENT_LOG_ENTRIES : size; | 1847 | ? DEFAULT_DUMP_EVENT_LOG_ENTRIES : size; |
1848 | #else | 1848 | #else |
@@ -3173,7 +3173,6 @@ static int iwl_init_drv(struct iwl_priv *priv) | |||
3173 | 3173 | ||
3174 | priv->ibss_beacon = NULL; | 3174 | priv->ibss_beacon = NULL; |
3175 | 3175 | ||
3176 | spin_lock_init(&priv->lock); | ||
3177 | spin_lock_init(&priv->sta_lock); | 3176 | spin_lock_init(&priv->sta_lock); |
3178 | spin_lock_init(&priv->hcmd_lock); | 3177 | spin_lock_init(&priv->hcmd_lock); |
3179 | 3178 | ||
@@ -3361,10 +3360,11 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
3361 | (unsigned long long) pci_resource_len(pdev, 0)); | 3360 | (unsigned long long) pci_resource_len(pdev, 0)); |
3362 | IWL_DEBUG_INFO(priv, "pci_resource_base = %p\n", priv->hw_base); | 3361 | IWL_DEBUG_INFO(priv, "pci_resource_base = %p\n", priv->hw_base); |
3363 | 3362 | ||
3364 | /* this spin lock will be used in apm_ops.init and EEPROM access | 3363 | /* these spin locks will be used in apm_ops.init and EEPROM access |
3365 | * we should init now | 3364 | * we should init now |
3366 | */ | 3365 | */ |
3367 | spin_lock_init(&priv->reg_lock); | 3366 | spin_lock_init(&priv->reg_lock); |
3367 | spin_lock_init(&priv->lock); | ||
3368 | iwl_hw_detect(priv); | 3368 | iwl_hw_detect(priv); |
3369 | IWL_INFO(priv, "Detected Intel Wireless WiFi Link %s REV=0x%X\n", | 3369 | IWL_INFO(priv, "Detected Intel Wireless WiFi Link %s REV=0x%X\n", |
3370 | priv->cfg->name, priv->hw_rev); | 3370 | priv->cfg->name, priv->hw_rev); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index 574d3665870..5461f105bd2 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -2344,6 +2344,21 @@ static void iwl_ht_conf(struct iwl_priv *priv, | |||
2344 | IWL_DEBUG_MAC80211(priv, "leave\n"); | 2344 | IWL_DEBUG_MAC80211(priv, "leave\n"); |
2345 | } | 2345 | } |
2346 | 2346 | ||
2347 | static inline void iwl_set_no_assoc(struct iwl_priv *priv) | ||
2348 | { | ||
2349 | priv->assoc_id = 0; | ||
2350 | iwl_led_disassociate(priv); | ||
2351 | /* | ||
2352 | * inform the ucode that there is no longer an | ||
2353 | * association and that no more packets should be | ||
2354 | * sent | ||
2355 | */ | ||
2356 | priv->staging_rxon.filter_flags &= | ||
2357 | ~RXON_FILTER_ASSOC_MSK; | ||
2358 | priv->staging_rxon.assoc_id = 0; | ||
2359 | iwlcore_commit_rxon(priv); | ||
2360 | } | ||
2361 | |||
2347 | #define IWL_DELAY_NEXT_SCAN_AFTER_ASSOC (HZ*6) | 2362 | #define IWL_DELAY_NEXT_SCAN_AFTER_ASSOC (HZ*6) |
2348 | void iwl_bss_info_changed(struct ieee80211_hw *hw, | 2363 | void iwl_bss_info_changed(struct ieee80211_hw *hw, |
2349 | struct ieee80211_vif *vif, | 2364 | struct ieee80211_vif *vif, |
@@ -2475,20 +2490,8 @@ void iwl_bss_info_changed(struct ieee80211_hw *hw, | |||
2475 | IWL_DELAY_NEXT_SCAN_AFTER_ASSOC; | 2490 | IWL_DELAY_NEXT_SCAN_AFTER_ASSOC; |
2476 | if (!iwl_is_rfkill(priv)) | 2491 | if (!iwl_is_rfkill(priv)) |
2477 | priv->cfg->ops->lib->post_associate(priv); | 2492 | priv->cfg->ops->lib->post_associate(priv); |
2478 | } else { | 2493 | } else |
2479 | priv->assoc_id = 0; | 2494 | iwl_set_no_assoc(priv); |
2480 | iwl_led_disassociate(priv); | ||
2481 | |||
2482 | /* | ||
2483 | * inform the ucode that there is no longer an | ||
2484 | * association and that no more packets should be | ||
2485 | * send | ||
2486 | */ | ||
2487 | priv->staging_rxon.filter_flags &= | ||
2488 | ~RXON_FILTER_ASSOC_MSK; | ||
2489 | priv->staging_rxon.assoc_id = 0; | ||
2490 | iwlcore_commit_rxon(priv); | ||
2491 | } | ||
2492 | } | 2495 | } |
2493 | 2496 | ||
2494 | if (changes && iwl_is_associated(priv) && priv->assoc_id) { | 2497 | if (changes && iwl_is_associated(priv) && priv->assoc_id) { |
@@ -2503,12 +2506,14 @@ void iwl_bss_info_changed(struct ieee80211_hw *hw, | |||
2503 | } | 2506 | } |
2504 | } | 2507 | } |
2505 | 2508 | ||
2506 | if ((changes & BSS_CHANGED_BEACON_ENABLED) && | 2509 | if (changes & BSS_CHANGED_BEACON_ENABLED) { |
2507 | vif->bss_conf.enable_beacon) { | 2510 | if (vif->bss_conf.enable_beacon) { |
2508 | memcpy(priv->staging_rxon.bssid_addr, | 2511 | memcpy(priv->staging_rxon.bssid_addr, |
2509 | bss_conf->bssid, ETH_ALEN); | 2512 | bss_conf->bssid, ETH_ALEN); |
2510 | memcpy(priv->bssid, bss_conf->bssid, ETH_ALEN); | 2513 | memcpy(priv->bssid, bss_conf->bssid, ETH_ALEN); |
2511 | iwlcore_config_ap(priv); | 2514 | iwlcore_config_ap(priv); |
2515 | } else | ||
2516 | iwl_set_no_assoc(priv); | ||
2512 | } | 2517 | } |
2513 | 2518 | ||
2514 | mutex_unlock(&priv->mutex); | 2519 | mutex_unlock(&priv->mutex); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-csr.h b/drivers/net/wireless/iwlwifi/iwl-csr.h index a7bfae01f19..1ec8cb4d5ea 100644 --- a/drivers/net/wireless/iwlwifi/iwl-csr.h +++ b/drivers/net/wireless/iwlwifi/iwl-csr.h | |||
@@ -77,8 +77,7 @@ | |||
77 | * The MAC (uCode processor, etc.) does not need to be powered up for accessing | 77 | * The MAC (uCode processor, etc.) does not need to be powered up for accessing |
78 | * the CSR registers. | 78 | * the CSR registers. |
79 | * | 79 | * |
80 | * NOTE: Newer devices using one-time-programmable (OTP) memory | 80 | * NOTE: Device does need to be awake in order to read this memory |
81 | * require device to be awake in order to read this memory | ||
82 | * via CSR_EEPROM and CSR_OTP registers | 81 | * via CSR_EEPROM and CSR_OTP registers |
83 | */ | 82 | */ |
84 | #define CSR_BASE (0x000) | 83 | #define CSR_BASE (0x000) |
@@ -111,9 +110,8 @@ | |||
111 | /* | 110 | /* |
112 | * EEPROM and OTP (one-time-programmable) memory reads | 111 | * EEPROM and OTP (one-time-programmable) memory reads |
113 | * | 112 | * |
114 | * NOTE: For (newer) devices using OTP, device must be awake, initialized via | 113 | * NOTE: Device must be awake, initialized via apm_ops.init(), |
115 | * apm_ops.init() in order to read. Older devices (3945/4965/5000) | 114 | * in order to read. |
116 | * use EEPROM and do not require this. | ||
117 | */ | 115 | */ |
118 | #define CSR_EEPROM_REG (CSR_BASE+0x02c) | 116 | #define CSR_EEPROM_REG (CSR_BASE+0x02c) |
119 | #define CSR_EEPROM_GP (CSR_BASE+0x030) | 117 | #define CSR_EEPROM_GP (CSR_BASE+0x030) |
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h index 2673e9a4db9..3822cf53e36 100644 --- a/drivers/net/wireless/iwlwifi/iwl-dev.h +++ b/drivers/net/wireless/iwlwifi/iwl-dev.h | |||
@@ -711,7 +711,7 @@ extern void iwl_txq_ctx_stop(struct iwl_priv *priv); | |||
711 | extern int iwl_queue_space(const struct iwl_queue *q); | 711 | extern int iwl_queue_space(const struct iwl_queue *q); |
712 | static inline int iwl_queue_used(const struct iwl_queue *q, int i) | 712 | static inline int iwl_queue_used(const struct iwl_queue *q, int i) |
713 | { | 713 | { |
714 | return q->write_ptr > q->read_ptr ? | 714 | return q->write_ptr >= q->read_ptr ? |
715 | (i >= q->read_ptr && i < q->write_ptr) : | 715 | (i >= q->read_ptr && i < q->write_ptr) : |
716 | !(i < q->read_ptr && i >= q->write_ptr); | 716 | !(i < q->read_ptr && i >= q->write_ptr); |
717 | } | 717 | } |
@@ -1168,7 +1168,7 @@ struct iwl_priv { | |||
1168 | u32 last_beacon_time; | 1168 | u32 last_beacon_time; |
1169 | u64 last_tsf; | 1169 | u64 last_tsf; |
1170 | 1170 | ||
1171 | /* eeprom */ | 1171 | /* eeprom -- this is in the card's little endian byte order */ |
1172 | u8 *eeprom; | 1172 | u8 *eeprom; |
1173 | int nvm_device_type; | 1173 | int nvm_device_type; |
1174 | struct iwl_eeprom_calib_info *calib_info; | 1174 | struct iwl_eeprom_calib_info *calib_info; |
@@ -1353,4 +1353,15 @@ static inline int is_channel_ibss(const struct iwl_channel_info *ch) | |||
1353 | return ((ch->flags & EEPROM_CHANNEL_IBSS)) ? 1 : 0; | 1353 | return ((ch->flags & EEPROM_CHANNEL_IBSS)) ? 1 : 0; |
1354 | } | 1354 | } |
1355 | 1355 | ||
1356 | static inline void __iwl_free_pages(struct iwl_priv *priv, struct page *page) | ||
1357 | { | ||
1358 | __free_pages(page, priv->hw_params.rx_page_order); | ||
1359 | priv->alloc_rxb_page--; | ||
1360 | } | ||
1361 | |||
1362 | static inline void iwl_free_pages(struct iwl_priv *priv, unsigned long page) | ||
1363 | { | ||
1364 | free_pages(page, priv->hw_params.rx_page_order); | ||
1365 | priv->alloc_rxb_page--; | ||
1366 | } | ||
1356 | #endif /* __iwl_dev_h__ */ | 1367 | #endif /* __iwl_dev_h__ */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.c b/drivers/net/wireless/iwlwifi/iwl-eeprom.c index 3946e5c03f8..4a30969689f 100644 --- a/drivers/net/wireless/iwlwifi/iwl-eeprom.c +++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.c | |||
@@ -370,7 +370,7 @@ static int iwl_init_otp_access(struct iwl_priv *priv) | |||
370 | return ret; | 370 | return ret; |
371 | } | 371 | } |
372 | 372 | ||
373 | static int iwl_read_otp_word(struct iwl_priv *priv, u16 addr, u16 *eeprom_data) | 373 | static int iwl_read_otp_word(struct iwl_priv *priv, u16 addr, __le16 *eeprom_data) |
374 | { | 374 | { |
375 | int ret = 0; | 375 | int ret = 0; |
376 | u32 r; | 376 | u32 r; |
@@ -404,7 +404,7 @@ static int iwl_read_otp_word(struct iwl_priv *priv, u16 addr, u16 *eeprom_data) | |||
404 | CSR_OTP_GP_REG_ECC_CORR_STATUS_MSK); | 404 | CSR_OTP_GP_REG_ECC_CORR_STATUS_MSK); |
405 | IWL_ERR(priv, "Correctable OTP ECC error, continue read\n"); | 405 | IWL_ERR(priv, "Correctable OTP ECC error, continue read\n"); |
406 | } | 406 | } |
407 | *eeprom_data = le16_to_cpu((__force __le16)(r >> 16)); | 407 | *eeprom_data = cpu_to_le16(r >> 16); |
408 | return 0; | 408 | return 0; |
409 | } | 409 | } |
410 | 410 | ||
@@ -413,7 +413,8 @@ static int iwl_read_otp_word(struct iwl_priv *priv, u16 addr, u16 *eeprom_data) | |||
413 | */ | 413 | */ |
414 | static bool iwl_is_otp_empty(struct iwl_priv *priv) | 414 | static bool iwl_is_otp_empty(struct iwl_priv *priv) |
415 | { | 415 | { |
416 | u16 next_link_addr = 0, link_value; | 416 | u16 next_link_addr = 0; |
417 | __le16 link_value; | ||
417 | bool is_empty = false; | 418 | bool is_empty = false; |
418 | 419 | ||
419 | /* locate the beginning of OTP link list */ | 420 | /* locate the beginning of OTP link list */ |
@@ -443,7 +444,8 @@ static bool iwl_is_otp_empty(struct iwl_priv *priv) | |||
443 | static int iwl_find_otp_image(struct iwl_priv *priv, | 444 | static int iwl_find_otp_image(struct iwl_priv *priv, |
444 | u16 *validblockaddr) | 445 | u16 *validblockaddr) |
445 | { | 446 | { |
446 | u16 next_link_addr = 0, link_value = 0, valid_addr; | 447 | u16 next_link_addr = 0, valid_addr; |
448 | __le16 link_value = 0; | ||
447 | int usedblocks = 0; | 449 | int usedblocks = 0; |
448 | 450 | ||
449 | /* set addressing mode to absolute to traverse the link list */ | 451 | /* set addressing mode to absolute to traverse the link list */ |
@@ -463,7 +465,7 @@ static int iwl_find_otp_image(struct iwl_priv *priv, | |||
463 | * check for more block on the link list | 465 | * check for more block on the link list |
464 | */ | 466 | */ |
465 | valid_addr = next_link_addr; | 467 | valid_addr = next_link_addr; |
466 | next_link_addr = link_value * sizeof(u16); | 468 | next_link_addr = le16_to_cpu(link_value) * sizeof(u16); |
467 | IWL_DEBUG_INFO(priv, "OTP blocks %d addr 0x%x\n", | 469 | IWL_DEBUG_INFO(priv, "OTP blocks %d addr 0x%x\n", |
468 | usedblocks, next_link_addr); | 470 | usedblocks, next_link_addr); |
469 | if (iwl_read_otp_word(priv, next_link_addr, &link_value)) | 471 | if (iwl_read_otp_word(priv, next_link_addr, &link_value)) |
@@ -497,7 +499,7 @@ static int iwl_find_otp_image(struct iwl_priv *priv, | |||
497 | */ | 499 | */ |
498 | int iwl_eeprom_init(struct iwl_priv *priv) | 500 | int iwl_eeprom_init(struct iwl_priv *priv) |
499 | { | 501 | { |
500 | u16 *e; | 502 | __le16 *e; |
501 | u32 gp = iwl_read32(priv, CSR_EEPROM_GP); | 503 | u32 gp = iwl_read32(priv, CSR_EEPROM_GP); |
502 | int sz; | 504 | int sz; |
503 | int ret; | 505 | int ret; |
@@ -516,12 +518,9 @@ int iwl_eeprom_init(struct iwl_priv *priv) | |||
516 | ret = -ENOMEM; | 518 | ret = -ENOMEM; |
517 | goto alloc_err; | 519 | goto alloc_err; |
518 | } | 520 | } |
519 | e = (u16 *)priv->eeprom; | 521 | e = (__le16 *)priv->eeprom; |
520 | 522 | ||
521 | if (priv->nvm_device_type == NVM_DEVICE_TYPE_OTP) { | 523 | priv->cfg->ops->lib->apm_ops.init(priv); |
522 | /* OTP reads require powered-up chip */ | ||
523 | priv->cfg->ops->lib->apm_ops.init(priv); | ||
524 | } | ||
525 | 524 | ||
526 | ret = priv->cfg->ops->lib->eeprom_ops.verify_signature(priv); | 525 | ret = priv->cfg->ops->lib->eeprom_ops.verify_signature(priv); |
527 | if (ret < 0) { | 526 | if (ret < 0) { |
@@ -562,7 +561,7 @@ int iwl_eeprom_init(struct iwl_priv *priv) | |||
562 | } | 561 | } |
563 | for (addr = validblockaddr; addr < validblockaddr + sz; | 562 | for (addr = validblockaddr; addr < validblockaddr + sz; |
564 | addr += sizeof(u16)) { | 563 | addr += sizeof(u16)) { |
565 | u16 eeprom_data; | 564 | __le16 eeprom_data; |
566 | 565 | ||
567 | ret = iwl_read_otp_word(priv, addr, &eeprom_data); | 566 | ret = iwl_read_otp_word(priv, addr, &eeprom_data); |
568 | if (ret) | 567 | if (ret) |
@@ -570,13 +569,6 @@ int iwl_eeprom_init(struct iwl_priv *priv) | |||
570 | e[cache_addr / 2] = eeprom_data; | 569 | e[cache_addr / 2] = eeprom_data; |
571 | cache_addr += sizeof(u16); | 570 | cache_addr += sizeof(u16); |
572 | } | 571 | } |
573 | |||
574 | /* | ||
575 | * Now that OTP reads are complete, reset chip to save | ||
576 | * power until we load uCode during "up". | ||
577 | */ | ||
578 | priv->cfg->ops->lib->apm_ops.stop(priv); | ||
579 | |||
580 | } else { | 572 | } else { |
581 | /* eeprom is an array of 16bit values */ | 573 | /* eeprom is an array of 16bit values */ |
582 | for (addr = 0; addr < sz; addr += sizeof(u16)) { | 574 | for (addr = 0; addr < sz; addr += sizeof(u16)) { |
@@ -594,7 +586,7 @@ int iwl_eeprom_init(struct iwl_priv *priv) | |||
594 | goto done; | 586 | goto done; |
595 | } | 587 | } |
596 | r = _iwl_read_direct32(priv, CSR_EEPROM_REG); | 588 | r = _iwl_read_direct32(priv, CSR_EEPROM_REG); |
597 | e[addr / 2] = le16_to_cpu((__force __le16)(r >> 16)); | 589 | e[addr / 2] = cpu_to_le16(r >> 16); |
598 | } | 590 | } |
599 | } | 591 | } |
600 | ret = 0; | 592 | ret = 0; |
@@ -603,6 +595,8 @@ done: | |||
603 | err: | 595 | err: |
604 | if (ret) | 596 | if (ret) |
605 | iwl_eeprom_free(priv); | 597 | iwl_eeprom_free(priv); |
598 | /* Reset chip to save power until we load uCode during "up". */ | ||
599 | priv->cfg->ops->lib->apm_ops.stop(priv); | ||
606 | alloc_err: | 600 | alloc_err: |
607 | return ret; | 601 | return ret; |
608 | } | 602 | } |
@@ -755,7 +749,8 @@ static int iwl_mod_ht40_chan_info(struct iwl_priv *priv, | |||
755 | ch_info->ht40_eeprom = *eeprom_ch; | 749 | ch_info->ht40_eeprom = *eeprom_ch; |
756 | ch_info->ht40_max_power_avg = eeprom_ch->max_power_avg; | 750 | ch_info->ht40_max_power_avg = eeprom_ch->max_power_avg; |
757 | ch_info->ht40_flags = eeprom_ch->flags; | 751 | ch_info->ht40_flags = eeprom_ch->flags; |
758 | ch_info->ht40_extension_channel &= ~clear_ht40_extension_channel; | 752 | if (eeprom_ch->flags & EEPROM_CHANNEL_VALID) |
753 | ch_info->ht40_extension_channel &= ~clear_ht40_extension_channel; | ||
759 | 754 | ||
760 | return 0; | 755 | return 0; |
761 | } | 756 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h index 5cd2b66bbe4..0cd9c02ee04 100644 --- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h +++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h | |||
@@ -137,7 +137,7 @@ struct iwl_eeprom_channel { | |||
137 | * | 137 | * |
138 | */ | 138 | */ |
139 | struct iwl_eeprom_enhanced_txpwr { | 139 | struct iwl_eeprom_enhanced_txpwr { |
140 | u16 common; | 140 | __le16 common; |
141 | s8 chain_a_max; | 141 | s8 chain_a_max; |
142 | s8 chain_b_max; | 142 | s8 chain_b_max; |
143 | s8 chain_c_max; | 143 | s8 chain_c_max; |
@@ -360,7 +360,7 @@ struct iwl_eeprom_calib_subband_info { | |||
360 | struct iwl_eeprom_calib_info { | 360 | struct iwl_eeprom_calib_info { |
361 | u8 saturation_power24; /* half-dBm (e.g. "34" = 17 dBm) */ | 361 | u8 saturation_power24; /* half-dBm (e.g. "34" = 17 dBm) */ |
362 | u8 saturation_power52; /* half-dBm */ | 362 | u8 saturation_power52; /* half-dBm */ |
363 | s16 voltage; /* signed */ | 363 | __le16 voltage; /* signed */ |
364 | struct iwl_eeprom_calib_subband_info | 364 | struct iwl_eeprom_calib_subband_info |
365 | band_info[EEPROM_TX_POWER_BANDS]; | 365 | band_info[EEPROM_TX_POWER_BANDS]; |
366 | } __attribute__ ((packed)); | 366 | } __attribute__ ((packed)); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-hcmd.c index a2316594820..30e9ea6d54e 100644 --- a/drivers/net/wireless/iwlwifi/iwl-hcmd.c +++ b/drivers/net/wireless/iwlwifi/iwl-hcmd.c | |||
@@ -234,7 +234,7 @@ cancel: | |||
234 | } | 234 | } |
235 | fail: | 235 | fail: |
236 | if (cmd->reply_page) { | 236 | if (cmd->reply_page) { |
237 | free_pages(cmd->reply_page, priv->hw_params.rx_page_order); | 237 | iwl_free_pages(priv, cmd->reply_page); |
238 | cmd->reply_page = 0; | 238 | cmd->reply_page = 0; |
239 | } | 239 | } |
240 | out: | 240 | out: |
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c index 6090bc15a6d..6f36b6e79f5 100644 --- a/drivers/net/wireless/iwlwifi/iwl-rx.c +++ b/drivers/net/wireless/iwlwifi/iwl-rx.c | |||
@@ -345,10 +345,8 @@ void iwl_rx_queue_free(struct iwl_priv *priv, struct iwl_rx_queue *rxq) | |||
345 | pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, | 345 | pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, |
346 | PAGE_SIZE << priv->hw_params.rx_page_order, | 346 | PAGE_SIZE << priv->hw_params.rx_page_order, |
347 | PCI_DMA_FROMDEVICE); | 347 | PCI_DMA_FROMDEVICE); |
348 | __free_pages(rxq->pool[i].page, | 348 | __iwl_free_pages(priv, rxq->pool[i].page); |
349 | priv->hw_params.rx_page_order); | ||
350 | rxq->pool[i].page = NULL; | 349 | rxq->pool[i].page = NULL; |
351 | priv->alloc_rxb_page--; | ||
352 | } | 350 | } |
353 | } | 351 | } |
354 | 352 | ||
@@ -416,9 +414,7 @@ void iwl_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq) | |||
416 | pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, | 414 | pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, |
417 | PAGE_SIZE << priv->hw_params.rx_page_order, | 415 | PAGE_SIZE << priv->hw_params.rx_page_order, |
418 | PCI_DMA_FROMDEVICE); | 416 | PCI_DMA_FROMDEVICE); |
419 | priv->alloc_rxb_page--; | 417 | __iwl_free_pages(priv, rxq->pool[i].page); |
420 | __free_pages(rxq->pool[i].page, | ||
421 | priv->hw_params.rx_page_order); | ||
422 | rxq->pool[i].page = NULL; | 418 | rxq->pool[i].page = NULL; |
423 | } | 419 | } |
424 | list_add_tail(&rxq->pool[i].list, &rxq->rx_used); | 420 | list_add_tail(&rxq->pool[i].list, &rxq->rx_used); |
@@ -654,47 +650,6 @@ void iwl_reply_statistics(struct iwl_priv *priv, | |||
654 | } | 650 | } |
655 | EXPORT_SYMBOL(iwl_reply_statistics); | 651 | EXPORT_SYMBOL(iwl_reply_statistics); |
656 | 652 | ||
657 | #define PERFECT_RSSI (-20) /* dBm */ | ||
658 | #define WORST_RSSI (-95) /* dBm */ | ||
659 | #define RSSI_RANGE (PERFECT_RSSI - WORST_RSSI) | ||
660 | |||
661 | /* Calculate an indication of rx signal quality (a percentage, not dBm!). | ||
662 | * See http://www.ces.clemson.edu/linux/signal_quality.shtml for info | ||
663 | * about formulas used below. */ | ||
664 | static int iwl_calc_sig_qual(int rssi_dbm, int noise_dbm) | ||
665 | { | ||
666 | int sig_qual; | ||
667 | int degradation = PERFECT_RSSI - rssi_dbm; | ||
668 | |||
669 | /* If we get a noise measurement, use signal-to-noise ratio (SNR) | ||
670 | * as indicator; formula is (signal dbm - noise dbm). | ||
671 | * SNR at or above 40 is a great signal (100%). | ||
672 | * Below that, scale to fit SNR of 0 - 40 dB within 0 - 100% indicator. | ||
673 | * Weakest usable signal is usually 10 - 15 dB SNR. */ | ||
674 | if (noise_dbm) { | ||
675 | if (rssi_dbm - noise_dbm >= 40) | ||
676 | return 100; | ||
677 | else if (rssi_dbm < noise_dbm) | ||
678 | return 0; | ||
679 | sig_qual = ((rssi_dbm - noise_dbm) * 5) / 2; | ||
680 | |||
681 | /* Else use just the signal level. | ||
682 | * This formula is a least squares fit of data points collected and | ||
683 | * compared with a reference system that had a percentage (%) display | ||
684 | * for signal quality. */ | ||
685 | } else | ||
686 | sig_qual = (100 * (RSSI_RANGE * RSSI_RANGE) - degradation * | ||
687 | (15 * RSSI_RANGE + 62 * degradation)) / | ||
688 | (RSSI_RANGE * RSSI_RANGE); | ||
689 | |||
690 | if (sig_qual > 100) | ||
691 | sig_qual = 100; | ||
692 | else if (sig_qual < 1) | ||
693 | sig_qual = 0; | ||
694 | |||
695 | return sig_qual; | ||
696 | } | ||
697 | |||
698 | /* Calc max signal level (dBm) among 3 possible receivers */ | 653 | /* Calc max signal level (dBm) among 3 possible receivers */ |
699 | static inline int iwl_calc_rssi(struct iwl_priv *priv, | 654 | static inline int iwl_calc_rssi(struct iwl_priv *priv, |
700 | struct iwl_rx_phy_res *rx_resp) | 655 | struct iwl_rx_phy_res *rx_resp) |
@@ -1105,11 +1060,8 @@ void iwl_rx_reply_rx(struct iwl_priv *priv, | |||
1105 | if (iwl_is_associated(priv) && | 1060 | if (iwl_is_associated(priv) && |
1106 | !test_bit(STATUS_SCANNING, &priv->status)) { | 1061 | !test_bit(STATUS_SCANNING, &priv->status)) { |
1107 | rx_status.noise = priv->last_rx_noise; | 1062 | rx_status.noise = priv->last_rx_noise; |
1108 | rx_status.qual = iwl_calc_sig_qual(rx_status.signal, | ||
1109 | rx_status.noise); | ||
1110 | } else { | 1063 | } else { |
1111 | rx_status.noise = IWL_NOISE_MEAS_NOT_AVAILABLE; | 1064 | rx_status.noise = IWL_NOISE_MEAS_NOT_AVAILABLE; |
1112 | rx_status.qual = iwl_calc_sig_qual(rx_status.signal, 0); | ||
1113 | } | 1065 | } |
1114 | 1066 | ||
1115 | /* Reset beacon noise level if not associated. */ | 1067 | /* Reset beacon noise level if not associated. */ |
@@ -1122,8 +1074,8 @@ void iwl_rx_reply_rx(struct iwl_priv *priv, | |||
1122 | iwl_dbg_report_frame(priv, phy_res, len, header, 1); | 1074 | iwl_dbg_report_frame(priv, phy_res, len, header, 1); |
1123 | #endif | 1075 | #endif |
1124 | iwl_dbg_log_rx_data_frame(priv, len, header); | 1076 | iwl_dbg_log_rx_data_frame(priv, len, header); |
1125 | IWL_DEBUG_STATS_LIMIT(priv, "Rssi %d, noise %d, qual %d, TSF %llu\n", | 1077 | IWL_DEBUG_STATS_LIMIT(priv, "Rssi %d, noise %d, TSF %llu\n", |
1126 | rx_status.signal, rx_status.noise, rx_status.qual, | 1078 | rx_status.signal, rx_status.noise, |
1127 | (unsigned long long)rx_status.mactime); | 1079 | (unsigned long long)rx_status.mactime); |
1128 | 1080 | ||
1129 | /* | 1081 | /* |
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c index a2b2b8315ff..fa1c89ba645 100644 --- a/drivers/net/wireless/iwlwifi/iwl-scan.c +++ b/drivers/net/wireless/iwlwifi/iwl-scan.c | |||
@@ -144,8 +144,7 @@ static int iwl_send_scan_abort(struct iwl_priv *priv) | |||
144 | clear_bit(STATUS_SCAN_HW, &priv->status); | 144 | clear_bit(STATUS_SCAN_HW, &priv->status); |
145 | } | 145 | } |
146 | 146 | ||
147 | priv->alloc_rxb_page--; | 147 | iwl_free_pages(priv, cmd.reply_page); |
148 | free_pages(cmd.reply_page, priv->hw_params.rx_page_order); | ||
149 | 148 | ||
150 | return ret; | 149 | return ret; |
151 | } | 150 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.c b/drivers/net/wireless/iwlwifi/iwl-sta.c index cd6a6901216..cde09a890b7 100644 --- a/drivers/net/wireless/iwlwifi/iwl-sta.c +++ b/drivers/net/wireless/iwlwifi/iwl-sta.c | |||
@@ -164,9 +164,7 @@ int iwl_send_add_sta(struct iwl_priv *priv, | |||
164 | break; | 164 | break; |
165 | } | 165 | } |
166 | } | 166 | } |
167 | 167 | iwl_free_pages(priv, cmd.reply_page); | |
168 | priv->alloc_rxb_page--; | ||
169 | free_pages(cmd.reply_page, priv->hw_params.rx_page_order); | ||
170 | 168 | ||
171 | return ret; | 169 | return ret; |
172 | } | 170 | } |
@@ -391,9 +389,7 @@ static int iwl_send_remove_station(struct iwl_priv *priv, const u8 *addr, | |||
391 | break; | 389 | break; |
392 | } | 390 | } |
393 | } | 391 | } |
394 | 392 | iwl_free_pages(priv, cmd.reply_page); | |
395 | priv->alloc_rxb_page--; | ||
396 | free_pages(cmd.reply_page, priv->hw_params.rx_page_order); | ||
397 | 393 | ||
398 | return ret; | 394 | return ret; |
399 | } | 395 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c index 00da5e152d4..87ce2bd292c 100644 --- a/drivers/net/wireless/iwlwifi/iwl-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-tx.c | |||
@@ -407,13 +407,14 @@ void iwl_hw_txq_ctx_free(struct iwl_priv *priv) | |||
407 | int txq_id; | 407 | int txq_id; |
408 | 408 | ||
409 | /* Tx queues */ | 409 | /* Tx queues */ |
410 | if (priv->txq) | 410 | if (priv->txq) { |
411 | for (txq_id = 0; txq_id < priv->hw_params.max_txq_num; | 411 | for (txq_id = 0; txq_id < priv->hw_params.max_txq_num; |
412 | txq_id++) | 412 | txq_id++) |
413 | if (txq_id == IWL_CMD_QUEUE_NUM) | 413 | if (txq_id == IWL_CMD_QUEUE_NUM) |
414 | iwl_cmd_queue_free(priv); | 414 | iwl_cmd_queue_free(priv); |
415 | else | 415 | else |
416 | iwl_tx_queue_free(priv, txq_id); | 416 | iwl_tx_queue_free(priv, txq_id); |
417 | } | ||
417 | iwl_free_dma_ptr(priv, &priv->kw); | 418 | iwl_free_dma_ptr(priv, &priv->kw); |
418 | 419 | ||
419 | iwl_free_dma_ptr(priv, &priv->scd_bc_tbls); | 420 | iwl_free_dma_ptr(priv, &priv->scd_bc_tbls); |
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index 2a28a1f8b1f..f8e4e4b18d0 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
@@ -548,6 +548,9 @@ static int iwl3945_tx_skb(struct iwl_priv *priv, struct sk_buff *skb) | |||
548 | txq = &priv->txq[txq_id]; | 548 | txq = &priv->txq[txq_id]; |
549 | q = &txq->q; | 549 | q = &txq->q; |
550 | 550 | ||
551 | if ((iwl_queue_space(q) < q->high_mark)) | ||
552 | goto drop; | ||
553 | |||
551 | spin_lock_irqsave(&priv->lock, flags); | 554 | spin_lock_irqsave(&priv->lock, flags); |
552 | 555 | ||
553 | idx = get_cmd_index(q, q->write_ptr, 0); | 556 | idx = get_cmd_index(q, q->write_ptr, 0); |
@@ -812,7 +815,7 @@ static int iwl3945_get_measurement(struct iwl_priv *priv, | |||
812 | break; | 815 | break; |
813 | } | 816 | } |
814 | 817 | ||
815 | free_pages(cmd.reply_page, priv->hw_params.rx_page_order); | 818 | iwl_free_pages(priv, cmd.reply_page); |
816 | 819 | ||
817 | return rc; | 820 | return rc; |
818 | } | 821 | } |
@@ -1198,9 +1201,7 @@ void iwl3945_rx_queue_reset(struct iwl_priv *priv, struct iwl_rx_queue *rxq) | |||
1198 | pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, | 1201 | pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, |
1199 | PAGE_SIZE << priv->hw_params.rx_page_order, | 1202 | PAGE_SIZE << priv->hw_params.rx_page_order, |
1200 | PCI_DMA_FROMDEVICE); | 1203 | PCI_DMA_FROMDEVICE); |
1201 | priv->alloc_rxb_page--; | 1204 | __iwl_free_pages(priv, rxq->pool[i].page); |
1202 | __free_pages(rxq->pool[i].page, | ||
1203 | priv->hw_params.rx_page_order); | ||
1204 | rxq->pool[i].page = NULL; | 1205 | rxq->pool[i].page = NULL; |
1205 | } | 1206 | } |
1206 | list_add_tail(&rxq->pool[i].list, &rxq->rx_used); | 1207 | list_add_tail(&rxq->pool[i].list, &rxq->rx_used); |
@@ -1247,10 +1248,8 @@ static void iwl3945_rx_queue_free(struct iwl_priv *priv, struct iwl_rx_queue *rx | |||
1247 | pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, | 1248 | pci_unmap_page(priv->pci_dev, rxq->pool[i].page_dma, |
1248 | PAGE_SIZE << priv->hw_params.rx_page_order, | 1249 | PAGE_SIZE << priv->hw_params.rx_page_order, |
1249 | PCI_DMA_FROMDEVICE); | 1250 | PCI_DMA_FROMDEVICE); |
1250 | __free_pages(rxq->pool[i].page, | 1251 | __iwl_free_pages(priv, rxq->pool[i].page); |
1251 | priv->hw_params.rx_page_order); | ||
1252 | rxq->pool[i].page = NULL; | 1252 | rxq->pool[i].page = NULL; |
1253 | priv->alloc_rxb_page--; | ||
1254 | } | 1253 | } |
1255 | } | 1254 | } |
1256 | 1255 | ||
@@ -1300,47 +1299,6 @@ int iwl3945_calc_db_from_ratio(int sig_ratio) | |||
1300 | return (int)ratio2dB[sig_ratio]; | 1299 | return (int)ratio2dB[sig_ratio]; |
1301 | } | 1300 | } |
1302 | 1301 | ||
1303 | #define PERFECT_RSSI (-20) /* dBm */ | ||
1304 | #define WORST_RSSI (-95) /* dBm */ | ||
1305 | #define RSSI_RANGE (PERFECT_RSSI - WORST_RSSI) | ||
1306 | |||
1307 | /* Calculate an indication of rx signal quality (a percentage, not dBm!). | ||
1308 | * See http://www.ces.clemson.edu/linux/signal_quality.shtml for info | ||
1309 | * about formulas used below. */ | ||
1310 | int iwl3945_calc_sig_qual(int rssi_dbm, int noise_dbm) | ||
1311 | { | ||
1312 | int sig_qual; | ||
1313 | int degradation = PERFECT_RSSI - rssi_dbm; | ||
1314 | |||
1315 | /* If we get a noise measurement, use signal-to-noise ratio (SNR) | ||
1316 | * as indicator; formula is (signal dbm - noise dbm). | ||
1317 | * SNR at or above 40 is a great signal (100%). | ||
1318 | * Below that, scale to fit SNR of 0 - 40 dB within 0 - 100% indicator. | ||
1319 | * Weakest usable signal is usually 10 - 15 dB SNR. */ | ||
1320 | if (noise_dbm) { | ||
1321 | if (rssi_dbm - noise_dbm >= 40) | ||
1322 | return 100; | ||
1323 | else if (rssi_dbm < noise_dbm) | ||
1324 | return 0; | ||
1325 | sig_qual = ((rssi_dbm - noise_dbm) * 5) / 2; | ||
1326 | |||
1327 | /* Else use just the signal level. | ||
1328 | * This formula is a least squares fit of data points collected and | ||
1329 | * compared with a reference system that had a percentage (%) display | ||
1330 | * for signal quality. */ | ||
1331 | } else | ||
1332 | sig_qual = (100 * (RSSI_RANGE * RSSI_RANGE) - degradation * | ||
1333 | (15 * RSSI_RANGE + 62 * degradation)) / | ||
1334 | (RSSI_RANGE * RSSI_RANGE); | ||
1335 | |||
1336 | if (sig_qual > 100) | ||
1337 | sig_qual = 100; | ||
1338 | else if (sig_qual < 1) | ||
1339 | sig_qual = 0; | ||
1340 | |||
1341 | return sig_qual; | ||
1342 | } | ||
1343 | |||
1344 | /** | 1302 | /** |
1345 | * iwl3945_rx_handle - Main entry function for receiving responses from uCode | 1303 | * iwl3945_rx_handle - Main entry function for receiving responses from uCode |
1346 | * | 1304 | * |
@@ -1688,7 +1646,7 @@ void iwl3945_dump_nic_event_log(struct iwl_priv *priv, bool full_log) | |||
1688 | } | 1646 | } |
1689 | 1647 | ||
1690 | #ifdef CONFIG_IWLWIFI_DEBUG | 1648 | #ifdef CONFIG_IWLWIFI_DEBUG |
1691 | if (!(iwl_get_debug_level(priv) & IWL_DL_FW_ERRORS)) | 1649 | if (!(iwl_get_debug_level(priv) & IWL_DL_FW_ERRORS) && !full_log) |
1692 | size = (size > DEFAULT_IWL3945_DUMP_EVENT_LOG_ENTRIES) | 1650 | size = (size > DEFAULT_IWL3945_DUMP_EVENT_LOG_ENTRIES) |
1693 | ? DEFAULT_IWL3945_DUMP_EVENT_LOG_ENTRIES : size; | 1651 | ? DEFAULT_IWL3945_DUMP_EVENT_LOG_ENTRIES : size; |
1694 | #else | 1652 | #else |
@@ -3867,7 +3825,6 @@ static int iwl3945_init_drv(struct iwl_priv *priv) | |||
3867 | priv->retry_rate = 1; | 3825 | priv->retry_rate = 1; |
3868 | priv->ibss_beacon = NULL; | 3826 | priv->ibss_beacon = NULL; |
3869 | 3827 | ||
3870 | spin_lock_init(&priv->lock); | ||
3871 | spin_lock_init(&priv->sta_lock); | 3828 | spin_lock_init(&priv->sta_lock); |
3872 | spin_lock_init(&priv->hcmd_lock); | 3829 | spin_lock_init(&priv->hcmd_lock); |
3873 | 3830 | ||
@@ -3936,9 +3893,11 @@ static int iwl3945_setup_mac(struct iwl_priv *priv) | |||
3936 | /* Tell mac80211 our characteristics */ | 3893 | /* Tell mac80211 our characteristics */ |
3937 | hw->flags = IEEE80211_HW_SIGNAL_DBM | | 3894 | hw->flags = IEEE80211_HW_SIGNAL_DBM | |
3938 | IEEE80211_HW_NOISE_DBM | | 3895 | IEEE80211_HW_NOISE_DBM | |
3939 | IEEE80211_HW_SPECTRUM_MGMT | | 3896 | IEEE80211_HW_SPECTRUM_MGMT; |
3940 | IEEE80211_HW_SUPPORTS_PS | | 3897 | |
3941 | IEEE80211_HW_SUPPORTS_DYNAMIC_PS; | 3898 | if (!priv->cfg->broken_powersave) |
3899 | hw->flags |= IEEE80211_HW_SUPPORTS_PS | | ||
3900 | IEEE80211_HW_SUPPORTS_DYNAMIC_PS; | ||
3942 | 3901 | ||
3943 | hw->wiphy->interface_modes = | 3902 | hw->wiphy->interface_modes = |
3944 | BIT(NL80211_IFTYPE_STATION) | | 3903 | BIT(NL80211_IFTYPE_STATION) | |
@@ -4057,10 +4016,11 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e | |||
4057 | * PCI Tx retries from interfering with C3 CPU state */ | 4016 | * PCI Tx retries from interfering with C3 CPU state */ |
4058 | pci_write_config_byte(pdev, 0x41, 0x00); | 4017 | pci_write_config_byte(pdev, 0x41, 0x00); |
4059 | 4018 | ||
4060 | /* this spin lock will be used in apm_ops.init and EEPROM access | 4019 | /* these spin locks will be used in apm_ops.init and EEPROM access |
4061 | * we should init now | 4020 | * we should init now |
4062 | */ | 4021 | */ |
4063 | spin_lock_init(&priv->reg_lock); | 4022 | spin_lock_init(&priv->reg_lock); |
4023 | spin_lock_init(&priv->lock); | ||
4064 | 4024 | ||
4065 | /*********************** | 4025 | /*********************** |
4066 | * 4. Read EEPROM | 4026 | * 4. Read EEPROM |
diff --git a/drivers/net/wireless/iwmc3200wifi/iwm.h b/drivers/net/wireless/iwmc3200wifi/iwm.h index 5a26bb05a33..842811142be 100644 --- a/drivers/net/wireless/iwmc3200wifi/iwm.h +++ b/drivers/net/wireless/iwmc3200wifi/iwm.h | |||
@@ -268,7 +268,7 @@ struct iwm_priv { | |||
268 | 268 | ||
269 | struct sk_buff_head rx_list; | 269 | struct sk_buff_head rx_list; |
270 | struct list_head rx_tickets; | 270 | struct list_head rx_tickets; |
271 | struct list_head rx_packets[IWM_RX_ID_HASH]; | 271 | struct list_head rx_packets[IWM_RX_ID_HASH + 1]; |
272 | struct workqueue_struct *rx_wq; | 272 | struct workqueue_struct *rx_wq; |
273 | struct work_struct rx_worker; | 273 | struct work_struct rx_worker; |
274 | 274 | ||
@@ -349,7 +349,7 @@ int iwm_up(struct iwm_priv *iwm); | |||
349 | int iwm_down(struct iwm_priv *iwm); | 349 | int iwm_down(struct iwm_priv *iwm); |
350 | 350 | ||
351 | /* TX API */ | 351 | /* TX API */ |
352 | u16 iwm_tid_to_queue(u16 tid); | 352 | int iwm_tid_to_queue(u16 tid); |
353 | void iwm_tx_credit_inc(struct iwm_priv *iwm, int id, int total_freed_pages); | 353 | void iwm_tx_credit_inc(struct iwm_priv *iwm, int id, int total_freed_pages); |
354 | void iwm_tx_worker(struct work_struct *work); | 354 | void iwm_tx_worker(struct work_struct *work); |
355 | int iwm_xmit_frame(struct sk_buff *skb, struct net_device *netdev); | 355 | int iwm_xmit_frame(struct sk_buff *skb, struct net_device *netdev); |
diff --git a/drivers/net/wireless/iwmc3200wifi/netdev.c b/drivers/net/wireless/iwmc3200wifi/netdev.c index e4f0f8705f6..c4c0d23c63e 100644 --- a/drivers/net/wireless/iwmc3200wifi/netdev.c +++ b/drivers/net/wireless/iwmc3200wifi/netdev.c | |||
@@ -76,7 +76,7 @@ static int iwm_stop(struct net_device *ndev) | |||
76 | */ | 76 | */ |
77 | static const u16 iwm_1d_to_queue[8] = { 1, 0, 0, 1, 2, 2, 3, 3 }; | 77 | static const u16 iwm_1d_to_queue[8] = { 1, 0, 0, 1, 2, 2, 3, 3 }; |
78 | 78 | ||
79 | u16 iwm_tid_to_queue(u16 tid) | 79 | int iwm_tid_to_queue(u16 tid) |
80 | { | 80 | { |
81 | if (tid > IWM_UMAC_TID_NR - 2) | 81 | if (tid > IWM_UMAC_TID_NR - 2) |
82 | return -EINVAL; | 82 | return -EINVAL; |
diff --git a/drivers/net/wireless/iwmc3200wifi/rx.c b/drivers/net/wireless/iwmc3200wifi/rx.c index 1c57c1f72cb..6d6ed748517 100644 --- a/drivers/net/wireless/iwmc3200wifi/rx.c +++ b/drivers/net/wireless/iwmc3200wifi/rx.c | |||
@@ -1126,7 +1126,7 @@ static int iwm_ntf_stop_resume_tx(struct iwm_priv *iwm, u8 *buf, | |||
1126 | 1126 | ||
1127 | if (!stop) { | 1127 | if (!stop) { |
1128 | struct iwm_tx_queue *txq; | 1128 | struct iwm_tx_queue *txq; |
1129 | u16 queue = iwm_tid_to_queue(bit); | 1129 | int queue = iwm_tid_to_queue(bit); |
1130 | 1130 | ||
1131 | if (queue < 0) | 1131 | if (queue < 0) |
1132 | continue; | 1132 | continue; |
diff --git a/drivers/net/wireless/libertas/mesh.c b/drivers/net/wireless/libertas/mesh.c index 2f91c9b808a..92b7a357a5e 100644 --- a/drivers/net/wireless/libertas/mesh.c +++ b/drivers/net/wireless/libertas/mesh.c | |||
@@ -2,6 +2,7 @@ | |||
2 | #include <linux/delay.h> | 2 | #include <linux/delay.h> |
3 | #include <linux/etherdevice.h> | 3 | #include <linux/etherdevice.h> |
4 | #include <linux/netdevice.h> | 4 | #include <linux/netdevice.h> |
5 | #include <linux/if_ether.h> | ||
5 | #include <linux/if_arp.h> | 6 | #include <linux/if_arp.h> |
6 | #include <linux/kthread.h> | 7 | #include <linux/kthread.h> |
7 | #include <linux/kfifo.h> | 8 | #include <linux/kfifo.h> |
@@ -351,8 +352,7 @@ int lbs_add_mesh(struct lbs_private *priv) | |||
351 | 352 | ||
352 | mesh_dev->netdev_ops = &mesh_netdev_ops; | 353 | mesh_dev->netdev_ops = &mesh_netdev_ops; |
353 | mesh_dev->ethtool_ops = &lbs_ethtool_ops; | 354 | mesh_dev->ethtool_ops = &lbs_ethtool_ops; |
354 | memcpy(mesh_dev->dev_addr, priv->dev->dev_addr, | 355 | memcpy(mesh_dev->dev_addr, priv->dev->dev_addr, ETH_ALEN); |
355 | sizeof(priv->dev->dev_addr)); | ||
356 | 356 | ||
357 | SET_NETDEV_DEV(priv->mesh_dev, priv->dev->dev.parent); | 357 | SET_NETDEV_DEV(priv->mesh_dev, priv->dev->dev.parent); |
358 | 358 | ||
diff --git a/drivers/net/wireless/libertas/scan.c b/drivers/net/wireless/libertas/scan.c index c6a6c042b82..b0b1c784150 100644 --- a/drivers/net/wireless/libertas/scan.c +++ b/drivers/net/wireless/libertas/scan.c | |||
@@ -567,11 +567,8 @@ int lbs_scan_networks(struct lbs_private *priv, int full_scan) | |||
567 | chan_count = lbs_scan_create_channel_list(priv, chan_list); | 567 | chan_count = lbs_scan_create_channel_list(priv, chan_list); |
568 | 568 | ||
569 | netif_stop_queue(priv->dev); | 569 | netif_stop_queue(priv->dev); |
570 | netif_carrier_off(priv->dev); | 570 | if (priv->mesh_dev) |
571 | if (priv->mesh_dev) { | ||
572 | netif_stop_queue(priv->mesh_dev); | 571 | netif_stop_queue(priv->mesh_dev); |
573 | netif_carrier_off(priv->mesh_dev); | ||
574 | } | ||
575 | 572 | ||
576 | /* Prepare to continue an interrupted scan */ | 573 | /* Prepare to continue an interrupted scan */ |
577 | lbs_deb_scan("chan_count %d, scan_channel %d\n", | 574 | lbs_deb_scan("chan_count %d, scan_channel %d\n", |
@@ -635,16 +632,13 @@ out2: | |||
635 | priv->scan_channel = 0; | 632 | priv->scan_channel = 0; |
636 | 633 | ||
637 | out: | 634 | out: |
638 | if (priv->connect_status == LBS_CONNECTED) { | 635 | if (priv->connect_status == LBS_CONNECTED && !priv->tx_pending_len) |
639 | netif_carrier_on(priv->dev); | 636 | netif_wake_queue(priv->dev); |
640 | if (!priv->tx_pending_len) | 637 | |
641 | netif_wake_queue(priv->dev); | 638 | if (priv->mesh_dev && (priv->mesh_connect_status == LBS_CONNECTED) && |
642 | } | 639 | !priv->tx_pending_len) |
643 | if (priv->mesh_dev && (priv->mesh_connect_status == LBS_CONNECTED)) { | 640 | netif_wake_queue(priv->mesh_dev); |
644 | netif_carrier_on(priv->mesh_dev); | 641 | |
645 | if (!priv->tx_pending_len) | ||
646 | netif_wake_queue(priv->mesh_dev); | ||
647 | } | ||
648 | kfree(chan_list); | 642 | kfree(chan_list); |
649 | 643 | ||
650 | lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", ret); | 644 | lbs_deb_leave_args(LBS_DEB_SCAN, "ret %d", ret); |
diff --git a/drivers/net/wireless/libertas/wext.c b/drivers/net/wireless/libertas/wext.c index a8eb9e1fcf3..4b1aab593a8 100644 --- a/drivers/net/wireless/libertas/wext.c +++ b/drivers/net/wireless/libertas/wext.c | |||
@@ -2025,10 +2025,8 @@ static int lbs_get_essid(struct net_device *dev, struct iw_request_info *info, | |||
2025 | if (priv->connect_status == LBS_CONNECTED) { | 2025 | if (priv->connect_status == LBS_CONNECTED) { |
2026 | memcpy(extra, priv->curbssparams.ssid, | 2026 | memcpy(extra, priv->curbssparams.ssid, |
2027 | priv->curbssparams.ssid_len); | 2027 | priv->curbssparams.ssid_len); |
2028 | extra[priv->curbssparams.ssid_len] = '\0'; | ||
2029 | } else { | 2028 | } else { |
2030 | memset(extra, 0, 32); | 2029 | memset(extra, 0, 32); |
2031 | extra[priv->curbssparams.ssid_len] = '\0'; | ||
2032 | } | 2030 | } |
2033 | /* | 2031 | /* |
2034 | * If none, we may want to get the one that was set | 2032 | * If none, we may want to get the one that was set |
diff --git a/drivers/net/wireless/libertas_tf/main.c b/drivers/net/wireless/libertas_tf/main.c index 019431d2f8a..26a1abd5bb0 100644 --- a/drivers/net/wireless/libertas_tf/main.c +++ b/drivers/net/wireless/libertas_tf/main.c | |||
@@ -495,7 +495,6 @@ int lbtf_rx(struct lbtf_private *priv, struct sk_buff *skb) | |||
495 | stats.band = IEEE80211_BAND_2GHZ; | 495 | stats.band = IEEE80211_BAND_2GHZ; |
496 | stats.signal = prxpd->snr; | 496 | stats.signal = prxpd->snr; |
497 | stats.noise = prxpd->nf; | 497 | stats.noise = prxpd->nf; |
498 | stats.qual = prxpd->snr - prxpd->nf; | ||
499 | /* Marvell rate index has a hole at value 4 */ | 498 | /* Marvell rate index has a hole at value 4 */ |
500 | if (prxpd->rx_rate > 4) | 499 | if (prxpd->rx_rate > 4) |
501 | --prxpd->rx_rate; | 500 | --prxpd->rx_rate; |
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c index 59d49159cf2..59f92105b0c 100644 --- a/drivers/net/wireless/mwl8k.c +++ b/drivers/net/wireless/mwl8k.c | |||
@@ -3157,8 +3157,10 @@ static void mwl8k_configure_filter(struct ieee80211_hw *hw, | |||
3157 | /* Clear unsupported feature flags */ | 3157 | /* Clear unsupported feature flags */ |
3158 | *total_flags &= FIF_ALLMULTI | FIF_BCN_PRBRESP_PROMISC; | 3158 | *total_flags &= FIF_ALLMULTI | FIF_BCN_PRBRESP_PROMISC; |
3159 | 3159 | ||
3160 | if (mwl8k_fw_lock(hw)) | 3160 | if (mwl8k_fw_lock(hw)) { |
3161 | kfree(cmd); | ||
3161 | return; | 3162 | return; |
3163 | } | ||
3162 | 3164 | ||
3163 | if (priv->sniffer_enabled) { | 3165 | if (priv->sniffer_enabled) { |
3164 | mwl8k_enable_sniffer(hw, 0); | 3166 | mwl8k_enable_sniffer(hw, 0); |
diff --git a/drivers/net/wireless/orinoco/wext.c b/drivers/net/wireless/orinoco/wext.c index 7698fdd6a3a..31ca241f775 100644 --- a/drivers/net/wireless/orinoco/wext.c +++ b/drivers/net/wireless/orinoco/wext.c | |||
@@ -23,7 +23,7 @@ | |||
23 | #define MAX_RID_LEN 1024 | 23 | #define MAX_RID_LEN 1024 |
24 | 24 | ||
25 | /* Helper routine to record keys | 25 | /* Helper routine to record keys |
26 | * Do not call from interrupt context */ | 26 | * It is called under orinoco_lock so it may not sleep */ |
27 | static int orinoco_set_key(struct orinoco_private *priv, int index, | 27 | static int orinoco_set_key(struct orinoco_private *priv, int index, |
28 | enum orinoco_alg alg, const u8 *key, int key_len, | 28 | enum orinoco_alg alg, const u8 *key, int key_len, |
29 | const u8 *seq, int seq_len) | 29 | const u8 *seq, int seq_len) |
@@ -32,14 +32,14 @@ static int orinoco_set_key(struct orinoco_private *priv, int index, | |||
32 | kzfree(priv->keys[index].seq); | 32 | kzfree(priv->keys[index].seq); |
33 | 33 | ||
34 | if (key_len) { | 34 | if (key_len) { |
35 | priv->keys[index].key = kzalloc(key_len, GFP_KERNEL); | 35 | priv->keys[index].key = kzalloc(key_len, GFP_ATOMIC); |
36 | if (!priv->keys[index].key) | 36 | if (!priv->keys[index].key) |
37 | goto nomem; | 37 | goto nomem; |
38 | } else | 38 | } else |
39 | priv->keys[index].key = NULL; | 39 | priv->keys[index].key = NULL; |
40 | 40 | ||
41 | if (seq_len) { | 41 | if (seq_len) { |
42 | priv->keys[index].seq = kzalloc(seq_len, GFP_KERNEL); | 42 | priv->keys[index].seq = kzalloc(seq_len, GFP_ATOMIC); |
43 | if (!priv->keys[index].seq) | 43 | if (!priv->keys[index].seq) |
44 | goto free_key; | 44 | goto free_key; |
45 | } else | 45 | } else |
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h index c5fe867665e..1a7eae357fe 100644 --- a/drivers/net/wireless/rt2x00/rt2800.h +++ b/drivers/net/wireless/rt2x00/rt2800.h | |||
@@ -1323,7 +1323,7 @@ | |||
1323 | #define PAIRWISE_KEY_ENTRY(__idx) \ | 1323 | #define PAIRWISE_KEY_ENTRY(__idx) \ |
1324 | ( PAIRWISE_KEY_TABLE_BASE + ((__idx) * sizeof(struct hw_key_entry)) ) | 1324 | ( PAIRWISE_KEY_TABLE_BASE + ((__idx) * sizeof(struct hw_key_entry)) ) |
1325 | #define MAC_IVEIV_ENTRY(__idx) \ | 1325 | #define MAC_IVEIV_ENTRY(__idx) \ |
1326 | ( MAC_IVEIV_TABLE_BASE + ((__idx) & sizeof(struct mac_iveiv_entry)) ) | 1326 | ( MAC_IVEIV_TABLE_BASE + ((__idx) * sizeof(struct mac_iveiv_entry)) ) |
1327 | #define MAC_WCID_ATTR_ENTRY(__idx) \ | 1327 | #define MAC_WCID_ATTR_ENTRY(__idx) \ |
1328 | ( MAC_WCID_ATTRIBUTE_BASE + ((__idx) * sizeof(u32)) ) | 1328 | ( MAC_WCID_ATTRIBUTE_BASE + ((__idx) * sizeof(u32)) ) |
1329 | #define SHARED_KEY_ENTRY(__idx) \ | 1329 | #define SHARED_KEY_ENTRY(__idx) \ |
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c index eb1e1d00bec..9deae41cb78 100644 --- a/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c | |||
@@ -37,7 +37,7 @@ | |||
37 | #include <linux/module.h> | 37 | #include <linux/module.h> |
38 | 38 | ||
39 | #include "rt2x00.h" | 39 | #include "rt2x00.h" |
40 | #ifdef CONFIG_RT2800USB | 40 | #if defined(CONFIG_RT2800USB) || defined(CONFIG_RT2800USB_MODULE) |
41 | #include "rt2x00usb.h" | 41 | #include "rt2x00usb.h" |
42 | #endif | 42 | #endif |
43 | #include "rt2800lib.h" | 43 | #include "rt2800lib.h" |
@@ -340,7 +340,7 @@ static int rt2800_blink_set(struct led_classdev *led_cdev, | |||
340 | rt2x00_set_field32(®, LED_CFG_OFF_PERIOD, *delay_off); | 340 | rt2x00_set_field32(®, LED_CFG_OFF_PERIOD, *delay_off); |
341 | rt2x00_set_field32(®, LED_CFG_SLOW_BLINK_PERIOD, 3); | 341 | rt2x00_set_field32(®, LED_CFG_SLOW_BLINK_PERIOD, 3); |
342 | rt2x00_set_field32(®, LED_CFG_R_LED_MODE, 3); | 342 | rt2x00_set_field32(®, LED_CFG_R_LED_MODE, 3); |
343 | rt2x00_set_field32(®, LED_CFG_G_LED_MODE, 12); | 343 | rt2x00_set_field32(®, LED_CFG_G_LED_MODE, 3); |
344 | rt2x00_set_field32(®, LED_CFG_Y_LED_MODE, 3); | 344 | rt2x00_set_field32(®, LED_CFG_Y_LED_MODE, 3); |
345 | rt2x00_set_field32(®, LED_CFG_LED_POLAR, 1); | 345 | rt2x00_set_field32(®, LED_CFG_LED_POLAR, 1); |
346 | rt2800_register_write(led->rt2x00dev, LED_CFG, reg); | 346 | rt2800_register_write(led->rt2x00dev, LED_CFG, reg); |
@@ -1121,7 +1121,7 @@ int rt2800_init_registers(struct rt2x00_dev *rt2x00dev) | |||
1121 | 1121 | ||
1122 | if (rt2x00_intf_is_usb(rt2x00dev)) { | 1122 | if (rt2x00_intf_is_usb(rt2x00dev)) { |
1123 | rt2800_register_write(rt2x00dev, USB_DMA_CFG, 0x00000000); | 1123 | rt2800_register_write(rt2x00dev, USB_DMA_CFG, 0x00000000); |
1124 | #ifdef CONFIG_RT2800USB | 1124 | #if defined(CONFIG_RT2800USB) || defined(CONFIG_RT2800USB_MODULE) |
1125 | rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0, | 1125 | rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0, |
1126 | USB_MODE_RESET, REGISTER_TIMEOUT); | 1126 | USB_MODE_RESET, REGISTER_TIMEOUT); |
1127 | #endif | 1127 | #endif |
@@ -2022,6 +2022,12 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) | |||
2022 | u16 eeprom; | 2022 | u16 eeprom; |
2023 | 2023 | ||
2024 | /* | 2024 | /* |
2025 | * Disable powersaving as default on PCI devices. | ||
2026 | */ | ||
2027 | if (rt2x00_intf_is_pci(rt2x00dev)) | ||
2028 | rt2x00dev->hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; | ||
2029 | |||
2030 | /* | ||
2025 | * Initialize all hw fields. | 2031 | * Initialize all hw fields. |
2026 | */ | 2032 | */ |
2027 | rt2x00dev->hw->flags = | 2033 | rt2x00dev->hw->flags = |
@@ -2074,8 +2080,7 @@ int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev) | |||
2074 | IEEE80211_HT_CAP_SGI_20 | | 2080 | IEEE80211_HT_CAP_SGI_20 | |
2075 | IEEE80211_HT_CAP_SGI_40 | | 2081 | IEEE80211_HT_CAP_SGI_40 | |
2076 | IEEE80211_HT_CAP_TX_STBC | | 2082 | IEEE80211_HT_CAP_TX_STBC | |
2077 | IEEE80211_HT_CAP_RX_STBC | | 2083 | IEEE80211_HT_CAP_RX_STBC; |
2078 | IEEE80211_HT_CAP_PSMP_SUPPORT; | ||
2079 | spec->ht.ampdu_factor = 3; | 2084 | spec->ht.ampdu_factor = 3; |
2080 | spec->ht.ampdu_density = 4; | 2085 | spec->ht.ampdu_density = 4; |
2081 | spec->ht.mcs.tx_params = | 2086 | spec->ht.mcs.tx_params = |
@@ -2140,8 +2145,8 @@ static void rt2800_get_tkip_seq(struct ieee80211_hw *hw, u8 hw_key_idx, | |||
2140 | rt2800_register_multiread(rt2x00dev, offset, | 2145 | rt2800_register_multiread(rt2x00dev, offset, |
2141 | &iveiv_entry, sizeof(iveiv_entry)); | 2146 | &iveiv_entry, sizeof(iveiv_entry)); |
2142 | 2147 | ||
2143 | memcpy(&iveiv_entry.iv[0], iv16, sizeof(iv16)); | 2148 | memcpy(iv16, &iveiv_entry.iv[0], sizeof(*iv16)); |
2144 | memcpy(&iveiv_entry.iv[4], iv32, sizeof(iv32)); | 2149 | memcpy(iv32, &iveiv_entry.iv[4], sizeof(*iv32)); |
2145 | } | 2150 | } |
2146 | 2151 | ||
2147 | static int rt2800_set_rts_threshold(struct ieee80211_hw *hw, u32 value) | 2152 | static int rt2800_set_rts_threshold(struct ieee80211_hw *hw, u32 value) |
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c index af85d18cdbe..ab95346cf6a 100644 --- a/drivers/net/wireless/rt2x00/rt2800usb.c +++ b/drivers/net/wireless/rt2x00/rt2800usb.c | |||
@@ -922,6 +922,7 @@ static struct usb_device_id rt2800usb_device_table[] = { | |||
922 | { USB_DEVICE(0x1737, 0x0070), USB_DEVICE_DATA(&rt2800usb_ops) }, | 922 | { USB_DEVICE(0x1737, 0x0070), USB_DEVICE_DATA(&rt2800usb_ops) }, |
923 | { USB_DEVICE(0x1737, 0x0071), USB_DEVICE_DATA(&rt2800usb_ops) }, | 923 | { USB_DEVICE(0x1737, 0x0071), USB_DEVICE_DATA(&rt2800usb_ops) }, |
924 | { USB_DEVICE(0x1737, 0x0077), USB_DEVICE_DATA(&rt2800usb_ops) }, | 924 | { USB_DEVICE(0x1737, 0x0077), USB_DEVICE_DATA(&rt2800usb_ops) }, |
925 | { USB_DEVICE(0x1737, 0x0079), USB_DEVICE_DATA(&rt2800usb_ops) }, | ||
925 | /* Logitec */ | 926 | /* Logitec */ |
926 | { USB_DEVICE(0x0789, 0x0162), USB_DEVICE_DATA(&rt2800usb_ops) }, | 927 | { USB_DEVICE(0x0789, 0x0162), USB_DEVICE_DATA(&rt2800usb_ops) }, |
927 | { USB_DEVICE(0x0789, 0x0163), USB_DEVICE_DATA(&rt2800usb_ops) }, | 928 | { USB_DEVICE(0x0789, 0x0163), USB_DEVICE_DATA(&rt2800usb_ops) }, |
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h index 4d841c07c97..dcfc8c25d1a 100644 --- a/drivers/net/wireless/rt2x00/rt2x00.h +++ b/drivers/net/wireless/rt2x00/rt2x00.h | |||
@@ -113,6 +113,12 @@ | |||
113 | ( ((unsigned long)((__skb)->data + (__header))) & 3 ) | 113 | ( ((unsigned long)((__skb)->data + (__header))) & 3 ) |
114 | 114 | ||
115 | /* | 115 | /* |
116 | * Constants for extra TX headroom for alignment purposes. | ||
117 | */ | ||
118 | #define RT2X00_ALIGN_SIZE 4 /* Only whole frame needs alignment */ | ||
119 | #define RT2X00_L2PAD_SIZE 8 /* Both header & payload need alignment */ | ||
120 | |||
121 | /* | ||
116 | * Standard timing and size defines. | 122 | * Standard timing and size defines. |
117 | * These values should follow the ieee80211 specifications. | 123 | * These values should follow the ieee80211 specifications. |
118 | */ | 124 | */ |
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 06c43ca39bf..265e66dba55 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c | |||
@@ -686,7 +686,17 @@ static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev) | |||
686 | /* | 686 | /* |
687 | * Initialize extra TX headroom required. | 687 | * Initialize extra TX headroom required. |
688 | */ | 688 | */ |
689 | rt2x00dev->hw->extra_tx_headroom = rt2x00dev->ops->extra_tx_headroom; | 689 | rt2x00dev->hw->extra_tx_headroom = |
690 | max_t(unsigned int, IEEE80211_TX_STATUS_HEADROOM, | ||
691 | rt2x00dev->ops->extra_tx_headroom); | ||
692 | |||
693 | /* | ||
694 | * Take TX headroom required for alignment into account. | ||
695 | */ | ||
696 | if (test_bit(DRIVER_REQUIRE_L2PAD, &rt2x00dev->flags)) | ||
697 | rt2x00dev->hw->extra_tx_headroom += RT2X00_L2PAD_SIZE; | ||
698 | else if (test_bit(DRIVER_REQUIRE_DMA, &rt2x00dev->flags)) | ||
699 | rt2x00dev->hw->extra_tx_headroom += RT2X00_ALIGN_SIZE; | ||
690 | 700 | ||
691 | /* | 701 | /* |
692 | * Register HW. | 702 | * Register HW. |
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c index 239afc7a9c0..9915a09141e 100644 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c | |||
@@ -104,7 +104,7 @@ void rt2x00queue_map_txskb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb) | |||
104 | * is also mapped to the DMA so it can be used for transfering | 104 | * is also mapped to the DMA so it can be used for transfering |
105 | * additional descriptor information to the hardware. | 105 | * additional descriptor information to the hardware. |
106 | */ | 106 | */ |
107 | skb_push(skb, rt2x00dev->hw->extra_tx_headroom); | 107 | skb_push(skb, rt2x00dev->ops->extra_tx_headroom); |
108 | 108 | ||
109 | skbdesc->skb_dma = | 109 | skbdesc->skb_dma = |
110 | dma_map_single(rt2x00dev->dev, skb->data, skb->len, DMA_TO_DEVICE); | 110 | dma_map_single(rt2x00dev->dev, skb->data, skb->len, DMA_TO_DEVICE); |
@@ -112,7 +112,7 @@ void rt2x00queue_map_txskb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb) | |||
112 | /* | 112 | /* |
113 | * Restore data pointer to original location again. | 113 | * Restore data pointer to original location again. |
114 | */ | 114 | */ |
115 | skb_pull(skb, rt2x00dev->hw->extra_tx_headroom); | 115 | skb_pull(skb, rt2x00dev->ops->extra_tx_headroom); |
116 | 116 | ||
117 | skbdesc->flags |= SKBDESC_DMA_MAPPED_TX; | 117 | skbdesc->flags |= SKBDESC_DMA_MAPPED_TX; |
118 | } | 118 | } |
@@ -134,7 +134,7 @@ void rt2x00queue_unmap_skb(struct rt2x00_dev *rt2x00dev, struct sk_buff *skb) | |||
134 | * by the driver, but it was actually mapped to DMA. | 134 | * by the driver, but it was actually mapped to DMA. |
135 | */ | 135 | */ |
136 | dma_unmap_single(rt2x00dev->dev, skbdesc->skb_dma, | 136 | dma_unmap_single(rt2x00dev->dev, skbdesc->skb_dma, |
137 | skb->len + rt2x00dev->hw->extra_tx_headroom, | 137 | skb->len + rt2x00dev->ops->extra_tx_headroom, |
138 | DMA_TO_DEVICE); | 138 | DMA_TO_DEVICE); |
139 | skbdesc->flags &= ~SKBDESC_DMA_MAPPED_TX; | 139 | skbdesc->flags &= ~SKBDESC_DMA_MAPPED_TX; |
140 | } | 140 | } |
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index 687e17dc2e9..0ca589306d7 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c | |||
@@ -2539,6 +2539,11 @@ static int rt61pci_probe_hw_mode(struct rt2x00_dev *rt2x00dev) | |||
2539 | unsigned int i; | 2539 | unsigned int i; |
2540 | 2540 | ||
2541 | /* | 2541 | /* |
2542 | * Disable powersaving as default. | ||
2543 | */ | ||
2544 | rt2x00dev->hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; | ||
2545 | |||
2546 | /* | ||
2542 | * Initialize all hw fields. | 2547 | * Initialize all hw fields. |
2543 | */ | 2548 | */ |
2544 | rt2x00dev->hw->flags = | 2549 | rt2x00dev->hw->flags = |
diff --git a/drivers/net/wireless/rtl818x/rtl8180_dev.c b/drivers/net/wireless/rtl818x/rtl8180_dev.c index a1a3dd15c66..8a40a143998 100644 --- a/drivers/net/wireless/rtl818x/rtl8180_dev.c +++ b/drivers/net/wireless/rtl818x/rtl8180_dev.c | |||
@@ -132,7 +132,6 @@ static void rtl8180_handle_rx(struct ieee80211_hw *dev) | |||
132 | 132 | ||
133 | rx_status.antenna = (flags2 >> 15) & 1; | 133 | rx_status.antenna = (flags2 >> 15) & 1; |
134 | /* TODO: improve signal/rssi reporting */ | 134 | /* TODO: improve signal/rssi reporting */ |
135 | rx_status.qual = flags2 & 0xFF; | ||
136 | rx_status.signal = (flags2 >> 8) & 0x7F; | 135 | rx_status.signal = (flags2 >> 8) & 0x7F; |
137 | /* XXX: is this correct? */ | 136 | /* XXX: is this correct? */ |
138 | rx_status.rate_idx = (flags >> 20) & 0xF; | 137 | rx_status.rate_idx = (flags >> 20) & 0xF; |
diff --git a/drivers/net/wireless/wl12xx/wl1251_boot.c b/drivers/net/wireless/wl12xx/wl1251_boot.c index 2e733e7bdfd..28a80867408 100644 --- a/drivers/net/wireless/wl12xx/wl1251_boot.c +++ b/drivers/net/wireless/wl12xx/wl1251_boot.c | |||
@@ -256,7 +256,7 @@ int wl1251_boot_run_firmware(struct wl1251 *wl) | |||
256 | } | 256 | } |
257 | } | 257 | } |
258 | 258 | ||
259 | if (loop >= INIT_LOOP) { | 259 | if (loop > INIT_LOOP) { |
260 | wl1251_error("timeout waiting for the hardware to " | 260 | wl1251_error("timeout waiting for the hardware to " |
261 | "complete initialization"); | 261 | "complete initialization"); |
262 | return -EIO; | 262 | return -EIO; |
diff --git a/drivers/net/wireless/wl12xx/wl1271_cmd.c b/drivers/net/wireless/wl12xx/wl1271_cmd.c index 886a9bc39cc..c3385b3d246 100644 --- a/drivers/net/wireless/wl12xx/wl1271_cmd.c +++ b/drivers/net/wireless/wl12xx/wl1271_cmd.c | |||
@@ -777,7 +777,7 @@ out: | |||
777 | return ret; | 777 | return ret; |
778 | } | 778 | } |
779 | 779 | ||
780 | static int wl1271_build_basic_rates(char *rates, u8 band) | 780 | static int wl1271_build_basic_rates(u8 *rates, u8 band) |
781 | { | 781 | { |
782 | u8 index = 0; | 782 | u8 index = 0; |
783 | 783 | ||
@@ -804,7 +804,7 @@ static int wl1271_build_basic_rates(char *rates, u8 band) | |||
804 | return index; | 804 | return index; |
805 | } | 805 | } |
806 | 806 | ||
807 | static int wl1271_build_extended_rates(char *rates, u8 band) | 807 | static int wl1271_build_extended_rates(u8 *rates, u8 band) |
808 | { | 808 | { |
809 | u8 index = 0; | 809 | u8 index = 0; |
810 | 810 | ||
diff --git a/drivers/net/wireless/zd1211rw/zd_chip.c b/drivers/net/wireless/zd1211rw/zd_chip.c index dfa1b9bc22c..7ca95c414fa 100644 --- a/drivers/net/wireless/zd1211rw/zd_chip.c +++ b/drivers/net/wireless/zd1211rw/zd_chip.c | |||
@@ -1325,151 +1325,11 @@ int zd_chip_set_basic_rates(struct zd_chip *chip, u16 cr_rates) | |||
1325 | return r; | 1325 | return r; |
1326 | } | 1326 | } |
1327 | 1327 | ||
1328 | static int ofdm_qual_db(u8 status_quality, u8 zd_rate, unsigned int size) | ||
1329 | { | ||
1330 | static const u16 constants[] = { | ||
1331 | 715, 655, 585, 540, 470, 410, 360, 315, | ||
1332 | 270, 235, 205, 175, 150, 125, 105, 85, | ||
1333 | 65, 50, 40, 25, 15 | ||
1334 | }; | ||
1335 | |||
1336 | int i; | ||
1337 | u32 x; | ||
1338 | |||
1339 | /* It seems that their quality parameter is somehow per signal | ||
1340 | * and is now transferred per bit. | ||
1341 | */ | ||
1342 | switch (zd_rate) { | ||
1343 | case ZD_OFDM_RATE_6M: | ||
1344 | case ZD_OFDM_RATE_12M: | ||
1345 | case ZD_OFDM_RATE_24M: | ||
1346 | size *= 2; | ||
1347 | break; | ||
1348 | case ZD_OFDM_RATE_9M: | ||
1349 | case ZD_OFDM_RATE_18M: | ||
1350 | case ZD_OFDM_RATE_36M: | ||
1351 | case ZD_OFDM_RATE_54M: | ||
1352 | size *= 4; | ||
1353 | size /= 3; | ||
1354 | break; | ||
1355 | case ZD_OFDM_RATE_48M: | ||
1356 | size *= 3; | ||
1357 | size /= 2; | ||
1358 | break; | ||
1359 | default: | ||
1360 | return -EINVAL; | ||
1361 | } | ||
1362 | |||
1363 | x = (10000 * status_quality)/size; | ||
1364 | for (i = 0; i < ARRAY_SIZE(constants); i++) { | ||
1365 | if (x > constants[i]) | ||
1366 | break; | ||
1367 | } | ||
1368 | |||
1369 | switch (zd_rate) { | ||
1370 | case ZD_OFDM_RATE_6M: | ||
1371 | case ZD_OFDM_RATE_9M: | ||
1372 | i += 3; | ||
1373 | break; | ||
1374 | case ZD_OFDM_RATE_12M: | ||
1375 | case ZD_OFDM_RATE_18M: | ||
1376 | i += 5; | ||
1377 | break; | ||
1378 | case ZD_OFDM_RATE_24M: | ||
1379 | case ZD_OFDM_RATE_36M: | ||
1380 | i += 9; | ||
1381 | break; | ||
1382 | case ZD_OFDM_RATE_48M: | ||
1383 | case ZD_OFDM_RATE_54M: | ||
1384 | i += 15; | ||
1385 | break; | ||
1386 | default: | ||
1387 | return -EINVAL; | ||
1388 | } | ||
1389 | |||
1390 | return i; | ||
1391 | } | ||
1392 | |||
1393 | static int ofdm_qual_percent(u8 status_quality, u8 zd_rate, unsigned int size) | ||
1394 | { | ||
1395 | int r; | ||
1396 | |||
1397 | r = ofdm_qual_db(status_quality, zd_rate, size); | ||
1398 | ZD_ASSERT(r >= 0); | ||
1399 | if (r < 0) | ||
1400 | r = 0; | ||
1401 | |||
1402 | r = (r * 100)/29; | ||
1403 | return r <= 100 ? r : 100; | ||
1404 | } | ||
1405 | |||
1406 | static unsigned int log10times100(unsigned int x) | ||
1407 | { | ||
1408 | static const u8 log10[] = { | ||
1409 | 0, | ||
1410 | 0, 30, 47, 60, 69, 77, 84, 90, 95, 100, | ||
1411 | 104, 107, 111, 114, 117, 120, 123, 125, 127, 130, | ||
1412 | 132, 134, 136, 138, 139, 141, 143, 144, 146, 147, | ||
1413 | 149, 150, 151, 153, 154, 155, 156, 157, 159, 160, | ||
1414 | 161, 162, 163, 164, 165, 166, 167, 168, 169, 169, | ||
1415 | 170, 171, 172, 173, 174, 174, 175, 176, 177, 177, | ||
1416 | 178, 179, 179, 180, 181, 181, 182, 183, 183, 184, | ||
1417 | 185, 185, 186, 186, 187, 188, 188, 189, 189, 190, | ||
1418 | 190, 191, 191, 192, 192, 193, 193, 194, 194, 195, | ||
1419 | 195, 196, 196, 197, 197, 198, 198, 199, 199, 200, | ||
1420 | 200, 200, 201, 201, 202, 202, 202, 203, 203, 204, | ||
1421 | 204, 204, 205, 205, 206, 206, 206, 207, 207, 207, | ||
1422 | 208, 208, 208, 209, 209, 210, 210, 210, 211, 211, | ||
1423 | 211, 212, 212, 212, 213, 213, 213, 213, 214, 214, | ||
1424 | 214, 215, 215, 215, 216, 216, 216, 217, 217, 217, | ||
1425 | 217, 218, 218, 218, 219, 219, 219, 219, 220, 220, | ||
1426 | 220, 220, 221, 221, 221, 222, 222, 222, 222, 223, | ||
1427 | 223, 223, 223, 224, 224, 224, 224, | ||
1428 | }; | ||
1429 | |||
1430 | return x < ARRAY_SIZE(log10) ? log10[x] : 225; | ||
1431 | } | ||
1432 | |||
1433 | enum { | ||
1434 | MAX_CCK_EVM_DB = 45, | ||
1435 | }; | ||
1436 | |||
1437 | static int cck_evm_db(u8 status_quality) | ||
1438 | { | ||
1439 | return (20 * log10times100(status_quality)) / 100; | ||
1440 | } | ||
1441 | |||
1442 | static int cck_snr_db(u8 status_quality) | ||
1443 | { | ||
1444 | int r = MAX_CCK_EVM_DB - cck_evm_db(status_quality); | ||
1445 | ZD_ASSERT(r >= 0); | ||
1446 | return r; | ||
1447 | } | ||
1448 | |||
1449 | static int cck_qual_percent(u8 status_quality) | ||
1450 | { | ||
1451 | int r; | ||
1452 | |||
1453 | r = cck_snr_db(status_quality); | ||
1454 | r = (100*r)/17; | ||
1455 | return r <= 100 ? r : 100; | ||
1456 | } | ||
1457 | |||
1458 | static inline u8 zd_rate_from_ofdm_plcp_header(const void *rx_frame) | 1328 | static inline u8 zd_rate_from_ofdm_plcp_header(const void *rx_frame) |
1459 | { | 1329 | { |
1460 | return ZD_OFDM | zd_ofdm_plcp_header_rate(rx_frame); | 1330 | return ZD_OFDM | zd_ofdm_plcp_header_rate(rx_frame); |
1461 | } | 1331 | } |
1462 | 1332 | ||
1463 | u8 zd_rx_qual_percent(const void *rx_frame, unsigned int size, | ||
1464 | const struct rx_status *status) | ||
1465 | { | ||
1466 | return (status->frame_status&ZD_RX_OFDM) ? | ||
1467 | ofdm_qual_percent(status->signal_quality_ofdm, | ||
1468 | zd_rate_from_ofdm_plcp_header(rx_frame), | ||
1469 | size) : | ||
1470 | cck_qual_percent(status->signal_quality_cck); | ||
1471 | } | ||
1472 | |||
1473 | /** | 1333 | /** |
1474 | * zd_rx_rate - report zd-rate | 1334 | * zd_rx_rate - report zd-rate |
1475 | * @rx_frame - received frame | 1335 | * @rx_frame - received frame |
diff --git a/drivers/net/wireless/zd1211rw/zd_chip.h b/drivers/net/wireless/zd1211rw/zd_chip.h index 9fd8f3508d6..f8bbf7d302a 100644 --- a/drivers/net/wireless/zd1211rw/zd_chip.h +++ b/drivers/net/wireless/zd1211rw/zd_chip.h | |||
@@ -929,9 +929,6 @@ static inline int zd_get_beacon_interval(struct zd_chip *chip, u32 *interval) | |||
929 | 929 | ||
930 | struct rx_status; | 930 | struct rx_status; |
931 | 931 | ||
932 | u8 zd_rx_qual_percent(const void *rx_frame, unsigned int size, | ||
933 | const struct rx_status *status); | ||
934 | |||
935 | u8 zd_rx_rate(const void *rx_frame, const struct rx_status *status); | 932 | u8 zd_rx_rate(const void *rx_frame, const struct rx_status *status); |
936 | 933 | ||
937 | struct zd_mc_hash { | 934 | struct zd_mc_hash { |
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c index cf51e8f8174..f14deb0c851 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/zd1211rw/zd_mac.c | |||
@@ -828,9 +828,6 @@ int zd_mac_rx(struct ieee80211_hw *hw, const u8 *buffer, unsigned int length) | |||
828 | stats.freq = zd_channels[_zd_chip_get_channel(&mac->chip) - 1].center_freq; | 828 | stats.freq = zd_channels[_zd_chip_get_channel(&mac->chip) - 1].center_freq; |
829 | stats.band = IEEE80211_BAND_2GHZ; | 829 | stats.band = IEEE80211_BAND_2GHZ; |
830 | stats.signal = status->signal_strength; | 830 | stats.signal = status->signal_strength; |
831 | stats.qual = zd_rx_qual_percent(buffer, | ||
832 | length - sizeof(struct rx_status), | ||
833 | status); | ||
834 | 831 | ||
835 | rate = zd_rx_rate(buffer, status); | 832 | rate = zd_rx_rate(buffer, status); |
836 | 833 | ||
@@ -990,12 +987,13 @@ static void zd_op_configure_filter(struct ieee80211_hw *hw, | |||
990 | changed_flags &= SUPPORTED_FIF_FLAGS; | 987 | changed_flags &= SUPPORTED_FIF_FLAGS; |
991 | *new_flags &= SUPPORTED_FIF_FLAGS; | 988 | *new_flags &= SUPPORTED_FIF_FLAGS; |
992 | 989 | ||
993 | /* changed_flags is always populated but this driver | 990 | /* |
994 | * doesn't support all FIF flags so its possible we don't | 991 | * If multicast parameter (as returned by zd_op_prepare_multicast) |
995 | * need to do anything */ | 992 | * has changed, no bit in changed_flags is set. To handle this |
996 | if (!changed_flags) | 993 | * situation, we do not return if changed_flags is 0. If we do so, |
997 | return; | 994 | * we will have some issue with IPv6 which uses multicast for link |
998 | 995 | * layer address resolution. | |
996 | */ | ||
999 | if (*new_flags & (FIF_PROMISC_IN_BSS | FIF_ALLMULTI)) | 997 | if (*new_flags & (FIF_PROMISC_IN_BSS | FIF_ALLMULTI)) |
1000 | zd_mc_add_all(&hash); | 998 | zd_mc_add_all(&hash); |
1001 | 999 | ||
diff --git a/drivers/pci/hotplug/shpchp.h b/drivers/pci/hotplug/shpchp.h index bd588eb8e92..8e210cd76e5 100644 --- a/drivers/pci/hotplug/shpchp.h +++ b/drivers/pci/hotplug/shpchp.h | |||
@@ -121,7 +121,7 @@ struct controller { | |||
121 | #define PCI_DEVICE_ID_AMD_GOLAM_7450 0x7450 | 121 | #define PCI_DEVICE_ID_AMD_GOLAM_7450 0x7450 |
122 | #define PCI_DEVICE_ID_AMD_POGO_7458 0x7458 | 122 | #define PCI_DEVICE_ID_AMD_POGO_7458 0x7458 |
123 | 123 | ||
124 | /* AMD PCIX bridge registers */ | 124 | /* AMD PCI-X bridge registers */ |
125 | #define PCIX_MEM_BASE_LIMIT_OFFSET 0x1C | 125 | #define PCIX_MEM_BASE_LIMIT_OFFSET 0x1C |
126 | #define PCIX_MISCII_OFFSET 0x48 | 126 | #define PCIX_MISCII_OFFSET 0x48 |
127 | #define PCIX_MISC_BRIDGE_ERRORS_OFFSET 0x80 | 127 | #define PCIX_MISC_BRIDGE_ERRORS_OFFSET 0x80 |
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c index e56f9bed6f2..417312528dd 100644 --- a/drivers/pci/intel-iommu.c +++ b/drivers/pci/intel-iommu.c | |||
@@ -305,7 +305,7 @@ struct device_domain_info { | |||
305 | int segment; /* PCI domain */ | 305 | int segment; /* PCI domain */ |
306 | u8 bus; /* PCI bus number */ | 306 | u8 bus; /* PCI bus number */ |
307 | u8 devfn; /* PCI devfn number */ | 307 | u8 devfn; /* PCI devfn number */ |
308 | struct pci_dev *dev; /* it's NULL for PCIE-to-PCI bridge */ | 308 | struct pci_dev *dev; /* it's NULL for PCIe-to-PCI bridge */ |
309 | struct intel_iommu *iommu; /* IOMMU used by this device */ | 309 | struct intel_iommu *iommu; /* IOMMU used by this device */ |
310 | struct dmar_domain *domain; /* pointer to domain */ | 310 | struct dmar_domain *domain; /* pointer to domain */ |
311 | }; | 311 | }; |
@@ -1604,7 +1604,7 @@ domain_context_mapping(struct dmar_domain *domain, struct pci_dev *pdev, | |||
1604 | return ret; | 1604 | return ret; |
1605 | parent = parent->bus->self; | 1605 | parent = parent->bus->self; |
1606 | } | 1606 | } |
1607 | if (pci_is_pcie(tmp)) /* this is a PCIE-to-PCI bridge */ | 1607 | if (pci_is_pcie(tmp)) /* this is a PCIe-to-PCI bridge */ |
1608 | return domain_context_mapping_one(domain, | 1608 | return domain_context_mapping_one(domain, |
1609 | pci_domain_nr(tmp->subordinate), | 1609 | pci_domain_nr(tmp->subordinate), |
1610 | tmp->subordinate->number, 0, | 1610 | tmp->subordinate->number, 0, |
@@ -3325,7 +3325,7 @@ static void iommu_detach_dependent_devices(struct intel_iommu *iommu, | |||
3325 | parent->devfn); | 3325 | parent->devfn); |
3326 | parent = parent->bus->self; | 3326 | parent = parent->bus->self; |
3327 | } | 3327 | } |
3328 | if (pci_is_pcie(tmp)) /* this is a PCIE-to-PCI bridge */ | 3328 | if (pci_is_pcie(tmp)) /* this is a PCIe-to-PCI bridge */ |
3329 | iommu_detach_dev(iommu, | 3329 | iommu_detach_dev(iommu, |
3330 | tmp->subordinate->number, 0); | 3330 | tmp->subordinate->number, 0); |
3331 | else /* this is a legacy PCI bridge */ | 3331 | else /* this is a legacy PCI bridge */ |
diff --git a/drivers/pci/intr_remapping.c b/drivers/pci/intr_remapping.c index 8b65a489581..95b849130ad 100644 --- a/drivers/pci/intr_remapping.c +++ b/drivers/pci/intr_remapping.c | |||
@@ -528,7 +528,7 @@ int set_msi_sid(struct irte *irte, struct pci_dev *dev) | |||
528 | 528 | ||
529 | bridge = pci_find_upstream_pcie_bridge(dev); | 529 | bridge = pci_find_upstream_pcie_bridge(dev); |
530 | if (bridge) { | 530 | if (bridge) { |
531 | if (pci_is_pcie(bridge))/* this is a PCIE-to-PCI/PCIX bridge */ | 531 | if (pci_is_pcie(bridge))/* this is a PCIe-to-PCI/PCIX bridge */ |
532 | set_irte_sid(irte, SVT_VERIFY_BUS, SQ_ALL_16, | 532 | set_irte_sid(irte, SVT_VERIFY_BUS, SQ_ALL_16, |
533 | (bridge->bus->number << 8) | dev->bus->number); | 533 | (bridge->bus->number << 8) | dev->bus->number); |
534 | else /* this is a legacy PCI bridge */ | 534 | else /* this is a legacy PCI bridge */ |
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c index cc617ddd33d..7e2829538a4 100644 --- a/drivers/pci/pci-acpi.c +++ b/drivers/pci/pci-acpi.c | |||
@@ -112,11 +112,7 @@ static bool acpi_pci_can_wakeup(struct pci_dev *dev) | |||
112 | static void acpi_pci_propagate_wakeup_enable(struct pci_bus *bus, bool enable) | 112 | static void acpi_pci_propagate_wakeup_enable(struct pci_bus *bus, bool enable) |
113 | { | 113 | { |
114 | while (bus->parent) { | 114 | while (bus->parent) { |
115 | struct pci_dev *bridge = bus->self; | 115 | if (!acpi_pm_device_sleep_wake(&bus->self->dev, enable)) |
116 | int ret; | ||
117 | |||
118 | ret = acpi_pm_device_sleep_wake(&bridge->dev, enable); | ||
119 | if (!ret || pci_is_pcie(bridge)) | ||
120 | return; | 116 | return; |
121 | bus = bus->parent; | 117 | bus = bus->parent; |
122 | } | 118 | } |
@@ -131,9 +127,7 @@ static int acpi_pci_sleep_wake(struct pci_dev *dev, bool enable) | |||
131 | if (acpi_pci_can_wakeup(dev)) | 127 | if (acpi_pci_can_wakeup(dev)) |
132 | return acpi_pm_device_sleep_wake(&dev->dev, enable); | 128 | return acpi_pm_device_sleep_wake(&dev->dev, enable); |
133 | 129 | ||
134 | if (!pci_is_pcie(dev)) | 130 | acpi_pci_propagate_wakeup_enable(dev->bus, enable); |
135 | acpi_pci_propagate_wakeup_enable(dev->bus, enable); | ||
136 | |||
137 | return 0; | 131 | return 0; |
138 | } | 132 | } |
139 | 133 | ||
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index c5df94e8667..807224ec835 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c | |||
@@ -75,7 +75,8 @@ static ssize_t local_cpus_show(struct device *dev, | |||
75 | int len; | 75 | int len; |
76 | 76 | ||
77 | #ifdef CONFIG_NUMA | 77 | #ifdef CONFIG_NUMA |
78 | mask = cpumask_of_node(dev_to_node(dev)); | 78 | mask = (dev_to_node(dev) == -1) ? cpu_online_mask : |
79 | cpumask_of_node(dev_to_node(dev)); | ||
79 | #else | 80 | #else |
80 | mask = cpumask_of_pcibus(to_pci_dev(dev)->bus); | 81 | mask = cpumask_of_pcibus(to_pci_dev(dev)->bus); |
81 | #endif | 82 | #endif |
@@ -93,7 +94,8 @@ static ssize_t local_cpulist_show(struct device *dev, | |||
93 | int len; | 94 | int len; |
94 | 95 | ||
95 | #ifdef CONFIG_NUMA | 96 | #ifdef CONFIG_NUMA |
96 | mask = cpumask_of_node(dev_to_node(dev)); | 97 | mask = (dev_to_node(dev) == -1) ? cpu_online_mask : |
98 | cpumask_of_node(dev_to_node(dev)); | ||
97 | #else | 99 | #else |
98 | mask = cpumask_of_pcibus(to_pci_dev(dev)->bus); | 100 | mask = cpumask_of_pcibus(to_pci_dev(dev)->bus); |
99 | #endif | 101 | #endif |
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 0bc27e05901..315fea47e78 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c | |||
@@ -29,7 +29,17 @@ const char *pci_power_names[] = { | |||
29 | }; | 29 | }; |
30 | EXPORT_SYMBOL_GPL(pci_power_names); | 30 | EXPORT_SYMBOL_GPL(pci_power_names); |
31 | 31 | ||
32 | unsigned int pci_pm_d3_delay = PCI_PM_D3_WAIT; | 32 | unsigned int pci_pm_d3_delay; |
33 | |||
34 | static void pci_dev_d3_sleep(struct pci_dev *dev) | ||
35 | { | ||
36 | unsigned int delay = dev->d3_delay; | ||
37 | |||
38 | if (delay < pci_pm_d3_delay) | ||
39 | delay = pci_pm_d3_delay; | ||
40 | |||
41 | msleep(delay); | ||
42 | } | ||
33 | 43 | ||
34 | #ifdef CONFIG_PCI_DOMAINS | 44 | #ifdef CONFIG_PCI_DOMAINS |
35 | int pci_domains_supported = 1; | 45 | int pci_domains_supported = 1; |
@@ -522,7 +532,7 @@ static int pci_raw_set_power_state(struct pci_dev *dev, pci_power_t state) | |||
522 | /* Mandatory power management transition delays */ | 532 | /* Mandatory power management transition delays */ |
523 | /* see PCI PM 1.1 5.6.1 table 18 */ | 533 | /* see PCI PM 1.1 5.6.1 table 18 */ |
524 | if (state == PCI_D3hot || dev->current_state == PCI_D3hot) | 534 | if (state == PCI_D3hot || dev->current_state == PCI_D3hot) |
525 | msleep(pci_pm_d3_delay); | 535 | pci_dev_d3_sleep(dev); |
526 | else if (state == PCI_D2 || dev->current_state == PCI_D2) | 536 | else if (state == PCI_D2 || dev->current_state == PCI_D2) |
527 | udelay(PCI_PM_D2_DELAY); | 537 | udelay(PCI_PM_D2_DELAY); |
528 | 538 | ||
@@ -1153,11 +1163,11 @@ pci_disable_device(struct pci_dev *dev) | |||
1153 | 1163 | ||
1154 | /** | 1164 | /** |
1155 | * pcibios_set_pcie_reset_state - set reset state for device dev | 1165 | * pcibios_set_pcie_reset_state - set reset state for device dev |
1156 | * @dev: the PCI-E device reset | 1166 | * @dev: the PCIe device reset |
1157 | * @state: Reset state to enter into | 1167 | * @state: Reset state to enter into |
1158 | * | 1168 | * |
1159 | * | 1169 | * |
1160 | * Sets the PCI-E reset state for the device. This is the default | 1170 | * Sets the PCIe reset state for the device. This is the default |
1161 | * implementation. Architecture implementations can override this. | 1171 | * implementation. Architecture implementations can override this. |
1162 | */ | 1172 | */ |
1163 | int __attribute__ ((weak)) pcibios_set_pcie_reset_state(struct pci_dev *dev, | 1173 | int __attribute__ ((weak)) pcibios_set_pcie_reset_state(struct pci_dev *dev, |
@@ -1168,7 +1178,7 @@ int __attribute__ ((weak)) pcibios_set_pcie_reset_state(struct pci_dev *dev, | |||
1168 | 1178 | ||
1169 | /** | 1179 | /** |
1170 | * pci_set_pcie_reset_state - set reset state for device dev | 1180 | * pci_set_pcie_reset_state - set reset state for device dev |
1171 | * @dev: the PCI-E device reset | 1181 | * @dev: the PCIe device reset |
1172 | * @state: Reset state to enter into | 1182 | * @state: Reset state to enter into |
1173 | * | 1183 | * |
1174 | * | 1184 | * |
@@ -1409,6 +1419,7 @@ void pci_pm_init(struct pci_dev *dev) | |||
1409 | } | 1419 | } |
1410 | 1420 | ||
1411 | dev->pm_cap = pm; | 1421 | dev->pm_cap = pm; |
1422 | dev->d3_delay = PCI_PM_D3_WAIT; | ||
1412 | 1423 | ||
1413 | dev->d1_support = false; | 1424 | dev->d1_support = false; |
1414 | dev->d2_support = false; | 1425 | dev->d2_support = false; |
@@ -2247,12 +2258,12 @@ static int pci_pm_reset(struct pci_dev *dev, int probe) | |||
2247 | csr &= ~PCI_PM_CTRL_STATE_MASK; | 2258 | csr &= ~PCI_PM_CTRL_STATE_MASK; |
2248 | csr |= PCI_D3hot; | 2259 | csr |= PCI_D3hot; |
2249 | pci_write_config_word(dev, dev->pm_cap + PCI_PM_CTRL, csr); | 2260 | pci_write_config_word(dev, dev->pm_cap + PCI_PM_CTRL, csr); |
2250 | msleep(pci_pm_d3_delay); | 2261 | pci_dev_d3_sleep(dev); |
2251 | 2262 | ||
2252 | csr &= ~PCI_PM_CTRL_STATE_MASK; | 2263 | csr &= ~PCI_PM_CTRL_STATE_MASK; |
2253 | csr |= PCI_D0; | 2264 | csr |= PCI_D0; |
2254 | pci_write_config_word(dev, dev->pm_cap + PCI_PM_CTRL, csr); | 2265 | pci_write_config_word(dev, dev->pm_cap + PCI_PM_CTRL, csr); |
2255 | msleep(pci_pm_d3_delay); | 2266 | pci_dev_d3_sleep(dev); |
2256 | 2267 | ||
2257 | return 0; | 2268 | return 0; |
2258 | } | 2269 | } |
@@ -2296,6 +2307,10 @@ static int pci_dev_reset(struct pci_dev *dev, int probe) | |||
2296 | down(&dev->dev.sem); | 2307 | down(&dev->dev.sem); |
2297 | } | 2308 | } |
2298 | 2309 | ||
2310 | rc = pci_dev_specific_reset(dev, probe); | ||
2311 | if (rc != -ENOTTY) | ||
2312 | goto done; | ||
2313 | |||
2299 | rc = pcie_flr(dev, probe); | 2314 | rc = pcie_flr(dev, probe); |
2300 | if (rc != -ENOTTY) | 2315 | if (rc != -ENOTTY) |
2301 | goto done; | 2316 | goto done; |
@@ -2779,6 +2794,11 @@ int __attribute__ ((weak)) pci_ext_cfg_avail(struct pci_dev *dev) | |||
2779 | return 1; | 2794 | return 1; |
2780 | } | 2795 | } |
2781 | 2796 | ||
2797 | void __weak pci_fixup_cardbus(struct pci_bus *bus) | ||
2798 | { | ||
2799 | } | ||
2800 | EXPORT_SYMBOL(pci_fixup_cardbus); | ||
2801 | |||
2782 | static int __init pci_setup(char *str) | 2802 | static int __init pci_setup(char *str) |
2783 | { | 2803 | { |
2784 | while (str) { | 2804 | while (str) { |
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 33ed8e0aba1..fbd0e3adbca 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h | |||
@@ -313,4 +313,12 @@ static inline int pci_resource_alignment(struct pci_dev *dev, | |||
313 | 313 | ||
314 | extern void pci_enable_acs(struct pci_dev *dev); | 314 | extern void pci_enable_acs(struct pci_dev *dev); |
315 | 315 | ||
316 | struct pci_dev_reset_methods { | ||
317 | u16 vendor; | ||
318 | u16 device; | ||
319 | int (*reset)(struct pci_dev *dev, int probe); | ||
320 | }; | ||
321 | |||
322 | extern int pci_dev_specific_reset(struct pci_dev *dev, int probe); | ||
323 | |||
316 | #endif /* DRIVERS_PCI_H */ | 324 | #endif /* DRIVERS_PCI_H */ |
diff --git a/drivers/pci/pcie/aer/Kconfig.debug b/drivers/pci/pcie/aer/Kconfig.debug index b8c925c1f6a..9142949734f 100644 --- a/drivers/pci/pcie/aer/Kconfig.debug +++ b/drivers/pci/pcie/aer/Kconfig.debug | |||
@@ -3,14 +3,14 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | config PCIEAER_INJECT | 5 | config PCIEAER_INJECT |
6 | tristate "PCIE AER error injector support" | 6 | tristate "PCIe AER error injector support" |
7 | depends on PCIEAER | 7 | depends on PCIEAER |
8 | default n | 8 | default n |
9 | help | 9 | help |
10 | This enables PCI Express Root Port Advanced Error Reporting | 10 | This enables PCI Express Root Port Advanced Error Reporting |
11 | (AER) software error injector. | 11 | (AER) software error injector. |
12 | 12 | ||
13 | Debuging PCIE AER code is quite difficult because it is hard | 13 | Debugging PCIe AER code is quite difficult because it is hard |
14 | to trigger various real hardware errors. Software based | 14 | to trigger various real hardware errors. Software based |
15 | error injection can fake almost all kinds of errors with the | 15 | error injection can fake almost all kinds of errors with the |
16 | help of a user space helper tool aer-inject, which can be | 16 | help of a user space helper tool aer-inject, which can be |
diff --git a/drivers/pci/pcie/aer/aer_inject.c b/drivers/pci/pcie/aer/aer_inject.c index 7fcd5331b14..8c30a9544d6 100644 --- a/drivers/pci/pcie/aer/aer_inject.c +++ b/drivers/pci/pcie/aer/aer_inject.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * PCIE AER software error injection support. | 2 | * PCIe AER software error injection support. |
3 | * | 3 | * |
4 | * Debuging PCIE AER code is quite difficult because it is hard to | 4 | * Debuging PCIe AER code is quite difficult because it is hard to |
5 | * trigger various real hardware errors. Software based error | 5 | * trigger various real hardware errors. Software based error |
6 | * injection can fake almost all kinds of errors with the help of a | 6 | * injection can fake almost all kinds of errors with the help of a |
7 | * user space helper tool aer-inject, which can be gotten from: | 7 | * user space helper tool aer-inject, which can be gotten from: |
@@ -321,7 +321,7 @@ static int aer_inject(struct aer_error_inj *einj) | |||
321 | unsigned long flags; | 321 | unsigned long flags; |
322 | unsigned int devfn = PCI_DEVFN(einj->dev, einj->fn); | 322 | unsigned int devfn = PCI_DEVFN(einj->dev, einj->fn); |
323 | int pos_cap_err, rp_pos_cap_err; | 323 | int pos_cap_err, rp_pos_cap_err; |
324 | u32 sever; | 324 | u32 sever, mask; |
325 | int ret = 0; | 325 | int ret = 0; |
326 | 326 | ||
327 | dev = pci_get_domain_bus_and_slot((int)einj->domain, einj->bus, devfn); | 327 | dev = pci_get_domain_bus_and_slot((int)einj->domain, einj->bus, devfn); |
@@ -374,6 +374,24 @@ static int aer_inject(struct aer_error_inj *einj) | |||
374 | err->header_log2 = einj->header_log2; | 374 | err->header_log2 = einj->header_log2; |
375 | err->header_log3 = einj->header_log3; | 375 | err->header_log3 = einj->header_log3; |
376 | 376 | ||
377 | pci_read_config_dword(dev, pos_cap_err + PCI_ERR_COR_MASK, &mask); | ||
378 | if (einj->cor_status && !(einj->cor_status & ~mask)) { | ||
379 | ret = -EINVAL; | ||
380 | printk(KERN_WARNING "The correctable error(s) is masked " | ||
381 | "by device\n"); | ||
382 | spin_unlock_irqrestore(&inject_lock, flags); | ||
383 | goto out_put; | ||
384 | } | ||
385 | |||
386 | pci_read_config_dword(dev, pos_cap_err + PCI_ERR_UNCOR_MASK, &mask); | ||
387 | if (einj->uncor_status && !(einj->uncor_status & ~mask)) { | ||
388 | ret = -EINVAL; | ||
389 | printk(KERN_WARNING "The uncorrectable error(s) is masked " | ||
390 | "by device\n"); | ||
391 | spin_unlock_irqrestore(&inject_lock, flags); | ||
392 | goto out_put; | ||
393 | } | ||
394 | |||
377 | rperr = __find_aer_error_by_dev(rpdev); | 395 | rperr = __find_aer_error_by_dev(rpdev); |
378 | if (!rperr) { | 396 | if (!rperr) { |
379 | rperr = rperr_alloc; | 397 | rperr = rperr_alloc; |
@@ -413,8 +431,14 @@ static int aer_inject(struct aer_error_inj *einj) | |||
413 | if (ret) | 431 | if (ret) |
414 | goto out_put; | 432 | goto out_put; |
415 | 433 | ||
416 | if (find_aer_device(rpdev, &edev)) | 434 | if (find_aer_device(rpdev, &edev)) { |
435 | if (!get_service_data(edev)) { | ||
436 | printk(KERN_WARNING "AER service is not initialized\n"); | ||
437 | ret = -EINVAL; | ||
438 | goto out_put; | ||
439 | } | ||
417 | aer_irq(-1, edev); | 440 | aer_irq(-1, edev); |
441 | } | ||
418 | else | 442 | else |
419 | ret = -EINVAL; | 443 | ret = -EINVAL; |
420 | out_put: | 444 | out_put: |
@@ -484,5 +508,5 @@ static void __exit aer_inject_exit(void) | |||
484 | module_init(aer_inject_init); | 508 | module_init(aer_inject_init); |
485 | module_exit(aer_inject_exit); | 509 | module_exit(aer_inject_exit); |
486 | 510 | ||
487 | MODULE_DESCRIPTION("PCIE AER software error injector"); | 511 | MODULE_DESCRIPTION("PCIe AER software error injector"); |
488 | MODULE_LICENSE("GPL"); | 512 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/pci/pcie/aer/aerdrv.c b/drivers/pci/pcie/aer/aerdrv.c index 97a345927b5..21f215f4daa 100644 --- a/drivers/pci/pcie/aer/aerdrv.c +++ b/drivers/pci/pcie/aer/aerdrv.c | |||
@@ -155,7 +155,7 @@ static struct aer_rpc *aer_alloc_rpc(struct pcie_device *dev) | |||
155 | mutex_init(&rpc->rpc_mutex); | 155 | mutex_init(&rpc->rpc_mutex); |
156 | init_waitqueue_head(&rpc->wait_release); | 156 | init_waitqueue_head(&rpc->wait_release); |
157 | 157 | ||
158 | /* Use PCIE bus function to store rpc into PCIE device */ | 158 | /* Use PCIe bus function to store rpc into PCIe device */ |
159 | set_service_data(dev, rpc); | 159 | set_service_data(dev, rpc); |
160 | 160 | ||
161 | return rpc; | 161 | return rpc; |
diff --git a/drivers/pci/pcie/aer/aerdrv_acpi.c b/drivers/pci/pcie/aer/aerdrv_acpi.c index 8edb2f300e8..04814087658 100644 --- a/drivers/pci/pcie/aer/aerdrv_acpi.c +++ b/drivers/pci/pcie/aer/aerdrv_acpi.c | |||
@@ -24,7 +24,7 @@ | |||
24 | * | 24 | * |
25 | * @return: Zero on success. Nonzero otherwise. | 25 | * @return: Zero on success. Nonzero otherwise. |
26 | * | 26 | * |
27 | * Invoked when PCIE bus loads AER service driver. To avoid conflict with | 27 | * Invoked when PCIe bus loads AER service driver. To avoid conflict with |
28 | * BIOS AER support requires BIOS to yield AER control to OS native driver. | 28 | * BIOS AER support requires BIOS to yield AER control to OS native driver. |
29 | **/ | 29 | **/ |
30 | int aer_osc_setup(struct pcie_device *pciedev) | 30 | int aer_osc_setup(struct pcie_device *pciedev) |
diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c index ae672ca8033..c843a799814 100644 --- a/drivers/pci/pcie/aer/aerdrv_core.c +++ b/drivers/pci/pcie/aer/aerdrv_core.c | |||
@@ -587,7 +587,7 @@ static void handle_error_source(struct pcie_device *aerdev, | |||
587 | * aer_enable_rootport - enable Root Port's interrupts when receiving messages | 587 | * aer_enable_rootport - enable Root Port's interrupts when receiving messages |
588 | * @rpc: pointer to a Root Port data structure | 588 | * @rpc: pointer to a Root Port data structure |
589 | * | 589 | * |
590 | * Invoked when PCIE bus loads AER service driver. | 590 | * Invoked when PCIe bus loads AER service driver. |
591 | */ | 591 | */ |
592 | void aer_enable_rootport(struct aer_rpc *rpc) | 592 | void aer_enable_rootport(struct aer_rpc *rpc) |
593 | { | 593 | { |
@@ -597,7 +597,7 @@ void aer_enable_rootport(struct aer_rpc *rpc) | |||
597 | u32 reg32; | 597 | u32 reg32; |
598 | 598 | ||
599 | pos = pci_pcie_cap(pdev); | 599 | pos = pci_pcie_cap(pdev); |
600 | /* Clear PCIE Capability's Device Status */ | 600 | /* Clear PCIe Capability's Device Status */ |
601 | pci_read_config_word(pdev, pos+PCI_EXP_DEVSTA, ®16); | 601 | pci_read_config_word(pdev, pos+PCI_EXP_DEVSTA, ®16); |
602 | pci_write_config_word(pdev, pos+PCI_EXP_DEVSTA, reg16); | 602 | pci_write_config_word(pdev, pos+PCI_EXP_DEVSTA, reg16); |
603 | 603 | ||
@@ -631,7 +631,7 @@ void aer_enable_rootport(struct aer_rpc *rpc) | |||
631 | * disable_root_aer - disable Root Port's interrupts when receiving messages | 631 | * disable_root_aer - disable Root Port's interrupts when receiving messages |
632 | * @rpc: pointer to a Root Port data structure | 632 | * @rpc: pointer to a Root Port data structure |
633 | * | 633 | * |
634 | * Invoked when PCIE bus unloads AER service driver. | 634 | * Invoked when PCIe bus unloads AER service driver. |
635 | */ | 635 | */ |
636 | static void disable_root_aer(struct aer_rpc *rpc) | 636 | static void disable_root_aer(struct aer_rpc *rpc) |
637 | { | 637 | { |
diff --git a/drivers/pci/pcie/aer/aerdrv_errprint.c b/drivers/pci/pcie/aer/aerdrv_errprint.c index 44acde72294..9d3e4c8d018 100644 --- a/drivers/pci/pcie/aer/aerdrv_errprint.c +++ b/drivers/pci/pcie/aer/aerdrv_errprint.c | |||
@@ -184,7 +184,7 @@ void aer_print_error(struct pci_dev *dev, struct aer_err_info *info) | |||
184 | 184 | ||
185 | if (info->status == 0) { | 185 | if (info->status == 0) { |
186 | AER_PR(info, dev, | 186 | AER_PR(info, dev, |
187 | "PCIE Bus Error: severity=%s, type=Unaccessible, " | 187 | "PCIe Bus Error: severity=%s, type=Unaccessible, " |
188 | "id=%04x(Unregistered Agent ID)\n", | 188 | "id=%04x(Unregistered Agent ID)\n", |
189 | aer_error_severity_string[info->severity], id); | 189 | aer_error_severity_string[info->severity], id); |
190 | } else { | 190 | } else { |
@@ -194,7 +194,7 @@ void aer_print_error(struct pci_dev *dev, struct aer_err_info *info) | |||
194 | agent = AER_GET_AGENT(info->severity, info->status); | 194 | agent = AER_GET_AGENT(info->severity, info->status); |
195 | 195 | ||
196 | AER_PR(info, dev, | 196 | AER_PR(info, dev, |
197 | "PCIE Bus Error: severity=%s, type=%s, id=%04x(%s)\n", | 197 | "PCIe Bus Error: severity=%s, type=%s, id=%04x(%s)\n", |
198 | aer_error_severity_string[info->severity], | 198 | aer_error_severity_string[info->severity], |
199 | aer_error_layer[layer], id, aer_agent_string[agent]); | 199 | aer_error_layer[layer], id, aer_agent_string[agent]); |
200 | 200 | ||
diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c index 5a01fc7fbf0..be53d98fa38 100644 --- a/drivers/pci/pcie/aspm.c +++ b/drivers/pci/pcie/aspm.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * File: drivers/pci/pcie/aspm.c | 2 | * File: drivers/pci/pcie/aspm.c |
3 | * Enabling PCIE link L0s/L1 state and Clock Power Management | 3 | * Enabling PCIe link L0s/L1 state and Clock Power Management |
4 | * | 4 | * |
5 | * Copyright (C) 2007 Intel | 5 | * Copyright (C) 2007 Intel |
6 | * Copyright (C) Zhang Yanmin (yanmin.zhang@intel.com) | 6 | * Copyright (C) Zhang Yanmin (yanmin.zhang@intel.com) |
@@ -499,7 +499,7 @@ static int pcie_aspm_sanity_check(struct pci_dev *pdev) | |||
499 | int pos; | 499 | int pos; |
500 | u32 reg32; | 500 | u32 reg32; |
501 | /* | 501 | /* |
502 | * Some functions in a slot might not all be PCIE functions, | 502 | * Some functions in a slot might not all be PCIe functions, |
503 | * very strange. Disable ASPM for the whole slot | 503 | * very strange. Disable ASPM for the whole slot |
504 | */ | 504 | */ |
505 | list_for_each_entry(child, &pdev->subordinate->devices, bus_list) { | 505 | list_for_each_entry(child, &pdev->subordinate->devices, bus_list) { |
diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c index 413262eb95b..b174188ac12 100644 --- a/drivers/pci/pcie/portdrv_core.c +++ b/drivers/pci/pcie/portdrv_core.c | |||
@@ -27,7 +27,7 @@ | |||
27 | */ | 27 | */ |
28 | static void release_pcie_device(struct device *dev) | 28 | static void release_pcie_device(struct device *dev) |
29 | { | 29 | { |
30 | kfree(to_pcie_device(dev)); | 30 | kfree(to_pcie_device(dev)); |
31 | } | 31 | } |
32 | 32 | ||
33 | /** | 33 | /** |
@@ -346,12 +346,11 @@ static int suspend_iter(struct device *dev, void *data) | |||
346 | { | 346 | { |
347 | struct pcie_port_service_driver *service_driver; | 347 | struct pcie_port_service_driver *service_driver; |
348 | 348 | ||
349 | if ((dev->bus == &pcie_port_bus_type) && | 349 | if ((dev->bus == &pcie_port_bus_type) && dev->driver) { |
350 | (dev->driver)) { | 350 | service_driver = to_service_driver(dev->driver); |
351 | service_driver = to_service_driver(dev->driver); | 351 | if (service_driver->suspend) |
352 | if (service_driver->suspend) | 352 | service_driver->suspend(to_pcie_device(dev)); |
353 | service_driver->suspend(to_pcie_device(dev)); | 353 | } |
354 | } | ||
355 | return 0; | 354 | return 0; |
356 | } | 355 | } |
357 | 356 | ||
@@ -494,6 +493,7 @@ int pcie_port_service_register(struct pcie_port_service_driver *new) | |||
494 | 493 | ||
495 | return driver_register(&new->driver); | 494 | return driver_register(&new->driver); |
496 | } | 495 | } |
496 | EXPORT_SYMBOL(pcie_port_service_register); | ||
497 | 497 | ||
498 | /** | 498 | /** |
499 | * pcie_port_service_unregister - unregister PCI Express port service driver | 499 | * pcie_port_service_unregister - unregister PCI Express port service driver |
@@ -503,6 +503,4 @@ void pcie_port_service_unregister(struct pcie_port_service_driver *drv) | |||
503 | { | 503 | { |
504 | driver_unregister(&drv->driver); | 504 | driver_unregister(&drv->driver); |
505 | } | 505 | } |
506 | |||
507 | EXPORT_SYMBOL(pcie_port_service_register); | ||
508 | EXPORT_SYMBOL(pcie_port_service_unregister); | 506 | EXPORT_SYMBOL(pcie_port_service_unregister); |
diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c index a49452e2aed..13c8972886e 100644 --- a/drivers/pci/pcie/portdrv_pci.c +++ b/drivers/pci/pcie/portdrv_pci.c | |||
@@ -24,7 +24,7 @@ | |||
24 | */ | 24 | */ |
25 | #define DRIVER_VERSION "v1.0" | 25 | #define DRIVER_VERSION "v1.0" |
26 | #define DRIVER_AUTHOR "tom.l.nguyen@intel.com" | 26 | #define DRIVER_AUTHOR "tom.l.nguyen@intel.com" |
27 | #define DRIVER_DESC "PCIE Port Bus Driver" | 27 | #define DRIVER_DESC "PCIe Port Bus Driver" |
28 | MODULE_AUTHOR(DRIVER_AUTHOR); | 28 | MODULE_AUTHOR(DRIVER_AUTHOR); |
29 | MODULE_DESCRIPTION(DRIVER_DESC); | 29 | MODULE_DESCRIPTION(DRIVER_DESC); |
30 | MODULE_LICENSE("GPL"); | 30 | MODULE_LICENSE("GPL"); |
@@ -63,7 +63,7 @@ static const struct dev_pm_ops pcie_portdrv_pm_ops = { | |||
63 | * pcie_portdrv_probe - Probe PCI-Express port devices | 63 | * pcie_portdrv_probe - Probe PCI-Express port devices |
64 | * @dev: PCI-Express port device being probed | 64 | * @dev: PCI-Express port device being probed |
65 | * | 65 | * |
66 | * If detected invokes the pcie_port_device_register() method for | 66 | * If detected invokes the pcie_port_device_register() method for |
67 | * this port device. | 67 | * this port device. |
68 | * | 68 | * |
69 | */ | 69 | */ |
@@ -78,7 +78,7 @@ static int __devinit pcie_portdrv_probe(struct pci_dev *dev, | |||
78 | (dev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM))) | 78 | (dev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM))) |
79 | return -ENODEV; | 79 | return -ENODEV; |
80 | 80 | ||
81 | if (!dev->irq && dev->pin) { | 81 | if (!dev->irq && dev->pin) { |
82 | dev_warn(&dev->dev, "device [%04x:%04x] has invalid IRQ; " | 82 | dev_warn(&dev->dev, "device [%04x:%04x] has invalid IRQ; " |
83 | "check vendor BIOS\n", dev->vendor, dev->device); | 83 | "check vendor BIOS\n", dev->vendor, dev->device); |
84 | } | 84 | } |
@@ -91,7 +91,7 @@ static int __devinit pcie_portdrv_probe(struct pci_dev *dev, | |||
91 | return 0; | 91 | return 0; |
92 | } | 92 | } |
93 | 93 | ||
94 | static void pcie_portdrv_remove (struct pci_dev *dev) | 94 | static void pcie_portdrv_remove(struct pci_dev *dev) |
95 | { | 95 | { |
96 | pcie_port_device_remove(dev); | 96 | pcie_port_device_remove(dev); |
97 | pci_disable_device(dev); | 97 | pci_disable_device(dev); |
@@ -129,14 +129,13 @@ static int error_detected_iter(struct device *device, void *data) | |||
129 | static pci_ers_result_t pcie_portdrv_error_detected(struct pci_dev *dev, | 129 | static pci_ers_result_t pcie_portdrv_error_detected(struct pci_dev *dev, |
130 | enum pci_channel_state error) | 130 | enum pci_channel_state error) |
131 | { | 131 | { |
132 | struct aer_broadcast_data result_data = | 132 | struct aer_broadcast_data data = {error, PCI_ERS_RESULT_CAN_RECOVER}; |
133 | {error, PCI_ERS_RESULT_CAN_RECOVER}; | 133 | int ret; |
134 | int retval; | ||
135 | 134 | ||
136 | /* can not fail */ | 135 | /* can not fail */ |
137 | retval = device_for_each_child(&dev->dev, &result_data, error_detected_iter); | 136 | ret = device_for_each_child(&dev->dev, &data, error_detected_iter); |
138 | 137 | ||
139 | return result_data.result; | 138 | return data.result; |
140 | } | 139 | } |
141 | 140 | ||
142 | static int mmio_enabled_iter(struct device *device, void *data) | 141 | static int mmio_enabled_iter(struct device *device, void *data) |
@@ -290,7 +289,7 @@ static int __init pcie_portdrv_init(void) | |||
290 | return retval; | 289 | return retval; |
291 | } | 290 | } |
292 | 291 | ||
293 | static void __exit pcie_portdrv_exit(void) | 292 | static void __exit pcie_portdrv_exit(void) |
294 | { | 293 | { |
295 | pci_unregister_driver(&pcie_portdriver); | 294 | pci_unregister_driver(&pcie_portdriver); |
296 | pcie_port_bus_unregister(); | 295 | pcie_port_bus_unregister(); |
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 7cfa7c38d31..c74694345b6 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -2629,14 +2629,86 @@ static int __init pci_apply_final_quirks(void) | |||
2629 | if (!pci_cache_line_size) { | 2629 | if (!pci_cache_line_size) { |
2630 | printk(KERN_DEBUG "PCI: CLS %u bytes, default %u\n", | 2630 | printk(KERN_DEBUG "PCI: CLS %u bytes, default %u\n", |
2631 | cls << 2, pci_dfl_cache_line_size << 2); | 2631 | cls << 2, pci_dfl_cache_line_size << 2); |
2632 | pci_cache_line_size = cls; | 2632 | pci_cache_line_size = cls ? cls : pci_dfl_cache_line_size; |
2633 | } | 2633 | } |
2634 | 2634 | ||
2635 | return 0; | 2635 | return 0; |
2636 | } | 2636 | } |
2637 | 2637 | ||
2638 | fs_initcall_sync(pci_apply_final_quirks); | 2638 | fs_initcall_sync(pci_apply_final_quirks); |
2639 | |||
2640 | /* | ||
2641 | * Followings are device-specific reset methods which can be used to | ||
2642 | * reset a single function if other methods (e.g. FLR, PM D0->D3) are | ||
2643 | * not available. | ||
2644 | */ | ||
2645 | static int reset_intel_generic_dev(struct pci_dev *dev, int probe) | ||
2646 | { | ||
2647 | int pos; | ||
2648 | |||
2649 | /* only implement PCI_CLASS_SERIAL_USB at present */ | ||
2650 | if (dev->class == PCI_CLASS_SERIAL_USB) { | ||
2651 | pos = pci_find_capability(dev, PCI_CAP_ID_VNDR); | ||
2652 | if (!pos) | ||
2653 | return -ENOTTY; | ||
2654 | |||
2655 | if (probe) | ||
2656 | return 0; | ||
2657 | |||
2658 | pci_write_config_byte(dev, pos + 0x4, 1); | ||
2659 | msleep(100); | ||
2660 | |||
2661 | return 0; | ||
2662 | } else { | ||
2663 | return -ENOTTY; | ||
2664 | } | ||
2665 | } | ||
2666 | |||
2667 | static int reset_intel_82599_sfp_virtfn(struct pci_dev *dev, int probe) | ||
2668 | { | ||
2669 | int pos; | ||
2670 | |||
2671 | pos = pci_find_capability(dev, PCI_CAP_ID_EXP); | ||
2672 | if (!pos) | ||
2673 | return -ENOTTY; | ||
2674 | |||
2675 | if (probe) | ||
2676 | return 0; | ||
2677 | |||
2678 | pci_write_config_word(dev, pos + PCI_EXP_DEVCTL, | ||
2679 | PCI_EXP_DEVCTL_BCR_FLR); | ||
2680 | msleep(100); | ||
2681 | |||
2682 | return 0; | ||
2683 | } | ||
2684 | |||
2685 | #define PCI_DEVICE_ID_INTEL_82599_SFP_VF 0x10ed | ||
2686 | |||
2687 | static const struct pci_dev_reset_methods pci_dev_reset_methods[] = { | ||
2688 | { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82599_SFP_VF, | ||
2689 | reset_intel_82599_sfp_virtfn }, | ||
2690 | { PCI_VENDOR_ID_INTEL, PCI_ANY_ID, | ||
2691 | reset_intel_generic_dev }, | ||
2692 | { 0 } | ||
2693 | }; | ||
2694 | |||
2695 | int pci_dev_specific_reset(struct pci_dev *dev, int probe) | ||
2696 | { | ||
2697 | const struct pci_dev_reset_methods *i; | ||
2698 | |||
2699 | for (i = pci_dev_reset_methods; i->reset; i++) { | ||
2700 | if ((i->vendor == dev->vendor || | ||
2701 | i->vendor == (u16)PCI_ANY_ID) && | ||
2702 | (i->device == dev->device || | ||
2703 | i->device == (u16)PCI_ANY_ID)) | ||
2704 | return i->reset(dev, probe); | ||
2705 | } | ||
2706 | |||
2707 | return -ENOTTY; | ||
2708 | } | ||
2709 | |||
2639 | #else | 2710 | #else |
2640 | void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev) {} | 2711 | void pci_fixup_device(enum pci_fixup_pass pass, struct pci_dev *dev) {} |
2712 | int pci_dev_specific_reset(struct pci_dev *dev, int probe) { return -ENOTTY; } | ||
2641 | #endif | 2713 | #endif |
2642 | EXPORT_SYMBOL(pci_fixup_device); | 2714 | EXPORT_SYMBOL(pci_fixup_device); |
diff --git a/drivers/pci/search.c b/drivers/pci/search.c index 6dae8714325..4a471dc4f4b 100644 --- a/drivers/pci/search.c +++ b/drivers/pci/search.c | |||
@@ -15,9 +15,9 @@ | |||
15 | 15 | ||
16 | DECLARE_RWSEM(pci_bus_sem); | 16 | DECLARE_RWSEM(pci_bus_sem); |
17 | /* | 17 | /* |
18 | * find the upstream PCIE-to-PCI bridge of a PCI device | 18 | * find the upstream PCIe-to-PCI bridge of a PCI device |
19 | * if the device is PCIE, return NULL | 19 | * if the device is PCIE, return NULL |
20 | * if the device isn't connected to a PCIE bridge (that is its parent is a | 20 | * if the device isn't connected to a PCIe bridge (that is its parent is a |
21 | * legacy PCI bridge and the bridge is directly connected to bus 0), return its | 21 | * legacy PCI bridge and the bridge is directly connected to bus 0), return its |
22 | * parent | 22 | * parent |
23 | */ | 23 | */ |
@@ -37,7 +37,7 @@ pci_find_upstream_pcie_bridge(struct pci_dev *pdev) | |||
37 | tmp = pdev; | 37 | tmp = pdev; |
38 | continue; | 38 | continue; |
39 | } | 39 | } |
40 | /* PCI device should connect to a PCIE bridge */ | 40 | /* PCI device should connect to a PCIe bridge */ |
41 | if (pdev->pcie_type != PCI_EXP_TYPE_PCI_BRIDGE) { | 41 | if (pdev->pcie_type != PCI_EXP_TYPE_PCI_BRIDGE) { |
42 | /* Busted hardware? */ | 42 | /* Busted hardware? */ |
43 | WARN_ON_ONCE(1); | 43 | WARN_ON_ONCE(1); |
diff --git a/drivers/pcmcia/cardbus.c b/drivers/pcmcia/cardbus.c index cdf50f3bc2d..d99f846451a 100644 --- a/drivers/pcmcia/cardbus.c +++ b/drivers/pcmcia/cardbus.c | |||
@@ -222,7 +222,7 @@ int __ref cb_alloc(struct pcmcia_socket *s) | |||
222 | unsigned int max, pass; | 222 | unsigned int max, pass; |
223 | 223 | ||
224 | s->functions = pci_scan_slot(bus, PCI_DEVFN(0, 0)); | 224 | s->functions = pci_scan_slot(bus, PCI_DEVFN(0, 0)); |
225 | /* pcibios_fixup_bus(bus); */ | 225 | pci_fixup_cardbus(bus); |
226 | 226 | ||
227 | max = bus->secondary; | 227 | max = bus->secondary; |
228 | for (pass = 0; pass < 2; pass++) | 228 | for (pass = 0; pass < 2; pass++) |
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig index ec4faffe6b0..f526e735c5a 100644 --- a/drivers/platform/x86/Kconfig +++ b/drivers/platform/x86/Kconfig | |||
@@ -231,8 +231,36 @@ config THINKPAD_ACPI | |||
231 | 231 | ||
232 | This driver was formerly known as ibm-acpi. | 232 | This driver was formerly known as ibm-acpi. |
233 | 233 | ||
234 | Extra functionality will be available if the rfkill (CONFIG_RFKILL) | ||
235 | and/or ALSA (CONFIG_SND) subsystems are available in the kernel. | ||
236 | Note that if you want ThinkPad-ACPI to be built-in instead of | ||
237 | modular, ALSA and rfkill will also have to be built-in. | ||
238 | |||
234 | If you have an IBM or Lenovo ThinkPad laptop, say Y or M here. | 239 | If you have an IBM or Lenovo ThinkPad laptop, say Y or M here. |
235 | 240 | ||
241 | config THINKPAD_ACPI_ALSA_SUPPORT | ||
242 | bool "Console audio control ALSA interface" | ||
243 | depends on THINKPAD_ACPI | ||
244 | depends on SND | ||
245 | depends on SND = y || THINKPAD_ACPI = SND | ||
246 | default y | ||
247 | ---help--- | ||
248 | Enables monitoring of the built-in console audio output control | ||
249 | (headphone and speakers), which is operated by the mute and (in | ||
250 | some ThinkPad models) volume hotkeys. | ||
251 | |||
252 | If this option is enabled, ThinkPad-ACPI will export an ALSA card | ||
253 | with a single read-only mixer control, which should be used for | ||
254 | on-screen-display feedback purposes by the Desktop Environment. | ||
255 | |||
256 | Optionally, the driver will also allow software control (the | ||
257 | ALSA mixer will be made read-write). Please refer to the driver | ||
258 | documentation for details. | ||
259 | |||
260 | All IBM models have both volume and mute control. Newer Lenovo | ||
261 | models only have mute control (the volume hotkeys are just normal | ||
262 | keys and volume control is done through the main HDA mixer). | ||
263 | |||
236 | config THINKPAD_ACPI_DEBUGFACILITIES | 264 | config THINKPAD_ACPI_DEBUGFACILITIES |
237 | bool "Maintainer debug facilities" | 265 | bool "Maintainer debug facilities" |
238 | depends on THINKPAD_ACPI | 266 | depends on THINKPAD_ACPI |
@@ -336,6 +364,7 @@ config EEEPC_LAPTOP | |||
336 | select HWMON | 364 | select HWMON |
337 | select LEDS_CLASS | 365 | select LEDS_CLASS |
338 | select NEW_LEDS | 366 | select NEW_LEDS |
367 | select INPUT_SPARSEKMAP | ||
339 | ---help--- | 368 | ---help--- |
340 | This driver supports the Fn-Fx keys on Eee PC laptops. | 369 | This driver supports the Fn-Fx keys on Eee PC laptops. |
341 | 370 | ||
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c index 916ccb2b316..1b1dddbd574 100644 --- a/drivers/platform/x86/dell-wmi.c +++ b/drivers/platform/x86/dell-wmi.c | |||
@@ -202,8 +202,13 @@ static void dell_wmi_notify(u32 value, void *context) | |||
202 | struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL }; | 202 | struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL }; |
203 | static struct key_entry *key; | 203 | static struct key_entry *key; |
204 | union acpi_object *obj; | 204 | union acpi_object *obj; |
205 | acpi_status status; | ||
205 | 206 | ||
206 | wmi_get_event_data(value, &response); | 207 | status = wmi_get_event_data(value, &response); |
208 | if (status != AE_OK) { | ||
209 | printk(KERN_INFO "dell-wmi: bad event status 0x%x\n", status); | ||
210 | return; | ||
211 | } | ||
207 | 212 | ||
208 | obj = (union acpi_object *)response.pointer; | 213 | obj = (union acpi_object *)response.pointer; |
209 | 214 | ||
@@ -323,8 +328,9 @@ static int __init dell_wmi_input_setup(void) | |||
323 | static int __init dell_wmi_init(void) | 328 | static int __init dell_wmi_init(void) |
324 | { | 329 | { |
325 | int err; | 330 | int err; |
331 | acpi_status status; | ||
326 | 332 | ||
327 | if (wmi_has_guid(DELL_EVENT_GUID)) { | 333 | if (!wmi_has_guid(DELL_EVENT_GUID)) { |
328 | printk(KERN_WARNING "dell-wmi: No known WMI GUID found\n"); | 334 | printk(KERN_WARNING "dell-wmi: No known WMI GUID found\n"); |
329 | return -ENODEV; | 335 | return -ENODEV; |
330 | } | 336 | } |
@@ -336,14 +342,14 @@ static int __init dell_wmi_init(void) | |||
336 | if (err) | 342 | if (err) |
337 | return err; | 343 | return err; |
338 | 344 | ||
339 | err = wmi_install_notify_handler(DELL_EVENT_GUID, | 345 | status = wmi_install_notify_handler(DELL_EVENT_GUID, |
340 | dell_wmi_notify, NULL); | 346 | dell_wmi_notify, NULL); |
341 | if (err) { | 347 | if (ACPI_FAILURE(status)) { |
342 | input_unregister_device(dell_wmi_input_dev); | 348 | input_unregister_device(dell_wmi_input_dev); |
343 | printk(KERN_ERR | 349 | printk(KERN_ERR |
344 | "dell-wmi: Unable to register notify handler - %d\n", | 350 | "dell-wmi: Unable to register notify handler - %d\n", |
345 | err); | 351 | status); |
346 | return err; | 352 | return -ENODEV; |
347 | } | 353 | } |
348 | 354 | ||
349 | return 0; | 355 | return 0; |
diff --git a/drivers/platform/x86/eeepc-laptop.c b/drivers/platform/x86/eeepc-laptop.c index 5838c69b2fb..e2be6bb33d9 100644 --- a/drivers/platform/x86/eeepc-laptop.c +++ b/drivers/platform/x86/eeepc-laptop.c | |||
@@ -31,10 +31,12 @@ | |||
31 | #include <acpi/acpi_bus.h> | 31 | #include <acpi/acpi_bus.h> |
32 | #include <linux/uaccess.h> | 32 | #include <linux/uaccess.h> |
33 | #include <linux/input.h> | 33 | #include <linux/input.h> |
34 | #include <linux/input/sparse-keymap.h> | ||
34 | #include <linux/rfkill.h> | 35 | #include <linux/rfkill.h> |
35 | #include <linux/pci.h> | 36 | #include <linux/pci.h> |
36 | #include <linux/pci_hotplug.h> | 37 | #include <linux/pci_hotplug.h> |
37 | #include <linux/leds.h> | 38 | #include <linux/leds.h> |
39 | #include <linux/dmi.h> | ||
38 | 40 | ||
39 | #define EEEPC_LAPTOP_VERSION "0.1" | 41 | #define EEEPC_LAPTOP_VERSION "0.1" |
40 | #define EEEPC_LAPTOP_NAME "Eee PC Hotkey Driver" | 42 | #define EEEPC_LAPTOP_NAME "Eee PC Hotkey Driver" |
@@ -48,6 +50,14 @@ MODULE_AUTHOR("Corentin Chary, Eric Cooper"); | |||
48 | MODULE_DESCRIPTION(EEEPC_LAPTOP_NAME); | 50 | MODULE_DESCRIPTION(EEEPC_LAPTOP_NAME); |
49 | MODULE_LICENSE("GPL"); | 51 | MODULE_LICENSE("GPL"); |
50 | 52 | ||
53 | static bool hotplug_disabled; | ||
54 | |||
55 | module_param(hotplug_disabled, bool, 0644); | ||
56 | MODULE_PARM_DESC(hotplug_disabled, | ||
57 | "Disable hotplug for wireless device. " | ||
58 | "If your laptop need that, please report to " | ||
59 | "acpi4asus-user@lists.sourceforge.net."); | ||
60 | |||
51 | /* | 61 | /* |
52 | * Definitions for Asus EeePC | 62 | * Definitions for Asus EeePC |
53 | */ | 63 | */ |
@@ -120,38 +130,28 @@ static const char *cm_setv[] = { | |||
120 | NULL, NULL, "PBPS", "TPDS" | 130 | NULL, NULL, "PBPS", "TPDS" |
121 | }; | 131 | }; |
122 | 132 | ||
123 | struct key_entry { | ||
124 | char type; | ||
125 | u8 code; | ||
126 | u16 keycode; | ||
127 | }; | ||
128 | |||
129 | enum { KE_KEY, KE_END }; | ||
130 | |||
131 | static const struct key_entry eeepc_keymap[] = { | 133 | static const struct key_entry eeepc_keymap[] = { |
132 | /* Sleep already handled via generic ACPI code */ | 134 | { KE_KEY, 0x10, { KEY_WLAN } }, |
133 | {KE_KEY, 0x10, KEY_WLAN }, | 135 | { KE_KEY, 0x11, { KEY_WLAN } }, |
134 | {KE_KEY, 0x11, KEY_WLAN }, | 136 | { KE_KEY, 0x12, { KEY_PROG1 } }, |
135 | {KE_KEY, 0x12, KEY_PROG1 }, | 137 | { KE_KEY, 0x13, { KEY_MUTE } }, |
136 | {KE_KEY, 0x13, KEY_MUTE }, | 138 | { KE_KEY, 0x14, { KEY_VOLUMEDOWN } }, |
137 | {KE_KEY, 0x14, KEY_VOLUMEDOWN }, | 139 | { KE_KEY, 0x15, { KEY_VOLUMEUP } }, |
138 | {KE_KEY, 0x15, KEY_VOLUMEUP }, | 140 | { KE_KEY, 0x16, { KEY_DISPLAY_OFF } }, |
139 | {KE_KEY, 0x16, KEY_DISPLAY_OFF }, | 141 | { KE_KEY, 0x1a, { KEY_COFFEE } }, |
140 | {KE_KEY, 0x1a, KEY_COFFEE }, | 142 | { KE_KEY, 0x1b, { KEY_ZOOM } }, |
141 | {KE_KEY, 0x1b, KEY_ZOOM }, | 143 | { KE_KEY, 0x1c, { KEY_PROG2 } }, |
142 | {KE_KEY, 0x1c, KEY_PROG2 }, | 144 | { KE_KEY, 0x1d, { KEY_PROG3 } }, |
143 | {KE_KEY, 0x1d, KEY_PROG3 }, | 145 | { KE_KEY, NOTIFY_BRN_MIN, { KEY_BRIGHTNESSDOWN } }, |
144 | {KE_KEY, NOTIFY_BRN_MIN, KEY_BRIGHTNESSDOWN }, | 146 | { KE_KEY, NOTIFY_BRN_MAX, { KEY_BRIGHTNESSUP } }, |
145 | {KE_KEY, NOTIFY_BRN_MAX, KEY_BRIGHTNESSUP }, | 147 | { KE_KEY, 0x30, { KEY_SWITCHVIDEOMODE } }, |
146 | {KE_KEY, 0x30, KEY_SWITCHVIDEOMODE }, | 148 | { KE_KEY, 0x31, { KEY_SWITCHVIDEOMODE } }, |
147 | {KE_KEY, 0x31, KEY_SWITCHVIDEOMODE }, | 149 | { KE_KEY, 0x32, { KEY_SWITCHVIDEOMODE } }, |
148 | {KE_KEY, 0x32, KEY_SWITCHVIDEOMODE }, | 150 | { KE_KEY, 0x37, { KEY_F13 } }, /* Disable Touchpad */ |
149 | {KE_KEY, 0x37, KEY_F13 }, /* Disable Touchpad */ | 151 | { KE_KEY, 0x38, { KEY_F14 } }, |
150 | {KE_KEY, 0x38, KEY_F14 }, | 152 | { KE_END, 0 }, |
151 | {KE_END, 0}, | ||
152 | }; | 153 | }; |
153 | 154 | ||
154 | |||
155 | /* | 155 | /* |
156 | * This is the main structure, we can use it to store useful information | 156 | * This is the main structure, we can use it to store useful information |
157 | */ | 157 | */ |
@@ -159,6 +159,8 @@ struct eeepc_laptop { | |||
159 | acpi_handle handle; /* the handle of the acpi device */ | 159 | acpi_handle handle; /* the handle of the acpi device */ |
160 | u32 cm_supported; /* the control methods supported | 160 | u32 cm_supported; /* the control methods supported |
161 | by this BIOS */ | 161 | by this BIOS */ |
162 | bool cpufv_disabled; | ||
163 | bool hotplug_disabled; | ||
162 | u16 event_count[128]; /* count for each event */ | 164 | u16 event_count[128]; /* count for each event */ |
163 | 165 | ||
164 | struct platform_device *platform_device; | 166 | struct platform_device *platform_device; |
@@ -378,6 +380,8 @@ static ssize_t store_cpufv(struct device *dev, | |||
378 | struct eeepc_cpufv c; | 380 | struct eeepc_cpufv c; |
379 | int rv, value; | 381 | int rv, value; |
380 | 382 | ||
383 | if (eeepc->cpufv_disabled) | ||
384 | return -EPERM; | ||
381 | if (get_cpufv(eeepc, &c)) | 385 | if (get_cpufv(eeepc, &c)) |
382 | return -ENODEV; | 386 | return -ENODEV; |
383 | rv = parse_arg(buf, count, &value); | 387 | rv = parse_arg(buf, count, &value); |
@@ -389,6 +393,41 @@ static ssize_t store_cpufv(struct device *dev, | |||
389 | return rv; | 393 | return rv; |
390 | } | 394 | } |
391 | 395 | ||
396 | static ssize_t show_cpufv_disabled(struct device *dev, | ||
397 | struct device_attribute *attr, | ||
398 | char *buf) | ||
399 | { | ||
400 | struct eeepc_laptop *eeepc = dev_get_drvdata(dev); | ||
401 | |||
402 | return sprintf(buf, "%d\n", eeepc->cpufv_disabled); | ||
403 | } | ||
404 | |||
405 | static ssize_t store_cpufv_disabled(struct device *dev, | ||
406 | struct device_attribute *attr, | ||
407 | const char *buf, size_t count) | ||
408 | { | ||
409 | struct eeepc_laptop *eeepc = dev_get_drvdata(dev); | ||
410 | int rv, value; | ||
411 | |||
412 | rv = parse_arg(buf, count, &value); | ||
413 | if (rv < 0) | ||
414 | return rv; | ||
415 | |||
416 | switch (value) { | ||
417 | case 0: | ||
418 | if (eeepc->cpufv_disabled) | ||
419 | pr_warning("cpufv enabled (not officially supported " | ||
420 | "on this model)\n"); | ||
421 | eeepc->cpufv_disabled = false; | ||
422 | return rv; | ||
423 | case 1: | ||
424 | return -EPERM; | ||
425 | default: | ||
426 | return -EINVAL; | ||
427 | } | ||
428 | } | ||
429 | |||
430 | |||
392 | static struct device_attribute dev_attr_cpufv = { | 431 | static struct device_attribute dev_attr_cpufv = { |
393 | .attr = { | 432 | .attr = { |
394 | .name = "cpufv", | 433 | .name = "cpufv", |
@@ -404,12 +443,22 @@ static struct device_attribute dev_attr_available_cpufv = { | |||
404 | .show = show_available_cpufv | 443 | .show = show_available_cpufv |
405 | }; | 444 | }; |
406 | 445 | ||
446 | static struct device_attribute dev_attr_cpufv_disabled = { | ||
447 | .attr = { | ||
448 | .name = "cpufv_disabled", | ||
449 | .mode = 0644 }, | ||
450 | .show = show_cpufv_disabled, | ||
451 | .store = store_cpufv_disabled | ||
452 | }; | ||
453 | |||
454 | |||
407 | static struct attribute *platform_attributes[] = { | 455 | static struct attribute *platform_attributes[] = { |
408 | &dev_attr_camera.attr, | 456 | &dev_attr_camera.attr, |
409 | &dev_attr_cardr.attr, | 457 | &dev_attr_cardr.attr, |
410 | &dev_attr_disp.attr, | 458 | &dev_attr_disp.attr, |
411 | &dev_attr_cpufv.attr, | 459 | &dev_attr_cpufv.attr, |
412 | &dev_attr_available_cpufv.attr, | 460 | &dev_attr_available_cpufv.attr, |
461 | &dev_attr_cpufv_disabled.attr, | ||
413 | NULL | 462 | NULL |
414 | }; | 463 | }; |
415 | 464 | ||
@@ -796,6 +845,9 @@ static int eeepc_rfkill_init(struct eeepc_laptop *eeepc) | |||
796 | if (result && result != -ENODEV) | 845 | if (result && result != -ENODEV) |
797 | goto exit; | 846 | goto exit; |
798 | 847 | ||
848 | if (eeepc->hotplug_disabled) | ||
849 | return 0; | ||
850 | |||
799 | result = eeepc_setup_pci_hotplug(eeepc); | 851 | result = eeepc_setup_pci_hotplug(eeepc); |
800 | /* | 852 | /* |
801 | * If we get -EBUSY then something else is handling the PCI hotplug - | 853 | * If we get -EBUSY then something else is handling the PCI hotplug - |
@@ -1090,120 +1142,42 @@ static void eeepc_backlight_exit(struct eeepc_laptop *eeepc) | |||
1090 | /* | 1142 | /* |
1091 | * Input device (i.e. hotkeys) | 1143 | * Input device (i.e. hotkeys) |
1092 | */ | 1144 | */ |
1093 | static struct key_entry *eeepc_get_entry_by_scancode( | 1145 | static int eeepc_input_init(struct eeepc_laptop *eeepc) |
1094 | struct eeepc_laptop *eeepc, | ||
1095 | int code) | ||
1096 | { | 1146 | { |
1097 | struct key_entry *key; | 1147 | struct input_dev *input; |
1148 | int error; | ||
1098 | 1149 | ||
1099 | for (key = eeepc->keymap; key->type != KE_END; key++) | 1150 | input = input_allocate_device(); |
1100 | if (code == key->code) | 1151 | if (!input) { |
1101 | return key; | 1152 | pr_info("Unable to allocate input device\n"); |
1102 | 1153 | return -ENOMEM; | |
1103 | return NULL; | ||
1104 | } | ||
1105 | |||
1106 | static void eeepc_input_notify(struct eeepc_laptop *eeepc, int event) | ||
1107 | { | ||
1108 | static struct key_entry *key; | ||
1109 | |||
1110 | key = eeepc_get_entry_by_scancode(eeepc, event); | ||
1111 | if (key) { | ||
1112 | switch (key->type) { | ||
1113 | case KE_KEY: | ||
1114 | input_report_key(eeepc->inputdev, key->keycode, | ||
1115 | 1); | ||
1116 | input_sync(eeepc->inputdev); | ||
1117 | input_report_key(eeepc->inputdev, key->keycode, | ||
1118 | 0); | ||
1119 | input_sync(eeepc->inputdev); | ||
1120 | break; | ||
1121 | } | ||
1122 | } | 1154 | } |
1123 | } | ||
1124 | |||
1125 | static struct key_entry *eeepc_get_entry_by_keycode( | ||
1126 | struct eeepc_laptop *eeepc, int code) | ||
1127 | { | ||
1128 | struct key_entry *key; | ||
1129 | |||
1130 | for (key = eeepc->keymap; key->type != KE_END; key++) | ||
1131 | if (code == key->keycode && key->type == KE_KEY) | ||
1132 | return key; | ||
1133 | 1155 | ||
1134 | return NULL; | 1156 | input->name = "Asus EeePC extra buttons"; |
1135 | } | 1157 | input->phys = EEEPC_LAPTOP_FILE "/input0"; |
1158 | input->id.bustype = BUS_HOST; | ||
1159 | input->dev.parent = &eeepc->platform_device->dev; | ||
1136 | 1160 | ||
1137 | static int eeepc_getkeycode(struct input_dev *dev, int scancode, int *keycode) | 1161 | error = sparse_keymap_setup(input, eeepc_keymap, NULL); |
1138 | { | 1162 | if (error) { |
1139 | struct eeepc_laptop *eeepc = input_get_drvdata(dev); | 1163 | pr_err("Unable to setup input device keymap\n"); |
1140 | struct key_entry *key = eeepc_get_entry_by_scancode(eeepc, scancode); | 1164 | goto err_free_dev; |
1141 | |||
1142 | if (key && key->type == KE_KEY) { | ||
1143 | *keycode = key->keycode; | ||
1144 | return 0; | ||
1145 | } | 1165 | } |
1146 | 1166 | ||
1147 | return -EINVAL; | 1167 | error = input_register_device(input); |
1148 | } | 1168 | if (error) { |
1149 | 1169 | pr_err("Unable to register input device\n"); | |
1150 | static int eeepc_setkeycode(struct input_dev *dev, int scancode, int keycode) | 1170 | goto err_free_keymap; |
1151 | { | ||
1152 | struct eeepc_laptop *eeepc = input_get_drvdata(dev); | ||
1153 | struct key_entry *key; | ||
1154 | int old_keycode; | ||
1155 | |||
1156 | if (keycode < 0 || keycode > KEY_MAX) | ||
1157 | return -EINVAL; | ||
1158 | |||
1159 | key = eeepc_get_entry_by_scancode(eeepc, scancode); | ||
1160 | if (key && key->type == KE_KEY) { | ||
1161 | old_keycode = key->keycode; | ||
1162 | key->keycode = keycode; | ||
1163 | set_bit(keycode, dev->keybit); | ||
1164 | if (!eeepc_get_entry_by_keycode(eeepc, old_keycode)) | ||
1165 | clear_bit(old_keycode, dev->keybit); | ||
1166 | return 0; | ||
1167 | } | 1171 | } |
1168 | 1172 | ||
1169 | return -EINVAL; | 1173 | eeepc->inputdev = input; |
1170 | } | ||
1171 | |||
1172 | static int eeepc_input_init(struct eeepc_laptop *eeepc) | ||
1173 | { | ||
1174 | const struct key_entry *key; | ||
1175 | int result; | ||
1176 | |||
1177 | eeepc->inputdev = input_allocate_device(); | ||
1178 | if (!eeepc->inputdev) { | ||
1179 | pr_info("Unable to allocate input device\n"); | ||
1180 | return -ENOMEM; | ||
1181 | } | ||
1182 | eeepc->inputdev->name = "Asus EeePC extra buttons"; | ||
1183 | eeepc->inputdev->dev.parent = &eeepc->platform_device->dev; | ||
1184 | eeepc->inputdev->phys = EEEPC_LAPTOP_FILE "/input0"; | ||
1185 | eeepc->inputdev->id.bustype = BUS_HOST; | ||
1186 | eeepc->inputdev->getkeycode = eeepc_getkeycode; | ||
1187 | eeepc->inputdev->setkeycode = eeepc_setkeycode; | ||
1188 | input_set_drvdata(eeepc->inputdev, eeepc); | ||
1189 | |||
1190 | eeepc->keymap = kmemdup(eeepc_keymap, sizeof(eeepc_keymap), | ||
1191 | GFP_KERNEL); | ||
1192 | for (key = eeepc_keymap; key->type != KE_END; key++) { | ||
1193 | switch (key->type) { | ||
1194 | case KE_KEY: | ||
1195 | set_bit(EV_KEY, eeepc->inputdev->evbit); | ||
1196 | set_bit(key->keycode, eeepc->inputdev->keybit); | ||
1197 | break; | ||
1198 | } | ||
1199 | } | ||
1200 | result = input_register_device(eeepc->inputdev); | ||
1201 | if (result) { | ||
1202 | pr_info("Unable to register input device\n"); | ||
1203 | input_free_device(eeepc->inputdev); | ||
1204 | return result; | ||
1205 | } | ||
1206 | return 0; | 1174 | return 0; |
1175 | |||
1176 | err_free_keymap: | ||
1177 | sparse_keymap_free(input); | ||
1178 | err_free_dev: | ||
1179 | input_free_device(input); | ||
1180 | return error; | ||
1207 | } | 1181 | } |
1208 | 1182 | ||
1209 | static void eeepc_input_exit(struct eeepc_laptop *eeepc) | 1183 | static void eeepc_input_exit(struct eeepc_laptop *eeepc) |
@@ -1253,11 +1227,59 @@ static void eeepc_acpi_notify(struct acpi_device *device, u32 event) | |||
1253 | * event will be desired value (or else ignored) | 1227 | * event will be desired value (or else ignored) |
1254 | */ | 1228 | */ |
1255 | } | 1229 | } |
1256 | eeepc_input_notify(eeepc, event); | 1230 | sparse_keymap_report_event(eeepc->inputdev, event, |
1231 | 1, true); | ||
1257 | } | 1232 | } |
1258 | } else { | 1233 | } else { |
1259 | /* Everything else is a bona-fide keypress event */ | 1234 | /* Everything else is a bona-fide keypress event */ |
1260 | eeepc_input_notify(eeepc, event); | 1235 | sparse_keymap_report_event(eeepc->inputdev, event, 1, true); |
1236 | } | ||
1237 | } | ||
1238 | |||
1239 | static void eeepc_dmi_check(struct eeepc_laptop *eeepc) | ||
1240 | { | ||
1241 | const char *model; | ||
1242 | |||
1243 | model = dmi_get_system_info(DMI_PRODUCT_NAME); | ||
1244 | if (!model) | ||
1245 | return; | ||
1246 | |||
1247 | /* | ||
1248 | * Blacklist for setting cpufv (cpu speed). | ||
1249 | * | ||
1250 | * EeePC 4G ("701") implements CFVS, but it is not supported | ||
1251 | * by the pre-installed OS, and the original option to change it | ||
1252 | * in the BIOS setup screen was removed in later versions. | ||
1253 | * | ||
1254 | * Judging by the lack of "Super Hybrid Engine" on Asus product pages, | ||
1255 | * this applies to all "701" models (4G/4G Surf/2G Surf). | ||
1256 | * | ||
1257 | * So Asus made a deliberate decision not to support it on this model. | ||
1258 | * We have several reports that using it can cause the system to hang | ||
1259 | * | ||
1260 | * The hang has also been reported on a "702" (Model name "8G"?). | ||
1261 | * | ||
1262 | * We avoid dmi_check_system() / dmi_match(), because they use | ||
1263 | * substring matching. We don't want to affect the "701SD" | ||
1264 | * and "701SDX" models, because they do support S.H.E. | ||
1265 | */ | ||
1266 | if (strcmp(model, "701") == 0 || strcmp(model, "702") == 0) { | ||
1267 | eeepc->cpufv_disabled = true; | ||
1268 | pr_info("model %s does not officially support setting cpu " | ||
1269 | "speed\n", model); | ||
1270 | pr_info("cpufv disabled to avoid instability\n"); | ||
1271 | } | ||
1272 | |||
1273 | /* | ||
1274 | * Blacklist for wlan hotplug | ||
1275 | * | ||
1276 | * Eeepc 1005HA doesn't work like others models and don't need the | ||
1277 | * hotplug code. In fact, current hotplug code seems to unplug another | ||
1278 | * device... | ||
1279 | */ | ||
1280 | if (strcmp(model, "1005HA") == 0 || strcmp(model, "1201N") == 0) { | ||
1281 | eeepc->hotplug_disabled = true; | ||
1282 | pr_info("wlan hotplug disabled\n"); | ||
1261 | } | 1283 | } |
1262 | } | 1284 | } |
1263 | 1285 | ||
@@ -1342,6 +1364,10 @@ static int __devinit eeepc_acpi_add(struct acpi_device *device) | |||
1342 | strcpy(acpi_device_class(device), EEEPC_ACPI_CLASS); | 1364 | strcpy(acpi_device_class(device), EEEPC_ACPI_CLASS); |
1343 | device->driver_data = eeepc; | 1365 | device->driver_data = eeepc; |
1344 | 1366 | ||
1367 | eeepc->hotplug_disabled = hotplug_disabled; | ||
1368 | |||
1369 | eeepc_dmi_check(eeepc); | ||
1370 | |||
1345 | result = eeepc_acpi_init(eeepc, device); | 1371 | result = eeepc_acpi_init(eeepc, device); |
1346 | if (result) | 1372 | if (result) |
1347 | goto fail_platform; | 1373 | goto fail_platform; |
@@ -1452,10 +1478,12 @@ static int __init eeepc_laptop_init(void) | |||
1452 | result = acpi_bus_register_driver(&eeepc_acpi_driver); | 1478 | result = acpi_bus_register_driver(&eeepc_acpi_driver); |
1453 | if (result < 0) | 1479 | if (result < 0) |
1454 | goto fail_acpi_driver; | 1480 | goto fail_acpi_driver; |
1481 | |||
1455 | if (!eeepc_device_present) { | 1482 | if (!eeepc_device_present) { |
1456 | result = -ENODEV; | 1483 | result = -ENODEV; |
1457 | goto fail_no_device; | 1484 | goto fail_no_device; |
1458 | } | 1485 | } |
1486 | |||
1459 | return 0; | 1487 | return 0; |
1460 | 1488 | ||
1461 | fail_no_device: | 1489 | fail_no_device: |
diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c index 8781d8fa7a5..ad4c414dbfb 100644 --- a/drivers/platform/x86/hp-wmi.c +++ b/drivers/platform/x86/hp-wmi.c | |||
@@ -338,8 +338,13 @@ static void hp_wmi_notify(u32 value, void *context) | |||
338 | static struct key_entry *key; | 338 | static struct key_entry *key; |
339 | union acpi_object *obj; | 339 | union acpi_object *obj; |
340 | int eventcode; | 340 | int eventcode; |
341 | acpi_status status; | ||
341 | 342 | ||
342 | wmi_get_event_data(value, &response); | 343 | status = wmi_get_event_data(value, &response); |
344 | if (status != AE_OK) { | ||
345 | printk(KERN_INFO "hp-wmi: bad event status 0x%x\n", status); | ||
346 | return; | ||
347 | } | ||
343 | 348 | ||
344 | obj = (union acpi_object *)response.pointer; | 349 | obj = (union acpi_object *)response.pointer; |
345 | 350 | ||
@@ -388,8 +393,6 @@ static void hp_wmi_notify(u32 value, void *context) | |||
388 | } else | 393 | } else |
389 | printk(KERN_INFO "HP WMI: Unknown key pressed - %x\n", | 394 | printk(KERN_INFO "HP WMI: Unknown key pressed - %x\n", |
390 | eventcode); | 395 | eventcode); |
391 | |||
392 | kfree(obj); | ||
393 | } | 396 | } |
394 | 397 | ||
395 | static int __init hp_wmi_input_setup(void) | 398 | static int __init hp_wmi_input_setup(void) |
@@ -581,7 +584,7 @@ static int __init hp_wmi_init(void) | |||
581 | if (wmi_has_guid(HPWMI_EVENT_GUID)) { | 584 | if (wmi_has_guid(HPWMI_EVENT_GUID)) { |
582 | err = wmi_install_notify_handler(HPWMI_EVENT_GUID, | 585 | err = wmi_install_notify_handler(HPWMI_EVENT_GUID, |
583 | hp_wmi_notify, NULL); | 586 | hp_wmi_notify, NULL); |
584 | if (!err) | 587 | if (ACPI_SUCCESS(err)) |
585 | hp_wmi_input_setup(); | 588 | hp_wmi_input_setup(); |
586 | } | 589 | } |
587 | 590 | ||
diff --git a/drivers/platform/x86/msi-wmi.c b/drivers/platform/x86/msi-wmi.c index 7f77f908bb0..f5f70d4c691 100644 --- a/drivers/platform/x86/msi-wmi.c +++ b/drivers/platform/x86/msi-wmi.c | |||
@@ -149,8 +149,13 @@ static void msi_wmi_notify(u32 value, void *context) | |||
149 | static struct key_entry *key; | 149 | static struct key_entry *key; |
150 | union acpi_object *obj; | 150 | union acpi_object *obj; |
151 | ktime_t cur; | 151 | ktime_t cur; |
152 | acpi_status status; | ||
152 | 153 | ||
153 | wmi_get_event_data(value, &response); | 154 | status = wmi_get_event_data(value, &response); |
155 | if (status != AE_OK) { | ||
156 | printk(KERN_INFO DRV_PFX "bad event status 0x%x\n", status); | ||
157 | return; | ||
158 | } | ||
154 | 159 | ||
155 | obj = (union acpi_object *)response.pointer; | 160 | obj = (union acpi_object *)response.pointer; |
156 | 161 | ||
@@ -236,7 +241,7 @@ static int __init msi_wmi_init(void) | |||
236 | } | 241 | } |
237 | err = wmi_install_notify_handler(MSIWMI_EVENT_GUID, | 242 | err = wmi_install_notify_handler(MSIWMI_EVENT_GUID, |
238 | msi_wmi_notify, NULL); | 243 | msi_wmi_notify, NULL); |
239 | if (err) | 244 | if (ACPI_FAILURE(err)) |
240 | return -EINVAL; | 245 | return -EINVAL; |
241 | 246 | ||
242 | err = msi_wmi_input_setup(); | 247 | err = msi_wmi_input_setup(); |
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c index 5af53340da6..3f71a605a49 100644 --- a/drivers/platform/x86/sony-laptop.c +++ b/drivers/platform/x86/sony-laptop.c | |||
@@ -1201,9 +1201,12 @@ static void sony_nc_rfkill_setup(struct acpi_device *device) | |||
1201 | /* the buffer is filled with magic numbers describing the devices | 1201 | /* the buffer is filled with magic numbers describing the devices |
1202 | * available, 0xff terminates the enumeration | 1202 | * available, 0xff terminates the enumeration |
1203 | */ | 1203 | */ |
1204 | while ((dev_code = *(device_enum->buffer.pointer + i)) != 0xff && | 1204 | for (i = 0; i < device_enum->buffer.length; i++) { |
1205 | i < device_enum->buffer.length) { | 1205 | |
1206 | i++; | 1206 | dev_code = *(device_enum->buffer.pointer + i); |
1207 | if (dev_code == 0xff) | ||
1208 | break; | ||
1209 | |||
1207 | dprintk("Radio devices, looking at 0x%.2x\n", dev_code); | 1210 | dprintk("Radio devices, looking at 0x%.2x\n", dev_code); |
1208 | 1211 | ||
1209 | if (dev_code == 0 && !sony_rfkill_devices[SONY_WIFI]) | 1212 | if (dev_code == 0 && !sony_rfkill_devices[SONY_WIFI]) |
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c index 448c8aeb166..e67e4feb35c 100644 --- a/drivers/platform/x86/thinkpad_acpi.c +++ b/drivers/platform/x86/thinkpad_acpi.c | |||
@@ -6384,11 +6384,13 @@ static struct ibm_struct brightness_driver_data = { | |||
6384 | * and we leave them unchanged. | 6384 | * and we leave them unchanged. |
6385 | */ | 6385 | */ |
6386 | 6386 | ||
6387 | #ifdef CONFIG_THINKPAD_ACPI_ALSA_SUPPORT | ||
6388 | |||
6387 | #define TPACPI_ALSA_DRVNAME "ThinkPad EC" | 6389 | #define TPACPI_ALSA_DRVNAME "ThinkPad EC" |
6388 | #define TPACPI_ALSA_SHRTNAME "ThinkPad Console Audio Control" | 6390 | #define TPACPI_ALSA_SHRTNAME "ThinkPad Console Audio Control" |
6389 | #define TPACPI_ALSA_MIXERNAME TPACPI_ALSA_SHRTNAME | 6391 | #define TPACPI_ALSA_MIXERNAME TPACPI_ALSA_SHRTNAME |
6390 | 6392 | ||
6391 | static int alsa_index = SNDRV_DEFAULT_IDX1; | 6393 | static int alsa_index = ~((1 << (SNDRV_CARDS - 3)) - 1); /* last three slots */ |
6392 | static char *alsa_id = "ThinkPadEC"; | 6394 | static char *alsa_id = "ThinkPadEC"; |
6393 | static int alsa_enable = SNDRV_DEFAULT_ENABLE1; | 6395 | static int alsa_enable = SNDRV_DEFAULT_ENABLE1; |
6394 | 6396 | ||
@@ -6705,10 +6707,11 @@ static int __init volume_create_alsa_mixer(void) | |||
6705 | 6707 | ||
6706 | rc = snd_card_create(alsa_index, alsa_id, THIS_MODULE, | 6708 | rc = snd_card_create(alsa_index, alsa_id, THIS_MODULE, |
6707 | sizeof(struct tpacpi_alsa_data), &card); | 6709 | sizeof(struct tpacpi_alsa_data), &card); |
6708 | if (rc < 0) | 6710 | if (rc < 0 || !card) { |
6709 | return rc; | 6711 | printk(TPACPI_ERR |
6710 | if (!card) | 6712 | "Failed to create ALSA card structures: %d\n", rc); |
6711 | return -ENOMEM; | 6713 | return 1; |
6714 | } | ||
6712 | 6715 | ||
6713 | BUG_ON(!card->private_data); | 6716 | BUG_ON(!card->private_data); |
6714 | data = card->private_data; | 6717 | data = card->private_data; |
@@ -6741,8 +6744,9 @@ static int __init volume_create_alsa_mixer(void) | |||
6741 | rc = snd_ctl_add(card, ctl_vol); | 6744 | rc = snd_ctl_add(card, ctl_vol); |
6742 | if (rc < 0) { | 6745 | if (rc < 0) { |
6743 | printk(TPACPI_ERR | 6746 | printk(TPACPI_ERR |
6744 | "Failed to create ALSA volume control\n"); | 6747 | "Failed to create ALSA volume control: %d\n", |
6745 | goto err_out; | 6748 | rc); |
6749 | goto err_exit; | ||
6746 | } | 6750 | } |
6747 | data->ctl_vol_id = &ctl_vol->id; | 6751 | data->ctl_vol_id = &ctl_vol->id; |
6748 | } | 6752 | } |
@@ -6750,22 +6754,25 @@ static int __init volume_create_alsa_mixer(void) | |||
6750 | ctl_mute = snd_ctl_new1(&volume_alsa_control_mute, NULL); | 6754 | ctl_mute = snd_ctl_new1(&volume_alsa_control_mute, NULL); |
6751 | rc = snd_ctl_add(card, ctl_mute); | 6755 | rc = snd_ctl_add(card, ctl_mute); |
6752 | if (rc < 0) { | 6756 | if (rc < 0) { |
6753 | printk(TPACPI_ERR "Failed to create ALSA mute control\n"); | 6757 | printk(TPACPI_ERR "Failed to create ALSA mute control: %d\n", |
6754 | goto err_out; | 6758 | rc); |
6759 | goto err_exit; | ||
6755 | } | 6760 | } |
6756 | data->ctl_mute_id = &ctl_mute->id; | 6761 | data->ctl_mute_id = &ctl_mute->id; |
6757 | 6762 | ||
6758 | snd_card_set_dev(card, &tpacpi_pdev->dev); | 6763 | snd_card_set_dev(card, &tpacpi_pdev->dev); |
6759 | rc = snd_card_register(card); | 6764 | rc = snd_card_register(card); |
6760 | |||
6761 | err_out: | ||
6762 | if (rc < 0) { | 6765 | if (rc < 0) { |
6763 | snd_card_free(card); | 6766 | printk(TPACPI_ERR "Failed to register ALSA card: %d\n", rc); |
6764 | card = NULL; | 6767 | goto err_exit; |
6765 | } | 6768 | } |
6766 | 6769 | ||
6767 | alsa_card = card; | 6770 | alsa_card = card; |
6768 | return rc; | 6771 | return 0; |
6772 | |||
6773 | err_exit: | ||
6774 | snd_card_free(card); | ||
6775 | return 1; | ||
6769 | } | 6776 | } |
6770 | 6777 | ||
6771 | #define TPACPI_VOL_Q_MUTEONLY 0x0001 /* Mute-only control available */ | 6778 | #define TPACPI_VOL_Q_MUTEONLY 0x0001 /* Mute-only control available */ |
@@ -7016,6 +7023,28 @@ static struct ibm_struct volume_driver_data = { | |||
7016 | .shutdown = volume_shutdown, | 7023 | .shutdown = volume_shutdown, |
7017 | }; | 7024 | }; |
7018 | 7025 | ||
7026 | #else /* !CONFIG_THINKPAD_ACPI_ALSA_SUPPORT */ | ||
7027 | |||
7028 | #define alsa_card NULL | ||
7029 | |||
7030 | static void inline volume_alsa_notify_change(void) | ||
7031 | { | ||
7032 | } | ||
7033 | |||
7034 | static int __init volume_init(struct ibm_init_struct *iibm) | ||
7035 | { | ||
7036 | printk(TPACPI_INFO | ||
7037 | "volume: disabled as there is no ALSA support in this kernel\n"); | ||
7038 | |||
7039 | return 1; | ||
7040 | } | ||
7041 | |||
7042 | static struct ibm_struct volume_driver_data = { | ||
7043 | .name = "volume", | ||
7044 | }; | ||
7045 | |||
7046 | #endif /* CONFIG_THINKPAD_ACPI_ALSA_SUPPORT */ | ||
7047 | |||
7019 | /************************************************************************* | 7048 | /************************************************************************* |
7020 | * Fan subdriver | 7049 | * Fan subdriver |
7021 | */ | 7050 | */ |
@@ -8738,6 +8767,7 @@ MODULE_PARM_DESC(hotkey_report_mode, | |||
8738 | "used for backwards compatibility with userspace, " | 8767 | "used for backwards compatibility with userspace, " |
8739 | "see documentation"); | 8768 | "see documentation"); |
8740 | 8769 | ||
8770 | #ifdef CONFIG_THINKPAD_ACPI_ALSA_SUPPORT | ||
8741 | module_param_named(volume_mode, volume_mode, uint, 0444); | 8771 | module_param_named(volume_mode, volume_mode, uint, 0444); |
8742 | MODULE_PARM_DESC(volume_mode, | 8772 | MODULE_PARM_DESC(volume_mode, |
8743 | "Selects volume control strategy: " | 8773 | "Selects volume control strategy: " |
@@ -8760,6 +8790,7 @@ module_param_named(id, alsa_id, charp, 0444); | |||
8760 | MODULE_PARM_DESC(id, "ALSA id for the ACPI EC Mixer"); | 8790 | MODULE_PARM_DESC(id, "ALSA id for the ACPI EC Mixer"); |
8761 | module_param_named(enable, alsa_enable, bool, 0444); | 8791 | module_param_named(enable, alsa_enable, bool, 0444); |
8762 | MODULE_PARM_DESC(enable, "Enable the ALSA interface for the ACPI EC Mixer"); | 8792 | MODULE_PARM_DESC(enable, "Enable the ALSA interface for the ACPI EC Mixer"); |
8793 | #endif /* CONFIG_THINKPAD_ACPI_ALSA_SUPPORT */ | ||
8763 | 8794 | ||
8764 | #define TPACPI_PARAM(feature) \ | 8795 | #define TPACPI_PARAM(feature) \ |
8765 | module_param_call(feature, set_ibm_param, NULL, NULL, 0); \ | 8796 | module_param_call(feature, set_ibm_param, NULL, NULL, 0); \ |
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 9f93d6c0f51..b104302fea0 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c | |||
@@ -492,8 +492,7 @@ wmi_notify_handler handler, void *data) | |||
492 | if (!guid || !handler) | 492 | if (!guid || !handler) |
493 | return AE_BAD_PARAMETER; | 493 | return AE_BAD_PARAMETER; |
494 | 494 | ||
495 | find_guid(guid, &block); | 495 | if (!find_guid(guid, &block)) |
496 | if (!block) | ||
497 | return AE_NOT_EXIST; | 496 | return AE_NOT_EXIST; |
498 | 497 | ||
499 | if (block->handler) | 498 | if (block->handler) |
@@ -521,8 +520,7 @@ acpi_status wmi_remove_notify_handler(const char *guid) | |||
521 | if (!guid) | 520 | if (!guid) |
522 | return AE_BAD_PARAMETER; | 521 | return AE_BAD_PARAMETER; |
523 | 522 | ||
524 | find_guid(guid, &block); | 523 | if (!find_guid(guid, &block)) |
525 | if (!block) | ||
526 | return AE_NOT_EXIST; | 524 | return AE_NOT_EXIST; |
527 | 525 | ||
528 | if (!block->handler) | 526 | if (!block->handler) |
@@ -716,6 +714,22 @@ static int wmi_class_init(void) | |||
716 | return ret; | 714 | return ret; |
717 | } | 715 | } |
718 | 716 | ||
717 | static bool guid_already_parsed(const char *guid_string) | ||
718 | { | ||
719 | struct guid_block *gblock; | ||
720 | struct wmi_block *wblock; | ||
721 | struct list_head *p; | ||
722 | |||
723 | list_for_each(p, &wmi_blocks.list) { | ||
724 | wblock = list_entry(p, struct wmi_block, list); | ||
725 | gblock = &wblock->gblock; | ||
726 | |||
727 | if (strncmp(gblock->guid, guid_string, 16) == 0) | ||
728 | return true; | ||
729 | } | ||
730 | return false; | ||
731 | } | ||
732 | |||
719 | /* | 733 | /* |
720 | * Parse the _WDG method for the GUID data blocks | 734 | * Parse the _WDG method for the GUID data blocks |
721 | */ | 735 | */ |
@@ -725,6 +739,7 @@ static __init acpi_status parse_wdg(acpi_handle handle) | |||
725 | union acpi_object *obj; | 739 | union acpi_object *obj; |
726 | struct guid_block *gblock; | 740 | struct guid_block *gblock; |
727 | struct wmi_block *wblock; | 741 | struct wmi_block *wblock; |
742 | char guid_string[37]; | ||
728 | acpi_status status; | 743 | acpi_status status; |
729 | u32 i, total; | 744 | u32 i, total; |
730 | 745 | ||
@@ -747,6 +762,19 @@ static __init acpi_status parse_wdg(acpi_handle handle) | |||
747 | memcpy(gblock, obj->buffer.pointer, obj->buffer.length); | 762 | memcpy(gblock, obj->buffer.pointer, obj->buffer.length); |
748 | 763 | ||
749 | for (i = 0; i < total; i++) { | 764 | for (i = 0; i < total; i++) { |
765 | /* | ||
766 | Some WMI devices, like those for nVidia hooks, have a | ||
767 | duplicate GUID. It's not clear what we should do in this | ||
768 | case yet, so for now, we'll just ignore the duplicate. | ||
769 | Anyone who wants to add support for that device can come | ||
770 | up with a better workaround for the mess then. | ||
771 | */ | ||
772 | if (guid_already_parsed(gblock[i].guid) == true) { | ||
773 | wmi_gtoa(gblock[i].guid, guid_string); | ||
774 | printk(KERN_INFO PREFIX "Skipping duplicate GUID %s\n", | ||
775 | guid_string); | ||
776 | continue; | ||
777 | } | ||
750 | wblock = kzalloc(sizeof(struct wmi_block), GFP_KERNEL); | 778 | wblock = kzalloc(sizeof(struct wmi_block), GFP_KERNEL); |
751 | if (!wblock) | 779 | if (!wblock) |
752 | return AE_NO_MEMORY; | 780 | return AE_NO_MEMORY; |
diff --git a/drivers/power/pmu_battery.c b/drivers/power/pmu_battery.c index 9346a862f1f..9c87ad56480 100644 --- a/drivers/power/pmu_battery.c +++ b/drivers/power/pmu_battery.c | |||
@@ -89,6 +89,8 @@ static int pmu_bat_get_property(struct power_supply *psy, | |||
89 | case POWER_SUPPLY_PROP_STATUS: | 89 | case POWER_SUPPLY_PROP_STATUS: |
90 | if (pbi->flags & PMU_BATT_CHARGING) | 90 | if (pbi->flags & PMU_BATT_CHARGING) |
91 | val->intval = POWER_SUPPLY_STATUS_CHARGING; | 91 | val->intval = POWER_SUPPLY_STATUS_CHARGING; |
92 | else if (pmu_power_flags & PMU_PWR_AC_PRESENT) | ||
93 | val->intval = POWER_SUPPLY_STATUS_FULL; | ||
92 | else | 94 | else |
93 | val->intval = POWER_SUPPLY_STATUS_DISCHARGING; | 95 | val->intval = POWER_SUPPLY_STATUS_DISCHARGING; |
94 | break; | 96 | break; |
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c index c8c12325e69..e9aa814ddd2 100644 --- a/drivers/rtc/rtc-cmos.c +++ b/drivers/rtc/rtc-cmos.c | |||
@@ -1096,9 +1096,9 @@ static int cmos_pnp_resume(struct pnp_dev *pnp) | |||
1096 | #define cmos_pnp_resume NULL | 1096 | #define cmos_pnp_resume NULL |
1097 | #endif | 1097 | #endif |
1098 | 1098 | ||
1099 | static void cmos_pnp_shutdown(struct device *pdev) | 1099 | static void cmos_pnp_shutdown(struct pnp_dev *pnp) |
1100 | { | 1100 | { |
1101 | if (system_state == SYSTEM_POWER_OFF && !cmos_poweroff(pdev)) | 1101 | if (system_state == SYSTEM_POWER_OFF && !cmos_poweroff(&pnp->dev)) |
1102 | return; | 1102 | return; |
1103 | 1103 | ||
1104 | cmos_do_shutdown(); | 1104 | cmos_do_shutdown(); |
@@ -1117,15 +1117,12 @@ static struct pnp_driver cmos_pnp_driver = { | |||
1117 | .id_table = rtc_ids, | 1117 | .id_table = rtc_ids, |
1118 | .probe = cmos_pnp_probe, | 1118 | .probe = cmos_pnp_probe, |
1119 | .remove = __exit_p(cmos_pnp_remove), | 1119 | .remove = __exit_p(cmos_pnp_remove), |
1120 | .shutdown = cmos_pnp_shutdown, | ||
1120 | 1121 | ||
1121 | /* flag ensures resume() gets called, and stops syslog spam */ | 1122 | /* flag ensures resume() gets called, and stops syslog spam */ |
1122 | .flags = PNP_DRIVER_RES_DO_NOT_CHANGE, | 1123 | .flags = PNP_DRIVER_RES_DO_NOT_CHANGE, |
1123 | .suspend = cmos_pnp_suspend, | 1124 | .suspend = cmos_pnp_suspend, |
1124 | .resume = cmos_pnp_resume, | 1125 | .resume = cmos_pnp_resume, |
1125 | .driver = { | ||
1126 | .name = (char *)driver_name, | ||
1127 | .shutdown = cmos_pnp_shutdown, | ||
1128 | } | ||
1129 | }; | 1126 | }; |
1130 | 1127 | ||
1131 | #endif /* CONFIG_PNP */ | 1128 | #endif /* CONFIG_PNP */ |
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index 5819dc02a14..1c500c46222 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <asm/debug.h> | 23 | #include <asm/debug.h> |
24 | #include <asm/idals.h> | 24 | #include <asm/idals.h> |
25 | #include <asm/ebcdic.h> | 25 | #include <asm/ebcdic.h> |
26 | #include <asm/compat.h> | ||
26 | #include <asm/io.h> | 27 | #include <asm/io.h> |
27 | #include <asm/uaccess.h> | 28 | #include <asm/uaccess.h> |
28 | #include <asm/cio.h> | 29 | #include <asm/cio.h> |
@@ -2844,13 +2845,16 @@ static int dasd_symm_io(struct dasd_device *device, void __user *argp) | |||
2844 | rc = -EFAULT; | 2845 | rc = -EFAULT; |
2845 | if (copy_from_user(&usrparm, argp, sizeof(usrparm))) | 2846 | if (copy_from_user(&usrparm, argp, sizeof(usrparm))) |
2846 | goto out; | 2847 | goto out; |
2847 | #ifndef CONFIG_64BIT | 2848 | if (is_compat_task() || sizeof(long) == 4) { |
2848 | /* Make sure pointers are sane even on 31 bit. */ | 2849 | /* Make sure pointers are sane even on 31 bit. */ |
2849 | if ((usrparm.psf_data >> 32) != 0 || (usrparm.rssd_result >> 32) != 0) { | ||
2850 | rc = -EINVAL; | 2850 | rc = -EINVAL; |
2851 | goto out; | 2851 | if ((usrparm.psf_data >> 32) != 0) |
2852 | goto out; | ||
2853 | if ((usrparm.rssd_result >> 32) != 0) | ||
2854 | goto out; | ||
2855 | usrparm.psf_data &= 0x7fffffffULL; | ||
2856 | usrparm.rssd_result &= 0x7fffffffULL; | ||
2852 | } | 2857 | } |
2853 | #endif | ||
2854 | /* alloc I/O data area */ | 2858 | /* alloc I/O data area */ |
2855 | psf_data = kzalloc(usrparm.psf_data_len, GFP_KERNEL | GFP_DMA); | 2859 | psf_data = kzalloc(usrparm.psf_data_len, GFP_KERNEL | GFP_DMA); |
2856 | rssd_result = kzalloc(usrparm.rssd_result_len, GFP_KERNEL | GFP_DMA); | 2860 | rssd_result = kzalloc(usrparm.rssd_result_len, GFP_KERNEL | GFP_DMA); |
diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c index 478bcdb90b6..fc7b30b4a25 100644 --- a/drivers/s390/block/dasd_ioctl.c +++ b/drivers/s390/block/dasd_ioctl.c | |||
@@ -17,7 +17,7 @@ | |||
17 | #include <linux/fs.h> | 17 | #include <linux/fs.h> |
18 | #include <linux/blkpg.h> | 18 | #include <linux/blkpg.h> |
19 | #include <linux/smp_lock.h> | 19 | #include <linux/smp_lock.h> |
20 | 20 | #include <asm/compat.h> | |
21 | #include <asm/ccwdev.h> | 21 | #include <asm/ccwdev.h> |
22 | #include <asm/cmb.h> | 22 | #include <asm/cmb.h> |
23 | #include <asm/uaccess.h> | 23 | #include <asm/uaccess.h> |
@@ -358,9 +358,8 @@ dasd_ioctl_set_ro(struct block_device *bdev, void __user *argp) | |||
358 | } | 358 | } |
359 | 359 | ||
360 | static int dasd_ioctl_readall_cmb(struct dasd_block *block, unsigned int cmd, | 360 | static int dasd_ioctl_readall_cmb(struct dasd_block *block, unsigned int cmd, |
361 | unsigned long arg) | 361 | struct cmbdata __user *argp) |
362 | { | 362 | { |
363 | struct cmbdata __user *argp = (void __user *) arg; | ||
364 | size_t size = _IOC_SIZE(cmd); | 363 | size_t size = _IOC_SIZE(cmd); |
365 | struct cmbdata data; | 364 | struct cmbdata data; |
366 | int ret; | 365 | int ret; |
@@ -376,7 +375,12 @@ dasd_do_ioctl(struct block_device *bdev, fmode_t mode, | |||
376 | unsigned int cmd, unsigned long arg) | 375 | unsigned int cmd, unsigned long arg) |
377 | { | 376 | { |
378 | struct dasd_block *block = bdev->bd_disk->private_data; | 377 | struct dasd_block *block = bdev->bd_disk->private_data; |
379 | void __user *argp = (void __user *)arg; | 378 | void __user *argp; |
379 | |||
380 | if (is_compat_task()) | ||
381 | argp = compat_ptr(arg); | ||
382 | else | ||
383 | argp = (void __user *)arg; | ||
380 | 384 | ||
381 | if (!block) | 385 | if (!block) |
382 | return -ENODEV; | 386 | return -ENODEV; |
@@ -414,7 +418,7 @@ dasd_do_ioctl(struct block_device *bdev, fmode_t mode, | |||
414 | case BIODASDCMFDISABLE: | 418 | case BIODASDCMFDISABLE: |
415 | return disable_cmf(block->base->cdev); | 419 | return disable_cmf(block->base->cdev); |
416 | case BIODASDREADALLCMB: | 420 | case BIODASDREADALLCMB: |
417 | return dasd_ioctl_readall_cmb(block, cmd, arg); | 421 | return dasd_ioctl_readall_cmb(block, cmd, argp); |
418 | default: | 422 | default: |
419 | /* if the discipline has an ioctl method try it. */ | 423 | /* if the discipline has an ioctl method try it. */ |
420 | if (block->base->discipline->ioctl) { | 424 | if (block->base->discipline->ioctl) { |
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c index 9d61683b563..59ec073724b 100644 --- a/drivers/s390/char/con3215.c +++ b/drivers/s390/char/con3215.c | |||
@@ -1037,22 +1037,6 @@ static void tty3215_flush_buffer(struct tty_struct *tty) | |||
1037 | } | 1037 | } |
1038 | 1038 | ||
1039 | /* | 1039 | /* |
1040 | * Currently we don't have any io controls for 3215 ttys | ||
1041 | */ | ||
1042 | static int tty3215_ioctl(struct tty_struct *tty, struct file * file, | ||
1043 | unsigned int cmd, unsigned long arg) | ||
1044 | { | ||
1045 | if (tty->flags & (1 << TTY_IO_ERROR)) | ||
1046 | return -EIO; | ||
1047 | |||
1048 | switch (cmd) { | ||
1049 | default: | ||
1050 | return -ENOIOCTLCMD; | ||
1051 | } | ||
1052 | return 0; | ||
1053 | } | ||
1054 | |||
1055 | /* | ||
1056 | * Disable reading from a 3215 tty | 1040 | * Disable reading from a 3215 tty |
1057 | */ | 1041 | */ |
1058 | static void tty3215_throttle(struct tty_struct * tty) | 1042 | static void tty3215_throttle(struct tty_struct * tty) |
@@ -1117,7 +1101,6 @@ static const struct tty_operations tty3215_ops = { | |||
1117 | .write_room = tty3215_write_room, | 1101 | .write_room = tty3215_write_room, |
1118 | .chars_in_buffer = tty3215_chars_in_buffer, | 1102 | .chars_in_buffer = tty3215_chars_in_buffer, |
1119 | .flush_buffer = tty3215_flush_buffer, | 1103 | .flush_buffer = tty3215_flush_buffer, |
1120 | .ioctl = tty3215_ioctl, | ||
1121 | .throttle = tty3215_throttle, | 1104 | .throttle = tty3215_throttle, |
1122 | .unthrottle = tty3215_unthrottle, | 1105 | .unthrottle = tty3215_unthrottle, |
1123 | .stop = tty3215_stop, | 1106 | .stop = tty3215_stop, |
diff --git a/drivers/s390/char/fs3270.c b/drivers/s390/char/fs3270.c index 247b2b93472..31c59b0d6df 100644 --- a/drivers/s390/char/fs3270.c +++ b/drivers/s390/char/fs3270.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/types.h> | 15 | #include <linux/types.h> |
16 | #include <linux/smp_lock.h> | 16 | #include <linux/smp_lock.h> |
17 | 17 | ||
18 | #include <asm/compat.h> | ||
18 | #include <asm/ccwdev.h> | 19 | #include <asm/ccwdev.h> |
19 | #include <asm/cio.h> | 20 | #include <asm/cio.h> |
20 | #include <asm/ebcdic.h> | 21 | #include <asm/ebcdic.h> |
@@ -322,6 +323,7 @@ fs3270_write(struct file *filp, const char __user *data, size_t count, loff_t *o | |||
322 | static long | 323 | static long |
323 | fs3270_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | 324 | fs3270_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) |
324 | { | 325 | { |
326 | char __user *argp; | ||
325 | struct fs3270 *fp; | 327 | struct fs3270 *fp; |
326 | struct raw3270_iocb iocb; | 328 | struct raw3270_iocb iocb; |
327 | int rc; | 329 | int rc; |
@@ -329,6 +331,10 @@ fs3270_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
329 | fp = filp->private_data; | 331 | fp = filp->private_data; |
330 | if (!fp) | 332 | if (!fp) |
331 | return -ENODEV; | 333 | return -ENODEV; |
334 | if (is_compat_task()) | ||
335 | argp = compat_ptr(arg); | ||
336 | else | ||
337 | argp = (char __user *)arg; | ||
332 | rc = 0; | 338 | rc = 0; |
333 | mutex_lock(&fs3270_mutex); | 339 | mutex_lock(&fs3270_mutex); |
334 | switch (cmd) { | 340 | switch (cmd) { |
@@ -339,10 +345,10 @@ fs3270_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
339 | fp->write_command = arg; | 345 | fp->write_command = arg; |
340 | break; | 346 | break; |
341 | case TUBGETI: | 347 | case TUBGETI: |
342 | rc = put_user(fp->read_command, (char __user *) arg); | 348 | rc = put_user(fp->read_command, argp); |
343 | break; | 349 | break; |
344 | case TUBGETO: | 350 | case TUBGETO: |
345 | rc = put_user(fp->write_command,(char __user *) arg); | 351 | rc = put_user(fp->write_command, argp); |
346 | break; | 352 | break; |
347 | case TUBGETMOD: | 353 | case TUBGETMOD: |
348 | iocb.model = fp->view.model; | 354 | iocb.model = fp->view.model; |
@@ -351,8 +357,7 @@ fs3270_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
351 | iocb.pf_cnt = 24; | 357 | iocb.pf_cnt = 24; |
352 | iocb.re_cnt = 20; | 358 | iocb.re_cnt = 20; |
353 | iocb.map = 0; | 359 | iocb.map = 0; |
354 | if (copy_to_user((char __user *) arg, &iocb, | 360 | if (copy_to_user(argp, &iocb, sizeof(struct raw3270_iocb))) |
355 | sizeof(struct raw3270_iocb))) | ||
356 | rc = -EFAULT; | 361 | rc = -EFAULT; |
357 | break; | 362 | break; |
358 | } | 363 | } |
@@ -511,8 +516,8 @@ static const struct file_operations fs3270_fops = { | |||
511 | .write = fs3270_write, /* write */ | 516 | .write = fs3270_write, /* write */ |
512 | .unlocked_ioctl = fs3270_ioctl, /* ioctl */ | 517 | .unlocked_ioctl = fs3270_ioctl, /* ioctl */ |
513 | .compat_ioctl = fs3270_ioctl, /* ioctl */ | 518 | .compat_ioctl = fs3270_ioctl, /* ioctl */ |
514 | .open = fs3270_open, /* open */ | 519 | .open = fs3270_open, /* open */ |
515 | .release = fs3270_close, /* release */ | 520 | .release = fs3270_close, /* release */ |
516 | }; | 521 | }; |
517 | 522 | ||
518 | /* | 523 | /* |
diff --git a/drivers/s390/char/tape_block.c b/drivers/s390/char/tape_block.c index 96816149368..8d3d720737d 100644 --- a/drivers/s390/char/tape_block.c +++ b/drivers/s390/char/tape_block.c | |||
@@ -46,8 +46,6 @@ | |||
46 | */ | 46 | */ |
47 | static int tapeblock_open(struct block_device *, fmode_t); | 47 | static int tapeblock_open(struct block_device *, fmode_t); |
48 | static int tapeblock_release(struct gendisk *, fmode_t); | 48 | static int tapeblock_release(struct gendisk *, fmode_t); |
49 | static int tapeblock_ioctl(struct block_device *, fmode_t, unsigned int, | ||
50 | unsigned long); | ||
51 | static int tapeblock_medium_changed(struct gendisk *); | 49 | static int tapeblock_medium_changed(struct gendisk *); |
52 | static int tapeblock_revalidate_disk(struct gendisk *); | 50 | static int tapeblock_revalidate_disk(struct gendisk *); |
53 | 51 | ||
@@ -55,7 +53,6 @@ static const struct block_device_operations tapeblock_fops = { | |||
55 | .owner = THIS_MODULE, | 53 | .owner = THIS_MODULE, |
56 | .open = tapeblock_open, | 54 | .open = tapeblock_open, |
57 | .release = tapeblock_release, | 55 | .release = tapeblock_release, |
58 | .ioctl = tapeblock_ioctl, | ||
59 | .media_changed = tapeblock_medium_changed, | 56 | .media_changed = tapeblock_medium_changed, |
60 | .revalidate_disk = tapeblock_revalidate_disk, | 57 | .revalidate_disk = tapeblock_revalidate_disk, |
61 | }; | 58 | }; |
@@ -416,42 +413,6 @@ tapeblock_release(struct gendisk *disk, fmode_t mode) | |||
416 | } | 413 | } |
417 | 414 | ||
418 | /* | 415 | /* |
419 | * Support of some generic block device IOCTLs. | ||
420 | */ | ||
421 | static int | ||
422 | tapeblock_ioctl( | ||
423 | struct block_device * bdev, | ||
424 | fmode_t mode, | ||
425 | unsigned int command, | ||
426 | unsigned long arg | ||
427 | ) { | ||
428 | int rc; | ||
429 | int minor; | ||
430 | struct gendisk *disk = bdev->bd_disk; | ||
431 | struct tape_device *device; | ||
432 | |||
433 | rc = 0; | ||
434 | BUG_ON(!disk); | ||
435 | device = disk->private_data; | ||
436 | BUG_ON(!device); | ||
437 | minor = MINOR(bdev->bd_dev); | ||
438 | |||
439 | DBF_LH(6, "tapeblock_ioctl(0x%0x)\n", command); | ||
440 | DBF_LH(6, "device = %d:%d\n", tapeblock_major, minor); | ||
441 | |||
442 | switch (command) { | ||
443 | /* Refuse some IOCTL calls without complaining (mount). */ | ||
444 | case 0x5310: /* CDROMMULTISESSION */ | ||
445 | rc = -EINVAL; | ||
446 | break; | ||
447 | default: | ||
448 | rc = -EINVAL; | ||
449 | } | ||
450 | |||
451 | return rc; | ||
452 | } | ||
453 | |||
454 | /* | ||
455 | * Initialize block device frontend. | 416 | * Initialize block device frontend. |
456 | */ | 417 | */ |
457 | int | 418 | int |
diff --git a/drivers/s390/char/tape_char.c b/drivers/s390/char/tape_char.c index 2125ec7d95f..539045acaad 100644 --- a/drivers/s390/char/tape_char.c +++ b/drivers/s390/char/tape_char.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/proc_fs.h> | 18 | #include <linux/proc_fs.h> |
19 | #include <linux/mtio.h> | 19 | #include <linux/mtio.h> |
20 | #include <linux/smp_lock.h> | 20 | #include <linux/smp_lock.h> |
21 | #include <linux/compat.h> | ||
21 | 22 | ||
22 | #include <asm/uaccess.h> | 23 | #include <asm/uaccess.h> |
23 | 24 | ||
@@ -37,8 +38,9 @@ static ssize_t tapechar_write(struct file *, const char __user *, size_t, loff_t | |||
37 | static int tapechar_open(struct inode *,struct file *); | 38 | static int tapechar_open(struct inode *,struct file *); |
38 | static int tapechar_release(struct inode *,struct file *); | 39 | static int tapechar_release(struct inode *,struct file *); |
39 | static long tapechar_ioctl(struct file *, unsigned int, unsigned long); | 40 | static long tapechar_ioctl(struct file *, unsigned int, unsigned long); |
40 | static long tapechar_compat_ioctl(struct file *, unsigned int, | 41 | #ifdef CONFIG_COMPAT |
41 | unsigned long); | 42 | static long tapechar_compat_ioctl(struct file *, unsigned int, unsigned long); |
43 | #endif | ||
42 | 44 | ||
43 | static const struct file_operations tape_fops = | 45 | static const struct file_operations tape_fops = |
44 | { | 46 | { |
@@ -46,7 +48,9 @@ static const struct file_operations tape_fops = | |||
46 | .read = tapechar_read, | 48 | .read = tapechar_read, |
47 | .write = tapechar_write, | 49 | .write = tapechar_write, |
48 | .unlocked_ioctl = tapechar_ioctl, | 50 | .unlocked_ioctl = tapechar_ioctl, |
51 | #ifdef CONFIG_COMPAT | ||
49 | .compat_ioctl = tapechar_compat_ioctl, | 52 | .compat_ioctl = tapechar_compat_ioctl, |
53 | #endif | ||
50 | .open = tapechar_open, | 54 | .open = tapechar_open, |
51 | .release = tapechar_release, | 55 | .release = tapechar_release, |
52 | }; | 56 | }; |
@@ -457,15 +461,22 @@ tapechar_ioctl(struct file *filp, unsigned int no, unsigned long data) | |||
457 | return rc; | 461 | return rc; |
458 | } | 462 | } |
459 | 463 | ||
464 | #ifdef CONFIG_COMPAT | ||
460 | static long | 465 | static long |
461 | tapechar_compat_ioctl(struct file *filp, unsigned int no, unsigned long data) | 466 | tapechar_compat_ioctl(struct file *filp, unsigned int no, unsigned long data) |
462 | { | 467 | { |
463 | struct tape_device *device = filp->private_data; | 468 | struct tape_device *device = filp->private_data; |
464 | int rval = -ENOIOCTLCMD; | 469 | int rval = -ENOIOCTLCMD; |
470 | unsigned long argp; | ||
465 | 471 | ||
472 | /* The 'arg' argument of any ioctl function may only be used for | ||
473 | * pointers because of the compat pointer conversion. | ||
474 | * Consider this when adding new ioctls. | ||
475 | */ | ||
476 | argp = (unsigned long) compat_ptr(data); | ||
466 | if (device->discipline->ioctl_fn) { | 477 | if (device->discipline->ioctl_fn) { |
467 | mutex_lock(&device->mutex); | 478 | mutex_lock(&device->mutex); |
468 | rval = device->discipline->ioctl_fn(device, no, data); | 479 | rval = device->discipline->ioctl_fn(device, no, argp); |
469 | mutex_unlock(&device->mutex); | 480 | mutex_unlock(&device->mutex); |
470 | if (rval == -EINVAL) | 481 | if (rval == -EINVAL) |
471 | rval = -ENOIOCTLCMD; | 482 | rval = -ENOIOCTLCMD; |
@@ -473,6 +484,7 @@ tapechar_compat_ioctl(struct file *filp, unsigned int no, unsigned long data) | |||
473 | 484 | ||
474 | return rval; | 485 | return rval; |
475 | } | 486 | } |
487 | #endif /* CONFIG_COMPAT */ | ||
476 | 488 | ||
477 | /* | 489 | /* |
478 | * Initialize character device frontend. | 490 | * Initialize character device frontend. |
diff --git a/drivers/s390/char/vmcp.c b/drivers/s390/char/vmcp.c index a6087cec55b..921dcda7767 100644 --- a/drivers/s390/char/vmcp.c +++ b/drivers/s390/char/vmcp.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/kernel.h> | 19 | #include <linux/kernel.h> |
20 | #include <linux/miscdevice.h> | 20 | #include <linux/miscdevice.h> |
21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
22 | #include <asm/compat.h> | ||
22 | #include <asm/cpcmd.h> | 23 | #include <asm/cpcmd.h> |
23 | #include <asm/debug.h> | 24 | #include <asm/debug.h> |
24 | #include <asm/uaccess.h> | 25 | #include <asm/uaccess.h> |
@@ -139,21 +140,26 @@ vmcp_write(struct file *file, const char __user *buff, size_t count, | |||
139 | static long vmcp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | 140 | static long vmcp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) |
140 | { | 141 | { |
141 | struct vmcp_session *session; | 142 | struct vmcp_session *session; |
143 | int __user *argp; | ||
142 | int temp; | 144 | int temp; |
143 | 145 | ||
144 | session = (struct vmcp_session *)file->private_data; | 146 | session = (struct vmcp_session *)file->private_data; |
147 | if (is_compat_task()) | ||
148 | argp = compat_ptr(arg); | ||
149 | else | ||
150 | argp = (int __user *)arg; | ||
145 | if (mutex_lock_interruptible(&session->mutex)) | 151 | if (mutex_lock_interruptible(&session->mutex)) |
146 | return -ERESTARTSYS; | 152 | return -ERESTARTSYS; |
147 | switch (cmd) { | 153 | switch (cmd) { |
148 | case VMCP_GETCODE: | 154 | case VMCP_GETCODE: |
149 | temp = session->resp_code; | 155 | temp = session->resp_code; |
150 | mutex_unlock(&session->mutex); | 156 | mutex_unlock(&session->mutex); |
151 | return put_user(temp, (int __user *)arg); | 157 | return put_user(temp, argp); |
152 | case VMCP_SETBUF: | 158 | case VMCP_SETBUF: |
153 | free_pages((unsigned long)session->response, | 159 | free_pages((unsigned long)session->response, |
154 | get_order(session->bufsize)); | 160 | get_order(session->bufsize)); |
155 | session->response=NULL; | 161 | session->response=NULL; |
156 | temp = get_user(session->bufsize, (int __user *)arg); | 162 | temp = get_user(session->bufsize, argp); |
157 | if (get_order(session->bufsize) > 8) { | 163 | if (get_order(session->bufsize) > 8) { |
158 | session->bufsize = PAGE_SIZE; | 164 | session->bufsize = PAGE_SIZE; |
159 | temp = -EINVAL; | 165 | temp = -EINVAL; |
@@ -163,7 +169,7 @@ static long vmcp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | |||
163 | case VMCP_GETSIZE: | 169 | case VMCP_GETSIZE: |
164 | temp = session->resp_size; | 170 | temp = session->resp_size; |
165 | mutex_unlock(&session->mutex); | 171 | mutex_unlock(&session->mutex); |
166 | return put_user(temp, (int __user *)arg); | 172 | return put_user(temp, argp); |
167 | default: | 173 | default: |
168 | mutex_unlock(&session->mutex); | 174 | mutex_unlock(&session->mutex); |
169 | return -ENOIOCTLCMD; | 175 | return -ENOIOCTLCMD; |
diff --git a/drivers/s390/cio/Makefile b/drivers/s390/cio/Makefile index d033414f759..e1b700a1964 100644 --- a/drivers/s390/cio/Makefile +++ b/drivers/s390/cio/Makefile | |||
@@ -10,5 +10,5 @@ obj-y += ccw_device.o cmf.o | |||
10 | obj-$(CONFIG_CHSC_SCH) += chsc_sch.o | 10 | obj-$(CONFIG_CHSC_SCH) += chsc_sch.o |
11 | obj-$(CONFIG_CCWGROUP) += ccwgroup.o | 11 | obj-$(CONFIG_CCWGROUP) += ccwgroup.o |
12 | 12 | ||
13 | qdio-objs := qdio_main.o qdio_thinint.o qdio_debug.o qdio_perf.o qdio_setup.o | 13 | qdio-objs := qdio_main.o qdio_thinint.o qdio_debug.o qdio_setup.o |
14 | obj-$(CONFIG_QDIO) += qdio.o | 14 | obj-$(CONFIG_QDIO) += qdio.o |
diff --git a/drivers/s390/cio/chsc_sch.c b/drivers/s390/cio/chsc_sch.c index cc5144b6f9d..c84ac944307 100644 --- a/drivers/s390/cio/chsc_sch.c +++ b/drivers/s390/cio/chsc_sch.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/uaccess.h> | 12 | #include <linux/uaccess.h> |
13 | #include <linux/miscdevice.h> | 13 | #include <linux/miscdevice.h> |
14 | 14 | ||
15 | #include <asm/compat.h> | ||
15 | #include <asm/cio.h> | 16 | #include <asm/cio.h> |
16 | #include <asm/chsc.h> | 17 | #include <asm/chsc.h> |
17 | #include <asm/isc.h> | 18 | #include <asm/isc.h> |
@@ -770,24 +771,30 @@ out_free: | |||
770 | static long chsc_ioctl(struct file *filp, unsigned int cmd, | 771 | static long chsc_ioctl(struct file *filp, unsigned int cmd, |
771 | unsigned long arg) | 772 | unsigned long arg) |
772 | { | 773 | { |
774 | void __user *argp; | ||
775 | |||
773 | CHSC_MSG(2, "chsc_ioctl called, cmd=%x\n", cmd); | 776 | CHSC_MSG(2, "chsc_ioctl called, cmd=%x\n", cmd); |
777 | if (is_compat_task()) | ||
778 | argp = compat_ptr(arg); | ||
779 | else | ||
780 | argp = (void __user *)arg; | ||
774 | switch (cmd) { | 781 | switch (cmd) { |
775 | case CHSC_START: | 782 | case CHSC_START: |
776 | return chsc_ioctl_start((void __user *)arg); | 783 | return chsc_ioctl_start(argp); |
777 | case CHSC_INFO_CHANNEL_PATH: | 784 | case CHSC_INFO_CHANNEL_PATH: |
778 | return chsc_ioctl_info_channel_path((void __user *)arg); | 785 | return chsc_ioctl_info_channel_path(argp); |
779 | case CHSC_INFO_CU: | 786 | case CHSC_INFO_CU: |
780 | return chsc_ioctl_info_cu((void __user *)arg); | 787 | return chsc_ioctl_info_cu(argp); |
781 | case CHSC_INFO_SCH_CU: | 788 | case CHSC_INFO_SCH_CU: |
782 | return chsc_ioctl_info_sch_cu((void __user *)arg); | 789 | return chsc_ioctl_info_sch_cu(argp); |
783 | case CHSC_INFO_CI: | 790 | case CHSC_INFO_CI: |
784 | return chsc_ioctl_conf_info((void __user *)arg); | 791 | return chsc_ioctl_conf_info(argp); |
785 | case CHSC_INFO_CCL: | 792 | case CHSC_INFO_CCL: |
786 | return chsc_ioctl_conf_comp_list((void __user *)arg); | 793 | return chsc_ioctl_conf_comp_list(argp); |
787 | case CHSC_INFO_CPD: | 794 | case CHSC_INFO_CPD: |
788 | return chsc_ioctl_chpd((void __user *)arg); | 795 | return chsc_ioctl_chpd(argp); |
789 | case CHSC_INFO_DCAL: | 796 | case CHSC_INFO_DCAL: |
790 | return chsc_ioctl_dcal((void __user *)arg); | 797 | return chsc_ioctl_dcal(argp); |
791 | default: /* unknown ioctl number */ | 798 | default: /* unknown ioctl number */ |
792 | return -ENOIOCTLCMD; | 799 | return -ENOIOCTLCMD; |
793 | } | 800 | } |
diff --git a/drivers/s390/cio/qdio.h b/drivers/s390/cio/qdio.h index ff7748a9199..44f2f6a97f3 100644 --- a/drivers/s390/cio/qdio.h +++ b/drivers/s390/cio/qdio.h | |||
@@ -182,6 +182,34 @@ struct scssc_area { | |||
182 | u32:32; | 182 | u32:32; |
183 | } __attribute__ ((packed)); | 183 | } __attribute__ ((packed)); |
184 | 184 | ||
185 | struct qdio_dev_perf_stat { | ||
186 | unsigned int adapter_int; | ||
187 | unsigned int qdio_int; | ||
188 | unsigned int pci_request_int; | ||
189 | |||
190 | unsigned int tasklet_inbound; | ||
191 | unsigned int tasklet_inbound_resched; | ||
192 | unsigned int tasklet_inbound_resched2; | ||
193 | unsigned int tasklet_outbound; | ||
194 | |||
195 | unsigned int siga_read; | ||
196 | unsigned int siga_write; | ||
197 | unsigned int siga_sync; | ||
198 | |||
199 | unsigned int inbound_call; | ||
200 | unsigned int inbound_handler; | ||
201 | unsigned int stop_polling; | ||
202 | unsigned int inbound_queue_full; | ||
203 | unsigned int outbound_call; | ||
204 | unsigned int outbound_handler; | ||
205 | unsigned int fast_requeue; | ||
206 | unsigned int target_full; | ||
207 | unsigned int eqbs; | ||
208 | unsigned int eqbs_partial; | ||
209 | unsigned int sqbs; | ||
210 | unsigned int sqbs_partial; | ||
211 | }; | ||
212 | |||
185 | struct qdio_input_q { | 213 | struct qdio_input_q { |
186 | /* input buffer acknowledgement flag */ | 214 | /* input buffer acknowledgement flag */ |
187 | int polling; | 215 | int polling; |
@@ -269,6 +297,7 @@ struct qdio_irq { | |||
269 | u32 *dsci; /* address of device state change indicator */ | 297 | u32 *dsci; /* address of device state change indicator */ |
270 | struct ccw_device *cdev; | 298 | struct ccw_device *cdev; |
271 | struct dentry *debugfs_dev; | 299 | struct dentry *debugfs_dev; |
300 | struct dentry *debugfs_perf; | ||
272 | 301 | ||
273 | unsigned long int_parm; | 302 | unsigned long int_parm; |
274 | struct subchannel_id schid; | 303 | struct subchannel_id schid; |
@@ -286,9 +315,10 @@ struct qdio_irq { | |||
286 | struct ciw aqueue; | 315 | struct ciw aqueue; |
287 | 316 | ||
288 | struct qdio_ssqd_desc ssqd_desc; | 317 | struct qdio_ssqd_desc ssqd_desc; |
289 | |||
290 | void (*orig_handler) (struct ccw_device *, unsigned long, struct irb *); | 318 | void (*orig_handler) (struct ccw_device *, unsigned long, struct irb *); |
291 | 319 | ||
320 | struct qdio_dev_perf_stat perf_stat; | ||
321 | int perf_stat_enabled; | ||
292 | /* | 322 | /* |
293 | * Warning: Leave these members together at the end so they won't be | 323 | * Warning: Leave these members together at the end so they won't be |
294 | * cleared in qdio_setup_irq. | 324 | * cleared in qdio_setup_irq. |
@@ -311,6 +341,10 @@ struct qdio_irq { | |||
311 | (irq->qib.qfmt == QDIO_IQDIO_QFMT || \ | 341 | (irq->qib.qfmt == QDIO_IQDIO_QFMT || \ |
312 | css_general_characteristics.aif_osa) | 342 | css_general_characteristics.aif_osa) |
313 | 343 | ||
344 | #define qperf(qdev,attr) qdev->perf_stat.attr | ||
345 | #define qperf_inc(q,attr) if (q->irq_ptr->perf_stat_enabled) \ | ||
346 | q->irq_ptr->perf_stat.attr++ | ||
347 | |||
314 | /* the highest iqdio queue is used for multicast */ | 348 | /* the highest iqdio queue is used for multicast */ |
315 | static inline int multicast_outbound(struct qdio_q *q) | 349 | static inline int multicast_outbound(struct qdio_q *q) |
316 | { | 350 | { |
diff --git a/drivers/s390/cio/qdio_debug.c b/drivers/s390/cio/qdio_debug.c index 76769978285..f49761ff9a0 100644 --- a/drivers/s390/cio/qdio_debug.c +++ b/drivers/s390/cio/qdio_debug.c | |||
@@ -55,13 +55,11 @@ static int qstat_show(struct seq_file *m, void *v) | |||
55 | if (!q) | 55 | if (!q) |
56 | return 0; | 56 | return 0; |
57 | 57 | ||
58 | seq_printf(m, "device state indicator: %d\n", *(u32 *)q->irq_ptr->dsci); | 58 | seq_printf(m, "DSCI: %d nr_used: %d\n", |
59 | seq_printf(m, "nr_used: %d\n", atomic_read(&q->nr_buf_used)); | 59 | *(u32 *)q->irq_ptr->dsci, atomic_read(&q->nr_buf_used)); |
60 | seq_printf(m, "ftc: %d\n", q->first_to_check); | 60 | seq_printf(m, "ftc: %d last_move: %d\n", q->first_to_check, q->last_move); |
61 | seq_printf(m, "last_move: %d\n", q->last_move); | 61 | seq_printf(m, "polling: %d ack start: %d ack count: %d\n", |
62 | seq_printf(m, "polling: %d\n", q->u.in.polling); | 62 | q->u.in.polling, q->u.in.ack_start, q->u.in.ack_count); |
63 | seq_printf(m, "ack start: %d\n", q->u.in.ack_start); | ||
64 | seq_printf(m, "ack count: %d\n", q->u.in.ack_count); | ||
65 | seq_printf(m, "slsb buffer states:\n"); | 63 | seq_printf(m, "slsb buffer states:\n"); |
66 | seq_printf(m, "|0 |8 |16 |24 |32 |40 |48 |56 63|\n"); | 64 | seq_printf(m, "|0 |8 |16 |24 |32 |40 |48 |56 63|\n"); |
67 | 65 | ||
@@ -110,7 +108,6 @@ static ssize_t qstat_seq_write(struct file *file, const char __user *buf, | |||
110 | 108 | ||
111 | if (!q) | 109 | if (!q) |
112 | return 0; | 110 | return 0; |
113 | |||
114 | if (q->is_input_q) | 111 | if (q->is_input_q) |
115 | xchg(q->irq_ptr->dsci, 1); | 112 | xchg(q->irq_ptr->dsci, 1); |
116 | local_bh_disable(); | 113 | local_bh_disable(); |
@@ -134,6 +131,98 @@ static const struct file_operations debugfs_fops = { | |||
134 | .release = single_release, | 131 | .release = single_release, |
135 | }; | 132 | }; |
136 | 133 | ||
134 | static char *qperf_names[] = { | ||
135 | "Assumed adapter interrupts", | ||
136 | "QDIO interrupts", | ||
137 | "Requested PCIs", | ||
138 | "Inbound tasklet runs", | ||
139 | "Inbound tasklet resched", | ||
140 | "Inbound tasklet resched2", | ||
141 | "Outbound tasklet runs", | ||
142 | "SIGA read", | ||
143 | "SIGA write", | ||
144 | "SIGA sync", | ||
145 | "Inbound calls", | ||
146 | "Inbound handler", | ||
147 | "Inbound stop_polling", | ||
148 | "Inbound queue full", | ||
149 | "Outbound calls", | ||
150 | "Outbound handler", | ||
151 | "Outbound fast_requeue", | ||
152 | "Outbound target_full", | ||
153 | "QEBSM eqbs", | ||
154 | "QEBSM eqbs partial", | ||
155 | "QEBSM sqbs", | ||
156 | "QEBSM sqbs partial" | ||
157 | }; | ||
158 | |||
159 | static int qperf_show(struct seq_file *m, void *v) | ||
160 | { | ||
161 | struct qdio_irq *irq_ptr = m->private; | ||
162 | unsigned int *stat; | ||
163 | int i; | ||
164 | |||
165 | if (!irq_ptr) | ||
166 | return 0; | ||
167 | if (!irq_ptr->perf_stat_enabled) { | ||
168 | seq_printf(m, "disabled\n"); | ||
169 | return 0; | ||
170 | } | ||
171 | stat = (unsigned int *)&irq_ptr->perf_stat; | ||
172 | |||
173 | for (i = 0; i < ARRAY_SIZE(qperf_names); i++) | ||
174 | seq_printf(m, "%26s:\t%u\n", | ||
175 | qperf_names[i], *(stat + i)); | ||
176 | return 0; | ||
177 | } | ||
178 | |||
179 | static ssize_t qperf_seq_write(struct file *file, const char __user *ubuf, | ||
180 | size_t count, loff_t *off) | ||
181 | { | ||
182 | struct seq_file *seq = file->private_data; | ||
183 | struct qdio_irq *irq_ptr = seq->private; | ||
184 | unsigned long val; | ||
185 | char buf[8]; | ||
186 | int ret; | ||
187 | |||
188 | if (!irq_ptr) | ||
189 | return 0; | ||
190 | if (count >= sizeof(buf)) | ||
191 | return -EINVAL; | ||
192 | if (copy_from_user(&buf, ubuf, count)) | ||
193 | return -EFAULT; | ||
194 | buf[count] = 0; | ||
195 | |||
196 | ret = strict_strtoul(buf, 10, &val); | ||
197 | if (ret < 0) | ||
198 | return ret; | ||
199 | |||
200 | switch (val) { | ||
201 | case 0: | ||
202 | irq_ptr->perf_stat_enabled = 0; | ||
203 | memset(&irq_ptr->perf_stat, 0, sizeof(irq_ptr->perf_stat)); | ||
204 | break; | ||
205 | case 1: | ||
206 | irq_ptr->perf_stat_enabled = 1; | ||
207 | break; | ||
208 | } | ||
209 | return count; | ||
210 | } | ||
211 | |||
212 | static int qperf_seq_open(struct inode *inode, struct file *filp) | ||
213 | { | ||
214 | return single_open(filp, qperf_show, | ||
215 | filp->f_path.dentry->d_inode->i_private); | ||
216 | } | ||
217 | |||
218 | static struct file_operations debugfs_perf_fops = { | ||
219 | .owner = THIS_MODULE, | ||
220 | .open = qperf_seq_open, | ||
221 | .read = seq_read, | ||
222 | .write = qperf_seq_write, | ||
223 | .llseek = seq_lseek, | ||
224 | .release = single_release, | ||
225 | }; | ||
137 | static void setup_debugfs_entry(struct qdio_q *q, struct ccw_device *cdev) | 226 | static void setup_debugfs_entry(struct qdio_q *q, struct ccw_device *cdev) |
138 | { | 227 | { |
139 | char name[QDIO_DEBUGFS_NAME_LEN]; | 228 | char name[QDIO_DEBUGFS_NAME_LEN]; |
@@ -156,6 +245,14 @@ void qdio_setup_debug_entries(struct qdio_irq *irq_ptr, struct ccw_device *cdev) | |||
156 | debugfs_root); | 245 | debugfs_root); |
157 | if (IS_ERR(irq_ptr->debugfs_dev)) | 246 | if (IS_ERR(irq_ptr->debugfs_dev)) |
158 | irq_ptr->debugfs_dev = NULL; | 247 | irq_ptr->debugfs_dev = NULL; |
248 | |||
249 | irq_ptr->debugfs_perf = debugfs_create_file("statistics", | ||
250 | S_IFREG | S_IRUGO | S_IWUSR, | ||
251 | irq_ptr->debugfs_dev, irq_ptr, | ||
252 | &debugfs_perf_fops); | ||
253 | if (IS_ERR(irq_ptr->debugfs_perf)) | ||
254 | irq_ptr->debugfs_perf = NULL; | ||
255 | |||
159 | for_each_input_queue(irq_ptr, q, i) | 256 | for_each_input_queue(irq_ptr, q, i) |
160 | setup_debugfs_entry(q, cdev); | 257 | setup_debugfs_entry(q, cdev); |
161 | for_each_output_queue(irq_ptr, q, i) | 258 | for_each_output_queue(irq_ptr, q, i) |
@@ -171,6 +268,7 @@ void qdio_shutdown_debug_entries(struct qdio_irq *irq_ptr, struct ccw_device *cd | |||
171 | debugfs_remove(q->debugfs_q); | 268 | debugfs_remove(q->debugfs_q); |
172 | for_each_output_queue(irq_ptr, q, i) | 269 | for_each_output_queue(irq_ptr, q, i) |
173 | debugfs_remove(q->debugfs_q); | 270 | debugfs_remove(q->debugfs_q); |
271 | debugfs_remove(irq_ptr->debugfs_perf); | ||
174 | debugfs_remove(irq_ptr->debugfs_dev); | 272 | debugfs_remove(irq_ptr->debugfs_dev); |
175 | } | 273 | } |
176 | 274 | ||
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index b2275c5000e..999fe80c405 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c | |||
@@ -22,7 +22,6 @@ | |||
22 | #include "device.h" | 22 | #include "device.h" |
23 | #include "qdio.h" | 23 | #include "qdio.h" |
24 | #include "qdio_debug.h" | 24 | #include "qdio_debug.h" |
25 | #include "qdio_perf.h" | ||
26 | 25 | ||
27 | MODULE_AUTHOR("Utz Bacher <utz.bacher@de.ibm.com>,"\ | 26 | MODULE_AUTHOR("Utz Bacher <utz.bacher@de.ibm.com>,"\ |
28 | "Jan Glauber <jang@linux.vnet.ibm.com>"); | 27 | "Jan Glauber <jang@linux.vnet.ibm.com>"); |
@@ -126,7 +125,7 @@ static int qdio_do_eqbs(struct qdio_q *q, unsigned char *state, | |||
126 | int rc; | 125 | int rc; |
127 | 126 | ||
128 | BUG_ON(!q->irq_ptr->sch_token); | 127 | BUG_ON(!q->irq_ptr->sch_token); |
129 | qdio_perf_stat_inc(&perf_stats.debug_eqbs_all); | 128 | qperf_inc(q, eqbs); |
130 | 129 | ||
131 | if (!q->is_input_q) | 130 | if (!q->is_input_q) |
132 | nr += q->irq_ptr->nr_input_qs; | 131 | nr += q->irq_ptr->nr_input_qs; |
@@ -139,7 +138,7 @@ again: | |||
139 | * buffers later. | 138 | * buffers later. |
140 | */ | 139 | */ |
141 | if ((ccq == 96) && (count != tmp_count)) { | 140 | if ((ccq == 96) && (count != tmp_count)) { |
142 | qdio_perf_stat_inc(&perf_stats.debug_eqbs_incomplete); | 141 | qperf_inc(q, eqbs_partial); |
143 | return (count - tmp_count); | 142 | return (count - tmp_count); |
144 | } | 143 | } |
145 | 144 | ||
@@ -182,7 +181,7 @@ static int qdio_do_sqbs(struct qdio_q *q, unsigned char state, int start, | |||
182 | return 0; | 181 | return 0; |
183 | 182 | ||
184 | BUG_ON(!q->irq_ptr->sch_token); | 183 | BUG_ON(!q->irq_ptr->sch_token); |
185 | qdio_perf_stat_inc(&perf_stats.debug_sqbs_all); | 184 | qperf_inc(q, sqbs); |
186 | 185 | ||
187 | if (!q->is_input_q) | 186 | if (!q->is_input_q) |
188 | nr += q->irq_ptr->nr_input_qs; | 187 | nr += q->irq_ptr->nr_input_qs; |
@@ -191,7 +190,7 @@ again: | |||
191 | rc = qdio_check_ccq(q, ccq); | 190 | rc = qdio_check_ccq(q, ccq); |
192 | if (rc == 1) { | 191 | if (rc == 1) { |
193 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "SQBS again:%2d", ccq); | 192 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "SQBS again:%2d", ccq); |
194 | qdio_perf_stat_inc(&perf_stats.debug_sqbs_incomplete); | 193 | qperf_inc(q, sqbs_partial); |
195 | goto again; | 194 | goto again; |
196 | } | 195 | } |
197 | if (rc < 0) { | 196 | if (rc < 0) { |
@@ -285,7 +284,7 @@ static inline int qdio_siga_sync(struct qdio_q *q, unsigned int output, | |||
285 | return 0; | 284 | return 0; |
286 | 285 | ||
287 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-s:%1d", q->nr); | 286 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-s:%1d", q->nr); |
288 | qdio_perf_stat_inc(&perf_stats.siga_sync); | 287 | qperf_inc(q, siga_sync); |
289 | 288 | ||
290 | cc = do_siga_sync(q->irq_ptr->schid, output, input); | 289 | cc = do_siga_sync(q->irq_ptr->schid, output, input); |
291 | if (cc) | 290 | if (cc) |
@@ -350,7 +349,7 @@ static inline int qdio_siga_input(struct qdio_q *q) | |||
350 | int cc; | 349 | int cc; |
351 | 350 | ||
352 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-r:%1d", q->nr); | 351 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-r:%1d", q->nr); |
353 | qdio_perf_stat_inc(&perf_stats.siga_in); | 352 | qperf_inc(q, siga_read); |
354 | 353 | ||
355 | cc = do_siga_input(q->irq_ptr->schid, q->mask); | 354 | cc = do_siga_input(q->irq_ptr->schid, q->mask); |
356 | if (cc) | 355 | if (cc) |
@@ -382,7 +381,7 @@ static inline void qdio_stop_polling(struct qdio_q *q) | |||
382 | return; | 381 | return; |
383 | 382 | ||
384 | q->u.in.polling = 0; | 383 | q->u.in.polling = 0; |
385 | qdio_perf_stat_inc(&perf_stats.debug_stop_polling); | 384 | qperf_inc(q, stop_polling); |
386 | 385 | ||
387 | /* show the card that we are not polling anymore */ | 386 | /* show the card that we are not polling anymore */ |
388 | if (is_qebsm(q)) { | 387 | if (is_qebsm(q)) { |
@@ -400,7 +399,7 @@ static void announce_buffer_error(struct qdio_q *q, int count) | |||
400 | /* special handling for no target buffer empty */ | 399 | /* special handling for no target buffer empty */ |
401 | if ((!q->is_input_q && | 400 | if ((!q->is_input_q && |
402 | (q->sbal[q->first_to_check]->element[15].flags & 0xff) == 0x10)) { | 401 | (q->sbal[q->first_to_check]->element[15].flags & 0xff) == 0x10)) { |
403 | qdio_perf_stat_inc(&perf_stats.outbound_target_full); | 402 | qperf_inc(q, target_full); |
404 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "OUTFULL FTC:%02x", | 403 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "OUTFULL FTC:%02x", |
405 | q->first_to_check); | 404 | q->first_to_check); |
406 | return; | 405 | return; |
@@ -487,7 +486,7 @@ static int get_inbound_buffer_frontier(struct qdio_q *q) | |||
487 | inbound_primed(q, count); | 486 | inbound_primed(q, count); |
488 | q->first_to_check = add_buf(q->first_to_check, count); | 487 | q->first_to_check = add_buf(q->first_to_check, count); |
489 | if (atomic_sub(count, &q->nr_buf_used) == 0) | 488 | if (atomic_sub(count, &q->nr_buf_used) == 0) |
490 | qdio_perf_stat_inc(&perf_stats.inbound_queue_full); | 489 | qperf_inc(q, inbound_queue_full); |
491 | break; | 490 | break; |
492 | case SLSB_P_INPUT_ERROR: | 491 | case SLSB_P_INPUT_ERROR: |
493 | announce_buffer_error(q, count); | 492 | announce_buffer_error(q, count); |
@@ -567,9 +566,10 @@ static void qdio_kick_handler(struct qdio_q *q) | |||
567 | count = sub_buf(end, start); | 566 | count = sub_buf(end, start); |
568 | 567 | ||
569 | if (q->is_input_q) { | 568 | if (q->is_input_q) { |
570 | qdio_perf_stat_inc(&perf_stats.inbound_handler); | 569 | qperf_inc(q, inbound_handler); |
571 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "kih s:%02x c:%02x", start, count); | 570 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "kih s:%02x c:%02x", start, count); |
572 | } else | 571 | } else |
572 | qperf_inc(q, outbound_handler); | ||
573 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "koh: s:%02x c:%02x", | 573 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "koh: s:%02x c:%02x", |
574 | start, count); | 574 | start, count); |
575 | 575 | ||
@@ -583,24 +583,28 @@ static void qdio_kick_handler(struct qdio_q *q) | |||
583 | 583 | ||
584 | static void __qdio_inbound_processing(struct qdio_q *q) | 584 | static void __qdio_inbound_processing(struct qdio_q *q) |
585 | { | 585 | { |
586 | qdio_perf_stat_inc(&perf_stats.tasklet_inbound); | 586 | qperf_inc(q, tasklet_inbound); |
587 | again: | 587 | again: |
588 | if (!qdio_inbound_q_moved(q)) | 588 | if (!qdio_inbound_q_moved(q)) |
589 | return; | 589 | return; |
590 | 590 | ||
591 | qdio_kick_handler(q); | 591 | qdio_kick_handler(q); |
592 | 592 | ||
593 | if (!qdio_inbound_q_done(q)) | 593 | if (!qdio_inbound_q_done(q)) { |
594 | /* means poll time is not yet over */ | 594 | /* means poll time is not yet over */ |
595 | qperf_inc(q, tasklet_inbound_resched); | ||
595 | goto again; | 596 | goto again; |
597 | } | ||
596 | 598 | ||
597 | qdio_stop_polling(q); | 599 | qdio_stop_polling(q); |
598 | /* | 600 | /* |
599 | * We need to check again to not lose initiative after | 601 | * We need to check again to not lose initiative after |
600 | * resetting the ACK state. | 602 | * resetting the ACK state. |
601 | */ | 603 | */ |
602 | if (!qdio_inbound_q_done(q)) | 604 | if (!qdio_inbound_q_done(q)) { |
605 | qperf_inc(q, tasklet_inbound_resched2); | ||
603 | goto again; | 606 | goto again; |
607 | } | ||
604 | } | 608 | } |
605 | 609 | ||
606 | void qdio_inbound_processing(unsigned long data) | 610 | void qdio_inbound_processing(unsigned long data) |
@@ -688,7 +692,7 @@ static int qdio_kick_outbound_q(struct qdio_q *q) | |||
688 | return 0; | 692 | return 0; |
689 | 693 | ||
690 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-w:%1d", q->nr); | 694 | DBF_DEV_EVENT(DBF_INFO, q->irq_ptr, "siga-w:%1d", q->nr); |
691 | qdio_perf_stat_inc(&perf_stats.siga_out); | 695 | qperf_inc(q, siga_write); |
692 | 696 | ||
693 | cc = qdio_siga_output(q, &busy_bit); | 697 | cc = qdio_siga_output(q, &busy_bit); |
694 | switch (cc) { | 698 | switch (cc) { |
@@ -711,7 +715,7 @@ static int qdio_kick_outbound_q(struct qdio_q *q) | |||
711 | 715 | ||
712 | static void __qdio_outbound_processing(struct qdio_q *q) | 716 | static void __qdio_outbound_processing(struct qdio_q *q) |
713 | { | 717 | { |
714 | qdio_perf_stat_inc(&perf_stats.tasklet_outbound); | 718 | qperf_inc(q, tasklet_outbound); |
715 | BUG_ON(atomic_read(&q->nr_buf_used) < 0); | 719 | BUG_ON(atomic_read(&q->nr_buf_used) < 0); |
716 | 720 | ||
717 | if (qdio_outbound_q_moved(q)) | 721 | if (qdio_outbound_q_moved(q)) |
@@ -739,12 +743,9 @@ static void __qdio_outbound_processing(struct qdio_q *q) | |||
739 | */ | 743 | */ |
740 | if (qdio_outbound_q_done(q)) | 744 | if (qdio_outbound_q_done(q)) |
741 | del_timer(&q->u.out.timer); | 745 | del_timer(&q->u.out.timer); |
742 | else { | 746 | else |
743 | if (!timer_pending(&q->u.out.timer)) { | 747 | if (!timer_pending(&q->u.out.timer)) |
744 | mod_timer(&q->u.out.timer, jiffies + 10 * HZ); | 748 | mod_timer(&q->u.out.timer, jiffies + 10 * HZ); |
745 | qdio_perf_stat_inc(&perf_stats.debug_tl_out_timer); | ||
746 | } | ||
747 | } | ||
748 | return; | 749 | return; |
749 | 750 | ||
750 | sched: | 751 | sched: |
@@ -784,7 +785,7 @@ static inline void qdio_check_outbound_after_thinint(struct qdio_q *q) | |||
784 | 785 | ||
785 | static void __tiqdio_inbound_processing(struct qdio_q *q) | 786 | static void __tiqdio_inbound_processing(struct qdio_q *q) |
786 | { | 787 | { |
787 | qdio_perf_stat_inc(&perf_stats.thinint_inbound); | 788 | qperf_inc(q, tasklet_inbound); |
788 | qdio_sync_after_thinint(q); | 789 | qdio_sync_after_thinint(q); |
789 | 790 | ||
790 | /* | 791 | /* |
@@ -799,7 +800,7 @@ static void __tiqdio_inbound_processing(struct qdio_q *q) | |||
799 | qdio_kick_handler(q); | 800 | qdio_kick_handler(q); |
800 | 801 | ||
801 | if (!qdio_inbound_q_done(q)) { | 802 | if (!qdio_inbound_q_done(q)) { |
802 | qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop); | 803 | qperf_inc(q, tasklet_inbound_resched); |
803 | if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) { | 804 | if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) { |
804 | tasklet_schedule(&q->tasklet); | 805 | tasklet_schedule(&q->tasklet); |
805 | return; | 806 | return; |
@@ -812,7 +813,7 @@ static void __tiqdio_inbound_processing(struct qdio_q *q) | |||
812 | * resetting the ACK state. | 813 | * resetting the ACK state. |
813 | */ | 814 | */ |
814 | if (!qdio_inbound_q_done(q)) { | 815 | if (!qdio_inbound_q_done(q)) { |
815 | qdio_perf_stat_inc(&perf_stats.thinint_inbound_loop2); | 816 | qperf_inc(q, tasklet_inbound_resched2); |
816 | if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) | 817 | if (likely(q->irq_ptr->state != QDIO_IRQ_STATE_STOPPED)) |
817 | tasklet_schedule(&q->tasklet); | 818 | tasklet_schedule(&q->tasklet); |
818 | } | 819 | } |
@@ -851,8 +852,6 @@ static void qdio_int_handler_pci(struct qdio_irq *irq_ptr) | |||
851 | if (unlikely(irq_ptr->state == QDIO_IRQ_STATE_STOPPED)) | 852 | if (unlikely(irq_ptr->state == QDIO_IRQ_STATE_STOPPED)) |
852 | return; | 853 | return; |
853 | 854 | ||
854 | qdio_perf_stat_inc(&perf_stats.pci_int); | ||
855 | |||
856 | for_each_input_queue(irq_ptr, q, i) | 855 | for_each_input_queue(irq_ptr, q, i) |
857 | tasklet_schedule(&q->tasklet); | 856 | tasklet_schedule(&q->tasklet); |
858 | 857 | ||
@@ -923,8 +922,6 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm, | |||
923 | struct qdio_irq *irq_ptr = cdev->private->qdio_data; | 922 | struct qdio_irq *irq_ptr = cdev->private->qdio_data; |
924 | int cstat, dstat; | 923 | int cstat, dstat; |
925 | 924 | ||
926 | qdio_perf_stat_inc(&perf_stats.qdio_int); | ||
927 | |||
928 | if (!intparm || !irq_ptr) { | 925 | if (!intparm || !irq_ptr) { |
929 | DBF_ERROR("qint:%4x", cdev->private->schid.sch_no); | 926 | DBF_ERROR("qint:%4x", cdev->private->schid.sch_no); |
930 | return; | 927 | return; |
@@ -1383,6 +1380,8 @@ static int handle_inbound(struct qdio_q *q, unsigned int callflags, | |||
1383 | { | 1380 | { |
1384 | int used, diff; | 1381 | int used, diff; |
1385 | 1382 | ||
1383 | qperf_inc(q, inbound_call); | ||
1384 | |||
1386 | if (!q->u.in.polling) | 1385 | if (!q->u.in.polling) |
1387 | goto set; | 1386 | goto set; |
1388 | 1387 | ||
@@ -1438,14 +1437,16 @@ static int handle_outbound(struct qdio_q *q, unsigned int callflags, | |||
1438 | unsigned char state; | 1437 | unsigned char state; |
1439 | int used, rc = 0; | 1438 | int used, rc = 0; |
1440 | 1439 | ||
1441 | qdio_perf_stat_inc(&perf_stats.outbound_handler); | 1440 | qperf_inc(q, outbound_call); |
1442 | 1441 | ||
1443 | count = set_buf_states(q, bufnr, SLSB_CU_OUTPUT_PRIMED, count); | 1442 | count = set_buf_states(q, bufnr, SLSB_CU_OUTPUT_PRIMED, count); |
1444 | used = atomic_add_return(count, &q->nr_buf_used); | 1443 | used = atomic_add_return(count, &q->nr_buf_used); |
1445 | BUG_ON(used > QDIO_MAX_BUFFERS_PER_Q); | 1444 | BUG_ON(used > QDIO_MAX_BUFFERS_PER_Q); |
1446 | 1445 | ||
1447 | if (callflags & QDIO_FLAG_PCI_OUT) | 1446 | if (callflags & QDIO_FLAG_PCI_OUT) { |
1448 | q->u.out.pci_out_enabled = 1; | 1447 | q->u.out.pci_out_enabled = 1; |
1448 | qperf_inc(q, pci_request_int); | ||
1449 | } | ||
1449 | else | 1450 | else |
1450 | q->u.out.pci_out_enabled = 0; | 1451 | q->u.out.pci_out_enabled = 0; |
1451 | 1452 | ||
@@ -1484,7 +1485,7 @@ static int handle_outbound(struct qdio_q *q, unsigned int callflags, | |||
1484 | if (state != SLSB_CU_OUTPUT_PRIMED) | 1485 | if (state != SLSB_CU_OUTPUT_PRIMED) |
1485 | rc = qdio_kick_outbound_q(q); | 1486 | rc = qdio_kick_outbound_q(q); |
1486 | else | 1487 | else |
1487 | qdio_perf_stat_inc(&perf_stats.fast_requeue); | 1488 | qperf_inc(q, fast_requeue); |
1488 | 1489 | ||
1489 | out: | 1490 | out: |
1490 | tasklet_schedule(&q->tasklet); | 1491 | tasklet_schedule(&q->tasklet); |
@@ -1540,16 +1541,11 @@ static int __init init_QDIO(void) | |||
1540 | rc = qdio_debug_init(); | 1541 | rc = qdio_debug_init(); |
1541 | if (rc) | 1542 | if (rc) |
1542 | goto out_ti; | 1543 | goto out_ti; |
1543 | rc = qdio_setup_perf_stats(); | ||
1544 | if (rc) | ||
1545 | goto out_debug; | ||
1546 | rc = tiqdio_register_thinints(); | 1544 | rc = tiqdio_register_thinints(); |
1547 | if (rc) | 1545 | if (rc) |
1548 | goto out_perf; | 1546 | goto out_debug; |
1549 | return 0; | 1547 | return 0; |
1550 | 1548 | ||
1551 | out_perf: | ||
1552 | qdio_remove_perf_stats(); | ||
1553 | out_debug: | 1549 | out_debug: |
1554 | qdio_debug_exit(); | 1550 | qdio_debug_exit(); |
1555 | out_ti: | 1551 | out_ti: |
@@ -1563,7 +1559,6 @@ static void __exit exit_QDIO(void) | |||
1563 | { | 1559 | { |
1564 | tiqdio_unregister_thinints(); | 1560 | tiqdio_unregister_thinints(); |
1565 | tiqdio_free_memory(); | 1561 | tiqdio_free_memory(); |
1566 | qdio_remove_perf_stats(); | ||
1567 | qdio_debug_exit(); | 1562 | qdio_debug_exit(); |
1568 | qdio_setup_exit(); | 1563 | qdio_setup_exit(); |
1569 | } | 1564 | } |
diff --git a/drivers/s390/cio/qdio_perf.c b/drivers/s390/cio/qdio_perf.c deleted file mode 100644 index 54f7c325a3e..00000000000 --- a/drivers/s390/cio/qdio_perf.c +++ /dev/null | |||
@@ -1,149 +0,0 @@ | |||
1 | /* | ||
2 | * drivers/s390/cio/qdio_perf.c | ||
3 | * | ||
4 | * Copyright IBM Corp. 2008 | ||
5 | * | ||
6 | * Author: Jan Glauber (jang@linux.vnet.ibm.com) | ||
7 | */ | ||
8 | #include <linux/kernel.h> | ||
9 | #include <linux/proc_fs.h> | ||
10 | #include <linux/seq_file.h> | ||
11 | #include <asm/ccwdev.h> | ||
12 | |||
13 | #include "cio.h" | ||
14 | #include "css.h" | ||
15 | #include "device.h" | ||
16 | #include "ioasm.h" | ||
17 | #include "chsc.h" | ||
18 | #include "qdio_debug.h" | ||
19 | #include "qdio_perf.h" | ||
20 | |||
21 | int qdio_performance_stats; | ||
22 | struct qdio_perf_stats perf_stats; | ||
23 | |||
24 | #ifdef CONFIG_PROC_FS | ||
25 | static struct proc_dir_entry *qdio_perf_pde; | ||
26 | #endif | ||
27 | |||
28 | /* | ||
29 | * procfs functions | ||
30 | */ | ||
31 | static int qdio_perf_proc_show(struct seq_file *m, void *v) | ||
32 | { | ||
33 | seq_printf(m, "Number of qdio interrupts\t\t\t: %li\n", | ||
34 | (long)atomic_long_read(&perf_stats.qdio_int)); | ||
35 | seq_printf(m, "Number of PCI interrupts\t\t\t: %li\n", | ||
36 | (long)atomic_long_read(&perf_stats.pci_int)); | ||
37 | seq_printf(m, "Number of adapter interrupts\t\t\t: %li\n", | ||
38 | (long)atomic_long_read(&perf_stats.thin_int)); | ||
39 | seq_printf(m, "\n"); | ||
40 | seq_printf(m, "Inbound tasklet runs\t\t\t\t: %li\n", | ||
41 | (long)atomic_long_read(&perf_stats.tasklet_inbound)); | ||
42 | seq_printf(m, "Outbound tasklet runs\t\t\t\t: %li\n", | ||
43 | (long)atomic_long_read(&perf_stats.tasklet_outbound)); | ||
44 | seq_printf(m, "Adapter interrupt tasklet runs/loops\t\t: %li/%li\n", | ||
45 | (long)atomic_long_read(&perf_stats.tasklet_thinint), | ||
46 | (long)atomic_long_read(&perf_stats.tasklet_thinint_loop)); | ||
47 | seq_printf(m, "Adapter interrupt inbound tasklet runs/loops\t: %li/%li\n", | ||
48 | (long)atomic_long_read(&perf_stats.thinint_inbound), | ||
49 | (long)atomic_long_read(&perf_stats.thinint_inbound_loop)); | ||
50 | seq_printf(m, "\n"); | ||
51 | seq_printf(m, "Number of SIGA In issued\t\t\t: %li\n", | ||
52 | (long)atomic_long_read(&perf_stats.siga_in)); | ||
53 | seq_printf(m, "Number of SIGA Out issued\t\t\t: %li\n", | ||
54 | (long)atomic_long_read(&perf_stats.siga_out)); | ||
55 | seq_printf(m, "Number of SIGA Sync issued\t\t\t: %li\n", | ||
56 | (long)atomic_long_read(&perf_stats.siga_sync)); | ||
57 | seq_printf(m, "\n"); | ||
58 | seq_printf(m, "Number of inbound transfers\t\t\t: %li\n", | ||
59 | (long)atomic_long_read(&perf_stats.inbound_handler)); | ||
60 | seq_printf(m, "Number of outbound transfers\t\t\t: %li\n", | ||
61 | (long)atomic_long_read(&perf_stats.outbound_handler)); | ||
62 | seq_printf(m, "\n"); | ||
63 | seq_printf(m, "Number of fast requeues (outg. SBAL w/o SIGA)\t: %li\n", | ||
64 | (long)atomic_long_read(&perf_stats.fast_requeue)); | ||
65 | seq_printf(m, "Number of outbound target full condition\t: %li\n", | ||
66 | (long)atomic_long_read(&perf_stats.outbound_target_full)); | ||
67 | seq_printf(m, "Number of inbound queue full condition\t\t: %li\n", | ||
68 | (long)atomic_long_read(&perf_stats.inbound_queue_full)); | ||
69 | seq_printf(m, "Number of outbound tasklet mod_timer calls\t: %li\n", | ||
70 | (long)atomic_long_read(&perf_stats.debug_tl_out_timer)); | ||
71 | seq_printf(m, "Number of stop polling calls\t\t\t: %li\n", | ||
72 | (long)atomic_long_read(&perf_stats.debug_stop_polling)); | ||
73 | seq_printf(m, "AI inbound tasklet loops after stop polling\t: %li\n", | ||
74 | (long)atomic_long_read(&perf_stats.thinint_inbound_loop2)); | ||
75 | seq_printf(m, "QEBSM EQBS total/incomplete\t\t\t: %li/%li\n", | ||
76 | (long)atomic_long_read(&perf_stats.debug_eqbs_all), | ||
77 | (long)atomic_long_read(&perf_stats.debug_eqbs_incomplete)); | ||
78 | seq_printf(m, "QEBSM SQBS total/incomplete\t\t\t: %li/%li\n", | ||
79 | (long)atomic_long_read(&perf_stats.debug_sqbs_all), | ||
80 | (long)atomic_long_read(&perf_stats.debug_sqbs_incomplete)); | ||
81 | seq_printf(m, "\n"); | ||
82 | return 0; | ||
83 | } | ||
84 | static int qdio_perf_seq_open(struct inode *inode, struct file *filp) | ||
85 | { | ||
86 | return single_open(filp, qdio_perf_proc_show, NULL); | ||
87 | } | ||
88 | |||
89 | static const struct file_operations qdio_perf_proc_fops = { | ||
90 | .owner = THIS_MODULE, | ||
91 | .open = qdio_perf_seq_open, | ||
92 | .read = seq_read, | ||
93 | .llseek = seq_lseek, | ||
94 | .release = single_release, | ||
95 | }; | ||
96 | |||
97 | /* | ||
98 | * sysfs functions | ||
99 | */ | ||
100 | static ssize_t qdio_perf_stats_show(struct bus_type *bus, char *buf) | ||
101 | { | ||
102 | return sprintf(buf, "%i\n", qdio_performance_stats ? 1 : 0); | ||
103 | } | ||
104 | |||
105 | static ssize_t qdio_perf_stats_store(struct bus_type *bus, | ||
106 | const char *buf, size_t count) | ||
107 | { | ||
108 | unsigned long i; | ||
109 | |||
110 | if (strict_strtoul(buf, 16, &i) != 0) | ||
111 | return -EINVAL; | ||
112 | if ((i != 0) && (i != 1)) | ||
113 | return -EINVAL; | ||
114 | if (i == qdio_performance_stats) | ||
115 | return count; | ||
116 | |||
117 | qdio_performance_stats = i; | ||
118 | /* reset performance statistics */ | ||
119 | if (i == 0) | ||
120 | memset(&perf_stats, 0, sizeof(struct qdio_perf_stats)); | ||
121 | return count; | ||
122 | } | ||
123 | |||
124 | static BUS_ATTR(qdio_performance_stats, 0644, qdio_perf_stats_show, | ||
125 | qdio_perf_stats_store); | ||
126 | |||
127 | int __init qdio_setup_perf_stats(void) | ||
128 | { | ||
129 | int rc; | ||
130 | |||
131 | rc = bus_create_file(&ccw_bus_type, &bus_attr_qdio_performance_stats); | ||
132 | if (rc) | ||
133 | return rc; | ||
134 | |||
135 | #ifdef CONFIG_PROC_FS | ||
136 | memset(&perf_stats, 0, sizeof(struct qdio_perf_stats)); | ||
137 | qdio_perf_pde = proc_create("qdio_perf", S_IFREG | S_IRUGO, | ||
138 | NULL, &qdio_perf_proc_fops); | ||
139 | #endif | ||
140 | return 0; | ||
141 | } | ||
142 | |||
143 | void qdio_remove_perf_stats(void) | ||
144 | { | ||
145 | #ifdef CONFIG_PROC_FS | ||
146 | remove_proc_entry("qdio_perf", NULL); | ||
147 | #endif | ||
148 | bus_remove_file(&ccw_bus_type, &bus_attr_qdio_performance_stats); | ||
149 | } | ||
diff --git a/drivers/s390/cio/qdio_perf.h b/drivers/s390/cio/qdio_perf.h deleted file mode 100644 index 12454231dc8..00000000000 --- a/drivers/s390/cio/qdio_perf.h +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /* | ||
2 | * drivers/s390/cio/qdio_perf.h | ||
3 | * | ||
4 | * Copyright IBM Corp. 2008 | ||
5 | * | ||
6 | * Author: Jan Glauber (jang@linux.vnet.ibm.com) | ||
7 | */ | ||
8 | #ifndef QDIO_PERF_H | ||
9 | #define QDIO_PERF_H | ||
10 | |||
11 | #include <linux/types.h> | ||
12 | #include <asm/atomic.h> | ||
13 | |||
14 | struct qdio_perf_stats { | ||
15 | /* interrupt handler calls */ | ||
16 | atomic_long_t qdio_int; | ||
17 | atomic_long_t pci_int; | ||
18 | atomic_long_t thin_int; | ||
19 | |||
20 | /* tasklet runs */ | ||
21 | atomic_long_t tasklet_inbound; | ||
22 | atomic_long_t tasklet_outbound; | ||
23 | atomic_long_t tasklet_thinint; | ||
24 | atomic_long_t tasklet_thinint_loop; | ||
25 | atomic_long_t thinint_inbound; | ||
26 | atomic_long_t thinint_inbound_loop; | ||
27 | atomic_long_t thinint_inbound_loop2; | ||
28 | |||
29 | /* signal adapter calls */ | ||
30 | atomic_long_t siga_out; | ||
31 | atomic_long_t siga_in; | ||
32 | atomic_long_t siga_sync; | ||
33 | |||
34 | /* misc */ | ||
35 | atomic_long_t inbound_handler; | ||
36 | atomic_long_t outbound_handler; | ||
37 | atomic_long_t fast_requeue; | ||
38 | atomic_long_t outbound_target_full; | ||
39 | atomic_long_t inbound_queue_full; | ||
40 | |||
41 | /* for debugging */ | ||
42 | atomic_long_t debug_tl_out_timer; | ||
43 | atomic_long_t debug_stop_polling; | ||
44 | atomic_long_t debug_eqbs_all; | ||
45 | atomic_long_t debug_eqbs_incomplete; | ||
46 | atomic_long_t debug_sqbs_all; | ||
47 | atomic_long_t debug_sqbs_incomplete; | ||
48 | }; | ||
49 | |||
50 | extern struct qdio_perf_stats perf_stats; | ||
51 | extern int qdio_performance_stats; | ||
52 | |||
53 | static inline void qdio_perf_stat_inc(atomic_long_t *count) | ||
54 | { | ||
55 | if (qdio_performance_stats) | ||
56 | atomic_long_inc(count); | ||
57 | } | ||
58 | |||
59 | int qdio_setup_perf_stats(void); | ||
60 | void qdio_remove_perf_stats(void); | ||
61 | |||
62 | #endif | ||
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c index 981a77ea7ee..091d904d318 100644 --- a/drivers/s390/cio/qdio_thinint.c +++ b/drivers/s390/cio/qdio_thinint.c | |||
@@ -1,9 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/s390/cio/thinint_qdio.c | 2 | * linux/drivers/s390/cio/thinint_qdio.c |
3 | * | 3 | * |
4 | * thin interrupt support for qdio | 4 | * Copyright 2000,2009 IBM Corp. |
5 | * | ||
6 | * Copyright 2000-2008 IBM Corp. | ||
7 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com> | 5 | * Author(s): Utz Bacher <utz.bacher@de.ibm.com> |
8 | * Cornelia Huck <cornelia.huck@de.ibm.com> | 6 | * Cornelia Huck <cornelia.huck@de.ibm.com> |
9 | * Jan Glauber <jang@linux.vnet.ibm.com> | 7 | * Jan Glauber <jang@linux.vnet.ibm.com> |
@@ -19,7 +17,6 @@ | |||
19 | #include "ioasm.h" | 17 | #include "ioasm.h" |
20 | #include "qdio.h" | 18 | #include "qdio.h" |
21 | #include "qdio_debug.h" | 19 | #include "qdio_debug.h" |
22 | #include "qdio_perf.h" | ||
23 | 20 | ||
24 | /* | 21 | /* |
25 | * Restriction: only 63 iqdio subchannels would have its own indicator, | 22 | * Restriction: only 63 iqdio subchannels would have its own indicator, |
@@ -132,8 +129,6 @@ static void tiqdio_thinint_handler(void *ind, void *drv_data) | |||
132 | { | 129 | { |
133 | struct qdio_q *q; | 130 | struct qdio_q *q; |
134 | 131 | ||
135 | qdio_perf_stat_inc(&perf_stats.thin_int); | ||
136 | |||
137 | /* | 132 | /* |
138 | * SVS only when needed: issue SVS to benefit from iqdio interrupt | 133 | * SVS only when needed: issue SVS to benefit from iqdio interrupt |
139 | * avoidance (SVS clears adapter interrupt suppression overwrite) | 134 | * avoidance (SVS clears adapter interrupt suppression overwrite) |
@@ -154,6 +149,7 @@ static void tiqdio_thinint_handler(void *ind, void *drv_data) | |||
154 | list_for_each_entry_rcu(q, &tiq_list, entry) | 149 | list_for_each_entry_rcu(q, &tiq_list, entry) |
155 | /* only process queues from changed sets */ | 150 | /* only process queues from changed sets */ |
156 | if (*q->irq_ptr->dsci) { | 151 | if (*q->irq_ptr->dsci) { |
152 | qperf_inc(q, adapter_int); | ||
157 | 153 | ||
158 | /* only clear it if the indicator is non-shared */ | 154 | /* only clear it if the indicator is non-shared */ |
159 | if (!shared_ind(q->irq_ptr)) | 155 | if (!shared_ind(q->irq_ptr)) |
diff --git a/drivers/s390/crypto/zcrypt_api.c b/drivers/s390/crypto/zcrypt_api.c index 0d4d18bdd45..c68be24e27d 100644 --- a/drivers/s390/crypto/zcrypt_api.c +++ b/drivers/s390/crypto/zcrypt_api.c | |||
@@ -393,10 +393,12 @@ static long zcrypt_rsa_crt(struct ica_rsa_modexpo_crt *crt) | |||
393 | * u_mult_inv > 128 bytes. | 393 | * u_mult_inv > 128 bytes. |
394 | */ | 394 | */ |
395 | if (copied == 0) { | 395 | if (copied == 0) { |
396 | int len; | 396 | unsigned int len; |
397 | spin_unlock_bh(&zcrypt_device_lock); | 397 | spin_unlock_bh(&zcrypt_device_lock); |
398 | /* len is max 256 / 2 - 120 = 8 */ | 398 | /* len is max 256 / 2 - 120 = 8 */ |
399 | len = crt->inputdatalength / 2 - 120; | 399 | len = crt->inputdatalength / 2 - 120; |
400 | if (len > sizeof(z1)) | ||
401 | return -EFAULT; | ||
400 | z1 = z2 = z3 = 0; | 402 | z1 = z2 = z3 = 0; |
401 | if (copy_from_user(&z1, crt->np_prime, len) || | 403 | if (copy_from_user(&z1, crt->np_prime, len) || |
402 | copy_from_user(&z2, crt->bp_key, len) || | 404 | copy_from_user(&z2, crt->bp_key, len) || |
diff --git a/drivers/s390/net/claw.c b/drivers/s390/net/claw.c index 3c77bfe0764..147bb1a69ab 100644 --- a/drivers/s390/net/claw.c +++ b/drivers/s390/net/claw.c | |||
@@ -3398,7 +3398,7 @@ claw_init(void) | |||
3398 | goto out_err; | 3398 | goto out_err; |
3399 | } | 3399 | } |
3400 | CLAW_DBF_TEXT(2, setup, "init_mod"); | 3400 | CLAW_DBF_TEXT(2, setup, "init_mod"); |
3401 | claw_root_dev = root_device_register("qeth"); | 3401 | claw_root_dev = root_device_register("claw"); |
3402 | ret = IS_ERR(claw_root_dev) ? PTR_ERR(claw_root_dev) : 0; | 3402 | ret = IS_ERR(claw_root_dev) ? PTR_ERR(claw_root_dev) : 0; |
3403 | if (ret) | 3403 | if (ret) |
3404 | goto register_err; | 3404 | goto register_err; |
diff --git a/drivers/sbus/char/bbc_envctrl.c b/drivers/sbus/char/bbc_envctrl.c index 7c815d3327f..28d86f9df83 100644 --- a/drivers/sbus/char/bbc_envctrl.c +++ b/drivers/sbus/char/bbc_envctrl.c | |||
@@ -522,6 +522,40 @@ static void attach_one_fan(struct bbc_i2c_bus *bp, struct of_device *op, | |||
522 | set_fan_speeds(fp); | 522 | set_fan_speeds(fp); |
523 | } | 523 | } |
524 | 524 | ||
525 | static void destroy_one_temp(struct bbc_cpu_temperature *tp) | ||
526 | { | ||
527 | bbc_i2c_detach(tp->client); | ||
528 | kfree(tp); | ||
529 | } | ||
530 | |||
531 | static void destroy_all_temps(struct bbc_i2c_bus *bp) | ||
532 | { | ||
533 | struct bbc_cpu_temperature *tp, *tpos; | ||
534 | |||
535 | list_for_each_entry_safe(tp, tpos, &bp->temps, bp_list) { | ||
536 | list_del(&tp->bp_list); | ||
537 | list_del(&tp->glob_list); | ||
538 | destroy_one_temp(tp); | ||
539 | } | ||
540 | } | ||
541 | |||
542 | static void destroy_one_fan(struct bbc_fan_control *fp) | ||
543 | { | ||
544 | bbc_i2c_detach(fp->client); | ||
545 | kfree(fp); | ||
546 | } | ||
547 | |||
548 | static void destroy_all_fans(struct bbc_i2c_bus *bp) | ||
549 | { | ||
550 | struct bbc_fan_control *fp, *fpos; | ||
551 | |||
552 | list_for_each_entry_safe(fp, fpos, &bp->fans, bp_list) { | ||
553 | list_del(&fp->bp_list); | ||
554 | list_del(&fp->glob_list); | ||
555 | destroy_one_fan(fp); | ||
556 | } | ||
557 | } | ||
558 | |||
525 | int bbc_envctrl_init(struct bbc_i2c_bus *bp) | 559 | int bbc_envctrl_init(struct bbc_i2c_bus *bp) |
526 | { | 560 | { |
527 | struct of_device *op; | 561 | struct of_device *op; |
@@ -541,6 +575,8 @@ int bbc_envctrl_init(struct bbc_i2c_bus *bp) | |||
541 | int err = PTR_ERR(kenvctrld_task); | 575 | int err = PTR_ERR(kenvctrld_task); |
542 | 576 | ||
543 | kenvctrld_task = NULL; | 577 | kenvctrld_task = NULL; |
578 | destroy_all_temps(bp); | ||
579 | destroy_all_fans(bp); | ||
544 | return err; | 580 | return err; |
545 | } | 581 | } |
546 | } | 582 | } |
@@ -548,35 +584,11 @@ int bbc_envctrl_init(struct bbc_i2c_bus *bp) | |||
548 | return 0; | 584 | return 0; |
549 | } | 585 | } |
550 | 586 | ||
551 | static void destroy_one_temp(struct bbc_cpu_temperature *tp) | ||
552 | { | ||
553 | bbc_i2c_detach(tp->client); | ||
554 | kfree(tp); | ||
555 | } | ||
556 | |||
557 | static void destroy_one_fan(struct bbc_fan_control *fp) | ||
558 | { | ||
559 | bbc_i2c_detach(fp->client); | ||
560 | kfree(fp); | ||
561 | } | ||
562 | |||
563 | void bbc_envctrl_cleanup(struct bbc_i2c_bus *bp) | 587 | void bbc_envctrl_cleanup(struct bbc_i2c_bus *bp) |
564 | { | 588 | { |
565 | struct bbc_cpu_temperature *tp, *tpos; | ||
566 | struct bbc_fan_control *fp, *fpos; | ||
567 | |||
568 | if (kenvctrld_task) | 589 | if (kenvctrld_task) |
569 | kthread_stop(kenvctrld_task); | 590 | kthread_stop(kenvctrld_task); |
570 | 591 | ||
571 | list_for_each_entry_safe(tp, tpos, &bp->temps, bp_list) { | 592 | destroy_all_temps(bp); |
572 | list_del(&tp->bp_list); | 593 | destroy_all_fans(bp); |
573 | list_del(&tp->glob_list); | ||
574 | destroy_one_temp(tp); | ||
575 | } | ||
576 | |||
577 | list_for_each_entry_safe(fp, fpos, &bp->fans, bp_list) { | ||
578 | list_del(&fp->bp_list); | ||
579 | list_del(&fp->glob_list); | ||
580 | destroy_one_fan(fp); | ||
581 | } | ||
582 | } | 594 | } |
diff --git a/drivers/scsi/cxgb3i/cxgb3i_offload.c b/drivers/scsi/cxgb3i/cxgb3i_offload.c index 26ffdcd5a43..15a00e8b712 100644 --- a/drivers/scsi/cxgb3i/cxgb3i_offload.c +++ b/drivers/scsi/cxgb3i/cxgb3i_offload.c | |||
@@ -1440,6 +1440,10 @@ void cxgb3i_c3cn_release(struct s3_conn *c3cn) | |||
1440 | static int is_cxgb3_dev(struct net_device *dev) | 1440 | static int is_cxgb3_dev(struct net_device *dev) |
1441 | { | 1441 | { |
1442 | struct cxgb3i_sdev_data *cdata; | 1442 | struct cxgb3i_sdev_data *cdata; |
1443 | struct net_device *ndev = dev; | ||
1444 | |||
1445 | if (dev->priv_flags & IFF_802_1Q_VLAN) | ||
1446 | ndev = vlan_dev_real_dev(dev); | ||
1443 | 1447 | ||
1444 | write_lock(&cdata_rwlock); | 1448 | write_lock(&cdata_rwlock); |
1445 | list_for_each_entry(cdata, &cdata_list, list) { | 1449 | list_for_each_entry(cdata, &cdata_list, list) { |
@@ -1447,7 +1451,7 @@ static int is_cxgb3_dev(struct net_device *dev) | |||
1447 | int i; | 1451 | int i; |
1448 | 1452 | ||
1449 | for (i = 0; i < ports->nports; i++) | 1453 | for (i = 0; i < ports->nports; i++) |
1450 | if (dev == ports->lldevs[i]) { | 1454 | if (ndev == ports->lldevs[i]) { |
1451 | write_unlock(&cdata_rwlock); | 1455 | write_unlock(&cdata_rwlock); |
1452 | return 1; | 1456 | return 1; |
1453 | } | 1457 | } |
@@ -1566,6 +1570,26 @@ out_err: | |||
1566 | return -EINVAL; | 1570 | return -EINVAL; |
1567 | } | 1571 | } |
1568 | 1572 | ||
1573 | /** | ||
1574 | * cxgb3i_find_dev - find the interface associated with the given address | ||
1575 | * @ipaddr: ip address | ||
1576 | */ | ||
1577 | static struct net_device * | ||
1578 | cxgb3i_find_dev(struct net_device *dev, __be32 ipaddr) | ||
1579 | { | ||
1580 | struct flowi fl; | ||
1581 | int err; | ||
1582 | struct rtable *rt; | ||
1583 | |||
1584 | memset(&fl, 0, sizeof(fl)); | ||
1585 | fl.nl_u.ip4_u.daddr = ipaddr; | ||
1586 | |||
1587 | err = ip_route_output_key(dev ? dev_net(dev) : &init_net, &rt, &fl); | ||
1588 | if (!err) | ||
1589 | return (&rt->u.dst)->dev; | ||
1590 | |||
1591 | return NULL; | ||
1592 | } | ||
1569 | 1593 | ||
1570 | /** | 1594 | /** |
1571 | * cxgb3i_c3cn_connect - initiates an iscsi tcp connection to a given address | 1595 | * cxgb3i_c3cn_connect - initiates an iscsi tcp connection to a given address |
@@ -1581,6 +1605,7 @@ int cxgb3i_c3cn_connect(struct net_device *dev, struct s3_conn *c3cn, | |||
1581 | struct cxgb3i_sdev_data *cdata; | 1605 | struct cxgb3i_sdev_data *cdata; |
1582 | struct t3cdev *cdev; | 1606 | struct t3cdev *cdev; |
1583 | __be32 sipv4; | 1607 | __be32 sipv4; |
1608 | struct net_device *dstdev; | ||
1584 | int err; | 1609 | int err; |
1585 | 1610 | ||
1586 | c3cn_conn_debug("c3cn 0x%p, dev 0x%p.\n", c3cn, dev); | 1611 | c3cn_conn_debug("c3cn 0x%p, dev 0x%p.\n", c3cn, dev); |
@@ -1591,6 +1616,13 @@ int cxgb3i_c3cn_connect(struct net_device *dev, struct s3_conn *c3cn, | |||
1591 | c3cn->daddr.sin_port = usin->sin_port; | 1616 | c3cn->daddr.sin_port = usin->sin_port; |
1592 | c3cn->daddr.sin_addr.s_addr = usin->sin_addr.s_addr; | 1617 | c3cn->daddr.sin_addr.s_addr = usin->sin_addr.s_addr; |
1593 | 1618 | ||
1619 | dstdev = cxgb3i_find_dev(dev, usin->sin_addr.s_addr); | ||
1620 | if (!dstdev || !is_cxgb3_dev(dstdev)) | ||
1621 | return -ENETUNREACH; | ||
1622 | |||
1623 | if (dstdev->priv_flags & IFF_802_1Q_VLAN) | ||
1624 | dev = dstdev; | ||
1625 | |||
1594 | rt = find_route(dev, c3cn->saddr.sin_addr.s_addr, | 1626 | rt = find_route(dev, c3cn->saddr.sin_addr.s_addr, |
1595 | c3cn->daddr.sin_addr.s_addr, | 1627 | c3cn->daddr.sin_addr.s_addr, |
1596 | c3cn->saddr.sin_port, | 1628 | c3cn->saddr.sin_port, |
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index ce522702a6c..2cc39684ce9 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c | |||
@@ -4142,8 +4142,8 @@ lpfc_els_rcv_rscn(struct lpfc_vport *vport, struct lpfc_iocbq *cmdiocb, | |||
4142 | spin_lock_irq(shost->host_lock); | 4142 | spin_lock_irq(shost->host_lock); |
4143 | if (vport->fc_rscn_flush) { | 4143 | if (vport->fc_rscn_flush) { |
4144 | /* Another thread is walking fc_rscn_id_list on this vport */ | 4144 | /* Another thread is walking fc_rscn_id_list on this vport */ |
4145 | spin_unlock_irq(shost->host_lock); | ||
4146 | vport->fc_flag |= FC_RSCN_DISCOVERY; | 4145 | vport->fc_flag |= FC_RSCN_DISCOVERY; |
4146 | spin_unlock_irq(shost->host_lock); | ||
4147 | /* Send back ACC */ | 4147 | /* Send back ACC */ |
4148 | lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); | 4148 | lpfc_els_rsp_acc(vport, ELS_CMD_ACC, cmdiocb, ndlp, NULL); |
4149 | return 0; | 4149 | return 0; |
@@ -5948,8 +5948,8 @@ lpfc_cmpl_reg_new_vport(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) | |||
5948 | lpfc_initial_fdisc(vport); | 5948 | lpfc_initial_fdisc(vport); |
5949 | break; | 5949 | break; |
5950 | } | 5950 | } |
5951 | |||
5952 | } else { | 5951 | } else { |
5952 | vport->vpi_state |= LPFC_VPI_REGISTERED; | ||
5953 | if (vport == phba->pport) | 5953 | if (vport == phba->pport) |
5954 | if (phba->sli_rev < LPFC_SLI_REV4) | 5954 | if (phba->sli_rev < LPFC_SLI_REV4) |
5955 | lpfc_issue_fabric_reglogin(vport); | 5955 | lpfc_issue_fabric_reglogin(vport); |
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index 3b942442765..2445e399fd6 100755 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c | |||
@@ -747,6 +747,10 @@ lpfc_linkdown(struct lpfc_hba *phba) | |||
747 | 747 | ||
748 | if (phba->link_state == LPFC_LINK_DOWN) | 748 | if (phba->link_state == LPFC_LINK_DOWN) |
749 | return 0; | 749 | return 0; |
750 | |||
751 | /* Block all SCSI stack I/Os */ | ||
752 | lpfc_scsi_dev_block(phba); | ||
753 | |||
750 | spin_lock_irq(&phba->hbalock); | 754 | spin_lock_irq(&phba->hbalock); |
751 | phba->fcf.fcf_flag &= ~(FCF_AVAILABLE | FCF_DISCOVERED); | 755 | phba->fcf.fcf_flag &= ~(FCF_AVAILABLE | FCF_DISCOVERED); |
752 | if (phba->link_state > LPFC_LINK_DOWN) { | 756 | if (phba->link_state > LPFC_LINK_DOWN) { |
@@ -1555,10 +1559,16 @@ lpfc_mbx_cmpl_read_fcf_record(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) | |||
1555 | * to book keeping the FCFIs can be used. | 1559 | * to book keeping the FCFIs can be used. |
1556 | */ | 1560 | */ |
1557 | if (shdr_status || shdr_add_status) { | 1561 | if (shdr_status || shdr_add_status) { |
1558 | lpfc_printf_log(phba, KERN_ERR, LOG_INIT, | 1562 | if (shdr_status == STATUS_FCF_TABLE_EMPTY) { |
1559 | "2521 READ_FCF_RECORD mailbox failed " | 1563 | lpfc_printf_log(phba, KERN_ERR, LOG_INIT, |
1560 | "with status x%x add_status x%x, mbx\n", | 1564 | "2726 READ_FCF_RECORD Indicates empty " |
1561 | shdr_status, shdr_add_status); | 1565 | "FCF table.\n"); |
1566 | } else { | ||
1567 | lpfc_printf_log(phba, KERN_ERR, LOG_INIT, | ||
1568 | "2521 READ_FCF_RECORD mailbox failed " | ||
1569 | "with status x%x add_status x%x, mbx\n", | ||
1570 | shdr_status, shdr_add_status); | ||
1571 | } | ||
1562 | goto out; | 1572 | goto out; |
1563 | } | 1573 | } |
1564 | /* Interpreting the returned information of FCF records */ | 1574 | /* Interpreting the returned information of FCF records */ |
@@ -1698,7 +1708,9 @@ lpfc_init_vpi_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq) | |||
1698 | lpfc_vport_set_state(vport, FC_VPORT_FAILED); | 1708 | lpfc_vport_set_state(vport, FC_VPORT_FAILED); |
1699 | return; | 1709 | return; |
1700 | } | 1710 | } |
1711 | spin_lock_irq(&phba->hbalock); | ||
1701 | vport->fc_flag &= ~FC_VPORT_NEEDS_INIT_VPI; | 1712 | vport->fc_flag &= ~FC_VPORT_NEEDS_INIT_VPI; |
1713 | spin_unlock_irq(&phba->hbalock); | ||
1702 | 1714 | ||
1703 | if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) | 1715 | if (phba->link_flag & LS_NPIV_FAB_SUPPORTED) |
1704 | lpfc_initial_fdisc(vport); | 1716 | lpfc_initial_fdisc(vport); |
@@ -2259,7 +2271,10 @@ lpfc_mbx_cmpl_unreg_vpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) | |||
2259 | mb->mbxStatus); | 2271 | mb->mbxStatus); |
2260 | break; | 2272 | break; |
2261 | } | 2273 | } |
2274 | spin_lock_irq(&phba->hbalock); | ||
2262 | vport->vpi_state &= ~LPFC_VPI_REGISTERED; | 2275 | vport->vpi_state &= ~LPFC_VPI_REGISTERED; |
2276 | vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI; | ||
2277 | spin_unlock_irq(&phba->hbalock); | ||
2263 | vport->unreg_vpi_cmpl = VPORT_OK; | 2278 | vport->unreg_vpi_cmpl = VPORT_OK; |
2264 | mempool_free(pmb, phba->mbox_mem_pool); | 2279 | mempool_free(pmb, phba->mbox_mem_pool); |
2265 | /* | 2280 | /* |
@@ -4475,8 +4490,10 @@ lpfc_unregister_unused_fcf(struct lpfc_hba *phba) | |||
4475 | (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED)) | 4490 | (phba->sli3_options & LPFC_SLI3_NPIV_ENABLED)) |
4476 | for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { | 4491 | for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { |
4477 | lpfc_mbx_unreg_vpi(vports[i]); | 4492 | lpfc_mbx_unreg_vpi(vports[i]); |
4493 | spin_lock_irq(&phba->hbalock); | ||
4478 | vports[i]->fc_flag |= FC_VPORT_NEEDS_INIT_VPI; | 4494 | vports[i]->fc_flag |= FC_VPORT_NEEDS_INIT_VPI; |
4479 | vports[i]->vpi_state &= ~LPFC_VPI_REGISTERED; | 4495 | vports[i]->vpi_state &= ~LPFC_VPI_REGISTERED; |
4496 | spin_unlock_irq(&phba->hbalock); | ||
4480 | } | 4497 | } |
4481 | lpfc_destroy_vport_work_array(phba, vports); | 4498 | lpfc_destroy_vport_work_array(phba, vports); |
4482 | 4499 | ||
diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h index 1585148a17e..8a2a1c5935c 100644..100755 --- a/drivers/scsi/lpfc/lpfc_hw4.h +++ b/drivers/scsi/lpfc/lpfc_hw4.h | |||
@@ -1013,7 +1013,7 @@ struct lpfc_mbx_wq_destroy { | |||
1013 | }; | 1013 | }; |
1014 | 1014 | ||
1015 | #define LPFC_HDR_BUF_SIZE 128 | 1015 | #define LPFC_HDR_BUF_SIZE 128 |
1016 | #define LPFC_DATA_BUF_SIZE 4096 | 1016 | #define LPFC_DATA_BUF_SIZE 2048 |
1017 | struct rq_context { | 1017 | struct rq_context { |
1018 | uint32_t word0; | 1018 | uint32_t word0; |
1019 | #define lpfc_rq_context_rq_size_SHIFT 16 | 1019 | #define lpfc_rq_context_rq_size_SHIFT 16 |
@@ -1371,6 +1371,7 @@ struct lpfc_mbx_query_fw_cfg { | |||
1371 | #define STATUS_ERROR_ACITMAIN 0x2a | 1371 | #define STATUS_ERROR_ACITMAIN 0x2a |
1372 | #define STATUS_REBOOT_REQUIRED 0x2c | 1372 | #define STATUS_REBOOT_REQUIRED 0x2c |
1373 | #define STATUS_FCF_IN_USE 0x3a | 1373 | #define STATUS_FCF_IN_USE 0x3a |
1374 | #define STATUS_FCF_TABLE_EMPTY 0x43 | ||
1374 | 1375 | ||
1375 | struct lpfc_mbx_sli4_config { | 1376 | struct lpfc_mbx_sli4_config { |
1376 | struct mbox_header header; | 1377 | struct mbox_header header; |
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index d4da6bdd0e7..b8eb1b6e5e7 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c | |||
@@ -3006,6 +3006,7 @@ lpfc_sli4_async_fcoe_evt(struct lpfc_hba *phba, | |||
3006 | struct lpfc_vport *vport; | 3006 | struct lpfc_vport *vport; |
3007 | struct lpfc_nodelist *ndlp; | 3007 | struct lpfc_nodelist *ndlp; |
3008 | struct Scsi_Host *shost; | 3008 | struct Scsi_Host *shost; |
3009 | uint32_t link_state; | ||
3009 | 3010 | ||
3010 | phba->fc_eventTag = acqe_fcoe->event_tag; | 3011 | phba->fc_eventTag = acqe_fcoe->event_tag; |
3011 | phba->fcoe_eventtag = acqe_fcoe->event_tag; | 3012 | phba->fcoe_eventtag = acqe_fcoe->event_tag; |
@@ -3052,9 +3053,12 @@ lpfc_sli4_async_fcoe_evt(struct lpfc_hba *phba, | |||
3052 | break; | 3053 | break; |
3053 | /* | 3054 | /* |
3054 | * Currently, driver support only one FCF - so treat this as | 3055 | * Currently, driver support only one FCF - so treat this as |
3055 | * a link down. | 3056 | * a link down, but save the link state because we don't want |
3057 | * it to be changed to Link Down unless it is already down. | ||
3056 | */ | 3058 | */ |
3059 | link_state = phba->link_state; | ||
3057 | lpfc_linkdown(phba); | 3060 | lpfc_linkdown(phba); |
3061 | phba->link_state = link_state; | ||
3058 | /* Unregister FCF if no devices connected to it */ | 3062 | /* Unregister FCF if no devices connected to it */ |
3059 | lpfc_unregister_unused_fcf(phba); | 3063 | lpfc_unregister_unused_fcf(phba); |
3060 | break; | 3064 | break; |
@@ -7226,8 +7230,6 @@ lpfc_prep_dev_for_perm_failure(struct lpfc_hba *phba) | |||
7226 | { | 7230 | { |
7227 | lpfc_printf_log(phba, KERN_ERR, LOG_INIT, | 7231 | lpfc_printf_log(phba, KERN_ERR, LOG_INIT, |
7228 | "2711 PCI channel permanent disable for failure\n"); | 7232 | "2711 PCI channel permanent disable for failure\n"); |
7229 | /* Block all SCSI devices' I/Os on the host */ | ||
7230 | lpfc_scsi_dev_block(phba); | ||
7231 | /* Clean up all driver's outstanding SCSI I/Os */ | 7233 | /* Clean up all driver's outstanding SCSI I/Os */ |
7232 | lpfc_sli_flush_fcp_rings(phba); | 7234 | lpfc_sli_flush_fcp_rings(phba); |
7233 | } | 7235 | } |
@@ -7256,6 +7258,9 @@ lpfc_io_error_detected_s3(struct pci_dev *pdev, pci_channel_state_t state) | |||
7256 | struct Scsi_Host *shost = pci_get_drvdata(pdev); | 7258 | struct Scsi_Host *shost = pci_get_drvdata(pdev); |
7257 | struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; | 7259 | struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; |
7258 | 7260 | ||
7261 | /* Block all SCSI devices' I/Os on the host */ | ||
7262 | lpfc_scsi_dev_block(phba); | ||
7263 | |||
7259 | switch (state) { | 7264 | switch (state) { |
7260 | case pci_channel_io_normal: | 7265 | case pci_channel_io_normal: |
7261 | /* Non-fatal error, prepare for recovery */ | 7266 | /* Non-fatal error, prepare for recovery */ |
@@ -7507,6 +7512,9 @@ lpfc_pci_probe_one_s4(struct pci_dev *pdev, const struct pci_device_id *pid) | |||
7507 | error = -ENODEV; | 7512 | error = -ENODEV; |
7508 | goto out_free_sysfs_attr; | 7513 | goto out_free_sysfs_attr; |
7509 | } | 7514 | } |
7515 | /* Default to single FCP EQ for non-MSI-X */ | ||
7516 | if (phba->intr_type != MSIX) | ||
7517 | phba->cfg_fcp_eq_count = 1; | ||
7510 | /* Set up SLI-4 HBA */ | 7518 | /* Set up SLI-4 HBA */ |
7511 | if (lpfc_sli4_hba_setup(phba)) { | 7519 | if (lpfc_sli4_hba_setup(phba)) { |
7512 | lpfc_printf_log(phba, KERN_ERR, LOG_INIT, | 7520 | lpfc_printf_log(phba, KERN_ERR, LOG_INIT, |
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 7935667b81a..589549b2bf0 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c | |||
@@ -1383,7 +1383,7 @@ lpfc_sli_hbq_to_firmware_s4(struct lpfc_hba *phba, uint32_t hbqno, | |||
1383 | /* HBQ for ELS and CT traffic. */ | 1383 | /* HBQ for ELS and CT traffic. */ |
1384 | static struct lpfc_hbq_init lpfc_els_hbq = { | 1384 | static struct lpfc_hbq_init lpfc_els_hbq = { |
1385 | .rn = 1, | 1385 | .rn = 1, |
1386 | .entry_count = 200, | 1386 | .entry_count = 256, |
1387 | .mask_count = 0, | 1387 | .mask_count = 0, |
1388 | .profile = 0, | 1388 | .profile = 0, |
1389 | .ring_mask = (1 << LPFC_ELS_RING), | 1389 | .ring_mask = (1 << LPFC_ELS_RING), |
@@ -1482,8 +1482,11 @@ err: | |||
1482 | int | 1482 | int |
1483 | lpfc_sli_hbqbuf_add_hbqs(struct lpfc_hba *phba, uint32_t qno) | 1483 | lpfc_sli_hbqbuf_add_hbqs(struct lpfc_hba *phba, uint32_t qno) |
1484 | { | 1484 | { |
1485 | return(lpfc_sli_hbqbuf_fill_hbqs(phba, qno, | 1485 | if (phba->sli_rev == LPFC_SLI_REV4) |
1486 | lpfc_hbq_defs[qno]->add_count)); | 1486 | return 0; |
1487 | else | ||
1488 | return lpfc_sli_hbqbuf_fill_hbqs(phba, qno, | ||
1489 | lpfc_hbq_defs[qno]->add_count); | ||
1487 | } | 1490 | } |
1488 | 1491 | ||
1489 | /** | 1492 | /** |
@@ -1498,8 +1501,12 @@ lpfc_sli_hbqbuf_add_hbqs(struct lpfc_hba *phba, uint32_t qno) | |||
1498 | static int | 1501 | static int |
1499 | lpfc_sli_hbqbuf_init_hbqs(struct lpfc_hba *phba, uint32_t qno) | 1502 | lpfc_sli_hbqbuf_init_hbqs(struct lpfc_hba *phba, uint32_t qno) |
1500 | { | 1503 | { |
1501 | return(lpfc_sli_hbqbuf_fill_hbqs(phba, qno, | 1504 | if (phba->sli_rev == LPFC_SLI_REV4) |
1502 | lpfc_hbq_defs[qno]->init_count)); | 1505 | return lpfc_sli_hbqbuf_fill_hbqs(phba, qno, |
1506 | lpfc_hbq_defs[qno]->entry_count); | ||
1507 | else | ||
1508 | return lpfc_sli_hbqbuf_fill_hbqs(phba, qno, | ||
1509 | lpfc_hbq_defs[qno]->init_count); | ||
1503 | } | 1510 | } |
1504 | 1511 | ||
1505 | /** | 1512 | /** |
@@ -4110,6 +4117,7 @@ lpfc_sli4_read_rev(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq, | |||
4110 | if (rc) { | 4117 | if (rc) { |
4111 | dma_free_coherent(&phba->pcidev->dev, dma_size, | 4118 | dma_free_coherent(&phba->pcidev->dev, dma_size, |
4112 | dmabuf->virt, dmabuf->phys); | 4119 | dmabuf->virt, dmabuf->phys); |
4120 | kfree(dmabuf); | ||
4113 | return -EIO; | 4121 | return -EIO; |
4114 | } | 4122 | } |
4115 | 4123 | ||
@@ -5848,7 +5856,6 @@ lpfc_sli4_iocb2wqe(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq, | |||
5848 | iocbq->iocb.un.ulpWord[3]); | 5856 | iocbq->iocb.un.ulpWord[3]); |
5849 | wqe->generic.word3 = 0; | 5857 | wqe->generic.word3 = 0; |
5850 | bf_set(wqe_rcvoxid, &wqe->generic, iocbq->iocb.ulpContext); | 5858 | bf_set(wqe_rcvoxid, &wqe->generic, iocbq->iocb.ulpContext); |
5851 | bf_set(wqe_xc, &wqe->generic, 1); | ||
5852 | /* The entire sequence is transmitted for this IOCB */ | 5859 | /* The entire sequence is transmitted for this IOCB */ |
5853 | xmit_len = total_len; | 5860 | xmit_len = total_len; |
5854 | cmnd = CMD_XMIT_SEQUENCE64_CR; | 5861 | cmnd = CMD_XMIT_SEQUENCE64_CR; |
@@ -10944,7 +10951,8 @@ lpfc_fc_frame_add(struct lpfc_vport *vport, struct hbq_dmabuf *dmabuf) | |||
10944 | return dmabuf; | 10951 | return dmabuf; |
10945 | } | 10952 | } |
10946 | temp_hdr = seq_dmabuf->hbuf.virt; | 10953 | temp_hdr = seq_dmabuf->hbuf.virt; |
10947 | if (new_hdr->fh_seq_cnt < temp_hdr->fh_seq_cnt) { | 10954 | if (be16_to_cpu(new_hdr->fh_seq_cnt) < |
10955 | be16_to_cpu(temp_hdr->fh_seq_cnt)) { | ||
10948 | list_del_init(&seq_dmabuf->hbuf.list); | 10956 | list_del_init(&seq_dmabuf->hbuf.list); |
10949 | list_add_tail(&dmabuf->hbuf.list, &vport->rcv_buffer_list); | 10957 | list_add_tail(&dmabuf->hbuf.list, &vport->rcv_buffer_list); |
10950 | list_add_tail(&dmabuf->dbuf.list, &seq_dmabuf->dbuf.list); | 10958 | list_add_tail(&dmabuf->dbuf.list, &seq_dmabuf->dbuf.list); |
@@ -10955,6 +10963,11 @@ lpfc_fc_frame_add(struct lpfc_vport *vport, struct hbq_dmabuf *dmabuf) | |||
10955 | list_move_tail(&seq_dmabuf->hbuf.list, &vport->rcv_buffer_list); | 10963 | list_move_tail(&seq_dmabuf->hbuf.list, &vport->rcv_buffer_list); |
10956 | seq_dmabuf->time_stamp = jiffies; | 10964 | seq_dmabuf->time_stamp = jiffies; |
10957 | lpfc_update_rcv_time_stamp(vport); | 10965 | lpfc_update_rcv_time_stamp(vport); |
10966 | if (list_empty(&seq_dmabuf->dbuf.list)) { | ||
10967 | temp_hdr = dmabuf->hbuf.virt; | ||
10968 | list_add_tail(&dmabuf->dbuf.list, &seq_dmabuf->dbuf.list); | ||
10969 | return seq_dmabuf; | ||
10970 | } | ||
10958 | /* find the correct place in the sequence to insert this frame */ | 10971 | /* find the correct place in the sequence to insert this frame */ |
10959 | list_for_each_entry_reverse(d_buf, &seq_dmabuf->dbuf.list, list) { | 10972 | list_for_each_entry_reverse(d_buf, &seq_dmabuf->dbuf.list, list) { |
10960 | temp_dmabuf = container_of(d_buf, struct hbq_dmabuf, dbuf); | 10973 | temp_dmabuf = container_of(d_buf, struct hbq_dmabuf, dbuf); |
@@ -10963,7 +10976,8 @@ lpfc_fc_frame_add(struct lpfc_vport *vport, struct hbq_dmabuf *dmabuf) | |||
10963 | * If the frame's sequence count is greater than the frame on | 10976 | * If the frame's sequence count is greater than the frame on |
10964 | * the list then insert the frame right after this frame | 10977 | * the list then insert the frame right after this frame |
10965 | */ | 10978 | */ |
10966 | if (new_hdr->fh_seq_cnt > temp_hdr->fh_seq_cnt) { | 10979 | if (be16_to_cpu(new_hdr->fh_seq_cnt) > |
10980 | be16_to_cpu(temp_hdr->fh_seq_cnt)) { | ||
10967 | list_add(&dmabuf->dbuf.list, &temp_dmabuf->dbuf.list); | 10981 | list_add(&dmabuf->dbuf.list, &temp_dmabuf->dbuf.list); |
10968 | return seq_dmabuf; | 10982 | return seq_dmabuf; |
10969 | } | 10983 | } |
@@ -11210,7 +11224,7 @@ lpfc_seq_complete(struct hbq_dmabuf *dmabuf) | |||
11210 | seq_dmabuf = container_of(d_buf, struct hbq_dmabuf, dbuf); | 11224 | seq_dmabuf = container_of(d_buf, struct hbq_dmabuf, dbuf); |
11211 | hdr = (struct fc_frame_header *)seq_dmabuf->hbuf.virt; | 11225 | hdr = (struct fc_frame_header *)seq_dmabuf->hbuf.virt; |
11212 | /* If there is a hole in the sequence count then fail. */ | 11226 | /* If there is a hole in the sequence count then fail. */ |
11213 | if (++seq_count != hdr->fh_seq_cnt) | 11227 | if (++seq_count != be16_to_cpu(hdr->fh_seq_cnt)) |
11214 | return 0; | 11228 | return 0; |
11215 | fctl = (hdr->fh_f_ctl[0] << 16 | | 11229 | fctl = (hdr->fh_f_ctl[0] << 16 | |
11216 | hdr->fh_f_ctl[1] << 8 | | 11230 | hdr->fh_f_ctl[1] << 8 | |
@@ -11242,6 +11256,7 @@ lpfc_prep_seq(struct lpfc_vport *vport, struct hbq_dmabuf *seq_dmabuf) | |||
11242 | struct lpfc_iocbq *first_iocbq, *iocbq; | 11256 | struct lpfc_iocbq *first_iocbq, *iocbq; |
11243 | struct fc_frame_header *fc_hdr; | 11257 | struct fc_frame_header *fc_hdr; |
11244 | uint32_t sid; | 11258 | uint32_t sid; |
11259 | struct ulp_bde64 *pbde; | ||
11245 | 11260 | ||
11246 | fc_hdr = (struct fc_frame_header *)seq_dmabuf->hbuf.virt; | 11261 | fc_hdr = (struct fc_frame_header *)seq_dmabuf->hbuf.virt; |
11247 | /* remove from receive buffer list */ | 11262 | /* remove from receive buffer list */ |
@@ -11283,8 +11298,9 @@ lpfc_prep_seq(struct lpfc_vport *vport, struct hbq_dmabuf *seq_dmabuf) | |||
11283 | if (!iocbq->context3) { | 11298 | if (!iocbq->context3) { |
11284 | iocbq->context3 = d_buf; | 11299 | iocbq->context3 = d_buf; |
11285 | iocbq->iocb.ulpBdeCount++; | 11300 | iocbq->iocb.ulpBdeCount++; |
11286 | iocbq->iocb.unsli3.rcvsli3.bde2.tus.f.bdeSize = | 11301 | pbde = (struct ulp_bde64 *) |
11287 | LPFC_DATA_BUF_SIZE; | 11302 | &iocbq->iocb.unsli3.sli3Words[4]; |
11303 | pbde->tus.f.bdeSize = LPFC_DATA_BUF_SIZE; | ||
11288 | first_iocbq->iocb.unsli3.rcvsli3.acc_len += | 11304 | first_iocbq->iocb.unsli3.rcvsli3.acc_len += |
11289 | bf_get(lpfc_rcqe_length, | 11305 | bf_get(lpfc_rcqe_length, |
11290 | &seq_dmabuf->cq_event.cqe.rcqe_cmpl); | 11306 | &seq_dmabuf->cq_event.cqe.rcqe_cmpl); |
@@ -11401,15 +11417,9 @@ lpfc_sli4_handle_received_buffer(struct lpfc_hba *phba, | |||
11401 | return; | 11417 | return; |
11402 | } | 11418 | } |
11403 | /* If not last frame in sequence continue processing frames. */ | 11419 | /* If not last frame in sequence continue processing frames. */ |
11404 | if (!lpfc_seq_complete(seq_dmabuf)) { | 11420 | if (!lpfc_seq_complete(seq_dmabuf)) |
11405 | /* | ||
11406 | * When saving off frames post a new one and mark this | ||
11407 | * frame to be freed when it is finished. | ||
11408 | **/ | ||
11409 | lpfc_sli_hbqbuf_fill_hbqs(phba, LPFC_ELS_HBQ, 1); | ||
11410 | dmabuf->tag = -1; | ||
11411 | return; | 11421 | return; |
11412 | } | 11422 | |
11413 | /* Send the complete sequence to the upper layer protocol */ | 11423 | /* Send the complete sequence to the upper layer protocol */ |
11414 | lpfc_sli4_send_seq_to_ulp(vport, seq_dmabuf); | 11424 | lpfc_sli4_send_seq_to_ulp(vport, seq_dmabuf); |
11415 | } | 11425 | } |
diff --git a/drivers/scsi/lpfc/lpfc_sli4.h b/drivers/scsi/lpfc/lpfc_sli4.h index 25d66d070cf..44e5f574236 100644 --- a/drivers/scsi/lpfc/lpfc_sli4.h +++ b/drivers/scsi/lpfc/lpfc_sli4.h | |||
@@ -28,7 +28,7 @@ | |||
28 | /* Multi-queue arrangement for fast-path FCP work queues */ | 28 | /* Multi-queue arrangement for fast-path FCP work queues */ |
29 | #define LPFC_FN_EQN_MAX 8 | 29 | #define LPFC_FN_EQN_MAX 8 |
30 | #define LPFC_SP_EQN_DEF 1 | 30 | #define LPFC_SP_EQN_DEF 1 |
31 | #define LPFC_FP_EQN_DEF 1 | 31 | #define LPFC_FP_EQN_DEF 4 |
32 | #define LPFC_FP_EQN_MIN 1 | 32 | #define LPFC_FP_EQN_MIN 1 |
33 | #define LPFC_FP_EQN_MAX (LPFC_FN_EQN_MAX - LPFC_SP_EQN_DEF) | 33 | #define LPFC_FP_EQN_MAX (LPFC_FN_EQN_MAX - LPFC_SP_EQN_DEF) |
34 | 34 | ||
diff --git a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h index c7f3aed2aab..792f72263f1 100644 --- a/drivers/scsi/lpfc/lpfc_version.h +++ b/drivers/scsi/lpfc/lpfc_version.h | |||
@@ -18,7 +18,7 @@ | |||
18 | * included with this package. * | 18 | * included with this package. * |
19 | *******************************************************************/ | 19 | *******************************************************************/ |
20 | 20 | ||
21 | #define LPFC_DRIVER_VERSION "8.3.6" | 21 | #define LPFC_DRIVER_VERSION "8.3.7" |
22 | #define LPFC_DRIVER_NAME "lpfc" | 22 | #define LPFC_DRIVER_NAME "lpfc" |
23 | #define LPFC_SP_DRIVER_HANDLER_NAME "lpfc:sp" | 23 | #define LPFC_SP_DRIVER_HANDLER_NAME "lpfc:sp" |
24 | #define LPFC_FP_DRIVER_HANDLER_NAME "lpfc:fp" | 24 | #define LPFC_FP_DRIVER_HANDLER_NAME "lpfc:fp" |
diff --git a/drivers/scsi/lpfc/lpfc_vport.c b/drivers/scsi/lpfc/lpfc_vport.c index 7d6dd83d359..e3c7fa64230 100644 --- a/drivers/scsi/lpfc/lpfc_vport.c +++ b/drivers/scsi/lpfc/lpfc_vport.c | |||
@@ -512,8 +512,10 @@ enable_vport(struct fc_vport *fc_vport) | |||
512 | return VPORT_OK; | 512 | return VPORT_OK; |
513 | } | 513 | } |
514 | 514 | ||
515 | spin_lock_irq(&phba->hbalock); | ||
515 | vport->load_flag |= FC_LOADING; | 516 | vport->load_flag |= FC_LOADING; |
516 | vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI; | 517 | vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI; |
518 | spin_unlock_irq(&phba->hbalock); | ||
517 | 519 | ||
518 | /* Use the Physical nodes Fabric NDLP to determine if the link is | 520 | /* Use the Physical nodes Fabric NDLP to determine if the link is |
519 | * up and ready to FDISC. | 521 | * up and ready to FDISC. |
@@ -700,7 +702,7 @@ lpfc_vport_delete(struct fc_vport *fc_vport) | |||
700 | } | 702 | } |
701 | spin_unlock_irq(&phba->ndlp_lock); | 703 | spin_unlock_irq(&phba->ndlp_lock); |
702 | } | 704 | } |
703 | if (vport->vpi_state != LPFC_VPI_REGISTERED) | 705 | if (!(vport->vpi_state & LPFC_VPI_REGISTERED)) |
704 | goto skip_logo; | 706 | goto skip_logo; |
705 | vport->unreg_vpi_cmpl = VPORT_INVAL; | 707 | vport->unreg_vpi_cmpl = VPORT_INVAL; |
706 | timeout = msecs_to_jiffies(phba->fc_ratov * 2000); | 708 | timeout = msecs_to_jiffies(phba->fc_ratov * 2000); |
diff --git a/drivers/scsi/megaraid/megaraid_sas.c b/drivers/scsi/megaraid/megaraid_sas.c index 99ff99e45be..708ea3157b6 100644 --- a/drivers/scsi/megaraid/megaraid_sas.c +++ b/drivers/scsi/megaraid/megaraid_sas.c | |||
@@ -4046,7 +4046,7 @@ megasas_aen_polling(struct work_struct *work) | |||
4046 | } | 4046 | } |
4047 | 4047 | ||
4048 | 4048 | ||
4049 | static DRIVER_ATTR(poll_mode_io, S_IRUGO|S_IWUGO, | 4049 | static DRIVER_ATTR(poll_mode_io, S_IRUGO|S_IWUSR, |
4050 | megasas_sysfs_show_poll_mode_io, | 4050 | megasas_sysfs_show_poll_mode_io, |
4051 | megasas_sysfs_set_poll_mode_io); | 4051 | megasas_sysfs_set_poll_mode_io); |
4052 | 4052 | ||
diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c index e7d2688fbeb..b6f1ef954af 100644 --- a/drivers/scsi/pmcraid.c +++ b/drivers/scsi/pmcraid.c | |||
@@ -2483,14 +2483,12 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd) | |||
2483 | sense_copied = 1; | 2483 | sense_copied = 1; |
2484 | } | 2484 | } |
2485 | 2485 | ||
2486 | if (RES_IS_GSCSI(res->cfg_entry)) { | 2486 | if (RES_IS_GSCSI(res->cfg_entry)) |
2487 | pmcraid_cancel_all(cmd, sense_copied); | 2487 | pmcraid_cancel_all(cmd, sense_copied); |
2488 | } else if (sense_copied) { | 2488 | else if (sense_copied) |
2489 | pmcraid_erp_done(cmd); | 2489 | pmcraid_erp_done(cmd); |
2490 | return 0; | 2490 | else |
2491 | } else { | ||
2492 | pmcraid_request_sense(cmd); | 2491 | pmcraid_request_sense(cmd); |
2493 | } | ||
2494 | 2492 | ||
2495 | return 1; | 2493 | return 1; |
2496 | 2494 | ||
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index 21e2bc4d740..3a9f5b288ae 100644 --- a/drivers/scsi/qla2xxx/qla_attr.c +++ b/drivers/scsi/qla2xxx/qla_attr.c | |||
@@ -232,6 +232,9 @@ qla2x00_sysfs_write_optrom_ctl(struct kobject *kobj, | |||
232 | if (off) | 232 | if (off) |
233 | return 0; | 233 | return 0; |
234 | 234 | ||
235 | if (unlikely(pci_channel_offline(ha->pdev))) | ||
236 | return 0; | ||
237 | |||
235 | if (sscanf(buf, "%d:%x:%x", &val, &start, &size) < 1) | 238 | if (sscanf(buf, "%d:%x:%x", &val, &start, &size) < 1) |
236 | return -EINVAL; | 239 | return -EINVAL; |
237 | if (start > ha->optrom_size) | 240 | if (start > ha->optrom_size) |
@@ -379,6 +382,9 @@ qla2x00_sysfs_read_vpd(struct kobject *kobj, | |||
379 | struct device, kobj))); | 382 | struct device, kobj))); |
380 | struct qla_hw_data *ha = vha->hw; | 383 | struct qla_hw_data *ha = vha->hw; |
381 | 384 | ||
385 | if (unlikely(pci_channel_offline(ha->pdev))) | ||
386 | return 0; | ||
387 | |||
382 | if (!capable(CAP_SYS_ADMIN)) | 388 | if (!capable(CAP_SYS_ADMIN)) |
383 | return 0; | 389 | return 0; |
384 | 390 | ||
@@ -398,6 +404,9 @@ qla2x00_sysfs_write_vpd(struct kobject *kobj, | |||
398 | struct qla_hw_data *ha = vha->hw; | 404 | struct qla_hw_data *ha = vha->hw; |
399 | uint8_t *tmp_data; | 405 | uint8_t *tmp_data; |
400 | 406 | ||
407 | if (unlikely(pci_channel_offline(ha->pdev))) | ||
408 | return 0; | ||
409 | |||
401 | if (!capable(CAP_SYS_ADMIN) || off != 0 || count != ha->vpd_size || | 410 | if (!capable(CAP_SYS_ADMIN) || off != 0 || count != ha->vpd_size || |
402 | !ha->isp_ops->write_nvram) | 411 | !ha->isp_ops->write_nvram) |
403 | return 0; | 412 | return 0; |
@@ -1238,10 +1247,11 @@ qla2x00_fw_state_show(struct device *dev, struct device_attribute *attr, | |||
1238 | char *buf) | 1247 | char *buf) |
1239 | { | 1248 | { |
1240 | scsi_qla_host_t *vha = shost_priv(class_to_shost(dev)); | 1249 | scsi_qla_host_t *vha = shost_priv(class_to_shost(dev)); |
1241 | int rval; | 1250 | int rval = QLA_FUNCTION_FAILED; |
1242 | uint16_t state[5]; | 1251 | uint16_t state[5]; |
1243 | 1252 | ||
1244 | rval = qla2x00_get_firmware_state(vha, state); | 1253 | if (!vha->hw->flags.eeh_busy) |
1254 | rval = qla2x00_get_firmware_state(vha, state); | ||
1245 | if (rval != QLA_SUCCESS) | 1255 | if (rval != QLA_SUCCESS) |
1246 | memset(state, -1, sizeof(state)); | 1256 | memset(state, -1, sizeof(state)); |
1247 | 1257 | ||
@@ -1452,10 +1462,13 @@ qla2x00_dev_loss_tmo_callbk(struct fc_rport *rport) | |||
1452 | if (!fcport) | 1462 | if (!fcport) |
1453 | return; | 1463 | return; |
1454 | 1464 | ||
1455 | if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) | 1465 | if (test_bit(ABORT_ISP_ACTIVE, &fcport->vha->dpc_flags)) |
1466 | return; | ||
1467 | |||
1468 | if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) { | ||
1456 | qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16); | 1469 | qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16); |
1457 | else | 1470 | return; |
1458 | qla2x00_abort_fcport_cmds(fcport); | 1471 | } |
1459 | 1472 | ||
1460 | /* | 1473 | /* |
1461 | * Transport has effectively 'deleted' the rport, clear | 1474 | * Transport has effectively 'deleted' the rport, clear |
@@ -1475,6 +1488,9 @@ qla2x00_terminate_rport_io(struct fc_rport *rport) | |||
1475 | if (!fcport) | 1488 | if (!fcport) |
1476 | return; | 1489 | return; |
1477 | 1490 | ||
1491 | if (test_bit(ABORT_ISP_ACTIVE, &fcport->vha->dpc_flags)) | ||
1492 | return; | ||
1493 | |||
1478 | if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) { | 1494 | if (unlikely(pci_channel_offline(fcport->vha->hw->pdev))) { |
1479 | qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16); | 1495 | qla2x00_abort_all_cmds(fcport->vha, DID_NO_CONNECT << 16); |
1480 | return; | 1496 | return; |
@@ -1515,6 +1531,12 @@ qla2x00_get_fc_host_stats(struct Scsi_Host *shost) | |||
1515 | pfc_host_stat = &ha->fc_host_stat; | 1531 | pfc_host_stat = &ha->fc_host_stat; |
1516 | memset(pfc_host_stat, -1, sizeof(struct fc_host_statistics)); | 1532 | memset(pfc_host_stat, -1, sizeof(struct fc_host_statistics)); |
1517 | 1533 | ||
1534 | if (test_bit(UNLOADING, &vha->dpc_flags)) | ||
1535 | goto done; | ||
1536 | |||
1537 | if (unlikely(pci_channel_offline(ha->pdev))) | ||
1538 | goto done; | ||
1539 | |||
1518 | stats = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &stats_dma); | 1540 | stats = dma_pool_alloc(ha->s_dma_pool, GFP_KERNEL, &stats_dma); |
1519 | if (stats == NULL) { | 1541 | if (stats == NULL) { |
1520 | DEBUG2_3_11(printk("%s(%ld): Failed to allocate memory.\n", | 1542 | DEBUG2_3_11(printk("%s(%ld): Failed to allocate memory.\n", |
diff --git a/drivers/scsi/qla2xxx/qla_dbg.h b/drivers/scsi/qla2xxx/qla_dbg.h index f660dd70b72..d6d9c86cb05 100644 --- a/drivers/scsi/qla2xxx/qla_dbg.h +++ b/drivers/scsi/qla2xxx/qla_dbg.h | |||
@@ -26,7 +26,7 @@ | |||
26 | /* #define QL_DEBUG_LEVEL_14 */ /* Output RSCN trace msgs */ | 26 | /* #define QL_DEBUG_LEVEL_14 */ /* Output RSCN trace msgs */ |
27 | /* #define QL_DEBUG_LEVEL_15 */ /* Output NPIV trace msgs */ | 27 | /* #define QL_DEBUG_LEVEL_15 */ /* Output NPIV trace msgs */ |
28 | /* #define QL_DEBUG_LEVEL_16 */ /* Output ISP84XX trace msgs */ | 28 | /* #define QL_DEBUG_LEVEL_16 */ /* Output ISP84XX trace msgs */ |
29 | /* #define QL_DEBUG_LEVEL_17 */ /* Output MULTI-Q trace messages */ | 29 | /* #define QL_DEBUG_LEVEL_17 */ /* Output EEH trace messages */ |
30 | 30 | ||
31 | /* | 31 | /* |
32 | * Macros use for debugging the driver. | 32 | * Macros use for debugging the driver. |
@@ -132,6 +132,13 @@ | |||
132 | #else | 132 | #else |
133 | #define DEBUG16(x) do {} while (0) | 133 | #define DEBUG16(x) do {} while (0) |
134 | #endif | 134 | #endif |
135 | |||
136 | #if defined(QL_DEBUG_LEVEL_17) | ||
137 | #define DEBUG17(x) do {x;} while (0) | ||
138 | #else | ||
139 | #define DEBUG17(x) do {} while (0) | ||
140 | #endif | ||
141 | |||
135 | /* | 142 | /* |
136 | * Firmware Dump structure definition | 143 | * Firmware Dump structure definition |
137 | */ | 144 | */ |
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 384afda7dbe..608e675f68c 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -2256,11 +2256,13 @@ struct qla_hw_data { | |||
2256 | uint32_t disable_serdes :1; | 2256 | uint32_t disable_serdes :1; |
2257 | uint32_t gpsc_supported :1; | 2257 | uint32_t gpsc_supported :1; |
2258 | uint32_t npiv_supported :1; | 2258 | uint32_t npiv_supported :1; |
2259 | uint32_t pci_channel_io_perm_failure :1; | ||
2259 | uint32_t fce_enabled :1; | 2260 | uint32_t fce_enabled :1; |
2260 | uint32_t fac_supported :1; | 2261 | uint32_t fac_supported :1; |
2261 | uint32_t chip_reset_done :1; | 2262 | uint32_t chip_reset_done :1; |
2262 | uint32_t port0 :1; | 2263 | uint32_t port0 :1; |
2263 | uint32_t running_gold_fw :1; | 2264 | uint32_t running_gold_fw :1; |
2265 | uint32_t eeh_busy :1; | ||
2264 | uint32_t cpu_affinity_enabled :1; | 2266 | uint32_t cpu_affinity_enabled :1; |
2265 | uint32_t disable_msix_handshake :1; | 2267 | uint32_t disable_msix_handshake :1; |
2266 | } flags; | 2268 | } flags; |
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h index 0b6801fc638..f61fb8d0133 100644 --- a/drivers/scsi/qla2xxx/qla_gbl.h +++ b/drivers/scsi/qla2xxx/qla_gbl.h | |||
@@ -324,6 +324,7 @@ qla2x00_read_ram_word(scsi_qla_host_t *, uint32_t, uint32_t *); | |||
324 | extern int | 324 | extern int |
325 | qla2x00_write_ram_word(scsi_qla_host_t *, uint32_t, uint32_t); | 325 | qla2x00_write_ram_word(scsi_qla_host_t *, uint32_t, uint32_t); |
326 | 326 | ||
327 | extern int qla2x00_get_data_rate(scsi_qla_host_t *); | ||
327 | /* | 328 | /* |
328 | * Global Function Prototypes in qla_isr.c source file. | 329 | * Global Function Prototypes in qla_isr.c source file. |
329 | */ | 330 | */ |
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 73a793539d4..b4a0eac8f96 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
@@ -269,6 +269,8 @@ qla2x00_initialize_adapter(scsi_qla_host_t *vha) | |||
269 | vha->flags.online = 0; | 269 | vha->flags.online = 0; |
270 | ha->flags.chip_reset_done = 0; | 270 | ha->flags.chip_reset_done = 0; |
271 | vha->flags.reset_active = 0; | 271 | vha->flags.reset_active = 0; |
272 | ha->flags.pci_channel_io_perm_failure = 0; | ||
273 | ha->flags.eeh_busy = 0; | ||
272 | atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); | 274 | atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); |
273 | atomic_set(&vha->loop_state, LOOP_DOWN); | 275 | atomic_set(&vha->loop_state, LOOP_DOWN); |
274 | vha->device_flags = DFLG_NO_CABLE; | 276 | vha->device_flags = DFLG_NO_CABLE; |
@@ -581,6 +583,9 @@ qla2x00_reset_chip(scsi_qla_host_t *vha) | |||
581 | uint32_t cnt; | 583 | uint32_t cnt; |
582 | uint16_t cmd; | 584 | uint16_t cmd; |
583 | 585 | ||
586 | if (unlikely(pci_channel_offline(ha->pdev))) | ||
587 | return; | ||
588 | |||
584 | ha->isp_ops->disable_intrs(ha); | 589 | ha->isp_ops->disable_intrs(ha); |
585 | 590 | ||
586 | spin_lock_irqsave(&ha->hardware_lock, flags); | 591 | spin_lock_irqsave(&ha->hardware_lock, flags); |
@@ -786,6 +791,12 @@ void | |||
786 | qla24xx_reset_chip(scsi_qla_host_t *vha) | 791 | qla24xx_reset_chip(scsi_qla_host_t *vha) |
787 | { | 792 | { |
788 | struct qla_hw_data *ha = vha->hw; | 793 | struct qla_hw_data *ha = vha->hw; |
794 | |||
795 | if (pci_channel_offline(ha->pdev) && | ||
796 | ha->flags.pci_channel_io_perm_failure) { | ||
797 | return; | ||
798 | } | ||
799 | |||
789 | ha->isp_ops->disable_intrs(ha); | 800 | ha->isp_ops->disable_intrs(ha); |
790 | 801 | ||
791 | /* Perform RISC reset. */ | 802 | /* Perform RISC reset. */ |
@@ -2266,6 +2277,8 @@ qla2x00_configure_loop(scsi_qla_host_t *vha) | |||
2266 | clear_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); | 2277 | clear_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); |
2267 | clear_bit(RSCN_UPDATE, &vha->dpc_flags); | 2278 | clear_bit(RSCN_UPDATE, &vha->dpc_flags); |
2268 | 2279 | ||
2280 | qla2x00_get_data_rate(vha); | ||
2281 | |||
2269 | /* Determine what we need to do */ | 2282 | /* Determine what we need to do */ |
2270 | if (ha->current_topology == ISP_CFG_FL && | 2283 | if (ha->current_topology == ISP_CFG_FL && |
2271 | (test_bit(LOCAL_LOOP_UPDATE, &flags))) { | 2284 | (test_bit(LOCAL_LOOP_UPDATE, &flags))) { |
@@ -3560,6 +3573,13 @@ qla2x00_abort_isp(scsi_qla_host_t *vha) | |||
3560 | /* Requeue all commands in outstanding command list. */ | 3573 | /* Requeue all commands in outstanding command list. */ |
3561 | qla2x00_abort_all_cmds(vha, DID_RESET << 16); | 3574 | qla2x00_abort_all_cmds(vha, DID_RESET << 16); |
3562 | 3575 | ||
3576 | if (unlikely(pci_channel_offline(ha->pdev) && | ||
3577 | ha->flags.pci_channel_io_perm_failure)) { | ||
3578 | clear_bit(ISP_ABORT_RETRY, &vha->dpc_flags); | ||
3579 | status = 0; | ||
3580 | return status; | ||
3581 | } | ||
3582 | |||
3563 | ha->isp_ops->get_flash_version(vha, req->ring); | 3583 | ha->isp_ops->get_flash_version(vha, req->ring); |
3564 | 3584 | ||
3565 | ha->isp_ops->nvram_config(vha); | 3585 | ha->isp_ops->nvram_config(vha); |
@@ -4458,6 +4478,8 @@ qla2x00_try_to_stop_firmware(scsi_qla_host_t *vha) | |||
4458 | int ret, retries; | 4478 | int ret, retries; |
4459 | struct qla_hw_data *ha = vha->hw; | 4479 | struct qla_hw_data *ha = vha->hw; |
4460 | 4480 | ||
4481 | if (ha->flags.pci_channel_io_perm_failure) | ||
4482 | return; | ||
4461 | if (!IS_FWI2_CAPABLE(ha)) | 4483 | if (!IS_FWI2_CAPABLE(ha)) |
4462 | return; | 4484 | return; |
4463 | if (!ha->fw_major_version) | 4485 | if (!ha->fw_major_version) |
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 1692a883f4d..ffd0efdff40 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -152,7 +152,7 @@ qla2300_intr_handler(int irq, void *dev_id) | |||
152 | for (iter = 50; iter--; ) { | 152 | for (iter = 50; iter--; ) { |
153 | stat = RD_REG_DWORD(®->u.isp2300.host_status); | 153 | stat = RD_REG_DWORD(®->u.isp2300.host_status); |
154 | if (stat & HSR_RISC_PAUSED) { | 154 | if (stat & HSR_RISC_PAUSED) { |
155 | if (pci_channel_offline(ha->pdev)) | 155 | if (unlikely(pci_channel_offline(ha->pdev))) |
156 | break; | 156 | break; |
157 | 157 | ||
158 | hccr = RD_REG_WORD(®->hccr); | 158 | hccr = RD_REG_WORD(®->hccr); |
@@ -1846,12 +1846,15 @@ qla24xx_intr_handler(int irq, void *dev_id) | |||
1846 | reg = &ha->iobase->isp24; | 1846 | reg = &ha->iobase->isp24; |
1847 | status = 0; | 1847 | status = 0; |
1848 | 1848 | ||
1849 | if (unlikely(pci_channel_offline(ha->pdev))) | ||
1850 | return IRQ_HANDLED; | ||
1851 | |||
1849 | spin_lock_irqsave(&ha->hardware_lock, flags); | 1852 | spin_lock_irqsave(&ha->hardware_lock, flags); |
1850 | vha = pci_get_drvdata(ha->pdev); | 1853 | vha = pci_get_drvdata(ha->pdev); |
1851 | for (iter = 50; iter--; ) { | 1854 | for (iter = 50; iter--; ) { |
1852 | stat = RD_REG_DWORD(®->host_status); | 1855 | stat = RD_REG_DWORD(®->host_status); |
1853 | if (stat & HSRX_RISC_PAUSED) { | 1856 | if (stat & HSRX_RISC_PAUSED) { |
1854 | if (pci_channel_offline(ha->pdev)) | 1857 | if (unlikely(pci_channel_offline(ha->pdev))) |
1855 | break; | 1858 | break; |
1856 | 1859 | ||
1857 | hccr = RD_REG_DWORD(®->hccr); | 1860 | hccr = RD_REG_DWORD(®->hccr); |
@@ -1992,7 +1995,7 @@ qla24xx_msix_default(int irq, void *dev_id) | |||
1992 | do { | 1995 | do { |
1993 | stat = RD_REG_DWORD(®->host_status); | 1996 | stat = RD_REG_DWORD(®->host_status); |
1994 | if (stat & HSRX_RISC_PAUSED) { | 1997 | if (stat & HSRX_RISC_PAUSED) { |
1995 | if (pci_channel_offline(ha->pdev)) | 1998 | if (unlikely(pci_channel_offline(ha->pdev))) |
1996 | break; | 1999 | break; |
1997 | 2000 | ||
1998 | hccr = RD_REG_DWORD(®->hccr); | 2001 | hccr = RD_REG_DWORD(®->hccr); |
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 05d595d9a7e..056e4d4505f 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
@@ -56,6 +56,12 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp) | |||
56 | 56 | ||
57 | DEBUG11(printk("%s(%ld): entered.\n", __func__, base_vha->host_no)); | 57 | DEBUG11(printk("%s(%ld): entered.\n", __func__, base_vha->host_no)); |
58 | 58 | ||
59 | if (ha->flags.pci_channel_io_perm_failure) { | ||
60 | DEBUG(printk("%s(%ld): Perm failure on EEH, timeout MBX " | ||
61 | "Exiting.\n", __func__, vha->host_no)); | ||
62 | return QLA_FUNCTION_TIMEOUT; | ||
63 | } | ||
64 | |||
59 | /* | 65 | /* |
60 | * Wait for active mailbox commands to finish by waiting at most tov | 66 | * Wait for active mailbox commands to finish by waiting at most tov |
61 | * seconds. This is to serialize actual issuing of mailbox cmds during | 67 | * seconds. This is to serialize actual issuing of mailbox cmds during |
@@ -154,10 +160,14 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp) | |||
154 | /* Check for pending interrupts. */ | 160 | /* Check for pending interrupts. */ |
155 | qla2x00_poll(ha->rsp_q_map[0]); | 161 | qla2x00_poll(ha->rsp_q_map[0]); |
156 | 162 | ||
157 | if (command != MBC_LOAD_RISC_RAM_EXTENDED && | 163 | if (!ha->flags.mbox_int && |
158 | !ha->flags.mbox_int) | 164 | !(IS_QLA2200(ha) && |
165 | command == MBC_LOAD_RISC_RAM_EXTENDED)) | ||
159 | msleep(10); | 166 | msleep(10); |
160 | } /* while */ | 167 | } /* while */ |
168 | DEBUG17(qla_printk(KERN_WARNING, ha, | ||
169 | "Waited %d sec\n", | ||
170 | (uint)((jiffies - (wait_time - (mcp->tov * HZ)))/HZ))); | ||
161 | } | 171 | } |
162 | 172 | ||
163 | /* Check whether we timed out */ | 173 | /* Check whether we timed out */ |
@@ -227,7 +237,8 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp) | |||
227 | 237 | ||
228 | if (rval == QLA_FUNCTION_TIMEOUT && | 238 | if (rval == QLA_FUNCTION_TIMEOUT && |
229 | mcp->mb[0] != MBC_GEN_SYSTEM_ERROR) { | 239 | mcp->mb[0] != MBC_GEN_SYSTEM_ERROR) { |
230 | if (!io_lock_on || (mcp->flags & IOCTL_CMD)) { | 240 | if (!io_lock_on || (mcp->flags & IOCTL_CMD) || |
241 | ha->flags.eeh_busy) { | ||
231 | /* not in dpc. schedule it for dpc to take over. */ | 242 | /* not in dpc. schedule it for dpc to take over. */ |
232 | DEBUG(printk("%s(%ld): timeout schedule " | 243 | DEBUG(printk("%s(%ld): timeout schedule " |
233 | "isp_abort_needed.\n", __func__, | 244 | "isp_abort_needed.\n", __func__, |
@@ -237,7 +248,7 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp) | |||
237 | base_vha->host_no)); | 248 | base_vha->host_no)); |
238 | qla_printk(KERN_WARNING, ha, | 249 | qla_printk(KERN_WARNING, ha, |
239 | "Mailbox command timeout occurred. Scheduling ISP " | 250 | "Mailbox command timeout occurred. Scheduling ISP " |
240 | "abort.\n"); | 251 | "abort. eeh_busy: 0x%x\n", ha->flags.eeh_busy); |
241 | set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags); | 252 | set_bit(ISP_ABORT_NEEDED, &base_vha->dpc_flags); |
242 | qla2xxx_wake_dpc(vha); | 253 | qla2xxx_wake_dpc(vha); |
243 | } else if (!abort_active) { | 254 | } else if (!abort_active) { |
@@ -2530,6 +2541,9 @@ qla2x00_enable_eft_trace(scsi_qla_host_t *vha, dma_addr_t eft_dma, | |||
2530 | if (!IS_FWI2_CAPABLE(vha->hw)) | 2541 | if (!IS_FWI2_CAPABLE(vha->hw)) |
2531 | return QLA_FUNCTION_FAILED; | 2542 | return QLA_FUNCTION_FAILED; |
2532 | 2543 | ||
2544 | if (unlikely(pci_channel_offline(vha->hw->pdev))) | ||
2545 | return QLA_FUNCTION_FAILED; | ||
2546 | |||
2533 | DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); | 2547 | DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); |
2534 | 2548 | ||
2535 | mcp->mb[0] = MBC_TRACE_CONTROL; | 2549 | mcp->mb[0] = MBC_TRACE_CONTROL; |
@@ -2565,6 +2579,9 @@ qla2x00_disable_eft_trace(scsi_qla_host_t *vha) | |||
2565 | if (!IS_FWI2_CAPABLE(vha->hw)) | 2579 | if (!IS_FWI2_CAPABLE(vha->hw)) |
2566 | return QLA_FUNCTION_FAILED; | 2580 | return QLA_FUNCTION_FAILED; |
2567 | 2581 | ||
2582 | if (unlikely(pci_channel_offline(vha->hw->pdev))) | ||
2583 | return QLA_FUNCTION_FAILED; | ||
2584 | |||
2568 | DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); | 2585 | DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); |
2569 | 2586 | ||
2570 | mcp->mb[0] = MBC_TRACE_CONTROL; | 2587 | mcp->mb[0] = MBC_TRACE_CONTROL; |
@@ -2595,6 +2612,9 @@ qla2x00_enable_fce_trace(scsi_qla_host_t *vha, dma_addr_t fce_dma, | |||
2595 | if (!IS_QLA25XX(vha->hw) && !IS_QLA81XX(vha->hw)) | 2612 | if (!IS_QLA25XX(vha->hw) && !IS_QLA81XX(vha->hw)) |
2596 | return QLA_FUNCTION_FAILED; | 2613 | return QLA_FUNCTION_FAILED; |
2597 | 2614 | ||
2615 | if (unlikely(pci_channel_offline(vha->hw->pdev))) | ||
2616 | return QLA_FUNCTION_FAILED; | ||
2617 | |||
2598 | DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); | 2618 | DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); |
2599 | 2619 | ||
2600 | mcp->mb[0] = MBC_TRACE_CONTROL; | 2620 | mcp->mb[0] = MBC_TRACE_CONTROL; |
@@ -2639,6 +2659,9 @@ qla2x00_disable_fce_trace(scsi_qla_host_t *vha, uint64_t *wr, uint64_t *rd) | |||
2639 | if (!IS_FWI2_CAPABLE(vha->hw)) | 2659 | if (!IS_FWI2_CAPABLE(vha->hw)) |
2640 | return QLA_FUNCTION_FAILED; | 2660 | return QLA_FUNCTION_FAILED; |
2641 | 2661 | ||
2662 | if (unlikely(pci_channel_offline(vha->hw->pdev))) | ||
2663 | return QLA_FUNCTION_FAILED; | ||
2664 | |||
2642 | DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); | 2665 | DEBUG11(printk("%s(%ld): entered.\n", __func__, vha->host_no)); |
2643 | 2666 | ||
2644 | mcp->mb[0] = MBC_TRACE_CONTROL; | 2667 | mcp->mb[0] = MBC_TRACE_CONTROL; |
@@ -3643,3 +3666,36 @@ qla2x00_write_ram_word(scsi_qla_host_t *vha, uint32_t risc_addr, uint32_t data) | |||
3643 | 3666 | ||
3644 | return rval; | 3667 | return rval; |
3645 | } | 3668 | } |
3669 | |||
3670 | int | ||
3671 | qla2x00_get_data_rate(scsi_qla_host_t *vha) | ||
3672 | { | ||
3673 | int rval; | ||
3674 | mbx_cmd_t mc; | ||
3675 | mbx_cmd_t *mcp = &mc; | ||
3676 | struct qla_hw_data *ha = vha->hw; | ||
3677 | |||
3678 | if (!IS_FWI2_CAPABLE(ha)) | ||
3679 | return QLA_FUNCTION_FAILED; | ||
3680 | |||
3681 | DEBUG11(printk(KERN_INFO "%s(%ld): entered.\n", __func__, vha->host_no)); | ||
3682 | |||
3683 | mcp->mb[0] = MBC_DATA_RATE; | ||
3684 | mcp->mb[1] = 0; | ||
3685 | mcp->out_mb = MBX_1|MBX_0; | ||
3686 | mcp->in_mb = MBX_2|MBX_1|MBX_0; | ||
3687 | mcp->tov = MBX_TOV_SECONDS; | ||
3688 | mcp->flags = 0; | ||
3689 | rval = qla2x00_mailbox_command(vha, mcp); | ||
3690 | if (rval != QLA_SUCCESS) { | ||
3691 | DEBUG2_3_11(printk(KERN_INFO "%s(%ld): failed=%x mb[0]=%x.\n", | ||
3692 | __func__, vha->host_no, rval, mcp->mb[0])); | ||
3693 | } else { | ||
3694 | DEBUG11(printk(KERN_INFO | ||
3695 | "%s(%ld): done.\n", __func__, vha->host_no)); | ||
3696 | if (mcp->mb[1] != 0x7) | ||
3697 | ha->link_data_rate = mcp->mb[1]; | ||
3698 | } | ||
3699 | |||
3700 | return rval; | ||
3701 | } | ||
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c index 2a4c7f4e7b6..b901aa267e7 100644 --- a/drivers/scsi/qla2xxx/qla_mid.c +++ b/drivers/scsi/qla2xxx/qla_mid.c | |||
@@ -639,8 +639,10 @@ static void qla_do_work(struct work_struct *work) | |||
639 | struct rsp_que *rsp = container_of(work, struct rsp_que, q_work); | 639 | struct rsp_que *rsp = container_of(work, struct rsp_que, q_work); |
640 | struct scsi_qla_host *vha; | 640 | struct scsi_qla_host *vha; |
641 | 641 | ||
642 | spin_lock_irq(&rsp->hw->hardware_lock); | ||
642 | vha = qla25xx_get_host(rsp); | 643 | vha = qla25xx_get_host(rsp); |
643 | qla24xx_process_response_queue(vha, rsp); | 644 | qla24xx_process_response_queue(vha, rsp); |
645 | spin_unlock_irq(&rsp->hw->hardware_lock); | ||
644 | } | 646 | } |
645 | 647 | ||
646 | /* create response queue */ | 648 | /* create response queue */ |
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 2f873d23732..209f50e788a 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
@@ -475,11 +475,11 @@ qla2xxx_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) | |||
475 | srb_t *sp; | 475 | srb_t *sp; |
476 | int rval; | 476 | int rval; |
477 | 477 | ||
478 | if (unlikely(pci_channel_offline(ha->pdev))) { | 478 | if (ha->flags.eeh_busy) { |
479 | if (ha->pdev->error_state == pci_channel_io_frozen) | 479 | if (ha->flags.pci_channel_io_perm_failure) |
480 | cmd->result = DID_REQUEUE << 16; | ||
481 | else | ||
482 | cmd->result = DID_NO_CONNECT << 16; | 480 | cmd->result = DID_NO_CONNECT << 16; |
481 | else | ||
482 | cmd->result = DID_REQUEUE << 16; | ||
483 | goto qc24_fail_command; | 483 | goto qc24_fail_command; |
484 | } | 484 | } |
485 | 485 | ||
@@ -552,8 +552,15 @@ qla2x00_eh_wait_on_command(struct scsi_cmnd *cmd) | |||
552 | #define ABORT_POLLING_PERIOD 1000 | 552 | #define ABORT_POLLING_PERIOD 1000 |
553 | #define ABORT_WAIT_ITER ((10 * 1000) / (ABORT_POLLING_PERIOD)) | 553 | #define ABORT_WAIT_ITER ((10 * 1000) / (ABORT_POLLING_PERIOD)) |
554 | unsigned long wait_iter = ABORT_WAIT_ITER; | 554 | unsigned long wait_iter = ABORT_WAIT_ITER; |
555 | scsi_qla_host_t *vha = shost_priv(cmd->device->host); | ||
556 | struct qla_hw_data *ha = vha->hw; | ||
555 | int ret = QLA_SUCCESS; | 557 | int ret = QLA_SUCCESS; |
556 | 558 | ||
559 | if (unlikely(pci_channel_offline(ha->pdev)) || ha->flags.eeh_busy) { | ||
560 | DEBUG17(qla_printk(KERN_WARNING, ha, "return:eh_wait\n")); | ||
561 | return ret; | ||
562 | } | ||
563 | |||
557 | while (CMD_SP(cmd) && wait_iter--) { | 564 | while (CMD_SP(cmd) && wait_iter--) { |
558 | msleep(ABORT_POLLING_PERIOD); | 565 | msleep(ABORT_POLLING_PERIOD); |
559 | } | 566 | } |
@@ -1810,6 +1817,13 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1810 | 1817 | ||
1811 | /* Set ISP-type information. */ | 1818 | /* Set ISP-type information. */ |
1812 | qla2x00_set_isp_flags(ha); | 1819 | qla2x00_set_isp_flags(ha); |
1820 | |||
1821 | /* Set EEH reset type to fundamental if required by hba */ | ||
1822 | if ( IS_QLA24XX(ha) || IS_QLA25XX(ha) || IS_QLA81XX(ha)) { | ||
1823 | pdev->needs_freset = 1; | ||
1824 | pci_save_state(pdev); | ||
1825 | } | ||
1826 | |||
1813 | /* Configure PCI I/O space */ | 1827 | /* Configure PCI I/O space */ |
1814 | ret = qla2x00_iospace_config(ha); | 1828 | ret = qla2x00_iospace_config(ha); |
1815 | if (ret) | 1829 | if (ret) |
@@ -2174,6 +2188,24 @@ qla2x00_free_device(scsi_qla_host_t *vha) | |||
2174 | { | 2188 | { |
2175 | struct qla_hw_data *ha = vha->hw; | 2189 | struct qla_hw_data *ha = vha->hw; |
2176 | 2190 | ||
2191 | qla2x00_abort_all_cmds(vha, DID_NO_CONNECT << 16); | ||
2192 | |||
2193 | /* Disable timer */ | ||
2194 | if (vha->timer_active) | ||
2195 | qla2x00_stop_timer(vha); | ||
2196 | |||
2197 | /* Kill the kernel thread for this host */ | ||
2198 | if (ha->dpc_thread) { | ||
2199 | struct task_struct *t = ha->dpc_thread; | ||
2200 | |||
2201 | /* | ||
2202 | * qla2xxx_wake_dpc checks for ->dpc_thread | ||
2203 | * so we need to zero it out. | ||
2204 | */ | ||
2205 | ha->dpc_thread = NULL; | ||
2206 | kthread_stop(t); | ||
2207 | } | ||
2208 | |||
2177 | qla25xx_delete_queues(vha); | 2209 | qla25xx_delete_queues(vha); |
2178 | 2210 | ||
2179 | if (ha->flags.fce_enabled) | 2211 | if (ha->flags.fce_enabled) |
@@ -2185,6 +2217,8 @@ qla2x00_free_device(scsi_qla_host_t *vha) | |||
2185 | /* Stop currently executing firmware. */ | 2217 | /* Stop currently executing firmware. */ |
2186 | qla2x00_try_to_stop_firmware(vha); | 2218 | qla2x00_try_to_stop_firmware(vha); |
2187 | 2219 | ||
2220 | vha->flags.online = 0; | ||
2221 | |||
2188 | /* turn-off interrupts on the card */ | 2222 | /* turn-off interrupts on the card */ |
2189 | if (ha->interrupts_on) | 2223 | if (ha->interrupts_on) |
2190 | ha->isp_ops->disable_intrs(ha); | 2224 | ha->isp_ops->disable_intrs(ha); |
@@ -2859,6 +2893,13 @@ qla2x00_do_dpc(void *data) | |||
2859 | if (!base_vha->flags.init_done) | 2893 | if (!base_vha->flags.init_done) |
2860 | continue; | 2894 | continue; |
2861 | 2895 | ||
2896 | if (ha->flags.eeh_busy) { | ||
2897 | DEBUG17(qla_printk(KERN_WARNING, ha, | ||
2898 | "qla2x00_do_dpc: dpc_flags: %lx\n", | ||
2899 | base_vha->dpc_flags)); | ||
2900 | continue; | ||
2901 | } | ||
2902 | |||
2862 | DEBUG3(printk("scsi(%ld): DPC handler\n", base_vha->host_no)); | 2903 | DEBUG3(printk("scsi(%ld): DPC handler\n", base_vha->host_no)); |
2863 | 2904 | ||
2864 | ha->dpc_active = 1; | 2905 | ha->dpc_active = 1; |
@@ -3049,8 +3090,13 @@ qla2x00_timer(scsi_qla_host_t *vha) | |||
3049 | int index; | 3090 | int index; |
3050 | srb_t *sp; | 3091 | srb_t *sp; |
3051 | int t; | 3092 | int t; |
3093 | uint16_t w; | ||
3052 | struct qla_hw_data *ha = vha->hw; | 3094 | struct qla_hw_data *ha = vha->hw; |
3053 | struct req_que *req; | 3095 | struct req_que *req; |
3096 | |||
3097 | /* Hardware read to raise pending EEH errors during mailbox waits. */ | ||
3098 | if (!pci_channel_offline(ha->pdev)) | ||
3099 | pci_read_config_word(ha->pdev, PCI_VENDOR_ID, &w); | ||
3054 | /* | 3100 | /* |
3055 | * Ports - Port down timer. | 3101 | * Ports - Port down timer. |
3056 | * | 3102 | * |
@@ -3252,16 +3298,23 @@ qla2x00_release_firmware(void) | |||
3252 | static pci_ers_result_t | 3298 | static pci_ers_result_t |
3253 | qla2xxx_pci_error_detected(struct pci_dev *pdev, pci_channel_state_t state) | 3299 | qla2xxx_pci_error_detected(struct pci_dev *pdev, pci_channel_state_t state) |
3254 | { | 3300 | { |
3255 | scsi_qla_host_t *base_vha = pci_get_drvdata(pdev); | 3301 | scsi_qla_host_t *vha = pci_get_drvdata(pdev); |
3302 | struct qla_hw_data *ha = vha->hw; | ||
3303 | |||
3304 | DEBUG2(qla_printk(KERN_WARNING, ha, "error_detected:state %x\n", | ||
3305 | state)); | ||
3256 | 3306 | ||
3257 | switch (state) { | 3307 | switch (state) { |
3258 | case pci_channel_io_normal: | 3308 | case pci_channel_io_normal: |
3309 | ha->flags.eeh_busy = 0; | ||
3259 | return PCI_ERS_RESULT_CAN_RECOVER; | 3310 | return PCI_ERS_RESULT_CAN_RECOVER; |
3260 | case pci_channel_io_frozen: | 3311 | case pci_channel_io_frozen: |
3312 | ha->flags.eeh_busy = 1; | ||
3261 | pci_disable_device(pdev); | 3313 | pci_disable_device(pdev); |
3262 | return PCI_ERS_RESULT_NEED_RESET; | 3314 | return PCI_ERS_RESULT_NEED_RESET; |
3263 | case pci_channel_io_perm_failure: | 3315 | case pci_channel_io_perm_failure: |
3264 | qla2x00_abort_all_cmds(base_vha, DID_NO_CONNECT << 16); | 3316 | ha->flags.pci_channel_io_perm_failure = 1; |
3317 | qla2x00_abort_all_cmds(vha, DID_NO_CONNECT << 16); | ||
3265 | return PCI_ERS_RESULT_DISCONNECT; | 3318 | return PCI_ERS_RESULT_DISCONNECT; |
3266 | } | 3319 | } |
3267 | return PCI_ERS_RESULT_NEED_RESET; | 3320 | return PCI_ERS_RESULT_NEED_RESET; |
@@ -3312,6 +3365,8 @@ qla2xxx_pci_slot_reset(struct pci_dev *pdev) | |||
3312 | struct qla_hw_data *ha = base_vha->hw; | 3365 | struct qla_hw_data *ha = base_vha->hw; |
3313 | int rc; | 3366 | int rc; |
3314 | 3367 | ||
3368 | DEBUG17(qla_printk(KERN_WARNING, ha, "slot_reset\n")); | ||
3369 | |||
3315 | if (ha->mem_only) | 3370 | if (ha->mem_only) |
3316 | rc = pci_enable_device_mem(pdev); | 3371 | rc = pci_enable_device_mem(pdev); |
3317 | else | 3372 | else |
@@ -3320,19 +3375,33 @@ qla2xxx_pci_slot_reset(struct pci_dev *pdev) | |||
3320 | if (rc) { | 3375 | if (rc) { |
3321 | qla_printk(KERN_WARNING, ha, | 3376 | qla_printk(KERN_WARNING, ha, |
3322 | "Can't re-enable PCI device after reset.\n"); | 3377 | "Can't re-enable PCI device after reset.\n"); |
3323 | |||
3324 | return ret; | 3378 | return ret; |
3325 | } | 3379 | } |
3326 | pci_set_master(pdev); | ||
3327 | 3380 | ||
3328 | if (ha->isp_ops->pci_config(base_vha)) | 3381 | if (ha->isp_ops->pci_config(base_vha)) |
3329 | return ret; | 3382 | return ret; |
3330 | 3383 | ||
3384 | #ifdef QL_DEBUG_LEVEL_17 | ||
3385 | { | ||
3386 | uint8_t b; | ||
3387 | uint32_t i; | ||
3388 | |||
3389 | printk("slot_reset_1: "); | ||
3390 | for (i = 0; i < 256; i++) { | ||
3391 | pci_read_config_byte(ha->pdev, i, &b); | ||
3392 | printk("%s%02x", (i%16) ? " " : "\n", b); | ||
3393 | } | ||
3394 | printk("\n"); | ||
3395 | } | ||
3396 | #endif | ||
3331 | set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); | 3397 | set_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); |
3332 | if (qla2x00_abort_isp(base_vha) == QLA_SUCCESS) | 3398 | if (qla2x00_abort_isp(base_vha) == QLA_SUCCESS) |
3333 | ret = PCI_ERS_RESULT_RECOVERED; | 3399 | ret = PCI_ERS_RESULT_RECOVERED; |
3334 | clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); | 3400 | clear_bit(ABORT_ISP_ACTIVE, &base_vha->dpc_flags); |
3335 | 3401 | ||
3402 | DEBUG17(qla_printk(KERN_WARNING, ha, | ||
3403 | "slot_reset-return:ret=%x\n", ret)); | ||
3404 | |||
3336 | return ret; | 3405 | return ret; |
3337 | } | 3406 | } |
3338 | 3407 | ||
@@ -3343,12 +3412,17 @@ qla2xxx_pci_resume(struct pci_dev *pdev) | |||
3343 | struct qla_hw_data *ha = base_vha->hw; | 3412 | struct qla_hw_data *ha = base_vha->hw; |
3344 | int ret; | 3413 | int ret; |
3345 | 3414 | ||
3415 | DEBUG17(qla_printk(KERN_WARNING, ha, "pci_resume\n")); | ||
3416 | |||
3346 | ret = qla2x00_wait_for_hba_online(base_vha); | 3417 | ret = qla2x00_wait_for_hba_online(base_vha); |
3347 | if (ret != QLA_SUCCESS) { | 3418 | if (ret != QLA_SUCCESS) { |
3348 | qla_printk(KERN_ERR, ha, | 3419 | qla_printk(KERN_ERR, ha, |
3349 | "the device failed to resume I/O " | 3420 | "the device failed to resume I/O " |
3350 | "from slot/link_reset"); | 3421 | "from slot/link_reset"); |
3351 | } | 3422 | } |
3423 | |||
3424 | ha->flags.eeh_busy = 0; | ||
3425 | |||
3352 | pci_cleanup_aer_uncorrect_error_status(pdev); | 3426 | pci_cleanup_aer_uncorrect_error_status(pdev); |
3353 | } | 3427 | } |
3354 | 3428 | ||
diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h index c482220f7ee..a65dd95507c 100644 --- a/drivers/scsi/qla2xxx/qla_version.h +++ b/drivers/scsi/qla2xxx/qla_version.h | |||
@@ -7,7 +7,7 @@ | |||
7 | /* | 7 | /* |
8 | * Driver version | 8 | * Driver version |
9 | */ | 9 | */ |
10 | #define QLA2XXX_VERSION "8.03.01-k8" | 10 | #define QLA2XXX_VERSION "8.03.01-k9" |
11 | 11 | ||
12 | #define QLA_DRIVER_MAJOR_VER 8 | 12 | #define QLA_DRIVER_MAJOR_VER 8 |
13 | #define QLA_DRIVER_MINOR_VER 3 | 13 | #define QLA_DRIVER_MINOR_VER 3 |
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c index 3058bb1aff9..fd7b15be764 100644 --- a/drivers/scsi/stex.c +++ b/drivers/scsi/stex.c | |||
@@ -623,6 +623,11 @@ stex_queuecommand(struct scsi_cmnd *cmd, void (* done)(struct scsi_cmnd *)) | |||
623 | } | 623 | } |
624 | break; | 624 | break; |
625 | case INQUIRY: | 625 | case INQUIRY: |
626 | if (lun >= host->max_lun) { | ||
627 | cmd->result = DID_NO_CONNECT << 16; | ||
628 | done(cmd); | ||
629 | return 0; | ||
630 | } | ||
626 | if (id != host->max_id - 1) | 631 | if (id != host->max_id - 1) |
627 | break; | 632 | break; |
628 | if (!lun && !cmd->device->channel && | 633 | if (!lun && !cmd->device->channel && |
diff --git a/drivers/serial/21285.c b/drivers/serial/21285.c index 1e3d19397a5..8681f134505 100644 --- a/drivers/serial/21285.c +++ b/drivers/serial/21285.c | |||
@@ -58,7 +58,7 @@ static const char serial21285_name[] = "Footbridge UART"; | |||
58 | static void serial21285_stop_tx(struct uart_port *port) | 58 | static void serial21285_stop_tx(struct uart_port *port) |
59 | { | 59 | { |
60 | if (tx_enabled(port)) { | 60 | if (tx_enabled(port)) { |
61 | disable_irq(IRQ_CONTX); | 61 | disable_irq_nosync(IRQ_CONTX); |
62 | tx_enabled(port) = 0; | 62 | tx_enabled(port) = 0; |
63 | } | 63 | } |
64 | } | 64 | } |
@@ -74,7 +74,7 @@ static void serial21285_start_tx(struct uart_port *port) | |||
74 | static void serial21285_stop_rx(struct uart_port *port) | 74 | static void serial21285_stop_rx(struct uart_port *port) |
75 | { | 75 | { |
76 | if (rx_enabled(port)) { | 76 | if (rx_enabled(port)) { |
77 | disable_irq(IRQ_CONRX); | 77 | disable_irq_nosync(IRQ_CONRX); |
78 | rx_enabled(port) = 0; | 78 | rx_enabled(port) = 0; |
79 | } | 79 | } |
80 | } | 80 | } |
diff --git a/drivers/serial/8250_pnp.c b/drivers/serial/8250_pnp.c index 36ede02ceac..24485cc62ff 100644 --- a/drivers/serial/8250_pnp.c +++ b/drivers/serial/8250_pnp.c | |||
@@ -328,15 +328,7 @@ static const struct pnp_device_id pnp_dev_table[] = { | |||
328 | /* U.S. Robotics 56K Voice INT PnP*/ | 328 | /* U.S. Robotics 56K Voice INT PnP*/ |
329 | { "USR9190", 0 }, | 329 | { "USR9190", 0 }, |
330 | /* Wacom tablets */ | 330 | /* Wacom tablets */ |
331 | { "WACF004", 0 }, | 331 | { "WACFXXX", 0 }, |
332 | { "WACF005", 0 }, | ||
333 | { "WACF006", 0 }, | ||
334 | { "WACF007", 0 }, | ||
335 | { "WACF008", 0 }, | ||
336 | { "WACF009", 0 }, | ||
337 | { "WACF00A", 0 }, | ||
338 | { "WACF00B", 0 }, | ||
339 | { "WACF00C", 0 }, | ||
340 | /* Compaq touchscreen */ | 332 | /* Compaq touchscreen */ |
341 | { "FPI2002", 0 }, | 333 | { "FPI2002", 0 }, |
342 | /* Fujitsu Stylistic touchscreens */ | 334 | /* Fujitsu Stylistic touchscreens */ |
@@ -354,6 +346,8 @@ static const struct pnp_device_id pnp_dev_table[] = { | |||
354 | { "FUJ02E5", 0 }, | 346 | { "FUJ02E5", 0 }, |
355 | /* Fujitsu P-series tablet PC device */ | 347 | /* Fujitsu P-series tablet PC device */ |
356 | { "FUJ02E6", 0 }, | 348 | { "FUJ02E6", 0 }, |
349 | /* Fujitsu Wacom 2FGT Tablet PC device */ | ||
350 | { "FUJ02E7", 0 }, | ||
357 | /* | 351 | /* |
358 | * LG C1 EXPRESS DUAL (C1-PB11A3) touch screen (actually a FUJ02E6 in | 352 | * LG C1 EXPRESS DUAL (C1-PB11A3) touch screen (actually a FUJ02E6 in |
359 | * disguise) | 353 | * disguise) |
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c index 18130f11238..60d665a17a8 100644 --- a/drivers/serial/imx.c +++ b/drivers/serial/imx.c | |||
@@ -1088,7 +1088,7 @@ imx_console_get_options(struct imx_port *sport, int *baud, | |||
1088 | int *parity, int *bits) | 1088 | int *parity, int *bits) |
1089 | { | 1089 | { |
1090 | 1090 | ||
1091 | if ( readl(sport->port.membase + UCR1) | UCR1_UARTEN ) { | 1091 | if (readl(sport->port.membase + UCR1) & UCR1_UARTEN) { |
1092 | /* ok, the port was enabled */ | 1092 | /* ok, the port was enabled */ |
1093 | unsigned int ucr2, ubir,ubmr, uartclk; | 1093 | unsigned int ucr2, ubir,ubmr, uartclk; |
1094 | unsigned int baud_raw; | 1094 | unsigned int baud_raw; |
diff --git a/drivers/serial/pmac_zilog.c b/drivers/serial/pmac_zilog.c index 0700cd10b97..683e66f18e8 100644 --- a/drivers/serial/pmac_zilog.c +++ b/drivers/serial/pmac_zilog.c | |||
@@ -411,6 +411,17 @@ static void pmz_transmit_chars(struct uart_pmac_port *uap) | |||
411 | goto ack_tx_int; | 411 | goto ack_tx_int; |
412 | } | 412 | } |
413 | 413 | ||
414 | /* Under some circumstances, we see interrupts reported for | ||
415 | * a closed channel. The interrupt mask in R1 is clear, but | ||
416 | * R3 still signals the interrupts and we see them when taking | ||
417 | * an interrupt for the other channel (this could be a qemu | ||
418 | * bug but since the ESCC doc doesn't specify precsiely whether | ||
419 | * R3 interrup status bits are masked by R1 interrupt enable | ||
420 | * bits, better safe than sorry). --BenH. | ||
421 | */ | ||
422 | if (!ZS_IS_OPEN(uap)) | ||
423 | goto ack_tx_int; | ||
424 | |||
414 | if (uap->port.x_char) { | 425 | if (uap->port.x_char) { |
415 | uap->flags |= PMACZILOG_FLAG_TX_ACTIVE; | 426 | uap->flags |= PMACZILOG_FLAG_TX_ACTIVE; |
416 | write_zsdata(uap, uap->port.x_char); | 427 | write_zsdata(uap, uap->port.x_char); |
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c index 047530b285b..7f283070951 100644 --- a/drivers/serial/serial_core.c +++ b/drivers/serial/serial_core.c | |||
@@ -385,13 +385,20 @@ uart_get_baud_rate(struct uart_port *port, struct ktermios *termios, | |||
385 | } | 385 | } |
386 | 386 | ||
387 | /* | 387 | /* |
388 | * As a last resort, if the quotient is zero, | 388 | * As a last resort, if the range cannot be met then clip to |
389 | * default to 9600 bps | 389 | * the nearest chip supported rate. |
390 | */ | 390 | */ |
391 | if (!hung_up) | 391 | if (!hung_up) { |
392 | tty_termios_encode_baud_rate(termios, 9600, 9600); | 392 | if (baud <= min) |
393 | tty_termios_encode_baud_rate(termios, | ||
394 | min + 1, min + 1); | ||
395 | else | ||
396 | tty_termios_encode_baud_rate(termios, | ||
397 | max - 1, max - 1); | ||
398 | } | ||
393 | } | 399 | } |
394 | 400 | /* Should never happen */ | |
401 | WARN_ON(1); | ||
395 | return 0; | 402 | return 0; |
396 | } | 403 | } |
397 | 404 | ||
@@ -2006,12 +2013,6 @@ int uart_suspend_port(struct uart_driver *drv, struct uart_port *uport) | |||
2006 | 2013 | ||
2007 | mutex_lock(&port->mutex); | 2014 | mutex_lock(&port->mutex); |
2008 | 2015 | ||
2009 | if (!console_suspend_enabled && uart_console(uport)) { | ||
2010 | /* we're going to avoid suspending serial console */ | ||
2011 | mutex_unlock(&port->mutex); | ||
2012 | return 0; | ||
2013 | } | ||
2014 | |||
2015 | tty_dev = device_find_child(uport->dev, &match, serial_match_port); | 2016 | tty_dev = device_find_child(uport->dev, &match, serial_match_port); |
2016 | if (device_may_wakeup(tty_dev)) { | 2017 | if (device_may_wakeup(tty_dev)) { |
2017 | enable_irq_wake(uport->irq); | 2018 | enable_irq_wake(uport->irq); |
@@ -2019,20 +2020,23 @@ int uart_suspend_port(struct uart_driver *drv, struct uart_port *uport) | |||
2019 | mutex_unlock(&port->mutex); | 2020 | mutex_unlock(&port->mutex); |
2020 | return 0; | 2021 | return 0; |
2021 | } | 2022 | } |
2022 | uport->suspended = 1; | 2023 | if (console_suspend_enabled || !uart_console(uport)) |
2024 | uport->suspended = 1; | ||
2023 | 2025 | ||
2024 | if (port->flags & ASYNC_INITIALIZED) { | 2026 | if (port->flags & ASYNC_INITIALIZED) { |
2025 | const struct uart_ops *ops = uport->ops; | 2027 | const struct uart_ops *ops = uport->ops; |
2026 | int tries; | 2028 | int tries; |
2027 | 2029 | ||
2028 | set_bit(ASYNCB_SUSPENDED, &port->flags); | 2030 | if (console_suspend_enabled || !uart_console(uport)) { |
2029 | clear_bit(ASYNCB_INITIALIZED, &port->flags); | 2031 | set_bit(ASYNCB_SUSPENDED, &port->flags); |
2032 | clear_bit(ASYNCB_INITIALIZED, &port->flags); | ||
2030 | 2033 | ||
2031 | spin_lock_irq(&uport->lock); | 2034 | spin_lock_irq(&uport->lock); |
2032 | ops->stop_tx(uport); | 2035 | ops->stop_tx(uport); |
2033 | ops->set_mctrl(uport, 0); | 2036 | ops->set_mctrl(uport, 0); |
2034 | ops->stop_rx(uport); | 2037 | ops->stop_rx(uport); |
2035 | spin_unlock_irq(&uport->lock); | 2038 | spin_unlock_irq(&uport->lock); |
2039 | } | ||
2036 | 2040 | ||
2037 | /* | 2041 | /* |
2038 | * Wait for the transmitter to empty. | 2042 | * Wait for the transmitter to empty. |
@@ -2047,16 +2051,18 @@ int uart_suspend_port(struct uart_driver *drv, struct uart_port *uport) | |||
2047 | drv->dev_name, | 2051 | drv->dev_name, |
2048 | drv->tty_driver->name_base + uport->line); | 2052 | drv->tty_driver->name_base + uport->line); |
2049 | 2053 | ||
2050 | ops->shutdown(uport); | 2054 | if (console_suspend_enabled || !uart_console(uport)) |
2055 | ops->shutdown(uport); | ||
2051 | } | 2056 | } |
2052 | 2057 | ||
2053 | /* | 2058 | /* |
2054 | * Disable the console device before suspending. | 2059 | * Disable the console device before suspending. |
2055 | */ | 2060 | */ |
2056 | if (uart_console(uport)) | 2061 | if (console_suspend_enabled && uart_console(uport)) |
2057 | console_stop(uport->cons); | 2062 | console_stop(uport->cons); |
2058 | 2063 | ||
2059 | uart_change_pm(state, 3); | 2064 | if (console_suspend_enabled || !uart_console(uport)) |
2065 | uart_change_pm(state, 3); | ||
2060 | 2066 | ||
2061 | mutex_unlock(&port->mutex); | 2067 | mutex_unlock(&port->mutex); |
2062 | 2068 | ||
@@ -2073,29 +2079,6 @@ int uart_resume_port(struct uart_driver *drv, struct uart_port *uport) | |||
2073 | 2079 | ||
2074 | mutex_lock(&port->mutex); | 2080 | mutex_lock(&port->mutex); |
2075 | 2081 | ||
2076 | if (!console_suspend_enabled && uart_console(uport)) { | ||
2077 | /* no need to resume serial console, it wasn't suspended */ | ||
2078 | /* | ||
2079 | * First try to use the console cflag setting. | ||
2080 | */ | ||
2081 | memset(&termios, 0, sizeof(struct ktermios)); | ||
2082 | termios.c_cflag = uport->cons->cflag; | ||
2083 | /* | ||
2084 | * If that's unset, use the tty termios setting. | ||
2085 | */ | ||
2086 | if (termios.c_cflag == 0) | ||
2087 | termios = *state->port.tty->termios; | ||
2088 | else { | ||
2089 | termios.c_ispeed = termios.c_ospeed = | ||
2090 | tty_termios_input_baud_rate(&termios); | ||
2091 | termios.c_ispeed = termios.c_ospeed = | ||
2092 | tty_termios_baud_rate(&termios); | ||
2093 | } | ||
2094 | uport->ops->set_termios(uport, &termios, NULL); | ||
2095 | mutex_unlock(&port->mutex); | ||
2096 | return 0; | ||
2097 | } | ||
2098 | |||
2099 | tty_dev = device_find_child(uport->dev, &match, serial_match_port); | 2082 | tty_dev = device_find_child(uport->dev, &match, serial_match_port); |
2100 | if (!uport->suspended && device_may_wakeup(tty_dev)) { | 2083 | if (!uport->suspended && device_may_wakeup(tty_dev)) { |
2101 | disable_irq_wake(uport->irq); | 2084 | disable_irq_wake(uport->irq); |
@@ -2121,21 +2104,23 @@ int uart_resume_port(struct uart_driver *drv, struct uart_port *uport) | |||
2121 | spin_lock_irq(&uport->lock); | 2104 | spin_lock_irq(&uport->lock); |
2122 | ops->set_mctrl(uport, 0); | 2105 | ops->set_mctrl(uport, 0); |
2123 | spin_unlock_irq(&uport->lock); | 2106 | spin_unlock_irq(&uport->lock); |
2124 | ret = ops->startup(uport); | 2107 | if (console_suspend_enabled || !uart_console(uport)) { |
2125 | if (ret == 0) { | 2108 | ret = ops->startup(uport); |
2126 | uart_change_speed(state, NULL); | 2109 | if (ret == 0) { |
2127 | spin_lock_irq(&uport->lock); | 2110 | uart_change_speed(state, NULL); |
2128 | ops->set_mctrl(uport, uport->mctrl); | 2111 | spin_lock_irq(&uport->lock); |
2129 | ops->start_tx(uport); | 2112 | ops->set_mctrl(uport, uport->mctrl); |
2130 | spin_unlock_irq(&uport->lock); | 2113 | ops->start_tx(uport); |
2131 | set_bit(ASYNCB_INITIALIZED, &port->flags); | 2114 | spin_unlock_irq(&uport->lock); |
2132 | } else { | 2115 | set_bit(ASYNCB_INITIALIZED, &port->flags); |
2133 | /* | 2116 | } else { |
2134 | * Failed to resume - maybe hardware went away? | 2117 | /* |
2135 | * Clear the "initialized" flag so we won't try | 2118 | * Failed to resume - maybe hardware went away? |
2136 | * to call the low level drivers shutdown method. | 2119 | * Clear the "initialized" flag so we won't try |
2137 | */ | 2120 | * to call the low level drivers shutdown method. |
2138 | uart_shutdown(state); | 2121 | */ |
2122 | uart_shutdown(state); | ||
2123 | } | ||
2139 | } | 2124 | } |
2140 | 2125 | ||
2141 | clear_bit(ASYNCB_SUSPENDED, &port->flags); | 2126 | clear_bit(ASYNCB_SUSPENDED, &port->flags); |
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c index fc413f0f8dd..df854401af2 100644 --- a/drivers/serial/serial_cs.c +++ b/drivers/serial/serial_cs.c | |||
@@ -146,7 +146,8 @@ static void quirk_wakeup_oxsemi(struct pcmcia_device *link) | |||
146 | { | 146 | { |
147 | struct serial_info *info = link->priv; | 147 | struct serial_info *info = link->priv; |
148 | 148 | ||
149 | outb(12, info->c950ctrl + 1); | 149 | if (info->c950ctrl) |
150 | outb(12, info->c950ctrl + 1); | ||
150 | } | 151 | } |
151 | 152 | ||
152 | /* request_region? oxsemi branch does no request_region too... */ | 153 | /* request_region? oxsemi branch does no request_region too... */ |
@@ -819,6 +820,7 @@ static struct pcmcia_device_id serial_ids[] = { | |||
819 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x0035, "cis/3CXEM556.cis"), | 820 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x0035, "cis/3CXEM556.cis"), |
820 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x003d, "cis/3CXEM556.cis"), | 821 | PCMCIA_MFC_DEVICE_CIS_MANF_CARD(1, 0x0101, 0x003d, "cis/3CXEM556.cis"), |
821 | PCMCIA_DEVICE_CIS_PROD_ID12("Sierra Wireless", "AC850", 0xd85f6206, 0x42a2c018, "cis/SW_8xx_SER.cis"), /* Sierra Wireless AC850 3G Network Adapter R1 */ | 822 | PCMCIA_DEVICE_CIS_PROD_ID12("Sierra Wireless", "AC850", 0xd85f6206, 0x42a2c018, "cis/SW_8xx_SER.cis"), /* Sierra Wireless AC850 3G Network Adapter R1 */ |
823 | PCMCIA_DEVICE_CIS_PROD_ID12("Sierra Wireless", "AC860", 0xd85f6206, 0x698f93db, "cis/SW_8xx_SER.cis"), /* Sierra Wireless AC860 3G Network Adapter R1 */ | ||
822 | PCMCIA_DEVICE_CIS_PROD_ID12("Sierra Wireless", "AC710/AC750", 0xd85f6206, 0x761b11e0, "cis/SW_7xx_SER.cis"), /* Sierra Wireless AC710/AC750 GPRS Network Adapter R1 */ | 824 | PCMCIA_DEVICE_CIS_PROD_ID12("Sierra Wireless", "AC710/AC750", 0xd85f6206, 0x761b11e0, "cis/SW_7xx_SER.cis"), /* Sierra Wireless AC710/AC750 GPRS Network Adapter R1 */ |
823 | PCMCIA_DEVICE_CIS_MANF_CARD(0x0192, 0xa555, "cis/SW_555_SER.cis"), /* Sierra Aircard 555 CDMA 1xrtt Modem -- pre update */ | 825 | PCMCIA_DEVICE_CIS_MANF_CARD(0x0192, 0xa555, "cis/SW_555_SER.cis"), /* Sierra Aircard 555 CDMA 1xrtt Modem -- pre update */ |
824 | PCMCIA_DEVICE_CIS_MANF_CARD(0x013f, 0xa555, "cis/SW_555_SER.cis"), /* Sierra Aircard 555 CDMA 1xrtt Modem -- post update */ | 826 | PCMCIA_DEVICE_CIS_MANF_CARD(0x013f, 0xa555, "cis/SW_555_SER.cis"), /* Sierra Aircard 555 CDMA 1xrtt Modem -- post update */ |
@@ -827,7 +829,7 @@ static struct pcmcia_device_id serial_ids[] = { | |||
827 | PCMCIA_DEVICE_CIS_PROD_ID12("ADVANTECH", "COMpad-32/85B-4", 0x96913a85, 0xcec8f102, "cis/COMpad4.cis"), | 829 | PCMCIA_DEVICE_CIS_PROD_ID12("ADVANTECH", "COMpad-32/85B-4", 0x96913a85, 0xcec8f102, "cis/COMpad4.cis"), |
828 | PCMCIA_DEVICE_CIS_PROD_ID123("ADVANTECH", "COMpad-32/85", "1.0", 0x96913a85, 0x8fbe92ae, 0x0877b627, "cis/COMpad2.cis"), | 830 | PCMCIA_DEVICE_CIS_PROD_ID123("ADVANTECH", "COMpad-32/85", "1.0", 0x96913a85, 0x8fbe92ae, 0x0877b627, "cis/COMpad2.cis"), |
829 | PCMCIA_DEVICE_CIS_PROD_ID2("RS-COM 2P", 0xad20b156, "cis/RS-COM-2P.cis"), | 831 | PCMCIA_DEVICE_CIS_PROD_ID2("RS-COM 2P", 0xad20b156, "cis/RS-COM-2P.cis"), |
830 | PCMCIA_DEVICE_CIS_MANF_CARD(0x0013, 0x0000, "GLOBETROTTER.cis"), | 832 | PCMCIA_DEVICE_CIS_MANF_CARD(0x0013, 0x0000, "cis/GLOBETROTTER.cis"), |
831 | PCMCIA_DEVICE_PROD_ID12("ELAN DIGITAL SYSTEMS LTD, c1997.","SERIAL CARD: SL100 1.00.",0x19ca78af,0xf964f42b), | 833 | PCMCIA_DEVICE_PROD_ID12("ELAN DIGITAL SYSTEMS LTD, c1997.","SERIAL CARD: SL100 1.00.",0x19ca78af,0xf964f42b), |
832 | PCMCIA_DEVICE_PROD_ID12("ELAN DIGITAL SYSTEMS LTD, c1997.","SERIAL CARD: SL100",0x19ca78af,0x71d98e83), | 834 | PCMCIA_DEVICE_PROD_ID12("ELAN DIGITAL SYSTEMS LTD, c1997.","SERIAL CARD: SL100",0x19ca78af,0x71d98e83), |
833 | PCMCIA_DEVICE_PROD_ID12("ELAN DIGITAL SYSTEMS LTD, c1997.","SERIAL CARD: SL232 1.00.",0x19ca78af,0x69fb7490), | 835 | PCMCIA_DEVICE_PROD_ID12("ELAN DIGITAL SYSTEMS LTD, c1997.","SERIAL CARD: SL232 1.00.",0x19ca78af,0x69fb7490), |
@@ -861,6 +863,18 @@ static struct pcmcia_device_id serial_ids[] = { | |||
861 | }; | 863 | }; |
862 | MODULE_DEVICE_TABLE(pcmcia, serial_ids); | 864 | MODULE_DEVICE_TABLE(pcmcia, serial_ids); |
863 | 865 | ||
866 | MODULE_FIRMWARE("cis/PCMLM28.cis"); | ||
867 | MODULE_FIRMWARE("cis/DP83903.cis"); | ||
868 | MODULE_FIRMWARE("cis/3CCFEM556.cis"); | ||
869 | MODULE_FIRMWARE("cis/3CXEM556.cis"); | ||
870 | MODULE_FIRMWARE("cis/SW_8xx_SER.cis"); | ||
871 | MODULE_FIRMWARE("cis/SW_7xx_SER.cis"); | ||
872 | MODULE_FIRMWARE("cis/SW_555_SER.cis"); | ||
873 | MODULE_FIRMWARE("cis/MT5634ZLX.cis"); | ||
874 | MODULE_FIRMWARE("cis/COMpad2.cis"); | ||
875 | MODULE_FIRMWARE("cis/COMpad4.cis"); | ||
876 | MODULE_FIRMWARE("cis/RS-COM-2P.cis"); | ||
877 | |||
864 | static struct pcmcia_driver serial_cs_driver = { | 878 | static struct pcmcia_driver serial_cs_driver = { |
865 | .owner = THIS_MODULE, | 879 | .owner = THIS_MODULE, |
866 | .drv = { | 880 | .drv = { |
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c index 37f0de9dd9c..42f3333c4ad 100644 --- a/drivers/serial/sh-sci.c +++ b/drivers/serial/sh-sci.c | |||
@@ -1052,7 +1052,18 @@ static void __devinit sci_init_single(struct platform_device *dev, | |||
1052 | sci_port->port.ops = &sci_uart_ops; | 1052 | sci_port->port.ops = &sci_uart_ops; |
1053 | sci_port->port.iotype = UPIO_MEM; | 1053 | sci_port->port.iotype = UPIO_MEM; |
1054 | sci_port->port.line = index; | 1054 | sci_port->port.line = index; |
1055 | sci_port->port.fifosize = 1; | 1055 | |
1056 | switch (p->type) { | ||
1057 | case PORT_SCIFA: | ||
1058 | sci_port->port.fifosize = 64; | ||
1059 | break; | ||
1060 | case PORT_SCIF: | ||
1061 | sci_port->port.fifosize = 16; | ||
1062 | break; | ||
1063 | default: | ||
1064 | sci_port->port.fifosize = 1; | ||
1065 | break; | ||
1066 | } | ||
1056 | 1067 | ||
1057 | if (dev) { | 1068 | if (dev) { |
1058 | sci_port->iclk = p->clk ? clk_get(&dev->dev, p->clk) : NULL; | 1069 | sci_port->iclk = p->clk ? clk_get(&dev->dev, p->clk) : NULL; |
diff --git a/drivers/staging/asus_oled/asus_oled.c b/drivers/staging/asus_oled/asus_oled.c index f4c26572c7d..43c57b7688a 100644 --- a/drivers/staging/asus_oled/asus_oled.c +++ b/drivers/staging/asus_oled/asus_oled.c | |||
@@ -194,9 +194,11 @@ static ssize_t set_enabled(struct device *dev, struct device_attribute *attr, | |||
194 | { | 194 | { |
195 | struct usb_interface *intf = to_usb_interface(dev); | 195 | struct usb_interface *intf = to_usb_interface(dev); |
196 | struct asus_oled_dev *odev = usb_get_intfdata(intf); | 196 | struct asus_oled_dev *odev = usb_get_intfdata(intf); |
197 | int temp = strict_strtoul(buf, 10, NULL); | 197 | unsigned long value; |
198 | if (strict_strtoul(buf, 10, &value)) | ||
199 | return -EINVAL; | ||
198 | 200 | ||
199 | enable_oled(odev, temp); | 201 | enable_oled(odev, value); |
200 | 202 | ||
201 | return count; | 203 | return count; |
202 | } | 204 | } |
@@ -207,10 +209,12 @@ static ssize_t class_set_enabled(struct device *device, | |||
207 | { | 209 | { |
208 | struct asus_oled_dev *odev = | 210 | struct asus_oled_dev *odev = |
209 | (struct asus_oled_dev *) dev_get_drvdata(device); | 211 | (struct asus_oled_dev *) dev_get_drvdata(device); |
212 | unsigned long value; | ||
210 | 213 | ||
211 | int temp = strict_strtoul(buf, 10, NULL); | 214 | if (strict_strtoul(buf, 10, &value)) |
215 | return -EINVAL; | ||
212 | 216 | ||
213 | enable_oled(odev, temp); | 217 | enable_oled(odev, value); |
214 | 218 | ||
215 | return count; | 219 | return count; |
216 | } | 220 | } |
diff --git a/drivers/staging/cx25821/cx25821-medusa-video.c b/drivers/staging/cx25821/cx25821-medusa-video.c index e4df8134f05..1eb079b3d42 100644 --- a/drivers/staging/cx25821/cx25821-medusa-video.c +++ b/drivers/staging/cx25821/cx25821-medusa-video.c | |||
@@ -860,10 +860,8 @@ int medusa_video_init(struct cx25821_dev *dev) | |||
860 | 860 | ||
861 | ret_val = medusa_set_videostandard(dev); | 861 | ret_val = medusa_set_videostandard(dev); |
862 | 862 | ||
863 | if (ret_val < 0) { | 863 | if (ret_val < 0) |
864 | mutex_unlock(&dev->lock); | ||
865 | return -EINVAL; | 864 | return -EINVAL; |
866 | } | ||
867 | 865 | ||
868 | return 1; | 866 | return 1; |
869 | } | 867 | } |
diff --git a/drivers/staging/et131x/et1310_address_map.h b/drivers/staging/et131x/et1310_address_map.h index 6da843cc343..e715e4dcb52 100644 --- a/drivers/staging/et131x/et1310_address_map.h +++ b/drivers/staging/et131x/et1310_address_map.h | |||
@@ -203,11 +203,14 @@ typedef struct _GLOBAL_t { /* Location: */ | |||
203 | * 9-0: pr ndes | 203 | * 9-0: pr ndes |
204 | */ | 204 | */ |
205 | 205 | ||
206 | #define ET_DMA10_MASK 0x3FF /* 10 bit mask for DMA10W types */ | 206 | #define ET_DMA12_MASK 0x0FFF /* 12 bit mask for DMA12W types */ |
207 | #define ET_DMA10_WRAP 0x400 | 207 | #define ET_DMA12_WRAP 0x1000 |
208 | #define ET_DMA4_MASK 0x00F /* 4 bit mask for DMA4W types */ | 208 | #define ET_DMA10_MASK 0x03FF /* 10 bit mask for DMA10W types */ |
209 | #define ET_DMA4_WRAP 0x010 | 209 | #define ET_DMA10_WRAP 0x0400 |
210 | 210 | #define ET_DMA4_MASK 0x000F /* 4 bit mask for DMA4W types */ | |
211 | #define ET_DMA4_WRAP 0x0010 | ||
212 | |||
213 | #define INDEX12(x) ((x) & ET_DMA12_MASK) | ||
211 | #define INDEX10(x) ((x) & ET_DMA10_MASK) | 214 | #define INDEX10(x) ((x) & ET_DMA10_MASK) |
212 | #define INDEX4(x) ((x) & ET_DMA4_MASK) | 215 | #define INDEX4(x) ((x) & ET_DMA4_MASK) |
213 | 216 | ||
@@ -216,6 +219,11 @@ extern inline void add_10bit(u32 *v, int n) | |||
216 | *v = INDEX10(*v + n) | (*v & ET_DMA10_WRAP); | 219 | *v = INDEX10(*v + n) | (*v & ET_DMA10_WRAP); |
217 | } | 220 | } |
218 | 221 | ||
222 | extern inline void add_12bit(u32 *v, int n) | ||
223 | { | ||
224 | *v = INDEX12(*v + n) | (*v & ET_DMA12_WRAP); | ||
225 | } | ||
226 | |||
219 | /* | 227 | /* |
220 | * 10bit DMA with wrap | 228 | * 10bit DMA with wrap |
221 | * txdma tx queue write address reg in txdma address map at 0x1010 | 229 | * txdma tx queue write address reg in txdma address map at 0x1010 |
diff --git a/drivers/staging/et131x/et1310_rx.c b/drivers/staging/et131x/et1310_rx.c index 3ddc9b12b8d..81c1a7478ad 100644 --- a/drivers/staging/et131x/et1310_rx.c +++ b/drivers/staging/et131x/et1310_rx.c | |||
@@ -831,10 +831,10 @@ PMP_RFD nic_rx_pkts(struct et131x_adapter *etdev) | |||
831 | 831 | ||
832 | /* Indicate that we have used this PSR entry. */ | 832 | /* Indicate that we have used this PSR entry. */ |
833 | /* FIXME wrap 12 */ | 833 | /* FIXME wrap 12 */ |
834 | rx_local->local_psr_full = (rx_local->local_psr_full + 1) & 0xFFF; | 834 | add_12bit(&rx_local->local_psr_full, 1); |
835 | if (rx_local->local_psr_full > rx_local->PsrNumEntries - 1) { | 835 | if ((rx_local->local_psr_full & 0xFFF) > rx_local->PsrNumEntries - 1) { |
836 | /* Clear psr full and toggle the wrap bit */ | 836 | /* Clear psr full and toggle the wrap bit */ |
837 | rx_local->local_psr_full &= 0xFFF; | 837 | rx_local->local_psr_full &= ~0xFFF; |
838 | rx_local->local_psr_full ^= 0x1000; | 838 | rx_local->local_psr_full ^= 0x1000; |
839 | } | 839 | } |
840 | 840 | ||
diff --git a/drivers/staging/hv/Hv.c b/drivers/staging/hv/Hv.c index c5b6613f2f2..c2809f2a2ce 100644 --- a/drivers/staging/hv/Hv.c +++ b/drivers/staging/hv/Hv.c | |||
@@ -386,7 +386,7 @@ u16 HvSignalEvent(void) | |||
386 | * retrieve the initialized message and event pages. Otherwise, we create and | 386 | * retrieve the initialized message and event pages. Otherwise, we create and |
387 | * initialize the message and event pages. | 387 | * initialize the message and event pages. |
388 | */ | 388 | */ |
389 | int HvSynicInit(u32 irqVector) | 389 | void HvSynicInit(void *irqarg) |
390 | { | 390 | { |
391 | u64 version; | 391 | u64 version; |
392 | union hv_synic_simp simp; | 392 | union hv_synic_simp simp; |
@@ -394,13 +394,14 @@ int HvSynicInit(u32 irqVector) | |||
394 | union hv_synic_sint sharedSint; | 394 | union hv_synic_sint sharedSint; |
395 | union hv_synic_scontrol sctrl; | 395 | union hv_synic_scontrol sctrl; |
396 | u64 guestID; | 396 | u64 guestID; |
397 | int ret = 0; | 397 | u32 irqVector = *((u32 *)(irqarg)); |
398 | int cpu = smp_processor_id(); | ||
398 | 399 | ||
399 | DPRINT_ENTER(VMBUS); | 400 | DPRINT_ENTER(VMBUS); |
400 | 401 | ||
401 | if (!gHvContext.HypercallPage) { | 402 | if (!gHvContext.HypercallPage) { |
402 | DPRINT_EXIT(VMBUS); | 403 | DPRINT_EXIT(VMBUS); |
403 | return ret; | 404 | return; |
404 | } | 405 | } |
405 | 406 | ||
406 | /* Check the version */ | 407 | /* Check the version */ |
@@ -425,27 +426,27 @@ int HvSynicInit(u32 irqVector) | |||
425 | */ | 426 | */ |
426 | rdmsrl(HV_X64_MSR_GUEST_OS_ID, guestID); | 427 | rdmsrl(HV_X64_MSR_GUEST_OS_ID, guestID); |
427 | if (guestID == HV_LINUX_GUEST_ID) { | 428 | if (guestID == HV_LINUX_GUEST_ID) { |
428 | gHvContext.synICMessagePage[0] = | 429 | gHvContext.synICMessagePage[cpu] = |
429 | phys_to_virt(simp.BaseSimpGpa << PAGE_SHIFT); | 430 | phys_to_virt(simp.BaseSimpGpa << PAGE_SHIFT); |
430 | gHvContext.synICEventPage[0] = | 431 | gHvContext.synICEventPage[cpu] = |
431 | phys_to_virt(siefp.BaseSiefpGpa << PAGE_SHIFT); | 432 | phys_to_virt(siefp.BaseSiefpGpa << PAGE_SHIFT); |
432 | } else { | 433 | } else { |
433 | DPRINT_ERR(VMBUS, "unknown guest id!!"); | 434 | DPRINT_ERR(VMBUS, "unknown guest id!!"); |
434 | goto Cleanup; | 435 | goto Cleanup; |
435 | } | 436 | } |
436 | DPRINT_DBG(VMBUS, "MAPPED: Simp: %p, Sifep: %p", | 437 | DPRINT_DBG(VMBUS, "MAPPED: Simp: %p, Sifep: %p", |
437 | gHvContext.synICMessagePage[0], | 438 | gHvContext.synICMessagePage[cpu], |
438 | gHvContext.synICEventPage[0]); | 439 | gHvContext.synICEventPage[cpu]); |
439 | } else { | 440 | } else { |
440 | gHvContext.synICMessagePage[0] = osd_PageAlloc(1); | 441 | gHvContext.synICMessagePage[cpu] = (void *)get_zeroed_page(GFP_ATOMIC); |
441 | if (gHvContext.synICMessagePage[0] == NULL) { | 442 | if (gHvContext.synICMessagePage[cpu] == NULL) { |
442 | DPRINT_ERR(VMBUS, | 443 | DPRINT_ERR(VMBUS, |
443 | "unable to allocate SYNIC message page!!"); | 444 | "unable to allocate SYNIC message page!!"); |
444 | goto Cleanup; | 445 | goto Cleanup; |
445 | } | 446 | } |
446 | 447 | ||
447 | gHvContext.synICEventPage[0] = osd_PageAlloc(1); | 448 | gHvContext.synICEventPage[cpu] = (void *)get_zeroed_page(GFP_ATOMIC); |
448 | if (gHvContext.synICEventPage[0] == NULL) { | 449 | if (gHvContext.synICEventPage[cpu] == NULL) { |
449 | DPRINT_ERR(VMBUS, | 450 | DPRINT_ERR(VMBUS, |
450 | "unable to allocate SYNIC event page!!"); | 451 | "unable to allocate SYNIC event page!!"); |
451 | goto Cleanup; | 452 | goto Cleanup; |
@@ -454,7 +455,7 @@ int HvSynicInit(u32 irqVector) | |||
454 | /* Setup the Synic's message page */ | 455 | /* Setup the Synic's message page */ |
455 | rdmsrl(HV_X64_MSR_SIMP, simp.AsUINT64); | 456 | rdmsrl(HV_X64_MSR_SIMP, simp.AsUINT64); |
456 | simp.SimpEnabled = 1; | 457 | simp.SimpEnabled = 1; |
457 | simp.BaseSimpGpa = virt_to_phys(gHvContext.synICMessagePage[0]) | 458 | simp.BaseSimpGpa = virt_to_phys(gHvContext.synICMessagePage[cpu]) |
458 | >> PAGE_SHIFT; | 459 | >> PAGE_SHIFT; |
459 | 460 | ||
460 | DPRINT_DBG(VMBUS, "HV_X64_MSR_SIMP msr set to: %llx", | 461 | DPRINT_DBG(VMBUS, "HV_X64_MSR_SIMP msr set to: %llx", |
@@ -465,7 +466,7 @@ int HvSynicInit(u32 irqVector) | |||
465 | /* Setup the Synic's event page */ | 466 | /* Setup the Synic's event page */ |
466 | rdmsrl(HV_X64_MSR_SIEFP, siefp.AsUINT64); | 467 | rdmsrl(HV_X64_MSR_SIEFP, siefp.AsUINT64); |
467 | siefp.SiefpEnabled = 1; | 468 | siefp.SiefpEnabled = 1; |
468 | siefp.BaseSiefpGpa = virt_to_phys(gHvContext.synICEventPage[0]) | 469 | siefp.BaseSiefpGpa = virt_to_phys(gHvContext.synICEventPage[cpu]) |
469 | >> PAGE_SHIFT; | 470 | >> PAGE_SHIFT; |
470 | 471 | ||
471 | DPRINT_DBG(VMBUS, "HV_X64_MSR_SIEFP msr set to: %llx", | 472 | DPRINT_DBG(VMBUS, "HV_X64_MSR_SIEFP msr set to: %llx", |
@@ -501,32 +502,30 @@ int HvSynicInit(u32 irqVector) | |||
501 | 502 | ||
502 | DPRINT_EXIT(VMBUS); | 503 | DPRINT_EXIT(VMBUS); |
503 | 504 | ||
504 | return ret; | 505 | return; |
505 | 506 | ||
506 | Cleanup: | 507 | Cleanup: |
507 | ret = -1; | ||
508 | |||
509 | if (gHvContext.GuestId == HV_LINUX_GUEST_ID) { | 508 | if (gHvContext.GuestId == HV_LINUX_GUEST_ID) { |
510 | if (gHvContext.synICEventPage[0]) | 509 | if (gHvContext.synICEventPage[cpu]) |
511 | osd_PageFree(gHvContext.synICEventPage[0], 1); | 510 | osd_PageFree(gHvContext.synICEventPage[cpu], 1); |
512 | 511 | ||
513 | if (gHvContext.synICMessagePage[0]) | 512 | if (gHvContext.synICMessagePage[cpu]) |
514 | osd_PageFree(gHvContext.synICMessagePage[0], 1); | 513 | osd_PageFree(gHvContext.synICMessagePage[cpu], 1); |
515 | } | 514 | } |
516 | 515 | ||
517 | DPRINT_EXIT(VMBUS); | 516 | DPRINT_EXIT(VMBUS); |
518 | 517 | return; | |
519 | return ret; | ||
520 | } | 518 | } |
521 | 519 | ||
522 | /** | 520 | /** |
523 | * HvSynicCleanup - Cleanup routine for HvSynicInit(). | 521 | * HvSynicCleanup - Cleanup routine for HvSynicInit(). |
524 | */ | 522 | */ |
525 | void HvSynicCleanup(void) | 523 | void HvSynicCleanup(void *arg) |
526 | { | 524 | { |
527 | union hv_synic_sint sharedSint; | 525 | union hv_synic_sint sharedSint; |
528 | union hv_synic_simp simp; | 526 | union hv_synic_simp simp; |
529 | union hv_synic_siefp siefp; | 527 | union hv_synic_siefp siefp; |
528 | int cpu = smp_processor_id(); | ||
530 | 529 | ||
531 | DPRINT_ENTER(VMBUS); | 530 | DPRINT_ENTER(VMBUS); |
532 | 531 | ||
@@ -539,6 +538,7 @@ void HvSynicCleanup(void) | |||
539 | 538 | ||
540 | sharedSint.Masked = 1; | 539 | sharedSint.Masked = 1; |
541 | 540 | ||
541 | /* Need to correctly cleanup in the case of SMP!!! */ | ||
542 | /* Disable the interrupt */ | 542 | /* Disable the interrupt */ |
543 | wrmsrl(HV_X64_MSR_SINT0 + VMBUS_MESSAGE_SINT, sharedSint.AsUINT64); | 543 | wrmsrl(HV_X64_MSR_SINT0 + VMBUS_MESSAGE_SINT, sharedSint.AsUINT64); |
544 | 544 | ||
@@ -560,8 +560,8 @@ void HvSynicCleanup(void) | |||
560 | 560 | ||
561 | wrmsrl(HV_X64_MSR_SIEFP, siefp.AsUINT64); | 561 | wrmsrl(HV_X64_MSR_SIEFP, siefp.AsUINT64); |
562 | 562 | ||
563 | osd_PageFree(gHvContext.synICMessagePage[0], 1); | 563 | osd_PageFree(gHvContext.synICMessagePage[cpu], 1); |
564 | osd_PageFree(gHvContext.synICEventPage[0], 1); | 564 | osd_PageFree(gHvContext.synICEventPage[cpu], 1); |
565 | } | 565 | } |
566 | 566 | ||
567 | DPRINT_EXIT(VMBUS); | 567 | DPRINT_EXIT(VMBUS); |
diff --git a/drivers/staging/hv/Hv.h b/drivers/staging/hv/Hv.h index 5379e4bfc56..fce4b5cdac3 100644 --- a/drivers/staging/hv/Hv.h +++ b/drivers/staging/hv/Hv.h | |||
@@ -93,7 +93,7 @@ static const struct hv_guid VMBUS_SERVICE_ID = { | |||
93 | }, | 93 | }, |
94 | }; | 94 | }; |
95 | 95 | ||
96 | #define MAX_NUM_CPUS 1 | 96 | #define MAX_NUM_CPUS 32 |
97 | 97 | ||
98 | 98 | ||
99 | struct hv_input_signal_event_buffer { | 99 | struct hv_input_signal_event_buffer { |
@@ -137,8 +137,8 @@ extern u16 HvPostMessage(union hv_connection_id connectionId, | |||
137 | 137 | ||
138 | extern u16 HvSignalEvent(void); | 138 | extern u16 HvSignalEvent(void); |
139 | 139 | ||
140 | extern int HvSynicInit(u32 irqVector); | 140 | extern void HvSynicInit(void *irqarg); |
141 | 141 | ||
142 | extern void HvSynicCleanup(void); | 142 | extern void HvSynicCleanup(void *arg); |
143 | 143 | ||
144 | #endif /* __HV_H__ */ | 144 | #endif /* __HV_H__ */ |
diff --git a/drivers/staging/hv/Vmbus.c b/drivers/staging/hv/Vmbus.c index a4dd06f6d45..35a023e9f9d 100644 --- a/drivers/staging/hv/Vmbus.c +++ b/drivers/staging/hv/Vmbus.c | |||
@@ -129,7 +129,7 @@ static int VmbusOnDeviceAdd(struct hv_device *dev, void *AdditionalInfo) | |||
129 | 129 | ||
130 | /* strcpy(dev->name, "vmbus"); */ | 130 | /* strcpy(dev->name, "vmbus"); */ |
131 | /* SynIC setup... */ | 131 | /* SynIC setup... */ |
132 | ret = HvSynicInit(*irqvector); | 132 | on_each_cpu(HvSynicInit, (void *)irqvector, 1); |
133 | 133 | ||
134 | /* Connect to VMBus in the root partition */ | 134 | /* Connect to VMBus in the root partition */ |
135 | ret = VmbusConnect(); | 135 | ret = VmbusConnect(); |
@@ -150,7 +150,7 @@ static int VmbusOnDeviceRemove(struct hv_device *dev) | |||
150 | DPRINT_ENTER(VMBUS); | 150 | DPRINT_ENTER(VMBUS); |
151 | VmbusChannelReleaseUnattachedChannels(); | 151 | VmbusChannelReleaseUnattachedChannels(); |
152 | VmbusDisconnect(); | 152 | VmbusDisconnect(); |
153 | HvSynicCleanup(); | 153 | on_each_cpu(HvSynicCleanup, NULL, 1); |
154 | DPRINT_EXIT(VMBUS); | 154 | DPRINT_EXIT(VMBUS); |
155 | 155 | ||
156 | return ret; | 156 | return ret; |
@@ -173,7 +173,8 @@ static void VmbusOnCleanup(struct hv_driver *drv) | |||
173 | */ | 173 | */ |
174 | static void VmbusOnMsgDPC(struct hv_driver *drv) | 174 | static void VmbusOnMsgDPC(struct hv_driver *drv) |
175 | { | 175 | { |
176 | void *page_addr = gHvContext.synICMessagePage[0]; | 176 | int cpu = smp_processor_id(); |
177 | void *page_addr = gHvContext.synICMessagePage[cpu]; | ||
177 | struct hv_message *msg = (struct hv_message *)page_addr + | 178 | struct hv_message *msg = (struct hv_message *)page_addr + |
178 | VMBUS_MESSAGE_SINT; | 179 | VMBUS_MESSAGE_SINT; |
179 | struct hv_message *copied; | 180 | struct hv_message *copied; |
@@ -230,11 +231,12 @@ static void VmbusOnEventDPC(struct hv_driver *drv) | |||
230 | static int VmbusOnISR(struct hv_driver *drv) | 231 | static int VmbusOnISR(struct hv_driver *drv) |
231 | { | 232 | { |
232 | int ret = 0; | 233 | int ret = 0; |
234 | int cpu = smp_processor_id(); | ||
233 | void *page_addr; | 235 | void *page_addr; |
234 | struct hv_message *msg; | 236 | struct hv_message *msg; |
235 | union hv_synic_event_flags *event; | 237 | union hv_synic_event_flags *event; |
236 | 238 | ||
237 | page_addr = gHvContext.synICMessagePage[0]; | 239 | page_addr = gHvContext.synICMessagePage[cpu]; |
238 | msg = (struct hv_message *)page_addr + VMBUS_MESSAGE_SINT; | 240 | msg = (struct hv_message *)page_addr + VMBUS_MESSAGE_SINT; |
239 | 241 | ||
240 | DPRINT_ENTER(VMBUS); | 242 | DPRINT_ENTER(VMBUS); |
@@ -248,7 +250,7 @@ static int VmbusOnISR(struct hv_driver *drv) | |||
248 | } | 250 | } |
249 | 251 | ||
250 | /* TODO: Check if there are events to be process */ | 252 | /* TODO: Check if there are events to be process */ |
251 | page_addr = gHvContext.synICEventPage[0]; | 253 | page_addr = gHvContext.synICEventPage[cpu]; |
252 | event = (union hv_synic_event_flags *)page_addr + VMBUS_MESSAGE_SINT; | 254 | event = (union hv_synic_event_flags *)page_addr + VMBUS_MESSAGE_SINT; |
253 | 255 | ||
254 | /* Since we are a child, we only need to check bit 0 */ | 256 | /* Since we are a child, we only need to check bit 0 */ |
diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c index 96f11715cd2..355dffcc23b 100644 --- a/drivers/usb/core/devices.c +++ b/drivers/usb/core/devices.c | |||
@@ -494,7 +494,7 @@ static ssize_t usb_device_dump(char __user **buffer, size_t *nbytes, | |||
494 | return 0; | 494 | return 0; |
495 | /* allocate 2^1 pages = 8K (on i386); | 495 | /* allocate 2^1 pages = 8K (on i386); |
496 | * should be more than enough for one device */ | 496 | * should be more than enough for one device */ |
497 | pages_start = (char *)__get_free_pages(GFP_KERNEL, 1); | 497 | pages_start = (char *)__get_free_pages(GFP_NOIO, 1); |
498 | if (!pages_start) | 498 | if (!pages_start) |
499 | return -ENOMEM; | 499 | return -ENOMEM; |
500 | 500 | ||
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index 0495fa65122..80995ef0868 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c | |||
@@ -1684,6 +1684,24 @@ int usb_hcd_alloc_bandwidth(struct usb_device *udev, | |||
1684 | } | 1684 | } |
1685 | } | 1685 | } |
1686 | if (cur_alt && new_alt) { | 1686 | if (cur_alt && new_alt) { |
1687 | struct usb_interface *iface = usb_ifnum_to_if(udev, | ||
1688 | cur_alt->desc.bInterfaceNumber); | ||
1689 | |||
1690 | if (iface->resetting_device) { | ||
1691 | /* | ||
1692 | * The USB core just reset the device, so the xHCI host | ||
1693 | * and the device will think alt setting 0 is installed. | ||
1694 | * However, the USB core will pass in the alternate | ||
1695 | * setting installed before the reset as cur_alt. Dig | ||
1696 | * out the alternate setting 0 structure, or the first | ||
1697 | * alternate setting if a broken device doesn't have alt | ||
1698 | * setting 0. | ||
1699 | */ | ||
1700 | cur_alt = usb_altnum_to_altsetting(iface, 0); | ||
1701 | if (!cur_alt) | ||
1702 | cur_alt = &iface->altsetting[0]; | ||
1703 | } | ||
1704 | |||
1687 | /* Drop all the endpoints in the current alt setting */ | 1705 | /* Drop all the endpoints in the current alt setting */ |
1688 | for (i = 0; i < cur_alt->desc.bNumEndpoints; i++) { | 1706 | for (i = 0; i < cur_alt->desc.bNumEndpoints; i++) { |
1689 | ret = hcd->driver->drop_endpoint(hcd, udev, | 1707 | ret = hcd->driver->drop_endpoint(hcd, udev, |
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 0cec6caf6e9..35cc8b9ba1f 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c | |||
@@ -3347,6 +3347,9 @@ static void hub_events(void) | |||
3347 | USB_PORT_FEAT_C_SUSPEND); | 3347 | USB_PORT_FEAT_C_SUSPEND); |
3348 | udev = hdev->children[i-1]; | 3348 | udev = hdev->children[i-1]; |
3349 | if (udev) { | 3349 | if (udev) { |
3350 | /* TRSMRCY = 10 msec */ | ||
3351 | msleep(10); | ||
3352 | |||
3350 | usb_lock_device(udev); | 3353 | usb_lock_device(udev); |
3351 | ret = remote_wakeup(hdev-> | 3354 | ret = remote_wakeup(hdev-> |
3352 | children[i-1]); | 3355 | children[i-1]); |
@@ -3692,19 +3695,14 @@ static int usb_reset_and_verify_device(struct usb_device *udev) | |||
3692 | usb_enable_interface(udev, intf, true); | 3695 | usb_enable_interface(udev, intf, true); |
3693 | ret = 0; | 3696 | ret = 0; |
3694 | } else { | 3697 | } else { |
3695 | /* We've just reset the device, so it will think alt | 3698 | /* Let the bandwidth allocation function know that this |
3696 | * setting 0 is installed. For usb_set_interface() to | 3699 | * device has been reset, and it will have to use |
3697 | * work properly, we need to set the current alternate | 3700 | * alternate setting 0 as the current alternate setting. |
3698 | * interface setting to 0 (or the first alt setting, if | ||
3699 | * the device doesn't have alt setting 0). | ||
3700 | */ | 3701 | */ |
3701 | intf->cur_altsetting = | 3702 | intf->resetting_device = 1; |
3702 | usb_find_alt_setting(config, i, 0); | ||
3703 | if (!intf->cur_altsetting) | ||
3704 | intf->cur_altsetting = | ||
3705 | &config->intf_cache[i]->altsetting[0]; | ||
3706 | ret = usb_set_interface(udev, desc->bInterfaceNumber, | 3703 | ret = usb_set_interface(udev, desc->bInterfaceNumber, |
3707 | desc->bAlternateSetting); | 3704 | desc->bAlternateSetting); |
3705 | intf->resetting_device = 0; | ||
3708 | } | 3706 | } |
3709 | if (ret < 0) { | 3707 | if (ret < 0) { |
3710 | dev_err(&udev->dev, "failed to restore interface %d " | 3708 | dev_err(&udev->dev, "failed to restore interface %d " |
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c index 1b994846e8e..9bc95fec793 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c | |||
@@ -906,11 +906,11 @@ char *usb_cache_string(struct usb_device *udev, int index) | |||
906 | if (index <= 0) | 906 | if (index <= 0) |
907 | return NULL; | 907 | return NULL; |
908 | 908 | ||
909 | buf = kmalloc(MAX_USB_STRING_SIZE, GFP_KERNEL); | 909 | buf = kmalloc(MAX_USB_STRING_SIZE, GFP_NOIO); |
910 | if (buf) { | 910 | if (buf) { |
911 | len = usb_string(udev, index, buf, MAX_USB_STRING_SIZE); | 911 | len = usb_string(udev, index, buf, MAX_USB_STRING_SIZE); |
912 | if (len > 0) { | 912 | if (len > 0) { |
913 | smallbuf = kmalloc(++len, GFP_KERNEL); | 913 | smallbuf = kmalloc(++len, GFP_NOIO); |
914 | if (!smallbuf) | 914 | if (!smallbuf) |
915 | return buf; | 915 | return buf; |
916 | memcpy(smallbuf, buf, len); | 916 | memcpy(smallbuf, buf, len); |
@@ -1731,7 +1731,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration) | |||
1731 | if (cp) { | 1731 | if (cp) { |
1732 | nintf = cp->desc.bNumInterfaces; | 1732 | nintf = cp->desc.bNumInterfaces; |
1733 | new_interfaces = kmalloc(nintf * sizeof(*new_interfaces), | 1733 | new_interfaces = kmalloc(nintf * sizeof(*new_interfaces), |
1734 | GFP_KERNEL); | 1734 | GFP_NOIO); |
1735 | if (!new_interfaces) { | 1735 | if (!new_interfaces) { |
1736 | dev_err(&dev->dev, "Out of memory\n"); | 1736 | dev_err(&dev->dev, "Out of memory\n"); |
1737 | return -ENOMEM; | 1737 | return -ENOMEM; |
@@ -1740,7 +1740,7 @@ int usb_set_configuration(struct usb_device *dev, int configuration) | |||
1740 | for (; n < nintf; ++n) { | 1740 | for (; n < nintf; ++n) { |
1741 | new_interfaces[n] = kzalloc( | 1741 | new_interfaces[n] = kzalloc( |
1742 | sizeof(struct usb_interface), | 1742 | sizeof(struct usb_interface), |
1743 | GFP_KERNEL); | 1743 | GFP_NOIO); |
1744 | if (!new_interfaces[n]) { | 1744 | if (!new_interfaces[n]) { |
1745 | dev_err(&dev->dev, "Out of memory\n"); | 1745 | dev_err(&dev->dev, "Out of memory\n"); |
1746 | ret = -ENOMEM; | 1746 | ret = -ENOMEM; |
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c index 485edf937f2..5f3908f6e2d 100644 --- a/drivers/usb/core/sysfs.c +++ b/drivers/usb/core/sysfs.c | |||
@@ -115,6 +115,12 @@ show_speed(struct device *dev, struct device_attribute *attr, char *buf) | |||
115 | case USB_SPEED_HIGH: | 115 | case USB_SPEED_HIGH: |
116 | speed = "480"; | 116 | speed = "480"; |
117 | break; | 117 | break; |
118 | case USB_SPEED_VARIABLE: | ||
119 | speed = "480"; | ||
120 | break; | ||
121 | case USB_SPEED_SUPER: | ||
122 | speed = "5000"; | ||
123 | break; | ||
118 | default: | 124 | default: |
119 | speed = "unknown"; | 125 | speed = "unknown"; |
120 | } | 126 | } |
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index 5859522d6ed..1ec3857f22e 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c | |||
@@ -787,9 +787,10 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd) | |||
787 | 787 | ||
788 | /* start 20 msec resume signaling from this port, | 788 | /* start 20 msec resume signaling from this port, |
789 | * and make khubd collect PORT_STAT_C_SUSPEND to | 789 | * and make khubd collect PORT_STAT_C_SUSPEND to |
790 | * stop that signaling. | 790 | * stop that signaling. Use 5 ms extra for safety, |
791 | * like usb_port_resume() does. | ||
791 | */ | 792 | */ |
792 | ehci->reset_done [i] = jiffies + msecs_to_jiffies (20); | 793 | ehci->reset_done[i] = jiffies + msecs_to_jiffies(25); |
793 | ehci_dbg (ehci, "port %d remote wakeup\n", i + 1); | 794 | ehci_dbg (ehci, "port %d remote wakeup\n", i + 1); |
794 | mod_timer(&hcd->rh_timer, ehci->reset_done[i]); | 795 | mod_timer(&hcd->rh_timer, ehci->reset_done[i]); |
795 | } | 796 | } |
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c index 2c6571c05f3..c75d9270c75 100644 --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c | |||
@@ -120,9 +120,26 @@ static int ehci_bus_suspend (struct usb_hcd *hcd) | |||
120 | del_timer_sync(&ehci->watchdog); | 120 | del_timer_sync(&ehci->watchdog); |
121 | del_timer_sync(&ehci->iaa_watchdog); | 121 | del_timer_sync(&ehci->iaa_watchdog); |
122 | 122 | ||
123 | port = HCS_N_PORTS (ehci->hcs_params); | ||
124 | spin_lock_irq (&ehci->lock); | 123 | spin_lock_irq (&ehci->lock); |
125 | 124 | ||
125 | /* Once the controller is stopped, port resumes that are already | ||
126 | * in progress won't complete. Hence if remote wakeup is enabled | ||
127 | * for the root hub and any ports are in the middle of a resume or | ||
128 | * remote wakeup, we must fail the suspend. | ||
129 | */ | ||
130 | if (hcd->self.root_hub->do_remote_wakeup) { | ||
131 | port = HCS_N_PORTS(ehci->hcs_params); | ||
132 | while (port--) { | ||
133 | if (ehci->reset_done[port] != 0) { | ||
134 | spin_unlock_irq(&ehci->lock); | ||
135 | ehci_dbg(ehci, "suspend failed because " | ||
136 | "port %d is resuming\n", | ||
137 | port + 1); | ||
138 | return -EBUSY; | ||
139 | } | ||
140 | } | ||
141 | } | ||
142 | |||
126 | /* stop schedules, clean any completed work */ | 143 | /* stop schedules, clean any completed work */ |
127 | if (HC_IS_RUNNING(hcd->state)) { | 144 | if (HC_IS_RUNNING(hcd->state)) { |
128 | ehci_quiesce (ehci); | 145 | ehci_quiesce (ehci); |
@@ -138,6 +155,7 @@ static int ehci_bus_suspend (struct usb_hcd *hcd) | |||
138 | */ | 155 | */ |
139 | ehci->bus_suspended = 0; | 156 | ehci->bus_suspended = 0; |
140 | ehci->owned_ports = 0; | 157 | ehci->owned_ports = 0; |
158 | port = HCS_N_PORTS(ehci->hcs_params); | ||
141 | while (port--) { | 159 | while (port--) { |
142 | u32 __iomem *reg = &ehci->regs->port_status [port]; | 160 | u32 __iomem *reg = &ehci->regs->port_status [port]; |
143 | u32 t1 = ehci_readl(ehci, reg) & ~PORT_RWC_BITS; | 161 | u32 t1 = ehci_readl(ehci, reg) & ~PORT_RWC_BITS; |
diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c index a427d3b0063..89521775c56 100644 --- a/drivers/usb/host/ehci-q.c +++ b/drivers/usb/host/ehci-q.c | |||
@@ -849,9 +849,10 @@ qh_make ( | |||
849 | * But interval 1 scheduling is simpler, and | 849 | * But interval 1 scheduling is simpler, and |
850 | * includes high bandwidth. | 850 | * includes high bandwidth. |
851 | */ | 851 | */ |
852 | dbg ("intr period %d uframes, NYET!", | 852 | urb->interval = 1; |
853 | urb->interval); | 853 | } else if (qh->period > ehci->periodic_size) { |
854 | goto done; | 854 | qh->period = ehci->periodic_size; |
855 | urb->interval = qh->period << 3; | ||
855 | } | 856 | } |
856 | } else { | 857 | } else { |
857 | int think_time; | 858 | int think_time; |
@@ -874,6 +875,10 @@ qh_make ( | |||
874 | usb_calc_bus_time (urb->dev->speed, | 875 | usb_calc_bus_time (urb->dev->speed, |
875 | is_input, 0, max_packet (maxp))); | 876 | is_input, 0, max_packet (maxp))); |
876 | qh->period = urb->interval; | 877 | qh->period = urb->interval; |
878 | if (qh->period > ehci->periodic_size) { | ||
879 | qh->period = ehci->periodic_size; | ||
880 | urb->interval = qh->period; | ||
881 | } | ||
877 | } | 882 | } |
878 | } | 883 | } |
879 | 884 | ||
diff --git a/drivers/usb/host/fhci-hcd.c b/drivers/usb/host/fhci-hcd.c index 0951818ef93..78e7c3cfcb7 100644 --- a/drivers/usb/host/fhci-hcd.c +++ b/drivers/usb/host/fhci-hcd.c | |||
@@ -242,9 +242,10 @@ err: | |||
242 | static void fhci_usb_free(void *lld) | 242 | static void fhci_usb_free(void *lld) |
243 | { | 243 | { |
244 | struct fhci_usb *usb = lld; | 244 | struct fhci_usb *usb = lld; |
245 | struct fhci_hcd *fhci = usb->fhci; | 245 | struct fhci_hcd *fhci; |
246 | 246 | ||
247 | if (usb) { | 247 | if (usb) { |
248 | fhci = usb->fhci; | ||
248 | fhci_config_transceiver(fhci, FHCI_PORT_POWER_OFF); | 249 | fhci_config_transceiver(fhci, FHCI_PORT_POWER_OFF); |
249 | fhci_ep0_free(usb); | 250 | fhci_ep0_free(usb); |
250 | kfree(usb->actual_frame); | 251 | kfree(usb->actual_frame); |
diff --git a/drivers/usb/host/isp1362-hcd.c b/drivers/usb/host/isp1362-hcd.c index 73352f3739b..42971657fde 100644 --- a/drivers/usb/host/isp1362-hcd.c +++ b/drivers/usb/host/isp1362-hcd.c | |||
@@ -2270,10 +2270,10 @@ static int isp1362_mem_config(struct usb_hcd *hcd) | |||
2270 | dev_info(hcd->self.controller, "ISP1362 Memory usage:\n"); | 2270 | dev_info(hcd->self.controller, "ISP1362 Memory usage:\n"); |
2271 | dev_info(hcd->self.controller, " ISTL: 2 * %4d: %4d @ $%04x:$%04x\n", | 2271 | dev_info(hcd->self.controller, " ISTL: 2 * %4d: %4d @ $%04x:$%04x\n", |
2272 | istl_size / 2, istl_size, 0, istl_size / 2); | 2272 | istl_size / 2, istl_size, 0, istl_size / 2); |
2273 | dev_info(hcd->self.controller, " INTL: %4d * (%3lu+8): %4d @ $%04x\n", | 2273 | dev_info(hcd->self.controller, " INTL: %4d * (%3zu+8): %4d @ $%04x\n", |
2274 | ISP1362_INTL_BUFFERS, intl_blksize - PTD_HEADER_SIZE, | 2274 | ISP1362_INTL_BUFFERS, intl_blksize - PTD_HEADER_SIZE, |
2275 | intl_size, istl_size); | 2275 | intl_size, istl_size); |
2276 | dev_info(hcd->self.controller, " ATL : %4d * (%3lu+8): %4d @ $%04x\n", | 2276 | dev_info(hcd->self.controller, " ATL : %4d * (%3zu+8): %4d @ $%04x\n", |
2277 | atl_buffers, atl_blksize - PTD_HEADER_SIZE, | 2277 | atl_buffers, atl_blksize - PTD_HEADER_SIZE, |
2278 | atl_size, istl_size + intl_size); | 2278 | atl_size, istl_size + intl_size); |
2279 | dev_info(hcd->self.controller, " USED/FREE: %4d %4d\n", total, | 2279 | dev_info(hcd->self.controller, " USED/FREE: %4d %4d\n", total, |
@@ -2697,6 +2697,8 @@ static int __init isp1362_probe(struct platform_device *pdev) | |||
2697 | void __iomem *data_reg; | 2697 | void __iomem *data_reg; |
2698 | int irq; | 2698 | int irq; |
2699 | int retval = 0; | 2699 | int retval = 0; |
2700 | struct resource *irq_res; | ||
2701 | unsigned int irq_flags = 0; | ||
2700 | 2702 | ||
2701 | /* basic sanity checks first. board-specific init logic should | 2703 | /* basic sanity checks first. board-specific init logic should |
2702 | * have initialized this the three resources and probably board | 2704 | * have initialized this the three resources and probably board |
@@ -2710,11 +2712,12 @@ static int __init isp1362_probe(struct platform_device *pdev) | |||
2710 | 2712 | ||
2711 | data = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 2713 | data = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
2712 | addr = platform_get_resource(pdev, IORESOURCE_MEM, 1); | 2714 | addr = platform_get_resource(pdev, IORESOURCE_MEM, 1); |
2713 | irq = platform_get_irq(pdev, 0); | 2715 | irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
2714 | if (!addr || !data || irq < 0) { | 2716 | if (!addr || !data || !irq_res) { |
2715 | retval = -ENODEV; | 2717 | retval = -ENODEV; |
2716 | goto err1; | 2718 | goto err1; |
2717 | } | 2719 | } |
2720 | irq = irq_res->start; | ||
2718 | 2721 | ||
2719 | #ifdef CONFIG_USB_HCD_DMA | 2722 | #ifdef CONFIG_USB_HCD_DMA |
2720 | if (pdev->dev.dma_mask) { | 2723 | if (pdev->dev.dma_mask) { |
@@ -2781,12 +2784,16 @@ static int __init isp1362_probe(struct platform_device *pdev) | |||
2781 | } | 2784 | } |
2782 | #endif | 2785 | #endif |
2783 | 2786 | ||
2784 | #ifdef CONFIG_ARM | 2787 | if (irq_res->flags & IORESOURCE_IRQ_HIGHEDGE) |
2785 | if (isp1362_hcd->board) | 2788 | irq_flags |= IRQF_TRIGGER_RISING; |
2786 | set_irq_type(irq, isp1362_hcd->board->int_act_high ? IRQT_RISING : IRQT_FALLING); | 2789 | if (irq_res->flags & IORESOURCE_IRQ_LOWEDGE) |
2787 | #endif | 2790 | irq_flags |= IRQF_TRIGGER_FALLING; |
2791 | if (irq_res->flags & IORESOURCE_IRQ_HIGHLEVEL) | ||
2792 | irq_flags |= IRQF_TRIGGER_HIGH; | ||
2793 | if (irq_res->flags & IORESOURCE_IRQ_LOWLEVEL) | ||
2794 | irq_flags |= IRQF_TRIGGER_LOW; | ||
2788 | 2795 | ||
2789 | retval = usb_add_hcd(hcd, irq, IRQF_TRIGGER_LOW | IRQF_DISABLED | IRQF_SHARED); | 2796 | retval = usb_add_hcd(hcd, irq, irq_flags | IRQF_DISABLED | IRQF_SHARED); |
2790 | if (retval != 0) | 2797 | if (retval != 0) |
2791 | goto err6; | 2798 | goto err6; |
2792 | pr_info("%s, irq %d\n", hcd->product_desc, irq); | 2799 | pr_info("%s, irq %d\n", hcd->product_desc, irq); |
diff --git a/drivers/usb/host/isp1760-hcd.c b/drivers/usb/host/isp1760-hcd.c index 9600a58299d..27b8f7cb447 100644 --- a/drivers/usb/host/isp1760-hcd.c +++ b/drivers/usb/host/isp1760-hcd.c | |||
@@ -1039,12 +1039,12 @@ static void do_atl_int(struct usb_hcd *usb_hcd) | |||
1039 | if (!nakcount && (dw3 & DW3_QTD_ACTIVE)) { | 1039 | if (!nakcount && (dw3 & DW3_QTD_ACTIVE)) { |
1040 | u32 buffstatus; | 1040 | u32 buffstatus; |
1041 | 1041 | ||
1042 | /* XXX | 1042 | /* |
1043 | * NAKs are handled in HW by the chip. Usually if the | 1043 | * NAKs are handled in HW by the chip. Usually if the |
1044 | * device is not able to send data fast enough. | 1044 | * device is not able to send data fast enough. |
1045 | * This did not trigger for a long time now. | 1045 | * This happens mostly on slower hardware. |
1046 | */ | 1046 | */ |
1047 | printk(KERN_ERR "Reloading ptd %p/%p... qh %p readed: " | 1047 | printk(KERN_NOTICE "Reloading ptd %p/%p... qh %p read: " |
1048 | "%d of %zu done: %08x cur: %08x\n", qtd, | 1048 | "%d of %zu done: %08x cur: %08x\n", qtd, |
1049 | urb, qh, PTD_XFERRED_LENGTH(dw3), | 1049 | urb, qh, PTD_XFERRED_LENGTH(dw3), |
1050 | qtd->length, done_map, | 1050 | qtd->length, done_map, |
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c index 5cd0e48f67f..99cd00fd351 100644 --- a/drivers/usb/host/uhci-hcd.c +++ b/drivers/usb/host/uhci-hcd.c | |||
@@ -749,7 +749,20 @@ static int uhci_rh_suspend(struct usb_hcd *hcd) | |||
749 | spin_lock_irq(&uhci->lock); | 749 | spin_lock_irq(&uhci->lock); |
750 | if (!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)) | 750 | if (!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)) |
751 | rc = -ESHUTDOWN; | 751 | rc = -ESHUTDOWN; |
752 | else if (!uhci->dead) | 752 | else if (uhci->dead) |
753 | ; /* Dead controllers tell no tales */ | ||
754 | |||
755 | /* Once the controller is stopped, port resumes that are already | ||
756 | * in progress won't complete. Hence if remote wakeup is enabled | ||
757 | * for the root hub and any ports are in the middle of a resume or | ||
758 | * remote wakeup, we must fail the suspend. | ||
759 | */ | ||
760 | else if (hcd->self.root_hub->do_remote_wakeup && | ||
761 | uhci->resuming_ports) { | ||
762 | dev_dbg(uhci_dev(uhci), "suspend failed because a port " | ||
763 | "is resuming\n"); | ||
764 | rc = -EBUSY; | ||
765 | } else | ||
753 | suspend_rh(uhci, UHCI_RH_SUSPENDED); | 766 | suspend_rh(uhci, UHCI_RH_SUSPENDED); |
754 | spin_unlock_irq(&uhci->lock); | 767 | spin_unlock_irq(&uhci->lock); |
755 | return rc; | 768 | return rc; |
diff --git a/drivers/usb/host/uhci-hub.c b/drivers/usb/host/uhci-hub.c index 885b585360b..8270055848c 100644 --- a/drivers/usb/host/uhci-hub.c +++ b/drivers/usb/host/uhci-hub.c | |||
@@ -167,7 +167,7 @@ static void uhci_check_ports(struct uhci_hcd *uhci) | |||
167 | /* Port received a wakeup request */ | 167 | /* Port received a wakeup request */ |
168 | set_bit(port, &uhci->resuming_ports); | 168 | set_bit(port, &uhci->resuming_ports); |
169 | uhci->ports_timeout = jiffies + | 169 | uhci->ports_timeout = jiffies + |
170 | msecs_to_jiffies(20); | 170 | msecs_to_jiffies(25); |
171 | 171 | ||
172 | /* Make sure we see the port again | 172 | /* Make sure we see the port again |
173 | * after the resuming period is over. */ | 173 | * after the resuming period is over. */ |
diff --git a/drivers/usb/serial/generic.c b/drivers/usb/serial/generic.c index f1ea3a33b6e..83443d6306d 100644 --- a/drivers/usb/serial/generic.c +++ b/drivers/usb/serial/generic.c | |||
@@ -386,12 +386,12 @@ int usb_serial_generic_chars_in_buffer(struct tty_struct *tty) | |||
386 | 386 | ||
387 | dbg("%s - port %d", __func__, port->number); | 387 | dbg("%s - port %d", __func__, port->number); |
388 | 388 | ||
389 | if (serial->type->max_in_flight_urbs) { | 389 | spin_lock_irqsave(&port->lock, flags); |
390 | spin_lock_irqsave(&port->lock, flags); | 390 | if (serial->type->max_in_flight_urbs) |
391 | chars = port->tx_bytes_flight; | 391 | chars = port->tx_bytes_flight; |
392 | spin_unlock_irqrestore(&port->lock, flags); | 392 | else if (serial->num_bulk_out) |
393 | } else if (serial->num_bulk_out) | ||
394 | chars = kfifo_len(&port->write_fifo); | 393 | chars = kfifo_len(&port->write_fifo); |
394 | spin_unlock_irqrestore(&port->lock, flags); | ||
395 | 395 | ||
396 | dbg("%s - returns %d", __func__, chars); | 396 | dbg("%s - returns %d", __func__, chars); |
397 | return chars; | 397 | return chars; |
@@ -489,6 +489,8 @@ void usb_serial_generic_write_bulk_callback(struct urb *urb) | |||
489 | dbg("%s - port %d", __func__, port->number); | 489 | dbg("%s - port %d", __func__, port->number); |
490 | 490 | ||
491 | if (port->serial->type->max_in_flight_urbs) { | 491 | if (port->serial->type->max_in_flight_urbs) { |
492 | kfree(urb->transfer_buffer); | ||
493 | |||
492 | spin_lock_irqsave(&port->lock, flags); | 494 | spin_lock_irqsave(&port->lock, flags); |
493 | --port->urbs_in_flight; | 495 | --port->urbs_in_flight; |
494 | port->tx_bytes_flight -= urb->transfer_buffer_length; | 496 | port->tx_bytes_flight -= urb->transfer_buffer_length; |
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h index 64a0a2c27e1..c932f905318 100644 --- a/drivers/usb/storage/unusual_devs.h +++ b/drivers/usb/storage/unusual_devs.h | |||
@@ -1807,13 +1807,6 @@ UNUSUAL_DEV( 0x2735, 0x100b, 0x0000, 0x9999, | |||
1807 | US_SC_DEVICE, US_PR_DEVICE, NULL, | 1807 | US_SC_DEVICE, US_PR_DEVICE, NULL, |
1808 | US_FL_GO_SLOW ), | 1808 | US_FL_GO_SLOW ), |
1809 | 1809 | ||
1810 | /* Reported by Rohan Hart <rohan.hart17@gmail.com> */ | ||
1811 | UNUSUAL_DEV( 0x2770, 0x915d, 0x0010, 0x0010, | ||
1812 | "INTOVA", | ||
1813 | "Pixtreme", | ||
1814 | US_SC_DEVICE, US_PR_DEVICE, NULL, | ||
1815 | US_FL_FIX_CAPACITY ), | ||
1816 | |||
1817 | /* Reported by Frederic Marchal <frederic.marchal@wowcompany.com> | 1810 | /* Reported by Frederic Marchal <frederic.marchal@wowcompany.com> |
1818 | * Mio Moov 330 | 1811 | * Mio Moov 330 |
1819 | */ | 1812 | */ |
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c index 5a53d4f0dd1..e9f995486ec 100644 --- a/drivers/usb/storage/usb.c +++ b/drivers/usb/storage/usb.c | |||
@@ -434,7 +434,8 @@ static void adjust_quirks(struct us_data *us) | |||
434 | u16 vid = le16_to_cpu(us->pusb_dev->descriptor.idVendor); | 434 | u16 vid = le16_to_cpu(us->pusb_dev->descriptor.idVendor); |
435 | u16 pid = le16_to_cpu(us->pusb_dev->descriptor.idProduct); | 435 | u16 pid = le16_to_cpu(us->pusb_dev->descriptor.idProduct); |
436 | unsigned f = 0; | 436 | unsigned f = 0; |
437 | unsigned int mask = (US_FL_SANE_SENSE | US_FL_FIX_CAPACITY | | 437 | unsigned int mask = (US_FL_SANE_SENSE | US_FL_BAD_SENSE | |
438 | US_FL_FIX_CAPACITY | | ||
438 | US_FL_CAPACITY_HEURISTICS | US_FL_IGNORE_DEVICE | | 439 | US_FL_CAPACITY_HEURISTICS | US_FL_IGNORE_DEVICE | |
439 | US_FL_NOT_LOCKABLE | US_FL_MAX_SECTORS_64 | | 440 | US_FL_NOT_LOCKABLE | US_FL_MAX_SECTORS_64 | |
440 | US_FL_CAPACITY_OK | US_FL_IGNORE_RESIDUE | | 441 | US_FL_CAPACITY_OK | US_FL_IGNORE_RESIDUE | |
diff --git a/drivers/video/backlight/omap1_bl.c b/drivers/video/backlight/omap1_bl.c index 409ca964352..a3a7f893817 100644 --- a/drivers/video/backlight/omap1_bl.c +++ b/drivers/video/backlight/omap1_bl.c | |||
@@ -139,8 +139,6 @@ static int omapbl_probe(struct platform_device *pdev) | |||
139 | if (!pdata) | 139 | if (!pdata) |
140 | return -ENXIO; | 140 | return -ENXIO; |
141 | 141 | ||
142 | omapbl_ops.check_fb = pdata->check_fb; | ||
143 | |||
144 | bl = kzalloc(sizeof(struct omap_backlight), GFP_KERNEL); | 142 | bl = kzalloc(sizeof(struct omap_backlight), GFP_KERNEL); |
145 | if (unlikely(!bl)) | 143 | if (unlikely(!bl)) |
146 | return -ENOMEM; | 144 | return -ENOMEM; |
diff --git a/drivers/video/omap/dispc.c b/drivers/video/omap/dispc.c index c7c6455f1fa..e192b058a68 100644 --- a/drivers/video/omap/dispc.c +++ b/drivers/video/omap/dispc.c | |||
@@ -189,11 +189,6 @@ static struct { | |||
189 | struct omapfb_color_key color_key; | 189 | struct omapfb_color_key color_key; |
190 | } dispc; | 190 | } dispc; |
191 | 191 | ||
192 | static struct platform_device omapdss_device = { | ||
193 | .name = "omapdss", | ||
194 | .id = -1, | ||
195 | }; | ||
196 | |||
197 | static void enable_lcd_clocks(int enable); | 192 | static void enable_lcd_clocks(int enable); |
198 | 193 | ||
199 | static void inline dispc_write_reg(int idx, u32 val) | 194 | static void inline dispc_write_reg(int idx, u32 val) |
@@ -920,20 +915,20 @@ static irqreturn_t omap_dispc_irq_handler(int irq, void *dev) | |||
920 | 915 | ||
921 | static int get_dss_clocks(void) | 916 | static int get_dss_clocks(void) |
922 | { | 917 | { |
923 | dispc.dss_ick = clk_get(&omapdss_device.dev, "ick"); | 918 | dispc.dss_ick = clk_get(&dispc.fbdev->dssdev->dev, "ick"); |
924 | if (IS_ERR(dispc.dss_ick)) { | 919 | if (IS_ERR(dispc.dss_ick)) { |
925 | dev_err(dispc.fbdev->dev, "can't get ick\n"); | 920 | dev_err(dispc.fbdev->dev, "can't get ick\n"); |
926 | return PTR_ERR(dispc.dss_ick); | 921 | return PTR_ERR(dispc.dss_ick); |
927 | } | 922 | } |
928 | 923 | ||
929 | dispc.dss1_fck = clk_get(&omapdss_device.dev, "dss1_fck"); | 924 | dispc.dss1_fck = clk_get(&dispc.fbdev->dssdev->dev, "dss1_fck"); |
930 | if (IS_ERR(dispc.dss1_fck)) { | 925 | if (IS_ERR(dispc.dss1_fck)) { |
931 | dev_err(dispc.fbdev->dev, "can't get dss1_fck\n"); | 926 | dev_err(dispc.fbdev->dev, "can't get dss1_fck\n"); |
932 | clk_put(dispc.dss_ick); | 927 | clk_put(dispc.dss_ick); |
933 | return PTR_ERR(dispc.dss1_fck); | 928 | return PTR_ERR(dispc.dss1_fck); |
934 | } | 929 | } |
935 | 930 | ||
936 | dispc.dss_54m_fck = clk_get(&omapdss_device.dev, "tv_fck"); | 931 | dispc.dss_54m_fck = clk_get(&dispc.fbdev->dssdev->dev, "tv_fck"); |
937 | if (IS_ERR(dispc.dss_54m_fck)) { | 932 | if (IS_ERR(dispc.dss_54m_fck)) { |
938 | dev_err(dispc.fbdev->dev, "can't get tv_fck\n"); | 933 | dev_err(dispc.fbdev->dev, "can't get tv_fck\n"); |
939 | clk_put(dispc.dss_ick); | 934 | clk_put(dispc.dss_ick); |
@@ -1385,12 +1380,6 @@ static int omap_dispc_init(struct omapfb_device *fbdev, int ext_mode, | |||
1385 | int skip_init = 0; | 1380 | int skip_init = 0; |
1386 | int i; | 1381 | int i; |
1387 | 1382 | ||
1388 | r = platform_device_register(&omapdss_device); | ||
1389 | if (r) { | ||
1390 | dev_err(fbdev->dev, "can't register omapdss device\n"); | ||
1391 | return r; | ||
1392 | } | ||
1393 | |||
1394 | memset(&dispc, 0, sizeof(dispc)); | 1383 | memset(&dispc, 0, sizeof(dispc)); |
1395 | 1384 | ||
1396 | dispc.base = ioremap(DISPC_BASE, SZ_1K); | 1385 | dispc.base = ioremap(DISPC_BASE, SZ_1K); |
@@ -1534,7 +1523,6 @@ static void omap_dispc_cleanup(void) | |||
1534 | free_irq(INT_24XX_DSS_IRQ, dispc.fbdev); | 1523 | free_irq(INT_24XX_DSS_IRQ, dispc.fbdev); |
1535 | put_dss_clocks(); | 1524 | put_dss_clocks(); |
1536 | iounmap(dispc.base); | 1525 | iounmap(dispc.base); |
1537 | platform_device_unregister(&omapdss_device); | ||
1538 | } | 1526 | } |
1539 | 1527 | ||
1540 | const struct lcd_ctrl omap2_int_ctrl = { | 1528 | const struct lcd_ctrl omap2_int_ctrl = { |
diff --git a/drivers/video/omap/lcd_htcherald.c b/drivers/video/omap/lcd_htcherald.c index a9007c5d1fa..4802419da83 100644 --- a/drivers/video/omap/lcd_htcherald.c +++ b/drivers/video/omap/lcd_htcherald.c | |||
@@ -115,12 +115,12 @@ struct platform_driver htcherald_panel_driver = { | |||
115 | }, | 115 | }, |
116 | }; | 116 | }; |
117 | 117 | ||
118 | static int htcherald_panel_drv_init(void) | 118 | static int __init htcherald_panel_drv_init(void) |
119 | { | 119 | { |
120 | return platform_driver_register(&htcherald_panel_driver); | 120 | return platform_driver_register(&htcherald_panel_driver); |
121 | } | 121 | } |
122 | 122 | ||
123 | static void htcherald_panel_drv_cleanup(void) | 123 | static void __exit htcherald_panel_drv_cleanup(void) |
124 | { | 124 | { |
125 | platform_driver_unregister(&htcherald_panel_driver); | 125 | platform_driver_unregister(&htcherald_panel_driver); |
126 | } | 126 | } |
diff --git a/drivers/video/omap/omapfb.h b/drivers/video/omap/omapfb.h index 46e4714014e..af3c9e571ec 100644 --- a/drivers/video/omap/omapfb.h +++ b/drivers/video/omap/omapfb.h | |||
@@ -203,6 +203,8 @@ struct omapfb_device { | |||
203 | 203 | ||
204 | struct omapfb_mem_desc mem_desc; | 204 | struct omapfb_mem_desc mem_desc; |
205 | struct fb_info *fb_info[OMAPFB_PLANE_NUM]; | 205 | struct fb_info *fb_info[OMAPFB_PLANE_NUM]; |
206 | |||
207 | struct platform_device *dssdev; /* dummy dev for clocks */ | ||
206 | }; | 208 | }; |
207 | 209 | ||
208 | #ifdef CONFIG_ARCH_OMAP1 | 210 | #ifdef CONFIG_ARCH_OMAP1 |
diff --git a/drivers/video/omap/omapfb_main.c b/drivers/video/omap/omapfb_main.c index c7f59a5ccdb..2c4f470fa08 100644 --- a/drivers/video/omap/omapfb_main.c +++ b/drivers/video/omap/omapfb_main.c | |||
@@ -83,6 +83,19 @@ static struct caps_table_struct color_caps[] = { | |||
83 | { 1 << OMAPFB_COLOR_YUY422, "YUY422", }, | 83 | { 1 << OMAPFB_COLOR_YUY422, "YUY422", }, |
84 | }; | 84 | }; |
85 | 85 | ||
86 | static void omapdss_release(struct device *dev) | ||
87 | { | ||
88 | } | ||
89 | |||
90 | /* dummy device for clocks */ | ||
91 | static struct platform_device omapdss_device = { | ||
92 | .name = "omapdss", | ||
93 | .id = -1, | ||
94 | .dev = { | ||
95 | .release = omapdss_release, | ||
96 | }, | ||
97 | }; | ||
98 | |||
86 | /* | 99 | /* |
87 | * --------------------------------------------------------------------------- | 100 | * --------------------------------------------------------------------------- |
88 | * LCD panel | 101 | * LCD panel |
@@ -1700,6 +1713,7 @@ static int omapfb_do_probe(struct platform_device *pdev, | |||
1700 | 1713 | ||
1701 | fbdev->dev = &pdev->dev; | 1714 | fbdev->dev = &pdev->dev; |
1702 | fbdev->panel = panel; | 1715 | fbdev->panel = panel; |
1716 | fbdev->dssdev = &omapdss_device; | ||
1703 | platform_set_drvdata(pdev, fbdev); | 1717 | platform_set_drvdata(pdev, fbdev); |
1704 | 1718 | ||
1705 | mutex_init(&fbdev->rqueue_mutex); | 1719 | mutex_init(&fbdev->rqueue_mutex); |
@@ -1814,8 +1828,16 @@ cleanup: | |||
1814 | 1828 | ||
1815 | static int omapfb_probe(struct platform_device *pdev) | 1829 | static int omapfb_probe(struct platform_device *pdev) |
1816 | { | 1830 | { |
1831 | int r; | ||
1832 | |||
1817 | BUG_ON(fbdev_pdev != NULL); | 1833 | BUG_ON(fbdev_pdev != NULL); |
1818 | 1834 | ||
1835 | r = platform_device_register(&omapdss_device); | ||
1836 | if (r) { | ||
1837 | dev_err(&pdev->dev, "can't register omapdss device\n"); | ||
1838 | return r; | ||
1839 | } | ||
1840 | |||
1819 | /* Delay actual initialization until the LCD is registered */ | 1841 | /* Delay actual initialization until the LCD is registered */ |
1820 | fbdev_pdev = pdev; | 1842 | fbdev_pdev = pdev; |
1821 | if (fbdev_panel != NULL) | 1843 | if (fbdev_panel != NULL) |
@@ -1843,6 +1865,9 @@ static int omapfb_remove(struct platform_device *pdev) | |||
1843 | fbdev->state = OMAPFB_DISABLED; | 1865 | fbdev->state = OMAPFB_DISABLED; |
1844 | omapfb_free_resources(fbdev, saved_state); | 1866 | omapfb_free_resources(fbdev, saved_state); |
1845 | 1867 | ||
1868 | platform_device_unregister(&omapdss_device); | ||
1869 | fbdev->dssdev = NULL; | ||
1870 | |||
1846 | return 0; | 1871 | return 0; |
1847 | } | 1872 | } |
1848 | 1873 | ||
diff --git a/drivers/video/omap/rfbi.c b/drivers/video/omap/rfbi.c index fed7b1bda19..1162603c72e 100644 --- a/drivers/video/omap/rfbi.c +++ b/drivers/video/omap/rfbi.c | |||
@@ -83,13 +83,13 @@ static inline u32 rfbi_read_reg(int idx) | |||
83 | 83 | ||
84 | static int rfbi_get_clocks(void) | 84 | static int rfbi_get_clocks(void) |
85 | { | 85 | { |
86 | rfbi.dss_ick = clk_get(rfbi.fbdev->dev, "ick"); | 86 | rfbi.dss_ick = clk_get(&dispc.fbdev->dssdev->dev, "ick"); |
87 | if (IS_ERR(rfbi.dss_ick)) { | 87 | if (IS_ERR(rfbi.dss_ick)) { |
88 | dev_err(rfbi.fbdev->dev, "can't get ick\n"); | 88 | dev_err(rfbi.fbdev->dev, "can't get ick\n"); |
89 | return PTR_ERR(rfbi.dss_ick); | 89 | return PTR_ERR(rfbi.dss_ick); |
90 | } | 90 | } |
91 | 91 | ||
92 | rfbi.dss1_fck = clk_get(rfbi.fbdev->dev, "dss1_fck"); | 92 | rfbi.dss1_fck = clk_get(&dispc.fbdev->dssdev->dev, "dss1_fck"); |
93 | if (IS_ERR(rfbi.dss1_fck)) { | 93 | if (IS_ERR(rfbi.dss1_fck)) { |
94 | dev_err(rfbi.fbdev->dev, "can't get dss1_fck\n"); | 94 | dev_err(rfbi.fbdev->dev, "can't get dss1_fck\n"); |
95 | clk_put(rfbi.dss_ick); | 95 | clk_put(rfbi.dss_ick); |
diff --git a/drivers/video/omap2/dss/Kconfig b/drivers/video/omap2/dss/Kconfig index 71d8dec3063..c63ce767b27 100644 --- a/drivers/video/omap2/dss/Kconfig +++ b/drivers/video/omap2/dss/Kconfig | |||
@@ -25,6 +25,13 @@ config OMAP2_DSS_DEBUG_SUPPORT | |||
25 | This enables debug messages. You need to enable printing | 25 | This enables debug messages. You need to enable printing |
26 | with 'debug' module parameter. | 26 | with 'debug' module parameter. |
27 | 27 | ||
28 | config OMAP2_DSS_COLLECT_IRQ_STATS | ||
29 | bool "Collect DSS IRQ statistics" | ||
30 | depends on OMAP2_DSS_DEBUG_SUPPORT | ||
31 | default n | ||
32 | help | ||
33 | Collect DSS IRQ statistics, printable via debugfs | ||
34 | |||
28 | config OMAP2_DSS_RFBI | 35 | config OMAP2_DSS_RFBI |
29 | bool "RFBI support" | 36 | bool "RFBI support" |
30 | default n | 37 | default n |
diff --git a/drivers/video/omap2/dss/core.c b/drivers/video/omap2/dss/core.c index 29497a0c9a9..82918eec6d2 100644 --- a/drivers/video/omap2/dss/core.c +++ b/drivers/video/omap2/dss/core.c | |||
@@ -124,6 +124,7 @@ static void restore_all_ctx(void) | |||
124 | dss_clk_disable_all_no_ctx(); | 124 | dss_clk_disable_all_no_ctx(); |
125 | } | 125 | } |
126 | 126 | ||
127 | #if defined(CONFIG_DEBUG_FS) && defined(CONFIG_OMAP2_DSS_DEBUG_SUPPORT) | ||
127 | /* CLOCKS */ | 128 | /* CLOCKS */ |
128 | static void core_dump_clocks(struct seq_file *s) | 129 | static void core_dump_clocks(struct seq_file *s) |
129 | { | 130 | { |
@@ -149,6 +150,7 @@ static void core_dump_clocks(struct seq_file *s) | |||
149 | clocks[i]->usecount); | 150 | clocks[i]->usecount); |
150 | } | 151 | } |
151 | } | 152 | } |
153 | #endif /* defined(CONFIG_DEBUG_FS) && defined(CONFIG_OMAP2_DSS_DEBUG_SUPPORT) */ | ||
152 | 154 | ||
153 | static int dss_get_clock(struct clk **clock, const char *clk_name) | 155 | static int dss_get_clock(struct clk **clock, const char *clk_name) |
154 | { | 156 | { |
@@ -395,6 +397,14 @@ static int dss_initialize_debugfs(void) | |||
395 | debugfs_create_file("clk", S_IRUGO, dss_debugfs_dir, | 397 | debugfs_create_file("clk", S_IRUGO, dss_debugfs_dir, |
396 | &dss_debug_dump_clocks, &dss_debug_fops); | 398 | &dss_debug_dump_clocks, &dss_debug_fops); |
397 | 399 | ||
400 | debugfs_create_file("dispc_irq", S_IRUGO, dss_debugfs_dir, | ||
401 | &dispc_dump_irqs, &dss_debug_fops); | ||
402 | |||
403 | #ifdef CONFIG_OMAP2_DSS_DSI | ||
404 | debugfs_create_file("dsi_irq", S_IRUGO, dss_debugfs_dir, | ||
405 | &dsi_dump_irqs, &dss_debug_fops); | ||
406 | #endif | ||
407 | |||
398 | debugfs_create_file("dss", S_IRUGO, dss_debugfs_dir, | 408 | debugfs_create_file("dss", S_IRUGO, dss_debugfs_dir, |
399 | &dss_dump_regs, &dss_debug_fops); | 409 | &dss_dump_regs, &dss_debug_fops); |
400 | debugfs_create_file("dispc", S_IRUGO, dss_debugfs_dir, | 410 | debugfs_create_file("dispc", S_IRUGO, dss_debugfs_dir, |
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c index 6dabf4b2f00..de8bfbac9e2 100644 --- a/drivers/video/omap2/dss/dispc.c +++ b/drivers/video/omap2/dss/dispc.c | |||
@@ -148,6 +148,12 @@ static const struct dispc_reg dispc_reg_att[] = { DISPC_GFX_ATTRIBUTES, | |||
148 | DISPC_VID_ATTRIBUTES(0), | 148 | DISPC_VID_ATTRIBUTES(0), |
149 | DISPC_VID_ATTRIBUTES(1) }; | 149 | DISPC_VID_ATTRIBUTES(1) }; |
150 | 150 | ||
151 | struct dispc_irq_stats { | ||
152 | unsigned long last_reset; | ||
153 | unsigned irq_count; | ||
154 | unsigned irqs[32]; | ||
155 | }; | ||
156 | |||
151 | static struct { | 157 | static struct { |
152 | void __iomem *base; | 158 | void __iomem *base; |
153 | 159 | ||
@@ -160,6 +166,11 @@ static struct { | |||
160 | struct work_struct error_work; | 166 | struct work_struct error_work; |
161 | 167 | ||
162 | u32 ctx[DISPC_SZ_REGS / sizeof(u32)]; | 168 | u32 ctx[DISPC_SZ_REGS / sizeof(u32)]; |
169 | |||
170 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
171 | spinlock_t irq_stats_lock; | ||
172 | struct dispc_irq_stats irq_stats; | ||
173 | #endif | ||
163 | } dispc; | 174 | } dispc; |
164 | 175 | ||
165 | static void _omap_dispc_set_irqs(void); | 176 | static void _omap_dispc_set_irqs(void); |
@@ -1443,7 +1454,10 @@ static unsigned long calc_fclk_five_taps(u16 width, u16 height, | |||
1443 | do_div(tmp, 2 * out_height * ppl); | 1454 | do_div(tmp, 2 * out_height * ppl); |
1444 | fclk = tmp; | 1455 | fclk = tmp; |
1445 | 1456 | ||
1446 | if (height > 2 * out_height && ppl != out_width) { | 1457 | if (height > 2 * out_height) { |
1458 | if (ppl == out_width) | ||
1459 | return 0; | ||
1460 | |||
1447 | tmp = pclk * (height - 2 * out_height) * out_width; | 1461 | tmp = pclk * (height - 2 * out_height) * out_width; |
1448 | do_div(tmp, 2 * out_height * (ppl - out_width)); | 1462 | do_div(tmp, 2 * out_height * (ppl - out_width)); |
1449 | fclk = max(fclk, (u32) tmp); | 1463 | fclk = max(fclk, (u32) tmp); |
@@ -1623,7 +1637,7 @@ static int _dispc_setup_plane(enum omap_plane plane, | |||
1623 | DSSDBG("required fclk rate = %lu Hz\n", fclk); | 1637 | DSSDBG("required fclk rate = %lu Hz\n", fclk); |
1624 | DSSDBG("current fclk rate = %lu Hz\n", dispc_fclk_rate()); | 1638 | DSSDBG("current fclk rate = %lu Hz\n", dispc_fclk_rate()); |
1625 | 1639 | ||
1626 | if (fclk > dispc_fclk_rate()) { | 1640 | if (!fclk || fclk > dispc_fclk_rate()) { |
1627 | DSSERR("failed to set up scaling, " | 1641 | DSSERR("failed to set up scaling, " |
1628 | "required fclk rate = %lu Hz, " | 1642 | "required fclk rate = %lu Hz, " |
1629 | "current fclk rate = %lu Hz\n", | 1643 | "current fclk rate = %lu Hz\n", |
@@ -2247,6 +2261,50 @@ void dispc_dump_clocks(struct seq_file *s) | |||
2247 | enable_clocks(0); | 2261 | enable_clocks(0); |
2248 | } | 2262 | } |
2249 | 2263 | ||
2264 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
2265 | void dispc_dump_irqs(struct seq_file *s) | ||
2266 | { | ||
2267 | unsigned long flags; | ||
2268 | struct dispc_irq_stats stats; | ||
2269 | |||
2270 | spin_lock_irqsave(&dispc.irq_stats_lock, flags); | ||
2271 | |||
2272 | stats = dispc.irq_stats; | ||
2273 | memset(&dispc.irq_stats, 0, sizeof(dispc.irq_stats)); | ||
2274 | dispc.irq_stats.last_reset = jiffies; | ||
2275 | |||
2276 | spin_unlock_irqrestore(&dispc.irq_stats_lock, flags); | ||
2277 | |||
2278 | seq_printf(s, "period %u ms\n", | ||
2279 | jiffies_to_msecs(jiffies - stats.last_reset)); | ||
2280 | |||
2281 | seq_printf(s, "irqs %d\n", stats.irq_count); | ||
2282 | #define PIS(x) \ | ||
2283 | seq_printf(s, "%-20s %10d\n", #x, stats.irqs[ffs(DISPC_IRQ_##x)-1]); | ||
2284 | |||
2285 | PIS(FRAMEDONE); | ||
2286 | PIS(VSYNC); | ||
2287 | PIS(EVSYNC_EVEN); | ||
2288 | PIS(EVSYNC_ODD); | ||
2289 | PIS(ACBIAS_COUNT_STAT); | ||
2290 | PIS(PROG_LINE_NUM); | ||
2291 | PIS(GFX_FIFO_UNDERFLOW); | ||
2292 | PIS(GFX_END_WIN); | ||
2293 | PIS(PAL_GAMMA_MASK); | ||
2294 | PIS(OCP_ERR); | ||
2295 | PIS(VID1_FIFO_UNDERFLOW); | ||
2296 | PIS(VID1_END_WIN); | ||
2297 | PIS(VID2_FIFO_UNDERFLOW); | ||
2298 | PIS(VID2_END_WIN); | ||
2299 | PIS(SYNC_LOST); | ||
2300 | PIS(SYNC_LOST_DIGIT); | ||
2301 | PIS(WAKEUP); | ||
2302 | #undef PIS | ||
2303 | } | ||
2304 | #else | ||
2305 | void dispc_dump_irqs(struct seq_file *s) { } | ||
2306 | #endif | ||
2307 | |||
2250 | void dispc_dump_regs(struct seq_file *s) | 2308 | void dispc_dump_regs(struct seq_file *s) |
2251 | { | 2309 | { |
2252 | #define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, dispc_read_reg(r)) | 2310 | #define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, dispc_read_reg(r)) |
@@ -2665,6 +2723,13 @@ void dispc_irq_handler(void) | |||
2665 | 2723 | ||
2666 | irqstatus = dispc_read_reg(DISPC_IRQSTATUS); | 2724 | irqstatus = dispc_read_reg(DISPC_IRQSTATUS); |
2667 | 2725 | ||
2726 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
2727 | spin_lock(&dispc.irq_stats_lock); | ||
2728 | dispc.irq_stats.irq_count++; | ||
2729 | dss_collect_irq_stats(irqstatus, dispc.irq_stats.irqs); | ||
2730 | spin_unlock(&dispc.irq_stats_lock); | ||
2731 | #endif | ||
2732 | |||
2668 | #ifdef DEBUG | 2733 | #ifdef DEBUG |
2669 | if (dss_debug) | 2734 | if (dss_debug) |
2670 | print_irq_status(irqstatus); | 2735 | print_irq_status(irqstatus); |
@@ -3012,6 +3077,11 @@ int dispc_init(void) | |||
3012 | 3077 | ||
3013 | spin_lock_init(&dispc.irq_lock); | 3078 | spin_lock_init(&dispc.irq_lock); |
3014 | 3079 | ||
3080 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
3081 | spin_lock_init(&dispc.irq_stats_lock); | ||
3082 | dispc.irq_stats.last_reset = jiffies; | ||
3083 | #endif | ||
3084 | |||
3015 | INIT_WORK(&dispc.error_work, dispc_error_worker); | 3085 | INIT_WORK(&dispc.error_work, dispc_error_worker); |
3016 | 3086 | ||
3017 | dispc.base = ioremap(DISPC_BASE, DISPC_SZ_REGS); | 3087 | dispc.base = ioremap(DISPC_BASE, DISPC_SZ_REGS); |
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c index 5936487b5de..6122178f5f8 100644 --- a/drivers/video/omap2/dss/dsi.c +++ b/drivers/video/omap2/dss/dsi.c | |||
@@ -204,6 +204,14 @@ struct dsi_update_region { | |||
204 | struct omap_dss_device *device; | 204 | struct omap_dss_device *device; |
205 | }; | 205 | }; |
206 | 206 | ||
207 | struct dsi_irq_stats { | ||
208 | unsigned long last_reset; | ||
209 | unsigned irq_count; | ||
210 | unsigned dsi_irqs[32]; | ||
211 | unsigned vc_irqs[4][32]; | ||
212 | unsigned cio_irqs[32]; | ||
213 | }; | ||
214 | |||
207 | static struct | 215 | static struct |
208 | { | 216 | { |
209 | void __iomem *base; | 217 | void __iomem *base; |
@@ -258,6 +266,11 @@ static struct | |||
258 | #endif | 266 | #endif |
259 | int debug_read; | 267 | int debug_read; |
260 | int debug_write; | 268 | int debug_write; |
269 | |||
270 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
271 | spinlock_t irq_stats_lock; | ||
272 | struct dsi_irq_stats irq_stats; | ||
273 | #endif | ||
261 | } dsi; | 274 | } dsi; |
262 | 275 | ||
263 | #ifdef DEBUG | 276 | #ifdef DEBUG |
@@ -528,6 +541,12 @@ void dsi_irq_handler(void) | |||
528 | 541 | ||
529 | irqstatus = dsi_read_reg(DSI_IRQSTATUS); | 542 | irqstatus = dsi_read_reg(DSI_IRQSTATUS); |
530 | 543 | ||
544 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
545 | spin_lock(&dsi.irq_stats_lock); | ||
546 | dsi.irq_stats.irq_count++; | ||
547 | dss_collect_irq_stats(irqstatus, dsi.irq_stats.dsi_irqs); | ||
548 | #endif | ||
549 | |||
531 | if (irqstatus & DSI_IRQ_ERROR_MASK) { | 550 | if (irqstatus & DSI_IRQ_ERROR_MASK) { |
532 | DSSERR("DSI error, irqstatus %x\n", irqstatus); | 551 | DSSERR("DSI error, irqstatus %x\n", irqstatus); |
533 | print_irq_status(irqstatus); | 552 | print_irq_status(irqstatus); |
@@ -549,6 +568,10 @@ void dsi_irq_handler(void) | |||
549 | 568 | ||
550 | vcstatus = dsi_read_reg(DSI_VC_IRQSTATUS(i)); | 569 | vcstatus = dsi_read_reg(DSI_VC_IRQSTATUS(i)); |
551 | 570 | ||
571 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
572 | dss_collect_irq_stats(vcstatus, dsi.irq_stats.vc_irqs[i]); | ||
573 | #endif | ||
574 | |||
552 | if (vcstatus & DSI_VC_IRQ_BTA) | 575 | if (vcstatus & DSI_VC_IRQ_BTA) |
553 | complete(&dsi.bta_completion); | 576 | complete(&dsi.bta_completion); |
554 | 577 | ||
@@ -568,6 +591,10 @@ void dsi_irq_handler(void) | |||
568 | if (irqstatus & DSI_IRQ_COMPLEXIO_ERR) { | 591 | if (irqstatus & DSI_IRQ_COMPLEXIO_ERR) { |
569 | ciostatus = dsi_read_reg(DSI_COMPLEXIO_IRQ_STATUS); | 592 | ciostatus = dsi_read_reg(DSI_COMPLEXIO_IRQ_STATUS); |
570 | 593 | ||
594 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
595 | dss_collect_irq_stats(ciostatus, dsi.irq_stats.cio_irqs); | ||
596 | #endif | ||
597 | |||
571 | dsi_write_reg(DSI_COMPLEXIO_IRQ_STATUS, ciostatus); | 598 | dsi_write_reg(DSI_COMPLEXIO_IRQ_STATUS, ciostatus); |
572 | /* flush posted write */ | 599 | /* flush posted write */ |
573 | dsi_read_reg(DSI_COMPLEXIO_IRQ_STATUS); | 600 | dsi_read_reg(DSI_COMPLEXIO_IRQ_STATUS); |
@@ -579,6 +606,10 @@ void dsi_irq_handler(void) | |||
579 | dsi_write_reg(DSI_IRQSTATUS, irqstatus & ~DSI_IRQ_CHANNEL_MASK); | 606 | dsi_write_reg(DSI_IRQSTATUS, irqstatus & ~DSI_IRQ_CHANNEL_MASK); |
580 | /* flush posted write */ | 607 | /* flush posted write */ |
581 | dsi_read_reg(DSI_IRQSTATUS); | 608 | dsi_read_reg(DSI_IRQSTATUS); |
609 | |||
610 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
611 | spin_unlock(&dsi.irq_stats_lock); | ||
612 | #endif | ||
582 | } | 613 | } |
583 | 614 | ||
584 | 615 | ||
@@ -797,12 +828,12 @@ static int dsi_pll_power(enum dsi_pll_power_state state) | |||
797 | 828 | ||
798 | /* PLL_PWR_STATUS */ | 829 | /* PLL_PWR_STATUS */ |
799 | while (FLD_GET(dsi_read_reg(DSI_CLK_CTRL), 29, 28) != state) { | 830 | while (FLD_GET(dsi_read_reg(DSI_CLK_CTRL), 29, 28) != state) { |
800 | udelay(1); | 831 | if (++t > 1000) { |
801 | if (t++ > 1000) { | ||
802 | DSSERR("Failed to set DSI PLL power mode to %d\n", | 832 | DSSERR("Failed to set DSI PLL power mode to %d\n", |
803 | state); | 833 | state); |
804 | return -ENODEV; | 834 | return -ENODEV; |
805 | } | 835 | } |
836 | udelay(1); | ||
806 | } | 837 | } |
807 | 838 | ||
808 | return 0; | 839 | return 0; |
@@ -1226,6 +1257,95 @@ void dsi_dump_clocks(struct seq_file *s) | |||
1226 | enable_clocks(0); | 1257 | enable_clocks(0); |
1227 | } | 1258 | } |
1228 | 1259 | ||
1260 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
1261 | void dsi_dump_irqs(struct seq_file *s) | ||
1262 | { | ||
1263 | unsigned long flags; | ||
1264 | struct dsi_irq_stats stats; | ||
1265 | |||
1266 | spin_lock_irqsave(&dsi.irq_stats_lock, flags); | ||
1267 | |||
1268 | stats = dsi.irq_stats; | ||
1269 | memset(&dsi.irq_stats, 0, sizeof(dsi.irq_stats)); | ||
1270 | dsi.irq_stats.last_reset = jiffies; | ||
1271 | |||
1272 | spin_unlock_irqrestore(&dsi.irq_stats_lock, flags); | ||
1273 | |||
1274 | seq_printf(s, "period %u ms\n", | ||
1275 | jiffies_to_msecs(jiffies - stats.last_reset)); | ||
1276 | |||
1277 | seq_printf(s, "irqs %d\n", stats.irq_count); | ||
1278 | #define PIS(x) \ | ||
1279 | seq_printf(s, "%-20s %10d\n", #x, stats.dsi_irqs[ffs(DSI_IRQ_##x)-1]); | ||
1280 | |||
1281 | seq_printf(s, "-- DSI interrupts --\n"); | ||
1282 | PIS(VC0); | ||
1283 | PIS(VC1); | ||
1284 | PIS(VC2); | ||
1285 | PIS(VC3); | ||
1286 | PIS(WAKEUP); | ||
1287 | PIS(RESYNC); | ||
1288 | PIS(PLL_LOCK); | ||
1289 | PIS(PLL_UNLOCK); | ||
1290 | PIS(PLL_RECALL); | ||
1291 | PIS(COMPLEXIO_ERR); | ||
1292 | PIS(HS_TX_TIMEOUT); | ||
1293 | PIS(LP_RX_TIMEOUT); | ||
1294 | PIS(TE_TRIGGER); | ||
1295 | PIS(ACK_TRIGGER); | ||
1296 | PIS(SYNC_LOST); | ||
1297 | PIS(LDO_POWER_GOOD); | ||
1298 | PIS(TA_TIMEOUT); | ||
1299 | #undef PIS | ||
1300 | |||
1301 | #define PIS(x) \ | ||
1302 | seq_printf(s, "%-20s %10d %10d %10d %10d\n", #x, \ | ||
1303 | stats.vc_irqs[0][ffs(DSI_VC_IRQ_##x)-1], \ | ||
1304 | stats.vc_irqs[1][ffs(DSI_VC_IRQ_##x)-1], \ | ||
1305 | stats.vc_irqs[2][ffs(DSI_VC_IRQ_##x)-1], \ | ||
1306 | stats.vc_irqs[3][ffs(DSI_VC_IRQ_##x)-1]); | ||
1307 | |||
1308 | seq_printf(s, "-- VC interrupts --\n"); | ||
1309 | PIS(CS); | ||
1310 | PIS(ECC_CORR); | ||
1311 | PIS(PACKET_SENT); | ||
1312 | PIS(FIFO_TX_OVF); | ||
1313 | PIS(FIFO_RX_OVF); | ||
1314 | PIS(BTA); | ||
1315 | PIS(ECC_NO_CORR); | ||
1316 | PIS(FIFO_TX_UDF); | ||
1317 | PIS(PP_BUSY_CHANGE); | ||
1318 | #undef PIS | ||
1319 | |||
1320 | #define PIS(x) \ | ||
1321 | seq_printf(s, "%-20s %10d\n", #x, \ | ||
1322 | stats.cio_irqs[ffs(DSI_CIO_IRQ_##x)-1]); | ||
1323 | |||
1324 | seq_printf(s, "-- CIO interrupts --\n"); | ||
1325 | PIS(ERRSYNCESC1); | ||
1326 | PIS(ERRSYNCESC2); | ||
1327 | PIS(ERRSYNCESC3); | ||
1328 | PIS(ERRESC1); | ||
1329 | PIS(ERRESC2); | ||
1330 | PIS(ERRESC3); | ||
1331 | PIS(ERRCONTROL1); | ||
1332 | PIS(ERRCONTROL2); | ||
1333 | PIS(ERRCONTROL3); | ||
1334 | PIS(STATEULPS1); | ||
1335 | PIS(STATEULPS2); | ||
1336 | PIS(STATEULPS3); | ||
1337 | PIS(ERRCONTENTIONLP0_1); | ||
1338 | PIS(ERRCONTENTIONLP1_1); | ||
1339 | PIS(ERRCONTENTIONLP0_2); | ||
1340 | PIS(ERRCONTENTIONLP1_2); | ||
1341 | PIS(ERRCONTENTIONLP0_3); | ||
1342 | PIS(ERRCONTENTIONLP1_3); | ||
1343 | PIS(ULPSACTIVENOT_ALL0); | ||
1344 | PIS(ULPSACTIVENOT_ALL1); | ||
1345 | #undef PIS | ||
1346 | } | ||
1347 | #endif | ||
1348 | |||
1229 | void dsi_dump_regs(struct seq_file *s) | 1349 | void dsi_dump_regs(struct seq_file *s) |
1230 | { | 1350 | { |
1231 | #define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, dsi_read_reg(r)) | 1351 | #define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, dsi_read_reg(r)) |
@@ -1321,12 +1441,12 @@ static int dsi_complexio_power(enum dsi_complexio_power_state state) | |||
1321 | 1441 | ||
1322 | /* PWR_STATUS */ | 1442 | /* PWR_STATUS */ |
1323 | while (FLD_GET(dsi_read_reg(DSI_COMPLEXIO_CFG1), 26, 25) != state) { | 1443 | while (FLD_GET(dsi_read_reg(DSI_COMPLEXIO_CFG1), 26, 25) != state) { |
1324 | udelay(1); | 1444 | if (++t > 1000) { |
1325 | if (t++ > 1000) { | ||
1326 | DSSERR("failed to set complexio power state to " | 1445 | DSSERR("failed to set complexio power state to " |
1327 | "%d\n", state); | 1446 | "%d\n", state); |
1328 | return -ENODEV; | 1447 | return -ENODEV; |
1329 | } | 1448 | } |
1449 | udelay(1); | ||
1330 | } | 1450 | } |
1331 | 1451 | ||
1332 | return 0; | 1452 | return 0; |
@@ -1526,10 +1646,10 @@ static void dsi_complexio_uninit(void) | |||
1526 | 1646 | ||
1527 | static int _dsi_wait_reset(void) | 1647 | static int _dsi_wait_reset(void) |
1528 | { | 1648 | { |
1529 | int i = 0; | 1649 | int t = 0; |
1530 | 1650 | ||
1531 | while (REG_GET(DSI_SYSSTATUS, 0, 0) == 0) { | 1651 | while (REG_GET(DSI_SYSSTATUS, 0, 0) == 0) { |
1532 | if (i++ > 5) { | 1652 | if (++t > 5) { |
1533 | DSSERR("soft reset failed\n"); | 1653 | DSSERR("soft reset failed\n"); |
1534 | return -ENODEV; | 1654 | return -ENODEV; |
1535 | } | 1655 | } |
@@ -1999,7 +2119,7 @@ static int dsi_vc_send_short(int channel, u8 data_type, u16 data, u8 ecc) | |||
1999 | return -EINVAL; | 2119 | return -EINVAL; |
2000 | } | 2120 | } |
2001 | 2121 | ||
2002 | data_id = data_type | channel << 6; | 2122 | data_id = data_type | dsi.vc[channel].dest_per << 6; |
2003 | 2123 | ||
2004 | r = (data_id << 0) | (data << 8) | (ecc << 24); | 2124 | r = (data_id << 0) | (data << 8) | (ecc << 24); |
2005 | 2125 | ||
@@ -2011,7 +2131,7 @@ static int dsi_vc_send_short(int channel, u8 data_type, u16 data, u8 ecc) | |||
2011 | int dsi_vc_send_null(int channel) | 2131 | int dsi_vc_send_null(int channel) |
2012 | { | 2132 | { |
2013 | u8 nullpkg[] = {0, 0, 0, 0}; | 2133 | u8 nullpkg[] = {0, 0, 0, 0}; |
2014 | return dsi_vc_send_long(0, DSI_DT_NULL_PACKET, nullpkg, 4, 0); | 2134 | return dsi_vc_send_long(channel, DSI_DT_NULL_PACKET, nullpkg, 4, 0); |
2015 | } | 2135 | } |
2016 | EXPORT_SYMBOL(dsi_vc_send_null); | 2136 | EXPORT_SYMBOL(dsi_vc_send_null); |
2017 | 2137 | ||
@@ -2058,7 +2178,7 @@ int dsi_vc_dcs_read(int channel, u8 dcs_cmd, u8 *buf, int buflen) | |||
2058 | int r; | 2178 | int r; |
2059 | 2179 | ||
2060 | if (dsi.debug_read) | 2180 | if (dsi.debug_read) |
2061 | DSSDBG("dsi_vc_dcs_read(ch%d, dcs_cmd %u)\n", channel, dcs_cmd); | 2181 | DSSDBG("dsi_vc_dcs_read(ch%d, dcs_cmd %x)\n", channel, dcs_cmd); |
2062 | 2182 | ||
2063 | r = dsi_vc_send_short(channel, DSI_DT_DCS_READ, dcs_cmd, 0); | 2183 | r = dsi_vc_send_short(channel, DSI_DT_DCS_READ, dcs_cmd, 0); |
2064 | if (r) | 2184 | if (r) |
@@ -2586,7 +2706,6 @@ static int dsi_update_screen_l4(struct omap_dss_device *dssdev, | |||
2586 | /* using fifo not empty */ | 2706 | /* using fifo not empty */ |
2587 | /* TX_FIFO_NOT_EMPTY */ | 2707 | /* TX_FIFO_NOT_EMPTY */ |
2588 | while (FLD_GET(dsi_read_reg(DSI_VC_CTRL(0)), 5, 5)) { | 2708 | while (FLD_GET(dsi_read_reg(DSI_VC_CTRL(0)), 5, 5)) { |
2589 | udelay(1); | ||
2590 | fifo_stalls++; | 2709 | fifo_stalls++; |
2591 | if (fifo_stalls > 0xfffff) { | 2710 | if (fifo_stalls > 0xfffff) { |
2592 | DSSERR("fifo stalls overflow, pixels left %d\n", | 2711 | DSSERR("fifo stalls overflow, pixels left %d\n", |
@@ -2594,6 +2713,7 @@ static int dsi_update_screen_l4(struct omap_dss_device *dssdev, | |||
2594 | dsi_if_enable(0); | 2713 | dsi_if_enable(0); |
2595 | return -EIO; | 2714 | return -EIO; |
2596 | } | 2715 | } |
2716 | udelay(1); | ||
2597 | } | 2717 | } |
2598 | #elif 1 | 2718 | #elif 1 |
2599 | /* using fifo emptiness */ | 2719 | /* using fifo emptiness */ |
@@ -2812,11 +2932,15 @@ static int dsi_set_update_mode(struct omap_dss_device *dssdev, | |||
2812 | 2932 | ||
2813 | static int dsi_set_te(struct omap_dss_device *dssdev, bool enable) | 2933 | static int dsi_set_te(struct omap_dss_device *dssdev, bool enable) |
2814 | { | 2934 | { |
2815 | int r; | 2935 | int r = 0; |
2816 | r = dssdev->driver->enable_te(dssdev, enable); | 2936 | |
2817 | /* XXX for some reason, DSI TE breaks if we don't wait here. | 2937 | if (dssdev->driver->enable_te) { |
2818 | * Panel bug? Needs more studying */ | 2938 | r = dssdev->driver->enable_te(dssdev, enable); |
2819 | msleep(100); | 2939 | /* XXX for some reason, DSI TE breaks if we don't wait here. |
2940 | * Panel bug? Needs more studying */ | ||
2941 | msleep(100); | ||
2942 | } | ||
2943 | |||
2820 | return r; | 2944 | return r; |
2821 | } | 2945 | } |
2822 | 2946 | ||
@@ -3637,6 +3761,11 @@ int dsi_init(struct platform_device *pdev) | |||
3637 | spin_lock_init(&dsi.errors_lock); | 3761 | spin_lock_init(&dsi.errors_lock); |
3638 | dsi.errors = 0; | 3762 | dsi.errors = 0; |
3639 | 3763 | ||
3764 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
3765 | spin_lock_init(&dsi.irq_stats_lock); | ||
3766 | dsi.irq_stats.last_reset = jiffies; | ||
3767 | #endif | ||
3768 | |||
3640 | init_completion(&dsi.bta_completion); | 3769 | init_completion(&dsi.bta_completion); |
3641 | init_completion(&dsi.update_completion); | 3770 | init_completion(&dsi.update_completion); |
3642 | 3771 | ||
diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c index 9b05ee65a15..0a26b7d84d4 100644 --- a/drivers/video/omap2/dss/dss.c +++ b/drivers/video/omap2/dss/dss.c | |||
@@ -467,14 +467,14 @@ static irqreturn_t dss_irq_handler_omap3(int irq, void *arg) | |||
467 | 467 | ||
468 | static int _omap_dss_wait_reset(void) | 468 | static int _omap_dss_wait_reset(void) |
469 | { | 469 | { |
470 | unsigned timeout = 1000; | 470 | int t = 0; |
471 | 471 | ||
472 | while (REG_GET(DSS_SYSSTATUS, 0, 0) == 0) { | 472 | while (REG_GET(DSS_SYSSTATUS, 0, 0) == 0) { |
473 | udelay(1); | 473 | if (++t > 1000) { |
474 | if (!--timeout) { | ||
475 | DSSERR("soft reset failed\n"); | 474 | DSSERR("soft reset failed\n"); |
476 | return -ENODEV; | 475 | return -ENODEV; |
477 | } | 476 | } |
477 | udelay(1); | ||
478 | } | 478 | } |
479 | 479 | ||
480 | return 0; | 480 | return 0; |
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h index 8da5ac42151..2bcb1245d6c 100644 --- a/drivers/video/omap2/dss/dss.h +++ b/drivers/video/omap2/dss/dss.h | |||
@@ -240,6 +240,7 @@ int dsi_init(struct platform_device *pdev); | |||
240 | void dsi_exit(void); | 240 | void dsi_exit(void); |
241 | 241 | ||
242 | void dsi_dump_clocks(struct seq_file *s); | 242 | void dsi_dump_clocks(struct seq_file *s); |
243 | void dsi_dump_irqs(struct seq_file *s); | ||
243 | void dsi_dump_regs(struct seq_file *s); | 244 | void dsi_dump_regs(struct seq_file *s); |
244 | 245 | ||
245 | void dsi_save_context(void); | 246 | void dsi_save_context(void); |
@@ -268,6 +269,7 @@ int dpi_init_display(struct omap_dss_device *dssdev); | |||
268 | int dispc_init(void); | 269 | int dispc_init(void); |
269 | void dispc_exit(void); | 270 | void dispc_exit(void); |
270 | void dispc_dump_clocks(struct seq_file *s); | 271 | void dispc_dump_clocks(struct seq_file *s); |
272 | void dispc_dump_irqs(struct seq_file *s); | ||
271 | void dispc_dump_regs(struct seq_file *s); | 273 | void dispc_dump_regs(struct seq_file *s); |
272 | void dispc_irq_handler(void); | 274 | void dispc_irq_handler(void); |
273 | void dispc_fake_vsync_irq(void); | 275 | void dispc_fake_vsync_irq(void); |
@@ -367,4 +369,16 @@ void rfbi_set_timings(int rfbi_module, struct rfbi_timings *t); | |||
367 | unsigned long rfbi_get_max_tx_rate(void); | 369 | unsigned long rfbi_get_max_tx_rate(void); |
368 | int rfbi_init_display(struct omap_dss_device *display); | 370 | int rfbi_init_display(struct omap_dss_device *display); |
369 | 371 | ||
372 | |||
373 | #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS | ||
374 | static inline void dss_collect_irq_stats(u32 irqstatus, unsigned *irq_arr) | ||
375 | { | ||
376 | int b; | ||
377 | for (b = 0; b < 32; ++b) { | ||
378 | if (irqstatus & (1 << b)) | ||
379 | irq_arr[b]++; | ||
380 | } | ||
381 | } | ||
382 | #endif | ||
383 | |||
370 | #endif | 384 | #endif |
diff --git a/drivers/video/omap2/dss/rfbi.c b/drivers/video/omap2/dss/rfbi.c index d0b3006ad8a..b936495c065 100644 --- a/drivers/video/omap2/dss/rfbi.c +++ b/drivers/video/omap2/dss/rfbi.c | |||
@@ -120,7 +120,7 @@ static struct { | |||
120 | 120 | ||
121 | struct omap_dss_device *dssdev[2]; | 121 | struct omap_dss_device *dssdev[2]; |
122 | 122 | ||
123 | struct kfifo *cmd_fifo; | 123 | struct kfifo cmd_fifo; |
124 | spinlock_t cmd_lock; | 124 | spinlock_t cmd_lock; |
125 | struct completion cmd_done; | 125 | struct completion cmd_done; |
126 | atomic_t cmd_fifo_full; | 126 | atomic_t cmd_fifo_full; |
@@ -1011,20 +1011,20 @@ static void process_cmd_fifo(void) | |||
1011 | return; | 1011 | return; |
1012 | 1012 | ||
1013 | while (true) { | 1013 | while (true) { |
1014 | spin_lock_irqsave(rfbi.cmd_fifo->lock, flags); | 1014 | spin_lock_irqsave(&rfbi.cmd_lock, flags); |
1015 | 1015 | ||
1016 | len = __kfifo_get(rfbi.cmd_fifo, (unsigned char *)&p, | 1016 | len = kfifo_out(&rfbi.cmd_fifo, (unsigned char *)&p, |
1017 | sizeof(struct update_param)); | 1017 | sizeof(struct update_param)); |
1018 | if (len == 0) { | 1018 | if (len == 0) { |
1019 | DSSDBG("nothing more in fifo\n"); | 1019 | DSSDBG("nothing more in fifo\n"); |
1020 | atomic_set(&rfbi.cmd_pending, 0); | 1020 | atomic_set(&rfbi.cmd_pending, 0); |
1021 | spin_unlock_irqrestore(rfbi.cmd_fifo->lock, flags); | 1021 | spin_unlock_irqrestore(&rfbi.cmd_lock, flags); |
1022 | break; | 1022 | break; |
1023 | } | 1023 | } |
1024 | 1024 | ||
1025 | /* DSSDBG("fifo full %d\n", rfbi.cmd_fifo_full.counter);*/ | 1025 | /* DSSDBG("fifo full %d\n", rfbi.cmd_fifo_full.counter);*/ |
1026 | 1026 | ||
1027 | spin_unlock_irqrestore(rfbi.cmd_fifo->lock, flags); | 1027 | spin_unlock_irqrestore(&rfbi.cmd_lock, flags); |
1028 | 1028 | ||
1029 | BUG_ON(len != sizeof(struct update_param)); | 1029 | BUG_ON(len != sizeof(struct update_param)); |
1030 | BUG_ON(p.rfbi_module > 1); | 1030 | BUG_ON(p.rfbi_module > 1); |
@@ -1052,25 +1052,25 @@ static void rfbi_push_cmd(struct update_param *p) | |||
1052 | unsigned long flags; | 1052 | unsigned long flags; |
1053 | int available; | 1053 | int available; |
1054 | 1054 | ||
1055 | spin_lock_irqsave(rfbi.cmd_fifo->lock, flags); | 1055 | spin_lock_irqsave(&rfbi.cmd_lock, flags); |
1056 | available = RFBI_CMD_FIFO_LEN_BYTES - | 1056 | available = RFBI_CMD_FIFO_LEN_BYTES - |
1057 | __kfifo_len(rfbi.cmd_fifo); | 1057 | kfifo_len(&rfbi.cmd_fifo); |
1058 | 1058 | ||
1059 | /* DSSDBG("%d bytes left in fifo\n", available); */ | 1059 | /* DSSDBG("%d bytes left in fifo\n", available); */ |
1060 | if (available < sizeof(struct update_param)) { | 1060 | if (available < sizeof(struct update_param)) { |
1061 | DSSDBG("Going to wait because FIFO FULL..\n"); | 1061 | DSSDBG("Going to wait because FIFO FULL..\n"); |
1062 | spin_unlock_irqrestore(rfbi.cmd_fifo->lock, flags); | 1062 | spin_unlock_irqrestore(&rfbi.cmd_lock, flags); |
1063 | atomic_inc(&rfbi.cmd_fifo_full); | 1063 | atomic_inc(&rfbi.cmd_fifo_full); |
1064 | wait_for_completion(&rfbi.cmd_done); | 1064 | wait_for_completion(&rfbi.cmd_done); |
1065 | /*DSSDBG("Woke up because fifo not full anymore\n");*/ | 1065 | /*DSSDBG("Woke up because fifo not full anymore\n");*/ |
1066 | continue; | 1066 | continue; |
1067 | } | 1067 | } |
1068 | 1068 | ||
1069 | ret = __kfifo_put(rfbi.cmd_fifo, (unsigned char *)p, | 1069 | ret = kfifo_in(&rfbi.cmd_fifo, (unsigned char *)p, |
1070 | sizeof(struct update_param)); | 1070 | sizeof(struct update_param)); |
1071 | /* DSSDBG("pushed %d bytes\n", ret);*/ | 1071 | /* DSSDBG("pushed %d bytes\n", ret);*/ |
1072 | 1072 | ||
1073 | spin_unlock_irqrestore(rfbi.cmd_fifo->lock, flags); | 1073 | spin_unlock_irqrestore(&rfbi.cmd_lock, flags); |
1074 | 1074 | ||
1075 | BUG_ON(ret != sizeof(struct update_param)); | 1075 | BUG_ON(ret != sizeof(struct update_param)); |
1076 | 1076 | ||
@@ -1155,12 +1155,12 @@ int rfbi_init(void) | |||
1155 | { | 1155 | { |
1156 | u32 rev; | 1156 | u32 rev; |
1157 | u32 l; | 1157 | u32 l; |
1158 | int r; | ||
1158 | 1159 | ||
1159 | spin_lock_init(&rfbi.cmd_lock); | 1160 | spin_lock_init(&rfbi.cmd_lock); |
1160 | rfbi.cmd_fifo = kfifo_alloc(RFBI_CMD_FIFO_LEN_BYTES, GFP_KERNEL, | 1161 | r = kfifo_alloc(&rfbi.cmd_fifo, RFBI_CMD_FIFO_LEN_BYTES, GFP_KERNEL); |
1161 | &rfbi.cmd_lock); | 1162 | if (r) |
1162 | if (IS_ERR(rfbi.cmd_fifo)) | 1163 | return r; |
1163 | return -ENOMEM; | ||
1164 | 1164 | ||
1165 | init_completion(&rfbi.cmd_done); | 1165 | init_completion(&rfbi.cmd_done); |
1166 | atomic_set(&rfbi.cmd_fifo_full, 0); | 1166 | atomic_set(&rfbi.cmd_fifo_full, 0); |
@@ -1196,7 +1196,7 @@ void rfbi_exit(void) | |||
1196 | { | 1196 | { |
1197 | DSSDBG("rfbi_exit\n"); | 1197 | DSSDBG("rfbi_exit\n"); |
1198 | 1198 | ||
1199 | kfifo_free(rfbi.cmd_fifo); | 1199 | kfifo_free(&rfbi.cmd_fifo); |
1200 | 1200 | ||
1201 | iounmap(rfbi.base); | 1201 | iounmap(rfbi.base); |
1202 | } | 1202 | } |
diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c index ef299839858..d17caef6915 100644 --- a/drivers/video/omap2/omapfb/omapfb-main.c +++ b/drivers/video/omap2/omapfb/omapfb-main.c | |||
@@ -1311,6 +1311,7 @@ static void omapfb_free_fbmem(struct fb_info *fbi) | |||
1311 | if (rg->vrfb.vaddr[0]) { | 1311 | if (rg->vrfb.vaddr[0]) { |
1312 | iounmap(rg->vrfb.vaddr[0]); | 1312 | iounmap(rg->vrfb.vaddr[0]); |
1313 | omap_vrfb_release_ctx(&rg->vrfb); | 1313 | omap_vrfb_release_ctx(&rg->vrfb); |
1314 | rg->vrfb.vaddr[0] = NULL; | ||
1314 | } | 1315 | } |
1315 | } | 1316 | } |
1316 | 1317 | ||
@@ -2114,6 +2115,11 @@ static int omapfb_probe(struct platform_device *pdev) | |||
2114 | dssdev = NULL; | 2115 | dssdev = NULL; |
2115 | for_each_dss_dev(dssdev) { | 2116 | for_each_dss_dev(dssdev) { |
2116 | omap_dss_get_device(dssdev); | 2117 | omap_dss_get_device(dssdev); |
2118 | if (!dssdev->driver) { | ||
2119 | dev_err(&pdev->dev, "no driver for display\n"); | ||
2120 | r = -EINVAL; | ||
2121 | goto cleanup; | ||
2122 | } | ||
2117 | fbdev->displays[fbdev->num_displays++] = dssdev; | 2123 | fbdev->displays[fbdev->num_displays++] = dssdev; |
2118 | } | 2124 | } |
2119 | 2125 | ||
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c index 415858b421b..825b665245b 100644 --- a/drivers/video/pxafb.c +++ b/drivers/video/pxafb.c | |||
@@ -1221,9 +1221,9 @@ static void setup_smart_timing(struct pxafb_info *fbi, | |||
1221 | static int pxafb_smart_thread(void *arg) | 1221 | static int pxafb_smart_thread(void *arg) |
1222 | { | 1222 | { |
1223 | struct pxafb_info *fbi = arg; | 1223 | struct pxafb_info *fbi = arg; |
1224 | struct pxafb_mach_info *inf; | 1224 | struct pxafb_mach_info *inf = fbi->dev->platform_data; |
1225 | 1225 | ||
1226 | if (!fbi || !fbi->dev->platform_data->smart_update) { | 1226 | if (!inf->smart_update) { |
1227 | pr_err("%s: not properly initialized, thread terminated\n", | 1227 | pr_err("%s: not properly initialized, thread terminated\n", |
1228 | __func__); | 1228 | __func__); |
1229 | return -EINVAL; | 1229 | return -EINVAL; |
diff --git a/drivers/video/s3c-fb.c b/drivers/video/s3c-fb.c index adf9632c6b1..53cb722c45a 100644 --- a/drivers/video/s3c-fb.c +++ b/drivers/video/s3c-fb.c | |||
@@ -211,21 +211,23 @@ static int s3c_fb_check_var(struct fb_var_screeninfo *var, | |||
211 | 211 | ||
212 | /** | 212 | /** |
213 | * s3c_fb_calc_pixclk() - calculate the divider to create the pixel clock. | 213 | * s3c_fb_calc_pixclk() - calculate the divider to create the pixel clock. |
214 | * @id: window id. | ||
215 | * @sfb: The hardware state. | 214 | * @sfb: The hardware state. |
216 | * @pixclock: The pixel clock wanted, in picoseconds. | 215 | * @pixclock: The pixel clock wanted, in picoseconds. |
217 | * | 216 | * |
218 | * Given the specified pixel clock, work out the necessary divider to get | 217 | * Given the specified pixel clock, work out the necessary divider to get |
219 | * close to the output frequency. | 218 | * close to the output frequency. |
220 | */ | 219 | */ |
221 | static int s3c_fb_calc_pixclk(unsigned char id, struct s3c_fb *sfb, unsigned int pixclk) | 220 | static int s3c_fb_calc_pixclk(struct s3c_fb *sfb, unsigned int pixclk) |
222 | { | 221 | { |
223 | struct s3c_fb_pd_win *win = sfb->pdata->win[id]; | ||
224 | unsigned long clk = clk_get_rate(sfb->bus_clk); | 222 | unsigned long clk = clk_get_rate(sfb->bus_clk); |
223 | unsigned long long tmp; | ||
225 | unsigned int result; | 224 | unsigned int result; |
226 | 225 | ||
227 | pixclk *= win->win_mode.refresh; | 226 | tmp = (unsigned long long)clk; |
228 | result = clk / pixclk; | 227 | tmp *= pixclk; |
228 | |||
229 | do_div(tmp, 1000000000UL); | ||
230 | result = (unsigned int)tmp / 1000; | ||
229 | 231 | ||
230 | dev_dbg(sfb->dev, "pixclk=%u, clk=%lu, div=%d (%lu)\n", | 232 | dev_dbg(sfb->dev, "pixclk=%u, clk=%lu, div=%d (%lu)\n", |
231 | pixclk, clk, result, clk / result); | 233 | pixclk, clk, result, clk / result); |
@@ -301,7 +303,7 @@ static int s3c_fb_set_par(struct fb_info *info) | |||
301 | /* use window 0 as the basis for the lcd output timings */ | 303 | /* use window 0 as the basis for the lcd output timings */ |
302 | 304 | ||
303 | if (win_no == 0) { | 305 | if (win_no == 0) { |
304 | clkdiv = s3c_fb_calc_pixclk(win_no, sfb, var->pixclock); | 306 | clkdiv = s3c_fb_calc_pixclk(sfb, var->pixclock); |
305 | 307 | ||
306 | data = sfb->pdata->vidcon0; | 308 | data = sfb->pdata->vidcon0; |
307 | data &= ~(VIDCON0_CLKVAL_F_MASK | VIDCON0_CLKDIR); | 309 | data &= ~(VIDCON0_CLKVAL_F_MASK | VIDCON0_CLKDIR); |
diff --git a/drivers/video/via/accel.c b/drivers/video/via/accel.c index 9d4f3a49ba4..d5077dfa9e0 100644 --- a/drivers/video/via/accel.c +++ b/drivers/video/via/accel.c | |||
@@ -137,7 +137,7 @@ static int hw_bitblt_1(void __iomem *engine, u8 op, u32 width, u32 height, | |||
137 | tmp, dst_pitch); | 137 | tmp, dst_pitch); |
138 | return -EINVAL; | 138 | return -EINVAL; |
139 | } | 139 | } |
140 | tmp = (tmp >> 3) | (dst_pitch << (16 - 3)); | 140 | tmp = VIA_PITCH_ENABLE | (tmp >> 3) | (dst_pitch << (16 - 3)); |
141 | writel(tmp, engine + 0x38); | 141 | writel(tmp, engine + 0x38); |
142 | 142 | ||
143 | if (op == VIA_BITBLT_FILL) | 143 | if (op == VIA_BITBLT_FILL) |
@@ -352,6 +352,9 @@ int viafb_init_engine(struct fb_info *info) | |||
352 | viapar->shared->vq_vram_addr = viapar->fbmem_free; | 352 | viapar->shared->vq_vram_addr = viapar->fbmem_free; |
353 | viapar->fbmem_used += VQ_SIZE; | 353 | viapar->fbmem_used += VQ_SIZE; |
354 | 354 | ||
355 | /* Init 2D engine reg to reset 2D engine */ | ||
356 | writel(0x0, engine + VIA_REG_KEYCONTROL); | ||
357 | |||
355 | /* Init AGP and VQ regs */ | 358 | /* Init AGP and VQ regs */ |
356 | switch (chip_name) { | 359 | switch (chip_name) { |
357 | case UNICHROME_K8M890: | 360 | case UNICHROME_K8M890: |
diff --git a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c index d8df17a7d5f..3028e7ddc3b 100644 --- a/drivers/video/via/viafbdev.c +++ b/drivers/video/via/viafbdev.c | |||
@@ -177,16 +177,15 @@ static int viafb_set_par(struct fb_info *info) | |||
177 | } | 177 | } |
178 | 178 | ||
179 | if (vmode_index != VIA_RES_INVALID) { | 179 | if (vmode_index != VIA_RES_INVALID) { |
180 | viafb_setmode(vmode_index, info->var.xres, info->var.yres, | ||
181 | info->var.bits_per_pixel, vmode_index1, | ||
182 | viafb_second_xres, viafb_second_yres, viafb_bpp1); | ||
183 | |||
184 | viafb_update_fix(info); | 180 | viafb_update_fix(info); |
185 | viafb_bpp = info->var.bits_per_pixel; | 181 | viafb_bpp = info->var.bits_per_pixel; |
186 | if (info->var.accel_flags & FB_ACCELF_TEXT) | 182 | if (info->var.accel_flags & FB_ACCELF_TEXT) |
187 | info->flags &= ~FBINFO_HWACCEL_DISABLED; | 183 | info->flags &= ~FBINFO_HWACCEL_DISABLED; |
188 | else | 184 | else |
189 | info->flags |= FBINFO_HWACCEL_DISABLED; | 185 | info->flags |= FBINFO_HWACCEL_DISABLED; |
186 | viafb_setmode(vmode_index, info->var.xres, info->var.yres, | ||
187 | info->var.bits_per_pixel, vmode_index1, | ||
188 | viafb_second_xres, viafb_second_yres, viafb_bpp1); | ||
190 | } | 189 | } |
191 | 190 | ||
192 | return 0; | 191 | return 0; |
@@ -872,7 +871,9 @@ static int viafb_cursor(struct fb_info *info, struct fb_cursor *cursor) | |||
872 | if (info->flags & FBINFO_HWACCEL_DISABLED || info != viafbinfo) | 871 | if (info->flags & FBINFO_HWACCEL_DISABLED || info != viafbinfo) |
873 | return -ENODEV; | 872 | return -ENODEV; |
874 | 873 | ||
875 | if (chip_name == UNICHROME_CLE266 && viapar->iga_path == IGA2) | 874 | /* LCD ouput does not support hw cursors (at least on VN896) */ |
875 | if ((chip_name == UNICHROME_CLE266 && viapar->iga_path == IGA2) || | ||
876 | viafb_LCD_ON) | ||
876 | return -ENODEV; | 877 | return -ENODEV; |
877 | 878 | ||
878 | viafb_show_hw_cursor(info, HW_Cursor_OFF); | 879 | viafb_show_hw_cursor(info, HW_Cursor_OFF); |
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c index 9dd58804288..505be88c82a 100644 --- a/drivers/virtio/virtio_balloon.c +++ b/drivers/virtio/virtio_balloon.c | |||
@@ -266,7 +266,7 @@ static void __devexit virtballoon_remove(struct virtio_device *vdev) | |||
266 | 266 | ||
267 | static unsigned int features[] = { VIRTIO_BALLOON_F_MUST_TELL_HOST }; | 267 | static unsigned int features[] = { VIRTIO_BALLOON_F_MUST_TELL_HOST }; |
268 | 268 | ||
269 | static struct virtio_driver virtio_balloon = { | 269 | static struct virtio_driver virtio_balloon_driver = { |
270 | .feature_table = features, | 270 | .feature_table = features, |
271 | .feature_table_size = ARRAY_SIZE(features), | 271 | .feature_table_size = ARRAY_SIZE(features), |
272 | .driver.name = KBUILD_MODNAME, | 272 | .driver.name = KBUILD_MODNAME, |
@@ -279,12 +279,12 @@ static struct virtio_driver virtio_balloon = { | |||
279 | 279 | ||
280 | static int __init init(void) | 280 | static int __init init(void) |
281 | { | 281 | { |
282 | return register_virtio_driver(&virtio_balloon); | 282 | return register_virtio_driver(&virtio_balloon_driver); |
283 | } | 283 | } |
284 | 284 | ||
285 | static void __exit fini(void) | 285 | static void __exit fini(void) |
286 | { | 286 | { |
287 | unregister_virtio_driver(&virtio_balloon); | 287 | unregister_virtio_driver(&virtio_balloon_driver); |
288 | } | 288 | } |
289 | module_init(init); | 289 | module_init(init); |
290 | module_exit(fini); | 290 | module_exit(fini); |
diff --git a/drivers/watchdog/iTCO_wdt.c b/drivers/watchdog/iTCO_wdt.c index c8a3bec2683..4bdb7f1a907 100644 --- a/drivers/watchdog/iTCO_wdt.c +++ b/drivers/watchdog/iTCO_wdt.c | |||
@@ -29,8 +29,9 @@ | |||
29 | * document number 313056-003, 313057-017: 82801H (ICH8) | 29 | * document number 313056-003, 313057-017: 82801H (ICH8) |
30 | * document number 316972-004, 316973-012: 82801I (ICH9) | 30 | * document number 316972-004, 316973-012: 82801I (ICH9) |
31 | * document number 319973-002, 319974-002: 82801J (ICH10) | 31 | * document number 319973-002, 319974-002: 82801J (ICH10) |
32 | * document number 322169-001, 322170-001: 5 Series, 3400 Series (PCH) | 32 | * document number 322169-001, 322170-003: 5 Series, 3400 Series (PCH) |
33 | * document number 320066-003, 320257-008: EP80597 (IICH) | 33 | * document number 320066-003, 320257-008: EP80597 (IICH) |
34 | * document number TBD : Cougar Point (CPT) | ||
34 | */ | 35 | */ |
35 | 36 | ||
36 | /* | 37 | /* |
@@ -100,8 +101,22 @@ enum iTCO_chipsets { | |||
100 | TCO_ICH10DO, /* ICH10DO */ | 101 | TCO_ICH10DO, /* ICH10DO */ |
101 | TCO_PCH, /* PCH Desktop Full Featured */ | 102 | TCO_PCH, /* PCH Desktop Full Featured */ |
102 | TCO_PCHM, /* PCH Mobile Full Featured */ | 103 | TCO_PCHM, /* PCH Mobile Full Featured */ |
104 | TCO_P55, /* P55 */ | ||
105 | TCO_PM55, /* PM55 */ | ||
106 | TCO_H55, /* H55 */ | ||
107 | TCO_QM57, /* QM57 */ | ||
108 | TCO_H57, /* H57 */ | ||
109 | TCO_HM55, /* HM55 */ | ||
110 | TCO_Q57, /* Q57 */ | ||
111 | TCO_HM57, /* HM57 */ | ||
103 | TCO_PCHMSFF, /* PCH Mobile SFF Full Featured */ | 112 | TCO_PCHMSFF, /* PCH Mobile SFF Full Featured */ |
113 | TCO_QS57, /* QS57 */ | ||
114 | TCO_3400, /* 3400 */ | ||
115 | TCO_3420, /* 3420 */ | ||
116 | TCO_3450, /* 3450 */ | ||
104 | TCO_EP80579, /* EP80579 */ | 117 | TCO_EP80579, /* EP80579 */ |
118 | TCO_CPTD, /* CPT Desktop */ | ||
119 | TCO_CPTM, /* CPT Mobile */ | ||
105 | }; | 120 | }; |
106 | 121 | ||
107 | static struct { | 122 | static struct { |
@@ -144,8 +159,22 @@ static struct { | |||
144 | {"ICH10DO", 2}, | 159 | {"ICH10DO", 2}, |
145 | {"PCH Desktop Full Featured", 2}, | 160 | {"PCH Desktop Full Featured", 2}, |
146 | {"PCH Mobile Full Featured", 2}, | 161 | {"PCH Mobile Full Featured", 2}, |
162 | {"P55", 2}, | ||
163 | {"PM55", 2}, | ||
164 | {"H55", 2}, | ||
165 | {"QM57", 2}, | ||
166 | {"H57", 2}, | ||
167 | {"HM55", 2}, | ||
168 | {"Q57", 2}, | ||
169 | {"HM57", 2}, | ||
147 | {"PCH Mobile SFF Full Featured", 2}, | 170 | {"PCH Mobile SFF Full Featured", 2}, |
171 | {"QS57", 2}, | ||
172 | {"3400", 2}, | ||
173 | {"3420", 2}, | ||
174 | {"3450", 2}, | ||
148 | {"EP80579", 2}, | 175 | {"EP80579", 2}, |
176 | {"CPT Desktop", 2}, | ||
177 | {"CPT Mobile", 2}, | ||
149 | {NULL, 0} | 178 | {NULL, 0} |
150 | }; | 179 | }; |
151 | 180 | ||
@@ -216,8 +245,22 @@ static struct pci_device_id iTCO_wdt_pci_tbl[] = { | |||
216 | { ITCO_PCI_DEVICE(0x3a14, TCO_ICH10DO)}, | 245 | { ITCO_PCI_DEVICE(0x3a14, TCO_ICH10DO)}, |
217 | { ITCO_PCI_DEVICE(0x3b00, TCO_PCH)}, | 246 | { ITCO_PCI_DEVICE(0x3b00, TCO_PCH)}, |
218 | { ITCO_PCI_DEVICE(0x3b01, TCO_PCHM)}, | 247 | { ITCO_PCI_DEVICE(0x3b01, TCO_PCHM)}, |
248 | { ITCO_PCI_DEVICE(0x3b02, TCO_P55)}, | ||
249 | { ITCO_PCI_DEVICE(0x3b03, TCO_PM55)}, | ||
250 | { ITCO_PCI_DEVICE(0x3b06, TCO_H55)}, | ||
251 | { ITCO_PCI_DEVICE(0x3b07, TCO_QM57)}, | ||
252 | { ITCO_PCI_DEVICE(0x3b08, TCO_H57)}, | ||
253 | { ITCO_PCI_DEVICE(0x3b09, TCO_HM55)}, | ||
254 | { ITCO_PCI_DEVICE(0x3b0a, TCO_Q57)}, | ||
255 | { ITCO_PCI_DEVICE(0x3b0b, TCO_HM57)}, | ||
219 | { ITCO_PCI_DEVICE(0x3b0d, TCO_PCHMSFF)}, | 256 | { ITCO_PCI_DEVICE(0x3b0d, TCO_PCHMSFF)}, |
257 | { ITCO_PCI_DEVICE(0x3b0f, TCO_QS57)}, | ||
258 | { ITCO_PCI_DEVICE(0x3b12, TCO_3400)}, | ||
259 | { ITCO_PCI_DEVICE(0x3b14, TCO_3420)}, | ||
260 | { ITCO_PCI_DEVICE(0x3b16, TCO_3450)}, | ||
220 | { ITCO_PCI_DEVICE(0x5031, TCO_EP80579)}, | 261 | { ITCO_PCI_DEVICE(0x5031, TCO_EP80579)}, |
262 | { ITCO_PCI_DEVICE(0x1c42, TCO_CPTD)}, | ||
263 | { ITCO_PCI_DEVICE(0x1c43, TCO_CPTM)}, | ||
221 | { 0, }, /* End of list */ | 264 | { 0, }, /* End of list */ |
222 | }; | 265 | }; |
223 | MODULE_DEVICE_TABLE(pci, iTCO_wdt_pci_tbl); | 266 | MODULE_DEVICE_TABLE(pci, iTCO_wdt_pci_tbl); |
diff --git a/drivers/xen/manage.c b/drivers/xen/manage.c index c4997930afc..5d42d55e299 100644 --- a/drivers/xen/manage.c +++ b/drivers/xen/manage.c | |||
@@ -102,15 +102,15 @@ static void do_suspend(void) | |||
102 | goto out_thaw; | 102 | goto out_thaw; |
103 | } | 103 | } |
104 | 104 | ||
105 | printk(KERN_DEBUG "suspending xenstore...\n"); | ||
106 | xs_suspend(); | ||
107 | |||
105 | err = dpm_suspend_noirq(PMSG_SUSPEND); | 108 | err = dpm_suspend_noirq(PMSG_SUSPEND); |
106 | if (err) { | 109 | if (err) { |
107 | printk(KERN_ERR "dpm_suspend_noirq failed: %d\n", err); | 110 | printk(KERN_ERR "dpm_suspend_noirq failed: %d\n", err); |
108 | goto out_resume; | 111 | goto out_resume; |
109 | } | 112 | } |
110 | 113 | ||
111 | printk(KERN_DEBUG "suspending xenstore...\n"); | ||
112 | xs_suspend(); | ||
113 | |||
114 | err = stop_machine(xen_suspend, &cancelled, cpumask_of(0)); | 114 | err = stop_machine(xen_suspend, &cancelled, cpumask_of(0)); |
115 | 115 | ||
116 | dpm_resume_noirq(PMSG_RESUME); | 116 | dpm_resume_noirq(PMSG_RESUME); |
@@ -120,13 +120,13 @@ static void do_suspend(void) | |||
120 | cancelled = 1; | 120 | cancelled = 1; |
121 | } | 121 | } |
122 | 122 | ||
123 | out_resume: | ||
123 | if (!cancelled) { | 124 | if (!cancelled) { |
124 | xen_arch_resume(); | 125 | xen_arch_resume(); |
125 | xs_resume(); | 126 | xs_resume(); |
126 | } else | 127 | } else |
127 | xs_suspend_cancel(); | 128 | xs_suspend_cancel(); |
128 | 129 | ||
129 | out_resume: | ||
130 | dpm_resume_end(PMSG_RESUME); | 130 | dpm_resume_end(PMSG_RESUME); |
131 | 131 | ||
132 | /* Make sure timer events get retriggered on all CPUs */ | 132 | /* Make sure timer events get retriggered on all CPUs */ |
diff --git a/firmware/Makefile b/firmware/Makefile index 6d5c3abd06b..1c00d05578f 100644 --- a/firmware/Makefile +++ b/firmware/Makefile | |||
@@ -69,7 +69,8 @@ fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \ | |||
69 | fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin | 69 | fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin |
70 | fw-shipped-$(CONFIG_PCMCIA_PCNET) += cis/LA-PCM.cis cis/PCMLM28.cis \ | 70 | fw-shipped-$(CONFIG_PCMCIA_PCNET) += cis/LA-PCM.cis cis/PCMLM28.cis \ |
71 | cis/DP83903.cis cis/NE2K.cis \ | 71 | cis/DP83903.cis cis/NE2K.cis \ |
72 | cis/tamarack.cis cis/PE-200.cis | 72 | cis/tamarack.cis cis/PE-200.cis \ |
73 | cis/PE520.cis | ||
73 | fw-shipped-$(CONFIG_PCMCIA_3C589) += cis/3CXEM556.cis | 74 | fw-shipped-$(CONFIG_PCMCIA_3C589) += cis/3CXEM556.cis |
74 | fw-shipped-$(CONFIG_PCMCIA_3C574) += cis/3CCFEM556.cis | 75 | fw-shipped-$(CONFIG_PCMCIA_3C574) += cis/3CCFEM556.cis |
75 | fw-shipped-$(CONFIG_SERIAL_8250_CS) += cis/MT5634ZLX.cis cis/RS-COM-2P.cis \ | 76 | fw-shipped-$(CONFIG_SERIAL_8250_CS) += cis/MT5634ZLX.cis cis/RS-COM-2P.cis \ |
diff --git a/firmware/WHENCE b/firmware/WHENCE index 34b5d0a036d..ac174feda7c 100644 --- a/firmware/WHENCE +++ b/firmware/WHENCE | |||
@@ -601,6 +601,7 @@ File: cis/LA-PCM.cis | |||
601 | cis/NE2K.cis | 601 | cis/NE2K.cis |
602 | cis/tamarack.cis | 602 | cis/tamarack.cis |
603 | cis/PE-200.cis | 603 | cis/PE-200.cis |
604 | cis/PE520.cis | ||
604 | 605 | ||
605 | Licence: GPL | 606 | Licence: GPL |
606 | 607 | ||
diff --git a/firmware/cis/PE520.cis.ihex b/firmware/cis/PE520.cis.ihex new file mode 100644 index 00000000000..97a745b5496 --- /dev/null +++ b/firmware/cis/PE520.cis.ihex | |||
@@ -0,0 +1,9 @@ | |||
1 | :1000000001030000FF152304014B544900504535FE | ||
2 | :10001000323020504C55530050434D434941204508 | ||
3 | :10002000746865726E65740000FF20046101100041 | ||
4 | :10003000210206001A050101D00F0B1B09C101198D | ||
5 | :0A00400001556530FFFF1400FF00BA | ||
6 | :00000001FF | ||
7 | # | ||
8 | # Replacement CIS for PE520 ethernet card | ||
9 | # | ||
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index 18f74ec4dce..9d03d1ebca6 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c | |||
@@ -1001,44 +1001,6 @@ done: | |||
1001 | } | 1001 | } |
1002 | 1002 | ||
1003 | /** | 1003 | /** |
1004 | * v9fs_vfs_readlink - read a symlink's location | ||
1005 | * @dentry: dentry for symlink | ||
1006 | * @buffer: buffer to load symlink location into | ||
1007 | * @buflen: length of buffer | ||
1008 | * | ||
1009 | */ | ||
1010 | |||
1011 | static int v9fs_vfs_readlink(struct dentry *dentry, char __user * buffer, | ||
1012 | int buflen) | ||
1013 | { | ||
1014 | int retval; | ||
1015 | int ret; | ||
1016 | char *link = __getname(); | ||
1017 | |||
1018 | if (unlikely(!link)) | ||
1019 | return -ENOMEM; | ||
1020 | |||
1021 | if (buflen > PATH_MAX) | ||
1022 | buflen = PATH_MAX; | ||
1023 | |||
1024 | P9_DPRINTK(P9_DEBUG_VFS, " dentry: %s (%p)\n", dentry->d_name.name, | ||
1025 | dentry); | ||
1026 | |||
1027 | retval = v9fs_readlink(dentry, link, buflen); | ||
1028 | |||
1029 | if (retval > 0) { | ||
1030 | if ((ret = copy_to_user(buffer, link, retval)) != 0) { | ||
1031 | P9_DPRINTK(P9_DEBUG_ERROR, | ||
1032 | "problem copying to user: %d\n", ret); | ||
1033 | retval = ret; | ||
1034 | } | ||
1035 | } | ||
1036 | |||
1037 | __putname(link); | ||
1038 | return retval; | ||
1039 | } | ||
1040 | |||
1041 | /** | ||
1042 | * v9fs_vfs_follow_link - follow a symlink path | 1004 | * v9fs_vfs_follow_link - follow a symlink path |
1043 | * @dentry: dentry for symlink | 1005 | * @dentry: dentry for symlink |
1044 | * @nd: nameidata | 1006 | * @nd: nameidata |
@@ -1230,7 +1192,6 @@ static const struct inode_operations v9fs_dir_inode_operations_ext = { | |||
1230 | .rmdir = v9fs_vfs_rmdir, | 1192 | .rmdir = v9fs_vfs_rmdir, |
1231 | .mknod = v9fs_vfs_mknod, | 1193 | .mknod = v9fs_vfs_mknod, |
1232 | .rename = v9fs_vfs_rename, | 1194 | .rename = v9fs_vfs_rename, |
1233 | .readlink = v9fs_vfs_readlink, | ||
1234 | .getattr = v9fs_vfs_getattr, | 1195 | .getattr = v9fs_vfs_getattr, |
1235 | .setattr = v9fs_vfs_setattr, | 1196 | .setattr = v9fs_vfs_setattr, |
1236 | }; | 1197 | }; |
@@ -1253,7 +1214,7 @@ static const struct inode_operations v9fs_file_inode_operations = { | |||
1253 | }; | 1214 | }; |
1254 | 1215 | ||
1255 | static const struct inode_operations v9fs_symlink_inode_operations = { | 1216 | static const struct inode_operations v9fs_symlink_inode_operations = { |
1256 | .readlink = v9fs_vfs_readlink, | 1217 | .readlink = generic_readlink, |
1257 | .follow_link = v9fs_vfs_follow_link, | 1218 | .follow_link = v9fs_vfs_follow_link, |
1258 | .put_link = v9fs_vfs_put_link, | 1219 | .put_link = v9fs_vfs_put_link, |
1259 | .getattr = v9fs_vfs_getattr, | 1220 | .getattr = v9fs_vfs_getattr, |
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index c25256a5c5b..c57d9ce5ff7 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c | |||
@@ -171,6 +171,9 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm, | |||
171 | #ifdef ELF_FDPIC_PLAT_INIT | 171 | #ifdef ELF_FDPIC_PLAT_INIT |
172 | unsigned long dynaddr; | 172 | unsigned long dynaddr; |
173 | #endif | 173 | #endif |
174 | #ifndef CONFIG_MMU | ||
175 | unsigned long stack_prot; | ||
176 | #endif | ||
174 | struct file *interpreter = NULL; /* to shut gcc up */ | 177 | struct file *interpreter = NULL; /* to shut gcc up */ |
175 | char *interpreter_name = NULL; | 178 | char *interpreter_name = NULL; |
176 | int executable_stack; | 179 | int executable_stack; |
@@ -316,6 +319,8 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm, | |||
316 | * defunct, deceased, etc. after this point we have to exit via | 319 | * defunct, deceased, etc. after this point we have to exit via |
317 | * error_kill */ | 320 | * error_kill */ |
318 | set_personality(PER_LINUX_FDPIC); | 321 | set_personality(PER_LINUX_FDPIC); |
322 | if (elf_read_implies_exec(&exec_params.hdr, executable_stack)) | ||
323 | current->personality |= READ_IMPLIES_EXEC; | ||
319 | set_binfmt(&elf_fdpic_format); | 324 | set_binfmt(&elf_fdpic_format); |
320 | 325 | ||
321 | current->mm->start_code = 0; | 326 | current->mm->start_code = 0; |
@@ -377,9 +382,13 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm, | |||
377 | if (stack_size < PAGE_SIZE * 2) | 382 | if (stack_size < PAGE_SIZE * 2) |
378 | stack_size = PAGE_SIZE * 2; | 383 | stack_size = PAGE_SIZE * 2; |
379 | 384 | ||
385 | stack_prot = PROT_READ | PROT_WRITE; | ||
386 | if (executable_stack == EXSTACK_ENABLE_X || | ||
387 | (executable_stack == EXSTACK_DEFAULT && VM_STACK_FLAGS & VM_EXEC)) | ||
388 | stack_prot |= PROT_EXEC; | ||
389 | |||
380 | down_write(¤t->mm->mmap_sem); | 390 | down_write(¤t->mm->mmap_sem); |
381 | current->mm->start_brk = do_mmap(NULL, 0, stack_size, | 391 | current->mm->start_brk = do_mmap(NULL, 0, stack_size, stack_prot, |
382 | PROT_READ | PROT_WRITE | PROT_EXEC, | ||
383 | MAP_PRIVATE | MAP_ANONYMOUS | | 392 | MAP_PRIVATE | MAP_ANONYMOUS | |
384 | MAP_UNINITIALIZED | MAP_GROWSDOWN, | 393 | MAP_UNINITIALIZED | MAP_GROWSDOWN, |
385 | 0); | 394 | 0); |
@@ -1798,11 +1807,11 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) | |||
1798 | ELF_CORE_WRITE_EXTRA_DATA; | 1807 | ELF_CORE_WRITE_EXTRA_DATA; |
1799 | #endif | 1808 | #endif |
1800 | 1809 | ||
1801 | if (file->f_pos != offset) { | 1810 | if (cprm->file->f_pos != offset) { |
1802 | /* Sanity check */ | 1811 | /* Sanity check */ |
1803 | printk(KERN_WARNING | 1812 | printk(KERN_WARNING |
1804 | "elf_core_dump: file->f_pos (%lld) != offset (%lld)\n", | 1813 | "elf_core_dump: file->f_pos (%lld) != offset (%lld)\n", |
1805 | file->f_pos, offset); | 1814 | cprm->file->f_pos, offset); |
1806 | } | 1815 | } |
1807 | 1816 | ||
1808 | end_coredump: | 1817 | end_coredump: |
@@ -78,7 +78,7 @@ static struct kmem_cache *bio_find_or_create_slab(unsigned int extra_size) | |||
78 | 78 | ||
79 | i = 0; | 79 | i = 0; |
80 | while (i < bio_slab_nr) { | 80 | while (i < bio_slab_nr) { |
81 | struct bio_slab *bslab = &bio_slabs[i]; | 81 | bslab = &bio_slabs[i]; |
82 | 82 | ||
83 | if (!bslab->slab && entry == -1) | 83 | if (!bslab->slab && entry == -1) |
84 | entry = i; | 84 | entry = i; |
diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c index 2e9e69987a8..54f4798ab46 100644 --- a/fs/btrfs/acl.c +++ b/fs/btrfs/acl.c | |||
@@ -112,12 +112,14 @@ static int btrfs_set_acl(struct btrfs_trans_handle *trans, | |||
112 | switch (type) { | 112 | switch (type) { |
113 | case ACL_TYPE_ACCESS: | 113 | case ACL_TYPE_ACCESS: |
114 | mode = inode->i_mode; | 114 | mode = inode->i_mode; |
115 | ret = posix_acl_equiv_mode(acl, &mode); | ||
116 | if (ret < 0) | ||
117 | return ret; | ||
118 | ret = 0; | ||
119 | inode->i_mode = mode; | ||
120 | name = POSIX_ACL_XATTR_ACCESS; | 115 | name = POSIX_ACL_XATTR_ACCESS; |
116 | if (acl) { | ||
117 | ret = posix_acl_equiv_mode(acl, &mode); | ||
118 | if (ret < 0) | ||
119 | return ret; | ||
120 | inode->i_mode = mode; | ||
121 | } | ||
122 | ret = 0; | ||
121 | break; | 123 | break; |
122 | case ACL_TYPE_DEFAULT: | 124 | case ACL_TYPE_DEFAULT: |
123 | if (!S_ISDIR(inode->i_mode)) | 125 | if (!S_ISDIR(inode->i_mode)) |
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 56e50137d0e..432a2da4641 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
@@ -83,6 +83,17 @@ static int block_group_bits(struct btrfs_block_group_cache *cache, u64 bits) | |||
83 | return (cache->flags & bits) == bits; | 83 | return (cache->flags & bits) == bits; |
84 | } | 84 | } |
85 | 85 | ||
86 | void btrfs_get_block_group(struct btrfs_block_group_cache *cache) | ||
87 | { | ||
88 | atomic_inc(&cache->count); | ||
89 | } | ||
90 | |||
91 | void btrfs_put_block_group(struct btrfs_block_group_cache *cache) | ||
92 | { | ||
93 | if (atomic_dec_and_test(&cache->count)) | ||
94 | kfree(cache); | ||
95 | } | ||
96 | |||
86 | /* | 97 | /* |
87 | * this adds the block group to the fs_info rb tree for the block group | 98 | * this adds the block group to the fs_info rb tree for the block group |
88 | * cache | 99 | * cache |
@@ -156,7 +167,7 @@ block_group_cache_tree_search(struct btrfs_fs_info *info, u64 bytenr, | |||
156 | } | 167 | } |
157 | } | 168 | } |
158 | if (ret) | 169 | if (ret) |
159 | atomic_inc(&ret->count); | 170 | btrfs_get_block_group(ret); |
160 | spin_unlock(&info->block_group_cache_lock); | 171 | spin_unlock(&info->block_group_cache_lock); |
161 | 172 | ||
162 | return ret; | 173 | return ret; |
@@ -407,6 +418,8 @@ err: | |||
407 | 418 | ||
408 | put_caching_control(caching_ctl); | 419 | put_caching_control(caching_ctl); |
409 | atomic_dec(&block_group->space_info->caching_threads); | 420 | atomic_dec(&block_group->space_info->caching_threads); |
421 | btrfs_put_block_group(block_group); | ||
422 | |||
410 | return 0; | 423 | return 0; |
411 | } | 424 | } |
412 | 425 | ||
@@ -447,6 +460,7 @@ static int cache_block_group(struct btrfs_block_group_cache *cache) | |||
447 | up_write(&fs_info->extent_commit_sem); | 460 | up_write(&fs_info->extent_commit_sem); |
448 | 461 | ||
449 | atomic_inc(&cache->space_info->caching_threads); | 462 | atomic_inc(&cache->space_info->caching_threads); |
463 | btrfs_get_block_group(cache); | ||
450 | 464 | ||
451 | tsk = kthread_run(caching_kthread, cache, "btrfs-cache-%llu\n", | 465 | tsk = kthread_run(caching_kthread, cache, "btrfs-cache-%llu\n", |
452 | cache->key.objectid); | 466 | cache->key.objectid); |
@@ -486,12 +500,6 @@ struct btrfs_block_group_cache *btrfs_lookup_block_group( | |||
486 | return cache; | 500 | return cache; |
487 | } | 501 | } |
488 | 502 | ||
489 | void btrfs_put_block_group(struct btrfs_block_group_cache *cache) | ||
490 | { | ||
491 | if (atomic_dec_and_test(&cache->count)) | ||
492 | kfree(cache); | ||
493 | } | ||
494 | |||
495 | static struct btrfs_space_info *__find_space_info(struct btrfs_fs_info *info, | 503 | static struct btrfs_space_info *__find_space_info(struct btrfs_fs_info *info, |
496 | u64 flags) | 504 | u64 flags) |
497 | { | 505 | { |
@@ -2582,7 +2590,7 @@ next_block_group(struct btrfs_root *root, | |||
2582 | if (node) { | 2590 | if (node) { |
2583 | cache = rb_entry(node, struct btrfs_block_group_cache, | 2591 | cache = rb_entry(node, struct btrfs_block_group_cache, |
2584 | cache_node); | 2592 | cache_node); |
2585 | atomic_inc(&cache->count); | 2593 | btrfs_get_block_group(cache); |
2586 | } else | 2594 | } else |
2587 | cache = NULL; | 2595 | cache = NULL; |
2588 | spin_unlock(&root->fs_info->block_group_cache_lock); | 2596 | spin_unlock(&root->fs_info->block_group_cache_lock); |
@@ -4227,7 +4235,7 @@ search: | |||
4227 | u64 offset; | 4235 | u64 offset; |
4228 | int cached; | 4236 | int cached; |
4229 | 4237 | ||
4230 | atomic_inc(&block_group->count); | 4238 | btrfs_get_block_group(block_group); |
4231 | search_start = block_group->key.objectid; | 4239 | search_start = block_group->key.objectid; |
4232 | 4240 | ||
4233 | have_block_group: | 4241 | have_block_group: |
@@ -4315,7 +4323,7 @@ have_block_group: | |||
4315 | 4323 | ||
4316 | btrfs_put_block_group(block_group); | 4324 | btrfs_put_block_group(block_group); |
4317 | block_group = last_ptr->block_group; | 4325 | block_group = last_ptr->block_group; |
4318 | atomic_inc(&block_group->count); | 4326 | btrfs_get_block_group(block_group); |
4319 | spin_unlock(&last_ptr->lock); | 4327 | spin_unlock(&last_ptr->lock); |
4320 | spin_unlock(&last_ptr->refill_lock); | 4328 | spin_unlock(&last_ptr->refill_lock); |
4321 | 4329 | ||
@@ -7395,9 +7403,7 @@ int btrfs_free_block_groups(struct btrfs_fs_info *info) | |||
7395 | wait_block_group_cache_done(block_group); | 7403 | wait_block_group_cache_done(block_group); |
7396 | 7404 | ||
7397 | btrfs_remove_free_space_cache(block_group); | 7405 | btrfs_remove_free_space_cache(block_group); |
7398 | 7406 | btrfs_put_block_group(block_group); | |
7399 | WARN_ON(atomic_read(&block_group->count) != 1); | ||
7400 | kfree(block_group); | ||
7401 | 7407 | ||
7402 | spin_lock(&info->block_group_cache_lock); | 7408 | spin_lock(&info->block_group_cache_lock); |
7403 | } | 7409 | } |
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index feaa13b105d..c02033596f0 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
@@ -506,7 +506,8 @@ next_slot: | |||
506 | } | 506 | } |
507 | 507 | ||
508 | static int extent_mergeable(struct extent_buffer *leaf, int slot, | 508 | static int extent_mergeable(struct extent_buffer *leaf, int slot, |
509 | u64 objectid, u64 bytenr, u64 *start, u64 *end) | 509 | u64 objectid, u64 bytenr, u64 orig_offset, |
510 | u64 *start, u64 *end) | ||
510 | { | 511 | { |
511 | struct btrfs_file_extent_item *fi; | 512 | struct btrfs_file_extent_item *fi; |
512 | struct btrfs_key key; | 513 | struct btrfs_key key; |
@@ -522,6 +523,7 @@ static int extent_mergeable(struct extent_buffer *leaf, int slot, | |||
522 | fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item); | 523 | fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item); |
523 | if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_REG || | 524 | if (btrfs_file_extent_type(leaf, fi) != BTRFS_FILE_EXTENT_REG || |
524 | btrfs_file_extent_disk_bytenr(leaf, fi) != bytenr || | 525 | btrfs_file_extent_disk_bytenr(leaf, fi) != bytenr || |
526 | btrfs_file_extent_offset(leaf, fi) != key.offset - orig_offset || | ||
525 | btrfs_file_extent_compression(leaf, fi) || | 527 | btrfs_file_extent_compression(leaf, fi) || |
526 | btrfs_file_extent_encryption(leaf, fi) || | 528 | btrfs_file_extent_encryption(leaf, fi) || |
527 | btrfs_file_extent_other_encoding(leaf, fi)) | 529 | btrfs_file_extent_other_encoding(leaf, fi)) |
@@ -561,6 +563,7 @@ int btrfs_mark_extent_written(struct btrfs_trans_handle *trans, | |||
561 | u64 split; | 563 | u64 split; |
562 | int del_nr = 0; | 564 | int del_nr = 0; |
563 | int del_slot = 0; | 565 | int del_slot = 0; |
566 | int recow; | ||
564 | int ret; | 567 | int ret; |
565 | 568 | ||
566 | btrfs_drop_extent_cache(inode, start, end - 1, 0); | 569 | btrfs_drop_extent_cache(inode, start, end - 1, 0); |
@@ -568,6 +571,7 @@ int btrfs_mark_extent_written(struct btrfs_trans_handle *trans, | |||
568 | path = btrfs_alloc_path(); | 571 | path = btrfs_alloc_path(); |
569 | BUG_ON(!path); | 572 | BUG_ON(!path); |
570 | again: | 573 | again: |
574 | recow = 0; | ||
571 | split = start; | 575 | split = start; |
572 | key.objectid = inode->i_ino; | 576 | key.objectid = inode->i_ino; |
573 | key.type = BTRFS_EXTENT_DATA_KEY; | 577 | key.type = BTRFS_EXTENT_DATA_KEY; |
@@ -591,12 +595,60 @@ again: | |||
591 | bytenr = btrfs_file_extent_disk_bytenr(leaf, fi); | 595 | bytenr = btrfs_file_extent_disk_bytenr(leaf, fi); |
592 | num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi); | 596 | num_bytes = btrfs_file_extent_disk_num_bytes(leaf, fi); |
593 | orig_offset = key.offset - btrfs_file_extent_offset(leaf, fi); | 597 | orig_offset = key.offset - btrfs_file_extent_offset(leaf, fi); |
598 | memcpy(&new_key, &key, sizeof(new_key)); | ||
599 | |||
600 | if (start == key.offset && end < extent_end) { | ||
601 | other_start = 0; | ||
602 | other_end = start; | ||
603 | if (extent_mergeable(leaf, path->slots[0] - 1, | ||
604 | inode->i_ino, bytenr, orig_offset, | ||
605 | &other_start, &other_end)) { | ||
606 | new_key.offset = end; | ||
607 | btrfs_set_item_key_safe(trans, root, path, &new_key); | ||
608 | fi = btrfs_item_ptr(leaf, path->slots[0], | ||
609 | struct btrfs_file_extent_item); | ||
610 | btrfs_set_file_extent_num_bytes(leaf, fi, | ||
611 | extent_end - end); | ||
612 | btrfs_set_file_extent_offset(leaf, fi, | ||
613 | end - orig_offset); | ||
614 | fi = btrfs_item_ptr(leaf, path->slots[0] - 1, | ||
615 | struct btrfs_file_extent_item); | ||
616 | btrfs_set_file_extent_num_bytes(leaf, fi, | ||
617 | end - other_start); | ||
618 | btrfs_mark_buffer_dirty(leaf); | ||
619 | goto out; | ||
620 | } | ||
621 | } | ||
622 | |||
623 | if (start > key.offset && end == extent_end) { | ||
624 | other_start = end; | ||
625 | other_end = 0; | ||
626 | if (extent_mergeable(leaf, path->slots[0] + 1, | ||
627 | inode->i_ino, bytenr, orig_offset, | ||
628 | &other_start, &other_end)) { | ||
629 | fi = btrfs_item_ptr(leaf, path->slots[0], | ||
630 | struct btrfs_file_extent_item); | ||
631 | btrfs_set_file_extent_num_bytes(leaf, fi, | ||
632 | start - key.offset); | ||
633 | path->slots[0]++; | ||
634 | new_key.offset = start; | ||
635 | btrfs_set_item_key_safe(trans, root, path, &new_key); | ||
636 | |||
637 | fi = btrfs_item_ptr(leaf, path->slots[0], | ||
638 | struct btrfs_file_extent_item); | ||
639 | btrfs_set_file_extent_num_bytes(leaf, fi, | ||
640 | other_end - start); | ||
641 | btrfs_set_file_extent_offset(leaf, fi, | ||
642 | start - orig_offset); | ||
643 | btrfs_mark_buffer_dirty(leaf); | ||
644 | goto out; | ||
645 | } | ||
646 | } | ||
594 | 647 | ||
595 | while (start > key.offset || end < extent_end) { | 648 | while (start > key.offset || end < extent_end) { |
596 | if (key.offset == start) | 649 | if (key.offset == start) |
597 | split = end; | 650 | split = end; |
598 | 651 | ||
599 | memcpy(&new_key, &key, sizeof(new_key)); | ||
600 | new_key.offset = split; | 652 | new_key.offset = split; |
601 | ret = btrfs_duplicate_item(trans, root, path, &new_key); | 653 | ret = btrfs_duplicate_item(trans, root, path, &new_key); |
602 | if (ret == -EAGAIN) { | 654 | if (ret == -EAGAIN) { |
@@ -631,15 +683,18 @@ again: | |||
631 | path->slots[0]--; | 683 | path->slots[0]--; |
632 | extent_end = end; | 684 | extent_end = end; |
633 | } | 685 | } |
686 | recow = 1; | ||
634 | } | 687 | } |
635 | 688 | ||
636 | fi = btrfs_item_ptr(leaf, path->slots[0], | ||
637 | struct btrfs_file_extent_item); | ||
638 | |||
639 | other_start = end; | 689 | other_start = end; |
640 | other_end = 0; | 690 | other_end = 0; |
641 | if (extent_mergeable(leaf, path->slots[0] + 1, inode->i_ino, | 691 | if (extent_mergeable(leaf, path->slots[0] + 1, |
642 | bytenr, &other_start, &other_end)) { | 692 | inode->i_ino, bytenr, orig_offset, |
693 | &other_start, &other_end)) { | ||
694 | if (recow) { | ||
695 | btrfs_release_path(root, path); | ||
696 | goto again; | ||
697 | } | ||
643 | extent_end = other_end; | 698 | extent_end = other_end; |
644 | del_slot = path->slots[0] + 1; | 699 | del_slot = path->slots[0] + 1; |
645 | del_nr++; | 700 | del_nr++; |
@@ -650,8 +705,13 @@ again: | |||
650 | } | 705 | } |
651 | other_start = 0; | 706 | other_start = 0; |
652 | other_end = start; | 707 | other_end = start; |
653 | if (extent_mergeable(leaf, path->slots[0] - 1, inode->i_ino, | 708 | if (extent_mergeable(leaf, path->slots[0] - 1, |
654 | bytenr, &other_start, &other_end)) { | 709 | inode->i_ino, bytenr, orig_offset, |
710 | &other_start, &other_end)) { | ||
711 | if (recow) { | ||
712 | btrfs_release_path(root, path); | ||
713 | goto again; | ||
714 | } | ||
655 | key.offset = other_start; | 715 | key.offset = other_start; |
656 | del_slot = path->slots[0]; | 716 | del_slot = path->slots[0]; |
657 | del_nr++; | 717 | del_nr++; |
@@ -660,22 +720,22 @@ again: | |||
660 | inode->i_ino, orig_offset); | 720 | inode->i_ino, orig_offset); |
661 | BUG_ON(ret); | 721 | BUG_ON(ret); |
662 | } | 722 | } |
723 | fi = btrfs_item_ptr(leaf, path->slots[0], | ||
724 | struct btrfs_file_extent_item); | ||
663 | if (del_nr == 0) { | 725 | if (del_nr == 0) { |
664 | btrfs_set_file_extent_type(leaf, fi, | 726 | btrfs_set_file_extent_type(leaf, fi, |
665 | BTRFS_FILE_EXTENT_REG); | 727 | BTRFS_FILE_EXTENT_REG); |
666 | btrfs_mark_buffer_dirty(leaf); | 728 | btrfs_mark_buffer_dirty(leaf); |
667 | goto out; | 729 | } else { |
668 | } | 730 | btrfs_set_file_extent_type(leaf, fi, |
669 | 731 | BTRFS_FILE_EXTENT_REG); | |
670 | fi = btrfs_item_ptr(leaf, del_slot - 1, | 732 | btrfs_set_file_extent_num_bytes(leaf, fi, |
671 | struct btrfs_file_extent_item); | 733 | extent_end - key.offset); |
672 | btrfs_set_file_extent_type(leaf, fi, BTRFS_FILE_EXTENT_REG); | 734 | btrfs_mark_buffer_dirty(leaf); |
673 | btrfs_set_file_extent_num_bytes(leaf, fi, | ||
674 | extent_end - key.offset); | ||
675 | btrfs_mark_buffer_dirty(leaf); | ||
676 | 735 | ||
677 | ret = btrfs_del_items(trans, root, path, del_slot, del_nr); | 736 | ret = btrfs_del_items(trans, root, path, del_slot, del_nr); |
678 | BUG_ON(ret); | 737 | BUG_ON(ret); |
738 | } | ||
679 | out: | 739 | out: |
680 | btrfs_free_path(path); | 740 | btrfs_free_path(path); |
681 | return 0; | 741 | return 0; |
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 5440bab2363..b330e27c2d8 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -3796,6 +3796,12 @@ struct inode *btrfs_lookup_dentry(struct inode *dir, struct dentry *dentry) | |||
3796 | 3796 | ||
3797 | if (location.type == BTRFS_INODE_ITEM_KEY) { | 3797 | if (location.type == BTRFS_INODE_ITEM_KEY) { |
3798 | inode = btrfs_iget(dir->i_sb, &location, root); | 3798 | inode = btrfs_iget(dir->i_sb, &location, root); |
3799 | if (unlikely(root->clean_orphans) && | ||
3800 | !(inode->i_sb->s_flags & MS_RDONLY)) { | ||
3801 | down_read(&root->fs_info->cleanup_work_sem); | ||
3802 | btrfs_orphan_cleanup(root); | ||
3803 | up_read(&root->fs_info->cleanup_work_sem); | ||
3804 | } | ||
3799 | return inode; | 3805 | return inode; |
3800 | } | 3806 | } |
3801 | 3807 | ||
@@ -3995,7 +4001,11 @@ skip: | |||
3995 | 4001 | ||
3996 | /* Reached end of directory/root. Bump pos past the last item. */ | 4002 | /* Reached end of directory/root. Bump pos past the last item. */ |
3997 | if (key_type == BTRFS_DIR_INDEX_KEY) | 4003 | if (key_type == BTRFS_DIR_INDEX_KEY) |
3998 | filp->f_pos = INT_LIMIT(off_t); | 4004 | /* |
4005 | * 32-bit glibc will use getdents64, but then strtol - | ||
4006 | * so the last number we can serve is this. | ||
4007 | */ | ||
4008 | filp->f_pos = 0x7fffffff; | ||
3999 | else | 4009 | else |
4000 | filp->f_pos++; | 4010 | filp->f_pos++; |
4001 | nopos: | 4011 | nopos: |
diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c index b10a49d4bc6..5c2a9e78a94 100644 --- a/fs/btrfs/ordered-data.c +++ b/fs/btrfs/ordered-data.c | |||
@@ -626,6 +626,8 @@ int btrfs_ordered_update_i_size(struct inode *inode, u64 offset, | |||
626 | 626 | ||
627 | if (ordered) | 627 | if (ordered) |
628 | offset = entry_end(ordered); | 628 | offset = entry_end(ordered); |
629 | else | ||
630 | offset = ALIGN(offset, BTRFS_I(inode)->root->sectorsize); | ||
629 | 631 | ||
630 | mutex_lock(&tree->mutex); | 632 | mutex_lock(&tree->mutex); |
631 | disk_i_size = BTRFS_I(inode)->disk_i_size; | 633 | disk_i_size = BTRFS_I(inode)->disk_i_size; |
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index a9728680eca..ed3e4a2ec2c 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c | |||
@@ -3281,8 +3281,10 @@ static noinline_for_stack int relocate_block_group(struct reloc_control *rc) | |||
3281 | return -ENOMEM; | 3281 | return -ENOMEM; |
3282 | 3282 | ||
3283 | path = btrfs_alloc_path(); | 3283 | path = btrfs_alloc_path(); |
3284 | if (!path) | 3284 | if (!path) { |
3285 | kfree(cluster); | ||
3285 | return -ENOMEM; | 3286 | return -ENOMEM; |
3287 | } | ||
3286 | 3288 | ||
3287 | rc->extents_found = 0; | 3289 | rc->extents_found = 0; |
3288 | rc->extents_skipped = 0; | 3290 | rc->extents_skipped = 0; |
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 198cff28766..220dad5db01 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c | |||
@@ -2649,8 +2649,10 @@ again: | |||
2649 | em = lookup_extent_mapping(em_tree, logical, *length); | 2649 | em = lookup_extent_mapping(em_tree, logical, *length); |
2650 | read_unlock(&em_tree->lock); | 2650 | read_unlock(&em_tree->lock); |
2651 | 2651 | ||
2652 | if (!em && unplug_page) | 2652 | if (!em && unplug_page) { |
2653 | kfree(multi); | ||
2653 | return 0; | 2654 | return 0; |
2655 | } | ||
2654 | 2656 | ||
2655 | if (!em) { | 2657 | if (!em) { |
2656 | printk(KERN_CRIT "unable to find logical %llu len %llu\n", | 2658 | printk(KERN_CRIT "unable to find logical %llu len %llu\n", |
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES index 094ea65afc8..7b2600b380d 100644 --- a/fs/cifs/CHANGES +++ b/fs/cifs/CHANGES | |||
@@ -5,7 +5,9 @@ have duplicated data). Fix oops in cifs_lookup. Workaround problem | |||
5 | mounting to OS/400 Netserve. Fix oops in cifs_get_tcp_session. | 5 | mounting to OS/400 Netserve. Fix oops in cifs_get_tcp_session. |
6 | Disable use of server inode numbers when server only | 6 | Disable use of server inode numbers when server only |
7 | partially supports them (e.g. for one server querying inode numbers on | 7 | partially supports them (e.g. for one server querying inode numbers on |
8 | FindFirst fails but QPathInfo queries works). | 8 | FindFirst fails but QPathInfo queries works). Fix oops with dfs in |
9 | cifs_put_smb_ses. Fix mmap to work on directio mounts (needed | ||
10 | for OpenOffice when on forcedirectio mount e.g.) | ||
9 | 11 | ||
10 | Version 1.60 | 12 | Version 1.60 |
11 | ------------- | 13 | ------------- |
diff --git a/fs/cifs/cifs_dfs_ref.c b/fs/cifs/cifs_dfs_ref.c index fea9e898c4b..b44ce0a0711 100644 --- a/fs/cifs/cifs_dfs_ref.c +++ b/fs/cifs/cifs_dfs_ref.c | |||
@@ -269,7 +269,7 @@ static int add_mount_helper(struct vfsmount *newmnt, struct nameidata *nd, | |||
269 | int err; | 269 | int err; |
270 | 270 | ||
271 | mntget(newmnt); | 271 | mntget(newmnt); |
272 | err = do_add_mount(newmnt, &nd->path, nd->path.mnt->mnt_flags, mntlist); | 272 | err = do_add_mount(newmnt, &nd->path, nd->path.mnt->mnt_flags | MNT_SHRINKABLE, mntlist); |
273 | switch (err) { | 273 | switch (err) { |
274 | case 0: | 274 | case 0: |
275 | path_put(&nd->path); | 275 | path_put(&nd->path); |
@@ -371,7 +371,6 @@ cifs_dfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd) | |||
371 | if (IS_ERR(mnt)) | 371 | if (IS_ERR(mnt)) |
372 | goto out_err; | 372 | goto out_err; |
373 | 373 | ||
374 | nd->path.mnt->mnt_flags |= MNT_SHRINKABLE; | ||
375 | rc = add_mount_helper(mnt, nd, &cifs_dfs_automount_list); | 374 | rc = add_mount_helper(mnt, nd, &cifs_dfs_automount_list); |
376 | 375 | ||
377 | out: | 376 | out: |
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index 29f1da761bb..8c6a0362717 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
@@ -758,7 +758,7 @@ const struct file_operations cifs_file_ops = { | |||
758 | }; | 758 | }; |
759 | 759 | ||
760 | const struct file_operations cifs_file_direct_ops = { | 760 | const struct file_operations cifs_file_direct_ops = { |
761 | /* no mmap, no aio, no readv - | 761 | /* no aio, no readv - |
762 | BB reevaluate whether they can be done with directio, no cache */ | 762 | BB reevaluate whether they can be done with directio, no cache */ |
763 | .read = cifs_user_read, | 763 | .read = cifs_user_read, |
764 | .write = cifs_user_write, | 764 | .write = cifs_user_write, |
@@ -767,6 +767,7 @@ const struct file_operations cifs_file_direct_ops = { | |||
767 | .lock = cifs_lock, | 767 | .lock = cifs_lock, |
768 | .fsync = cifs_fsync, | 768 | .fsync = cifs_fsync, |
769 | .flush = cifs_flush, | 769 | .flush = cifs_flush, |
770 | .mmap = cifs_file_mmap, | ||
770 | .splice_read = generic_file_splice_read, | 771 | .splice_read = generic_file_splice_read, |
771 | #ifdef CONFIG_CIFS_POSIX | 772 | #ifdef CONFIG_CIFS_POSIX |
772 | .unlocked_ioctl = cifs_ioctl, | 773 | .unlocked_ioctl = cifs_ioctl, |
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 63ea83ff687..3bbcaa716b3 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -2287,12 +2287,12 @@ int | |||
2287 | cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | 2287 | cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, |
2288 | char *mount_data_global, const char *devname) | 2288 | char *mount_data_global, const char *devname) |
2289 | { | 2289 | { |
2290 | int rc = 0; | 2290 | int rc; |
2291 | int xid; | 2291 | int xid; |
2292 | struct smb_vol *volume_info; | 2292 | struct smb_vol *volume_info; |
2293 | struct cifsSesInfo *pSesInfo = NULL; | 2293 | struct cifsSesInfo *pSesInfo; |
2294 | struct cifsTconInfo *tcon = NULL; | 2294 | struct cifsTconInfo *tcon; |
2295 | struct TCP_Server_Info *srvTcp = NULL; | 2295 | struct TCP_Server_Info *srvTcp; |
2296 | char *full_path; | 2296 | char *full_path; |
2297 | char *mount_data = mount_data_global; | 2297 | char *mount_data = mount_data_global; |
2298 | #ifdef CONFIG_CIFS_DFS_UPCALL | 2298 | #ifdef CONFIG_CIFS_DFS_UPCALL |
@@ -2301,6 +2301,10 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | |||
2301 | int referral_walks_count = 0; | 2301 | int referral_walks_count = 0; |
2302 | try_mount_again: | 2302 | try_mount_again: |
2303 | #endif | 2303 | #endif |
2304 | rc = 0; | ||
2305 | tcon = NULL; | ||
2306 | pSesInfo = NULL; | ||
2307 | srvTcp = NULL; | ||
2304 | full_path = NULL; | 2308 | full_path = NULL; |
2305 | 2309 | ||
2306 | xid = GetXid(); | 2310 | xid = GetXid(); |
@@ -2597,6 +2601,7 @@ remote_path_check: | |||
2597 | 2601 | ||
2598 | cleanup_volume_info(&volume_info); | 2602 | cleanup_volume_info(&volume_info); |
2599 | referral_walks_count++; | 2603 | referral_walks_count++; |
2604 | FreeXid(xid); | ||
2600 | goto try_mount_again; | 2605 | goto try_mount_again; |
2601 | } | 2606 | } |
2602 | #else /* No DFS support, return error on mount */ | 2607 | #else /* No DFS support, return error on mount */ |
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 332dd00f089..c5c45de1a2e 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c | |||
@@ -1005,6 +1005,9 @@ COMPATIBLE_IOCTL(SCSI_IOCTL_SEND_COMMAND) | |||
1005 | COMPATIBLE_IOCTL(SCSI_IOCTL_PROBE_HOST) | 1005 | COMPATIBLE_IOCTL(SCSI_IOCTL_PROBE_HOST) |
1006 | COMPATIBLE_IOCTL(SCSI_IOCTL_GET_PCI) | 1006 | COMPATIBLE_IOCTL(SCSI_IOCTL_GET_PCI) |
1007 | #endif | 1007 | #endif |
1008 | /* Big V (don't complain on serial console) */ | ||
1009 | IGNORE_IOCTL(VT_OPENQRY) | ||
1010 | IGNORE_IOCTL(VT_GETMODE) | ||
1008 | /* Little p (/dev/rtc, /dev/envctrl, etc.) */ | 1011 | /* Little p (/dev/rtc, /dev/envctrl, etc.) */ |
1009 | COMPATIBLE_IOCTL(RTC_AIE_ON) | 1012 | COMPATIBLE_IOCTL(RTC_AIE_ON) |
1010 | COMPATIBLE_IOCTL(RTC_AIE_OFF) | 1013 | COMPATIBLE_IOCTL(RTC_AIE_OFF) |
diff --git a/fs/configfs/symlink.c b/fs/configfs/symlink.c index c8afa6b1d91..32a5f46b115 100644 --- a/fs/configfs/symlink.c +++ b/fs/configfs/symlink.c | |||
@@ -121,8 +121,10 @@ static int get_target(const char *symname, struct path *path, | |||
121 | ret = -ENOENT; | 121 | ret = -ENOENT; |
122 | path_put(path); | 122 | path_put(path); |
123 | } | 123 | } |
124 | } else | 124 | } else { |
125 | ret = -EPERM; | 125 | ret = -EPERM; |
126 | path_put(path); | ||
127 | } | ||
126 | } | 128 | } |
127 | 129 | ||
128 | return ret; | 130 | return ret; |
diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c index fbb6e5eed69..7cb0a59f4b9 100644 --- a/fs/ecryptfs/crypto.c +++ b/fs/ecryptfs/crypto.c | |||
@@ -1748,7 +1748,7 @@ ecryptfs_process_key_cipher(struct crypto_blkcipher **key_tfm, | |||
1748 | char *cipher_name, size_t *key_size) | 1748 | char *cipher_name, size_t *key_size) |
1749 | { | 1749 | { |
1750 | char dummy_key[ECRYPTFS_MAX_KEY_BYTES]; | 1750 | char dummy_key[ECRYPTFS_MAX_KEY_BYTES]; |
1751 | char *full_alg_name; | 1751 | char *full_alg_name = NULL; |
1752 | int rc; | 1752 | int rc; |
1753 | 1753 | ||
1754 | *key_tfm = NULL; | 1754 | *key_tfm = NULL; |
@@ -1763,7 +1763,6 @@ ecryptfs_process_key_cipher(struct crypto_blkcipher **key_tfm, | |||
1763 | if (rc) | 1763 | if (rc) |
1764 | goto out; | 1764 | goto out; |
1765 | *key_tfm = crypto_alloc_blkcipher(full_alg_name, 0, CRYPTO_ALG_ASYNC); | 1765 | *key_tfm = crypto_alloc_blkcipher(full_alg_name, 0, CRYPTO_ALG_ASYNC); |
1766 | kfree(full_alg_name); | ||
1767 | if (IS_ERR(*key_tfm)) { | 1766 | if (IS_ERR(*key_tfm)) { |
1768 | rc = PTR_ERR(*key_tfm); | 1767 | rc = PTR_ERR(*key_tfm); |
1769 | printk(KERN_ERR "Unable to allocate crypto cipher with name " | 1768 | printk(KERN_ERR "Unable to allocate crypto cipher with name " |
@@ -1786,6 +1785,7 @@ ecryptfs_process_key_cipher(struct crypto_blkcipher **key_tfm, | |||
1786 | goto out; | 1785 | goto out; |
1787 | } | 1786 | } |
1788 | out: | 1787 | out: |
1788 | kfree(full_alg_name); | ||
1789 | return rc; | 1789 | return rc; |
1790 | } | 1790 | } |
1791 | 1791 | ||
diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c index 9e944057001..678172b61be 100644 --- a/fs/ecryptfs/file.c +++ b/fs/ecryptfs/file.c | |||
@@ -158,7 +158,7 @@ static int ecryptfs_open(struct inode *inode, struct file *file) | |||
158 | struct dentry *ecryptfs_dentry = file->f_path.dentry; | 158 | struct dentry *ecryptfs_dentry = file->f_path.dentry; |
159 | /* Private value of ecryptfs_dentry allocated in | 159 | /* Private value of ecryptfs_dentry allocated in |
160 | * ecryptfs_lookup() */ | 160 | * ecryptfs_lookup() */ |
161 | struct dentry *lower_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry); | 161 | struct dentry *lower_dentry; |
162 | struct ecryptfs_file_info *file_info; | 162 | struct ecryptfs_file_info *file_info; |
163 | 163 | ||
164 | mount_crypt_stat = &ecryptfs_superblock_to_private( | 164 | mount_crypt_stat = &ecryptfs_superblock_to_private( |
@@ -191,13 +191,6 @@ static int ecryptfs_open(struct inode *inode, struct file *file) | |||
191 | | ECRYPTFS_ENCRYPTED); | 191 | | ECRYPTFS_ENCRYPTED); |
192 | } | 192 | } |
193 | mutex_unlock(&crypt_stat->cs_mutex); | 193 | mutex_unlock(&crypt_stat->cs_mutex); |
194 | if ((ecryptfs_inode_to_private(inode)->lower_file->f_flags & O_RDONLY) | ||
195 | && !(file->f_flags & O_RDONLY)) { | ||
196 | rc = -EPERM; | ||
197 | printk(KERN_WARNING "%s: Lower persistent file is RO; eCryptfs " | ||
198 | "file must hence be opened RO\n", __func__); | ||
199 | goto out; | ||
200 | } | ||
201 | if (!ecryptfs_inode_to_private(inode)->lower_file) { | 194 | if (!ecryptfs_inode_to_private(inode)->lower_file) { |
202 | rc = ecryptfs_init_persistent_file(ecryptfs_dentry); | 195 | rc = ecryptfs_init_persistent_file(ecryptfs_dentry); |
203 | if (rc) { | 196 | if (rc) { |
@@ -208,6 +201,13 @@ static int ecryptfs_open(struct inode *inode, struct file *file) | |||
208 | goto out; | 201 | goto out; |
209 | } | 202 | } |
210 | } | 203 | } |
204 | if ((ecryptfs_inode_to_private(inode)->lower_file->f_flags & O_RDONLY) | ||
205 | && !(file->f_flags & O_RDONLY)) { | ||
206 | rc = -EPERM; | ||
207 | printk(KERN_WARNING "%s: Lower persistent file is RO; eCryptfs " | ||
208 | "file must hence be opened RO\n", __func__); | ||
209 | goto out; | ||
210 | } | ||
211 | ecryptfs_set_file_lower( | 211 | ecryptfs_set_file_lower( |
212 | file, ecryptfs_inode_to_private(inode)->lower_file); | 212 | file, ecryptfs_inode_to_private(inode)->lower_file); |
213 | if (S_ISDIR(ecryptfs_dentry->d_inode->i_mode)) { | 213 | if (S_ISDIR(ecryptfs_dentry->d_inode->i_mode)) { |
@@ -299,7 +299,6 @@ static int ecryptfs_ioctl(struct inode *inode, struct file *file, | |||
299 | const struct file_operations ecryptfs_dir_fops = { | 299 | const struct file_operations ecryptfs_dir_fops = { |
300 | .readdir = ecryptfs_readdir, | 300 | .readdir = ecryptfs_readdir, |
301 | .ioctl = ecryptfs_ioctl, | 301 | .ioctl = ecryptfs_ioctl, |
302 | .mmap = generic_file_mmap, | ||
303 | .open = ecryptfs_open, | 302 | .open = ecryptfs_open, |
304 | .flush = ecryptfs_flush, | 303 | .flush = ecryptfs_flush, |
305 | .release = ecryptfs_release, | 304 | .release = ecryptfs_release, |
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c index 429ca0b3ba0..4a430ab4115 100644 --- a/fs/ecryptfs/inode.c +++ b/fs/ecryptfs/inode.c | |||
@@ -282,7 +282,8 @@ int ecryptfs_lookup_and_interpose_lower(struct dentry *ecryptfs_dentry, | |||
282 | goto out; | 282 | goto out; |
283 | } | 283 | } |
284 | rc = ecryptfs_interpose(lower_dentry, ecryptfs_dentry, | 284 | rc = ecryptfs_interpose(lower_dentry, ecryptfs_dentry, |
285 | ecryptfs_dir_inode->i_sb, 1); | 285 | ecryptfs_dir_inode->i_sb, |
286 | ECRYPTFS_INTERPOSE_FLAG_D_ADD); | ||
286 | if (rc) { | 287 | if (rc) { |
287 | printk(KERN_ERR "%s: Error interposing; rc = [%d]\n", | 288 | printk(KERN_ERR "%s: Error interposing; rc = [%d]\n", |
288 | __func__, rc); | 289 | __func__, rc); |
@@ -463,9 +464,6 @@ out_lock: | |||
463 | unlock_dir(lower_dir_dentry); | 464 | unlock_dir(lower_dir_dentry); |
464 | dput(lower_new_dentry); | 465 | dput(lower_new_dentry); |
465 | dput(lower_old_dentry); | 466 | dput(lower_old_dentry); |
466 | d_drop(lower_old_dentry); | ||
467 | d_drop(new_dentry); | ||
468 | d_drop(old_dentry); | ||
469 | return rc; | 467 | return rc; |
470 | } | 468 | } |
471 | 469 | ||
@@ -614,6 +612,7 @@ ecryptfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
614 | struct dentry *lower_new_dentry; | 612 | struct dentry *lower_new_dentry; |
615 | struct dentry *lower_old_dir_dentry; | 613 | struct dentry *lower_old_dir_dentry; |
616 | struct dentry *lower_new_dir_dentry; | 614 | struct dentry *lower_new_dir_dentry; |
615 | struct dentry *trap = NULL; | ||
617 | 616 | ||
618 | lower_old_dentry = ecryptfs_dentry_to_lower(old_dentry); | 617 | lower_old_dentry = ecryptfs_dentry_to_lower(old_dentry); |
619 | lower_new_dentry = ecryptfs_dentry_to_lower(new_dentry); | 618 | lower_new_dentry = ecryptfs_dentry_to_lower(new_dentry); |
@@ -621,7 +620,17 @@ ecryptfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
621 | dget(lower_new_dentry); | 620 | dget(lower_new_dentry); |
622 | lower_old_dir_dentry = dget_parent(lower_old_dentry); | 621 | lower_old_dir_dentry = dget_parent(lower_old_dentry); |
623 | lower_new_dir_dentry = dget_parent(lower_new_dentry); | 622 | lower_new_dir_dentry = dget_parent(lower_new_dentry); |
624 | lock_rename(lower_old_dir_dentry, lower_new_dir_dentry); | 623 | trap = lock_rename(lower_old_dir_dentry, lower_new_dir_dentry); |
624 | /* source should not be ancestor of target */ | ||
625 | if (trap == lower_old_dentry) { | ||
626 | rc = -EINVAL; | ||
627 | goto out_lock; | ||
628 | } | ||
629 | /* target should not be ancestor of source */ | ||
630 | if (trap == lower_new_dentry) { | ||
631 | rc = -ENOTEMPTY; | ||
632 | goto out_lock; | ||
633 | } | ||
625 | rc = vfs_rename(lower_old_dir_dentry->d_inode, lower_old_dentry, | 634 | rc = vfs_rename(lower_old_dir_dentry->d_inode, lower_old_dentry, |
626 | lower_new_dir_dentry->d_inode, lower_new_dentry); | 635 | lower_new_dir_dentry->d_inode, lower_new_dentry); |
627 | if (rc) | 636 | if (rc) |
@@ -715,31 +724,31 @@ static void *ecryptfs_follow_link(struct dentry *dentry, struct nameidata *nd) | |||
715 | /* Released in ecryptfs_put_link(); only release here on error */ | 724 | /* Released in ecryptfs_put_link(); only release here on error */ |
716 | buf = kmalloc(len, GFP_KERNEL); | 725 | buf = kmalloc(len, GFP_KERNEL); |
717 | if (!buf) { | 726 | if (!buf) { |
718 | rc = -ENOMEM; | 727 | buf = ERR_PTR(-ENOMEM); |
719 | goto out; | 728 | goto out; |
720 | } | 729 | } |
721 | old_fs = get_fs(); | 730 | old_fs = get_fs(); |
722 | set_fs(get_ds()); | 731 | set_fs(get_ds()); |
723 | rc = dentry->d_inode->i_op->readlink(dentry, (char __user *)buf, len); | 732 | rc = dentry->d_inode->i_op->readlink(dentry, (char __user *)buf, len); |
724 | set_fs(old_fs); | 733 | set_fs(old_fs); |
725 | if (rc < 0) | 734 | if (rc < 0) { |
726 | goto out_free; | 735 | kfree(buf); |
727 | else | 736 | buf = ERR_PTR(rc); |
737 | } else | ||
728 | buf[rc] = '\0'; | 738 | buf[rc] = '\0'; |
729 | rc = 0; | ||
730 | nd_set_link(nd, buf); | ||
731 | goto out; | ||
732 | out_free: | ||
733 | kfree(buf); | ||
734 | out: | 739 | out: |
735 | return ERR_PTR(rc); | 740 | nd_set_link(nd, buf); |
741 | return NULL; | ||
736 | } | 742 | } |
737 | 743 | ||
738 | static void | 744 | static void |
739 | ecryptfs_put_link(struct dentry *dentry, struct nameidata *nd, void *ptr) | 745 | ecryptfs_put_link(struct dentry *dentry, struct nameidata *nd, void *ptr) |
740 | { | 746 | { |
741 | /* Free the char* */ | 747 | char *buf = nd_get_link(nd); |
742 | kfree(nd_get_link(nd)); | 748 | if (!IS_ERR(buf)) { |
749 | /* Free the char* */ | ||
750 | kfree(buf); | ||
751 | } | ||
743 | } | 752 | } |
744 | 753 | ||
745 | /** | 754 | /** |
@@ -772,18 +781,23 @@ upper_size_to_lower_size(struct ecryptfs_crypt_stat *crypt_stat, | |||
772 | } | 781 | } |
773 | 782 | ||
774 | /** | 783 | /** |
775 | * ecryptfs_truncate | 784 | * truncate_upper |
776 | * @dentry: The ecryptfs layer dentry | 785 | * @dentry: The ecryptfs layer dentry |
777 | * @new_length: The length to expand the file to | 786 | * @ia: Address of the ecryptfs inode's attributes |
787 | * @lower_ia: Address of the lower inode's attributes | ||
778 | * | 788 | * |
779 | * Function to handle truncations modifying the size of the file. Note | 789 | * Function to handle truncations modifying the size of the file. Note |
780 | * that the file sizes are interpolated. When expanding, we are simply | 790 | * that the file sizes are interpolated. When expanding, we are simply |
781 | * writing strings of 0's out. When truncating, we need to modify the | 791 | * writing strings of 0's out. When truncating, we truncate the upper |
782 | * underlying file size according to the page index interpolations. | 792 | * inode and update the lower_ia according to the page index |
793 | * interpolations. If ATTR_SIZE is set in lower_ia->ia_valid upon return, | ||
794 | * the caller must use lower_ia in a call to notify_change() to perform | ||
795 | * the truncation of the lower inode. | ||
783 | * | 796 | * |
784 | * Returns zero on success; non-zero otherwise | 797 | * Returns zero on success; non-zero otherwise |
785 | */ | 798 | */ |
786 | int ecryptfs_truncate(struct dentry *dentry, loff_t new_length) | 799 | static int truncate_upper(struct dentry *dentry, struct iattr *ia, |
800 | struct iattr *lower_ia) | ||
787 | { | 801 | { |
788 | int rc = 0; | 802 | int rc = 0; |
789 | struct inode *inode = dentry->d_inode; | 803 | struct inode *inode = dentry->d_inode; |
@@ -794,8 +808,10 @@ int ecryptfs_truncate(struct dentry *dentry, loff_t new_length) | |||
794 | loff_t lower_size_before_truncate; | 808 | loff_t lower_size_before_truncate; |
795 | loff_t lower_size_after_truncate; | 809 | loff_t lower_size_after_truncate; |
796 | 810 | ||
797 | if (unlikely((new_length == i_size))) | 811 | if (unlikely((ia->ia_size == i_size))) { |
812 | lower_ia->ia_valid &= ~ATTR_SIZE; | ||
798 | goto out; | 813 | goto out; |
814 | } | ||
799 | crypt_stat = &ecryptfs_inode_to_private(dentry->d_inode)->crypt_stat; | 815 | crypt_stat = &ecryptfs_inode_to_private(dentry->d_inode)->crypt_stat; |
800 | /* Set up a fake ecryptfs file, this is used to interface with | 816 | /* Set up a fake ecryptfs file, this is used to interface with |
801 | * the file in the underlying filesystem so that the | 817 | * the file in the underlying filesystem so that the |
@@ -815,28 +831,30 @@ int ecryptfs_truncate(struct dentry *dentry, loff_t new_length) | |||
815 | &fake_ecryptfs_file, | 831 | &fake_ecryptfs_file, |
816 | ecryptfs_inode_to_private(dentry->d_inode)->lower_file); | 832 | ecryptfs_inode_to_private(dentry->d_inode)->lower_file); |
817 | /* Switch on growing or shrinking file */ | 833 | /* Switch on growing or shrinking file */ |
818 | if (new_length > i_size) { | 834 | if (ia->ia_size > i_size) { |
819 | char zero[] = { 0x00 }; | 835 | char zero[] = { 0x00 }; |
820 | 836 | ||
837 | lower_ia->ia_valid &= ~ATTR_SIZE; | ||
821 | /* Write a single 0 at the last position of the file; | 838 | /* Write a single 0 at the last position of the file; |
822 | * this triggers code that will fill in 0's throughout | 839 | * this triggers code that will fill in 0's throughout |
823 | * the intermediate portion of the previous end of the | 840 | * the intermediate portion of the previous end of the |
824 | * file and the new and of the file */ | 841 | * file and the new and of the file */ |
825 | rc = ecryptfs_write(&fake_ecryptfs_file, zero, | 842 | rc = ecryptfs_write(&fake_ecryptfs_file, zero, |
826 | (new_length - 1), 1); | 843 | (ia->ia_size - 1), 1); |
827 | } else { /* new_length < i_size_read(inode) */ | 844 | } else { /* ia->ia_size < i_size_read(inode) */ |
828 | /* We're chopping off all the pages down do the page | 845 | /* We're chopping off all the pages down to the page |
829 | * in which new_length is located. Fill in the end of | 846 | * in which ia->ia_size is located. Fill in the end of |
830 | * that page from (new_length & ~PAGE_CACHE_MASK) to | 847 | * that page from (ia->ia_size & ~PAGE_CACHE_MASK) to |
831 | * PAGE_CACHE_SIZE with zeros. */ | 848 | * PAGE_CACHE_SIZE with zeros. */ |
832 | size_t num_zeros = (PAGE_CACHE_SIZE | 849 | size_t num_zeros = (PAGE_CACHE_SIZE |
833 | - (new_length & ~PAGE_CACHE_MASK)); | 850 | - (ia->ia_size & ~PAGE_CACHE_MASK)); |
834 | 851 | ||
835 | if (!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)) { | 852 | if (!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)) { |
836 | rc = vmtruncate(inode, new_length); | 853 | rc = vmtruncate(inode, ia->ia_size); |
837 | if (rc) | 854 | if (rc) |
838 | goto out_free; | 855 | goto out_free; |
839 | rc = vmtruncate(lower_dentry->d_inode, new_length); | 856 | lower_ia->ia_size = ia->ia_size; |
857 | lower_ia->ia_valid |= ATTR_SIZE; | ||
840 | goto out_free; | 858 | goto out_free; |
841 | } | 859 | } |
842 | if (num_zeros) { | 860 | if (num_zeros) { |
@@ -848,7 +866,7 @@ int ecryptfs_truncate(struct dentry *dentry, loff_t new_length) | |||
848 | goto out_free; | 866 | goto out_free; |
849 | } | 867 | } |
850 | rc = ecryptfs_write(&fake_ecryptfs_file, zeros_virt, | 868 | rc = ecryptfs_write(&fake_ecryptfs_file, zeros_virt, |
851 | new_length, num_zeros); | 869 | ia->ia_size, num_zeros); |
852 | kfree(zeros_virt); | 870 | kfree(zeros_virt); |
853 | if (rc) { | 871 | if (rc) { |
854 | printk(KERN_ERR "Error attempting to zero out " | 872 | printk(KERN_ERR "Error attempting to zero out " |
@@ -857,7 +875,7 @@ int ecryptfs_truncate(struct dentry *dentry, loff_t new_length) | |||
857 | goto out_free; | 875 | goto out_free; |
858 | } | 876 | } |
859 | } | 877 | } |
860 | vmtruncate(inode, new_length); | 878 | vmtruncate(inode, ia->ia_size); |
861 | rc = ecryptfs_write_inode_size_to_metadata(inode); | 879 | rc = ecryptfs_write_inode_size_to_metadata(inode); |
862 | if (rc) { | 880 | if (rc) { |
863 | printk(KERN_ERR "Problem with " | 881 | printk(KERN_ERR "Problem with " |
@@ -870,10 +888,12 @@ int ecryptfs_truncate(struct dentry *dentry, loff_t new_length) | |||
870 | lower_size_before_truncate = | 888 | lower_size_before_truncate = |
871 | upper_size_to_lower_size(crypt_stat, i_size); | 889 | upper_size_to_lower_size(crypt_stat, i_size); |
872 | lower_size_after_truncate = | 890 | lower_size_after_truncate = |
873 | upper_size_to_lower_size(crypt_stat, new_length); | 891 | upper_size_to_lower_size(crypt_stat, ia->ia_size); |
874 | if (lower_size_after_truncate < lower_size_before_truncate) | 892 | if (lower_size_after_truncate < lower_size_before_truncate) { |
875 | vmtruncate(lower_dentry->d_inode, | 893 | lower_ia->ia_size = lower_size_after_truncate; |
876 | lower_size_after_truncate); | 894 | lower_ia->ia_valid |= ATTR_SIZE; |
895 | } else | ||
896 | lower_ia->ia_valid &= ~ATTR_SIZE; | ||
877 | } | 897 | } |
878 | out_free: | 898 | out_free: |
879 | if (ecryptfs_file_to_private(&fake_ecryptfs_file)) | 899 | if (ecryptfs_file_to_private(&fake_ecryptfs_file)) |
@@ -883,6 +903,33 @@ out: | |||
883 | return rc; | 903 | return rc; |
884 | } | 904 | } |
885 | 905 | ||
906 | /** | ||
907 | * ecryptfs_truncate | ||
908 | * @dentry: The ecryptfs layer dentry | ||
909 | * @new_length: The length to expand the file to | ||
910 | * | ||
911 | * Simple function that handles the truncation of an eCryptfs inode and | ||
912 | * its corresponding lower inode. | ||
913 | * | ||
914 | * Returns zero on success; non-zero otherwise | ||
915 | */ | ||
916 | int ecryptfs_truncate(struct dentry *dentry, loff_t new_length) | ||
917 | { | ||
918 | struct iattr ia = { .ia_valid = ATTR_SIZE, .ia_size = new_length }; | ||
919 | struct iattr lower_ia = { .ia_valid = 0 }; | ||
920 | int rc; | ||
921 | |||
922 | rc = truncate_upper(dentry, &ia, &lower_ia); | ||
923 | if (!rc && lower_ia.ia_valid & ATTR_SIZE) { | ||
924 | struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry); | ||
925 | |||
926 | mutex_lock(&lower_dentry->d_inode->i_mutex); | ||
927 | rc = notify_change(lower_dentry, &lower_ia); | ||
928 | mutex_unlock(&lower_dentry->d_inode->i_mutex); | ||
929 | } | ||
930 | return rc; | ||
931 | } | ||
932 | |||
886 | static int | 933 | static int |
887 | ecryptfs_permission(struct inode *inode, int mask) | 934 | ecryptfs_permission(struct inode *inode, int mask) |
888 | { | 935 | { |
@@ -905,6 +952,7 @@ static int ecryptfs_setattr(struct dentry *dentry, struct iattr *ia) | |||
905 | { | 952 | { |
906 | int rc = 0; | 953 | int rc = 0; |
907 | struct dentry *lower_dentry; | 954 | struct dentry *lower_dentry; |
955 | struct iattr lower_ia; | ||
908 | struct inode *inode; | 956 | struct inode *inode; |
909 | struct inode *lower_inode; | 957 | struct inode *lower_inode; |
910 | struct ecryptfs_crypt_stat *crypt_stat; | 958 | struct ecryptfs_crypt_stat *crypt_stat; |
@@ -943,15 +991,11 @@ static int ecryptfs_setattr(struct dentry *dentry, struct iattr *ia) | |||
943 | } | 991 | } |
944 | } | 992 | } |
945 | mutex_unlock(&crypt_stat->cs_mutex); | 993 | mutex_unlock(&crypt_stat->cs_mutex); |
994 | memcpy(&lower_ia, ia, sizeof(lower_ia)); | ||
995 | if (ia->ia_valid & ATTR_FILE) | ||
996 | lower_ia.ia_file = ecryptfs_file_to_lower(ia->ia_file); | ||
946 | if (ia->ia_valid & ATTR_SIZE) { | 997 | if (ia->ia_valid & ATTR_SIZE) { |
947 | ecryptfs_printk(KERN_DEBUG, | 998 | rc = truncate_upper(dentry, ia, &lower_ia); |
948 | "ia->ia_valid = [0x%x] ATTR_SIZE" " = [0x%x]\n", | ||
949 | ia->ia_valid, ATTR_SIZE); | ||
950 | rc = ecryptfs_truncate(dentry, ia->ia_size); | ||
951 | /* ecryptfs_truncate handles resizing of the lower file */ | ||
952 | ia->ia_valid &= ~ATTR_SIZE; | ||
953 | ecryptfs_printk(KERN_DEBUG, "ia->ia_valid = [%x]\n", | ||
954 | ia->ia_valid); | ||
955 | if (rc < 0) | 999 | if (rc < 0) |
956 | goto out; | 1000 | goto out; |
957 | } | 1001 | } |
@@ -960,17 +1004,32 @@ static int ecryptfs_setattr(struct dentry *dentry, struct iattr *ia) | |||
960 | * mode change is for clearing setuid/setgid bits. Allow lower fs | 1004 | * mode change is for clearing setuid/setgid bits. Allow lower fs |
961 | * to interpret this in its own way. | 1005 | * to interpret this in its own way. |
962 | */ | 1006 | */ |
963 | if (ia->ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID)) | 1007 | if (lower_ia.ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID)) |
964 | ia->ia_valid &= ~ATTR_MODE; | 1008 | lower_ia.ia_valid &= ~ATTR_MODE; |
965 | 1009 | ||
966 | mutex_lock(&lower_dentry->d_inode->i_mutex); | 1010 | mutex_lock(&lower_dentry->d_inode->i_mutex); |
967 | rc = notify_change(lower_dentry, ia); | 1011 | rc = notify_change(lower_dentry, &lower_ia); |
968 | mutex_unlock(&lower_dentry->d_inode->i_mutex); | 1012 | mutex_unlock(&lower_dentry->d_inode->i_mutex); |
969 | out: | 1013 | out: |
970 | fsstack_copy_attr_all(inode, lower_inode); | 1014 | fsstack_copy_attr_all(inode, lower_inode); |
971 | return rc; | 1015 | return rc; |
972 | } | 1016 | } |
973 | 1017 | ||
1018 | int ecryptfs_getattr(struct vfsmount *mnt, struct dentry *dentry, | ||
1019 | struct kstat *stat) | ||
1020 | { | ||
1021 | struct kstat lower_stat; | ||
1022 | int rc; | ||
1023 | |||
1024 | rc = vfs_getattr(ecryptfs_dentry_to_lower_mnt(dentry), | ||
1025 | ecryptfs_dentry_to_lower(dentry), &lower_stat); | ||
1026 | if (!rc) { | ||
1027 | generic_fillattr(dentry->d_inode, stat); | ||
1028 | stat->blocks = lower_stat.blocks; | ||
1029 | } | ||
1030 | return rc; | ||
1031 | } | ||
1032 | |||
974 | int | 1033 | int |
975 | ecryptfs_setxattr(struct dentry *dentry, const char *name, const void *value, | 1034 | ecryptfs_setxattr(struct dentry *dentry, const char *name, const void *value, |
976 | size_t size, int flags) | 1035 | size_t size, int flags) |
@@ -1100,6 +1159,7 @@ const struct inode_operations ecryptfs_dir_iops = { | |||
1100 | const struct inode_operations ecryptfs_main_iops = { | 1159 | const struct inode_operations ecryptfs_main_iops = { |
1101 | .permission = ecryptfs_permission, | 1160 | .permission = ecryptfs_permission, |
1102 | .setattr = ecryptfs_setattr, | 1161 | .setattr = ecryptfs_setattr, |
1162 | .getattr = ecryptfs_getattr, | ||
1103 | .setxattr = ecryptfs_setxattr, | 1163 | .setxattr = ecryptfs_setxattr, |
1104 | .getxattr = ecryptfs_getxattr, | 1164 | .getxattr = ecryptfs_getxattr, |
1105 | .listxattr = ecryptfs_listxattr, | 1165 | .listxattr = ecryptfs_listxattr, |
diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c index 567bc4b9f70..ea2f92101df 100644 --- a/fs/ecryptfs/main.c +++ b/fs/ecryptfs/main.c | |||
@@ -585,8 +585,8 @@ out: | |||
585 | * with as much information as it can before needing | 585 | * with as much information as it can before needing |
586 | * the lower filesystem. | 586 | * the lower filesystem. |
587 | * ecryptfs_read_super(): this accesses the lower filesystem and uses | 587 | * ecryptfs_read_super(): this accesses the lower filesystem and uses |
588 | * ecryptfs_interpolate to perform most of the linking | 588 | * ecryptfs_interpose to perform most of the linking |
589 | * ecryptfs_interpolate(): links the lower filesystem into ecryptfs | 589 | * ecryptfs_interpose(): links the lower filesystem into ecryptfs (inode.c) |
590 | */ | 590 | */ |
591 | static int ecryptfs_get_sb(struct file_system_type *fs_type, int flags, | 591 | static int ecryptfs_get_sb(struct file_system_type *fs_type, int flags, |
592 | const char *dev_name, void *raw_data, | 592 | const char *dev_name, void *raw_data, |
diff --git a/fs/exofs/inode.c b/fs/exofs/inode.c index 698a8636d39..2afbcebeda7 100644 --- a/fs/exofs/inode.c +++ b/fs/exofs/inode.c | |||
@@ -738,13 +738,28 @@ static int exofs_write_begin_export(struct file *file, | |||
738 | fsdata); | 738 | fsdata); |
739 | } | 739 | } |
740 | 740 | ||
741 | static int exofs_write_end(struct file *file, struct address_space *mapping, | ||
742 | loff_t pos, unsigned len, unsigned copied, | ||
743 | struct page *page, void *fsdata) | ||
744 | { | ||
745 | struct inode *inode = mapping->host; | ||
746 | /* According to comment in simple_write_end i_mutex is held */ | ||
747 | loff_t i_size = inode->i_size; | ||
748 | int ret; | ||
749 | |||
750 | ret = simple_write_end(file, mapping,pos, len, copied, page, fsdata); | ||
751 | if (i_size != inode->i_size) | ||
752 | mark_inode_dirty(inode); | ||
753 | return ret; | ||
754 | } | ||
755 | |||
741 | const struct address_space_operations exofs_aops = { | 756 | const struct address_space_operations exofs_aops = { |
742 | .readpage = exofs_readpage, | 757 | .readpage = exofs_readpage, |
743 | .readpages = exofs_readpages, | 758 | .readpages = exofs_readpages, |
744 | .writepage = exofs_writepage, | 759 | .writepage = exofs_writepage, |
745 | .writepages = exofs_writepages, | 760 | .writepages = exofs_writepages, |
746 | .write_begin = exofs_write_begin_export, | 761 | .write_begin = exofs_write_begin_export, |
747 | .write_end = simple_write_end, | 762 | .write_end = exofs_write_end, |
748 | }; | 763 | }; |
749 | 764 | ||
750 | /****************************************************************************** | 765 | /****************************************************************************** |
diff --git a/fs/exofs/pnfs.h b/fs/exofs/pnfs.h index 423033addd1..c52e9888b8a 100644 --- a/fs/exofs/pnfs.h +++ b/fs/exofs/pnfs.h | |||
@@ -15,13 +15,7 @@ | |||
15 | #ifndef __EXOFS_PNFS_H__ | 15 | #ifndef __EXOFS_PNFS_H__ |
16 | #define __EXOFS_PNFS_H__ | 16 | #define __EXOFS_PNFS_H__ |
17 | 17 | ||
18 | #if defined(CONFIG_PNFS) | 18 | #if ! defined(__PNFS_OSD_XDR_H__) |
19 | |||
20 | |||
21 | /* FIXME: move this file to: linux/exportfs/pnfs_osd_xdr.h */ | ||
22 | #include "../nfs/objlayout/pnfs_osd_xdr.h" | ||
23 | |||
24 | #else /* defined(CONFIG_PNFS) */ | ||
25 | 19 | ||
26 | enum pnfs_iomode { | 20 | enum pnfs_iomode { |
27 | IOMODE_READ = 1, | 21 | IOMODE_READ = 1, |
@@ -46,6 +40,6 @@ struct pnfs_osd_data_map { | |||
46 | u32 odm_raid_algorithm; | 40 | u32 odm_raid_algorithm; |
47 | }; | 41 | }; |
48 | 42 | ||
49 | #endif /* else defined(CONFIG_PNFS) */ | 43 | #endif /* ! defined(__PNFS_OSD_XDR_H__) */ |
50 | 44 | ||
51 | #endif /* __EXOFS_PNFS_H__ */ | 45 | #endif /* __EXOFS_PNFS_H__ */ |
diff --git a/fs/ext4/Kconfig b/fs/ext4/Kconfig index 9acf7e80813..9ed1bb1f319 100644 --- a/fs/ext4/Kconfig +++ b/fs/ext4/Kconfig | |||
@@ -28,6 +28,7 @@ config EXT4_FS | |||
28 | 28 | ||
29 | config EXT4_USE_FOR_EXT23 | 29 | config EXT4_USE_FOR_EXT23 |
30 | bool "Use ext4 for ext2/ext3 file systems" | 30 | bool "Use ext4 for ext2/ext3 file systems" |
31 | depends on EXT4_FS | ||
31 | depends on EXT3_FS=n || EXT2_FS=n | 32 | depends on EXT3_FS=n || EXT2_FS=n |
32 | default y | 33 | default y |
33 | help | 34 | help |
diff --git a/fs/ext4/block_validity.c b/fs/ext4/block_validity.c index 4df8621ec31..a60ab9aad57 100644 --- a/fs/ext4/block_validity.c +++ b/fs/ext4/block_validity.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/module.h> | 16 | #include <linux/module.h> |
17 | #include <linux/swap.h> | 17 | #include <linux/swap.h> |
18 | #include <linux/pagemap.h> | 18 | #include <linux/pagemap.h> |
19 | #include <linux/version.h> | ||
20 | #include <linux/blkdev.h> | 19 | #include <linux/blkdev.h> |
21 | #include <linux/mutex.h> | 20 | #include <linux/mutex.h> |
22 | #include "ext4.h" | 21 | #include "ext4.h" |
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 56f9271ee8c..af7b62699ea 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h | |||
@@ -699,6 +699,8 @@ struct ext4_inode_info { | |||
699 | unsigned int i_reserved_meta_blocks; | 699 | unsigned int i_reserved_meta_blocks; |
700 | unsigned int i_allocated_meta_blocks; | 700 | unsigned int i_allocated_meta_blocks; |
701 | unsigned short i_delalloc_reserved_flag; | 701 | unsigned short i_delalloc_reserved_flag; |
702 | sector_t i_da_metadata_calc_last_lblock; | ||
703 | int i_da_metadata_calc_len; | ||
702 | 704 | ||
703 | /* on-disk additional length */ | 705 | /* on-disk additional length */ |
704 | __u16 i_extra_isize; | 706 | __u16 i_extra_isize; |
diff --git a/fs/ext4/ext4_extents.h b/fs/ext4/ext4_extents.h index 2ca686454e8..bdb6ce7e2eb 100644 --- a/fs/ext4/ext4_extents.h +++ b/fs/ext4/ext4_extents.h | |||
@@ -225,7 +225,8 @@ static inline void ext4_ext_mark_initialized(struct ext4_extent *ext) | |||
225 | ext->ee_len = cpu_to_le16(ext4_ext_get_actual_len(ext)); | 225 | ext->ee_len = cpu_to_le16(ext4_ext_get_actual_len(ext)); |
226 | } | 226 | } |
227 | 227 | ||
228 | extern int ext4_ext_calc_metadata_amount(struct inode *inode, int blocks); | 228 | extern int ext4_ext_calc_metadata_amount(struct inode *inode, |
229 | sector_t lblocks); | ||
229 | extern ext4_fsblk_t ext_pblock(struct ext4_extent *ex); | 230 | extern ext4_fsblk_t ext_pblock(struct ext4_extent *ex); |
230 | extern ext4_fsblk_t idx_pblock(struct ext4_extent_idx *); | 231 | extern ext4_fsblk_t idx_pblock(struct ext4_extent_idx *); |
231 | extern void ext4_ext_store_pblock(struct ext4_extent *, ext4_fsblk_t); | 232 | extern void ext4_ext_store_pblock(struct ext4_extent *, ext4_fsblk_t); |
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 3a7928f825e..7d7b74e9468 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c | |||
@@ -296,29 +296,44 @@ static inline int ext4_ext_space_root_idx(struct inode *inode, int check) | |||
296 | * to allocate @blocks | 296 | * to allocate @blocks |
297 | * Worse case is one block per extent | 297 | * Worse case is one block per extent |
298 | */ | 298 | */ |
299 | int ext4_ext_calc_metadata_amount(struct inode *inode, int blocks) | 299 | int ext4_ext_calc_metadata_amount(struct inode *inode, sector_t lblock) |
300 | { | 300 | { |
301 | int lcap, icap, rcap, leafs, idxs, num; | 301 | struct ext4_inode_info *ei = EXT4_I(inode); |
302 | int newextents = blocks; | 302 | int idxs, num = 0; |
303 | |||
304 | rcap = ext4_ext_space_root_idx(inode, 0); | ||
305 | lcap = ext4_ext_space_block(inode, 0); | ||
306 | icap = ext4_ext_space_block_idx(inode, 0); | ||
307 | 303 | ||
308 | /* number of new leaf blocks needed */ | 304 | idxs = ((inode->i_sb->s_blocksize - sizeof(struct ext4_extent_header)) |
309 | num = leafs = (newextents + lcap - 1) / lcap; | 305 | / sizeof(struct ext4_extent_idx)); |
310 | 306 | ||
311 | /* | 307 | /* |
312 | * Worse case, we need separate index block(s) | 308 | * If the new delayed allocation block is contiguous with the |
313 | * to link all new leaf blocks | 309 | * previous da block, it can share index blocks with the |
310 | * previous block, so we only need to allocate a new index | ||
311 | * block every idxs leaf blocks. At ldxs**2 blocks, we need | ||
312 | * an additional index block, and at ldxs**3 blocks, yet | ||
313 | * another index blocks. | ||
314 | */ | 314 | */ |
315 | idxs = (leafs + icap - 1) / icap; | 315 | if (ei->i_da_metadata_calc_len && |
316 | do { | 316 | ei->i_da_metadata_calc_last_lblock+1 == lblock) { |
317 | num += idxs; | 317 | if ((ei->i_da_metadata_calc_len % idxs) == 0) |
318 | idxs = (idxs + icap - 1) / icap; | 318 | num++; |
319 | } while (idxs > rcap); | 319 | if ((ei->i_da_metadata_calc_len % (idxs*idxs)) == 0) |
320 | num++; | ||
321 | if ((ei->i_da_metadata_calc_len % (idxs*idxs*idxs)) == 0) { | ||
322 | num++; | ||
323 | ei->i_da_metadata_calc_len = 0; | ||
324 | } else | ||
325 | ei->i_da_metadata_calc_len++; | ||
326 | ei->i_da_metadata_calc_last_lblock++; | ||
327 | return num; | ||
328 | } | ||
320 | 329 | ||
321 | return num; | 330 | /* |
331 | * In the worst case we need a new set of index blocks at | ||
332 | * every level of the inode's extent tree. | ||
333 | */ | ||
334 | ei->i_da_metadata_calc_len = 1; | ||
335 | ei->i_da_metadata_calc_last_lblock = lblock; | ||
336 | return ext_depth(inode) + 1; | ||
322 | } | 337 | } |
323 | 338 | ||
324 | static int | 339 | static int |
@@ -3023,6 +3038,14 @@ out: | |||
3023 | return err; | 3038 | return err; |
3024 | } | 3039 | } |
3025 | 3040 | ||
3041 | static void unmap_underlying_metadata_blocks(struct block_device *bdev, | ||
3042 | sector_t block, int count) | ||
3043 | { | ||
3044 | int i; | ||
3045 | for (i = 0; i < count; i++) | ||
3046 | unmap_underlying_metadata(bdev, block + i); | ||
3047 | } | ||
3048 | |||
3026 | static int | 3049 | static int |
3027 | ext4_ext_handle_uninitialized_extents(handle_t *handle, struct inode *inode, | 3050 | ext4_ext_handle_uninitialized_extents(handle_t *handle, struct inode *inode, |
3028 | ext4_lblk_t iblock, unsigned int max_blocks, | 3051 | ext4_lblk_t iblock, unsigned int max_blocks, |
@@ -3098,6 +3121,18 @@ out: | |||
3098 | } else | 3121 | } else |
3099 | allocated = ret; | 3122 | allocated = ret; |
3100 | set_buffer_new(bh_result); | 3123 | set_buffer_new(bh_result); |
3124 | /* | ||
3125 | * if we allocated more blocks than requested | ||
3126 | * we need to make sure we unmap the extra block | ||
3127 | * allocated. The actual needed block will get | ||
3128 | * unmapped later when we find the buffer_head marked | ||
3129 | * new. | ||
3130 | */ | ||
3131 | if (allocated > max_blocks) { | ||
3132 | unmap_underlying_metadata_blocks(inode->i_sb->s_bdev, | ||
3133 | newblock + max_blocks, | ||
3134 | allocated - max_blocks); | ||
3135 | } | ||
3101 | map_out: | 3136 | map_out: |
3102 | set_buffer_mapped(bh_result); | 3137 | set_buffer_mapped(bh_result); |
3103 | out1: | 3138 | out1: |
@@ -3190,7 +3225,13 @@ int ext4_ext_get_blocks(handle_t *handle, struct inode *inode, | |||
3190 | * this situation is possible, though, _during_ tree modification; | 3225 | * this situation is possible, though, _during_ tree modification; |
3191 | * this is why assert can't be put in ext4_ext_find_extent() | 3226 | * this is why assert can't be put in ext4_ext_find_extent() |
3192 | */ | 3227 | */ |
3193 | BUG_ON(path[depth].p_ext == NULL && depth != 0); | 3228 | if (path[depth].p_ext == NULL && depth != 0) { |
3229 | ext4_error(inode->i_sb, __func__, "bad extent address " | ||
3230 | "inode: %lu, iblock: %d, depth: %d", | ||
3231 | inode->i_ino, iblock, depth); | ||
3232 | err = -EIO; | ||
3233 | goto out2; | ||
3234 | } | ||
3194 | eh = path[depth].p_hdr; | 3235 | eh = path[depth].p_hdr; |
3195 | 3236 | ||
3196 | ex = path[depth].p_ext; | 3237 | ex = path[depth].p_ext; |
diff --git a/fs/ext4/fsync.c b/fs/ext4/fsync.c index 0b22497d92e..98bd140aad0 100644 --- a/fs/ext4/fsync.c +++ b/fs/ext4/fsync.c | |||
@@ -88,9 +88,21 @@ int ext4_sync_file(struct file *file, struct dentry *dentry, int datasync) | |||
88 | return ext4_force_commit(inode->i_sb); | 88 | return ext4_force_commit(inode->i_sb); |
89 | 89 | ||
90 | commit_tid = datasync ? ei->i_datasync_tid : ei->i_sync_tid; | 90 | commit_tid = datasync ? ei->i_datasync_tid : ei->i_sync_tid; |
91 | if (jbd2_log_start_commit(journal, commit_tid)) | 91 | if (jbd2_log_start_commit(journal, commit_tid)) { |
92 | /* | ||
93 | * When the journal is on a different device than the | ||
94 | * fs data disk, we need to issue the barrier in | ||
95 | * writeback mode. (In ordered mode, the jbd2 layer | ||
96 | * will take care of issuing the barrier. In | ||
97 | * data=journal, all of the data blocks are written to | ||
98 | * the journal device.) | ||
99 | */ | ||
100 | if (ext4_should_writeback_data(inode) && | ||
101 | (journal->j_fs_dev != journal->j_dev) && | ||
102 | (journal->j_flags & JBD2_BARRIER)) | ||
103 | blkdev_issue_flush(inode->i_sb->s_bdev, NULL); | ||
92 | jbd2_log_wait_commit(journal, commit_tid); | 104 | jbd2_log_wait_commit(journal, commit_tid); |
93 | else if (journal->j_flags & JBD2_BARRIER) | 105 | } else if (journal->j_flags & JBD2_BARRIER) |
94 | blkdev_issue_flush(inode->i_sb->s_bdev, NULL); | 106 | blkdev_issue_flush(inode->i_sb->s_bdev, NULL); |
95 | return ret; | 107 | return ret; |
96 | } | 108 | } |
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index ab807963a61..c818972c830 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -1009,77 +1009,88 @@ qsize_t *ext4_get_reserved_space(struct inode *inode) | |||
1009 | return &EXT4_I(inode)->i_reserved_quota; | 1009 | return &EXT4_I(inode)->i_reserved_quota; |
1010 | } | 1010 | } |
1011 | #endif | 1011 | #endif |
1012 | |||
1012 | /* | 1013 | /* |
1013 | * Calculate the number of metadata blocks need to reserve | 1014 | * Calculate the number of metadata blocks need to reserve |
1014 | * to allocate @blocks for non extent file based file | 1015 | * to allocate a new block at @lblocks for non extent file based file |
1015 | */ | 1016 | */ |
1016 | static int ext4_indirect_calc_metadata_amount(struct inode *inode, int blocks) | 1017 | static int ext4_indirect_calc_metadata_amount(struct inode *inode, |
1018 | sector_t lblock) | ||
1017 | { | 1019 | { |
1018 | int icap = EXT4_ADDR_PER_BLOCK(inode->i_sb); | 1020 | struct ext4_inode_info *ei = EXT4_I(inode); |
1019 | int ind_blks, dind_blks, tind_blks; | 1021 | int dind_mask = EXT4_ADDR_PER_BLOCK(inode->i_sb) - 1; |
1020 | 1022 | int blk_bits; | |
1021 | /* number of new indirect blocks needed */ | ||
1022 | ind_blks = (blocks + icap - 1) / icap; | ||
1023 | 1023 | ||
1024 | dind_blks = (ind_blks + icap - 1) / icap; | 1024 | if (lblock < EXT4_NDIR_BLOCKS) |
1025 | return 0; | ||
1025 | 1026 | ||
1026 | tind_blks = 1; | 1027 | lblock -= EXT4_NDIR_BLOCKS; |
1027 | 1028 | ||
1028 | return ind_blks + dind_blks + tind_blks; | 1029 | if (ei->i_da_metadata_calc_len && |
1030 | (lblock & dind_mask) == ei->i_da_metadata_calc_last_lblock) { | ||
1031 | ei->i_da_metadata_calc_len++; | ||
1032 | return 0; | ||
1033 | } | ||
1034 | ei->i_da_metadata_calc_last_lblock = lblock & dind_mask; | ||
1035 | ei->i_da_metadata_calc_len = 1; | ||
1036 | blk_bits = roundup_pow_of_two(lblock + 1); | ||
1037 | return (blk_bits / EXT4_ADDR_PER_BLOCK_BITS(inode->i_sb)) + 1; | ||
1029 | } | 1038 | } |
1030 | 1039 | ||
1031 | /* | 1040 | /* |
1032 | * Calculate the number of metadata blocks need to reserve | 1041 | * Calculate the number of metadata blocks need to reserve |
1033 | * to allocate given number of blocks | 1042 | * to allocate a block located at @lblock |
1034 | */ | 1043 | */ |
1035 | static int ext4_calc_metadata_amount(struct inode *inode, int blocks) | 1044 | static int ext4_calc_metadata_amount(struct inode *inode, sector_t lblock) |
1036 | { | 1045 | { |
1037 | if (!blocks) | ||
1038 | return 0; | ||
1039 | |||
1040 | if (EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL) | 1046 | if (EXT4_I(inode)->i_flags & EXT4_EXTENTS_FL) |
1041 | return ext4_ext_calc_metadata_amount(inode, blocks); | 1047 | return ext4_ext_calc_metadata_amount(inode, lblock); |
1042 | 1048 | ||
1043 | return ext4_indirect_calc_metadata_amount(inode, blocks); | 1049 | return ext4_indirect_calc_metadata_amount(inode, lblock); |
1044 | } | 1050 | } |
1045 | 1051 | ||
1052 | /* | ||
1053 | * Called with i_data_sem down, which is important since we can call | ||
1054 | * ext4_discard_preallocations() from here. | ||
1055 | */ | ||
1046 | static void ext4_da_update_reserve_space(struct inode *inode, int used) | 1056 | static void ext4_da_update_reserve_space(struct inode *inode, int used) |
1047 | { | 1057 | { |
1048 | struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); | 1058 | struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); |
1049 | int total, mdb, mdb_free, mdb_claim = 0; | 1059 | struct ext4_inode_info *ei = EXT4_I(inode); |
1050 | 1060 | int mdb_free = 0; | |
1051 | spin_lock(&EXT4_I(inode)->i_block_reservation_lock); | 1061 | |
1052 | /* recalculate the number of metablocks still need to be reserved */ | 1062 | spin_lock(&ei->i_block_reservation_lock); |
1053 | total = EXT4_I(inode)->i_reserved_data_blocks - used; | 1063 | if (unlikely(used > ei->i_reserved_data_blocks)) { |
1054 | mdb = ext4_calc_metadata_amount(inode, total); | 1064 | ext4_msg(inode->i_sb, KERN_NOTICE, "%s: ino %lu, used %d " |
1055 | 1065 | "with only %d reserved data blocks\n", | |
1056 | /* figure out how many metablocks to release */ | 1066 | __func__, inode->i_ino, used, |
1057 | BUG_ON(mdb > EXT4_I(inode)->i_reserved_meta_blocks); | 1067 | ei->i_reserved_data_blocks); |
1058 | mdb_free = EXT4_I(inode)->i_reserved_meta_blocks - mdb; | 1068 | WARN_ON(1); |
1059 | 1069 | used = ei->i_reserved_data_blocks; | |
1060 | if (mdb_free) { | 1070 | } |
1061 | /* Account for allocated meta_blocks */ | 1071 | |
1062 | mdb_claim = EXT4_I(inode)->i_allocated_meta_blocks; | 1072 | /* Update per-inode reservations */ |
1063 | BUG_ON(mdb_free < mdb_claim); | 1073 | ei->i_reserved_data_blocks -= used; |
1064 | mdb_free -= mdb_claim; | 1074 | used += ei->i_allocated_meta_blocks; |
1065 | 1075 | ei->i_reserved_meta_blocks -= ei->i_allocated_meta_blocks; | |
1066 | /* update fs dirty blocks counter */ | 1076 | ei->i_allocated_meta_blocks = 0; |
1077 | percpu_counter_sub(&sbi->s_dirtyblocks_counter, used); | ||
1078 | |||
1079 | if (ei->i_reserved_data_blocks == 0) { | ||
1080 | /* | ||
1081 | * We can release all of the reserved metadata blocks | ||
1082 | * only when we have written all of the delayed | ||
1083 | * allocation blocks. | ||
1084 | */ | ||
1085 | mdb_free = ei->i_reserved_meta_blocks; | ||
1086 | ei->i_reserved_meta_blocks = 0; | ||
1087 | ei->i_da_metadata_calc_len = 0; | ||
1067 | percpu_counter_sub(&sbi->s_dirtyblocks_counter, mdb_free); | 1088 | percpu_counter_sub(&sbi->s_dirtyblocks_counter, mdb_free); |
1068 | EXT4_I(inode)->i_allocated_meta_blocks = 0; | ||
1069 | EXT4_I(inode)->i_reserved_meta_blocks = mdb; | ||
1070 | } | 1089 | } |
1071 | |||
1072 | /* update per-inode reservations */ | ||
1073 | BUG_ON(used > EXT4_I(inode)->i_reserved_data_blocks); | ||
1074 | EXT4_I(inode)->i_reserved_data_blocks -= used; | ||
1075 | percpu_counter_sub(&sbi->s_dirtyblocks_counter, used + mdb_claim); | ||
1076 | spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); | 1090 | spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); |
1077 | 1091 | ||
1078 | vfs_dq_claim_block(inode, used + mdb_claim); | 1092 | /* Update quota subsystem */ |
1079 | 1093 | vfs_dq_claim_block(inode, used); | |
1080 | /* | ||
1081 | * free those over-booking quota for metadata blocks | ||
1082 | */ | ||
1083 | if (mdb_free) | 1094 | if (mdb_free) |
1084 | vfs_dq_release_reservation_block(inode, mdb_free); | 1095 | vfs_dq_release_reservation_block(inode, mdb_free); |
1085 | 1096 | ||
@@ -1088,7 +1099,8 @@ static void ext4_da_update_reserve_space(struct inode *inode, int used) | |||
1088 | * there aren't any writers on the inode, we can discard the | 1099 | * there aren't any writers on the inode, we can discard the |
1089 | * inode's preallocations. | 1100 | * inode's preallocations. |
1090 | */ | 1101 | */ |
1091 | if (!total && (atomic_read(&inode->i_writecount) == 0)) | 1102 | if ((ei->i_reserved_data_blocks == 0) && |
1103 | (atomic_read(&inode->i_writecount) == 0)) | ||
1092 | ext4_discard_preallocations(inode); | 1104 | ext4_discard_preallocations(inode); |
1093 | } | 1105 | } |
1094 | 1106 | ||
@@ -1797,11 +1809,15 @@ static int ext4_journalled_write_end(struct file *file, | |||
1797 | return ret ? ret : copied; | 1809 | return ret ? ret : copied; |
1798 | } | 1810 | } |
1799 | 1811 | ||
1800 | static int ext4_da_reserve_space(struct inode *inode, int nrblocks) | 1812 | /* |
1813 | * Reserve a single block located at lblock | ||
1814 | */ | ||
1815 | static int ext4_da_reserve_space(struct inode *inode, sector_t lblock) | ||
1801 | { | 1816 | { |
1802 | int retries = 0; | 1817 | int retries = 0; |
1803 | struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); | 1818 | struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); |
1804 | unsigned long md_needed, mdblocks, total = 0; | 1819 | struct ext4_inode_info *ei = EXT4_I(inode); |
1820 | unsigned long md_needed, md_reserved; | ||
1805 | 1821 | ||
1806 | /* | 1822 | /* |
1807 | * recalculate the amount of metadata blocks to reserve | 1823 | * recalculate the amount of metadata blocks to reserve |
@@ -1809,35 +1825,43 @@ static int ext4_da_reserve_space(struct inode *inode, int nrblocks) | |||
1809 | * worse case is one extent per block | 1825 | * worse case is one extent per block |
1810 | */ | 1826 | */ |
1811 | repeat: | 1827 | repeat: |
1812 | spin_lock(&EXT4_I(inode)->i_block_reservation_lock); | 1828 | spin_lock(&ei->i_block_reservation_lock); |
1813 | total = EXT4_I(inode)->i_reserved_data_blocks + nrblocks; | 1829 | md_reserved = ei->i_reserved_meta_blocks; |
1814 | mdblocks = ext4_calc_metadata_amount(inode, total); | 1830 | md_needed = ext4_calc_metadata_amount(inode, lblock); |
1815 | BUG_ON(mdblocks < EXT4_I(inode)->i_reserved_meta_blocks); | 1831 | spin_unlock(&ei->i_block_reservation_lock); |
1816 | |||
1817 | md_needed = mdblocks - EXT4_I(inode)->i_reserved_meta_blocks; | ||
1818 | total = md_needed + nrblocks; | ||
1819 | spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); | ||
1820 | 1832 | ||
1821 | /* | 1833 | /* |
1822 | * Make quota reservation here to prevent quota overflow | 1834 | * Make quota reservation here to prevent quota overflow |
1823 | * later. Real quota accounting is done at pages writeout | 1835 | * later. Real quota accounting is done at pages writeout |
1824 | * time. | 1836 | * time. |
1825 | */ | 1837 | */ |
1826 | if (vfs_dq_reserve_block(inode, total)) | 1838 | if (vfs_dq_reserve_block(inode, md_needed + 1)) { |
1839 | /* | ||
1840 | * We tend to badly over-estimate the amount of | ||
1841 | * metadata blocks which are needed, so if we have | ||
1842 | * reserved any metadata blocks, try to force out the | ||
1843 | * inode and see if we have any better luck. | ||
1844 | */ | ||
1845 | if (md_reserved && retries++ <= 3) | ||
1846 | goto retry; | ||
1827 | return -EDQUOT; | 1847 | return -EDQUOT; |
1848 | } | ||
1828 | 1849 | ||
1829 | if (ext4_claim_free_blocks(sbi, total)) { | 1850 | if (ext4_claim_free_blocks(sbi, md_needed + 1)) { |
1830 | vfs_dq_release_reservation_block(inode, total); | 1851 | vfs_dq_release_reservation_block(inode, md_needed + 1); |
1831 | if (ext4_should_retry_alloc(inode->i_sb, &retries)) { | 1852 | if (ext4_should_retry_alloc(inode->i_sb, &retries)) { |
1853 | retry: | ||
1854 | if (md_reserved) | ||
1855 | write_inode_now(inode, (retries == 3)); | ||
1832 | yield(); | 1856 | yield(); |
1833 | goto repeat; | 1857 | goto repeat; |
1834 | } | 1858 | } |
1835 | return -ENOSPC; | 1859 | return -ENOSPC; |
1836 | } | 1860 | } |
1837 | spin_lock(&EXT4_I(inode)->i_block_reservation_lock); | 1861 | spin_lock(&ei->i_block_reservation_lock); |
1838 | EXT4_I(inode)->i_reserved_data_blocks += nrblocks; | 1862 | ei->i_reserved_data_blocks++; |
1839 | EXT4_I(inode)->i_reserved_meta_blocks += md_needed; | 1863 | ei->i_reserved_meta_blocks += md_needed; |
1840 | spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); | 1864 | spin_unlock(&ei->i_block_reservation_lock); |
1841 | 1865 | ||
1842 | return 0; /* success */ | 1866 | return 0; /* success */ |
1843 | } | 1867 | } |
@@ -1845,49 +1869,46 @@ repeat: | |||
1845 | static void ext4_da_release_space(struct inode *inode, int to_free) | 1869 | static void ext4_da_release_space(struct inode *inode, int to_free) |
1846 | { | 1870 | { |
1847 | struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); | 1871 | struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); |
1848 | int total, mdb, mdb_free, release; | 1872 | struct ext4_inode_info *ei = EXT4_I(inode); |
1849 | 1873 | ||
1850 | if (!to_free) | 1874 | if (!to_free) |
1851 | return; /* Nothing to release, exit */ | 1875 | return; /* Nothing to release, exit */ |
1852 | 1876 | ||
1853 | spin_lock(&EXT4_I(inode)->i_block_reservation_lock); | 1877 | spin_lock(&EXT4_I(inode)->i_block_reservation_lock); |
1854 | 1878 | ||
1855 | if (!EXT4_I(inode)->i_reserved_data_blocks) { | 1879 | if (unlikely(to_free > ei->i_reserved_data_blocks)) { |
1856 | /* | 1880 | /* |
1857 | * if there is no reserved blocks, but we try to free some | 1881 | * if there aren't enough reserved blocks, then the |
1858 | * then the counter is messed up somewhere. | 1882 | * counter is messed up somewhere. Since this |
1859 | * but since this function is called from invalidate | 1883 | * function is called from invalidate page, it's |
1860 | * page, it's harmless to return without any action | 1884 | * harmless to return without any action. |
1861 | */ | 1885 | */ |
1862 | printk(KERN_INFO "ext4 delalloc try to release %d reserved " | 1886 | ext4_msg(inode->i_sb, KERN_NOTICE, "ext4_da_release_space: " |
1863 | "blocks for inode %lu, but there is no reserved " | 1887 | "ino %lu, to_free %d with only %d reserved " |
1864 | "data blocks\n", to_free, inode->i_ino); | 1888 | "data blocks\n", inode->i_ino, to_free, |
1865 | spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); | 1889 | ei->i_reserved_data_blocks); |
1866 | return; | 1890 | WARN_ON(1); |
1891 | to_free = ei->i_reserved_data_blocks; | ||
1867 | } | 1892 | } |
1893 | ei->i_reserved_data_blocks -= to_free; | ||
1868 | 1894 | ||
1869 | /* recalculate the number of metablocks still need to be reserved */ | 1895 | if (ei->i_reserved_data_blocks == 0) { |
1870 | total = EXT4_I(inode)->i_reserved_data_blocks - to_free; | 1896 | /* |
1871 | mdb = ext4_calc_metadata_amount(inode, total); | 1897 | * We can release all of the reserved metadata blocks |
1872 | 1898 | * only when we have written all of the delayed | |
1873 | /* figure out how many metablocks to release */ | 1899 | * allocation blocks. |
1874 | BUG_ON(mdb > EXT4_I(inode)->i_reserved_meta_blocks); | 1900 | */ |
1875 | mdb_free = EXT4_I(inode)->i_reserved_meta_blocks - mdb; | 1901 | to_free += ei->i_reserved_meta_blocks; |
1876 | 1902 | ei->i_reserved_meta_blocks = 0; | |
1877 | release = to_free + mdb_free; | 1903 | ei->i_da_metadata_calc_len = 0; |
1878 | 1904 | } | |
1879 | /* update fs dirty blocks counter for truncate case */ | ||
1880 | percpu_counter_sub(&sbi->s_dirtyblocks_counter, release); | ||
1881 | 1905 | ||
1882 | /* update per-inode reservations */ | 1906 | /* update fs dirty blocks counter */ |
1883 | BUG_ON(to_free > EXT4_I(inode)->i_reserved_data_blocks); | 1907 | percpu_counter_sub(&sbi->s_dirtyblocks_counter, to_free); |
1884 | EXT4_I(inode)->i_reserved_data_blocks -= to_free; | ||
1885 | 1908 | ||
1886 | BUG_ON(mdb > EXT4_I(inode)->i_reserved_meta_blocks); | ||
1887 | EXT4_I(inode)->i_reserved_meta_blocks = mdb; | ||
1888 | spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); | 1909 | spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); |
1889 | 1910 | ||
1890 | vfs_dq_release_reservation_block(inode, release); | 1911 | vfs_dq_release_reservation_block(inode, to_free); |
1891 | } | 1912 | } |
1892 | 1913 | ||
1893 | static void ext4_da_page_release_reservation(struct page *page, | 1914 | static void ext4_da_page_release_reservation(struct page *page, |
@@ -2493,7 +2514,7 @@ static int ext4_da_get_block_prep(struct inode *inode, sector_t iblock, | |||
2493 | * XXX: __block_prepare_write() unmaps passed block, | 2514 | * XXX: __block_prepare_write() unmaps passed block, |
2494 | * is it OK? | 2515 | * is it OK? |
2495 | */ | 2516 | */ |
2496 | ret = ext4_da_reserve_space(inode, 1); | 2517 | ret = ext4_da_reserve_space(inode, iblock); |
2497 | if (ret) | 2518 | if (ret) |
2498 | /* not enough space to reserve */ | 2519 | /* not enough space to reserve */ |
2499 | return ret; | 2520 | return ret; |
@@ -2967,8 +2988,7 @@ retry: | |||
2967 | out_writepages: | 2988 | out_writepages: |
2968 | if (!no_nrwrite_index_update) | 2989 | if (!no_nrwrite_index_update) |
2969 | wbc->no_nrwrite_index_update = 0; | 2990 | wbc->no_nrwrite_index_update = 0; |
2970 | if (wbc->nr_to_write > nr_to_writebump) | 2991 | wbc->nr_to_write -= nr_to_writebump; |
2971 | wbc->nr_to_write -= nr_to_writebump; | ||
2972 | wbc->range_start = range_start; | 2992 | wbc->range_start = range_start; |
2973 | trace_ext4_da_writepages_result(inode, wbc, ret, pages_written); | 2993 | trace_ext4_da_writepages_result(inode, wbc, ret, pages_written); |
2974 | return ret; | 2994 | return ret; |
@@ -2993,11 +3013,18 @@ static int ext4_nonda_switch(struct super_block *sb) | |||
2993 | if (2 * free_blocks < 3 * dirty_blocks || | 3013 | if (2 * free_blocks < 3 * dirty_blocks || |
2994 | free_blocks < (dirty_blocks + EXT4_FREEBLOCKS_WATERMARK)) { | 3014 | free_blocks < (dirty_blocks + EXT4_FREEBLOCKS_WATERMARK)) { |
2995 | /* | 3015 | /* |
2996 | * free block count is less that 150% of dirty blocks | 3016 | * free block count is less than 150% of dirty blocks |
2997 | * or free blocks is less that watermark | 3017 | * or free blocks is less than watermark |
2998 | */ | 3018 | */ |
2999 | return 1; | 3019 | return 1; |
3000 | } | 3020 | } |
3021 | /* | ||
3022 | * Even if we don't switch but are nearing capacity, | ||
3023 | * start pushing delalloc when 1/2 of free blocks are dirty. | ||
3024 | */ | ||
3025 | if (free_blocks < 2 * dirty_blocks) | ||
3026 | writeback_inodes_sb_if_idle(sb); | ||
3027 | |||
3001 | return 0; | 3028 | return 0; |
3002 | } | 3029 | } |
3003 | 3030 | ||
diff --git a/fs/ext4/mballoc.h b/fs/ext4/mballoc.h index 0ca811061bc..436521cae45 100644 --- a/fs/ext4/mballoc.h +++ b/fs/ext4/mballoc.h | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <linux/proc_fs.h> | 17 | #include <linux/proc_fs.h> |
18 | #include <linux/pagemap.h> | 18 | #include <linux/pagemap.h> |
19 | #include <linux/seq_file.h> | 19 | #include <linux/seq_file.h> |
20 | #include <linux/version.h> | ||
21 | #include <linux/blkdev.h> | 20 | #include <linux/blkdev.h> |
22 | #include <linux/mutex.h> | 21 | #include <linux/mutex.h> |
23 | #include "ext4_jbd2.h" | 22 | #include "ext4_jbd2.h" |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 6ed9aa91f27..735c20d5fd5 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -702,6 +702,7 @@ static struct inode *ext4_alloc_inode(struct super_block *sb) | |||
702 | ei->i_reserved_data_blocks = 0; | 702 | ei->i_reserved_data_blocks = 0; |
703 | ei->i_reserved_meta_blocks = 0; | 703 | ei->i_reserved_meta_blocks = 0; |
704 | ei->i_allocated_meta_blocks = 0; | 704 | ei->i_allocated_meta_blocks = 0; |
705 | ei->i_da_metadata_calc_len = 0; | ||
705 | ei->i_delalloc_reserved_flag = 0; | 706 | ei->i_delalloc_reserved_flag = 0; |
706 | spin_lock_init(&(ei->i_block_reservation_lock)); | 707 | spin_lock_init(&(ei->i_block_reservation_lock)); |
707 | #ifdef CONFIG_QUOTA | 708 | #ifdef CONFIG_QUOTA |
@@ -2174,9 +2175,9 @@ static ssize_t lifetime_write_kbytes_show(struct ext4_attr *a, | |||
2174 | struct super_block *sb = sbi->s_buddy_cache->i_sb; | 2175 | struct super_block *sb = sbi->s_buddy_cache->i_sb; |
2175 | 2176 | ||
2176 | return snprintf(buf, PAGE_SIZE, "%llu\n", | 2177 | return snprintf(buf, PAGE_SIZE, "%llu\n", |
2177 | sbi->s_kbytes_written + | 2178 | (unsigned long long)(sbi->s_kbytes_written + |
2178 | ((part_stat_read(sb->s_bdev->bd_part, sectors[1]) - | 2179 | ((part_stat_read(sb->s_bdev->bd_part, sectors[1]) - |
2179 | EXT4_SB(sb)->s_sectors_written_start) >> 1)); | 2180 | EXT4_SB(sb)->s_sectors_written_start) >> 1))); |
2180 | } | 2181 | } |
2181 | 2182 | ||
2182 | static ssize_t inode_readahead_blks_store(struct ext4_attr *a, | 2183 | static ssize_t inode_readahead_blks_store(struct ext4_attr *a, |
@@ -4005,6 +4006,7 @@ static inline void unregister_as_ext2(void) | |||
4005 | { | 4006 | { |
4006 | unregister_filesystem(&ext2_fs_type); | 4007 | unregister_filesystem(&ext2_fs_type); |
4007 | } | 4008 | } |
4009 | MODULE_ALIAS("ext2"); | ||
4008 | #else | 4010 | #else |
4009 | static inline void register_as_ext2(void) { } | 4011 | static inline void register_as_ext2(void) { } |
4010 | static inline void unregister_as_ext2(void) { } | 4012 | static inline void unregister_as_ext2(void) { } |
@@ -4031,6 +4033,7 @@ static inline void unregister_as_ext3(void) | |||
4031 | { | 4033 | { |
4032 | unregister_filesystem(&ext3_fs_type); | 4034 | unregister_filesystem(&ext3_fs_type); |
4033 | } | 4035 | } |
4036 | MODULE_ALIAS("ext3"); | ||
4034 | #else | 4037 | #else |
4035 | static inline void register_as_ext3(void) { } | 4038 | static inline void register_as_ext3(void) { } |
4036 | static inline void unregister_as_ext3(void) { } | 4039 | static inline void unregister_as_ext3(void) { } |
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c index 83218bebbc7..f3a2f7ed45a 100644 --- a/fs/ext4/xattr.c +++ b/fs/ext4/xattr.c | |||
@@ -1332,6 +1332,8 @@ retry: | |||
1332 | goto cleanup; | 1332 | goto cleanup; |
1333 | kfree(b_entry_name); | 1333 | kfree(b_entry_name); |
1334 | kfree(buffer); | 1334 | kfree(buffer); |
1335 | b_entry_name = NULL; | ||
1336 | buffer = NULL; | ||
1335 | brelse(is->iloc.bh); | 1337 | brelse(is->iloc.bh); |
1336 | kfree(is); | 1338 | kfree(is); |
1337 | kfree(bs); | 1339 | kfree(bs); |
diff --git a/fs/fcntl.c b/fs/fcntl.c index 2cf93ec40a6..97e01dc0d95 100644 --- a/fs/fcntl.c +++ b/fs/fcntl.c | |||
@@ -618,60 +618,90 @@ static DEFINE_RWLOCK(fasync_lock); | |||
618 | static struct kmem_cache *fasync_cache __read_mostly; | 618 | static struct kmem_cache *fasync_cache __read_mostly; |
619 | 619 | ||
620 | /* | 620 | /* |
621 | * fasync_helper() is used by almost all character device drivers | 621 | * Remove a fasync entry. If successfully removed, return |
622 | * to set up the fasync queue. It returns negative on error, 0 if it did | 622 | * positive and clear the FASYNC flag. If no entry exists, |
623 | * no changes and positive if it added/deleted the entry. | 623 | * do nothing and return 0. |
624 | * | ||
625 | * NOTE! It is very important that the FASYNC flag always | ||
626 | * match the state "is the filp on a fasync list". | ||
627 | * | ||
628 | * We always take the 'filp->f_lock', in since fasync_lock | ||
629 | * needs to be irq-safe. | ||
624 | */ | 630 | */ |
625 | int fasync_helper(int fd, struct file * filp, int on, struct fasync_struct **fapp) | 631 | static int fasync_remove_entry(struct file *filp, struct fasync_struct **fapp) |
626 | { | 632 | { |
627 | struct fasync_struct *fa, **fp; | 633 | struct fasync_struct *fa, **fp; |
628 | struct fasync_struct *new = NULL; | ||
629 | int result = 0; | 634 | int result = 0; |
630 | 635 | ||
631 | if (on) { | 636 | spin_lock(&filp->f_lock); |
632 | new = kmem_cache_alloc(fasync_cache, GFP_KERNEL); | 637 | write_lock_irq(&fasync_lock); |
633 | if (!new) | 638 | for (fp = fapp; (fa = *fp) != NULL; fp = &fa->fa_next) { |
634 | return -ENOMEM; | 639 | if (fa->fa_file != filp) |
640 | continue; | ||
641 | *fp = fa->fa_next; | ||
642 | kmem_cache_free(fasync_cache, fa); | ||
643 | filp->f_flags &= ~FASYNC; | ||
644 | result = 1; | ||
645 | break; | ||
635 | } | 646 | } |
647 | write_unlock_irq(&fasync_lock); | ||
648 | spin_unlock(&filp->f_lock); | ||
649 | return result; | ||
650 | } | ||
651 | |||
652 | /* | ||
653 | * Add a fasync entry. Return negative on error, positive if | ||
654 | * added, and zero if did nothing but change an existing one. | ||
655 | * | ||
656 | * NOTE! It is very important that the FASYNC flag always | ||
657 | * match the state "is the filp on a fasync list". | ||
658 | */ | ||
659 | static int fasync_add_entry(int fd, struct file *filp, struct fasync_struct **fapp) | ||
660 | { | ||
661 | struct fasync_struct *new, *fa, **fp; | ||
662 | int result = 0; | ||
663 | |||
664 | new = kmem_cache_alloc(fasync_cache, GFP_KERNEL); | ||
665 | if (!new) | ||
666 | return -ENOMEM; | ||
636 | 667 | ||
637 | /* | ||
638 | * We need to take f_lock first since it's not an IRQ-safe | ||
639 | * lock. | ||
640 | */ | ||
641 | spin_lock(&filp->f_lock); | 668 | spin_lock(&filp->f_lock); |
642 | write_lock_irq(&fasync_lock); | 669 | write_lock_irq(&fasync_lock); |
643 | for (fp = fapp; (fa = *fp) != NULL; fp = &fa->fa_next) { | 670 | for (fp = fapp; (fa = *fp) != NULL; fp = &fa->fa_next) { |
644 | if (fa->fa_file == filp) { | 671 | if (fa->fa_file != filp) |
645 | if(on) { | 672 | continue; |
646 | fa->fa_fd = fd; | 673 | fa->fa_fd = fd; |
647 | kmem_cache_free(fasync_cache, new); | 674 | kmem_cache_free(fasync_cache, new); |
648 | } else { | 675 | goto out; |
649 | *fp = fa->fa_next; | ||
650 | kmem_cache_free(fasync_cache, fa); | ||
651 | result = 1; | ||
652 | } | ||
653 | goto out; | ||
654 | } | ||
655 | } | 676 | } |
656 | 677 | ||
657 | if (on) { | 678 | new->magic = FASYNC_MAGIC; |
658 | new->magic = FASYNC_MAGIC; | 679 | new->fa_file = filp; |
659 | new->fa_file = filp; | 680 | new->fa_fd = fd; |
660 | new->fa_fd = fd; | 681 | new->fa_next = *fapp; |
661 | new->fa_next = *fapp; | 682 | *fapp = new; |
662 | *fapp = new; | 683 | result = 1; |
663 | result = 1; | 684 | filp->f_flags |= FASYNC; |
664 | } | 685 | |
665 | out: | 686 | out: |
666 | if (on) | ||
667 | filp->f_flags |= FASYNC; | ||
668 | else | ||
669 | filp->f_flags &= ~FASYNC; | ||
670 | write_unlock_irq(&fasync_lock); | 687 | write_unlock_irq(&fasync_lock); |
671 | spin_unlock(&filp->f_lock); | 688 | spin_unlock(&filp->f_lock); |
672 | return result; | 689 | return result; |
673 | } | 690 | } |
674 | 691 | ||
692 | /* | ||
693 | * fasync_helper() is used by almost all character device drivers | ||
694 | * to set up the fasync queue, and for regular files by the file | ||
695 | * lease code. It returns negative on error, 0 if it did no changes | ||
696 | * and positive if it added/deleted the entry. | ||
697 | */ | ||
698 | int fasync_helper(int fd, struct file * filp, int on, struct fasync_struct **fapp) | ||
699 | { | ||
700 | if (!on) | ||
701 | return fasync_remove_entry(filp, fapp); | ||
702 | return fasync_add_entry(fd, filp, fapp); | ||
703 | } | ||
704 | |||
675 | EXPORT_SYMBOL(fasync_helper); | 705 | EXPORT_SYMBOL(fasync_helper); |
676 | 706 | ||
677 | void __kill_fasync(struct fasync_struct *fa, int sig, int band) | 707 | void __kill_fasync(struct fasync_struct *fa, int sig, int band) |
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 49bc1b8e8f1..1a7c42c64ff 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -242,6 +242,7 @@ static void bdi_sync_writeback(struct backing_dev_info *bdi, | |||
242 | /** | 242 | /** |
243 | * bdi_start_writeback - start writeback | 243 | * bdi_start_writeback - start writeback |
244 | * @bdi: the backing device to write from | 244 | * @bdi: the backing device to write from |
245 | * @sb: write inodes from this super_block | ||
245 | * @nr_pages: the number of pages to write | 246 | * @nr_pages: the number of pages to write |
246 | * | 247 | * |
247 | * Description: | 248 | * Description: |
@@ -1187,6 +1188,23 @@ void writeback_inodes_sb(struct super_block *sb) | |||
1187 | EXPORT_SYMBOL(writeback_inodes_sb); | 1188 | EXPORT_SYMBOL(writeback_inodes_sb); |
1188 | 1189 | ||
1189 | /** | 1190 | /** |
1191 | * writeback_inodes_sb_if_idle - start writeback if none underway | ||
1192 | * @sb: the superblock | ||
1193 | * | ||
1194 | * Invoke writeback_inodes_sb if no writeback is currently underway. | ||
1195 | * Returns 1 if writeback was started, 0 if not. | ||
1196 | */ | ||
1197 | int writeback_inodes_sb_if_idle(struct super_block *sb) | ||
1198 | { | ||
1199 | if (!writeback_in_progress(sb->s_bdi)) { | ||
1200 | writeback_inodes_sb(sb); | ||
1201 | return 1; | ||
1202 | } else | ||
1203 | return 0; | ||
1204 | } | ||
1205 | EXPORT_SYMBOL(writeback_inodes_sb_if_idle); | ||
1206 | |||
1207 | /** | ||
1190 | * sync_inodes_sb - sync sb inode pages | 1208 | * sync_inodes_sb - sync sb inode pages |
1191 | * @sb: the superblock | 1209 | * @sb: the superblock |
1192 | * | 1210 | * |
diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c index 4eb308aa323..a6abbae8a27 100644 --- a/fs/gfs2/file.c +++ b/fs/gfs2/file.c | |||
@@ -569,6 +569,40 @@ static int gfs2_fsync(struct file *file, struct dentry *dentry, int datasync) | |||
569 | return ret; | 569 | return ret; |
570 | } | 570 | } |
571 | 571 | ||
572 | /** | ||
573 | * gfs2_file_aio_write - Perform a write to a file | ||
574 | * @iocb: The io context | ||
575 | * @iov: The data to write | ||
576 | * @nr_segs: Number of @iov segments | ||
577 | * @pos: The file position | ||
578 | * | ||
579 | * We have to do a lock/unlock here to refresh the inode size for | ||
580 | * O_APPEND writes, otherwise we can land up writing at the wrong | ||
581 | * offset. There is still a race, but provided the app is using its | ||
582 | * own file locking, this will make O_APPEND work as expected. | ||
583 | * | ||
584 | */ | ||
585 | |||
586 | static ssize_t gfs2_file_aio_write(struct kiocb *iocb, const struct iovec *iov, | ||
587 | unsigned long nr_segs, loff_t pos) | ||
588 | { | ||
589 | struct file *file = iocb->ki_filp; | ||
590 | |||
591 | if (file->f_flags & O_APPEND) { | ||
592 | struct dentry *dentry = file->f_dentry; | ||
593 | struct gfs2_inode *ip = GFS2_I(dentry->d_inode); | ||
594 | struct gfs2_holder gh; | ||
595 | int ret; | ||
596 | |||
597 | ret = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, 0, &gh); | ||
598 | if (ret) | ||
599 | return ret; | ||
600 | gfs2_glock_dq_uninit(&gh); | ||
601 | } | ||
602 | |||
603 | return generic_file_aio_write(iocb, iov, nr_segs, pos); | ||
604 | } | ||
605 | |||
572 | #ifdef CONFIG_GFS2_FS_LOCKING_DLM | 606 | #ifdef CONFIG_GFS2_FS_LOCKING_DLM |
573 | 607 | ||
574 | /** | 608 | /** |
@@ -711,7 +745,7 @@ const struct file_operations gfs2_file_fops = { | |||
711 | .read = do_sync_read, | 745 | .read = do_sync_read, |
712 | .aio_read = generic_file_aio_read, | 746 | .aio_read = generic_file_aio_read, |
713 | .write = do_sync_write, | 747 | .write = do_sync_write, |
714 | .aio_write = generic_file_aio_write, | 748 | .aio_write = gfs2_file_aio_write, |
715 | .unlocked_ioctl = gfs2_ioctl, | 749 | .unlocked_ioctl = gfs2_ioctl, |
716 | .mmap = gfs2_mmap, | 750 | .mmap = gfs2_mmap, |
717 | .open = gfs2_open, | 751 | .open = gfs2_open, |
@@ -741,7 +775,7 @@ const struct file_operations gfs2_file_fops_nolock = { | |||
741 | .read = do_sync_read, | 775 | .read = do_sync_read, |
742 | .aio_read = generic_file_aio_read, | 776 | .aio_read = generic_file_aio_read, |
743 | .write = do_sync_write, | 777 | .write = do_sync_write, |
744 | .aio_write = generic_file_aio_write, | 778 | .aio_write = gfs2_file_aio_write, |
745 | .unlocked_ioctl = gfs2_ioctl, | 779 | .unlocked_ioctl = gfs2_ioctl, |
746 | .mmap = gfs2_mmap, | 780 | .mmap = gfs2_mmap, |
747 | .open = gfs2_open, | 781 | .open = gfs2_open, |
diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c index cb8d7a93d5e..6f68a5f18eb 100644 --- a/fs/gfs2/meta_io.c +++ b/fs/gfs2/meta_io.c | |||
@@ -121,7 +121,7 @@ struct inode *gfs2_aspace_get(struct gfs2_sbd *sdp) | |||
121 | if (aspace) { | 121 | if (aspace) { |
122 | mapping_set_gfp_mask(aspace->i_mapping, GFP_NOFS); | 122 | mapping_set_gfp_mask(aspace->i_mapping, GFP_NOFS); |
123 | aspace->i_mapping->a_ops = &aspace_aops; | 123 | aspace->i_mapping->a_ops = &aspace_aops; |
124 | aspace->i_size = ~0ULL; | 124 | aspace->i_size = MAX_LFS_FILESIZE; |
125 | ip = GFS2_I(aspace); | 125 | ip = GFS2_I(aspace); |
126 | clear_bit(GIF_USER, &ip->i_flags); | 126 | clear_bit(GIF_USER, &ip->i_flags); |
127 | insert_inode_hash(aspace); | 127 | insert_inode_hash(aspace); |
diff --git a/fs/gfs2/ops_inode.c b/fs/gfs2/ops_inode.c index 247436c10de..78f73ca1ef3 100644 --- a/fs/gfs2/ops_inode.c +++ b/fs/gfs2/ops_inode.c | |||
@@ -748,7 +748,7 @@ static int gfs2_rename(struct inode *odir, struct dentry *odentry, | |||
748 | struct gfs2_rgrpd *nrgd; | 748 | struct gfs2_rgrpd *nrgd; |
749 | unsigned int num_gh; | 749 | unsigned int num_gh; |
750 | int dir_rename = 0; | 750 | int dir_rename = 0; |
751 | int alloc_required; | 751 | int alloc_required = 0; |
752 | unsigned int x; | 752 | unsigned int x; |
753 | int error; | 753 | int error; |
754 | 754 | ||
@@ -867,7 +867,9 @@ static int gfs2_rename(struct inode *odir, struct dentry *odentry, | |||
867 | goto out_gunlock; | 867 | goto out_gunlock; |
868 | } | 868 | } |
869 | 869 | ||
870 | alloc_required = error = gfs2_diradd_alloc_required(ndir, &ndentry->d_name); | 870 | if (nip == NULL) |
871 | alloc_required = gfs2_diradd_alloc_required(ndir, &ndentry->d_name); | ||
872 | error = alloc_required; | ||
871 | if (error < 0) | 873 | if (error < 0) |
872 | goto out_gunlock; | 874 | goto out_gunlock; |
873 | error = 0; | 875 | error = 0; |
diff --git a/fs/gfs2/xattr.c b/fs/gfs2/xattr.c index 8a04108e0c2..c2ebdf2c01d 100644 --- a/fs/gfs2/xattr.c +++ b/fs/gfs2/xattr.c | |||
@@ -1296,6 +1296,7 @@ fail: | |||
1296 | 1296 | ||
1297 | int gfs2_xattr_acl_chmod(struct gfs2_inode *ip, struct iattr *attr, char *data) | 1297 | int gfs2_xattr_acl_chmod(struct gfs2_inode *ip, struct iattr *attr, char *data) |
1298 | { | 1298 | { |
1299 | struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); | ||
1299 | struct gfs2_ea_location el; | 1300 | struct gfs2_ea_location el; |
1300 | struct buffer_head *dibh; | 1301 | struct buffer_head *dibh; |
1301 | int error; | 1302 | int error; |
@@ -1305,16 +1306,17 @@ int gfs2_xattr_acl_chmod(struct gfs2_inode *ip, struct iattr *attr, char *data) | |||
1305 | return error; | 1306 | return error; |
1306 | 1307 | ||
1307 | if (GFS2_EA_IS_STUFFED(el.el_ea)) { | 1308 | if (GFS2_EA_IS_STUFFED(el.el_ea)) { |
1308 | error = gfs2_trans_begin(GFS2_SB(&ip->i_inode), RES_DINODE + RES_EATTR, 0); | 1309 | error = gfs2_trans_begin(sdp, RES_DINODE + RES_EATTR, 0); |
1309 | if (error) | 1310 | if (error == 0) { |
1310 | return error; | 1311 | gfs2_trans_add_bh(ip->i_gl, el.el_bh, 1); |
1311 | 1312 | memcpy(GFS2_EA2DATA(el.el_ea), data, | |
1312 | gfs2_trans_add_bh(ip->i_gl, el.el_bh, 1); | 1313 | GFS2_EA_DATA_LEN(el.el_ea)); |
1313 | memcpy(GFS2_EA2DATA(el.el_ea), data, | 1314 | } |
1314 | GFS2_EA_DATA_LEN(el.el_ea)); | 1315 | } else { |
1315 | } else | ||
1316 | error = ea_acl_chmod_unstuffed(ip, el.el_ea, data); | 1316 | error = ea_acl_chmod_unstuffed(ip, el.el_ea, data); |
1317 | } | ||
1317 | 1318 | ||
1319 | brelse(el.el_bh); | ||
1318 | if (error) | 1320 | if (error) |
1319 | return error; | 1321 | return error; |
1320 | 1322 | ||
@@ -1327,8 +1329,7 @@ int gfs2_xattr_acl_chmod(struct gfs2_inode *ip, struct iattr *attr, char *data) | |||
1327 | brelse(dibh); | 1329 | brelse(dibh); |
1328 | } | 1330 | } |
1329 | 1331 | ||
1330 | gfs2_trans_end(GFS2_SB(&ip->i_inode)); | 1332 | gfs2_trans_end(sdp); |
1331 | |||
1332 | return error; | 1333 | return error; |
1333 | } | 1334 | } |
1334 | 1335 | ||
diff --git a/fs/hppfs/hppfs.c b/fs/hppfs/hppfs.c index a5089a6dd67..7239efc690d 100644 --- a/fs/hppfs/hppfs.c +++ b/fs/hppfs/hppfs.c | |||
@@ -646,22 +646,27 @@ static const struct super_operations hppfs_sbops = { | |||
646 | static int hppfs_readlink(struct dentry *dentry, char __user *buffer, | 646 | static int hppfs_readlink(struct dentry *dentry, char __user *buffer, |
647 | int buflen) | 647 | int buflen) |
648 | { | 648 | { |
649 | struct dentry *proc_dentry; | 649 | struct dentry *proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry; |
650 | |||
651 | proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry; | ||
652 | return proc_dentry->d_inode->i_op->readlink(proc_dentry, buffer, | 650 | return proc_dentry->d_inode->i_op->readlink(proc_dentry, buffer, |
653 | buflen); | 651 | buflen); |
654 | } | 652 | } |
655 | 653 | ||
656 | static void *hppfs_follow_link(struct dentry *dentry, struct nameidata *nd) | 654 | static void *hppfs_follow_link(struct dentry *dentry, struct nameidata *nd) |
657 | { | 655 | { |
658 | struct dentry *proc_dentry; | 656 | struct dentry *proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry; |
659 | |||
660 | proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry; | ||
661 | 657 | ||
662 | return proc_dentry->d_inode->i_op->follow_link(proc_dentry, nd); | 658 | return proc_dentry->d_inode->i_op->follow_link(proc_dentry, nd); |
663 | } | 659 | } |
664 | 660 | ||
661 | static void hppfs_put_link(struct dentry *dentry, struct nameidata *nd, | ||
662 | void *cookie) | ||
663 | { | ||
664 | struct dentry *proc_dentry = HPPFS_I(dentry->d_inode)->proc_dentry; | ||
665 | |||
666 | if (proc_dentry->d_inode->i_op->put_link) | ||
667 | proc_dentry->d_inode->i_op->put_link(proc_dentry, nd, cookie); | ||
668 | } | ||
669 | |||
665 | static const struct inode_operations hppfs_dir_iops = { | 670 | static const struct inode_operations hppfs_dir_iops = { |
666 | .lookup = hppfs_lookup, | 671 | .lookup = hppfs_lookup, |
667 | }; | 672 | }; |
@@ -669,6 +674,7 @@ static const struct inode_operations hppfs_dir_iops = { | |||
669 | static const struct inode_operations hppfs_link_iops = { | 674 | static const struct inode_operations hppfs_link_iops = { |
670 | .readlink = hppfs_readlink, | 675 | .readlink = hppfs_readlink, |
671 | .follow_link = hppfs_follow_link, | 676 | .follow_link = hppfs_follow_link, |
677 | .put_link = hppfs_put_link, | ||
672 | }; | 678 | }; |
673 | 679 | ||
674 | static struct inode *get_inode(struct super_block *sb, struct dentry *dentry) | 680 | static struct inode *get_inode(struct super_block *sb, struct dentry *dentry) |
diff --git a/fs/jbd2/checkpoint.c b/fs/jbd2/checkpoint.c index ca0f5eb62b2..88684937095 100644 --- a/fs/jbd2/checkpoint.c +++ b/fs/jbd2/checkpoint.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/jbd2.h> | 22 | #include <linux/jbd2.h> |
23 | #include <linux/errno.h> | 23 | #include <linux/errno.h> |
24 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
25 | #include <linux/blkdev.h> | ||
25 | #include <trace/events/jbd2.h> | 26 | #include <trace/events/jbd2.h> |
26 | 27 | ||
27 | /* | 28 | /* |
@@ -515,6 +516,20 @@ int jbd2_cleanup_journal_tail(journal_t *journal) | |||
515 | journal->j_tail_sequence = first_tid; | 516 | journal->j_tail_sequence = first_tid; |
516 | journal->j_tail = blocknr; | 517 | journal->j_tail = blocknr; |
517 | spin_unlock(&journal->j_state_lock); | 518 | spin_unlock(&journal->j_state_lock); |
519 | |||
520 | /* | ||
521 | * If there is an external journal, we need to make sure that | ||
522 | * any data blocks that were recently written out --- perhaps | ||
523 | * by jbd2_log_do_checkpoint() --- are flushed out before we | ||
524 | * drop the transactions from the external journal. It's | ||
525 | * unlikely this will be necessary, especially with a | ||
526 | * appropriately sized journal, but we need this to guarantee | ||
527 | * correctness. Fortunately jbd2_cleanup_journal_tail() | ||
528 | * doesn't get called all that often. | ||
529 | */ | ||
530 | if ((journal->j_fs_dev != journal->j_dev) && | ||
531 | (journal->j_flags & JBD2_BARRIER)) | ||
532 | blkdev_issue_flush(journal->j_fs_dev, NULL); | ||
518 | if (!(journal->j_flags & JBD2_ABORT)) | 533 | if (!(journal->j_flags & JBD2_ABORT)) |
519 | jbd2_journal_update_superblock(journal, 1); | 534 | jbd2_journal_update_superblock(journal, 1); |
520 | return 0; | 535 | return 0; |
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c index 6a10238d2c6..1bc74b6f26d 100644 --- a/fs/jbd2/commit.c +++ b/fs/jbd2/commit.c | |||
@@ -259,6 +259,7 @@ static int journal_submit_data_buffers(journal_t *journal, | |||
259 | ret = err; | 259 | ret = err; |
260 | spin_lock(&journal->j_list_lock); | 260 | spin_lock(&journal->j_list_lock); |
261 | J_ASSERT(jinode->i_transaction == commit_transaction); | 261 | J_ASSERT(jinode->i_transaction == commit_transaction); |
262 | commit_transaction->t_flushed_data_blocks = 1; | ||
262 | jinode->i_flags &= ~JI_COMMIT_RUNNING; | 263 | jinode->i_flags &= ~JI_COMMIT_RUNNING; |
263 | wake_up_bit(&jinode->i_flags, __JI_COMMIT_RUNNING); | 264 | wake_up_bit(&jinode->i_flags, __JI_COMMIT_RUNNING); |
264 | } | 265 | } |
@@ -708,8 +709,17 @@ start_journal_io: | |||
708 | } | 709 | } |
709 | } | 710 | } |
710 | 711 | ||
711 | /* Done it all: now write the commit record asynchronously. */ | 712 | /* |
713 | * If the journal is not located on the file system device, | ||
714 | * then we must flush the file system device before we issue | ||
715 | * the commit record | ||
716 | */ | ||
717 | if (commit_transaction->t_flushed_data_blocks && | ||
718 | (journal->j_fs_dev != journal->j_dev) && | ||
719 | (journal->j_flags & JBD2_BARRIER)) | ||
720 | blkdev_issue_flush(journal->j_fs_dev, NULL); | ||
712 | 721 | ||
722 | /* Done it all: now write the commit record asynchronously. */ | ||
713 | if (JBD2_HAS_INCOMPAT_FEATURE(journal, | 723 | if (JBD2_HAS_INCOMPAT_FEATURE(journal, |
714 | JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)) { | 724 | JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT)) { |
715 | err = journal_submit_commit_record(journal, commit_transaction, | 725 | err = journal_submit_commit_record(journal, commit_transaction, |
@@ -720,13 +730,6 @@ start_journal_io: | |||
720 | blkdev_issue_flush(journal->j_dev, NULL); | 730 | blkdev_issue_flush(journal->j_dev, NULL); |
721 | } | 731 | } |
722 | 732 | ||
723 | /* | ||
724 | * This is the right place to wait for data buffers both for ASYNC | ||
725 | * and !ASYNC commit. If commit is ASYNC, we need to wait only after | ||
726 | * the commit block went to disk (which happens above). If commit is | ||
727 | * SYNC, we need to wait for data buffers before we start writing | ||
728 | * commit block, which happens below in such setting. | ||
729 | */ | ||
730 | err = journal_finish_inode_data_buffers(journal, commit_transaction); | 733 | err = journal_finish_inode_data_buffers(journal, commit_transaction); |
731 | if (err) { | 734 | if (err) { |
732 | printk(KERN_WARNING | 735 | printk(KERN_WARNING |
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 17af879e6e9..ac0d027595d 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c | |||
@@ -814,7 +814,7 @@ static journal_t * journal_init_common (void) | |||
814 | journal_t *journal; | 814 | journal_t *journal; |
815 | int err; | 815 | int err; |
816 | 816 | ||
817 | journal = kzalloc(sizeof(*journal), GFP_KERNEL|__GFP_NOFAIL); | 817 | journal = kzalloc(sizeof(*journal), GFP_KERNEL); |
818 | if (!journal) | 818 | if (!journal) |
819 | goto fail; | 819 | goto fail; |
820 | 820 | ||
diff --git a/fs/namei.c b/fs/namei.c index 68921d9b530..94a5e60779f 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -232,6 +232,7 @@ int generic_permission(struct inode *inode, int mask, | |||
232 | /* | 232 | /* |
233 | * Searching includes executable on directories, else just read. | 233 | * Searching includes executable on directories, else just read. |
234 | */ | 234 | */ |
235 | mask &= MAY_READ | MAY_WRITE | MAY_EXEC; | ||
235 | if (mask == MAY_READ || (S_ISDIR(inode->i_mode) && !(mask & MAY_WRITE))) | 236 | if (mask == MAY_READ || (S_ISDIR(inode->i_mode) && !(mask & MAY_WRITE))) |
236 | if (capable(CAP_DAC_READ_SEARCH)) | 237 | if (capable(CAP_DAC_READ_SEARCH)) |
237 | return 0; | 238 | return 0; |
@@ -560,6 +561,7 @@ static __always_inline int __do_follow_link(struct path *path, struct nameidata | |||
560 | dget(dentry); | 561 | dget(dentry); |
561 | } | 562 | } |
562 | mntget(path->mnt); | 563 | mntget(path->mnt); |
564 | nd->last_type = LAST_BIND; | ||
563 | cookie = dentry->d_inode->i_op->follow_link(dentry, nd); | 565 | cookie = dentry->d_inode->i_op->follow_link(dentry, nd); |
564 | error = PTR_ERR(cookie); | 566 | error = PTR_ERR(cookie); |
565 | if (!IS_ERR(cookie)) { | 567 | if (!IS_ERR(cookie)) { |
@@ -1602,11 +1604,12 @@ struct file *do_filp_open(int dfd, const char *pathname, | |||
1602 | struct file *filp; | 1604 | struct file *filp; |
1603 | struct nameidata nd; | 1605 | struct nameidata nd; |
1604 | int error; | 1606 | int error; |
1605 | struct path path, save; | 1607 | struct path path; |
1606 | struct dentry *dir; | 1608 | struct dentry *dir; |
1607 | int count = 0; | 1609 | int count = 0; |
1608 | int will_truncate; | 1610 | int will_truncate; |
1609 | int flag = open_to_namei_flags(open_flag); | 1611 | int flag = open_to_namei_flags(open_flag); |
1612 | int force_reval = 0; | ||
1610 | 1613 | ||
1611 | /* | 1614 | /* |
1612 | * O_SYNC is implemented as __O_SYNC|O_DSYNC. As many places only | 1615 | * O_SYNC is implemented as __O_SYNC|O_DSYNC. As many places only |
@@ -1618,7 +1621,7 @@ struct file *do_filp_open(int dfd, const char *pathname, | |||
1618 | open_flag |= O_DSYNC; | 1621 | open_flag |= O_DSYNC; |
1619 | 1622 | ||
1620 | if (!acc_mode) | 1623 | if (!acc_mode) |
1621 | acc_mode = MAY_OPEN | ACC_MODE(flag); | 1624 | acc_mode = MAY_OPEN | ACC_MODE(open_flag); |
1622 | 1625 | ||
1623 | /* O_TRUNC implies we need access checks for write permissions */ | 1626 | /* O_TRUNC implies we need access checks for write permissions */ |
1624 | if (flag & O_TRUNC) | 1627 | if (flag & O_TRUNC) |
@@ -1658,9 +1661,12 @@ struct file *do_filp_open(int dfd, const char *pathname, | |||
1658 | /* | 1661 | /* |
1659 | * Create - we need to know the parent. | 1662 | * Create - we need to know the parent. |
1660 | */ | 1663 | */ |
1664 | reval: | ||
1661 | error = path_init(dfd, pathname, LOOKUP_PARENT, &nd); | 1665 | error = path_init(dfd, pathname, LOOKUP_PARENT, &nd); |
1662 | if (error) | 1666 | if (error) |
1663 | return ERR_PTR(error); | 1667 | return ERR_PTR(error); |
1668 | if (force_reval) | ||
1669 | nd.flags |= LOOKUP_REVAL; | ||
1664 | error = path_walk(pathname, &nd); | 1670 | error = path_walk(pathname, &nd); |
1665 | if (error) { | 1671 | if (error) { |
1666 | if (nd.root.mnt) | 1672 | if (nd.root.mnt) |
@@ -1852,17 +1858,7 @@ do_link: | |||
1852 | error = security_inode_follow_link(path.dentry, &nd); | 1858 | error = security_inode_follow_link(path.dentry, &nd); |
1853 | if (error) | 1859 | if (error) |
1854 | goto exit_dput; | 1860 | goto exit_dput; |
1855 | save = nd.path; | ||
1856 | path_get(&save); | ||
1857 | error = __do_follow_link(&path, &nd); | 1861 | error = __do_follow_link(&path, &nd); |
1858 | if (error == -ESTALE) { | ||
1859 | /* nd.path had been dropped */ | ||
1860 | nd.path = save; | ||
1861 | path_get(&nd.path); | ||
1862 | nd.flags |= LOOKUP_REVAL; | ||
1863 | error = __do_follow_link(&path, &nd); | ||
1864 | } | ||
1865 | path_put(&save); | ||
1866 | path_put(&path); | 1862 | path_put(&path); |
1867 | if (error) { | 1863 | if (error) { |
1868 | /* Does someone understand code flow here? Or it is only | 1864 | /* Does someone understand code flow here? Or it is only |
@@ -1872,6 +1868,10 @@ do_link: | |||
1872 | release_open_intent(&nd); | 1868 | release_open_intent(&nd); |
1873 | if (nd.root.mnt) | 1869 | if (nd.root.mnt) |
1874 | path_put(&nd.root); | 1870 | path_put(&nd.root); |
1871 | if (error == -ESTALE && !force_reval) { | ||
1872 | force_reval = 1; | ||
1873 | goto reval; | ||
1874 | } | ||
1875 | return ERR_PTR(error); | 1875 | return ERR_PTR(error); |
1876 | } | 1876 | } |
1877 | nd.flags &= ~LOOKUP_PARENT; | 1877 | nd.flags &= ~LOOKUP_PARENT; |
diff --git a/fs/namespace.c b/fs/namespace.c index 7d70d63ceb2..c768f733c8d 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
@@ -965,10 +965,12 @@ EXPORT_SYMBOL(may_umount_tree); | |||
965 | int may_umount(struct vfsmount *mnt) | 965 | int may_umount(struct vfsmount *mnt) |
966 | { | 966 | { |
967 | int ret = 1; | 967 | int ret = 1; |
968 | down_read(&namespace_sem); | ||
968 | spin_lock(&vfsmount_lock); | 969 | spin_lock(&vfsmount_lock); |
969 | if (propagate_mount_busy(mnt, 2)) | 970 | if (propagate_mount_busy(mnt, 2)) |
970 | ret = 0; | 971 | ret = 0; |
971 | spin_unlock(&vfsmount_lock); | 972 | spin_unlock(&vfsmount_lock); |
973 | up_read(&namespace_sem); | ||
972 | return ret; | 974 | return ret; |
973 | } | 975 | } |
974 | 976 | ||
@@ -1352,12 +1354,12 @@ static int attach_recursive_mnt(struct vfsmount *source_mnt, | |||
1352 | if (err) | 1354 | if (err) |
1353 | goto out_cleanup_ids; | 1355 | goto out_cleanup_ids; |
1354 | 1356 | ||
1357 | spin_lock(&vfsmount_lock); | ||
1358 | |||
1355 | if (IS_MNT_SHARED(dest_mnt)) { | 1359 | if (IS_MNT_SHARED(dest_mnt)) { |
1356 | for (p = source_mnt; p; p = next_mnt(p, source_mnt)) | 1360 | for (p = source_mnt; p; p = next_mnt(p, source_mnt)) |
1357 | set_mnt_shared(p); | 1361 | set_mnt_shared(p); |
1358 | } | 1362 | } |
1359 | |||
1360 | spin_lock(&vfsmount_lock); | ||
1361 | if (parent_path) { | 1363 | if (parent_path) { |
1362 | detach_mnt(source_mnt, parent_path); | 1364 | detach_mnt(source_mnt, parent_path); |
1363 | attach_mnt(source_mnt, path); | 1365 | attach_mnt(source_mnt, path); |
@@ -1534,8 +1536,12 @@ static int do_remount(struct path *path, int flags, int mnt_flags, | |||
1534 | err = change_mount_flags(path->mnt, flags); | 1536 | err = change_mount_flags(path->mnt, flags); |
1535 | else | 1537 | else |
1536 | err = do_remount_sb(sb, flags, data, 0); | 1538 | err = do_remount_sb(sb, flags, data, 0); |
1537 | if (!err) | 1539 | if (!err) { |
1540 | spin_lock(&vfsmount_lock); | ||
1541 | mnt_flags |= path->mnt->mnt_flags & MNT_PNODE_MASK; | ||
1538 | path->mnt->mnt_flags = mnt_flags; | 1542 | path->mnt->mnt_flags = mnt_flags; |
1543 | spin_unlock(&vfsmount_lock); | ||
1544 | } | ||
1539 | up_write(&sb->s_umount); | 1545 | up_write(&sb->s_umount); |
1540 | if (!err) { | 1546 | if (!err) { |
1541 | security_sb_post_remount(path->mnt, flags, data); | 1547 | security_sb_post_remount(path->mnt, flags, data); |
@@ -1665,6 +1671,8 @@ int do_add_mount(struct vfsmount *newmnt, struct path *path, | |||
1665 | { | 1671 | { |
1666 | int err; | 1672 | int err; |
1667 | 1673 | ||
1674 | mnt_flags &= ~(MNT_SHARED | MNT_WRITE_HOLD); | ||
1675 | |||
1668 | down_write(&namespace_sem); | 1676 | down_write(&namespace_sem); |
1669 | /* Something was mounted here while we slept */ | 1677 | /* Something was mounted here while we slept */ |
1670 | while (d_mountpoint(path->dentry) && | 1678 | while (d_mountpoint(path->dentry) && |
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 2c5ace4f00a..3c7f03b669f 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
@@ -1615,6 +1615,7 @@ static int nfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
1615 | goto out; | 1615 | goto out; |
1616 | 1616 | ||
1617 | new_dentry = dentry; | 1617 | new_dentry = dentry; |
1618 | rehash = NULL; | ||
1618 | new_inode = NULL; | 1619 | new_inode = NULL; |
1619 | } | 1620 | } |
1620 | } | 1621 | } |
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 7c2e337d05a..c194793b642 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c | |||
@@ -780,12 +780,9 @@ static inline int nfsd_dosync(struct file *filp, struct dentry *dp, | |||
780 | int (*fsync) (struct file *, struct dentry *, int); | 780 | int (*fsync) (struct file *, struct dentry *, int); |
781 | int err; | 781 | int err; |
782 | 782 | ||
783 | err = filemap_fdatawrite(inode->i_mapping); | 783 | err = filemap_write_and_wait(inode->i_mapping); |
784 | if (err == 0 && fop && (fsync = fop->fsync)) | 784 | if (err == 0 && fop && (fsync = fop->fsync)) |
785 | err = fsync(filp, dp, 0); | 785 | err = fsync(filp, dp, 0); |
786 | if (err == 0) | ||
787 | err = filemap_fdatawait(inode->i_mapping); | ||
788 | |||
789 | return err; | 786 | return err; |
790 | } | 787 | } |
791 | 788 | ||
diff --git a/fs/nilfs2/bmap.c b/fs/nilfs2/bmap.c index f4a14ea2ed9..effdbdbe6c1 100644 --- a/fs/nilfs2/bmap.c +++ b/fs/nilfs2/bmap.c | |||
@@ -417,8 +417,8 @@ __u64 nilfs_bmap_data_get_key(const struct nilfs_bmap *bmap, | |||
417 | 417 | ||
418 | key = page_index(bh->b_page) << (PAGE_CACHE_SHIFT - | 418 | key = page_index(bh->b_page) << (PAGE_CACHE_SHIFT - |
419 | bmap->b_inode->i_blkbits); | 419 | bmap->b_inode->i_blkbits); |
420 | for (pbh = page_buffers(bh->b_page); pbh != bh; | 420 | for (pbh = page_buffers(bh->b_page); pbh != bh; pbh = pbh->b_this_page) |
421 | pbh = pbh->b_this_page, key++); | 421 | key++; |
422 | 422 | ||
423 | return key; | 423 | return key; |
424 | } | 424 | } |
diff --git a/fs/nilfs2/cpfile.c b/fs/nilfs2/cpfile.c index d5ad54e204a..18737818db6 100644 --- a/fs/nilfs2/cpfile.c +++ b/fs/nilfs2/cpfile.c | |||
@@ -328,19 +328,24 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile, | |||
328 | tnicps += nicps; | 328 | tnicps += nicps; |
329 | nilfs_mdt_mark_buffer_dirty(cp_bh); | 329 | nilfs_mdt_mark_buffer_dirty(cp_bh); |
330 | nilfs_mdt_mark_dirty(cpfile); | 330 | nilfs_mdt_mark_dirty(cpfile); |
331 | if (!nilfs_cpfile_is_in_first(cpfile, cno) && | 331 | if (!nilfs_cpfile_is_in_first(cpfile, cno)) { |
332 | (count = nilfs_cpfile_block_sub_valid_checkpoints( | 332 | count = |
333 | cpfile, cp_bh, kaddr, nicps)) == 0) { | 333 | nilfs_cpfile_block_sub_valid_checkpoints( |
334 | /* make hole */ | 334 | cpfile, cp_bh, kaddr, nicps); |
335 | kunmap_atomic(kaddr, KM_USER0); | 335 | if (count == 0) { |
336 | brelse(cp_bh); | 336 | /* make hole */ |
337 | ret = nilfs_cpfile_delete_checkpoint_block( | 337 | kunmap_atomic(kaddr, KM_USER0); |
338 | cpfile, cno); | 338 | brelse(cp_bh); |
339 | if (ret == 0) | 339 | ret = |
340 | continue; | 340 | nilfs_cpfile_delete_checkpoint_block( |
341 | printk(KERN_ERR "%s: cannot delete block\n", | 341 | cpfile, cno); |
342 | __func__); | 342 | if (ret == 0) |
343 | break; | 343 | continue; |
344 | printk(KERN_ERR | ||
345 | "%s: cannot delete block\n", | ||
346 | __func__); | ||
347 | break; | ||
348 | } | ||
344 | } | 349 | } |
345 | } | 350 | } |
346 | 351 | ||
diff --git a/fs/nilfs2/direct.c b/fs/nilfs2/direct.c index d369ac71827..236753df5cd 100644 --- a/fs/nilfs2/direct.c +++ b/fs/nilfs2/direct.c | |||
@@ -51,11 +51,11 @@ static int nilfs_direct_lookup(const struct nilfs_bmap *bmap, | |||
51 | struct nilfs_direct *direct; | 51 | struct nilfs_direct *direct; |
52 | __u64 ptr; | 52 | __u64 ptr; |
53 | 53 | ||
54 | direct = (struct nilfs_direct *)bmap; | 54 | direct = (struct nilfs_direct *)bmap; /* XXX: use macro for level 1 */ |
55 | if ((key > NILFS_DIRECT_KEY_MAX) || | 55 | if (key > NILFS_DIRECT_KEY_MAX || level != 1) |
56 | (level != 1) || /* XXX: use macro for level 1 */ | 56 | return -ENOENT; |
57 | ((ptr = nilfs_direct_get_ptr(direct, key)) == | 57 | ptr = nilfs_direct_get_ptr(direct, key); |
58 | NILFS_BMAP_INVALID_PTR)) | 58 | if (ptr == NILFS_BMAP_INVALID_PTR) |
59 | return -ENOENT; | 59 | return -ENOENT; |
60 | 60 | ||
61 | if (ptrp != NULL) | 61 | if (ptrp != NULL) |
@@ -73,9 +73,10 @@ static int nilfs_direct_lookup_contig(const struct nilfs_bmap *bmap, | |||
73 | sector_t blocknr; | 73 | sector_t blocknr; |
74 | int ret, cnt; | 74 | int ret, cnt; |
75 | 75 | ||
76 | if (key > NILFS_DIRECT_KEY_MAX || | 76 | if (key > NILFS_DIRECT_KEY_MAX) |
77 | (ptr = nilfs_direct_get_ptr(direct, key)) == | 77 | return -ENOENT; |
78 | NILFS_BMAP_INVALID_PTR) | 78 | ptr = nilfs_direct_get_ptr(direct, key); |
79 | if (ptr == NILFS_BMAP_INVALID_PTR) | ||
79 | return -ENOENT; | 80 | return -ENOENT; |
80 | 81 | ||
81 | if (NILFS_BMAP_USE_VBN(bmap)) { | 82 | if (NILFS_BMAP_USE_VBN(bmap)) { |
diff --git a/fs/nilfs2/ioctl.c b/fs/nilfs2/ioctl.c index f6af76042d8..d6b2b83de36 100644 --- a/fs/nilfs2/ioctl.c +++ b/fs/nilfs2/ioctl.c | |||
@@ -480,7 +480,7 @@ static int nilfs_ioctl_clean_segments(struct inode *inode, struct file *filp, | |||
480 | unsigned int cmd, void __user *argp) | 480 | unsigned int cmd, void __user *argp) |
481 | { | 481 | { |
482 | struct nilfs_argv argv[5]; | 482 | struct nilfs_argv argv[5]; |
483 | const static size_t argsz[5] = { | 483 | static const size_t argsz[5] = { |
484 | sizeof(struct nilfs_vdesc), | 484 | sizeof(struct nilfs_vdesc), |
485 | sizeof(struct nilfs_period), | 485 | sizeof(struct nilfs_period), |
486 | sizeof(__u64), | 486 | sizeof(__u64), |
diff --git a/fs/notify/inotify/inotify_fsnotify.c b/fs/notify/inotify/inotify_fsnotify.c index c9ee67b442e..1afb0a10229 100644 --- a/fs/notify/inotify/inotify_fsnotify.c +++ b/fs/notify/inotify/inotify_fsnotify.c | |||
@@ -121,7 +121,7 @@ static int idr_callback(int id, void *p, void *data) | |||
121 | if (warned) | 121 | if (warned) |
122 | return 0; | 122 | return 0; |
123 | 123 | ||
124 | warned = false; | 124 | warned = true; |
125 | entry = p; | 125 | entry = p; |
126 | ientry = container_of(entry, struct inotify_inode_mark_entry, fsn_entry); | 126 | ientry = container_of(entry, struct inotify_inode_mark_entry, fsn_entry); |
127 | 127 | ||
diff --git a/fs/notify/inotify/inotify_user.c b/fs/notify/inotify/inotify_user.c index 8271cf05c95..a94e8bd8eb1 100644 --- a/fs/notify/inotify/inotify_user.c +++ b/fs/notify/inotify/inotify_user.c | |||
@@ -552,7 +552,7 @@ retry: | |||
552 | 552 | ||
553 | spin_lock(&group->inotify_data.idr_lock); | 553 | spin_lock(&group->inotify_data.idr_lock); |
554 | ret = idr_get_new_above(&group->inotify_data.idr, &tmp_ientry->fsn_entry, | 554 | ret = idr_get_new_above(&group->inotify_data.idr, &tmp_ientry->fsn_entry, |
555 | group->inotify_data.last_wd, | 555 | group->inotify_data.last_wd+1, |
556 | &tmp_ientry->wd); | 556 | &tmp_ientry->wd); |
557 | spin_unlock(&group->inotify_data.idr_lock); | 557 | spin_unlock(&group->inotify_data.idr_lock); |
558 | if (ret) { | 558 | if (ret) { |
@@ -632,7 +632,7 @@ static struct fsnotify_group *inotify_new_group(struct user_struct *user, unsign | |||
632 | 632 | ||
633 | spin_lock_init(&group->inotify_data.idr_lock); | 633 | spin_lock_init(&group->inotify_data.idr_lock); |
634 | idr_init(&group->inotify_data.idr); | 634 | idr_init(&group->inotify_data.idr); |
635 | group->inotify_data.last_wd = 1; | 635 | group->inotify_data.last_wd = 0; |
636 | group->inotify_data.user = user; | 636 | group->inotify_data.user = user; |
637 | group->inotify_data.fa = NULL; | 637 | group->inotify_data.fa = NULL; |
638 | 638 | ||
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 3d30a1c974a..06ccf6a86d3 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c | |||
@@ -1772,7 +1772,8 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry, | |||
1772 | loff_t *ppos, | 1772 | loff_t *ppos, |
1773 | size_t count, | 1773 | size_t count, |
1774 | int appending, | 1774 | int appending, |
1775 | int *direct_io) | 1775 | int *direct_io, |
1776 | int *has_refcount) | ||
1776 | { | 1777 | { |
1777 | int ret = 0, meta_level = 0; | 1778 | int ret = 0, meta_level = 0; |
1778 | struct inode *inode = dentry->d_inode; | 1779 | struct inode *inode = dentry->d_inode; |
@@ -1833,6 +1834,8 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry, | |||
1833 | saved_pos, | 1834 | saved_pos, |
1834 | count, | 1835 | count, |
1835 | &meta_level); | 1836 | &meta_level); |
1837 | if (has_refcount) | ||
1838 | *has_refcount = 1; | ||
1836 | } | 1839 | } |
1837 | 1840 | ||
1838 | if (ret < 0) { | 1841 | if (ret < 0) { |
@@ -1856,6 +1859,10 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry, | |||
1856 | break; | 1859 | break; |
1857 | } | 1860 | } |
1858 | 1861 | ||
1862 | if (has_refcount && *has_refcount == 1) { | ||
1863 | *direct_io = 0; | ||
1864 | break; | ||
1865 | } | ||
1859 | /* | 1866 | /* |
1860 | * Allowing concurrent direct writes means | 1867 | * Allowing concurrent direct writes means |
1861 | * i_size changes wouldn't be synchronized, so | 1868 | * i_size changes wouldn't be synchronized, so |
@@ -1899,7 +1906,7 @@ static ssize_t ocfs2_file_aio_write(struct kiocb *iocb, | |||
1899 | loff_t pos) | 1906 | loff_t pos) |
1900 | { | 1907 | { |
1901 | int ret, direct_io, appending, rw_level, have_alloc_sem = 0; | 1908 | int ret, direct_io, appending, rw_level, have_alloc_sem = 0; |
1902 | int can_do_direct; | 1909 | int can_do_direct, has_refcount = 0; |
1903 | ssize_t written = 0; | 1910 | ssize_t written = 0; |
1904 | size_t ocount; /* original count */ | 1911 | size_t ocount; /* original count */ |
1905 | size_t count; /* after file limit checks */ | 1912 | size_t count; /* after file limit checks */ |
@@ -1942,7 +1949,7 @@ relock: | |||
1942 | can_do_direct = direct_io; | 1949 | can_do_direct = direct_io; |
1943 | ret = ocfs2_prepare_inode_for_write(file->f_path.dentry, ppos, | 1950 | ret = ocfs2_prepare_inode_for_write(file->f_path.dentry, ppos, |
1944 | iocb->ki_left, appending, | 1951 | iocb->ki_left, appending, |
1945 | &can_do_direct); | 1952 | &can_do_direct, &has_refcount); |
1946 | if (ret < 0) { | 1953 | if (ret < 0) { |
1947 | mlog_errno(ret); | 1954 | mlog_errno(ret); |
1948 | goto out; | 1955 | goto out; |
@@ -2006,14 +2013,16 @@ out_dio: | |||
2006 | /* buffered aio wouldn't have proper lock coverage today */ | 2013 | /* buffered aio wouldn't have proper lock coverage today */ |
2007 | BUG_ON(ret == -EIOCBQUEUED && !(file->f_flags & O_DIRECT)); | 2014 | BUG_ON(ret == -EIOCBQUEUED && !(file->f_flags & O_DIRECT)); |
2008 | 2015 | ||
2009 | if ((file->f_flags & O_DSYNC && !direct_io) || IS_SYNC(inode)) { | 2016 | if ((file->f_flags & O_DSYNC && !direct_io) || IS_SYNC(inode) || |
2017 | (file->f_flags & O_DIRECT && has_refcount)) { | ||
2010 | ret = filemap_fdatawrite_range(file->f_mapping, pos, | 2018 | ret = filemap_fdatawrite_range(file->f_mapping, pos, |
2011 | pos + count - 1); | 2019 | pos + count - 1); |
2012 | if (ret < 0) | 2020 | if (ret < 0) |
2013 | written = ret; | 2021 | written = ret; |
2014 | 2022 | ||
2015 | if (!ret && (old_size != i_size_read(inode) || | 2023 | if (!ret && (old_size != i_size_read(inode) || |
2016 | old_clusters != OCFS2_I(inode)->ip_clusters)) { | 2024 | old_clusters != OCFS2_I(inode)->ip_clusters || |
2025 | has_refcount)) { | ||
2017 | ret = jbd2_journal_force_commit(osb->journal->j_journal); | 2026 | ret = jbd2_journal_force_commit(osb->journal->j_journal); |
2018 | if (ret < 0) | 2027 | if (ret < 0) |
2019 | written = ret; | 2028 | written = ret; |
@@ -2062,7 +2071,7 @@ static int ocfs2_splice_to_file(struct pipe_inode_info *pipe, | |||
2062 | int ret; | 2071 | int ret; |
2063 | 2072 | ||
2064 | ret = ocfs2_prepare_inode_for_write(out->f_path.dentry, &sd->pos, | 2073 | ret = ocfs2_prepare_inode_for_write(out->f_path.dentry, &sd->pos, |
2065 | sd->total_len, 0, NULL); | 2074 | sd->total_len, 0, NULL, NULL); |
2066 | if (ret < 0) { | 2075 | if (ret < 0) { |
2067 | mlog_errno(ret); | 2076 | mlog_errno(ret); |
2068 | return ret; | 2077 | return ret; |
diff --git a/fs/proc/array.c b/fs/proc/array.c index f560325c444..13b5d070817 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c | |||
@@ -327,94 +327,6 @@ static inline void task_context_switch_counts(struct seq_file *m, | |||
327 | p->nivcsw); | 327 | p->nivcsw); |
328 | } | 328 | } |
329 | 329 | ||
330 | #ifdef CONFIG_MMU | ||
331 | |||
332 | struct stack_stats { | ||
333 | struct vm_area_struct *vma; | ||
334 | unsigned long startpage; | ||
335 | unsigned long usage; | ||
336 | }; | ||
337 | |||
338 | static int stack_usage_pte_range(pmd_t *pmd, unsigned long addr, | ||
339 | unsigned long end, struct mm_walk *walk) | ||
340 | { | ||
341 | struct stack_stats *ss = walk->private; | ||
342 | struct vm_area_struct *vma = ss->vma; | ||
343 | pte_t *pte, ptent; | ||
344 | spinlock_t *ptl; | ||
345 | int ret = 0; | ||
346 | |||
347 | pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); | ||
348 | for (; addr != end; pte++, addr += PAGE_SIZE) { | ||
349 | ptent = *pte; | ||
350 | |||
351 | #ifdef CONFIG_STACK_GROWSUP | ||
352 | if (pte_present(ptent) || is_swap_pte(ptent)) | ||
353 | ss->usage = addr - ss->startpage + PAGE_SIZE; | ||
354 | #else | ||
355 | if (pte_present(ptent) || is_swap_pte(ptent)) { | ||
356 | ss->usage = ss->startpage - addr + PAGE_SIZE; | ||
357 | pte++; | ||
358 | ret = 1; | ||
359 | break; | ||
360 | } | ||
361 | #endif | ||
362 | } | ||
363 | pte_unmap_unlock(pte - 1, ptl); | ||
364 | cond_resched(); | ||
365 | return ret; | ||
366 | } | ||
367 | |||
368 | static inline unsigned long get_stack_usage_in_bytes(struct vm_area_struct *vma, | ||
369 | struct task_struct *task) | ||
370 | { | ||
371 | struct stack_stats ss; | ||
372 | struct mm_walk stack_walk = { | ||
373 | .pmd_entry = stack_usage_pte_range, | ||
374 | .mm = vma->vm_mm, | ||
375 | .private = &ss, | ||
376 | }; | ||
377 | |||
378 | if (!vma->vm_mm || is_vm_hugetlb_page(vma)) | ||
379 | return 0; | ||
380 | |||
381 | ss.vma = vma; | ||
382 | ss.startpage = task->stack_start & PAGE_MASK; | ||
383 | ss.usage = 0; | ||
384 | |||
385 | #ifdef CONFIG_STACK_GROWSUP | ||
386 | walk_page_range(KSTK_ESP(task) & PAGE_MASK, vma->vm_end, | ||
387 | &stack_walk); | ||
388 | #else | ||
389 | walk_page_range(vma->vm_start, (KSTK_ESP(task) & PAGE_MASK) + PAGE_SIZE, | ||
390 | &stack_walk); | ||
391 | #endif | ||
392 | return ss.usage; | ||
393 | } | ||
394 | |||
395 | static inline void task_show_stack_usage(struct seq_file *m, | ||
396 | struct task_struct *task) | ||
397 | { | ||
398 | struct vm_area_struct *vma; | ||
399 | struct mm_struct *mm = get_task_mm(task); | ||
400 | |||
401 | if (mm) { | ||
402 | down_read(&mm->mmap_sem); | ||
403 | vma = find_vma(mm, task->stack_start); | ||
404 | if (vma) | ||
405 | seq_printf(m, "Stack usage:\t%lu kB\n", | ||
406 | get_stack_usage_in_bytes(vma, task) >> 10); | ||
407 | |||
408 | up_read(&mm->mmap_sem); | ||
409 | mmput(mm); | ||
410 | } | ||
411 | } | ||
412 | #else | ||
413 | static void task_show_stack_usage(struct seq_file *m, struct task_struct *task) | ||
414 | { | ||
415 | } | ||
416 | #endif /* CONFIG_MMU */ | ||
417 | |||
418 | static void task_cpus_allowed(struct seq_file *m, struct task_struct *task) | 330 | static void task_cpus_allowed(struct seq_file *m, struct task_struct *task) |
419 | { | 331 | { |
420 | seq_printf(m, "Cpus_allowed:\t"); | 332 | seq_printf(m, "Cpus_allowed:\t"); |
@@ -445,7 +357,6 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns, | |||
445 | task_show_regs(m, task); | 357 | task_show_regs(m, task); |
446 | #endif | 358 | #endif |
447 | task_context_switch_counts(m, task); | 359 | task_context_switch_counts(m, task); |
448 | task_show_stack_usage(m, task); | ||
449 | return 0; | 360 | return 0; |
450 | } | 361 | } |
451 | 362 | ||
diff --git a/fs/proc/base.c b/fs/proc/base.c index 18d5cc62d8e..e42bbd843ed 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
@@ -1419,7 +1419,6 @@ static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd) | |||
1419 | goto out; | 1419 | goto out; |
1420 | 1420 | ||
1421 | error = PROC_I(inode)->op.proc_get_link(inode, &nd->path); | 1421 | error = PROC_I(inode)->op.proc_get_link(inode, &nd->path); |
1422 | nd->last_type = LAST_BIND; | ||
1423 | out: | 1422 | out: |
1424 | return ERR_PTR(error); | 1423 | return ERR_PTR(error); |
1425 | } | 1424 | } |
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 47c03f4336b..f277c4a111c 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c | |||
@@ -361,12 +361,11 @@ static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, | |||
361 | if (!pte_present(ptent)) | 361 | if (!pte_present(ptent)) |
362 | continue; | 362 | continue; |
363 | 363 | ||
364 | mss->resident += PAGE_SIZE; | ||
365 | |||
366 | page = vm_normal_page(vma, addr, ptent); | 364 | page = vm_normal_page(vma, addr, ptent); |
367 | if (!page) | 365 | if (!page) |
368 | continue; | 366 | continue; |
369 | 367 | ||
368 | mss->resident += PAGE_SIZE; | ||
370 | /* Accumulate the size in pages that have been accessed. */ | 369 | /* Accumulate the size in pages that have been accessed. */ |
371 | if (pte_young(ptent) || PageReferenced(page)) | 370 | if (pte_young(ptent) || PageReferenced(page)) |
372 | mss->referenced += PAGE_SIZE; | 371 | mss->referenced += PAGE_SIZE; |
diff --git a/fs/quota/dquot.c b/fs/quota/dquot.c index dea86abdf2e..3fc62b097be 100644 --- a/fs/quota/dquot.c +++ b/fs/quota/dquot.c | |||
@@ -1377,6 +1377,9 @@ static void inode_sub_rsv_space(struct inode *inode, qsize_t number) | |||
1377 | static qsize_t inode_get_rsv_space(struct inode *inode) | 1377 | static qsize_t inode_get_rsv_space(struct inode *inode) |
1378 | { | 1378 | { |
1379 | qsize_t ret; | 1379 | qsize_t ret; |
1380 | |||
1381 | if (!inode->i_sb->dq_op->get_reserved_space) | ||
1382 | return 0; | ||
1380 | spin_lock(&inode->i_lock); | 1383 | spin_lock(&inode->i_lock); |
1381 | ret = *inode_reserved_space(inode); | 1384 | ret = *inode_reserved_space(inode); |
1382 | spin_unlock(&inode->i_lock); | 1385 | spin_unlock(&inode->i_lock); |
diff --git a/fs/ramfs/file-nommu.c b/fs/ramfs/file-nommu.c index 2efc57173fd..1739a4aba25 100644 --- a/fs/ramfs/file-nommu.c +++ b/fs/ramfs/file-nommu.c | |||
@@ -123,30 +123,6 @@ add_error: | |||
123 | 123 | ||
124 | /*****************************************************************************/ | 124 | /*****************************************************************************/ |
125 | /* | 125 | /* |
126 | * check that file shrinkage doesn't leave any VMAs dangling in midair | ||
127 | */ | ||
128 | static int ramfs_nommu_check_mappings(struct inode *inode, | ||
129 | size_t newsize, size_t size) | ||
130 | { | ||
131 | struct vm_area_struct *vma; | ||
132 | struct prio_tree_iter iter; | ||
133 | |||
134 | /* search for VMAs that fall within the dead zone */ | ||
135 | vma_prio_tree_foreach(vma, &iter, &inode->i_mapping->i_mmap, | ||
136 | newsize >> PAGE_SHIFT, | ||
137 | (size + PAGE_SIZE - 1) >> PAGE_SHIFT | ||
138 | ) { | ||
139 | /* found one - only interested if it's shared out of the page | ||
140 | * cache */ | ||
141 | if (vma->vm_flags & VM_SHARED) | ||
142 | return -ETXTBSY; /* not quite true, but near enough */ | ||
143 | } | ||
144 | |||
145 | return 0; | ||
146 | } | ||
147 | |||
148 | /*****************************************************************************/ | ||
149 | /* | ||
150 | * | 126 | * |
151 | */ | 127 | */ |
152 | static int ramfs_nommu_resize(struct inode *inode, loff_t newsize, loff_t size) | 128 | static int ramfs_nommu_resize(struct inode *inode, loff_t newsize, loff_t size) |
@@ -164,7 +140,7 @@ static int ramfs_nommu_resize(struct inode *inode, loff_t newsize, loff_t size) | |||
164 | 140 | ||
165 | /* check that a decrease in size doesn't cut off any shared mappings */ | 141 | /* check that a decrease in size doesn't cut off any shared mappings */ |
166 | if (newsize < size) { | 142 | if (newsize < size) { |
167 | ret = ramfs_nommu_check_mappings(inode, newsize, size); | 143 | ret = nommu_shrink_inode_mappings(inode, size, newsize); |
168 | if (ret < 0) | 144 | if (ret < 0) |
169 | return ret; | 145 | return ret; |
170 | } | 146 | } |
diff --git a/fs/reiserfs/bitmap.c b/fs/reiserfs/bitmap.c index 68549570718..65c87276117 100644 --- a/fs/reiserfs/bitmap.c +++ b/fs/reiserfs/bitmap.c | |||
@@ -1277,7 +1277,10 @@ int reiserfs_init_bitmap_cache(struct super_block *sb) | |||
1277 | struct reiserfs_bitmap_info *bitmap; | 1277 | struct reiserfs_bitmap_info *bitmap; |
1278 | unsigned int bmap_nr = reiserfs_bmap_count(sb); | 1278 | unsigned int bmap_nr = reiserfs_bmap_count(sb); |
1279 | 1279 | ||
1280 | /* Avoid lock recursion in fault case */ | ||
1281 | reiserfs_write_unlock(sb); | ||
1280 | bitmap = vmalloc(sizeof(*bitmap) * bmap_nr); | 1282 | bitmap = vmalloc(sizeof(*bitmap) * bmap_nr); |
1283 | reiserfs_write_lock(sb); | ||
1281 | if (bitmap == NULL) | 1284 | if (bitmap == NULL) |
1282 | return -ENOMEM; | 1285 | return -ENOMEM; |
1283 | 1286 | ||
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c index 290ae38fca8..9087b10209e 100644 --- a/fs/reiserfs/inode.c +++ b/fs/reiserfs/inode.c | |||
@@ -31,11 +31,12 @@ void reiserfs_delete_inode(struct inode *inode) | |||
31 | JOURNAL_PER_BALANCE_CNT * 2 + | 31 | JOURNAL_PER_BALANCE_CNT * 2 + |
32 | 2 * REISERFS_QUOTA_INIT_BLOCKS(inode->i_sb); | 32 | 2 * REISERFS_QUOTA_INIT_BLOCKS(inode->i_sb); |
33 | struct reiserfs_transaction_handle th; | 33 | struct reiserfs_transaction_handle th; |
34 | int depth; | ||
34 | int err; | 35 | int err; |
35 | 36 | ||
36 | truncate_inode_pages(&inode->i_data, 0); | 37 | truncate_inode_pages(&inode->i_data, 0); |
37 | 38 | ||
38 | reiserfs_write_lock(inode->i_sb); | 39 | depth = reiserfs_write_lock_once(inode->i_sb); |
39 | 40 | ||
40 | /* The = 0 happens when we abort creating a new inode for some reason like lack of space.. */ | 41 | /* The = 0 happens when we abort creating a new inode for some reason like lack of space.. */ |
41 | if (!(inode->i_state & I_NEW) && INODE_PKEY(inode)->k_objectid != 0) { /* also handles bad_inode case */ | 42 | if (!(inode->i_state & I_NEW) && INODE_PKEY(inode)->k_objectid != 0) { /* also handles bad_inode case */ |
@@ -74,7 +75,7 @@ void reiserfs_delete_inode(struct inode *inode) | |||
74 | out: | 75 | out: |
75 | clear_inode(inode); /* note this must go after the journal_end to prevent deadlock */ | 76 | clear_inode(inode); /* note this must go after the journal_end to prevent deadlock */ |
76 | inode->i_blocks = 0; | 77 | inode->i_blocks = 0; |
77 | reiserfs_write_unlock(inode->i_sb); | 78 | reiserfs_write_unlock_once(inode->i_sb, depth); |
78 | } | 79 | } |
79 | 80 | ||
80 | static void _make_cpu_key(struct cpu_key *key, int version, __u32 dirid, | 81 | static void _make_cpu_key(struct cpu_key *key, int version, __u32 dirid, |
@@ -3061,13 +3062,14 @@ static ssize_t reiserfs_direct_IO(int rw, struct kiocb *iocb, | |||
3061 | int reiserfs_setattr(struct dentry *dentry, struct iattr *attr) | 3062 | int reiserfs_setattr(struct dentry *dentry, struct iattr *attr) |
3062 | { | 3063 | { |
3063 | struct inode *inode = dentry->d_inode; | 3064 | struct inode *inode = dentry->d_inode; |
3064 | int error; | ||
3065 | unsigned int ia_valid; | 3065 | unsigned int ia_valid; |
3066 | int depth; | ||
3067 | int error; | ||
3066 | 3068 | ||
3067 | /* must be turned off for recursive notify_change calls */ | 3069 | /* must be turned off for recursive notify_change calls */ |
3068 | ia_valid = attr->ia_valid &= ~(ATTR_KILL_SUID|ATTR_KILL_SGID); | 3070 | ia_valid = attr->ia_valid &= ~(ATTR_KILL_SUID|ATTR_KILL_SGID); |
3069 | 3071 | ||
3070 | reiserfs_write_lock(inode->i_sb); | 3072 | depth = reiserfs_write_lock_once(inode->i_sb); |
3071 | if (attr->ia_valid & ATTR_SIZE) { | 3073 | if (attr->ia_valid & ATTR_SIZE) { |
3072 | /* version 2 items will be caught by the s_maxbytes check | 3074 | /* version 2 items will be caught by the s_maxbytes check |
3073 | ** done for us in vmtruncate | 3075 | ** done for us in vmtruncate |
@@ -3148,8 +3150,17 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr) | |||
3148 | journal_end(&th, inode->i_sb, jbegin_count); | 3150 | journal_end(&th, inode->i_sb, jbegin_count); |
3149 | } | 3151 | } |
3150 | } | 3152 | } |
3151 | if (!error) | 3153 | if (!error) { |
3154 | /* | ||
3155 | * Relax the lock here, as it might truncate the | ||
3156 | * inode pages and wait for inode pages locks. | ||
3157 | * To release such page lock, the owner needs the | ||
3158 | * reiserfs lock | ||
3159 | */ | ||
3160 | reiserfs_write_unlock_once(inode->i_sb, depth); | ||
3152 | error = inode_setattr(inode, attr); | 3161 | error = inode_setattr(inode, attr); |
3162 | depth = reiserfs_write_lock_once(inode->i_sb); | ||
3163 | } | ||
3153 | } | 3164 | } |
3154 | 3165 | ||
3155 | if (!error && reiserfs_posixacl(inode->i_sb)) { | 3166 | if (!error && reiserfs_posixacl(inode->i_sb)) { |
@@ -3158,7 +3169,8 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr) | |||
3158 | } | 3169 | } |
3159 | 3170 | ||
3160 | out: | 3171 | out: |
3161 | reiserfs_write_unlock(inode->i_sb); | 3172 | reiserfs_write_unlock_once(inode->i_sb, depth); |
3173 | |||
3162 | return error; | 3174 | return error; |
3163 | } | 3175 | } |
3164 | 3176 | ||
diff --git a/fs/reiserfs/ioctl.c b/fs/reiserfs/ioctl.c index ace77451ceb..f53505de071 100644 --- a/fs/reiserfs/ioctl.c +++ b/fs/reiserfs/ioctl.c | |||
@@ -104,9 +104,10 @@ setflags_out: | |||
104 | err = put_user(inode->i_generation, (int __user *)arg); | 104 | err = put_user(inode->i_generation, (int __user *)arg); |
105 | break; | 105 | break; |
106 | case REISERFS_IOC_SETVERSION: | 106 | case REISERFS_IOC_SETVERSION: |
107 | if (!is_owner_or_cap(inode)) | 107 | if (!is_owner_or_cap(inode)) { |
108 | err = -EPERM; | 108 | err = -EPERM; |
109 | break; | 109 | break; |
110 | } | ||
110 | err = mnt_want_write(filp->f_path.mnt); | 111 | err = mnt_want_write(filp->f_path.mnt); |
111 | if (err) | 112 | if (err) |
112 | break; | 113 | break; |
diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c index 2f8a7e7b8da..83ac4d3b3cb 100644 --- a/fs/reiserfs/journal.c +++ b/fs/reiserfs/journal.c | |||
@@ -2009,10 +2009,11 @@ static int do_journal_release(struct reiserfs_transaction_handle *th, | |||
2009 | destroy_workqueue(commit_wq); | 2009 | destroy_workqueue(commit_wq); |
2010 | commit_wq = NULL; | 2010 | commit_wq = NULL; |
2011 | } | 2011 | } |
2012 | reiserfs_write_lock(sb); | ||
2013 | 2012 | ||
2014 | free_journal_ram(sb); | 2013 | free_journal_ram(sb); |
2015 | 2014 | ||
2015 | reiserfs_write_lock(sb); | ||
2016 | |||
2016 | return 0; | 2017 | return 0; |
2017 | } | 2018 | } |
2018 | 2019 | ||
@@ -2758,11 +2759,18 @@ int journal_init(struct super_block *sb, const char *j_dev_name, | |||
2758 | struct reiserfs_journal *journal; | 2759 | struct reiserfs_journal *journal; |
2759 | struct reiserfs_journal_list *jl; | 2760 | struct reiserfs_journal_list *jl; |
2760 | char b[BDEVNAME_SIZE]; | 2761 | char b[BDEVNAME_SIZE]; |
2762 | int ret; | ||
2761 | 2763 | ||
2764 | /* | ||
2765 | * Unlock here to avoid various RECLAIM-FS-ON <-> IN-RECLAIM-FS | ||
2766 | * dependency inversion warnings. | ||
2767 | */ | ||
2768 | reiserfs_write_unlock(sb); | ||
2762 | journal = SB_JOURNAL(sb) = vmalloc(sizeof(struct reiserfs_journal)); | 2769 | journal = SB_JOURNAL(sb) = vmalloc(sizeof(struct reiserfs_journal)); |
2763 | if (!journal) { | 2770 | if (!journal) { |
2764 | reiserfs_warning(sb, "journal-1256", | 2771 | reiserfs_warning(sb, "journal-1256", |
2765 | "unable to get memory for journal structure"); | 2772 | "unable to get memory for journal structure"); |
2773 | reiserfs_write_lock(sb); | ||
2766 | return 1; | 2774 | return 1; |
2767 | } | 2775 | } |
2768 | memset(journal, 0, sizeof(struct reiserfs_journal)); | 2776 | memset(journal, 0, sizeof(struct reiserfs_journal)); |
@@ -2771,10 +2779,12 @@ int journal_init(struct super_block *sb, const char *j_dev_name, | |||
2771 | INIT_LIST_HEAD(&journal->j_working_list); | 2779 | INIT_LIST_HEAD(&journal->j_working_list); |
2772 | INIT_LIST_HEAD(&journal->j_journal_list); | 2780 | INIT_LIST_HEAD(&journal->j_journal_list); |
2773 | journal->j_persistent_trans = 0; | 2781 | journal->j_persistent_trans = 0; |
2774 | if (reiserfs_allocate_list_bitmaps(sb, | 2782 | ret = reiserfs_allocate_list_bitmaps(sb, journal->j_list_bitmap, |
2775 | journal->j_list_bitmap, | 2783 | reiserfs_bmap_count(sb)); |
2776 | reiserfs_bmap_count(sb))) | 2784 | reiserfs_write_lock(sb); |
2785 | if (ret) | ||
2777 | goto free_and_return; | 2786 | goto free_and_return; |
2787 | |||
2778 | allocate_bitmap_nodes(sb); | 2788 | allocate_bitmap_nodes(sb); |
2779 | 2789 | ||
2780 | /* reserved for journal area support */ | 2790 | /* reserved for journal area support */ |
diff --git a/fs/reiserfs/lock.c b/fs/reiserfs/lock.c index ee2cfc0fd8a..b87aa2c1afc 100644 --- a/fs/reiserfs/lock.c +++ b/fs/reiserfs/lock.c | |||
@@ -86,3 +86,12 @@ void reiserfs_check_lock_depth(struct super_block *sb, char *caller) | |||
86 | reiserfs_panic(sb, "%s called without kernel lock held %d", | 86 | reiserfs_panic(sb, "%s called without kernel lock held %d", |
87 | caller); | 87 | caller); |
88 | } | 88 | } |
89 | |||
90 | #ifdef CONFIG_REISERFS_CHECK | ||
91 | void reiserfs_lock_check_recursive(struct super_block *sb) | ||
92 | { | ||
93 | struct reiserfs_sb_info *sb_i = REISERFS_SB(sb); | ||
94 | |||
95 | WARN_ONCE((sb_i->lock_depth > 0), "Unwanted recursive reiserfs lock!\n"); | ||
96 | } | ||
97 | #endif | ||
diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c index e296ff72a6c..9d4dcf0b07c 100644 --- a/fs/reiserfs/namei.c +++ b/fs/reiserfs/namei.c | |||
@@ -921,6 +921,7 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry) | |||
921 | struct reiserfs_transaction_handle th; | 921 | struct reiserfs_transaction_handle th; |
922 | int jbegin_count; | 922 | int jbegin_count; |
923 | unsigned long savelink; | 923 | unsigned long savelink; |
924 | int depth; | ||
924 | 925 | ||
925 | inode = dentry->d_inode; | 926 | inode = dentry->d_inode; |
926 | 927 | ||
@@ -932,7 +933,7 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry) | |||
932 | JOURNAL_PER_BALANCE_CNT * 2 + 2 + | 933 | JOURNAL_PER_BALANCE_CNT * 2 + 2 + |
933 | 4 * REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb); | 934 | 4 * REISERFS_QUOTA_TRANS_BLOCKS(dir->i_sb); |
934 | 935 | ||
935 | reiserfs_write_lock(dir->i_sb); | 936 | depth = reiserfs_write_lock_once(dir->i_sb); |
936 | retval = journal_begin(&th, dir->i_sb, jbegin_count); | 937 | retval = journal_begin(&th, dir->i_sb, jbegin_count); |
937 | if (retval) | 938 | if (retval) |
938 | goto out_unlink; | 939 | goto out_unlink; |
@@ -993,7 +994,7 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry) | |||
993 | 994 | ||
994 | retval = journal_end(&th, dir->i_sb, jbegin_count); | 995 | retval = journal_end(&th, dir->i_sb, jbegin_count); |
995 | reiserfs_check_path(&path); | 996 | reiserfs_check_path(&path); |
996 | reiserfs_write_unlock(dir->i_sb); | 997 | reiserfs_write_unlock_once(dir->i_sb, depth); |
997 | return retval; | 998 | return retval; |
998 | 999 | ||
999 | end_unlink: | 1000 | end_unlink: |
@@ -1003,7 +1004,7 @@ static int reiserfs_unlink(struct inode *dir, struct dentry *dentry) | |||
1003 | if (err) | 1004 | if (err) |
1004 | retval = err; | 1005 | retval = err; |
1005 | out_unlink: | 1006 | out_unlink: |
1006 | reiserfs_write_unlock(dir->i_sb); | 1007 | reiserfs_write_unlock_once(dir->i_sb, depth); |
1007 | return retval; | 1008 | return retval; |
1008 | } | 1009 | } |
1009 | 1010 | ||
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c index 8c7033a8b67..81f09fab8ae 100644 --- a/fs/reiserfs/xattr.c +++ b/fs/reiserfs/xattr.c | |||
@@ -83,7 +83,8 @@ static int xattr_unlink(struct inode *dir, struct dentry *dentry) | |||
83 | BUG_ON(!mutex_is_locked(&dir->i_mutex)); | 83 | BUG_ON(!mutex_is_locked(&dir->i_mutex)); |
84 | vfs_dq_init(dir); | 84 | vfs_dq_init(dir); |
85 | 85 | ||
86 | mutex_lock_nested(&dentry->d_inode->i_mutex, I_MUTEX_CHILD); | 86 | reiserfs_mutex_lock_nested_safe(&dentry->d_inode->i_mutex, |
87 | I_MUTEX_CHILD, dir->i_sb); | ||
87 | error = dir->i_op->unlink(dir, dentry); | 88 | error = dir->i_op->unlink(dir, dentry); |
88 | mutex_unlock(&dentry->d_inode->i_mutex); | 89 | mutex_unlock(&dentry->d_inode->i_mutex); |
89 | 90 | ||
@@ -98,7 +99,8 @@ static int xattr_rmdir(struct inode *dir, struct dentry *dentry) | |||
98 | BUG_ON(!mutex_is_locked(&dir->i_mutex)); | 99 | BUG_ON(!mutex_is_locked(&dir->i_mutex)); |
99 | vfs_dq_init(dir); | 100 | vfs_dq_init(dir); |
100 | 101 | ||
101 | mutex_lock_nested(&dentry->d_inode->i_mutex, I_MUTEX_CHILD); | 102 | reiserfs_mutex_lock_nested_safe(&dentry->d_inode->i_mutex, |
103 | I_MUTEX_CHILD, dir->i_sb); | ||
102 | dentry_unhash(dentry); | 104 | dentry_unhash(dentry); |
103 | error = dir->i_op->rmdir(dir, dentry); | 105 | error = dir->i_op->rmdir(dir, dentry); |
104 | if (!error) | 106 | if (!error) |
@@ -235,16 +237,22 @@ static int reiserfs_for_each_xattr(struct inode *inode, | |||
235 | if (IS_PRIVATE(inode) || get_inode_sd_version(inode) == STAT_DATA_V1) | 237 | if (IS_PRIVATE(inode) || get_inode_sd_version(inode) == STAT_DATA_V1) |
236 | return 0; | 238 | return 0; |
237 | 239 | ||
240 | reiserfs_write_unlock(inode->i_sb); | ||
238 | dir = open_xa_dir(inode, XATTR_REPLACE); | 241 | dir = open_xa_dir(inode, XATTR_REPLACE); |
239 | if (IS_ERR(dir)) { | 242 | if (IS_ERR(dir)) { |
240 | err = PTR_ERR(dir); | 243 | err = PTR_ERR(dir); |
244 | reiserfs_write_lock(inode->i_sb); | ||
241 | goto out; | 245 | goto out; |
242 | } else if (!dir->d_inode) { | 246 | } else if (!dir->d_inode) { |
243 | err = 0; | 247 | err = 0; |
248 | reiserfs_write_lock(inode->i_sb); | ||
244 | goto out_dir; | 249 | goto out_dir; |
245 | } | 250 | } |
246 | 251 | ||
247 | mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_XATTR); | 252 | mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_XATTR); |
253 | |||
254 | reiserfs_write_lock(inode->i_sb); | ||
255 | |||
248 | buf.xadir = dir; | 256 | buf.xadir = dir; |
249 | err = reiserfs_readdir_dentry(dir, &buf, fill_with_dentries, &pos); | 257 | err = reiserfs_readdir_dentry(dir, &buf, fill_with_dentries, &pos); |
250 | while ((err == 0 || err == -ENOSPC) && buf.count) { | 258 | while ((err == 0 || err == -ENOSPC) && buf.count) { |
@@ -283,8 +291,9 @@ static int reiserfs_for_each_xattr(struct inode *inode, | |||
283 | err = journal_begin(&th, inode->i_sb, blocks); | 291 | err = journal_begin(&th, inode->i_sb, blocks); |
284 | if (!err) { | 292 | if (!err) { |
285 | int jerror; | 293 | int jerror; |
286 | mutex_lock_nested(&dir->d_parent->d_inode->i_mutex, | 294 | reiserfs_mutex_lock_nested_safe( |
287 | I_MUTEX_XATTR); | 295 | &dir->d_parent->d_inode->i_mutex, |
296 | I_MUTEX_XATTR, inode->i_sb); | ||
288 | err = action(dir, data); | 297 | err = action(dir, data); |
289 | jerror = journal_end(&th, inode->i_sb, blocks); | 298 | jerror = journal_end(&th, inode->i_sb, blocks); |
290 | mutex_unlock(&dir->d_parent->d_inode->i_mutex); | 299 | mutex_unlock(&dir->d_parent->d_inode->i_mutex); |
@@ -443,7 +452,9 @@ static int lookup_and_delete_xattr(struct inode *inode, const char *name) | |||
443 | } | 452 | } |
444 | 453 | ||
445 | if (dentry->d_inode) { | 454 | if (dentry->d_inode) { |
455 | reiserfs_write_lock(inode->i_sb); | ||
446 | err = xattr_unlink(xadir->d_inode, dentry); | 456 | err = xattr_unlink(xadir->d_inode, dentry); |
457 | reiserfs_write_unlock(inode->i_sb); | ||
447 | update_ctime(inode); | 458 | update_ctime(inode); |
448 | } | 459 | } |
449 | 460 | ||
@@ -477,15 +488,24 @@ reiserfs_xattr_set_handle(struct reiserfs_transaction_handle *th, | |||
477 | if (get_inode_sd_version(inode) == STAT_DATA_V1) | 488 | if (get_inode_sd_version(inode) == STAT_DATA_V1) |
478 | return -EOPNOTSUPP; | 489 | return -EOPNOTSUPP; |
479 | 490 | ||
480 | if (!buffer) | 491 | reiserfs_write_unlock(inode->i_sb); |
481 | return lookup_and_delete_xattr(inode, name); | 492 | |
493 | if (!buffer) { | ||
494 | err = lookup_and_delete_xattr(inode, name); | ||
495 | reiserfs_write_lock(inode->i_sb); | ||
496 | return err; | ||
497 | } | ||
482 | 498 | ||
483 | dentry = xattr_lookup(inode, name, flags); | 499 | dentry = xattr_lookup(inode, name, flags); |
484 | if (IS_ERR(dentry)) | 500 | if (IS_ERR(dentry)) { |
501 | reiserfs_write_lock(inode->i_sb); | ||
485 | return PTR_ERR(dentry); | 502 | return PTR_ERR(dentry); |
503 | } | ||
486 | 504 | ||
487 | down_write(&REISERFS_I(inode)->i_xattr_sem); | 505 | down_write(&REISERFS_I(inode)->i_xattr_sem); |
488 | 506 | ||
507 | reiserfs_write_lock(inode->i_sb); | ||
508 | |||
489 | xahash = xattr_hash(buffer, buffer_size); | 509 | xahash = xattr_hash(buffer, buffer_size); |
490 | while (buffer_pos < buffer_size || buffer_pos == 0) { | 510 | while (buffer_pos < buffer_size || buffer_pos == 0) { |
491 | size_t chunk; | 511 | size_t chunk; |
@@ -540,8 +560,12 @@ reiserfs_xattr_set_handle(struct reiserfs_transaction_handle *th, | |||
540 | .ia_size = buffer_size, | 560 | .ia_size = buffer_size, |
541 | .ia_valid = ATTR_SIZE | ATTR_CTIME, | 561 | .ia_valid = ATTR_SIZE | ATTR_CTIME, |
542 | }; | 562 | }; |
563 | |||
564 | reiserfs_write_unlock(inode->i_sb); | ||
543 | mutex_lock_nested(&dentry->d_inode->i_mutex, I_MUTEX_XATTR); | 565 | mutex_lock_nested(&dentry->d_inode->i_mutex, I_MUTEX_XATTR); |
544 | down_write(&dentry->d_inode->i_alloc_sem); | 566 | down_write(&dentry->d_inode->i_alloc_sem); |
567 | reiserfs_write_lock(inode->i_sb); | ||
568 | |||
545 | err = reiserfs_setattr(dentry, &newattrs); | 569 | err = reiserfs_setattr(dentry, &newattrs); |
546 | up_write(&dentry->d_inode->i_alloc_sem); | 570 | up_write(&dentry->d_inode->i_alloc_sem); |
547 | mutex_unlock(&dentry->d_inode->i_mutex); | 571 | mutex_unlock(&dentry->d_inode->i_mutex); |
diff --git a/fs/reiserfs/xattr_acl.c b/fs/reiserfs/xattr_acl.c index cc32e6ada67..dd20a7883f0 100644 --- a/fs/reiserfs/xattr_acl.c +++ b/fs/reiserfs/xattr_acl.c | |||
@@ -455,7 +455,9 @@ int reiserfs_acl_chmod(struct inode *inode) | |||
455 | return 0; | 455 | return 0; |
456 | } | 456 | } |
457 | 457 | ||
458 | reiserfs_write_unlock(inode->i_sb); | ||
458 | acl = reiserfs_get_acl(inode, ACL_TYPE_ACCESS); | 459 | acl = reiserfs_get_acl(inode, ACL_TYPE_ACCESS); |
460 | reiserfs_write_lock(inode->i_sb); | ||
459 | if (!acl) | 461 | if (!acl) |
460 | return 0; | 462 | return 0; |
461 | if (IS_ERR(acl)) | 463 | if (IS_ERR(acl)) |
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c index f05f2303a8b..699f371b9f1 100644 --- a/fs/sysfs/dir.c +++ b/fs/sysfs/dir.c | |||
@@ -106,8 +106,10 @@ static struct sysfs_dirent *sysfs_get_active(struct sysfs_dirent *sd) | |||
106 | return NULL; | 106 | return NULL; |
107 | 107 | ||
108 | t = atomic_cmpxchg(&sd->s_active, v, v + 1); | 108 | t = atomic_cmpxchg(&sd->s_active, v, v + 1); |
109 | if (likely(t == v)) | 109 | if (likely(t == v)) { |
110 | rwsem_acquire_read(&sd->dep_map, 0, 1, _RET_IP_); | ||
110 | return sd; | 111 | return sd; |
112 | } | ||
111 | if (t < 0) | 113 | if (t < 0) |
112 | return NULL; | 114 | return NULL; |
113 | 115 | ||
@@ -130,6 +132,7 @@ static void sysfs_put_active(struct sysfs_dirent *sd) | |||
130 | if (unlikely(!sd)) | 132 | if (unlikely(!sd)) |
131 | return; | 133 | return; |
132 | 134 | ||
135 | rwsem_release(&sd->dep_map, 1, _RET_IP_); | ||
133 | v = atomic_dec_return(&sd->s_active); | 136 | v = atomic_dec_return(&sd->s_active); |
134 | if (likely(v != SD_DEACTIVATED_BIAS)) | 137 | if (likely(v != SD_DEACTIVATED_BIAS)) |
135 | return; | 138 | return; |
@@ -194,15 +197,21 @@ static void sysfs_deactivate(struct sysfs_dirent *sd) | |||
194 | BUG_ON(sd->s_sibling || !(sd->s_flags & SYSFS_FLAG_REMOVED)); | 197 | BUG_ON(sd->s_sibling || !(sd->s_flags & SYSFS_FLAG_REMOVED)); |
195 | sd->s_sibling = (void *)&wait; | 198 | sd->s_sibling = (void *)&wait; |
196 | 199 | ||
200 | rwsem_acquire(&sd->dep_map, 0, 0, _RET_IP_); | ||
197 | /* atomic_add_return() is a mb(), put_active() will always see | 201 | /* atomic_add_return() is a mb(), put_active() will always see |
198 | * the updated sd->s_sibling. | 202 | * the updated sd->s_sibling. |
199 | */ | 203 | */ |
200 | v = atomic_add_return(SD_DEACTIVATED_BIAS, &sd->s_active); | 204 | v = atomic_add_return(SD_DEACTIVATED_BIAS, &sd->s_active); |
201 | 205 | ||
202 | if (v != SD_DEACTIVATED_BIAS) | 206 | if (v != SD_DEACTIVATED_BIAS) { |
207 | lock_contended(&sd->dep_map, _RET_IP_); | ||
203 | wait_for_completion(&wait); | 208 | wait_for_completion(&wait); |
209 | } | ||
204 | 210 | ||
205 | sd->s_sibling = NULL; | 211 | sd->s_sibling = NULL; |
212 | |||
213 | lock_acquired(&sd->dep_map, _RET_IP_); | ||
214 | rwsem_release(&sd->dep_map, 1, _RET_IP_); | ||
206 | } | 215 | } |
207 | 216 | ||
208 | static int sysfs_alloc_ino(ino_t *pino) | 217 | static int sysfs_alloc_ino(ino_t *pino) |
@@ -345,6 +354,7 @@ struct sysfs_dirent *sysfs_new_dirent(const char *name, umode_t mode, int type) | |||
345 | 354 | ||
346 | atomic_set(&sd->s_count, 1); | 355 | atomic_set(&sd->s_count, 1); |
347 | atomic_set(&sd->s_active, 0); | 356 | atomic_set(&sd->s_active, 0); |
357 | sysfs_dirent_init_lockdep(sd); | ||
348 | 358 | ||
349 | sd->s_name = name; | 359 | sd->s_name = name; |
350 | sd->s_mode = mode; | 360 | sd->s_mode = mode; |
diff --git a/fs/sysfs/sysfs.h b/fs/sysfs/sysfs.h index ca52e7b9d8f..cdd9377a6e0 100644 --- a/fs/sysfs/sysfs.h +++ b/fs/sysfs/sysfs.h | |||
@@ -8,6 +8,7 @@ | |||
8 | * This file is released under the GPLv2. | 8 | * This file is released under the GPLv2. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/lockdep.h> | ||
11 | #include <linux/fs.h> | 12 | #include <linux/fs.h> |
12 | 13 | ||
13 | struct sysfs_open_dirent; | 14 | struct sysfs_open_dirent; |
@@ -50,6 +51,9 @@ struct sysfs_inode_attrs { | |||
50 | struct sysfs_dirent { | 51 | struct sysfs_dirent { |
51 | atomic_t s_count; | 52 | atomic_t s_count; |
52 | atomic_t s_active; | 53 | atomic_t s_active; |
54 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | ||
55 | struct lockdep_map dep_map; | ||
56 | #endif | ||
53 | struct sysfs_dirent *s_parent; | 57 | struct sysfs_dirent *s_parent; |
54 | struct sysfs_dirent *s_sibling; | 58 | struct sysfs_dirent *s_sibling; |
55 | const char *s_name; | 59 | const char *s_name; |
@@ -84,6 +88,17 @@ static inline unsigned int sysfs_type(struct sysfs_dirent *sd) | |||
84 | return sd->s_flags & SYSFS_TYPE_MASK; | 88 | return sd->s_flags & SYSFS_TYPE_MASK; |
85 | } | 89 | } |
86 | 90 | ||
91 | #ifdef CONFIG_DEBUG_LOCK_ALLOC | ||
92 | #define sysfs_dirent_init_lockdep(sd) \ | ||
93 | do { \ | ||
94 | static struct lock_class_key __key; \ | ||
95 | \ | ||
96 | lockdep_init_map(&sd->dep_map, "s_active", &__key, 0); \ | ||
97 | } while(0) | ||
98 | #else | ||
99 | #define sysfs_dirent_init_lockdep(sd) do {} while(0) | ||
100 | #endif | ||
101 | |||
87 | /* | 102 | /* |
88 | * Context structure to be used while adding/removing nodes. | 103 | * Context structure to be used while adding/removing nodes. |
89 | */ | 104 | */ |
diff --git a/fs/ubifs/gc.c b/fs/ubifs/gc.c index 618c2701d3a..e5a3d8e96bb 100644 --- a/fs/ubifs/gc.c +++ b/fs/ubifs/gc.c | |||
@@ -54,6 +54,7 @@ | |||
54 | */ | 54 | */ |
55 | 55 | ||
56 | #include <linux/pagemap.h> | 56 | #include <linux/pagemap.h> |
57 | #include <linux/list_sort.h> | ||
57 | #include "ubifs.h" | 58 | #include "ubifs.h" |
58 | 59 | ||
59 | /* | 60 | /* |
@@ -108,101 +109,6 @@ static int switch_gc_head(struct ubifs_info *c) | |||
108 | } | 109 | } |
109 | 110 | ||
110 | /** | 111 | /** |
111 | * list_sort - sort a list. | ||
112 | * @priv: private data, passed to @cmp | ||
113 | * @head: the list to sort | ||
114 | * @cmp: the elements comparison function | ||
115 | * | ||
116 | * This function has been implemented by Mark J Roberts <mjr@znex.org>. It | ||
117 | * implements "merge sort" which has O(nlog(n)) complexity. The list is sorted | ||
118 | * in ascending order. | ||
119 | * | ||
120 | * The comparison function @cmp is supposed to return a negative value if @a is | ||
121 | * than @b, and a positive value if @a is greater than @b. If @a and @b are | ||
122 | * equivalent, then it does not matter what this function returns. | ||
123 | */ | ||
124 | static void list_sort(void *priv, struct list_head *head, | ||
125 | int (*cmp)(void *priv, struct list_head *a, | ||
126 | struct list_head *b)) | ||
127 | { | ||
128 | struct list_head *p, *q, *e, *list, *tail, *oldhead; | ||
129 | int insize, nmerges, psize, qsize, i; | ||
130 | |||
131 | if (list_empty(head)) | ||
132 | return; | ||
133 | |||
134 | list = head->next; | ||
135 | list_del(head); | ||
136 | insize = 1; | ||
137 | for (;;) { | ||
138 | p = oldhead = list; | ||
139 | list = tail = NULL; | ||
140 | nmerges = 0; | ||
141 | |||
142 | while (p) { | ||
143 | nmerges++; | ||
144 | q = p; | ||
145 | psize = 0; | ||
146 | for (i = 0; i < insize; i++) { | ||
147 | psize++; | ||
148 | q = q->next == oldhead ? NULL : q->next; | ||
149 | if (!q) | ||
150 | break; | ||
151 | } | ||
152 | |||
153 | qsize = insize; | ||
154 | while (psize > 0 || (qsize > 0 && q)) { | ||
155 | if (!psize) { | ||
156 | e = q; | ||
157 | q = q->next; | ||
158 | qsize--; | ||
159 | if (q == oldhead) | ||
160 | q = NULL; | ||
161 | } else if (!qsize || !q) { | ||
162 | e = p; | ||
163 | p = p->next; | ||
164 | psize--; | ||
165 | if (p == oldhead) | ||
166 | p = NULL; | ||
167 | } else if (cmp(priv, p, q) <= 0) { | ||
168 | e = p; | ||
169 | p = p->next; | ||
170 | psize--; | ||
171 | if (p == oldhead) | ||
172 | p = NULL; | ||
173 | } else { | ||
174 | e = q; | ||
175 | q = q->next; | ||
176 | qsize--; | ||
177 | if (q == oldhead) | ||
178 | q = NULL; | ||
179 | } | ||
180 | if (tail) | ||
181 | tail->next = e; | ||
182 | else | ||
183 | list = e; | ||
184 | e->prev = tail; | ||
185 | tail = e; | ||
186 | } | ||
187 | p = q; | ||
188 | } | ||
189 | |||
190 | tail->next = list; | ||
191 | list->prev = tail; | ||
192 | |||
193 | if (nmerges <= 1) | ||
194 | break; | ||
195 | |||
196 | insize *= 2; | ||
197 | } | ||
198 | |||
199 | head->next = list; | ||
200 | head->prev = list->prev; | ||
201 | list->prev->next = head; | ||
202 | list->prev = head; | ||
203 | } | ||
204 | |||
205 | /** | ||
206 | * data_nodes_cmp - compare 2 data nodes. | 112 | * data_nodes_cmp - compare 2 data nodes. |
207 | * @priv: UBIFS file-system description object | 113 | * @priv: UBIFS file-system description object |
208 | * @a: first data node | 114 | * @a: first data node |
diff --git a/fs/xfs/linux-2.6/xfs_acl.c b/fs/xfs/linux-2.6/xfs_acl.c index 2512125dfa7..883ca5ab8af 100644 --- a/fs/xfs/linux-2.6/xfs_acl.c +++ b/fs/xfs/linux-2.6/xfs_acl.c | |||
@@ -251,8 +251,9 @@ xfs_set_mode(struct inode *inode, mode_t mode) | |||
251 | if (mode != inode->i_mode) { | 251 | if (mode != inode->i_mode) { |
252 | struct iattr iattr; | 252 | struct iattr iattr; |
253 | 253 | ||
254 | iattr.ia_valid = ATTR_MODE; | 254 | iattr.ia_valid = ATTR_MODE | ATTR_CTIME; |
255 | iattr.ia_mode = mode; | 255 | iattr.ia_mode = mode; |
256 | iattr.ia_ctime = current_fs_time(inode->i_sb); | ||
256 | 257 | ||
257 | error = -xfs_setattr(XFS_I(inode), &iattr, XFS_ATTR_NOACL); | 258 | error = -xfs_setattr(XFS_I(inode), &iattr, XFS_ATTR_NOACL); |
258 | } | 259 | } |
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 09783cc444a..77414db10dc 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
@@ -954,16 +954,14 @@ xfs_fs_destroy_inode( | |||
954 | ASSERT_ALWAYS(!xfs_iflags_test(ip, XFS_IRECLAIM)); | 954 | ASSERT_ALWAYS(!xfs_iflags_test(ip, XFS_IRECLAIM)); |
955 | 955 | ||
956 | /* | 956 | /* |
957 | * If we have nothing to flush with this inode then complete the | 957 | * We always use background reclaim here because even if the |
958 | * teardown now, otherwise delay the flush operation. | 958 | * inode is clean, it still may be under IO and hence we have |
959 | * to take the flush lock. The background reclaim path handles | ||
960 | * this more efficiently than we can here, so simply let background | ||
961 | * reclaim tear down all inodes. | ||
959 | */ | 962 | */ |
960 | if (!xfs_inode_clean(ip)) { | ||
961 | xfs_inode_set_reclaim_tag(ip); | ||
962 | return; | ||
963 | } | ||
964 | |||
965 | out_reclaim: | 963 | out_reclaim: |
966 | xfs_ireclaim(ip); | 964 | xfs_inode_set_reclaim_tag(ip); |
967 | } | 965 | } |
968 | 966 | ||
969 | /* | 967 | /* |
diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 6fed97a8cd3..1f5e4bb5e97 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c | |||
@@ -65,7 +65,6 @@ xfs_inode_ag_lookup( | |||
65 | * as the tree is sparse and a gang lookup walks to find | 65 | * as the tree is sparse and a gang lookup walks to find |
66 | * the number of objects requested. | 66 | * the number of objects requested. |
67 | */ | 67 | */ |
68 | read_lock(&pag->pag_ici_lock); | ||
69 | if (tag == XFS_ICI_NO_TAG) { | 68 | if (tag == XFS_ICI_NO_TAG) { |
70 | nr_found = radix_tree_gang_lookup(&pag->pag_ici_root, | 69 | nr_found = radix_tree_gang_lookup(&pag->pag_ici_root, |
71 | (void **)&ip, *first_index, 1); | 70 | (void **)&ip, *first_index, 1); |
@@ -74,7 +73,7 @@ xfs_inode_ag_lookup( | |||
74 | (void **)&ip, *first_index, 1, tag); | 73 | (void **)&ip, *first_index, 1, tag); |
75 | } | 74 | } |
76 | if (!nr_found) | 75 | if (!nr_found) |
77 | goto unlock; | 76 | return NULL; |
78 | 77 | ||
79 | /* | 78 | /* |
80 | * Update the index for the next lookup. Catch overflows | 79 | * Update the index for the next lookup. Catch overflows |
@@ -84,13 +83,8 @@ xfs_inode_ag_lookup( | |||
84 | */ | 83 | */ |
85 | *first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); | 84 | *first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); |
86 | if (*first_index < XFS_INO_TO_AGINO(mp, ip->i_ino)) | 85 | if (*first_index < XFS_INO_TO_AGINO(mp, ip->i_ino)) |
87 | goto unlock; | 86 | return NULL; |
88 | |||
89 | return ip; | 87 | return ip; |
90 | |||
91 | unlock: | ||
92 | read_unlock(&pag->pag_ici_lock); | ||
93 | return NULL; | ||
94 | } | 88 | } |
95 | 89 | ||
96 | STATIC int | 90 | STATIC int |
@@ -100,7 +94,8 @@ xfs_inode_ag_walk( | |||
100 | int (*execute)(struct xfs_inode *ip, | 94 | int (*execute)(struct xfs_inode *ip, |
101 | struct xfs_perag *pag, int flags), | 95 | struct xfs_perag *pag, int flags), |
102 | int flags, | 96 | int flags, |
103 | int tag) | 97 | int tag, |
98 | int exclusive) | ||
104 | { | 99 | { |
105 | struct xfs_perag *pag = &mp->m_perag[ag]; | 100 | struct xfs_perag *pag = &mp->m_perag[ag]; |
106 | uint32_t first_index; | 101 | uint32_t first_index; |
@@ -114,10 +109,20 @@ restart: | |||
114 | int error = 0; | 109 | int error = 0; |
115 | xfs_inode_t *ip; | 110 | xfs_inode_t *ip; |
116 | 111 | ||
112 | if (exclusive) | ||
113 | write_lock(&pag->pag_ici_lock); | ||
114 | else | ||
115 | read_lock(&pag->pag_ici_lock); | ||
117 | ip = xfs_inode_ag_lookup(mp, pag, &first_index, tag); | 116 | ip = xfs_inode_ag_lookup(mp, pag, &first_index, tag); |
118 | if (!ip) | 117 | if (!ip) { |
118 | if (exclusive) | ||
119 | write_unlock(&pag->pag_ici_lock); | ||
120 | else | ||
121 | read_unlock(&pag->pag_ici_lock); | ||
119 | break; | 122 | break; |
123 | } | ||
120 | 124 | ||
125 | /* execute releases pag->pag_ici_lock */ | ||
121 | error = execute(ip, pag, flags); | 126 | error = execute(ip, pag, flags); |
122 | if (error == EAGAIN) { | 127 | if (error == EAGAIN) { |
123 | skipped++; | 128 | skipped++; |
@@ -125,9 +130,8 @@ restart: | |||
125 | } | 130 | } |
126 | if (error) | 131 | if (error) |
127 | last_error = error; | 132 | last_error = error; |
128 | /* | 133 | |
129 | * bail out if the filesystem is corrupted. | 134 | /* bail out if the filesystem is corrupted. */ |
130 | */ | ||
131 | if (error == EFSCORRUPTED) | 135 | if (error == EFSCORRUPTED) |
132 | break; | 136 | break; |
133 | 137 | ||
@@ -148,7 +152,8 @@ xfs_inode_ag_iterator( | |||
148 | int (*execute)(struct xfs_inode *ip, | 152 | int (*execute)(struct xfs_inode *ip, |
149 | struct xfs_perag *pag, int flags), | 153 | struct xfs_perag *pag, int flags), |
150 | int flags, | 154 | int flags, |
151 | int tag) | 155 | int tag, |
156 | int exclusive) | ||
152 | { | 157 | { |
153 | int error = 0; | 158 | int error = 0; |
154 | int last_error = 0; | 159 | int last_error = 0; |
@@ -157,7 +162,8 @@ xfs_inode_ag_iterator( | |||
157 | for (ag = 0; ag < mp->m_sb.sb_agcount; ag++) { | 162 | for (ag = 0; ag < mp->m_sb.sb_agcount; ag++) { |
158 | if (!mp->m_perag[ag].pag_ici_init) | 163 | if (!mp->m_perag[ag].pag_ici_init) |
159 | continue; | 164 | continue; |
160 | error = xfs_inode_ag_walk(mp, ag, execute, flags, tag); | 165 | error = xfs_inode_ag_walk(mp, ag, execute, flags, tag, |
166 | exclusive); | ||
161 | if (error) { | 167 | if (error) { |
162 | last_error = error; | 168 | last_error = error; |
163 | if (error == EFSCORRUPTED) | 169 | if (error == EFSCORRUPTED) |
@@ -174,30 +180,31 @@ xfs_sync_inode_valid( | |||
174 | struct xfs_perag *pag) | 180 | struct xfs_perag *pag) |
175 | { | 181 | { |
176 | struct inode *inode = VFS_I(ip); | 182 | struct inode *inode = VFS_I(ip); |
183 | int error = EFSCORRUPTED; | ||
177 | 184 | ||
178 | /* nothing to sync during shutdown */ | 185 | /* nothing to sync during shutdown */ |
179 | if (XFS_FORCED_SHUTDOWN(ip->i_mount)) { | 186 | if (XFS_FORCED_SHUTDOWN(ip->i_mount)) |
180 | read_unlock(&pag->pag_ici_lock); | 187 | goto out_unlock; |
181 | return EFSCORRUPTED; | ||
182 | } | ||
183 | 188 | ||
184 | /* | 189 | /* avoid new or reclaimable inodes. Leave for reclaim code to flush */ |
185 | * If we can't get a reference on the inode, it must be in reclaim. | 190 | error = ENOENT; |
186 | * Leave it for the reclaim code to flush. Also avoid inodes that | 191 | if (xfs_iflags_test(ip, XFS_INEW | XFS_IRECLAIMABLE | XFS_IRECLAIM)) |
187 | * haven't been fully initialised. | 192 | goto out_unlock; |
188 | */ | ||
189 | if (!igrab(inode)) { | ||
190 | read_unlock(&pag->pag_ici_lock); | ||
191 | return ENOENT; | ||
192 | } | ||
193 | read_unlock(&pag->pag_ici_lock); | ||
194 | 193 | ||
195 | if (is_bad_inode(inode) || xfs_iflags_test(ip, XFS_INEW)) { | 194 | /* If we can't grab the inode, it must on it's way to reclaim. */ |
195 | if (!igrab(inode)) | ||
196 | goto out_unlock; | ||
197 | |||
198 | if (is_bad_inode(inode)) { | ||
196 | IRELE(ip); | 199 | IRELE(ip); |
197 | return ENOENT; | 200 | goto out_unlock; |
198 | } | 201 | } |
199 | 202 | ||
200 | return 0; | 203 | /* inode is valid */ |
204 | error = 0; | ||
205 | out_unlock: | ||
206 | read_unlock(&pag->pag_ici_lock); | ||
207 | return error; | ||
201 | } | 208 | } |
202 | 209 | ||
203 | STATIC int | 210 | STATIC int |
@@ -282,7 +289,7 @@ xfs_sync_data( | |||
282 | ASSERT((flags & ~(SYNC_TRYLOCK|SYNC_WAIT)) == 0); | 289 | ASSERT((flags & ~(SYNC_TRYLOCK|SYNC_WAIT)) == 0); |
283 | 290 | ||
284 | error = xfs_inode_ag_iterator(mp, xfs_sync_inode_data, flags, | 291 | error = xfs_inode_ag_iterator(mp, xfs_sync_inode_data, flags, |
285 | XFS_ICI_NO_TAG); | 292 | XFS_ICI_NO_TAG, 0); |
286 | if (error) | 293 | if (error) |
287 | return XFS_ERROR(error); | 294 | return XFS_ERROR(error); |
288 | 295 | ||
@@ -304,7 +311,7 @@ xfs_sync_attr( | |||
304 | ASSERT((flags & ~SYNC_WAIT) == 0); | 311 | ASSERT((flags & ~SYNC_WAIT) == 0); |
305 | 312 | ||
306 | return xfs_inode_ag_iterator(mp, xfs_sync_inode_attr, flags, | 313 | return xfs_inode_ag_iterator(mp, xfs_sync_inode_attr, flags, |
307 | XFS_ICI_NO_TAG); | 314 | XFS_ICI_NO_TAG, 0); |
308 | } | 315 | } |
309 | 316 | ||
310 | STATIC int | 317 | STATIC int |
@@ -664,60 +671,6 @@ xfs_syncd_stop( | |||
664 | kthread_stop(mp->m_sync_task); | 671 | kthread_stop(mp->m_sync_task); |
665 | } | 672 | } |
666 | 673 | ||
667 | STATIC int | ||
668 | xfs_reclaim_inode( | ||
669 | xfs_inode_t *ip, | ||
670 | int sync_mode) | ||
671 | { | ||
672 | xfs_perag_t *pag = xfs_get_perag(ip->i_mount, ip->i_ino); | ||
673 | |||
674 | /* The hash lock here protects a thread in xfs_iget_core from | ||
675 | * racing with us on linking the inode back with a vnode. | ||
676 | * Once we have the XFS_IRECLAIM flag set it will not touch | ||
677 | * us. | ||
678 | */ | ||
679 | write_lock(&pag->pag_ici_lock); | ||
680 | spin_lock(&ip->i_flags_lock); | ||
681 | if (__xfs_iflags_test(ip, XFS_IRECLAIM) || | ||
682 | !__xfs_iflags_test(ip, XFS_IRECLAIMABLE)) { | ||
683 | spin_unlock(&ip->i_flags_lock); | ||
684 | write_unlock(&pag->pag_ici_lock); | ||
685 | return -EAGAIN; | ||
686 | } | ||
687 | __xfs_iflags_set(ip, XFS_IRECLAIM); | ||
688 | spin_unlock(&ip->i_flags_lock); | ||
689 | write_unlock(&pag->pag_ici_lock); | ||
690 | xfs_put_perag(ip->i_mount, pag); | ||
691 | |||
692 | /* | ||
693 | * If the inode is still dirty, then flush it out. If the inode | ||
694 | * is not in the AIL, then it will be OK to flush it delwri as | ||
695 | * long as xfs_iflush() does not keep any references to the inode. | ||
696 | * We leave that decision up to xfs_iflush() since it has the | ||
697 | * knowledge of whether it's OK to simply do a delwri flush of | ||
698 | * the inode or whether we need to wait until the inode is | ||
699 | * pulled from the AIL. | ||
700 | * We get the flush lock regardless, though, just to make sure | ||
701 | * we don't free it while it is being flushed. | ||
702 | */ | ||
703 | xfs_ilock(ip, XFS_ILOCK_EXCL); | ||
704 | xfs_iflock(ip); | ||
705 | |||
706 | /* | ||
707 | * In the case of a forced shutdown we rely on xfs_iflush() to | ||
708 | * wait for the inode to be unpinned before returning an error. | ||
709 | */ | ||
710 | if (!is_bad_inode(VFS_I(ip)) && xfs_iflush(ip, sync_mode) == 0) { | ||
711 | /* synchronize with xfs_iflush_done */ | ||
712 | xfs_iflock(ip); | ||
713 | xfs_ifunlock(ip); | ||
714 | } | ||
715 | |||
716 | xfs_iunlock(ip, XFS_ILOCK_EXCL); | ||
717 | xfs_ireclaim(ip); | ||
718 | return 0; | ||
719 | } | ||
720 | |||
721 | void | 674 | void |
722 | __xfs_inode_set_reclaim_tag( | 675 | __xfs_inode_set_reclaim_tag( |
723 | struct xfs_perag *pag, | 676 | struct xfs_perag *pag, |
@@ -760,19 +713,55 @@ __xfs_inode_clear_reclaim_tag( | |||
760 | } | 713 | } |
761 | 714 | ||
762 | STATIC int | 715 | STATIC int |
763 | xfs_reclaim_inode_now( | 716 | xfs_reclaim_inode( |
764 | struct xfs_inode *ip, | 717 | struct xfs_inode *ip, |
765 | struct xfs_perag *pag, | 718 | struct xfs_perag *pag, |
766 | int flags) | 719 | int sync_mode) |
767 | { | 720 | { |
768 | /* ignore if already under reclaim */ | 721 | /* |
769 | if (xfs_iflags_test(ip, XFS_IRECLAIM)) { | 722 | * The radix tree lock here protects a thread in xfs_iget from racing |
770 | read_unlock(&pag->pag_ici_lock); | 723 | * with us starting reclaim on the inode. Once we have the |
724 | * XFS_IRECLAIM flag set it will not touch us. | ||
725 | */ | ||
726 | spin_lock(&ip->i_flags_lock); | ||
727 | ASSERT_ALWAYS(__xfs_iflags_test(ip, XFS_IRECLAIMABLE)); | ||
728 | if (__xfs_iflags_test(ip, XFS_IRECLAIM)) { | ||
729 | /* ignore as it is already under reclaim */ | ||
730 | spin_unlock(&ip->i_flags_lock); | ||
731 | write_unlock(&pag->pag_ici_lock); | ||
771 | return 0; | 732 | return 0; |
772 | } | 733 | } |
773 | read_unlock(&pag->pag_ici_lock); | 734 | __xfs_iflags_set(ip, XFS_IRECLAIM); |
735 | spin_unlock(&ip->i_flags_lock); | ||
736 | write_unlock(&pag->pag_ici_lock); | ||
774 | 737 | ||
775 | return xfs_reclaim_inode(ip, flags); | 738 | /* |
739 | * If the inode is still dirty, then flush it out. If the inode | ||
740 | * is not in the AIL, then it will be OK to flush it delwri as | ||
741 | * long as xfs_iflush() does not keep any references to the inode. | ||
742 | * We leave that decision up to xfs_iflush() since it has the | ||
743 | * knowledge of whether it's OK to simply do a delwri flush of | ||
744 | * the inode or whether we need to wait until the inode is | ||
745 | * pulled from the AIL. | ||
746 | * We get the flush lock regardless, though, just to make sure | ||
747 | * we don't free it while it is being flushed. | ||
748 | */ | ||
749 | xfs_ilock(ip, XFS_ILOCK_EXCL); | ||
750 | xfs_iflock(ip); | ||
751 | |||
752 | /* | ||
753 | * In the case of a forced shutdown we rely on xfs_iflush() to | ||
754 | * wait for the inode to be unpinned before returning an error. | ||
755 | */ | ||
756 | if (!is_bad_inode(VFS_I(ip)) && xfs_iflush(ip, sync_mode) == 0) { | ||
757 | /* synchronize with xfs_iflush_done */ | ||
758 | xfs_iflock(ip); | ||
759 | xfs_ifunlock(ip); | ||
760 | } | ||
761 | |||
762 | xfs_iunlock(ip, XFS_ILOCK_EXCL); | ||
763 | xfs_ireclaim(ip); | ||
764 | return 0; | ||
776 | } | 765 | } |
777 | 766 | ||
778 | int | 767 | int |
@@ -780,6 +769,6 @@ xfs_reclaim_inodes( | |||
780 | xfs_mount_t *mp, | 769 | xfs_mount_t *mp, |
781 | int mode) | 770 | int mode) |
782 | { | 771 | { |
783 | return xfs_inode_ag_iterator(mp, xfs_reclaim_inode_now, mode, | 772 | return xfs_inode_ag_iterator(mp, xfs_reclaim_inode, mode, |
784 | XFS_ICI_RECLAIM_TAG); | 773 | XFS_ICI_RECLAIM_TAG, 1); |
785 | } | 774 | } |
diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index a500b4d9183..ea932b43335 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h | |||
@@ -54,6 +54,6 @@ void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct xfs_perag *pag, | |||
54 | int xfs_sync_inode_valid(struct xfs_inode *ip, struct xfs_perag *pag); | 54 | int xfs_sync_inode_valid(struct xfs_inode *ip, struct xfs_perag *pag); |
55 | int xfs_inode_ag_iterator(struct xfs_mount *mp, | 55 | int xfs_inode_ag_iterator(struct xfs_mount *mp, |
56 | int (*execute)(struct xfs_inode *ip, struct xfs_perag *pag, int flags), | 56 | int (*execute)(struct xfs_inode *ip, struct xfs_perag *pag, int flags), |
57 | int flags, int tag); | 57 | int flags, int tag, int write_lock); |
58 | 58 | ||
59 | #endif | 59 | #endif |
diff --git a/fs/xfs/linux-2.6/xfs_trace.h b/fs/xfs/linux-2.6/xfs_trace.h index c40834bdee5..c22a608321a 100644 --- a/fs/xfs/linux-2.6/xfs_trace.h +++ b/fs/xfs/linux-2.6/xfs_trace.h | |||
@@ -33,51 +33,55 @@ struct xfs_dquot; | |||
33 | struct xlog_ticket; | 33 | struct xlog_ticket; |
34 | struct log; | 34 | struct log; |
35 | 35 | ||
36 | DECLARE_EVENT_CLASS(xfs_attr_list_class, | ||
37 | TP_PROTO(struct xfs_attr_list_context *ctx), | ||
38 | TP_ARGS(ctx), | ||
39 | TP_STRUCT__entry( | ||
40 | __field(dev_t, dev) | ||
41 | __field(xfs_ino_t, ino) | ||
42 | __field(u32, hashval) | ||
43 | __field(u32, blkno) | ||
44 | __field(u32, offset) | ||
45 | __field(void *, alist) | ||
46 | __field(int, bufsize) | ||
47 | __field(int, count) | ||
48 | __field(int, firstu) | ||
49 | __field(int, dupcnt) | ||
50 | __field(int, flags) | ||
51 | ), | ||
52 | TP_fast_assign( | ||
53 | __entry->dev = VFS_I(ctx->dp)->i_sb->s_dev; | ||
54 | __entry->ino = ctx->dp->i_ino; | ||
55 | __entry->hashval = ctx->cursor->hashval; | ||
56 | __entry->blkno = ctx->cursor->blkno; | ||
57 | __entry->offset = ctx->cursor->offset; | ||
58 | __entry->alist = ctx->alist; | ||
59 | __entry->bufsize = ctx->bufsize; | ||
60 | __entry->count = ctx->count; | ||
61 | __entry->firstu = ctx->firstu; | ||
62 | __entry->flags = ctx->flags; | ||
63 | ), | ||
64 | TP_printk("dev %d:%d ino 0x%llx cursor h/b/o 0x%x/0x%x/%u dupcnt %u " | ||
65 | "alist 0x%p size %u count %u firstu %u flags %d %s", | ||
66 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
67 | __entry->ino, | ||
68 | __entry->hashval, | ||
69 | __entry->blkno, | ||
70 | __entry->offset, | ||
71 | __entry->dupcnt, | ||
72 | __entry->alist, | ||
73 | __entry->bufsize, | ||
74 | __entry->count, | ||
75 | __entry->firstu, | ||
76 | __entry->flags, | ||
77 | __print_flags(__entry->flags, "|", XFS_ATTR_FLAGS) | ||
78 | ) | ||
79 | ) | ||
80 | |||
36 | #define DEFINE_ATTR_LIST_EVENT(name) \ | 81 | #define DEFINE_ATTR_LIST_EVENT(name) \ |
37 | TRACE_EVENT(name, \ | 82 | DEFINE_EVENT(xfs_attr_list_class, name, \ |
38 | TP_PROTO(struct xfs_attr_list_context *ctx), \ | 83 | TP_PROTO(struct xfs_attr_list_context *ctx), \ |
39 | TP_ARGS(ctx), \ | 84 | TP_ARGS(ctx)) |
40 | TP_STRUCT__entry( \ | ||
41 | __field(dev_t, dev) \ | ||
42 | __field(xfs_ino_t, ino) \ | ||
43 | __field(u32, hashval) \ | ||
44 | __field(u32, blkno) \ | ||
45 | __field(u32, offset) \ | ||
46 | __field(void *, alist) \ | ||
47 | __field(int, bufsize) \ | ||
48 | __field(int, count) \ | ||
49 | __field(int, firstu) \ | ||
50 | __field(int, dupcnt) \ | ||
51 | __field(int, flags) \ | ||
52 | ), \ | ||
53 | TP_fast_assign( \ | ||
54 | __entry->dev = VFS_I(ctx->dp)->i_sb->s_dev; \ | ||
55 | __entry->ino = ctx->dp->i_ino; \ | ||
56 | __entry->hashval = ctx->cursor->hashval; \ | ||
57 | __entry->blkno = ctx->cursor->blkno; \ | ||
58 | __entry->offset = ctx->cursor->offset; \ | ||
59 | __entry->alist = ctx->alist; \ | ||
60 | __entry->bufsize = ctx->bufsize; \ | ||
61 | __entry->count = ctx->count; \ | ||
62 | __entry->firstu = ctx->firstu; \ | ||
63 | __entry->flags = ctx->flags; \ | ||
64 | ), \ | ||
65 | TP_printk("dev %d:%d ino 0x%llx cursor h/b/o 0x%x/0x%x/%u dupcnt %u " \ | ||
66 | "alist 0x%p size %u count %u firstu %u flags %d %s", \ | ||
67 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | ||
68 | __entry->ino, \ | ||
69 | __entry->hashval, \ | ||
70 | __entry->blkno, \ | ||
71 | __entry->offset, \ | ||
72 | __entry->dupcnt, \ | ||
73 | __entry->alist, \ | ||
74 | __entry->bufsize, \ | ||
75 | __entry->count, \ | ||
76 | __entry->firstu, \ | ||
77 | __entry->flags, \ | ||
78 | __print_flags(__entry->flags, "|", XFS_ATTR_FLAGS) \ | ||
79 | ) \ | ||
80 | ) | ||
81 | DEFINE_ATTR_LIST_EVENT(xfs_attr_list_sf); | 85 | DEFINE_ATTR_LIST_EVENT(xfs_attr_list_sf); |
82 | DEFINE_ATTR_LIST_EVENT(xfs_attr_list_sf_all); | 86 | DEFINE_ATTR_LIST_EVENT(xfs_attr_list_sf_all); |
83 | DEFINE_ATTR_LIST_EVENT(xfs_attr_list_leaf); | 87 | DEFINE_ATTR_LIST_EVENT(xfs_attr_list_leaf); |
@@ -178,91 +182,99 @@ TRACE_EVENT(xfs_iext_insert, | |||
178 | (char *)__entry->caller_ip) | 182 | (char *)__entry->caller_ip) |
179 | ); | 183 | ); |
180 | 184 | ||
185 | DECLARE_EVENT_CLASS(xfs_bmap_class, | ||
186 | TP_PROTO(struct xfs_inode *ip, xfs_extnum_t idx, int state, | ||
187 | unsigned long caller_ip), | ||
188 | TP_ARGS(ip, idx, state, caller_ip), | ||
189 | TP_STRUCT__entry( | ||
190 | __field(dev_t, dev) | ||
191 | __field(xfs_ino_t, ino) | ||
192 | __field(xfs_extnum_t, idx) | ||
193 | __field(xfs_fileoff_t, startoff) | ||
194 | __field(xfs_fsblock_t, startblock) | ||
195 | __field(xfs_filblks_t, blockcount) | ||
196 | __field(xfs_exntst_t, state) | ||
197 | __field(int, bmap_state) | ||
198 | __field(unsigned long, caller_ip) | ||
199 | ), | ||
200 | TP_fast_assign( | ||
201 | struct xfs_ifork *ifp = (state & BMAP_ATTRFORK) ? | ||
202 | ip->i_afp : &ip->i_df; | ||
203 | struct xfs_bmbt_irec r; | ||
204 | |||
205 | xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx), &r); | ||
206 | __entry->dev = VFS_I(ip)->i_sb->s_dev; | ||
207 | __entry->ino = ip->i_ino; | ||
208 | __entry->idx = idx; | ||
209 | __entry->startoff = r.br_startoff; | ||
210 | __entry->startblock = r.br_startblock; | ||
211 | __entry->blockcount = r.br_blockcount; | ||
212 | __entry->state = r.br_state; | ||
213 | __entry->bmap_state = state; | ||
214 | __entry->caller_ip = caller_ip; | ||
215 | ), | ||
216 | TP_printk("dev %d:%d ino 0x%llx state %s idx %ld " | ||
217 | "offset %lld block %s count %lld flag %d caller %pf", | ||
218 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
219 | __entry->ino, | ||
220 | __print_flags(__entry->bmap_state, "|", XFS_BMAP_EXT_FLAGS), | ||
221 | (long)__entry->idx, | ||
222 | __entry->startoff, | ||
223 | xfs_fmtfsblock(__entry->startblock), | ||
224 | __entry->blockcount, | ||
225 | __entry->state, | ||
226 | (char *)__entry->caller_ip) | ||
227 | ) | ||
228 | |||
181 | #define DEFINE_BMAP_EVENT(name) \ | 229 | #define DEFINE_BMAP_EVENT(name) \ |
182 | TRACE_EVENT(name, \ | 230 | DEFINE_EVENT(xfs_bmap_class, name, \ |
183 | TP_PROTO(struct xfs_inode *ip, xfs_extnum_t idx, int state, \ | 231 | TP_PROTO(struct xfs_inode *ip, xfs_extnum_t idx, int state, \ |
184 | unsigned long caller_ip), \ | 232 | unsigned long caller_ip), \ |
185 | TP_ARGS(ip, idx, state, caller_ip), \ | 233 | TP_ARGS(ip, idx, state, caller_ip)) |
186 | TP_STRUCT__entry( \ | ||
187 | __field(dev_t, dev) \ | ||
188 | __field(xfs_ino_t, ino) \ | ||
189 | __field(xfs_extnum_t, idx) \ | ||
190 | __field(xfs_fileoff_t, startoff) \ | ||
191 | __field(xfs_fsblock_t, startblock) \ | ||
192 | __field(xfs_filblks_t, blockcount) \ | ||
193 | __field(xfs_exntst_t, state) \ | ||
194 | __field(int, bmap_state) \ | ||
195 | __field(unsigned long, caller_ip) \ | ||
196 | ), \ | ||
197 | TP_fast_assign( \ | ||
198 | struct xfs_ifork *ifp = (state & BMAP_ATTRFORK) ? \ | ||
199 | ip->i_afp : &ip->i_df; \ | ||
200 | struct xfs_bmbt_irec r; \ | ||
201 | \ | ||
202 | xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx), &r); \ | ||
203 | __entry->dev = VFS_I(ip)->i_sb->s_dev; \ | ||
204 | __entry->ino = ip->i_ino; \ | ||
205 | __entry->idx = idx; \ | ||
206 | __entry->startoff = r.br_startoff; \ | ||
207 | __entry->startblock = r.br_startblock; \ | ||
208 | __entry->blockcount = r.br_blockcount; \ | ||
209 | __entry->state = r.br_state; \ | ||
210 | __entry->bmap_state = state; \ | ||
211 | __entry->caller_ip = caller_ip; \ | ||
212 | ), \ | ||
213 | TP_printk("dev %d:%d ino 0x%llx state %s idx %ld " \ | ||
214 | "offset %lld block %s count %lld flag %d caller %pf", \ | ||
215 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | ||
216 | __entry->ino, \ | ||
217 | __print_flags(__entry->bmap_state, "|", XFS_BMAP_EXT_FLAGS), \ | ||
218 | (long)__entry->idx, \ | ||
219 | __entry->startoff, \ | ||
220 | xfs_fmtfsblock(__entry->startblock), \ | ||
221 | __entry->blockcount, \ | ||
222 | __entry->state, \ | ||
223 | (char *)__entry->caller_ip) \ | ||
224 | ) | ||
225 | |||
226 | DEFINE_BMAP_EVENT(xfs_iext_remove); | 234 | DEFINE_BMAP_EVENT(xfs_iext_remove); |
227 | DEFINE_BMAP_EVENT(xfs_bmap_pre_update); | 235 | DEFINE_BMAP_EVENT(xfs_bmap_pre_update); |
228 | DEFINE_BMAP_EVENT(xfs_bmap_post_update); | 236 | DEFINE_BMAP_EVENT(xfs_bmap_post_update); |
229 | DEFINE_BMAP_EVENT(xfs_extlist); | 237 | DEFINE_BMAP_EVENT(xfs_extlist); |
230 | 238 | ||
231 | #define DEFINE_BUF_EVENT(tname) \ | 239 | DECLARE_EVENT_CLASS(xfs_buf_class, |
232 | TRACE_EVENT(tname, \ | 240 | TP_PROTO(struct xfs_buf *bp, unsigned long caller_ip), |
233 | TP_PROTO(struct xfs_buf *bp, unsigned long caller_ip), \ | 241 | TP_ARGS(bp, caller_ip), |
234 | TP_ARGS(bp, caller_ip), \ | 242 | TP_STRUCT__entry( |
235 | TP_STRUCT__entry( \ | 243 | __field(dev_t, dev) |
236 | __field(dev_t, dev) \ | 244 | __field(xfs_daddr_t, bno) |
237 | __field(xfs_daddr_t, bno) \ | 245 | __field(size_t, buffer_length) |
238 | __field(size_t, buffer_length) \ | 246 | __field(int, hold) |
239 | __field(int, hold) \ | 247 | __field(int, pincount) |
240 | __field(int, pincount) \ | 248 | __field(unsigned, lockval) |
241 | __field(unsigned, lockval) \ | 249 | __field(unsigned, flags) |
242 | __field(unsigned, flags) \ | 250 | __field(unsigned long, caller_ip) |
243 | __field(unsigned long, caller_ip) \ | 251 | ), |
244 | ), \ | 252 | TP_fast_assign( |
245 | TP_fast_assign( \ | 253 | __entry->dev = bp->b_target->bt_dev; |
246 | __entry->dev = bp->b_target->bt_dev; \ | 254 | __entry->bno = bp->b_bn; |
247 | __entry->bno = bp->b_bn; \ | 255 | __entry->buffer_length = bp->b_buffer_length; |
248 | __entry->buffer_length = bp->b_buffer_length; \ | 256 | __entry->hold = atomic_read(&bp->b_hold); |
249 | __entry->hold = atomic_read(&bp->b_hold); \ | 257 | __entry->pincount = atomic_read(&bp->b_pin_count); |
250 | __entry->pincount = atomic_read(&bp->b_pin_count); \ | 258 | __entry->lockval = xfs_buf_lock_value(bp); |
251 | __entry->lockval = xfs_buf_lock_value(bp); \ | 259 | __entry->flags = bp->b_flags; |
252 | __entry->flags = bp->b_flags; \ | 260 | __entry->caller_ip = caller_ip; |
253 | __entry->caller_ip = caller_ip; \ | 261 | ), |
254 | ), \ | 262 | TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " |
255 | TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " \ | 263 | "lock %d flags %s caller %pf", |
256 | "lock %d flags %s caller %pf", \ | 264 | MAJOR(__entry->dev), MINOR(__entry->dev), |
257 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | 265 | (unsigned long long)__entry->bno, |
258 | (unsigned long long)__entry->bno, \ | 266 | __entry->buffer_length, |
259 | __entry->buffer_length, \ | 267 | __entry->hold, |
260 | __entry->hold, \ | 268 | __entry->pincount, |
261 | __entry->pincount, \ | 269 | __entry->lockval, |
262 | __entry->lockval, \ | 270 | __print_flags(__entry->flags, "|", XFS_BUF_FLAGS), |
263 | __print_flags(__entry->flags, "|", XFS_BUF_FLAGS), \ | 271 | (void *)__entry->caller_ip) |
264 | (void *)__entry->caller_ip) \ | ||
265 | ) | 272 | ) |
273 | |||
274 | #define DEFINE_BUF_EVENT(name) \ | ||
275 | DEFINE_EVENT(xfs_buf_class, name, \ | ||
276 | TP_PROTO(struct xfs_buf *bp, unsigned long caller_ip), \ | ||
277 | TP_ARGS(bp, caller_ip)) | ||
266 | DEFINE_BUF_EVENT(xfs_buf_init); | 278 | DEFINE_BUF_EVENT(xfs_buf_init); |
267 | DEFINE_BUF_EVENT(xfs_buf_free); | 279 | DEFINE_BUF_EVENT(xfs_buf_free); |
268 | DEFINE_BUF_EVENT(xfs_buf_hold); | 280 | DEFINE_BUF_EVENT(xfs_buf_hold); |
@@ -299,41 +311,45 @@ DEFINE_BUF_EVENT(xfs_reset_dqcounts); | |||
299 | DEFINE_BUF_EVENT(xfs_inode_item_push); | 311 | DEFINE_BUF_EVENT(xfs_inode_item_push); |
300 | 312 | ||
301 | /* pass flags explicitly */ | 313 | /* pass flags explicitly */ |
302 | #define DEFINE_BUF_FLAGS_EVENT(tname) \ | 314 | DECLARE_EVENT_CLASS(xfs_buf_flags_class, |
303 | TRACE_EVENT(tname, \ | 315 | TP_PROTO(struct xfs_buf *bp, unsigned flags, unsigned long caller_ip), |
304 | TP_PROTO(struct xfs_buf *bp, unsigned flags, unsigned long caller_ip), \ | 316 | TP_ARGS(bp, flags, caller_ip), |
305 | TP_ARGS(bp, flags, caller_ip), \ | 317 | TP_STRUCT__entry( |
306 | TP_STRUCT__entry( \ | 318 | __field(dev_t, dev) |
307 | __field(dev_t, dev) \ | 319 | __field(xfs_daddr_t, bno) |
308 | __field(xfs_daddr_t, bno) \ | 320 | __field(size_t, buffer_length) |
309 | __field(size_t, buffer_length) \ | 321 | __field(int, hold) |
310 | __field(int, hold) \ | 322 | __field(int, pincount) |
311 | __field(int, pincount) \ | 323 | __field(unsigned, lockval) |
312 | __field(unsigned, lockval) \ | 324 | __field(unsigned, flags) |
313 | __field(unsigned, flags) \ | 325 | __field(unsigned long, caller_ip) |
314 | __field(unsigned long, caller_ip) \ | 326 | ), |
315 | ), \ | 327 | TP_fast_assign( |
316 | TP_fast_assign( \ | 328 | __entry->dev = bp->b_target->bt_dev; |
317 | __entry->dev = bp->b_target->bt_dev; \ | 329 | __entry->bno = bp->b_bn; |
318 | __entry->bno = bp->b_bn; \ | 330 | __entry->buffer_length = bp->b_buffer_length; |
319 | __entry->buffer_length = bp->b_buffer_length; \ | 331 | __entry->flags = flags; |
320 | __entry->flags = flags; \ | 332 | __entry->hold = atomic_read(&bp->b_hold); |
321 | __entry->hold = atomic_read(&bp->b_hold); \ | 333 | __entry->pincount = atomic_read(&bp->b_pin_count); |
322 | __entry->pincount = atomic_read(&bp->b_pin_count); \ | 334 | __entry->lockval = xfs_buf_lock_value(bp); |
323 | __entry->lockval = xfs_buf_lock_value(bp); \ | 335 | __entry->caller_ip = caller_ip; |
324 | __entry->caller_ip = caller_ip; \ | 336 | ), |
325 | ), \ | 337 | TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " |
326 | TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " \ | 338 | "lock %d flags %s caller %pf", |
327 | "lock %d flags %s caller %pf", \ | 339 | MAJOR(__entry->dev), MINOR(__entry->dev), |
328 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | 340 | (unsigned long long)__entry->bno, |
329 | (unsigned long long)__entry->bno, \ | 341 | __entry->buffer_length, |
330 | __entry->buffer_length, \ | 342 | __entry->hold, |
331 | __entry->hold, \ | 343 | __entry->pincount, |
332 | __entry->pincount, \ | 344 | __entry->lockval, |
333 | __entry->lockval, \ | 345 | __print_flags(__entry->flags, "|", XFS_BUF_FLAGS), |
334 | __print_flags(__entry->flags, "|", XFS_BUF_FLAGS), \ | 346 | (void *)__entry->caller_ip) |
335 | (void *)__entry->caller_ip) \ | ||
336 | ) | 347 | ) |
348 | |||
349 | #define DEFINE_BUF_FLAGS_EVENT(name) \ | ||
350 | DEFINE_EVENT(xfs_buf_flags_class, name, \ | ||
351 | TP_PROTO(struct xfs_buf *bp, unsigned flags, unsigned long caller_ip), \ | ||
352 | TP_ARGS(bp, flags, caller_ip)) | ||
337 | DEFINE_BUF_FLAGS_EVENT(xfs_buf_find); | 353 | DEFINE_BUF_FLAGS_EVENT(xfs_buf_find); |
338 | DEFINE_BUF_FLAGS_EVENT(xfs_buf_get); | 354 | DEFINE_BUF_FLAGS_EVENT(xfs_buf_get); |
339 | DEFINE_BUF_FLAGS_EVENT(xfs_buf_read); | 355 | DEFINE_BUF_FLAGS_EVENT(xfs_buf_read); |
@@ -376,55 +392,58 @@ TRACE_EVENT(xfs_buf_ioerror, | |||
376 | (void *)__entry->caller_ip) | 392 | (void *)__entry->caller_ip) |
377 | ); | 393 | ); |
378 | 394 | ||
379 | #define DEFINE_BUF_ITEM_EVENT(tname) \ | 395 | DECLARE_EVENT_CLASS(xfs_buf_item_class, |
380 | TRACE_EVENT(tname, \ | 396 | TP_PROTO(struct xfs_buf_log_item *bip), |
381 | TP_PROTO(struct xfs_buf_log_item *bip), \ | 397 | TP_ARGS(bip), |
382 | TP_ARGS(bip), \ | 398 | TP_STRUCT__entry( |
383 | TP_STRUCT__entry( \ | 399 | __field(dev_t, dev) |
384 | __field(dev_t, dev) \ | 400 | __field(xfs_daddr_t, buf_bno) |
385 | __field(xfs_daddr_t, buf_bno) \ | 401 | __field(size_t, buf_len) |
386 | __field(size_t, buf_len) \ | 402 | __field(int, buf_hold) |
387 | __field(int, buf_hold) \ | 403 | __field(int, buf_pincount) |
388 | __field(int, buf_pincount) \ | 404 | __field(int, buf_lockval) |
389 | __field(int, buf_lockval) \ | 405 | __field(unsigned, buf_flags) |
390 | __field(unsigned, buf_flags) \ | 406 | __field(unsigned, bli_recur) |
391 | __field(unsigned, bli_recur) \ | 407 | __field(int, bli_refcount) |
392 | __field(int, bli_refcount) \ | 408 | __field(unsigned, bli_flags) |
393 | __field(unsigned, bli_flags) \ | 409 | __field(void *, li_desc) |
394 | __field(void *, li_desc) \ | 410 | __field(unsigned, li_flags) |
395 | __field(unsigned, li_flags) \ | 411 | ), |
396 | ), \ | 412 | TP_fast_assign( |
397 | TP_fast_assign( \ | 413 | __entry->dev = bip->bli_buf->b_target->bt_dev; |
398 | __entry->dev = bip->bli_buf->b_target->bt_dev; \ | 414 | __entry->bli_flags = bip->bli_flags; |
399 | __entry->bli_flags = bip->bli_flags; \ | 415 | __entry->bli_recur = bip->bli_recur; |
400 | __entry->bli_recur = bip->bli_recur; \ | 416 | __entry->bli_refcount = atomic_read(&bip->bli_refcount); |
401 | __entry->bli_refcount = atomic_read(&bip->bli_refcount); \ | 417 | __entry->buf_bno = bip->bli_buf->b_bn; |
402 | __entry->buf_bno = bip->bli_buf->b_bn; \ | 418 | __entry->buf_len = bip->bli_buf->b_buffer_length; |
403 | __entry->buf_len = bip->bli_buf->b_buffer_length; \ | 419 | __entry->buf_flags = bip->bli_buf->b_flags; |
404 | __entry->buf_flags = bip->bli_buf->b_flags; \ | 420 | __entry->buf_hold = atomic_read(&bip->bli_buf->b_hold); |
405 | __entry->buf_hold = atomic_read(&bip->bli_buf->b_hold); \ | 421 | __entry->buf_pincount = atomic_read(&bip->bli_buf->b_pin_count); |
406 | __entry->buf_pincount = \ | 422 | __entry->buf_lockval = xfs_buf_lock_value(bip->bli_buf); |
407 | atomic_read(&bip->bli_buf->b_pin_count); \ | 423 | __entry->li_desc = bip->bli_item.li_desc; |
408 | __entry->buf_lockval = xfs_buf_lock_value(bip->bli_buf); \ | 424 | __entry->li_flags = bip->bli_item.li_flags; |
409 | __entry->li_desc = bip->bli_item.li_desc; \ | 425 | ), |
410 | __entry->li_flags = bip->bli_item.li_flags; \ | 426 | TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " |
411 | ), \ | 427 | "lock %d flags %s recur %d refcount %d bliflags %s " |
412 | TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " \ | 428 | "lidesc 0x%p liflags %s", |
413 | "lock %d flags %s recur %d refcount %d bliflags %s " \ | 429 | MAJOR(__entry->dev), MINOR(__entry->dev), |
414 | "lidesc 0x%p liflags %s", \ | 430 | (unsigned long long)__entry->buf_bno, |
415 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | 431 | __entry->buf_len, |
416 | (unsigned long long)__entry->buf_bno, \ | 432 | __entry->buf_hold, |
417 | __entry->buf_len, \ | 433 | __entry->buf_pincount, |
418 | __entry->buf_hold, \ | 434 | __entry->buf_lockval, |
419 | __entry->buf_pincount, \ | 435 | __print_flags(__entry->buf_flags, "|", XFS_BUF_FLAGS), |
420 | __entry->buf_lockval, \ | 436 | __entry->bli_recur, |
421 | __print_flags(__entry->buf_flags, "|", XFS_BUF_FLAGS), \ | 437 | __entry->bli_refcount, |
422 | __entry->bli_recur, \ | 438 | __print_flags(__entry->bli_flags, "|", XFS_BLI_FLAGS), |
423 | __entry->bli_refcount, \ | 439 | __entry->li_desc, |
424 | __print_flags(__entry->bli_flags, "|", XFS_BLI_FLAGS), \ | 440 | __print_flags(__entry->li_flags, "|", XFS_LI_FLAGS)) |
425 | __entry->li_desc, \ | ||
426 | __print_flags(__entry->li_flags, "|", XFS_LI_FLAGS)) \ | ||
427 | ) | 441 | ) |
442 | |||
443 | #define DEFINE_BUF_ITEM_EVENT(name) \ | ||
444 | DEFINE_EVENT(xfs_buf_item_class, name, \ | ||
445 | TP_PROTO(struct xfs_buf_log_item *bip), \ | ||
446 | TP_ARGS(bip)) | ||
428 | DEFINE_BUF_ITEM_EVENT(xfs_buf_item_size); | 447 | DEFINE_BUF_ITEM_EVENT(xfs_buf_item_size); |
429 | DEFINE_BUF_ITEM_EVENT(xfs_buf_item_size_stale); | 448 | DEFINE_BUF_ITEM_EVENT(xfs_buf_item_size_stale); |
430 | DEFINE_BUF_ITEM_EVENT(xfs_buf_item_format); | 449 | DEFINE_BUF_ITEM_EVENT(xfs_buf_item_format); |
@@ -450,78 +469,90 @@ DEFINE_BUF_ITEM_EVENT(xfs_trans_bhold); | |||
450 | DEFINE_BUF_ITEM_EVENT(xfs_trans_bhold_release); | 469 | DEFINE_BUF_ITEM_EVENT(xfs_trans_bhold_release); |
451 | DEFINE_BUF_ITEM_EVENT(xfs_trans_binval); | 470 | DEFINE_BUF_ITEM_EVENT(xfs_trans_binval); |
452 | 471 | ||
472 | DECLARE_EVENT_CLASS(xfs_lock_class, | ||
473 | TP_PROTO(struct xfs_inode *ip, unsigned lock_flags, | ||
474 | unsigned long caller_ip), | ||
475 | TP_ARGS(ip, lock_flags, caller_ip), | ||
476 | TP_STRUCT__entry( | ||
477 | __field(dev_t, dev) | ||
478 | __field(xfs_ino_t, ino) | ||
479 | __field(int, lock_flags) | ||
480 | __field(unsigned long, caller_ip) | ||
481 | ), | ||
482 | TP_fast_assign( | ||
483 | __entry->dev = VFS_I(ip)->i_sb->s_dev; | ||
484 | __entry->ino = ip->i_ino; | ||
485 | __entry->lock_flags = lock_flags; | ||
486 | __entry->caller_ip = caller_ip; | ||
487 | ), | ||
488 | TP_printk("dev %d:%d ino 0x%llx flags %s caller %pf", | ||
489 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
490 | __entry->ino, | ||
491 | __print_flags(__entry->lock_flags, "|", XFS_LOCK_FLAGS), | ||
492 | (void *)__entry->caller_ip) | ||
493 | ) | ||
494 | |||
453 | #define DEFINE_LOCK_EVENT(name) \ | 495 | #define DEFINE_LOCK_EVENT(name) \ |
454 | TRACE_EVENT(name, \ | 496 | DEFINE_EVENT(xfs_lock_class, name, \ |
455 | TP_PROTO(struct xfs_inode *ip, unsigned lock_flags, \ | 497 | TP_PROTO(struct xfs_inode *ip, unsigned lock_flags, \ |
456 | unsigned long caller_ip), \ | 498 | unsigned long caller_ip), \ |
457 | TP_ARGS(ip, lock_flags, caller_ip), \ | 499 | TP_ARGS(ip, lock_flags, caller_ip)) |
458 | TP_STRUCT__entry( \ | ||
459 | __field(dev_t, dev) \ | ||
460 | __field(xfs_ino_t, ino) \ | ||
461 | __field(int, lock_flags) \ | ||
462 | __field(unsigned long, caller_ip) \ | ||
463 | ), \ | ||
464 | TP_fast_assign( \ | ||
465 | __entry->dev = VFS_I(ip)->i_sb->s_dev; \ | ||
466 | __entry->ino = ip->i_ino; \ | ||
467 | __entry->lock_flags = lock_flags; \ | ||
468 | __entry->caller_ip = caller_ip; \ | ||
469 | ), \ | ||
470 | TP_printk("dev %d:%d ino 0x%llx flags %s caller %pf", \ | ||
471 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | ||
472 | __entry->ino, \ | ||
473 | __print_flags(__entry->lock_flags, "|", XFS_LOCK_FLAGS), \ | ||
474 | (void *)__entry->caller_ip) \ | ||
475 | ) | ||
476 | |||
477 | DEFINE_LOCK_EVENT(xfs_ilock); | 500 | DEFINE_LOCK_EVENT(xfs_ilock); |
478 | DEFINE_LOCK_EVENT(xfs_ilock_nowait); | 501 | DEFINE_LOCK_EVENT(xfs_ilock_nowait); |
479 | DEFINE_LOCK_EVENT(xfs_ilock_demote); | 502 | DEFINE_LOCK_EVENT(xfs_ilock_demote); |
480 | DEFINE_LOCK_EVENT(xfs_iunlock); | 503 | DEFINE_LOCK_EVENT(xfs_iunlock); |
481 | 504 | ||
505 | DECLARE_EVENT_CLASS(xfs_iget_class, | ||
506 | TP_PROTO(struct xfs_inode *ip), | ||
507 | TP_ARGS(ip), | ||
508 | TP_STRUCT__entry( | ||
509 | __field(dev_t, dev) | ||
510 | __field(xfs_ino_t, ino) | ||
511 | ), | ||
512 | TP_fast_assign( | ||
513 | __entry->dev = VFS_I(ip)->i_sb->s_dev; | ||
514 | __entry->ino = ip->i_ino; | ||
515 | ), | ||
516 | TP_printk("dev %d:%d ino 0x%llx", | ||
517 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
518 | __entry->ino) | ||
519 | ) | ||
520 | |||
482 | #define DEFINE_IGET_EVENT(name) \ | 521 | #define DEFINE_IGET_EVENT(name) \ |
483 | TRACE_EVENT(name, \ | 522 | DEFINE_EVENT(xfs_iget_class, name, \ |
484 | TP_PROTO(struct xfs_inode *ip), \ | 523 | TP_PROTO(struct xfs_inode *ip), \ |
485 | TP_ARGS(ip), \ | 524 | TP_ARGS(ip)) |
486 | TP_STRUCT__entry( \ | ||
487 | __field(dev_t, dev) \ | ||
488 | __field(xfs_ino_t, ino) \ | ||
489 | ), \ | ||
490 | TP_fast_assign( \ | ||
491 | __entry->dev = VFS_I(ip)->i_sb->s_dev; \ | ||
492 | __entry->ino = ip->i_ino; \ | ||
493 | ), \ | ||
494 | TP_printk("dev %d:%d ino 0x%llx", \ | ||
495 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | ||
496 | __entry->ino) \ | ||
497 | ) | ||
498 | DEFINE_IGET_EVENT(xfs_iget_skip); | 525 | DEFINE_IGET_EVENT(xfs_iget_skip); |
499 | DEFINE_IGET_EVENT(xfs_iget_reclaim); | 526 | DEFINE_IGET_EVENT(xfs_iget_reclaim); |
500 | DEFINE_IGET_EVENT(xfs_iget_found); | 527 | DEFINE_IGET_EVENT(xfs_iget_found); |
501 | DEFINE_IGET_EVENT(xfs_iget_alloc); | 528 | DEFINE_IGET_EVENT(xfs_iget_alloc); |
502 | 529 | ||
530 | DECLARE_EVENT_CLASS(xfs_inode_class, | ||
531 | TP_PROTO(struct xfs_inode *ip, unsigned long caller_ip), | ||
532 | TP_ARGS(ip, caller_ip), | ||
533 | TP_STRUCT__entry( | ||
534 | __field(dev_t, dev) | ||
535 | __field(xfs_ino_t, ino) | ||
536 | __field(int, count) | ||
537 | __field(unsigned long, caller_ip) | ||
538 | ), | ||
539 | TP_fast_assign( | ||
540 | __entry->dev = VFS_I(ip)->i_sb->s_dev; | ||
541 | __entry->ino = ip->i_ino; | ||
542 | __entry->count = atomic_read(&VFS_I(ip)->i_count); | ||
543 | __entry->caller_ip = caller_ip; | ||
544 | ), | ||
545 | TP_printk("dev %d:%d ino 0x%llx count %d caller %pf", | ||
546 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
547 | __entry->ino, | ||
548 | __entry->count, | ||
549 | (char *)__entry->caller_ip) | ||
550 | ) | ||
551 | |||
503 | #define DEFINE_INODE_EVENT(name) \ | 552 | #define DEFINE_INODE_EVENT(name) \ |
504 | TRACE_EVENT(name, \ | 553 | DEFINE_EVENT(xfs_inode_class, name, \ |
505 | TP_PROTO(struct xfs_inode *ip, unsigned long caller_ip), \ | 554 | TP_PROTO(struct xfs_inode *ip, unsigned long caller_ip), \ |
506 | TP_ARGS(ip, caller_ip), \ | 555 | TP_ARGS(ip, caller_ip)) |
507 | TP_STRUCT__entry( \ | ||
508 | __field(dev_t, dev) \ | ||
509 | __field(xfs_ino_t, ino) \ | ||
510 | __field(int, count) \ | ||
511 | __field(unsigned long, caller_ip) \ | ||
512 | ), \ | ||
513 | TP_fast_assign( \ | ||
514 | __entry->dev = VFS_I(ip)->i_sb->s_dev; \ | ||
515 | __entry->ino = ip->i_ino; \ | ||
516 | __entry->count = atomic_read(&VFS_I(ip)->i_count); \ | ||
517 | __entry->caller_ip = caller_ip; \ | ||
518 | ), \ | ||
519 | TP_printk("dev %d:%d ino 0x%llx count %d caller %pf", \ | ||
520 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | ||
521 | __entry->ino, \ | ||
522 | __entry->count, \ | ||
523 | (char *)__entry->caller_ip) \ | ||
524 | ) | ||
525 | DEFINE_INODE_EVENT(xfs_ihold); | 556 | DEFINE_INODE_EVENT(xfs_ihold); |
526 | DEFINE_INODE_EVENT(xfs_irele); | 557 | DEFINE_INODE_EVENT(xfs_irele); |
527 | /* the old xfs_itrace_entry tracer - to be replaced by s.th. in the VFS */ | 558 | /* the old xfs_itrace_entry tracer - to be replaced by s.th. in the VFS */ |
@@ -529,55 +560,59 @@ DEFINE_INODE_EVENT(xfs_inode); | |||
529 | #define xfs_itrace_entry(ip) \ | 560 | #define xfs_itrace_entry(ip) \ |
530 | trace_xfs_inode(ip, _THIS_IP_) | 561 | trace_xfs_inode(ip, _THIS_IP_) |
531 | 562 | ||
532 | #define DEFINE_DQUOT_EVENT(tname) \ | 563 | DECLARE_EVENT_CLASS(xfs_dquot_class, |
533 | TRACE_EVENT(tname, \ | 564 | TP_PROTO(struct xfs_dquot *dqp), |
534 | TP_PROTO(struct xfs_dquot *dqp), \ | 565 | TP_ARGS(dqp), |
535 | TP_ARGS(dqp), \ | 566 | TP_STRUCT__entry( |
536 | TP_STRUCT__entry( \ | 567 | __field(dev_t, dev) |
537 | __field(dev_t, dev) \ | 568 | __field(__be32, id) |
538 | __field(__be32, id) \ | 569 | __field(unsigned, flags) |
539 | __field(unsigned, flags) \ | 570 | __field(unsigned, nrefs) |
540 | __field(unsigned, nrefs) \ | 571 | __field(unsigned long long, res_bcount) |
541 | __field(unsigned long long, res_bcount) \ | 572 | __field(unsigned long long, bcount) |
542 | __field(unsigned long long, bcount) \ | 573 | __field(unsigned long long, icount) |
543 | __field(unsigned long long, icount) \ | 574 | __field(unsigned long long, blk_hardlimit) |
544 | __field(unsigned long long, blk_hardlimit) \ | 575 | __field(unsigned long long, blk_softlimit) |
545 | __field(unsigned long long, blk_softlimit) \ | 576 | __field(unsigned long long, ino_hardlimit) |
546 | __field(unsigned long long, ino_hardlimit) \ | 577 | __field(unsigned long long, ino_softlimit) |
547 | __field(unsigned long long, ino_softlimit) \ | ||
548 | ), \ | ||
549 | TP_fast_assign( \ | ||
550 | __entry->dev = dqp->q_mount->m_super->s_dev; \ | ||
551 | __entry->id = dqp->q_core.d_id; \ | ||
552 | __entry->flags = dqp->dq_flags; \ | ||
553 | __entry->nrefs = dqp->q_nrefs; \ | ||
554 | __entry->res_bcount = dqp->q_res_bcount; \ | ||
555 | __entry->bcount = be64_to_cpu(dqp->q_core.d_bcount); \ | ||
556 | __entry->icount = be64_to_cpu(dqp->q_core.d_icount); \ | ||
557 | __entry->blk_hardlimit = \ | ||
558 | be64_to_cpu(dqp->q_core.d_blk_hardlimit); \ | ||
559 | __entry->blk_softlimit = \ | ||
560 | be64_to_cpu(dqp->q_core.d_blk_softlimit); \ | ||
561 | __entry->ino_hardlimit = \ | ||
562 | be64_to_cpu(dqp->q_core.d_ino_hardlimit); \ | ||
563 | __entry->ino_softlimit = \ | ||
564 | be64_to_cpu(dqp->q_core.d_ino_softlimit); \ | ||
565 | ), \ | 578 | ), \ |
566 | TP_printk("dev %d:%d id 0x%x flags %s nrefs %u res_bc 0x%llx " \ | 579 | TP_fast_assign( |
567 | "bcnt 0x%llx [hard 0x%llx | soft 0x%llx] " \ | 580 | __entry->dev = dqp->q_mount->m_super->s_dev; |
568 | "icnt 0x%llx [hard 0x%llx | soft 0x%llx]", \ | 581 | __entry->id = dqp->q_core.d_id; |
569 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | 582 | __entry->flags = dqp->dq_flags; |
570 | be32_to_cpu(__entry->id), \ | 583 | __entry->nrefs = dqp->q_nrefs; |
571 | __print_flags(__entry->flags, "|", XFS_DQ_FLAGS), \ | 584 | __entry->res_bcount = dqp->q_res_bcount; |
572 | __entry->nrefs, \ | 585 | __entry->bcount = be64_to_cpu(dqp->q_core.d_bcount); |
573 | __entry->res_bcount, \ | 586 | __entry->icount = be64_to_cpu(dqp->q_core.d_icount); |
574 | __entry->bcount, \ | 587 | __entry->blk_hardlimit = |
575 | __entry->blk_hardlimit, \ | 588 | be64_to_cpu(dqp->q_core.d_blk_hardlimit); |
576 | __entry->blk_softlimit, \ | 589 | __entry->blk_softlimit = |
577 | __entry->icount, \ | 590 | be64_to_cpu(dqp->q_core.d_blk_softlimit); |
578 | __entry->ino_hardlimit, \ | 591 | __entry->ino_hardlimit = |
579 | __entry->ino_softlimit) \ | 592 | be64_to_cpu(dqp->q_core.d_ino_hardlimit); |
593 | __entry->ino_softlimit = | ||
594 | be64_to_cpu(dqp->q_core.d_ino_softlimit); | ||
595 | ), | ||
596 | TP_printk("dev %d:%d id 0x%x flags %s nrefs %u res_bc 0x%llx " | ||
597 | "bcnt 0x%llx [hard 0x%llx | soft 0x%llx] " | ||
598 | "icnt 0x%llx [hard 0x%llx | soft 0x%llx]", | ||
599 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
600 | be32_to_cpu(__entry->id), | ||
601 | __print_flags(__entry->flags, "|", XFS_DQ_FLAGS), | ||
602 | __entry->nrefs, | ||
603 | __entry->res_bcount, | ||
604 | __entry->bcount, | ||
605 | __entry->blk_hardlimit, | ||
606 | __entry->blk_softlimit, | ||
607 | __entry->icount, | ||
608 | __entry->ino_hardlimit, | ||
609 | __entry->ino_softlimit) | ||
580 | ) | 610 | ) |
611 | |||
612 | #define DEFINE_DQUOT_EVENT(name) \ | ||
613 | DEFINE_EVENT(xfs_dquot_class, name, \ | ||
614 | TP_PROTO(struct xfs_dquot *dqp), \ | ||
615 | TP_ARGS(dqp)) | ||
581 | DEFINE_DQUOT_EVENT(xfs_dqadjust); | 616 | DEFINE_DQUOT_EVENT(xfs_dqadjust); |
582 | DEFINE_DQUOT_EVENT(xfs_dqshake_dirty); | 617 | DEFINE_DQUOT_EVENT(xfs_dqshake_dirty); |
583 | DEFINE_DQUOT_EVENT(xfs_dqshake_unlink); | 618 | DEFINE_DQUOT_EVENT(xfs_dqshake_unlink); |
@@ -610,72 +645,75 @@ DEFINE_DQUOT_EVENT(xfs_dqflush_done); | |||
610 | DEFINE_IGET_EVENT(xfs_dquot_dqalloc); | 645 | DEFINE_IGET_EVENT(xfs_dquot_dqalloc); |
611 | DEFINE_IGET_EVENT(xfs_dquot_dqdetach); | 646 | DEFINE_IGET_EVENT(xfs_dquot_dqdetach); |
612 | 647 | ||
648 | DECLARE_EVENT_CLASS(xfs_loggrant_class, | ||
649 | TP_PROTO(struct log *log, struct xlog_ticket *tic), | ||
650 | TP_ARGS(log, tic), | ||
651 | TP_STRUCT__entry( | ||
652 | __field(dev_t, dev) | ||
653 | __field(unsigned, trans_type) | ||
654 | __field(char, ocnt) | ||
655 | __field(char, cnt) | ||
656 | __field(int, curr_res) | ||
657 | __field(int, unit_res) | ||
658 | __field(unsigned int, flags) | ||
659 | __field(void *, reserve_headq) | ||
660 | __field(void *, write_headq) | ||
661 | __field(int, grant_reserve_cycle) | ||
662 | __field(int, grant_reserve_bytes) | ||
663 | __field(int, grant_write_cycle) | ||
664 | __field(int, grant_write_bytes) | ||
665 | __field(int, curr_cycle) | ||
666 | __field(int, curr_block) | ||
667 | __field(xfs_lsn_t, tail_lsn) | ||
668 | ), | ||
669 | TP_fast_assign( | ||
670 | __entry->dev = log->l_mp->m_super->s_dev; | ||
671 | __entry->trans_type = tic->t_trans_type; | ||
672 | __entry->ocnt = tic->t_ocnt; | ||
673 | __entry->cnt = tic->t_cnt; | ||
674 | __entry->curr_res = tic->t_curr_res; | ||
675 | __entry->unit_res = tic->t_unit_res; | ||
676 | __entry->flags = tic->t_flags; | ||
677 | __entry->reserve_headq = log->l_reserve_headq; | ||
678 | __entry->write_headq = log->l_write_headq; | ||
679 | __entry->grant_reserve_cycle = log->l_grant_reserve_cycle; | ||
680 | __entry->grant_reserve_bytes = log->l_grant_reserve_bytes; | ||
681 | __entry->grant_write_cycle = log->l_grant_write_cycle; | ||
682 | __entry->grant_write_bytes = log->l_grant_write_bytes; | ||
683 | __entry->curr_cycle = log->l_curr_cycle; | ||
684 | __entry->curr_block = log->l_curr_block; | ||
685 | __entry->tail_lsn = log->l_tail_lsn; | ||
686 | ), | ||
687 | TP_printk("dev %d:%d type %s t_ocnt %u t_cnt %u t_curr_res %u " | ||
688 | "t_unit_res %u t_flags %s reserve_headq 0x%p " | ||
689 | "write_headq 0x%p grant_reserve_cycle %d " | ||
690 | "grant_reserve_bytes %d grant_write_cycle %d " | ||
691 | "grant_write_bytes %d curr_cycle %d curr_block %d " | ||
692 | "tail_cycle %d tail_block %d", | ||
693 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
694 | __print_symbolic(__entry->trans_type, XFS_TRANS_TYPES), | ||
695 | __entry->ocnt, | ||
696 | __entry->cnt, | ||
697 | __entry->curr_res, | ||
698 | __entry->unit_res, | ||
699 | __print_flags(__entry->flags, "|", XLOG_TIC_FLAGS), | ||
700 | __entry->reserve_headq, | ||
701 | __entry->write_headq, | ||
702 | __entry->grant_reserve_cycle, | ||
703 | __entry->grant_reserve_bytes, | ||
704 | __entry->grant_write_cycle, | ||
705 | __entry->grant_write_bytes, | ||
706 | __entry->curr_cycle, | ||
707 | __entry->curr_block, | ||
708 | CYCLE_LSN(__entry->tail_lsn), | ||
709 | BLOCK_LSN(__entry->tail_lsn) | ||
710 | ) | ||
711 | ) | ||
613 | 712 | ||
614 | #define DEFINE_LOGGRANT_EVENT(tname) \ | 713 | #define DEFINE_LOGGRANT_EVENT(name) \ |
615 | TRACE_EVENT(tname, \ | 714 | DEFINE_EVENT(xfs_loggrant_class, name, \ |
616 | TP_PROTO(struct log *log, struct xlog_ticket *tic), \ | 715 | TP_PROTO(struct log *log, struct xlog_ticket *tic), \ |
617 | TP_ARGS(log, tic), \ | 716 | TP_ARGS(log, tic)) |
618 | TP_STRUCT__entry( \ | ||
619 | __field(dev_t, dev) \ | ||
620 | __field(unsigned, trans_type) \ | ||
621 | __field(char, ocnt) \ | ||
622 | __field(char, cnt) \ | ||
623 | __field(int, curr_res) \ | ||
624 | __field(int, unit_res) \ | ||
625 | __field(unsigned int, flags) \ | ||
626 | __field(void *, reserve_headq) \ | ||
627 | __field(void *, write_headq) \ | ||
628 | __field(int, grant_reserve_cycle) \ | ||
629 | __field(int, grant_reserve_bytes) \ | ||
630 | __field(int, grant_write_cycle) \ | ||
631 | __field(int, grant_write_bytes) \ | ||
632 | __field(int, curr_cycle) \ | ||
633 | __field(int, curr_block) \ | ||
634 | __field(xfs_lsn_t, tail_lsn) \ | ||
635 | ), \ | ||
636 | TP_fast_assign( \ | ||
637 | __entry->dev = log->l_mp->m_super->s_dev; \ | ||
638 | __entry->trans_type = tic->t_trans_type; \ | ||
639 | __entry->ocnt = tic->t_ocnt; \ | ||
640 | __entry->cnt = tic->t_cnt; \ | ||
641 | __entry->curr_res = tic->t_curr_res; \ | ||
642 | __entry->unit_res = tic->t_unit_res; \ | ||
643 | __entry->flags = tic->t_flags; \ | ||
644 | __entry->reserve_headq = log->l_reserve_headq; \ | ||
645 | __entry->write_headq = log->l_write_headq; \ | ||
646 | __entry->grant_reserve_cycle = log->l_grant_reserve_cycle; \ | ||
647 | __entry->grant_reserve_bytes = log->l_grant_reserve_bytes; \ | ||
648 | __entry->grant_write_cycle = log->l_grant_write_cycle; \ | ||
649 | __entry->grant_write_bytes = log->l_grant_write_bytes; \ | ||
650 | __entry->curr_cycle = log->l_curr_cycle; \ | ||
651 | __entry->curr_block = log->l_curr_block; \ | ||
652 | __entry->tail_lsn = log->l_tail_lsn; \ | ||
653 | ), \ | ||
654 | TP_printk("dev %d:%d type %s t_ocnt %u t_cnt %u t_curr_res %u " \ | ||
655 | "t_unit_res %u t_flags %s reserve_headq 0x%p " \ | ||
656 | "write_headq 0x%p grant_reserve_cycle %d " \ | ||
657 | "grant_reserve_bytes %d grant_write_cycle %d " \ | ||
658 | "grant_write_bytes %d curr_cycle %d curr_block %d " \ | ||
659 | "tail_cycle %d tail_block %d", \ | ||
660 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | ||
661 | __print_symbolic(__entry->trans_type, XFS_TRANS_TYPES), \ | ||
662 | __entry->ocnt, \ | ||
663 | __entry->cnt, \ | ||
664 | __entry->curr_res, \ | ||
665 | __entry->unit_res, \ | ||
666 | __print_flags(__entry->flags, "|", XLOG_TIC_FLAGS), \ | ||
667 | __entry->reserve_headq, \ | ||
668 | __entry->write_headq, \ | ||
669 | __entry->grant_reserve_cycle, \ | ||
670 | __entry->grant_reserve_bytes, \ | ||
671 | __entry->grant_write_cycle, \ | ||
672 | __entry->grant_write_bytes, \ | ||
673 | __entry->curr_cycle, \ | ||
674 | __entry->curr_block, \ | ||
675 | CYCLE_LSN(__entry->tail_lsn), \ | ||
676 | BLOCK_LSN(__entry->tail_lsn) \ | ||
677 | ) \ | ||
678 | ) | ||
679 | DEFINE_LOGGRANT_EVENT(xfs_log_done_nonperm); | 717 | DEFINE_LOGGRANT_EVENT(xfs_log_done_nonperm); |
680 | DEFINE_LOGGRANT_EVENT(xfs_log_done_perm); | 718 | DEFINE_LOGGRANT_EVENT(xfs_log_done_perm); |
681 | DEFINE_LOGGRANT_EVENT(xfs_log_reserve); | 719 | DEFINE_LOGGRANT_EVENT(xfs_log_reserve); |
@@ -815,7 +853,7 @@ TRACE_EVENT(name, \ | |||
815 | ), \ | 853 | ), \ |
816 | TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " \ | 854 | TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " \ |
817 | "offset 0x%llx count %zd flags %s " \ | 855 | "offset 0x%llx count %zd flags %s " \ |
818 | "startoff 0x%llx startblock 0x%llx blockcount 0x%llx", \ | 856 | "startoff 0x%llx startblock %s blockcount 0x%llx", \ |
819 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | 857 | MAJOR(__entry->dev), MINOR(__entry->dev), \ |
820 | __entry->ino, \ | 858 | __entry->ino, \ |
821 | __entry->size, \ | 859 | __entry->size, \ |
@@ -824,7 +862,7 @@ TRACE_EVENT(name, \ | |||
824 | __entry->count, \ | 862 | __entry->count, \ |
825 | __print_flags(__entry->flags, "|", BMAPI_FLAGS), \ | 863 | __print_flags(__entry->flags, "|", BMAPI_FLAGS), \ |
826 | __entry->startoff, \ | 864 | __entry->startoff, \ |
827 | __entry->startblock, \ | 865 | xfs_fmtfsblock(__entry->startblock), \ |
828 | __entry->blockcount) \ | 866 | __entry->blockcount) \ |
829 | ) | 867 | ) |
830 | DEFINE_IOMAP_EVENT(xfs_iomap_enter); | 868 | DEFINE_IOMAP_EVENT(xfs_iomap_enter); |
@@ -897,28 +935,32 @@ TRACE_EVENT(xfs_itruncate_start, | |||
897 | __entry->toss_finish) | 935 | __entry->toss_finish) |
898 | ); | 936 | ); |
899 | 937 | ||
938 | DECLARE_EVENT_CLASS(xfs_itrunc_class, | ||
939 | TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), | ||
940 | TP_ARGS(ip, new_size), | ||
941 | TP_STRUCT__entry( | ||
942 | __field(dev_t, dev) | ||
943 | __field(xfs_ino_t, ino) | ||
944 | __field(xfs_fsize_t, size) | ||
945 | __field(xfs_fsize_t, new_size) | ||
946 | ), | ||
947 | TP_fast_assign( | ||
948 | __entry->dev = VFS_I(ip)->i_sb->s_dev; | ||
949 | __entry->ino = ip->i_ino; | ||
950 | __entry->size = ip->i_d.di_size; | ||
951 | __entry->new_size = new_size; | ||
952 | ), | ||
953 | TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx", | ||
954 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
955 | __entry->ino, | ||
956 | __entry->size, | ||
957 | __entry->new_size) | ||
958 | ) | ||
959 | |||
900 | #define DEFINE_ITRUNC_EVENT(name) \ | 960 | #define DEFINE_ITRUNC_EVENT(name) \ |
901 | TRACE_EVENT(name, \ | 961 | DEFINE_EVENT(xfs_itrunc_class, name, \ |
902 | TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), \ | 962 | TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), \ |
903 | TP_ARGS(ip, new_size), \ | 963 | TP_ARGS(ip, new_size)) |
904 | TP_STRUCT__entry( \ | ||
905 | __field(dev_t, dev) \ | ||
906 | __field(xfs_ino_t, ino) \ | ||
907 | __field(xfs_fsize_t, size) \ | ||
908 | __field(xfs_fsize_t, new_size) \ | ||
909 | ), \ | ||
910 | TP_fast_assign( \ | ||
911 | __entry->dev = VFS_I(ip)->i_sb->s_dev; \ | ||
912 | __entry->ino = ip->i_ino; \ | ||
913 | __entry->size = ip->i_d.di_size; \ | ||
914 | __entry->new_size = new_size; \ | ||
915 | ), \ | ||
916 | TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx", \ | ||
917 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | ||
918 | __entry->ino, \ | ||
919 | __entry->size, \ | ||
920 | __entry->new_size) \ | ||
921 | ) | ||
922 | DEFINE_ITRUNC_EVENT(xfs_itruncate_finish_start); | 964 | DEFINE_ITRUNC_EVENT(xfs_itruncate_finish_start); |
923 | DEFINE_ITRUNC_EVENT(xfs_itruncate_finish_end); | 965 | DEFINE_ITRUNC_EVENT(xfs_itruncate_finish_end); |
924 | 966 | ||
@@ -1037,28 +1079,28 @@ TRACE_EVENT(xfs_alloc_unbusy, | |||
1037 | 1079 | ||
1038 | TRACE_EVENT(xfs_alloc_busysearch, | 1080 | TRACE_EVENT(xfs_alloc_busysearch, |
1039 | TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t agbno, | 1081 | TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t agbno, |
1040 | xfs_extlen_t len, int found), | 1082 | xfs_extlen_t len, xfs_lsn_t lsn), |
1041 | TP_ARGS(mp, agno, agbno, len, found), | 1083 | TP_ARGS(mp, agno, agbno, len, lsn), |
1042 | TP_STRUCT__entry( | 1084 | TP_STRUCT__entry( |
1043 | __field(dev_t, dev) | 1085 | __field(dev_t, dev) |
1044 | __field(xfs_agnumber_t, agno) | 1086 | __field(xfs_agnumber_t, agno) |
1045 | __field(xfs_agblock_t, agbno) | 1087 | __field(xfs_agblock_t, agbno) |
1046 | __field(xfs_extlen_t, len) | 1088 | __field(xfs_extlen_t, len) |
1047 | __field(int, found) | 1089 | __field(xfs_lsn_t, lsn) |
1048 | ), | 1090 | ), |
1049 | TP_fast_assign( | 1091 | TP_fast_assign( |
1050 | __entry->dev = mp->m_super->s_dev; | 1092 | __entry->dev = mp->m_super->s_dev; |
1051 | __entry->agno = agno; | 1093 | __entry->agno = agno; |
1052 | __entry->agbno = agbno; | 1094 | __entry->agbno = agbno; |
1053 | __entry->len = len; | 1095 | __entry->len = len; |
1054 | __entry->found = found; | 1096 | __entry->lsn = lsn; |
1055 | ), | 1097 | ), |
1056 | TP_printk("dev %d:%d agno %u agbno %u len %u %s", | 1098 | TP_printk("dev %d:%d agno %u agbno %u len %u force lsn 0x%llx", |
1057 | MAJOR(__entry->dev), MINOR(__entry->dev), | 1099 | MAJOR(__entry->dev), MINOR(__entry->dev), |
1058 | __entry->agno, | 1100 | __entry->agno, |
1059 | __entry->agbno, | 1101 | __entry->agbno, |
1060 | __entry->len, | 1102 | __entry->len, |
1061 | __print_symbolic(__entry->found, XFS_BUSY_STATES)) | 1103 | __entry->lsn) |
1062 | ); | 1104 | ); |
1063 | 1105 | ||
1064 | TRACE_EVENT(xfs_agf, | 1106 | TRACE_EVENT(xfs_agf, |
@@ -1152,77 +1194,80 @@ TRACE_EVENT(xfs_free_extent, | |||
1152 | 1194 | ||
1153 | ); | 1195 | ); |
1154 | 1196 | ||
1155 | #define DEFINE_ALLOC_EVENT(name) \ | 1197 | DECLARE_EVENT_CLASS(xfs_alloc_class, |
1156 | TRACE_EVENT(name, \ | 1198 | TP_PROTO(struct xfs_alloc_arg *args), |
1157 | TP_PROTO(struct xfs_alloc_arg *args), \ | 1199 | TP_ARGS(args), |
1158 | TP_ARGS(args), \ | 1200 | TP_STRUCT__entry( |
1159 | TP_STRUCT__entry( \ | 1201 | __field(dev_t, dev) |
1160 | __field(dev_t, dev) \ | 1202 | __field(xfs_agnumber_t, agno) |
1161 | __field(xfs_agnumber_t, agno) \ | 1203 | __field(xfs_agblock_t, agbno) |
1162 | __field(xfs_agblock_t, agbno) \ | 1204 | __field(xfs_extlen_t, minlen) |
1163 | __field(xfs_extlen_t, minlen) \ | 1205 | __field(xfs_extlen_t, maxlen) |
1164 | __field(xfs_extlen_t, maxlen) \ | 1206 | __field(xfs_extlen_t, mod) |
1165 | __field(xfs_extlen_t, mod) \ | 1207 | __field(xfs_extlen_t, prod) |
1166 | __field(xfs_extlen_t, prod) \ | 1208 | __field(xfs_extlen_t, minleft) |
1167 | __field(xfs_extlen_t, minleft) \ | 1209 | __field(xfs_extlen_t, total) |
1168 | __field(xfs_extlen_t, total) \ | 1210 | __field(xfs_extlen_t, alignment) |
1169 | __field(xfs_extlen_t, alignment) \ | 1211 | __field(xfs_extlen_t, minalignslop) |
1170 | __field(xfs_extlen_t, minalignslop) \ | 1212 | __field(xfs_extlen_t, len) |
1171 | __field(xfs_extlen_t, len) \ | 1213 | __field(short, type) |
1172 | __field(short, type) \ | 1214 | __field(short, otype) |
1173 | __field(short, otype) \ | 1215 | __field(char, wasdel) |
1174 | __field(char, wasdel) \ | 1216 | __field(char, wasfromfl) |
1175 | __field(char, wasfromfl) \ | 1217 | __field(char, isfl) |
1176 | __field(char, isfl) \ | 1218 | __field(char, userdata) |
1177 | __field(char, userdata) \ | 1219 | __field(xfs_fsblock_t, firstblock) |
1178 | __field(xfs_fsblock_t, firstblock) \ | 1220 | ), |
1179 | ), \ | 1221 | TP_fast_assign( |
1180 | TP_fast_assign( \ | 1222 | __entry->dev = args->mp->m_super->s_dev; |
1181 | __entry->dev = args->mp->m_super->s_dev; \ | 1223 | __entry->agno = args->agno; |
1182 | __entry->agno = args->agno; \ | 1224 | __entry->agbno = args->agbno; |
1183 | __entry->agbno = args->agbno; \ | 1225 | __entry->minlen = args->minlen; |
1184 | __entry->minlen = args->minlen; \ | 1226 | __entry->maxlen = args->maxlen; |
1185 | __entry->maxlen = args->maxlen; \ | 1227 | __entry->mod = args->mod; |
1186 | __entry->mod = args->mod; \ | 1228 | __entry->prod = args->prod; |
1187 | __entry->prod = args->prod; \ | 1229 | __entry->minleft = args->minleft; |
1188 | __entry->minleft = args->minleft; \ | 1230 | __entry->total = args->total; |
1189 | __entry->total = args->total; \ | 1231 | __entry->alignment = args->alignment; |
1190 | __entry->alignment = args->alignment; \ | 1232 | __entry->minalignslop = args->minalignslop; |
1191 | __entry->minalignslop = args->minalignslop; \ | 1233 | __entry->len = args->len; |
1192 | __entry->len = args->len; \ | 1234 | __entry->type = args->type; |
1193 | __entry->type = args->type; \ | 1235 | __entry->otype = args->otype; |
1194 | __entry->otype = args->otype; \ | 1236 | __entry->wasdel = args->wasdel; |
1195 | __entry->wasdel = args->wasdel; \ | 1237 | __entry->wasfromfl = args->wasfromfl; |
1196 | __entry->wasfromfl = args->wasfromfl; \ | 1238 | __entry->isfl = args->isfl; |
1197 | __entry->isfl = args->isfl; \ | 1239 | __entry->userdata = args->userdata; |
1198 | __entry->userdata = args->userdata; \ | 1240 | __entry->firstblock = args->firstblock; |
1199 | __entry->firstblock = args->firstblock; \ | 1241 | ), |
1200 | ), \ | 1242 | TP_printk("dev %d:%d agno %u agbno %u minlen %u maxlen %u mod %u " |
1201 | TP_printk("dev %d:%d agno %u agbno %u minlen %u maxlen %u mod %u " \ | 1243 | "prod %u minleft %u total %u alignment %u minalignslop %u " |
1202 | "prod %u minleft %u total %u alignment %u minalignslop %u " \ | 1244 | "len %u type %s otype %s wasdel %d wasfromfl %d isfl %d " |
1203 | "len %u type %s otype %s wasdel %d wasfromfl %d isfl %d " \ | 1245 | "userdata %d firstblock 0x%llx", |
1204 | "userdata %d firstblock 0x%llx", \ | 1246 | MAJOR(__entry->dev), MINOR(__entry->dev), |
1205 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | 1247 | __entry->agno, |
1206 | __entry->agno, \ | 1248 | __entry->agbno, |
1207 | __entry->agbno, \ | 1249 | __entry->minlen, |
1208 | __entry->minlen, \ | 1250 | __entry->maxlen, |
1209 | __entry->maxlen, \ | 1251 | __entry->mod, |
1210 | __entry->mod, \ | 1252 | __entry->prod, |
1211 | __entry->prod, \ | 1253 | __entry->minleft, |
1212 | __entry->minleft, \ | 1254 | __entry->total, |
1213 | __entry->total, \ | 1255 | __entry->alignment, |
1214 | __entry->alignment, \ | 1256 | __entry->minalignslop, |
1215 | __entry->minalignslop, \ | 1257 | __entry->len, |
1216 | __entry->len, \ | 1258 | __print_symbolic(__entry->type, XFS_ALLOC_TYPES), |
1217 | __print_symbolic(__entry->type, XFS_ALLOC_TYPES), \ | 1259 | __print_symbolic(__entry->otype, XFS_ALLOC_TYPES), |
1218 | __print_symbolic(__entry->otype, XFS_ALLOC_TYPES), \ | 1260 | __entry->wasdel, |
1219 | __entry->wasdel, \ | 1261 | __entry->wasfromfl, |
1220 | __entry->wasfromfl, \ | 1262 | __entry->isfl, |
1221 | __entry->isfl, \ | 1263 | __entry->userdata, |
1222 | __entry->userdata, \ | 1264 | __entry->firstblock) |
1223 | __entry->firstblock) \ | ||
1224 | ) | 1265 | ) |
1225 | 1266 | ||
1267 | #define DEFINE_ALLOC_EVENT(name) \ | ||
1268 | DEFINE_EVENT(xfs_alloc_class, name, \ | ||
1269 | TP_PROTO(struct xfs_alloc_arg *args), \ | ||
1270 | TP_ARGS(args)) | ||
1226 | DEFINE_ALLOC_EVENT(xfs_alloc_exact_done); | 1271 | DEFINE_ALLOC_EVENT(xfs_alloc_exact_done); |
1227 | DEFINE_ALLOC_EVENT(xfs_alloc_exact_error); | 1272 | DEFINE_ALLOC_EVENT(xfs_alloc_exact_error); |
1228 | DEFINE_ALLOC_EVENT(xfs_alloc_near_nominleft); | 1273 | DEFINE_ALLOC_EVENT(xfs_alloc_near_nominleft); |
@@ -1245,92 +1290,100 @@ DEFINE_ALLOC_EVENT(xfs_alloc_vextent_noagbp); | |||
1245 | DEFINE_ALLOC_EVENT(xfs_alloc_vextent_loopfailed); | 1290 | DEFINE_ALLOC_EVENT(xfs_alloc_vextent_loopfailed); |
1246 | DEFINE_ALLOC_EVENT(xfs_alloc_vextent_allfailed); | 1291 | DEFINE_ALLOC_EVENT(xfs_alloc_vextent_allfailed); |
1247 | 1292 | ||
1248 | #define DEFINE_DIR2_TRACE(tname) \ | 1293 | DECLARE_EVENT_CLASS(xfs_dir2_class, |
1249 | TRACE_EVENT(tname, \ | 1294 | TP_PROTO(struct xfs_da_args *args), |
1295 | TP_ARGS(args), | ||
1296 | TP_STRUCT__entry( | ||
1297 | __field(dev_t, dev) | ||
1298 | __field(xfs_ino_t, ino) | ||
1299 | __dynamic_array(char, name, args->namelen) | ||
1300 | __field(int, namelen) | ||
1301 | __field(xfs_dahash_t, hashval) | ||
1302 | __field(xfs_ino_t, inumber) | ||
1303 | __field(int, op_flags) | ||
1304 | ), | ||
1305 | TP_fast_assign( | ||
1306 | __entry->dev = VFS_I(args->dp)->i_sb->s_dev; | ||
1307 | __entry->ino = args->dp->i_ino; | ||
1308 | if (args->namelen) | ||
1309 | memcpy(__get_str(name), args->name, args->namelen); | ||
1310 | __entry->namelen = args->namelen; | ||
1311 | __entry->hashval = args->hashval; | ||
1312 | __entry->inumber = args->inumber; | ||
1313 | __entry->op_flags = args->op_flags; | ||
1314 | ), | ||
1315 | TP_printk("dev %d:%d ino 0x%llx name %.*s namelen %d hashval 0x%x " | ||
1316 | "inumber 0x%llx op_flags %s", | ||
1317 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
1318 | __entry->ino, | ||
1319 | __entry->namelen, | ||
1320 | __entry->namelen ? __get_str(name) : NULL, | ||
1321 | __entry->namelen, | ||
1322 | __entry->hashval, | ||
1323 | __entry->inumber, | ||
1324 | __print_flags(__entry->op_flags, "|", XFS_DA_OP_FLAGS)) | ||
1325 | ) | ||
1326 | |||
1327 | #define DEFINE_DIR2_EVENT(name) \ | ||
1328 | DEFINE_EVENT(xfs_dir2_class, name, \ | ||
1250 | TP_PROTO(struct xfs_da_args *args), \ | 1329 | TP_PROTO(struct xfs_da_args *args), \ |
1251 | TP_ARGS(args), \ | 1330 | TP_ARGS(args)) |
1252 | TP_STRUCT__entry( \ | 1331 | DEFINE_DIR2_EVENT(xfs_dir2_sf_addname); |
1253 | __field(dev_t, dev) \ | 1332 | DEFINE_DIR2_EVENT(xfs_dir2_sf_create); |
1254 | __field(xfs_ino_t, ino) \ | 1333 | DEFINE_DIR2_EVENT(xfs_dir2_sf_lookup); |
1255 | __dynamic_array(char, name, args->namelen) \ | 1334 | DEFINE_DIR2_EVENT(xfs_dir2_sf_replace); |
1256 | __field(int, namelen) \ | 1335 | DEFINE_DIR2_EVENT(xfs_dir2_sf_removename); |
1257 | __field(xfs_dahash_t, hashval) \ | 1336 | DEFINE_DIR2_EVENT(xfs_dir2_sf_toino4); |
1258 | __field(xfs_ino_t, inumber) \ | 1337 | DEFINE_DIR2_EVENT(xfs_dir2_sf_toino8); |
1259 | __field(int, op_flags) \ | 1338 | DEFINE_DIR2_EVENT(xfs_dir2_sf_to_block); |
1260 | ), \ | 1339 | DEFINE_DIR2_EVENT(xfs_dir2_block_addname); |
1261 | TP_fast_assign( \ | 1340 | DEFINE_DIR2_EVENT(xfs_dir2_block_lookup); |
1262 | __entry->dev = VFS_I(args->dp)->i_sb->s_dev; \ | 1341 | DEFINE_DIR2_EVENT(xfs_dir2_block_replace); |
1263 | __entry->ino = args->dp->i_ino; \ | 1342 | DEFINE_DIR2_EVENT(xfs_dir2_block_removename); |
1264 | if (args->namelen) \ | 1343 | DEFINE_DIR2_EVENT(xfs_dir2_block_to_sf); |
1265 | memcpy(__get_str(name), args->name, args->namelen); \ | 1344 | DEFINE_DIR2_EVENT(xfs_dir2_block_to_leaf); |
1266 | __entry->namelen = args->namelen; \ | 1345 | DEFINE_DIR2_EVENT(xfs_dir2_leaf_addname); |
1267 | __entry->hashval = args->hashval; \ | 1346 | DEFINE_DIR2_EVENT(xfs_dir2_leaf_lookup); |
1268 | __entry->inumber = args->inumber; \ | 1347 | DEFINE_DIR2_EVENT(xfs_dir2_leaf_replace); |
1269 | __entry->op_flags = args->op_flags; \ | 1348 | DEFINE_DIR2_EVENT(xfs_dir2_leaf_removename); |
1270 | ), \ | 1349 | DEFINE_DIR2_EVENT(xfs_dir2_leaf_to_block); |
1271 | TP_printk("dev %d:%d ino 0x%llx name %.*s namelen %d hashval 0x%x " \ | 1350 | DEFINE_DIR2_EVENT(xfs_dir2_leaf_to_node); |
1272 | "inumber 0x%llx op_flags %s", \ | 1351 | DEFINE_DIR2_EVENT(xfs_dir2_node_addname); |
1273 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | 1352 | DEFINE_DIR2_EVENT(xfs_dir2_node_lookup); |
1274 | __entry->ino, \ | 1353 | DEFINE_DIR2_EVENT(xfs_dir2_node_replace); |
1275 | __entry->namelen, \ | 1354 | DEFINE_DIR2_EVENT(xfs_dir2_node_removename); |
1276 | __entry->namelen ? __get_str(name) : NULL, \ | 1355 | DEFINE_DIR2_EVENT(xfs_dir2_node_to_leaf); |
1277 | __entry->namelen, \ | 1356 | |
1278 | __entry->hashval, \ | 1357 | DECLARE_EVENT_CLASS(xfs_dir2_space_class, |
1279 | __entry->inumber, \ | 1358 | TP_PROTO(struct xfs_da_args *args, int idx), |
1280 | __print_flags(__entry->op_flags, "|", XFS_DA_OP_FLAGS)) \ | 1359 | TP_ARGS(args, idx), |
1360 | TP_STRUCT__entry( | ||
1361 | __field(dev_t, dev) | ||
1362 | __field(xfs_ino_t, ino) | ||
1363 | __field(int, op_flags) | ||
1364 | __field(int, idx) | ||
1365 | ), | ||
1366 | TP_fast_assign( | ||
1367 | __entry->dev = VFS_I(args->dp)->i_sb->s_dev; | ||
1368 | __entry->ino = args->dp->i_ino; | ||
1369 | __entry->op_flags = args->op_flags; | ||
1370 | __entry->idx = idx; | ||
1371 | ), | ||
1372 | TP_printk("dev %d:%d ino 0x%llx op_flags %s index %d", | ||
1373 | MAJOR(__entry->dev), MINOR(__entry->dev), | ||
1374 | __entry->ino, | ||
1375 | __print_flags(__entry->op_flags, "|", XFS_DA_OP_FLAGS), | ||
1376 | __entry->idx) | ||
1281 | ) | 1377 | ) |
1282 | DEFINE_DIR2_TRACE(xfs_dir2_sf_addname); | ||
1283 | DEFINE_DIR2_TRACE(xfs_dir2_sf_create); | ||
1284 | DEFINE_DIR2_TRACE(xfs_dir2_sf_lookup); | ||
1285 | DEFINE_DIR2_TRACE(xfs_dir2_sf_replace); | ||
1286 | DEFINE_DIR2_TRACE(xfs_dir2_sf_removename); | ||
1287 | DEFINE_DIR2_TRACE(xfs_dir2_sf_toino4); | ||
1288 | DEFINE_DIR2_TRACE(xfs_dir2_sf_toino8); | ||
1289 | DEFINE_DIR2_TRACE(xfs_dir2_sf_to_block); | ||
1290 | DEFINE_DIR2_TRACE(xfs_dir2_block_addname); | ||
1291 | DEFINE_DIR2_TRACE(xfs_dir2_block_lookup); | ||
1292 | DEFINE_DIR2_TRACE(xfs_dir2_block_replace); | ||
1293 | DEFINE_DIR2_TRACE(xfs_dir2_block_removename); | ||
1294 | DEFINE_DIR2_TRACE(xfs_dir2_block_to_sf); | ||
1295 | DEFINE_DIR2_TRACE(xfs_dir2_block_to_leaf); | ||
1296 | DEFINE_DIR2_TRACE(xfs_dir2_leaf_addname); | ||
1297 | DEFINE_DIR2_TRACE(xfs_dir2_leaf_lookup); | ||
1298 | DEFINE_DIR2_TRACE(xfs_dir2_leaf_replace); | ||
1299 | DEFINE_DIR2_TRACE(xfs_dir2_leaf_removename); | ||
1300 | DEFINE_DIR2_TRACE(xfs_dir2_leaf_to_block); | ||
1301 | DEFINE_DIR2_TRACE(xfs_dir2_leaf_to_node); | ||
1302 | DEFINE_DIR2_TRACE(xfs_dir2_node_addname); | ||
1303 | DEFINE_DIR2_TRACE(xfs_dir2_node_lookup); | ||
1304 | DEFINE_DIR2_TRACE(xfs_dir2_node_replace); | ||
1305 | DEFINE_DIR2_TRACE(xfs_dir2_node_removename); | ||
1306 | DEFINE_DIR2_TRACE(xfs_dir2_node_to_leaf); | ||
1307 | 1378 | ||
1308 | #define DEFINE_DIR2_SPACE_TRACE(tname) \ | 1379 | #define DEFINE_DIR2_SPACE_EVENT(name) \ |
1309 | TRACE_EVENT(tname, \ | 1380 | DEFINE_EVENT(xfs_dir2_space_class, name, \ |
1310 | TP_PROTO(struct xfs_da_args *args, int idx), \ | 1381 | TP_PROTO(struct xfs_da_args *args, int idx), \ |
1311 | TP_ARGS(args, idx), \ | 1382 | TP_ARGS(args, idx)) |
1312 | TP_STRUCT__entry( \ | 1383 | DEFINE_DIR2_SPACE_EVENT(xfs_dir2_leafn_add); |
1313 | __field(dev_t, dev) \ | 1384 | DEFINE_DIR2_SPACE_EVENT(xfs_dir2_leafn_remove); |
1314 | __field(xfs_ino_t, ino) \ | 1385 | DEFINE_DIR2_SPACE_EVENT(xfs_dir2_grow_inode); |
1315 | __field(int, op_flags) \ | 1386 | DEFINE_DIR2_SPACE_EVENT(xfs_dir2_shrink_inode); |
1316 | __field(int, idx) \ | ||
1317 | ), \ | ||
1318 | TP_fast_assign( \ | ||
1319 | __entry->dev = VFS_I(args->dp)->i_sb->s_dev; \ | ||
1320 | __entry->ino = args->dp->i_ino; \ | ||
1321 | __entry->op_flags = args->op_flags; \ | ||
1322 | __entry->idx = idx; \ | ||
1323 | ), \ | ||
1324 | TP_printk("dev %d:%d ino 0x%llx op_flags %s index %d", \ | ||
1325 | MAJOR(__entry->dev), MINOR(__entry->dev), \ | ||
1326 | __entry->ino, \ | ||
1327 | __print_flags(__entry->op_flags, "|", XFS_DA_OP_FLAGS), \ | ||
1328 | __entry->idx) \ | ||
1329 | ) | ||
1330 | DEFINE_DIR2_SPACE_TRACE(xfs_dir2_leafn_add); | ||
1331 | DEFINE_DIR2_SPACE_TRACE(xfs_dir2_leafn_remove); | ||
1332 | DEFINE_DIR2_SPACE_TRACE(xfs_dir2_grow_inode); | ||
1333 | DEFINE_DIR2_SPACE_TRACE(xfs_dir2_shrink_inode); | ||
1334 | 1387 | ||
1335 | TRACE_EVENT(xfs_dir2_leafn_moveents, | 1388 | TRACE_EVENT(xfs_dir2_leafn_moveents, |
1336 | TP_PROTO(struct xfs_da_args *args, int src_idx, int dst_idx, int count), | 1389 | TP_PROTO(struct xfs_da_args *args, int src_idx, int dst_idx, int count), |
diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c index 71af76fe8a2..873e07e2907 100644 --- a/fs/xfs/quota/xfs_qm_syscalls.c +++ b/fs/xfs/quota/xfs_qm_syscalls.c | |||
@@ -891,7 +891,7 @@ xfs_qm_dqrele_all_inodes( | |||
891 | uint flags) | 891 | uint flags) |
892 | { | 892 | { |
893 | ASSERT(mp->m_quotainfo); | 893 | ASSERT(mp->m_quotainfo); |
894 | xfs_inode_ag_iterator(mp, xfs_dqrele_inode, flags, XFS_ICI_NO_TAG); | 894 | xfs_inode_ag_iterator(mp, xfs_dqrele_inode, flags, XFS_ICI_NO_TAG, 0); |
895 | } | 895 | } |
896 | 896 | ||
897 | /*------------------------------------------------------------------------*/ | 897 | /*------------------------------------------------------------------------*/ |
diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index a1c65fc6d9c..275b1f4f943 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c | |||
@@ -2563,43 +2563,41 @@ xfs_alloc_search_busy(xfs_trans_t *tp, | |||
2563 | xfs_mount_t *mp; | 2563 | xfs_mount_t *mp; |
2564 | xfs_perag_busy_t *bsy; | 2564 | xfs_perag_busy_t *bsy; |
2565 | xfs_agblock_t uend, bend; | 2565 | xfs_agblock_t uend, bend; |
2566 | xfs_lsn_t lsn; | 2566 | xfs_lsn_t lsn = 0; |
2567 | int cnt; | 2567 | int cnt; |
2568 | 2568 | ||
2569 | mp = tp->t_mountp; | 2569 | mp = tp->t_mountp; |
2570 | 2570 | ||
2571 | spin_lock(&mp->m_perag[agno].pagb_lock); | 2571 | spin_lock(&mp->m_perag[agno].pagb_lock); |
2572 | cnt = mp->m_perag[agno].pagb_count; | ||
2573 | 2572 | ||
2574 | uend = bno + len - 1; | 2573 | uend = bno + len - 1; |
2575 | 2574 | ||
2576 | /* search pagb_list for this slot, skipping open slots */ | 2575 | /* |
2577 | for (bsy = mp->m_perag[agno].pagb_list; cnt; bsy++) { | 2576 | * search pagb_list for this slot, skipping open slots. We have to |
2577 | * search the entire array as there may be multiple overlaps and | ||
2578 | * we have to get the most recent LSN for the log force to push out | ||
2579 | * all the transactions that span the range. | ||
2580 | */ | ||
2581 | for (cnt = 0; cnt < mp->m_perag[agno].pagb_count; cnt++) { | ||
2582 | bsy = &mp->m_perag[agno].pagb_list[cnt]; | ||
2583 | if (!bsy->busy_tp) | ||
2584 | continue; | ||
2578 | 2585 | ||
2579 | /* | 2586 | bend = bsy->busy_start + bsy->busy_length - 1; |
2580 | * (start1,length1) within (start2, length2) | 2587 | if (bno > bend || uend < bsy->busy_start) |
2581 | */ | 2588 | continue; |
2582 | if (bsy->busy_tp != NULL) { | ||
2583 | bend = bsy->busy_start + bsy->busy_length - 1; | ||
2584 | if ((bno > bend) || (uend < bsy->busy_start)) { | ||
2585 | cnt--; | ||
2586 | } else { | ||
2587 | break; | ||
2588 | } | ||
2589 | } | ||
2590 | } | ||
2591 | 2589 | ||
2592 | trace_xfs_alloc_busysearch(mp, agno, bno, len, !!cnt); | 2590 | /* (start1,length1) within (start2, length2) */ |
2591 | if (XFS_LSN_CMP(bsy->busy_tp->t_commit_lsn, lsn) > 0) | ||
2592 | lsn = bsy->busy_tp->t_commit_lsn; | ||
2593 | } | ||
2594 | spin_unlock(&mp->m_perag[agno].pagb_lock); | ||
2595 | trace_xfs_alloc_busysearch(tp->t_mountp, agno, bno, len, lsn); | ||
2593 | 2596 | ||
2594 | /* | 2597 | /* |
2595 | * If a block was found, force the log through the LSN of the | 2598 | * If a block was found, force the log through the LSN of the |
2596 | * transaction that freed the block | 2599 | * transaction that freed the block |
2597 | */ | 2600 | */ |
2598 | if (cnt) { | 2601 | if (lsn) |
2599 | lsn = bsy->busy_tp->t_commit_lsn; | ||
2600 | spin_unlock(&mp->m_perag[agno].pagb_lock); | ||
2601 | xfs_log_force(mp, lsn, XFS_LOG_FORCE|XFS_LOG_SYNC); | 2602 | xfs_log_force(mp, lsn, XFS_LOG_FORCE|XFS_LOG_SYNC); |
2602 | } else { | ||
2603 | spin_unlock(&mp->m_perag[agno].pagb_lock); | ||
2604 | } | ||
2605 | } | 2603 | } |
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c index d1483a4f71b..84ca1cf16a1 100644 --- a/fs/xfs/xfs_dfrag.c +++ b/fs/xfs/xfs_dfrag.c | |||
@@ -114,10 +114,82 @@ xfs_swapext( | |||
114 | return error; | 114 | return error; |
115 | } | 115 | } |
116 | 116 | ||
117 | /* | ||
118 | * We need to check that the format of the data fork in the temporary inode is | ||
119 | * valid for the target inode before doing the swap. This is not a problem with | ||
120 | * attr1 because of the fixed fork offset, but attr2 has a dynamically sized | ||
121 | * data fork depending on the space the attribute fork is taking so we can get | ||
122 | * invalid formats on the target inode. | ||
123 | * | ||
124 | * E.g. target has space for 7 extents in extent format, temp inode only has | ||
125 | * space for 6. If we defragment down to 7 extents, then the tmp format is a | ||
126 | * btree, but when swapped it needs to be in extent format. Hence we can't just | ||
127 | * blindly swap data forks on attr2 filesystems. | ||
128 | * | ||
129 | * Note that we check the swap in both directions so that we don't end up with | ||
130 | * a corrupt temporary inode, either. | ||
131 | * | ||
132 | * Note that fixing the way xfs_fsr sets up the attribute fork in the source | ||
133 | * inode will prevent this situation from occurring, so all we do here is | ||
134 | * reject and log the attempt. basically we are putting the responsibility on | ||
135 | * userspace to get this right. | ||
136 | */ | ||
137 | static int | ||
138 | xfs_swap_extents_check_format( | ||
139 | xfs_inode_t *ip, /* target inode */ | ||
140 | xfs_inode_t *tip) /* tmp inode */ | ||
141 | { | ||
142 | |||
143 | /* Should never get a local format */ | ||
144 | if (ip->i_d.di_format == XFS_DINODE_FMT_LOCAL || | ||
145 | tip->i_d.di_format == XFS_DINODE_FMT_LOCAL) | ||
146 | return EINVAL; | ||
147 | |||
148 | /* | ||
149 | * if the target inode has less extents that then temporary inode then | ||
150 | * why did userspace call us? | ||
151 | */ | ||
152 | if (ip->i_d.di_nextents < tip->i_d.di_nextents) | ||
153 | return EINVAL; | ||
154 | |||
155 | /* | ||
156 | * if the target inode is in extent form and the temp inode is in btree | ||
157 | * form then we will end up with the target inode in the wrong format | ||
158 | * as we already know there are less extents in the temp inode. | ||
159 | */ | ||
160 | if (ip->i_d.di_format == XFS_DINODE_FMT_EXTENTS && | ||
161 | tip->i_d.di_format == XFS_DINODE_FMT_BTREE) | ||
162 | return EINVAL; | ||
163 | |||
164 | /* Check temp in extent form to max in target */ | ||
165 | if (tip->i_d.di_format == XFS_DINODE_FMT_EXTENTS && | ||
166 | XFS_IFORK_NEXTENTS(tip, XFS_DATA_FORK) > ip->i_df.if_ext_max) | ||
167 | return EINVAL; | ||
168 | |||
169 | /* Check target in extent form to max in temp */ | ||
170 | if (ip->i_d.di_format == XFS_DINODE_FMT_EXTENTS && | ||
171 | XFS_IFORK_NEXTENTS(ip, XFS_DATA_FORK) > tip->i_df.if_ext_max) | ||
172 | return EINVAL; | ||
173 | |||
174 | /* Check root block of temp in btree form to max in target */ | ||
175 | if (tip->i_d.di_format == XFS_DINODE_FMT_BTREE && | ||
176 | XFS_IFORK_BOFF(ip) && | ||
177 | tip->i_df.if_broot_bytes > XFS_IFORK_BOFF(ip)) | ||
178 | return EINVAL; | ||
179 | |||
180 | /* Check root block of target in btree form to max in temp */ | ||
181 | if (ip->i_d.di_format == XFS_DINODE_FMT_BTREE && | ||
182 | XFS_IFORK_BOFF(tip) && | ||
183 | ip->i_df.if_broot_bytes > XFS_IFORK_BOFF(tip)) | ||
184 | return EINVAL; | ||
185 | |||
186 | return 0; | ||
187 | } | ||
188 | |||
117 | int | 189 | int |
118 | xfs_swap_extents( | 190 | xfs_swap_extents( |
119 | xfs_inode_t *ip, | 191 | xfs_inode_t *ip, /* target inode */ |
120 | xfs_inode_t *tip, | 192 | xfs_inode_t *tip, /* tmp inode */ |
121 | xfs_swapext_t *sxp) | 193 | xfs_swapext_t *sxp) |
122 | { | 194 | { |
123 | xfs_mount_t *mp; | 195 | xfs_mount_t *mp; |
@@ -161,13 +233,6 @@ xfs_swap_extents( | |||
161 | goto out_unlock; | 233 | goto out_unlock; |
162 | } | 234 | } |
163 | 235 | ||
164 | /* Should never get a local format */ | ||
165 | if (ip->i_d.di_format == XFS_DINODE_FMT_LOCAL || | ||
166 | tip->i_d.di_format == XFS_DINODE_FMT_LOCAL) { | ||
167 | error = XFS_ERROR(EINVAL); | ||
168 | goto out_unlock; | ||
169 | } | ||
170 | |||
171 | if (VN_CACHED(VFS_I(tip)) != 0) { | 236 | if (VN_CACHED(VFS_I(tip)) != 0) { |
172 | error = xfs_flushinval_pages(tip, 0, -1, | 237 | error = xfs_flushinval_pages(tip, 0, -1, |
173 | FI_REMAPF_LOCKED); | 238 | FI_REMAPF_LOCKED); |
@@ -189,13 +254,12 @@ xfs_swap_extents( | |||
189 | goto out_unlock; | 254 | goto out_unlock; |
190 | } | 255 | } |
191 | 256 | ||
192 | /* | 257 | /* check inode formats now that data is flushed */ |
193 | * If the target has extended attributes, the tmp file | 258 | error = xfs_swap_extents_check_format(ip, tip); |
194 | * must also in order to ensure the correct data fork | 259 | if (error) { |
195 | * format. | 260 | xfs_fs_cmn_err(CE_NOTE, mp, |
196 | */ | 261 | "%s: inode 0x%llx format is incompatible for exchanging.", |
197 | if ( XFS_IFORK_Q(ip) != XFS_IFORK_Q(tip) ) { | 262 | __FILE__, ip->i_ino); |
198 | error = XFS_ERROR(EINVAL); | ||
199 | goto out_unlock; | 263 | goto out_unlock; |
200 | } | 264 | } |
201 | 265 | ||
@@ -276,6 +340,16 @@ xfs_swap_extents( | |||
276 | *tifp = *tempifp; /* struct copy */ | 340 | *tifp = *tempifp; /* struct copy */ |
277 | 341 | ||
278 | /* | 342 | /* |
343 | * Fix the in-memory data fork values that are dependent on the fork | ||
344 | * offset in the inode. We can't assume they remain the same as attr2 | ||
345 | * has dynamic fork offsets. | ||
346 | */ | ||
347 | ifp->if_ext_max = XFS_IFORK_SIZE(ip, XFS_DATA_FORK) / | ||
348 | (uint)sizeof(xfs_bmbt_rec_t); | ||
349 | tifp->if_ext_max = XFS_IFORK_SIZE(tip, XFS_DATA_FORK) / | ||
350 | (uint)sizeof(xfs_bmbt_rec_t); | ||
351 | |||
352 | /* | ||
279 | * Fix the on-disk inode values | 353 | * Fix the on-disk inode values |
280 | */ | 354 | */ |
281 | tmp = (__uint64_t)ip->i_d.di_nblocks; | 355 | tmp = (__uint64_t)ip->i_d.di_nblocks; |
diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index fa402a6bbbc..155e798f30a 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c | |||
@@ -73,7 +73,6 @@ xfs_inode_alloc( | |||
73 | ASSERT(atomic_read(&ip->i_pincount) == 0); | 73 | ASSERT(atomic_read(&ip->i_pincount) == 0); |
74 | ASSERT(!spin_is_locked(&ip->i_flags_lock)); | 74 | ASSERT(!spin_is_locked(&ip->i_flags_lock)); |
75 | ASSERT(completion_done(&ip->i_flush)); | 75 | ASSERT(completion_done(&ip->i_flush)); |
76 | ASSERT(!rwsem_is_locked(&ip->i_iolock.mr_lock)); | ||
77 | 76 | ||
78 | mrlock_init(&ip->i_iolock, MRLOCK_BARRIER, "xfsio", ip->i_ino); | 77 | mrlock_init(&ip->i_iolock, MRLOCK_BARRIER, "xfsio", ip->i_ino); |
79 | 78 | ||
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index ce278b3ae7f..ef77fd88c8e 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c | |||
@@ -2841,8 +2841,8 @@ xfs_iflush( | |||
2841 | mp = ip->i_mount; | 2841 | mp = ip->i_mount; |
2842 | 2842 | ||
2843 | /* | 2843 | /* |
2844 | * If the inode isn't dirty, then just release the inode | 2844 | * If the inode isn't dirty, then just release the inode flush lock and |
2845 | * flush lock and do nothing. | 2845 | * do nothing. |
2846 | */ | 2846 | */ |
2847 | if (xfs_inode_clean(ip)) { | 2847 | if (xfs_inode_clean(ip)) { |
2848 | xfs_ifunlock(ip); | 2848 | xfs_ifunlock(ip); |
@@ -2868,6 +2868,19 @@ xfs_iflush( | |||
2868 | xfs_iunpin_wait(ip); | 2868 | xfs_iunpin_wait(ip); |
2869 | 2869 | ||
2870 | /* | 2870 | /* |
2871 | * For stale inodes we cannot rely on the backing buffer remaining | ||
2872 | * stale in cache for the remaining life of the stale inode and so | ||
2873 | * xfs_itobp() below may give us a buffer that no longer contains | ||
2874 | * inodes below. We have to check this after ensuring the inode is | ||
2875 | * unpinned so that it is safe to reclaim the stale inode after the | ||
2876 | * flush call. | ||
2877 | */ | ||
2878 | if (xfs_iflags_test(ip, XFS_ISTALE)) { | ||
2879 | xfs_ifunlock(ip); | ||
2880 | return 0; | ||
2881 | } | ||
2882 | |||
2883 | /* | ||
2871 | * This may have been unpinned because the filesystem is shutting | 2884 | * This may have been unpinned because the filesystem is shutting |
2872 | * down forcibly. If that's the case we must not write this inode | 2885 | * down forcibly. If that's the case we must not write this inode |
2873 | * to disk, because the log record didn't make it to disk! | 2886 | * to disk, because the log record didn't make it to disk! |
diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index 9e15a118536..6be05f756d5 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c | |||
@@ -1517,6 +1517,8 @@ xfs_rtfree_range( | |||
1517 | */ | 1517 | */ |
1518 | error = xfs_rtfind_forw(mp, tp, end, mp->m_sb.sb_rextents - 1, | 1518 | error = xfs_rtfind_forw(mp, tp, end, mp->m_sb.sb_rextents - 1, |
1519 | &postblock); | 1519 | &postblock); |
1520 | if (error) | ||
1521 | return error; | ||
1520 | /* | 1522 | /* |
1521 | * If there are blocks not being freed at the front of the | 1523 | * If there are blocks not being freed at the front of the |
1522 | * old extent, add summary data for them to be allocated. | 1524 | * old extent, add summary data for them to be allocated. |
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 6558ffd8d14..6f268756bf3 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
@@ -70,7 +70,6 @@ xfs_setattr( | |||
70 | uint commit_flags=0; | 70 | uint commit_flags=0; |
71 | uid_t uid=0, iuid=0; | 71 | uid_t uid=0, iuid=0; |
72 | gid_t gid=0, igid=0; | 72 | gid_t gid=0, igid=0; |
73 | int timeflags = 0; | ||
74 | struct xfs_dquot *udqp, *gdqp, *olddquot1, *olddquot2; | 73 | struct xfs_dquot *udqp, *gdqp, *olddquot1, *olddquot2; |
75 | int need_iolock = 1; | 74 | int need_iolock = 1; |
76 | 75 | ||
@@ -135,16 +134,13 @@ xfs_setattr( | |||
135 | if (flags & XFS_ATTR_NOLOCK) | 134 | if (flags & XFS_ATTR_NOLOCK) |
136 | need_iolock = 0; | 135 | need_iolock = 0; |
137 | if (!(mask & ATTR_SIZE)) { | 136 | if (!(mask & ATTR_SIZE)) { |
138 | if ((mask != (ATTR_CTIME|ATTR_ATIME|ATTR_MTIME)) || | 137 | tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE); |
139 | (mp->m_flags & XFS_MOUNT_WSYNC)) { | 138 | commit_flags = 0; |
140 | tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE); | 139 | code = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), |
141 | commit_flags = 0; | 140 | 0, 0, 0); |
142 | if ((code = xfs_trans_reserve(tp, 0, | 141 | if (code) { |
143 | XFS_ICHANGE_LOG_RES(mp), 0, | 142 | lock_flags = 0; |
144 | 0, 0))) { | 143 | goto error_return; |
145 | lock_flags = 0; | ||
146 | goto error_return; | ||
147 | } | ||
148 | } | 144 | } |
149 | } else { | 145 | } else { |
150 | if (DM_EVENT_ENABLED(ip, DM_EVENT_TRUNCATE) && | 146 | if (DM_EVENT_ENABLED(ip, DM_EVENT_TRUNCATE) && |
@@ -295,15 +291,23 @@ xfs_setattr( | |||
295 | * or we are explicitly asked to change it. This handles | 291 | * or we are explicitly asked to change it. This handles |
296 | * the semantic difference between truncate() and ftruncate() | 292 | * the semantic difference between truncate() and ftruncate() |
297 | * as implemented in the VFS. | 293 | * as implemented in the VFS. |
294 | * | ||
295 | * The regular truncate() case without ATTR_CTIME and ATTR_MTIME | ||
296 | * is a special case where we need to update the times despite | ||
297 | * not having these flags set. For all other operations the | ||
298 | * VFS set these flags explicitly if it wants a timestamp | ||
299 | * update. | ||
298 | */ | 300 | */ |
299 | if (iattr->ia_size != ip->i_size || (mask & ATTR_CTIME)) | 301 | if (iattr->ia_size != ip->i_size && |
300 | timeflags |= XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG; | 302 | (!(mask & (ATTR_CTIME | ATTR_MTIME)))) { |
303 | iattr->ia_ctime = iattr->ia_mtime = | ||
304 | current_fs_time(inode->i_sb); | ||
305 | mask |= ATTR_CTIME | ATTR_MTIME; | ||
306 | } | ||
301 | 307 | ||
302 | if (iattr->ia_size > ip->i_size) { | 308 | if (iattr->ia_size > ip->i_size) { |
303 | ip->i_d.di_size = iattr->ia_size; | 309 | ip->i_d.di_size = iattr->ia_size; |
304 | ip->i_size = iattr->ia_size; | 310 | ip->i_size = iattr->ia_size; |
305 | if (!(flags & XFS_ATTR_DMI)) | ||
306 | xfs_ichgtime(ip, XFS_ICHGTIME_CHG); | ||
307 | xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); | 311 | xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); |
308 | } else if (iattr->ia_size <= ip->i_size || | 312 | } else if (iattr->ia_size <= ip->i_size || |
309 | (iattr->ia_size == 0 && ip->i_d.di_nextents)) { | 313 | (iattr->ia_size == 0 && ip->i_d.di_nextents)) { |
@@ -374,9 +378,6 @@ xfs_setattr( | |||
374 | ip->i_d.di_gid = gid; | 378 | ip->i_d.di_gid = gid; |
375 | inode->i_gid = gid; | 379 | inode->i_gid = gid; |
376 | } | 380 | } |
377 | |||
378 | xfs_trans_log_inode (tp, ip, XFS_ILOG_CORE); | ||
379 | timeflags |= XFS_ICHGTIME_CHG; | ||
380 | } | 381 | } |
381 | 382 | ||
382 | /* | 383 | /* |
@@ -393,51 +394,37 @@ xfs_setattr( | |||
393 | 394 | ||
394 | inode->i_mode &= S_IFMT; | 395 | inode->i_mode &= S_IFMT; |
395 | inode->i_mode |= mode & ~S_IFMT; | 396 | inode->i_mode |= mode & ~S_IFMT; |
396 | |||
397 | xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); | ||
398 | timeflags |= XFS_ICHGTIME_CHG; | ||
399 | } | 397 | } |
400 | 398 | ||
401 | /* | 399 | /* |
402 | * Change file access or modified times. | 400 | * Change file access or modified times. |
403 | */ | 401 | */ |
404 | if (mask & (ATTR_ATIME|ATTR_MTIME)) { | 402 | if (mask & ATTR_ATIME) { |
405 | if (mask & ATTR_ATIME) { | 403 | inode->i_atime = iattr->ia_atime; |
406 | inode->i_atime = iattr->ia_atime; | 404 | ip->i_d.di_atime.t_sec = iattr->ia_atime.tv_sec; |
407 | ip->i_d.di_atime.t_sec = iattr->ia_atime.tv_sec; | 405 | ip->i_d.di_atime.t_nsec = iattr->ia_atime.tv_nsec; |
408 | ip->i_d.di_atime.t_nsec = iattr->ia_atime.tv_nsec; | 406 | ip->i_update_core = 1; |
409 | ip->i_update_core = 1; | ||
410 | } | ||
411 | if (mask & ATTR_MTIME) { | ||
412 | inode->i_mtime = iattr->ia_mtime; | ||
413 | ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; | ||
414 | ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; | ||
415 | timeflags &= ~XFS_ICHGTIME_MOD; | ||
416 | timeflags |= XFS_ICHGTIME_CHG; | ||
417 | } | ||
418 | if (tp && (mask & (ATTR_MTIME_SET|ATTR_ATIME_SET))) | ||
419 | xfs_trans_log_inode (tp, ip, XFS_ILOG_CORE); | ||
420 | } | 407 | } |
421 | 408 | if (mask & ATTR_CTIME) { | |
422 | /* | ||
423 | * Change file inode change time only if ATTR_CTIME set | ||
424 | * AND we have been called by a DMI function. | ||
425 | */ | ||
426 | |||
427 | if ((flags & XFS_ATTR_DMI) && (mask & ATTR_CTIME)) { | ||
428 | inode->i_ctime = iattr->ia_ctime; | 409 | inode->i_ctime = iattr->ia_ctime; |
429 | ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; | 410 | ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; |
430 | ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; | 411 | ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; |
431 | ip->i_update_core = 1; | 412 | ip->i_update_core = 1; |
432 | timeflags &= ~XFS_ICHGTIME_CHG; | 413 | } |
414 | if (mask & ATTR_MTIME) { | ||
415 | inode->i_mtime = iattr->ia_mtime; | ||
416 | ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; | ||
417 | ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; | ||
418 | ip->i_update_core = 1; | ||
433 | } | 419 | } |
434 | 420 | ||
435 | /* | 421 | /* |
436 | * Send out timestamp changes that need to be set to the | 422 | * And finally, log the inode core if any attribute in it |
437 | * current time. Not done when called by a DMI function. | 423 | * has been changed. |
438 | */ | 424 | */ |
439 | if (timeflags && !(flags & XFS_ATTR_DMI)) | 425 | if (mask & (ATTR_UID|ATTR_GID|ATTR_MODE| |
440 | xfs_ichgtime(ip, timeflags); | 426 | ATTR_ATIME|ATTR_CTIME|ATTR_MTIME)) |
427 | xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); | ||
441 | 428 | ||
442 | XFS_STATS_INC(xs_ig_attrchg); | 429 | XFS_STATS_INC(xs_ig_attrchg); |
443 | 430 | ||
@@ -452,12 +439,10 @@ xfs_setattr( | |||
452 | * mix so this probably isn't worth the trouble to optimize. | 439 | * mix so this probably isn't worth the trouble to optimize. |
453 | */ | 440 | */ |
454 | code = 0; | 441 | code = 0; |
455 | if (tp) { | 442 | if (mp->m_flags & XFS_MOUNT_WSYNC) |
456 | if (mp->m_flags & XFS_MOUNT_WSYNC) | 443 | xfs_trans_set_sync(tp); |
457 | xfs_trans_set_sync(tp); | ||
458 | 444 | ||
459 | code = xfs_trans_commit(tp, commit_flags); | 445 | code = xfs_trans_commit(tp, commit_flags); |
460 | } | ||
461 | 446 | ||
462 | xfs_iunlock(ip, lock_flags); | 447 | xfs_iunlock(ip, lock_flags); |
463 | 448 | ||
diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h index 9d7febde10a..09469971472 100644 --- a/include/acpi/platform/aclinux.h +++ b/include/acpi/platform/aclinux.h | |||
@@ -152,7 +152,7 @@ static inline void *acpi_os_acquire_object(acpi_cache_t * cache) | |||
152 | #include <linux/hardirq.h> | 152 | #include <linux/hardirq.h> |
153 | #define ACPI_PREEMPTION_POINT() \ | 153 | #define ACPI_PREEMPTION_POINT() \ |
154 | do { \ | 154 | do { \ |
155 | if (!in_atomic_preempt_off()) \ | 155 | if (!in_atomic_preempt_off() && !irqs_disabled()) \ |
156 | cond_resched(); \ | 156 | cond_resched(); \ |
157 | } while (0) | 157 | } while (0) |
158 | 158 | ||
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 71dafb69cfe..ffac157fb5b 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h | |||
@@ -1408,7 +1408,7 @@ extern int drm_ati_pcigart_cleanup(struct drm_device *dev, | |||
1408 | struct drm_ati_pcigart_info * gart_info); | 1408 | struct drm_ati_pcigart_info * gart_info); |
1409 | 1409 | ||
1410 | extern drm_dma_handle_t *drm_pci_alloc(struct drm_device *dev, size_t size, | 1410 | extern drm_dma_handle_t *drm_pci_alloc(struct drm_device *dev, size_t size, |
1411 | size_t align, dma_addr_t maxaddr); | 1411 | size_t align); |
1412 | extern void __drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); | 1412 | extern void __drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); |
1413 | extern void drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); | 1413 | extern void drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); |
1414 | 1414 | ||
diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h index 43009bc2e75..bc4fdf27bd2 100644 --- a/include/drm/drm_mode.h +++ b/include/drm/drm_mode.h | |||
@@ -160,6 +160,7 @@ struct drm_mode_get_encoder { | |||
160 | #define DRM_MODE_CONNECTOR_HDMIA 11 | 160 | #define DRM_MODE_CONNECTOR_HDMIA 11 |
161 | #define DRM_MODE_CONNECTOR_HDMIB 12 | 161 | #define DRM_MODE_CONNECTOR_HDMIB 12 |
162 | #define DRM_MODE_CONNECTOR_TV 13 | 162 | #define DRM_MODE_CONNECTOR_TV 13 |
163 | #define DRM_MODE_CONNECTOR_eDP 14 | ||
163 | 164 | ||
164 | struct drm_mode_get_connector { | 165 | struct drm_mode_get_connector { |
165 | 166 | ||
diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h index ec3f5e80a5d..b64a8d7cdf6 100644 --- a/include/drm/i915_drm.h +++ b/include/drm/i915_drm.h | |||
@@ -188,6 +188,7 @@ typedef struct _drm_i915_sarea { | |||
188 | #define DRM_I915_GEM_MADVISE 0x26 | 188 | #define DRM_I915_GEM_MADVISE 0x26 |
189 | #define DRM_I915_OVERLAY_PUT_IMAGE 0x27 | 189 | #define DRM_I915_OVERLAY_PUT_IMAGE 0x27 |
190 | #define DRM_I915_OVERLAY_ATTRS 0x28 | 190 | #define DRM_I915_OVERLAY_ATTRS 0x28 |
191 | #define DRM_I915_GEM_EXECBUFFER2 0x29 | ||
191 | 192 | ||
192 | #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) | 193 | #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t) |
193 | #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) | 194 | #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH) |
@@ -207,6 +208,7 @@ typedef struct _drm_i915_sarea { | |||
207 | #define DRM_IOCTL_I915_VBLANK_SWAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t) | 208 | #define DRM_IOCTL_I915_VBLANK_SWAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t) |
208 | #define DRM_IOCTL_I915_GEM_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init) | 209 | #define DRM_IOCTL_I915_GEM_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init) |
209 | #define DRM_IOCTL_I915_GEM_EXECBUFFER DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer) | 210 | #define DRM_IOCTL_I915_GEM_EXECBUFFER DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer) |
211 | #define DRM_IOCTL_I915_GEM_EXECBUFFER2 DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER2, struct drm_i915_gem_execbuffer2) | ||
210 | #define DRM_IOCTL_I915_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin) | 212 | #define DRM_IOCTL_I915_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin) |
211 | #define DRM_IOCTL_I915_GEM_UNPIN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin) | 213 | #define DRM_IOCTL_I915_GEM_UNPIN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin) |
212 | #define DRM_IOCTL_I915_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy) | 214 | #define DRM_IOCTL_I915_GEM_BUSY DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy) |
@@ -272,6 +274,7 @@ typedef struct drm_i915_irq_wait { | |||
272 | #define I915_PARAM_NUM_FENCES_AVAIL 6 | 274 | #define I915_PARAM_NUM_FENCES_AVAIL 6 |
273 | #define I915_PARAM_HAS_OVERLAY 7 | 275 | #define I915_PARAM_HAS_OVERLAY 7 |
274 | #define I915_PARAM_HAS_PAGEFLIPPING 8 | 276 | #define I915_PARAM_HAS_PAGEFLIPPING 8 |
277 | #define I915_PARAM_HAS_EXECBUF2 9 | ||
275 | 278 | ||
276 | typedef struct drm_i915_getparam { | 279 | typedef struct drm_i915_getparam { |
277 | int param; | 280 | int param; |
@@ -567,6 +570,57 @@ struct drm_i915_gem_execbuffer { | |||
567 | __u64 cliprects_ptr; | 570 | __u64 cliprects_ptr; |
568 | }; | 571 | }; |
569 | 572 | ||
573 | struct drm_i915_gem_exec_object2 { | ||
574 | /** | ||
575 | * User's handle for a buffer to be bound into the GTT for this | ||
576 | * operation. | ||
577 | */ | ||
578 | __u32 handle; | ||
579 | |||
580 | /** Number of relocations to be performed on this buffer */ | ||
581 | __u32 relocation_count; | ||
582 | /** | ||
583 | * Pointer to array of struct drm_i915_gem_relocation_entry containing | ||
584 | * the relocations to be performed in this buffer. | ||
585 | */ | ||
586 | __u64 relocs_ptr; | ||
587 | |||
588 | /** Required alignment in graphics aperture */ | ||
589 | __u64 alignment; | ||
590 | |||
591 | /** | ||
592 | * Returned value of the updated offset of the object, for future | ||
593 | * presumed_offset writes. | ||
594 | */ | ||
595 | __u64 offset; | ||
596 | |||
597 | #define EXEC_OBJECT_NEEDS_FENCE (1<<0) | ||
598 | __u64 flags; | ||
599 | __u64 rsvd1; | ||
600 | __u64 rsvd2; | ||
601 | }; | ||
602 | |||
603 | struct drm_i915_gem_execbuffer2 { | ||
604 | /** | ||
605 | * List of gem_exec_object2 structs | ||
606 | */ | ||
607 | __u64 buffers_ptr; | ||
608 | __u32 buffer_count; | ||
609 | |||
610 | /** Offset in the batchbuffer to start execution from. */ | ||
611 | __u32 batch_start_offset; | ||
612 | /** Bytes used in batchbuffer from batch_start_offset */ | ||
613 | __u32 batch_len; | ||
614 | __u32 DR1; | ||
615 | __u32 DR4; | ||
616 | __u32 num_cliprects; | ||
617 | /** This is a struct drm_clip_rect *cliprects */ | ||
618 | __u64 cliprects_ptr; | ||
619 | __u64 flags; /* currently unused */ | ||
620 | __u64 rsvd1; | ||
621 | __u64 rsvd2; | ||
622 | }; | ||
623 | |||
570 | struct drm_i915_gem_pin { | 624 | struct drm_i915_gem_pin { |
571 | /** Handle of the buffer to be pinned. */ | 625 | /** Handle of the buffer to be pinned. */ |
572 | __u32 handle; | 626 | __u32 handle; |
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index ce945d4845f..b926afe8c03 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -80,7 +80,7 @@ char * __acpi_map_table (unsigned long phys_addr, unsigned long size); | |||
80 | void __acpi_unmap_table(char *map, unsigned long size); | 80 | void __acpi_unmap_table(char *map, unsigned long size); |
81 | int early_acpi_boot_init(void); | 81 | int early_acpi_boot_init(void); |
82 | int acpi_boot_init (void); | 82 | int acpi_boot_init (void); |
83 | int acpi_boot_table_init (void); | 83 | void acpi_boot_table_init (void); |
84 | int acpi_mps_check (void); | 84 | int acpi_mps_check (void); |
85 | int acpi_numa_init (void); | 85 | int acpi_numa_init (void); |
86 | 86 | ||
@@ -251,6 +251,7 @@ int acpi_check_mem_region(resource_size_t start, resource_size_t n, | |||
251 | void __init acpi_no_s4_hw_signature(void); | 251 | void __init acpi_no_s4_hw_signature(void); |
252 | void __init acpi_old_suspend_ordering(void); | 252 | void __init acpi_old_suspend_ordering(void); |
253 | void __init acpi_s4_no_nvs(void); | 253 | void __init acpi_s4_no_nvs(void); |
254 | void __init acpi_set_sci_en_on_resume(void); | ||
254 | #endif /* CONFIG_PM_SLEEP */ | 255 | #endif /* CONFIG_PM_SLEEP */ |
255 | 256 | ||
256 | struct acpi_osc_context { | 257 | struct acpi_osc_context { |
@@ -320,9 +321,9 @@ static inline int acpi_boot_init(void) | |||
320 | return 0; | 321 | return 0; |
321 | } | 322 | } |
322 | 323 | ||
323 | static inline int acpi_boot_table_init(void) | 324 | static inline void acpi_boot_table_init(void) |
324 | { | 325 | { |
325 | return 0; | 326 | return; |
326 | } | 327 | } |
327 | 328 | ||
328 | static inline int acpi_mps_check(void) | 329 | static inline int acpi_mps_check(void) |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 784a919aa0d..5c8018977ef 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -845,7 +845,6 @@ static inline struct request_queue *bdev_get_queue(struct block_device *bdev) | |||
845 | * blk_rq_err_bytes() : bytes left till the next error boundary | 845 | * blk_rq_err_bytes() : bytes left till the next error boundary |
846 | * blk_rq_sectors() : sectors left in the entire request | 846 | * blk_rq_sectors() : sectors left in the entire request |
847 | * blk_rq_cur_sectors() : sectors left in the current segment | 847 | * blk_rq_cur_sectors() : sectors left in the current segment |
848 | * blk_rq_err_sectors() : sectors left till the next error boundary | ||
849 | */ | 848 | */ |
850 | static inline sector_t blk_rq_pos(const struct request *rq) | 849 | static inline sector_t blk_rq_pos(const struct request *rq) |
851 | { | 850 | { |
@@ -874,11 +873,6 @@ static inline unsigned int blk_rq_cur_sectors(const struct request *rq) | |||
874 | return blk_rq_cur_bytes(rq) >> 9; | 873 | return blk_rq_cur_bytes(rq) >> 9; |
875 | } | 874 | } |
876 | 875 | ||
877 | static inline unsigned int blk_rq_err_sectors(const struct request *rq) | ||
878 | { | ||
879 | return blk_rq_err_bytes(rq) >> 9; | ||
880 | } | ||
881 | |||
882 | /* | 876 | /* |
883 | * Request issue related functions. | 877 | * Request issue related functions. |
884 | */ | 878 | */ |
@@ -944,6 +938,8 @@ extern void blk_queue_io_opt(struct request_queue *q, unsigned int opt); | |||
944 | extern void blk_set_default_limits(struct queue_limits *lim); | 938 | extern void blk_set_default_limits(struct queue_limits *lim); |
945 | extern int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, | 939 | extern int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, |
946 | sector_t offset); | 940 | sector_t offset); |
941 | extern int bdev_stack_limits(struct queue_limits *t, struct block_device *bdev, | ||
942 | sector_t offset); | ||
947 | extern void disk_stack_limits(struct gendisk *disk, struct block_device *bdev, | 943 | extern void disk_stack_limits(struct gendisk *disk, struct block_device *bdev, |
948 | sector_t offset); | 944 | sector_t offset); |
949 | extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b); | 945 | extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b); |
@@ -1116,11 +1112,18 @@ static inline int queue_alignment_offset(struct request_queue *q) | |||
1116 | return q->limits.alignment_offset; | 1112 | return q->limits.alignment_offset; |
1117 | } | 1113 | } |
1118 | 1114 | ||
1115 | static inline int queue_limit_alignment_offset(struct queue_limits *lim, sector_t offset) | ||
1116 | { | ||
1117 | unsigned int granularity = max(lim->physical_block_size, lim->io_min); | ||
1118 | |||
1119 | offset &= granularity - 1; | ||
1120 | return (granularity + lim->alignment_offset - offset) & (granularity - 1); | ||
1121 | } | ||
1122 | |||
1119 | static inline int queue_sector_alignment_offset(struct request_queue *q, | 1123 | static inline int queue_sector_alignment_offset(struct request_queue *q, |
1120 | sector_t sector) | 1124 | sector_t sector) |
1121 | { | 1125 | { |
1122 | return ((sector << 9) - q->limits.alignment_offset) | 1126 | return queue_limit_alignment_offset(&q->limits, sector << 9); |
1123 | & (q->limits.io_min - 1); | ||
1124 | } | 1127 | } |
1125 | 1128 | ||
1126 | static inline int bdev_alignment_offset(struct block_device *bdev) | 1129 | static inline int bdev_alignment_offset(struct block_device *bdev) |
@@ -1147,8 +1150,11 @@ static inline int queue_discard_alignment(struct request_queue *q) | |||
1147 | static inline int queue_sector_discard_alignment(struct request_queue *q, | 1150 | static inline int queue_sector_discard_alignment(struct request_queue *q, |
1148 | sector_t sector) | 1151 | sector_t sector) |
1149 | { | 1152 | { |
1150 | return ((sector << 9) - q->limits.discard_alignment) | 1153 | struct queue_limits *lim = &q->limits; |
1151 | & (q->limits.discard_granularity - 1); | 1154 | unsigned int alignment = (sector << 9) & (lim->discard_granularity - 1); |
1155 | |||
1156 | return (lim->discard_granularity + lim->discard_alignment - alignment) | ||
1157 | & (lim->discard_granularity - 1); | ||
1152 | } | 1158 | } |
1153 | 1159 | ||
1154 | static inline unsigned int queue_discard_zeroes_data(struct request_queue *q) | 1160 | static inline unsigned int queue_discard_zeroes_data(struct request_queue *q) |
diff --git a/include/linux/decompress/unlzo.h b/include/linux/decompress/unlzo.h new file mode 100644 index 00000000000..98722975251 --- /dev/null +++ b/include/linux/decompress/unlzo.h | |||
@@ -0,0 +1,10 @@ | |||
1 | #ifndef DECOMPRESS_UNLZO_H | ||
2 | #define DECOMPRESS_UNLZO_H | ||
3 | |||
4 | int unlzo(unsigned char *inbuf, int len, | ||
5 | int(*fill)(void*, unsigned int), | ||
6 | int(*flush)(void*, unsigned int), | ||
7 | unsigned char *output, | ||
8 | int *pos, | ||
9 | void(*error)(char *x)); | ||
10 | #endif | ||
diff --git a/include/linux/drbd.h b/include/linux/drbd.h index e84f4733cb5..78962272338 100644 --- a/include/linux/drbd.h +++ b/include/linux/drbd.h | |||
@@ -53,7 +53,7 @@ | |||
53 | 53 | ||
54 | 54 | ||
55 | extern const char *drbd_buildtag(void); | 55 | extern const char *drbd_buildtag(void); |
56 | #define REL_VERSION "8.3.6" | 56 | #define REL_VERSION "8.3.7" |
57 | #define API_VERSION 88 | 57 | #define API_VERSION 88 |
58 | #define PRO_VERSION_MIN 86 | 58 | #define PRO_VERSION_MIN 86 |
59 | #define PRO_VERSION_MAX 91 | 59 | #define PRO_VERSION_MAX 91 |
diff --git a/include/linux/drbd_nl.h b/include/linux/drbd_nl.h index db5721ad50d..a4d82f89599 100644 --- a/include/linux/drbd_nl.h +++ b/include/linux/drbd_nl.h | |||
@@ -69,6 +69,7 @@ NL_PACKET(disconnect, 6, ) | |||
69 | 69 | ||
70 | NL_PACKET(resize, 7, | 70 | NL_PACKET(resize, 7, |
71 | NL_INT64( 29, T_MAY_IGNORE, resize_size) | 71 | NL_INT64( 29, T_MAY_IGNORE, resize_size) |
72 | NL_BIT( 68, T_MAY_IGNORE, resize_force) | ||
72 | ) | 73 | ) |
73 | 74 | ||
74 | NL_PACKET(syncer_conf, 8, | 75 | NL_PACKET(syncer_conf, 8, |
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h index c6b3ca3af6d..1f716d9f714 100644 --- a/include/linux/firewire-cdev.h +++ b/include/linux/firewire-cdev.h | |||
@@ -340,6 +340,9 @@ struct fw_cdev_send_response { | |||
340 | * The @closure field is passed back to userspace in the response event. | 340 | * The @closure field is passed back to userspace in the response event. |
341 | * The @handle field is an out parameter, returning a handle to the allocated | 341 | * The @handle field is an out parameter, returning a handle to the allocated |
342 | * range to be used for later deallocation of the range. | 342 | * range to be used for later deallocation of the range. |
343 | * | ||
344 | * The address range is allocated on all local nodes. The address allocation | ||
345 | * is exclusive except for the FCP command and response registers. | ||
343 | */ | 346 | */ |
344 | struct fw_cdev_allocate { | 347 | struct fw_cdev_allocate { |
345 | __u64 offset; | 348 | __u64 offset; |
diff --git a/include/linux/firewire.h b/include/linux/firewire.h index 9416a461b69..a0e67150a72 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h | |||
@@ -248,8 +248,8 @@ typedef void (*fw_transaction_callback_t)(struct fw_card *card, int rcode, | |||
248 | void *data, size_t length, | 248 | void *data, size_t length, |
249 | void *callback_data); | 249 | void *callback_data); |
250 | /* | 250 | /* |
251 | * Important note: The callback must guarantee that either fw_send_response() | 251 | * Important note: Except for the FCP registers, the callback must guarantee |
252 | * or kfree() is called on the @request. | 252 | * that either fw_send_response() or kfree() is called on the @request. |
253 | */ | 253 | */ |
254 | typedef void (*fw_address_callback_t)(struct fw_card *card, | 254 | typedef void (*fw_address_callback_t)(struct fw_card *card, |
255 | struct fw_request *request, | 255 | struct fw_request *request, |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 9147ca88f25..b1bcb275b59 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -2463,7 +2463,7 @@ int proc_nr_files(struct ctl_table *table, int write, | |||
2463 | 2463 | ||
2464 | int __init get_filesystem_list(char *buf); | 2464 | int __init get_filesystem_list(char *buf); |
2465 | 2465 | ||
2466 | #define ACC_MODE(x) ("\000\004\002\006"[(x)&O_ACCMODE]) | 2466 | #define ACC_MODE(x) ("\004\002\006\006"[(x)&O_ACCMODE]) |
2467 | #define OPEN_FMODE(flag) ((__force fmode_t)((flag + 1) & O_ACCMODE)) | 2467 | #define OPEN_FMODE(flag) ((__force fmode_t)((flag + 1) & O_ACCMODE)) |
2468 | 2468 | ||
2469 | #endif /* __KERNEL__ */ | 2469 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index c6c0c41af35..9717081c75a 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
@@ -256,9 +256,9 @@ extern struct hd_struct *disk_map_sector_rcu(struct gendisk *disk, | |||
256 | #define part_stat_read(part, field) \ | 256 | #define part_stat_read(part, field) \ |
257 | ({ \ | 257 | ({ \ |
258 | typeof((part)->dkstats->field) res = 0; \ | 258 | typeof((part)->dkstats->field) res = 0; \ |
259 | int i; \ | 259 | unsigned int _cpu; \ |
260 | for_each_possible_cpu(i) \ | 260 | for_each_possible_cpu(_cpu) \ |
261 | res += per_cpu_ptr((part)->dkstats, i)->field; \ | 261 | res += per_cpu_ptr((part)->dkstats, _cpu)->field; \ |
262 | res; \ | 262 | res; \ |
263 | }) | 263 | }) |
264 | 264 | ||
diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 211ff449726..ab2cc20e21a 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h | |||
@@ -46,7 +46,7 @@ void kmap_flush_unused(void); | |||
46 | 46 | ||
47 | static inline unsigned int nr_free_highpages(void) { return 0; } | 47 | static inline unsigned int nr_free_highpages(void) { return 0; } |
48 | 48 | ||
49 | #define totalhigh_pages 0 | 49 | #define totalhigh_pages 0UL |
50 | 50 | ||
51 | #ifndef ARCH_HAS_KMAP | 51 | #ifndef ARCH_HAS_KMAP |
52 | static inline void *kmap(struct page *page) | 52 | static inline void *kmap(struct page *page) |
diff --git a/include/linux/i2c/adp5588.h b/include/linux/i2c/adp5588.h index fc5db826b48..02c9af37474 100644 --- a/include/linux/i2c/adp5588.h +++ b/include/linux/i2c/adp5588.h | |||
@@ -89,4 +89,16 @@ struct adp5588_kpad_platform_data { | |||
89 | unsigned short unlock_key2; /* Unlock Key 2 */ | 89 | unsigned short unlock_key2; /* Unlock Key 2 */ |
90 | }; | 90 | }; |
91 | 91 | ||
92 | struct adp5588_gpio_platform_data { | ||
93 | unsigned gpio_start; /* GPIO Chip base # */ | ||
94 | unsigned pullup_dis_mask; /* Pull-Up Disable Mask */ | ||
95 | int (*setup)(struct i2c_client *client, | ||
96 | int gpio, unsigned ngpio, | ||
97 | void *context); | ||
98 | int (*teardown)(struct i2c_client *client, | ||
99 | int gpio, unsigned ngpio, | ||
100 | void *context); | ||
101 | void *context; | ||
102 | }; | ||
103 | |||
92 | #endif | 104 | #endif |
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index d9724a28c0c..163c840437d 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h | |||
@@ -832,7 +832,7 @@ struct ieee80211_ht_cap { | |||
832 | #define IEEE80211_HT_CAP_DELAY_BA 0x0400 | 832 | #define IEEE80211_HT_CAP_DELAY_BA 0x0400 |
833 | #define IEEE80211_HT_CAP_MAX_AMSDU 0x0800 | 833 | #define IEEE80211_HT_CAP_MAX_AMSDU 0x0800 |
834 | #define IEEE80211_HT_CAP_DSSSCCK40 0x1000 | 834 | #define IEEE80211_HT_CAP_DSSSCCK40 0x1000 |
835 | #define IEEE80211_HT_CAP_PSMP_SUPPORT 0x2000 | 835 | #define IEEE80211_HT_CAP_RESERVED 0x2000 |
836 | #define IEEE80211_HT_CAP_40MHZ_INTOLERANT 0x4000 | 836 | #define IEEE80211_HT_CAP_40MHZ_INTOLERANT 0x4000 |
837 | #define IEEE80211_HT_CAP_LSIG_TXOP_PROT 0x8000 | 837 | #define IEEE80211_HT_CAP_LSIG_TXOP_PROT 0x8000 |
838 | 838 | ||
diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h index 699e85c01a4..b2304929434 100644 --- a/include/linux/inetdevice.h +++ b/include/linux/inetdevice.h | |||
@@ -81,6 +81,7 @@ static inline void ipv4_devconf_setall(struct in_device *in_dev) | |||
81 | #define IN_DEV_FORWARD(in_dev) IN_DEV_CONF_GET((in_dev), FORWARDING) | 81 | #define IN_DEV_FORWARD(in_dev) IN_DEV_CONF_GET((in_dev), FORWARDING) |
82 | #define IN_DEV_MFORWARD(in_dev) IN_DEV_ANDCONF((in_dev), MC_FORWARDING) | 82 | #define IN_DEV_MFORWARD(in_dev) IN_DEV_ANDCONF((in_dev), MC_FORWARDING) |
83 | #define IN_DEV_RPFILTER(in_dev) IN_DEV_MAXCONF((in_dev), RP_FILTER) | 83 | #define IN_DEV_RPFILTER(in_dev) IN_DEV_MAXCONF((in_dev), RP_FILTER) |
84 | #define IN_DEV_SRC_VMARK(in_dev) IN_DEV_ORCONF((in_dev), SRC_VMARK) | ||
84 | #define IN_DEV_SOURCE_ROUTE(in_dev) IN_DEV_ANDCONF((in_dev), \ | 85 | #define IN_DEV_SOURCE_ROUTE(in_dev) IN_DEV_ANDCONF((in_dev), \ |
85 | ACCEPT_SOURCE_ROUTE) | 86 | ACCEPT_SOURCE_ROUTE) |
86 | #define IN_DEV_ACCEPT_LOCAL(in_dev) IN_DEV_ORCONF((in_dev), ACCEPT_LOCAL) | 87 | #define IN_DEV_ACCEPT_LOCAL(in_dev) IN_DEV_ORCONF((in_dev), ACCEPT_LOCAL) |
diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h index a6323599630..78ef023227d 100644 --- a/include/linux/iocontext.h +++ b/include/linux/iocontext.h | |||
@@ -4,32 +4,6 @@ | |||
4 | #include <linux/radix-tree.h> | 4 | #include <linux/radix-tree.h> |
5 | #include <linux/rcupdate.h> | 5 | #include <linux/rcupdate.h> |
6 | 6 | ||
7 | /* | ||
8 | * This is the per-process anticipatory I/O scheduler state. | ||
9 | */ | ||
10 | struct as_io_context { | ||
11 | spinlock_t lock; | ||
12 | |||
13 | void (*dtor)(struct as_io_context *aic); /* destructor */ | ||
14 | void (*exit)(struct as_io_context *aic); /* called on task exit */ | ||
15 | |||
16 | unsigned long state; | ||
17 | atomic_t nr_queued; /* queued reads & sync writes */ | ||
18 | atomic_t nr_dispatched; /* number of requests gone to the drivers */ | ||
19 | |||
20 | /* IO History tracking */ | ||
21 | /* Thinktime */ | ||
22 | unsigned long last_end_request; | ||
23 | unsigned long ttime_total; | ||
24 | unsigned long ttime_samples; | ||
25 | unsigned long ttime_mean; | ||
26 | /* Layout pattern */ | ||
27 | unsigned int seek_samples; | ||
28 | sector_t last_request_pos; | ||
29 | u64 seek_total; | ||
30 | sector_t seek_mean; | ||
31 | }; | ||
32 | |||
33 | struct cfq_queue; | 7 | struct cfq_queue; |
34 | struct cfq_io_context { | 8 | struct cfq_io_context { |
35 | void *key; | 9 | void *key; |
@@ -78,7 +52,6 @@ struct io_context { | |||
78 | unsigned long last_waited; /* Time last woken after wait for request */ | 52 | unsigned long last_waited; /* Time last woken after wait for request */ |
79 | int nr_batch_requests; /* Number of requests left in the batch */ | 53 | int nr_batch_requests; /* Number of requests left in the batch */ |
80 | 54 | ||
81 | struct as_io_context *aic; | ||
82 | struct radix_tree_root radix_root; | 55 | struct radix_tree_root radix_root; |
83 | struct hlist_head cic_list; | 56 | struct hlist_head cic_list; |
84 | void *ioc_data; | 57 | void *ioc_data; |
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index f1011f7f3d4..638ce4554c7 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h | |||
@@ -653,6 +653,7 @@ struct transaction_s | |||
653 | * waiting for it to finish. | 653 | * waiting for it to finish. |
654 | */ | 654 | */ |
655 | unsigned int t_synchronous_commit:1; | 655 | unsigned int t_synchronous_commit:1; |
656 | unsigned int t_flushed_data_blocks:1; | ||
656 | 657 | ||
657 | /* | 658 | /* |
658 | * For use by the filesystem to store fs-specific data | 659 | * For use by the filesystem to store fs-specific data |
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 3fc9f5aab5f..328bca609b9 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
@@ -734,6 +734,10 @@ struct sysinfo { | |||
734 | /* Force a compilation error if condition is constant and true */ | 734 | /* Force a compilation error if condition is constant and true */ |
735 | #define MAYBE_BUILD_BUG_ON(cond) ((void)sizeof(char[1 - 2 * !!(cond)])) | 735 | #define MAYBE_BUILD_BUG_ON(cond) ((void)sizeof(char[1 - 2 * !!(cond)])) |
736 | 736 | ||
737 | /* Force a compilation error if a constant expression is not a power of 2 */ | ||
738 | #define BUILD_BUG_ON_NOT_POWER_OF_2(n) \ | ||
739 | BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0)) | ||
740 | |||
737 | /* Force a compilation error if condition is true, but also produce a | 741 | /* Force a compilation error if condition is true, but also produce a |
738 | result (of value 0 and type size_t), so the expression can be used | 742 | result (of value 0 and type size_t), so the expression can be used |
739 | e.g. in a structure initializer (or where-ever else comma expressions | 743 | e.g. in a structure initializer (or where-ever else comma expressions |
diff --git a/include/linux/kfifo.h b/include/linux/kfifo.h index 3d44e9c65a8..6f6c5f300af 100644 --- a/include/linux/kfifo.h +++ b/include/linux/kfifo.h | |||
@@ -67,7 +67,7 @@ struct kfifo { | |||
67 | /** | 67 | /** |
68 | * DECLARE_KFIFO - macro to declare a kfifo and the associated buffer | 68 | * DECLARE_KFIFO - macro to declare a kfifo and the associated buffer |
69 | * @name: name of the declared kfifo datatype | 69 | * @name: name of the declared kfifo datatype |
70 | * @size: size of the fifo buffer | 70 | * @size: size of the fifo buffer. Must be a power of two. |
71 | * | 71 | * |
72 | * Note1: the macro can be used inside struct or union declaration | 72 | * Note1: the macro can be used inside struct or union declaration |
73 | * Note2: the macro creates two objects: | 73 | * Note2: the macro creates two objects: |
@@ -81,7 +81,7 @@ union { \ | |||
81 | } | 81 | } |
82 | 82 | ||
83 | /** | 83 | /** |
84 | * INIT_KFIFO - Initialize a kfifo declared by DECLARED_KFIFO | 84 | * INIT_KFIFO - Initialize a kfifo declared by DECLARE_KFIFO |
85 | * @name: name of the declared kfifo datatype | 85 | * @name: name of the declared kfifo datatype |
86 | */ | 86 | */ |
87 | #define INIT_KFIFO(name) \ | 87 | #define INIT_KFIFO(name) \ |
@@ -91,7 +91,7 @@ union { \ | |||
91 | /** | 91 | /** |
92 | * DEFINE_KFIFO - macro to define and initialize a kfifo | 92 | * DEFINE_KFIFO - macro to define and initialize a kfifo |
93 | * @name: name of the declared kfifo datatype | 93 | * @name: name of the declared kfifo datatype |
94 | * @size: size of the fifo buffer | 94 | * @size: size of the fifo buffer. Must be a power of two. |
95 | * | 95 | * |
96 | * Note1: the macro can be used for global and local kfifo data type variables | 96 | * Note1: the macro can be used for global and local kfifo data type variables |
97 | * Note2: the macro creates two objects: | 97 | * Note2: the macro creates two objects: |
@@ -104,15 +104,28 @@ union { \ | |||
104 | 104 | ||
105 | #undef __kfifo_initializer | 105 | #undef __kfifo_initializer |
106 | 106 | ||
107 | extern void kfifo_init(struct kfifo *fifo, unsigned char *buffer, | 107 | extern void kfifo_init(struct kfifo *fifo, void *buffer, |
108 | unsigned int size); | 108 | unsigned int size); |
109 | extern __must_check int kfifo_alloc(struct kfifo *fifo, unsigned int size, | 109 | extern __must_check int kfifo_alloc(struct kfifo *fifo, unsigned int size, |
110 | gfp_t gfp_mask); | 110 | gfp_t gfp_mask); |
111 | extern void kfifo_free(struct kfifo *fifo); | 111 | extern void kfifo_free(struct kfifo *fifo); |
112 | extern unsigned int kfifo_in(struct kfifo *fifo, | 112 | extern unsigned int kfifo_in(struct kfifo *fifo, |
113 | const unsigned char *from, unsigned int len); | 113 | const void *from, unsigned int len); |
114 | extern __must_check unsigned int kfifo_out(struct kfifo *fifo, | 114 | extern __must_check unsigned int kfifo_out(struct kfifo *fifo, |
115 | unsigned char *to, unsigned int len); | 115 | void *to, unsigned int len); |
116 | extern __must_check unsigned int kfifo_out_peek(struct kfifo *fifo, | ||
117 | void *to, unsigned int len, unsigned offset); | ||
118 | |||
119 | /** | ||
120 | * kfifo_initialized - Check if kfifo is initialized. | ||
121 | * @fifo: fifo to check | ||
122 | * Return %true if FIFO is initialized, otherwise %false. | ||
123 | * Assumes the fifo was 0 before. | ||
124 | */ | ||
125 | static inline bool kfifo_initialized(struct kfifo *fifo) | ||
126 | { | ||
127 | return fifo->buffer != 0; | ||
128 | } | ||
116 | 129 | ||
117 | /** | 130 | /** |
118 | * kfifo_reset - removes the entire FIFO contents | 131 | * kfifo_reset - removes the entire FIFO contents |
@@ -194,7 +207,7 @@ static inline __must_check unsigned int kfifo_avail(struct kfifo *fifo) | |||
194 | * bytes copied. | 207 | * bytes copied. |
195 | */ | 208 | */ |
196 | static inline unsigned int kfifo_in_locked(struct kfifo *fifo, | 209 | static inline unsigned int kfifo_in_locked(struct kfifo *fifo, |
197 | const unsigned char *from, unsigned int n, spinlock_t *lock) | 210 | const void *from, unsigned int n, spinlock_t *lock) |
198 | { | 211 | { |
199 | unsigned long flags; | 212 | unsigned long flags; |
200 | unsigned int ret; | 213 | unsigned int ret; |
@@ -219,7 +232,7 @@ static inline unsigned int kfifo_in_locked(struct kfifo *fifo, | |||
219 | * @to buffer and returns the number of copied bytes. | 232 | * @to buffer and returns the number of copied bytes. |
220 | */ | 233 | */ |
221 | static inline __must_check unsigned int kfifo_out_locked(struct kfifo *fifo, | 234 | static inline __must_check unsigned int kfifo_out_locked(struct kfifo *fifo, |
222 | unsigned char *to, unsigned int n, spinlock_t *lock) | 235 | void *to, unsigned int n, spinlock_t *lock) |
223 | { | 236 | { |
224 | unsigned long flags; | 237 | unsigned long flags; |
225 | unsigned int ret; | 238 | unsigned int ret; |
@@ -228,13 +241,6 @@ static inline __must_check unsigned int kfifo_out_locked(struct kfifo *fifo, | |||
228 | 241 | ||
229 | ret = kfifo_out(fifo, to, n); | 242 | ret = kfifo_out(fifo, to, n); |
230 | 243 | ||
231 | /* | ||
232 | * optimization: if the FIFO is empty, set the indices to 0 | ||
233 | * so we don't wrap the next time | ||
234 | */ | ||
235 | if (kfifo_is_empty(fifo)) | ||
236 | kfifo_reset(fifo); | ||
237 | |||
238 | spin_unlock_irqrestore(lock, flags); | 244 | spin_unlock_irqrestore(lock, flags); |
239 | 245 | ||
240 | return ret; | 246 | return ret; |
@@ -242,11 +248,11 @@ static inline __must_check unsigned int kfifo_out_locked(struct kfifo *fifo, | |||
242 | 248 | ||
243 | extern void kfifo_skip(struct kfifo *fifo, unsigned int len); | 249 | extern void kfifo_skip(struct kfifo *fifo, unsigned int len); |
244 | 250 | ||
245 | extern __must_check unsigned int kfifo_from_user(struct kfifo *fifo, | 251 | extern __must_check int kfifo_from_user(struct kfifo *fifo, |
246 | const void __user *from, unsigned int n); | 252 | const void __user *from, unsigned int n, unsigned *lenout); |
247 | 253 | ||
248 | extern __must_check unsigned int kfifo_to_user(struct kfifo *fifo, | 254 | extern __must_check int kfifo_to_user(struct kfifo *fifo, |
249 | void __user *to, unsigned int n); | 255 | void __user *to, unsigned int n, unsigned *lenout); |
250 | 256 | ||
251 | /* | 257 | /* |
252 | * __kfifo_add_out internal helper function for updating the out offset | 258 | * __kfifo_add_out internal helper function for updating the out offset |
diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h index 6adcc297e35..19ec41a183f 100644 --- a/include/linux/kgdb.h +++ b/include/linux/kgdb.h | |||
@@ -29,8 +29,7 @@ struct pt_regs; | |||
29 | * | 29 | * |
30 | * On some architectures it is required to skip a breakpoint | 30 | * On some architectures it is required to skip a breakpoint |
31 | * exception when it occurs after a breakpoint has been removed. | 31 | * exception when it occurs after a breakpoint has been removed. |
32 | * This can be implemented in the architecture specific portion of | 32 | * This can be implemented in the architecture specific portion of kgdb. |
33 | * for kgdb. | ||
34 | */ | 33 | */ |
35 | extern int kgdb_skipexception(int exception, struct pt_regs *regs); | 34 | extern int kgdb_skipexception(int exception, struct pt_regs *regs); |
36 | 35 | ||
@@ -65,7 +64,7 @@ struct uart_port; | |||
65 | /** | 64 | /** |
66 | * kgdb_breakpoint - compiled in breakpoint | 65 | * kgdb_breakpoint - compiled in breakpoint |
67 | * | 66 | * |
68 | * This will be impelmented a static inline per architecture. This | 67 | * This will be implemented as a static inline per architecture. This |
69 | * function is called by the kgdb core to execute an architecture | 68 | * function is called by the kgdb core to execute an architecture |
70 | * specific trap to cause kgdb to enter the exception processing. | 69 | * specific trap to cause kgdb to enter the exception processing. |
71 | * | 70 | * |
@@ -190,7 +189,7 @@ kgdb_arch_handle_exception(int vector, int signo, int err_code, | |||
190 | * @flags: Current IRQ state | 189 | * @flags: Current IRQ state |
191 | * | 190 | * |
192 | * On SMP systems, we need to get the attention of the other CPUs | 191 | * On SMP systems, we need to get the attention of the other CPUs |
193 | * and get them be in a known state. This should do what is needed | 192 | * and get them into a known state. This should do what is needed |
194 | * to get the other CPUs to call kgdb_wait(). Note that on some arches, | 193 | * to get the other CPUs to call kgdb_wait(). Note that on some arches, |
195 | * the NMI approach is not used for rounding up all the CPUs. For example, | 194 | * the NMI approach is not used for rounding up all the CPUs. For example, |
196 | * in case of MIPS, smp_call_function() is used to roundup CPUs. In | 195 | * in case of MIPS, smp_call_function() is used to roundup CPUs. In |
diff --git a/include/linux/kmemcheck.h b/include/linux/kmemcheck.h index e880d4cf9e2..08d7dc4ddf4 100644 --- a/include/linux/kmemcheck.h +++ b/include/linux/kmemcheck.h | |||
@@ -36,6 +36,56 @@ int kmemcheck_hide_addr(unsigned long address); | |||
36 | 36 | ||
37 | bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size); | 37 | bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size); |
38 | 38 | ||
39 | /* | ||
40 | * Bitfield annotations | ||
41 | * | ||
42 | * How to use: If you have a struct using bitfields, for example | ||
43 | * | ||
44 | * struct a { | ||
45 | * int x:8, y:8; | ||
46 | * }; | ||
47 | * | ||
48 | * then this should be rewritten as | ||
49 | * | ||
50 | * struct a { | ||
51 | * kmemcheck_bitfield_begin(flags); | ||
52 | * int x:8, y:8; | ||
53 | * kmemcheck_bitfield_end(flags); | ||
54 | * }; | ||
55 | * | ||
56 | * Now the "flags_begin" and "flags_end" members may be used to refer to the | ||
57 | * beginning and end, respectively, of the bitfield (and things like | ||
58 | * &x.flags_begin is allowed). As soon as the struct is allocated, the bit- | ||
59 | * fields should be annotated: | ||
60 | * | ||
61 | * struct a *a = kmalloc(sizeof(struct a), GFP_KERNEL); | ||
62 | * kmemcheck_annotate_bitfield(a, flags); | ||
63 | */ | ||
64 | #define kmemcheck_bitfield_begin(name) \ | ||
65 | int name##_begin[0]; | ||
66 | |||
67 | #define kmemcheck_bitfield_end(name) \ | ||
68 | int name##_end[0]; | ||
69 | |||
70 | #define kmemcheck_annotate_bitfield(ptr, name) \ | ||
71 | do { \ | ||
72 | int _n; \ | ||
73 | \ | ||
74 | if (!ptr) \ | ||
75 | break; \ | ||
76 | \ | ||
77 | _n = (long) &((ptr)->name##_end) \ | ||
78 | - (long) &((ptr)->name##_begin); \ | ||
79 | MAYBE_BUILD_BUG_ON(_n < 0); \ | ||
80 | \ | ||
81 | kmemcheck_mark_initialized(&((ptr)->name##_begin), _n); \ | ||
82 | } while (0) | ||
83 | |||
84 | #define kmemcheck_annotate_variable(var) \ | ||
85 | do { \ | ||
86 | kmemcheck_mark_initialized(&(var), sizeof(var)); \ | ||
87 | } while (0) \ | ||
88 | |||
39 | #else | 89 | #else |
40 | #define kmemcheck_enabled 0 | 90 | #define kmemcheck_enabled 0 |
41 | 91 | ||
@@ -106,60 +156,16 @@ static inline bool kmemcheck_is_obj_initialized(unsigned long addr, size_t size) | |||
106 | return true; | 156 | return true; |
107 | } | 157 | } |
108 | 158 | ||
109 | #endif /* CONFIG_KMEMCHECK */ | 159 | #define kmemcheck_bitfield_begin(name) |
110 | 160 | #define kmemcheck_bitfield_end(name) | |
111 | /* | 161 | #define kmemcheck_annotate_bitfield(ptr, name) \ |
112 | * Bitfield annotations | 162 | do { \ |
113 | * | 163 | } while (0) |
114 | * How to use: If you have a struct using bitfields, for example | ||
115 | * | ||
116 | * struct a { | ||
117 | * int x:8, y:8; | ||
118 | * }; | ||
119 | * | ||
120 | * then this should be rewritten as | ||
121 | * | ||
122 | * struct a { | ||
123 | * kmemcheck_bitfield_begin(flags); | ||
124 | * int x:8, y:8; | ||
125 | * kmemcheck_bitfield_end(flags); | ||
126 | * }; | ||
127 | * | ||
128 | * Now the "flags_begin" and "flags_end" members may be used to refer to the | ||
129 | * beginning and end, respectively, of the bitfield (and things like | ||
130 | * &x.flags_begin is allowed). As soon as the struct is allocated, the bit- | ||
131 | * fields should be annotated: | ||
132 | * | ||
133 | * struct a *a = kmalloc(sizeof(struct a), GFP_KERNEL); | ||
134 | * kmemcheck_annotate_bitfield(a, flags); | ||
135 | * | ||
136 | * Note: We provide the same definitions for both kmemcheck and non- | ||
137 | * kmemcheck kernels. This makes it harder to introduce accidental errors. It | ||
138 | * is also allowed to pass NULL pointers to kmemcheck_annotate_bitfield(). | ||
139 | */ | ||
140 | #define kmemcheck_bitfield_begin(name) \ | ||
141 | int name##_begin[0]; | ||
142 | |||
143 | #define kmemcheck_bitfield_end(name) \ | ||
144 | int name##_end[0]; | ||
145 | 164 | ||
146 | #define kmemcheck_annotate_bitfield(ptr, name) \ | 165 | #define kmemcheck_annotate_variable(var) \ |
147 | do { \ | 166 | do { \ |
148 | int _n; \ | ||
149 | \ | ||
150 | if (!ptr) \ | ||
151 | break; \ | ||
152 | \ | ||
153 | _n = (long) &((ptr)->name##_end) \ | ||
154 | - (long) &((ptr)->name##_begin); \ | ||
155 | MAYBE_BUILD_BUG_ON(_n < 0); \ | ||
156 | \ | ||
157 | kmemcheck_mark_initialized(&((ptr)->name##_begin), _n); \ | ||
158 | } while (0) | 167 | } while (0) |
159 | 168 | ||
160 | #define kmemcheck_annotate_variable(var) \ | 169 | #endif /* CONFIG_KMEMCHECK */ |
161 | do { \ | ||
162 | kmemcheck_mark_initialized(&(var), sizeof(var)); \ | ||
163 | } while (0) \ | ||
164 | 170 | ||
165 | #endif /* LINUX_KMEMCHECK_H */ | 171 | #endif /* LINUX_KMEMCHECK_H */ |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 6a9c4ddd3d9..73112250862 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -354,6 +354,9 @@ enum { | |||
354 | /* max tries if error condition is still set after ->error_handler */ | 354 | /* max tries if error condition is still set after ->error_handler */ |
355 | ATA_EH_MAX_TRIES = 5, | 355 | ATA_EH_MAX_TRIES = 5, |
356 | 356 | ||
357 | /* sometimes resuming a link requires several retries */ | ||
358 | ATA_LINK_RESUME_TRIES = 5, | ||
359 | |||
357 | /* how hard are we gonna try to probe/recover devices */ | 360 | /* how hard are we gonna try to probe/recover devices */ |
358 | ATA_PROBE_MAX_TRIES = 3, | 361 | ATA_PROBE_MAX_TRIES = 3, |
359 | ATA_EH_DEV_TRIES = 3, | 362 | ATA_EH_DEV_TRIES = 3, |
diff --git a/include/linux/list_sort.h b/include/linux/list_sort.h new file mode 100644 index 00000000000..1a2df2efb77 --- /dev/null +++ b/include/linux/list_sort.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #ifndef _LINUX_LIST_SORT_H | ||
2 | #define _LINUX_LIST_SORT_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | |||
6 | struct list_head; | ||
7 | |||
8 | void list_sort(void *priv, struct list_head *head, | ||
9 | int (*cmp)(void *priv, struct list_head *a, | ||
10 | struct list_head *b)); | ||
11 | #endif | ||
diff --git a/include/linux/mfd/tmio.h b/include/linux/mfd/tmio.h index 6b9c5d06690..9cb1834deff 100644 --- a/include/linux/mfd/tmio.h +++ b/include/linux/mfd/tmio.h | |||
@@ -2,6 +2,8 @@ | |||
2 | #define MFD_TMIO_H | 2 | #define MFD_TMIO_H |
3 | 3 | ||
4 | #include <linux/fb.h> | 4 | #include <linux/fb.h> |
5 | #include <linux/io.h> | ||
6 | #include <linux/platform_device.h> | ||
5 | 7 | ||
6 | #define tmio_ioread8(addr) readb(addr) | 8 | #define tmio_ioread8(addr) readb(addr) |
7 | #define tmio_ioread16(addr) readw(addr) | 9 | #define tmio_ioread16(addr) readw(addr) |
@@ -18,11 +20,48 @@ | |||
18 | writew((val) >> 16, (addr) + 2); \ | 20 | writew((val) >> 16, (addr) + 2); \ |
19 | } while (0) | 21 | } while (0) |
20 | 22 | ||
23 | #define CNF_CMD 0x04 | ||
24 | #define CNF_CTL_BASE 0x10 | ||
25 | #define CNF_INT_PIN 0x3d | ||
26 | #define CNF_STOP_CLK_CTL 0x40 | ||
27 | #define CNF_GCLK_CTL 0x41 | ||
28 | #define CNF_SD_CLK_MODE 0x42 | ||
29 | #define CNF_PIN_STATUS 0x44 | ||
30 | #define CNF_PWR_CTL_1 0x48 | ||
31 | #define CNF_PWR_CTL_2 0x49 | ||
32 | #define CNF_PWR_CTL_3 0x4a | ||
33 | #define CNF_CARD_DETECT_MODE 0x4c | ||
34 | #define CNF_SD_SLOT 0x50 | ||
35 | #define CNF_EXT_GCLK_CTL_1 0xf0 | ||
36 | #define CNF_EXT_GCLK_CTL_2 0xf1 | ||
37 | #define CNF_EXT_GCLK_CTL_3 0xf9 | ||
38 | #define CNF_SD_LED_EN_1 0xfa | ||
39 | #define CNF_SD_LED_EN_2 0xfe | ||
40 | |||
41 | #define SDCREN 0x2 /* Enable access to MMC CTL regs. (flag in COMMAND_REG)*/ | ||
42 | |||
43 | #define sd_config_write8(base, shift, reg, val) \ | ||
44 | tmio_iowrite8((val), (base) + ((reg) << (shift))) | ||
45 | #define sd_config_write16(base, shift, reg, val) \ | ||
46 | tmio_iowrite16((val), (base) + ((reg) << (shift))) | ||
47 | #define sd_config_write32(base, shift, reg, val) \ | ||
48 | do { \ | ||
49 | tmio_iowrite16((val), (base) + ((reg) << (shift))); \ | ||
50 | tmio_iowrite16((val) >> 16, (base) + ((reg + 2) << (shift))); \ | ||
51 | } while (0) | ||
52 | |||
53 | int tmio_core_mmc_enable(void __iomem *cnf, int shift, unsigned long base); | ||
54 | int tmio_core_mmc_resume(void __iomem *cnf, int shift, unsigned long base); | ||
55 | void tmio_core_mmc_pwr(void __iomem *cnf, int shift, int state); | ||
56 | void tmio_core_mmc_clk_div(void __iomem *cnf, int shift, int state); | ||
57 | |||
21 | /* | 58 | /* |
22 | * data for the MMC controller | 59 | * data for the MMC controller |
23 | */ | 60 | */ |
24 | struct tmio_mmc_data { | 61 | struct tmio_mmc_data { |
25 | const unsigned int hclk; | 62 | const unsigned int hclk; |
63 | void (*set_pwr)(struct platform_device *host, int state); | ||
64 | void (*set_clk_div)(struct platform_device *host, int state); | ||
26 | }; | 65 | }; |
27 | 66 | ||
28 | /* | 67 | /* |
diff --git a/include/linux/mfd/wm8350/pmic.h b/include/linux/mfd/wm8350/pmic.h index be3264e286e..e786fe9841e 100644 --- a/include/linux/mfd/wm8350/pmic.h +++ b/include/linux/mfd/wm8350/pmic.h | |||
@@ -666,20 +666,20 @@ | |||
666 | #define WM8350_ISINK_FLASH_DUR_64MS (1 << 8) | 666 | #define WM8350_ISINK_FLASH_DUR_64MS (1 << 8) |
667 | #define WM8350_ISINK_FLASH_DUR_96MS (2 << 8) | 667 | #define WM8350_ISINK_FLASH_DUR_96MS (2 << 8) |
668 | #define WM8350_ISINK_FLASH_DUR_1024MS (3 << 8) | 668 | #define WM8350_ISINK_FLASH_DUR_1024MS (3 << 8) |
669 | #define WM8350_ISINK_FLASH_ON_INSTANT (0 << 4) | 669 | #define WM8350_ISINK_FLASH_ON_INSTANT (0 << 0) |
670 | #define WM8350_ISINK_FLASH_ON_0_25S (1 << 4) | 670 | #define WM8350_ISINK_FLASH_ON_0_25S (1 << 0) |
671 | #define WM8350_ISINK_FLASH_ON_0_50S (2 << 4) | 671 | #define WM8350_ISINK_FLASH_ON_0_50S (2 << 0) |
672 | #define WM8350_ISINK_FLASH_ON_1_00S (3 << 4) | 672 | #define WM8350_ISINK_FLASH_ON_1_00S (3 << 0) |
673 | #define WM8350_ISINK_FLASH_ON_1_95S (1 << 4) | 673 | #define WM8350_ISINK_FLASH_ON_1_95S (1 << 0) |
674 | #define WM8350_ISINK_FLASH_ON_3_91S (2 << 4) | 674 | #define WM8350_ISINK_FLASH_ON_3_91S (2 << 0) |
675 | #define WM8350_ISINK_FLASH_ON_7_80S (3 << 4) | 675 | #define WM8350_ISINK_FLASH_ON_7_80S (3 << 0) |
676 | #define WM8350_ISINK_FLASH_OFF_INSTANT (0 << 0) | 676 | #define WM8350_ISINK_FLASH_OFF_INSTANT (0 << 4) |
677 | #define WM8350_ISINK_FLASH_OFF_0_25S (1 << 0) | 677 | #define WM8350_ISINK_FLASH_OFF_0_25S (1 << 4) |
678 | #define WM8350_ISINK_FLASH_OFF_0_50S (2 << 0) | 678 | #define WM8350_ISINK_FLASH_OFF_0_50S (2 << 4) |
679 | #define WM8350_ISINK_FLASH_OFF_1_00S (3 << 0) | 679 | #define WM8350_ISINK_FLASH_OFF_1_00S (3 << 4) |
680 | #define WM8350_ISINK_FLASH_OFF_1_95S (1 << 0) | 680 | #define WM8350_ISINK_FLASH_OFF_1_95S (1 << 4) |
681 | #define WM8350_ISINK_FLASH_OFF_3_91S (2 << 0) | 681 | #define WM8350_ISINK_FLASH_OFF_3_91S (2 << 4) |
682 | #define WM8350_ISINK_FLASH_OFF_7_80S (3 << 0) | 682 | #define WM8350_ISINK_FLASH_OFF_7_80S (3 << 4) |
683 | 683 | ||
684 | /* | 684 | /* |
685 | * Regulator Interrupts. | 685 | * Regulator Interrupts. |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 2265f28eb47..60c467bfbab 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -1089,6 +1089,7 @@ extern void zone_pcp_update(struct zone *zone); | |||
1089 | 1089 | ||
1090 | /* nommu.c */ | 1090 | /* nommu.c */ |
1091 | extern atomic_long_t mmap_pages_allocated; | 1091 | extern atomic_long_t mmap_pages_allocated; |
1092 | extern int nommu_shrink_inode_mappings(struct inode *, size_t, size_t); | ||
1092 | 1093 | ||
1093 | /* prio_tree.c */ | 1094 | /* prio_tree.c */ |
1094 | void vma_prio_tree_add(struct vm_area_struct *, struct vm_area_struct *old); | 1095 | void vma_prio_tree_add(struct vm_area_struct *, struct vm_area_struct *old); |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 84a524afb3d..36f96271306 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
@@ -122,7 +122,9 @@ struct vm_region { | |||
122 | unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */ | 122 | unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */ |
123 | struct file *vm_file; /* the backing file or NULL */ | 123 | struct file *vm_file; /* the backing file or NULL */ |
124 | 124 | ||
125 | atomic_t vm_usage; /* region usage count */ | 125 | int vm_usage; /* region usage count (access under nommu_region_sem) */ |
126 | bool vm_icache_flushed : 1; /* true if the icache has been flushed for | ||
127 | * this region */ | ||
126 | }; | 128 | }; |
127 | 129 | ||
128 | /* | 130 | /* |
@@ -203,10 +205,12 @@ struct mm_struct { | |||
203 | struct vm_area_struct * mmap; /* list of VMAs */ | 205 | struct vm_area_struct * mmap; /* list of VMAs */ |
204 | struct rb_root mm_rb; | 206 | struct rb_root mm_rb; |
205 | struct vm_area_struct * mmap_cache; /* last find_vma result */ | 207 | struct vm_area_struct * mmap_cache; /* last find_vma result */ |
208 | #ifdef CONFIG_MMU | ||
206 | unsigned long (*get_unmapped_area) (struct file *filp, | 209 | unsigned long (*get_unmapped_area) (struct file *filp, |
207 | unsigned long addr, unsigned long len, | 210 | unsigned long addr, unsigned long len, |
208 | unsigned long pgoff, unsigned long flags); | 211 | unsigned long pgoff, unsigned long flags); |
209 | void (*unmap_area) (struct mm_struct *mm, unsigned long addr); | 212 | void (*unmap_area) (struct mm_struct *mm, unsigned long addr); |
213 | #endif | ||
210 | unsigned long mmap_base; /* base of mmap area */ | 214 | unsigned long mmap_base; /* base of mmap area */ |
211 | unsigned long task_size; /* size of task vm space */ | 215 | unsigned long task_size; /* size of task vm space */ |
212 | unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */ | 216 | unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */ |
diff --git a/include/linux/pci.h b/include/linux/pci.h index bf1e6708084..174e5392e51 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -243,6 +243,7 @@ struct pci_dev { | |||
243 | unsigned int d2_support:1; /* Low power state D2 is supported */ | 243 | unsigned int d2_support:1; /* Low power state D2 is supported */ |
244 | unsigned int no_d1d2:1; /* Only allow D0 and D3 */ | 244 | unsigned int no_d1d2:1; /* Only allow D0 and D3 */ |
245 | unsigned int wakeup_prepared:1; | 245 | unsigned int wakeup_prepared:1; |
246 | unsigned int d3_delay; /* D3->D0 transition time in ms */ | ||
246 | 247 | ||
247 | #ifdef CONFIG_PCIEASPM | 248 | #ifdef CONFIG_PCIEASPM |
248 | struct pcie_link_state *link_state; /* ASPM link state. */ | 249 | struct pcie_link_state *link_state; /* ASPM link state. */ |
@@ -566,6 +567,9 @@ void pcibios_align_resource(void *, struct resource *, resource_size_t, | |||
566 | resource_size_t); | 567 | resource_size_t); |
567 | void pcibios_update_irq(struct pci_dev *, int irq); | 568 | void pcibios_update_irq(struct pci_dev *, int irq); |
568 | 569 | ||
570 | /* Weak but can be overriden by arch */ | ||
571 | void pci_fixup_cardbus(struct pci_bus *); | ||
572 | |||
569 | /* Generic PCI functions used internally */ | 573 | /* Generic PCI functions used internally */ |
570 | 574 | ||
571 | extern struct pci_bus *pci_find_bus(int domain, int busnr); | 575 | extern struct pci_bus *pci_find_bus(int domain, int busnr); |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index c66b34f75ee..8fa71874113 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -814,9 +814,14 @@ extern int perf_event_overflow(struct perf_event *event, int nmi, | |||
814 | */ | 814 | */ |
815 | static inline int is_software_event(struct perf_event *event) | 815 | static inline int is_software_event(struct perf_event *event) |
816 | { | 816 | { |
817 | return (event->attr.type != PERF_TYPE_RAW) && | 817 | switch (event->attr.type) { |
818 | (event->attr.type != PERF_TYPE_HARDWARE) && | 818 | case PERF_TYPE_SOFTWARE: |
819 | (event->attr.type != PERF_TYPE_HW_CACHE); | 819 | case PERF_TYPE_TRACEPOINT: |
820 | /* for now the breakpoint stuff also works as software event */ | ||
821 | case PERF_TYPE_BREAKPOINT: | ||
822 | return 1; | ||
823 | } | ||
824 | return 0; | ||
820 | } | 825 | } |
821 | 826 | ||
822 | extern atomic_t perf_swevent_enabled[PERF_COUNT_SW_MAX]; | 827 | extern atomic_t perf_swevent_enabled[PERF_COUNT_SW_MAX]; |
diff --git a/include/linux/phy.h b/include/linux/phy.h index b1368b8f657..7968defd2fa 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h | |||
@@ -447,6 +447,7 @@ struct phy_device* get_phy_device(struct mii_bus *bus, int addr); | |||
447 | int phy_device_register(struct phy_device *phy); | 447 | int phy_device_register(struct phy_device *phy); |
448 | int phy_clear_interrupt(struct phy_device *phydev); | 448 | int phy_clear_interrupt(struct phy_device *phydev); |
449 | int phy_config_interrupt(struct phy_device *phydev, u32 interrupts); | 449 | int phy_config_interrupt(struct phy_device *phydev, u32 interrupts); |
450 | int phy_init_hw(struct phy_device *phydev); | ||
450 | int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, | 451 | int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, |
451 | u32 flags, phy_interface_t interface); | 452 | u32 flags, phy_interface_t interface); |
452 | struct phy_device * phy_attach(struct net_device *dev, | 453 | struct phy_device * phy_attach(struct net_device *dev, |
diff --git a/include/linux/poison.h b/include/linux/poison.h index 7fc194aef8c..2110a81c5e2 100644 --- a/include/linux/poison.h +++ b/include/linux/poison.h | |||
@@ -2,13 +2,25 @@ | |||
2 | #define _LINUX_POISON_H | 2 | #define _LINUX_POISON_H |
3 | 3 | ||
4 | /********** include/linux/list.h **********/ | 4 | /********** include/linux/list.h **********/ |
5 | |||
6 | /* | ||
7 | * Architectures might want to move the poison pointer offset | ||
8 | * into some well-recognized area such as 0xdead000000000000, | ||
9 | * that is also not mappable by user-space exploits: | ||
10 | */ | ||
11 | #ifdef CONFIG_ILLEGAL_POINTER_VALUE | ||
12 | # define POISON_POINTER_DELTA _AC(CONFIG_ILLEGAL_POINTER_VALUE, UL) | ||
13 | #else | ||
14 | # define POISON_POINTER_DELTA 0 | ||
15 | #endif | ||
16 | |||
5 | /* | 17 | /* |
6 | * These are non-NULL pointers that will result in page faults | 18 | * These are non-NULL pointers that will result in page faults |
7 | * under normal circumstances, used to verify that nobody uses | 19 | * under normal circumstances, used to verify that nobody uses |
8 | * non-initialized list entries. | 20 | * non-initialized list entries. |
9 | */ | 21 | */ |
10 | #define LIST_POISON1 ((void *) 0x00100100) | 22 | #define LIST_POISON1 ((void *) 0x00100100 + POISON_POINTER_DELTA) |
11 | #define LIST_POISON2 ((void *) 0x00200200) | 23 | #define LIST_POISON2 ((void *) 0x00200200 + POISON_POINTER_DELTA) |
12 | 24 | ||
13 | /********** include/linux/timer.h **********/ | 25 | /********** include/linux/timer.h **********/ |
14 | /* | 26 | /* |
diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h index c96c1858fe2..1ba3cf6edfb 100644 --- a/include/linux/reiserfs_fs.h +++ b/include/linux/reiserfs_fs.h | |||
@@ -62,6 +62,12 @@ void reiserfs_write_unlock(struct super_block *s); | |||
62 | int reiserfs_write_lock_once(struct super_block *s); | 62 | int reiserfs_write_lock_once(struct super_block *s); |
63 | void reiserfs_write_unlock_once(struct super_block *s, int lock_depth); | 63 | void reiserfs_write_unlock_once(struct super_block *s, int lock_depth); |
64 | 64 | ||
65 | #ifdef CONFIG_REISERFS_CHECK | ||
66 | void reiserfs_lock_check_recursive(struct super_block *s); | ||
67 | #else | ||
68 | static inline void reiserfs_lock_check_recursive(struct super_block *s) { } | ||
69 | #endif | ||
70 | |||
65 | /* | 71 | /* |
66 | * Several mutexes depend on the write lock. | 72 | * Several mutexes depend on the write lock. |
67 | * However sometimes we want to relax the write lock while we hold | 73 | * However sometimes we want to relax the write lock while we hold |
@@ -92,11 +98,31 @@ void reiserfs_write_unlock_once(struct super_block *s, int lock_depth); | |||
92 | static inline void reiserfs_mutex_lock_safe(struct mutex *m, | 98 | static inline void reiserfs_mutex_lock_safe(struct mutex *m, |
93 | struct super_block *s) | 99 | struct super_block *s) |
94 | { | 100 | { |
101 | reiserfs_lock_check_recursive(s); | ||
95 | reiserfs_write_unlock(s); | 102 | reiserfs_write_unlock(s); |
96 | mutex_lock(m); | 103 | mutex_lock(m); |
97 | reiserfs_write_lock(s); | 104 | reiserfs_write_lock(s); |
98 | } | 105 | } |
99 | 106 | ||
107 | static inline void | ||
108 | reiserfs_mutex_lock_nested_safe(struct mutex *m, unsigned int subclass, | ||
109 | struct super_block *s) | ||
110 | { | ||
111 | reiserfs_lock_check_recursive(s); | ||
112 | reiserfs_write_unlock(s); | ||
113 | mutex_lock_nested(m, subclass); | ||
114 | reiserfs_write_lock(s); | ||
115 | } | ||
116 | |||
117 | static inline void | ||
118 | reiserfs_down_read_safe(struct rw_semaphore *sem, struct super_block *s) | ||
119 | { | ||
120 | reiserfs_lock_check_recursive(s); | ||
121 | reiserfs_write_unlock(s); | ||
122 | down_read(sem); | ||
123 | reiserfs_write_lock(s); | ||
124 | } | ||
125 | |||
100 | /* | 126 | /* |
101 | * When we schedule, we usually want to also release the write lock, | 127 | * When we schedule, we usually want to also release the write lock, |
102 | * according to the previous bkl based locking scheme of reiserfs. | 128 | * according to the previous bkl based locking scheme of reiserfs. |
diff --git a/include/linux/resource.h b/include/linux/resource.h index 40fc7e62608..f1e914eefea 100644 --- a/include/linux/resource.h +++ b/include/linux/resource.h | |||
@@ -3,8 +3,6 @@ | |||
3 | 3 | ||
4 | #include <linux/time.h> | 4 | #include <linux/time.h> |
5 | 5 | ||
6 | struct task_struct; | ||
7 | |||
8 | /* | 6 | /* |
9 | * Resource control/accounting header file for linux | 7 | * Resource control/accounting header file for linux |
10 | */ | 8 | */ |
@@ -70,6 +68,12 @@ struct rlimit { | |||
70 | */ | 68 | */ |
71 | #include <asm/resource.h> | 69 | #include <asm/resource.h> |
72 | 70 | ||
71 | #ifdef __KERNEL__ | ||
72 | |||
73 | struct task_struct; | ||
74 | |||
73 | int getrusage(struct task_struct *p, int who, struct rusage __user *ru); | 75 | int getrusage(struct task_struct *p, int who, struct rusage __user *ru); |
74 | 76 | ||
77 | #endif /* __KERNEL__ */ | ||
78 | |||
75 | #endif | 79 | #endif |
diff --git a/include/linux/sched.h b/include/linux/sched.h index f2f842db03c..6f7bba93929 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -377,6 +377,8 @@ extern int sysctl_max_map_count; | |||
377 | 377 | ||
378 | #include <linux/aio.h> | 378 | #include <linux/aio.h> |
379 | 379 | ||
380 | #ifdef CONFIG_MMU | ||
381 | extern void arch_pick_mmap_layout(struct mm_struct *mm); | ||
380 | extern unsigned long | 382 | extern unsigned long |
381 | arch_get_unmapped_area(struct file *, unsigned long, unsigned long, | 383 | arch_get_unmapped_area(struct file *, unsigned long, unsigned long, |
382 | unsigned long, unsigned long); | 384 | unsigned long, unsigned long); |
@@ -386,6 +388,9 @@ arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr, | |||
386 | unsigned long flags); | 388 | unsigned long flags); |
387 | extern void arch_unmap_area(struct mm_struct *, unsigned long); | 389 | extern void arch_unmap_area(struct mm_struct *, unsigned long); |
388 | extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long); | 390 | extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long); |
391 | #else | ||
392 | static inline void arch_pick_mmap_layout(struct mm_struct *mm) {} | ||
393 | #endif | ||
389 | 394 | ||
390 | #if USE_SPLIT_PTLOCKS | 395 | #if USE_SPLIT_PTLOCKS |
391 | /* | 396 | /* |
@@ -2491,8 +2496,6 @@ static inline void set_task_cpu(struct task_struct *p, unsigned int cpu) | |||
2491 | 2496 | ||
2492 | #endif /* CONFIG_SMP */ | 2497 | #endif /* CONFIG_SMP */ |
2493 | 2498 | ||
2494 | extern void arch_pick_mmap_layout(struct mm_struct *mm); | ||
2495 | |||
2496 | #ifdef CONFIG_TRACING | 2499 | #ifdef CONFIG_TRACING |
2497 | extern void | 2500 | extern void |
2498 | __trace_special(void *__tr, void *__data, | 2501 | __trace_special(void *__tr, void *__data, |
@@ -2601,6 +2604,28 @@ static inline void mm_init_owner(struct mm_struct *mm, struct task_struct *p) | |||
2601 | } | 2604 | } |
2602 | #endif /* CONFIG_MM_OWNER */ | 2605 | #endif /* CONFIG_MM_OWNER */ |
2603 | 2606 | ||
2607 | static inline unsigned long task_rlimit(const struct task_struct *tsk, | ||
2608 | unsigned int limit) | ||
2609 | { | ||
2610 | return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_cur); | ||
2611 | } | ||
2612 | |||
2613 | static inline unsigned long task_rlimit_max(const struct task_struct *tsk, | ||
2614 | unsigned int limit) | ||
2615 | { | ||
2616 | return ACCESS_ONCE(tsk->signal->rlim[limit].rlim_max); | ||
2617 | } | ||
2618 | |||
2619 | static inline unsigned long rlimit(unsigned int limit) | ||
2620 | { | ||
2621 | return task_rlimit(current, limit); | ||
2622 | } | ||
2623 | |||
2624 | static inline unsigned long rlimit_max(unsigned int limit) | ||
2625 | { | ||
2626 | return task_rlimit_max(current, limit); | ||
2627 | } | ||
2628 | |||
2604 | #endif /* __KERNEL__ */ | 2629 | #endif /* __KERNEL__ */ |
2605 | 2630 | ||
2606 | #endif | 2631 | #endif |
diff --git a/include/linux/serio.h b/include/linux/serio.h index e2f3044d4a4..813d26c247e 100644 --- a/include/linux/serio.h +++ b/include/linux/serio.h | |||
@@ -136,25 +136,6 @@ static inline void serio_continue_rx(struct serio *serio) | |||
136 | spin_unlock_irq(&serio->lock); | 136 | spin_unlock_irq(&serio->lock); |
137 | } | 137 | } |
138 | 138 | ||
139 | /* | ||
140 | * Use the following functions to pin serio's driver in process context | ||
141 | */ | ||
142 | static inline int serio_pin_driver(struct serio *serio) | ||
143 | { | ||
144 | return mutex_lock_interruptible(&serio->drv_mutex); | ||
145 | } | ||
146 | |||
147 | static inline void serio_pin_driver_uninterruptible(struct serio *serio) | ||
148 | { | ||
149 | mutex_lock(&serio->drv_mutex); | ||
150 | } | ||
151 | |||
152 | static inline void serio_unpin_driver(struct serio *serio) | ||
153 | { | ||
154 | mutex_unlock(&serio->drv_mutex); | ||
155 | } | ||
156 | |||
157 | |||
158 | #endif | 139 | #endif |
159 | 140 | ||
160 | /* | 141 | /* |
diff --git a/include/linux/string.h b/include/linux/string.h index 651839a2a75..a716ee2a8ad 100644 --- a/include/linux/string.h +++ b/include/linux/string.h | |||
@@ -72,7 +72,10 @@ static inline __must_check char *strstrip(char *str) | |||
72 | } | 72 | } |
73 | 73 | ||
74 | #ifndef __HAVE_ARCH_STRSTR | 74 | #ifndef __HAVE_ARCH_STRSTR |
75 | extern char * strstr(const char *,const char *); | 75 | extern char * strstr(const char *, const char *); |
76 | #endif | ||
77 | #ifndef __HAVE_ARCH_STRNSTR | ||
78 | extern char * strnstr(const char *, const char *, size_t); | ||
76 | #endif | 79 | #endif |
77 | #ifndef __HAVE_ARCH_STRLEN | 80 | #ifndef __HAVE_ARCH_STRLEN |
78 | extern __kernel_size_t strlen(const char *); | 81 | extern __kernel_size_t strlen(const char *); |
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 65793e90d6f..207466a49f3 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h | |||
@@ -195,7 +195,7 @@ struct perf_event_attr; | |||
195 | static const struct syscall_metadata __used \ | 195 | static const struct syscall_metadata __used \ |
196 | __attribute__((__aligned__(4))) \ | 196 | __attribute__((__aligned__(4))) \ |
197 | __attribute__((section("__syscalls_metadata"))) \ | 197 | __attribute__((section("__syscalls_metadata"))) \ |
198 | __syscall_meta_##sname = { \ | 198 | __syscall_meta__##sname = { \ |
199 | .name = "sys_"#sname, \ | 199 | .name = "sys_"#sname, \ |
200 | .nb_args = 0, \ | 200 | .nb_args = 0, \ |
201 | .enter_event = &event_enter__##sname, \ | 201 | .enter_event = &event_enter__##sname, \ |
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 877ba039e6a..bd27fbc9db6 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h | |||
@@ -482,6 +482,7 @@ enum | |||
482 | NET_IPV4_CONF_ARP_ACCEPT=21, | 482 | NET_IPV4_CONF_ARP_ACCEPT=21, |
483 | NET_IPV4_CONF_ARP_NOTIFY=22, | 483 | NET_IPV4_CONF_ARP_NOTIFY=22, |
484 | NET_IPV4_CONF_ACCEPT_LOCAL=23, | 484 | NET_IPV4_CONF_ACCEPT_LOCAL=23, |
485 | NET_IPV4_CONF_SRC_VMARK=24, | ||
485 | __NET_IPV4_CONF_MAX | 486 | __NET_IPV4_CONF_MAX |
486 | }; | 487 | }; |
487 | 488 | ||
diff --git a/include/linux/topology.h b/include/linux/topology.h index 57e63579bfd..5b81156780b 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h | |||
@@ -99,7 +99,7 @@ int arch_update_cpu_topology(void); | |||
99 | | 1*SD_WAKE_AFFINE \ | 99 | | 1*SD_WAKE_AFFINE \ |
100 | | 1*SD_SHARE_CPUPOWER \ | 100 | | 1*SD_SHARE_CPUPOWER \ |
101 | | 0*SD_POWERSAVINGS_BALANCE \ | 101 | | 0*SD_POWERSAVINGS_BALANCE \ |
102 | | 0*SD_SHARE_PKG_RESOURCES \ | 102 | | 1*SD_SHARE_PKG_RESOURCES \ |
103 | | 0*SD_SERIALIZE \ | 103 | | 0*SD_SERIALIZE \ |
104 | | 0*SD_PREFER_SIBLING \ | 104 | | 0*SD_PREFER_SIBLING \ |
105 | , \ | 105 | , \ |
diff --git a/include/linux/tty.h b/include/linux/tty.h index ef3a2947b10..6abfcf5b588 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
@@ -464,7 +464,7 @@ extern int tty_port_alloc_xmit_buf(struct tty_port *port); | |||
464 | extern void tty_port_free_xmit_buf(struct tty_port *port); | 464 | extern void tty_port_free_xmit_buf(struct tty_port *port); |
465 | extern void tty_port_put(struct tty_port *port); | 465 | extern void tty_port_put(struct tty_port *port); |
466 | 466 | ||
467 | extern inline struct tty_port *tty_port_get(struct tty_port *port) | 467 | static inline struct tty_port *tty_port_get(struct tty_port *port) |
468 | { | 468 | { |
469 | if (port) | 469 | if (port) |
470 | kref_get(&port->kref); | 470 | kref_get(&port->kref); |
@@ -486,7 +486,7 @@ extern void tty_port_close(struct tty_port *port, | |||
486 | struct tty_struct *tty, struct file *filp); | 486 | struct tty_struct *tty, struct file *filp); |
487 | extern int tty_port_open(struct tty_port *port, | 487 | extern int tty_port_open(struct tty_port *port, |
488 | struct tty_struct *tty, struct file *filp); | 488 | struct tty_struct *tty, struct file *filp); |
489 | extern inline int tty_port_users(struct tty_port *port) | 489 | static inline int tty_port_users(struct tty_port *port) |
490 | { | 490 | { |
491 | return port->count + port->blocked_open; | 491 | return port->count + port->blocked_open; |
492 | } | 492 | } |
diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h index 6b58367d145..d512d98dfb7 100644 --- a/include/linux/uaccess.h +++ b/include/linux/uaccess.h | |||
@@ -94,6 +94,7 @@ static inline unsigned long __copy_from_user_nocache(void *to, | |||
94 | * happens, handle that and return -EFAULT. | 94 | * happens, handle that and return -EFAULT. |
95 | */ | 95 | */ |
96 | extern long probe_kernel_read(void *dst, void *src, size_t size); | 96 | extern long probe_kernel_read(void *dst, void *src, size_t size); |
97 | extern long __probe_kernel_read(void *dst, void *src, size_t size); | ||
97 | 98 | ||
98 | /* | 99 | /* |
99 | * probe_kernel_write(): safely attempt to write to a location | 100 | * probe_kernel_write(): safely attempt to write to a location |
@@ -104,6 +105,7 @@ extern long probe_kernel_read(void *dst, void *src, size_t size); | |||
104 | * Safely write to address @dst from the buffer at @src. If a kernel fault | 105 | * Safely write to address @dst from the buffer at @src. If a kernel fault |
105 | * happens, handle that and return -EFAULT. | 106 | * happens, handle that and return -EFAULT. |
106 | */ | 107 | */ |
107 | extern long probe_kernel_write(void *dst, void *src, size_t size); | 108 | extern long notrace probe_kernel_write(void *dst, void *src, size_t size); |
109 | extern long notrace __probe_kernel_write(void *dst, void *src, size_t size); | ||
108 | 110 | ||
109 | #endif /* __LINUX_UACCESS_H__ */ | 111 | #endif /* __LINUX_UACCESS_H__ */ |
diff --git a/include/linux/usb.h b/include/linux/usb.h index e101a2d04d7..d7ace1b80f0 100644 --- a/include/linux/usb.h +++ b/include/linux/usb.h | |||
@@ -192,6 +192,7 @@ struct usb_interface { | |||
192 | unsigned needs_altsetting0:1; /* switch to altsetting 0 is pending */ | 192 | unsigned needs_altsetting0:1; /* switch to altsetting 0 is pending */ |
193 | unsigned needs_binding:1; /* needs delayed unbind/rebind */ | 193 | unsigned needs_binding:1; /* needs delayed unbind/rebind */ |
194 | unsigned reset_running:1; | 194 | unsigned reset_running:1; |
195 | unsigned resetting_device:1; /* true: bandwidth alloc after reset */ | ||
195 | 196 | ||
196 | struct device dev; /* interface specific device info */ | 197 | struct device dev; /* interface specific device info */ |
197 | struct device *usb_dev; | 198 | struct device *usb_dev; |
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index c18c008f4bb..76e8903cd20 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
@@ -70,6 +70,7 @@ struct writeback_control { | |||
70 | struct bdi_writeback; | 70 | struct bdi_writeback; |
71 | int inode_wait(void *); | 71 | int inode_wait(void *); |
72 | void writeback_inodes_sb(struct super_block *); | 72 | void writeback_inodes_sb(struct super_block *); |
73 | int writeback_inodes_sb_if_idle(struct super_block *); | ||
73 | void sync_inodes_sb(struct super_block *); | 74 | void sync_inodes_sb(struct super_block *); |
74 | void writeback_inodes_wbc(struct writeback_control *wbc); | 75 | void writeback_inodes_wbc(struct writeback_control *wbc); |
75 | long wb_do_writeback(struct bdi_writeback *wb, int force_wait); | 76 | long wb_do_writeback(struct bdi_writeback *wb, int force_wait); |
diff --git a/include/net/ip.h b/include/net/ip.h index 85108cfbb1a..fb63371c07a 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
@@ -326,6 +326,22 @@ static __inline__ void inet_reset_saddr(struct sock *sk) | |||
326 | 326 | ||
327 | #endif | 327 | #endif |
328 | 328 | ||
329 | static inline int sk_mc_loop(struct sock *sk) | ||
330 | { | ||
331 | if (!sk) | ||
332 | return 1; | ||
333 | switch (sk->sk_family) { | ||
334 | case AF_INET: | ||
335 | return inet_sk(sk)->mc_loop; | ||
336 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) | ||
337 | case AF_INET6: | ||
338 | return inet6_sk(sk)->mc_loop; | ||
339 | #endif | ||
340 | } | ||
341 | WARN_ON(1); | ||
342 | return 1; | ||
343 | } | ||
344 | |||
329 | extern int ip_call_ra_chain(struct sk_buff *skb); | 345 | extern int ip_call_ra_chain(struct sk_buff *skb); |
330 | 346 | ||
331 | /* | 347 | /* |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 2aff4906b2a..0bf36975227 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -547,7 +547,6 @@ enum mac80211_rx_flags { | |||
547 | * unspecified depending on the hardware capabilities flags | 547 | * unspecified depending on the hardware capabilities flags |
548 | * @IEEE80211_HW_SIGNAL_* | 548 | * @IEEE80211_HW_SIGNAL_* |
549 | * @noise: noise when receiving this frame, in dBm. | 549 | * @noise: noise when receiving this frame, in dBm. |
550 | * @qual: overall signal quality indication, in percent (0-100). | ||
551 | * @antenna: antenna used | 550 | * @antenna: antenna used |
552 | * @rate_idx: index of data rate into band's supported rates or MCS index if | 551 | * @rate_idx: index of data rate into band's supported rates or MCS index if |
553 | * HT rates are use (RX_FLAG_HT) | 552 | * HT rates are use (RX_FLAG_HT) |
@@ -559,7 +558,6 @@ struct ieee80211_rx_status { | |||
559 | int freq; | 558 | int freq; |
560 | int signal; | 559 | int signal; |
561 | int noise; | 560 | int noise; |
562 | int __deprecated qual; | ||
563 | int antenna; | 561 | int antenna; |
564 | int rate_idx; | 562 | int rate_idx; |
565 | int flag; | 563 | int flag; |
@@ -1737,6 +1735,12 @@ static inline void ieee80211_rx_ni(struct ieee80211_hw *hw, | |||
1737 | local_bh_enable(); | 1735 | local_bh_enable(); |
1738 | } | 1736 | } |
1739 | 1737 | ||
1738 | /* | ||
1739 | * The TX headroom reserved by mac80211 for its own tx_status functions. | ||
1740 | * This is enough for the radiotap header. | ||
1741 | */ | ||
1742 | #define IEEE80211_TX_STATUS_HEADROOM 13 | ||
1743 | |||
1740 | /** | 1744 | /** |
1741 | * ieee80211_tx_status - transmit status callback | 1745 | * ieee80211_tx_status - transmit status callback |
1742 | * | 1746 | * |
diff --git a/include/scsi/libsrp.h b/include/scsi/libsrp.h index 07e3adde21d..f4105c91af5 100644 --- a/include/scsi/libsrp.h +++ b/include/scsi/libsrp.h | |||
@@ -2,6 +2,7 @@ | |||
2 | #define __LIBSRP_H__ | 2 | #define __LIBSRP_H__ |
3 | 3 | ||
4 | #include <linux/list.h> | 4 | #include <linux/list.h> |
5 | #include <linux/kfifo.h> | ||
5 | #include <scsi/scsi_cmnd.h> | 6 | #include <scsi/scsi_cmnd.h> |
6 | #include <scsi/scsi_host.h> | 7 | #include <scsi/scsi_host.h> |
7 | #include <scsi/srp.h> | 8 | #include <scsi/srp.h> |
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 73523151a73..c6fe03e902c 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h | |||
@@ -414,7 +414,8 @@ ftrace_raw_output_##call(struct trace_iterator *iter, int flags) \ | |||
414 | BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \ | 414 | BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \ |
415 | ret = trace_define_field(event_call, #type "[" #len "]", #item, \ | 415 | ret = trace_define_field(event_call, #type "[" #len "]", #item, \ |
416 | offsetof(typeof(field), item), \ | 416 | offsetof(typeof(field), item), \ |
417 | sizeof(field.item), 0, FILTER_OTHER); \ | 417 | sizeof(field.item), \ |
418 | is_signed_type(type), FILTER_OTHER); \ | ||
418 | if (ret) \ | 419 | if (ret) \ |
419 | return ret; | 420 | return ret; |
420 | 421 | ||
@@ -422,8 +423,8 @@ ftrace_raw_output_##call(struct trace_iterator *iter, int flags) \ | |||
422 | #define __dynamic_array(type, item, len) \ | 423 | #define __dynamic_array(type, item, len) \ |
423 | ret = trace_define_field(event_call, "__data_loc " #type "[]", #item, \ | 424 | ret = trace_define_field(event_call, "__data_loc " #type "[]", #item, \ |
424 | offsetof(typeof(field), __data_loc_##item), \ | 425 | offsetof(typeof(field), __data_loc_##item), \ |
425 | sizeof(field.__data_loc_##item), 0, \ | 426 | sizeof(field.__data_loc_##item), \ |
426 | FILTER_OTHER); | 427 | is_signed_type(type), FILTER_OTHER); |
427 | 428 | ||
428 | #undef __string | 429 | #undef __string |
429 | #define __string(item, src) __dynamic_array(char, item, -1) | 430 | #define __string(item, src) __dynamic_array(char, item, -1) |
diff --git a/init/Kconfig b/init/Kconfig index a23da9f0180..d95ca7cd5d4 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -115,10 +115,13 @@ config HAVE_KERNEL_BZIP2 | |||
115 | config HAVE_KERNEL_LZMA | 115 | config HAVE_KERNEL_LZMA |
116 | bool | 116 | bool |
117 | 117 | ||
118 | config HAVE_KERNEL_LZO | ||
119 | bool | ||
120 | |||
118 | choice | 121 | choice |
119 | prompt "Kernel compression mode" | 122 | prompt "Kernel compression mode" |
120 | default KERNEL_GZIP | 123 | default KERNEL_GZIP |
121 | depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA | 124 | depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_LZO |
122 | help | 125 | help |
123 | The linux kernel is a kind of self-extracting executable. | 126 | The linux kernel is a kind of self-extracting executable. |
124 | Several compression algorithms are available, which differ | 127 | Several compression algorithms are available, which differ |
@@ -141,9 +144,8 @@ config KERNEL_GZIP | |||
141 | bool "Gzip" | 144 | bool "Gzip" |
142 | depends on HAVE_KERNEL_GZIP | 145 | depends on HAVE_KERNEL_GZIP |
143 | help | 146 | help |
144 | The old and tried gzip compression. Its compression ratio is | 147 | The old and tried gzip compression. It provides a good balance |
145 | the poorest among the 3 choices; however its speed (both | 148 | between compression ratio and decompression speed. |
146 | compression and decompression) is the fastest. | ||
147 | 149 | ||
148 | config KERNEL_BZIP2 | 150 | config KERNEL_BZIP2 |
149 | bool "Bzip2" | 151 | bool "Bzip2" |
@@ -164,6 +166,14 @@ config KERNEL_LZMA | |||
164 | two. Compression is slowest. The kernel size is about 33% | 166 | two. Compression is slowest. The kernel size is about 33% |
165 | smaller with LZMA in comparison to gzip. | 167 | smaller with LZMA in comparison to gzip. |
166 | 168 | ||
169 | config KERNEL_LZO | ||
170 | bool "LZO" | ||
171 | depends on HAVE_KERNEL_LZO | ||
172 | help | ||
173 | Its compression ratio is the poorest among the 4. The kernel | ||
174 | size is about about 10% bigger than gzip; however its speed | ||
175 | (both compression and decompression) is the fastest. | ||
176 | |||
167 | endchoice | 177 | endchoice |
168 | 178 | ||
169 | config SWAP | 179 | config SWAP |
@@ -298,6 +298,9 @@ static const struct file_operations shm_file_operations = { | |||
298 | .mmap = shm_mmap, | 298 | .mmap = shm_mmap, |
299 | .fsync = shm_fsync, | 299 | .fsync = shm_fsync, |
300 | .release = shm_release, | 300 | .release = shm_release, |
301 | #ifndef CONFIG_MMU | ||
302 | .get_unmapped_area = shm_get_unmapped_area, | ||
303 | #endif | ||
301 | }; | 304 | }; |
302 | 305 | ||
303 | static const struct file_operations shm_file_operations_huge = { | 306 | static const struct file_operations shm_file_operations_huge = { |
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 0249f4be9b5..1fbcc748044 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c | |||
@@ -2468,7 +2468,6 @@ static struct cgroup_pidlist *cgroup_pidlist_find(struct cgroup *cgrp, | |||
2468 | /* make sure l doesn't vanish out from under us */ | 2468 | /* make sure l doesn't vanish out from under us */ |
2469 | down_write(&l->mutex); | 2469 | down_write(&l->mutex); |
2470 | mutex_unlock(&cgrp->pidlist_mutex); | 2470 | mutex_unlock(&cgrp->pidlist_mutex); |
2471 | l->use_count++; | ||
2472 | return l; | 2471 | return l; |
2473 | } | 2472 | } |
2474 | } | 2473 | } |
diff --git a/kernel/futex.c b/kernel/futex.c index 8e3c3ffe1b9..d9b3a2228f9 100644 --- a/kernel/futex.c +++ b/kernel/futex.c | |||
@@ -203,8 +203,6 @@ static void drop_futex_key_refs(union futex_key *key) | |||
203 | * @uaddr: virtual address of the futex | 203 | * @uaddr: virtual address of the futex |
204 | * @fshared: 0 for a PROCESS_PRIVATE futex, 1 for PROCESS_SHARED | 204 | * @fshared: 0 for a PROCESS_PRIVATE futex, 1 for PROCESS_SHARED |
205 | * @key: address where result is stored. | 205 | * @key: address where result is stored. |
206 | * @rw: mapping needs to be read/write (values: VERIFY_READ, | ||
207 | * VERIFY_WRITE) | ||
208 | * | 206 | * |
209 | * Returns a negative error code or 0 | 207 | * Returns a negative error code or 0 |
210 | * The key words are stored in *key on success. | 208 | * The key words are stored in *key on success. |
@@ -216,7 +214,7 @@ static void drop_futex_key_refs(union futex_key *key) | |||
216 | * lock_page() might sleep, the caller should not hold a spinlock. | 214 | * lock_page() might sleep, the caller should not hold a spinlock. |
217 | */ | 215 | */ |
218 | static int | 216 | static int |
219 | get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw) | 217 | get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key) |
220 | { | 218 | { |
221 | unsigned long address = (unsigned long)uaddr; | 219 | unsigned long address = (unsigned long)uaddr; |
222 | struct mm_struct *mm = current->mm; | 220 | struct mm_struct *mm = current->mm; |
@@ -239,7 +237,7 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw) | |||
239 | * but access_ok() should be faster than find_vma() | 237 | * but access_ok() should be faster than find_vma() |
240 | */ | 238 | */ |
241 | if (!fshared) { | 239 | if (!fshared) { |
242 | if (unlikely(!access_ok(rw, uaddr, sizeof(u32)))) | 240 | if (unlikely(!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))) |
243 | return -EFAULT; | 241 | return -EFAULT; |
244 | key->private.mm = mm; | 242 | key->private.mm = mm; |
245 | key->private.address = address; | 243 | key->private.address = address; |
@@ -248,7 +246,7 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw) | |||
248 | } | 246 | } |
249 | 247 | ||
250 | again: | 248 | again: |
251 | err = get_user_pages_fast(address, 1, rw == VERIFY_WRITE, &page); | 249 | err = get_user_pages_fast(address, 1, 1, &page); |
252 | if (err < 0) | 250 | if (err < 0) |
253 | return err; | 251 | return err; |
254 | 252 | ||
@@ -867,7 +865,7 @@ static int futex_wake(u32 __user *uaddr, int fshared, int nr_wake, u32 bitset) | |||
867 | if (!bitset) | 865 | if (!bitset) |
868 | return -EINVAL; | 866 | return -EINVAL; |
869 | 867 | ||
870 | ret = get_futex_key(uaddr, fshared, &key, VERIFY_READ); | 868 | ret = get_futex_key(uaddr, fshared, &key); |
871 | if (unlikely(ret != 0)) | 869 | if (unlikely(ret != 0)) |
872 | goto out; | 870 | goto out; |
873 | 871 | ||
@@ -913,10 +911,10 @@ futex_wake_op(u32 __user *uaddr1, int fshared, u32 __user *uaddr2, | |||
913 | int ret, op_ret; | 911 | int ret, op_ret; |
914 | 912 | ||
915 | retry: | 913 | retry: |
916 | ret = get_futex_key(uaddr1, fshared, &key1, VERIFY_READ); | 914 | ret = get_futex_key(uaddr1, fshared, &key1); |
917 | if (unlikely(ret != 0)) | 915 | if (unlikely(ret != 0)) |
918 | goto out; | 916 | goto out; |
919 | ret = get_futex_key(uaddr2, fshared, &key2, VERIFY_WRITE); | 917 | ret = get_futex_key(uaddr2, fshared, &key2); |
920 | if (unlikely(ret != 0)) | 918 | if (unlikely(ret != 0)) |
921 | goto out_put_key1; | 919 | goto out_put_key1; |
922 | 920 | ||
@@ -1175,11 +1173,10 @@ retry: | |||
1175 | pi_state = NULL; | 1173 | pi_state = NULL; |
1176 | } | 1174 | } |
1177 | 1175 | ||
1178 | ret = get_futex_key(uaddr1, fshared, &key1, VERIFY_READ); | 1176 | ret = get_futex_key(uaddr1, fshared, &key1); |
1179 | if (unlikely(ret != 0)) | 1177 | if (unlikely(ret != 0)) |
1180 | goto out; | 1178 | goto out; |
1181 | ret = get_futex_key(uaddr2, fshared, &key2, | 1179 | ret = get_futex_key(uaddr2, fshared, &key2); |
1182 | requeue_pi ? VERIFY_WRITE : VERIFY_READ); | ||
1183 | if (unlikely(ret != 0)) | 1180 | if (unlikely(ret != 0)) |
1184 | goto out_put_key1; | 1181 | goto out_put_key1; |
1185 | 1182 | ||
@@ -1738,7 +1735,7 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, int fshared, | |||
1738 | */ | 1735 | */ |
1739 | retry: | 1736 | retry: |
1740 | q->key = FUTEX_KEY_INIT; | 1737 | q->key = FUTEX_KEY_INIT; |
1741 | ret = get_futex_key(uaddr, fshared, &q->key, VERIFY_READ); | 1738 | ret = get_futex_key(uaddr, fshared, &q->key); |
1742 | if (unlikely(ret != 0)) | 1739 | if (unlikely(ret != 0)) |
1743 | return ret; | 1740 | return ret; |
1744 | 1741 | ||
@@ -1904,7 +1901,7 @@ static int futex_lock_pi(u32 __user *uaddr, int fshared, | |||
1904 | q.requeue_pi_key = NULL; | 1901 | q.requeue_pi_key = NULL; |
1905 | retry: | 1902 | retry: |
1906 | q.key = FUTEX_KEY_INIT; | 1903 | q.key = FUTEX_KEY_INIT; |
1907 | ret = get_futex_key(uaddr, fshared, &q.key, VERIFY_WRITE); | 1904 | ret = get_futex_key(uaddr, fshared, &q.key); |
1908 | if (unlikely(ret != 0)) | 1905 | if (unlikely(ret != 0)) |
1909 | goto out; | 1906 | goto out; |
1910 | 1907 | ||
@@ -2023,7 +2020,7 @@ retry: | |||
2023 | if ((uval & FUTEX_TID_MASK) != task_pid_vnr(current)) | 2020 | if ((uval & FUTEX_TID_MASK) != task_pid_vnr(current)) |
2024 | return -EPERM; | 2021 | return -EPERM; |
2025 | 2022 | ||
2026 | ret = get_futex_key(uaddr, fshared, &key, VERIFY_WRITE); | 2023 | ret = get_futex_key(uaddr, fshared, &key); |
2027 | if (unlikely(ret != 0)) | 2024 | if (unlikely(ret != 0)) |
2028 | goto out; | 2025 | goto out; |
2029 | 2026 | ||
@@ -2215,7 +2212,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, int fshared, | |||
2215 | rt_waiter.task = NULL; | 2212 | rt_waiter.task = NULL; |
2216 | 2213 | ||
2217 | key2 = FUTEX_KEY_INIT; | 2214 | key2 = FUTEX_KEY_INIT; |
2218 | ret = get_futex_key(uaddr2, fshared, &key2, VERIFY_WRITE); | 2215 | ret = get_futex_key(uaddr2, fshared, &key2); |
2219 | if (unlikely(ret != 0)) | 2216 | if (unlikely(ret != 0)) |
2220 | goto out; | 2217 | goto out; |
2221 | 2218 | ||
diff --git a/kernel/hw_breakpoint.c b/kernel/hw_breakpoint.c index dbcbf6a33a0..50dbd599958 100644 --- a/kernel/hw_breakpoint.c +++ b/kernel/hw_breakpoint.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <linux/percpu.h> | 40 | #include <linux/percpu.h> |
41 | #include <linux/sched.h> | 41 | #include <linux/sched.h> |
42 | #include <linux/init.h> | 42 | #include <linux/init.h> |
43 | #include <linux/cpu.h> | ||
43 | #include <linux/smp.h> | 44 | #include <linux/smp.h> |
44 | 45 | ||
45 | #include <linux/hw_breakpoint.h> | 46 | #include <linux/hw_breakpoint.h> |
@@ -388,7 +389,8 @@ register_wide_hw_breakpoint(struct perf_event_attr *attr, | |||
388 | if (!cpu_events) | 389 | if (!cpu_events) |
389 | return ERR_PTR(-ENOMEM); | 390 | return ERR_PTR(-ENOMEM); |
390 | 391 | ||
391 | for_each_possible_cpu(cpu) { | 392 | get_online_cpus(); |
393 | for_each_online_cpu(cpu) { | ||
392 | pevent = per_cpu_ptr(cpu_events, cpu); | 394 | pevent = per_cpu_ptr(cpu_events, cpu); |
393 | bp = perf_event_create_kernel_counter(attr, cpu, -1, triggered); | 395 | bp = perf_event_create_kernel_counter(attr, cpu, -1, triggered); |
394 | 396 | ||
@@ -399,18 +401,20 @@ register_wide_hw_breakpoint(struct perf_event_attr *attr, | |||
399 | goto fail; | 401 | goto fail; |
400 | } | 402 | } |
401 | } | 403 | } |
404 | put_online_cpus(); | ||
402 | 405 | ||
403 | return cpu_events; | 406 | return cpu_events; |
404 | 407 | ||
405 | fail: | 408 | fail: |
406 | for_each_possible_cpu(cpu) { | 409 | for_each_online_cpu(cpu) { |
407 | pevent = per_cpu_ptr(cpu_events, cpu); | 410 | pevent = per_cpu_ptr(cpu_events, cpu); |
408 | if (IS_ERR(*pevent)) | 411 | if (IS_ERR(*pevent)) |
409 | break; | 412 | break; |
410 | unregister_hw_breakpoint(*pevent); | 413 | unregister_hw_breakpoint(*pevent); |
411 | } | 414 | } |
415 | put_online_cpus(); | ||
416 | |||
412 | free_percpu(cpu_events); | 417 | free_percpu(cpu_events); |
413 | /* return the error if any */ | ||
414 | return ERR_PTR(err); | 418 | return ERR_PTR(err); |
415 | } | 419 | } |
416 | EXPORT_SYMBOL_GPL(register_wide_hw_breakpoint); | 420 | EXPORT_SYMBOL_GPL(register_wide_hw_breakpoint); |
diff --git a/kernel/kfifo.c b/kernel/kfifo.c index e92d519f93b..32c5c15d750 100644 --- a/kernel/kfifo.c +++ b/kernel/kfifo.c | |||
@@ -28,7 +28,7 @@ | |||
28 | #include <linux/log2.h> | 28 | #include <linux/log2.h> |
29 | #include <linux/uaccess.h> | 29 | #include <linux/uaccess.h> |
30 | 30 | ||
31 | static void _kfifo_init(struct kfifo *fifo, unsigned char *buffer, | 31 | static void _kfifo_init(struct kfifo *fifo, void *buffer, |
32 | unsigned int size) | 32 | unsigned int size) |
33 | { | 33 | { |
34 | fifo->buffer = buffer; | 34 | fifo->buffer = buffer; |
@@ -41,10 +41,10 @@ static void _kfifo_init(struct kfifo *fifo, unsigned char *buffer, | |||
41 | * kfifo_init - initialize a FIFO using a preallocated buffer | 41 | * kfifo_init - initialize a FIFO using a preallocated buffer |
42 | * @fifo: the fifo to assign the buffer | 42 | * @fifo: the fifo to assign the buffer |
43 | * @buffer: the preallocated buffer to be used. | 43 | * @buffer: the preallocated buffer to be used. |
44 | * @size: the size of the internal buffer, this have to be a power of 2. | 44 | * @size: the size of the internal buffer, this has to be a power of 2. |
45 | * | 45 | * |
46 | */ | 46 | */ |
47 | void kfifo_init(struct kfifo *fifo, unsigned char *buffer, unsigned int size) | 47 | void kfifo_init(struct kfifo *fifo, void *buffer, unsigned int size) |
48 | { | 48 | { |
49 | /* size must be a power of 2 */ | 49 | /* size must be a power of 2 */ |
50 | BUG_ON(!is_power_of_2(size)); | 50 | BUG_ON(!is_power_of_2(size)); |
@@ -159,8 +159,9 @@ static inline void __kfifo_out_data(struct kfifo *fifo, | |||
159 | memcpy(to + l, fifo->buffer, len - l); | 159 | memcpy(to + l, fifo->buffer, len - l); |
160 | } | 160 | } |
161 | 161 | ||
162 | static inline unsigned int __kfifo_from_user_data(struct kfifo *fifo, | 162 | static inline int __kfifo_from_user_data(struct kfifo *fifo, |
163 | const void __user *from, unsigned int len, unsigned int off) | 163 | const void __user *from, unsigned int len, unsigned int off, |
164 | unsigned *lenout) | ||
164 | { | 165 | { |
165 | unsigned int l; | 166 | unsigned int l; |
166 | int ret; | 167 | int ret; |
@@ -177,16 +178,20 @@ static inline unsigned int __kfifo_from_user_data(struct kfifo *fifo, | |||
177 | /* first put the data starting from fifo->in to buffer end */ | 178 | /* first put the data starting from fifo->in to buffer end */ |
178 | l = min(len, fifo->size - off); | 179 | l = min(len, fifo->size - off); |
179 | ret = copy_from_user(fifo->buffer + off, from, l); | 180 | ret = copy_from_user(fifo->buffer + off, from, l); |
180 | 181 | if (unlikely(ret)) { | |
181 | if (unlikely(ret)) | 182 | *lenout = ret; |
182 | return ret + len - l; | 183 | return -EFAULT; |
184 | } | ||
185 | *lenout = l; | ||
183 | 186 | ||
184 | /* then put the rest (if any) at the beginning of the buffer */ | 187 | /* then put the rest (if any) at the beginning of the buffer */ |
185 | return copy_from_user(fifo->buffer, from + l, len - l); | 188 | ret = copy_from_user(fifo->buffer, from + l, len - l); |
189 | *lenout += ret ? ret : len - l; | ||
190 | return ret ? -EFAULT : 0; | ||
186 | } | 191 | } |
187 | 192 | ||
188 | static inline unsigned int __kfifo_to_user_data(struct kfifo *fifo, | 193 | static inline int __kfifo_to_user_data(struct kfifo *fifo, |
189 | void __user *to, unsigned int len, unsigned int off) | 194 | void __user *to, unsigned int len, unsigned int off, unsigned *lenout) |
190 | { | 195 | { |
191 | unsigned int l; | 196 | unsigned int l; |
192 | int ret; | 197 | int ret; |
@@ -203,12 +208,21 @@ static inline unsigned int __kfifo_to_user_data(struct kfifo *fifo, | |||
203 | /* first get the data from fifo->out until the end of the buffer */ | 208 | /* first get the data from fifo->out until the end of the buffer */ |
204 | l = min(len, fifo->size - off); | 209 | l = min(len, fifo->size - off); |
205 | ret = copy_to_user(to, fifo->buffer + off, l); | 210 | ret = copy_to_user(to, fifo->buffer + off, l); |
206 | 211 | *lenout = l; | |
207 | if (unlikely(ret)) | 212 | if (unlikely(ret)) { |
208 | return ret + len - l; | 213 | *lenout -= ret; |
214 | return -EFAULT; | ||
215 | } | ||
209 | 216 | ||
210 | /* then get the rest (if any) from the beginning of the buffer */ | 217 | /* then get the rest (if any) from the beginning of the buffer */ |
211 | return copy_to_user(to + l, fifo->buffer, len - l); | 218 | len -= l; |
219 | ret = copy_to_user(to + l, fifo->buffer, len); | ||
220 | if (unlikely(ret)) { | ||
221 | *lenout += len - ret; | ||
222 | return -EFAULT; | ||
223 | } | ||
224 | *lenout += len; | ||
225 | return 0; | ||
212 | } | 226 | } |
213 | 227 | ||
214 | unsigned int __kfifo_in_n(struct kfifo *fifo, | 228 | unsigned int __kfifo_in_n(struct kfifo *fifo, |
@@ -235,7 +249,7 @@ EXPORT_SYMBOL(__kfifo_in_n); | |||
235 | * Note that with only one concurrent reader and one concurrent | 249 | * Note that with only one concurrent reader and one concurrent |
236 | * writer, you don't need extra locking to use these functions. | 250 | * writer, you don't need extra locking to use these functions. |
237 | */ | 251 | */ |
238 | unsigned int kfifo_in(struct kfifo *fifo, const unsigned char *from, | 252 | unsigned int kfifo_in(struct kfifo *fifo, const void *from, |
239 | unsigned int len) | 253 | unsigned int len) |
240 | { | 254 | { |
241 | len = min(kfifo_avail(fifo), len); | 255 | len = min(kfifo_avail(fifo), len); |
@@ -277,7 +291,7 @@ EXPORT_SYMBOL(__kfifo_out_n); | |||
277 | * Note that with only one concurrent reader and one concurrent | 291 | * Note that with only one concurrent reader and one concurrent |
278 | * writer, you don't need extra locking to use these functions. | 292 | * writer, you don't need extra locking to use these functions. |
279 | */ | 293 | */ |
280 | unsigned int kfifo_out(struct kfifo *fifo, unsigned char *to, unsigned int len) | 294 | unsigned int kfifo_out(struct kfifo *fifo, void *to, unsigned int len) |
281 | { | 295 | { |
282 | len = min(kfifo_len(fifo), len); | 296 | len = min(kfifo_len(fifo), len); |
283 | 297 | ||
@@ -288,6 +302,27 @@ unsigned int kfifo_out(struct kfifo *fifo, unsigned char *to, unsigned int len) | |||
288 | } | 302 | } |
289 | EXPORT_SYMBOL(kfifo_out); | 303 | EXPORT_SYMBOL(kfifo_out); |
290 | 304 | ||
305 | /** | ||
306 | * kfifo_out_peek - copy some data from the FIFO, but do not remove it | ||
307 | * @fifo: the fifo to be used. | ||
308 | * @to: where the data must be copied. | ||
309 | * @len: the size of the destination buffer. | ||
310 | * @offset: offset into the fifo | ||
311 | * | ||
312 | * This function copies at most @len bytes at @offset from the FIFO | ||
313 | * into the @to buffer and returns the number of copied bytes. | ||
314 | * The data is not removed from the FIFO. | ||
315 | */ | ||
316 | unsigned int kfifo_out_peek(struct kfifo *fifo, void *to, unsigned int len, | ||
317 | unsigned offset) | ||
318 | { | ||
319 | len = min(kfifo_len(fifo), len + offset); | ||
320 | |||
321 | __kfifo_out_data(fifo, to, len, offset); | ||
322 | return len; | ||
323 | } | ||
324 | EXPORT_SYMBOL(kfifo_out_peek); | ||
325 | |||
291 | unsigned int __kfifo_out_generic(struct kfifo *fifo, | 326 | unsigned int __kfifo_out_generic(struct kfifo *fifo, |
292 | void *to, unsigned int len, unsigned int recsize, | 327 | void *to, unsigned int len, unsigned int recsize, |
293 | unsigned int *total) | 328 | unsigned int *total) |
@@ -299,10 +334,13 @@ EXPORT_SYMBOL(__kfifo_out_generic); | |||
299 | unsigned int __kfifo_from_user_n(struct kfifo *fifo, | 334 | unsigned int __kfifo_from_user_n(struct kfifo *fifo, |
300 | const void __user *from, unsigned int len, unsigned int recsize) | 335 | const void __user *from, unsigned int len, unsigned int recsize) |
301 | { | 336 | { |
337 | unsigned total; | ||
338 | |||
302 | if (kfifo_avail(fifo) < len + recsize) | 339 | if (kfifo_avail(fifo) < len + recsize) |
303 | return len + 1; | 340 | return len + 1; |
304 | 341 | ||
305 | return __kfifo_from_user_data(fifo, from, len, recsize); | 342 | __kfifo_from_user_data(fifo, from, len, recsize, &total); |
343 | return total; | ||
306 | } | 344 | } |
307 | EXPORT_SYMBOL(__kfifo_from_user_n); | 345 | EXPORT_SYMBOL(__kfifo_from_user_n); |
308 | 346 | ||
@@ -313,18 +351,21 @@ EXPORT_SYMBOL(__kfifo_from_user_n); | |||
313 | * @len: the length of the data to be added. | 351 | * @len: the length of the data to be added. |
314 | * | 352 | * |
315 | * This function copies at most @len bytes from the @from into the | 353 | * This function copies at most @len bytes from the @from into the |
316 | * FIFO depending and returns the number of copied bytes. | 354 | * FIFO depending and returns -EFAULT/0. |
317 | * | 355 | * |
318 | * Note that with only one concurrent reader and one concurrent | 356 | * Note that with only one concurrent reader and one concurrent |
319 | * writer, you don't need extra locking to use these functions. | 357 | * writer, you don't need extra locking to use these functions. |
320 | */ | 358 | */ |
321 | unsigned int kfifo_from_user(struct kfifo *fifo, | 359 | int kfifo_from_user(struct kfifo *fifo, |
322 | const void __user *from, unsigned int len) | 360 | const void __user *from, unsigned int len, unsigned *total) |
323 | { | 361 | { |
362 | int ret; | ||
324 | len = min(kfifo_avail(fifo), len); | 363 | len = min(kfifo_avail(fifo), len); |
325 | len -= __kfifo_from_user_data(fifo, from, len, 0); | 364 | ret = __kfifo_from_user_data(fifo, from, len, 0, total); |
365 | if (ret) | ||
366 | return ret; | ||
326 | __kfifo_add_in(fifo, len); | 367 | __kfifo_add_in(fifo, len); |
327 | return len; | 368 | return 0; |
328 | } | 369 | } |
329 | EXPORT_SYMBOL(kfifo_from_user); | 370 | EXPORT_SYMBOL(kfifo_from_user); |
330 | 371 | ||
@@ -339,17 +380,17 @@ unsigned int __kfifo_to_user_n(struct kfifo *fifo, | |||
339 | void __user *to, unsigned int len, unsigned int reclen, | 380 | void __user *to, unsigned int len, unsigned int reclen, |
340 | unsigned int recsize) | 381 | unsigned int recsize) |
341 | { | 382 | { |
342 | unsigned int ret; | 383 | unsigned int ret, total; |
343 | 384 | ||
344 | if (kfifo_len(fifo) < reclen + recsize) | 385 | if (kfifo_len(fifo) < reclen + recsize) |
345 | return len; | 386 | return len; |
346 | 387 | ||
347 | ret = __kfifo_to_user_data(fifo, to, reclen, recsize); | 388 | ret = __kfifo_to_user_data(fifo, to, reclen, recsize, &total); |
348 | 389 | ||
349 | if (likely(ret == 0)) | 390 | if (likely(ret == 0)) |
350 | __kfifo_add_out(fifo, reclen + recsize); | 391 | __kfifo_add_out(fifo, reclen + recsize); |
351 | 392 | ||
352 | return ret; | 393 | return total; |
353 | } | 394 | } |
354 | EXPORT_SYMBOL(__kfifo_to_user_n); | 395 | EXPORT_SYMBOL(__kfifo_to_user_n); |
355 | 396 | ||
@@ -358,20 +399,22 @@ EXPORT_SYMBOL(__kfifo_to_user_n); | |||
358 | * @fifo: the fifo to be used. | 399 | * @fifo: the fifo to be used. |
359 | * @to: where the data must be copied. | 400 | * @to: where the data must be copied. |
360 | * @len: the size of the destination buffer. | 401 | * @len: the size of the destination buffer. |
402 | @ @lenout: pointer to output variable with copied data | ||
361 | * | 403 | * |
362 | * This function copies at most @len bytes from the FIFO into the | 404 | * This function copies at most @len bytes from the FIFO into the |
363 | * @to buffer and returns the number of copied bytes. | 405 | * @to buffer and 0 or -EFAULT. |
364 | * | 406 | * |
365 | * Note that with only one concurrent reader and one concurrent | 407 | * Note that with only one concurrent reader and one concurrent |
366 | * writer, you don't need extra locking to use these functions. | 408 | * writer, you don't need extra locking to use these functions. |
367 | */ | 409 | */ |
368 | unsigned int kfifo_to_user(struct kfifo *fifo, | 410 | int kfifo_to_user(struct kfifo *fifo, |
369 | void __user *to, unsigned int len) | 411 | void __user *to, unsigned int len, unsigned *lenout) |
370 | { | 412 | { |
413 | int ret; | ||
371 | len = min(kfifo_len(fifo), len); | 414 | len = min(kfifo_len(fifo), len); |
372 | len -= __kfifo_to_user_data(fifo, to, len, 0); | 415 | ret = __kfifo_to_user_data(fifo, to, len, 0, lenout); |
373 | __kfifo_add_out(fifo, len); | 416 | __kfifo_add_out(fifo, *lenout); |
374 | return len; | 417 | return ret; |
375 | } | 418 | } |
376 | EXPORT_SYMBOL(kfifo_to_user); | 419 | EXPORT_SYMBOL(kfifo_to_user); |
377 | 420 | ||
diff --git a/kernel/kmod.c b/kernel/kmod.c index 25b10319036..bf0e231d970 100644 --- a/kernel/kmod.c +++ b/kernel/kmod.c | |||
@@ -520,13 +520,15 @@ int call_usermodehelper_pipe(char *path, char **argv, char **envp, | |||
520 | return -ENOMEM; | 520 | return -ENOMEM; |
521 | 521 | ||
522 | ret = call_usermodehelper_stdinpipe(sub_info, filp); | 522 | ret = call_usermodehelper_stdinpipe(sub_info, filp); |
523 | if (ret < 0) | 523 | if (ret < 0) { |
524 | goto out; | 524 | call_usermodehelper_freeinfo(sub_info); |
525 | return ret; | ||
526 | } | ||
525 | 527 | ||
526 | return call_usermodehelper_exec(sub_info, UMH_WAIT_EXEC); | 528 | ret = call_usermodehelper_exec(sub_info, UMH_WAIT_EXEC); |
529 | if (ret < 0) /* Failed to execute helper, close pipe */ | ||
530 | filp_close(*filp, NULL); | ||
527 | 531 | ||
528 | out: | ||
529 | call_usermodehelper_freeinfo(sub_info); | ||
530 | return ret; | 532 | return ret; |
531 | } | 533 | } |
532 | EXPORT_SYMBOL(call_usermodehelper_pipe); | 534 | EXPORT_SYMBOL(call_usermodehelper_pipe); |
diff --git a/kernel/kprobes.c b/kernel/kprobes.c index e5342a344c4..b7df302a020 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c | |||
@@ -1035,7 +1035,7 @@ int __kprobes register_kretprobe(struct kretprobe *rp) | |||
1035 | /* Pre-allocate memory for max kretprobe instances */ | 1035 | /* Pre-allocate memory for max kretprobe instances */ |
1036 | if (rp->maxactive <= 0) { | 1036 | if (rp->maxactive <= 0) { |
1037 | #ifdef CONFIG_PREEMPT | 1037 | #ifdef CONFIG_PREEMPT |
1038 | rp->maxactive = max(10, 2 * num_possible_cpus()); | 1038 | rp->maxactive = max_t(unsigned int, 10, 2*num_possible_cpus()); |
1039 | #else | 1039 | #else |
1040 | rp->maxactive = num_possible_cpus(); | 1040 | rp->maxactive = num_possible_cpus(); |
1041 | #endif | 1041 | #endif |
diff --git a/kernel/module.c b/kernel/module.c index e96b8ed1cb6..f82386bd9ee 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -1010,6 +1010,12 @@ static const struct kernel_symbol *resolve_symbol(Elf_Shdr *sechdrs, | |||
1010 | * J. Corbet <corbet@lwn.net> | 1010 | * J. Corbet <corbet@lwn.net> |
1011 | */ | 1011 | */ |
1012 | #if defined(CONFIG_KALLSYMS) && defined(CONFIG_SYSFS) | 1012 | #if defined(CONFIG_KALLSYMS) && defined(CONFIG_SYSFS) |
1013 | |||
1014 | static inline bool sect_empty(const Elf_Shdr *sect) | ||
1015 | { | ||
1016 | return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0; | ||
1017 | } | ||
1018 | |||
1013 | struct module_sect_attr | 1019 | struct module_sect_attr |
1014 | { | 1020 | { |
1015 | struct module_attribute mattr; | 1021 | struct module_attribute mattr; |
@@ -1051,8 +1057,7 @@ static void add_sect_attrs(struct module *mod, unsigned int nsect, | |||
1051 | 1057 | ||
1052 | /* Count loaded sections and allocate structures */ | 1058 | /* Count loaded sections and allocate structures */ |
1053 | for (i = 0; i < nsect; i++) | 1059 | for (i = 0; i < nsect; i++) |
1054 | if (sechdrs[i].sh_flags & SHF_ALLOC | 1060 | if (!sect_empty(&sechdrs[i])) |
1055 | && sechdrs[i].sh_size) | ||
1056 | nloaded++; | 1061 | nloaded++; |
1057 | size[0] = ALIGN(sizeof(*sect_attrs) | 1062 | size[0] = ALIGN(sizeof(*sect_attrs) |
1058 | + nloaded * sizeof(sect_attrs->attrs[0]), | 1063 | + nloaded * sizeof(sect_attrs->attrs[0]), |
@@ -1070,9 +1075,7 @@ static void add_sect_attrs(struct module *mod, unsigned int nsect, | |||
1070 | sattr = §_attrs->attrs[0]; | 1075 | sattr = §_attrs->attrs[0]; |
1071 | gattr = §_attrs->grp.attrs[0]; | 1076 | gattr = §_attrs->grp.attrs[0]; |
1072 | for (i = 0; i < nsect; i++) { | 1077 | for (i = 0; i < nsect; i++) { |
1073 | if (! (sechdrs[i].sh_flags & SHF_ALLOC)) | 1078 | if (sect_empty(&sechdrs[i])) |
1074 | continue; | ||
1075 | if (!sechdrs[i].sh_size) | ||
1076 | continue; | 1079 | continue; |
1077 | sattr->address = sechdrs[i].sh_addr; | 1080 | sattr->address = sechdrs[i].sh_addr; |
1078 | sattr->name = kstrdup(secstrings + sechdrs[i].sh_name, | 1081 | sattr->name = kstrdup(secstrings + sechdrs[i].sh_name, |
@@ -1156,7 +1159,7 @@ static void add_notes_attrs(struct module *mod, unsigned int nsect, | |||
1156 | /* Count notes sections and allocate structures. */ | 1159 | /* Count notes sections and allocate structures. */ |
1157 | notes = 0; | 1160 | notes = 0; |
1158 | for (i = 0; i < nsect; i++) | 1161 | for (i = 0; i < nsect; i++) |
1159 | if ((sechdrs[i].sh_flags & SHF_ALLOC) && | 1162 | if (!sect_empty(&sechdrs[i]) && |
1160 | (sechdrs[i].sh_type == SHT_NOTE)) | 1163 | (sechdrs[i].sh_type == SHT_NOTE)) |
1161 | ++notes; | 1164 | ++notes; |
1162 | 1165 | ||
@@ -1172,7 +1175,7 @@ static void add_notes_attrs(struct module *mod, unsigned int nsect, | |||
1172 | notes_attrs->notes = notes; | 1175 | notes_attrs->notes = notes; |
1173 | nattr = ¬es_attrs->attrs[0]; | 1176 | nattr = ¬es_attrs->attrs[0]; |
1174 | for (loaded = i = 0; i < nsect; ++i) { | 1177 | for (loaded = i = 0; i < nsect; ++i) { |
1175 | if (!(sechdrs[i].sh_flags & SHF_ALLOC)) | 1178 | if (sect_empty(&sechdrs[i])) |
1176 | continue; | 1179 | continue; |
1177 | if (sechdrs[i].sh_type == SHT_NOTE) { | 1180 | if (sechdrs[i].sh_type == SHT_NOTE) { |
1178 | nattr->attr.name = mod->sect_attrs->attrs[loaded].name; | 1181 | nattr->attr.name = mod->sect_attrs->attrs[loaded].name; |
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index 1f38270f08c..d27746bd3a0 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c | |||
@@ -3268,6 +3268,9 @@ static void perf_event_task_output(struct perf_event *event, | |||
3268 | 3268 | ||
3269 | static int perf_event_task_match(struct perf_event *event) | 3269 | static int perf_event_task_match(struct perf_event *event) |
3270 | { | 3270 | { |
3271 | if (event->state != PERF_EVENT_STATE_ACTIVE) | ||
3272 | return 0; | ||
3273 | |||
3271 | if (event->cpu != -1 && event->cpu != smp_processor_id()) | 3274 | if (event->cpu != -1 && event->cpu != smp_processor_id()) |
3272 | return 0; | 3275 | return 0; |
3273 | 3276 | ||
@@ -3377,6 +3380,9 @@ static void perf_event_comm_output(struct perf_event *event, | |||
3377 | 3380 | ||
3378 | static int perf_event_comm_match(struct perf_event *event) | 3381 | static int perf_event_comm_match(struct perf_event *event) |
3379 | { | 3382 | { |
3383 | if (event->state != PERF_EVENT_STATE_ACTIVE) | ||
3384 | return 0; | ||
3385 | |||
3380 | if (event->cpu != -1 && event->cpu != smp_processor_id()) | 3386 | if (event->cpu != -1 && event->cpu != smp_processor_id()) |
3381 | return 0; | 3387 | return 0; |
3382 | 3388 | ||
@@ -3494,6 +3500,9 @@ static void perf_event_mmap_output(struct perf_event *event, | |||
3494 | static int perf_event_mmap_match(struct perf_event *event, | 3500 | static int perf_event_mmap_match(struct perf_event *event, |
3495 | struct perf_mmap_event *mmap_event) | 3501 | struct perf_mmap_event *mmap_event) |
3496 | { | 3502 | { |
3503 | if (event->state != PERF_EVENT_STATE_ACTIVE) | ||
3504 | return 0; | ||
3505 | |||
3497 | if (event->cpu != -1 && event->cpu != smp_processor_id()) | 3506 | if (event->cpu != -1 && event->cpu != smp_processor_id()) |
3498 | return 0; | 3507 | return 0; |
3499 | 3508 | ||
@@ -5148,7 +5157,7 @@ int perf_event_init_task(struct task_struct *child) | |||
5148 | GFP_KERNEL); | 5157 | GFP_KERNEL); |
5149 | if (!child_ctx) { | 5158 | if (!child_ctx) { |
5150 | ret = -ENOMEM; | 5159 | ret = -ENOMEM; |
5151 | goto exit; | 5160 | break; |
5152 | } | 5161 | } |
5153 | 5162 | ||
5154 | __perf_event_init_context(child_ctx, child); | 5163 | __perf_event_init_context(child_ctx, child); |
@@ -5164,7 +5173,7 @@ int perf_event_init_task(struct task_struct *child) | |||
5164 | } | 5173 | } |
5165 | } | 5174 | } |
5166 | 5175 | ||
5167 | if (inherited_all) { | 5176 | if (child_ctx && inherited_all) { |
5168 | /* | 5177 | /* |
5169 | * Mark the child context as a clone of the parent | 5178 | * Mark the child context as a clone of the parent |
5170 | * context, or of whatever the parent is a clone of. | 5179 | * context, or of whatever the parent is a clone of. |
@@ -5184,7 +5193,6 @@ int perf_event_init_task(struct task_struct *child) | |||
5184 | get_ctx(child_ctx->parent_ctx); | 5193 | get_ctx(child_ctx->parent_ctx); |
5185 | } | 5194 | } |
5186 | 5195 | ||
5187 | exit: | ||
5188 | mutex_unlock(&parent_ctx->mutex); | 5196 | mutex_unlock(&parent_ctx->mutex); |
5189 | 5197 | ||
5190 | perf_unpin_context(parent_ctx); | 5198 | perf_unpin_context(parent_ctx); |
diff --git a/kernel/sched.c b/kernel/sched.c index c535cc4f642..4508fe7048b 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -5530,8 +5530,11 @@ need_resched_nonpreemptible: | |||
5530 | 5530 | ||
5531 | post_schedule(rq); | 5531 | post_schedule(rq); |
5532 | 5532 | ||
5533 | if (unlikely(reacquire_kernel_lock(current) < 0)) | 5533 | if (unlikely(reacquire_kernel_lock(current) < 0)) { |
5534 | prev = rq->curr; | ||
5535 | switch_count = &prev->nivcsw; | ||
5534 | goto need_resched_nonpreemptible; | 5536 | goto need_resched_nonpreemptible; |
5537 | } | ||
5535 | 5538 | ||
5536 | preempt_enable_no_resched(); | 5539 | preempt_enable_no_resched(); |
5537 | if (need_resched()) | 5540 | if (need_resched()) |
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 42ac3c9f66f..8fe7ee81c55 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
@@ -1508,7 +1508,7 @@ static int select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flag | |||
1508 | * If there's an idle sibling in this domain, make that | 1508 | * If there's an idle sibling in this domain, make that |
1509 | * the wake_affine target instead of the current cpu. | 1509 | * the wake_affine target instead of the current cpu. |
1510 | */ | 1510 | */ |
1511 | if (tmp->flags & SD_PREFER_SIBLING) | 1511 | if (tmp->flags & SD_SHARE_PKG_RESOURCES) |
1512 | target = select_idle_sibling(p, tmp, target); | 1512 | target = select_idle_sibling(p, tmp, target); |
1513 | 1513 | ||
1514 | if (target >= 0) { | 1514 | if (target >= 0) { |
diff --git a/kernel/signal.c b/kernel/signal.c index d09692b4037..934ae5e687b 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -979,7 +979,8 @@ static void print_fatal_signal(struct pt_regs *regs, int signr) | |||
979 | for (i = 0; i < 16; i++) { | 979 | for (i = 0; i < 16; i++) { |
980 | unsigned char insn; | 980 | unsigned char insn; |
981 | 981 | ||
982 | __get_user(insn, (unsigned char *)(regs->ip + i)); | 982 | if (get_user(insn, (unsigned char *)(regs->ip + i))) |
983 | break; | ||
983 | printk("%02x ", insn); | 984 | printk("%02x ", insn); |
984 | } | 985 | } |
985 | } | 986 | } |
diff --git a/kernel/smp.c b/kernel/smp.c index de735a6637d..f1040842244 100644 --- a/kernel/smp.c +++ b/kernel/smp.c | |||
@@ -347,7 +347,7 @@ int smp_call_function_any(const struct cpumask *mask, | |||
347 | goto call; | 347 | goto call; |
348 | 348 | ||
349 | /* Try for same node. */ | 349 | /* Try for same node. */ |
350 | nodemask = cpumask_of_node(cpu); | 350 | nodemask = cpumask_of_node(cpu_to_node(cpu)); |
351 | for (cpu = cpumask_first_and(nodemask, mask); cpu < nr_cpu_ids; | 351 | for (cpu = cpumask_first_and(nodemask, mask); cpu < nr_cpu_ids; |
352 | cpu = cpumask_next_and(cpu, nodemask, mask)) { | 352 | cpu = cpumask_next_and(cpu, nodemask, mask)) { |
353 | if (cpu_online(cpu)) | 353 | if (cpu_online(cpu)) |
diff --git a/kernel/timer.c b/kernel/timer.c index 15533b79239..c61a7949387 100644 --- a/kernel/timer.c +++ b/kernel/timer.c | |||
@@ -1198,6 +1198,7 @@ void update_process_times(int user_tick) | |||
1198 | run_local_timers(); | 1198 | run_local_timers(); |
1199 | rcu_check_callbacks(cpu, user_tick); | 1199 | rcu_check_callbacks(cpu, user_tick); |
1200 | printk_tick(); | 1200 | printk_tick(); |
1201 | perf_event_do_pending(); | ||
1201 | scheduler_tick(); | 1202 | scheduler_tick(); |
1202 | run_posix_cpu_timers(p); | 1203 | run_posix_cpu_timers(p); |
1203 | } | 1204 | } |
@@ -1209,8 +1210,6 @@ static void run_timer_softirq(struct softirq_action *h) | |||
1209 | { | 1210 | { |
1210 | struct tvec_base *base = __get_cpu_var(tvec_bases); | 1211 | struct tvec_base *base = __get_cpu_var(tvec_bases); |
1211 | 1212 | ||
1212 | perf_event_do_pending(); | ||
1213 | |||
1214 | hrtimer_run_pending(); | 1213 | hrtimer_run_pending(); |
1215 | 1214 | ||
1216 | if (time_after_eq(jiffies, base->timer_jiffies)) | 1215 | if (time_after_eq(jiffies, base->timer_jiffies)) |
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index d006554888d..6c22d8a2f28 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig | |||
@@ -12,17 +12,17 @@ config NOP_TRACER | |||
12 | config HAVE_FTRACE_NMI_ENTER | 12 | config HAVE_FTRACE_NMI_ENTER |
13 | bool | 13 | bool |
14 | help | 14 | help |
15 | See Documentation/trace/ftrace-implementation.txt | 15 | See Documentation/trace/ftrace-design.txt |
16 | 16 | ||
17 | config HAVE_FUNCTION_TRACER | 17 | config HAVE_FUNCTION_TRACER |
18 | bool | 18 | bool |
19 | help | 19 | help |
20 | See Documentation/trace/ftrace-implementation.txt | 20 | See Documentation/trace/ftrace-design.txt |
21 | 21 | ||
22 | config HAVE_FUNCTION_GRAPH_TRACER | 22 | config HAVE_FUNCTION_GRAPH_TRACER |
23 | bool | 23 | bool |
24 | help | 24 | help |
25 | See Documentation/trace/ftrace-implementation.txt | 25 | See Documentation/trace/ftrace-design.txt |
26 | 26 | ||
27 | config HAVE_FUNCTION_GRAPH_FP_TEST | 27 | config HAVE_FUNCTION_GRAPH_FP_TEST |
28 | bool | 28 | bool |
@@ -34,17 +34,17 @@ config HAVE_FUNCTION_GRAPH_FP_TEST | |||
34 | config HAVE_FUNCTION_TRACE_MCOUNT_TEST | 34 | config HAVE_FUNCTION_TRACE_MCOUNT_TEST |
35 | bool | 35 | bool |
36 | help | 36 | help |
37 | See Documentation/trace/ftrace-implementation.txt | 37 | See Documentation/trace/ftrace-design.txt |
38 | 38 | ||
39 | config HAVE_DYNAMIC_FTRACE | 39 | config HAVE_DYNAMIC_FTRACE |
40 | bool | 40 | bool |
41 | help | 41 | help |
42 | See Documentation/trace/ftrace-implementation.txt | 42 | See Documentation/trace/ftrace-design.txt |
43 | 43 | ||
44 | config HAVE_FTRACE_MCOUNT_RECORD | 44 | config HAVE_FTRACE_MCOUNT_RECORD |
45 | bool | 45 | bool |
46 | help | 46 | help |
47 | See Documentation/trace/ftrace-implementation.txt | 47 | See Documentation/trace/ftrace-design.txt |
48 | 48 | ||
49 | config HAVE_HW_BRANCH_TRACER | 49 | config HAVE_HW_BRANCH_TRACER |
50 | bool | 50 | bool |
@@ -52,7 +52,7 @@ config HAVE_HW_BRANCH_TRACER | |||
52 | config HAVE_SYSCALL_TRACEPOINTS | 52 | config HAVE_SYSCALL_TRACEPOINTS |
53 | bool | 53 | bool |
54 | help | 54 | help |
55 | See Documentation/trace/ftrace-implementation.txt | 55 | See Documentation/trace/ftrace-design.txt |
56 | 56 | ||
57 | config TRACER_MAX_TRACE | 57 | config TRACER_MAX_TRACE |
58 | bool | 58 | bool |
@@ -83,7 +83,7 @@ config RING_BUFFER_ALLOW_SWAP | |||
83 | # This allows those options to appear when no other tracer is selected. But the | 83 | # This allows those options to appear when no other tracer is selected. But the |
84 | # options do not appear when something else selects it. We need the two options | 84 | # options do not appear when something else selects it. We need the two options |
85 | # GENERIC_TRACER and TRACING to avoid circular dependencies to accomplish the | 85 | # GENERIC_TRACER and TRACING to avoid circular dependencies to accomplish the |
86 | # hidding of the automatic options. | 86 | # hiding of the automatic options. |
87 | 87 | ||
88 | config TRACING | 88 | config TRACING |
89 | bool | 89 | bool |
@@ -119,7 +119,7 @@ menuconfig FTRACE | |||
119 | bool "Tracers" | 119 | bool "Tracers" |
120 | default y if DEBUG_KERNEL | 120 | default y if DEBUG_KERNEL |
121 | help | 121 | help |
122 | Enable the kernel tracing infrastructure. | 122 | Enable the kernel tracing infrastructure. |
123 | 123 | ||
124 | if FTRACE | 124 | if FTRACE |
125 | 125 | ||
@@ -133,7 +133,7 @@ config FUNCTION_TRACER | |||
133 | help | 133 | help |
134 | Enable the kernel to trace every kernel function. This is done | 134 | Enable the kernel to trace every kernel function. This is done |
135 | by using a compiler feature to insert a small, 5-byte No-Operation | 135 | by using a compiler feature to insert a small, 5-byte No-Operation |
136 | instruction to the beginning of every kernel function, which NOP | 136 | instruction at the beginning of every kernel function, which NOP |
137 | sequence is then dynamically patched into a tracer call when | 137 | sequence is then dynamically patched into a tracer call when |
138 | tracing is enabled by the administrator. If it's runtime disabled | 138 | tracing is enabled by the administrator. If it's runtime disabled |
139 | (the bootup default), then the overhead of the instructions is very | 139 | (the bootup default), then the overhead of the instructions is very |
@@ -150,7 +150,7 @@ config FUNCTION_GRAPH_TRACER | |||
150 | and its entry. | 150 | and its entry. |
151 | Its first purpose is to trace the duration of functions and | 151 | Its first purpose is to trace the duration of functions and |
152 | draw a call graph for each thread with some information like | 152 | draw a call graph for each thread with some information like |
153 | the return value. This is done by setting the current return | 153 | the return value. This is done by setting the current return |
154 | address on the current task structure into a stack of calls. | 154 | address on the current task structure into a stack of calls. |
155 | 155 | ||
156 | 156 | ||
@@ -173,7 +173,7 @@ config IRQSOFF_TRACER | |||
173 | 173 | ||
174 | echo 0 > /sys/kernel/debug/tracing/tracing_max_latency | 174 | echo 0 > /sys/kernel/debug/tracing/tracing_max_latency |
175 | 175 | ||
176 | (Note that kernel size and overhead increases with this option | 176 | (Note that kernel size and overhead increase with this option |
177 | enabled. This option and the preempt-off timing option can be | 177 | enabled. This option and the preempt-off timing option can be |
178 | used together or separately.) | 178 | used together or separately.) |
179 | 179 | ||
@@ -186,7 +186,7 @@ config PREEMPT_TRACER | |||
186 | select TRACER_MAX_TRACE | 186 | select TRACER_MAX_TRACE |
187 | select RING_BUFFER_ALLOW_SWAP | 187 | select RING_BUFFER_ALLOW_SWAP |
188 | help | 188 | help |
189 | This option measures the time spent in preemption off critical | 189 | This option measures the time spent in preemption-off critical |
190 | sections, with microsecond accuracy. | 190 | sections, with microsecond accuracy. |
191 | 191 | ||
192 | The default measurement method is a maximum search, which is | 192 | The default measurement method is a maximum search, which is |
@@ -195,7 +195,7 @@ config PREEMPT_TRACER | |||
195 | 195 | ||
196 | echo 0 > /sys/kernel/debug/tracing/tracing_max_latency | 196 | echo 0 > /sys/kernel/debug/tracing/tracing_max_latency |
197 | 197 | ||
198 | (Note that kernel size and overhead increases with this option | 198 | (Note that kernel size and overhead increase with this option |
199 | enabled. This option and the irqs-off timing option can be | 199 | enabled. This option and the irqs-off timing option can be |
200 | used together or separately.) | 200 | used together or separately.) |
201 | 201 | ||
@@ -222,7 +222,7 @@ config ENABLE_DEFAULT_TRACERS | |||
222 | depends on !GENERIC_TRACER | 222 | depends on !GENERIC_TRACER |
223 | select TRACING | 223 | select TRACING |
224 | help | 224 | help |
225 | This tracer hooks to various trace points in the kernel | 225 | This tracer hooks to various trace points in the kernel, |
226 | allowing the user to pick and choose which trace point they | 226 | allowing the user to pick and choose which trace point they |
227 | want to trace. It also includes the sched_switch tracer plugin. | 227 | want to trace. It also includes the sched_switch tracer plugin. |
228 | 228 | ||
@@ -265,19 +265,19 @@ choice | |||
265 | The likely/unlikely profiler only looks at the conditions that | 265 | The likely/unlikely profiler only looks at the conditions that |
266 | are annotated with a likely or unlikely macro. | 266 | are annotated with a likely or unlikely macro. |
267 | 267 | ||
268 | The "all branch" profiler will profile every if statement in the | 268 | The "all branch" profiler will profile every if-statement in the |
269 | kernel. This profiler will also enable the likely/unlikely | 269 | kernel. This profiler will also enable the likely/unlikely |
270 | profiler as well. | 270 | profiler. |
271 | 271 | ||
272 | Either of the above profilers add a bit of overhead to the system. | 272 | Either of the above profilers adds a bit of overhead to the system. |
273 | If unsure choose "No branch profiling". | 273 | If unsure, choose "No branch profiling". |
274 | 274 | ||
275 | config BRANCH_PROFILE_NONE | 275 | config BRANCH_PROFILE_NONE |
276 | bool "No branch profiling" | 276 | bool "No branch profiling" |
277 | help | 277 | help |
278 | No branch profiling. Branch profiling adds a bit of overhead. | 278 | No branch profiling. Branch profiling adds a bit of overhead. |
279 | Only enable it if you want to analyse the branching behavior. | 279 | Only enable it if you want to analyse the branching behavior. |
280 | Otherwise keep it disabled. | 280 | Otherwise keep it disabled. |
281 | 281 | ||
282 | config PROFILE_ANNOTATED_BRANCHES | 282 | config PROFILE_ANNOTATED_BRANCHES |
283 | bool "Trace likely/unlikely profiler" | 283 | bool "Trace likely/unlikely profiler" |
@@ -288,7 +288,7 @@ config PROFILE_ANNOTATED_BRANCHES | |||
288 | 288 | ||
289 | /sys/kernel/debug/tracing/profile_annotated_branch | 289 | /sys/kernel/debug/tracing/profile_annotated_branch |
290 | 290 | ||
291 | Note: this will add a significant overhead, only turn this | 291 | Note: this will add a significant overhead; only turn this |
292 | on if you need to profile the system's use of these macros. | 292 | on if you need to profile the system's use of these macros. |
293 | 293 | ||
294 | config PROFILE_ALL_BRANCHES | 294 | config PROFILE_ALL_BRANCHES |
@@ -305,7 +305,7 @@ config PROFILE_ALL_BRANCHES | |||
305 | 305 | ||
306 | This configuration, when enabled, will impose a great overhead | 306 | This configuration, when enabled, will impose a great overhead |
307 | on the system. This should only be enabled when the system | 307 | on the system. This should only be enabled when the system |
308 | is to be analyzed | 308 | is to be analyzed in much detail. |
309 | endchoice | 309 | endchoice |
310 | 310 | ||
311 | config TRACING_BRANCHES | 311 | config TRACING_BRANCHES |
@@ -335,7 +335,7 @@ config POWER_TRACER | |||
335 | depends on X86 | 335 | depends on X86 |
336 | select GENERIC_TRACER | 336 | select GENERIC_TRACER |
337 | help | 337 | help |
338 | This tracer helps developers to analyze and optimize the kernels | 338 | This tracer helps developers to analyze and optimize the kernel's |
339 | power management decisions, specifically the C-state and P-state | 339 | power management decisions, specifically the C-state and P-state |
340 | behavior. | 340 | behavior. |
341 | 341 | ||
@@ -391,14 +391,14 @@ config HW_BRANCH_TRACER | |||
391 | select GENERIC_TRACER | 391 | select GENERIC_TRACER |
392 | help | 392 | help |
393 | This tracer records all branches on the system in a circular | 393 | This tracer records all branches on the system in a circular |
394 | buffer giving access to the last N branches for each cpu. | 394 | buffer, giving access to the last N branches for each cpu. |
395 | 395 | ||
396 | config KMEMTRACE | 396 | config KMEMTRACE |
397 | bool "Trace SLAB allocations" | 397 | bool "Trace SLAB allocations" |
398 | select GENERIC_TRACER | 398 | select GENERIC_TRACER |
399 | help | 399 | help |
400 | kmemtrace provides tracing for slab allocator functions, such as | 400 | kmemtrace provides tracing for slab allocator functions, such as |
401 | kmalloc, kfree, kmem_cache_alloc, kmem_cache_free etc.. Collected | 401 | kmalloc, kfree, kmem_cache_alloc, kmem_cache_free, etc. Collected |
402 | data is then fed to the userspace application in order to analyse | 402 | data is then fed to the userspace application in order to analyse |
403 | allocation hotspots, internal fragmentation and so on, making it | 403 | allocation hotspots, internal fragmentation and so on, making it |
404 | possible to see how well an allocator performs, as well as debug | 404 | possible to see how well an allocator performs, as well as debug |
@@ -417,15 +417,15 @@ config WORKQUEUE_TRACER | |||
417 | bool "Trace workqueues" | 417 | bool "Trace workqueues" |
418 | select GENERIC_TRACER | 418 | select GENERIC_TRACER |
419 | help | 419 | help |
420 | The workqueue tracer provides some statistical informations | 420 | The workqueue tracer provides some statistical information |
421 | about each cpu workqueue thread such as the number of the | 421 | about each cpu workqueue thread such as the number of the |
422 | works inserted and executed since their creation. It can help | 422 | works inserted and executed since their creation. It can help |
423 | to evaluate the amount of work each of them have to perform. | 423 | to evaluate the amount of work each of them has to perform. |
424 | For example it can help a developer to decide whether he should | 424 | For example it can help a developer to decide whether he should |
425 | choose a per cpu workqueue instead of a singlethreaded one. | 425 | choose a per-cpu workqueue instead of a singlethreaded one. |
426 | 426 | ||
427 | config BLK_DEV_IO_TRACE | 427 | config BLK_DEV_IO_TRACE |
428 | bool "Support for tracing block io actions" | 428 | bool "Support for tracing block IO actions" |
429 | depends on SYSFS | 429 | depends on SYSFS |
430 | depends on BLOCK | 430 | depends on BLOCK |
431 | select RELAY | 431 | select RELAY |
@@ -456,15 +456,15 @@ config KPROBE_EVENT | |||
456 | select TRACING | 456 | select TRACING |
457 | default y | 457 | default y |
458 | help | 458 | help |
459 | This allows the user to add tracing events (similar to tracepoints) on the fly | 459 | This allows the user to add tracing events (similar to tracepoints) |
460 | via the ftrace interface. See Documentation/trace/kprobetrace.txt | 460 | on the fly via the ftrace interface. See |
461 | for more details. | 461 | Documentation/trace/kprobetrace.txt for more details. |
462 | 462 | ||
463 | Those events can be inserted wherever kprobes can probe, and record | 463 | Those events can be inserted wherever kprobes can probe, and record |
464 | various register and memory values. | 464 | various register and memory values. |
465 | 465 | ||
466 | This option is also required by perf-probe subcommand of perf tools. If | 466 | This option is also required by perf-probe subcommand of perf tools. |
467 | you want to use perf tools, this option is strongly recommended. | 467 | If you want to use perf tools, this option is strongly recommended. |
468 | 468 | ||
469 | config DYNAMIC_FTRACE | 469 | config DYNAMIC_FTRACE |
470 | bool "enable/disable ftrace tracepoints dynamically" | 470 | bool "enable/disable ftrace tracepoints dynamically" |
@@ -472,32 +472,32 @@ config DYNAMIC_FTRACE | |||
472 | depends on HAVE_DYNAMIC_FTRACE | 472 | depends on HAVE_DYNAMIC_FTRACE |
473 | default y | 473 | default y |
474 | help | 474 | help |
475 | This option will modify all the calls to ftrace dynamically | 475 | This option will modify all the calls to ftrace dynamically |
476 | (will patch them out of the binary image and replaces them | 476 | (will patch them out of the binary image and replace them |
477 | with a No-Op instruction) as they are called. A table is | 477 | with a No-Op instruction) as they are called. A table is |
478 | created to dynamically enable them again. | 478 | created to dynamically enable them again. |
479 | 479 | ||
480 | This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but otherwise | 480 | This way a CONFIG_FUNCTION_TRACER kernel is slightly larger, but |
481 | has native performance as long as no tracing is active. | 481 | otherwise has native performance as long as no tracing is active. |
482 | 482 | ||
483 | The changes to the code are done by a kernel thread that | 483 | The changes to the code are done by a kernel thread that |
484 | wakes up once a second and checks to see if any ftrace calls | 484 | wakes up once a second and checks to see if any ftrace calls |
485 | were made. If so, it runs stop_machine (stops all CPUS) | 485 | were made. If so, it runs stop_machine (stops all CPUS) |
486 | and modifies the code to jump over the call to ftrace. | 486 | and modifies the code to jump over the call to ftrace. |
487 | 487 | ||
488 | config FUNCTION_PROFILER | 488 | config FUNCTION_PROFILER |
489 | bool "Kernel function profiler" | 489 | bool "Kernel function profiler" |
490 | depends on FUNCTION_TRACER | 490 | depends on FUNCTION_TRACER |
491 | default n | 491 | default n |
492 | help | 492 | help |
493 | This option enables the kernel function profiler. A file is created | 493 | This option enables the kernel function profiler. A file is created |
494 | in debugfs called function_profile_enabled which defaults to zero. | 494 | in debugfs called function_profile_enabled which defaults to zero. |
495 | When a 1 is echoed into this file profiling begins, and when a | 495 | When a 1 is echoed into this file profiling begins, and when a |
496 | zero is entered, profiling stops. A file in the trace_stats | 496 | zero is entered, profiling stops. A "functions" file is created in |
497 | directory called functions, that show the list of functions that | 497 | the trace_stats directory; this file shows the list of functions that |
498 | have been hit and their counters. | 498 | have been hit and their counters. |
499 | 499 | ||
500 | If in doubt, say N | 500 | If in doubt, say N. |
501 | 501 | ||
502 | config FTRACE_MCOUNT_RECORD | 502 | config FTRACE_MCOUNT_RECORD |
503 | def_bool y | 503 | def_bool y |
@@ -556,8 +556,8 @@ config RING_BUFFER_BENCHMARK | |||
556 | tristate "Ring buffer benchmark stress tester" | 556 | tristate "Ring buffer benchmark stress tester" |
557 | depends on RING_BUFFER | 557 | depends on RING_BUFFER |
558 | help | 558 | help |
559 | This option creates a test to stress the ring buffer and bench mark it. | 559 | This option creates a test to stress the ring buffer and benchmark it. |
560 | It creates its own ring buffer such that it will not interfer with | 560 | It creates its own ring buffer such that it will not interfere with |
561 | any other users of the ring buffer (such as ftrace). It then creates | 561 | any other users of the ring buffer (such as ftrace). It then creates |
562 | a producer and consumer that will run for 10 seconds and sleep for | 562 | a producer and consumer that will run for 10 seconds and sleep for |
563 | 10 seconds. Each interval it will print out the number of events | 563 | 10 seconds. Each interval it will print out the number of events |
@@ -566,7 +566,7 @@ config RING_BUFFER_BENCHMARK | |||
566 | It does not disable interrupts or raise its priority, so it may be | 566 | It does not disable interrupts or raise its priority, so it may be |
567 | affected by processes that are running. | 567 | affected by processes that are running. |
568 | 568 | ||
569 | If unsure, say N | 569 | If unsure, say N. |
570 | 570 | ||
571 | endif # FTRACE | 571 | endif # FTRACE |
572 | 572 | ||
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 7968762c816..1e6640f8045 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
@@ -1690,7 +1690,7 @@ ftrace_regex_lseek(struct file *file, loff_t offset, int origin) | |||
1690 | static int ftrace_match(char *str, char *regex, int len, int type) | 1690 | static int ftrace_match(char *str, char *regex, int len, int type) |
1691 | { | 1691 | { |
1692 | int matched = 0; | 1692 | int matched = 0; |
1693 | char *ptr; | 1693 | int slen; |
1694 | 1694 | ||
1695 | switch (type) { | 1695 | switch (type) { |
1696 | case MATCH_FULL: | 1696 | case MATCH_FULL: |
@@ -1706,8 +1706,8 @@ static int ftrace_match(char *str, char *regex, int len, int type) | |||
1706 | matched = 1; | 1706 | matched = 1; |
1707 | break; | 1707 | break; |
1708 | case MATCH_END_ONLY: | 1708 | case MATCH_END_ONLY: |
1709 | ptr = strstr(str, regex); | 1709 | slen = strlen(str); |
1710 | if (ptr && (ptr[len] == 0)) | 1710 | if (slen >= len && memcmp(str + slen - len, regex, len) == 0) |
1711 | matched = 1; | 1711 | matched = 1; |
1712 | break; | 1712 | break; |
1713 | } | 1713 | } |
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 2326b04c95c..edefe3b2801 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
@@ -2869,7 +2869,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer) | |||
2869 | * Splice the empty reader page into the list around the head. | 2869 | * Splice the empty reader page into the list around the head. |
2870 | */ | 2870 | */ |
2871 | reader = rb_set_head_page(cpu_buffer); | 2871 | reader = rb_set_head_page(cpu_buffer); |
2872 | cpu_buffer->reader_page->list.next = reader->list.next; | 2872 | cpu_buffer->reader_page->list.next = rb_list_head(reader->list.next); |
2873 | cpu_buffer->reader_page->list.prev = reader->list.prev; | 2873 | cpu_buffer->reader_page->list.prev = reader->list.prev; |
2874 | 2874 | ||
2875 | /* | 2875 | /* |
@@ -2906,7 +2906,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer) | |||
2906 | * | 2906 | * |
2907 | * Now make the new head point back to the reader page. | 2907 | * Now make the new head point back to the reader page. |
2908 | */ | 2908 | */ |
2909 | reader->list.next->prev = &cpu_buffer->reader_page->list; | 2909 | rb_list_head(reader->list.next)->prev = &cpu_buffer->reader_page->list; |
2910 | rb_inc_page(cpu_buffer, &cpu_buffer->head_page); | 2910 | rb_inc_page(cpu_buffer, &cpu_buffer->head_page); |
2911 | 2911 | ||
2912 | /* Finally update the reader page to the new head */ | 2912 | /* Finally update the reader page to the new head */ |
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 8b9f20ab8ee..0df1b0f2cb9 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -3949,7 +3949,7 @@ trace_options_write(struct file *filp, const char __user *ubuf, size_t cnt, | |||
3949 | if (!!(topt->flags->val & topt->opt->bit) != val) { | 3949 | if (!!(topt->flags->val & topt->opt->bit) != val) { |
3950 | mutex_lock(&trace_types_lock); | 3950 | mutex_lock(&trace_types_lock); |
3951 | ret = __set_tracer_option(current_trace, topt->flags, | 3951 | ret = __set_tracer_option(current_trace, topt->flags, |
3952 | topt->opt, val); | 3952 | topt->opt, !val); |
3953 | mutex_unlock(&trace_types_lock); | 3953 | mutex_unlock(&trace_types_lock); |
3954 | if (ret) | 3954 | if (ret) |
3955 | return ret; | 3955 | return ret; |
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c index 50504cb228d..e42af9aad69 100644 --- a/kernel/trace/trace_events_filter.c +++ b/kernel/trace/trace_events_filter.c | |||
@@ -211,8 +211,9 @@ static int filter_pred_pchar(struct filter_pred *pred, void *event, | |||
211 | { | 211 | { |
212 | char **addr = (char **)(event + pred->offset); | 212 | char **addr = (char **)(event + pred->offset); |
213 | int cmp, match; | 213 | int cmp, match; |
214 | int len = strlen(*addr) + 1; /* including tailing '\0' */ | ||
214 | 215 | ||
215 | cmp = pred->regex.match(*addr, &pred->regex, pred->regex.field_len); | 216 | cmp = pred->regex.match(*addr, &pred->regex, len); |
216 | 217 | ||
217 | match = cmp ^ pred->not; | 218 | match = cmp ^ pred->not; |
218 | 219 | ||
@@ -251,7 +252,18 @@ static int filter_pred_none(struct filter_pred *pred, void *event, | |||
251 | return 0; | 252 | return 0; |
252 | } | 253 | } |
253 | 254 | ||
254 | /* Basic regex callbacks */ | 255 | /* |
256 | * regex_match_foo - Basic regex callbacks | ||
257 | * | ||
258 | * @str: the string to be searched | ||
259 | * @r: the regex structure containing the pattern string | ||
260 | * @len: the length of the string to be searched (including '\0') | ||
261 | * | ||
262 | * Note: | ||
263 | * - @str might not be NULL-terminated if it's of type DYN_STRING | ||
264 | * or STATIC_STRING | ||
265 | */ | ||
266 | |||
255 | static int regex_match_full(char *str, struct regex *r, int len) | 267 | static int regex_match_full(char *str, struct regex *r, int len) |
256 | { | 268 | { |
257 | if (strncmp(str, r->pattern, len) == 0) | 269 | if (strncmp(str, r->pattern, len) == 0) |
@@ -261,23 +273,24 @@ static int regex_match_full(char *str, struct regex *r, int len) | |||
261 | 273 | ||
262 | static int regex_match_front(char *str, struct regex *r, int len) | 274 | static int regex_match_front(char *str, struct regex *r, int len) |
263 | { | 275 | { |
264 | if (strncmp(str, r->pattern, len) == 0) | 276 | if (strncmp(str, r->pattern, r->len) == 0) |
265 | return 1; | 277 | return 1; |
266 | return 0; | 278 | return 0; |
267 | } | 279 | } |
268 | 280 | ||
269 | static int regex_match_middle(char *str, struct regex *r, int len) | 281 | static int regex_match_middle(char *str, struct regex *r, int len) |
270 | { | 282 | { |
271 | if (strstr(str, r->pattern)) | 283 | if (strnstr(str, r->pattern, len)) |
272 | return 1; | 284 | return 1; |
273 | return 0; | 285 | return 0; |
274 | } | 286 | } |
275 | 287 | ||
276 | static int regex_match_end(char *str, struct regex *r, int len) | 288 | static int regex_match_end(char *str, struct regex *r, int len) |
277 | { | 289 | { |
278 | char *ptr = strstr(str, r->pattern); | 290 | int strlen = len - 1; |
279 | 291 | ||
280 | if (ptr && (ptr[r->len] == 0)) | 292 | if (strlen >= r->len && |
293 | memcmp(str + strlen - r->len, r->pattern, r->len) == 0) | ||
281 | return 1; | 294 | return 1; |
282 | return 0; | 295 | return 0; |
283 | } | 296 | } |
@@ -781,10 +794,8 @@ static int filter_add_pred(struct filter_parse_state *ps, | |||
781 | pred->regex.field_len = field->size; | 794 | pred->regex.field_len = field->size; |
782 | } else if (field->filter_type == FILTER_DYN_STRING) | 795 | } else if (field->filter_type == FILTER_DYN_STRING) |
783 | fn = filter_pred_strloc; | 796 | fn = filter_pred_strloc; |
784 | else { | 797 | else |
785 | fn = filter_pred_pchar; | 798 | fn = filter_pred_pchar; |
786 | pred->regex.field_len = strlen(pred->regex.pattern); | ||
787 | } | ||
788 | } else { | 799 | } else { |
789 | if (field->is_signed) | 800 | if (field->is_signed) |
790 | ret = strict_strtoll(pred->regex.pattern, 0, &val); | 801 | ret = strict_strtoll(pred->regex.pattern, 0, &val); |
diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c index 458e5bfe26d..d4fa5dc1ee4 100644 --- a/kernel/trace/trace_export.c +++ b/kernel/trace/trace_export.c | |||
@@ -158,7 +158,8 @@ ftrace_format_##name(struct ftrace_event_call *unused, \ | |||
158 | BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \ | 158 | BUILD_BUG_ON(len > MAX_FILTER_STR_VAL); \ |
159 | ret = trace_define_field(event_call, #type "[" #len "]", #item, \ | 159 | ret = trace_define_field(event_call, #type "[" #len "]", #item, \ |
160 | offsetof(typeof(field), item), \ | 160 | offsetof(typeof(field), item), \ |
161 | sizeof(field.item), 0, FILTER_OTHER); \ | 161 | sizeof(field.item), \ |
162 | is_signed_type(type), FILTER_OTHER); \ | ||
162 | if (ret) \ | 163 | if (ret) \ |
163 | return ret; | 164 | return ret; |
164 | 165 | ||
@@ -168,8 +169,8 @@ ftrace_format_##name(struct ftrace_event_call *unused, \ | |||
168 | ret = trace_define_field(event_call, #type "[" #len "]", #item, \ | 169 | ret = trace_define_field(event_call, #type "[" #len "]", #item, \ |
169 | offsetof(typeof(field), \ | 170 | offsetof(typeof(field), \ |
170 | container.item), \ | 171 | container.item), \ |
171 | sizeof(field.container.item), 0, \ | 172 | sizeof(field.container.item), \ |
172 | FILTER_OTHER); \ | 173 | is_signed_type(type), FILTER_OTHER); \ |
173 | if (ret) \ | 174 | if (ret) \ |
174 | return ret; | 175 | return ret; |
175 | 176 | ||
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c index 375f81a568d..6ea90c0e2c9 100644 --- a/kernel/trace/trace_kprobe.c +++ b/kernel/trace/trace_kprobe.c | |||
@@ -1201,10 +1201,11 @@ static int __probe_event_show_format(struct trace_seq *s, | |||
1201 | #undef SHOW_FIELD | 1201 | #undef SHOW_FIELD |
1202 | #define SHOW_FIELD(type, item, name) \ | 1202 | #define SHOW_FIELD(type, item, name) \ |
1203 | do { \ | 1203 | do { \ |
1204 | ret = trace_seq_printf(s, "\tfield: " #type " %s;\t" \ | 1204 | ret = trace_seq_printf(s, "\tfield:" #type " %s;\t" \ |
1205 | "offset:%u;\tsize:%u;\n", name, \ | 1205 | "offset:%u;\tsize:%u;\tsigned:%d;\n", name,\ |
1206 | (unsigned int)offsetof(typeof(field), item),\ | 1206 | (unsigned int)offsetof(typeof(field), item),\ |
1207 | (unsigned int)sizeof(type)); \ | 1207 | (unsigned int)sizeof(type), \ |
1208 | is_signed_type(type)); \ | ||
1208 | if (!ret) \ | 1209 | if (!ret) \ |
1209 | return 0; \ | 1210 | return 0; \ |
1210 | } while (0) | 1211 | } while (0) |
diff --git a/kernel/trace/trace_ksym.c b/kernel/trace/trace_ksym.c index faf37fa4408..94103cdcf9d 100644 --- a/kernel/trace/trace_ksym.c +++ b/kernel/trace/trace_ksym.c | |||
@@ -26,12 +26,13 @@ | |||
26 | #include <linux/fs.h> | 26 | #include <linux/fs.h> |
27 | 27 | ||
28 | #include "trace_output.h" | 28 | #include "trace_output.h" |
29 | #include "trace_stat.h" | ||
30 | #include "trace.h" | 29 | #include "trace.h" |
31 | 30 | ||
32 | #include <linux/hw_breakpoint.h> | 31 | #include <linux/hw_breakpoint.h> |
33 | #include <asm/hw_breakpoint.h> | 32 | #include <asm/hw_breakpoint.h> |
34 | 33 | ||
34 | #include <asm/atomic.h> | ||
35 | |||
35 | /* | 36 | /* |
36 | * For now, let us restrict the no. of symbols traced simultaneously to number | 37 | * For now, let us restrict the no. of symbols traced simultaneously to number |
37 | * of available hardware breakpoint registers. | 38 | * of available hardware breakpoint registers. |
@@ -44,7 +45,7 @@ struct trace_ksym { | |||
44 | struct perf_event **ksym_hbp; | 45 | struct perf_event **ksym_hbp; |
45 | struct perf_event_attr attr; | 46 | struct perf_event_attr attr; |
46 | #ifdef CONFIG_PROFILE_KSYM_TRACER | 47 | #ifdef CONFIG_PROFILE_KSYM_TRACER |
47 | unsigned long counter; | 48 | atomic64_t counter; |
48 | #endif | 49 | #endif |
49 | struct hlist_node ksym_hlist; | 50 | struct hlist_node ksym_hlist; |
50 | }; | 51 | }; |
@@ -69,9 +70,8 @@ void ksym_collect_stats(unsigned long hbp_hit_addr) | |||
69 | 70 | ||
70 | rcu_read_lock(); | 71 | rcu_read_lock(); |
71 | hlist_for_each_entry_rcu(entry, node, &ksym_filter_head, ksym_hlist) { | 72 | hlist_for_each_entry_rcu(entry, node, &ksym_filter_head, ksym_hlist) { |
72 | if ((entry->attr.bp_addr == hbp_hit_addr) && | 73 | if (entry->attr.bp_addr == hbp_hit_addr) { |
73 | (entry->counter <= MAX_UL_INT)) { | 74 | atomic64_inc(&entry->counter); |
74 | entry->counter++; | ||
75 | break; | 75 | break; |
76 | } | 76 | } |
77 | } | 77 | } |
@@ -197,7 +197,6 @@ int process_new_ksym_entry(char *ksymname, int op, unsigned long addr) | |||
197 | entry->attr.bp_addr = addr; | 197 | entry->attr.bp_addr = addr; |
198 | entry->attr.bp_len = HW_BREAKPOINT_LEN_4; | 198 | entry->attr.bp_len = HW_BREAKPOINT_LEN_4; |
199 | 199 | ||
200 | ret = -EAGAIN; | ||
201 | entry->ksym_hbp = register_wide_hw_breakpoint(&entry->attr, | 200 | entry->ksym_hbp = register_wide_hw_breakpoint(&entry->attr, |
202 | ksym_hbp_handler); | 201 | ksym_hbp_handler); |
203 | 202 | ||
@@ -300,8 +299,8 @@ static ssize_t ksym_trace_filter_write(struct file *file, | |||
300 | * 2: echo 0 > ksym_trace_filter | 299 | * 2: echo 0 > ksym_trace_filter |
301 | * 3: echo "*:---" > ksym_trace_filter | 300 | * 3: echo "*:---" > ksym_trace_filter |
302 | */ | 301 | */ |
303 | if (!buf[0] || !strcmp(buf, "0") || | 302 | if (!input_string[0] || !strcmp(input_string, "0") || |
304 | !strcmp(buf, "*:---")) { | 303 | !strcmp(input_string, "*:---")) { |
305 | __ksym_trace_reset(); | 304 | __ksym_trace_reset(); |
306 | ret = 0; | 305 | ret = 0; |
307 | goto out; | 306 | goto out; |
@@ -444,102 +443,77 @@ struct tracer ksym_tracer __read_mostly = | |||
444 | .print_line = ksym_trace_output | 443 | .print_line = ksym_trace_output |
445 | }; | 444 | }; |
446 | 445 | ||
447 | __init static int init_ksym_trace(void) | ||
448 | { | ||
449 | struct dentry *d_tracer; | ||
450 | struct dentry *entry; | ||
451 | |||
452 | d_tracer = tracing_init_dentry(); | ||
453 | ksym_filter_entry_count = 0; | ||
454 | |||
455 | entry = debugfs_create_file("ksym_trace_filter", 0644, d_tracer, | ||
456 | NULL, &ksym_tracing_fops); | ||
457 | if (!entry) | ||
458 | pr_warning("Could not create debugfs " | ||
459 | "'ksym_trace_filter' file\n"); | ||
460 | |||
461 | return register_tracer(&ksym_tracer); | ||
462 | } | ||
463 | device_initcall(init_ksym_trace); | ||
464 | |||
465 | |||
466 | #ifdef CONFIG_PROFILE_KSYM_TRACER | 446 | #ifdef CONFIG_PROFILE_KSYM_TRACER |
467 | static int ksym_tracer_stat_headers(struct seq_file *m) | 447 | static int ksym_profile_show(struct seq_file *m, void *v) |
468 | { | 448 | { |
449 | struct hlist_node *node; | ||
450 | struct trace_ksym *entry; | ||
451 | int access_type = 0; | ||
452 | char fn_name[KSYM_NAME_LEN]; | ||
453 | |||
469 | seq_puts(m, " Access Type "); | 454 | seq_puts(m, " Access Type "); |
470 | seq_puts(m, " Symbol Counter\n"); | 455 | seq_puts(m, " Symbol Counter\n"); |
471 | seq_puts(m, " ----------- "); | 456 | seq_puts(m, " ----------- "); |
472 | seq_puts(m, " ------ -------\n"); | 457 | seq_puts(m, " ------ -------\n"); |
473 | return 0; | ||
474 | } | ||
475 | 458 | ||
476 | static int ksym_tracer_stat_show(struct seq_file *m, void *v) | 459 | rcu_read_lock(); |
477 | { | 460 | hlist_for_each_entry_rcu(entry, node, &ksym_filter_head, ksym_hlist) { |
478 | struct hlist_node *stat = v; | ||
479 | struct trace_ksym *entry; | ||
480 | int access_type = 0; | ||
481 | char fn_name[KSYM_NAME_LEN]; | ||
482 | 461 | ||
483 | entry = hlist_entry(stat, struct trace_ksym, ksym_hlist); | 462 | access_type = entry->attr.bp_type; |
484 | 463 | ||
485 | access_type = entry->attr.bp_type; | 464 | switch (access_type) { |
465 | case HW_BREAKPOINT_R: | ||
466 | seq_puts(m, " R "); | ||
467 | break; | ||
468 | case HW_BREAKPOINT_W: | ||
469 | seq_puts(m, " W "); | ||
470 | break; | ||
471 | case HW_BREAKPOINT_R | HW_BREAKPOINT_W: | ||
472 | seq_puts(m, " RW "); | ||
473 | break; | ||
474 | default: | ||
475 | seq_puts(m, " NA "); | ||
476 | } | ||
486 | 477 | ||
487 | switch (access_type) { | 478 | if (lookup_symbol_name(entry->attr.bp_addr, fn_name) >= 0) |
488 | case HW_BREAKPOINT_R: | 479 | seq_printf(m, " %-36s", fn_name); |
489 | seq_puts(m, " R "); | 480 | else |
490 | break; | 481 | seq_printf(m, " %-36s", "<NA>"); |
491 | case HW_BREAKPOINT_W: | 482 | seq_printf(m, " %15llu\n", |
492 | seq_puts(m, " W "); | 483 | (unsigned long long)atomic64_read(&entry->counter)); |
493 | break; | ||
494 | case HW_BREAKPOINT_R | HW_BREAKPOINT_W: | ||
495 | seq_puts(m, " RW "); | ||
496 | break; | ||
497 | default: | ||
498 | seq_puts(m, " NA "); | ||
499 | } | 484 | } |
500 | 485 | rcu_read_unlock(); | |
501 | if (lookup_symbol_name(entry->attr.bp_addr, fn_name) >= 0) | ||
502 | seq_printf(m, " %-36s", fn_name); | ||
503 | else | ||
504 | seq_printf(m, " %-36s", "<NA>"); | ||
505 | seq_printf(m, " %15lu\n", entry->counter); | ||
506 | 486 | ||
507 | return 0; | 487 | return 0; |
508 | } | 488 | } |
509 | 489 | ||
510 | static void *ksym_tracer_stat_start(struct tracer_stat *trace) | 490 | static int ksym_profile_open(struct inode *node, struct file *file) |
511 | { | 491 | { |
512 | return ksym_filter_head.first; | 492 | return single_open(file, ksym_profile_show, NULL); |
513 | } | ||
514 | |||
515 | static void * | ||
516 | ksym_tracer_stat_next(void *v, int idx) | ||
517 | { | ||
518 | struct hlist_node *stat = v; | ||
519 | |||
520 | return stat->next; | ||
521 | } | 493 | } |
522 | 494 | ||
523 | static struct tracer_stat ksym_tracer_stats = { | 495 | static const struct file_operations ksym_profile_fops = { |
524 | .name = "ksym_tracer", | 496 | .open = ksym_profile_open, |
525 | .stat_start = ksym_tracer_stat_start, | 497 | .read = seq_read, |
526 | .stat_next = ksym_tracer_stat_next, | 498 | .llseek = seq_lseek, |
527 | .stat_headers = ksym_tracer_stat_headers, | 499 | .release = single_release, |
528 | .stat_show = ksym_tracer_stat_show | ||
529 | }; | 500 | }; |
501 | #endif /* CONFIG_PROFILE_KSYM_TRACER */ | ||
530 | 502 | ||
531 | __init static int ksym_tracer_stat_init(void) | 503 | __init static int init_ksym_trace(void) |
532 | { | 504 | { |
533 | int ret; | 505 | struct dentry *d_tracer; |
534 | 506 | ||
535 | ret = register_stat_tracer(&ksym_tracer_stats); | 507 | d_tracer = tracing_init_dentry(); |
536 | if (ret) { | ||
537 | printk(KERN_WARNING "Warning: could not register " | ||
538 | "ksym tracer stats\n"); | ||
539 | return 1; | ||
540 | } | ||
541 | 508 | ||
542 | return 0; | 509 | trace_create_file("ksym_trace_filter", 0644, d_tracer, |
510 | NULL, &ksym_tracing_fops); | ||
511 | |||
512 | #ifdef CONFIG_PROFILE_KSYM_TRACER | ||
513 | trace_create_file("ksym_profile", 0444, d_tracer, | ||
514 | NULL, &ksym_profile_fops); | ||
515 | #endif | ||
516 | |||
517 | return register_tracer(&ksym_tracer); | ||
543 | } | 518 | } |
544 | fs_initcall(ksym_tracer_stat_init); | 519 | device_initcall(init_ksym_trace); |
545 | #endif /* CONFIG_PROFILE_KSYM_TRACER */ | ||
diff --git a/lib/Kconfig b/lib/Kconfig index 1cfe51628e1..97b136ff117 100644 --- a/lib/Kconfig +++ b/lib/Kconfig | |||
@@ -117,6 +117,10 @@ config DECOMPRESS_BZIP2 | |||
117 | config DECOMPRESS_LZMA | 117 | config DECOMPRESS_LZMA |
118 | tristate | 118 | tristate |
119 | 119 | ||
120 | config DECOMPRESS_LZO | ||
121 | select LZO_DECOMPRESS | ||
122 | tristate | ||
123 | |||
120 | # | 124 | # |
121 | # Generic allocator support is selected if needed | 125 | # Generic allocator support is selected if needed |
122 | # | 126 | # |
diff --git a/lib/Makefile b/lib/Makefile index 347ad8db29d..3b0b4a696db 100644 --- a/lib/Makefile +++ b/lib/Makefile | |||
@@ -21,7 +21,7 @@ lib-y += kobject.o kref.o klist.o | |||
21 | 21 | ||
22 | obj-y += bcd.o div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \ | 22 | obj-y += bcd.o div64.o sort.o parser.o halfmd4.o debug_locks.o random32.o \ |
23 | bust_spinlocks.o hexdump.o kasprintf.o bitmap.o scatterlist.o \ | 23 | bust_spinlocks.o hexdump.o kasprintf.o bitmap.o scatterlist.o \ |
24 | string_helpers.o gcd.o | 24 | string_helpers.o gcd.o list_sort.o |
25 | 25 | ||
26 | ifeq ($(CONFIG_DEBUG_KOBJECT),y) | 26 | ifeq ($(CONFIG_DEBUG_KOBJECT),y) |
27 | CFLAGS_kobject.o += -DDEBUG | 27 | CFLAGS_kobject.o += -DDEBUG |
@@ -69,6 +69,7 @@ obj-$(CONFIG_LZO_DECOMPRESS) += lzo/ | |||
69 | lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o | 69 | lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o |
70 | lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o | 70 | lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o |
71 | lib-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o | 71 | lib-$(CONFIG_DECOMPRESS_LZMA) += decompress_unlzma.o |
72 | lib-$(CONFIG_DECOMPRESS_LZO) += decompress_unlzo.o | ||
72 | 73 | ||
73 | obj-$(CONFIG_TEXTSEARCH) += textsearch.o | 74 | obj-$(CONFIG_TEXTSEARCH) += textsearch.o |
74 | obj-$(CONFIG_TEXTSEARCH_KMP) += ts_kmp.o | 75 | obj-$(CONFIG_TEXTSEARCH_KMP) += ts_kmp.o |
diff --git a/lib/decompress.c b/lib/decompress.c index d2842f57167..a7606815541 100644 --- a/lib/decompress.c +++ b/lib/decompress.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/decompress/bunzip2.h> | 9 | #include <linux/decompress/bunzip2.h> |
10 | #include <linux/decompress/unlzma.h> | 10 | #include <linux/decompress/unlzma.h> |
11 | #include <linux/decompress/inflate.h> | 11 | #include <linux/decompress/inflate.h> |
12 | #include <linux/decompress/unlzo.h> | ||
12 | 13 | ||
13 | #include <linux/types.h> | 14 | #include <linux/types.h> |
14 | #include <linux/string.h> | 15 | #include <linux/string.h> |
@@ -22,6 +23,9 @@ | |||
22 | #ifndef CONFIG_DECOMPRESS_LZMA | 23 | #ifndef CONFIG_DECOMPRESS_LZMA |
23 | # define unlzma NULL | 24 | # define unlzma NULL |
24 | #endif | 25 | #endif |
26 | #ifndef CONFIG_DECOMPRESS_LZO | ||
27 | # define unlzo NULL | ||
28 | #endif | ||
25 | 29 | ||
26 | static const struct compress_format { | 30 | static const struct compress_format { |
27 | unsigned char magic[2]; | 31 | unsigned char magic[2]; |
@@ -32,6 +36,7 @@ static const struct compress_format { | |||
32 | { {037, 0236}, "gzip", gunzip }, | 36 | { {037, 0236}, "gzip", gunzip }, |
33 | { {0x42, 0x5a}, "bzip2", bunzip2 }, | 37 | { {0x42, 0x5a}, "bzip2", bunzip2 }, |
34 | { {0x5d, 0x00}, "lzma", unlzma }, | 38 | { {0x5d, 0x00}, "lzma", unlzma }, |
39 | { {0x89, 0x4c}, "lzo", unlzo }, | ||
35 | { {0, 0}, NULL, NULL } | 40 | { {0, 0}, NULL, NULL } |
36 | }; | 41 | }; |
37 | 42 | ||
diff --git a/lib/decompress_unlzo.c b/lib/decompress_unlzo.c new file mode 100644 index 00000000000..db521f45626 --- /dev/null +++ b/lib/decompress_unlzo.c | |||
@@ -0,0 +1,209 @@ | |||
1 | /* | ||
2 | * LZO decompressor for the Linux kernel. Code borrowed from the lzo | ||
3 | * implementation by Markus Franz Xaver Johannes Oberhumer. | ||
4 | * | ||
5 | * Linux kernel adaptation: | ||
6 | * Copyright (C) 2009 | ||
7 | * Albin Tonnerre, Free Electrons <albin.tonnerre@free-electrons.com> | ||
8 | * | ||
9 | * Original code: | ||
10 | * Copyright (C) 1996-2005 Markus Franz Xaver Johannes Oberhumer | ||
11 | * All Rights Reserved. | ||
12 | * | ||
13 | * lzop and the LZO library are free software; you can redistribute them | ||
14 | * and/or modify them under the terms of the GNU General Public License as | ||
15 | * published by the Free Software Foundation; either version 2 of | ||
16 | * the License, or (at your option) any later version. | ||
17 | * | ||
18 | * This program is distributed in the hope that it will be useful, | ||
19 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
20 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
21 | * GNU General Public License for more details. | ||
22 | * | ||
23 | * You should have received a copy of the GNU General Public License | ||
24 | * along with this program; see the file COPYING. | ||
25 | * If not, write to the Free Software Foundation, Inc., | ||
26 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
27 | * | ||
28 | * Markus F.X.J. Oberhumer | ||
29 | * <markus@oberhumer.com> | ||
30 | * http://www.oberhumer.com/opensource/lzop/ | ||
31 | */ | ||
32 | |||
33 | #ifdef STATIC | ||
34 | #include "lzo/lzo1x_decompress.c" | ||
35 | #else | ||
36 | #include <linux/slab.h> | ||
37 | #include <linux/decompress/unlzo.h> | ||
38 | #endif | ||
39 | |||
40 | #include <linux/types.h> | ||
41 | #include <linux/lzo.h> | ||
42 | #include <linux/decompress/mm.h> | ||
43 | |||
44 | #include <linux/compiler.h> | ||
45 | #include <asm/unaligned.h> | ||
46 | |||
47 | static const unsigned char lzop_magic[] = { | ||
48 | 0x89, 0x4c, 0x5a, 0x4f, 0x00, 0x0d, 0x0a, 0x1a, 0x0a }; | ||
49 | |||
50 | #define LZO_BLOCK_SIZE (256*1024l) | ||
51 | #define HEADER_HAS_FILTER 0x00000800L | ||
52 | |||
53 | STATIC inline int INIT parse_header(u8 *input, u8 *skip) | ||
54 | { | ||
55 | int l; | ||
56 | u8 *parse = input; | ||
57 | u8 level = 0; | ||
58 | u16 version; | ||
59 | |||
60 | /* read magic: 9 first bits */ | ||
61 | for (l = 0; l < 9; l++) { | ||
62 | if (*parse++ != lzop_magic[l]) | ||
63 | return 0; | ||
64 | } | ||
65 | /* get version (2bytes), skip library version (2), | ||
66 | * 'need to be extracted' version (2) and | ||
67 | * method (1) */ | ||
68 | version = get_unaligned_be16(parse); | ||
69 | parse += 7; | ||
70 | if (version >= 0x0940) | ||
71 | level = *parse++; | ||
72 | if (get_unaligned_be32(parse) & HEADER_HAS_FILTER) | ||
73 | parse += 8; /* flags + filter info */ | ||
74 | else | ||
75 | parse += 4; /* flags */ | ||
76 | |||
77 | /* skip mode and mtime_low */ | ||
78 | parse += 8; | ||
79 | if (version >= 0x0940) | ||
80 | parse += 4; /* skip mtime_high */ | ||
81 | |||
82 | l = *parse++; | ||
83 | /* don't care about the file name, and skip checksum */ | ||
84 | parse += l + 4; | ||
85 | |||
86 | *skip = parse - input; | ||
87 | return 1; | ||
88 | } | ||
89 | |||
90 | STATIC inline int INIT unlzo(u8 *input, int in_len, | ||
91 | int (*fill) (void *, unsigned int), | ||
92 | int (*flush) (void *, unsigned int), | ||
93 | u8 *output, int *posp, | ||
94 | void (*error_fn) (char *x)) | ||
95 | { | ||
96 | u8 skip = 0, r = 0; | ||
97 | u32 src_len, dst_len; | ||
98 | size_t tmp; | ||
99 | u8 *in_buf, *in_buf_save, *out_buf; | ||
100 | int obytes_processed = 0; | ||
101 | |||
102 | set_error_fn(error_fn); | ||
103 | |||
104 | if (output) { | ||
105 | out_buf = output; | ||
106 | } else if (!flush) { | ||
107 | error("NULL output pointer and no flush function provided"); | ||
108 | goto exit; | ||
109 | } else { | ||
110 | out_buf = malloc(LZO_BLOCK_SIZE); | ||
111 | if (!out_buf) { | ||
112 | error("Could not allocate output buffer"); | ||
113 | goto exit; | ||
114 | } | ||
115 | } | ||
116 | |||
117 | if (input && fill) { | ||
118 | error("Both input pointer and fill function provided, don't know what to do"); | ||
119 | goto exit_1; | ||
120 | } else if (input) { | ||
121 | in_buf = input; | ||
122 | } else if (!fill || !posp) { | ||
123 | error("NULL input pointer and missing position pointer or fill function"); | ||
124 | goto exit_1; | ||
125 | } else { | ||
126 | in_buf = malloc(lzo1x_worst_compress(LZO_BLOCK_SIZE)); | ||
127 | if (!in_buf) { | ||
128 | error("Could not allocate input buffer"); | ||
129 | goto exit_1; | ||
130 | } | ||
131 | } | ||
132 | in_buf_save = in_buf; | ||
133 | |||
134 | if (posp) | ||
135 | *posp = 0; | ||
136 | |||
137 | if (fill) | ||
138 | fill(in_buf, lzo1x_worst_compress(LZO_BLOCK_SIZE)); | ||
139 | |||
140 | if (!parse_header(input, &skip)) { | ||
141 | error("invalid header"); | ||
142 | goto exit_2; | ||
143 | } | ||
144 | in_buf += skip; | ||
145 | |||
146 | if (posp) | ||
147 | *posp = skip; | ||
148 | |||
149 | for (;;) { | ||
150 | /* read uncompressed block size */ | ||
151 | dst_len = get_unaligned_be32(in_buf); | ||
152 | in_buf += 4; | ||
153 | |||
154 | /* exit if last block */ | ||
155 | if (dst_len == 0) { | ||
156 | if (posp) | ||
157 | *posp += 4; | ||
158 | break; | ||
159 | } | ||
160 | |||
161 | if (dst_len > LZO_BLOCK_SIZE) { | ||
162 | error("dest len longer than block size"); | ||
163 | goto exit_2; | ||
164 | } | ||
165 | |||
166 | /* read compressed block size, and skip block checksum info */ | ||
167 | src_len = get_unaligned_be32(in_buf); | ||
168 | in_buf += 8; | ||
169 | |||
170 | if (src_len <= 0 || src_len > dst_len) { | ||
171 | error("file corrupted"); | ||
172 | goto exit_2; | ||
173 | } | ||
174 | |||
175 | /* decompress */ | ||
176 | tmp = dst_len; | ||
177 | r = lzo1x_decompress_safe((u8 *) in_buf, src_len, | ||
178 | out_buf, &tmp); | ||
179 | |||
180 | if (r != LZO_E_OK || dst_len != tmp) { | ||
181 | error("Compressed data violation"); | ||
182 | goto exit_2; | ||
183 | } | ||
184 | |||
185 | obytes_processed += dst_len; | ||
186 | if (flush) | ||
187 | flush(out_buf, dst_len); | ||
188 | if (output) | ||
189 | out_buf += dst_len; | ||
190 | if (posp) | ||
191 | *posp += src_len + 12; | ||
192 | if (fill) { | ||
193 | in_buf = in_buf_save; | ||
194 | fill(in_buf, lzo1x_worst_compress(LZO_BLOCK_SIZE)); | ||
195 | } else | ||
196 | in_buf += src_len; | ||
197 | } | ||
198 | |||
199 | exit_2: | ||
200 | if (!input) | ||
201 | free(in_buf); | ||
202 | exit_1: | ||
203 | if (!output) | ||
204 | free(out_buf); | ||
205 | exit: | ||
206 | return obytes_processed; | ||
207 | } | ||
208 | |||
209 | #define decompress unlzo | ||
diff --git a/lib/dma-debug.c b/lib/dma-debug.c index d9b08e0f7f5..7d2f0b33e5a 100644 --- a/lib/dma-debug.c +++ b/lib/dma-debug.c | |||
@@ -670,12 +670,13 @@ static int device_dma_allocations(struct device *dev) | |||
670 | return count; | 670 | return count; |
671 | } | 671 | } |
672 | 672 | ||
673 | static int dma_debug_device_change(struct notifier_block *nb, | 673 | static int dma_debug_device_change(struct notifier_block *nb, unsigned long action, void *data) |
674 | unsigned long action, void *data) | ||
675 | { | 674 | { |
676 | struct device *dev = data; | 675 | struct device *dev = data; |
677 | int count; | 676 | int count; |
678 | 677 | ||
678 | if (global_disable) | ||
679 | return 0; | ||
679 | 680 | ||
680 | switch (action) { | 681 | switch (action) { |
681 | case BUS_NOTIFY_UNBOUND_DRIVER: | 682 | case BUS_NOTIFY_UNBOUND_DRIVER: |
@@ -697,6 +698,9 @@ void dma_debug_add_bus(struct bus_type *bus) | |||
697 | { | 698 | { |
698 | struct notifier_block *nb; | 699 | struct notifier_block *nb; |
699 | 700 | ||
701 | if (global_disable) | ||
702 | return; | ||
703 | |||
700 | nb = kzalloc(sizeof(struct notifier_block), GFP_KERNEL); | 704 | nb = kzalloc(sizeof(struct notifier_block), GFP_KERNEL); |
701 | if (nb == NULL) { | 705 | if (nb == NULL) { |
702 | pr_err("dma_debug_add_bus: out of memory\n"); | 706 | pr_err("dma_debug_add_bus: out of memory\n"); |
@@ -909,6 +913,9 @@ static void check_sync(struct device *dev, | |||
909 | ref->size); | 913 | ref->size); |
910 | } | 914 | } |
911 | 915 | ||
916 | if (entry->direction == DMA_BIDIRECTIONAL) | ||
917 | goto out; | ||
918 | |||
912 | if (ref->direction != entry->direction) { | 919 | if (ref->direction != entry->direction) { |
913 | err_printk(dev, entry, "DMA-API: device driver syncs " | 920 | err_printk(dev, entry, "DMA-API: device driver syncs " |
914 | "DMA memory with different direction " | 921 | "DMA memory with different direction " |
@@ -919,9 +926,6 @@ static void check_sync(struct device *dev, | |||
919 | dir2name[ref->direction]); | 926 | dir2name[ref->direction]); |
920 | } | 927 | } |
921 | 928 | ||
922 | if (entry->direction == DMA_BIDIRECTIONAL) | ||
923 | goto out; | ||
924 | |||
925 | if (to_cpu && !(entry->direction == DMA_FROM_DEVICE) && | 929 | if (to_cpu && !(entry->direction == DMA_FROM_DEVICE) && |
926 | !(ref->direction == DMA_TO_DEVICE)) | 930 | !(ref->direction == DMA_TO_DEVICE)) |
927 | err_printk(dev, entry, "DMA-API: device driver syncs " | 931 | err_printk(dev, entry, "DMA-API: device driver syncs " |
@@ -944,7 +948,6 @@ static void check_sync(struct device *dev, | |||
944 | 948 | ||
945 | out: | 949 | out: |
946 | put_hash_bucket(bucket, &flags); | 950 | put_hash_bucket(bucket, &flags); |
947 | |||
948 | } | 951 | } |
949 | 952 | ||
950 | void debug_dma_map_page(struct device *dev, struct page *page, size_t offset, | 953 | void debug_dma_map_page(struct device *dev, struct page *page, size_t offset, |
diff --git a/lib/list_sort.c b/lib/list_sort.c new file mode 100644 index 00000000000..19d11e0bb95 --- /dev/null +++ b/lib/list_sort.c | |||
@@ -0,0 +1,102 @@ | |||
1 | #include <linux/kernel.h> | ||
2 | #include <linux/module.h> | ||
3 | #include <linux/list_sort.h> | ||
4 | #include <linux/slab.h> | ||
5 | #include <linux/list.h> | ||
6 | |||
7 | /** | ||
8 | * list_sort - sort a list. | ||
9 | * @priv: private data, passed to @cmp | ||
10 | * @head: the list to sort | ||
11 | * @cmp: the elements comparison function | ||
12 | * | ||
13 | * This function has been implemented by Mark J Roberts <mjr@znex.org>. It | ||
14 | * implements "merge sort" which has O(nlog(n)) complexity. The list is sorted | ||
15 | * in ascending order. | ||
16 | * | ||
17 | * The comparison function @cmp is supposed to return a negative value if @a is | ||
18 | * less than @b, and a positive value if @a is greater than @b. If @a and @b | ||
19 | * are equivalent, then it does not matter what this function returns. | ||
20 | */ | ||
21 | void list_sort(void *priv, struct list_head *head, | ||
22 | int (*cmp)(void *priv, struct list_head *a, | ||
23 | struct list_head *b)) | ||
24 | { | ||
25 | struct list_head *p, *q, *e, *list, *tail, *oldhead; | ||
26 | int insize, nmerges, psize, qsize, i; | ||
27 | |||
28 | if (list_empty(head)) | ||
29 | return; | ||
30 | |||
31 | list = head->next; | ||
32 | list_del(head); | ||
33 | insize = 1; | ||
34 | for (;;) { | ||
35 | p = oldhead = list; | ||
36 | list = tail = NULL; | ||
37 | nmerges = 0; | ||
38 | |||
39 | while (p) { | ||
40 | nmerges++; | ||
41 | q = p; | ||
42 | psize = 0; | ||
43 | for (i = 0; i < insize; i++) { | ||
44 | psize++; | ||
45 | q = q->next == oldhead ? NULL : q->next; | ||
46 | if (!q) | ||
47 | break; | ||
48 | } | ||
49 | |||
50 | qsize = insize; | ||
51 | while (psize > 0 || (qsize > 0 && q)) { | ||
52 | if (!psize) { | ||
53 | e = q; | ||
54 | q = q->next; | ||
55 | qsize--; | ||
56 | if (q == oldhead) | ||
57 | q = NULL; | ||
58 | } else if (!qsize || !q) { | ||
59 | e = p; | ||
60 | p = p->next; | ||
61 | psize--; | ||
62 | if (p == oldhead) | ||
63 | p = NULL; | ||
64 | } else if (cmp(priv, p, q) <= 0) { | ||
65 | e = p; | ||
66 | p = p->next; | ||
67 | psize--; | ||
68 | if (p == oldhead) | ||
69 | p = NULL; | ||
70 | } else { | ||
71 | e = q; | ||
72 | q = q->next; | ||
73 | qsize--; | ||
74 | if (q == oldhead) | ||
75 | q = NULL; | ||
76 | } | ||
77 | if (tail) | ||
78 | tail->next = e; | ||
79 | else | ||
80 | list = e; | ||
81 | e->prev = tail; | ||
82 | tail = e; | ||
83 | } | ||
84 | p = q; | ||
85 | } | ||
86 | |||
87 | tail->next = list; | ||
88 | list->prev = tail; | ||
89 | |||
90 | if (nmerges <= 1) | ||
91 | break; | ||
92 | |||
93 | insize *= 2; | ||
94 | } | ||
95 | |||
96 | head->next = list; | ||
97 | head->prev = list->prev; | ||
98 | list->prev->next = head; | ||
99 | list->prev = head; | ||
100 | } | ||
101 | |||
102 | EXPORT_SYMBOL(list_sort); | ||
diff --git a/lib/lzo/lzo1x_decompress.c b/lib/lzo/lzo1x_decompress.c index 5dc6b29c157..f2fd0985022 100644 --- a/lib/lzo/lzo1x_decompress.c +++ b/lib/lzo/lzo1x_decompress.c | |||
@@ -11,11 +11,13 @@ | |||
11 | * Richard Purdie <rpurdie@openedhand.com> | 11 | * Richard Purdie <rpurdie@openedhand.com> |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #ifndef STATIC | ||
14 | #include <linux/module.h> | 15 | #include <linux/module.h> |
15 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
16 | #include <linux/lzo.h> | 17 | #endif |
17 | #include <asm/byteorder.h> | 18 | |
18 | #include <asm/unaligned.h> | 19 | #include <asm/unaligned.h> |
20 | #include <linux/lzo.h> | ||
19 | #include "lzodefs.h" | 21 | #include "lzodefs.h" |
20 | 22 | ||
21 | #define HAVE_IP(x, ip_end, ip) ((size_t)(ip_end - ip) < (x)) | 23 | #define HAVE_IP(x, ip_end, ip) ((size_t)(ip_end - ip) < (x)) |
@@ -244,9 +246,10 @@ lookbehind_overrun: | |||
244 | *out_len = op - out; | 246 | *out_len = op - out; |
245 | return LZO_E_LOOKBEHIND_OVERRUN; | 247 | return LZO_E_LOOKBEHIND_OVERRUN; |
246 | } | 248 | } |
247 | 249 | #ifndef STATIC | |
248 | EXPORT_SYMBOL_GPL(lzo1x_decompress_safe); | 250 | EXPORT_SYMBOL_GPL(lzo1x_decompress_safe); |
249 | 251 | ||
250 | MODULE_LICENSE("GPL"); | 252 | MODULE_LICENSE("GPL"); |
251 | MODULE_DESCRIPTION("LZO1X Decompressor"); | 253 | MODULE_DESCRIPTION("LZO1X Decompressor"); |
252 | 254 | ||
255 | #endif | ||
diff --git a/lib/rational.c b/lib/rational.c index b3c099b5478..3ed247b8066 100644 --- a/lib/rational.c +++ b/lib/rational.c | |||
@@ -7,6 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/rational.h> | 9 | #include <linux/rational.h> |
10 | #include <linux/module.h> | ||
10 | 11 | ||
11 | /* | 12 | /* |
12 | * calculate best rational approximation for a given fraction | 13 | * calculate best rational approximation for a given fraction |
diff --git a/lib/string.c b/lib/string.c index 9f75b4ec50b..a1cdcfcc42d 100644 --- a/lib/string.c +++ b/lib/string.c | |||
@@ -667,7 +667,7 @@ EXPORT_SYMBOL(memscan); | |||
667 | */ | 667 | */ |
668 | char *strstr(const char *s1, const char *s2) | 668 | char *strstr(const char *s1, const char *s2) |
669 | { | 669 | { |
670 | int l1, l2; | 670 | size_t l1, l2; |
671 | 671 | ||
672 | l2 = strlen(s2); | 672 | l2 = strlen(s2); |
673 | if (!l2) | 673 | if (!l2) |
@@ -684,6 +684,31 @@ char *strstr(const char *s1, const char *s2) | |||
684 | EXPORT_SYMBOL(strstr); | 684 | EXPORT_SYMBOL(strstr); |
685 | #endif | 685 | #endif |
686 | 686 | ||
687 | #ifndef __HAVE_ARCH_STRNSTR | ||
688 | /** | ||
689 | * strnstr - Find the first substring in a length-limited string | ||
690 | * @s1: The string to be searched | ||
691 | * @s2: The string to search for | ||
692 | * @len: the maximum number of characters to search | ||
693 | */ | ||
694 | char *strnstr(const char *s1, const char *s2, size_t len) | ||
695 | { | ||
696 | size_t l1 = len, l2; | ||
697 | |||
698 | l2 = strlen(s2); | ||
699 | if (!l2) | ||
700 | return (char *)s1; | ||
701 | while (l1 >= l2) { | ||
702 | l1--; | ||
703 | if (!memcmp(s1, s2, l2)) | ||
704 | return (char *)s1; | ||
705 | s1++; | ||
706 | } | ||
707 | return NULL; | ||
708 | } | ||
709 | EXPORT_SYMBOL(strnstr); | ||
710 | #endif | ||
711 | |||
687 | #ifndef __HAVE_ARCH_MEMCHR | 712 | #ifndef __HAVE_ARCH_MEMCHR |
688 | /** | 713 | /** |
689 | * memchr - Find a character in an area of memory. | 714 | * memchr - Find a character in an area of memory. |
diff --git a/lib/vsprintf.c b/lib/vsprintf.c index d4996cf46eb..3b8aeec4e32 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c | |||
@@ -903,7 +903,7 @@ static char *uuid_string(char *buf, char *end, const u8 *addr, | |||
903 | * IPv6 omits the colons (01020304...0f) | 903 | * IPv6 omits the colons (01020304...0f) |
904 | * IPv4 uses dot-separated decimal with leading 0's (010.123.045.006) | 904 | * IPv4 uses dot-separated decimal with leading 0's (010.123.045.006) |
905 | * - 'I6c' for IPv6 addresses printed as specified by | 905 | * - 'I6c' for IPv6 addresses printed as specified by |
906 | * http://www.ietf.org/id/draft-kawamura-ipv6-text-representation-03.txt | 906 | * http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-00 |
907 | * - 'U' For a 16 byte UUID/GUID, it prints the UUID/GUID in the form | 907 | * - 'U' For a 16 byte UUID/GUID, it prints the UUID/GUID in the form |
908 | * "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" | 908 | * "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" |
909 | * Options for %pU are: | 909 | * Options for %pU are: |
@@ -1188,7 +1188,7 @@ qualifier: | |||
1188 | * %pI6 print an IPv6 address with colons | 1188 | * %pI6 print an IPv6 address with colons |
1189 | * %pi6 print an IPv6 address without colons | 1189 | * %pi6 print an IPv6 address without colons |
1190 | * %pI6c print an IPv6 address as specified by | 1190 | * %pI6c print an IPv6 address as specified by |
1191 | * http://www.ietf.org/id/draft-kawamura-ipv6-text-representation-03.txt | 1191 | * http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-00 |
1192 | * %pU[bBlL] print a UUID/GUID in big or little endian using lower or upper | 1192 | * %pU[bBlL] print a UUID/GUID in big or little endian using lower or upper |
1193 | * case. | 1193 | * case. |
1194 | * %n is ignored | 1194 | * %n is ignored |
diff --git a/lib/zlib_inflate/inffast.c b/lib/zlib_inflate/inffast.c index 8550b0c05d0..215447c5526 100644 --- a/lib/zlib_inflate/inffast.c +++ b/lib/zlib_inflate/inffast.c | |||
@@ -8,6 +8,21 @@ | |||
8 | #include "inflate.h" | 8 | #include "inflate.h" |
9 | #include "inffast.h" | 9 | #include "inffast.h" |
10 | 10 | ||
11 | /* Only do the unaligned "Faster" variant when | ||
12 | * CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is set | ||
13 | * | ||
14 | * On powerpc, it won't be as we don't include autoconf.h | ||
15 | * automatically for the boot wrapper, which is intended as | ||
16 | * we run in an environment where we may not be able to deal | ||
17 | * with (even rare) alignment faults. In addition, we do not | ||
18 | * define __KERNEL__ for arch/powerpc/boot unlike x86 | ||
19 | */ | ||
20 | |||
21 | #ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS | ||
22 | #include <asm/unaligned.h> | ||
23 | #include <asm/byteorder.h> | ||
24 | #endif | ||
25 | |||
11 | #ifndef ASMINF | 26 | #ifndef ASMINF |
12 | 27 | ||
13 | /* Allow machine dependent optimization for post-increment or pre-increment. | 28 | /* Allow machine dependent optimization for post-increment or pre-increment. |
@@ -24,9 +39,11 @@ | |||
24 | #ifdef POSTINC | 39 | #ifdef POSTINC |
25 | # define OFF 0 | 40 | # define OFF 0 |
26 | # define PUP(a) *(a)++ | 41 | # define PUP(a) *(a)++ |
42 | # define UP_UNALIGNED(a) get_unaligned((a)++) | ||
27 | #else | 43 | #else |
28 | # define OFF 1 | 44 | # define OFF 1 |
29 | # define PUP(a) *++(a) | 45 | # define PUP(a) *++(a) |
46 | # define UP_UNALIGNED(a) get_unaligned(++(a)) | ||
30 | #endif | 47 | #endif |
31 | 48 | ||
32 | /* | 49 | /* |
@@ -239,18 +256,62 @@ void inflate_fast(z_streamp strm, unsigned start) | |||
239 | } | 256 | } |
240 | } | 257 | } |
241 | else { | 258 | else { |
259 | #ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS | ||
260 | unsigned short *sout; | ||
261 | unsigned long loops; | ||
262 | |||
263 | from = out - dist; /* copy direct from output */ | ||
264 | /* minimum length is three */ | ||
265 | /* Align out addr */ | ||
266 | if (!((long)(out - 1 + OFF) & 1)) { | ||
267 | PUP(out) = PUP(from); | ||
268 | len--; | ||
269 | } | ||
270 | sout = (unsigned short *)(out - OFF); | ||
271 | if (dist > 2) { | ||
272 | unsigned short *sfrom; | ||
273 | |||
274 | sfrom = (unsigned short *)(from - OFF); | ||
275 | loops = len >> 1; | ||
276 | do | ||
277 | PUP(sout) = UP_UNALIGNED(sfrom); | ||
278 | while (--loops); | ||
279 | out = (unsigned char *)sout + OFF; | ||
280 | from = (unsigned char *)sfrom + OFF; | ||
281 | } else { /* dist == 1 or dist == 2 */ | ||
282 | unsigned short pat16; | ||
283 | |||
284 | pat16 = *(sout-2+2*OFF); | ||
285 | if (dist == 1) | ||
286 | #if defined(__BIG_ENDIAN) | ||
287 | pat16 = (pat16 & 0xff) | ((pat16 & 0xff) << 8); | ||
288 | #elif defined(__LITTLE_ENDIAN) | ||
289 | pat16 = (pat16 & 0xff00) | ((pat16 & 0xff00) >> 8); | ||
290 | #else | ||
291 | #error __BIG_ENDIAN nor __LITTLE_ENDIAN is defined | ||
292 | #endif | ||
293 | loops = len >> 1; | ||
294 | do | ||
295 | PUP(sout) = pat16; | ||
296 | while (--loops); | ||
297 | out = (unsigned char *)sout + OFF; | ||
298 | } | ||
299 | if (len & 1) | ||
300 | PUP(out) = PUP(from); | ||
301 | #else /* CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS */ | ||
242 | from = out - dist; /* copy direct from output */ | 302 | from = out - dist; /* copy direct from output */ |
243 | do { /* minimum length is three */ | 303 | do { /* minimum length is three */ |
244 | PUP(out) = PUP(from); | 304 | PUP(out) = PUP(from); |
245 | PUP(out) = PUP(from); | 305 | PUP(out) = PUP(from); |
246 | PUP(out) = PUP(from); | 306 | PUP(out) = PUP(from); |
247 | len -= 3; | 307 | len -= 3; |
248 | } while (len > 2); | 308 | } while (len > 2); |
249 | if (len) { | 309 | if (len) { |
250 | PUP(out) = PUP(from); | 310 | PUP(out) = PUP(from); |
251 | if (len > 1) | 311 | if (len > 1) |
252 | PUP(out) = PUP(from); | 312 | PUP(out) = PUP(from); |
253 | } | 313 | } |
314 | #endif /* !CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS */ | ||
254 | } | 315 | } |
255 | } | 316 | } |
256 | else if ((op & 64) == 0) { /* 2nd level distance code */ | 317 | else if ((op & 64) == 0) { /* 2nd level distance code */ |
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 65f38c21820..e91b81b6367 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -402,7 +402,7 @@ static void clear_huge_page(struct page *page, | |||
402 | { | 402 | { |
403 | int i; | 403 | int i; |
404 | 404 | ||
405 | if (unlikely(sz > MAX_ORDER_NR_PAGES)) { | 405 | if (unlikely(sz/PAGE_SIZE > MAX_ORDER_NR_PAGES)) { |
406 | clear_gigantic_page(page, addr, sz); | 406 | clear_gigantic_page(page, addr, sz); |
407 | return; | 407 | return; |
408 | } | 408 | } |
diff --git a/mm/maccess.c b/mm/maccess.c index 9073695ff25..4e348dbaecd 100644 --- a/mm/maccess.c +++ b/mm/maccess.c | |||
@@ -14,7 +14,11 @@ | |||
14 | * Safely read from address @src to the buffer at @dst. If a kernel fault | 14 | * Safely read from address @src to the buffer at @dst. If a kernel fault |
15 | * happens, handle that and return -EFAULT. | 15 | * happens, handle that and return -EFAULT. |
16 | */ | 16 | */ |
17 | long probe_kernel_read(void *dst, void *src, size_t size) | 17 | |
18 | long __weak probe_kernel_read(void *dst, void *src, size_t size) | ||
19 | __attribute__((alias("__probe_kernel_read"))); | ||
20 | |||
21 | long __probe_kernel_read(void *dst, void *src, size_t size) | ||
18 | { | 22 | { |
19 | long ret; | 23 | long ret; |
20 | mm_segment_t old_fs = get_fs(); | 24 | mm_segment_t old_fs = get_fs(); |
@@ -39,7 +43,10 @@ EXPORT_SYMBOL_GPL(probe_kernel_read); | |||
39 | * Safely write to address @dst from the buffer at @src. If a kernel fault | 43 | * Safely write to address @dst from the buffer at @src. If a kernel fault |
40 | * happens, handle that and return -EFAULT. | 44 | * happens, handle that and return -EFAULT. |
41 | */ | 45 | */ |
42 | long notrace __weak probe_kernel_write(void *dst, void *src, size_t size) | 46 | long __weak probe_kernel_write(void *dst, void *src, size_t size) |
47 | __attribute__((alias("__probe_kernel_write"))); | ||
48 | |||
49 | long __probe_kernel_write(void *dst, void *src, size_t size) | ||
43 | { | 50 | { |
44 | long ret; | 51 | long ret; |
45 | mm_segment_t old_fs = get_fs(); | 52 | mm_segment_t old_fs = get_fs(); |
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 488b644e0e8..954032b80be 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -2586,7 +2586,7 @@ static int mem_cgroup_force_empty(struct mem_cgroup *mem, bool free_all) | |||
2586 | if (free_all) | 2586 | if (free_all) |
2587 | goto try_to_free; | 2587 | goto try_to_free; |
2588 | move_account: | 2588 | move_account: |
2589 | while (mem->res.usage > 0) { | 2589 | do { |
2590 | ret = -EBUSY; | 2590 | ret = -EBUSY; |
2591 | if (cgroup_task_count(cgrp) || !list_empty(&cgrp->children)) | 2591 | if (cgroup_task_count(cgrp) || !list_empty(&cgrp->children)) |
2592 | goto out; | 2592 | goto out; |
@@ -2614,8 +2614,8 @@ move_account: | |||
2614 | if (ret == -ENOMEM) | 2614 | if (ret == -ENOMEM) |
2615 | goto try_to_free; | 2615 | goto try_to_free; |
2616 | cond_resched(); | 2616 | cond_resched(); |
2617 | } | 2617 | /* "ret" should also be checked to ensure all lists are empty. */ |
2618 | ret = 0; | 2618 | } while (mem->res.usage > 0 || ret); |
2619 | out: | 2619 | out: |
2620 | css_put(&mem->css); | 2620 | css_put(&mem->css); |
2621 | return ret; | 2621 | return ret; |
@@ -2648,10 +2648,7 @@ try_to_free: | |||
2648 | } | 2648 | } |
2649 | lru_add_drain(); | 2649 | lru_add_drain(); |
2650 | /* try move_account...there may be some *locked* pages. */ | 2650 | /* try move_account...there may be some *locked* pages. */ |
2651 | if (mem->res.usage) | 2651 | goto move_account; |
2652 | goto move_account; | ||
2653 | ret = 0; | ||
2654 | goto out; | ||
2655 | } | 2652 | } |
2656 | 2653 | ||
2657 | int mem_cgroup_force_empty_write(struct cgroup *cont, unsigned int event) | 2654 | int mem_cgroup_force_empty_write(struct cgroup *cont, unsigned int event) |
@@ -1043,6 +1043,46 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, | |||
1043 | } | 1043 | } |
1044 | EXPORT_SYMBOL(do_mmap_pgoff); | 1044 | EXPORT_SYMBOL(do_mmap_pgoff); |
1045 | 1045 | ||
1046 | SYSCALL_DEFINE6(mmap_pgoff, unsigned long, addr, unsigned long, len, | ||
1047 | unsigned long, prot, unsigned long, flags, | ||
1048 | unsigned long, fd, unsigned long, pgoff) | ||
1049 | { | ||
1050 | struct file *file = NULL; | ||
1051 | unsigned long retval = -EBADF; | ||
1052 | |||
1053 | if (!(flags & MAP_ANONYMOUS)) { | ||
1054 | if (unlikely(flags & MAP_HUGETLB)) | ||
1055 | return -EINVAL; | ||
1056 | file = fget(fd); | ||
1057 | if (!file) | ||
1058 | goto out; | ||
1059 | } else if (flags & MAP_HUGETLB) { | ||
1060 | struct user_struct *user = NULL; | ||
1061 | /* | ||
1062 | * VM_NORESERVE is used because the reservations will be | ||
1063 | * taken when vm_ops->mmap() is called | ||
1064 | * A dummy user value is used because we are not locking | ||
1065 | * memory so no accounting is necessary | ||
1066 | */ | ||
1067 | len = ALIGN(len, huge_page_size(&default_hstate)); | ||
1068 | file = hugetlb_file_setup(HUGETLB_ANON_FILE, len, VM_NORESERVE, | ||
1069 | &user, HUGETLB_ANONHUGE_INODE); | ||
1070 | if (IS_ERR(file)) | ||
1071 | return PTR_ERR(file); | ||
1072 | } | ||
1073 | |||
1074 | flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); | ||
1075 | |||
1076 | down_write(¤t->mm->mmap_sem); | ||
1077 | retval = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); | ||
1078 | up_write(¤t->mm->mmap_sem); | ||
1079 | |||
1080 | if (file) | ||
1081 | fput(file); | ||
1082 | out: | ||
1083 | return retval; | ||
1084 | } | ||
1085 | |||
1046 | /* | 1086 | /* |
1047 | * Some shared mappigns will want the pages marked read-only | 1087 | * Some shared mappigns will want the pages marked read-only |
1048 | * to track write events. If so, we'll downgrade vm_page_prot | 1088 | * to track write events. If so, we'll downgrade vm_page_prot |
diff --git a/mm/nommu.c b/mm/nommu.c index 8687973462b..48a2ecfaf05 100644 --- a/mm/nommu.c +++ b/mm/nommu.c | |||
@@ -432,6 +432,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) | |||
432 | /* | 432 | /* |
433 | * Ok, looks good - let it rip. | 433 | * Ok, looks good - let it rip. |
434 | */ | 434 | */ |
435 | flush_icache_range(mm->brk, brk); | ||
435 | return mm->brk = brk; | 436 | return mm->brk = brk; |
436 | } | 437 | } |
437 | 438 | ||
@@ -551,11 +552,11 @@ static void free_page_series(unsigned long from, unsigned long to) | |||
551 | static void __put_nommu_region(struct vm_region *region) | 552 | static void __put_nommu_region(struct vm_region *region) |
552 | __releases(nommu_region_sem) | 553 | __releases(nommu_region_sem) |
553 | { | 554 | { |
554 | kenter("%p{%d}", region, atomic_read(®ion->vm_usage)); | 555 | kenter("%p{%d}", region, region->vm_usage); |
555 | 556 | ||
556 | BUG_ON(!nommu_region_tree.rb_node); | 557 | BUG_ON(!nommu_region_tree.rb_node); |
557 | 558 | ||
558 | if (atomic_dec_and_test(®ion->vm_usage)) { | 559 | if (--region->vm_usage == 0) { |
559 | if (region->vm_top > region->vm_start) | 560 | if (region->vm_top > region->vm_start) |
560 | delete_nommu_region(region); | 561 | delete_nommu_region(region); |
561 | up_write(&nommu_region_sem); | 562 | up_write(&nommu_region_sem); |
@@ -1204,7 +1205,7 @@ unsigned long do_mmap_pgoff(struct file *file, | |||
1204 | if (!vma) | 1205 | if (!vma) |
1205 | goto error_getting_vma; | 1206 | goto error_getting_vma; |
1206 | 1207 | ||
1207 | atomic_set(®ion->vm_usage, 1); | 1208 | region->vm_usage = 1; |
1208 | region->vm_flags = vm_flags; | 1209 | region->vm_flags = vm_flags; |
1209 | region->vm_pgoff = pgoff; | 1210 | region->vm_pgoff = pgoff; |
1210 | 1211 | ||
@@ -1271,7 +1272,7 @@ unsigned long do_mmap_pgoff(struct file *file, | |||
1271 | } | 1272 | } |
1272 | 1273 | ||
1273 | /* we've found a region we can share */ | 1274 | /* we've found a region we can share */ |
1274 | atomic_inc(&pregion->vm_usage); | 1275 | pregion->vm_usage++; |
1275 | vma->vm_region = pregion; | 1276 | vma->vm_region = pregion; |
1276 | start = pregion->vm_start; | 1277 | start = pregion->vm_start; |
1277 | start += (pgoff - pregion->vm_pgoff) << PAGE_SHIFT; | 1278 | start += (pgoff - pregion->vm_pgoff) << PAGE_SHIFT; |
@@ -1288,7 +1289,7 @@ unsigned long do_mmap_pgoff(struct file *file, | |||
1288 | vma->vm_region = NULL; | 1289 | vma->vm_region = NULL; |
1289 | vma->vm_start = 0; | 1290 | vma->vm_start = 0; |
1290 | vma->vm_end = 0; | 1291 | vma->vm_end = 0; |
1291 | atomic_dec(&pregion->vm_usage); | 1292 | pregion->vm_usage--; |
1292 | pregion = NULL; | 1293 | pregion = NULL; |
1293 | goto error_just_free; | 1294 | goto error_just_free; |
1294 | } | 1295 | } |
@@ -1353,10 +1354,14 @@ unsigned long do_mmap_pgoff(struct file *file, | |||
1353 | share: | 1354 | share: |
1354 | add_vma_to_mm(current->mm, vma); | 1355 | add_vma_to_mm(current->mm, vma); |
1355 | 1356 | ||
1356 | up_write(&nommu_region_sem); | 1357 | /* we flush the region from the icache only when the first executable |
1358 | * mapping of it is made */ | ||
1359 | if (vma->vm_flags & VM_EXEC && !region->vm_icache_flushed) { | ||
1360 | flush_icache_range(region->vm_start, region->vm_end); | ||
1361 | region->vm_icache_flushed = true; | ||
1362 | } | ||
1357 | 1363 | ||
1358 | if (prot & PROT_EXEC) | 1364 | up_write(&nommu_region_sem); |
1359 | flush_icache_range(result, result + len); | ||
1360 | 1365 | ||
1361 | kleave(" = %lx", result); | 1366 | kleave(" = %lx", result); |
1362 | return result; | 1367 | return result; |
@@ -1398,6 +1403,31 @@ error_getting_region: | |||
1398 | } | 1403 | } |
1399 | EXPORT_SYMBOL(do_mmap_pgoff); | 1404 | EXPORT_SYMBOL(do_mmap_pgoff); |
1400 | 1405 | ||
1406 | SYSCALL_DEFINE6(mmap_pgoff, unsigned long, addr, unsigned long, len, | ||
1407 | unsigned long, prot, unsigned long, flags, | ||
1408 | unsigned long, fd, unsigned long, pgoff) | ||
1409 | { | ||
1410 | struct file *file = NULL; | ||
1411 | unsigned long retval = -EBADF; | ||
1412 | |||
1413 | if (!(flags & MAP_ANONYMOUS)) { | ||
1414 | file = fget(fd); | ||
1415 | if (!file) | ||
1416 | goto out; | ||
1417 | } | ||
1418 | |||
1419 | flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); | ||
1420 | |||
1421 | down_write(¤t->mm->mmap_sem); | ||
1422 | retval = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); | ||
1423 | up_write(¤t->mm->mmap_sem); | ||
1424 | |||
1425 | if (file) | ||
1426 | fput(file); | ||
1427 | out: | ||
1428 | return retval; | ||
1429 | } | ||
1430 | |||
1401 | /* | 1431 | /* |
1402 | * split a vma into two pieces at address 'addr', a new vma is allocated either | 1432 | * split a vma into two pieces at address 'addr', a new vma is allocated either |
1403 | * for the first part or the tail. | 1433 | * for the first part or the tail. |
@@ -1411,10 +1441,9 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma, | |||
1411 | 1441 | ||
1412 | kenter(""); | 1442 | kenter(""); |
1413 | 1443 | ||
1414 | /* we're only permitted to split anonymous regions that have a single | 1444 | /* we're only permitted to split anonymous regions (these should have |
1415 | * owner */ | 1445 | * only a single usage on the region) */ |
1416 | if (vma->vm_file || | 1446 | if (vma->vm_file) |
1417 | atomic_read(&vma->vm_region->vm_usage) != 1) | ||
1418 | return -ENOMEM; | 1447 | return -ENOMEM; |
1419 | 1448 | ||
1420 | if (mm->map_count >= sysctl_max_map_count) | 1449 | if (mm->map_count >= sysctl_max_map_count) |
@@ -1488,7 +1517,7 @@ static int shrink_vma(struct mm_struct *mm, | |||
1488 | 1517 | ||
1489 | /* cut the backing region down to size */ | 1518 | /* cut the backing region down to size */ |
1490 | region = vma->vm_region; | 1519 | region = vma->vm_region; |
1491 | BUG_ON(atomic_read(®ion->vm_usage) != 1); | 1520 | BUG_ON(region->vm_usage != 1); |
1492 | 1521 | ||
1493 | down_write(&nommu_region_sem); | 1522 | down_write(&nommu_region_sem); |
1494 | delete_nommu_region(region); | 1523 | delete_nommu_region(region); |
@@ -1732,27 +1761,6 @@ void unmap_mapping_range(struct address_space *mapping, | |||
1732 | EXPORT_SYMBOL(unmap_mapping_range); | 1761 | EXPORT_SYMBOL(unmap_mapping_range); |
1733 | 1762 | ||
1734 | /* | 1763 | /* |
1735 | * ask for an unmapped area at which to create a mapping on a file | ||
1736 | */ | ||
1737 | unsigned long get_unmapped_area(struct file *file, unsigned long addr, | ||
1738 | unsigned long len, unsigned long pgoff, | ||
1739 | unsigned long flags) | ||
1740 | { | ||
1741 | unsigned long (*get_area)(struct file *, unsigned long, unsigned long, | ||
1742 | unsigned long, unsigned long); | ||
1743 | |||
1744 | get_area = current->mm->get_unmapped_area; | ||
1745 | if (file && file->f_op && file->f_op->get_unmapped_area) | ||
1746 | get_area = file->f_op->get_unmapped_area; | ||
1747 | |||
1748 | if (!get_area) | ||
1749 | return -ENOSYS; | ||
1750 | |||
1751 | return get_area(file, addr, len, pgoff, flags); | ||
1752 | } | ||
1753 | EXPORT_SYMBOL(get_unmapped_area); | ||
1754 | |||
1755 | /* | ||
1756 | * Check that a process has enough memory to allocate a new virtual | 1764 | * Check that a process has enough memory to allocate a new virtual |
1757 | * mapping. 0 means there is enough memory for the allocation to | 1765 | * mapping. 0 means there is enough memory for the allocation to |
1758 | * succeed and -ENOMEM implies there is not. | 1766 | * succeed and -ENOMEM implies there is not. |
@@ -1891,9 +1899,11 @@ int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, in | |||
1891 | 1899 | ||
1892 | /* only read or write mappings where it is permitted */ | 1900 | /* only read or write mappings where it is permitted */ |
1893 | if (write && vma->vm_flags & VM_MAYWRITE) | 1901 | if (write && vma->vm_flags & VM_MAYWRITE) |
1894 | len -= copy_to_user((void *) addr, buf, len); | 1902 | copy_to_user_page(vma, NULL, addr, |
1903 | (void *) addr, buf, len); | ||
1895 | else if (!write && vma->vm_flags & VM_MAYREAD) | 1904 | else if (!write && vma->vm_flags & VM_MAYREAD) |
1896 | len -= copy_from_user(buf, (void *) addr, len); | 1905 | copy_from_user_page(vma, NULL, addr, |
1906 | buf, (void *) addr, len); | ||
1897 | else | 1907 | else |
1898 | len = 0; | 1908 | len = 0; |
1899 | } else { | 1909 | } else { |
@@ -1904,3 +1914,65 @@ int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, in | |||
1904 | mmput(mm); | 1914 | mmput(mm); |
1905 | return len; | 1915 | return len; |
1906 | } | 1916 | } |
1917 | |||
1918 | /** | ||
1919 | * nommu_shrink_inode_mappings - Shrink the shared mappings on an inode | ||
1920 | * @inode: The inode to check | ||
1921 | * @size: The current filesize of the inode | ||
1922 | * @newsize: The proposed filesize of the inode | ||
1923 | * | ||
1924 | * Check the shared mappings on an inode on behalf of a shrinking truncate to | ||
1925 | * make sure that that any outstanding VMAs aren't broken and then shrink the | ||
1926 | * vm_regions that extend that beyond so that do_mmap_pgoff() doesn't | ||
1927 | * automatically grant mappings that are too large. | ||
1928 | */ | ||
1929 | int nommu_shrink_inode_mappings(struct inode *inode, size_t size, | ||
1930 | size_t newsize) | ||
1931 | { | ||
1932 | struct vm_area_struct *vma; | ||
1933 | struct prio_tree_iter iter; | ||
1934 | struct vm_region *region; | ||
1935 | pgoff_t low, high; | ||
1936 | size_t r_size, r_top; | ||
1937 | |||
1938 | low = newsize >> PAGE_SHIFT; | ||
1939 | high = (size + PAGE_SIZE - 1) >> PAGE_SHIFT; | ||
1940 | |||
1941 | down_write(&nommu_region_sem); | ||
1942 | |||
1943 | /* search for VMAs that fall within the dead zone */ | ||
1944 | vma_prio_tree_foreach(vma, &iter, &inode->i_mapping->i_mmap, | ||
1945 | low, high) { | ||
1946 | /* found one - only interested if it's shared out of the page | ||
1947 | * cache */ | ||
1948 | if (vma->vm_flags & VM_SHARED) { | ||
1949 | up_write(&nommu_region_sem); | ||
1950 | return -ETXTBSY; /* not quite true, but near enough */ | ||
1951 | } | ||
1952 | } | ||
1953 | |||
1954 | /* reduce any regions that overlap the dead zone - if in existence, | ||
1955 | * these will be pointed to by VMAs that don't overlap the dead zone | ||
1956 | * | ||
1957 | * we don't check for any regions that start beyond the EOF as there | ||
1958 | * shouldn't be any | ||
1959 | */ | ||
1960 | vma_prio_tree_foreach(vma, &iter, &inode->i_mapping->i_mmap, | ||
1961 | 0, ULONG_MAX) { | ||
1962 | if (!(vma->vm_flags & VM_SHARED)) | ||
1963 | continue; | ||
1964 | |||
1965 | region = vma->vm_region; | ||
1966 | r_size = region->vm_top - region->vm_start; | ||
1967 | r_top = (region->vm_pgoff << PAGE_SHIFT) + r_size; | ||
1968 | |||
1969 | if (r_top > newsize) { | ||
1970 | region->vm_top -= r_top - newsize; | ||
1971 | if (region->vm_end > region->vm_top) | ||
1972 | region->vm_end = region->vm_top; | ||
1973 | } | ||
1974 | } | ||
1975 | |||
1976 | up_write(&nommu_region_sem); | ||
1977 | return 0; | ||
1978 | } | ||
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 4e9f5cc5fb5..d2a8889b4c5 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -1222,10 +1222,10 @@ again: | |||
1222 | } | 1222 | } |
1223 | spin_lock_irqsave(&zone->lock, flags); | 1223 | spin_lock_irqsave(&zone->lock, flags); |
1224 | page = __rmqueue(zone, order, migratetype); | 1224 | page = __rmqueue(zone, order, migratetype); |
1225 | __mod_zone_page_state(zone, NR_FREE_PAGES, -(1 << order)); | ||
1226 | spin_unlock(&zone->lock); | 1225 | spin_unlock(&zone->lock); |
1227 | if (!page) | 1226 | if (!page) |
1228 | goto failed; | 1227 | goto failed; |
1228 | __mod_zone_page_state(zone, NR_FREE_PAGES, -(1 << order)); | ||
1229 | } | 1229 | } |
1230 | 1230 | ||
1231 | __count_zone_vm_events(PGALLOC, zone, 1 << order); | 1231 | __count_zone_vm_events(PGALLOC, zone, 1 << order); |
@@ -3998,7 +3998,7 @@ void __init add_active_range(unsigned int nid, unsigned long start_pfn, | |||
3998 | } | 3998 | } |
3999 | 3999 | ||
4000 | /* Merge backward if suitable */ | 4000 | /* Merge backward if suitable */ |
4001 | if (start_pfn < early_node_map[i].end_pfn && | 4001 | if (start_pfn < early_node_map[i].start_pfn && |
4002 | end_pfn >= early_node_map[i].start_pfn) { | 4002 | end_pfn >= early_node_map[i].start_pfn) { |
4003 | early_node_map[i].start_pfn = start_pfn; | 4003 | early_node_map[i].start_pfn = start_pfn; |
4004 | return; | 4004 | return; |
diff --git a/mm/percpu.c b/mm/percpu.c index 442010cc91c..083e7c91e5f 100644 --- a/mm/percpu.c +++ b/mm/percpu.c | |||
@@ -1271,7 +1271,7 @@ static void pcpu_reclaim(struct work_struct *work) | |||
1271 | */ | 1271 | */ |
1272 | void free_percpu(void *ptr) | 1272 | void free_percpu(void *ptr) |
1273 | { | 1273 | { |
1274 | void *addr = __pcpu_ptr_to_addr(ptr); | 1274 | void *addr; |
1275 | struct pcpu_chunk *chunk; | 1275 | struct pcpu_chunk *chunk; |
1276 | unsigned long flags; | 1276 | unsigned long flags; |
1277 | int off; | 1277 | int off; |
@@ -1279,6 +1279,8 @@ void free_percpu(void *ptr) | |||
1279 | if (!ptr) | 1279 | if (!ptr) |
1280 | return; | 1280 | return; |
1281 | 1281 | ||
1282 | addr = __pcpu_ptr_to_addr(ptr); | ||
1283 | |||
1282 | spin_lock_irqsave(&pcpu_lock, flags); | 1284 | spin_lock_irqsave(&pcpu_lock, flags); |
1283 | 1285 | ||
1284 | chunk = pcpu_chunk_addr_search(addr); | 1286 | chunk = pcpu_chunk_addr_search(addr); |
@@ -654,7 +654,7 @@ static void init_node_lock_keys(int q) | |||
654 | 654 | ||
655 | l3 = s->cs_cachep->nodelists[q]; | 655 | l3 = s->cs_cachep->nodelists[q]; |
656 | if (!l3 || OFF_SLAB(s->cs_cachep)) | 656 | if (!l3 || OFF_SLAB(s->cs_cachep)) |
657 | return; | 657 | continue; |
658 | lockdep_set_class(&l3->list_lock, &on_slab_l3_key); | 658 | lockdep_set_class(&l3->list_lock, &on_slab_l3_key); |
659 | alc = l3->alien; | 659 | alc = l3->alien; |
660 | /* | 660 | /* |
@@ -665,7 +665,7 @@ static void init_node_lock_keys(int q) | |||
665 | * for alloc_alien_cache, | 665 | * for alloc_alien_cache, |
666 | */ | 666 | */ |
667 | if (!alc || (unsigned long)alc == BAD_ALIEN_MAGIC) | 667 | if (!alc || (unsigned long)alc == BAD_ALIEN_MAGIC) |
668 | return; | 668 | continue; |
669 | for_each_node(r) { | 669 | for_each_node(r) { |
670 | if (alc[r]) | 670 | if (alc[r]) |
671 | lockdep_set_class(&alc[r]->lock, | 671 | lockdep_set_class(&alc[r]->lock, |
diff --git a/mm/truncate.c b/mm/truncate.c index 342deee2268..e87e3724482 100644 --- a/mm/truncate.c +++ b/mm/truncate.c | |||
@@ -522,22 +522,20 @@ EXPORT_SYMBOL_GPL(invalidate_inode_pages2); | |||
522 | */ | 522 | */ |
523 | void truncate_pagecache(struct inode *inode, loff_t old, loff_t new) | 523 | void truncate_pagecache(struct inode *inode, loff_t old, loff_t new) |
524 | { | 524 | { |
525 | if (new < old) { | 525 | struct address_space *mapping = inode->i_mapping; |
526 | struct address_space *mapping = inode->i_mapping; | 526 | |
527 | 527 | /* | |
528 | /* | 528 | * unmap_mapping_range is called twice, first simply for |
529 | * unmap_mapping_range is called twice, first simply for | 529 | * efficiency so that truncate_inode_pages does fewer |
530 | * efficiency so that truncate_inode_pages does fewer | 530 | * single-page unmaps. However after this first call, and |
531 | * single-page unmaps. However after this first call, and | 531 | * before truncate_inode_pages finishes, it is possible for |
532 | * before truncate_inode_pages finishes, it is possible for | 532 | * private pages to be COWed, which remain after |
533 | * private pages to be COWed, which remain after | 533 | * truncate_inode_pages finishes, hence the second |
534 | * truncate_inode_pages finishes, hence the second | 534 | * unmap_mapping_range call must be made for correctness. |
535 | * unmap_mapping_range call must be made for correctness. | 535 | */ |
536 | */ | 536 | unmap_mapping_range(mapping, new + PAGE_SIZE - 1, 0, 1); |
537 | unmap_mapping_range(mapping, new + PAGE_SIZE - 1, 0, 1); | 537 | truncate_inode_pages(mapping, new); |
538 | truncate_inode_pages(mapping, new); | 538 | unmap_mapping_range(mapping, new + PAGE_SIZE - 1, 0, 1); |
539 | unmap_mapping_range(mapping, new + PAGE_SIZE - 1, 0, 1); | ||
540 | } | ||
541 | } | 539 | } |
542 | EXPORT_SYMBOL(truncate_pagecache); | 540 | EXPORT_SYMBOL(truncate_pagecache); |
543 | 541 | ||
@@ -4,10 +4,6 @@ | |||
4 | #include <linux/module.h> | 4 | #include <linux/module.h> |
5 | #include <linux/err.h> | 5 | #include <linux/err.h> |
6 | #include <linux/sched.h> | 6 | #include <linux/sched.h> |
7 | #include <linux/hugetlb.h> | ||
8 | #include <linux/syscalls.h> | ||
9 | #include <linux/mman.h> | ||
10 | #include <linux/file.h> | ||
11 | #include <asm/uaccess.h> | 7 | #include <asm/uaccess.h> |
12 | 8 | ||
13 | #define CREATE_TRACE_POINTS | 9 | #define CREATE_TRACE_POINTS |
@@ -224,7 +220,7 @@ char *strndup_user(const char __user *s, long n) | |||
224 | } | 220 | } |
225 | EXPORT_SYMBOL(strndup_user); | 221 | EXPORT_SYMBOL(strndup_user); |
226 | 222 | ||
227 | #ifndef HAVE_ARCH_PICK_MMAP_LAYOUT | 223 | #if defined(CONFIG_MMU) && !defined(HAVE_ARCH_PICK_MMAP_LAYOUT) |
228 | void arch_pick_mmap_layout(struct mm_struct *mm) | 224 | void arch_pick_mmap_layout(struct mm_struct *mm) |
229 | { | 225 | { |
230 | mm->mmap_base = TASK_UNMAPPED_BASE; | 226 | mm->mmap_base = TASK_UNMAPPED_BASE; |
@@ -272,46 +268,6 @@ int __attribute__((weak)) get_user_pages_fast(unsigned long start, | |||
272 | } | 268 | } |
273 | EXPORT_SYMBOL_GPL(get_user_pages_fast); | 269 | EXPORT_SYMBOL_GPL(get_user_pages_fast); |
274 | 270 | ||
275 | SYSCALL_DEFINE6(mmap_pgoff, unsigned long, addr, unsigned long, len, | ||
276 | unsigned long, prot, unsigned long, flags, | ||
277 | unsigned long, fd, unsigned long, pgoff) | ||
278 | { | ||
279 | struct file * file = NULL; | ||
280 | unsigned long retval = -EBADF; | ||
281 | |||
282 | if (!(flags & MAP_ANONYMOUS)) { | ||
283 | if (unlikely(flags & MAP_HUGETLB)) | ||
284 | return -EINVAL; | ||
285 | file = fget(fd); | ||
286 | if (!file) | ||
287 | goto out; | ||
288 | } else if (flags & MAP_HUGETLB) { | ||
289 | struct user_struct *user = NULL; | ||
290 | /* | ||
291 | * VM_NORESERVE is used because the reservations will be | ||
292 | * taken when vm_ops->mmap() is called | ||
293 | * A dummy user value is used because we are not locking | ||
294 | * memory so no accounting is necessary | ||
295 | */ | ||
296 | len = ALIGN(len, huge_page_size(&default_hstate)); | ||
297 | file = hugetlb_file_setup(HUGETLB_ANON_FILE, len, VM_NORESERVE, | ||
298 | &user, HUGETLB_ANONHUGE_INODE); | ||
299 | if (IS_ERR(file)) | ||
300 | return PTR_ERR(file); | ||
301 | } | ||
302 | |||
303 | flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); | ||
304 | |||
305 | down_write(¤t->mm->mmap_sem); | ||
306 | retval = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); | ||
307 | up_write(¤t->mm->mmap_sem); | ||
308 | |||
309 | if (file) | ||
310 | fput(file); | ||
311 | out: | ||
312 | return retval; | ||
313 | } | ||
314 | |||
315 | /* Tracepoints definitions. */ | 271 | /* Tracepoints definitions. */ |
316 | EXPORT_TRACEPOINT_SYMBOL(kmalloc); | 272 | EXPORT_TRACEPOINT_SYMBOL(kmalloc); |
317 | EXPORT_TRACEPOINT_SYMBOL(kmem_cache_alloc); | 273 | EXPORT_TRACEPOINT_SYMBOL(kmem_cache_alloc); |
diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 37e69295f25..d55d905463e 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c | |||
@@ -555,10 +555,8 @@ static void __purge_vmap_area_lazy(unsigned long *start, unsigned long *end, | |||
555 | } | 555 | } |
556 | rcu_read_unlock(); | 556 | rcu_read_unlock(); |
557 | 557 | ||
558 | if (nr) { | 558 | if (nr) |
559 | BUG_ON(nr > atomic_read(&vmap_lazy_nr)); | ||
560 | atomic_sub(nr, &vmap_lazy_nr); | 559 | atomic_sub(nr, &vmap_lazy_nr); |
561 | } | ||
562 | 560 | ||
563 | if (nr || force_flush) | 561 | if (nr || force_flush) |
564 | flush_tlb_kernel_range(*start, *end); | 562 | flush_tlb_kernel_range(*start, *end); |
diff --git a/mm/vmscan.c b/mm/vmscan.c index 885207a6b6b..c26986c85ce 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -1922,6 +1922,9 @@ static int sleeping_prematurely(pg_data_t *pgdat, int order, long remaining) | |||
1922 | if (!populated_zone(zone)) | 1922 | if (!populated_zone(zone)) |
1923 | continue; | 1923 | continue; |
1924 | 1924 | ||
1925 | if (zone_is_all_unreclaimable(zone)) | ||
1926 | continue; | ||
1927 | |||
1925 | if (!zone_watermark_ok(zone, order, high_wmark_pages(zone), | 1928 | if (!zone_watermark_ok(zone, order, high_wmark_pages(zone), |
1926 | 0, 0)) | 1929 | 0, 0)) |
1927 | return 1; | 1930 | return 1; |
diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c index bd1c65425d4..0b7f262cd14 100644 --- a/net/bridge/netfilter/ebtables.c +++ b/net/bridge/netfilter/ebtables.c | |||
@@ -1406,6 +1406,9 @@ static int do_ebt_set_ctl(struct sock *sk, | |||
1406 | { | 1406 | { |
1407 | int ret; | 1407 | int ret; |
1408 | 1408 | ||
1409 | if (!capable(CAP_NET_ADMIN)) | ||
1410 | return -EPERM; | ||
1411 | |||
1409 | switch(cmd) { | 1412 | switch(cmd) { |
1410 | case EBT_SO_SET_ENTRIES: | 1413 | case EBT_SO_SET_ENTRIES: |
1411 | ret = do_replace(sock_net(sk), user, len); | 1414 | ret = do_replace(sock_net(sk), user, len); |
@@ -1425,6 +1428,9 @@ static int do_ebt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len) | |||
1425 | struct ebt_replace tmp; | 1428 | struct ebt_replace tmp; |
1426 | struct ebt_table *t; | 1429 | struct ebt_table *t; |
1427 | 1430 | ||
1431 | if (!capable(CAP_NET_ADMIN)) | ||
1432 | return -EPERM; | ||
1433 | |||
1428 | if (copy_from_user(&tmp, user, sizeof(tmp))) | 1434 | if (copy_from_user(&tmp, user, sizeof(tmp))) |
1429 | return -EFAULT; | 1435 | return -EFAULT; |
1430 | 1436 | ||
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index a23b45f08ec..de0c2c72642 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c | |||
@@ -250,8 +250,7 @@ struct pktgen_dev { | |||
250 | __u64 count; /* Default No packets to send */ | 250 | __u64 count; /* Default No packets to send */ |
251 | __u64 sofar; /* How many pkts we've sent so far */ | 251 | __u64 sofar; /* How many pkts we've sent so far */ |
252 | __u64 tx_bytes; /* How many bytes we've transmitted */ | 252 | __u64 tx_bytes; /* How many bytes we've transmitted */ |
253 | __u64 errors; /* Errors when trying to transmit, | 253 | __u64 errors; /* Errors when trying to transmit, */ |
254 | pkts will be re-sent */ | ||
255 | 254 | ||
256 | /* runtime counters relating to clone_skb */ | 255 | /* runtime counters relating to clone_skb */ |
257 | 256 | ||
@@ -3465,6 +3464,12 @@ static void pktgen_xmit(struct pktgen_dev *pkt_dev) | |||
3465 | pkt_dev->seq_num++; | 3464 | pkt_dev->seq_num++; |
3466 | pkt_dev->tx_bytes += pkt_dev->last_pkt_size; | 3465 | pkt_dev->tx_bytes += pkt_dev->last_pkt_size; |
3467 | break; | 3466 | break; |
3467 | case NET_XMIT_DROP: | ||
3468 | case NET_XMIT_CN: | ||
3469 | case NET_XMIT_POLICED: | ||
3470 | /* skb has been consumed */ | ||
3471 | pkt_dev->errors++; | ||
3472 | break; | ||
3468 | default: /* Drivers are not supposed to return other values! */ | 3473 | default: /* Drivers are not supposed to return other values! */ |
3469 | if (net_ratelimit()) | 3474 | if (net_ratelimit()) |
3470 | pr_info("pktgen: %s xmit error: %d\n", | 3475 | pr_info("pktgen: %s xmit error: %d\n", |
diff --git a/net/core/sock.c b/net/core/sock.c index 76ff58d43e2..e1f6f225f01 100644 --- a/net/core/sock.c +++ b/net/core/sock.c | |||
@@ -1205,6 +1205,10 @@ struct sock *sk_clone(const struct sock *sk, const gfp_t priority) | |||
1205 | 1205 | ||
1206 | if (newsk->sk_prot->sockets_allocated) | 1206 | if (newsk->sk_prot->sockets_allocated) |
1207 | percpu_counter_inc(newsk->sk_prot->sockets_allocated); | 1207 | percpu_counter_inc(newsk->sk_prot->sockets_allocated); |
1208 | |||
1209 | if (sock_flag(newsk, SOCK_TIMESTAMP) || | ||
1210 | sock_flag(newsk, SOCK_TIMESTAMPING_RX_SOFTWARE)) | ||
1211 | net_enable_timestamp(); | ||
1208 | } | 1212 | } |
1209 | out: | 1213 | out: |
1210 | return newsk; | 1214 | return newsk; |
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c index 5cdbc102a41..040c4f05b65 100644 --- a/net/ipv4/devinet.c +++ b/net/ipv4/devinet.c | |||
@@ -1397,6 +1397,7 @@ static struct devinet_sysctl_table { | |||
1397 | DEVINET_SYSCTL_RW_ENTRY(ACCEPT_SOURCE_ROUTE, | 1397 | DEVINET_SYSCTL_RW_ENTRY(ACCEPT_SOURCE_ROUTE, |
1398 | "accept_source_route"), | 1398 | "accept_source_route"), |
1399 | DEVINET_SYSCTL_RW_ENTRY(ACCEPT_LOCAL, "accept_local"), | 1399 | DEVINET_SYSCTL_RW_ENTRY(ACCEPT_LOCAL, "accept_local"), |
1400 | DEVINET_SYSCTL_RW_ENTRY(SRC_VMARK, "src_valid_mark"), | ||
1400 | DEVINET_SYSCTL_RW_ENTRY(PROXY_ARP, "proxy_arp"), | 1401 | DEVINET_SYSCTL_RW_ENTRY(PROXY_ARP, "proxy_arp"), |
1401 | DEVINET_SYSCTL_RW_ENTRY(MEDIUM_ID, "medium_id"), | 1402 | DEVINET_SYSCTL_RW_ENTRY(MEDIUM_ID, "medium_id"), |
1402 | DEVINET_SYSCTL_RW_ENTRY(BOOTP_RELAY, "bootp_relay"), | 1403 | DEVINET_SYSCTL_RW_ENTRY(BOOTP_RELAY, "bootp_relay"), |
diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c index 3323168ee52..82dbf711d6d 100644 --- a/net/ipv4/fib_frontend.c +++ b/net/ipv4/fib_frontend.c | |||
@@ -252,6 +252,8 @@ int fib_validate_source(__be32 src, __be32 dst, u8 tos, int oif, | |||
252 | no_addr = in_dev->ifa_list == NULL; | 252 | no_addr = in_dev->ifa_list == NULL; |
253 | rpf = IN_DEV_RPFILTER(in_dev); | 253 | rpf = IN_DEV_RPFILTER(in_dev); |
254 | accept_local = IN_DEV_ACCEPT_LOCAL(in_dev); | 254 | accept_local = IN_DEV_ACCEPT_LOCAL(in_dev); |
255 | if (mark && !IN_DEV_SRC_VMARK(in_dev)) | ||
256 | fl.mark = 0; | ||
255 | } | 257 | } |
256 | rcu_read_unlock(); | 258 | rcu_read_unlock(); |
257 | 259 | ||
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index e34013a78ef..3451799e3db 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -254,7 +254,7 @@ int ip_mc_output(struct sk_buff *skb) | |||
254 | */ | 254 | */ |
255 | 255 | ||
256 | if (rt->rt_flags&RTCF_MULTICAST) { | 256 | if (rt->rt_flags&RTCF_MULTICAST) { |
257 | if ((!sk || inet_sk(sk)->mc_loop) | 257 | if (sk_mc_loop(sk) |
258 | #ifdef CONFIG_IP_MROUTE | 258 | #ifdef CONFIG_IP_MROUTE |
259 | /* Small optimization: do not loopback not local frames, | 259 | /* Small optimization: do not loopback not local frames, |
260 | which returned after forwarding; they will be dropped | 260 | which returned after forwarding; they will be dropped |
diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c index df159fffe4b..4bac362b133 100644 --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c | |||
@@ -559,6 +559,11 @@ static inline struct inet6_dev *ipv6_skb_idev(struct sk_buff *skb) | |||
559 | return skb_dst(skb) ? ip6_dst_idev(skb_dst(skb)) : __in6_dev_get(skb->dev); | 559 | return skb_dst(skb) ? ip6_dst_idev(skb_dst(skb)) : __in6_dev_get(skb->dev); |
560 | } | 560 | } |
561 | 561 | ||
562 | static inline struct net *ipv6_skb_net(struct sk_buff *skb) | ||
563 | { | ||
564 | return skb_dst(skb) ? dev_net(skb_dst(skb)->dev) : dev_net(skb->dev); | ||
565 | } | ||
566 | |||
562 | /* Router Alert as of RFC 2711 */ | 567 | /* Router Alert as of RFC 2711 */ |
563 | 568 | ||
564 | static int ipv6_hop_ra(struct sk_buff *skb, int optoff) | 569 | static int ipv6_hop_ra(struct sk_buff *skb, int optoff) |
@@ -580,8 +585,8 @@ static int ipv6_hop_ra(struct sk_buff *skb, int optoff) | |||
580 | static int ipv6_hop_jumbo(struct sk_buff *skb, int optoff) | 585 | static int ipv6_hop_jumbo(struct sk_buff *skb, int optoff) |
581 | { | 586 | { |
582 | const unsigned char *nh = skb_network_header(skb); | 587 | const unsigned char *nh = skb_network_header(skb); |
588 | struct net *net = ipv6_skb_net(skb); | ||
583 | u32 pkt_len; | 589 | u32 pkt_len; |
584 | struct net *net = dev_net(skb_dst(skb)->dev); | ||
585 | 590 | ||
586 | if (nh[optoff + 1] != 4 || (optoff & 3) != 2) { | 591 | if (nh[optoff + 1] != 4 || (optoff & 3) != 2) { |
587 | LIMIT_NETDEBUG(KERN_DEBUG "ipv6_hop_jumbo: wrong jumbo opt length/alignment %d\n", | 592 | LIMIT_NETDEBUG(KERN_DEBUG "ipv6_hop_jumbo: wrong jumbo opt length/alignment %d\n", |
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index cd48801a8d6..eb6d0972863 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
@@ -121,10 +121,9 @@ static int ip6_output2(struct sk_buff *skb) | |||
121 | skb->dev = dev; | 121 | skb->dev = dev; |
122 | 122 | ||
123 | if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { | 123 | if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { |
124 | struct ipv6_pinfo* np = skb->sk ? inet6_sk(skb->sk) : NULL; | ||
125 | struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); | 124 | struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); |
126 | 125 | ||
127 | if (!(dev->flags & IFF_LOOPBACK) && (!np || np->mc_loop) && | 126 | if (!(dev->flags & IFF_LOOPBACK) && sk_mc_loop(skb->sk) && |
128 | ((mroute6_socket(dev_net(dev)) && | 127 | ((mroute6_socket(dev_net(dev)) && |
129 | !(IP6CB(skb)->flags & IP6SKB_FORWARDED)) || | 128 | !(IP6CB(skb)->flags & IP6SKB_FORWARDED)) || |
130 | ipv6_chk_mcast_addr(dev, &ipv6_hdr(skb)->daddr, | 129 | ipv6_chk_mcast_addr(dev, &ipv6_hdr(skb)->daddr, |
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c index 3787455fb69..d7dcee68072 100644 --- a/net/mac80211/ht.c +++ b/net/mac80211/ht.c | |||
@@ -34,9 +34,28 @@ void ieee80211_ht_cap_ie_to_sta_ht_cap(struct ieee80211_supported_band *sband, | |||
34 | 34 | ||
35 | ht_cap->ht_supported = true; | 35 | ht_cap->ht_supported = true; |
36 | 36 | ||
37 | ht_cap->cap = le16_to_cpu(ht_cap_ie->cap_info) & sband->ht_cap.cap; | 37 | /* |
38 | ht_cap->cap &= ~IEEE80211_HT_CAP_SM_PS; | 38 | * The bits listed in this expression should be |
39 | ht_cap->cap |= sband->ht_cap.cap & IEEE80211_HT_CAP_SM_PS; | 39 | * the same for the peer and us, if the station |
40 | * advertises more then we can't use those thus | ||
41 | * we mask them out. | ||
42 | */ | ||
43 | ht_cap->cap = le16_to_cpu(ht_cap_ie->cap_info) & | ||
44 | (sband->ht_cap.cap | | ||
45 | ~(IEEE80211_HT_CAP_LDPC_CODING | | ||
46 | IEEE80211_HT_CAP_SUP_WIDTH_20_40 | | ||
47 | IEEE80211_HT_CAP_GRN_FLD | | ||
48 | IEEE80211_HT_CAP_SGI_20 | | ||
49 | IEEE80211_HT_CAP_SGI_40 | | ||
50 | IEEE80211_HT_CAP_DSSSCCK40)); | ||
51 | /* | ||
52 | * The STBC bits are asymmetric -- if we don't have | ||
53 | * TX then mask out the peer's RX and vice versa. | ||
54 | */ | ||
55 | if (!(sband->ht_cap.cap & IEEE80211_HT_CAP_TX_STBC)) | ||
56 | ht_cap->cap &= ~IEEE80211_HT_CAP_RX_STBC; | ||
57 | if (!(sband->ht_cap.cap & IEEE80211_HT_CAP_RX_STBC)) | ||
58 | ht_cap->cap &= ~IEEE80211_HT_CAP_TX_STBC; | ||
40 | 59 | ||
41 | ampdu_info = ht_cap_ie->ampdu_params_info; | 60 | ampdu_info = ht_cap_ie->ampdu_params_info; |
42 | ht_cap->ampdu_factor = | 61 | ht_cap->ampdu_factor = |
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index 10d13856f86..1f2db647bb5 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c | |||
@@ -382,6 +382,7 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata, | |||
382 | struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, | 382 | struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, |
383 | u8 *bssid,u8 *addr, u32 supp_rates) | 383 | u8 *bssid,u8 *addr, u32 supp_rates) |
384 | { | 384 | { |
385 | struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; | ||
385 | struct ieee80211_local *local = sdata->local; | 386 | struct ieee80211_local *local = sdata->local; |
386 | struct sta_info *sta; | 387 | struct sta_info *sta; |
387 | int band = local->hw.conf.channel->band; | 388 | int band = local->hw.conf.channel->band; |
@@ -397,6 +398,9 @@ struct sta_info *ieee80211_ibss_add_sta(struct ieee80211_sub_if_data *sdata, | |||
397 | return NULL; | 398 | return NULL; |
398 | } | 399 | } |
399 | 400 | ||
401 | if (ifibss->state == IEEE80211_IBSS_MLME_SEARCH) | ||
402 | return NULL; | ||
403 | |||
400 | if (compare_ether_addr(bssid, sdata->u.ibss.bssid)) | 404 | if (compare_ether_addr(bssid, sdata->u.ibss.bssid)) |
401 | return NULL; | 405 | return NULL; |
402 | 406 | ||
diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c index 80c16f6e2af..32abae3ce32 100644 --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c | |||
@@ -15,12 +15,14 @@ | |||
15 | #include <linux/netdevice.h> | 15 | #include <linux/netdevice.h> |
16 | #include <linux/rtnetlink.h> | 16 | #include <linux/rtnetlink.h> |
17 | #include <net/mac80211.h> | 17 | #include <net/mac80211.h> |
18 | #include <net/ieee80211_radiotap.h> | ||
18 | #include "ieee80211_i.h" | 19 | #include "ieee80211_i.h" |
19 | #include "sta_info.h" | 20 | #include "sta_info.h" |
20 | #include "debugfs_netdev.h" | 21 | #include "debugfs_netdev.h" |
21 | #include "mesh.h" | 22 | #include "mesh.h" |
22 | #include "led.h" | 23 | #include "led.h" |
23 | #include "driver-ops.h" | 24 | #include "driver-ops.h" |
25 | #include "wme.h" | ||
24 | 26 | ||
25 | /** | 27 | /** |
26 | * DOC: Interface list locking | 28 | * DOC: Interface list locking |
@@ -314,7 +316,7 @@ static int ieee80211_open(struct net_device *dev) | |||
314 | if (sdata->vif.type == NL80211_IFTYPE_STATION) | 316 | if (sdata->vif.type == NL80211_IFTYPE_STATION) |
315 | ieee80211_queue_work(&local->hw, &sdata->u.mgd.work); | 317 | ieee80211_queue_work(&local->hw, &sdata->u.mgd.work); |
316 | 318 | ||
317 | netif_start_queue(dev); | 319 | netif_tx_start_all_queues(dev); |
318 | 320 | ||
319 | return 0; | 321 | return 0; |
320 | err_del_interface: | 322 | err_del_interface: |
@@ -343,7 +345,7 @@ static int ieee80211_stop(struct net_device *dev) | |||
343 | /* | 345 | /* |
344 | * Stop TX on this interface first. | 346 | * Stop TX on this interface first. |
345 | */ | 347 | */ |
346 | netif_stop_queue(dev); | 348 | netif_tx_stop_all_queues(dev); |
347 | 349 | ||
348 | /* | 350 | /* |
349 | * Now delete all active aggregation sessions. | 351 | * Now delete all active aggregation sessions. |
@@ -644,6 +646,12 @@ static void ieee80211_teardown_sdata(struct net_device *dev) | |||
644 | WARN_ON(flushed); | 646 | WARN_ON(flushed); |
645 | } | 647 | } |
646 | 648 | ||
649 | static u16 ieee80211_netdev_select_queue(struct net_device *dev, | ||
650 | struct sk_buff *skb) | ||
651 | { | ||
652 | return ieee80211_select_queue(IEEE80211_DEV_TO_SUB_IF(dev), skb); | ||
653 | } | ||
654 | |||
647 | static const struct net_device_ops ieee80211_dataif_ops = { | 655 | static const struct net_device_ops ieee80211_dataif_ops = { |
648 | .ndo_open = ieee80211_open, | 656 | .ndo_open = ieee80211_open, |
649 | .ndo_stop = ieee80211_stop, | 657 | .ndo_stop = ieee80211_stop, |
@@ -652,8 +660,38 @@ static const struct net_device_ops ieee80211_dataif_ops = { | |||
652 | .ndo_set_multicast_list = ieee80211_set_multicast_list, | 660 | .ndo_set_multicast_list = ieee80211_set_multicast_list, |
653 | .ndo_change_mtu = ieee80211_change_mtu, | 661 | .ndo_change_mtu = ieee80211_change_mtu, |
654 | .ndo_set_mac_address = eth_mac_addr, | 662 | .ndo_set_mac_address = eth_mac_addr, |
663 | .ndo_select_queue = ieee80211_netdev_select_queue, | ||
655 | }; | 664 | }; |
656 | 665 | ||
666 | static u16 ieee80211_monitor_select_queue(struct net_device *dev, | ||
667 | struct sk_buff *skb) | ||
668 | { | ||
669 | struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); | ||
670 | struct ieee80211_local *local = sdata->local; | ||
671 | struct ieee80211_hdr *hdr; | ||
672 | struct ieee80211_radiotap_header *rtap = (void *)skb->data; | ||
673 | u8 *p; | ||
674 | |||
675 | if (local->hw.queues < 4) | ||
676 | return 0; | ||
677 | |||
678 | if (skb->len < 4 || | ||
679 | skb->len < le16_to_cpu(rtap->it_len) + 2 /* frame control */) | ||
680 | return 0; /* doesn't matter, frame will be dropped */ | ||
681 | |||
682 | hdr = (void *)((u8 *)skb->data + le16_to_cpu(rtap->it_len)); | ||
683 | |||
684 | if (!ieee80211_is_data_qos(hdr->frame_control)) { | ||
685 | skb->priority = 7; | ||
686 | return ieee802_1d_to_ac[skb->priority]; | ||
687 | } | ||
688 | |||
689 | p = ieee80211_get_qos_ctl(hdr); | ||
690 | skb->priority = *p & IEEE80211_QOS_CTL_TAG1D_MASK; | ||
691 | |||
692 | return ieee80211_downgrade_queue(local, skb); | ||
693 | } | ||
694 | |||
657 | static const struct net_device_ops ieee80211_monitorif_ops = { | 695 | static const struct net_device_ops ieee80211_monitorif_ops = { |
658 | .ndo_open = ieee80211_open, | 696 | .ndo_open = ieee80211_open, |
659 | .ndo_stop = ieee80211_stop, | 697 | .ndo_stop = ieee80211_stop, |
@@ -662,6 +700,7 @@ static const struct net_device_ops ieee80211_monitorif_ops = { | |||
662 | .ndo_set_multicast_list = ieee80211_set_multicast_list, | 700 | .ndo_set_multicast_list = ieee80211_set_multicast_list, |
663 | .ndo_change_mtu = ieee80211_change_mtu, | 701 | .ndo_change_mtu = ieee80211_change_mtu, |
664 | .ndo_set_mac_address = eth_mac_addr, | 702 | .ndo_set_mac_address = eth_mac_addr, |
703 | .ndo_select_queue = ieee80211_monitor_select_queue, | ||
665 | }; | 704 | }; |
666 | 705 | ||
667 | static void ieee80211_if_setup(struct net_device *dev) | 706 | static void ieee80211_if_setup(struct net_device *dev) |
@@ -768,8 +807,8 @@ int ieee80211_if_add(struct ieee80211_local *local, const char *name, | |||
768 | 807 | ||
769 | ASSERT_RTNL(); | 808 | ASSERT_RTNL(); |
770 | 809 | ||
771 | ndev = alloc_netdev(sizeof(*sdata) + local->hw.vif_data_size, | 810 | ndev = alloc_netdev_mq(sizeof(*sdata) + local->hw.vif_data_size, |
772 | name, ieee80211_if_setup); | 811 | name, ieee80211_if_setup, local->hw.queues); |
773 | if (!ndev) | 812 | if (!ndev) |
774 | return -ENOMEM; | 813 | return -ENOMEM; |
775 | dev_net_set(ndev, wiphy_net(local->hw.wiphy)); | 814 | dev_net_set(ndev, wiphy_net(local->hw.wiphy)); |
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 8116d1a96a4..0d2d94881f1 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -515,6 +515,8 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) | |||
515 | * and we need some headroom for passing the frame to monitor | 515 | * and we need some headroom for passing the frame to monitor |
516 | * interfaces, but never both at the same time. | 516 | * interfaces, but never both at the same time. |
517 | */ | 517 | */ |
518 | BUILD_BUG_ON(IEEE80211_TX_STATUS_HEADROOM != | ||
519 | sizeof(struct ieee80211_tx_status_rtap_hdr)); | ||
518 | local->tx_headroom = max_t(unsigned int , local->hw.extra_tx_headroom, | 520 | local->tx_headroom = max_t(unsigned int , local->hw.extra_tx_headroom, |
519 | sizeof(struct ieee80211_tx_status_rtap_hdr)); | 521 | sizeof(struct ieee80211_tx_status_rtap_hdr)); |
520 | 522 | ||
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index d8d50fb5e82..05a18f43e1b 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c | |||
@@ -915,6 +915,14 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata, | |||
915 | sdata->u.mgd.flags &= ~(IEEE80211_STA_CONNECTION_POLL | | 915 | sdata->u.mgd.flags &= ~(IEEE80211_STA_CONNECTION_POLL | |
916 | IEEE80211_STA_BEACON_POLL); | 916 | IEEE80211_STA_BEACON_POLL); |
917 | 917 | ||
918 | /* | ||
919 | * Always handle WMM once after association regardless | ||
920 | * of the first value the AP uses. Setting -1 here has | ||
921 | * that effect because the AP values is an unsigned | ||
922 | * 4-bit value. | ||
923 | */ | ||
924 | sdata->u.mgd.wmm_last_param_set = -1; | ||
925 | |||
918 | ieee80211_led_assoc(local, 1); | 926 | ieee80211_led_assoc(local, 1); |
919 | 927 | ||
920 | sdata->vif.bss_conf.assoc = 1; | 928 | sdata->vif.bss_conf.assoc = 1; |
@@ -934,7 +942,7 @@ static void ieee80211_set_associated(struct ieee80211_sub_if_data *sdata, | |||
934 | ieee80211_recalc_ps(local, -1); | 942 | ieee80211_recalc_ps(local, -1); |
935 | mutex_unlock(&local->iflist_mtx); | 943 | mutex_unlock(&local->iflist_mtx); |
936 | 944 | ||
937 | netif_start_queue(sdata->dev); | 945 | netif_tx_start_all_queues(sdata->dev); |
938 | netif_carrier_on(sdata->dev); | 946 | netif_carrier_on(sdata->dev); |
939 | } | 947 | } |
940 | 948 | ||
@@ -1066,7 +1074,7 @@ static void ieee80211_set_disassoc(struct ieee80211_sub_if_data *sdata, | |||
1066 | * time -- we don't want the scan code to enable queues. | 1074 | * time -- we don't want the scan code to enable queues. |
1067 | */ | 1075 | */ |
1068 | 1076 | ||
1069 | netif_stop_queue(sdata->dev); | 1077 | netif_tx_stop_all_queues(sdata->dev); |
1070 | netif_carrier_off(sdata->dev); | 1078 | netif_carrier_off(sdata->dev); |
1071 | 1079 | ||
1072 | rcu_read_lock(); | 1080 | rcu_read_lock(); |
@@ -1955,7 +1963,9 @@ static void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, | |||
1955 | rma = ieee80211_rx_mgmt_disassoc(sdata, mgmt, skb->len); | 1963 | rma = ieee80211_rx_mgmt_disassoc(sdata, mgmt, skb->len); |
1956 | break; | 1964 | break; |
1957 | case IEEE80211_STYPE_ACTION: | 1965 | case IEEE80211_STYPE_ACTION: |
1958 | /* XXX: differentiate, can only happen for CSA now! */ | 1966 | if (mgmt->u.action.category != WLAN_CATEGORY_SPECTRUM_MGMT) |
1967 | break; | ||
1968 | |||
1959 | ieee80211_sta_process_chanswitch(sdata, | 1969 | ieee80211_sta_process_chanswitch(sdata, |
1960 | &mgmt->u.action.u.chan_switch.sw_elem, | 1970 | &mgmt->u.action.u.chan_switch.sw_elem, |
1961 | ifmgd->associated); | 1971 | ifmgd->associated); |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 9f2807aeaf5..82a30c1bf3a 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
@@ -1746,7 +1746,9 @@ ieee80211_rx_h_mesh_fwding(struct ieee80211_rx_data *rx) | |||
1746 | memset(info, 0, sizeof(*info)); | 1746 | memset(info, 0, sizeof(*info)); |
1747 | info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING; | 1747 | info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING; |
1748 | info->control.vif = &rx->sdata->vif; | 1748 | info->control.vif = &rx->sdata->vif; |
1749 | ieee80211_select_queue(local, fwd_skb); | 1749 | skb_set_queue_mapping(skb, |
1750 | ieee80211_select_queue(rx->sdata, fwd_skb)); | ||
1751 | ieee80211_set_qos_hdr(local, skb); | ||
1750 | if (is_multicast_ether_addr(fwd_hdr->addr1)) | 1752 | if (is_multicast_ether_addr(fwd_hdr->addr1)) |
1751 | IEEE80211_IFSTA_MESH_CTR_INC(&sdata->u.mesh, | 1753 | IEEE80211_IFSTA_MESH_CTR_INC(&sdata->u.mesh, |
1752 | fwded_mcast); | 1754 | fwded_mcast); |
@@ -2013,6 +2015,10 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx) | |||
2013 | } | 2015 | } |
2014 | break; | 2016 | break; |
2015 | default: | 2017 | default: |
2018 | /* do not process rejected action frames */ | ||
2019 | if (mgmt->u.action.category & 0x80) | ||
2020 | return RX_DROP_MONITOR; | ||
2021 | |||
2016 | return RX_CONTINUE; | 2022 | return RX_CONTINUE; |
2017 | } | 2023 | } |
2018 | 2024 | ||
diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c index f1a4c716030..f934c9620b7 100644 --- a/net/mac80211/scan.c +++ b/net/mac80211/scan.c | |||
@@ -353,10 +353,10 @@ void ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted) | |||
353 | if (sdata->vif.type == NL80211_IFTYPE_STATION) { | 353 | if (sdata->vif.type == NL80211_IFTYPE_STATION) { |
354 | if (sdata->u.mgd.associated) { | 354 | if (sdata->u.mgd.associated) { |
355 | ieee80211_scan_ps_disable(sdata); | 355 | ieee80211_scan_ps_disable(sdata); |
356 | netif_wake_queue(sdata->dev); | 356 | netif_tx_wake_all_queues(sdata->dev); |
357 | } | 357 | } |
358 | } else | 358 | } else |
359 | netif_wake_queue(sdata->dev); | 359 | netif_tx_wake_all_queues(sdata->dev); |
360 | 360 | ||
361 | /* re-enable beaconing */ | 361 | /* re-enable beaconing */ |
362 | if (sdata->vif.type == NL80211_IFTYPE_AP || | 362 | if (sdata->vif.type == NL80211_IFTYPE_AP || |
@@ -411,7 +411,7 @@ static int ieee80211_start_sw_scan(struct ieee80211_local *local) | |||
411 | * are handled in the scan state machine | 411 | * are handled in the scan state machine |
412 | */ | 412 | */ |
413 | if (sdata->vif.type != NL80211_IFTYPE_STATION) | 413 | if (sdata->vif.type != NL80211_IFTYPE_STATION) |
414 | netif_stop_queue(sdata->dev); | 414 | netif_tx_stop_all_queues(sdata->dev); |
415 | } | 415 | } |
416 | mutex_unlock(&local->iflist_mtx); | 416 | mutex_unlock(&local->iflist_mtx); |
417 | 417 | ||
@@ -575,7 +575,7 @@ static void ieee80211_scan_state_leave_oper_channel(struct ieee80211_local *loca | |||
575 | continue; | 575 | continue; |
576 | 576 | ||
577 | if (sdata->vif.type == NL80211_IFTYPE_STATION) { | 577 | if (sdata->vif.type == NL80211_IFTYPE_STATION) { |
578 | netif_stop_queue(sdata->dev); | 578 | netif_tx_stop_all_queues(sdata->dev); |
579 | if (sdata->u.mgd.associated) | 579 | if (sdata->u.mgd.associated) |
580 | ieee80211_scan_ps_enable(sdata); | 580 | ieee80211_scan_ps_enable(sdata); |
581 | } | 581 | } |
@@ -610,7 +610,7 @@ static void ieee80211_scan_state_enter_oper_channel(struct ieee80211_local *loca | |||
610 | if (sdata->vif.type == NL80211_IFTYPE_STATION) { | 610 | if (sdata->vif.type == NL80211_IFTYPE_STATION) { |
611 | if (sdata->u.mgd.associated) | 611 | if (sdata->u.mgd.associated) |
612 | ieee80211_scan_ps_disable(sdata); | 612 | ieee80211_scan_ps_disable(sdata); |
613 | netif_wake_queue(sdata->dev); | 613 | netif_tx_wake_all_queues(sdata->dev); |
614 | } | 614 | } |
615 | } | 615 | } |
616 | mutex_unlock(&local->iflist_mtx); | 616 | mutex_unlock(&local->iflist_mtx); |
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 8834cc93c71..ac210b58670 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c | |||
@@ -1419,6 +1419,10 @@ static bool need_dynamic_ps(struct ieee80211_local *local) | |||
1419 | if (!local->ps_sdata) | 1419 | if (!local->ps_sdata) |
1420 | return false; | 1420 | return false; |
1421 | 1421 | ||
1422 | /* No point if we're going to suspend */ | ||
1423 | if (local->quiescing) | ||
1424 | return false; | ||
1425 | |||
1422 | return true; | 1426 | return true; |
1423 | } | 1427 | } |
1424 | 1428 | ||
@@ -1508,7 +1512,7 @@ static void ieee80211_xmit(struct ieee80211_sub_if_data *sdata, | |||
1508 | return; | 1512 | return; |
1509 | } | 1513 | } |
1510 | 1514 | ||
1511 | ieee80211_select_queue(local, skb); | 1515 | ieee80211_set_qos_hdr(local, skb); |
1512 | ieee80211_tx(sdata, skb, false); | 1516 | ieee80211_tx(sdata, skb, false); |
1513 | rcu_read_unlock(); | 1517 | rcu_read_unlock(); |
1514 | } | 1518 | } |
@@ -2287,6 +2291,9 @@ void ieee80211_tx_skb(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) | |||
2287 | skb_set_network_header(skb, 0); | 2291 | skb_set_network_header(skb, 0); |
2288 | skb_set_transport_header(skb, 0); | 2292 | skb_set_transport_header(skb, 0); |
2289 | 2293 | ||
2294 | /* send all internal mgmt frames on VO */ | ||
2295 | skb_set_queue_mapping(skb, 0); | ||
2296 | |||
2290 | /* | 2297 | /* |
2291 | * The other path calling ieee80211_xmit is from the tasklet, | 2298 | * The other path calling ieee80211_xmit is from the tasklet, |
2292 | * and while we can handle concurrent transmissions locking | 2299 | * and while we can handle concurrent transmissions locking |
diff --git a/net/mac80211/util.c b/net/mac80211/util.c index 78a6e924c7e..3848140313f 100644 --- a/net/mac80211/util.c +++ b/net/mac80211/util.c | |||
@@ -269,6 +269,7 @@ static void __ieee80211_wake_queue(struct ieee80211_hw *hw, int queue, | |||
269 | enum queue_stop_reason reason) | 269 | enum queue_stop_reason reason) |
270 | { | 270 | { |
271 | struct ieee80211_local *local = hw_to_local(hw); | 271 | struct ieee80211_local *local = hw_to_local(hw); |
272 | struct ieee80211_sub_if_data *sdata; | ||
272 | 273 | ||
273 | if (WARN_ON(queue >= hw->queues)) | 274 | if (WARN_ON(queue >= hw->queues)) |
274 | return; | 275 | return; |
@@ -281,6 +282,11 @@ static void __ieee80211_wake_queue(struct ieee80211_hw *hw, int queue, | |||
281 | 282 | ||
282 | if (!skb_queue_empty(&local->pending[queue])) | 283 | if (!skb_queue_empty(&local->pending[queue])) |
283 | tasklet_schedule(&local->tx_pending_tasklet); | 284 | tasklet_schedule(&local->tx_pending_tasklet); |
285 | |||
286 | rcu_read_lock(); | ||
287 | list_for_each_entry_rcu(sdata, &local->interfaces, list) | ||
288 | netif_tx_wake_queue(netdev_get_tx_queue(sdata->dev, queue)); | ||
289 | rcu_read_unlock(); | ||
284 | } | 290 | } |
285 | 291 | ||
286 | void ieee80211_wake_queue_by_reason(struct ieee80211_hw *hw, int queue, | 292 | void ieee80211_wake_queue_by_reason(struct ieee80211_hw *hw, int queue, |
@@ -305,11 +311,17 @@ static void __ieee80211_stop_queue(struct ieee80211_hw *hw, int queue, | |||
305 | enum queue_stop_reason reason) | 311 | enum queue_stop_reason reason) |
306 | { | 312 | { |
307 | struct ieee80211_local *local = hw_to_local(hw); | 313 | struct ieee80211_local *local = hw_to_local(hw); |
314 | struct ieee80211_sub_if_data *sdata; | ||
308 | 315 | ||
309 | if (WARN_ON(queue >= hw->queues)) | 316 | if (WARN_ON(queue >= hw->queues)) |
310 | return; | 317 | return; |
311 | 318 | ||
312 | __set_bit(reason, &local->queue_stop_reasons[queue]); | 319 | __set_bit(reason, &local->queue_stop_reasons[queue]); |
320 | |||
321 | rcu_read_lock(); | ||
322 | list_for_each_entry_rcu(sdata, &local->interfaces, list) | ||
323 | netif_tx_stop_queue(netdev_get_tx_queue(sdata->dev, queue)); | ||
324 | rcu_read_unlock(); | ||
313 | } | 325 | } |
314 | 326 | ||
315 | void ieee80211_stop_queue_by_reason(struct ieee80211_hw *hw, int queue, | 327 | void ieee80211_stop_queue_by_reason(struct ieee80211_hw *hw, int queue, |
@@ -1039,7 +1051,19 @@ int ieee80211_reconfig(struct ieee80211_local *local) | |||
1039 | 1051 | ||
1040 | /* restart hardware */ | 1052 | /* restart hardware */ |
1041 | if (local->open_count) { | 1053 | if (local->open_count) { |
1054 | /* | ||
1055 | * Upon resume hardware can sometimes be goofy due to | ||
1056 | * various platform / driver / bus issues, so restarting | ||
1057 | * the device may at times not work immediately. Propagate | ||
1058 | * the error. | ||
1059 | */ | ||
1042 | res = drv_start(local); | 1060 | res = drv_start(local); |
1061 | if (res) { | ||
1062 | WARN(local->suspended, "Harware became unavailable " | ||
1063 | "upon resume. This is could be a software issue" | ||
1064 | "prior to suspend or a harware issue\n"); | ||
1065 | return res; | ||
1066 | } | ||
1043 | 1067 | ||
1044 | ieee80211_led_radio(local, true); | 1068 | ieee80211_led_radio(local, true); |
1045 | } | 1069 | } |
diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c index b19b7696f3a..79d887dae73 100644 --- a/net/mac80211/wme.c +++ b/net/mac80211/wme.c | |||
@@ -44,22 +44,69 @@ static int wme_downgrade_ac(struct sk_buff *skb) | |||
44 | } | 44 | } |
45 | 45 | ||
46 | 46 | ||
47 | /* Indicate which queue to use. */ | 47 | /* Indicate which queue to use. */ |
48 | static u16 classify80211(struct ieee80211_local *local, struct sk_buff *skb) | 48 | u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata, |
49 | struct sk_buff *skb) | ||
49 | { | 50 | { |
50 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; | 51 | struct ieee80211_local *local = sdata->local; |
52 | struct sta_info *sta = NULL; | ||
53 | u32 sta_flags = 0; | ||
54 | const u8 *ra = NULL; | ||
55 | bool qos = false; | ||
51 | 56 | ||
52 | if (!ieee80211_is_data(hdr->frame_control)) { | 57 | if (local->hw.queues < 4 || skb->len < 6) { |
53 | /* management frames go on AC_VO queue, but are sent | 58 | skb->priority = 0; /* required for correct WPA/11i MIC */ |
54 | * without QoS control fields */ | 59 | return min_t(u16, local->hw.queues - 1, |
55 | return 0; | 60 | ieee802_1d_to_ac[skb->priority]); |
61 | } | ||
62 | |||
63 | rcu_read_lock(); | ||
64 | switch (sdata->vif.type) { | ||
65 | case NL80211_IFTYPE_AP_VLAN: | ||
66 | rcu_read_lock(); | ||
67 | sta = rcu_dereference(sdata->u.vlan.sta); | ||
68 | if (sta) | ||
69 | sta_flags = get_sta_flags(sta); | ||
70 | rcu_read_unlock(); | ||
71 | if (sta) | ||
72 | break; | ||
73 | case NL80211_IFTYPE_AP: | ||
74 | ra = skb->data; | ||
75 | break; | ||
76 | case NL80211_IFTYPE_WDS: | ||
77 | ra = sdata->u.wds.remote_addr; | ||
78 | break; | ||
79 | #ifdef CONFIG_MAC80211_MESH | ||
80 | case NL80211_IFTYPE_MESH_POINT: | ||
81 | /* | ||
82 | * XXX: This is clearly broken ... but already was before, | ||
83 | * because ieee80211_fill_mesh_addresses() would clear A1 | ||
84 | * except for multicast addresses. | ||
85 | */ | ||
86 | break; | ||
87 | #endif | ||
88 | case NL80211_IFTYPE_STATION: | ||
89 | ra = sdata->u.mgd.bssid; | ||
90 | break; | ||
91 | case NL80211_IFTYPE_ADHOC: | ||
92 | ra = skb->data; | ||
93 | break; | ||
94 | default: | ||
95 | break; | ||
56 | } | 96 | } |
57 | 97 | ||
58 | if (0 /* injected */) { | 98 | if (!sta && ra && !is_multicast_ether_addr(ra)) { |
59 | /* use AC from radiotap */ | 99 | sta = sta_info_get(local, ra); |
100 | if (sta) | ||
101 | sta_flags = get_sta_flags(sta); | ||
60 | } | 102 | } |
61 | 103 | ||
62 | if (!ieee80211_is_data_qos(hdr->frame_control)) { | 104 | if (sta_flags & WLAN_STA_WME) |
105 | qos = true; | ||
106 | |||
107 | rcu_read_unlock(); | ||
108 | |||
109 | if (!qos) { | ||
63 | skb->priority = 0; /* required for correct WPA/11i MIC */ | 110 | skb->priority = 0; /* required for correct WPA/11i MIC */ |
64 | return ieee802_1d_to_ac[skb->priority]; | 111 | return ieee802_1d_to_ac[skb->priority]; |
65 | } | 112 | } |
@@ -68,6 +115,12 @@ static u16 classify80211(struct ieee80211_local *local, struct sk_buff *skb) | |||
68 | * data frame has */ | 115 | * data frame has */ |
69 | skb->priority = cfg80211_classify8021d(skb); | 116 | skb->priority = cfg80211_classify8021d(skb); |
70 | 117 | ||
118 | return ieee80211_downgrade_queue(local, skb); | ||
119 | } | ||
120 | |||
121 | u16 ieee80211_downgrade_queue(struct ieee80211_local *local, | ||
122 | struct sk_buff *skb) | ||
123 | { | ||
71 | /* in case we are a client verify acm is not set for this ac */ | 124 | /* in case we are a client verify acm is not set for this ac */ |
72 | while (unlikely(local->wmm_acm & BIT(skb->priority))) { | 125 | while (unlikely(local->wmm_acm & BIT(skb->priority))) { |
73 | if (wme_downgrade_ac(skb)) { | 126 | if (wme_downgrade_ac(skb)) { |
@@ -85,24 +138,17 @@ static u16 classify80211(struct ieee80211_local *local, struct sk_buff *skb) | |||
85 | return ieee802_1d_to_ac[skb->priority]; | 138 | return ieee802_1d_to_ac[skb->priority]; |
86 | } | 139 | } |
87 | 140 | ||
88 | void ieee80211_select_queue(struct ieee80211_local *local, struct sk_buff *skb) | 141 | void ieee80211_set_qos_hdr(struct ieee80211_local *local, struct sk_buff *skb) |
89 | { | 142 | { |
90 | struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data; | 143 | struct ieee80211_hdr *hdr = (void *)skb->data; |
91 | u16 queue; | 144 | |
92 | u8 tid; | 145 | /* Fill in the QoS header if there is one. */ |
93 | |||
94 | queue = classify80211(local, skb); | ||
95 | if (unlikely(queue >= local->hw.queues)) | ||
96 | queue = local->hw.queues - 1; | ||
97 | |||
98 | /* | ||
99 | * Now we know the 1d priority, fill in the QoS header if | ||
100 | * there is one (and we haven't done this before). | ||
101 | */ | ||
102 | if (ieee80211_is_data_qos(hdr->frame_control)) { | 146 | if (ieee80211_is_data_qos(hdr->frame_control)) { |
103 | u8 *p = ieee80211_get_qos_ctl(hdr); | 147 | u8 *p = ieee80211_get_qos_ctl(hdr); |
104 | u8 ack_policy = 0; | 148 | u8 ack_policy = 0, tid; |
149 | |||
105 | tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK; | 150 | tid = skb->priority & IEEE80211_QOS_CTL_TAG1D_MASK; |
151 | |||
106 | if (unlikely(local->wifi_wme_noack_test)) | 152 | if (unlikely(local->wifi_wme_noack_test)) |
107 | ack_policy |= QOS_CONTROL_ACK_POLICY_NOACK << | 153 | ack_policy |= QOS_CONTROL_ACK_POLICY_NOACK << |
108 | QOS_CONTROL_ACK_POLICY_SHIFT; | 154 | QOS_CONTROL_ACK_POLICY_SHIFT; |
@@ -110,6 +156,4 @@ void ieee80211_select_queue(struct ieee80211_local *local, struct sk_buff *skb) | |||
110 | *p++ = ack_policy | tid; | 156 | *p++ = ack_policy | tid; |
111 | *p = 0; | 157 | *p = 0; |
112 | } | 158 | } |
113 | |||
114 | skb_set_queue_mapping(skb, queue); | ||
115 | } | 159 | } |
diff --git a/net/mac80211/wme.h b/net/mac80211/wme.h index d4fd87ca511..6053b1c9fee 100644 --- a/net/mac80211/wme.h +++ b/net/mac80211/wme.h | |||
@@ -20,7 +20,11 @@ | |||
20 | 20 | ||
21 | extern const int ieee802_1d_to_ac[8]; | 21 | extern const int ieee802_1d_to_ac[8]; |
22 | 22 | ||
23 | void ieee80211_select_queue(struct ieee80211_local *local, | 23 | u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata, |
24 | struct sk_buff *skb); | 24 | struct sk_buff *skb); |
25 | void ieee80211_set_qos_hdr(struct ieee80211_local *local, struct sk_buff *skb); | ||
26 | u16 ieee80211_downgrade_queue(struct ieee80211_local *local, | ||
27 | struct sk_buff *skb); | ||
28 | |||
25 | 29 | ||
26 | #endif /* _WME_H */ | 30 | #endif /* _WME_H */ |
diff --git a/net/netfilter/ipvs/Kconfig b/net/netfilter/ipvs/Kconfig index 79a69805221..f2d76238b9b 100644 --- a/net/netfilter/ipvs/Kconfig +++ b/net/netfilter/ipvs/Kconfig | |||
@@ -112,7 +112,8 @@ config IP_VS_RR | |||
112 | module, choose M here. If unsure, say N. | 112 | module, choose M here. If unsure, say N. |
113 | 113 | ||
114 | config IP_VS_WRR | 114 | config IP_VS_WRR |
115 | tristate "weighted round-robin scheduling" | 115 | tristate "weighted round-robin scheduling" |
116 | select GCD | ||
116 | ---help--- | 117 | ---help--- |
117 | The weighted robin-robin scheduling algorithm directs network | 118 | The weighted robin-robin scheduling algorithm directs network |
118 | connections to different real servers based on server weights | 119 | connections to different real servers based on server weights |
diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c index 6bde12da2fe..c37ac2d7bec 100644 --- a/net/netfilter/ipvs/ip_vs_ctl.c +++ b/net/netfilter/ipvs/ip_vs_ctl.c | |||
@@ -2077,6 +2077,10 @@ do_ip_vs_set_ctl(struct sock *sk, int cmd, void __user *user, unsigned int len) | |||
2077 | if (!capable(CAP_NET_ADMIN)) | 2077 | if (!capable(CAP_NET_ADMIN)) |
2078 | return -EPERM; | 2078 | return -EPERM; |
2079 | 2079 | ||
2080 | if (cmd < IP_VS_BASE_CTL || cmd > IP_VS_SO_SET_MAX) | ||
2081 | return -EINVAL; | ||
2082 | if (len < 0 || len > MAX_ARG_LEN) | ||
2083 | return -EINVAL; | ||
2080 | if (len != set_arglen[SET_CMDID(cmd)]) { | 2084 | if (len != set_arglen[SET_CMDID(cmd)]) { |
2081 | pr_err("set_ctl: len %u != %u\n", | 2085 | pr_err("set_ctl: len %u != %u\n", |
2082 | len, set_arglen[SET_CMDID(cmd)]); | 2086 | len, set_arglen[SET_CMDID(cmd)]); |
@@ -2352,17 +2356,25 @@ do_ip_vs_get_ctl(struct sock *sk, int cmd, void __user *user, int *len) | |||
2352 | { | 2356 | { |
2353 | unsigned char arg[128]; | 2357 | unsigned char arg[128]; |
2354 | int ret = 0; | 2358 | int ret = 0; |
2359 | unsigned int copylen; | ||
2355 | 2360 | ||
2356 | if (!capable(CAP_NET_ADMIN)) | 2361 | if (!capable(CAP_NET_ADMIN)) |
2357 | return -EPERM; | 2362 | return -EPERM; |
2358 | 2363 | ||
2364 | if (cmd < IP_VS_BASE_CTL || cmd > IP_VS_SO_GET_MAX) | ||
2365 | return -EINVAL; | ||
2366 | |||
2359 | if (*len < get_arglen[GET_CMDID(cmd)]) { | 2367 | if (*len < get_arglen[GET_CMDID(cmd)]) { |
2360 | pr_err("get_ctl: len %u < %u\n", | 2368 | pr_err("get_ctl: len %u < %u\n", |
2361 | *len, get_arglen[GET_CMDID(cmd)]); | 2369 | *len, get_arglen[GET_CMDID(cmd)]); |
2362 | return -EINVAL; | 2370 | return -EINVAL; |
2363 | } | 2371 | } |
2364 | 2372 | ||
2365 | if (copy_from_user(arg, user, get_arglen[GET_CMDID(cmd)]) != 0) | 2373 | copylen = get_arglen[GET_CMDID(cmd)]; |
2374 | if (copylen > 128) | ||
2375 | return -EINVAL; | ||
2376 | |||
2377 | if (copy_from_user(arg, user, copylen) != 0) | ||
2366 | return -EFAULT; | 2378 | return -EFAULT; |
2367 | 2379 | ||
2368 | if (mutex_lock_interruptible(&__ip_vs_mutex)) | 2380 | if (mutex_lock_interruptible(&__ip_vs_mutex)) |
diff --git a/net/netfilter/ipvs/ip_vs_wrr.c b/net/netfilter/ipvs/ip_vs_wrr.c index 6182e8ea0be..3c115fc1978 100644 --- a/net/netfilter/ipvs/ip_vs_wrr.c +++ b/net/netfilter/ipvs/ip_vs_wrr.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/module.h> | 24 | #include <linux/module.h> |
25 | #include <linux/kernel.h> | 25 | #include <linux/kernel.h> |
26 | #include <linux/net.h> | 26 | #include <linux/net.h> |
27 | #include <linux/gcd.h> | ||
27 | 28 | ||
28 | #include <net/ip_vs.h> | 29 | #include <net/ip_vs.h> |
29 | 30 | ||
@@ -38,20 +39,6 @@ struct ip_vs_wrr_mark { | |||
38 | }; | 39 | }; |
39 | 40 | ||
40 | 41 | ||
41 | /* | ||
42 | * Get the gcd of server weights | ||
43 | */ | ||
44 | static int gcd(int a, int b) | ||
45 | { | ||
46 | int c; | ||
47 | |||
48 | while ((c = a % b)) { | ||
49 | a = b; | ||
50 | b = c; | ||
51 | } | ||
52 | return b; | ||
53 | } | ||
54 | |||
55 | static int ip_vs_wrr_gcd_weight(struct ip_vs_service *svc) | 42 | static int ip_vs_wrr_gcd_weight(struct ip_vs_service *svc) |
56 | { | 43 | { |
57 | struct ip_vs_dest *dest; | 44 | struct ip_vs_dest *dest; |
diff --git a/net/netfilter/nf_conntrack_ftp.c b/net/netfilter/nf_conntrack_ftp.c index 38ea7ef3ccd..f0732aa18e4 100644 --- a/net/netfilter/nf_conntrack_ftp.c +++ b/net/netfilter/nf_conntrack_ftp.c | |||
@@ -323,24 +323,24 @@ static void update_nl_seq(struct nf_conn *ct, u32 nl_seq, | |||
323 | struct nf_ct_ftp_master *info, int dir, | 323 | struct nf_ct_ftp_master *info, int dir, |
324 | struct sk_buff *skb) | 324 | struct sk_buff *skb) |
325 | { | 325 | { |
326 | unsigned int i, oldest = NUM_SEQ_TO_REMEMBER; | 326 | unsigned int i, oldest; |
327 | 327 | ||
328 | /* Look for oldest: if we find exact match, we're done. */ | 328 | /* Look for oldest: if we find exact match, we're done. */ |
329 | for (i = 0; i < info->seq_aft_nl_num[dir]; i++) { | 329 | for (i = 0; i < info->seq_aft_nl_num[dir]; i++) { |
330 | if (info->seq_aft_nl[dir][i] == nl_seq) | 330 | if (info->seq_aft_nl[dir][i] == nl_seq) |
331 | return; | 331 | return; |
332 | |||
333 | if (oldest == info->seq_aft_nl_num[dir] || | ||
334 | before(info->seq_aft_nl[dir][i], | ||
335 | info->seq_aft_nl[dir][oldest])) | ||
336 | oldest = i; | ||
337 | } | 332 | } |
338 | 333 | ||
339 | if (info->seq_aft_nl_num[dir] < NUM_SEQ_TO_REMEMBER) { | 334 | if (info->seq_aft_nl_num[dir] < NUM_SEQ_TO_REMEMBER) { |
340 | info->seq_aft_nl[dir][info->seq_aft_nl_num[dir]++] = nl_seq; | 335 | info->seq_aft_nl[dir][info->seq_aft_nl_num[dir]++] = nl_seq; |
341 | } else if (oldest != NUM_SEQ_TO_REMEMBER && | 336 | } else { |
342 | after(nl_seq, info->seq_aft_nl[dir][oldest])) { | 337 | if (before(info->seq_aft_nl[dir][0], info->seq_aft_nl[dir][1])) |
343 | info->seq_aft_nl[dir][oldest] = nl_seq; | 338 | oldest = 0; |
339 | else | ||
340 | oldest = 1; | ||
341 | |||
342 | if (after(nl_seq, info->seq_aft_nl[dir][oldest])) | ||
343 | info->seq_aft_nl[dir][oldest] = nl_seq; | ||
344 | } | 344 | } |
345 | } | 345 | } |
346 | 346 | ||
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index e0516a22be2..f126d18dbdc 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c | |||
@@ -1021,8 +1021,20 @@ static int tpacket_snd(struct packet_sock *po, struct msghdr *msg) | |||
1021 | 1021 | ||
1022 | status = TP_STATUS_SEND_REQUEST; | 1022 | status = TP_STATUS_SEND_REQUEST; |
1023 | err = dev_queue_xmit(skb); | 1023 | err = dev_queue_xmit(skb); |
1024 | if (unlikely(err > 0 && (err = net_xmit_errno(err)) != 0)) | 1024 | if (unlikely(err > 0)) { |
1025 | goto out_xmit; | 1025 | err = net_xmit_errno(err); |
1026 | if (err && __packet_get_status(po, ph) == | ||
1027 | TP_STATUS_AVAILABLE) { | ||
1028 | /* skb was destructed already */ | ||
1029 | skb = NULL; | ||
1030 | goto out_status; | ||
1031 | } | ||
1032 | /* | ||
1033 | * skb was dropped but not destructed yet; | ||
1034 | * let's treat it like congestion or err < 0 | ||
1035 | */ | ||
1036 | err = 0; | ||
1037 | } | ||
1026 | packet_increment_head(&po->tx_ring); | 1038 | packet_increment_head(&po->tx_ring); |
1027 | len_sum += tp_len; | 1039 | len_sum += tp_len; |
1028 | } while (likely((ph != NULL) || | 1040 | } while (likely((ph != NULL) || |
@@ -1033,9 +1045,6 @@ static int tpacket_snd(struct packet_sock *po, struct msghdr *msg) | |||
1033 | err = len_sum; | 1045 | err = len_sum; |
1034 | goto out_put; | 1046 | goto out_put; |
1035 | 1047 | ||
1036 | out_xmit: | ||
1037 | skb->destructor = sock_wfree; | ||
1038 | atomic_dec(&po->tx_ring.pending); | ||
1039 | out_status: | 1048 | out_status: |
1040 | __packet_set_status(po, ph, status); | 1049 | __packet_set_status(po, ph, status); |
1041 | kfree_skb(skb); | 1050 | kfree_skb(skb); |
diff --git a/net/rose/rose_loopback.c b/net/rose/rose_loopback.c index 114df6eec8c..968e8bac1b5 100644 --- a/net/rose/rose_loopback.c +++ b/net/rose/rose_loopback.c | |||
@@ -75,7 +75,7 @@ static void rose_loopback_timer(unsigned long param) | |||
75 | lci_i = ((skb->data[0] << 8) & 0xF00) + ((skb->data[1] << 0) & 0x0FF); | 75 | lci_i = ((skb->data[0] << 8) & 0xF00) + ((skb->data[1] << 0) & 0x0FF); |
76 | frametype = skb->data[2]; | 76 | frametype = skb->data[2]; |
77 | dest = (rose_address *)(skb->data + 4); | 77 | dest = (rose_address *)(skb->data + 4); |
78 | lci_o = 0xFFF - lci_i; | 78 | lci_o = ROSE_DEFAULT_MAXVC + 1 - lci_i; |
79 | 79 | ||
80 | skb_reset_transport_header(skb); | 80 | skb_reset_transport_header(skb); |
81 | 81 | ||
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 89ab66e5474..67fdac9d2d3 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c | |||
@@ -2087,8 +2087,7 @@ static int sctp_setsockopt_autoclose(struct sock *sk, char __user *optval, | |||
2087 | if (copy_from_user(&sp->autoclose, optval, optlen)) | 2087 | if (copy_from_user(&sp->autoclose, optval, optlen)) |
2088 | return -EFAULT; | 2088 | return -EFAULT; |
2089 | /* make sure it won't exceed MAX_SCHEDULE_TIMEOUT */ | 2089 | /* make sure it won't exceed MAX_SCHEDULE_TIMEOUT */ |
2090 | if (sp->autoclose > (MAX_SCHEDULE_TIMEOUT / HZ) ) | 2090 | sp->autoclose = min_t(long, sp->autoclose, MAX_SCHEDULE_TIMEOUT / HZ); |
2091 | sp->autoclose = (__u32)(MAX_SCHEDULE_TIMEOUT / HZ) ; | ||
2092 | 2091 | ||
2093 | return 0; | 2092 | return 0; |
2094 | } | 2093 | } |
diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c index 3c3c50f38a1..f7a7f8380e3 100644 --- a/net/sunrpc/auth_gss/auth_gss.c +++ b/net/sunrpc/auth_gss/auth_gss.c | |||
@@ -644,7 +644,22 @@ gss_pipe_downcall(struct file *filp, const char __user *src, size_t mlen) | |||
644 | p = gss_fill_context(p, end, ctx, gss_msg->auth->mech); | 644 | p = gss_fill_context(p, end, ctx, gss_msg->auth->mech); |
645 | if (IS_ERR(p)) { | 645 | if (IS_ERR(p)) { |
646 | err = PTR_ERR(p); | 646 | err = PTR_ERR(p); |
647 | gss_msg->msg.errno = (err == -EAGAIN) ? -EAGAIN : -EACCES; | 647 | switch (err) { |
648 | case -EACCES: | ||
649 | gss_msg->msg.errno = err; | ||
650 | err = mlen; | ||
651 | break; | ||
652 | case -EFAULT: | ||
653 | case -ENOMEM: | ||
654 | case -EINVAL: | ||
655 | case -ENOSYS: | ||
656 | gss_msg->msg.errno = -EAGAIN; | ||
657 | break; | ||
658 | default: | ||
659 | printk(KERN_CRIT "%s: bad return from " | ||
660 | "gss_fill_context: %zd\n", __func__, err); | ||
661 | BUG(); | ||
662 | } | ||
648 | goto err_release_msg; | 663 | goto err_release_msg; |
649 | } | 664 | } |
650 | gss_msg->ctx = gss_get_ctx(ctx); | 665 | gss_msg->ctx = gss_get_ctx(ctx); |
diff --git a/net/sunrpc/auth_gss/gss_krb5_mech.c b/net/sunrpc/auth_gss/gss_krb5_mech.c index ef45eba2248..2deb0ed72ff 100644 --- a/net/sunrpc/auth_gss/gss_krb5_mech.c +++ b/net/sunrpc/auth_gss/gss_krb5_mech.c | |||
@@ -131,8 +131,10 @@ gss_import_sec_context_kerberos(const void *p, | |||
131 | struct krb5_ctx *ctx; | 131 | struct krb5_ctx *ctx; |
132 | int tmp; | 132 | int tmp; |
133 | 133 | ||
134 | if (!(ctx = kzalloc(sizeof(*ctx), GFP_NOFS))) | 134 | if (!(ctx = kzalloc(sizeof(*ctx), GFP_NOFS))) { |
135 | p = ERR_PTR(-ENOMEM); | ||
135 | goto out_err; | 136 | goto out_err; |
137 | } | ||
136 | 138 | ||
137 | p = simple_get_bytes(p, end, &ctx->initiate, sizeof(ctx->initiate)); | 139 | p = simple_get_bytes(p, end, &ctx->initiate, sizeof(ctx->initiate)); |
138 | if (IS_ERR(p)) | 140 | if (IS_ERR(p)) |
diff --git a/net/sunrpc/auth_gss/gss_mech_switch.c b/net/sunrpc/auth_gss/gss_mech_switch.c index 6efbb0cd3c7..76e4c6f4ac3 100644 --- a/net/sunrpc/auth_gss/gss_mech_switch.c +++ b/net/sunrpc/auth_gss/gss_mech_switch.c | |||
@@ -252,7 +252,7 @@ gss_import_sec_context(const void *input_token, size_t bufsize, | |||
252 | struct gss_ctx **ctx_id) | 252 | struct gss_ctx **ctx_id) |
253 | { | 253 | { |
254 | if (!(*ctx_id = kzalloc(sizeof(**ctx_id), GFP_KERNEL))) | 254 | if (!(*ctx_id = kzalloc(sizeof(**ctx_id), GFP_KERNEL))) |
255 | return GSS_S_FAILURE; | 255 | return -ENOMEM; |
256 | (*ctx_id)->mech_type = gss_mech_get(mech); | 256 | (*ctx_id)->mech_type = gss_mech_get(mech); |
257 | 257 | ||
258 | return mech->gm_ops | 258 | return mech->gm_ops |
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c index 1c924ee0a1e..7d1f9e928f6 100644 --- a/net/sunrpc/svc_xprt.c +++ b/net/sunrpc/svc_xprt.c | |||
@@ -699,7 +699,8 @@ int svc_recv(struct svc_rqst *rqstp, long timeout) | |||
699 | spin_unlock_bh(&pool->sp_lock); | 699 | spin_unlock_bh(&pool->sp_lock); |
700 | 700 | ||
701 | len = 0; | 701 | len = 0; |
702 | if (test_bit(XPT_LISTENER, &xprt->xpt_flags)) { | 702 | if (test_bit(XPT_LISTENER, &xprt->xpt_flags) && |
703 | !test_bit(XPT_CLOSE, &xprt->xpt_flags)) { | ||
703 | struct svc_xprt *newxpt; | 704 | struct svc_xprt *newxpt; |
704 | newxpt = xprt->xpt_ops->xpo_accept(xprt); | 705 | newxpt = xprt->xpt_ops->xpo_accept(xprt); |
705 | if (newxpt) { | 706 | if (newxpt) { |
diff --git a/net/wireless/core.c b/net/wireless/core.c index c2a2c563d21..92b81244248 100644 --- a/net/wireless/core.c +++ b/net/wireless/core.c | |||
@@ -745,9 +745,9 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb, | |||
745 | mutex_unlock(&rdev->devlist_mtx); | 745 | mutex_unlock(&rdev->devlist_mtx); |
746 | dev_put(dev); | 746 | dev_put(dev); |
747 | } | 747 | } |
748 | #ifdef CONFIG_CFG80211_WEXT | ||
749 | cfg80211_lock_rdev(rdev); | 748 | cfg80211_lock_rdev(rdev); |
750 | mutex_lock(&rdev->devlist_mtx); | 749 | mutex_lock(&rdev->devlist_mtx); |
750 | #ifdef CONFIG_CFG80211_WEXT | ||
751 | wdev_lock(wdev); | 751 | wdev_lock(wdev); |
752 | switch (wdev->iftype) { | 752 | switch (wdev->iftype) { |
753 | case NL80211_IFTYPE_ADHOC: | 753 | case NL80211_IFTYPE_ADHOC: |
@@ -760,10 +760,10 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb, | |||
760 | break; | 760 | break; |
761 | } | 761 | } |
762 | wdev_unlock(wdev); | 762 | wdev_unlock(wdev); |
763 | #endif | ||
763 | rdev->opencount++; | 764 | rdev->opencount++; |
764 | mutex_unlock(&rdev->devlist_mtx); | 765 | mutex_unlock(&rdev->devlist_mtx); |
765 | cfg80211_unlock_rdev(rdev); | 766 | cfg80211_unlock_rdev(rdev); |
766 | #endif | ||
767 | break; | 767 | break; |
768 | case NETDEV_UNREGISTER: | 768 | case NETDEV_UNREGISTER: |
769 | /* | 769 | /* |
diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c index 1001db4912f..82e6002c8d6 100644 --- a/net/wireless/mlme.c +++ b/net/wireless/mlme.c | |||
@@ -93,7 +93,18 @@ void cfg80211_send_rx_assoc(struct net_device *dev, const u8 *buf, size_t len) | |||
93 | } | 93 | } |
94 | } | 94 | } |
95 | 95 | ||
96 | WARN_ON(!bss); | 96 | /* |
97 | * We might be coming here because the driver reported | ||
98 | * a successful association at the same time as the | ||
99 | * user requested a deauth. In that case, we will have | ||
100 | * removed the BSS from the auth_bsses list due to the | ||
101 | * deauth request when the assoc response makes it. If | ||
102 | * the two code paths acquire the lock the other way | ||
103 | * around, that's just the standard situation of a | ||
104 | * deauth being requested while connected. | ||
105 | */ | ||
106 | if (!bss) | ||
107 | goto out; | ||
97 | } else if (wdev->conn) { | 108 | } else if (wdev->conn) { |
98 | cfg80211_sme_failed_assoc(wdev); | 109 | cfg80211_sme_failed_assoc(wdev); |
99 | /* | 110 | /* |
diff --git a/net/wireless/reg.c b/net/wireless/reg.c index baa898add28..7a0754c92df 100644 --- a/net/wireless/reg.c +++ b/net/wireless/reg.c | |||
@@ -1690,7 +1690,7 @@ int regulatory_hint_user(const char *alpha2) | |||
1690 | request->wiphy_idx = WIPHY_IDX_STALE; | 1690 | request->wiphy_idx = WIPHY_IDX_STALE; |
1691 | request->alpha2[0] = alpha2[0]; | 1691 | request->alpha2[0] = alpha2[0]; |
1692 | request->alpha2[1] = alpha2[1]; | 1692 | request->alpha2[1] = alpha2[1]; |
1693 | request->initiator = NL80211_REGDOM_SET_BY_USER, | 1693 | request->initiator = NL80211_REGDOM_SET_BY_USER; |
1694 | 1694 | ||
1695 | queue_regulatory_request(request); | 1695 | queue_regulatory_request(request); |
1696 | 1696 | ||
diff --git a/net/wireless/scan.c b/net/wireless/scan.c index 12dfa62aad1..0c2cbbebca9 100644 --- a/net/wireless/scan.c +++ b/net/wireless/scan.c | |||
@@ -601,7 +601,7 @@ int cfg80211_wext_siwscan(struct net_device *dev, | |||
601 | struct cfg80211_registered_device *rdev; | 601 | struct cfg80211_registered_device *rdev; |
602 | struct wiphy *wiphy; | 602 | struct wiphy *wiphy; |
603 | struct iw_scan_req *wreq = NULL; | 603 | struct iw_scan_req *wreq = NULL; |
604 | struct cfg80211_scan_request *creq; | 604 | struct cfg80211_scan_request *creq = NULL; |
605 | int i, err, n_channels = 0; | 605 | int i, err, n_channels = 0; |
606 | enum ieee80211_band band; | 606 | enum ieee80211_band band; |
607 | 607 | ||
@@ -694,8 +694,10 @@ int cfg80211_wext_siwscan(struct net_device *dev, | |||
694 | /* translate "Scan for SSID" request */ | 694 | /* translate "Scan for SSID" request */ |
695 | if (wreq) { | 695 | if (wreq) { |
696 | if (wrqu->data.flags & IW_SCAN_THIS_ESSID) { | 696 | if (wrqu->data.flags & IW_SCAN_THIS_ESSID) { |
697 | if (wreq->essid_len > IEEE80211_MAX_SSID_LEN) | 697 | if (wreq->essid_len > IEEE80211_MAX_SSID_LEN) { |
698 | return -EINVAL; | 698 | err = -EINVAL; |
699 | goto out; | ||
700 | } | ||
699 | memcpy(creq->ssids[0].ssid, wreq->essid, wreq->essid_len); | 701 | memcpy(creq->ssids[0].ssid, wreq->essid, wreq->essid_len); |
700 | creq->ssids[0].ssid_len = wreq->essid_len; | 702 | creq->ssids[0].ssid_len = wreq->essid_len; |
701 | } | 703 | } |
@@ -707,12 +709,15 @@ int cfg80211_wext_siwscan(struct net_device *dev, | |||
707 | err = rdev->ops->scan(wiphy, dev, creq); | 709 | err = rdev->ops->scan(wiphy, dev, creq); |
708 | if (err) { | 710 | if (err) { |
709 | rdev->scan_req = NULL; | 711 | rdev->scan_req = NULL; |
710 | kfree(creq); | 712 | /* creq will be freed below */ |
711 | } else { | 713 | } else { |
712 | nl80211_send_scan_start(rdev, dev); | 714 | nl80211_send_scan_start(rdev, dev); |
715 | /* creq now owned by driver */ | ||
716 | creq = NULL; | ||
713 | dev_hold(dev); | 717 | dev_hold(dev); |
714 | } | 718 | } |
715 | out: | 719 | out: |
720 | kfree(creq); | ||
716 | cfg80211_unlock_rdev(rdev); | 721 | cfg80211_unlock_rdev(rdev); |
717 | return err; | 722 | return err; |
718 | } | 723 | } |
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index cb81ca35b0d..4725a549ad4 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c | |||
@@ -1445,7 +1445,7 @@ static struct dst_entry *xfrm_bundle_create(struct xfrm_policy *policy, | |||
1445 | if (!dev) | 1445 | if (!dev) |
1446 | goto free_dst; | 1446 | goto free_dst; |
1447 | 1447 | ||
1448 | /* Copy neighbout for reachability confirmation */ | 1448 | /* Copy neighbour for reachability confirmation */ |
1449 | dst0->neighbour = neigh_clone(dst->neighbour); | 1449 | dst0->neighbour = neigh_clone(dst->neighbour); |
1450 | 1450 | ||
1451 | xfrm_init_path((struct xfrm_dst *)dst0, dst, nfheader_len); | 1451 | xfrm_init_path((struct xfrm_dst *)dst0, dst, nfheader_len); |
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index cd815ac2a50..f9bdf264473 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib | |||
@@ -219,8 +219,13 @@ for F in $1; do \ | |||
219 | fsize=$$(stat -c "%s" $$F); \ | 219 | fsize=$$(stat -c "%s" $$F); \ |
220 | dec_size=$$(expr $$dec_size + $$fsize); \ | 220 | dec_size=$$(expr $$dec_size + $$fsize); \ |
221 | done; \ | 221 | done; \ |
222 | printf "%08x" $$dec_size | \ | 222 | printf "%08x\n" $$dec_size | \ |
223 | sed 's/\(..\)\(..\)\(..\)\(..\)/\\\\x\4\\\\x\3\\\\x\2\\\\x\1/g' \ | 223 | sed 's/\(..\)/\1 /g' | { \ |
224 | read ch0 ch1 ch2 ch3; \ | ||
225 | for ch in $$ch3 $$ch2 $$ch1 $$ch0; do \ | ||
226 | printf '%s%03o' '\\' $$((0x$$ch)); \ | ||
227 | done; \ | ||
228 | } \ | ||
224 | ) | 229 | ) |
225 | 230 | ||
226 | quiet_cmd_bzip2 = BZIP2 $@ | 231 | quiet_cmd_bzip2 = BZIP2 $@ |
@@ -235,3 +240,8 @@ quiet_cmd_lzma = LZMA $@ | |||
235 | cmd_lzma = (cat $(filter-out FORCE,$^) | \ | 240 | cmd_lzma = (cat $(filter-out FORCE,$^) | \ |
236 | lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ | 241 | lzma -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ |
237 | (rm -f $@ ; false) | 242 | (rm -f $@ ; false) |
243 | |||
244 | quiet_cmd_lzo = LZO $@ | ||
245 | cmd_lzo = (cat $(filter-out FORCE,$^) | \ | ||
246 | lzop -9 && $(call size_append, $(filter-out FORCE,$^))) > $@ || \ | ||
247 | (rm -f $@ ; false) | ||
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index bc4114f1ab3..3257d3d9676 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl | |||
@@ -1,5 +1,5 @@ | |||
1 | #!/usr/bin/perl -w | 1 | #!/usr/bin/perl -w |
2 | # (c) 2001, Dave Jones. <davej@redhat.com> (the file handling bit) | 2 | # (c) 2001, Dave Jones. (the file handling bit) |
3 | # (c) 2005, Joel Schopp <jschopp@austin.ibm.com> (the ugly bit) | 3 | # (c) 2005, Joel Schopp <jschopp@austin.ibm.com> (the ugly bit) |
4 | # (c) 2007,2008, Andy Whitcroft <apw@uk.ibm.com> (new conditions, test suite) | 4 | # (c) 2007,2008, Andy Whitcroft <apw@uk.ibm.com> (new conditions, test suite) |
5 | # (c) 2008,2009, Andy Whitcroft <apw@canonical.com> | 5 | # (c) 2008,2009, Andy Whitcroft <apw@canonical.com> |
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl index 445e8845f0a..090f2483970 100755 --- a/scripts/get_maintainer.pl +++ b/scripts/get_maintainer.pl | |||
@@ -296,46 +296,56 @@ my @status = (); | |||
296 | 296 | ||
297 | foreach my $file (@files) { | 297 | foreach my $file (@files) { |
298 | 298 | ||
299 | #Do not match excluded file patterns | 299 | my %hash; |
300 | 300 | my $tvi = find_first_section(); | |
301 | my $exclude = 0; | 301 | while ($tvi < @typevalue) { |
302 | foreach my $line (@typevalue) { | 302 | my $start = find_starting_index($tvi); |
303 | if ($line =~ m/^(\C):\s*(.*)/) { | 303 | my $end = find_ending_index($tvi); |
304 | my $type = $1; | 304 | my $exclude = 0; |
305 | my $value = $2; | 305 | my $i; |
306 | if ($type eq 'X') { | 306 | |
307 | if (file_match_pattern($file, $value)) { | 307 | #Do not match excluded file patterns |
308 | $exclude = 1; | ||
309 | last; | ||
310 | } | ||
311 | } | ||
312 | } | ||
313 | } | ||
314 | 308 | ||
315 | if (!$exclude) { | 309 | for ($i = $start; $i < $end; $i++) { |
316 | my $tvi = 0; | 310 | my $line = $typevalue[$i]; |
317 | my %hash; | ||
318 | foreach my $line (@typevalue) { | ||
319 | if ($line =~ m/^(\C):\s*(.*)/) { | 311 | if ($line =~ m/^(\C):\s*(.*)/) { |
320 | my $type = $1; | 312 | my $type = $1; |
321 | my $value = $2; | 313 | my $value = $2; |
322 | if ($type eq 'F') { | 314 | if ($type eq 'X') { |
323 | if (file_match_pattern($file, $value)) { | 315 | if (file_match_pattern($file, $value)) { |
324 | my $value_pd = ($value =~ tr@/@@); | 316 | $exclude = 1; |
325 | my $file_pd = ($file =~ tr@/@@); | ||
326 | $value_pd++ if (substr($value,-1,1) ne "/"); | ||
327 | if ($pattern_depth == 0 || | ||
328 | (($file_pd - $value_pd) < $pattern_depth)) { | ||
329 | $hash{$tvi} = $value_pd; | ||
330 | } | ||
331 | } | 317 | } |
332 | } | 318 | } |
333 | } | 319 | } |
334 | $tvi++; | ||
335 | } | 320 | } |
336 | foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) { | 321 | |
337 | add_categories($line); | 322 | if (!$exclude) { |
323 | for ($i = $start; $i < $end; $i++) { | ||
324 | my $line = $typevalue[$i]; | ||
325 | if ($line =~ m/^(\C):\s*(.*)/) { | ||
326 | my $type = $1; | ||
327 | my $value = $2; | ||
328 | if ($type eq 'F') { | ||
329 | if (file_match_pattern($file, $value)) { | ||
330 | my $value_pd = ($value =~ tr@/@@); | ||
331 | my $file_pd = ($file =~ tr@/@@); | ||
332 | $value_pd++ if (substr($value,-1,1) ne "/"); | ||
333 | if ($pattern_depth == 0 || | ||
334 | (($file_pd - $value_pd) < $pattern_depth)) { | ||
335 | $hash{$tvi} = $value_pd; | ||
336 | } | ||
337 | } | ||
338 | } | ||
339 | } | ||
340 | } | ||
338 | } | 341 | } |
342 | |||
343 | $tvi += ($end - $start); | ||
344 | |||
345 | } | ||
346 | |||
347 | foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) { | ||
348 | add_categories($line); | ||
339 | } | 349 | } |
340 | 350 | ||
341 | if ($email && $email_git) { | 351 | if ($email && $email_git) { |
@@ -570,6 +580,20 @@ sub format_email { | |||
570 | return $formatted_email; | 580 | return $formatted_email; |
571 | } | 581 | } |
572 | 582 | ||
583 | sub find_first_section { | ||
584 | my $index = 0; | ||
585 | |||
586 | while ($index < @typevalue) { | ||
587 | my $tv = $typevalue[$index]; | ||
588 | if (($tv =~ m/^(\C):\s*(.*)/)) { | ||
589 | last; | ||
590 | } | ||
591 | $index++; | ||
592 | } | ||
593 | |||
594 | return $index; | ||
595 | } | ||
596 | |||
573 | sub find_starting_index { | 597 | sub find_starting_index { |
574 | my ($index) = @_; | 598 | my ($index) = @_; |
575 | 599 | ||
diff --git a/scripts/markup_oops.pl b/scripts/markup_oops.pl index 5f0fcb712e2..ce3e40b01e4 100644 --- a/scripts/markup_oops.pl +++ b/scripts/markup_oops.pl | |||
@@ -154,7 +154,7 @@ while (<STDIN>) { | |||
154 | if ($line =~ /RIP: 0010:\[\<([a-z0-9]+)\>\]/) { | 154 | if ($line =~ /RIP: 0010:\[\<([a-z0-9]+)\>\]/) { |
155 | $target = $1; | 155 | $target = $1; |
156 | } | 156 | } |
157 | if ($line =~ /EIP is at ([a-zA-Z0-9\_]+)\+(0x[0-9a-f]+)\/0x[a-f0-9]/) { | 157 | if ($line =~ /EIP is at ([a-zA-Z0-9\_]+)\+0x([0-9a-f]+)\/0x[a-f0-9]/) { |
158 | $function = $1; | 158 | $function = $1; |
159 | $func_offset = $2; | 159 | $func_offset = $2; |
160 | } | 160 | } |
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c index 6f426afbc52..220213e603d 100644 --- a/scripts/mod/file2alias.c +++ b/scripts/mod/file2alias.c | |||
@@ -804,7 +804,7 @@ static inline int sym_is(const char *symbol, const char *name) | |||
804 | match = strstr(symbol, name); | 804 | match = strstr(symbol, name); |
805 | if (!match) | 805 | if (!match) |
806 | return 0; | 806 | return 0; |
807 | return match[strlen(symbol)] == '\0'; | 807 | return match[strlen(name)] == '\0'; |
808 | } | 808 | } |
809 | 809 | ||
810 | static void do_table(void *symval, unsigned long size, | 810 | static void do_table(void *symval, unsigned long size, |
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl index 92f09fe9639..ea6f6e3adae 100755 --- a/scripts/recordmcount.pl +++ b/scripts/recordmcount.pl | |||
@@ -194,7 +194,7 @@ sub check_objcopy | |||
194 | } | 194 | } |
195 | } | 195 | } |
196 | 196 | ||
197 | if ($arch eq "x86") { | 197 | if ($arch =~ /(x86(_64)?)|(i386)/) { |
198 | if ($bits == 64) { | 198 | if ($bits == 64) { |
199 | $arch = "x86_64"; | 199 | $arch = "x86_64"; |
200 | } else { | 200 | } else { |
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 7a374c2eb04..9a2ee845e9d 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
@@ -2365,7 +2365,7 @@ static void selinux_bprm_committing_creds(struct linux_binprm *bprm) | |||
2365 | initrlim = init_task.signal->rlim + i; | 2365 | initrlim = init_task.signal->rlim + i; |
2366 | rlim->rlim_cur = min(rlim->rlim_max, initrlim->rlim_cur); | 2366 | rlim->rlim_cur = min(rlim->rlim_max, initrlim->rlim_cur); |
2367 | } | 2367 | } |
2368 | update_rlimit_cpu(rlim->rlim_cur); | 2368 | update_rlimit_cpu(current->signal->rlim[RLIMIT_CPU].rlim_cur); |
2369 | } | 2369 | } |
2370 | } | 2370 | } |
2371 | 2371 | ||
diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c index 8a00ade8516..2aceebf5f35 100644 --- a/security/tomoyo/tomoyo.c +++ b/security/tomoyo/tomoyo.c | |||
@@ -80,9 +80,8 @@ static int tomoyo_bprm_check_security(struct linux_binprm *bprm) | |||
80 | return tomoyo_find_next_domain(bprm); | 80 | return tomoyo_find_next_domain(bprm); |
81 | /* | 81 | /* |
82 | * Read permission is checked against interpreters using next domain. | 82 | * Read permission is checked against interpreters using next domain. |
83 | * '1' is the result of open_to_namei_flags(O_RDONLY). | ||
84 | */ | 83 | */ |
85 | return tomoyo_check_open_permission(domain, &bprm->file->f_path, 1); | 84 | return tomoyo_check_open_permission(domain, &bprm->file->f_path, O_RDONLY); |
86 | } | 85 | } |
87 | 86 | ||
88 | static int tomoyo_path_truncate(struct path *path, loff_t length, | 87 | static int tomoyo_path_truncate(struct path *path, loff_t length, |
@@ -184,10 +183,6 @@ static int tomoyo_file_fcntl(struct file *file, unsigned int cmd, | |||
184 | static int tomoyo_dentry_open(struct file *f, const struct cred *cred) | 183 | static int tomoyo_dentry_open(struct file *f, const struct cred *cred) |
185 | { | 184 | { |
186 | int flags = f->f_flags; | 185 | int flags = f->f_flags; |
187 | |||
188 | if ((flags + 1) & O_ACCMODE) | ||
189 | flags++; | ||
190 | flags |= f->f_flags & (O_APPEND | O_TRUNC); | ||
191 | /* Don't check read permission here if called from do_execve(). */ | 186 | /* Don't check read permission here if called from do_execve(). */ |
192 | if (current->in_execve) | 187 | if (current->in_execve) |
193 | return 0; | 188 | return 0; |
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c index c5699863643..656e474dca4 100644 --- a/sound/arm/aaci.c +++ b/sound/arm/aaci.c | |||
@@ -441,6 +441,7 @@ static int aaci_pcm_hw_params(struct snd_pcm_substream *substream, | |||
441 | struct snd_pcm_hw_params *params) | 441 | struct snd_pcm_hw_params *params) |
442 | { | 442 | { |
443 | int err; | 443 | int err; |
444 | struct aaci *aaci = substream->private_data; | ||
444 | 445 | ||
445 | aaci_pcm_hw_free(substream); | 446 | aaci_pcm_hw_free(substream); |
446 | if (aacirun->pcm_open) { | 447 | if (aacirun->pcm_open) { |
@@ -560,7 +561,6 @@ static int aaci_pcm_open(struct snd_pcm_substream *substream) | |||
560 | static int aaci_pcm_playback_hw_params(struct snd_pcm_substream *substream, | 561 | static int aaci_pcm_playback_hw_params(struct snd_pcm_substream *substream, |
561 | struct snd_pcm_hw_params *params) | 562 | struct snd_pcm_hw_params *params) |
562 | { | 563 | { |
563 | struct aaci *aaci = substream->private_data; | ||
564 | struct aaci_runtime *aacirun = substream->runtime->private_data; | 564 | struct aaci_runtime *aacirun = substream->runtime->private_data; |
565 | unsigned int channels = params_channels(params); | 565 | unsigned int channels = params_channels(params); |
566 | int ret; | 566 | int ret; |
@@ -659,7 +659,6 @@ static struct snd_pcm_ops aaci_playback_ops = { | |||
659 | static int aaci_pcm_capture_hw_params(struct snd_pcm_substream *substream, | 659 | static int aaci_pcm_capture_hw_params(struct snd_pcm_substream *substream, |
660 | struct snd_pcm_hw_params *params) | 660 | struct snd_pcm_hw_params *params) |
661 | { | 661 | { |
662 | struct aaci *aaci = substream->private_data; | ||
663 | struct aaci_runtime *aacirun = substream->runtime->private_data; | 662 | struct aaci_runtime *aacirun = substream->runtime->private_data; |
664 | int ret; | 663 | int ret; |
665 | 664 | ||
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 29ab46a12e1..25b0641e6b8 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c | |||
@@ -1918,13 +1918,13 @@ int snd_pcm_hw_constraints_complete(struct snd_pcm_substream *substream) | |||
1918 | 1918 | ||
1919 | err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_RATE, | 1919 | err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_RATE, |
1920 | hw->rate_min, hw->rate_max); | 1920 | hw->rate_min, hw->rate_max); |
1921 | if (err < 0) | 1921 | if (err < 0) |
1922 | return err; | 1922 | return err; |
1923 | 1923 | ||
1924 | err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_BYTES, | 1924 | err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIOD_BYTES, |
1925 | hw->period_bytes_min, hw->period_bytes_max); | 1925 | hw->period_bytes_min, hw->period_bytes_max); |
1926 | if (err < 0) | 1926 | if (err < 0) |
1927 | return err; | 1927 | return err; |
1928 | 1928 | ||
1929 | err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIODS, | 1929 | err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_PERIODS, |
1930 | hw->periods_min, hw->periods_max); | 1930 | hw->periods_min, hw->periods_max); |
diff --git a/sound/core/sound.c b/sound/core/sound.c index 7872a02f6ca..563d1967a0a 100644 --- a/sound/core/sound.c +++ b/sound/core/sound.c | |||
@@ -468,5 +468,5 @@ static void __exit alsa_sound_exit(void) | |||
468 | unregister_chrdev(major, "alsa"); | 468 | unregister_chrdev(major, "alsa"); |
469 | } | 469 | } |
470 | 470 | ||
471 | module_init(alsa_sound_init) | 471 | subsys_initcall(alsa_sound_init); |
472 | module_exit(alsa_sound_exit) | 472 | module_exit(alsa_sound_exit); |
diff --git a/sound/core/sound_oss.c b/sound/core/sound_oss.c index 7fe12264ff8..0c164e5e432 100644 --- a/sound/core/sound_oss.c +++ b/sound/core/sound_oss.c | |||
@@ -93,7 +93,7 @@ static int snd_oss_kernel_minor(int type, struct snd_card *card, int dev) | |||
93 | default: | 93 | default: |
94 | return -EINVAL; | 94 | return -EINVAL; |
95 | } | 95 | } |
96 | if (snd_BUG_ON(minor < 0 || minor >= SNDRV_OSS_MINORS)) | 96 | if (minor < 0 || minor >= SNDRV_OSS_MINORS) |
97 | return -EINVAL; | 97 | return -EINVAL; |
98 | return minor; | 98 | return minor; |
99 | } | 99 | } |
diff --git a/sound/isa/sb/emu8000.c b/sound/isa/sb/emu8000.c index 751762f1c59..0c40951b652 100644 --- a/sound/isa/sb/emu8000.c +++ b/sound/isa/sb/emu8000.c | |||
@@ -377,12 +377,13 @@ init_arrays(struct snd_emu8000 *emu) | |||
377 | static void __devinit | 377 | static void __devinit |
378 | size_dram(struct snd_emu8000 *emu) | 378 | size_dram(struct snd_emu8000 *emu) |
379 | { | 379 | { |
380 | int i, size; | 380 | int i, size, detected_size; |
381 | 381 | ||
382 | if (emu->dram_checked) | 382 | if (emu->dram_checked) |
383 | return; | 383 | return; |
384 | 384 | ||
385 | size = 0; | 385 | size = 0; |
386 | detected_size = 0; | ||
386 | 387 | ||
387 | /* write out a magic number */ | 388 | /* write out a magic number */ |
388 | snd_emu8000_dma_chan(emu, 0, EMU8000_RAM_WRITE); | 389 | snd_emu8000_dma_chan(emu, 0, EMU8000_RAM_WRITE); |
@@ -393,6 +394,8 @@ size_dram(struct snd_emu8000 *emu) | |||
393 | 394 | ||
394 | while (size < EMU8000_MAX_DRAM) { | 395 | while (size < EMU8000_MAX_DRAM) { |
395 | 396 | ||
397 | size += 512 * 1024; /* increment 512kbytes */ | ||
398 | |||
396 | /* Write a unique data on the test address. | 399 | /* Write a unique data on the test address. |
397 | * if the address is out of range, the data is written on | 400 | * if the address is out of range, the data is written on |
398 | * 0x200000(=EMU8000_DRAM_OFFSET). Then the id word is | 401 | * 0x200000(=EMU8000_DRAM_OFFSET). Then the id word is |
@@ -414,7 +417,7 @@ size_dram(struct snd_emu8000 *emu) | |||
414 | if (EMU8000_SMLD_READ(emu) != UNIQUE_ID2) | 417 | if (EMU8000_SMLD_READ(emu) != UNIQUE_ID2) |
415 | break; /* no memory at this address */ | 418 | break; /* no memory at this address */ |
416 | 419 | ||
417 | size += 512 * 1024; /* increment 512kbytes */ | 420 | detected_size = size; |
418 | 421 | ||
419 | snd_emu8000_read_wait(emu); | 422 | snd_emu8000_read_wait(emu); |
420 | 423 | ||
@@ -442,9 +445,9 @@ size_dram(struct snd_emu8000 *emu) | |||
442 | snd_emu8000_dma_chan(emu, 1, EMU8000_RAM_CLOSE); | 445 | snd_emu8000_dma_chan(emu, 1, EMU8000_RAM_CLOSE); |
443 | 446 | ||
444 | snd_printdd("EMU8000 [0x%lx]: %d Kb on-board memory detected\n", | 447 | snd_printdd("EMU8000 [0x%lx]: %d Kb on-board memory detected\n", |
445 | emu->port1, size/1024); | 448 | emu->port1, detected_size/1024); |
446 | 449 | ||
447 | emu->mem_size = size; | 450 | emu->mem_size = detected_size; |
448 | emu->dram_checked = 1; | 451 | emu->dram_checked = 1; |
449 | } | 452 | } |
450 | 453 | ||
diff --git a/sound/oss/dev_table.c b/sound/oss/dev_table.c index 08274c995d0..727bdb9ba2d 100644 --- a/sound/oss/dev_table.c +++ b/sound/oss/dev_table.c | |||
@@ -67,14 +67,15 @@ int sound_install_audiodrv(int vers, char *name, struct audio_driver *driver, | |||
67 | return -(EBUSY); | 67 | return -(EBUSY); |
68 | } | 68 | } |
69 | d = (struct audio_driver *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct audio_driver))); | 69 | d = (struct audio_driver *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct audio_driver))); |
70 | 70 | sound_nblocks++; | |
71 | if (sound_nblocks < 1024) | 71 | if (sound_nblocks >= MAX_MEM_BLOCKS) |
72 | sound_nblocks++; | 72 | sound_nblocks = MAX_MEM_BLOCKS - 1; |
73 | 73 | ||
74 | op = (struct audio_operations *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct audio_operations))); | 74 | op = (struct audio_operations *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct audio_operations))); |
75 | sound_nblocks++; | ||
76 | if (sound_nblocks >= MAX_MEM_BLOCKS) | ||
77 | sound_nblocks = MAX_MEM_BLOCKS - 1; | ||
75 | 78 | ||
76 | if (sound_nblocks < 1024) | ||
77 | sound_nblocks++; | ||
78 | if (d == NULL || op == NULL) { | 79 | if (d == NULL || op == NULL) { |
79 | printk(KERN_ERR "Sound: Can't allocate driver for (%s)\n", name); | 80 | printk(KERN_ERR "Sound: Can't allocate driver for (%s)\n", name); |
80 | sound_unload_audiodev(num); | 81 | sound_unload_audiodev(num); |
@@ -128,9 +129,10 @@ int sound_install_mixer(int vers, char *name, struct mixer_operations *driver, | |||
128 | until you unload sound! */ | 129 | until you unload sound! */ |
129 | 130 | ||
130 | op = (struct mixer_operations *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct mixer_operations))); | 131 | op = (struct mixer_operations *) (sound_mem_blocks[sound_nblocks] = vmalloc(sizeof(struct mixer_operations))); |
132 | sound_nblocks++; | ||
133 | if (sound_nblocks >= MAX_MEM_BLOCKS) | ||
134 | sound_nblocks = MAX_MEM_BLOCKS - 1; | ||
131 | 135 | ||
132 | if (sound_nblocks < 1024) | ||
133 | sound_nblocks++; | ||
134 | if (op == NULL) { | 136 | if (op == NULL) { |
135 | printk(KERN_ERR "Sound: Can't allocate mixer driver for (%s)\n", name); | 137 | printk(KERN_ERR "Sound: Can't allocate mixer driver for (%s)\n", name); |
136 | return -ENOMEM; | 138 | return -ENOMEM; |
diff --git a/sound/oss/sound_config.h b/sound/oss/sound_config.h index 55271fbe7f4..9d35c4c65b9 100644 --- a/sound/oss/sound_config.h +++ b/sound/oss/sound_config.h | |||
@@ -142,4 +142,6 @@ static inline int translate_mode(struct file *file) | |||
142 | #define TIMER_ARMED 121234 | 142 | #define TIMER_ARMED 121234 |
143 | #define TIMER_NOT_ARMED 1 | 143 | #define TIMER_NOT_ARMED 1 |
144 | 144 | ||
145 | #define MAX_MEM_BLOCKS 1024 | ||
146 | |||
145 | #endif | 147 | #endif |
diff --git a/sound/oss/soundcard.c b/sound/oss/soundcard.c index 61aaedae6b7..c6253094388 100644 --- a/sound/oss/soundcard.c +++ b/sound/oss/soundcard.c | |||
@@ -56,7 +56,7 @@ | |||
56 | /* | 56 | /* |
57 | * Table for permanently allocated memory (used when unloading the module) | 57 | * Table for permanently allocated memory (used when unloading the module) |
58 | */ | 58 | */ |
59 | void * sound_mem_blocks[1024]; | 59 | void * sound_mem_blocks[MAX_MEM_BLOCKS]; |
60 | int sound_nblocks = 0; | 60 | int sound_nblocks = 0; |
61 | 61 | ||
62 | /* Persistent DMA buffers */ | 62 | /* Persistent DMA buffers */ |
@@ -574,7 +574,7 @@ static int __init oss_init(void) | |||
574 | NULL, "%s%d", dev_list[i].name, j); | 574 | NULL, "%s%d", dev_list[i].name, j); |
575 | } | 575 | } |
576 | 576 | ||
577 | if (sound_nblocks >= 1024) | 577 | if (sound_nblocks >= MAX_MEM_BLOCKS - 1) |
578 | printk(KERN_ERR "Sound warning: Deallocation table was too small.\n"); | 578 | printk(KERN_ERR "Sound warning: Deallocation table was too small.\n"); |
579 | 579 | ||
580 | return 0; | 580 | return 0; |
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c index c1192062300..a7630e9edf8 100644 --- a/sound/pci/ac97/ac97_codec.c +++ b/sound/pci/ac97/ac97_codec.c | |||
@@ -83,6 +83,7 @@ static const struct ac97_codec_id snd_ac97_codec_id_vendors[] = { | |||
83 | { 0x4e534300, 0xffffff00, "National Semiconductor", NULL, NULL }, | 83 | { 0x4e534300, 0xffffff00, "National Semiconductor", NULL, NULL }, |
84 | { 0x50534300, 0xffffff00, "Philips", NULL, NULL }, | 84 | { 0x50534300, 0xffffff00, "Philips", NULL, NULL }, |
85 | { 0x53494c00, 0xffffff00, "Silicon Laboratory", NULL, NULL }, | 85 | { 0x53494c00, 0xffffff00, "Silicon Laboratory", NULL, NULL }, |
86 | { 0x53544d00, 0xffffff00, "STMicroelectronics", NULL, NULL }, | ||
86 | { 0x54524100, 0xffffff00, "TriTech", NULL, NULL }, | 87 | { 0x54524100, 0xffffff00, "TriTech", NULL, NULL }, |
87 | { 0x54584e00, 0xffffff00, "Texas Instruments", NULL, NULL }, | 88 | { 0x54584e00, 0xffffff00, "Texas Instruments", NULL, NULL }, |
88 | { 0x56494100, 0xffffff00, "VIA Technologies", NULL, NULL }, | 89 | { 0x56494100, 0xffffff00, "VIA Technologies", NULL, NULL }, |
@@ -161,6 +162,7 @@ static const struct ac97_codec_id snd_ac97_codec_ids[] = { | |||
161 | { 0x4e534350, 0xffffffff, "LM4550", patch_lm4550, NULL }, // volume wrap fix | 162 | { 0x4e534350, 0xffffffff, "LM4550", patch_lm4550, NULL }, // volume wrap fix |
162 | { 0x50534304, 0xffffffff, "UCB1400", patch_ucb1400, NULL }, | 163 | { 0x50534304, 0xffffffff, "UCB1400", patch_ucb1400, NULL }, |
163 | { 0x53494c20, 0xffffffe0, "Si3036,8", mpatch_si3036, mpatch_si3036, AC97_MODEM_PATCH }, | 164 | { 0x53494c20, 0xffffffe0, "Si3036,8", mpatch_si3036, mpatch_si3036, AC97_MODEM_PATCH }, |
165 | { 0x53544d02, 0xffffffff, "ST7597", NULL, NULL }, | ||
164 | { 0x54524102, 0xffffffff, "TR28022", NULL, NULL }, | 166 | { 0x54524102, 0xffffffff, "TR28022", NULL, NULL }, |
165 | { 0x54524103, 0xffffffff, "TR28023", NULL, NULL }, | 167 | { 0x54524103, 0xffffffff, "TR28023", NULL, NULL }, |
166 | { 0x54524106, 0xffffffff, "TR28026", NULL, NULL }, | 168 | { 0x54524106, 0xffffffff, "TR28026", NULL, NULL }, |
@@ -213,6 +215,14 @@ static int snd_ac97_valid_reg(struct snd_ac97 *ac97, unsigned short reg) | |||
213 | { | 215 | { |
214 | /* filter some registers for buggy codecs */ | 216 | /* filter some registers for buggy codecs */ |
215 | switch (ac97->id) { | 217 | switch (ac97->id) { |
218 | case AC97_ID_ST_AC97_ID4: | ||
219 | if (reg == 0x08) | ||
220 | return 0; | ||
221 | /* fall through */ | ||
222 | case AC97_ID_ST7597: | ||
223 | if (reg == 0x22 || reg == 0x7a) | ||
224 | return 1; | ||
225 | /* fall through */ | ||
216 | case AC97_ID_AK4540: | 226 | case AC97_ID_AK4540: |
217 | case AC97_ID_AK4542: | 227 | case AC97_ID_AK4542: |
218 | if (reg <= 0x1c || reg == 0x20 || reg == 0x26 || reg >= 0x7c) | 228 | if (reg <= 0x1c || reg == 0x20 || reg == 0x26 || reg >= 0x7c) |
diff --git a/sound/pci/ac97/ac97_id.h b/sound/pci/ac97/ac97_id.h index c129492c82b..d603147c4a9 100644 --- a/sound/pci/ac97/ac97_id.h +++ b/sound/pci/ac97/ac97_id.h | |||
@@ -62,3 +62,5 @@ | |||
62 | #define AC97_ID_CM9761_78 0x434d4978 | 62 | #define AC97_ID_CM9761_78 0x434d4978 |
63 | #define AC97_ID_CM9761_82 0x434d4982 | 63 | #define AC97_ID_CM9761_82 0x434d4982 |
64 | #define AC97_ID_CM9761_83 0x434d4983 | 64 | #define AC97_ID_CM9761_83 0x434d4983 |
65 | #define AC97_ID_ST7597 0x53544d02 | ||
66 | #define AC97_ID_ST_AC97_ID4 0x53544d04 | ||
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c index 139cf3b2b9d..d9266bae284 100644 --- a/sound/pci/ac97/ac97_patch.c +++ b/sound/pci/ac97/ac97_patch.c | |||
@@ -1870,6 +1870,7 @@ static unsigned int ad1981_jacks_blacklist[] = { | |||
1870 | 0x10140554, /* Thinkpad T42p/R50p */ | 1870 | 0x10140554, /* Thinkpad T42p/R50p */ |
1871 | 0x10140567, /* Thinkpad T43p 2668-G7U */ | 1871 | 0x10140567, /* Thinkpad T43p 2668-G7U */ |
1872 | 0x10140581, /* Thinkpad X41-2527 */ | 1872 | 0x10140581, /* Thinkpad X41-2527 */ |
1873 | 0x10280160, /* Dell Dimension 2400 */ | ||
1873 | 0x104380b0, /* Asus A7V8X-MX */ | 1874 | 0x104380b0, /* Asus A7V8X-MX */ |
1874 | 0x11790241, /* Toshiba Satellite A-15 S127 */ | 1875 | 0x11790241, /* Toshiba Satellite A-15 S127 */ |
1875 | 0x144dc01a, /* Samsung NP-X20C004/SEG */ | 1876 | 0x144dc01a, /* Samsung NP-X20C004/SEG */ |
diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c index d6752dff2a4..42b4fbbd8e2 100644 --- a/sound/pci/atiixp.c +++ b/sound/pci/atiixp.c | |||
@@ -297,6 +297,7 @@ static struct pci_device_id snd_atiixp_ids[] = { | |||
297 | MODULE_DEVICE_TABLE(pci, snd_atiixp_ids); | 297 | MODULE_DEVICE_TABLE(pci, snd_atiixp_ids); |
298 | 298 | ||
299 | static struct snd_pci_quirk atiixp_quirks[] __devinitdata = { | 299 | static struct snd_pci_quirk atiixp_quirks[] __devinitdata = { |
300 | SND_PCI_QUIRK(0x105b, 0x0c81, "Foxconn RC4107MA-RS2", 0), | ||
300 | SND_PCI_QUIRK(0x15bd, 0x3100, "DFI RS482", 0), | 301 | SND_PCI_QUIRK(0x15bd, 0x3100, "DFI RS482", 0), |
301 | { } /* terminator */ | 302 | { } /* terminator */ |
302 | }; | 303 | }; |
diff --git a/sound/pci/hda/hda_beep.c b/sound/pci/hda/hda_beep.c index 5fe34a8d8c8..e4581a42ace 100644 --- a/sound/pci/hda/hda_beep.c +++ b/sound/pci/hda/hda_beep.c | |||
@@ -42,7 +42,7 @@ static void snd_hda_generate_beep(struct work_struct *work) | |||
42 | return; | 42 | return; |
43 | 43 | ||
44 | /* generate tone */ | 44 | /* generate tone */ |
45 | snd_hda_codec_write_cache(codec, beep->nid, 0, | 45 | snd_hda_codec_write(codec, beep->nid, 0, |
46 | AC_VERB_SET_BEEP_CONTROL, beep->tone); | 46 | AC_VERB_SET_BEEP_CONTROL, beep->tone); |
47 | } | 47 | } |
48 | 48 | ||
@@ -119,7 +119,7 @@ static void snd_hda_do_detach(struct hda_beep *beep) | |||
119 | beep->dev = NULL; | 119 | beep->dev = NULL; |
120 | cancel_work_sync(&beep->beep_work); | 120 | cancel_work_sync(&beep->beep_work); |
121 | /* turn off beep for sure */ | 121 | /* turn off beep for sure */ |
122 | snd_hda_codec_write_cache(beep->codec, beep->nid, 0, | 122 | snd_hda_codec_write(beep->codec, beep->nid, 0, |
123 | AC_VERB_SET_BEEP_CONTROL, 0); | 123 | AC_VERB_SET_BEEP_CONTROL, 0); |
124 | } | 124 | } |
125 | 125 | ||
@@ -192,7 +192,7 @@ int snd_hda_enable_beep_device(struct hda_codec *codec, int enable) | |||
192 | beep->enabled = enable; | 192 | beep->enabled = enable; |
193 | if (!enable) { | 193 | if (!enable) { |
194 | /* turn off beep */ | 194 | /* turn off beep */ |
195 | snd_hda_codec_write_cache(beep->codec, beep->nid, 0, | 195 | snd_hda_codec_write(beep->codec, beep->nid, 0, |
196 | AC_VERB_SET_BEEP_CONTROL, 0); | 196 | AC_VERB_SET_BEEP_CONTROL, 0); |
197 | } | 197 | } |
198 | if (beep->mode == HDA_BEEP_MODE_SWREG) { | 198 | if (beep->mode == HDA_BEEP_MODE_SWREG) { |
@@ -239,8 +239,12 @@ int snd_hda_attach_beep_device(struct hda_codec *codec, int nid) | |||
239 | mutex_init(&beep->mutex); | 239 | mutex_init(&beep->mutex); |
240 | 240 | ||
241 | if (beep->mode == HDA_BEEP_MODE_ON) { | 241 | if (beep->mode == HDA_BEEP_MODE_ON) { |
242 | beep->enabled = 1; | 242 | int err = snd_hda_do_attach(beep); |
243 | snd_hda_do_register(&beep->register_work); | 243 | if (err < 0) { |
244 | kfree(beep); | ||
245 | codec->beep = NULL; | ||
246 | return err; | ||
247 | } | ||
244 | } | 248 | } |
245 | 249 | ||
246 | return 0; | 250 | return 0; |
@@ -253,7 +257,7 @@ void snd_hda_detach_beep_device(struct hda_codec *codec) | |||
253 | if (beep) { | 257 | if (beep) { |
254 | cancel_work_sync(&beep->register_work); | 258 | cancel_work_sync(&beep->register_work); |
255 | cancel_delayed_work(&beep->unregister_work); | 259 | cancel_delayed_work(&beep->unregister_work); |
256 | if (beep->enabled) | 260 | if (beep->dev) |
257 | snd_hda_do_detach(beep); | 261 | snd_hda_do_detach(beep); |
258 | codec->beep = NULL; | 262 | codec->beep = NULL; |
259 | kfree(beep); | 263 | kfree(beep); |
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 950ee5cfcac..f98b47cd6cf 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c | |||
@@ -1327,11 +1327,13 @@ EXPORT_SYMBOL_HDA(snd_hda_query_pin_caps); | |||
1327 | */ | 1327 | */ |
1328 | u32 snd_hda_pin_sense(struct hda_codec *codec, hda_nid_t nid) | 1328 | u32 snd_hda_pin_sense(struct hda_codec *codec, hda_nid_t nid) |
1329 | { | 1329 | { |
1330 | u32 pincap = snd_hda_query_pin_caps(codec, nid); | 1330 | u32 pincap; |
1331 | |||
1332 | if (pincap & AC_PINCAP_TRIG_REQ) /* need trigger? */ | ||
1333 | snd_hda_codec_read(codec, nid, 0, AC_VERB_SET_PIN_SENSE, 0); | ||
1334 | 1331 | ||
1332 | if (!codec->no_trigger_sense) { | ||
1333 | pincap = snd_hda_query_pin_caps(codec, nid); | ||
1334 | if (pincap & AC_PINCAP_TRIG_REQ) /* need trigger? */ | ||
1335 | snd_hda_codec_read(codec, nid, 0, AC_VERB_SET_PIN_SENSE, 0); | ||
1336 | } | ||
1335 | return snd_hda_codec_read(codec, nid, 0, | 1337 | return snd_hda_codec_read(codec, nid, 0, |
1336 | AC_VERB_GET_PIN_SENSE, 0); | 1338 | AC_VERB_GET_PIN_SENSE, 0); |
1337 | } | 1339 | } |
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h index 1d541b7f554..0a770a28e71 100644 --- a/sound/pci/hda/hda_codec.h +++ b/sound/pci/hda/hda_codec.h | |||
@@ -817,6 +817,7 @@ struct hda_codec { | |||
817 | unsigned int pin_amp_workaround:1; /* pin out-amp takes index | 817 | unsigned int pin_amp_workaround:1; /* pin out-amp takes index |
818 | * (e.g. Conexant codecs) | 818 | * (e.g. Conexant codecs) |
819 | */ | 819 | */ |
820 | unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */ | ||
820 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 821 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
821 | unsigned int power_on :1; /* current (global) power-state */ | 822 | unsigned int power_on :1; /* current (global) power-state */ |
822 | unsigned int power_transition :1; /* power-state in transition */ | 823 | unsigned int power_transition :1; /* power-state in transition */ |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index ff8ad46cc50..ec9c348336c 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -356,6 +356,7 @@ struct azx_dev { | |||
356 | */ | 356 | */ |
357 | unsigned char stream_tag; /* assigned stream */ | 357 | unsigned char stream_tag; /* assigned stream */ |
358 | unsigned char index; /* stream index */ | 358 | unsigned char index; /* stream index */ |
359 | int device; /* last device number assigned to */ | ||
359 | 360 | ||
360 | unsigned int opened :1; | 361 | unsigned int opened :1; |
361 | unsigned int running :1; | 362 | unsigned int running :1; |
@@ -1441,10 +1442,13 @@ static int __devinit azx_codec_configure(struct azx *chip) | |||
1441 | */ | 1442 | */ |
1442 | 1443 | ||
1443 | /* assign a stream for the PCM */ | 1444 | /* assign a stream for the PCM */ |
1444 | static inline struct azx_dev *azx_assign_device(struct azx *chip, int stream) | 1445 | static inline struct azx_dev * |
1446 | azx_assign_device(struct azx *chip, struct snd_pcm_substream *substream) | ||
1445 | { | 1447 | { |
1446 | int dev, i, nums; | 1448 | int dev, i, nums; |
1447 | if (stream == SNDRV_PCM_STREAM_PLAYBACK) { | 1449 | struct azx_dev *res = NULL; |
1450 | |||
1451 | if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { | ||
1448 | dev = chip->playback_index_offset; | 1452 | dev = chip->playback_index_offset; |
1449 | nums = chip->playback_streams; | 1453 | nums = chip->playback_streams; |
1450 | } else { | 1454 | } else { |
@@ -1453,10 +1457,15 @@ static inline struct azx_dev *azx_assign_device(struct azx *chip, int stream) | |||
1453 | } | 1457 | } |
1454 | for (i = 0; i < nums; i++, dev++) | 1458 | for (i = 0; i < nums; i++, dev++) |
1455 | if (!chip->azx_dev[dev].opened) { | 1459 | if (!chip->azx_dev[dev].opened) { |
1456 | chip->azx_dev[dev].opened = 1; | 1460 | res = &chip->azx_dev[dev]; |
1457 | return &chip->azx_dev[dev]; | 1461 | if (res->device == substream->pcm->device) |
1462 | break; | ||
1458 | } | 1463 | } |
1459 | return NULL; | 1464 | if (res) { |
1465 | res->opened = 1; | ||
1466 | res->device = substream->pcm->device; | ||
1467 | } | ||
1468 | return res; | ||
1460 | } | 1469 | } |
1461 | 1470 | ||
1462 | /* release the assigned stream */ | 1471 | /* release the assigned stream */ |
@@ -1505,7 +1514,7 @@ static int azx_pcm_open(struct snd_pcm_substream *substream) | |||
1505 | int err; | 1514 | int err; |
1506 | 1515 | ||
1507 | mutex_lock(&chip->open_mutex); | 1516 | mutex_lock(&chip->open_mutex); |
1508 | azx_dev = azx_assign_device(chip, substream->stream); | 1517 | azx_dev = azx_assign_device(chip, substream); |
1509 | if (azx_dev == NULL) { | 1518 | if (azx_dev == NULL) { |
1510 | mutex_unlock(&chip->open_mutex); | 1519 | mutex_unlock(&chip->open_mutex); |
1511 | return -EBUSY; | 1520 | return -EBUSY; |
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c index 1a36137e13e..69a941c7b15 100644 --- a/sound/pci/hda/patch_analog.c +++ b/sound/pci/hda/patch_analog.c | |||
@@ -1186,6 +1186,8 @@ static int patch_ad1986a(struct hda_codec *codec) | |||
1186 | */ | 1186 | */ |
1187 | spec->multiout.no_share_stream = 1; | 1187 | spec->multiout.no_share_stream = 1; |
1188 | 1188 | ||
1189 | codec->no_trigger_sense = 1; | ||
1190 | |||
1189 | return 0; | 1191 | return 0; |
1190 | } | 1192 | } |
1191 | 1193 | ||
@@ -1371,6 +1373,8 @@ static int patch_ad1983(struct hda_codec *codec) | |||
1371 | 1373 | ||
1372 | codec->patch_ops = ad198x_patch_ops; | 1374 | codec->patch_ops = ad198x_patch_ops; |
1373 | 1375 | ||
1376 | codec->no_trigger_sense = 1; | ||
1377 | |||
1374 | return 0; | 1378 | return 0; |
1375 | } | 1379 | } |
1376 | 1380 | ||
@@ -1813,6 +1817,9 @@ static int patch_ad1981(struct hda_codec *codec) | |||
1813 | codec->patch_ops.unsol_event = ad1981_hp_unsol_event; | 1817 | codec->patch_ops.unsol_event = ad1981_hp_unsol_event; |
1814 | break; | 1818 | break; |
1815 | } | 1819 | } |
1820 | |||
1821 | codec->no_trigger_sense = 1; | ||
1822 | |||
1816 | return 0; | 1823 | return 0; |
1817 | } | 1824 | } |
1818 | 1825 | ||
@@ -3118,6 +3125,8 @@ static int patch_ad1988(struct hda_codec *codec) | |||
3118 | #endif | 3125 | #endif |
3119 | spec->vmaster_nid = 0x04; | 3126 | spec->vmaster_nid = 0x04; |
3120 | 3127 | ||
3128 | codec->no_trigger_sense = 1; | ||
3129 | |||
3121 | return 0; | 3130 | return 0; |
3122 | } | 3131 | } |
3123 | 3132 | ||
@@ -3330,6 +3339,8 @@ static int patch_ad1884(struct hda_codec *codec) | |||
3330 | 3339 | ||
3331 | codec->patch_ops = ad198x_patch_ops; | 3340 | codec->patch_ops = ad198x_patch_ops; |
3332 | 3341 | ||
3342 | codec->no_trigger_sense = 1; | ||
3343 | |||
3333 | return 0; | 3344 | return 0; |
3334 | } | 3345 | } |
3335 | 3346 | ||
@@ -4287,6 +4298,8 @@ static int patch_ad1884a(struct hda_codec *codec) | |||
4287 | break; | 4298 | break; |
4288 | } | 4299 | } |
4289 | 4300 | ||
4301 | codec->no_trigger_sense = 1; | ||
4302 | |||
4290 | return 0; | 4303 | return 0; |
4291 | } | 4304 | } |
4292 | 4305 | ||
@@ -4623,6 +4636,9 @@ static int patch_ad1882(struct hda_codec *codec) | |||
4623 | spec->mixers[2] = ad1882_6stack_mixers; | 4636 | spec->mixers[2] = ad1882_6stack_mixers; |
4624 | break; | 4637 | break; |
4625 | } | 4638 | } |
4639 | |||
4640 | codec->no_trigger_sense = 1; | ||
4641 | |||
4626 | return 0; | 4642 | return 0; |
4627 | } | 4643 | } |
4628 | 4644 | ||
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index c7465053d6b..3f92def752f 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -1230,6 +1230,8 @@ static void alc_init_auto_mic(struct hda_codec *codec) | |||
1230 | return; /* invalid entry */ | 1230 | return; /* invalid entry */ |
1231 | } | 1231 | } |
1232 | } | 1232 | } |
1233 | if (!ext || !fixed) | ||
1234 | return; | ||
1233 | if (!(get_wcaps(codec, ext) & AC_WCAP_UNSOL_CAP)) | 1235 | if (!(get_wcaps(codec, ext) & AC_WCAP_UNSOL_CAP)) |
1234 | return; /* no unsol support */ | 1236 | return; /* no unsol support */ |
1235 | snd_printdd("realtek: Enable auto-mic switch on NID 0x%x/0x%x\n", | 1237 | snd_printdd("realtek: Enable auto-mic switch on NID 0x%x/0x%x\n", |
@@ -4812,6 +4814,49 @@ static void fixup_automic_adc(struct hda_codec *codec) | |||
4812 | spec->auto_mic = 0; /* disable auto-mic to be sure */ | 4814 | spec->auto_mic = 0; /* disable auto-mic to be sure */ |
4813 | } | 4815 | } |
4814 | 4816 | ||
4817 | /* choose the ADC/MUX containing the input pin and initialize the setup */ | ||
4818 | static void fixup_single_adc(struct hda_codec *codec) | ||
4819 | { | ||
4820 | struct alc_spec *spec = codec->spec; | ||
4821 | hda_nid_t pin; | ||
4822 | int i; | ||
4823 | |||
4824 | /* search for the input pin; there must be only one */ | ||
4825 | for (i = 0; i < AUTO_PIN_LAST; i++) { | ||
4826 | if (spec->autocfg.input_pins[i]) { | ||
4827 | pin = spec->autocfg.input_pins[i]; | ||
4828 | break; | ||
4829 | } | ||
4830 | } | ||
4831 | if (!pin) | ||
4832 | return; | ||
4833 | |||
4834 | /* set the default connection to that pin */ | ||
4835 | for (i = 0; i < spec->num_adc_nids; i++) { | ||
4836 | hda_nid_t cap = spec->capsrc_nids ? | ||
4837 | spec->capsrc_nids[i] : spec->adc_nids[i]; | ||
4838 | int idx; | ||
4839 | |||
4840 | idx = get_connection_index(codec, cap, pin); | ||
4841 | if (idx < 0) | ||
4842 | continue; | ||
4843 | /* use only this ADC */ | ||
4844 | if (spec->capsrc_nids) | ||
4845 | spec->capsrc_nids += i; | ||
4846 | spec->adc_nids += i; | ||
4847 | spec->num_adc_nids = 1; | ||
4848 | /* select or unmute this route */ | ||
4849 | if (get_wcaps_type(get_wcaps(codec, cap)) == AC_WID_AUD_MIX) { | ||
4850 | snd_hda_codec_amp_stereo(codec, cap, HDA_INPUT, idx, | ||
4851 | HDA_AMP_MUTE, 0); | ||
4852 | } else { | ||
4853 | snd_hda_codec_write_cache(codec, cap, 0, | ||
4854 | AC_VERB_SET_CONNECT_SEL, idx); | ||
4855 | } | ||
4856 | return; | ||
4857 | } | ||
4858 | } | ||
4859 | |||
4815 | static void set_capture_mixer(struct hda_codec *codec) | 4860 | static void set_capture_mixer(struct hda_codec *codec) |
4816 | { | 4861 | { |
4817 | struct alc_spec *spec = codec->spec; | 4862 | struct alc_spec *spec = codec->spec; |
@@ -4824,14 +4869,15 @@ static void set_capture_mixer(struct hda_codec *codec) | |||
4824 | alc_capture_mixer3 }, | 4869 | alc_capture_mixer3 }, |
4825 | }; | 4870 | }; |
4826 | if (spec->num_adc_nids > 0 && spec->num_adc_nids <= 3) { | 4871 | if (spec->num_adc_nids > 0 && spec->num_adc_nids <= 3) { |
4827 | int mux; | 4872 | int mux = 0; |
4828 | if (spec->auto_mic) { | 4873 | if (spec->auto_mic) |
4829 | mux = 0; | ||
4830 | fixup_automic_adc(codec); | 4874 | fixup_automic_adc(codec); |
4831 | } else if (spec->input_mux && spec->input_mux->num_items > 1) | 4875 | else if (spec->input_mux) { |
4832 | mux = 1; | 4876 | if (spec->input_mux->num_items > 1) |
4833 | else | 4877 | mux = 1; |
4834 | mux = 0; | 4878 | else if (spec->input_mux->num_items == 1) |
4879 | fixup_single_adc(codec); | ||
4880 | } | ||
4835 | spec->cap_mixer = caps[mux][spec->num_adc_nids - 1]; | 4881 | spec->cap_mixer = caps[mux][spec->num_adc_nids - 1]; |
4836 | } | 4882 | } |
4837 | } | 4883 | } |
@@ -7094,8 +7140,8 @@ static struct snd_kcontrol_new alc885_mb5_mixer[] = { | |||
7094 | HDA_BIND_MUTE ("Surround Playback Switch", 0x0d, 0x02, HDA_INPUT), | 7140 | HDA_BIND_MUTE ("Surround Playback Switch", 0x0d, 0x02, HDA_INPUT), |
7095 | HDA_CODEC_VOLUME("LFE Playback Volume", 0x0e, 0x00, HDA_OUTPUT), | 7141 | HDA_CODEC_VOLUME("LFE Playback Volume", 0x0e, 0x00, HDA_OUTPUT), |
7096 | HDA_BIND_MUTE ("LFE Playback Switch", 0x0e, 0x02, HDA_INPUT), | 7142 | HDA_BIND_MUTE ("LFE Playback Switch", 0x0e, 0x02, HDA_INPUT), |
7097 | HDA_CODEC_VOLUME("HP Playback Volume", 0x0f, 0x00, HDA_OUTPUT), | 7143 | HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0f, 0x00, HDA_OUTPUT), |
7098 | HDA_BIND_MUTE ("HP Playback Switch", 0x0f, 0x02, HDA_INPUT), | 7144 | HDA_BIND_MUTE ("Headphone Playback Switch", 0x0f, 0x02, HDA_INPUT), |
7099 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), | 7145 | HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), |
7100 | HDA_CODEC_MUTE ("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), | 7146 | HDA_CODEC_MUTE ("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), |
7101 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), | 7147 | HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), |
@@ -7496,6 +7542,7 @@ static struct hda_verb alc885_mb5_init_verbs[] = { | |||
7496 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, | 7542 | {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, |
7497 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, | 7543 | {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, |
7498 | {0x14, AC_VERB_SET_CONNECT_SEL, 0x03}, | 7544 | {0x14, AC_VERB_SET_CONNECT_SEL, 0x03}, |
7545 | {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, | ||
7499 | /* Front Mic pin: input vref at 80% */ | 7546 | /* Front Mic pin: input vref at 80% */ |
7500 | {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, | 7547 | {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, |
7501 | {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, | 7548 | {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, |
@@ -7680,6 +7727,27 @@ static void alc885_mbp3_setup(struct hda_codec *codec) | |||
7680 | spec->autocfg.speaker_pins[0] = 0x14; | 7727 | spec->autocfg.speaker_pins[0] = 0x14; |
7681 | } | 7728 | } |
7682 | 7729 | ||
7730 | static void alc885_mb5_automute(struct hda_codec *codec) | ||
7731 | { | ||
7732 | unsigned int present; | ||
7733 | |||
7734 | present = snd_hda_codec_read(codec, 0x14, 0, | ||
7735 | AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; | ||
7736 | snd_hda_codec_amp_stereo(codec, 0x18, HDA_OUTPUT, 0, | ||
7737 | HDA_AMP_MUTE, present ? HDA_AMP_MUTE : 0); | ||
7738 | snd_hda_codec_amp_stereo(codec, 0x1a, HDA_OUTPUT, 0, | ||
7739 | HDA_AMP_MUTE, present ? HDA_AMP_MUTE : 0); | ||
7740 | |||
7741 | } | ||
7742 | |||
7743 | static void alc885_mb5_unsol_event(struct hda_codec *codec, | ||
7744 | unsigned int res) | ||
7745 | { | ||
7746 | /* Headphone insertion or removal. */ | ||
7747 | if ((res >> 26) == ALC880_HP_EVENT) | ||
7748 | alc885_mb5_automute(codec); | ||
7749 | } | ||
7750 | |||
7683 | static void alc885_imac91_automute(struct hda_codec *codec) | 7751 | static void alc885_imac91_automute(struct hda_codec *codec) |
7684 | { | 7752 | { |
7685 | unsigned int present; | 7753 | unsigned int present; |
@@ -9126,6 +9194,8 @@ static struct alc_config_preset alc882_presets[] = { | |||
9126 | .input_mux = &mb5_capture_source, | 9194 | .input_mux = &mb5_capture_source, |
9127 | .dig_out_nid = ALC882_DIGOUT_NID, | 9195 | .dig_out_nid = ALC882_DIGOUT_NID, |
9128 | .dig_in_nid = ALC882_DIGIN_NID, | 9196 | .dig_in_nid = ALC882_DIGIN_NID, |
9197 | .unsol_event = alc885_mb5_unsol_event, | ||
9198 | .init_hook = alc885_mb5_automute, | ||
9129 | }, | 9199 | }, |
9130 | [ALC885_MACPRO] = { | 9200 | [ALC885_MACPRO] = { |
9131 | .mixers = { alc882_macpro_mixer }, | 9201 | .mixers = { alc882_macpro_mixer }, |
@@ -11179,7 +11249,7 @@ static int alc262_auto_create_multi_out_ctls(struct alc_spec *spec, | |||
11179 | } | 11249 | } |
11180 | 11250 | ||
11181 | #define alc262_auto_create_input_ctls \ | 11251 | #define alc262_auto_create_input_ctls \ |
11182 | alc880_auto_create_input_ctls | 11252 | alc882_auto_create_input_ctls |
11183 | 11253 | ||
11184 | /* | 11254 | /* |
11185 | * generic initialization of ADC, input mixers and output mixers | 11255 | * generic initialization of ADC, input mixers and output mixers |
@@ -14855,6 +14925,8 @@ static int patch_alc861(struct hda_codec *codec) | |||
14855 | spec->stream_digital_playback = &alc861_pcm_digital_playback; | 14925 | spec->stream_digital_playback = &alc861_pcm_digital_playback; |
14856 | spec->stream_digital_capture = &alc861_pcm_digital_capture; | 14926 | spec->stream_digital_capture = &alc861_pcm_digital_capture; |
14857 | 14927 | ||
14928 | if (!spec->cap_mixer) | ||
14929 | set_capture_mixer(codec); | ||
14858 | set_beep_amp(spec, 0x23, 0, HDA_OUTPUT); | 14930 | set_beep_amp(spec, 0x23, 0, HDA_OUTPUT); |
14859 | 14931 | ||
14860 | spec->vmaster_nid = 0x03; | 14932 | spec->vmaster_nid = 0x03; |
@@ -15493,7 +15565,7 @@ static struct alc_config_preset alc861vd_presets[] = { | |||
15493 | static int alc861vd_auto_create_input_ctls(struct hda_codec *codec, | 15565 | static int alc861vd_auto_create_input_ctls(struct hda_codec *codec, |
15494 | const struct auto_pin_cfg *cfg) | 15566 | const struct auto_pin_cfg *cfg) |
15495 | { | 15567 | { |
15496 | return alc_auto_create_input_ctls(codec, cfg, 0x15, 0x09, 0); | 15568 | return alc_auto_create_input_ctls(codec, cfg, 0x15, 0x22, 0); |
15497 | } | 15569 | } |
15498 | 15570 | ||
15499 | 15571 | ||
@@ -17251,7 +17323,7 @@ static struct snd_pci_quirk alc662_cfg_tbl[] = { | |||
17251 | SND_PCI_QUIRK(0x105b, 0x0cd6, "Foxconn", ALC662_ECS), | 17323 | SND_PCI_QUIRK(0x105b, 0x0cd6, "Foxconn", ALC662_ECS), |
17252 | SND_PCI_QUIRK(0x105b, 0x0d47, "Foxconn 45CMX/45GMX/45CMX-K", | 17324 | SND_PCI_QUIRK(0x105b, 0x0d47, "Foxconn 45CMX/45GMX/45CMX-K", |
17253 | ALC662_3ST_6ch_DIG), | 17325 | ALC662_3ST_6ch_DIG), |
17254 | SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB200", ALC663_ASUS_MODE4), | 17326 | SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB20x", ALC662_AUTO), |
17255 | SND_PCI_QUIRK(0x144d, 0xca00, "Samsung NC10", ALC272_SAMSUNG_NC10), | 17327 | SND_PCI_QUIRK(0x144d, 0xca00, "Samsung NC10", ALC272_SAMSUNG_NC10), |
17256 | SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte 945GCM-S2L", | 17328 | SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte 945GCM-S2L", |
17257 | ALC662_3ST_6ch_DIG), | 17329 | ALC662_3ST_6ch_DIG), |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index eeda7beeb57..799ba257090 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -4453,14 +4453,7 @@ static inline int get_pin_presence(struct hda_codec *codec, hda_nid_t nid) | |||
4453 | { | 4453 | { |
4454 | if (!nid) | 4454 | if (!nid) |
4455 | return 0; | 4455 | return 0; |
4456 | /* NOTE: we can't use snd_hda_jack_detect() here because STAC/IDT | 4456 | return snd_hda_jack_detect(codec, nid); |
4457 | * codecs behave wrongly when SET_PIN_SENSE is triggered, although | ||
4458 | * the pincap gives TRIG_REQ bit. | ||
4459 | */ | ||
4460 | if (snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_PIN_SENSE, 0) & | ||
4461 | AC_PINSENSE_PRESENCE) | ||
4462 | return 1; | ||
4463 | return 0; | ||
4464 | } | 4457 | } |
4465 | 4458 | ||
4466 | static void stac92xx_line_out_detect(struct hda_codec *codec, | 4459 | static void stac92xx_line_out_detect(struct hda_codec *codec, |
@@ -4737,6 +4730,26 @@ static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) | |||
4737 | } | 4730 | } |
4738 | } | 4731 | } |
4739 | 4732 | ||
4733 | static int hp_blike_system(u32 subsystem_id); | ||
4734 | |||
4735 | static void set_hp_led_gpio(struct hda_codec *codec) | ||
4736 | { | ||
4737 | struct sigmatel_spec *spec = codec->spec; | ||
4738 | switch (codec->vendor_id) { | ||
4739 | case 0x111d7608: | ||
4740 | /* GPIO 0 */ | ||
4741 | spec->gpio_led = 0x01; | ||
4742 | break; | ||
4743 | case 0x111d7600: | ||
4744 | case 0x111d7601: | ||
4745 | case 0x111d7602: | ||
4746 | case 0x111d7603: | ||
4747 | /* GPIO 3 */ | ||
4748 | spec->gpio_led = 0x08; | ||
4749 | break; | ||
4750 | } | ||
4751 | } | ||
4752 | |||
4740 | /* | 4753 | /* |
4741 | * This method searches for the mute LED GPIO configuration | 4754 | * This method searches for the mute LED GPIO configuration |
4742 | * provided as OEM string in SMBIOS. The format of that string | 4755 | * provided as OEM string in SMBIOS. The format of that string |
@@ -4748,6 +4761,14 @@ static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) | |||
4748 | * | 4761 | * |
4749 | * So, HP B-series like systems may have HP_Mute_LED_0 (current models) | 4762 | * So, HP B-series like systems may have HP_Mute_LED_0 (current models) |
4750 | * or HP_Mute_LED_0_3 (future models) OEM SMBIOS strings | 4763 | * or HP_Mute_LED_0_3 (future models) OEM SMBIOS strings |
4764 | * | ||
4765 | * | ||
4766 | * The dv-series laptops don't seem to have the HP_Mute_LED* strings in | ||
4767 | * SMBIOS - at least the ones I have seen do not have them - which include | ||
4768 | * my own system (HP Pavilion dv6-1110ax) and my cousin's | ||
4769 | * HP Pavilion dv9500t CTO. | ||
4770 | * Need more information on whether it is true across the entire series. | ||
4771 | * -- kunal | ||
4751 | */ | 4772 | */ |
4752 | static int find_mute_led_gpio(struct hda_codec *codec) | 4773 | static int find_mute_led_gpio(struct hda_codec *codec) |
4753 | { | 4774 | { |
@@ -4758,28 +4779,27 @@ static int find_mute_led_gpio(struct hda_codec *codec) | |||
4758 | while ((dev = dmi_find_device(DMI_DEV_TYPE_OEM_STRING, | 4779 | while ((dev = dmi_find_device(DMI_DEV_TYPE_OEM_STRING, |
4759 | NULL, dev))) { | 4780 | NULL, dev))) { |
4760 | if (sscanf(dev->name, "HP_Mute_LED_%d_%d", | 4781 | if (sscanf(dev->name, "HP_Mute_LED_%d_%d", |
4761 | &spec->gpio_led_polarity, | 4782 | &spec->gpio_led_polarity, |
4762 | &spec->gpio_led) == 2) { | 4783 | &spec->gpio_led) == 2) { |
4763 | spec->gpio_led = 1 << spec->gpio_led; | 4784 | spec->gpio_led = 1 << spec->gpio_led; |
4764 | return 1; | 4785 | return 1; |
4765 | } | 4786 | } |
4766 | if (sscanf(dev->name, "HP_Mute_LED_%d", | 4787 | if (sscanf(dev->name, "HP_Mute_LED_%d", |
4767 | &spec->gpio_led_polarity) == 1) { | 4788 | &spec->gpio_led_polarity) == 1) { |
4768 | switch (codec->vendor_id) { | 4789 | set_hp_led_gpio(codec); |
4769 | case 0x111d7608: | 4790 | return 1; |
4770 | /* GPIO 0 */ | ||
4771 | spec->gpio_led = 0x01; | ||
4772 | return 1; | ||
4773 | case 0x111d7600: | ||
4774 | case 0x111d7601: | ||
4775 | case 0x111d7602: | ||
4776 | case 0x111d7603: | ||
4777 | /* GPIO 3 */ | ||
4778 | spec->gpio_led = 0x08; | ||
4779 | return 1; | ||
4780 | } | ||
4781 | } | 4791 | } |
4782 | } | 4792 | } |
4793 | |||
4794 | /* | ||
4795 | * Fallback case - if we don't find the DMI strings, | ||
4796 | * we statically set the GPIO - if not a B-series system. | ||
4797 | */ | ||
4798 | if (!hp_blike_system(codec->subsystem_id)) { | ||
4799 | set_hp_led_gpio(codec); | ||
4800 | spec->gpio_led_polarity = 1; | ||
4801 | return 1; | ||
4802 | } | ||
4783 | } | 4803 | } |
4784 | return 0; | 4804 | return 0; |
4785 | } | 4805 | } |
@@ -4962,6 +4982,7 @@ static int patch_stac9200(struct hda_codec *codec) | |||
4962 | if (spec == NULL) | 4982 | if (spec == NULL) |
4963 | return -ENOMEM; | 4983 | return -ENOMEM; |
4964 | 4984 | ||
4985 | codec->no_trigger_sense = 1; | ||
4965 | codec->spec = spec; | 4986 | codec->spec = spec; |
4966 | spec->num_pins = ARRAY_SIZE(stac9200_pin_nids); | 4987 | spec->num_pins = ARRAY_SIZE(stac9200_pin_nids); |
4967 | spec->pin_nids = stac9200_pin_nids; | 4988 | spec->pin_nids = stac9200_pin_nids; |
@@ -5024,6 +5045,7 @@ static int patch_stac925x(struct hda_codec *codec) | |||
5024 | if (spec == NULL) | 5045 | if (spec == NULL) |
5025 | return -ENOMEM; | 5046 | return -ENOMEM; |
5026 | 5047 | ||
5048 | codec->no_trigger_sense = 1; | ||
5027 | codec->spec = spec; | 5049 | codec->spec = spec; |
5028 | spec->num_pins = ARRAY_SIZE(stac925x_pin_nids); | 5050 | spec->num_pins = ARRAY_SIZE(stac925x_pin_nids); |
5029 | spec->pin_nids = stac925x_pin_nids; | 5051 | spec->pin_nids = stac925x_pin_nids; |
@@ -5108,6 +5130,7 @@ static int patch_stac92hd73xx(struct hda_codec *codec) | |||
5108 | if (spec == NULL) | 5130 | if (spec == NULL) |
5109 | return -ENOMEM; | 5131 | return -ENOMEM; |
5110 | 5132 | ||
5133 | codec->no_trigger_sense = 1; | ||
5111 | codec->spec = spec; | 5134 | codec->spec = spec; |
5112 | codec->slave_dig_outs = stac92hd73xx_slave_dig_outs; | 5135 | codec->slave_dig_outs = stac92hd73xx_slave_dig_outs; |
5113 | spec->num_pins = ARRAY_SIZE(stac92hd73xx_pin_nids); | 5136 | spec->num_pins = ARRAY_SIZE(stac92hd73xx_pin_nids); |
@@ -5255,6 +5278,7 @@ static int patch_stac92hd83xxx(struct hda_codec *codec) | |||
5255 | if (spec == NULL) | 5278 | if (spec == NULL) |
5256 | return -ENOMEM; | 5279 | return -ENOMEM; |
5257 | 5280 | ||
5281 | codec->no_trigger_sense = 1; | ||
5258 | codec->spec = spec; | 5282 | codec->spec = spec; |
5259 | codec->slave_dig_outs = stac92hd83xxx_slave_dig_outs; | 5283 | codec->slave_dig_outs = stac92hd83xxx_slave_dig_outs; |
5260 | spec->digbeep_nid = 0x21; | 5284 | spec->digbeep_nid = 0x21; |
@@ -5418,6 +5442,7 @@ static int patch_stac92hd71bxx(struct hda_codec *codec) | |||
5418 | if (spec == NULL) | 5442 | if (spec == NULL) |
5419 | return -ENOMEM; | 5443 | return -ENOMEM; |
5420 | 5444 | ||
5445 | codec->no_trigger_sense = 1; | ||
5421 | codec->spec = spec; | 5446 | codec->spec = spec; |
5422 | codec->patch_ops = stac92xx_patch_ops; | 5447 | codec->patch_ops = stac92xx_patch_ops; |
5423 | spec->num_pins = STAC92HD71BXX_NUM_PINS; | 5448 | spec->num_pins = STAC92HD71BXX_NUM_PINS; |
@@ -5550,6 +5575,8 @@ again: | |||
5550 | spec->num_dmuxes = ARRAY_SIZE(stac92hd71bxx_dmux_nids); | 5575 | spec->num_dmuxes = ARRAY_SIZE(stac92hd71bxx_dmux_nids); |
5551 | spec->num_smuxes = stac92hd71bxx_connected_smuxes(codec, 0x1e); | 5576 | spec->num_smuxes = stac92hd71bxx_connected_smuxes(codec, 0x1e); |
5552 | 5577 | ||
5578 | snd_printdd("Found board config: %d\n", spec->board_config); | ||
5579 | |||
5553 | switch (spec->board_config) { | 5580 | switch (spec->board_config) { |
5554 | case STAC_HP_M4: | 5581 | case STAC_HP_M4: |
5555 | /* enable internal microphone */ | 5582 | /* enable internal microphone */ |
@@ -5661,6 +5688,7 @@ static int patch_stac922x(struct hda_codec *codec) | |||
5661 | if (spec == NULL) | 5688 | if (spec == NULL) |
5662 | return -ENOMEM; | 5689 | return -ENOMEM; |
5663 | 5690 | ||
5691 | codec->no_trigger_sense = 1; | ||
5664 | codec->spec = spec; | 5692 | codec->spec = spec; |
5665 | spec->num_pins = ARRAY_SIZE(stac922x_pin_nids); | 5693 | spec->num_pins = ARRAY_SIZE(stac922x_pin_nids); |
5666 | spec->pin_nids = stac922x_pin_nids; | 5694 | spec->pin_nids = stac922x_pin_nids; |
@@ -5764,6 +5792,7 @@ static int patch_stac927x(struct hda_codec *codec) | |||
5764 | if (spec == NULL) | 5792 | if (spec == NULL) |
5765 | return -ENOMEM; | 5793 | return -ENOMEM; |
5766 | 5794 | ||
5795 | codec->no_trigger_sense = 1; | ||
5767 | codec->spec = spec; | 5796 | codec->spec = spec; |
5768 | codec->slave_dig_outs = stac927x_slave_dig_outs; | 5797 | codec->slave_dig_outs = stac927x_slave_dig_outs; |
5769 | spec->num_pins = ARRAY_SIZE(stac927x_pin_nids); | 5798 | spec->num_pins = ARRAY_SIZE(stac927x_pin_nids); |
@@ -5898,6 +5927,7 @@ static int patch_stac9205(struct hda_codec *codec) | |||
5898 | if (spec == NULL) | 5927 | if (spec == NULL) |
5899 | return -ENOMEM; | 5928 | return -ENOMEM; |
5900 | 5929 | ||
5930 | codec->no_trigger_sense = 1; | ||
5901 | codec->spec = spec; | 5931 | codec->spec = spec; |
5902 | spec->num_pins = ARRAY_SIZE(stac9205_pin_nids); | 5932 | spec->num_pins = ARRAY_SIZE(stac9205_pin_nids); |
5903 | spec->pin_nids = stac9205_pin_nids; | 5933 | spec->pin_nids = stac9205_pin_nids; |
@@ -6053,6 +6083,7 @@ static int patch_stac9872(struct hda_codec *codec) | |||
6053 | spec = kzalloc(sizeof(*spec), GFP_KERNEL); | 6083 | spec = kzalloc(sizeof(*spec), GFP_KERNEL); |
6054 | if (spec == NULL) | 6084 | if (spec == NULL) |
6055 | return -ENOMEM; | 6085 | return -ENOMEM; |
6086 | codec->no_trigger_sense = 1; | ||
6056 | codec->spec = spec; | 6087 | codec->spec = spec; |
6057 | spec->num_pins = ARRAY_SIZE(stac9872_pin_nids); | 6088 | spec->num_pins = ARRAY_SIZE(stac9872_pin_nids); |
6058 | spec->pin_nids = stac9872_pin_nids; | 6089 | spec->pin_nids = stac9872_pin_nids; |
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c index b5ca02e2038..e66ef2b69b5 100644 --- a/sound/pci/riptide/riptide.c +++ b/sound/pci/riptide/riptide.c | |||
@@ -1058,7 +1058,7 @@ setsamplerate(struct cmdif *cif, unsigned char *intdec, unsigned int rate) | |||
1058 | rptr.retwords[2] != M && | 1058 | rptr.retwords[2] != M && |
1059 | rptr.retwords[3] != N && | 1059 | rptr.retwords[3] != N && |
1060 | i++ < MAX_WRITE_RETRY); | 1060 | i++ < MAX_WRITE_RETRY); |
1061 | if (i == MAX_WRITE_RETRY) { | 1061 | if (i > MAX_WRITE_RETRY) { |
1062 | snd_printdd("sent samplerate %d: %d failed\n", | 1062 | snd_printdd("sent samplerate %d: %d failed\n", |
1063 | *intdec, rate); | 1063 | *intdec, rate); |
1064 | return -EIO; | 1064 | return -EIO; |
diff --git a/sound/soc/codecs/wm8903.c b/sound/soc/codecs/wm8903.c index ce5515e3f2b..3595bd57c4e 100644 --- a/sound/soc/codecs/wm8903.c +++ b/sound/soc/codecs/wm8903.c | |||
@@ -1504,7 +1504,7 @@ static int wm8903_resume(struct platform_device *pdev) | |||
1504 | struct i2c_client *i2c = codec->control_data; | 1504 | struct i2c_client *i2c = codec->control_data; |
1505 | int i; | 1505 | int i; |
1506 | u16 *reg_cache = codec->reg_cache; | 1506 | u16 *reg_cache = codec->reg_cache; |
1507 | u16 *tmp_cache = kmemdup(codec->reg_cache, sizeof(wm8903_reg_defaults), | 1507 | u16 *tmp_cache = kmemdup(reg_cache, sizeof(wm8903_reg_defaults), |
1508 | GFP_KERNEL); | 1508 | GFP_KERNEL); |
1509 | 1509 | ||
1510 | /* Bring the codec back up to standby first to minimise pop/clicks */ | 1510 | /* Bring the codec back up to standby first to minimise pop/clicks */ |
@@ -1516,6 +1516,7 @@ static int wm8903_resume(struct platform_device *pdev) | |||
1516 | for (i = 2; i < ARRAY_SIZE(wm8903_reg_defaults); i++) | 1516 | for (i = 2; i < ARRAY_SIZE(wm8903_reg_defaults); i++) |
1517 | if (tmp_cache[i] != reg_cache[i]) | 1517 | if (tmp_cache[i] != reg_cache[i]) |
1518 | snd_soc_write(codec, i, tmp_cache[i]); | 1518 | snd_soc_write(codec, i, tmp_cache[i]); |
1519 | kfree(tmp_cache); | ||
1519 | } else { | 1520 | } else { |
1520 | dev_err(&i2c->dev, "Failed to allocate temporary cache\n"); | 1521 | dev_err(&i2c->dev, "Failed to allocate temporary cache\n"); |
1521 | } | 1522 | } |
diff --git a/sound/sound_core.c b/sound/sound_core.c index dbca7c909a3..7c2d677a2df 100644 --- a/sound/sound_core.c +++ b/sound/sound_core.c | |||
@@ -61,7 +61,7 @@ static void __exit cleanup_soundcore(void) | |||
61 | class_destroy(sound_class); | 61 | class_destroy(sound_class); |
62 | } | 62 | } |
63 | 63 | ||
64 | module_init(init_soundcore); | 64 | subsys_initcall(init_soundcore); |
65 | module_exit(cleanup_soundcore); | 65 | module_exit(cleanup_soundcore); |
66 | 66 | ||
67 | 67 | ||
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c index 4963defee18..9edef468497 100644 --- a/sound/usb/usbaudio.c +++ b/sound/usb/usbaudio.c | |||
@@ -1936,7 +1936,7 @@ static int snd_usb_pcm_close(struct snd_pcm_substream *substream, int direction) | |||
1936 | struct snd_usb_stream *as = snd_pcm_substream_chip(substream); | 1936 | struct snd_usb_stream *as = snd_pcm_substream_chip(substream); |
1937 | struct snd_usb_substream *subs = &as->substream[direction]; | 1937 | struct snd_usb_substream *subs = &as->substream[direction]; |
1938 | 1938 | ||
1939 | if (subs->interface >= 0) { | 1939 | if (!as->chip->shutdown && subs->interface >= 0) { |
1940 | usb_set_interface(subs->dev, subs->interface, 0); | 1940 | usb_set_interface(subs->dev, subs->interface, 0); |
1941 | subs->interface = -1; | 1941 | subs->interface = -1; |
1942 | } | 1942 | } |
diff --git a/tools/perf/Makefile b/tools/perf/Makefile index 4390d225686..2e7fa3a0680 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile | |||
@@ -250,7 +250,19 @@ PTHREAD_LIBS = -lpthread | |||
250 | # explicitly what architecture to check for. Fix this up for yours.. | 250 | # explicitly what architecture to check for. Fix this up for yours.. |
251 | SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__ | 251 | SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__ |
252 | 252 | ||
253 | ifeq ($(shell sh -c "echo 'int foo(void) {char X[2]; return 3;}' | $(CC) -x c -c -Werror -fstack-protector-all - -o /dev/null "$(QUIET_STDERR)" && echo y"), y) | 253 | ifeq ($(V), 2) |
254 | QUIET_STDERR = ">/dev/null" | ||
255 | else | ||
256 | QUIET_STDERR = ">/dev/null 2>&1" | ||
257 | endif | ||
258 | |||
259 | BITBUCKET = "/dev/null" | ||
260 | |||
261 | ifneq ($(shell sh -c "(echo '\#include <stdio.h>'; echo 'int main(void) { return puts(\"hi\"); }') | $(CC) -x c - $(ALL_CFLAGS) -o $(BITBUCKET) "$(QUIET_STDERR)" && echo y"), y) | ||
262 | BITBUCKET = .perf.dev.null | ||
263 | endif | ||
264 | |||
265 | ifeq ($(shell sh -c "echo 'int foo(void) {char X[2]; return 3;}' | $(CC) -x c -c -Werror -fstack-protector-all - -o $(BITBUCKET) "$(QUIET_STDERR)" && echo y"), y) | ||
254 | CFLAGS := $(CFLAGS) -fstack-protector-all | 266 | CFLAGS := $(CFLAGS) -fstack-protector-all |
255 | endif | 267 | endif |
256 | 268 | ||
@@ -343,13 +355,18 @@ LIB_H += util/include/linux/string.h | |||
343 | LIB_H += util/include/linux/types.h | 355 | LIB_H += util/include/linux/types.h |
344 | LIB_H += util/include/asm/asm-offsets.h | 356 | LIB_H += util/include/asm/asm-offsets.h |
345 | LIB_H += util/include/asm/bitops.h | 357 | LIB_H += util/include/asm/bitops.h |
358 | LIB_H += util/include/asm/bug.h | ||
346 | LIB_H += util/include/asm/byteorder.h | 359 | LIB_H += util/include/asm/byteorder.h |
347 | LIB_H += util/include/asm/swab.h | 360 | LIB_H += util/include/asm/swab.h |
348 | LIB_H += util/include/asm/system.h | 361 | LIB_H += util/include/asm/system.h |
349 | LIB_H += util/include/asm/uaccess.h | 362 | LIB_H += util/include/asm/uaccess.h |
350 | LIB_H += perf.h | 363 | LIB_H += perf.h |
364 | LIB_H += util/cache.h | ||
365 | LIB_H += util/callchain.h | ||
366 | LIB_H += util/debug.h | ||
351 | LIB_H += util/debugfs.h | 367 | LIB_H += util/debugfs.h |
352 | LIB_H += util/event.h | 368 | LIB_H += util/event.h |
369 | LIB_H += util/exec_cmd.h | ||
353 | LIB_H += util/types.h | 370 | LIB_H += util/types.h |
354 | LIB_H += util/levenshtein.h | 371 | LIB_H += util/levenshtein.h |
355 | LIB_H += util/parse-options.h | 372 | LIB_H += util/parse-options.h |
@@ -362,6 +379,7 @@ LIB_H += util/session.h | |||
362 | LIB_H += util/strbuf.h | 379 | LIB_H += util/strbuf.h |
363 | LIB_H += util/string.h | 380 | LIB_H += util/string.h |
364 | LIB_H += util/strlist.h | 381 | LIB_H += util/strlist.h |
382 | LIB_H += util/svghelper.h | ||
365 | LIB_H += util/run-command.h | 383 | LIB_H += util/run-command.h |
366 | LIB_H += util/sigchain.h | 384 | LIB_H += util/sigchain.h |
367 | LIB_H += util/symbol.h | 385 | LIB_H += util/symbol.h |
@@ -370,6 +388,8 @@ LIB_H += util/values.h | |||
370 | LIB_H += util/sort.h | 388 | LIB_H += util/sort.h |
371 | LIB_H += util/hist.h | 389 | LIB_H += util/hist.h |
372 | LIB_H += util/thread.h | 390 | LIB_H += util/thread.h |
391 | LIB_H += util/trace-event.h | ||
392 | LIB_H += util/trace-event-perl.h | ||
373 | LIB_H += util/probe-finder.h | 393 | LIB_H += util/probe-finder.h |
374 | LIB_H += util/probe-event.h | 394 | LIB_H += util/probe-event.h |
375 | 395 | ||
@@ -443,11 +463,6 @@ BUILTIN_OBJS += builtin-kmem.o | |||
443 | 463 | ||
444 | PERFLIBS = $(LIB_FILE) | 464 | PERFLIBS = $(LIB_FILE) |
445 | 465 | ||
446 | ifeq ($(V), 2) | ||
447 | QUIET_STDERR = ">/dev/null" | ||
448 | else | ||
449 | QUIET_STDERR = ">/dev/null 2>&1" | ||
450 | endif | ||
451 | # | 466 | # |
452 | # Platform specific tweaks | 467 | # Platform specific tweaks |
453 | # | 468 | # |
@@ -475,19 +490,19 @@ ifeq ($(uname_S),Darwin) | |||
475 | PTHREAD_LIBS = | 490 | PTHREAD_LIBS = |
476 | endif | 491 | endif |
477 | 492 | ||
478 | ifeq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) | 493 | ifeq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) |
479 | ifneq ($(shell sh -c "(echo '\#include <gnu/libc-version.h>'; echo 'int main(void) { const char * version = gnu_get_libc_version(); return (long)version; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) | 494 | ifneq ($(shell sh -c "(echo '\#include <gnu/libc-version.h>'; echo 'int main(void) { const char * version = gnu_get_libc_version(); return (long)version; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) |
480 | msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]/glibc-static); | 495 | msg := $(error No gnu/libc-version.h found, please install glibc-dev[el]/glibc-static); |
481 | endif | 496 | endif |
482 | 497 | ||
483 | ifneq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ_MMAP, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) | 498 | ifneq ($(shell sh -c "(echo '\#include <libelf.h>'; echo 'int main(void) { Elf * elf = elf_begin(0, ELF_C_READ_MMAP, 0); return (long)elf; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) |
484 | BASIC_CFLAGS += -DLIBELF_NO_MMAP | 499 | BASIC_CFLAGS += -DLIBELF_NO_MMAP |
485 | endif | 500 | endif |
486 | else | 501 | else |
487 | msg := $(error No libelf.h/libelf found, please install libelf-dev/elfutils-libelf-devel and glibc-dev[el]); | 502 | msg := $(error No libelf.h/libelf found, please install libelf-dev/elfutils-libelf-devel and glibc-dev[el]); |
488 | endif | 503 | endif |
489 | 504 | ||
490 | ifneq ($(shell sh -c "(echo '\#ifndef _MIPS_SZLONG'; echo '\#define _MIPS_SZLONG 0'; echo '\#endif'; echo '\#include <dwarf.h>'; echo '\#include <libdwarf.h>'; echo 'int main(void) { Dwarf_Debug dbg; Dwarf_Error err; Dwarf_Ranges *rng; dwarf_init(0, DW_DLC_READ, 0, 0, &dbg, &err); dwarf_get_ranges(dbg, 0, &rng, 0, 0, &err); return (long)dbg; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/libdwarf -ldwarf -lelf -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) | 505 | ifneq ($(shell sh -c "(echo '\#ifndef _MIPS_SZLONG'; echo '\#define _MIPS_SZLONG 0'; echo '\#endif'; echo '\#include <dwarf.h>'; echo '\#include <libdwarf.h>'; echo 'int main(void) { Dwarf_Debug dbg; Dwarf_Error err; Dwarf_Ranges *rng; dwarf_init(0, DW_DLC_READ, 0, 0, &dbg, &err); dwarf_get_ranges(dbg, 0, &rng, 0, 0, &err); return (long)dbg; }') | $(CC) -x c - $(ALL_CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/libdwarf -ldwarf -lelf -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) "$(QUIET_STDERR)" && echo y"), y) |
491 | msg := $(warning No libdwarf.h found or old libdwarf.h found, disables dwarf support. Please install libdwarf-dev/libdwarf-devel >= 20081231); | 506 | msg := $(warning No libdwarf.h found or old libdwarf.h found, disables dwarf support. Please install libdwarf-dev/libdwarf-devel >= 20081231); |
492 | BASIC_CFLAGS += -DNO_LIBDWARF | 507 | BASIC_CFLAGS += -DNO_LIBDWARF |
493 | else | 508 | else |
@@ -501,7 +516,7 @@ PERL_EMBED_LDOPTS = `perl -MExtUtils::Embed -e ldopts 2>/dev/null` | |||
501 | PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null` | 516 | PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null` |
502 | endif | 517 | endif |
503 | 518 | ||
504 | ifneq ($(shell sh -c "(echo '\#include <EXTERN.h>'; echo '\#include <perl.h>'; echo 'int main(void) { perl_alloc(); return 0; }') | $(CC) -x c - $(PERL_EMBED_CCOPTS) -o /dev/null $(PERL_EMBED_LDOPTS) > /dev/null 2>&1 && echo y"), y) | 519 | ifneq ($(shell sh -c "(echo '\#include <EXTERN.h>'; echo '\#include <perl.h>'; echo 'int main(void) { perl_alloc(); return 0; }') | $(CC) -x c - $(PERL_EMBED_CCOPTS) -o $(BITBUCKET) $(PERL_EMBED_LDOPTS) > /dev/null 2>&1 && echo y"), y) |
505 | BASIC_CFLAGS += -DNO_LIBPERL | 520 | BASIC_CFLAGS += -DNO_LIBPERL |
506 | else | 521 | else |
507 | ALL_LDFLAGS += $(PERL_EMBED_LDOPTS) | 522 | ALL_LDFLAGS += $(PERL_EMBED_LDOPTS) |
@@ -511,20 +526,20 @@ endif | |||
511 | ifdef NO_DEMANGLE | 526 | ifdef NO_DEMANGLE |
512 | BASIC_CFLAGS += -DNO_DEMANGLE | 527 | BASIC_CFLAGS += -DNO_DEMANGLE |
513 | else | 528 | else |
514 | has_bfd := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) -lbfd "$(QUIET_STDERR)" && echo y") | 529 | has_bfd := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) -lbfd "$(QUIET_STDERR)" && echo y") |
515 | 530 | ||
516 | ifeq ($(has_bfd),y) | 531 | ifeq ($(has_bfd),y) |
517 | EXTLIBS += -lbfd | 532 | EXTLIBS += -lbfd |
518 | else | 533 | else |
519 | has_bfd_iberty := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) -lbfd -liberty "$(QUIET_STDERR)" && echo y") | 534 | has_bfd_iberty := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) -lbfd -liberty "$(QUIET_STDERR)" && echo y") |
520 | ifeq ($(has_bfd_iberty),y) | 535 | ifeq ($(has_bfd_iberty),y) |
521 | EXTLIBS += -lbfd -liberty | 536 | EXTLIBS += -lbfd -liberty |
522 | else | 537 | else |
523 | has_bfd_iberty_z := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) -lbfd -liberty -lz "$(QUIET_STDERR)" && echo y") | 538 | has_bfd_iberty_z := $(shell sh -c "(echo '\#include <bfd.h>'; echo 'int main(void) { bfd_demangle(0, 0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) -lbfd -liberty -lz "$(QUIET_STDERR)" && echo y") |
524 | ifeq ($(has_bfd_iberty_z),y) | 539 | ifeq ($(has_bfd_iberty_z),y) |
525 | EXTLIBS += -lbfd -liberty -lz | 540 | EXTLIBS += -lbfd -liberty -lz |
526 | else | 541 | else |
527 | has_cplus_demangle := $(shell sh -c "(echo 'extern char *cplus_demangle(const char *, int);'; echo 'int main(void) { cplus_demangle(0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o /dev/null $(ALL_LDFLAGS) $(EXTLIBS) -liberty "$(QUIET_STDERR)" && echo y") | 542 | has_cplus_demangle := $(shell sh -c "(echo 'extern char *cplus_demangle(const char *, int);'; echo 'int main(void) { cplus_demangle(0, 0); return 0; }') | $(CC) -x c - $(ALL_CFLAGS) -o $(BITBUCKET) $(ALL_LDFLAGS) $(EXTLIBS) -liberty "$(QUIET_STDERR)" && echo y") |
528 | ifeq ($(has_cplus_demangle),y) | 543 | ifeq ($(has_cplus_demangle),y) |
529 | EXTLIBS += -liberty | 544 | EXTLIBS += -liberty |
530 | BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE | 545 | BASIC_CFLAGS += -DHAVE_CPLUS_DEMANGLE |
@@ -772,7 +787,7 @@ export TAR INSTALL DESTDIR SHELL_PATH | |||
772 | 787 | ||
773 | SHELL = $(SHELL_PATH) | 788 | SHELL = $(SHELL_PATH) |
774 | 789 | ||
775 | all:: shell_compatibility_test $(ALL_PROGRAMS) $(BUILT_INS) $(OTHER_PROGRAMS) PERF-BUILD-OPTIONS | 790 | all:: .perf.dev.null shell_compatibility_test $(ALL_PROGRAMS) $(BUILT_INS) $(OTHER_PROGRAMS) PERF-BUILD-OPTIONS |
776 | ifneq (,$X) | 791 | ifneq (,$X) |
777 | $(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) perf$X)), test '$p' -ef '$p$X' || $(RM) '$p';) | 792 | $(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) perf$X)), test '$p' -ef '$p$X' || $(RM) '$p';) |
778 | endif | 793 | endif |
@@ -1099,6 +1114,11 @@ clean: | |||
1099 | .PHONY: .FORCE-PERF-VERSION-FILE TAGS tags cscope .FORCE-PERF-CFLAGS | 1114 | .PHONY: .FORCE-PERF-VERSION-FILE TAGS tags cscope .FORCE-PERF-CFLAGS |
1100 | .PHONY: .FORCE-PERF-BUILD-OPTIONS | 1115 | .PHONY: .FORCE-PERF-BUILD-OPTIONS |
1101 | 1116 | ||
1117 | .perf.dev.null: | ||
1118 | touch .perf.dev.null | ||
1119 | |||
1120 | .INTERMEDIATE: .perf.dev.null | ||
1121 | |||
1102 | ### Make sure built-ins do not have dups and listed in perf.c | 1122 | ### Make sure built-ins do not have dups and listed in perf.c |
1103 | # | 1123 | # |
1104 | check-builtins:: | 1124 | check-builtins:: |
diff --git a/tools/perf/builtin-buildid-list.c b/tools/perf/builtin-buildid-list.c index e693e6777af..1e99ac80691 100644 --- a/tools/perf/builtin-buildid-list.c +++ b/tools/perf/builtin-buildid-list.c | |||
@@ -17,7 +17,7 @@ | |||
17 | static char const *input_name = "perf.data"; | 17 | static char const *input_name = "perf.data"; |
18 | static int force; | 18 | static int force; |
19 | 19 | ||
20 | static const char *const buildid_list_usage[] = { | 20 | static const char * const buildid_list_usage[] = { |
21 | "perf buildid-list [<options>]", | 21 | "perf buildid-list [<options>]", |
22 | NULL | 22 | NULL |
23 | }; | 23 | }; |
diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 4d33b55d558..bd71b8ceafb 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c | |||
@@ -189,8 +189,9 @@ out_delete: | |||
189 | return ret; | 189 | return ret; |
190 | } | 190 | } |
191 | 191 | ||
192 | static const char *const diff_usage[] = { | 192 | static const char * const diff_usage[] = { |
193 | "perf diff [<options>] [old_file] [new_file]", | 193 | "perf diff [<options>] [old_file] [new_file]", |
194 | NULL, | ||
194 | }; | 195 | }; |
195 | 196 | ||
196 | static const struct option options[] = { | 197 | static const struct option options[] = { |
diff --git a/tools/perf/builtin-kmem.c b/tools/perf/builtin-kmem.c index fc21ad79dd8..93c67bf53d2 100644 --- a/tools/perf/builtin-kmem.c +++ b/tools/perf/builtin-kmem.c | |||
@@ -137,7 +137,7 @@ static void insert_alloc_stat(unsigned long call_site, unsigned long ptr, | |||
137 | if (data && data->ptr == ptr) { | 137 | if (data && data->ptr == ptr) { |
138 | data->hit++; | 138 | data->hit++; |
139 | data->bytes_req += bytes_req; | 139 | data->bytes_req += bytes_req; |
140 | data->bytes_alloc += bytes_req; | 140 | data->bytes_alloc += bytes_alloc; |
141 | } else { | 141 | } else { |
142 | data = malloc(sizeof(*data)); | 142 | data = malloc(sizeof(*data)); |
143 | if (!data) | 143 | if (!data) |
@@ -177,7 +177,7 @@ static void insert_caller_stat(unsigned long call_site, | |||
177 | if (data && data->call_site == call_site) { | 177 | if (data && data->call_site == call_site) { |
178 | data->hit++; | 178 | data->hit++; |
179 | data->bytes_req += bytes_req; | 179 | data->bytes_req += bytes_req; |
180 | data->bytes_alloc += bytes_req; | 180 | data->bytes_alloc += bytes_alloc; |
181 | } else { | 181 | } else { |
182 | data = malloc(sizeof(*data)); | 182 | data = malloc(sizeof(*data)); |
183 | if (!data) | 183 | if (!data) |
@@ -375,7 +375,7 @@ static void __print_result(struct rb_root *root, struct perf_session *session, | |||
375 | 375 | ||
376 | printf("%.102s\n", graph_dotted_line); | 376 | printf("%.102s\n", graph_dotted_line); |
377 | printf(" %-34s |", is_caller ? "Callsite": "Alloc Ptr"); | 377 | printf(" %-34s |", is_caller ? "Callsite": "Alloc Ptr"); |
378 | printf(" Total_alloc/Per | Total_req/Per | Hit | Ping-pong | Frag\n"); | 378 | printf(" Total_alloc/Per | Total_req/Per | Hit | Ping-pong | Frag\n"); |
379 | printf("%.102s\n", graph_dotted_line); | 379 | printf("%.102s\n", graph_dotted_line); |
380 | 380 | ||
381 | next = rb_first(root); | 381 | next = rb_first(root); |
@@ -401,7 +401,7 @@ static void __print_result(struct rb_root *root, struct perf_session *session, | |||
401 | snprintf(buf, sizeof(buf), "%#Lx", addr); | 401 | snprintf(buf, sizeof(buf), "%#Lx", addr); |
402 | printf(" %-34s |", buf); | 402 | printf(" %-34s |", buf); |
403 | 403 | ||
404 | printf(" %9llu/%-5lu | %9llu/%-5lu | %6lu | %8lu | %6.3f%%\n", | 404 | printf(" %9llu/%-5lu | %9llu/%-5lu | %8lu | %8lu | %6.3f%%\n", |
405 | (unsigned long long)data->bytes_alloc, | 405 | (unsigned long long)data->bytes_alloc, |
406 | (unsigned long)data->bytes_alloc / data->hit, | 406 | (unsigned long)data->bytes_alloc / data->hit, |
407 | (unsigned long long)data->bytes_req, | 407 | (unsigned long long)data->bytes_req, |
@@ -784,7 +784,8 @@ int cmd_kmem(int argc, const char **argv, const char *prefix __used) | |||
784 | setup_sorting(&alloc_sort, default_sort_order); | 784 | setup_sorting(&alloc_sort, default_sort_order); |
785 | 785 | ||
786 | return __cmd_kmem(); | 786 | return __cmd_kmem(); |
787 | } | 787 | } else |
788 | usage_with_options(kmem_usage, kmem_options); | ||
788 | 789 | ||
789 | return 0; | 790 | return 0; |
790 | } | 791 | } |
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 63136d0534d..26542532273 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c | |||
@@ -402,7 +402,7 @@ static void atexit_header(void) | |||
402 | perf_header__write(&session->header, output, true); | 402 | perf_header__write(&session->header, output, true); |
403 | } | 403 | } |
404 | 404 | ||
405 | static int __cmd_record(int argc __used, const char **argv) | 405 | static int __cmd_record(int argc, const char **argv) |
406 | { | 406 | { |
407 | int i, counter; | 407 | int i, counter; |
408 | struct stat st; | 408 | struct stat st; |
@@ -411,6 +411,7 @@ static int __cmd_record(int argc __used, const char **argv) | |||
411 | int err; | 411 | int err; |
412 | unsigned long waking = 0; | 412 | unsigned long waking = 0; |
413 | int child_ready_pipe[2], go_pipe[2]; | 413 | int child_ready_pipe[2], go_pipe[2]; |
414 | const bool forks = target_pid == -1 && argc > 0; | ||
414 | char buf; | 415 | char buf; |
415 | 416 | ||
416 | page_size = sysconf(_SC_PAGE_SIZE); | 417 | page_size = sysconf(_SC_PAGE_SIZE); |
@@ -422,7 +423,7 @@ static int __cmd_record(int argc __used, const char **argv) | |||
422 | signal(SIGCHLD, sig_handler); | 423 | signal(SIGCHLD, sig_handler); |
423 | signal(SIGINT, sig_handler); | 424 | signal(SIGINT, sig_handler); |
424 | 425 | ||
425 | if (pipe(child_ready_pipe) < 0 || pipe(go_pipe) < 0) { | 426 | if (forks && (pipe(child_ready_pipe) < 0 || pipe(go_pipe) < 0)) { |
426 | perror("failed to create pipes"); | 427 | perror("failed to create pipes"); |
427 | exit(-1); | 428 | exit(-1); |
428 | } | 429 | } |
@@ -483,7 +484,7 @@ static int __cmd_record(int argc __used, const char **argv) | |||
483 | 484 | ||
484 | atexit(atexit_header); | 485 | atexit(atexit_header); |
485 | 486 | ||
486 | if (target_pid == -1) { | 487 | if (forks) { |
487 | pid = fork(); | 488 | pid = fork(); |
488 | if (pid < 0) { | 489 | if (pid < 0) { |
489 | perror("failed to fork"); | 490 | perror("failed to fork"); |
@@ -550,7 +551,7 @@ static int __cmd_record(int argc __used, const char **argv) | |||
550 | return err; | 551 | return err; |
551 | } | 552 | } |
552 | 553 | ||
553 | if (!system_wide) | 554 | if (!system_wide && profile_cpu == -1) |
554 | event__synthesize_thread(pid, process_synthesized_event, | 555 | event__synthesize_thread(pid, process_synthesized_event, |
555 | session); | 556 | session); |
556 | else | 557 | else |
@@ -569,7 +570,8 @@ static int __cmd_record(int argc __used, const char **argv) | |||
569 | /* | 570 | /* |
570 | * Let the child rip | 571 | * Let the child rip |
571 | */ | 572 | */ |
572 | close(go_pipe[1]); | 573 | if (forks) |
574 | close(go_pipe[1]); | ||
573 | 575 | ||
574 | for (;;) { | 576 | for (;;) { |
575 | int hits = samples; | 577 | int hits = samples; |
@@ -667,7 +669,7 @@ int cmd_record(int argc, const char **argv, const char *prefix __used) | |||
667 | 669 | ||
668 | argc = parse_options(argc, argv, options, record_usage, | 670 | argc = parse_options(argc, argv, options, record_usage, |
669 | PARSE_OPT_STOP_AT_NON_OPTION); | 671 | PARSE_OPT_STOP_AT_NON_OPTION); |
670 | if (!argc && target_pid == -1 && (!system_wide || profile_cpu == -1)) | 672 | if (!argc && target_pid == -1 && !system_wide && profile_cpu == -1) |
671 | usage_with_options(record_usage, options); | 673 | usage_with_options(record_usage, options); |
672 | 674 | ||
673 | symbol__init(); | 675 | symbol__init(); |
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 5c2ab5357ec..db10c0e8eca 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c | |||
@@ -294,8 +294,7 @@ setup: | |||
294 | return 0; | 294 | return 0; |
295 | } | 295 | } |
296 | 296 | ||
297 | //static const char * const report_usage[] = { | 297 | static const char * const report_usage[] = { |
298 | const char * const report_usage[] = { | ||
299 | "perf report [<options>] <command>", | 298 | "perf report [<options>] <command>", |
300 | NULL | 299 | NULL |
301 | }; | 300 | }; |
diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c index a589a43112d..3f8bbcfb1e9 100644 --- a/tools/perf/builtin-timechart.c +++ b/tools/perf/builtin-timechart.c | |||
@@ -280,7 +280,7 @@ static u64 cpus_pstate_state[MAX_CPUS]; | |||
280 | 280 | ||
281 | static int process_comm_event(event_t *event, struct perf_session *session __used) | 281 | static int process_comm_event(event_t *event, struct perf_session *session __used) |
282 | { | 282 | { |
283 | pid_set_comm(event->comm.pid, event->comm.comm); | 283 | pid_set_comm(event->comm.tid, event->comm.comm); |
284 | return 0; | 284 | return 0; |
285 | } | 285 | } |
286 | 286 | ||
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index e2285e28720..574a215e800 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c | |||
@@ -512,7 +512,7 @@ static char *get_script_path(const char *script_root, const char *suffix) | |||
512 | return path; | 512 | return path; |
513 | } | 513 | } |
514 | 514 | ||
515 | static const char * const annotate_usage[] = { | 515 | static const char * const trace_usage[] = { |
516 | "perf trace [<options>] <command>", | 516 | "perf trace [<options>] <command>", |
517 | NULL | 517 | NULL |
518 | }; | 518 | }; |
@@ -581,7 +581,7 @@ int cmd_trace(int argc, const char **argv, const char *prefix __used) | |||
581 | 581 | ||
582 | setup_scripting(); | 582 | setup_scripting(); |
583 | 583 | ||
584 | argc = parse_options(argc, argv, options, annotate_usage, | 584 | argc = parse_options(argc, argv, options, trace_usage, |
585 | PARSE_OPT_STOP_AT_NON_OPTION); | 585 | PARSE_OPT_STOP_AT_NON_OPTION); |
586 | 586 | ||
587 | if (symbol__init() < 0) | 587 | if (symbol__init() < 0) |
diff --git a/tools/perf/design.txt b/tools/perf/design.txt index f000c30877a..8d0de5130db 100644 --- a/tools/perf/design.txt +++ b/tools/perf/design.txt | |||
@@ -21,7 +21,7 @@ There's one file descriptor per virtual counter used. | |||
21 | The special file descriptor is opened via the perf_event_open() | 21 | The special file descriptor is opened via the perf_event_open() |
22 | system call: | 22 | system call: |
23 | 23 | ||
24 | int sys_perf_event_open(struct perf_event_hw_event *hw_event_uptr, | 24 | int sys_perf_event_open(struct perf_event_attr *hw_event_uptr, |
25 | pid_t pid, int cpu, int group_fd, | 25 | pid_t pid, int cpu, int group_fd, |
26 | unsigned long flags); | 26 | unsigned long flags); |
27 | 27 | ||
@@ -32,9 +32,9 @@ can be used to set the blocking mode, etc. | |||
32 | Multiple counters can be kept open at a time, and the counters | 32 | Multiple counters can be kept open at a time, and the counters |
33 | can be poll()ed. | 33 | can be poll()ed. |
34 | 34 | ||
35 | When creating a new counter fd, 'perf_event_hw_event' is: | 35 | When creating a new counter fd, 'perf_event_attr' is: |
36 | 36 | ||
37 | struct perf_event_hw_event { | 37 | struct perf_event_attr { |
38 | /* | 38 | /* |
39 | * The MSB of the config word signifies if the rest contains cpu | 39 | * The MSB of the config word signifies if the rest contains cpu |
40 | * specific (raw) counter configuration data, if unset, the next | 40 | * specific (raw) counter configuration data, if unset, the next |
@@ -399,7 +399,7 @@ Notification of new events is possible through poll()/select()/epoll() and | |||
399 | fcntl() managing signals. | 399 | fcntl() managing signals. |
400 | 400 | ||
401 | Normally a notification is generated for every page filled, however one can | 401 | Normally a notification is generated for every page filled, however one can |
402 | additionally set perf_event_hw_event.wakeup_events to generate one every | 402 | additionally set perf_event_attr.wakeup_events to generate one every |
403 | so many counter overflow events. | 403 | so many counter overflow events. |
404 | 404 | ||
405 | Future work will include a splice() interface to the ring-buffer. | 405 | Future work will include a splice() interface to the ring-buffer. |
diff --git a/usr/Kconfig b/usr/Kconfig index 1c3039f2890..e2721f5a350 100644 --- a/usr/Kconfig +++ b/usr/Kconfig | |||
@@ -72,6 +72,15 @@ config RD_LZMA | |||
72 | Support loading of a LZMA encoded initial ramdisk or cpio buffer | 72 | Support loading of a LZMA encoded initial ramdisk or cpio buffer |
73 | If unsure, say N. | 73 | If unsure, say N. |
74 | 74 | ||
75 | config RD_LZO | ||
76 | bool "Support initial ramdisks compressed using LZO" if EMBEDDED | ||
77 | default !EMBEDDED | ||
78 | depends on BLK_DEV_INITRD | ||
79 | select DECOMPRESS_LZO | ||
80 | help | ||
81 | Support loading of a LZO encoded initial ramdisk or cpio buffer | ||
82 | If unsure, say N. | ||
83 | |||
75 | choice | 84 | choice |
76 | prompt "Built-in initramfs compression mode" if INITRAMFS_SOURCE!="" | 85 | prompt "Built-in initramfs compression mode" if INITRAMFS_SOURCE!="" |
77 | help | 86 | help |
@@ -108,16 +117,15 @@ config INITRAMFS_COMPRESSION_GZIP | |||
108 | bool "Gzip" | 117 | bool "Gzip" |
109 | depends on RD_GZIP | 118 | depends on RD_GZIP |
110 | help | 119 | help |
111 | The old and tried gzip compression. Its compression ratio is | 120 | The old and tried gzip compression. It provides a good balance |
112 | the poorest among the 3 choices; however its speed (both | 121 | between compression ratio and decompression speed. |
113 | compression and decompression) is the fastest. | ||
114 | 122 | ||
115 | config INITRAMFS_COMPRESSION_BZIP2 | 123 | config INITRAMFS_COMPRESSION_BZIP2 |
116 | bool "Bzip2" | 124 | bool "Bzip2" |
117 | depends on RD_BZIP2 | 125 | depends on RD_BZIP2 |
118 | help | 126 | help |
119 | Its compression ratio and speed is intermediate. | 127 | Its compression ratio and speed is intermediate. |
120 | Decompression speed is slowest among the three. The initramfs | 128 | Decompression speed is slowest among the four. The initramfs |
121 | size is about 10% smaller with bzip2, in comparison to gzip. | 129 | size is about 10% smaller with bzip2, in comparison to gzip. |
122 | Bzip2 uses a large amount of memory. For modern kernels you | 130 | Bzip2 uses a large amount of memory. For modern kernels you |
123 | will need at least 8MB RAM or more for booting. | 131 | will need at least 8MB RAM or more for booting. |
@@ -128,7 +136,15 @@ config INITRAMFS_COMPRESSION_LZMA | |||
128 | help | 136 | help |
129 | The most recent compression algorithm. | 137 | The most recent compression algorithm. |
130 | Its ratio is best, decompression speed is between the other | 138 | Its ratio is best, decompression speed is between the other |
131 | two. Compression is slowest. The initramfs size is about 33% | 139 | three. Compression is slowest. The initramfs size is about 33% |
132 | smaller with LZMA in comparison to gzip. | 140 | smaller with LZMA in comparison to gzip. |
133 | 141 | ||
142 | config INITRAMFS_COMPRESSION_LZO | ||
143 | bool "LZO" | ||
144 | depends on RD_LZO | ||
145 | help | ||
146 | Its compression ratio is the poorest among the four. The kernel | ||
147 | size is about about 10% bigger than gzip; however its speed | ||
148 | (both compression and decompression) is the fastest. | ||
149 | |||
134 | endchoice | 150 | endchoice |
diff --git a/virt/kvm/assigned-dev.c b/virt/kvm/assigned-dev.c index fd9c097b760..f73de631e3e 100644 --- a/virt/kvm/assigned-dev.c +++ b/virt/kvm/assigned-dev.c | |||
@@ -508,8 +508,8 @@ static int kvm_vm_ioctl_assign_device(struct kvm *kvm, | |||
508 | struct kvm_assigned_dev_kernel *match; | 508 | struct kvm_assigned_dev_kernel *match; |
509 | struct pci_dev *dev; | 509 | struct pci_dev *dev; |
510 | 510 | ||
511 | down_read(&kvm->slots_lock); | ||
512 | mutex_lock(&kvm->lock); | 511 | mutex_lock(&kvm->lock); |
512 | down_read(&kvm->slots_lock); | ||
513 | 513 | ||
514 | match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head, | 514 | match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head, |
515 | assigned_dev->assigned_dev_id); | 515 | assigned_dev->assigned_dev_id); |
@@ -573,8 +573,8 @@ static int kvm_vm_ioctl_assign_device(struct kvm *kvm, | |||
573 | } | 573 | } |
574 | 574 | ||
575 | out: | 575 | out: |
576 | mutex_unlock(&kvm->lock); | ||
577 | up_read(&kvm->slots_lock); | 576 | up_read(&kvm->slots_lock); |
577 | mutex_unlock(&kvm->lock); | ||
578 | return r; | 578 | return r; |
579 | out_list_del: | 579 | out_list_del: |
580 | list_del(&match->list); | 580 | list_del(&match->list); |
@@ -585,8 +585,8 @@ out_put: | |||
585 | pci_dev_put(dev); | 585 | pci_dev_put(dev); |
586 | out_free: | 586 | out_free: |
587 | kfree(match); | 587 | kfree(match); |
588 | mutex_unlock(&kvm->lock); | ||
589 | up_read(&kvm->slots_lock); | 588 | up_read(&kvm->slots_lock); |
589 | mutex_unlock(&kvm->lock); | ||
590 | return r; | 590 | return r; |
591 | } | 591 | } |
592 | 592 | ||
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index b5af8816761..a944be392d6 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c | |||
@@ -64,7 +64,7 @@ MODULE_LICENSE("GPL"); | |||
64 | /* | 64 | /* |
65 | * Ordering of locks: | 65 | * Ordering of locks: |
66 | * | 66 | * |
67 | * kvm->slots_lock --> kvm->lock --> kvm->irq_lock | 67 | * kvm->lock --> kvm->slots_lock --> kvm->irq_lock |
68 | */ | 68 | */ |
69 | 69 | ||
70 | DEFINE_SPINLOCK(kvm_lock); | 70 | DEFINE_SPINLOCK(kvm_lock); |
@@ -406,8 +406,11 @@ static struct kvm *kvm_create_vm(void) | |||
406 | out: | 406 | out: |
407 | return kvm; | 407 | return kvm; |
408 | 408 | ||
409 | #if defined(KVM_COALESCED_MMIO_PAGE_OFFSET) || \ | ||
410 | (defined(CONFIG_MMU_NOTIFIER) && defined(KVM_ARCH_WANT_MMU_NOTIFIER)) | ||
409 | out_err: | 411 | out_err: |
410 | hardware_disable_all(); | 412 | hardware_disable_all(); |
413 | #endif | ||
411 | out_err_nodisable: | 414 | out_err_nodisable: |
412 | kfree(kvm); | 415 | kfree(kvm); |
413 | return ERR_PTR(r); | 416 | return ERR_PTR(r); |