diff options
author | Paul Mackerras <paulus@samba.org> | 2007-08-28 01:56:11 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-08-28 01:56:11 -0400 |
commit | 35438c4327df18dbf5e7f597b69299119f4a14de (patch) | |
tree | a4589d731015db93f2eba8f84ffb1f48a8084020 | |
parent | 2f6c9d961081dc7b109eb19166244bcb2a5dfc28 (diff) | |
parent | b07d68b5ca4d55a16fab223d63d5fb36f89ff42f (diff) |
Merge branch 'linux-2.6' into for-2.6.24
567 files changed, 8334 insertions, 10830 deletions
diff --git a/Documentation/DocBook/deviceiobook.tmpl b/Documentation/DocBook/deviceiobook.tmpl index 90ed23df1f68..c917de681ccd 100644 --- a/Documentation/DocBook/deviceiobook.tmpl +++ b/Documentation/DocBook/deviceiobook.tmpl | |||
@@ -316,7 +316,8 @@ CPU B: spin_unlock_irqrestore(&dev_lock, flags) | |||
316 | 316 | ||
317 | <chapter id="pubfunctions"> | 317 | <chapter id="pubfunctions"> |
318 | <title>Public Functions Provided</title> | 318 | <title>Public Functions Provided</title> |
319 | !Einclude/asm-i386/io.h | 319 | !Iinclude/asm-i386/io.h |
320 | !Elib/iomap.c | ||
320 | </chapter> | 321 | </chapter> |
321 | 322 | ||
322 | </book> | 323 | </book> |
diff --git a/Documentation/HOWTO b/Documentation/HOWTO index f8cc3f8ed152..c64e969dc33b 100644 --- a/Documentation/HOWTO +++ b/Documentation/HOWTO | |||
@@ -208,7 +208,7 @@ tools. One such tool that is particularly recommended is the Linux | |||
208 | Cross-Reference project, which is able to present source code in a | 208 | Cross-Reference project, which is able to present source code in a |
209 | self-referential, indexed webpage format. An excellent up-to-date | 209 | self-referential, indexed webpage format. An excellent up-to-date |
210 | repository of the kernel code may be found at: | 210 | repository of the kernel code may be found at: |
211 | http://sosdg.org/~coywolf/lxr/ | 211 | http://users.sosdg.org/~qiyong/lxr/ |
212 | 212 | ||
213 | 213 | ||
214 | The development process | 214 | The development process |
@@ -384,7 +384,7 @@ One of the best ways to put into practice your hacking skills is by fixing | |||
384 | bugs reported by other people. Not only you will help to make the kernel | 384 | bugs reported by other people. Not only you will help to make the kernel |
385 | more stable, you'll learn to fix real world problems and you will improve | 385 | more stable, you'll learn to fix real world problems and you will improve |
386 | your skills, and other developers will be aware of your presence. Fixing | 386 | your skills, and other developers will be aware of your presence. Fixing |
387 | bugs is one of the best ways to earn merit amongst the developers, because | 387 | bugs is one of the best ways to get merits among other developers, because |
388 | not many people like wasting time fixing other people's bugs. | 388 | not many people like wasting time fixing other people's bugs. |
389 | 389 | ||
390 | To work in the already reported bug reports, go to http://bugzilla.kernel.org. | 390 | To work in the already reported bug reports, go to http://bugzilla.kernel.org. |
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches index d6b45a9b29b4..397575880dc4 100644 --- a/Documentation/SubmittingPatches +++ b/Documentation/SubmittingPatches | |||
@@ -560,7 +560,7 @@ NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! | |||
560 | <http://marc.theaimsgroup.com/?l=linux-kernel&m=112112749912944&w=2> | 560 | <http://marc.theaimsgroup.com/?l=linux-kernel&m=112112749912944&w=2> |
561 | 561 | ||
562 | Kernel Documentation/CodingStyle: | 562 | Kernel Documentation/CodingStyle: |
563 | <http://sosdg.org/~coywolf/lxr/source/Documentation/CodingStyle> | 563 | <http://users.sosdg.org/~qiyong/lxr/source/Documentation/CodingStyle> |
564 | 564 | ||
565 | Linus Torvalds's mail on the canonical patch format: | 565 | Linus Torvalds's mail on the canonical patch format: |
566 | <http://lkml.org/lkml/2005/4/7/183> | 566 | <http://lkml.org/lkml/2005/4/7/183> |
diff --git a/Documentation/accounting/getdelays.c b/Documentation/accounting/getdelays.c index 24c5aade8998..cbee3a27f768 100644 --- a/Documentation/accounting/getdelays.c +++ b/Documentation/accounting/getdelays.c | |||
@@ -196,7 +196,7 @@ void print_delayacct(struct taskstats *t) | |||
196 | "IO %15s%15s\n" | 196 | "IO %15s%15s\n" |
197 | " %15llu%15llu\n" | 197 | " %15llu%15llu\n" |
198 | "MEM %15s%15s\n" | 198 | "MEM %15s%15s\n" |
199 | " %15llu%15llu\n" | 199 | " %15llu%15llu\n", |
200 | "count", "real total", "virtual total", "delay total", | 200 | "count", "real total", "virtual total", "delay total", |
201 | t->cpu_count, t->cpu_run_real_total, t->cpu_run_virtual_total, | 201 | t->cpu_count, t->cpu_run_real_total, t->cpu_run_virtual_total, |
202 | t->cpu_delay_total, | 202 | t->cpu_delay_total, |
diff --git a/Documentation/dvb/get_dvb_firmware b/Documentation/dvb/get_dvb_firmware index b4d306ae9234..f2e908d7f90d 100644 --- a/Documentation/dvb/get_dvb_firmware +++ b/Documentation/dvb/get_dvb_firmware | |||
@@ -111,21 +111,21 @@ sub tda10045 { | |||
111 | } | 111 | } |
112 | 112 | ||
113 | sub tda10046 { | 113 | sub tda10046 { |
114 | my $sourcefile = "tt_budget_217g.zip"; | 114 | my $sourcefile = "TT_PCI_2.19h_28_11_2006.zip"; |
115 | my $url = "http://www.technotrend.de/new/217g/$sourcefile"; | 115 | my $url = "http://technotrend-online.com/download/software/219/$sourcefile"; |
116 | my $hash = "6a7e1e2f2644b162ff0502367553c72d"; | 116 | my $hash = "6a7e1e2f2644b162ff0502367553c72d"; |
117 | my $outfile = "dvb-fe-tda10046.fw"; | 117 | my $outfile = "dvb-fe-tda10046.fw"; |
118 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); | 118 | my $tmpdir = tempdir(DIR => "/tmp", CLEANUP => 1); |
119 | 119 | ||
120 | checkstandard(); | 120 | checkstandard(); |
121 | 121 | ||
122 | wgetfile($sourcefile, $url); | 122 | wgetfile($sourcefile, $url); |
123 | unzip($sourcefile, $tmpdir); | 123 | unzip($sourcefile, $tmpdir); |
124 | extract("$tmpdir/software/OEM/PCI/App/ttlcdacc.dll", 0x3f731, 24478, "$tmpdir/fwtmp"); | 124 | extract("$tmpdir/TT_PCI_2.19h_28_11_2006/software/OEM/PCI/App/ttlcdacc.dll", 0x65389, 24478, "$tmpdir/fwtmp"); |
125 | verify("$tmpdir/fwtmp", $hash); | 125 | verify("$tmpdir/fwtmp", $hash); |
126 | copy("$tmpdir/fwtmp", $outfile); | 126 | copy("$tmpdir/fwtmp", $outfile); |
127 | 127 | ||
128 | $outfile; | 128 | $outfile; |
129 | } | 129 | } |
130 | 130 | ||
131 | sub tda10046lifeview { | 131 | sub tda10046lifeview { |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index a43d2878a4ef..b9a3fdc1cc5a 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -197,6 +197,14 @@ Who: Len Brown <len.brown@intel.com> | |||
197 | 197 | ||
198 | --------------------------- | 198 | --------------------------- |
199 | 199 | ||
200 | What: /proc/acpi/event | ||
201 | When: February 2008 | ||
202 | Why: /proc/acpi/event has been replaced by events via the input layer | ||
203 | and netlink since 2.6.23. | ||
204 | Who: Len Brown <len.brown@intel.com> | ||
205 | |||
206 | --------------------------- | ||
207 | |||
200 | What: Compaq touchscreen device emulation | 208 | What: Compaq touchscreen device emulation |
201 | When: Oct 2007 | 209 | When: Oct 2007 |
202 | Files: drivers/input/tsdev.c | 210 | Files: drivers/input/tsdev.c |
diff --git a/Documentation/filesystems/9p.txt b/Documentation/filesystems/9p.txt index bbd8b28c13de..cda6905cbe49 100644 --- a/Documentation/filesystems/9p.txt +++ b/Documentation/filesystems/9p.txt | |||
@@ -6,12 +6,26 @@ ABOUT | |||
6 | 6 | ||
7 | v9fs is a Unix implementation of the Plan 9 9p remote filesystem protocol. | 7 | v9fs is a Unix implementation of the Plan 9 9p remote filesystem protocol. |
8 | 8 | ||
9 | This software was originally developed by Ron Minnich <rminnich@lanl.gov> | 9 | This software was originally developed by Ron Minnich <rminnich@sandia.gov> |
10 | and Maya Gokhale <maya@lanl.gov>. Additional development by Greg Watson | 10 | and Maya Gokhale. Additional development by Greg Watson |
11 | <gwatson@lanl.gov> and most recently Eric Van Hensbergen | 11 | <gwatson@lanl.gov> and most recently Eric Van Hensbergen |
12 | <ericvh@gmail.com>, Latchesar Ionkov <lucho@ionkov.net> and Russ Cox | 12 | <ericvh@gmail.com>, Latchesar Ionkov <lucho@ionkov.net> and Russ Cox |
13 | <rsc@swtch.com>. | 13 | <rsc@swtch.com>. |
14 | 14 | ||
15 | The best detailed explanation of the Linux implementation and applications of | ||
16 | the 9p client is available in the form of a USENIX paper: | ||
17 | http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html | ||
18 | |||
19 | Other applications are described in the following papers: | ||
20 | * XCPU & Clustering | ||
21 | http://www.xcpu.org/xcpu-talk.pdf | ||
22 | * KVMFS: control file system for KVM | ||
23 | http://www.xcpu.org/kvmfs.pdf | ||
24 | * CellFS: A New ProgrammingModel for the Cell BE | ||
25 | http://www.xcpu.org/cellfs-talk.pdf | ||
26 | * PROSE I/O: Using 9p to enable Application Partitions | ||
27 | http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf | ||
28 | |||
15 | USAGE | 29 | USAGE |
16 | ===== | 30 | ===== |
17 | 31 | ||
@@ -90,9 +104,9 @@ subset of the namespace by extending the path: '#U*'/tmp would just export | |||
90 | and export. | 104 | and export. |
91 | 105 | ||
92 | A Linux version of the 9p server is now maintained under the npfs project | 106 | A Linux version of the 9p server is now maintained under the npfs project |
93 | on sourceforge (http://sourceforge.net/projects/npfs). There is also a | 107 | on sourceforge (http://sourceforge.net/projects/npfs). The currently |
94 | more stable single-threaded version of the server (named spfs) available from | 108 | maintained version is the single-threaded version of the server (named spfs) |
95 | the same CVS repository. | 109 | available from the same CVS repository. |
96 | 110 | ||
97 | There are user and developer mailing lists available through the v9fs project | 111 | There are user and developer mailing lists available through the v9fs project |
98 | on sourceforge (http://sourceforge.net/projects/v9fs). | 112 | on sourceforge (http://sourceforge.net/projects/v9fs). |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 975f029be25c..b41cde31d112 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -952,14 +952,10 @@ and is between 256 and 4096 characters. It is defined in the file | |||
952 | Format: <1-256> | 952 | Format: <1-256> |
953 | 953 | ||
954 | maxcpus= [SMP] Maximum number of processors that an SMP kernel | 954 | maxcpus= [SMP] Maximum number of processors that an SMP kernel |
955 | should make use of. | 955 | should make use of. maxcpus=n : n >= 0 limits the |
956 | Using "nosmp" or "maxcpus=0" will disable SMP | 956 | kernel to using 'n' processors. n=0 is a special case, |
957 | entirely (the MPS table probe still happens, though). | 957 | it is equivalent to "nosmp", which also disables |
958 | A command-line option of "maxcpus=<NUM>", where <NUM> | 958 | the IO APIC. |
959 | is an integer greater than 0, limits the maximum number | ||
960 | of CPUs activated in SMP mode to <NUM>. | ||
961 | Using "maxcpus=1" on an SMP kernel is the trivial | ||
962 | case of an SMP kernel with only one CPU. | ||
963 | 959 | ||
964 | max_addr=[KMG] [KNL,BOOT,ia64] All physical memory greater than or | 960 | max_addr=[KMG] [KNL,BOOT,ia64] All physical memory greater than or |
965 | equal to this physical address is ignored. | 961 | equal to this physical address is ignored. |
@@ -1184,7 +1180,8 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1184 | 1180 | ||
1185 | nosep [BUGS=X86-32] Disables x86 SYSENTER/SYSEXIT support. | 1181 | nosep [BUGS=X86-32] Disables x86 SYSENTER/SYSEXIT support. |
1186 | 1182 | ||
1187 | nosmp [SMP] Tells an SMP kernel to act as a UP kernel. | 1183 | nosmp [SMP] Tells an SMP kernel to act as a UP kernel, |
1184 | and disable the IO APIC. legacy for "maxcpus=0". | ||
1188 | 1185 | ||
1189 | nosoftlockup [KNL] Disable the soft-lockup detector. | 1186 | nosoftlockup [KNL] Disable the soft-lockup detector. |
1190 | 1187 | ||
@@ -1826,6 +1823,10 @@ and is between 256 and 4096 characters. It is defined in the file | |||
1826 | -1: disable all active trip points in all thermal zones | 1823 | -1: disable all active trip points in all thermal zones |
1827 | <degrees C>: override all lowest active trip points | 1824 | <degrees C>: override all lowest active trip points |
1828 | 1825 | ||
1826 | thermal.crt= [HW,ACPI] | ||
1827 | -1: disable all critical trip points in all thermal zones | ||
1828 | <degrees C>: lower all critical trip points | ||
1829 | |||
1829 | thermal.nocrt= [HW,ACPI] | 1830 | thermal.nocrt= [HW,ACPI] |
1830 | Set to disable actions on ACPI thermal zone | 1831 | Set to disable actions on ACPI thermal zone |
1831 | critical and hot trip points. | 1832 | critical and hot trip points. |
diff --git a/Documentation/ko_KR/HOWTO b/Documentation/ko_KR/HOWTO new file mode 100644 index 000000000000..b51d7ca842ba --- /dev/null +++ b/Documentation/ko_KR/HOWTO | |||
@@ -0,0 +1,623 @@ | |||
1 | NOTE: | ||
2 | This is a version of Documentation/HOWTO translated into korean | ||
3 | This document is maintained by minchan Kim < minchan.kim@gmail.com> | ||
4 | If you find any difference between this document and the original file or | ||
5 | a problem with the translation, please contact the maintainer of this file. | ||
6 | |||
7 | Please also note that the purpose of this file is to be easier to | ||
8 | read for non English (read: korean) speakers and is not intended as | ||
9 | a fork. So if you have any comments or updates for this file please | ||
10 | try to update the original English file first. | ||
11 | |||
12 | ================================== | ||
13 | 이 문서는 | ||
14 | Documentation/HOWTO | ||
15 | 의 한글 번역입니다. | ||
16 | |||
17 | 역자: 김민찬 <minchan.kim@gmail.com > | ||
18 | 감수: 이제이미 <jamee.lee@samsung.com> | ||
19 | ================================== | ||
20 | |||
21 | 어떻게 리눅스 커널 개발을 하는가 | ||
22 | --------------------------------- | ||
23 | |||
24 | 이 문서는 커널 개발에 있어 가장 중요한 문서이다. 이 문서는 | ||
25 | 리눅스 커널 개발자가 되는 법과 리눅스 커널 개발 커뮤니티와 일하는 | ||
26 | 법을 담고있다. 커널 프로그래밍의기술적인 측면과 관련된 내용들은 | ||
27 | 포함하지 않으려고 하였지만 올바으로 여러분을 안내하는 데 도움이 | ||
28 | 될 것이다. | ||
29 | |||
30 | 이 문서에서 오래된 것을 발견하면 문서의 아래쪽에 나열된 메인트너에게 | ||
31 | 패치를 보내달라. | ||
32 | |||
33 | |||
34 | 소개 | ||
35 | ---- | ||
36 | |||
37 | 자, 여러분은 리눅스 커널 개발자가 되는 법을 배우고 싶은가? 아니면 | ||
38 | 상사로부터"이 장치를 위한 리눅스 드라이버를 작성하시오"라는 말을 | ||
39 | 들었는가? 이 문서는 여러분이 겪게 될 과정과 커뮤니티와 일하는 법을 | ||
40 | 조언하여 여러분의 목적을 달성하기 위해 필요한 것 모두를 알려주는 | ||
41 | 것이다. | ||
42 | |||
43 | 커널은 대부분은 C로 작성되었어고 몇몇 아키텍쳐의 의존적인 부분은 | ||
44 | 어셈블리로 작성되었다. 커널 개발을 위해 C를 잘 이해하고 있어야 한다. | ||
45 | 여러분이 특정 아키텍쳐의 low-level 개발을 할 것이 아니라면 | ||
46 | 어셈블리(특정 아키텍쳐)는 잘 알아야 할 필요는 없다. | ||
47 | 다음의 참고서적들은 기본에 충실한 C 교육이나 수년간의 경험에 견주지는 | ||
48 | 못하지만 적어도 참고 용도로는 좋을 것이다 | ||
49 | - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall] | ||
50 | - "Practical C Programming" by Steve Oualline [O'Reilly] | ||
51 | - "C: A Reference Manual" by Harbison and Steele [Prentice Hall] | ||
52 | |||
53 | 커널은 GNU C와 GNU 툴체인을 사용하여 작성되었다. 이 툴들은 ISO C89 표준을 | ||
54 | 따르는 반면 표준에 있지 않은 많은 확장기능도 가지고 있다. 커널은 표준 C | ||
55 | 라이브러리와는 관계없이 freestanding C 환경이어서 C 표준의 일부는 | ||
56 | 지원되지 않는다. 임의의 long long 나누기나 floating point는 지원되지 않는다. | ||
57 | 때론 이런 이유로 커널이 그런 확장 기능을 가진 툴체인을 가지고 만들어졌다는 | ||
58 | 것이 이해하기 어려울 수도 있고 게다가 불행하게도 그런 것을 정확하게 설명하는 | ||
59 | 어떤 참고문서도 있지 않다. 정보를 얻기 위해서는 gcc info (`info gcc`)페이지를 | ||
60 | 살펴보라. | ||
61 | |||
62 | 여러분은 기존의 개발 커뮤니티와 일하는 법을 배우려고 하고 있다는 것을 | ||
63 | 기억하라. 코딩, 스타일, 절차에 관한 훌륭한 표준을 가진 사람들이 모인 | ||
64 | 다양한 그룹이 있다. 이 표준들은 오랜동안 크고 지역적으로 분산된 팀들에 | ||
65 | 의해 가장 좋은 방법으로 일하기위하여 찾은 것을 기초로 만들어져왔다. | ||
66 | 그 표준들은 문서화가 잘 되어 있기 때문에 가능한한 미리 많은 표준들에 | ||
67 | 관하여 배우려고 시도하라. 다른 사람들은 여러분이나 여러분의 회사가 | ||
68 | 일하는 방식에 적응하는 것을 원하지는 않는다. | ||
69 | |||
70 | |||
71 | 법적 문제 | ||
72 | --------- | ||
73 | |||
74 | 리눅스 커널 소스 코드는 GPL로 배포(release)되었다. 소스트리의 메인 | ||
75 | 디렉토리에 있는 라이센스에 관하여 상세하게 쓰여 있는 COPYING이라는 | ||
76 | 파일을 봐라.여러분이 라이센스에 관한 더 깊은 문제를 가지고 있다면 | ||
77 | 리눅스 커널 메일링 리스트에 묻지말고 변호사와 연락하라. 메일링 | ||
78 | 리스트들에 있는 사람들은 변호사가 아니기 때문에 법적 문제에 관하여 | ||
79 | 그들의 말에 의지해서는 안된다. | ||
80 | |||
81 | GPL에 관한 잦은 질문들과 답변들은 다음을 참조하라. | ||
82 | http://www.gnu.org/licenses/gpl-faq.html | ||
83 | |||
84 | |||
85 | 문서 | ||
86 | ---- | ||
87 | |||
88 | 리눅스 커널 소스 트리는 커널 커뮤니티와 일하는 법을 배우기 위한 많은 | ||
89 | 귀중한 문서들을 가지고 있다. 새로운 기능들이 커널에 들어가게 될 때, | ||
90 | 그 기능을 어떻게 사용하는지에 관한 설명을 위하여 새로운 문서 파일을 | ||
91 | 추가하는 것을 권장한다. 커널이 유저스페이스로 노출하는 인터페이스를 | ||
92 | 변경하게 되면 변경을 설명하는 메뉴얼 페이지들에 대한 패치나 정보를 | ||
93 | mtk-manpages@gmx.net의 메인트너에게 보낼 것을 권장한다. | ||
94 | |||
95 | 다음은 커널 소스 트리에 있는 읽어야 할 파일들의 리스트이다. | ||
96 | README | ||
97 | 이 파일은 리눅스 커널에 관하여 간단한 배경 설명과 커널을 설정하고 | ||
98 | 빌드하기 위해 필요한 것을 설명한다. 커널에 입문하는 사람들은 여기서 | ||
99 | 시작해야 한다. | ||
100 | |||
101 | Documentation/Changes | ||
102 | 이 파일은 커널을 성공적으로 빌드하고 실행시키기 위해 필요한 다양한 | ||
103 | 소프트웨어 패키지들의 최소 버젼을 나열한다. | ||
104 | |||
105 | Documentation/CodingStyle | ||
106 | 이 문서는 리눅스 커널 코딩 스타일과 그렇게 한 몇몇 이유를 설명한다. | ||
107 | 모든 새로운 코드는 이 문서에 가이드라인들을 따라야 한다. 대부분의 | ||
108 | 메인트너들은 이 규칙을 따르는 패치들만을 받아들일 것이고 많은 사람들이 | ||
109 | 그 패치가 올바른 스타일일 경우만 코드를 검토할 것이다. | ||
110 | |||
111 | Documentation/SubmittingPatches | ||
112 | Documentation/SubmittingDrivers | ||
113 | 이 파일들은 성공적으로 패치를 만들고 보내는 법을 다음의 내용들로 | ||
114 | 굉장히 상세히 설명하고 있다(그러나 다음으로 한정되진 않는다). | ||
115 | - Email 내용들 | ||
116 | - Email 양식 | ||
117 | - 그것을 누구에게 보낼지 | ||
118 | 이러한 규칙들을 따르는 것이 성공을 보장하진 않는다(왜냐하면 모든 | ||
119 | 패치들은 내용과 스타일에 관하여 면밀히 검토되기 때문이다). | ||
120 | 그러나 규칙을 따르지 않는다면 거의 성공하지도 못할 것이다. | ||
121 | |||
122 | 올바른 패치들을 만드는 법에 관한 훌륭한 다른 문서들이 있다. | ||
123 | "The Perfect Patch" | ||
124 | http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt | ||
125 | "Linux kernel patch submission format" | ||
126 | http://linux.yyz.us/patch-format.html | ||
127 | |||
128 | Documentation/stable_api_nonsense.txt | ||
129 | 이 문서는 의도적으로 커널이 변하지 않는 API를 갖지 않도록 결정한 | ||
130 | 이유를 설명하며 다음과 같은 것들을 포함한다. | ||
131 | - 서브시스템 shim-layer(호환성을 위해?) | ||
132 | - 운영 체제들 간의 드라이버 이식성 | ||
133 | - 커널 소스 트리내에 빠른 변화를 늦추는 것(또는 빠른 변화를 막는 것) | ||
134 | 이 문서는 리눅스 개발 철학을 이해하는데 필수적이며 다른 운영체제에서 | ||
135 | 리눅스로 옮겨오는 사람들에게는 매우 중요하다. | ||
136 | |||
137 | |||
138 | Documentation/SecurityBugs | ||
139 | 여러분들이 리눅스 커널의 보안 문제를 발견했다고 생각한다면 이 문서에 | ||
140 | 나온 단계에 따라서 커널 개발자들에게 알리고 그 문제를 해결할 수 있도록 | ||
141 | 도와 달라. | ||
142 | |||
143 | Documentation/ManagementStyle | ||
144 | 이 문서는 리눅스 커널 메인트너들이 어떻게 그들의 방법론의 정신을 | ||
145 | 어떻게 공유하고 운영하는지를 설명한다. 이것은 커널 개발에 입문하는 | ||
146 | 모든 사람들(또는 커널 개발에 작은 호기심이라도 있는 사람들)이 | ||
147 | 읽어야 할 중요한 문서이다. 왜냐하면 이 문서는 커널 메인트너들의 | ||
148 | 독특한 행동에 관하여 흔히 있는 오해들과 혼란들을 해소하고 있기 | ||
149 | 때문이다. | ||
150 | |||
151 | Documentation/stable_kernel_rules.txt | ||
152 | 이 문서는 안정적인 커널 배포가 이루어지는 규칙을 설명하고 있으며 | ||
153 | 여러분들이 이러한 배포들 중 하나에 변경을 하길 원한다면 | ||
154 | 무엇을 해야 하는지를 설명한다. | ||
155 | |||
156 | Documentation/kernel-docs.txt | ||
157 | 커널 개발에 관계된 외부 문서의 리스트이다. 커널 내의 포함된 문서들 | ||
158 | 중에 여러분이 찾고 싶은 문서를 발견하지 못할 경우 이 리스트를 | ||
159 | 살펴보라. | ||
160 | |||
161 | Documentation/applying-patches.txt | ||
162 | 패치가 무엇이며 그것을 커널의 다른 개발 브랜치들에 어떻게 | ||
163 | 적용하는지에 관하여 자세히 설명 하고 있는 좋은 입문서이다. | ||
164 | |||
165 | 커널은 소스 코드 그 자체에서 자동적으로 만들어질 수 있는 많은 문서들을 | ||
166 | 가지고 있다. 이것은 커널 내의 API에 대한 모든 설명, 그리고 락킹을 | ||
167 | 올바르게 처리하는 법에 관한 규칙을 포함하고 있다. 이 문서는 | ||
168 | Documentation/DocBook/ 디렉토리 내에서 만들어지며 PDF, Postscript, HTML, | ||
169 | 그리고 man 페이지들로 다음과 같이 실행하여 만들어 진다. | ||
170 | make pdfdocs | ||
171 | make psdocs | ||
172 | make htmldocs | ||
173 | make mandocs | ||
174 | 각각의 명령을 메인 커널 소스 디렉토리로부터 실행한다. | ||
175 | |||
176 | |||
177 | 커널 개발자가 되는 것 | ||
178 | --------------------- | ||
179 | |||
180 | 여러분이 리눅스 커널 개발에 관하여 아무것도 모른다면 Linux KernelNewbies | ||
181 | 프로젝트를 봐야 한다. | ||
182 | http://kernelnewbies.org | ||
183 | 그곳은 거의 모든 종류의 기본적인 커널 개발 질문들(질문하기 전에 먼저 | ||
184 | 아카이브를 찾아봐라. 과거에 이미 답변되었을 수도 있다)을 할수있는 도움이 | ||
185 | 될만한 메일링 리스트가 있다. 또한 실시간으로 질문 할수 있는 IRC 채널도 | ||
186 | 가지고 있으며 리눅스 커널 개발을 배우는 데 유용한 문서들을 보유하고 있다. | ||
187 | |||
188 | 웹사이트는 코드구성, 서브시스템들, 그리고 현재 프로젝트들 | ||
189 | (트리 내, 외부에 존재하는)에 관한 기본적인 정보들을 가지고 있다. 또한 | ||
190 | 그곳은 커널 컴파일이나 패치를 하는 법과 같은 기본적인 것들을 설명한다. | ||
191 | |||
192 | 여러분이 어디서 시작해야 할진 모르지만 커널 개발 커뮤니티에 참여할 수 | ||
193 | 있는 일들을 찾길 원한다면 리눅스 커널 Janitor 프로젝트를 살펴봐라. | ||
194 | http://janitor.kernelnewbies.org/ | ||
195 | 그곳은 시작하기에 아주 딱 좋은 곳이다. 그곳은 리눅스 커널 소스 트리내에 | ||
196 | 간단히 정리되고 수정될 수 있는 문제들에 관하여 설명한다. 여러분은 이 | ||
197 | 프로젝트를 대표하는 개발자들과 일하면서 자신의 패치를 리눅스 커널 트리에 | ||
198 | 반영하기 위한 기본적인 것들을 배우게 될것이며 여러분이 아직 아이디어를 | ||
199 | 가지고 있지 않다면 다음에 무엇을 해야할지에 관한 방향을 배울 수 있을 | ||
200 | 것이다. | ||
201 | |||
202 | 여러분들이 이미 커널 트리에 반영하길 원하는 코드 묶음을 가지고 있지만 | ||
203 | 올바른 포맷으로 포장하는데 도움이 필요하다면 그러한 문제를 돕기 위해 | ||
204 | 만들어진 kernel-mentors 프로젝트가 있다. 그곳은 메일링 리스트이며 | ||
205 | 다음에서 참조할 수 있다. | ||
206 | http://selenic.com/mailman/listinfo/kernel-mentors | ||
207 | |||
208 | 리눅스 커널 코드에 실제 변경을 하기 전에 반드시 그 코드가 어떻게 | ||
209 | 동작하는지 이해하고 있어야 한다. 코드를 분석하기 위하여 특정한 툴의 | ||
210 | 도움을 빌려서라도 코드를 직접 읽는 것보다 좋은 것은 없다(대부분의 | ||
211 | 자잘한 부분들은 잘 코멘트되어 있다). 그런 툴들 중에 특히 추천할만한 | ||
212 | 것은 Linux Cross-Reference project이며 그것은 자기 참조 방식이며 | ||
213 | 소스코드를 인덱스된 웹 페이지들의 형태로 보여준다. 최신의 멋진 커널 | ||
214 | 코드 저장소는 다음을 통하여 참조할 수 있다. | ||
215 | http://sosdg.org/~coywolf/lxr/ | ||
216 | |||
217 | |||
218 | 개발 프로세스 | ||
219 | ------------- | ||
220 | |||
221 | 리눅스 커널 개발 프로세스는 현재 몇몇 다른 메인 커널 "브랜치들"과 | ||
222 | 서브시스템에 특화된 커널 브랜치들로 구성된다. 몇몇 다른 메인 | ||
223 | 브랜치들은 다음과 같다. | ||
224 | - main 2.6.x 커널 트리 | ||
225 | - 2.6.x.y - 안정된 커널 트리 | ||
226 | - 2.6.x -git 커널 패치들 | ||
227 | - 2.6.x -mm 커널 패치들 | ||
228 | - 서브시스템을 위한 커널 트리들과 패치들 | ||
229 | |||
230 | 2.6.x 커널 트리 | ||
231 | --------------- | ||
232 | |||
233 | 2.6.x 커널들은 Linux Torvalds가 관리하며 kernel.org의 pub/linux/kernel/v2.6/ | ||
234 | 디렉토리에서 참조될 수 있다.개발 프로세스는 다음과 같다. | ||
235 | - 새로운 커널이 배포되자마자 2주의 시간이 주어진다. 이 기간동은 | ||
236 | 메인트너들은 큰 diff들을 Linus에게 제출할 수 있다. 대개 이 패치들은 | ||
237 | 몇 주 동안 -mm 커널내에 이미 있었던 것들이다. 큰 변경들을 제출하는 데 | ||
238 | 선호되는 방법은 git(커널의 소스 관리 툴, 더 많은 정보들은 http://git.or.cz/ | ||
239 | 에서 참조할 수 있다)를 사용하는 것이지만 순수한 패치파일의 형식으로 보내도 | ||
240 | 것도 무관하다. | ||
241 | - 2주 후에 -rc1 커널이 배포되며 지금부터는 전체 커널의 안정성에 영향을 | ||
242 | 미칠수 있는 새로운 기능들을 포함하지 않는 패치들만을 추가될 수 있다. | ||
243 | 완전히 새로운 드라이버(혹은 파일시스템)는 -rc1 이후에만 받아들여진다는 | ||
244 | 것을 기억해라. 왜냐하면 변경이 자체내에서만 발생하고 추가된 코드가 | ||
245 | 드라이버 외부의 다른 부분에는 영향을 주지 않으므로 그런 변경은 | ||
246 | 퇴보(regression)를 일으킬 만한 위험을 가지고 있지 않기 때문이다. -rc1이 | ||
247 | 배포된 이후에 git를 사용하여 패치들을 Linus에게 보낼수 있지만 패치들은 | ||
248 | 공식적인 메일링 리스트로 보내서 검토를 받을 필요가 있다. | ||
249 | - 새로운 -rc는 Linus는 현재 git tree가 테스트 하기에 충분히 안정된 상태에 | ||
250 | 있다고 판단될 때마다 배포된다. 목표는 새로운 -rc 커널을 매주 배포하는 | ||
251 | 것이다. | ||
252 | - 이러한 프로세스는 커널이 "준비"되었다고 여겨질때까지 계속된다. | ||
253 | 프로세스는 대체로 6주간 지속된다. | ||
254 | - 각 -rc 배포에 있는 알려진 퇴보의 목록들은 다음 URI에 남겨진다. | ||
255 | http://kernelnewbies.org/known_regressions | ||
256 | |||
257 | 커널 배포에 있어서 언급할만한 가치가 있는 리눅스 커널 메일링 리스트의 | ||
258 | Andrew Morton의 글이 있다. | ||
259 | "커널이 언제 배포될지는 아무로 모른다. 왜냐하면 배포는 알려진 | ||
260 | 버그의 상황에 따라 배포되는 것이지 미리정해 놓은 시간에 따라 | ||
261 | 배포되는 것은 아니기 때문이다." | ||
262 | |||
263 | 2.6.x.y - 안정 커널 트리 | ||
264 | ------------------------ | ||
265 | |||
266 | 4 자리 숫자로 이루어진 버젼의 커널들은 -stable 커널들이다. 그것들은 2.6.x | ||
267 | 커널에서 발견된 큰 퇴보들이나 보안 문제들 중 비교적 작고 중요한 수정들을 | ||
268 | 포함한다. | ||
269 | |||
270 | 이것은 가장 최근의 안정적인 커널을 원하는 사용자에게 추천되는 브랜치이며, | ||
271 | 개발/실험적 버젼을 테스트하는 것을 돕는데는 별로 관심이 없다. | ||
272 | |||
273 | 어떤 2.6.x.y 커널도 사용가능하지 않다면 그때는 가장 높은 숫자의 2.6.x | ||
274 | 커널이 현재의 안정 커널이다. | ||
275 | |||
276 | 2.6.x.y는 "stable" 팀<stable@kernel.org>에 의해 관리되며 거의 매번 격주로 | ||
277 | 배포된다. | ||
278 | |||
279 | 커널 트리 문서들 내에 Documentation/stable_kernel_rules.txt 파일은 어떤 | ||
280 | 종류의 변경들이 -stable 트리로 들어왔는지와 배포 프로세스가 어떻게 | ||
281 | 진행되는지를 설명한다. | ||
282 | |||
283 | |||
284 | 2.6.x -git 패치들 | ||
285 | ------------------ | ||
286 | git 저장소(그러므로 -git이라는 이름이 붙음)에는 날마다 관리되는 Linus의 | ||
287 | 커널 트리의 snapshot 들이 있다. 이 패치들은 일반적으로 날마다 배포되며 | ||
288 | Linus의 트리의 현재 상태를 나타낸다. 이 패치들은 정상적인지 조금도 | ||
289 | 살펴보지 않고 자동적으로 생성된 것이므로 -rc 커널들 보다도 더 실험적이다. | ||
290 | |||
291 | 2.6.x -mm 커널 패치들 | ||
292 | --------------------- | ||
293 | Andrew Morton에 의해 배포된 실험적인 커널 패치들이다. Andrew는 모든 다른 | ||
294 | 서브시스템 커널 트리와 패치들을 가져와서 리눅스 커널 메일링 리스트로 | ||
295 | 온 많은 패치들과 한데 묶는다. 이 트리는 새로운 기능들과 패치들을 위한 | ||
296 | 장소를 제공하는 역할을 한다. 하나의 패치가 -mm에 한동안 있으면서 그 가치가 | ||
297 | 증명되게 되면 Andrew나 서브시스템 메인트너는 그것을 메인라인에 포함시키기 | ||
298 | 위하여 Linus에게 보낸다. | ||
299 | |||
300 | 커널 트리에 포함하고 싶은 모든 새로운 패치들은 Linus에게 보내지기 전에 | ||
301 | -mm 트리에서 테스트를 하는 것을 적극 추천한다. | ||
302 | |||
303 | 이 커널들은 안정되게 사용할 시스템에서에 실행하는 것은 적합하지 않으며 | ||
304 | 다른 브랜치들의 어떤 것들보다 위험하다. | ||
305 | |||
306 | 여러분이 커널 개발 프로세스를 돕길 원한다면 이 커널 배포들을 사용하고 | ||
307 | 테스트한 후 어떤 문제를 발견하거나 또는 모든 것이 잘 동작한다면 리눅스 | ||
308 | 커널 메일링 리스트로 피드백을 해달라. | ||
309 | |||
310 | 이 커널들은 일반적으로 모든 다른 실험적인 패치들과 배포될 당시의 | ||
311 | 사용가능한 메인라인 -git 커널들의 몇몇 변경을 포함한다. | ||
312 | |||
313 | -mm 커널들은 정해진 일정대로 배포되지 않는다. 하지만 대개 몇몇 -mm 커널들은 | ||
314 | 각 -rc 커널(1부터 3이 흔함) 사이에서 배포된다. | ||
315 | |||
316 | 서브시스템 커널 트리들과 패치들 | ||
317 | ------------------------------- | ||
318 | 많은 다른 커널 서브시스템 개발자들은 커널의 다른 부분들에서 무슨 일이 | ||
319 | 일어나고 있는지를 볼수 있도록 그들의 개발 트리를 공개한다. 이 트리들은 | ||
320 | 위에서 설명하였던 것 처럼 -mm 커널 배포들로 합쳐진다. | ||
321 | |||
322 | 다음은 활용가능한 커널 트리들을 나열한다. | ||
323 | git trees: | ||
324 | - Kbuild development tree, Sam Ravnborg < sam@ravnborg.org> | ||
325 | git.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild.git | ||
326 | |||
327 | - ACPI development tree, Len Brown <len.brown@intel.com > | ||
328 | git.kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git | ||
329 | |||
330 | - Block development tree, Jens Axboe <axboe@suse.de> | ||
331 | git.kernel.org:/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git | ||
332 | |||
333 | - DRM development tree, Dave Airlie <airlied@linux.ie> | ||
334 | git.kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6.git | ||
335 | |||
336 | - ia64 development tree, Tony Luck < tony.luck@intel.com> | ||
337 | git.kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git | ||
338 | |||
339 | - infiniband, Roland Dreier <rolandd@cisco.com > | ||
340 | git.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git | ||
341 | |||
342 | - libata, Jeff Garzik <jgarzik@pobox.com> | ||
343 | git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git | ||
344 | |||
345 | - network drivers, Jeff Garzik <jgarzik@pobox.com> | ||
346 | git.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git | ||
347 | |||
348 | - pcmcia, Dominik Brodowski < linux@dominikbrodowski.net> | ||
349 | git.kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git | ||
350 | |||
351 | - SCSI, James Bottomley < James.Bottomley@SteelEye.com> | ||
352 | git.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git | ||
353 | |||
354 | quilt trees: | ||
355 | - USB, PCI, Driver Core, and I2C, Greg Kroah-Hartman < gregkh@suse.de> | ||
356 | kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ | ||
357 | - x86-64, partly i386, Andi Kleen < ak@suse.de> | ||
358 | ftp.firstfloor.org:/pub/ak/x86_64/quilt/ | ||
359 | |||
360 | 다른 커널 트리들은 http://kernel.org/git와 MAINTAINERS 파일에서 참조할 수 | ||
361 | 있다. | ||
362 | |||
363 | 버그 보고 | ||
364 | --------- | ||
365 | bugzilla.kernel.org는 리눅스 커널 개발자들이 커널의 버그를 추적하는 곳이다. | ||
366 | 사용자들은 발견한 모든 버그들을 보고하기 위하여 이 툴을 사용할 것을 권장한다. | ||
367 | kernel bugzilla를 사용하는 자세한 방법은 다음을 참조하라. | ||
368 | http://test.kernel.org/bugzilla/faq.html | ||
369 | |||
370 | 메인 커널 소스 디렉토리에 있는 REPORTING-BUGS 파일은 커널 버그일 것 같은 | ||
371 | 것을 보고하는는 법에 관한 좋은 템플릿이고 문제를 추적하기 위해서 커널 | ||
372 | 개발자들이 필요로 하는 정보가 무엇들인지를 상세히 설명하고 있다. | ||
373 | |||
374 | |||
375 | 버그 리포트들의 관리 | ||
376 | -------------------- | ||
377 | |||
378 | 여러분의 해킹 기술을 연습하는 가장 좋은 방법 중의 하는 다른 사람들이 | ||
379 | 보고한 버그들을 수정하는 것이다. 여러분은 커널을 더욱 안정화시키는데 | ||
380 | 도움을 줄 뿐만이 아니라 실제있는 문제들을 수정하는 법을 배우게 되고 | ||
381 | 그와 함께 여러분들의 기술은 향상될 것이며 다른 개발자들이 여러분의 | ||
382 | 존재에 대해 알게 될 것이다. 버그를 수정하는 것은 개발자들 사이에서 | ||
383 | 점수를 얻을 수 있는 가장 좋은 방법중의 하나이다. 왜냐하면 많은 사람들은 | ||
384 | 다른 사람들의 버그들을 수정하기 위하여 시간을 낭비하지 않기 때문이다. | ||
385 | |||
386 | 이미 보고된 버그 리포트들을 가지고 작업하기 위해서 http://bugzilla.kernelorg를 | ||
387 | 참조하라. 여러분이 앞으로 생겨날 버그 리포트들의 조언자가 되길 원한다면 | ||
388 | bugme-new 메일링 리스트나(새로운 버그 리포트들만이 이곳에서 메일로 전해진다) | ||
389 | bugme-janitor 메일링 리스트(bugzilla에 모든 변화들이 여기서 메일로 전해진다) | ||
390 | 에 등록하면 된다. | ||
391 | |||
392 | http://lists.osdl.org/mailman/listinfo/bugme-new | ||
393 | http://lists.osdl.org/mailman/listinfo/bugme-janitors | ||
394 | |||
395 | |||
396 | |||
397 | 메일링 리스트들 | ||
398 | --------------- | ||
399 | |||
400 | 위의 몇몇 문서들이 설명하였지만 핵심 커널 개발자들의 대다수는 | ||
401 | 리눅스 커널 메일링 리스트에 참여하고 있다. 리스트에 등록하고 해지하는 | ||
402 | 방법에 관한 자세한 사항은 다음에서 참조할 수 있다. | ||
403 | http://vger.kernel.org/vger-lists.html#linux-kernel | ||
404 | 웹상의 많은 다른 곳에도 메일링 리스트의 아카이브들이 있다. | ||
405 | 이러한 아카이브들을 찾으려면 검색 엔진을 사용하라. 예를 들어: | ||
406 | http://dir.gmane.org/gmane.linux.kernel | ||
407 | 여러분이 새로운 문제에 관해 리스트에 올리기 전에 말하고 싶은 주제에 대한 | ||
408 | 것을 아카이브에서 먼저 찾기를 강력히 권장한다. 이미 상세하게 토론된 많은 | ||
409 | 것들이 메일링 리스트의 아카이브에 기록되어 있다. | ||
410 | |||
411 | 각각의 커널 서브시스템들의 대부분은 자신들의 개발에 관한 노력들로 이루어진 | ||
412 | 분리된 메일링 리스트를 따로 가지고 있다. 다른 그룹들이 무슨 리스트를 가지고 | ||
413 | 있는지는 MAINTAINERS 파일을 참조하라. | ||
414 | |||
415 | 많은 리스트들은 kernel.org에서 호스트되고 있다. 그 정보들은 다음에서 참조될 수 있다. | ||
416 | http://vger.kernel.org/vger-lists.html | ||
417 | |||
418 | 리스트들을 사용할 때는 올바른 예절을 따를 것을 유념해라. | ||
419 | 대단하진 않지만 다음 URL은 리스트(혹은 모든 리스트)와 대화하는 몇몇 간단한 | ||
420 | 가이드라인을 가지고 있다. | ||
421 | http://www.albion.com/netiquette/ | ||
422 | |||
423 | 여러 사람들이 여러분의 메일에 응답한다면 CC: 즉 수신 리스트는 꽤 커지게 | ||
424 | 될 것이다. 아무 이유없이 CC에서 어떤 사람도 제거하거나 리스트 주소로만 | ||
425 | 회신하지 마라. 메일을 보낸 사람으로서 하나를 받고 리스트로부터 또 | ||
426 | 하나를 받아 두번 받는 것에 익숙하여 있으니 mail-header를 조작하려고 하지 | ||
427 | 말아라. 사람들은 그런 것을 좋아하지 않을 것이다. | ||
428 | |||
429 | 여러분의 회신의 문맥을 원래대로 유지해야 한다. 여러분들의 회신의 윗부분에 | ||
430 | "John 커널해커는 작성했다...."를 유지하며 여러분들의 의견을 그 메일의 윗부분에 | ||
431 | 작성하지 말고 각 인용한 단락들 사이에 넣어라. | ||
432 | |||
433 | 여러분들이 패치들을 메일에 넣는다면 그것들은 Documentation/SubmittingPatches에 | ||
434 | 나와있는데로 명백히(plain) 읽을 수 있는 텍스트여야 한다. 커널 개발자들은 | ||
435 | 첨부파일이나 압축된 패치들을 원하지 않는다. 그들은 여러분들의 패치의 | ||
436 | 각 라인 단위로 코멘트를 하길 원하며 압축하거나 첨부하지 않고 보내는 것이 | ||
437 | 그렇게 할 수 있는 유일한 방법이다. 여러분들이 사용하는 메일 프로그램이 | ||
438 | 스페이스나 탭 문자들을 조작하지 않는지 확인하라. 가장 좋은 첫 테스트는 | ||
439 | 메일을 자신에게 보내보고 스스로 그 패치를 적용해보라. 그것이 동작하지 | ||
440 | 않는다면 여러분의 메일 프로그램을 고치던가 제대로 동작하는 프로그램으로 | ||
441 | 바꾸어라. | ||
442 | |||
443 | 무엇보다도 메일링 리스트의 다른 구독자들에게 보여주려 한다는 것을 기억하라. | ||
444 | |||
445 | |||
446 | 커뮤니티와 일하는 법 | ||
447 | -------------------- | ||
448 | |||
449 | 커널 커뮤니티의 목적은 가능한한 가장 좋은 커널을 제공하는 것이다. 여러분이 | ||
450 | 받아들여질 패치를 제출하게 되면 그 패치의 기술적인 이점으로 검토될 것이다. | ||
451 | 그럼 여러분들은 무엇을 기대하고 있어야 하는가? | ||
452 | - 비판 | ||
453 | - 의견 | ||
454 | - 변경을 위한 요구 | ||
455 | - 당위성을 위한 요구 | ||
456 | - 고요 | ||
457 | |||
458 | 기억하라. 이것들은 여러분의 패치가 커널로 들어가기 위한 과정이다. 여러분의 | ||
459 | 패치들은 비판과 다른 의견을 받을 수 있고 그것들을 기술적인 레벨로 평가하고 | ||
460 | 재작업하거나 또는 왜 수정하면 안되는지에 관하여 명료하고 간결한 이유를 | ||
461 | 말할 수 있어야 한다. 여러분이 제출한 것에 어떤 응답도 있지 않다면 몇 일을 | ||
462 | 기다려보고 다시 시도해라. 때론 너무 많은 메일들 속에 묻혀버리기도 한다. | ||
463 | |||
464 | 여러분은 무엇을 해서는 안되는가? | ||
465 | - 여러분의 패치가 아무 질문 없이 받아들여지기를 기대하는 것 | ||
466 | - 방어적이 되는 것 | ||
467 | - 의견을 무시하는 것 | ||
468 | - 요청된 변경을 하지 않고 패치를 다시 제출하는 것 | ||
469 | |||
470 | 가능한한 가장 좋은 기술적인 해답을 찾고 있는 커뮤니티에서는 항상 | ||
471 | 어떤 패치가 얼마나 좋은지에 관하여 다른 의견들이 있을 수 있다. 여러분은 | ||
472 | 협조적이어야 하고 기꺼이 여러분의 생각을 커널 내에 맞추어야 한다. 아니면 | ||
473 | 적어도 여러분의 것이 가치있다는 것을 중명하여야 한다. 잘못된 것도 여러분이 | ||
474 | 올바른 방향의 해결책으로 이끌어갈 의지가 있다면 받아들여질 것이라는 점을 | ||
475 | 기억하라. | ||
476 | |||
477 | 여러분의 첫 패치에 여러분이 수정해야하는 십여개 정도의 회신이 오는 | ||
478 | 경우도 흔하다. 이것은 여러분의 패치가 받아들여지지 않을 것이라는 것을 | ||
479 | 의미하는 것이 아니고 개인적으로 여러분에게 감정이 있어서 그러는 것도 | ||
480 | 아니다. 간단히 여러분의 패치에 제기된 문제들을 수정하고 그것을 다시 | ||
481 | 보내라. | ||
482 | |||
483 | |||
484 | 커널 커뮤니티와 기업 조직간의 차이점 | ||
485 | ----------------------------------------------------------------- | ||
486 | 커널 커뮤니티는 가장 전통적인 회사의 개발 환경과는 다르다. 여기에 여러분들의 | ||
487 | 문제를 피하기 위한 목록이 있다. | ||
488 | 여러분들이 제안한 변경들에 관하여 말할 때 좋은 것들 : | ||
489 | - " 이것은 여러 문제들을 해겹합니다." | ||
490 | - "이것은 2000 라인의 코드를 제거합니다." | ||
491 | - "이것은 내가 말하려는 것에 관해 설명하는 패치입니다." | ||
492 | - "나는 5개의 다른 아키텍쳐에서 그것을 테스트했슴으로..." | ||
493 | - "여기에 일련의 작은 패치들이 있습음로..." | ||
494 | - "이것은 일반적인 머신에서 성능을 향상시키므로..." | ||
495 | |||
496 | 여러분들이 말할 때 피해야 할 좋지 않은 것들 : | ||
497 | - "우리를 그것을 AIT/ptx/Solaris에서 이러한 방법으로 했다. 그러므로 그것은 좋은 것임에 틀립없다..." | ||
498 | - "나는 20년동안 이것을 해왔다. 그러므로..." | ||
499 | - "이것은 돈을 벌기위해 나의 회사가 필요로 하는 것이다." | ||
500 | - "이것은 우리의 엔터프라이즈 상품 라인을 위한 것이다." | ||
501 | - "여기에 나의 생각을 말하고 있는 1000 페이지 설계 문서가 있다." | ||
502 | - "나는 6달동안 이것을 했으니..." | ||
503 | - "여기세 5000라인 짜리 패치가 있으니..." | ||
504 | - "나는 현재 뒤죽박죽인 것을 재작성했다. 그리고 여기에..." | ||
505 | - "나는 마감시한을 가지고 있으므로 이 패치는 지금 적용될 필요가 있다." | ||
506 | |||
507 | 커널 커뮤니티가 전통적인 소프트웨어 엔지니어링 개발 환경들과 | ||
508 | 또 다른 점은 얼굴을 보지 않고 일한다는 점이다. 이메일과 irc를 대화의 | ||
509 | 주요수단으로 사용하는 것의 한가지 장점은 성별이나 인종의 차별이 | ||
510 | 없다는 것이다. 리눅스 커널의 작업 환경에서는 단지 이메일 주소만 | ||
511 | 알수 있기 때문에 여성과 소수 민족들도 모두 받아들여진다. 국제적으로 | ||
512 | 일하게 되는 측면은 사람의 이름에 근거하여 성별을 추측할 수 없게 | ||
513 | 하기때문에 차별을 없애는 데 도움을 준다. Andrea라는 이름을 가진 남자와 | ||
514 | Pat이라는 이름을 가진 여자가 있을 수도 있는 것이다. 리눅스 커널에서 | ||
515 | 작업하며 생각을 표현해왔던 대부분의 여성들은 긍정적인 경험을 가지고 | ||
516 | 있다. | ||
517 | |||
518 | 언어 장벽은 영어에 익숙하지 않은 몇몇 사람들에게 문제가 될 수도 있다. | ||
519 | 언어의 훌륭한 구사는 메일링 리스트에서 올바르게 자신의 생각을 | ||
520 | 표현하기 위하여 필요하다. 그래서 여러분은 이메일을 보내기 전에 | ||
521 | 영어를 올바르게 사용하고 있는지를 체크하는 것이 바람직하다. | ||
522 | |||
523 | |||
524 | 여러분의 변경을 나누어라 | ||
525 | ------------------------ | ||
526 | |||
527 | 리눅스 커널 커뮤니티는 한꺼번에 굉장히 큰 코드의 묶음을 쉽게 | ||
528 | 받아들이지 않는다. 변경은 적절하게 소개되고, 검토되고, 각각의 | ||
529 | 부분으로 작게 나누어져야 한다. 이것은 회사에서 하는 것과는 정확히 | ||
530 | 반대되는 것이다. 여러분들의 제안은 개발 초기에 일찍이 소개되야 한다. | ||
531 | 그래서 여러분들은 자신이 하고 있는 것에 관하여 피드백을 받을 수 있게 | ||
532 | 된다. 커뮤니티가 여러분들이 커뮤니티와 함께 일하고 있다는 것을 | ||
533 | 느끼도록 만들고 커뮤니티가 여러분의 기능을 위한 쓰레기 장으로서 | ||
534 | 사용되지 않고 있다는 것을 느끼게 하자. 그러나 메일링 리스트에 한번에 | ||
535 | 50개의 이메일을 보내지는 말아라. 여러분들의 일련의 패치들은 항상 | ||
536 | 더 작아야 한다. | ||
537 | |||
538 | 패치를 나누는 이유는 다음과 같다. | ||
539 | |||
540 | 1) 작은 패치들은 여러분의 패치들이 적용될 수 있는 확률을 높여준다. | ||
541 | 왜냐하면 다른 사람들은 정확성을 검증하기 위하여 많은 시간과 노력을 | ||
542 | 들이기를 원하지 않는다. 5줄의 패치는 메인트너가 거의 몇 초간 힐끗 | ||
543 | 보면 적용될 수 있다. 그러나 500 줄의 패치는 정확성을 검토하기 위하여 | ||
544 | 몇시간이 걸릴 수도 있다(걸리는 시간은 패치의 크기 혹은 다른 것에 | ||
545 | 비례하여 기하급수적으로 늘어난다). | ||
546 | |||
547 | 패치를 작게 만드는 것은 무엇인가 잘못되었을 때 디버그하는 것을 | ||
548 | 쉽게 만든다. 즉, 그렇게 만드는 것은 매우 큰 패치를 적용한 후에 | ||
549 | 조사하는 것 보다 작은 패치를 적용한 후에 (그리고 몇몇의 것이 | ||
550 | 깨졌을 때) 하나씩 패치들을 제거해가며 디버그 하기 쉽도록 만들어 준다. | ||
551 | |||
552 | 2) 작은 패치들을 보내는 것뿐만 아니라 패치들을 제출하기전에 재작성하고 | ||
553 | 간단하게(혹은 간단한게 재배치하여) 하는 것도 중요하다. | ||
554 | |||
555 | 여기에 커널 개발자 Al Viro의 이야기가 있다. | ||
556 | "학생의 수학 숙제를 채점하는 선생님을 생각해보라. 선생님은 학생들이 | ||
557 | 답을 얻을때까지 겪은 시행착오를 보길 원하지 않는다. 선생님들은 | ||
558 | 간결하고 가장 뛰어난 답을 보길 원한다. 훌륭한 학생은 이것을 알고 | ||
559 | 마지막으로 답을 얻기 전 중간 과정들을 제출하진 않는다. | ||
560 | |||
561 | 커널 개발도 마찬가지이다. 메인트너들과 검토하는 사람들은 문제를 | ||
562 | 풀어나가는 과정속에 숨겨진 과정을 보길 원하진 않는다. 그들은 | ||
563 | 간결하고 멋진 답을 보길 원한다." | ||
564 | |||
565 | 커뮤니티와 함께 일하며 뛰어난 답을 찾고 여러분들의 완성되지 않은 일들 | ||
566 | 사이에 균형을 유지해야 하는 어려움이 있을 수 있다. 그러므로 프로세스의 | ||
567 | 초반에 여러분의 일을 향상시키기위한 피드백을 얻는 것 뿐만 아니라 | ||
568 | 여러분들의 변경들을 작은 묶음으로 유지해서 심지어는 여러분의 작업의 | ||
569 | 모든 부분이 지금은 포함될 준비가 되어있지 않지만 작은 부분은 이미 | ||
570 | 받아들여질 수 있도록 유지하는 것이 바람직하다. | ||
571 | |||
572 | 또한 완성되지 않았고 "나중에 수정될 것이다." 와 같은 것들은 포함하는 | ||
573 | 패치들은 받아들여지지 않을 것이라는 점을 유념하라. | ||
574 | |||
575 | 변경을 정당화해라 | ||
576 | ----------------- | ||
577 | |||
578 | 여러분들의 나누어진 패치들을 리눅스 커뮤니티가 왜 반영해야 하는지를 | ||
579 | 알도록 하는 것은 매우 중요하다. 새로운 기능들이 필요하고 유용하다는 | ||
580 | 것은 반드시 그에 맞는 이유가 있어야 한다. | ||
581 | |||
582 | |||
583 | 변경을 문서화해라 | ||
584 | ----------------- | ||
585 | |||
586 | 여러분이 패치를 보내려 할때는 여러분이 무엇을 말하려고 하는지를 충분히 | ||
587 | 생각하여 이메일을 작성해야 한다. 이 정보는 패치를 위한 ChangeLog가 될 | ||
588 | 것이다. 그리고 항상 그 내용을 보길 원하는 모든 사람들을 위해 보존될 | ||
589 | 것이다. 패치는 완벽하게 다음과 같은 내용들을 포함하여 설명해야 한다. | ||
590 | - 변경이 왜 필요한지 | ||
591 | - 패치에 관한 전체 설계 어프로치 | ||
592 | - 구현 상세들 | ||
593 | - 테스트 결과들 | ||
594 | |||
595 | 이것이 무엇인지 더 자세한 것을 알고 싶다면 다음 문서의 ChageLog 항을 봐라. | ||
596 | "The Perfect Patch" | ||
597 | http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt | ||
598 | |||
599 | |||
600 | |||
601 | |||
602 | 이 모든 것을 하는 것은 매우 어려운 일이다. 완벽히 소화하는 데는 적어도 몇년이 | ||
603 | 걸릴 수도 있다. 많은 인내와 결의가 필요한 계속되는 개선의 과정이다. 그러나 | ||
604 | 가능한한 포기하지 말라. 많은 사람들은 이전부터 해왔던 것이고 그 사람들도 | ||
605 | 정확하게 여러분들이 지금 서 있는 그 곳부터 시작했었다. | ||
606 | |||
607 | |||
608 | |||
609 | |||
610 | ---------- | ||
611 | "개발 프로세스"(http://linux.tar.gz/articles/2.6-development_process) 섹션을 | ||
612 | 작성하는데 있어 참고할 문서를 사용하도록 허락해준 Paolo Ciarrocchi에게 | ||
613 | 감사한다. 여러분들이 말해야 할 것과 말해서는 안되는 것의 목록 중 일부를 제공해준 | ||
614 | Randy Dunlap과 Gerrit Huizenga에게 감사한다. 또한 검토와 의견 그리고 | ||
615 | 공헌을 아끼지 않은 Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers, | ||
616 | Vojtech Pavlik, Jan Kara, Josh Boyer, Kees Cook, Andrew Morton, Andi Kleen, | ||
617 | Vadim Lobanov, Jesper Juhl, Adrian Bunk, Keri Harris, Frans Pop, | ||
618 | David A. Wheeler, Junio Hamano, Michael Kerrisk, and Alex Shepard에게도 감사를 전한다. | ||
619 | 그들의 도움이 없었다면 이 문서는 존재하지 않았을 것이다. | ||
620 | |||
621 | |||
622 | |||
623 | 메인트너: Greg Kroah-Hartman <greg@kroah.com> | ||
diff --git a/Documentation/vm/numa_memory_policy.txt b/Documentation/vm/numa_memory_policy.txt new file mode 100644 index 000000000000..8242f52d0f22 --- /dev/null +++ b/Documentation/vm/numa_memory_policy.txt | |||
@@ -0,0 +1,332 @@ | |||
1 | |||
2 | What is Linux Memory Policy? | ||
3 | |||
4 | In the Linux kernel, "memory policy" determines from which node the kernel will | ||
5 | allocate memory in a NUMA system or in an emulated NUMA system. Linux has | ||
6 | supported platforms with Non-Uniform Memory Access architectures since 2.4.?. | ||
7 | The current memory policy support was added to Linux 2.6 around May 2004. This | ||
8 | document attempts to describe the concepts and APIs of the 2.6 memory policy | ||
9 | support. | ||
10 | |||
11 | Memory policies should not be confused with cpusets (Documentation/cpusets.txt) | ||
12 | which is an administrative mechanism for restricting the nodes from which | ||
13 | memory may be allocated by a set of processes. Memory policies are a | ||
14 | programming interface that a NUMA-aware application can take advantage of. When | ||
15 | both cpusets and policies are applied to a task, the restrictions of the cpuset | ||
16 | takes priority. See "MEMORY POLICIES AND CPUSETS" below for more details. | ||
17 | |||
18 | MEMORY POLICY CONCEPTS | ||
19 | |||
20 | Scope of Memory Policies | ||
21 | |||
22 | The Linux kernel supports _scopes_ of memory policy, described here from | ||
23 | most general to most specific: | ||
24 | |||
25 | System Default Policy: this policy is "hard coded" into the kernel. It | ||
26 | is the policy that governs all page allocations that aren't controlled | ||
27 | by one of the more specific policy scopes discussed below. When the | ||
28 | system is "up and running", the system default policy will use "local | ||
29 | allocation" described below. However, during boot up, the system | ||
30 | default policy will be set to interleave allocations across all nodes | ||
31 | with "sufficient" memory, so as not to overload the initial boot node | ||
32 | with boot-time allocations. | ||
33 | |||
34 | Task/Process Policy: this is an optional, per-task policy. When defined | ||
35 | for a specific task, this policy controls all page allocations made by or | ||
36 | on behalf of the task that aren't controlled by a more specific scope. | ||
37 | If a task does not define a task policy, then all page allocations that | ||
38 | would have been controlled by the task policy "fall back" to the System | ||
39 | Default Policy. | ||
40 | |||
41 | The task policy applies to the entire address space of a task. Thus, | ||
42 | it is inheritable, and indeed is inherited, across both fork() | ||
43 | [clone() w/o the CLONE_VM flag] and exec*(). This allows a parent task | ||
44 | to establish the task policy for a child task exec()'d from an | ||
45 | executable image that has no awareness of memory policy. See the | ||
46 | MEMORY POLICY APIS section, below, for an overview of the system call | ||
47 | that a task may use to set/change it's task/process policy. | ||
48 | |||
49 | In a multi-threaded task, task policies apply only to the thread | ||
50 | [Linux kernel task] that installs the policy and any threads | ||
51 | subsequently created by that thread. Any sibling threads existing | ||
52 | at the time a new task policy is installed retain their current | ||
53 | policy. | ||
54 | |||
55 | A task policy applies only to pages allocated after the policy is | ||
56 | installed. Any pages already faulted in by the task when the task | ||
57 | changes its task policy remain where they were allocated based on | ||
58 | the policy at the time they were allocated. | ||
59 | |||
60 | VMA Policy: A "VMA" or "Virtual Memory Area" refers to a range of a task's | ||
61 | virtual adddress space. A task may define a specific policy for a range | ||
62 | of its virtual address space. See the MEMORY POLICIES APIS section, | ||
63 | below, for an overview of the mbind() system call used to set a VMA | ||
64 | policy. | ||
65 | |||
66 | A VMA policy will govern the allocation of pages that back this region of | ||
67 | the address space. Any regions of the task's address space that don't | ||
68 | have an explicit VMA policy will fall back to the task policy, which may | ||
69 | itself fall back to the System Default Policy. | ||
70 | |||
71 | VMA policies have a few complicating details: | ||
72 | |||
73 | VMA policy applies ONLY to anonymous pages. These include pages | ||
74 | allocated for anonymous segments, such as the task stack and heap, and | ||
75 | any regions of the address space mmap()ed with the MAP_ANONYMOUS flag. | ||
76 | If a VMA policy is applied to a file mapping, it will be ignored if | ||
77 | the mapping used the MAP_SHARED flag. If the file mapping used the | ||
78 | MAP_PRIVATE flag, the VMA policy will only be applied when an | ||
79 | anonymous page is allocated on an attempt to write to the mapping-- | ||
80 | i.e., at Copy-On-Write. | ||
81 | |||
82 | VMA policies are shared between all tasks that share a virtual address | ||
83 | space--a.k.a. threads--independent of when the policy is installed; and | ||
84 | they are inherited across fork(). However, because VMA policies refer | ||
85 | to a specific region of a task's address space, and because the address | ||
86 | space is discarded and recreated on exec*(), VMA policies are NOT | ||
87 | inheritable across exec(). Thus, only NUMA-aware applications may | ||
88 | use VMA policies. | ||
89 | |||
90 | A task may install a new VMA policy on a sub-range of a previously | ||
91 | mmap()ed region. When this happens, Linux splits the existing virtual | ||
92 | memory area into 2 or 3 VMAs, each with it's own policy. | ||
93 | |||
94 | By default, VMA policy applies only to pages allocated after the policy | ||
95 | is installed. Any pages already faulted into the VMA range remain | ||
96 | where they were allocated based on the policy at the time they were | ||
97 | allocated. However, since 2.6.16, Linux supports page migration via | ||
98 | the mbind() system call, so that page contents can be moved to match | ||
99 | a newly installed policy. | ||
100 | |||
101 | Shared Policy: Conceptually, shared policies apply to "memory objects" | ||
102 | mapped shared into one or more tasks' distinct address spaces. An | ||
103 | application installs a shared policies the same way as VMA policies--using | ||
104 | the mbind() system call specifying a range of virtual addresses that map | ||
105 | the shared object. However, unlike VMA policies, which can be considered | ||
106 | to be an attribute of a range of a task's address space, shared policies | ||
107 | apply directly to the shared object. Thus, all tasks that attach to the | ||
108 | object share the policy, and all pages allocated for the shared object, | ||
109 | by any task, will obey the shared policy. | ||
110 | |||
111 | As of 2.6.22, only shared memory segments, created by shmget() or | ||
112 | mmap(MAP_ANONYMOUS|MAP_SHARED), support shared policy. When shared | ||
113 | policy support was added to Linux, the associated data structures were | ||
114 | added to hugetlbfs shmem segments. At the time, hugetlbfs did not | ||
115 | support allocation at fault time--a.k.a lazy allocation--so hugetlbfs | ||
116 | shmem segments were never "hooked up" to the shared policy support. | ||
117 | Although hugetlbfs segments now support lazy allocation, their support | ||
118 | for shared policy has not been completed. | ||
119 | |||
120 | As mentioned above [re: VMA policies], allocations of page cache | ||
121 | pages for regular files mmap()ed with MAP_SHARED ignore any VMA | ||
122 | policy installed on the virtual address range backed by the shared | ||
123 | file mapping. Rather, shared page cache pages, including pages backing | ||
124 | private mappings that have not yet been written by the task, follow | ||
125 | task policy, if any, else System Default Policy. | ||
126 | |||
127 | The shared policy infrastructure supports different policies on subset | ||
128 | ranges of the shared object. However, Linux still splits the VMA of | ||
129 | the task that installs the policy for each range of distinct policy. | ||
130 | Thus, different tasks that attach to a shared memory segment can have | ||
131 | different VMA configurations mapping that one shared object. This | ||
132 | can be seen by examining the /proc/<pid>/numa_maps of tasks sharing | ||
133 | a shared memory region, when one task has installed shared policy on | ||
134 | one or more ranges of the region. | ||
135 | |||
136 | Components of Memory Policies | ||
137 | |||
138 | A Linux memory policy is a tuple consisting of a "mode" and an optional set | ||
139 | of nodes. The mode determine the behavior of the policy, while the | ||
140 | optional set of nodes can be viewed as the arguments to the behavior. | ||
141 | |||
142 | Internally, memory policies are implemented by a reference counted | ||
143 | structure, struct mempolicy. Details of this structure will be discussed | ||
144 | in context, below, as required to explain the behavior. | ||
145 | |||
146 | Note: in some functions AND in the struct mempolicy itself, the mode | ||
147 | is called "policy". However, to avoid confusion with the policy tuple, | ||
148 | this document will continue to use the term "mode". | ||
149 | |||
150 | Linux memory policy supports the following 4 behavioral modes: | ||
151 | |||
152 | Default Mode--MPOL_DEFAULT: The behavior specified by this mode is | ||
153 | context or scope dependent. | ||
154 | |||
155 | As mentioned in the Policy Scope section above, during normal | ||
156 | system operation, the System Default Policy is hard coded to | ||
157 | contain the Default mode. | ||
158 | |||
159 | In this context, default mode means "local" allocation--that is | ||
160 | attempt to allocate the page from the node associated with the cpu | ||
161 | where the fault occurs. If the "local" node has no memory, or the | ||
162 | node's memory can be exhausted [no free pages available], local | ||
163 | allocation will "fallback to"--attempt to allocate pages from-- | ||
164 | "nearby" nodes, in order of increasing "distance". | ||
165 | |||
166 | Implementation detail -- subject to change: "Fallback" uses | ||
167 | a per node list of sibling nodes--called zonelists--built at | ||
168 | boot time, or when nodes or memory are added or removed from | ||
169 | the system [memory hotplug]. These per node zonelist are | ||
170 | constructed with nodes in order of increasing distance based | ||
171 | on information provided by the platform firmware. | ||
172 | |||
173 | When a task/process policy or a shared policy contains the Default | ||
174 | mode, this also means "local allocation", as described above. | ||
175 | |||
176 | In the context of a VMA, Default mode means "fall back to task | ||
177 | policy"--which may or may not specify Default mode. Thus, Default | ||
178 | mode can not be counted on to mean local allocation when used | ||
179 | on a non-shared region of the address space. However, see | ||
180 | MPOL_PREFERRED below. | ||
181 | |||
182 | The Default mode does not use the optional set of nodes. | ||
183 | |||
184 | MPOL_BIND: This mode specifies that memory must come from the | ||
185 | set of nodes specified by the policy. | ||
186 | |||
187 | The memory policy APIs do not specify an order in which the nodes | ||
188 | will be searched. However, unlike "local allocation", the Bind | ||
189 | policy does not consider the distance between the nodes. Rather, | ||
190 | allocations will fallback to the nodes specified by the policy in | ||
191 | order of numeric node id. Like everything in Linux, this is subject | ||
192 | to change. | ||
193 | |||
194 | MPOL_PREFERRED: This mode specifies that the allocation should be | ||
195 | attempted from the single node specified in the policy. If that | ||
196 | allocation fails, the kernel will search other nodes, exactly as | ||
197 | it would for a local allocation that started at the preferred node | ||
198 | in increasing distance from the preferred node. "Local" allocation | ||
199 | policy can be viewed as a Preferred policy that starts at the node | ||
200 | containing the cpu where the allocation takes place. | ||
201 | |||
202 | Internally, the Preferred policy uses a single node--the | ||
203 | preferred_node member of struct mempolicy. A "distinguished | ||
204 | value of this preferred_node, currently '-1', is interpreted | ||
205 | as "the node containing the cpu where the allocation takes | ||
206 | place"--local allocation. This is the way to specify | ||
207 | local allocation for a specific range of addresses--i.e. for | ||
208 | VMA policies. | ||
209 | |||
210 | MPOL_INTERLEAVED: This mode specifies that page allocations be | ||
211 | interleaved, on a page granularity, across the nodes specified in | ||
212 | the policy. This mode also behaves slightly differently, based on | ||
213 | the context where it is used: | ||
214 | |||
215 | For allocation of anonymous pages and shared memory pages, | ||
216 | Interleave mode indexes the set of nodes specified by the policy | ||
217 | using the page offset of the faulting address into the segment | ||
218 | [VMA] containing the address modulo the number of nodes specified | ||
219 | by the policy. It then attempts to allocate a page, starting at | ||
220 | the selected node, as if the node had been specified by a Preferred | ||
221 | policy or had been selected by a local allocation. That is, | ||
222 | allocation will follow the per node zonelist. | ||
223 | |||
224 | For allocation of page cache pages, Interleave mode indexes the set | ||
225 | of nodes specified by the policy using a node counter maintained | ||
226 | per task. This counter wraps around to the lowest specified node | ||
227 | after it reaches the highest specified node. This will tend to | ||
228 | spread the pages out over the nodes specified by the policy based | ||
229 | on the order in which they are allocated, rather than based on any | ||
230 | page offset into an address range or file. During system boot up, | ||
231 | the temporary interleaved system default policy works in this | ||
232 | mode. | ||
233 | |||
234 | MEMORY POLICY APIs | ||
235 | |||
236 | Linux supports 3 system calls for controlling memory policy. These APIS | ||
237 | always affect only the calling task, the calling task's address space, or | ||
238 | some shared object mapped into the calling task's address space. | ||
239 | |||
240 | Note: the headers that define these APIs and the parameter data types | ||
241 | for user space applications reside in a package that is not part of | ||
242 | the Linux kernel. The kernel system call interfaces, with the 'sys_' | ||
243 | prefix, are defined in <linux/syscalls.h>; the mode and flag | ||
244 | definitions are defined in <linux/mempolicy.h>. | ||
245 | |||
246 | Set [Task] Memory Policy: | ||
247 | |||
248 | long set_mempolicy(int mode, const unsigned long *nmask, | ||
249 | unsigned long maxnode); | ||
250 | |||
251 | Set's the calling task's "task/process memory policy" to mode | ||
252 | specified by the 'mode' argument and the set of nodes defined | ||
253 | by 'nmask'. 'nmask' points to a bit mask of node ids containing | ||
254 | at least 'maxnode' ids. | ||
255 | |||
256 | See the set_mempolicy(2) man page for more details | ||
257 | |||
258 | |||
259 | Get [Task] Memory Policy or Related Information | ||
260 | |||
261 | long get_mempolicy(int *mode, | ||
262 | const unsigned long *nmask, unsigned long maxnode, | ||
263 | void *addr, int flags); | ||
264 | |||
265 | Queries the "task/process memory policy" of the calling task, or | ||
266 | the policy or location of a specified virtual address, depending | ||
267 | on the 'flags' argument. | ||
268 | |||
269 | See the get_mempolicy(2) man page for more details | ||
270 | |||
271 | |||
272 | Install VMA/Shared Policy for a Range of Task's Address Space | ||
273 | |||
274 | long mbind(void *start, unsigned long len, int mode, | ||
275 | const unsigned long *nmask, unsigned long maxnode, | ||
276 | unsigned flags); | ||
277 | |||
278 | mbind() installs the policy specified by (mode, nmask, maxnodes) as | ||
279 | a VMA policy for the range of the calling task's address space | ||
280 | specified by the 'start' and 'len' arguments. Additional actions | ||
281 | may be requested via the 'flags' argument. | ||
282 | |||
283 | See the mbind(2) man page for more details. | ||
284 | |||
285 | MEMORY POLICY COMMAND LINE INTERFACE | ||
286 | |||
287 | Although not strictly part of the Linux implementation of memory policy, | ||
288 | a command line tool, numactl(8), exists that allows one to: | ||
289 | |||
290 | + set the task policy for a specified program via set_mempolicy(2), fork(2) and | ||
291 | exec(2) | ||
292 | |||
293 | + set the shared policy for a shared memory segment via mbind(2) | ||
294 | |||
295 | The numactl(8) tool is packages with the run-time version of the library | ||
296 | containing the memory policy system call wrappers. Some distributions | ||
297 | package the headers and compile-time libraries in a separate development | ||
298 | package. | ||
299 | |||
300 | |||
301 | MEMORY POLICIES AND CPUSETS | ||
302 | |||
303 | Memory policies work within cpusets as described above. For memory policies | ||
304 | that require a node or set of nodes, the nodes are restricted to the set of | ||
305 | nodes whose memories are allowed by the cpuset constraints. If the | ||
306 | intersection of the set of nodes specified for the policy and the set of nodes | ||
307 | allowed by the cpuset is the empty set, the policy is considered invalid and | ||
308 | cannot be installed. | ||
309 | |||
310 | The interaction of memory policies and cpusets can be problematic for a | ||
311 | couple of reasons: | ||
312 | |||
313 | 1) the memory policy APIs take physical node id's as arguments. However, the | ||
314 | memory policy APIs do not provide a way to determine what nodes are valid | ||
315 | in the context where the application is running. An application MAY consult | ||
316 | the cpuset file system [directly or via an out of tree, and not generally | ||
317 | available, libcpuset API] to obtain this information, but then the | ||
318 | application must be aware that it is running in a cpuset and use what are | ||
319 | intended primarily as administrative APIs. | ||
320 | |||
321 | However, as long as the policy specifies at least one node that is valid | ||
322 | in the controlling cpuset, the policy can be used. | ||
323 | |||
324 | 2) when tasks in two cpusets share access to a memory region, such as shared | ||
325 | memory segments created by shmget() of mmap() with the MAP_ANONYMOUS and | ||
326 | MAP_SHARED flags, and any of the tasks install shared policy on the region, | ||
327 | only nodes whose memories are allowed in both cpusets may be used in the | ||
328 | policies. Again, obtaining this information requires "stepping outside" | ||
329 | the memory policy APIs, as well as knowing in what cpusets other task might | ||
330 | be attaching to the shared region, to use the cpuset information. | ||
331 | Furthermore, if the cpusets' allowed memory sets are disjoint, "local" | ||
332 | allocation is the only valid policy. | ||
diff --git a/Documentation/watchdog/00-INDEX b/Documentation/watchdog/00-INDEX new file mode 100644 index 000000000000..c3ea47e507fe --- /dev/null +++ b/Documentation/watchdog/00-INDEX | |||
@@ -0,0 +1,10 @@ | |||
1 | 00-INDEX | ||
2 | - this file. | ||
3 | pcwd-watchdog.txt | ||
4 | - documentation for Berkshire Products PC Watchdog ISA cards. | ||
5 | src/ | ||
6 | - directory holding watchdog related example programs. | ||
7 | watchdog-api.txt | ||
8 | - description of the Linux Watchdog driver API. | ||
9 | wdt.txt | ||
10 | - description of the Watchdog Timer Interfaces for Linux. | ||
diff --git a/MAINTAINERS b/MAINTAINERS index e4dde7f1f8d2..48ca8b47150d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -167,11 +167,11 @@ S: Maintained | |||
167 | P: Eric Van Hensbergen | 167 | P: Eric Van Hensbergen |
168 | M: ericvh@gmail.com | 168 | M: ericvh@gmail.com |
169 | P: Ron Minnich | 169 | P: Ron Minnich |
170 | M: rminnich@lanl.gov | 170 | M: rminnich@sandia.gov |
171 | P: Latchesar Ionkov | 171 | P: Latchesar Ionkov |
172 | M: lucho@ionkov.net | 172 | M: lucho@ionkov.net |
173 | L: v9fs-developer@lists.sourceforge.net | 173 | L: v9fs-developer@lists.sourceforge.net |
174 | W: http://v9fs.sf.net | 174 | W: http://swik.net/v9fs |
175 | T: git kernel.org:/pub/scm/linux/kernel/ericvh/v9fs.git | 175 | T: git kernel.org:/pub/scm/linux/kernel/ericvh/v9fs.git |
176 | S: Maintained | 176 | S: Maintained |
177 | 177 | ||
@@ -1009,7 +1009,7 @@ P: Steve French | |||
1009 | M: sfrench@samba.org | 1009 | M: sfrench@samba.org |
1010 | L: linux-cifs-client@lists.samba.org | 1010 | L: linux-cifs-client@lists.samba.org |
1011 | L: samba-technical@lists.samba.org | 1011 | L: samba-technical@lists.samba.org |
1012 | W: http://us1.samba.org/samba/Linux_CIFS_client.html | 1012 | W: http://linux-cifs.samba.org/ |
1013 | T: git kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git | 1013 | T: git kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6.git |
1014 | S: Supported | 1014 | S: Supported |
1015 | 1015 | ||
@@ -2661,6 +2661,12 @@ L: netdev@vger.kernel.org | |||
2661 | T: git kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6.git | 2661 | T: git kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6.git |
2662 | S: Maintained | 2662 | S: Maintained |
2663 | 2663 | ||
2664 | NETWORKING [LABELED] (NetLabel, CIPSO, Labeled IPsec, SECMARK) | ||
2665 | P: Paul Moore | ||
2666 | M: paul.moore@hp.com | ||
2667 | L: netdev@vger.kernel.org | ||
2668 | S: Maintained | ||
2669 | |||
2664 | NETWORKING [WIRELESS] | 2670 | NETWORKING [WIRELESS] |
2665 | P: John W. Linville | 2671 | P: John W. Linville |
2666 | M: linville@tuxdriver.com | 2672 | M: linville@tuxdriver.com |
@@ -3452,7 +3458,7 @@ S: Maintained | |||
3452 | 3458 | ||
3453 | TPM DEVICE DRIVER | 3459 | TPM DEVICE DRIVER |
3454 | P: Kylene Hall | 3460 | P: Kylene Hall |
3455 | M: kjhall@us.ibm.com | 3461 | M: tpmdd-devel@lists.sourceforge.net |
3456 | W: http://tpmdd.sourceforge.net | 3462 | W: http://tpmdd.sourceforge.net |
3457 | P: Marcel Selhorst | 3463 | P: Marcel Selhorst |
3458 | M: tpm@selhorst.net | 3464 | M: tpm@selhorst.net |
@@ -1,8 +1,8 @@ | |||
1 | VERSION = 2 | 1 | VERSION = 2 |
2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
3 | SUBLEVEL = 23 | 3 | SUBLEVEL = 23 |
4 | EXTRAVERSION =-rc3 | 4 | EXTRAVERSION =-rc4 |
5 | NAME = Holy Dancing Manatees, Batman! | 5 | NAME = Pink Farting Weasel |
6 | 6 | ||
7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
8 | # To see a list of typical targets execute "make help" | 8 | # To see a list of typical targets execute "make help" |
diff --git a/arch/arm/mach-ks8695/board-micrel.c b/arch/arm/mach-ks8695/board-micrel.c index 8fc0edb5211e..2feeef81d843 100644 --- a/arch/arm/mach-ks8695/board-micrel.c +++ b/arch/arm/mach-ks8695/board-micrel.c | |||
@@ -23,24 +23,24 @@ | |||
23 | #include "generic.h" | 23 | #include "generic.h" |
24 | 24 | ||
25 | #ifdef CONFIG_PCI | 25 | #ifdef CONFIG_PCI |
26 | static int __init micrel_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 26 | static int micrel_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) |
27 | { | 27 | { |
28 | return KS8695_IRQ_EXTERN0; | 28 | return KS8695_IRQ_EXTERN0; |
29 | } | 29 | } |
30 | 30 | ||
31 | static struct ks8695_pci_cfg micrel_pci = { | 31 | static struct ks8695_pci_cfg __initdata micrel_pci = { |
32 | .mode = KS8695_MODE_MINIPCI, | 32 | .mode = KS8695_MODE_MINIPCI, |
33 | .map_irq = micrel_pci_map_irq, | 33 | .map_irq = micrel_pci_map_irq, |
34 | }; | 34 | }; |
35 | #endif | 35 | #endif |
36 | 36 | ||
37 | 37 | ||
38 | static void micrel_init(void) | 38 | static void __init micrel_init(void) |
39 | { | 39 | { |
40 | printk(KERN_INFO "Micrel KS8695 Development Board initializing\n"); | 40 | printk(KERN_INFO "Micrel KS8695 Development Board initializing\n"); |
41 | 41 | ||
42 | #ifdef CONFIG_PCI | 42 | #ifdef CONFIG_PCI |
43 | ks8695_init_pci(&micrel_pci); | 43 | // ks8695_init_pci(&micrel_pci); |
44 | #endif | 44 | #endif |
45 | 45 | ||
46 | /* Add devices */ | 46 | /* Add devices */ |
diff --git a/arch/arm/mach-s3c2442/Kconfig b/arch/arm/mach-s3c2442/Kconfig index 88d5fd34fe3b..26d131a77074 100644 --- a/arch/arm/mach-s3c2442/Kconfig +++ b/arch/arm/mach-s3c2442/Kconfig | |||
@@ -6,7 +6,7 @@ | |||
6 | 6 | ||
7 | config CPU_S3C2442 | 7 | config CPU_S3C2442 |
8 | bool | 8 | bool |
9 | depends on ARCH_S3C2420 | 9 | depends on ARCH_S3C2410 |
10 | select S3C2410_CLOCK | 10 | select S3C2410_CLOCK |
11 | select S3C2410_GPIO | 11 | select S3C2410_GPIO |
12 | select S3C2410_PM if PM | 12 | select S3C2410_PM if PM |
diff --git a/arch/avr32/boards/atngw100/setup.c b/arch/avr32/boards/atngw100/setup.c index 2edcecdea8bd..ef801563bbf5 100644 --- a/arch/avr32/boards/atngw100/setup.c +++ b/arch/avr32/boards/atngw100/setup.c | |||
@@ -9,6 +9,7 @@ | |||
9 | */ | 9 | */ |
10 | #include <linux/clk.h> | 10 | #include <linux/clk.h> |
11 | #include <linux/etherdevice.h> | 11 | #include <linux/etherdevice.h> |
12 | #include <linux/i2c-gpio.h> | ||
12 | #include <linux/init.h> | 13 | #include <linux/init.h> |
13 | #include <linux/linkage.h> | 14 | #include <linux/linkage.h> |
14 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
@@ -123,6 +124,19 @@ static struct platform_device ngw_gpio_leds = { | |||
123 | } | 124 | } |
124 | }; | 125 | }; |
125 | 126 | ||
127 | static struct i2c_gpio_platform_data i2c_gpio_data = { | ||
128 | .sda_pin = GPIO_PIN_PA(6), | ||
129 | .scl_pin = GPIO_PIN_PA(7), | ||
130 | }; | ||
131 | |||
132 | static struct platform_device i2c_gpio_device = { | ||
133 | .name = "i2c-gpio", | ||
134 | .id = 0, | ||
135 | .dev = { | ||
136 | .platform_data = &i2c_gpio_data, | ||
137 | }, | ||
138 | }; | ||
139 | |||
126 | static int __init atngw100_init(void) | 140 | static int __init atngw100_init(void) |
127 | { | 141 | { |
128 | unsigned i; | 142 | unsigned i; |
@@ -147,6 +161,10 @@ static int __init atngw100_init(void) | |||
147 | } | 161 | } |
148 | platform_device_register(&ngw_gpio_leds); | 162 | platform_device_register(&ngw_gpio_leds); |
149 | 163 | ||
164 | at32_select_gpio(i2c_gpio_data.sda_pin, 0); | ||
165 | at32_select_gpio(i2c_gpio_data.scl_pin, 0); | ||
166 | platform_device_register(&i2c_gpio_device); | ||
167 | |||
150 | return 0; | 168 | return 0; |
151 | } | 169 | } |
152 | postcore_initcall(atngw100_init); | 170 | postcore_initcall(atngw100_init); |
diff --git a/arch/avr32/boards/atstk1000/Kconfig b/arch/avr32/boards/atstk1000/Kconfig index 71bc7d364fb7..718578f64069 100644 --- a/arch/avr32/boards/atstk1000/Kconfig +++ b/arch/avr32/boards/atstk1000/Kconfig | |||
@@ -50,4 +50,30 @@ config BOARD_ATSTK1002_SPI1 | |||
50 | GPIO lines and accessed through the J1 jumper block. Say "y" | 50 | GPIO lines and accessed through the J1 jumper block. Say "y" |
51 | here to configure that SPI controller. | 51 | here to configure that SPI controller. |
52 | 52 | ||
53 | config BOARD_ATSTK1002_J2_LED | ||
54 | bool | ||
55 | default BOARD_ATSTK1002_J2_LED8 || BOARD_ATSTK1002_J2_RGB | ||
56 | |||
57 | choice | ||
58 | prompt "LEDs connected to J2:" | ||
59 | depends on LEDS_GPIO && !BOARD_ATSTK1002_SW4_CUSTOM | ||
60 | optional | ||
61 | help | ||
62 | Select this if you have jumpered the J2 jumper block to the | ||
63 | LED0..LED7 amber leds, or to the RGB leds, using a ten-pin | ||
64 | IDC cable. A default "heartbeat" trigger is provided, but | ||
65 | you can of course override this. | ||
66 | |||
67 | config BOARD_ATSTK1002_J2_LED8 | ||
68 | bool "LED0..LED7" | ||
69 | help | ||
70 | Select this if J2 is jumpered to LED0..LED7 amber leds. | ||
71 | |||
72 | config BOARD_ATSTK1002_J2_RGB | ||
73 | bool "RGB leds" | ||
74 | help | ||
75 | Select this if J2 is jumpered to the RGB leds. | ||
76 | |||
77 | endchoice | ||
78 | |||
53 | endif # stk 1002 | 79 | endif # stk 1002 |
diff --git a/arch/avr32/boards/atstk1000/atstk1002.c b/arch/avr32/boards/atstk1000/atstk1002.c index cb93eabb9c6c..c9981b731efa 100644 --- a/arch/avr32/boards/atstk1000/atstk1002.c +++ b/arch/avr32/boards/atstk1000/atstk1002.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/etherdevice.h> | 11 | #include <linux/etherdevice.h> |
12 | #include <linux/init.h> | 12 | #include <linux/init.h> |
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/leds.h> | ||
14 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
15 | #include <linux/string.h> | 16 | #include <linux/string.h> |
16 | #include <linux/types.h> | 17 | #include <linux/types.h> |
@@ -120,6 +121,65 @@ static void __init set_hw_addr(struct platform_device *pdev) | |||
120 | clk_put(pclk); | 121 | clk_put(pclk); |
121 | } | 122 | } |
122 | 123 | ||
124 | #ifdef CONFIG_BOARD_ATSTK1002_J2_LED | ||
125 | |||
126 | static struct gpio_led stk_j2_led[] = { | ||
127 | #ifdef CONFIG_BOARD_ATSTK1002_J2_LED8 | ||
128 | #define LEDSTRING "J2 jumpered to LED8" | ||
129 | { .name = "led0:amber", .gpio = GPIO_PIN_PB( 8), }, | ||
130 | { .name = "led1:amber", .gpio = GPIO_PIN_PB( 9), }, | ||
131 | { .name = "led2:amber", .gpio = GPIO_PIN_PB(10), }, | ||
132 | { .name = "led3:amber", .gpio = GPIO_PIN_PB(13), }, | ||
133 | { .name = "led4:amber", .gpio = GPIO_PIN_PB(14), }, | ||
134 | { .name = "led5:amber", .gpio = GPIO_PIN_PB(15), }, | ||
135 | { .name = "led6:amber", .gpio = GPIO_PIN_PB(16), }, | ||
136 | { .name = "led7:amber", .gpio = GPIO_PIN_PB(30), | ||
137 | .default_trigger = "heartbeat", }, | ||
138 | #else /* RGB */ | ||
139 | #define LEDSTRING "J2 jumpered to RGB LEDs" | ||
140 | { .name = "r1:red", .gpio = GPIO_PIN_PB( 8), }, | ||
141 | { .name = "g1:green", .gpio = GPIO_PIN_PB(10), }, | ||
142 | { .name = "b1:blue", .gpio = GPIO_PIN_PB(14), }, | ||
143 | |||
144 | { .name = "r2:red", .gpio = GPIO_PIN_PB( 9), | ||
145 | .default_trigger = "heartbeat", }, | ||
146 | { .name = "g2:green", .gpio = GPIO_PIN_PB(13), }, | ||
147 | { .name = "b2:blue", .gpio = GPIO_PIN_PB(15), | ||
148 | .default_trigger = "heartbeat", }, | ||
149 | /* PB16, PB30 unused */ | ||
150 | #endif | ||
151 | }; | ||
152 | |||
153 | static struct gpio_led_platform_data stk_j2_led_data = { | ||
154 | .num_leds = ARRAY_SIZE(stk_j2_led), | ||
155 | .leds = stk_j2_led, | ||
156 | }; | ||
157 | |||
158 | static struct platform_device stk_j2_led_dev = { | ||
159 | .name = "leds-gpio", | ||
160 | .id = 2, /* gpio block J2 */ | ||
161 | .dev = { | ||
162 | .platform_data = &stk_j2_led_data, | ||
163 | }, | ||
164 | }; | ||
165 | |||
166 | static void setup_j2_leds(void) | ||
167 | { | ||
168 | unsigned i; | ||
169 | |||
170 | for (i = 0; i < ARRAY_SIZE(stk_j2_led); i++) | ||
171 | at32_select_gpio(stk_j2_led[i].gpio, AT32_GPIOF_OUTPUT); | ||
172 | |||
173 | printk("STK1002: " LEDSTRING "\n"); | ||
174 | platform_device_register(&stk_j2_led_dev); | ||
175 | } | ||
176 | |||
177 | #else | ||
178 | static void setup_j2_leds(void) | ||
179 | { | ||
180 | } | ||
181 | #endif | ||
182 | |||
123 | void __init setup_board(void) | 183 | void __init setup_board(void) |
124 | { | 184 | { |
125 | #ifdef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM | 185 | #ifdef CONFIG_BOARD_ATSTK1002_SW2_CUSTOM |
@@ -185,6 +245,8 @@ static int __init atstk1002_init(void) | |||
185 | at32_add_device_ssc(0, ATMEL_SSC_TX); | 245 | at32_add_device_ssc(0, ATMEL_SSC_TX); |
186 | #endif | 246 | #endif |
187 | 247 | ||
248 | setup_j2_leds(); | ||
249 | |||
188 | return 0; | 250 | return 0; |
189 | } | 251 | } |
190 | postcore_initcall(atstk1002_init); | 252 | postcore_initcall(atstk1002_init); |
diff --git a/arch/cris/arch-v10/drivers/Kconfig b/arch/cris/arch-v10/drivers/Kconfig index e7e724bc0ba6..03e2e68f947d 100644 --- a/arch/cris/arch-v10/drivers/Kconfig +++ b/arch/cris/arch-v10/drivers/Kconfig | |||
@@ -548,6 +548,7 @@ config ETRAX_IDE | |||
548 | select BLK_DEV_IDEDISK | 548 | select BLK_DEV_IDEDISK |
549 | select BLK_DEV_IDECD | 549 | select BLK_DEV_IDECD |
550 | select BLK_DEV_IDEDMA | 550 | select BLK_DEV_IDEDMA |
551 | select IDE_GENERIC | ||
551 | help | 552 | help |
552 | Enable this to get support for ATA/IDE. | 553 | Enable this to get support for ATA/IDE. |
553 | You can't use parallel ports or SCSI ports | 554 | You can't use parallel ports or SCSI ports |
diff --git a/arch/cris/arch-v32/drivers/Kconfig b/arch/cris/arch-v32/drivers/Kconfig index 1d859c16931e..cc6ba5423754 100644 --- a/arch/cris/arch-v32/drivers/Kconfig +++ b/arch/cris/arch-v32/drivers/Kconfig | |||
@@ -592,6 +592,7 @@ config ETRAX_IDE | |||
592 | select BLK_DEV_IDEDISK | 592 | select BLK_DEV_IDEDISK |
593 | select BLK_DEV_IDECD | 593 | select BLK_DEV_IDECD |
594 | select BLK_DEV_IDEDMA | 594 | select BLK_DEV_IDEDMA |
595 | select IDE_GENERIC | ||
595 | help | 596 | help |
596 | Enables the ETRAX IDE driver. | 597 | Enables the ETRAX IDE driver. |
597 | 598 | ||
diff --git a/arch/h8300/kernel/process.c b/arch/h8300/kernel/process.c index e061b63a0038..dfbe7ab9ffe2 100644 --- a/arch/h8300/kernel/process.c +++ b/arch/h8300/kernel/process.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/a.out.h> | 37 | #include <linux/a.out.h> |
38 | #include <linux/interrupt.h> | 38 | #include <linux/interrupt.h> |
39 | #include <linux/reboot.h> | 39 | #include <linux/reboot.h> |
40 | #include <linux/fs.h> | ||
40 | 41 | ||
41 | #include <asm/uaccess.h> | 42 | #include <asm/uaccess.h> |
42 | #include <asm/system.h> | 43 | #include <asm/system.h> |
diff --git a/arch/h8300/kernel/sys_h8300.c b/arch/h8300/kernel/sys_h8300.c index de7688cfd573..ddc62727dc9f 100644 --- a/arch/h8300/kernel/sys_h8300.c +++ b/arch/h8300/kernel/sys_h8300.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/mman.h> | 18 | #include <linux/mman.h> |
19 | #include <linux/file.h> | 19 | #include <linux/file.h> |
20 | #include <linux/utsname.h> | 20 | #include <linux/utsname.h> |
21 | #include <linux/fs.h> | ||
21 | 22 | ||
22 | #include <asm/setup.h> | 23 | #include <asm/setup.h> |
23 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index f9524933258a..97b64d7d6bf6 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
@@ -614,10 +614,14 @@ config X86_PAE | |||
614 | 614 | ||
615 | # Common NUMA Features | 615 | # Common NUMA Features |
616 | config NUMA | 616 | config NUMA |
617 | bool "Numa Memory Allocation and Scheduler Support" | 617 | bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)" |
618 | depends on SMP && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) | 618 | depends on SMP && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL |
619 | default n if X86_PC | 619 | default n if X86_PC |
620 | default y if (X86_NUMAQ || X86_SUMMIT) | 620 | default y if (X86_NUMAQ || X86_SUMMIT) |
621 | help | ||
622 | NUMA support for i386. This is currently high experimental | ||
623 | and should be only used for kernel development. It might also | ||
624 | cause boot failures. | ||
621 | 625 | ||
622 | comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" | 626 | comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI" |
623 | depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI) | 627 | depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI) |
@@ -1228,6 +1232,11 @@ menuconfig INSTRUMENTATION | |||
1228 | bool "Instrumentation Support" | 1232 | bool "Instrumentation Support" |
1229 | depends on EXPERIMENTAL | 1233 | depends on EXPERIMENTAL |
1230 | default y | 1234 | default y |
1235 | ---help--- | ||
1236 | Say Y here to get to see options related to performance measurement, | ||
1237 | debugging, and testing. This option alone does not add any kernel code. | ||
1238 | |||
1239 | If you say N, all options in this submenu will be skipped and disabled. | ||
1231 | 1240 | ||
1232 | if INSTRUMENTATION | 1241 | if INSTRUMENTATION |
1233 | 1242 | ||
diff --git a/arch/i386/Makefile b/arch/i386/Makefile index 01f0ff0daaf4..52b932478c6d 100644 --- a/arch/i386/Makefile +++ b/arch/i386/Makefile | |||
@@ -51,8 +51,8 @@ cflags-y += -maccumulate-outgoing-args | |||
51 | CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then echo $(call cc-option,-fno-unit-at-a-time); fi ;) | 51 | CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then echo $(call cc-option,-fno-unit-at-a-time); fi ;) |
52 | 52 | ||
53 | # do binutils support CFI? | 53 | # do binutils support CFI? |
54 | cflags-y += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,) | 54 | cflags-y += $(call as-instr,.cfi_startproc\n.cfi_rel_offset esp${comma}0\n.cfi_endproc,-DCONFIG_AS_CFI=1,) |
55 | AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,) | 55 | AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_rel_offset esp${comma}0\n.cfi_endproc,-DCONFIG_AS_CFI=1,) |
56 | 56 | ||
57 | # is .cfi_signal_frame supported too? | 57 | # is .cfi_signal_frame supported too? |
58 | cflags-y += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,) | 58 | cflags-y += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,) |
diff --git a/arch/i386/boot/boot.h b/arch/i386/boot/boot.h index dec70c9b6050..20bab9431acb 100644 --- a/arch/i386/boot/boot.h +++ b/arch/i386/boot/boot.h | |||
@@ -87,7 +87,7 @@ static inline void set_fs(u16 seg) | |||
87 | static inline u16 fs(void) | 87 | static inline u16 fs(void) |
88 | { | 88 | { |
89 | u16 seg; | 89 | u16 seg; |
90 | asm("movw %%fs,%0" : "=rm" (seg)); | 90 | asm volatile("movw %%fs,%0" : "=rm" (seg)); |
91 | return seg; | 91 | return seg; |
92 | } | 92 | } |
93 | 93 | ||
@@ -98,7 +98,7 @@ static inline void set_gs(u16 seg) | |||
98 | static inline u16 gs(void) | 98 | static inline u16 gs(void) |
99 | { | 99 | { |
100 | u16 seg; | 100 | u16 seg; |
101 | asm("movw %%gs,%0" : "=rm" (seg)); | 101 | asm volatile("movw %%gs,%0" : "=rm" (seg)); |
102 | return seg; | 102 | return seg; |
103 | } | 103 | } |
104 | 104 | ||
@@ -107,19 +107,19 @@ typedef unsigned int addr_t; | |||
107 | static inline u8 rdfs8(addr_t addr) | 107 | static inline u8 rdfs8(addr_t addr) |
108 | { | 108 | { |
109 | u8 v; | 109 | u8 v; |
110 | asm("movb %%fs:%1,%0" : "=r" (v) : "m" (*(u8 *)addr)); | 110 | asm volatile("movb %%fs:%1,%0" : "=r" (v) : "m" (*(u8 *)addr)); |
111 | return v; | 111 | return v; |
112 | } | 112 | } |
113 | static inline u16 rdfs16(addr_t addr) | 113 | static inline u16 rdfs16(addr_t addr) |
114 | { | 114 | { |
115 | u16 v; | 115 | u16 v; |
116 | asm("movw %%fs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr)); | 116 | asm volatile("movw %%fs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr)); |
117 | return v; | 117 | return v; |
118 | } | 118 | } |
119 | static inline u32 rdfs32(addr_t addr) | 119 | static inline u32 rdfs32(addr_t addr) |
120 | { | 120 | { |
121 | u32 v; | 121 | u32 v; |
122 | asm("movl %%fs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr)); | 122 | asm volatile("movl %%fs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr)); |
123 | return v; | 123 | return v; |
124 | } | 124 | } |
125 | 125 | ||
@@ -139,19 +139,19 @@ static inline void wrfs32(u32 v, addr_t addr) | |||
139 | static inline u8 rdgs8(addr_t addr) | 139 | static inline u8 rdgs8(addr_t addr) |
140 | { | 140 | { |
141 | u8 v; | 141 | u8 v; |
142 | asm("movb %%gs:%1,%0" : "=r" (v) : "m" (*(u8 *)addr)); | 142 | asm volatile("movb %%gs:%1,%0" : "=r" (v) : "m" (*(u8 *)addr)); |
143 | return v; | 143 | return v; |
144 | } | 144 | } |
145 | static inline u16 rdgs16(addr_t addr) | 145 | static inline u16 rdgs16(addr_t addr) |
146 | { | 146 | { |
147 | u16 v; | 147 | u16 v; |
148 | asm("movw %%gs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr)); | 148 | asm volatile("movw %%gs:%1,%0" : "=r" (v) : "m" (*(u16 *)addr)); |
149 | return v; | 149 | return v; |
150 | } | 150 | } |
151 | static inline u32 rdgs32(addr_t addr) | 151 | static inline u32 rdgs32(addr_t addr) |
152 | { | 152 | { |
153 | u32 v; | 153 | u32 v; |
154 | asm("movl %%gs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr)); | 154 | asm volatile("movl %%gs:%1,%0" : "=r" (v) : "m" (*(u32 *)addr)); |
155 | return v; | 155 | return v; |
156 | } | 156 | } |
157 | 157 | ||
@@ -180,15 +180,15 @@ static inline int memcmp(const void *s1, const void *s2, size_t len) | |||
180 | static inline int memcmp_fs(const void *s1, addr_t s2, size_t len) | 180 | static inline int memcmp_fs(const void *s1, addr_t s2, size_t len) |
181 | { | 181 | { |
182 | u8 diff; | 182 | u8 diff; |
183 | asm("fs; repe; cmpsb; setnz %0" | 183 | asm volatile("fs; repe; cmpsb; setnz %0" |
184 | : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); | 184 | : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); |
185 | return diff; | 185 | return diff; |
186 | } | 186 | } |
187 | static inline int memcmp_gs(const void *s1, addr_t s2, size_t len) | 187 | static inline int memcmp_gs(const void *s1, addr_t s2, size_t len) |
188 | { | 188 | { |
189 | u8 diff; | 189 | u8 diff; |
190 | asm("gs; repe; cmpsb; setnz %0" | 190 | asm volatile("gs; repe; cmpsb; setnz %0" |
191 | : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); | 191 | : "=qm" (diff), "+D" (s1), "+S" (s2), "+c" (len)); |
192 | return diff; | 192 | return diff; |
193 | } | 193 | } |
194 | 194 | ||
diff --git a/arch/i386/boot/cpucheck.c b/arch/i386/boot/cpucheck.c index 991e8ceae1de..e655a89c5510 100644 --- a/arch/i386/boot/cpucheck.c +++ b/arch/i386/boot/cpucheck.c | |||
@@ -96,7 +96,8 @@ static int has_fpu(void) | |||
96 | asm volatile("movl %0,%%cr0" : : "r" (cr0)); | 96 | asm volatile("movl %0,%%cr0" : : "r" (cr0)); |
97 | } | 97 | } |
98 | 98 | ||
99 | asm("fninit ; fnstsw %0 ; fnstcw %1" : "+m" (fsw), "+m" (fcw)); | 99 | asm volatile("fninit ; fnstsw %0 ; fnstcw %1" |
100 | : "+m" (fsw), "+m" (fcw)); | ||
100 | 101 | ||
101 | return fsw == 0 && (fcw & 0x103f) == 0x003f; | 102 | return fsw == 0 && (fcw & 0x103f) == 0x003f; |
102 | } | 103 | } |
diff --git a/arch/i386/boot/edd.c b/arch/i386/boot/edd.c index 658834d9f92a..bd138e442ec2 100644 --- a/arch/i386/boot/edd.c +++ b/arch/i386/boot/edd.c | |||
@@ -19,57 +19,28 @@ | |||
19 | 19 | ||
20 | #if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE) | 20 | #if defined(CONFIG_EDD) || defined(CONFIG_EDD_MODULE) |
21 | 21 | ||
22 | struct edd_dapa { | ||
23 | u8 pkt_size; | ||
24 | u8 rsvd; | ||
25 | u16 sector_cnt; | ||
26 | u16 buf_off, buf_seg; | ||
27 | u64 lba; | ||
28 | u64 buf_lin_addr; | ||
29 | }; | ||
30 | |||
31 | /* | 22 | /* |
32 | * Read the MBR (first sector) from a specific device. | 23 | * Read the MBR (first sector) from a specific device. |
33 | */ | 24 | */ |
34 | static int read_mbr(u8 devno, void *buf) | 25 | static int read_mbr(u8 devno, void *buf) |
35 | { | 26 | { |
36 | struct edd_dapa dapa; | 27 | u16 ax, bx, cx, dx; |
37 | u16 ax, bx, cx, dx, si; | ||
38 | |||
39 | memset(&dapa, 0, sizeof dapa); | ||
40 | dapa.pkt_size = sizeof(dapa); | ||
41 | dapa.sector_cnt = 1; | ||
42 | dapa.buf_off = (size_t)buf; | ||
43 | dapa.buf_seg = ds(); | ||
44 | /* dapa.lba = 0; */ | ||
45 | |||
46 | ax = 0x4200; /* Extended Read */ | ||
47 | si = (size_t)&dapa; | ||
48 | dx = devno; | ||
49 | asm("pushfl; stc; int $0x13; setc %%al; popfl" | ||
50 | : "+a" (ax), "+S" (si), "+d" (dx) | ||
51 | : "m" (dapa) | ||
52 | : "ebx", "ecx", "edi", "memory"); | ||
53 | |||
54 | if (!(u8)ax) | ||
55 | return 0; /* OK */ | ||
56 | 28 | ||
57 | ax = 0x0201; /* Legacy Read, one sector */ | 29 | ax = 0x0201; /* Legacy Read, one sector */ |
58 | cx = 0x0001; /* Sector 0-0-1 */ | 30 | cx = 0x0001; /* Sector 0-0-1 */ |
59 | dx = devno; | 31 | dx = devno; |
60 | bx = (size_t)buf; | 32 | bx = (size_t)buf; |
61 | asm("pushfl; stc; int $0x13; setc %%al; popfl" | 33 | asm volatile("pushfl; stc; int $0x13; setc %%al; popfl" |
62 | : "+a" (ax), "+c" (cx), "+d" (dx), "+b" (bx) | 34 | : "+a" (ax), "+c" (cx), "+d" (dx), "+b" (bx) |
63 | : : "esi", "edi", "memory"); | 35 | : : "esi", "edi", "memory"); |
64 | 36 | ||
65 | return -(u8)ax; /* 0 or -1 */ | 37 | return -(u8)ax; /* 0 or -1 */ |
66 | } | 38 | } |
67 | 39 | ||
68 | static u32 read_mbr_sig(u8 devno, struct edd_info *ei) | 40 | static u32 read_mbr_sig(u8 devno, struct edd_info *ei, u32 *mbrsig) |
69 | { | 41 | { |
70 | int sector_size; | 42 | int sector_size; |
71 | char *mbrbuf_ptr, *mbrbuf_end; | 43 | char *mbrbuf_ptr, *mbrbuf_end; |
72 | u32 mbrsig; | ||
73 | u32 buf_base, mbr_base; | 44 | u32 buf_base, mbr_base; |
74 | extern char _end[]; | 45 | extern char _end[]; |
75 | 46 | ||
@@ -85,15 +56,15 @@ static u32 read_mbr_sig(u8 devno, struct edd_info *ei) | |||
85 | 56 | ||
86 | /* Make sure we actually have space on the heap... */ | 57 | /* Make sure we actually have space on the heap... */ |
87 | if (!(boot_params.hdr.loadflags & CAN_USE_HEAP)) | 58 | if (!(boot_params.hdr.loadflags & CAN_USE_HEAP)) |
88 | return 0; | 59 | return -1; |
89 | if (mbrbuf_end > (char *)(size_t)boot_params.hdr.heap_end_ptr) | 60 | if (mbrbuf_end > (char *)(size_t)boot_params.hdr.heap_end_ptr) |
90 | return 0; | 61 | return -1; |
91 | 62 | ||
92 | if (read_mbr(devno, mbrbuf_ptr)) | 63 | if (read_mbr(devno, mbrbuf_ptr)) |
93 | return 0; | 64 | return -1; |
94 | 65 | ||
95 | mbrsig = *(u32 *)&mbrbuf_ptr[EDD_MBR_SIG_OFFSET]; | 66 | *mbrsig = *(u32 *)&mbrbuf_ptr[EDD_MBR_SIG_OFFSET]; |
96 | return mbrsig; | 67 | return 0; |
97 | } | 68 | } |
98 | 69 | ||
99 | static int get_edd_info(u8 devno, struct edd_info *ei) | 70 | static int get_edd_info(u8 devno, struct edd_info *ei) |
@@ -160,6 +131,7 @@ void query_edd(void) | |||
160 | int do_edd = 1; | 131 | int do_edd = 1; |
161 | int devno; | 132 | int devno; |
162 | struct edd_info ei, *edp; | 133 | struct edd_info ei, *edp; |
134 | u32 *mbrptr; | ||
163 | 135 | ||
164 | if (cmdline_find_option("edd", eddarg, sizeof eddarg) > 0) { | 136 | if (cmdline_find_option("edd", eddarg, sizeof eddarg) > 0) { |
165 | if (!strcmp(eddarg, "skipmbr") || !strcmp(eddarg, "skip")) | 137 | if (!strcmp(eddarg, "skipmbr") || !strcmp(eddarg, "skip")) |
@@ -168,7 +140,8 @@ void query_edd(void) | |||
168 | do_edd = 0; | 140 | do_edd = 0; |
169 | } | 141 | } |
170 | 142 | ||
171 | edp = (struct edd_info *)boot_params.eddbuf; | 143 | edp = boot_params.eddbuf; |
144 | mbrptr = boot_params.edd_mbr_sig_buffer; | ||
172 | 145 | ||
173 | if (!do_edd) | 146 | if (!do_edd) |
174 | return; | 147 | return; |
@@ -186,11 +159,8 @@ void query_edd(void) | |||
186 | boot_params.eddbuf_entries++; | 159 | boot_params.eddbuf_entries++; |
187 | } | 160 | } |
188 | 161 | ||
189 | if (do_mbr) { | 162 | if (do_mbr && !read_mbr_sig(devno, &ei, mbrptr++)) |
190 | u32 mbr_sig; | 163 | boot_params.edd_mbr_sig_buf_entries = devno-0x80+1; |
191 | mbr_sig = read_mbr_sig(devno, &ei); | ||
192 | boot_params.edd_mbr_sig_buffer[devno-0x80] = mbr_sig; | ||
193 | } | ||
194 | } | 164 | } |
195 | } | 165 | } |
196 | 166 | ||
diff --git a/arch/i386/boot/tty.c b/arch/i386/boot/tty.c index 9c668aad3515..f3f14bd26371 100644 --- a/arch/i386/boot/tty.c +++ b/arch/i386/boot/tty.c | |||
@@ -54,9 +54,9 @@ static u8 gettime(void) | |||
54 | u16 ax = 0x0200; | 54 | u16 ax = 0x0200; |
55 | u16 cx, dx; | 55 | u16 cx, dx; |
56 | 56 | ||
57 | asm("int $0x1a" | 57 | asm volatile("int $0x1a" |
58 | : "+a" (ax), "=c" (cx), "=d" (dx) | 58 | : "+a" (ax), "=c" (cx), "=d" (dx) |
59 | : : "ebx", "esi", "edi"); | 59 | : : "ebx", "esi", "edi"); |
60 | 60 | ||
61 | return dx >> 8; | 61 | return dx >> 8; |
62 | } | 62 | } |
@@ -67,7 +67,7 @@ static u8 gettime(void) | |||
67 | int getchar(void) | 67 | int getchar(void) |
68 | { | 68 | { |
69 | u16 ax = 0; | 69 | u16 ax = 0; |
70 | asm("int $0x16" : "+a" (ax)); | 70 | asm volatile("int $0x16" : "+a" (ax)); |
71 | 71 | ||
72 | return ax & 0xff; | 72 | return ax & 0xff; |
73 | } | 73 | } |
@@ -75,9 +75,9 @@ int getchar(void) | |||
75 | static int kbd_pending(void) | 75 | static int kbd_pending(void) |
76 | { | 76 | { |
77 | u8 pending; | 77 | u8 pending; |
78 | asm("int $0x16; setnz %0" | 78 | asm volatile("int $0x16; setnz %0" |
79 | : "=rm" (pending) | 79 | : "=rm" (pending) |
80 | : "a" (0x0100)); | 80 | : "a" (0x0100)); |
81 | return pending; | 81 | return pending; |
82 | } | 82 | } |
83 | 83 | ||
diff --git a/arch/i386/boot/video-vga.c b/arch/i386/boot/video-vga.c index 700d09a9c9b3..aef02f9ec0c1 100644 --- a/arch/i386/boot/video-vga.c +++ b/arch/i386/boot/video-vga.c | |||
@@ -47,16 +47,16 @@ static u8 vga_set_basic_mode(void) | |||
47 | 47 | ||
48 | #ifdef CONFIG_VIDEO_400_HACK | 48 | #ifdef CONFIG_VIDEO_400_HACK |
49 | if (adapter >= ADAPTER_VGA) { | 49 | if (adapter >= ADAPTER_VGA) { |
50 | asm(INT10 | 50 | asm volatile(INT10 |
51 | : : "a" (0x1202), "b" (0x0030) | 51 | : : "a" (0x1202), "b" (0x0030) |
52 | : "ecx", "edx", "esi", "edi"); | 52 | : "ecx", "edx", "esi", "edi"); |
53 | } | 53 | } |
54 | #endif | 54 | #endif |
55 | 55 | ||
56 | ax = 0x0f00; | 56 | ax = 0x0f00; |
57 | asm(INT10 | 57 | asm volatile(INT10 |
58 | : "+a" (ax) | 58 | : "+a" (ax) |
59 | : : "ebx", "ecx", "edx", "esi", "edi"); | 59 | : : "ebx", "ecx", "edx", "esi", "edi"); |
60 | 60 | ||
61 | mode = (u8)ax; | 61 | mode = (u8)ax; |
62 | 62 | ||
@@ -73,9 +73,10 @@ static u8 vga_set_basic_mode(void) | |||
73 | mode = 3; | 73 | mode = 3; |
74 | 74 | ||
75 | /* Set the mode */ | 75 | /* Set the mode */ |
76 | ax = mode; | ||
76 | asm volatile(INT10 | 77 | asm volatile(INT10 |
77 | : : "a" (mode) | 78 | : "+a" (ax) |
78 | : "ebx", "ecx", "edx", "esi", "edi"); | 79 | : : "ebx", "ecx", "edx", "esi", "edi"); |
79 | do_restore = 1; | 80 | do_restore = 1; |
80 | return mode; | 81 | return mode; |
81 | } | 82 | } |
diff --git a/arch/i386/boot/video.c b/arch/i386/boot/video.c index 958130ef0042..693f20d3102e 100644 --- a/arch/i386/boot/video.c +++ b/arch/i386/boot/video.c | |||
@@ -61,7 +61,7 @@ static void store_video_mode(void) | |||
61 | 61 | ||
62 | /* Not all BIOSes are clean with respect to the top bit */ | 62 | /* Not all BIOSes are clean with respect to the top bit */ |
63 | boot_params.screen_info.orig_video_mode = ax & 0x7f; | 63 | boot_params.screen_info.orig_video_mode = ax & 0x7f; |
64 | boot_params.screen_info.orig_video_page = page; | 64 | boot_params.screen_info.orig_video_page = page >> 8; |
65 | } | 65 | } |
66 | 66 | ||
67 | /* | 67 | /* |
diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c index 1b66d5c70eaf..9f4ac8b02de4 100644 --- a/arch/i386/kernel/alternative.c +++ b/arch/i386/kernel/alternative.c | |||
@@ -366,6 +366,8 @@ void apply_paravirt(struct paravirt_patch_site *start, | |||
366 | unsigned int used; | 366 | unsigned int used; |
367 | 367 | ||
368 | BUG_ON(p->len > MAX_PATCH_LEN); | 368 | BUG_ON(p->len > MAX_PATCH_LEN); |
369 | /* prep the buffer with the original instructions */ | ||
370 | memcpy(insnbuf, p->instr, p->len); | ||
369 | used = paravirt_ops.patch(p->instrtype, p->clobbers, insnbuf, | 371 | used = paravirt_ops.patch(p->instrtype, p->clobbers, insnbuf, |
370 | (unsigned long)p->instr, p->len); | 372 | (unsigned long)p->instr, p->len); |
371 | 373 | ||
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index f9fff29e01a9..3d67ae18d762 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c | |||
@@ -1085,7 +1085,7 @@ static int __init detect_init_APIC (void) | |||
1085 | if (l & MSR_IA32_APICBASE_ENABLE) | 1085 | if (l & MSR_IA32_APICBASE_ENABLE) |
1086 | mp_lapic_addr = l & MSR_IA32_APICBASE_BASE; | 1086 | mp_lapic_addr = l & MSR_IA32_APICBASE_BASE; |
1087 | 1087 | ||
1088 | if (nmi_watchdog != NMI_NONE) | 1088 | if (nmi_watchdog != NMI_NONE && nmi_watchdog != NMI_DISABLED) |
1089 | nmi_watchdog = NMI_LOCAL_APIC; | 1089 | nmi_watchdog = NMI_LOCAL_APIC; |
1090 | 1090 | ||
1091 | printk(KERN_INFO "Found and enabled local APIC!\n"); | 1091 | printk(KERN_INFO "Found and enabled local APIC!\n"); |
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c index 4b8a8da4b2e0..e2f4a1c68547 100644 --- a/arch/i386/kernel/io_apic.c +++ b/arch/i386/kernel/io_apic.c | |||
@@ -754,14 +754,6 @@ static int pirq_entries [MAX_PIRQS]; | |||
754 | static int pirqs_enabled; | 754 | static int pirqs_enabled; |
755 | int skip_ioapic_setup; | 755 | int skip_ioapic_setup; |
756 | 756 | ||
757 | static int __init ioapic_setup(char *str) | ||
758 | { | ||
759 | skip_ioapic_setup = 1; | ||
760 | return 1; | ||
761 | } | ||
762 | |||
763 | __setup("noapic", ioapic_setup); | ||
764 | |||
765 | static int __init ioapic_pirq_setup(char *str) | 757 | static int __init ioapic_pirq_setup(char *str) |
766 | { | 758 | { |
767 | int i, max; | 759 | int i, max; |
diff --git a/arch/i386/kernel/nmi.c b/arch/i386/kernel/nmi.c index 99beac7f96ce..8c1c965eb2a8 100644 --- a/arch/i386/kernel/nmi.c +++ b/arch/i386/kernel/nmi.c | |||
@@ -77,7 +77,7 @@ static int __init check_nmi_watchdog(void) | |||
77 | unsigned int *prev_nmi_count; | 77 | unsigned int *prev_nmi_count; |
78 | int cpu; | 78 | int cpu; |
79 | 79 | ||
80 | if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DEFAULT)) | 80 | if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DISABLED)) |
81 | return 0; | 81 | return 0; |
82 | 82 | ||
83 | if (!atomic_read(&nmi_active)) | 83 | if (!atomic_read(&nmi_active)) |
@@ -424,7 +424,7 @@ int proc_nmi_enabled(struct ctl_table *table, int write, struct file *file, | |||
424 | if (!!old_state == !!nmi_watchdog_enabled) | 424 | if (!!old_state == !!nmi_watchdog_enabled) |
425 | return 0; | 425 | return 0; |
426 | 426 | ||
427 | if (atomic_read(&nmi_active) < 0) { | 427 | if (atomic_read(&nmi_active) < 0 || nmi_watchdog == NMI_DISABLED) { |
428 | printk( KERN_WARNING "NMI watchdog is permanently disabled\n"); | 428 | printk( KERN_WARNING "NMI watchdog is permanently disabled\n"); |
429 | return -EIO; | 429 | return -EIO; |
430 | } | 430 | } |
diff --git a/arch/i386/kernel/tsc.c b/arch/i386/kernel/tsc.c index debd7dbb4158..a39280b4dd3a 100644 --- a/arch/i386/kernel/tsc.c +++ b/arch/i386/kernel/tsc.c | |||
@@ -292,7 +292,6 @@ static struct clocksource clocksource_tsc = { | |||
292 | 292 | ||
293 | void mark_tsc_unstable(char *reason) | 293 | void mark_tsc_unstable(char *reason) |
294 | { | 294 | { |
295 | sched_clock_unstable_event(); | ||
296 | if (!tsc_unstable) { | 295 | if (!tsc_unstable) { |
297 | tsc_unstable = 1; | 296 | tsc_unstable = 1; |
298 | tsc_enabled = 0; | 297 | tsc_enabled = 0; |
diff --git a/arch/i386/mm/fault.c b/arch/i386/mm/fault.c index 01ffdd4964f0..fcb38e7f3543 100644 --- a/arch/i386/mm/fault.c +++ b/arch/i386/mm/fault.c | |||
@@ -249,9 +249,10 @@ static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address) | |||
249 | pmd_k = pmd_offset(pud_k, address); | 249 | pmd_k = pmd_offset(pud_k, address); |
250 | if (!pmd_present(*pmd_k)) | 250 | if (!pmd_present(*pmd_k)) |
251 | return NULL; | 251 | return NULL; |
252 | if (!pmd_present(*pmd)) | 252 | if (!pmd_present(*pmd)) { |
253 | set_pmd(pmd, *pmd_k); | 253 | set_pmd(pmd, *pmd_k); |
254 | else | 254 | arch_flush_lazy_mmu_mode(); |
255 | } else | ||
255 | BUG_ON(pmd_page(*pmd) != pmd_page(*pmd_k)); | 256 | BUG_ON(pmd_page(*pmd) != pmd_page(*pmd_k)); |
256 | return pmd_k; | 257 | return pmd_k; |
257 | } | 258 | } |
diff --git a/arch/i386/xen/xen-head.S b/arch/i386/xen/xen-head.S index bc71f3bc4014..f8d6937db2ec 100644 --- a/arch/i386/xen/xen-head.S +++ b/arch/i386/xen/xen-head.S | |||
@@ -7,20 +7,20 @@ | |||
7 | #include <asm/boot.h> | 7 | #include <asm/boot.h> |
8 | #include <xen/interface/elfnote.h> | 8 | #include <xen/interface/elfnote.h> |
9 | 9 | ||
10 | .section .init.text | 10 | .pushsection .init.text |
11 | ENTRY(startup_xen) | 11 | ENTRY(startup_xen) |
12 | movl %esi,xen_start_info | 12 | movl %esi,xen_start_info |
13 | cld | 13 | cld |
14 | movl $(init_thread_union+THREAD_SIZE),%esp | 14 | movl $(init_thread_union+THREAD_SIZE),%esp |
15 | jmp xen_start_kernel | 15 | jmp xen_start_kernel |
16 | .popsection | ||
16 | 17 | ||
17 | .pushsection ".bss.page_aligned" | 18 | .pushsection .bss.page_aligned |
18 | .align PAGE_SIZE_asm | 19 | .align PAGE_SIZE_asm |
19 | ENTRY(hypercall_page) | 20 | ENTRY(hypercall_page) |
20 | .skip 0x1000 | 21 | .skip 0x1000 |
21 | .popsection | 22 | .popsection |
22 | 23 | ||
23 | .section .text | ||
24 | ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS, .asciz "linux") | 24 | ELFNOTE(Xen, XEN_ELFNOTE_GUEST_OS, .asciz "linux") |
25 | ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION, .asciz "2.6") | 25 | ELFNOTE(Xen, XEN_ELFNOTE_GUEST_VERSION, .asciz "2.6") |
26 | ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION, .asciz "xen-3.0") | 26 | ELFNOTE(Xen, XEN_ELFNOTE_XEN_VERSION, .asciz "xen-3.0") |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 21aa4fc5f8ef..8c39913d1729 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -327,17 +327,7 @@ config FORCE_CPEI_RETARGET | |||
327 | This option it useful to enable this feature on older BIOS's as well. | 327 | This option it useful to enable this feature on older BIOS's as well. |
328 | You can also enable this by using boot command line option force_cpei=1. | 328 | You can also enable this by using boot command line option force_cpei=1. |
329 | 329 | ||
330 | config PREEMPT | 330 | source "kernel/Kconfig.preempt" |
331 | bool "Preemptible Kernel" | ||
332 | help | ||
333 | This option reduces the latency of the kernel when reacting to | ||
334 | real-time or interactive events by allowing a low priority process to | ||
335 | be preempted even if it is in kernel mode executing a system call. | ||
336 | This allows applications to run more reliably even when the system is | ||
337 | under load. | ||
338 | |||
339 | Say Y here if you are building a kernel for a desktop, embedded | ||
340 | or real-time system. Say N if you are unsure. | ||
341 | 331 | ||
342 | source "mm/Kconfig" | 332 | source "mm/Kconfig" |
343 | 333 | ||
diff --git a/arch/ia64/configs/bigsur_defconfig b/arch/ia64/configs/bigsur_defconfig index 9eb48c0927b0..6dd8655664f3 100644 --- a/arch/ia64/configs/bigsur_defconfig +++ b/arch/ia64/configs/bigsur_defconfig | |||
@@ -42,7 +42,7 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
42 | CONFIG_CC_ALIGN_LABELS=0 | 42 | CONFIG_CC_ALIGN_LABELS=0 |
43 | CONFIG_CC_ALIGN_LOOPS=0 | 43 | CONFIG_CC_ALIGN_LOOPS=0 |
44 | CONFIG_CC_ALIGN_JUMPS=0 | 44 | CONFIG_CC_ALIGN_JUMPS=0 |
45 | CONFIG_SLAB=y | 45 | CONFIG_SLUB=y |
46 | # CONFIG_TINY_SHMEM is not set | 46 | # CONFIG_TINY_SHMEM is not set |
47 | CONFIG_BASE_SMALL=0 | 47 | CONFIG_BASE_SMALL=0 |
48 | # CONFIG_SLOB is not set | 48 | # CONFIG_SLOB is not set |
diff --git a/arch/ia64/configs/gensparse_defconfig b/arch/ia64/configs/gensparse_defconfig index 3a9ed951db08..e86fbd39c795 100644 --- a/arch/ia64/configs/gensparse_defconfig +++ b/arch/ia64/configs/gensparse_defconfig | |||
@@ -43,7 +43,7 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
43 | CONFIG_CC_ALIGN_LABELS=0 | 43 | CONFIG_CC_ALIGN_LABELS=0 |
44 | CONFIG_CC_ALIGN_LOOPS=0 | 44 | CONFIG_CC_ALIGN_LOOPS=0 |
45 | CONFIG_CC_ALIGN_JUMPS=0 | 45 | CONFIG_CC_ALIGN_JUMPS=0 |
46 | CONFIG_SLAB=y | 46 | CONFIG_SLUB=y |
47 | # CONFIG_TINY_SHMEM is not set | 47 | # CONFIG_TINY_SHMEM is not set |
48 | CONFIG_BASE_SMALL=0 | 48 | CONFIG_BASE_SMALL=0 |
49 | # CONFIG_SLOB is not set | 49 | # CONFIG_SLOB is not set |
diff --git a/arch/ia64/configs/sim_defconfig b/arch/ia64/configs/sim_defconfig index c420d9f3df98..546a772f438e 100644 --- a/arch/ia64/configs/sim_defconfig +++ b/arch/ia64/configs/sim_defconfig | |||
@@ -43,7 +43,7 @@ CONFIG_CC_ALIGN_FUNCTIONS=0 | |||
43 | CONFIG_CC_ALIGN_LABELS=0 | 43 | CONFIG_CC_ALIGN_LABELS=0 |
44 | CONFIG_CC_ALIGN_LOOPS=0 | 44 | CONFIG_CC_ALIGN_LOOPS=0 |
45 | CONFIG_CC_ALIGN_JUMPS=0 | 45 | CONFIG_CC_ALIGN_JUMPS=0 |
46 | CONFIG_SLAB=y | 46 | CONFIG_SLUB=y |
47 | # CONFIG_TINY_SHMEM is not set | 47 | # CONFIG_TINY_SHMEM is not set |
48 | CONFIG_BASE_SMALL=0 | 48 | CONFIG_BASE_SMALL=0 |
49 | # CONFIG_SLOB is not set | 49 | # CONFIG_SLOB is not set |
diff --git a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig index 4c9ffc47bc7a..9aecfceeb38c 100644 --- a/arch/ia64/configs/sn2_defconfig +++ b/arch/ia64/configs/sn2_defconfig | |||
@@ -46,7 +46,7 @@ CONFIG_BASE_FULL=y | |||
46 | CONFIG_FUTEX=y | 46 | CONFIG_FUTEX=y |
47 | CONFIG_EPOLL=y | 47 | CONFIG_EPOLL=y |
48 | CONFIG_SHMEM=y | 48 | CONFIG_SHMEM=y |
49 | CONFIG_SLAB=y | 49 | CONFIG_SLUB=y |
50 | CONFIG_VM_EVENT_COUNTERS=y | 50 | CONFIG_VM_EVENT_COUNTERS=y |
51 | CONFIG_RT_MUTEXES=y | 51 | CONFIG_RT_MUTEXES=y |
52 | # CONFIG_TINY_SHMEM is not set | 52 | # CONFIG_TINY_SHMEM is not set |
diff --git a/arch/ia64/configs/tiger_defconfig b/arch/ia64/configs/tiger_defconfig index 3dbb3987df27..797acf9066c1 100644 --- a/arch/ia64/configs/tiger_defconfig +++ b/arch/ia64/configs/tiger_defconfig | |||
@@ -53,7 +53,7 @@ CONFIG_TIMERFD=y | |||
53 | CONFIG_EVENTFD=y | 53 | CONFIG_EVENTFD=y |
54 | CONFIG_SHMEM=y | 54 | CONFIG_SHMEM=y |
55 | CONFIG_VM_EVENT_COUNTERS=y | 55 | CONFIG_VM_EVENT_COUNTERS=y |
56 | CONFIG_SLAB=y | 56 | CONFIG_SLUB=y |
57 | # CONFIG_SLUB is not set | 57 | # CONFIG_SLUB is not set |
58 | # CONFIG_SLOB is not set | 58 | # CONFIG_SLOB is not set |
59 | CONFIG_RT_MUTEXES=y | 59 | CONFIG_RT_MUTEXES=y |
diff --git a/arch/ia64/configs/zx1_defconfig b/arch/ia64/configs/zx1_defconfig index 4a060fc39934..0a06b1333c95 100644 --- a/arch/ia64/configs/zx1_defconfig +++ b/arch/ia64/configs/zx1_defconfig | |||
@@ -48,7 +48,7 @@ CONFIG_BASE_FULL=y | |||
48 | CONFIG_FUTEX=y | 48 | CONFIG_FUTEX=y |
49 | CONFIG_EPOLL=y | 49 | CONFIG_EPOLL=y |
50 | CONFIG_SHMEM=y | 50 | CONFIG_SHMEM=y |
51 | CONFIG_SLAB=y | 51 | CONFIG_SLUB=y |
52 | CONFIG_VM_EVENT_COUNTERS=y | 52 | CONFIG_VM_EVENT_COUNTERS=y |
53 | CONFIG_RT_MUTEXES=y | 53 | CONFIG_RT_MUTEXES=y |
54 | # CONFIG_TINY_SHMEM is not set | 54 | # CONFIG_TINY_SHMEM is not set |
diff --git a/arch/ia64/defconfig b/arch/ia64/defconfig index 03172dc8c403..0210545e7f61 100644 --- a/arch/ia64/defconfig +++ b/arch/ia64/defconfig | |||
@@ -53,8 +53,7 @@ CONFIG_TIMERFD=y | |||
53 | CONFIG_EVENTFD=y | 53 | CONFIG_EVENTFD=y |
54 | CONFIG_SHMEM=y | 54 | CONFIG_SHMEM=y |
55 | CONFIG_VM_EVENT_COUNTERS=y | 55 | CONFIG_VM_EVENT_COUNTERS=y |
56 | CONFIG_SLAB=y | 56 | CONFIG_SLUB=y |
57 | # CONFIG_SLUB is not set | ||
58 | # CONFIG_SLOB is not set | 57 | # CONFIG_SLOB is not set |
59 | CONFIG_RT_MUTEXES=y | 58 | CONFIG_RT_MUTEXES=y |
60 | # CONFIG_TINY_SHMEM is not set | 59 | # CONFIG_TINY_SHMEM is not set |
diff --git a/arch/ia64/hp/sim/boot/boot_head.S b/arch/ia64/hp/sim/boot/boot_head.S index a9bd71ac78e2..8808565491fb 100644 --- a/arch/ia64/hp/sim/boot/boot_head.S +++ b/arch/ia64/hp/sim/boot/boot_head.S | |||
@@ -26,6 +26,7 @@ GLOBAL_ENTRY(_start) | |||
26 | movl sp = stack_mem+16384-16 | 26 | movl sp = stack_mem+16384-16 |
27 | bsw.1 | 27 | bsw.1 |
28 | br.call.sptk.many rp=start_bootloader | 28 | br.call.sptk.many rp=start_bootloader |
29 | 0: nop 0 /* dummy nop to make unwinding work */ | ||
29 | END(_start) | 30 | END(_start) |
30 | 31 | ||
31 | /* | 32 | /* |
diff --git a/arch/ia64/kernel/cpufreq/acpi-cpufreq.c b/arch/ia64/kernel/cpufreq/acpi-cpufreq.c index 15c08d52f09f..8c6ec7070844 100644 --- a/arch/ia64/kernel/cpufreq/acpi-cpufreq.c +++ b/arch/ia64/kernel/cpufreq/acpi-cpufreq.c | |||
@@ -113,10 +113,8 @@ processor_get_freq ( | |||
113 | 113 | ||
114 | saved_mask = current->cpus_allowed; | 114 | saved_mask = current->cpus_allowed; |
115 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); | 115 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); |
116 | if (smp_processor_id() != cpu) { | 116 | if (smp_processor_id() != cpu) |
117 | ret = -EAGAIN; | ||
118 | goto migrate_end; | 117 | goto migrate_end; |
119 | } | ||
120 | 118 | ||
121 | /* processor_get_pstate gets the instantaneous frequency */ | 119 | /* processor_get_pstate gets the instantaneous frequency */ |
122 | ret = processor_get_pstate(&value); | 120 | ret = processor_get_pstate(&value); |
@@ -125,7 +123,7 @@ processor_get_freq ( | |||
125 | set_cpus_allowed(current, saved_mask); | 123 | set_cpus_allowed(current, saved_mask); |
126 | printk(KERN_WARNING "get performance failed with error %d\n", | 124 | printk(KERN_WARNING "get performance failed with error %d\n", |
127 | ret); | 125 | ret); |
128 | ret = -EAGAIN; | 126 | ret = 0; |
129 | goto migrate_end; | 127 | goto migrate_end; |
130 | } | 128 | } |
131 | clock_freq = extract_clock(data, value, cpu); | 129 | clock_freq = extract_clock(data, value, cpu); |
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c index cc3ee4ef37af..44be1c952b7c 100644 --- a/arch/ia64/kernel/irq.c +++ b/arch/ia64/kernel/irq.c | |||
@@ -33,6 +33,11 @@ void ack_bad_irq(unsigned int irq) | |||
33 | } | 33 | } |
34 | 34 | ||
35 | #ifdef CONFIG_IA64_GENERIC | 35 | #ifdef CONFIG_IA64_GENERIC |
36 | ia64_vector __ia64_irq_to_vector(int irq) | ||
37 | { | ||
38 | return irq_cfg[irq].vector; | ||
39 | } | ||
40 | |||
36 | unsigned int __ia64_local_vector_to_irq (ia64_vector vec) | 41 | unsigned int __ia64_local_vector_to_irq (ia64_vector vec) |
37 | { | 42 | { |
38 | return __get_cpu_var(vector_irq)[vec]; | 43 | return __get_cpu_var(vector_irq)[vec]; |
diff --git a/arch/ia64/kernel/mca.c b/arch/ia64/kernel/mca.c index ff28620cb992..63b73f3d4c9f 100644 --- a/arch/ia64/kernel/mca.c +++ b/arch/ia64/kernel/mca.c | |||
@@ -2018,22 +2018,26 @@ ia64_mca_late_init(void) | |||
2018 | 2018 | ||
2019 | if (cpe_vector >= 0) { | 2019 | if (cpe_vector >= 0) { |
2020 | /* If platform supports CPEI, enable the irq. */ | 2020 | /* If platform supports CPEI, enable the irq. */ |
2021 | cpe_poll_enabled = 0; | 2021 | irq = local_vector_to_irq(cpe_vector); |
2022 | for (irq = 0; irq < NR_IRQS; ++irq) | 2022 | if (irq > 0) { |
2023 | if (irq_to_vector(irq) == cpe_vector) { | 2023 | cpe_poll_enabled = 0; |
2024 | desc = irq_desc + irq; | 2024 | desc = irq_desc + irq; |
2025 | desc->status |= IRQ_PER_CPU; | 2025 | desc->status |= IRQ_PER_CPU; |
2026 | setup_irq(irq, &mca_cpe_irqaction); | 2026 | setup_irq(irq, &mca_cpe_irqaction); |
2027 | ia64_cpe_irq = irq; | 2027 | ia64_cpe_irq = irq; |
2028 | } | 2028 | ia64_mca_register_cpev(cpe_vector); |
2029 | ia64_mca_register_cpev(cpe_vector); | 2029 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", |
2030 | IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n", __FUNCTION__); | 2030 | __FUNCTION__); |
2031 | } else { | 2031 | return 0; |
2032 | /* If platform doesn't support CPEI, get the timer going. */ | ||
2033 | if (cpe_poll_enabled) { | ||
2034 | ia64_mca_cpe_poll(0UL); | ||
2035 | IA64_MCA_DEBUG("%s: CPEP setup and enabled.\n", __FUNCTION__); | ||
2036 | } | 2032 | } |
2033 | printk(KERN_ERR "%s: Failed to find irq for CPE " | ||
2034 | "interrupt handler, vector %d\n", | ||
2035 | __FUNCTION__, cpe_vector); | ||
2036 | } | ||
2037 | /* If platform doesn't support CPEI, get the timer going. */ | ||
2038 | if (cpe_poll_enabled) { | ||
2039 | ia64_mca_cpe_poll(0UL); | ||
2040 | IA64_MCA_DEBUG("%s: CPEP setup and enabled.\n", __FUNCTION__); | ||
2037 | } | 2041 | } |
2038 | } | 2042 | } |
2039 | #endif | 2043 | #endif |
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c index 4158906c45aa..c613fc0e91cc 100644 --- a/arch/ia64/kernel/process.c +++ b/arch/ia64/kernel/process.c | |||
@@ -198,9 +198,13 @@ default_idle (void) | |||
198 | { | 198 | { |
199 | local_irq_enable(); | 199 | local_irq_enable(); |
200 | while (!need_resched()) { | 200 | while (!need_resched()) { |
201 | if (can_do_pal_halt) | 201 | if (can_do_pal_halt) { |
202 | safe_halt(); | 202 | local_irq_disable(); |
203 | else | 203 | if (!need_resched()) { |
204 | safe_halt(); | ||
205 | } | ||
206 | local_irq_enable(); | ||
207 | } else | ||
204 | cpu_relax(); | 208 | cpu_relax(); |
205 | } | 209 | } |
206 | } | 210 | } |
diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c index 00f803246948..122444a97897 100644 --- a/arch/ia64/kernel/ptrace.c +++ b/arch/ia64/kernel/ptrace.c | |||
@@ -951,10 +951,14 @@ access_uarea (struct task_struct *child, unsigned long addr, | |||
951 | return 0; | 951 | return 0; |
952 | 952 | ||
953 | case PT_CR_IPSR: | 953 | case PT_CR_IPSR: |
954 | if (write_access) | 954 | if (write_access) { |
955 | pt->cr_ipsr = ((*data & IPSR_MASK) | 955 | unsigned long tmp = *data; |
956 | /* psr.ri==3 is a reserved value: SDM 2:25 */ | ||
957 | if ((tmp & IA64_PSR_RI) == IA64_PSR_RI) | ||
958 | tmp &= ~IA64_PSR_RI; | ||
959 | pt->cr_ipsr = ((tmp & IPSR_MASK) | ||
956 | | (pt->cr_ipsr & ~IPSR_MASK)); | 960 | | (pt->cr_ipsr & ~IPSR_MASK)); |
957 | else | 961 | } else |
958 | *data = (pt->cr_ipsr & IPSR_MASK); | 962 | *data = (pt->cr_ipsr & IPSR_MASK); |
959 | return 0; | 963 | return 0; |
960 | 964 | ||
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index cd9a37a552c3..407efea04bf5 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -389,6 +389,13 @@ early_console_setup (char *cmdline) | |||
389 | if (!efi_setup_pcdp_console(cmdline)) | 389 | if (!efi_setup_pcdp_console(cmdline)) |
390 | earlycons++; | 390 | earlycons++; |
391 | #endif | 391 | #endif |
392 | #ifdef CONFIG_HP_SIMSERIAL_CONSOLE | ||
393 | { | ||
394 | extern struct console hpsim_cons; | ||
395 | register_console(&hpsim_cons); | ||
396 | earlycons++; | ||
397 | } | ||
398 | #endif | ||
392 | 399 | ||
393 | return (earlycons) ? 0 : -1; | 400 | return (earlycons) ? 0 : -1; |
394 | } | 401 | } |
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index 83e80677de70..00232b4357ba 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S | |||
@@ -20,6 +20,8 @@ PHDRS { | |||
20 | code PT_LOAD; | 20 | code PT_LOAD; |
21 | percpu PT_LOAD; | 21 | percpu PT_LOAD; |
22 | data PT_LOAD; | 22 | data PT_LOAD; |
23 | note PT_NOTE; | ||
24 | unwind 0x70000001; /* PT_IA_64_UNWIND, but ld doesn't match the name */ | ||
23 | } | 25 | } |
24 | SECTIONS | 26 | SECTIONS |
25 | { | 27 | { |
@@ -62,6 +64,9 @@ SECTIONS | |||
62 | 64 | ||
63 | /* Read-only data */ | 65 | /* Read-only data */ |
64 | 66 | ||
67 | NOTES :code :note /* put .notes in text and mark in PT_NOTE */ | ||
68 | code_continues : {} :code /* switch back to regular program... */ | ||
69 | |||
65 | /* Exception table */ | 70 | /* Exception table */ |
66 | . = ALIGN(16); | 71 | . = ALIGN(16); |
67 | __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) | 72 | __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) |
@@ -99,7 +104,8 @@ SECTIONS | |||
99 | __start_unwind = .; | 104 | __start_unwind = .; |
100 | *(.IA_64.unwind*) | 105 | *(.IA_64.unwind*) |
101 | __end_unwind = .; | 106 | __end_unwind = .; |
102 | } | 107 | } :code :unwind |
108 | code_continues2 : {} : code | ||
103 | 109 | ||
104 | RODATA | 110 | RODATA |
105 | 111 | ||
@@ -276,10 +282,6 @@ SECTIONS | |||
276 | .debug_typenames 0 : { *(.debug_typenames) } | 282 | .debug_typenames 0 : { *(.debug_typenames) } |
277 | .debug_varnames 0 : { *(.debug_varnames) } | 283 | .debug_varnames 0 : { *(.debug_varnames) } |
278 | /* These must appear regardless of . */ | 284 | /* These must appear regardless of . */ |
279 | /* Discard them for now since Intel SoftSDV cannot handle them. | ||
280 | .comment 0 : { *(.comment) } | ||
281 | .note 0 : { *(.note) } | ||
282 | */ | ||
283 | /DISCARD/ : { *(.comment) } | 285 | /DISCARD/ : { *(.comment) } |
284 | /DISCARD/ : { *(.note) } | 286 | /DISCARD/ : { *(.note) } |
285 | } | 287 | } |
diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c index 73ccb6010c05..9150ffaff9e8 100644 --- a/arch/ia64/mm/fault.c +++ b/arch/ia64/mm/fault.c | |||
@@ -112,11 +112,17 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
112 | down_read(&mm->mmap_sem); | 112 | down_read(&mm->mmap_sem); |
113 | 113 | ||
114 | vma = find_vma_prev(mm, address, &prev_vma); | 114 | vma = find_vma_prev(mm, address, &prev_vma); |
115 | if (!vma) | 115 | if (!vma && !prev_vma ) |
116 | goto bad_area; | 116 | goto bad_area; |
117 | 117 | ||
118 | /* find_vma_prev() returns vma such that address < vma->vm_end or NULL */ | 118 | /* |
119 | if (address < vma->vm_start) | 119 | * find_vma_prev() returns vma such that address < vma->vm_end or NULL |
120 | * | ||
121 | * May find no vma, but could be that the last vm area is the | ||
122 | * register backing store that needs to expand upwards, in | ||
123 | * this case vma will be null, but prev_vma will ne non-null | ||
124 | */ | ||
125 | if (( !vma && prev_vma ) || (address < vma->vm_start) ) | ||
120 | goto check_expansion; | 126 | goto check_expansion; |
121 | 127 | ||
122 | good_area: | 128 | good_area: |
@@ -172,6 +178,8 @@ ia64_do_page_fault (unsigned long address, unsigned long isr, struct pt_regs *re | |||
172 | 178 | ||
173 | check_expansion: | 179 | check_expansion: |
174 | if (!(prev_vma && (prev_vma->vm_flags & VM_GROWSUP) && (address == prev_vma->vm_end))) { | 180 | if (!(prev_vma && (prev_vma->vm_flags & VM_GROWSUP) && (address == prev_vma->vm_end))) { |
181 | if (!vma) | ||
182 | goto bad_area; | ||
175 | if (!(vma->vm_flags & VM_GROWSDOWN)) | 183 | if (!(vma->vm_flags & VM_GROWSDOWN)) |
176 | goto bad_area; | 184 | goto bad_area; |
177 | if (REGION_NUMBER(address) != REGION_NUMBER(vma->vm_start) | 185 | if (REGION_NUMBER(address) != REGION_NUMBER(vma->vm_start) |
diff --git a/arch/ia64/sn/kernel/irq.c b/arch/ia64/sn/kernel/irq.c index 7f6d2360a262..360047389449 100644 --- a/arch/ia64/sn/kernel/irq.c +++ b/arch/ia64/sn/kernel/irq.c | |||
@@ -256,6 +256,13 @@ struct irq_chip irq_type_sn = { | |||
256 | .set_affinity = sn_set_affinity_irq | 256 | .set_affinity = sn_set_affinity_irq |
257 | }; | 257 | }; |
258 | 258 | ||
259 | ia64_vector sn_irq_to_vector(int irq) | ||
260 | { | ||
261 | if (irq >= IA64_NUM_VECTORS) | ||
262 | return 0; | ||
263 | return (ia64_vector)irq; | ||
264 | } | ||
265 | |||
259 | unsigned int sn_local_vector_to_irq(u8 vector) | 266 | unsigned int sn_local_vector_to_irq(u8 vector) |
260 | { | 267 | { |
261 | return (CPU_VECTOR_TO_IRQ(smp_processor_id(), vector)); | 268 | return (CPU_VECTOR_TO_IRQ(smp_processor_id(), vector)); |
@@ -398,7 +405,10 @@ sn_call_force_intr_provider(struct sn_irq_info *sn_irq_info) | |||
398 | struct sn_pcibus_provider *pci_provider; | 405 | struct sn_pcibus_provider *pci_provider; |
399 | 406 | ||
400 | pci_provider = sn_pci_provider[sn_irq_info->irq_bridge_type]; | 407 | pci_provider = sn_pci_provider[sn_irq_info->irq_bridge_type]; |
401 | if (pci_provider && pci_provider->force_interrupt) | 408 | |
409 | /* Don't force an interrupt if the irq has been disabled */ | ||
410 | if (!(irq_desc[sn_irq_info->irq_irq].status & IRQ_DISABLED) && | ||
411 | pci_provider && pci_provider->force_interrupt) | ||
402 | (*pci_provider->force_interrupt)(sn_irq_info); | 412 | (*pci_provider->force_interrupt)(sn_irq_info); |
403 | } | 413 | } |
404 | 414 | ||
diff --git a/arch/m68k/kernel/setup.c b/arch/m68k/kernel/setup.c index 7e6d5fb75390..ed3a4caec620 100644 --- a/arch/m68k/kernel/setup.c +++ b/arch/m68k/kernel/setup.c | |||
@@ -62,7 +62,6 @@ EXPORT_SYMBOL(m68k_num_memory); | |||
62 | int m68k_realnum_memory; | 62 | int m68k_realnum_memory; |
63 | EXPORT_SYMBOL(m68k_realnum_memory); | 63 | EXPORT_SYMBOL(m68k_realnum_memory); |
64 | unsigned long m68k_memoffset; | 64 | unsigned long m68k_memoffset; |
65 | EXPORT_SYMBOL(m68k_memoffset); | ||
66 | struct mem_info m68k_memory[NUM_MEMINFO]; | 65 | struct mem_info m68k_memory[NUM_MEMINFO]; |
67 | EXPORT_SYMBOL(m68k_memory); | 66 | EXPORT_SYMBOL(m68k_memory); |
68 | 67 | ||
@@ -200,7 +199,6 @@ static void __init m68k_parse_bootinfo(const struct bi_record *record) | |||
200 | (m68k_num_memory - 1)); | 199 | (m68k_num_memory - 1)); |
201 | m68k_num_memory = 1; | 200 | m68k_num_memory = 1; |
202 | } | 201 | } |
203 | m68k_memoffset = m68k_memory[0].addr-PAGE_OFFSET; | ||
204 | #endif | 202 | #endif |
205 | } | 203 | } |
206 | 204 | ||
diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds index c42245775a4d..59fe285865ec 100644 --- a/arch/m68k/kernel/vmlinux-std.lds +++ b/arch/m68k/kernel/vmlinux-std.lds | |||
@@ -19,6 +19,8 @@ SECTIONS | |||
19 | *(.gnu.warning) | 19 | *(.gnu.warning) |
20 | } :text = 0x4e75 | 20 | } :text = 0x4e75 |
21 | 21 | ||
22 | _etext = .; /* End of text section */ | ||
23 | |||
22 | . = ALIGN(16); /* Exception table */ | 24 | . = ALIGN(16); /* Exception table */ |
23 | __start___ex_table = .; | 25 | __start___ex_table = .; |
24 | __ex_table : { *(__ex_table) } | 26 | __ex_table : { *(__ex_table) } |
@@ -26,8 +28,6 @@ SECTIONS | |||
26 | 28 | ||
27 | RODATA | 29 | RODATA |
28 | 30 | ||
29 | _etext = .; /* End of text section */ | ||
30 | |||
31 | .data : { /* Data */ | 31 | .data : { /* Data */ |
32 | DATA_DATA | 32 | DATA_DATA |
33 | CONSTRUCTORS | 33 | CONSTRUCTORS |
diff --git a/arch/m68k/mm/motorola.c b/arch/m68k/mm/motorola.c index 7d571a2b44dd..30d34f285024 100644 --- a/arch/m68k/mm/motorola.c +++ b/arch/m68k/mm/motorola.c | |||
@@ -210,11 +210,7 @@ void __init paging_init(void) | |||
210 | int i; | 210 | int i; |
211 | 211 | ||
212 | #ifdef DEBUG | 212 | #ifdef DEBUG |
213 | { | 213 | printk ("start of paging_init (%p, %lx)\n", kernel_pg_dir, availmem); |
214 | extern unsigned long availmem; | ||
215 | printk ("start of paging_init (%p, %lx)\n", | ||
216 | kernel_pg_dir, availmem); | ||
217 | } | ||
218 | #endif | 214 | #endif |
219 | 215 | ||
220 | /* Fix the cache mode in the page descriptors for the 680[46]0. */ | 216 | /* Fix the cache mode in the page descriptors for the 680[46]0. */ |
diff --git a/arch/m68knommu/kernel/process.c b/arch/m68knommu/kernel/process.c index 846f97534685..47502d5ec19f 100644 --- a/arch/m68knommu/kernel/process.c +++ b/arch/m68knommu/kernel/process.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/a.out.h> | 28 | #include <linux/a.out.h> |
29 | #include <linux/interrupt.h> | 29 | #include <linux/interrupt.h> |
30 | #include <linux/reboot.h> | 30 | #include <linux/reboot.h> |
31 | #include <linux/fs.h> | ||
31 | 32 | ||
32 | #include <asm/uaccess.h> | 33 | #include <asm/uaccess.h> |
33 | #include <asm/system.h> | 34 | #include <asm/system.h> |
diff --git a/arch/m68knommu/kernel/sys_m68k.c b/arch/m68knommu/kernel/sys_m68k.c index 48e6b33e8b44..15d62c5279a9 100644 --- a/arch/m68knommu/kernel/sys_m68k.c +++ b/arch/m68knommu/kernel/sys_m68k.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/mman.h> | 18 | #include <linux/mman.h> |
19 | #include <linux/file.h> | 19 | #include <linux/file.h> |
20 | #include <linux/utsname.h> | 20 | #include <linux/utsname.h> |
21 | #include <linux/fs.h> | ||
21 | 22 | ||
22 | #include <asm/setup.h> | 23 | #include <asm/setup.h> |
23 | #include <asm/uaccess.h> | 24 | #include <asm/uaccess.h> |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 3b404b7dfa39..04797b289c21 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -28,7 +28,6 @@ config BASLER_EXCITE | |||
28 | select MIPS_RM9122 | 28 | select MIPS_RM9122 |
29 | select SYS_HAS_CPU_RM9000 | 29 | select SYS_HAS_CPU_RM9000 |
30 | select SYS_SUPPORTS_32BIT_KERNEL | 30 | select SYS_SUPPORTS_32BIT_KERNEL |
31 | select SYS_SUPPORTS_64BIT_KERNEL | ||
32 | select SYS_SUPPORTS_BIG_ENDIAN | 31 | select SYS_SUPPORTS_BIG_ENDIAN |
33 | select SYS_SUPPORTS_KGDB | 32 | select SYS_SUPPORTS_KGDB |
34 | help | 33 | help |
@@ -126,6 +125,7 @@ config LEMOTE_FULONG | |||
126 | select SYS_SUPPORTS_HIGHMEM | 125 | select SYS_SUPPORTS_HIGHMEM |
127 | select SYS_HAS_EARLY_PRINTK | 126 | select SYS_HAS_EARLY_PRINTK |
128 | select GENERIC_HARDIRQS_NO__DO_IRQ | 127 | select GENERIC_HARDIRQS_NO__DO_IRQ |
128 | select GENERIC_ISA_DMA_SUPPORT_BROKEN | ||
129 | select CPU_HAS_WB | 129 | select CPU_HAS_WB |
130 | help | 130 | help |
131 | Lemote Fulong mini-PC board based on the Chinese Loongson-2E CPU and | 131 | Lemote Fulong mini-PC board based on the Chinese Loongson-2E CPU and |
@@ -192,8 +192,7 @@ config MIPS_MALTA | |||
192 | board. | 192 | board. |
193 | 193 | ||
194 | config MIPS_SEAD | 194 | config MIPS_SEAD |
195 | bool "MIPS SEAD board (EXPERIMENTAL)" | 195 | bool "MIPS SEAD board" |
196 | depends on EXPERIMENTAL | ||
197 | select IRQ_CPU | 196 | select IRQ_CPU |
198 | select DMA_NONCOHERENT | 197 | select DMA_NONCOHERENT |
199 | select SYS_HAS_EARLY_PRINTK | 198 | select SYS_HAS_EARLY_PRINTK |
@@ -528,6 +527,7 @@ config TOSHIBA_JMR3927 | |||
528 | select DMA_NONCOHERENT | 527 | select DMA_NONCOHERENT |
529 | select HW_HAS_PCI | 528 | select HW_HAS_PCI |
530 | select MIPS_TX3927 | 529 | select MIPS_TX3927 |
530 | select IRQ_TXX9 | ||
531 | select SWAP_IO_SPACE | 531 | select SWAP_IO_SPACE |
532 | select SYS_HAS_CPU_TX39XX | 532 | select SYS_HAS_CPU_TX39XX |
533 | select SYS_SUPPORTS_32BIT_KERNEL | 533 | select SYS_SUPPORTS_32BIT_KERNEL |
@@ -540,7 +540,9 @@ config TOSHIBA_RBTX4927 | |||
540 | select DMA_NONCOHERENT | 540 | select DMA_NONCOHERENT |
541 | select HAS_TXX9_SERIAL | 541 | select HAS_TXX9_SERIAL |
542 | select HW_HAS_PCI | 542 | select HW_HAS_PCI |
543 | select I8259 | 543 | select IRQ_CPU |
544 | select IRQ_TXX9 | ||
545 | select I8259 if TOSHIBA_FPCIB0 | ||
544 | select SWAP_IO_SPACE | 546 | select SWAP_IO_SPACE |
545 | select SYS_HAS_CPU_TX49XX | 547 | select SYS_HAS_CPU_TX49XX |
546 | select SYS_SUPPORTS_32BIT_KERNEL | 548 | select SYS_SUPPORTS_32BIT_KERNEL |
@@ -555,12 +557,11 @@ config TOSHIBA_RBTX4927 | |||
555 | 557 | ||
556 | config TOSHIBA_RBTX4938 | 558 | config TOSHIBA_RBTX4938 |
557 | bool "Toshiba RBTX4938 board" | 559 | bool "Toshiba RBTX4938 board" |
558 | select HAVE_STD_PC_SERIAL_PORT | ||
559 | select DMA_NONCOHERENT | 560 | select DMA_NONCOHERENT |
560 | select GENERIC_ISA_DMA | ||
561 | select HAS_TXX9_SERIAL | 561 | select HAS_TXX9_SERIAL |
562 | select HW_HAS_PCI | 562 | select HW_HAS_PCI |
563 | select I8259 | 563 | select IRQ_CPU |
564 | select IRQ_TXX9 | ||
564 | select SWAP_IO_SPACE | 565 | select SWAP_IO_SPACE |
565 | select SYS_HAS_CPU_TX49XX | 566 | select SYS_HAS_CPU_TX49XX |
566 | select SYS_SUPPORTS_32BIT_KERNEL | 567 | select SYS_SUPPORTS_32BIT_KERNEL |
@@ -604,7 +605,6 @@ source "arch/mips/sibyte/Kconfig" | |||
604 | source "arch/mips/tx4927/Kconfig" | 605 | source "arch/mips/tx4927/Kconfig" |
605 | source "arch/mips/tx4938/Kconfig" | 606 | source "arch/mips/tx4938/Kconfig" |
606 | source "arch/mips/vr41xx/Kconfig" | 607 | source "arch/mips/vr41xx/Kconfig" |
607 | source "arch/mips/philips/pnx8550/common/Kconfig" | ||
608 | 608 | ||
609 | endmenu | 609 | endmenu |
610 | 610 | ||
@@ -693,9 +693,9 @@ config EARLY_PRINTK | |||
693 | config SYS_HAS_EARLY_PRINTK | 693 | config SYS_HAS_EARLY_PRINTK |
694 | bool | 694 | bool |
695 | 695 | ||
696 | config GENERIC_ISA_DMA | 696 | config HOTPLUG_CPU |
697 | bool | 697 | bool |
698 | select ZONE_DMA | 698 | default n |
699 | 699 | ||
700 | config I8259 | 700 | config I8259 |
701 | bool | 701 | bool |
@@ -712,9 +712,13 @@ config MIPS_DISABLE_OBSOLETE_IDE | |||
712 | config NO_IOPORT | 712 | config NO_IOPORT |
713 | def_bool n | 713 | def_bool n |
714 | 714 | ||
715 | config GENERIC_ISA_DMA | ||
716 | bool | ||
717 | select ZONE_DMA if GENERIC_ISA_DMA_SUPPORT_BROKEN=n | ||
718 | |||
715 | config GENERIC_ISA_DMA_SUPPORT_BROKEN | 719 | config GENERIC_ISA_DMA_SUPPORT_BROKEN |
716 | bool | 720 | bool |
717 | select ZONE_DMA | 721 | select GENERIC_ISA_DMA |
718 | 722 | ||
719 | config GENERIC_GPIO | 723 | config GENERIC_GPIO |
720 | bool | 724 | bool |
@@ -768,6 +772,9 @@ config IRQ_MSP_SLP | |||
768 | config IRQ_MSP_CIC | 772 | config IRQ_MSP_CIC |
769 | bool | 773 | bool |
770 | 774 | ||
775 | config IRQ_TXX9 | ||
776 | bool | ||
777 | |||
771 | config MIPS_BOARDS_GEN | 778 | config MIPS_BOARDS_GEN |
772 | bool | 779 | bool |
773 | 780 | ||
@@ -1427,8 +1434,7 @@ config SB1_PASS_2_1_WORKAROUNDS | |||
1427 | default y | 1434 | default y |
1428 | 1435 | ||
1429 | config 64BIT_PHYS_ADDR | 1436 | config 64BIT_PHYS_ADDR |
1430 | bool "Support for 64-bit physical address space" | 1437 | bool |
1431 | depends on (CPU_R4X00 || CPU_R5000 || CPU_RM7000 || CPU_RM9000 || CPU_R10000 || CPU_SB1 || CPU_MIPS32 || CPU_MIPS64) && 32BIT | ||
1432 | 1438 | ||
1433 | config CPU_HAS_LLSC | 1439 | config CPU_HAS_LLSC |
1434 | bool | 1440 | bool |
diff --git a/arch/mips/au1000/Kconfig b/arch/mips/au1000/Kconfig index abea88098253..29c95d97217d 100644 --- a/arch/mips/au1000/Kconfig +++ b/arch/mips/au1000/Kconfig | |||
@@ -136,6 +136,7 @@ config SOC_AU1200 | |||
136 | 136 | ||
137 | config SOC_AU1X00 | 137 | config SOC_AU1X00 |
138 | bool | 138 | bool |
139 | select 64BIT_PHYS_ADDR | ||
139 | select SYS_HAS_CPU_MIPS32_R1 | 140 | select SYS_HAS_CPU_MIPS32_R1 |
140 | select SYS_SUPPORTS_32BIT_KERNEL | 141 | select SYS_SUPPORTS_32BIT_KERNEL |
141 | select SYS_SUPPORTS_APM_EMULATION | 142 | select SYS_SUPPORTS_APM_EMULATION |
diff --git a/arch/mips/au1000/common/gpio.c b/arch/mips/au1000/common/gpio.c index 7abe42099439..8527856aec45 100644 --- a/arch/mips/au1000/common/gpio.c +++ b/arch/mips/au1000/common/gpio.c | |||
@@ -131,12 +131,12 @@ int au1xxx_gpio_direction_input(unsigned gpio) | |||
131 | { | 131 | { |
132 | if (gpio >= AU1XXX_GPIO_BASE) | 132 | if (gpio >= AU1XXX_GPIO_BASE) |
133 | #if defined(CONFIG_SOC_AU1000) | 133 | #if defined(CONFIG_SOC_AU1000) |
134 | ; | 134 | return -ENODEV; |
135 | #else | 135 | #else |
136 | return au1xxx_gpio2_direction_input(gpio); | 136 | return au1xxx_gpio2_direction_input(gpio); |
137 | #endif | 137 | #endif |
138 | else | 138 | |
139 | return au1xxx_gpio1_direction_input(gpio); | 139 | return au1xxx_gpio1_direction_input(gpio); |
140 | } | 140 | } |
141 | 141 | ||
142 | EXPORT_SYMBOL(au1xxx_gpio_direction_input); | 142 | EXPORT_SYMBOL(au1xxx_gpio_direction_input); |
@@ -145,12 +145,12 @@ int au1xxx_gpio_direction_output(unsigned gpio, int value) | |||
145 | { | 145 | { |
146 | if (gpio >= AU1XXX_GPIO_BASE) | 146 | if (gpio >= AU1XXX_GPIO_BASE) |
147 | #if defined(CONFIG_SOC_AU1000) | 147 | #if defined(CONFIG_SOC_AU1000) |
148 | ; | 148 | return -ENODEV; |
149 | #else | 149 | #else |
150 | return au1xxx_gpio2_direction_output(gpio, value); | 150 | return au1xxx_gpio2_direction_output(gpio, value); |
151 | #endif | 151 | #endif |
152 | else | 152 | |
153 | return au1xxx_gpio1_direction_output(gpio, value); | 153 | return au1xxx_gpio1_direction_output(gpio, value); |
154 | } | 154 | } |
155 | 155 | ||
156 | EXPORT_SYMBOL(au1xxx_gpio_direction_output); | 156 | EXPORT_SYMBOL(au1xxx_gpio_direction_output); |
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig index 67a80f4c7d87..700a3a2d688e 100644 --- a/arch/mips/configs/bigsur_defconfig +++ b/arch/mips/configs/bigsur_defconfig | |||
@@ -663,8 +663,8 @@ CONFIG_MOXA_SMARTIO_NEW=m | |||
663 | # CONFIG_SX is not set | 663 | # CONFIG_SX is not set |
664 | # CONFIG_RIO is not set | 664 | # CONFIG_RIO is not set |
665 | # CONFIG_STALDRV is not set | 665 | # CONFIG_STALDRV is not set |
666 | CONFIG_SIBYTE_SB1250_DUART=y | 666 | CONFIG_SERIAL_SB1250_DUART=y |
667 | CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y | 667 | CONFIG_SERIAL_SB1250_DUART_CONSOLE=y |
668 | 668 | ||
669 | # | 669 | # |
670 | # Serial drivers | 670 | # Serial drivers |
diff --git a/arch/mips/configs/capcella_defconfig b/arch/mips/configs/capcella_defconfig index 4dc3197e2e9f..8ecbbb226c76 100644 --- a/arch/mips/configs/capcella_defconfig +++ b/arch/mips/configs/capcella_defconfig | |||
@@ -1,60 +1,47 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.20 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Tue Feb 20 21:47:22 2007 | 4 | # Wed Aug 8 10:23:16 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 13 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
30 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
31 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 21 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 22 | CONFIG_MACH_VR41XX=y |
36 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
38 | CONFIG_MACH_VR41XX=y | 25 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
43 | # CONFIG_SGI_IP27 is not set | 29 | # CONFIG_SGI_IP27 is not set |
44 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
55 | # CONFIG_TOSHIBA_JMR3927 is not set | 41 | # CONFIG_TOSHIBA_JMR3927 is not set |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 42 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 43 | # CONFIG_TOSHIBA_RBTX4938 is not set |
44 | # CONFIG_WR_PPMC is not set | ||
58 | # CONFIG_CASIO_E55 is not set | 45 | # CONFIG_CASIO_E55 is not set |
59 | # CONFIG_IBM_WORKPAD is not set | 46 | # CONFIG_IBM_WORKPAD is not set |
60 | # CONFIG_NEC_CMBVR4133 is not set | 47 | # CONFIG_NEC_CMBVR4133 is not set |
@@ -73,6 +60,8 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
73 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 60 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
74 | CONFIG_DMA_NONCOHERENT=y | 61 | CONFIG_DMA_NONCOHERENT=y |
75 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 62 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
63 | # CONFIG_HOTPLUG_CPU is not set | ||
64 | # CONFIG_NO_IOPORT is not set | ||
76 | # CONFIG_CPU_BIG_ENDIAN is not set | 65 | # CONFIG_CPU_BIG_ENDIAN is not set |
77 | CONFIG_CPU_LITTLE_ENDIAN=y | 66 | CONFIG_CPU_LITTLE_ENDIAN=y |
78 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 67 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
@@ -82,6 +71,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
82 | # | 71 | # |
83 | # CPU selection | 72 | # CPU selection |
84 | # | 73 | # |
74 | # CONFIG_CPU_LOONGSON2 is not set | ||
85 | # CONFIG_CPU_MIPS32_R1 is not set | 75 | # CONFIG_CPU_MIPS32_R1 is not set |
86 | # CONFIG_CPU_MIPS32_R2 is not set | 76 | # CONFIG_CPU_MIPS32_R2 is not set |
87 | # CONFIG_CPU_MIPS64_R1 is not set | 77 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -103,7 +93,6 @@ CONFIG_CPU_VR41XX=y | |||
103 | # CONFIG_CPU_SB1 is not set | 93 | # CONFIG_CPU_SB1 is not set |
104 | CONFIG_SYS_HAS_CPU_VR41XX=y | 94 | CONFIG_SYS_HAS_CPU_VR41XX=y |
105 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | 95 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y |
106 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
107 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | 96 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y |
108 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | 97 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y |
109 | 98 | ||
@@ -119,7 +108,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
119 | CONFIG_MIPS_MT_DISABLED=y | 108 | CONFIG_MIPS_MT_DISABLED=y |
120 | # CONFIG_MIPS_MT_SMP is not set | 109 | # CONFIG_MIPS_MT_SMP is not set |
121 | # CONFIG_MIPS_MT_SMTC is not set | 110 | # CONFIG_MIPS_MT_SMTC is not set |
122 | # CONFIG_MIPS_VPE_LOADER is not set | ||
123 | CONFIG_CPU_HAS_SYNC=y | 111 | CONFIG_CPU_HAS_SYNC=y |
124 | CONFIG_GENERIC_HARDIRQS=y | 112 | CONFIG_GENERIC_HARDIRQS=y |
125 | CONFIG_GENERIC_IRQ_PROBE=y | 113 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -133,48 +121,47 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
133 | # CONFIG_SPARSEMEM_STATIC is not set | 121 | # CONFIG_SPARSEMEM_STATIC is not set |
134 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 122 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
135 | # CONFIG_RESOURCES_64BIT is not set | 123 | # CONFIG_RESOURCES_64BIT is not set |
136 | CONFIG_ZONE_DMA_FLAG=1 | 124 | CONFIG_ZONE_DMA_FLAG=0 |
125 | CONFIG_VIRT_TO_BUS=y | ||
137 | # CONFIG_HZ_48 is not set | 126 | # CONFIG_HZ_48 is not set |
138 | # CONFIG_HZ_100 is not set | 127 | # CONFIG_HZ_100 is not set |
139 | # CONFIG_HZ_128 is not set | 128 | # CONFIG_HZ_128 is not set |
140 | # CONFIG_HZ_250 is not set | 129 | CONFIG_HZ_250=y |
141 | # CONFIG_HZ_256 is not set | 130 | # CONFIG_HZ_256 is not set |
142 | CONFIG_HZ_1000=y | 131 | # CONFIG_HZ_1000 is not set |
143 | # CONFIG_HZ_1024 is not set | 132 | # CONFIG_HZ_1024 is not set |
144 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | 133 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y |
145 | CONFIG_HZ=1000 | 134 | CONFIG_HZ=250 |
146 | CONFIG_PREEMPT_NONE=y | 135 | CONFIG_PREEMPT_NONE=y |
147 | # CONFIG_PREEMPT_VOLUNTARY is not set | 136 | # CONFIG_PREEMPT_VOLUNTARY is not set |
148 | # CONFIG_PREEMPT is not set | 137 | # CONFIG_PREEMPT is not set |
149 | # CONFIG_KEXEC is not set | 138 | # CONFIG_KEXEC is not set |
139 | CONFIG_SECCOMP=y | ||
150 | CONFIG_LOCKDEP_SUPPORT=y | 140 | CONFIG_LOCKDEP_SUPPORT=y |
151 | CONFIG_STACKTRACE_SUPPORT=y | 141 | CONFIG_STACKTRACE_SUPPORT=y |
152 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 142 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
153 | 143 | ||
154 | # | 144 | # |
155 | # Code maturity level options | 145 | # General setup |
156 | # | 146 | # |
157 | CONFIG_EXPERIMENTAL=y | 147 | CONFIG_EXPERIMENTAL=y |
158 | CONFIG_BROKEN_ON_SMP=y | 148 | CONFIG_BROKEN_ON_SMP=y |
159 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 149 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
160 | |||
161 | # | ||
162 | # General setup | ||
163 | # | ||
164 | CONFIG_LOCALVERSION="" | 150 | CONFIG_LOCALVERSION="" |
165 | CONFIG_LOCALVERSION_AUTO=y | 151 | CONFIG_LOCALVERSION_AUTO=y |
166 | CONFIG_SWAP=y | 152 | CONFIG_SWAP=y |
167 | CONFIG_SYSVIPC=y | 153 | CONFIG_SYSVIPC=y |
168 | # CONFIG_IPC_NS is not set | ||
169 | CONFIG_SYSVIPC_SYSCTL=y | 154 | CONFIG_SYSVIPC_SYSCTL=y |
170 | # CONFIG_POSIX_MQUEUE is not set | 155 | # CONFIG_POSIX_MQUEUE is not set |
171 | # CONFIG_BSD_PROCESS_ACCT is not set | 156 | # CONFIG_BSD_PROCESS_ACCT is not set |
172 | # CONFIG_TASKSTATS is not set | 157 | # CONFIG_TASKSTATS is not set |
173 | # CONFIG_UTS_NS is not set | 158 | # CONFIG_USER_NS is not set |
174 | # CONFIG_AUDIT is not set | 159 | # CONFIG_AUDIT is not set |
175 | # CONFIG_IKCONFIG is not set | 160 | # CONFIG_IKCONFIG is not set |
161 | CONFIG_LOG_BUF_SHIFT=14 | ||
176 | CONFIG_SYSFS_DEPRECATED=y | 162 | CONFIG_SYSFS_DEPRECATED=y |
177 | # CONFIG_RELAY is not set | 163 | # CONFIG_RELAY is not set |
164 | # CONFIG_BLK_DEV_INITRD is not set | ||
178 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 165 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
179 | CONFIG_SYSCTL=y | 166 | CONFIG_SYSCTL=y |
180 | CONFIG_EMBEDDED=y | 167 | CONFIG_EMBEDDED=y |
@@ -187,32 +174,30 @@ CONFIG_BUG=y | |||
187 | CONFIG_ELF_CORE=y | 174 | CONFIG_ELF_CORE=y |
188 | CONFIG_BASE_FULL=y | 175 | CONFIG_BASE_FULL=y |
189 | CONFIG_FUTEX=y | 176 | CONFIG_FUTEX=y |
177 | CONFIG_ANON_INODES=y | ||
190 | CONFIG_EPOLL=y | 178 | CONFIG_EPOLL=y |
179 | CONFIG_SIGNALFD=y | ||
180 | CONFIG_TIMERFD=y | ||
181 | CONFIG_EVENTFD=y | ||
191 | CONFIG_SHMEM=y | 182 | CONFIG_SHMEM=y |
192 | CONFIG_SLAB=y | ||
193 | CONFIG_VM_EVENT_COUNTERS=y | 183 | CONFIG_VM_EVENT_COUNTERS=y |
184 | CONFIG_SLAB=y | ||
185 | # CONFIG_SLUB is not set | ||
186 | # CONFIG_SLOB is not set | ||
194 | CONFIG_RT_MUTEXES=y | 187 | CONFIG_RT_MUTEXES=y |
195 | # CONFIG_TINY_SHMEM is not set | 188 | # CONFIG_TINY_SHMEM is not set |
196 | CONFIG_BASE_SMALL=0 | 189 | CONFIG_BASE_SMALL=0 |
197 | # CONFIG_SLOB is not set | ||
198 | |||
199 | # | ||
200 | # Loadable module support | ||
201 | # | ||
202 | CONFIG_MODULES=y | 190 | CONFIG_MODULES=y |
203 | CONFIG_MODULE_UNLOAD=y | 191 | CONFIG_MODULE_UNLOAD=y |
204 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 192 | CONFIG_MODULE_FORCE_UNLOAD=y |
205 | CONFIG_MODVERSIONS=y | 193 | CONFIG_MODVERSIONS=y |
206 | CONFIG_MODULE_SRCVERSION_ALL=y | 194 | CONFIG_MODULE_SRCVERSION_ALL=y |
207 | CONFIG_KMOD=y | 195 | CONFIG_KMOD=y |
208 | |||
209 | # | ||
210 | # Block layer | ||
211 | # | ||
212 | CONFIG_BLOCK=y | 196 | CONFIG_BLOCK=y |
213 | # CONFIG_LBD is not set | 197 | # CONFIG_LBD is not set |
214 | # CONFIG_BLK_DEV_IO_TRACE is not set | 198 | # CONFIG_BLK_DEV_IO_TRACE is not set |
215 | # CONFIG_LSF is not set | 199 | # CONFIG_LSF is not set |
200 | # CONFIG_BLK_DEV_BSG is not set | ||
216 | 201 | ||
217 | # | 202 | # |
218 | # IO Schedulers | 203 | # IO Schedulers |
@@ -232,16 +217,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
232 | # | 217 | # |
233 | CONFIG_HW_HAS_PCI=y | 218 | CONFIG_HW_HAS_PCI=y |
234 | CONFIG_PCI=y | 219 | CONFIG_PCI=y |
220 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
235 | CONFIG_MMU=y | 221 | CONFIG_MMU=y |
236 | 222 | ||
237 | # | 223 | # |
238 | # PCCARD (PCMCIA/CardBus) support | 224 | # PCCARD (PCMCIA/CardBus) support |
239 | # | 225 | # |
240 | # CONFIG_PCCARD is not set | 226 | # CONFIG_PCCARD is not set |
241 | |||
242 | # | ||
243 | # PCI Hotplug Support | ||
244 | # | ||
245 | # CONFIG_HOTPLUG_PCI is not set | 227 | # CONFIG_HOTPLUG_PCI is not set |
246 | 228 | ||
247 | # | 229 | # |
@@ -254,10 +236,7 @@ CONFIG_TRAD_SIGNALS=y | |||
254 | # | 236 | # |
255 | # Power management options | 237 | # Power management options |
256 | # | 238 | # |
257 | CONFIG_PM=y | 239 | # CONFIG_PM is not set |
258 | # CONFIG_PM_LEGACY is not set | ||
259 | # CONFIG_PM_DEBUG is not set | ||
260 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
261 | 240 | ||
262 | # | 241 | # |
263 | # Networking | 242 | # Networking |
@@ -267,7 +246,6 @@ CONFIG_NET=y | |||
267 | # | 246 | # |
268 | # Networking options | 247 | # Networking options |
269 | # | 248 | # |
270 | # CONFIG_NETDEBUG is not set | ||
271 | CONFIG_PACKET=y | 249 | CONFIG_PACKET=y |
272 | CONFIG_PACKET_MMAP=y | 250 | CONFIG_PACKET_MMAP=y |
273 | CONFIG_UNIX=y | 251 | CONFIG_UNIX=y |
@@ -309,20 +287,13 @@ CONFIG_TCP_MD5SIG=y | |||
309 | # CONFIG_INET6_TUNNEL is not set | 287 | # CONFIG_INET6_TUNNEL is not set |
310 | CONFIG_NETWORK_SECMARK=y | 288 | CONFIG_NETWORK_SECMARK=y |
311 | # CONFIG_NETFILTER is not set | 289 | # CONFIG_NETFILTER is not set |
312 | |||
313 | # | ||
314 | # DCCP Configuration (EXPERIMENTAL) | ||
315 | # | ||
316 | # CONFIG_IP_DCCP is not set | 290 | # CONFIG_IP_DCCP is not set |
317 | 291 | CONFIG_IP_SCTP=m | |
318 | # | 292 | # CONFIG_SCTP_DBG_MSG is not set |
319 | # SCTP Configuration (EXPERIMENTAL) | 293 | # CONFIG_SCTP_DBG_OBJCNT is not set |
320 | # | 294 | # CONFIG_SCTP_HMAC_NONE is not set |
321 | # CONFIG_IP_SCTP is not set | 295 | # CONFIG_SCTP_HMAC_SHA1 is not set |
322 | 296 | CONFIG_SCTP_HMAC_MD5=y | |
323 | # | ||
324 | # TIPC Configuration (EXPERIMENTAL) | ||
325 | # | ||
326 | # CONFIG_TIPC is not set | 297 | # CONFIG_TIPC is not set |
327 | # CONFIG_ATM is not set | 298 | # CONFIG_ATM is not set |
328 | # CONFIG_BRIDGE is not set | 299 | # CONFIG_BRIDGE is not set |
@@ -348,7 +319,17 @@ CONFIG_NETWORK_SECMARK=y | |||
348 | # CONFIG_HAMRADIO is not set | 319 | # CONFIG_HAMRADIO is not set |
349 | # CONFIG_IRDA is not set | 320 | # CONFIG_IRDA is not set |
350 | # CONFIG_BT is not set | 321 | # CONFIG_BT is not set |
322 | # CONFIG_AF_RXRPC is not set | ||
323 | |||
324 | # | ||
325 | # Wireless | ||
326 | # | ||
327 | # CONFIG_CFG80211 is not set | ||
328 | # CONFIG_WIRELESS_EXT is not set | ||
329 | # CONFIG_MAC80211 is not set | ||
351 | # CONFIG_IEEE80211 is not set | 330 | # CONFIG_IEEE80211 is not set |
331 | # CONFIG_RFKILL is not set | ||
332 | # CONFIG_NET_9P is not set | ||
352 | 333 | ||
353 | # | 334 | # |
354 | # Device Drivers | 335 | # Device Drivers |
@@ -361,30 +342,10 @@ CONFIG_STANDALONE=y | |||
361 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 342 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
362 | CONFIG_FW_LOADER=m | 343 | CONFIG_FW_LOADER=m |
363 | # CONFIG_SYS_HYPERVISOR is not set | 344 | # CONFIG_SYS_HYPERVISOR is not set |
364 | 345 | # CONFIG_CONNECTOR is not set | |
365 | # | ||
366 | # Connector - unified userspace <-> kernelspace linker | ||
367 | # | ||
368 | CONFIG_CONNECTOR=m | ||
369 | |||
370 | # | ||
371 | # Memory Technology Devices (MTD) | ||
372 | # | ||
373 | # CONFIG_MTD is not set | 346 | # CONFIG_MTD is not set |
374 | |||
375 | # | ||
376 | # Parallel port support | ||
377 | # | ||
378 | # CONFIG_PARPORT is not set | 347 | # CONFIG_PARPORT is not set |
379 | 348 | CONFIG_BLK_DEV=y | |
380 | # | ||
381 | # Plug and Play support | ||
382 | # | ||
383 | # CONFIG_PNPACPI is not set | ||
384 | |||
385 | # | ||
386 | # Block devices | ||
387 | # | ||
388 | # CONFIG_BLK_CPQ_DA is not set | 349 | # CONFIG_BLK_CPQ_DA is not set |
389 | # CONFIG_BLK_CPQ_CISS_DA is not set | 350 | # CONFIG_BLK_CPQ_CISS_DA is not set |
390 | # CONFIG_BLK_DEV_DAC960 is not set | 351 | # CONFIG_BLK_DEV_DAC960 is not set |
@@ -397,19 +358,9 @@ CONFIG_BLK_DEV_RAM=y | |||
397 | CONFIG_BLK_DEV_RAM_COUNT=16 | 358 | CONFIG_BLK_DEV_RAM_COUNT=16 |
398 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 359 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
399 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 360 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
400 | # CONFIG_BLK_DEV_INITRD is not set | ||
401 | # CONFIG_CDROM_PKTCDVD is not set | 361 | # CONFIG_CDROM_PKTCDVD is not set |
402 | # CONFIG_ATA_OVER_ETH is not set | 362 | # CONFIG_ATA_OVER_ETH is not set |
403 | 363 | # CONFIG_MISC_DEVICES is not set | |
404 | # | ||
405 | # Misc devices | ||
406 | # | ||
407 | CONFIG_SGI_IOC4=m | ||
408 | # CONFIG_TIFM_CORE is not set | ||
409 | |||
410 | # | ||
411 | # ATA/ATAPI/MFM/RLL support | ||
412 | # | ||
413 | CONFIG_IDE=y | 364 | CONFIG_IDE=y |
414 | CONFIG_IDE_MAX_HWIFS=4 | 365 | CONFIG_IDE_MAX_HWIFS=4 |
415 | CONFIG_BLK_DEV_IDE=y | 366 | CONFIG_BLK_DEV_IDE=y |
@@ -424,15 +375,16 @@ CONFIG_BLK_DEV_IDEDISK=y | |||
424 | # CONFIG_BLK_DEV_IDETAPE is not set | 375 | # CONFIG_BLK_DEV_IDETAPE is not set |
425 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 376 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
426 | # CONFIG_IDE_TASK_IOCTL is not set | 377 | # CONFIG_IDE_TASK_IOCTL is not set |
378 | CONFIG_IDE_PROC_FS=y | ||
427 | 379 | ||
428 | # | 380 | # |
429 | # IDE chipset support/bugfixes | 381 | # IDE chipset support/bugfixes |
430 | # | 382 | # |
431 | CONFIG_IDE_GENERIC=y | 383 | CONFIG_IDE_GENERIC=y |
432 | # CONFIG_BLK_DEV_IDEPCI is not set | 384 | # CONFIG_BLK_DEV_IDEPCI is not set |
385 | # CONFIG_IDEPCI_PCIBUS_ORDER is not set | ||
433 | # CONFIG_IDE_ARM is not set | 386 | # CONFIG_IDE_ARM is not set |
434 | # CONFIG_BLK_DEV_IDEDMA is not set | 387 | # CONFIG_BLK_DEV_IDEDMA is not set |
435 | # CONFIG_IDEDMA_AUTO is not set | ||
436 | # CONFIG_BLK_DEV_HD is not set | 388 | # CONFIG_BLK_DEV_HD is not set |
437 | 389 | ||
438 | # | 390 | # |
@@ -440,16 +392,9 @@ CONFIG_IDE_GENERIC=y | |||
440 | # | 392 | # |
441 | # CONFIG_RAID_ATTRS is not set | 393 | # CONFIG_RAID_ATTRS is not set |
442 | # CONFIG_SCSI is not set | 394 | # CONFIG_SCSI is not set |
395 | # CONFIG_SCSI_DMA is not set | ||
443 | # CONFIG_SCSI_NETLINK is not set | 396 | # CONFIG_SCSI_NETLINK is not set |
444 | |||
445 | # | ||
446 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
447 | # | ||
448 | # CONFIG_ATA is not set | 397 | # CONFIG_ATA is not set |
449 | |||
450 | # | ||
451 | # Multi-device support (RAID and LVM) | ||
452 | # | ||
453 | # CONFIG_MD is not set | 398 | # CONFIG_MD is not set |
454 | 399 | ||
455 | # | 400 | # |
@@ -460,30 +405,17 @@ CONFIG_IDE_GENERIC=y | |||
460 | # | 405 | # |
461 | # IEEE 1394 (FireWire) support | 406 | # IEEE 1394 (FireWire) support |
462 | # | 407 | # |
408 | # CONFIG_FIREWIRE is not set | ||
463 | # CONFIG_IEEE1394 is not set | 409 | # CONFIG_IEEE1394 is not set |
464 | |||
465 | # | ||
466 | # I2O device support | ||
467 | # | ||
468 | # CONFIG_I2O is not set | 410 | # CONFIG_I2O is not set |
469 | |||
470 | # | ||
471 | # Network device support | ||
472 | # | ||
473 | CONFIG_NETDEVICES=y | 411 | CONFIG_NETDEVICES=y |
412 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
474 | # CONFIG_DUMMY is not set | 413 | # CONFIG_DUMMY is not set |
475 | # CONFIG_BONDING is not set | 414 | # CONFIG_BONDING is not set |
415 | # CONFIG_MACVLAN is not set | ||
476 | # CONFIG_EQUALIZER is not set | 416 | # CONFIG_EQUALIZER is not set |
477 | # CONFIG_TUN is not set | 417 | # CONFIG_TUN is not set |
478 | |||
479 | # | ||
480 | # ARCnet devices | ||
481 | # | ||
482 | # CONFIG_ARCNET is not set | 418 | # CONFIG_ARCNET is not set |
483 | |||
484 | # | ||
485 | # PHY device support | ||
486 | # | ||
487 | CONFIG_PHYLIB=m | 419 | CONFIG_PHYLIB=m |
488 | 420 | ||
489 | # | 421 | # |
@@ -497,22 +429,16 @@ CONFIG_CICADA_PHY=m | |||
497 | CONFIG_VITESSE_PHY=m | 429 | CONFIG_VITESSE_PHY=m |
498 | CONFIG_SMSC_PHY=m | 430 | CONFIG_SMSC_PHY=m |
499 | # CONFIG_BROADCOM_PHY is not set | 431 | # CONFIG_BROADCOM_PHY is not set |
432 | # CONFIG_ICPLUS_PHY is not set | ||
500 | # CONFIG_FIXED_PHY is not set | 433 | # CONFIG_FIXED_PHY is not set |
501 | |||
502 | # | ||
503 | # Ethernet (10 or 100Mbit) | ||
504 | # | ||
505 | CONFIG_NET_ETHERNET=y | 434 | CONFIG_NET_ETHERNET=y |
506 | CONFIG_MII=y | 435 | CONFIG_MII=y |
436 | # CONFIG_AX88796 is not set | ||
507 | # CONFIG_HAPPYMEAL is not set | 437 | # CONFIG_HAPPYMEAL is not set |
508 | # CONFIG_SUNGEM is not set | 438 | # CONFIG_SUNGEM is not set |
509 | # CONFIG_CASSINI is not set | 439 | # CONFIG_CASSINI is not set |
510 | # CONFIG_NET_VENDOR_3COM is not set | 440 | # CONFIG_NET_VENDOR_3COM is not set |
511 | # CONFIG_DM9000 is not set | 441 | # CONFIG_DM9000 is not set |
512 | |||
513 | # | ||
514 | # Tulip family network device support | ||
515 | # | ||
516 | # CONFIG_NET_TULIP is not set | 442 | # CONFIG_NET_TULIP is not set |
517 | # CONFIG_HP100 is not set | 443 | # CONFIG_HP100 is not set |
518 | CONFIG_NET_PCI=y | 444 | CONFIG_NET_PCI=y |
@@ -521,6 +447,7 @@ CONFIG_NET_PCI=y | |||
521 | # CONFIG_ADAPTEC_STARFIRE is not set | 447 | # CONFIG_ADAPTEC_STARFIRE is not set |
522 | # CONFIG_B44 is not set | 448 | # CONFIG_B44 is not set |
523 | # CONFIG_FORCEDETH is not set | 449 | # CONFIG_FORCEDETH is not set |
450 | # CONFIG_TC35815 is not set | ||
524 | # CONFIG_DGRS is not set | 451 | # CONFIG_DGRS is not set |
525 | # CONFIG_EEPRO100 is not set | 452 | # CONFIG_EEPRO100 is not set |
526 | # CONFIG_E100 is not set | 453 | # CONFIG_E100 is not set |
@@ -539,50 +466,15 @@ CONFIG_8139TOO_PIO=y | |||
539 | # CONFIG_TLAN is not set | 466 | # CONFIG_TLAN is not set |
540 | # CONFIG_VIA_RHINE is not set | 467 | # CONFIG_VIA_RHINE is not set |
541 | # CONFIG_SC92031 is not set | 468 | # CONFIG_SC92031 is not set |
542 | 469 | # CONFIG_NETDEV_1000 is not set | |
543 | # | 470 | # CONFIG_NETDEV_10000 is not set |
544 | # Ethernet (1000 Mbit) | ||
545 | # | ||
546 | # CONFIG_ACENIC is not set | ||
547 | # CONFIG_DL2K is not set | ||
548 | # CONFIG_E1000 is not set | ||
549 | # CONFIG_NS83820 is not set | ||
550 | # CONFIG_HAMACHI is not set | ||
551 | # CONFIG_YELLOWFIN is not set | ||
552 | # CONFIG_R8169 is not set | ||
553 | # CONFIG_SIS190 is not set | ||
554 | # CONFIG_SKGE is not set | ||
555 | # CONFIG_SKY2 is not set | ||
556 | # CONFIG_SK98LIN is not set | ||
557 | # CONFIG_VIA_VELOCITY is not set | ||
558 | # CONFIG_TIGON3 is not set | ||
559 | # CONFIG_BNX2 is not set | ||
560 | CONFIG_QLA3XXX=m | ||
561 | # CONFIG_ATL1 is not set | ||
562 | |||
563 | # | ||
564 | # Ethernet (10000 Mbit) | ||
565 | # | ||
566 | # CONFIG_CHELSIO_T1 is not set | ||
567 | CONFIG_CHELSIO_T3=m | ||
568 | # CONFIG_IXGB is not set | ||
569 | # CONFIG_S2IO is not set | ||
570 | # CONFIG_MYRI10GE is not set | ||
571 | CONFIG_NETXEN_NIC=m | ||
572 | |||
573 | # | ||
574 | # Token Ring devices | ||
575 | # | ||
576 | # CONFIG_TR is not set | 471 | # CONFIG_TR is not set |
577 | 472 | ||
578 | # | 473 | # |
579 | # Wireless LAN (non-hamradio) | 474 | # Wireless LAN |
580 | # | ||
581 | # CONFIG_NET_RADIO is not set | ||
582 | |||
583 | # | ||
584 | # Wan interfaces | ||
585 | # | 475 | # |
476 | # CONFIG_WLAN_PRE80211 is not set | ||
477 | # CONFIG_WLAN_80211 is not set | ||
586 | # CONFIG_WAN is not set | 478 | # CONFIG_WAN is not set |
587 | # CONFIG_FDDI is not set | 479 | # CONFIG_FDDI is not set |
588 | # CONFIG_HIPPI is not set | 480 | # CONFIG_HIPPI is not set |
@@ -592,15 +484,7 @@ CONFIG_NETXEN_NIC=m | |||
592 | # CONFIG_NETCONSOLE is not set | 484 | # CONFIG_NETCONSOLE is not set |
593 | # CONFIG_NETPOLL is not set | 485 | # CONFIG_NETPOLL is not set |
594 | # CONFIG_NET_POLL_CONTROLLER is not set | 486 | # CONFIG_NET_POLL_CONTROLLER is not set |
595 | |||
596 | # | ||
597 | # ISDN subsystem | ||
598 | # | ||
599 | # CONFIG_ISDN is not set | 487 | # CONFIG_ISDN is not set |
600 | |||
601 | # | ||
602 | # Telephony Support | ||
603 | # | ||
604 | # CONFIG_PHONE is not set | 488 | # CONFIG_PHONE is not set |
605 | 489 | ||
606 | # | 490 | # |
@@ -608,6 +492,7 @@ CONFIG_NETXEN_NIC=m | |||
608 | # | 492 | # |
609 | CONFIG_INPUT=y | 493 | CONFIG_INPUT=y |
610 | # CONFIG_INPUT_FF_MEMLESS is not set | 494 | # CONFIG_INPUT_FF_MEMLESS is not set |
495 | # CONFIG_INPUT_POLLDEV is not set | ||
611 | 496 | ||
612 | # | 497 | # |
613 | # Userland interfaces | 498 | # Userland interfaces |
@@ -624,6 +509,7 @@ CONFIG_INPUT=y | |||
624 | # CONFIG_INPUT_KEYBOARD is not set | 509 | # CONFIG_INPUT_KEYBOARD is not set |
625 | # CONFIG_INPUT_MOUSE is not set | 510 | # CONFIG_INPUT_MOUSE is not set |
626 | # CONFIG_INPUT_JOYSTICK is not set | 511 | # CONFIG_INPUT_JOYSTICK is not set |
512 | # CONFIG_INPUT_TABLET is not set | ||
627 | # CONFIG_INPUT_TOUCHSCREEN is not set | 513 | # CONFIG_INPUT_TOUCHSCREEN is not set |
628 | # CONFIG_INPUT_MISC is not set | 514 | # CONFIG_INPUT_MISC is not set |
629 | 515 | ||
@@ -658,34 +544,17 @@ CONFIG_SERIAL_VR41XX_CONSOLE=y | |||
658 | CONFIG_UNIX98_PTYS=y | 544 | CONFIG_UNIX98_PTYS=y |
659 | CONFIG_LEGACY_PTYS=y | 545 | CONFIG_LEGACY_PTYS=y |
660 | CONFIG_LEGACY_PTY_COUNT=256 | 546 | CONFIG_LEGACY_PTY_COUNT=256 |
661 | |||
662 | # | ||
663 | # IPMI | ||
664 | # | ||
665 | # CONFIG_IPMI_HANDLER is not set | 547 | # CONFIG_IPMI_HANDLER is not set |
666 | |||
667 | # | ||
668 | # Watchdog Cards | ||
669 | # | ||
670 | # CONFIG_WATCHDOG is not set | 548 | # CONFIG_WATCHDOG is not set |
671 | # CONFIG_HW_RANDOM is not set | 549 | # CONFIG_HW_RANDOM is not set |
672 | # CONFIG_RTC is not set | 550 | # CONFIG_RTC is not set |
673 | # CONFIG_GEN_RTC is not set | ||
674 | # CONFIG_DTLK is not set | ||
675 | # CONFIG_R3964 is not set | 551 | # CONFIG_R3964 is not set |
676 | # CONFIG_APPLICOM is not set | 552 | # CONFIG_APPLICOM is not set |
677 | # CONFIG_DRM is not set | 553 | # CONFIG_DRM is not set |
678 | CONFIG_GPIO_VR41XX=y | 554 | CONFIG_GPIO_VR41XX=y |
679 | # CONFIG_RAW_DRIVER is not set | 555 | # CONFIG_RAW_DRIVER is not set |
680 | |||
681 | # | ||
682 | # TPM devices | ||
683 | # | ||
684 | # CONFIG_TCG_TPM is not set | 556 | # CONFIG_TCG_TPM is not set |
685 | 557 | CONFIG_DEVPORT=y | |
686 | # | ||
687 | # I2C support | ||
688 | # | ||
689 | # CONFIG_I2C is not set | 558 | # CONFIG_I2C is not set |
690 | 559 | ||
691 | # | 560 | # |
@@ -693,32 +562,33 @@ CONFIG_GPIO_VR41XX=y | |||
693 | # | 562 | # |
694 | # CONFIG_SPI is not set | 563 | # CONFIG_SPI is not set |
695 | # CONFIG_SPI_MASTER is not set | 564 | # CONFIG_SPI_MASTER is not set |
696 | |||
697 | # | ||
698 | # Dallas's 1-wire bus | ||
699 | # | ||
700 | # CONFIG_W1 is not set | 565 | # CONFIG_W1 is not set |
566 | # CONFIG_POWER_SUPPLY is not set | ||
567 | # CONFIG_HWMON is not set | ||
701 | 568 | ||
702 | # | 569 | # |
703 | # Hardware Monitoring support | 570 | # Multifunction device drivers |
704 | # | 571 | # |
705 | # CONFIG_HWMON is not set | 572 | # CONFIG_MFD_SM501 is not set |
706 | # CONFIG_HWMON_VID is not set | ||
707 | 573 | ||
708 | # | 574 | # |
709 | # Multimedia devices | 575 | # Multimedia devices |
710 | # | 576 | # |
711 | # CONFIG_VIDEO_DEV is not set | 577 | # CONFIG_VIDEO_DEV is not set |
578 | # CONFIG_DVB_CORE is not set | ||
579 | # CONFIG_DAB is not set | ||
712 | 580 | ||
713 | # | 581 | # |
714 | # Digital Video Broadcasting Devices | 582 | # Graphics support |
715 | # | 583 | # |
716 | # CONFIG_DVB is not set | 584 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
717 | 585 | ||
718 | # | 586 | # |
719 | # Graphics support | 587 | # Display device support |
720 | # | 588 | # |
721 | # CONFIG_FIRMWARE_EDID is not set | 589 | # CONFIG_DISPLAY_SUPPORT is not set |
590 | # CONFIG_VGASTATE is not set | ||
591 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
722 | # CONFIG_FB is not set | 592 | # CONFIG_FB is not set |
723 | 593 | ||
724 | # | 594 | # |
@@ -726,65 +596,16 @@ CONFIG_GPIO_VR41XX=y | |||
726 | # | 596 | # |
727 | # CONFIG_VGA_CONSOLE is not set | 597 | # CONFIG_VGA_CONSOLE is not set |
728 | CONFIG_DUMMY_CONSOLE=y | 598 | CONFIG_DUMMY_CONSOLE=y |
729 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
730 | 599 | ||
731 | # | 600 | # |
732 | # Sound | 601 | # Sound |
733 | # | 602 | # |
734 | # CONFIG_SOUND is not set | 603 | # CONFIG_SOUND is not set |
735 | 604 | # CONFIG_HID_SUPPORT is not set | |
736 | # | 605 | # CONFIG_USB_SUPPORT is not set |
737 | # HID Devices | ||
738 | # | ||
739 | # CONFIG_HID is not set | ||
740 | |||
741 | # | ||
742 | # USB support | ||
743 | # | ||
744 | CONFIG_USB_ARCH_HAS_HCD=y | ||
745 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
746 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
747 | # CONFIG_USB is not set | ||
748 | |||
749 | # | ||
750 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
751 | # | ||
752 | |||
753 | # | ||
754 | # USB Gadget Support | ||
755 | # | ||
756 | # CONFIG_USB_GADGET is not set | ||
757 | |||
758 | # | ||
759 | # MMC/SD Card support | ||
760 | # | ||
761 | # CONFIG_MMC is not set | 606 | # CONFIG_MMC is not set |
762 | |||
763 | # | ||
764 | # LED devices | ||
765 | # | ||
766 | # CONFIG_NEW_LEDS is not set | 607 | # CONFIG_NEW_LEDS is not set |
767 | |||
768 | # | ||
769 | # LED drivers | ||
770 | # | ||
771 | |||
772 | # | ||
773 | # LED Triggers | ||
774 | # | ||
775 | |||
776 | # | ||
777 | # InfiniBand support | ||
778 | # | ||
779 | # CONFIG_INFINIBAND is not set | 608 | # CONFIG_INFINIBAND is not set |
780 | |||
781 | # | ||
782 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
783 | # | ||
784 | |||
785 | # | ||
786 | # Real Time Clock | ||
787 | # | ||
788 | CONFIG_RTC_LIB=y | 609 | CONFIG_RTC_LIB=y |
789 | CONFIG_RTC_CLASS=y | 610 | CONFIG_RTC_CLASS=y |
790 | CONFIG_RTC_HCTOSYS=y | 611 | CONFIG_RTC_HCTOSYS=y |
@@ -798,18 +619,29 @@ CONFIG_RTC_INTF_SYSFS=y | |||
798 | CONFIG_RTC_INTF_PROC=y | 619 | CONFIG_RTC_INTF_PROC=y |
799 | CONFIG_RTC_INTF_DEV=y | 620 | CONFIG_RTC_INTF_DEV=y |
800 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | 621 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set |
622 | # CONFIG_RTC_DRV_TEST is not set | ||
623 | |||
624 | # | ||
625 | # SPI RTC drivers | ||
626 | # | ||
801 | 627 | ||
802 | # | 628 | # |
803 | # RTC drivers | 629 | # Platform RTC drivers |
804 | # | 630 | # |
631 | # CONFIG_RTC_DRV_CMOS is not set | ||
805 | # CONFIG_RTC_DRV_DS1553 is not set | 632 | # CONFIG_RTC_DRV_DS1553 is not set |
633 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
806 | # CONFIG_RTC_DRV_DS1742 is not set | 634 | # CONFIG_RTC_DRV_DS1742 is not set |
807 | # CONFIG_RTC_DRV_M48T86 is not set | 635 | # CONFIG_RTC_DRV_M48T86 is not set |
808 | CONFIG_RTC_DRV_VR41XX=y | 636 | # CONFIG_RTC_DRV_M48T59 is not set |
809 | # CONFIG_RTC_DRV_TEST is not set | ||
810 | # CONFIG_RTC_DRV_V3020 is not set | 637 | # CONFIG_RTC_DRV_V3020 is not set |
811 | 638 | ||
812 | # | 639 | # |
640 | # on-CPU RTC drivers | ||
641 | # | ||
642 | CONFIG_RTC_DRV_VR41XX=y | ||
643 | |||
644 | # | ||
813 | # DMA Engine support | 645 | # DMA Engine support |
814 | # | 646 | # |
815 | # CONFIG_DMA_ENGINE is not set | 647 | # CONFIG_DMA_ENGINE is not set |
@@ -823,12 +655,9 @@ CONFIG_RTC_DRV_VR41XX=y | |||
823 | # | 655 | # |
824 | 656 | ||
825 | # | 657 | # |
826 | # Auxiliary Display support | 658 | # Userspace I/O |
827 | # | ||
828 | |||
829 | # | ||
830 | # Virtualization | ||
831 | # | 659 | # |
660 | # CONFIG_UIO is not set | ||
832 | 661 | ||
833 | # | 662 | # |
834 | # File systems | 663 | # File systems |
@@ -836,8 +665,14 @@ CONFIG_RTC_DRV_VR41XX=y | |||
836 | CONFIG_EXT2_FS=y | 665 | CONFIG_EXT2_FS=y |
837 | # CONFIG_EXT2_FS_XATTR is not set | 666 | # CONFIG_EXT2_FS_XATTR is not set |
838 | # CONFIG_EXT2_FS_XIP is not set | 667 | # CONFIG_EXT2_FS_XIP is not set |
839 | # CONFIG_EXT3_FS is not set | 668 | CONFIG_EXT3_FS=y |
669 | CONFIG_EXT3_FS_XATTR=y | ||
670 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
671 | # CONFIG_EXT3_FS_SECURITY is not set | ||
840 | # CONFIG_EXT4DEV_FS is not set | 672 | # CONFIG_EXT4DEV_FS is not set |
673 | CONFIG_JBD=y | ||
674 | # CONFIG_JBD_DEBUG is not set | ||
675 | CONFIG_FS_MBCACHE=y | ||
841 | # CONFIG_REISERFS_FS is not set | 676 | # CONFIG_REISERFS_FS is not set |
842 | # CONFIG_JFS_FS is not set | 677 | # CONFIG_JFS_FS is not set |
843 | CONFIG_FS_POSIX_ACL=y | 678 | CONFIG_FS_POSIX_ACL=y |
@@ -852,7 +687,7 @@ CONFIG_INOTIFY_USER=y | |||
852 | CONFIG_DNOTIFY=y | 687 | CONFIG_DNOTIFY=y |
853 | # CONFIG_AUTOFS_FS is not set | 688 | # CONFIG_AUTOFS_FS is not set |
854 | CONFIG_AUTOFS4_FS=y | 689 | CONFIG_AUTOFS4_FS=y |
855 | CONFIG_FUSE_FS=m | 690 | # CONFIG_FUSE_FS is not set |
856 | CONFIG_GENERIC_ACL=y | 691 | CONFIG_GENERIC_ACL=y |
857 | 692 | ||
858 | # | 693 | # |
@@ -879,7 +714,7 @@ CONFIG_TMPFS=y | |||
879 | CONFIG_TMPFS_POSIX_ACL=y | 714 | CONFIG_TMPFS_POSIX_ACL=y |
880 | # CONFIG_HUGETLB_PAGE is not set | 715 | # CONFIG_HUGETLB_PAGE is not set |
881 | CONFIG_RAMFS=y | 716 | CONFIG_RAMFS=y |
882 | CONFIG_CONFIGFS_FS=m | 717 | # CONFIG_CONFIGFS_FS is not set |
883 | 718 | ||
884 | # | 719 | # |
885 | # Miscellaneous filesystems | 720 | # Miscellaneous filesystems |
@@ -905,14 +740,12 @@ CONFIG_NFS_FS=y | |||
905 | # CONFIG_NFS_V3 is not set | 740 | # CONFIG_NFS_V3 is not set |
906 | # CONFIG_NFS_V4 is not set | 741 | # CONFIG_NFS_V4 is not set |
907 | # CONFIG_NFS_DIRECTIO is not set | 742 | # CONFIG_NFS_DIRECTIO is not set |
908 | CONFIG_NFSD=y | 743 | # CONFIG_NFSD is not set |
909 | # CONFIG_NFSD_V3 is not set | ||
910 | # CONFIG_NFSD_TCP is not set | ||
911 | CONFIG_ROOT_NFS=y | 744 | CONFIG_ROOT_NFS=y |
912 | CONFIG_LOCKD=y | 745 | CONFIG_LOCKD=y |
913 | CONFIG_EXPORTFS=y | ||
914 | CONFIG_NFS_COMMON=y | 746 | CONFIG_NFS_COMMON=y |
915 | CONFIG_SUNRPC=y | 747 | CONFIG_SUNRPC=y |
748 | # CONFIG_SUNRPC_BIND34 is not set | ||
916 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 749 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
917 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 750 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
918 | # CONFIG_SMB_FS is not set | 751 | # CONFIG_SMB_FS is not set |
@@ -920,7 +753,6 @@ CONFIG_SUNRPC=y | |||
920 | # CONFIG_NCP_FS is not set | 753 | # CONFIG_NCP_FS is not set |
921 | # CONFIG_CODA_FS is not set | 754 | # CONFIG_CODA_FS is not set |
922 | # CONFIG_AFS_FS is not set | 755 | # CONFIG_AFS_FS is not set |
923 | # CONFIG_9P_FS is not set | ||
924 | 756 | ||
925 | # | 757 | # |
926 | # Partition Types | 758 | # Partition Types |
@@ -936,10 +768,7 @@ CONFIG_MSDOS_PARTITION=y | |||
936 | # | 768 | # |
937 | # Distributed Lock Manager | 769 | # Distributed Lock Manager |
938 | # | 770 | # |
939 | CONFIG_DLM=m | 771 | # CONFIG_DLM is not set |
940 | CONFIG_DLM_TCP=y | ||
941 | # CONFIG_DLM_SCTP is not set | ||
942 | # CONFIG_DLM_DEBUG is not set | ||
943 | 772 | ||
944 | # | 773 | # |
945 | # Profiling support | 774 | # Profiling support |
@@ -957,7 +786,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
957 | # CONFIG_DEBUG_FS is not set | 786 | # CONFIG_DEBUG_FS is not set |
958 | # CONFIG_HEADERS_CHECK is not set | 787 | # CONFIG_HEADERS_CHECK is not set |
959 | # CONFIG_DEBUG_KERNEL is not set | 788 | # CONFIG_DEBUG_KERNEL is not set |
960 | CONFIG_LOG_BUF_SHIFT=14 | ||
961 | CONFIG_CROSSCOMPILE=y | 789 | CONFIG_CROSSCOMPILE=y |
962 | CONFIG_CMDLINE="mem=32M console=ttyVR0,38400" | 790 | CONFIG_CMDLINE="mem=32M console=ttyVR0,38400" |
963 | 791 | ||
@@ -966,10 +794,6 @@ CONFIG_CMDLINE="mem=32M console=ttyVR0,38400" | |||
966 | # | 794 | # |
967 | # CONFIG_KEYS is not set | 795 | # CONFIG_KEYS is not set |
968 | # CONFIG_SECURITY is not set | 796 | # CONFIG_SECURITY is not set |
969 | |||
970 | # | ||
971 | # Cryptographic options | ||
972 | # | ||
973 | CONFIG_CRYPTO=y | 797 | CONFIG_CRYPTO=y |
974 | CONFIG_CRYPTO_ALGAPI=y | 798 | CONFIG_CRYPTO_ALGAPI=y |
975 | CONFIG_CRYPTO_BLKCIPHER=m | 799 | CONFIG_CRYPTO_BLKCIPHER=m |
@@ -990,6 +814,7 @@ CONFIG_CRYPTO_ECB=m | |||
990 | CONFIG_CRYPTO_CBC=m | 814 | CONFIG_CRYPTO_CBC=m |
991 | CONFIG_CRYPTO_PCBC=m | 815 | CONFIG_CRYPTO_PCBC=m |
992 | CONFIG_CRYPTO_LRW=m | 816 | CONFIG_CRYPTO_LRW=m |
817 | # CONFIG_CRYPTO_CRYPTD is not set | ||
993 | CONFIG_CRYPTO_DES=m | 818 | CONFIG_CRYPTO_DES=m |
994 | CONFIG_CRYPTO_FCRYPT=m | 819 | CONFIG_CRYPTO_FCRYPT=m |
995 | CONFIG_CRYPTO_BLOWFISH=m | 820 | CONFIG_CRYPTO_BLOWFISH=m |
@@ -1008,10 +833,7 @@ CONFIG_CRYPTO_MICHAEL_MIC=m | |||
1008 | # CONFIG_CRYPTO_CRC32C is not set | 833 | # CONFIG_CRYPTO_CRC32C is not set |
1009 | CONFIG_CRYPTO_CAMELLIA=m | 834 | CONFIG_CRYPTO_CAMELLIA=m |
1010 | # CONFIG_CRYPTO_TEST is not set | 835 | # CONFIG_CRYPTO_TEST is not set |
1011 | 836 | # CONFIG_CRYPTO_HW is not set | |
1012 | # | ||
1013 | # Hardware crypto devices | ||
1014 | # | ||
1015 | 837 | ||
1016 | # | 838 | # |
1017 | # Library routines | 839 | # Library routines |
@@ -1019,10 +841,13 @@ CONFIG_CRYPTO_CAMELLIA=m | |||
1019 | CONFIG_BITREVERSE=y | 841 | CONFIG_BITREVERSE=y |
1020 | # CONFIG_CRC_CCITT is not set | 842 | # CONFIG_CRC_CCITT is not set |
1021 | # CONFIG_CRC16 is not set | 843 | # CONFIG_CRC16 is not set |
844 | # CONFIG_CRC_ITU_T is not set | ||
1022 | CONFIG_CRC32=y | 845 | CONFIG_CRC32=y |
846 | # CONFIG_CRC7 is not set | ||
1023 | # CONFIG_LIBCRC32C is not set | 847 | # CONFIG_LIBCRC32C is not set |
1024 | CONFIG_ZLIB_INFLATE=m | 848 | CONFIG_ZLIB_INFLATE=m |
1025 | CONFIG_ZLIB_DEFLATE=m | 849 | CONFIG_ZLIB_DEFLATE=m |
1026 | CONFIG_PLIST=y | 850 | CONFIG_PLIST=y |
1027 | CONFIG_HAS_IOMEM=y | 851 | CONFIG_HAS_IOMEM=y |
1028 | CONFIG_HAS_IOPORT=y | 852 | CONFIG_HAS_IOPORT=y |
853 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig index 6d6a01b9a817..ebcb7ad8814b 100644 --- a/arch/mips/configs/cobalt_defconfig +++ b/arch/mips/configs/cobalt_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.22-rc2 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Fri May 25 11:17:29 2007 | 4 | # Tue Aug 7 22:12:54 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -13,33 +13,35 @@ CONFIG_MIPS=y | |||
13 | CONFIG_MIPS_COBALT=y | 13 | CONFIG_MIPS_COBALT=y |
14 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
15 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
16 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
17 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
18 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
19 | # CONFIG_WR_PPMC is not set | ||
20 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
21 | # CONFIG_MARKEINS is not set | ||
22 | # CONFIG_MACH_VR41XX is not set | ||
21 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
22 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
23 | # CONFIG_MACH_VR41XX is not set | 25 | # CONFIG_PMC_MSP is not set |
24 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
25 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
26 | # CONFIG_MARKEINS is not set | ||
27 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
28 | # CONFIG_SGI_IP27 is not set | 29 | # CONFIG_SGI_IP27 is not set |
29 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
30 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
31 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
32 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
33 | # CONFIG_SIBYTE_RHONE is not set | ||
34 | # CONFIG_SIBYTE_CARMEL is not set | ||
35 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
37 | # CONFIG_SIBYTE_CRHINE is not set | ||
38 | # CONFIG_SIBYTE_CRHONE is not set | ||
39 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
40 | # CONFIG_TOSHIBA_JMR3927 is not set | 41 | # CONFIG_TOSHIBA_JMR3927 is not set |
41 | # CONFIG_TOSHIBA_RBTX4927 is not set | 42 | # CONFIG_TOSHIBA_RBTX4927 is not set |
42 | # CONFIG_TOSHIBA_RBTX4938 is not set | 43 | # CONFIG_TOSHIBA_RBTX4938 is not set |
44 | # CONFIG_WR_PPMC is not set | ||
43 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 45 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
44 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 46 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
45 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 47 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
@@ -54,6 +56,7 @@ CONFIG_DMA_NEED_PCI_MAP_STATE=y | |||
54 | CONFIG_EARLY_PRINTK=y | 56 | CONFIG_EARLY_PRINTK=y |
55 | CONFIG_SYS_HAS_EARLY_PRINTK=y | 57 | CONFIG_SYS_HAS_EARLY_PRINTK=y |
56 | CONFIG_I8259=y | 58 | CONFIG_I8259=y |
59 | # CONFIG_NO_IOPORT is not set | ||
57 | # CONFIG_CPU_BIG_ENDIAN is not set | 60 | # CONFIG_CPU_BIG_ENDIAN is not set |
58 | CONFIG_CPU_LITTLE_ENDIAN=y | 61 | CONFIG_CPU_LITTLE_ENDIAN=y |
59 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 62 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
@@ -64,6 +67,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
64 | # | 67 | # |
65 | # CPU selection | 68 | # CPU selection |
66 | # | 69 | # |
70 | # CONFIG_CPU_LOONGSON2 is not set | ||
67 | # CONFIG_CPU_MIPS32_R1 is not set | 71 | # CONFIG_CPU_MIPS32_R1 is not set |
68 | # CONFIG_CPU_MIPS32_R2 is not set | 72 | # CONFIG_CPU_MIPS32_R2 is not set |
69 | # CONFIG_CPU_MIPS64_R1 is not set | 73 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -101,7 +105,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
101 | CONFIG_MIPS_MT_DISABLED=y | 105 | CONFIG_MIPS_MT_DISABLED=y |
102 | # CONFIG_MIPS_MT_SMP is not set | 106 | # CONFIG_MIPS_MT_SMP is not set |
103 | # CONFIG_MIPS_MT_SMTC is not set | 107 | # CONFIG_MIPS_MT_SMTC is not set |
104 | # CONFIG_MIPS_VPE_LOADER is not set | ||
105 | CONFIG_CPU_HAS_LLSC=y | 108 | CONFIG_CPU_HAS_LLSC=y |
106 | CONFIG_CPU_HAS_SYNC=y | 109 | CONFIG_CPU_HAS_SYNC=y |
107 | CONFIG_GENERIC_HARDIRQS=y | 110 | CONFIG_GENERIC_HARDIRQS=y |
@@ -117,43 +120,40 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
117 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 120 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
118 | # CONFIG_RESOURCES_64BIT is not set | 121 | # CONFIG_RESOURCES_64BIT is not set |
119 | CONFIG_ZONE_DMA_FLAG=0 | 122 | CONFIG_ZONE_DMA_FLAG=0 |
123 | CONFIG_VIRT_TO_BUS=y | ||
120 | # CONFIG_HZ_48 is not set | 124 | # CONFIG_HZ_48 is not set |
121 | # CONFIG_HZ_100 is not set | 125 | # CONFIG_HZ_100 is not set |
122 | # CONFIG_HZ_128 is not set | 126 | # CONFIG_HZ_128 is not set |
123 | # CONFIG_HZ_250 is not set | 127 | CONFIG_HZ_250=y |
124 | # CONFIG_HZ_256 is not set | 128 | # CONFIG_HZ_256 is not set |
125 | CONFIG_HZ_1000=y | 129 | # CONFIG_HZ_1000 is not set |
126 | # CONFIG_HZ_1024 is not set | 130 | # CONFIG_HZ_1024 is not set |
127 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | 131 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y |
128 | CONFIG_HZ=1000 | 132 | CONFIG_HZ=250 |
129 | CONFIG_PREEMPT_NONE=y | 133 | CONFIG_PREEMPT_NONE=y |
130 | # CONFIG_PREEMPT_VOLUNTARY is not set | 134 | # CONFIG_PREEMPT_VOLUNTARY is not set |
131 | # CONFIG_PREEMPT is not set | 135 | # CONFIG_PREEMPT is not set |
132 | # CONFIG_KEXEC is not set | 136 | # CONFIG_KEXEC is not set |
137 | CONFIG_SECCOMP=y | ||
133 | CONFIG_LOCKDEP_SUPPORT=y | 138 | CONFIG_LOCKDEP_SUPPORT=y |
134 | CONFIG_STACKTRACE_SUPPORT=y | 139 | CONFIG_STACKTRACE_SUPPORT=y |
135 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 140 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
136 | 141 | ||
137 | # | 142 | # |
138 | # Code maturity level options | 143 | # General setup |
139 | # | 144 | # |
140 | CONFIG_EXPERIMENTAL=y | 145 | CONFIG_EXPERIMENTAL=y |
141 | CONFIG_BROKEN_ON_SMP=y | 146 | CONFIG_BROKEN_ON_SMP=y |
142 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 147 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
143 | |||
144 | # | ||
145 | # General setup | ||
146 | # | ||
147 | CONFIG_LOCALVERSION="" | 148 | CONFIG_LOCALVERSION="" |
148 | CONFIG_LOCALVERSION_AUTO=y | 149 | CONFIG_LOCALVERSION_AUTO=y |
149 | CONFIG_SWAP=y | 150 | CONFIG_SWAP=y |
150 | CONFIG_SYSVIPC=y | 151 | CONFIG_SYSVIPC=y |
151 | # CONFIG_IPC_NS is not set | ||
152 | CONFIG_SYSVIPC_SYSCTL=y | 152 | CONFIG_SYSVIPC_SYSCTL=y |
153 | # CONFIG_POSIX_MQUEUE is not set | 153 | # CONFIG_POSIX_MQUEUE is not set |
154 | # CONFIG_BSD_PROCESS_ACCT is not set | 154 | # CONFIG_BSD_PROCESS_ACCT is not set |
155 | # CONFIG_TASKSTATS is not set | 155 | # CONFIG_TASKSTATS is not set |
156 | # CONFIG_UTS_NS is not set | 156 | # CONFIG_USER_NS is not set |
157 | # CONFIG_AUDIT is not set | 157 | # CONFIG_AUDIT is not set |
158 | # CONFIG_IKCONFIG is not set | 158 | # CONFIG_IKCONFIG is not set |
159 | CONFIG_LOG_BUF_SHIFT=14 | 159 | CONFIG_LOG_BUF_SHIFT=14 |
@@ -185,19 +185,17 @@ CONFIG_SLAB=y | |||
185 | CONFIG_RT_MUTEXES=y | 185 | CONFIG_RT_MUTEXES=y |
186 | # CONFIG_TINY_SHMEM is not set | 186 | # CONFIG_TINY_SHMEM is not set |
187 | CONFIG_BASE_SMALL=0 | 187 | CONFIG_BASE_SMALL=0 |
188 | 188 | CONFIG_MODULES=y | |
189 | # | 189 | CONFIG_MODULE_UNLOAD=y |
190 | # Loadable module support | 190 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
191 | # | 191 | # CONFIG_MODVERSIONS is not set |
192 | # CONFIG_MODULES is not set | 192 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
193 | 193 | # CONFIG_KMOD is not set | |
194 | # | ||
195 | # Block layer | ||
196 | # | ||
197 | CONFIG_BLOCK=y | 194 | CONFIG_BLOCK=y |
198 | # CONFIG_LBD is not set | 195 | # CONFIG_LBD is not set |
199 | # CONFIG_BLK_DEV_IO_TRACE is not set | 196 | # CONFIG_BLK_DEV_IO_TRACE is not set |
200 | # CONFIG_LSF is not set | 197 | # CONFIG_LSF is not set |
198 | # CONFIG_BLK_DEV_BSG is not set | ||
201 | 199 | ||
202 | # | 200 | # |
203 | # IO Schedulers | 201 | # IO Schedulers |
@@ -236,10 +234,7 @@ CONFIG_TRAD_SIGNALS=y | |||
236 | # | 234 | # |
237 | # Power management options | 235 | # Power management options |
238 | # | 236 | # |
239 | CONFIG_PM=y | 237 | # CONFIG_PM is not set |
240 | # CONFIG_PM_LEGACY is not set | ||
241 | # CONFIG_PM_DEBUG is not set | ||
242 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
243 | 238 | ||
244 | # | 239 | # |
245 | # Networking | 240 | # Networking |
@@ -286,20 +281,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
286 | # CONFIG_INET6_TUNNEL is not set | 281 | # CONFIG_INET6_TUNNEL is not set |
287 | # CONFIG_NETWORK_SECMARK is not set | 282 | # CONFIG_NETWORK_SECMARK is not set |
288 | # CONFIG_NETFILTER is not set | 283 | # CONFIG_NETFILTER is not set |
289 | |||
290 | # | ||
291 | # DCCP Configuration (EXPERIMENTAL) | ||
292 | # | ||
293 | # CONFIG_IP_DCCP is not set | 284 | # CONFIG_IP_DCCP is not set |
294 | |||
295 | # | ||
296 | # SCTP Configuration (EXPERIMENTAL) | ||
297 | # | ||
298 | # CONFIG_IP_SCTP is not set | 285 | # CONFIG_IP_SCTP is not set |
299 | |||
300 | # | ||
301 | # TIPC Configuration (EXPERIMENTAL) | ||
302 | # | ||
303 | # CONFIG_TIPC is not set | 286 | # CONFIG_TIPC is not set |
304 | # CONFIG_ATM is not set | 287 | # CONFIG_ATM is not set |
305 | # CONFIG_BRIDGE is not set | 288 | # CONFIG_BRIDGE is not set |
@@ -335,6 +318,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
335 | # CONFIG_MAC80211 is not set | 318 | # CONFIG_MAC80211 is not set |
336 | # CONFIG_IEEE80211 is not set | 319 | # CONFIG_IEEE80211 is not set |
337 | # CONFIG_RFKILL is not set | 320 | # CONFIG_RFKILL is not set |
321 | # CONFIG_NET_9P is not set | ||
338 | 322 | ||
339 | # | 323 | # |
340 | # Device Drivers | 324 | # Device Drivers |
@@ -347,12 +331,7 @@ CONFIG_STANDALONE=y | |||
347 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 331 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
348 | CONFIG_FW_LOADER=y | 332 | CONFIG_FW_LOADER=y |
349 | # CONFIG_SYS_HYPERVISOR is not set | 333 | # CONFIG_SYS_HYPERVISOR is not set |
350 | 334 | # CONFIG_CONNECTOR is not set | |
351 | # | ||
352 | # Connector - unified userspace <-> kernelspace linker | ||
353 | # | ||
354 | CONFIG_CONNECTOR=y | ||
355 | CONFIG_PROC_EVENTS=y | ||
356 | CONFIG_MTD=y | 335 | CONFIG_MTD=y |
357 | # CONFIG_MTD_DEBUG is not set | 336 | # CONFIG_MTD_DEBUG is not set |
358 | # CONFIG_MTD_CONCAT is not set | 337 | # CONFIG_MTD_CONCAT is not set |
@@ -430,20 +409,8 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=0 | |||
430 | # UBI - Unsorted block images | 409 | # UBI - Unsorted block images |
431 | # | 410 | # |
432 | # CONFIG_MTD_UBI is not set | 411 | # CONFIG_MTD_UBI is not set |
433 | |||
434 | # | ||
435 | # Parallel port support | ||
436 | # | ||
437 | # CONFIG_PARPORT is not set | 412 | # CONFIG_PARPORT is not set |
438 | 413 | CONFIG_BLK_DEV=y | |
439 | # | ||
440 | # Plug and Play support | ||
441 | # | ||
442 | # CONFIG_PNPACPI is not set | ||
443 | |||
444 | # | ||
445 | # Block devices | ||
446 | # | ||
447 | # CONFIG_BLK_CPQ_DA is not set | 414 | # CONFIG_BLK_CPQ_DA is not set |
448 | # CONFIG_BLK_CPQ_CISS_DA is not set | 415 | # CONFIG_BLK_CPQ_CISS_DA is not set |
449 | # CONFIG_BLK_DEV_DAC960 is not set | 416 | # CONFIG_BLK_DEV_DAC960 is not set |
@@ -453,17 +420,11 @@ CONFIG_BLK_DEV_LOOP=y | |||
453 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 420 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
454 | # CONFIG_BLK_DEV_NBD is not set | 421 | # CONFIG_BLK_DEV_NBD is not set |
455 | # CONFIG_BLK_DEV_SX8 is not set | 422 | # CONFIG_BLK_DEV_SX8 is not set |
423 | # CONFIG_BLK_DEV_UB is not set | ||
456 | # CONFIG_BLK_DEV_RAM is not set | 424 | # CONFIG_BLK_DEV_RAM is not set |
457 | # CONFIG_CDROM_PKTCDVD is not set | 425 | # CONFIG_CDROM_PKTCDVD is not set |
458 | # CONFIG_ATA_OVER_ETH is not set | 426 | # CONFIG_ATA_OVER_ETH is not set |
459 | 427 | # CONFIG_MISC_DEVICES is not set | |
460 | # | ||
461 | # Misc devices | ||
462 | # | ||
463 | # CONFIG_PHANTOM is not set | ||
464 | # CONFIG_SGI_IOC4 is not set | ||
465 | # CONFIG_TIFM_CORE is not set | ||
466 | # CONFIG_BLINK is not set | ||
467 | # CONFIG_IDE is not set | 428 | # CONFIG_IDE is not set |
468 | 429 | ||
469 | # | 430 | # |
@@ -471,6 +432,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
471 | # | 432 | # |
472 | CONFIG_RAID_ATTRS=y | 433 | CONFIG_RAID_ATTRS=y |
473 | CONFIG_SCSI=y | 434 | CONFIG_SCSI=y |
435 | CONFIG_SCSI_DMA=y | ||
474 | # CONFIG_SCSI_TGT is not set | 436 | # CONFIG_SCSI_TGT is not set |
475 | # CONFIG_SCSI_NETLINK is not set | 437 | # CONFIG_SCSI_NETLINK is not set |
476 | CONFIG_SCSI_PROC_FS=y | 438 | CONFIG_SCSI_PROC_FS=y |
@@ -492,6 +454,7 @@ CONFIG_BLK_DEV_SD=y | |||
492 | # CONFIG_SCSI_CONSTANTS is not set | 454 | # CONFIG_SCSI_CONSTANTS is not set |
493 | # CONFIG_SCSI_LOGGING is not set | 455 | # CONFIG_SCSI_LOGGING is not set |
494 | # CONFIG_SCSI_SCAN_ASYNC is not set | 456 | # CONFIG_SCSI_SCAN_ASYNC is not set |
457 | CONFIG_SCSI_WAIT_SCAN=m | ||
495 | 458 | ||
496 | # | 459 | # |
497 | # SCSI Transports | 460 | # SCSI Transports |
@@ -499,45 +462,8 @@ CONFIG_BLK_DEV_SD=y | |||
499 | # CONFIG_SCSI_SPI_ATTRS is not set | 462 | # CONFIG_SCSI_SPI_ATTRS is not set |
500 | # CONFIG_SCSI_FC_ATTRS is not set | 463 | # CONFIG_SCSI_FC_ATTRS is not set |
501 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 464 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
502 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
503 | # CONFIG_SCSI_SAS_LIBSAS is not set | 465 | # CONFIG_SCSI_SAS_LIBSAS is not set |
504 | 466 | # CONFIG_SCSI_LOWLEVEL is not set | |
505 | # | ||
506 | # SCSI low-level drivers | ||
507 | # | ||
508 | # CONFIG_ISCSI_TCP is not set | ||
509 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | ||
510 | # CONFIG_SCSI_3W_9XXX is not set | ||
511 | # CONFIG_SCSI_ACARD is not set | ||
512 | # CONFIG_SCSI_AACRAID is not set | ||
513 | # CONFIG_SCSI_AIC7XXX is not set | ||
514 | # CONFIG_SCSI_AIC7XXX_OLD is not set | ||
515 | # CONFIG_SCSI_AIC79XX is not set | ||
516 | # CONFIG_SCSI_AIC94XX is not set | ||
517 | # CONFIG_SCSI_DPT_I2O is not set | ||
518 | # CONFIG_SCSI_ARCMSR is not set | ||
519 | # CONFIG_MEGARAID_NEWGEN is not set | ||
520 | # CONFIG_MEGARAID_LEGACY is not set | ||
521 | # CONFIG_MEGARAID_SAS is not set | ||
522 | # CONFIG_SCSI_HPTIOP is not set | ||
523 | # CONFIG_SCSI_DMX3191D is not set | ||
524 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | ||
525 | # CONFIG_SCSI_IPS is not set | ||
526 | # CONFIG_SCSI_INITIO is not set | ||
527 | # CONFIG_SCSI_INIA100 is not set | ||
528 | # CONFIG_SCSI_STEX is not set | ||
529 | # CONFIG_SCSI_SYM53C8XX_2 is not set | ||
530 | # CONFIG_SCSI_IPR is not set | ||
531 | # CONFIG_SCSI_QLOGIC_1280 is not set | ||
532 | # CONFIG_SCSI_QLA_FC is not set | ||
533 | # CONFIG_SCSI_QLA_ISCSI is not set | ||
534 | # CONFIG_SCSI_LPFC is not set | ||
535 | # CONFIG_SCSI_DC395x is not set | ||
536 | # CONFIG_SCSI_DC390T is not set | ||
537 | # CONFIG_SCSI_NSP32 is not set | ||
538 | # CONFIG_SCSI_DEBUG is not set | ||
539 | # CONFIG_SCSI_ESP_CORE is not set | ||
540 | # CONFIG_SCSI_SRP is not set | ||
541 | CONFIG_ATA=y | 467 | CONFIG_ATA=y |
542 | # CONFIG_ATA_NONSTANDARD is not set | 468 | # CONFIG_ATA_NONSTANDARD is not set |
543 | # CONFIG_SATA_AHCI is not set | 469 | # CONFIG_SATA_AHCI is not set |
@@ -593,10 +519,6 @@ CONFIG_ATA=y | |||
593 | CONFIG_PATA_VIA=y | 519 | CONFIG_PATA_VIA=y |
594 | # CONFIG_PATA_WINBOND is not set | 520 | # CONFIG_PATA_WINBOND is not set |
595 | # CONFIG_PATA_PLATFORM is not set | 521 | # CONFIG_PATA_PLATFORM is not set |
596 | |||
597 | # | ||
598 | # Multi-device support (RAID and LVM) | ||
599 | # | ||
600 | # CONFIG_MD is not set | 522 | # CONFIG_MD is not set |
601 | 523 | ||
602 | # | 524 | # |
@@ -612,41 +534,24 @@ CONFIG_PATA_VIA=y | |||
612 | # | 534 | # |
613 | # CONFIG_FIREWIRE is not set | 535 | # CONFIG_FIREWIRE is not set |
614 | # CONFIG_IEEE1394 is not set | 536 | # CONFIG_IEEE1394 is not set |
615 | |||
616 | # | ||
617 | # I2O device support | ||
618 | # | ||
619 | # CONFIG_I2O is not set | 537 | # CONFIG_I2O is not set |
620 | |||
621 | # | ||
622 | # Network device support | ||
623 | # | ||
624 | CONFIG_NETDEVICES=y | 538 | CONFIG_NETDEVICES=y |
539 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
625 | # CONFIG_DUMMY is not set | 540 | # CONFIG_DUMMY is not set |
626 | # CONFIG_BONDING is not set | 541 | # CONFIG_BONDING is not set |
542 | # CONFIG_MACVLAN is not set | ||
627 | # CONFIG_EQUALIZER is not set | 543 | # CONFIG_EQUALIZER is not set |
628 | # CONFIG_TUN is not set | 544 | # CONFIG_TUN is not set |
629 | |||
630 | # | ||
631 | # ARCnet devices | ||
632 | # | ||
633 | # CONFIG_ARCNET is not set | 545 | # CONFIG_ARCNET is not set |
634 | # CONFIG_PHYLIB is not set | 546 | # CONFIG_PHYLIB is not set |
635 | |||
636 | # | ||
637 | # Ethernet (10 or 100Mbit) | ||
638 | # | ||
639 | CONFIG_NET_ETHERNET=y | 547 | CONFIG_NET_ETHERNET=y |
640 | # CONFIG_MII is not set | 548 | # CONFIG_MII is not set |
549 | # CONFIG_AX88796 is not set | ||
641 | # CONFIG_HAPPYMEAL is not set | 550 | # CONFIG_HAPPYMEAL is not set |
642 | # CONFIG_SUNGEM is not set | 551 | # CONFIG_SUNGEM is not set |
643 | # CONFIG_CASSINI is not set | 552 | # CONFIG_CASSINI is not set |
644 | # CONFIG_NET_VENDOR_3COM is not set | 553 | # CONFIG_NET_VENDOR_3COM is not set |
645 | # CONFIG_DM9000 is not set | 554 | # CONFIG_DM9000 is not set |
646 | |||
647 | # | ||
648 | # Tulip family network device support | ||
649 | # | ||
650 | CONFIG_NET_TULIP=y | 555 | CONFIG_NET_TULIP=y |
651 | CONFIG_DE2104X=y | 556 | CONFIG_DE2104X=y |
652 | CONFIG_TULIP=y | 557 | CONFIG_TULIP=y |
@@ -661,10 +566,6 @@ CONFIG_TULIP=y | |||
661 | # CONFIG_NET_PCI is not set | 566 | # CONFIG_NET_PCI is not set |
662 | # CONFIG_NETDEV_1000 is not set | 567 | # CONFIG_NETDEV_1000 is not set |
663 | # CONFIG_NETDEV_10000 is not set | 568 | # CONFIG_NETDEV_10000 is not set |
664 | |||
665 | # | ||
666 | # Token Ring devices | ||
667 | # | ||
668 | # CONFIG_TR is not set | 569 | # CONFIG_TR is not set |
669 | 570 | ||
670 | # | 571 | # |
@@ -672,6 +573,16 @@ CONFIG_TULIP=y | |||
672 | # | 573 | # |
673 | # CONFIG_WLAN_PRE80211 is not set | 574 | # CONFIG_WLAN_PRE80211 is not set |
674 | # CONFIG_WLAN_80211 is not set | 575 | # CONFIG_WLAN_80211 is not set |
576 | |||
577 | # | ||
578 | # USB Network Adapters | ||
579 | # | ||
580 | # CONFIG_USB_CATC is not set | ||
581 | # CONFIG_USB_KAWETH is not set | ||
582 | # CONFIG_USB_PEGASUS is not set | ||
583 | # CONFIG_USB_RTL8150 is not set | ||
584 | # CONFIG_USB_USBNET_MII is not set | ||
585 | # CONFIG_USB_USBNET is not set | ||
675 | # CONFIG_WAN is not set | 586 | # CONFIG_WAN is not set |
676 | # CONFIG_FDDI is not set | 587 | # CONFIG_FDDI is not set |
677 | # CONFIG_HIPPI is not set | 588 | # CONFIG_HIPPI is not set |
@@ -682,15 +593,7 @@ CONFIG_TULIP=y | |||
682 | # CONFIG_NETCONSOLE is not set | 593 | # CONFIG_NETCONSOLE is not set |
683 | # CONFIG_NETPOLL is not set | 594 | # CONFIG_NETPOLL is not set |
684 | # CONFIG_NET_POLL_CONTROLLER is not set | 595 | # CONFIG_NET_POLL_CONTROLLER is not set |
685 | |||
686 | # | ||
687 | # ISDN subsystem | ||
688 | # | ||
689 | # CONFIG_ISDN is not set | 596 | # CONFIG_ISDN is not set |
690 | |||
691 | # | ||
692 | # Telephony Support | ||
693 | # | ||
694 | # CONFIG_PHONE is not set | 597 | # CONFIG_PHONE is not set |
695 | 598 | ||
696 | # | 599 | # |
@@ -698,6 +601,7 @@ CONFIG_TULIP=y | |||
698 | # | 601 | # |
699 | CONFIG_INPUT=y | 602 | CONFIG_INPUT=y |
700 | # CONFIG_INPUT_FF_MEMLESS is not set | 603 | # CONFIG_INPUT_FF_MEMLESS is not set |
604 | CONFIG_INPUT_POLLDEV=y | ||
701 | 605 | ||
702 | # | 606 | # |
703 | # Userland interfaces | 607 | # Userland interfaces |
@@ -705,7 +609,7 @@ CONFIG_INPUT=y | |||
705 | # CONFIG_INPUT_MOUSEDEV is not set | 609 | # CONFIG_INPUT_MOUSEDEV is not set |
706 | # CONFIG_INPUT_JOYDEV is not set | 610 | # CONFIG_INPUT_JOYDEV is not set |
707 | # CONFIG_INPUT_TSDEV is not set | 611 | # CONFIG_INPUT_TSDEV is not set |
708 | # CONFIG_INPUT_EVDEV is not set | 612 | CONFIG_INPUT_EVDEV=y |
709 | # CONFIG_INPUT_EVBUG is not set | 613 | # CONFIG_INPUT_EVBUG is not set |
710 | 614 | ||
711 | # | 615 | # |
@@ -725,7 +629,6 @@ CONFIG_INPUT_COBALT_BTNS=y | |||
725 | # CONFIG_INPUT_POWERMATE is not set | 629 | # CONFIG_INPUT_POWERMATE is not set |
726 | # CONFIG_INPUT_YEALINK is not set | 630 | # CONFIG_INPUT_YEALINK is not set |
727 | # CONFIG_INPUT_UINPUT is not set | 631 | # CONFIG_INPUT_UINPUT is not set |
728 | CONFIG_INPUT_POLLDEV=y | ||
729 | 632 | ||
730 | # | 633 | # |
731 | # Hardware I/O ports | 634 | # Hardware I/O ports |
@@ -761,24 +664,15 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
761 | CONFIG_UNIX98_PTYS=y | 664 | CONFIG_UNIX98_PTYS=y |
762 | CONFIG_LEGACY_PTYS=y | 665 | CONFIG_LEGACY_PTYS=y |
763 | CONFIG_LEGACY_PTY_COUNT=256 | 666 | CONFIG_LEGACY_PTY_COUNT=256 |
764 | |||
765 | # | ||
766 | # IPMI | ||
767 | # | ||
768 | # CONFIG_IPMI_HANDLER is not set | 667 | # CONFIG_IPMI_HANDLER is not set |
769 | # CONFIG_WATCHDOG is not set | 668 | # CONFIG_WATCHDOG is not set |
770 | # CONFIG_HW_RANDOM is not set | 669 | # CONFIG_HW_RANDOM is not set |
771 | # CONFIG_RTC is not set | 670 | # CONFIG_RTC is not set |
772 | # CONFIG_GEN_RTC is not set | ||
773 | CONFIG_COBALT_LCD=y | 671 | CONFIG_COBALT_LCD=y |
774 | # CONFIG_R3964 is not set | 672 | # CONFIG_R3964 is not set |
775 | # CONFIG_APPLICOM is not set | 673 | # CONFIG_APPLICOM is not set |
776 | # CONFIG_DRM is not set | 674 | # CONFIG_DRM is not set |
777 | # CONFIG_RAW_DRIVER is not set | 675 | # CONFIG_RAW_DRIVER is not set |
778 | |||
779 | # | ||
780 | # TPM devices | ||
781 | # | ||
782 | # CONFIG_TCG_TPM is not set | 676 | # CONFIG_TCG_TPM is not set |
783 | CONFIG_DEVPORT=y | 677 | CONFIG_DEVPORT=y |
784 | # CONFIG_I2C is not set | 678 | # CONFIG_I2C is not set |
@@ -788,11 +682,8 @@ CONFIG_DEVPORT=y | |||
788 | # | 682 | # |
789 | # CONFIG_SPI is not set | 683 | # CONFIG_SPI is not set |
790 | # CONFIG_SPI_MASTER is not set | 684 | # CONFIG_SPI_MASTER is not set |
791 | |||
792 | # | ||
793 | # Dallas's 1-wire bus | ||
794 | # | ||
795 | # CONFIG_W1 is not set | 685 | # CONFIG_W1 is not set |
686 | # CONFIG_POWER_SUPPLY is not set | ||
796 | # CONFIG_HWMON is not set | 687 | # CONFIG_HWMON is not set |
797 | 688 | ||
798 | # | 689 | # |
@@ -817,6 +708,7 @@ CONFIG_DEVPORT=y | |||
817 | # | 708 | # |
818 | # CONFIG_DISPLAY_SUPPORT is not set | 709 | # CONFIG_DISPLAY_SUPPORT is not set |
819 | # CONFIG_VGASTATE is not set | 710 | # CONFIG_VGASTATE is not set |
711 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
820 | # CONFIG_FB is not set | 712 | # CONFIG_FB is not set |
821 | 713 | ||
822 | # | 714 | # |
@@ -829,55 +721,131 @@ CONFIG_DUMMY_CONSOLE=y | |||
829 | # Sound | 721 | # Sound |
830 | # | 722 | # |
831 | # CONFIG_SOUND is not set | 723 | # CONFIG_SOUND is not set |
724 | CONFIG_HID_SUPPORT=y | ||
725 | CONFIG_HID=m | ||
726 | # CONFIG_HID_DEBUG is not set | ||
832 | 727 | ||
833 | # | 728 | # |
834 | # HID Devices | 729 | # USB Input Devices |
835 | # | 730 | # |
836 | # CONFIG_HID is not set | 731 | CONFIG_USB_HID=m |
732 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
733 | # CONFIG_HID_FF is not set | ||
734 | # CONFIG_USB_HIDDEV is not set | ||
837 | 735 | ||
838 | # | 736 | # |
839 | # USB support | 737 | # USB HID Boot Protocol drivers |
840 | # | 738 | # |
739 | # CONFIG_USB_KBD is not set | ||
740 | # CONFIG_USB_MOUSE is not set | ||
741 | CONFIG_USB_SUPPORT=y | ||
841 | CONFIG_USB_ARCH_HAS_HCD=y | 742 | CONFIG_USB_ARCH_HAS_HCD=y |
842 | CONFIG_USB_ARCH_HAS_OHCI=y | 743 | CONFIG_USB_ARCH_HAS_OHCI=y |
843 | CONFIG_USB_ARCH_HAS_EHCI=y | 744 | CONFIG_USB_ARCH_HAS_EHCI=y |
844 | # CONFIG_USB is not set | 745 | CONFIG_USB=m |
746 | # CONFIG_USB_DEBUG is not set | ||
747 | |||
748 | # | ||
749 | # Miscellaneous USB options | ||
750 | # | ||
751 | # CONFIG_USB_DEVICEFS is not set | ||
752 | # CONFIG_USB_DEVICE_CLASS is not set | ||
753 | # CONFIG_USB_DYNAMIC_MINORS is not set | ||
754 | # CONFIG_USB_OTG is not set | ||
755 | |||
756 | # | ||
757 | # USB Host Controller Drivers | ||
758 | # | ||
759 | CONFIG_USB_EHCI_HCD=m | ||
760 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
761 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | ||
762 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | ||
763 | # CONFIG_USB_ISP116X_HCD is not set | ||
764 | CONFIG_USB_OHCI_HCD=m | ||
765 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | ||
766 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set | ||
767 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | ||
768 | # CONFIG_USB_UHCI_HCD is not set | ||
769 | # CONFIG_USB_SL811_HCD is not set | ||
770 | # CONFIG_USB_R8A66597_HCD is not set | ||
771 | |||
772 | # | ||
773 | # USB Device Class drivers | ||
774 | # | ||
775 | # CONFIG_USB_ACM is not set | ||
776 | # CONFIG_USB_PRINTER is not set | ||
845 | 777 | ||
846 | # | 778 | # |
847 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 779 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
848 | # | 780 | # |
849 | 781 | ||
850 | # | 782 | # |
851 | # USB Gadget Support | 783 | # may also be needed; see USB_STORAGE Help for more information |
852 | # | 784 | # |
853 | # CONFIG_USB_GADGET is not set | 785 | CONFIG_USB_STORAGE=m |
854 | # CONFIG_MMC is not set | 786 | # CONFIG_USB_STORAGE_DEBUG is not set |
787 | # CONFIG_USB_STORAGE_DATAFAB is not set | ||
788 | # CONFIG_USB_STORAGE_FREECOM is not set | ||
789 | # CONFIG_USB_STORAGE_DPCM is not set | ||
790 | # CONFIG_USB_STORAGE_USBAT is not set | ||
791 | # CONFIG_USB_STORAGE_SDDR09 is not set | ||
792 | # CONFIG_USB_STORAGE_SDDR55 is not set | ||
793 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | ||
794 | # CONFIG_USB_STORAGE_ALAUDA is not set | ||
795 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
796 | # CONFIG_USB_STORAGE_KARMA is not set | ||
797 | # CONFIG_USB_LIBUSUAL is not set | ||
855 | 798 | ||
856 | # | 799 | # |
857 | # LED devices | 800 | # USB Imaging devices |
858 | # | 801 | # |
859 | # CONFIG_NEW_LEDS is not set | 802 | # CONFIG_USB_MDC800 is not set |
803 | # CONFIG_USB_MICROTEK is not set | ||
804 | CONFIG_USB_MON=y | ||
860 | 805 | ||
861 | # | 806 | # |
862 | # LED drivers | 807 | # USB port drivers |
863 | # | 808 | # |
864 | 809 | ||
865 | # | 810 | # |
866 | # LED Triggers | 811 | # USB Serial Converter support |
867 | # | 812 | # |
813 | # CONFIG_USB_SERIAL is not set | ||
868 | 814 | ||
869 | # | 815 | # |
870 | # InfiniBand support | 816 | # USB Miscellaneous drivers |
871 | # | 817 | # |
872 | # CONFIG_INFINIBAND is not set | 818 | # CONFIG_USB_EMI62 is not set |
819 | # CONFIG_USB_EMI26 is not set | ||
820 | # CONFIG_USB_ADUTUX is not set | ||
821 | # CONFIG_USB_AUERSWALD is not set | ||
822 | # CONFIG_USB_RIO500 is not set | ||
823 | # CONFIG_USB_LEGOTOWER is not set | ||
824 | # CONFIG_USB_LCD is not set | ||
825 | # CONFIG_USB_BERRY_CHARGE is not set | ||
826 | # CONFIG_USB_LED is not set | ||
827 | # CONFIG_USB_CYPRESS_CY7C63 is not set | ||
828 | # CONFIG_USB_CYTHERM is not set | ||
829 | # CONFIG_USB_PHIDGET is not set | ||
830 | # CONFIG_USB_IDMOUSE is not set | ||
831 | # CONFIG_USB_FTDI_ELAN is not set | ||
832 | # CONFIG_USB_APPLEDISPLAY is not set | ||
833 | # CONFIG_USB_SISUSBVGA is not set | ||
834 | # CONFIG_USB_LD is not set | ||
835 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
836 | # CONFIG_USB_IOWARRIOR is not set | ||
873 | 837 | ||
874 | # | 838 | # |
875 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | 839 | # USB DSL modem support |
876 | # | 840 | # |
877 | 841 | ||
878 | # | 842 | # |
879 | # Real Time Clock | 843 | # USB Gadget Support |
880 | # | 844 | # |
845 | # CONFIG_USB_GADGET is not set | ||
846 | # CONFIG_MMC is not set | ||
847 | # CONFIG_NEW_LEDS is not set | ||
848 | # CONFIG_INFINIBAND is not set | ||
881 | CONFIG_RTC_LIB=y | 849 | CONFIG_RTC_LIB=y |
882 | CONFIG_RTC_CLASS=y | 850 | CONFIG_RTC_CLASS=y |
883 | CONFIG_RTC_HCTOSYS=y | 851 | CONFIG_RTC_HCTOSYS=y |
@@ -894,10 +862,6 @@ CONFIG_RTC_INTF_DEV=y | |||
894 | # CONFIG_RTC_DRV_TEST is not set | 862 | # CONFIG_RTC_DRV_TEST is not set |
895 | 863 | ||
896 | # | 864 | # |
897 | # I2C RTC drivers | ||
898 | # | ||
899 | |||
900 | # | ||
901 | # SPI RTC drivers | 865 | # SPI RTC drivers |
902 | # | 866 | # |
903 | 867 | ||
@@ -906,8 +870,10 @@ CONFIG_RTC_INTF_DEV=y | |||
906 | # | 870 | # |
907 | CONFIG_RTC_DRV_CMOS=y | 871 | CONFIG_RTC_DRV_CMOS=y |
908 | # CONFIG_RTC_DRV_DS1553 is not set | 872 | # CONFIG_RTC_DRV_DS1553 is not set |
873 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
909 | # CONFIG_RTC_DRV_DS1742 is not set | 874 | # CONFIG_RTC_DRV_DS1742 is not set |
910 | # CONFIG_RTC_DRV_M48T86 is not set | 875 | # CONFIG_RTC_DRV_M48T86 is not set |
876 | # CONFIG_RTC_DRV_M48T59 is not set | ||
911 | # CONFIG_RTC_DRV_V3020 is not set | 877 | # CONFIG_RTC_DRV_V3020 is not set |
912 | 878 | ||
913 | # | 879 | # |
@@ -928,6 +894,11 @@ CONFIG_RTC_DRV_CMOS=y | |||
928 | # | 894 | # |
929 | 895 | ||
930 | # | 896 | # |
897 | # Userspace I/O | ||
898 | # | ||
899 | # CONFIG_UIO is not set | ||
900 | |||
901 | # | ||
931 | # File systems | 902 | # File systems |
932 | # | 903 | # |
933 | CONFIG_EXT2_FS=y | 904 | CONFIG_EXT2_FS=y |
@@ -1032,7 +1003,6 @@ CONFIG_SUNRPC=y | |||
1032 | # CONFIG_NCP_FS is not set | 1003 | # CONFIG_NCP_FS is not set |
1033 | # CONFIG_CODA_FS is not set | 1004 | # CONFIG_CODA_FS is not set |
1034 | # CONFIG_AFS_FS is not set | 1005 | # CONFIG_AFS_FS is not set |
1035 | # CONFIG_9P_FS is not set | ||
1036 | 1006 | ||
1037 | # | 1007 | # |
1038 | # Partition Types | 1008 | # Partition Types |
@@ -1074,10 +1044,6 @@ CONFIG_CMDLINE="" | |||
1074 | # | 1044 | # |
1075 | # CONFIG_KEYS is not set | 1045 | # CONFIG_KEYS is not set |
1076 | # CONFIG_SECURITY is not set | 1046 | # CONFIG_SECURITY is not set |
1077 | |||
1078 | # | ||
1079 | # Cryptographic options | ||
1080 | # | ||
1081 | # CONFIG_CRYPTO is not set | 1047 | # CONFIG_CRYPTO is not set |
1082 | 1048 | ||
1083 | # | 1049 | # |
@@ -1088,6 +1054,7 @@ CONFIG_BITREVERSE=y | |||
1088 | # CONFIG_CRC16 is not set | 1054 | # CONFIG_CRC16 is not set |
1089 | # CONFIG_CRC_ITU_T is not set | 1055 | # CONFIG_CRC_ITU_T is not set |
1090 | CONFIG_CRC32=y | 1056 | CONFIG_CRC32=y |
1057 | # CONFIG_CRC7 is not set | ||
1091 | CONFIG_LIBCRC32C=y | 1058 | CONFIG_LIBCRC32C=y |
1092 | CONFIG_PLIST=y | 1059 | CONFIG_PLIST=y |
1093 | CONFIG_HAS_IOMEM=y | 1060 | CONFIG_HAS_IOMEM=y |
diff --git a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig index 5467d750b6eb..d0d07faeb844 100644 --- a/arch/mips/configs/e55_defconfig +++ b/arch/mips/configs/e55_defconfig | |||
@@ -1,60 +1,47 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.20 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Tue Feb 20 21:47:28 2007 | 4 | # Wed Aug 8 10:36:25 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 13 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
30 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
31 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 21 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 22 | CONFIG_MACH_VR41XX=y |
36 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
38 | CONFIG_MACH_VR41XX=y | 25 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
43 | # CONFIG_SGI_IP27 is not set | 29 | # CONFIG_SGI_IP27 is not set |
44 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
55 | # CONFIG_TOSHIBA_JMR3927 is not set | 41 | # CONFIG_TOSHIBA_JMR3927 is not set |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 42 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 43 | # CONFIG_TOSHIBA_RBTX4938 is not set |
44 | # CONFIG_WR_PPMC is not set | ||
58 | CONFIG_CASIO_E55=y | 45 | CONFIG_CASIO_E55=y |
59 | # CONFIG_IBM_WORKPAD is not set | 46 | # CONFIG_IBM_WORKPAD is not set |
60 | # CONFIG_NEC_CMBVR4133 is not set | 47 | # CONFIG_NEC_CMBVR4133 is not set |
@@ -72,6 +59,8 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
72 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 59 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
73 | CONFIG_DMA_NONCOHERENT=y | 60 | CONFIG_DMA_NONCOHERENT=y |
74 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 61 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
62 | # CONFIG_HOTPLUG_CPU is not set | ||
63 | # CONFIG_NO_IOPORT is not set | ||
75 | # CONFIG_CPU_BIG_ENDIAN is not set | 64 | # CONFIG_CPU_BIG_ENDIAN is not set |
76 | CONFIG_CPU_LITTLE_ENDIAN=y | 65 | CONFIG_CPU_LITTLE_ENDIAN=y |
77 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 66 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
@@ -81,6 +70,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
81 | # | 70 | # |
82 | # CPU selection | 71 | # CPU selection |
83 | # | 72 | # |
73 | # CONFIG_CPU_LOONGSON2 is not set | ||
84 | # CONFIG_CPU_MIPS32_R1 is not set | 74 | # CONFIG_CPU_MIPS32_R1 is not set |
85 | # CONFIG_CPU_MIPS32_R2 is not set | 75 | # CONFIG_CPU_MIPS32_R2 is not set |
86 | # CONFIG_CPU_MIPS64_R1 is not set | 76 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -102,7 +92,6 @@ CONFIG_CPU_VR41XX=y | |||
102 | # CONFIG_CPU_SB1 is not set | 92 | # CONFIG_CPU_SB1 is not set |
103 | CONFIG_SYS_HAS_CPU_VR41XX=y | 93 | CONFIG_SYS_HAS_CPU_VR41XX=y |
104 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | 94 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y |
105 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
106 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | 95 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y |
107 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | 96 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y |
108 | 97 | ||
@@ -118,7 +107,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
118 | CONFIG_MIPS_MT_DISABLED=y | 107 | CONFIG_MIPS_MT_DISABLED=y |
119 | # CONFIG_MIPS_MT_SMP is not set | 108 | # CONFIG_MIPS_MT_SMP is not set |
120 | # CONFIG_MIPS_MT_SMTC is not set | 109 | # CONFIG_MIPS_MT_SMTC is not set |
121 | # CONFIG_MIPS_VPE_LOADER is not set | ||
122 | CONFIG_CPU_HAS_SYNC=y | 110 | CONFIG_CPU_HAS_SYNC=y |
123 | CONFIG_GENERIC_HARDIRQS=y | 111 | CONFIG_GENERIC_HARDIRQS=y |
124 | CONFIG_GENERIC_IRQ_PROBE=y | 112 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -132,45 +120,44 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
132 | # CONFIG_SPARSEMEM_STATIC is not set | 120 | # CONFIG_SPARSEMEM_STATIC is not set |
133 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 121 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
134 | # CONFIG_RESOURCES_64BIT is not set | 122 | # CONFIG_RESOURCES_64BIT is not set |
135 | CONFIG_ZONE_DMA_FLAG=1 | 123 | CONFIG_ZONE_DMA_FLAG=0 |
124 | CONFIG_VIRT_TO_BUS=y | ||
136 | # CONFIG_HZ_48 is not set | 125 | # CONFIG_HZ_48 is not set |
137 | # CONFIG_HZ_100 is not set | 126 | # CONFIG_HZ_100 is not set |
138 | # CONFIG_HZ_128 is not set | 127 | # CONFIG_HZ_128 is not set |
139 | # CONFIG_HZ_250 is not set | 128 | CONFIG_HZ_250=y |
140 | # CONFIG_HZ_256 is not set | 129 | # CONFIG_HZ_256 is not set |
141 | CONFIG_HZ_1000=y | 130 | # CONFIG_HZ_1000 is not set |
142 | # CONFIG_HZ_1024 is not set | 131 | # CONFIG_HZ_1024 is not set |
143 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | 132 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y |
144 | CONFIG_HZ=1000 | 133 | CONFIG_HZ=250 |
145 | CONFIG_PREEMPT_NONE=y | 134 | CONFIG_PREEMPT_NONE=y |
146 | # CONFIG_PREEMPT_VOLUNTARY is not set | 135 | # CONFIG_PREEMPT_VOLUNTARY is not set |
147 | # CONFIG_PREEMPT is not set | 136 | # CONFIG_PREEMPT is not set |
148 | # CONFIG_KEXEC is not set | 137 | # CONFIG_KEXEC is not set |
138 | CONFIG_SECCOMP=y | ||
149 | CONFIG_LOCKDEP_SUPPORT=y | 139 | CONFIG_LOCKDEP_SUPPORT=y |
150 | CONFIG_STACKTRACE_SUPPORT=y | 140 | CONFIG_STACKTRACE_SUPPORT=y |
151 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 141 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
152 | 142 | ||
153 | # | 143 | # |
154 | # Code maturity level options | 144 | # General setup |
155 | # | 145 | # |
156 | CONFIG_EXPERIMENTAL=y | 146 | CONFIG_EXPERIMENTAL=y |
157 | CONFIG_BROKEN_ON_SMP=y | 147 | CONFIG_BROKEN_ON_SMP=y |
158 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 148 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
159 | |||
160 | # | ||
161 | # General setup | ||
162 | # | ||
163 | CONFIG_LOCALVERSION="" | 149 | CONFIG_LOCALVERSION="" |
164 | CONFIG_LOCALVERSION_AUTO=y | 150 | CONFIG_LOCALVERSION_AUTO=y |
165 | CONFIG_SWAP=y | 151 | CONFIG_SWAP=y |
166 | CONFIG_SYSVIPC=y | 152 | CONFIG_SYSVIPC=y |
167 | # CONFIG_IPC_NS is not set | ||
168 | CONFIG_SYSVIPC_SYSCTL=y | 153 | CONFIG_SYSVIPC_SYSCTL=y |
169 | # CONFIG_BSD_PROCESS_ACCT is not set | 154 | # CONFIG_BSD_PROCESS_ACCT is not set |
170 | # CONFIG_UTS_NS is not set | 155 | # CONFIG_USER_NS is not set |
171 | # CONFIG_IKCONFIG is not set | 156 | # CONFIG_IKCONFIG is not set |
157 | CONFIG_LOG_BUF_SHIFT=14 | ||
172 | CONFIG_SYSFS_DEPRECATED=y | 158 | CONFIG_SYSFS_DEPRECATED=y |
173 | # CONFIG_RELAY is not set | 159 | # CONFIG_RELAY is not set |
160 | # CONFIG_BLK_DEV_INITRD is not set | ||
174 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 161 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
175 | CONFIG_SYSCTL=y | 162 | CONFIG_SYSCTL=y |
176 | CONFIG_EMBEDDED=y | 163 | CONFIG_EMBEDDED=y |
@@ -183,32 +170,30 @@ CONFIG_BUG=y | |||
183 | CONFIG_ELF_CORE=y | 170 | CONFIG_ELF_CORE=y |
184 | CONFIG_BASE_FULL=y | 171 | CONFIG_BASE_FULL=y |
185 | CONFIG_FUTEX=y | 172 | CONFIG_FUTEX=y |
173 | CONFIG_ANON_INODES=y | ||
186 | CONFIG_EPOLL=y | 174 | CONFIG_EPOLL=y |
175 | CONFIG_SIGNALFD=y | ||
176 | CONFIG_TIMERFD=y | ||
177 | CONFIG_EVENTFD=y | ||
187 | CONFIG_SHMEM=y | 178 | CONFIG_SHMEM=y |
188 | CONFIG_SLAB=y | ||
189 | CONFIG_VM_EVENT_COUNTERS=y | 179 | CONFIG_VM_EVENT_COUNTERS=y |
180 | CONFIG_SLAB=y | ||
181 | # CONFIG_SLUB is not set | ||
182 | # CONFIG_SLOB is not set | ||
190 | CONFIG_RT_MUTEXES=y | 183 | CONFIG_RT_MUTEXES=y |
191 | # CONFIG_TINY_SHMEM is not set | 184 | # CONFIG_TINY_SHMEM is not set |
192 | CONFIG_BASE_SMALL=0 | 185 | CONFIG_BASE_SMALL=0 |
193 | # CONFIG_SLOB is not set | ||
194 | |||
195 | # | ||
196 | # Loadable module support | ||
197 | # | ||
198 | CONFIG_MODULES=y | 186 | CONFIG_MODULES=y |
199 | CONFIG_MODULE_UNLOAD=y | 187 | CONFIG_MODULE_UNLOAD=y |
200 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 188 | CONFIG_MODULE_FORCE_UNLOAD=y |
201 | CONFIG_MODVERSIONS=y | 189 | CONFIG_MODVERSIONS=y |
202 | CONFIG_MODULE_SRCVERSION_ALL=y | 190 | CONFIG_MODULE_SRCVERSION_ALL=y |
203 | CONFIG_KMOD=y | 191 | CONFIG_KMOD=y |
204 | |||
205 | # | ||
206 | # Block layer | ||
207 | # | ||
208 | CONFIG_BLOCK=y | 192 | CONFIG_BLOCK=y |
209 | # CONFIG_LBD is not set | 193 | # CONFIG_LBD is not set |
210 | # CONFIG_BLK_DEV_IO_TRACE is not set | 194 | # CONFIG_BLK_DEV_IO_TRACE is not set |
211 | # CONFIG_LSF is not set | 195 | # CONFIG_LSF is not set |
196 | # CONFIG_BLK_DEV_BSG is not set | ||
212 | 197 | ||
213 | # | 198 | # |
214 | # IO Schedulers | 199 | # IO Schedulers |
@@ -226,6 +211,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
226 | # | 211 | # |
227 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) | 212 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) |
228 | # | 213 | # |
214 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
229 | CONFIG_ISA=y | 215 | CONFIG_ISA=y |
230 | CONFIG_MMU=y | 216 | CONFIG_MMU=y |
231 | 217 | ||
@@ -234,10 +220,6 @@ CONFIG_MMU=y | |||
234 | # | 220 | # |
235 | 221 | ||
236 | # | 222 | # |
237 | # PCI Hotplug Support | ||
238 | # | ||
239 | |||
240 | # | ||
241 | # Executable file formats | 223 | # Executable file formats |
242 | # | 224 | # |
243 | CONFIG_BINFMT_ELF=y | 225 | CONFIG_BINFMT_ELF=y |
@@ -247,10 +229,7 @@ CONFIG_TRAD_SIGNALS=y | |||
247 | # | 229 | # |
248 | # Power management options | 230 | # Power management options |
249 | # | 231 | # |
250 | CONFIG_PM=y | 232 | # CONFIG_PM is not set |
251 | # CONFIG_PM_LEGACY is not set | ||
252 | # CONFIG_PM_DEBUG is not set | ||
253 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
254 | 233 | ||
255 | # | 234 | # |
256 | # Networking | 235 | # Networking |
@@ -267,46 +246,18 @@ CONFIG_PM=y | |||
267 | CONFIG_STANDALONE=y | 246 | CONFIG_STANDALONE=y |
268 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 247 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
269 | # CONFIG_SYS_HYPERVISOR is not set | 248 | # CONFIG_SYS_HYPERVISOR is not set |
270 | |||
271 | # | ||
272 | # Connector - unified userspace <-> kernelspace linker | ||
273 | # | ||
274 | |||
275 | # | ||
276 | # Memory Technology Devices (MTD) | ||
277 | # | ||
278 | # CONFIG_MTD is not set | 249 | # CONFIG_MTD is not set |
279 | |||
280 | # | ||
281 | # Parallel port support | ||
282 | # | ||
283 | # CONFIG_PARPORT is not set | 250 | # CONFIG_PARPORT is not set |
284 | |||
285 | # | ||
286 | # Plug and Play support | ||
287 | # | ||
288 | # CONFIG_PNP is not set | 251 | # CONFIG_PNP is not set |
289 | # CONFIG_PNPACPI is not set | 252 | CONFIG_BLK_DEV=y |
290 | |||
291 | # | ||
292 | # Block devices | ||
293 | # | ||
294 | # CONFIG_BLK_DEV_COW_COMMON is not set | 253 | # CONFIG_BLK_DEV_COW_COMMON is not set |
295 | # CONFIG_BLK_DEV_LOOP is not set | 254 | # CONFIG_BLK_DEV_LOOP is not set |
296 | CONFIG_BLK_DEV_RAM=m | 255 | CONFIG_BLK_DEV_RAM=y |
297 | CONFIG_BLK_DEV_RAM_COUNT=16 | 256 | CONFIG_BLK_DEV_RAM_COUNT=16 |
298 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 257 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
299 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 258 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
300 | # CONFIG_BLK_DEV_INITRD is not set | ||
301 | # CONFIG_CDROM_PKTCDVD is not set | 259 | # CONFIG_CDROM_PKTCDVD is not set |
302 | 260 | # CONFIG_MISC_DEVICES is not set | |
303 | # | ||
304 | # Misc devices | ||
305 | # | ||
306 | |||
307 | # | ||
308 | # ATA/ATAPI/MFM/RLL support | ||
309 | # | ||
310 | CONFIG_IDE=y | 261 | CONFIG_IDE=y |
311 | CONFIG_IDE_MAX_HWIFS=4 | 262 | CONFIG_IDE_MAX_HWIFS=4 |
312 | CONFIG_BLK_DEV_IDE=y | 263 | CONFIG_BLK_DEV_IDE=y |
@@ -321,15 +272,16 @@ CONFIG_BLK_DEV_IDEDISK=y | |||
321 | # CONFIG_BLK_DEV_IDETAPE is not set | 272 | # CONFIG_BLK_DEV_IDETAPE is not set |
322 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 273 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
323 | # CONFIG_IDE_TASK_IOCTL is not set | 274 | # CONFIG_IDE_TASK_IOCTL is not set |
275 | CONFIG_IDE_PROC_FS=y | ||
324 | 276 | ||
325 | # | 277 | # |
326 | # IDE chipset support/bugfixes | 278 | # IDE chipset support/bugfixes |
327 | # | 279 | # |
328 | CONFIG_IDE_GENERIC=y | 280 | CONFIG_IDE_GENERIC=y |
281 | # CONFIG_IDEPCI_PCIBUS_ORDER is not set | ||
329 | # CONFIG_IDE_ARM is not set | 282 | # CONFIG_IDE_ARM is not set |
330 | # CONFIG_IDE_CHIPSETS is not set | 283 | # CONFIG_IDE_CHIPSETS is not set |
331 | # CONFIG_BLK_DEV_IDEDMA is not set | 284 | # CONFIG_BLK_DEV_IDEDMA is not set |
332 | # CONFIG_IDEDMA_AUTO is not set | ||
333 | # CONFIG_BLK_DEV_HD is not set | 285 | # CONFIG_BLK_DEV_HD is not set |
334 | 286 | ||
335 | # | 287 | # |
@@ -337,43 +289,10 @@ CONFIG_IDE_GENERIC=y | |||
337 | # | 289 | # |
338 | # CONFIG_RAID_ATTRS is not set | 290 | # CONFIG_RAID_ATTRS is not set |
339 | # CONFIG_SCSI is not set | 291 | # CONFIG_SCSI is not set |
292 | # CONFIG_SCSI_DMA is not set | ||
340 | # CONFIG_SCSI_NETLINK is not set | 293 | # CONFIG_SCSI_NETLINK is not set |
341 | |||
342 | # | ||
343 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
344 | # | ||
345 | # CONFIG_ATA is not set | 294 | # CONFIG_ATA is not set |
346 | |||
347 | # | ||
348 | # Old CD-ROM drivers (not SCSI, not IDE) | ||
349 | # | ||
350 | # CONFIG_CD_NO_IDESCSI is not set | ||
351 | |||
352 | # | ||
353 | # Multi-device support (RAID and LVM) | ||
354 | # | ||
355 | # CONFIG_MD is not set | 295 | # CONFIG_MD is not set |
356 | |||
357 | # | ||
358 | # Fusion MPT device support | ||
359 | # | ||
360 | # CONFIG_FUSION is not set | ||
361 | |||
362 | # | ||
363 | # IEEE 1394 (FireWire) support | ||
364 | # | ||
365 | |||
366 | # | ||
367 | # I2O device support | ||
368 | # | ||
369 | |||
370 | # | ||
371 | # ISDN subsystem | ||
372 | # | ||
373 | |||
374 | # | ||
375 | # Telephony Support | ||
376 | # | ||
377 | # CONFIG_PHONE is not set | 296 | # CONFIG_PHONE is not set |
378 | 297 | ||
379 | # | 298 | # |
@@ -381,14 +300,12 @@ CONFIG_IDE_GENERIC=y | |||
381 | # | 300 | # |
382 | CONFIG_INPUT=y | 301 | CONFIG_INPUT=y |
383 | # CONFIG_INPUT_FF_MEMLESS is not set | 302 | # CONFIG_INPUT_FF_MEMLESS is not set |
303 | # CONFIG_INPUT_POLLDEV is not set | ||
384 | 304 | ||
385 | # | 305 | # |
386 | # Userland interfaces | 306 | # Userland interfaces |
387 | # | 307 | # |
388 | CONFIG_INPUT_MOUSEDEV=y | 308 | # CONFIG_INPUT_MOUSEDEV is not set |
389 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
390 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=320 | ||
391 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 | ||
392 | # CONFIG_INPUT_JOYDEV is not set | 309 | # CONFIG_INPUT_JOYDEV is not set |
393 | # CONFIG_INPUT_TSDEV is not set | 310 | # CONFIG_INPUT_TSDEV is not set |
394 | # CONFIG_INPUT_EVDEV is not set | 311 | # CONFIG_INPUT_EVDEV is not set |
@@ -400,6 +317,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 | |||
400 | # CONFIG_INPUT_KEYBOARD is not set | 317 | # CONFIG_INPUT_KEYBOARD is not set |
401 | # CONFIG_INPUT_MOUSE is not set | 318 | # CONFIG_INPUT_MOUSE is not set |
402 | # CONFIG_INPUT_JOYSTICK is not set | 319 | # CONFIG_INPUT_JOYSTICK is not set |
320 | # CONFIG_INPUT_TABLET is not set | ||
403 | # CONFIG_INPUT_TOUCHSCREEN is not set | 321 | # CONFIG_INPUT_TOUCHSCREEN is not set |
404 | # CONFIG_INPUT_MISC is not set | 322 | # CONFIG_INPUT_MISC is not set |
405 | 323 | ||
@@ -433,45 +351,16 @@ CONFIG_SERIAL_VR41XX_CONSOLE=y | |||
433 | CONFIG_UNIX98_PTYS=y | 351 | CONFIG_UNIX98_PTYS=y |
434 | CONFIG_LEGACY_PTYS=y | 352 | CONFIG_LEGACY_PTYS=y |
435 | CONFIG_LEGACY_PTY_COUNT=256 | 353 | CONFIG_LEGACY_PTY_COUNT=256 |
436 | |||
437 | # | ||
438 | # IPMI | ||
439 | # | ||
440 | # CONFIG_IPMI_HANDLER is not set | 354 | # CONFIG_IPMI_HANDLER is not set |
441 | 355 | # CONFIG_WATCHDOG is not set | |
442 | # | ||
443 | # Watchdog Cards | ||
444 | # | ||
445 | CONFIG_WATCHDOG=y | ||
446 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
447 | |||
448 | # | ||
449 | # Watchdog Device Drivers | ||
450 | # | ||
451 | # CONFIG_SOFT_WATCHDOG is not set | ||
452 | |||
453 | # | ||
454 | # ISA-based Watchdog Cards | ||
455 | # | ||
456 | # CONFIG_PCWATCHDOG is not set | ||
457 | # CONFIG_MIXCOMWD is not set | ||
458 | # CONFIG_WDT is not set | ||
459 | # CONFIG_HW_RANDOM is not set | 356 | # CONFIG_HW_RANDOM is not set |
460 | # CONFIG_RTC is not set | 357 | # CONFIG_RTC is not set |
461 | # CONFIG_GEN_RTC is not set | ||
462 | # CONFIG_DTLK is not set | 358 | # CONFIG_DTLK is not set |
463 | # CONFIG_R3964 is not set | 359 | # CONFIG_R3964 is not set |
464 | CONFIG_GPIO_VR41XX=y | 360 | CONFIG_GPIO_VR41XX=y |
465 | # CONFIG_RAW_DRIVER is not set | 361 | # CONFIG_RAW_DRIVER is not set |
466 | |||
467 | # | ||
468 | # TPM devices | ||
469 | # | ||
470 | # CONFIG_TCG_TPM is not set | 362 | # CONFIG_TCG_TPM is not set |
471 | 363 | CONFIG_DEVPORT=y | |
472 | # | ||
473 | # I2C support | ||
474 | # | ||
475 | # CONFIG_I2C is not set | 364 | # CONFIG_I2C is not set |
476 | 365 | ||
477 | # | 366 | # |
@@ -479,31 +368,32 @@ CONFIG_GPIO_VR41XX=y | |||
479 | # | 368 | # |
480 | # CONFIG_SPI is not set | 369 | # CONFIG_SPI is not set |
481 | # CONFIG_SPI_MASTER is not set | 370 | # CONFIG_SPI_MASTER is not set |
482 | |||
483 | # | ||
484 | # Dallas's 1-wire bus | ||
485 | # | ||
486 | # CONFIG_W1 is not set | 371 | # CONFIG_W1 is not set |
372 | # CONFIG_POWER_SUPPLY is not set | ||
373 | # CONFIG_HWMON is not set | ||
487 | 374 | ||
488 | # | 375 | # |
489 | # Hardware Monitoring support | 376 | # Multifunction device drivers |
490 | # | 377 | # |
491 | # CONFIG_HWMON is not set | 378 | # CONFIG_MFD_SM501 is not set |
492 | # CONFIG_HWMON_VID is not set | ||
493 | 379 | ||
494 | # | 380 | # |
495 | # Multimedia devices | 381 | # Multimedia devices |
496 | # | 382 | # |
497 | # CONFIG_VIDEO_DEV is not set | 383 | # CONFIG_VIDEO_DEV is not set |
384 | # CONFIG_DAB is not set | ||
498 | 385 | ||
499 | # | 386 | # |
500 | # Digital Video Broadcasting Devices | 387 | # Graphics support |
501 | # | 388 | # |
389 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
502 | 390 | ||
503 | # | 391 | # |
504 | # Graphics support | 392 | # Display device support |
505 | # | 393 | # |
506 | # CONFIG_FIRMWARE_EDID is not set | 394 | # CONFIG_DISPLAY_SUPPORT is not set |
395 | # CONFIG_VGASTATE is not set | ||
396 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
507 | # CONFIG_FB is not set | 397 | # CONFIG_FB is not set |
508 | 398 | ||
509 | # | 399 | # |
@@ -512,65 +402,49 @@ CONFIG_GPIO_VR41XX=y | |||
512 | # CONFIG_VGA_CONSOLE is not set | 402 | # CONFIG_VGA_CONSOLE is not set |
513 | # CONFIG_MDA_CONSOLE is not set | 403 | # CONFIG_MDA_CONSOLE is not set |
514 | CONFIG_DUMMY_CONSOLE=y | 404 | CONFIG_DUMMY_CONSOLE=y |
515 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
516 | 405 | ||
517 | # | 406 | # |
518 | # Sound | 407 | # Sound |
519 | # | 408 | # |
520 | # CONFIG_SOUND is not set | 409 | # CONFIG_SOUND is not set |
521 | 410 | # CONFIG_HID_SUPPORT is not set | |
522 | # | 411 | # CONFIG_USB_SUPPORT is not set |
523 | # HID Devices | ||
524 | # | ||
525 | CONFIG_HID=y | ||
526 | # CONFIG_HID_DEBUG is not set | ||
527 | |||
528 | # | ||
529 | # USB support | ||
530 | # | ||
531 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
532 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
533 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
534 | |||
535 | # | ||
536 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
537 | # | ||
538 | |||
539 | # | ||
540 | # USB Gadget Support | ||
541 | # | ||
542 | # CONFIG_USB_GADGET is not set | ||
543 | |||
544 | # | ||
545 | # MMC/SD Card support | ||
546 | # | ||
547 | # CONFIG_MMC is not set | 412 | # CONFIG_MMC is not set |
548 | |||
549 | # | ||
550 | # LED devices | ||
551 | # | ||
552 | # CONFIG_NEW_LEDS is not set | 413 | # CONFIG_NEW_LEDS is not set |
414 | CONFIG_RTC_LIB=y | ||
415 | CONFIG_RTC_CLASS=y | ||
416 | CONFIG_RTC_HCTOSYS=y | ||
417 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
418 | # CONFIG_RTC_DEBUG is not set | ||
553 | 419 | ||
554 | # | 420 | # |
555 | # LED drivers | 421 | # RTC interfaces |
556 | # | 422 | # |
423 | CONFIG_RTC_INTF_SYSFS=y | ||
424 | CONFIG_RTC_INTF_PROC=y | ||
425 | CONFIG_RTC_INTF_DEV=y | ||
426 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
427 | # CONFIG_RTC_DRV_TEST is not set | ||
557 | 428 | ||
558 | # | 429 | # |
559 | # LED Triggers | 430 | # SPI RTC drivers |
560 | # | 431 | # |
561 | 432 | ||
562 | # | 433 | # |
563 | # InfiniBand support | 434 | # Platform RTC drivers |
564 | # | 435 | # |
436 | # CONFIG_RTC_DRV_CMOS is not set | ||
437 | # CONFIG_RTC_DRV_DS1553 is not set | ||
438 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
439 | # CONFIG_RTC_DRV_DS1742 is not set | ||
440 | # CONFIG_RTC_DRV_M48T86 is not set | ||
441 | # CONFIG_RTC_DRV_M48T59 is not set | ||
442 | # CONFIG_RTC_DRV_V3020 is not set | ||
565 | 443 | ||
566 | # | 444 | # |
567 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | 445 | # on-CPU RTC drivers |
568 | # | 446 | # |
569 | 447 | CONFIG_RTC_DRV_VR41XX=y | |
570 | # | ||
571 | # Real Time Clock | ||
572 | # | ||
573 | # CONFIG_RTC_CLASS is not set | ||
574 | 448 | ||
575 | # | 449 | # |
576 | # DMA Engine support | 450 | # DMA Engine support |
@@ -586,12 +460,9 @@ CONFIG_HID=y | |||
586 | # | 460 | # |
587 | 461 | ||
588 | # | 462 | # |
589 | # Auxiliary Display support | 463 | # Userspace I/O |
590 | # | ||
591 | |||
592 | # | ||
593 | # Virtualization | ||
594 | # | 464 | # |
465 | # CONFIG_UIO is not set | ||
595 | 466 | ||
596 | # | 467 | # |
597 | # File systems | 468 | # File systems |
@@ -599,8 +470,14 @@ CONFIG_HID=y | |||
599 | CONFIG_EXT2_FS=y | 470 | CONFIG_EXT2_FS=y |
600 | # CONFIG_EXT2_FS_XATTR is not set | 471 | # CONFIG_EXT2_FS_XATTR is not set |
601 | # CONFIG_EXT2_FS_XIP is not set | 472 | # CONFIG_EXT2_FS_XIP is not set |
602 | # CONFIG_EXT3_FS is not set | 473 | CONFIG_EXT3_FS=y |
474 | CONFIG_EXT3_FS_XATTR=y | ||
475 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
476 | # CONFIG_EXT3_FS_SECURITY is not set | ||
603 | # CONFIG_EXT4DEV_FS is not set | 477 | # CONFIG_EXT4DEV_FS is not set |
478 | CONFIG_JBD=y | ||
479 | # CONFIG_JBD_DEBUG is not set | ||
480 | CONFIG_FS_MBCACHE=y | ||
604 | # CONFIG_REISERFS_FS is not set | 481 | # CONFIG_REISERFS_FS is not set |
605 | # CONFIG_JFS_FS is not set | 482 | # CONFIG_JFS_FS is not set |
606 | CONFIG_FS_POSIX_ACL=y | 483 | CONFIG_FS_POSIX_ACL=y |
@@ -614,7 +491,7 @@ CONFIG_INOTIFY_USER=y | |||
614 | CONFIG_DNOTIFY=y | 491 | CONFIG_DNOTIFY=y |
615 | # CONFIG_AUTOFS_FS is not set | 492 | # CONFIG_AUTOFS_FS is not set |
616 | CONFIG_AUTOFS4_FS=y | 493 | CONFIG_AUTOFS4_FS=y |
617 | CONFIG_FUSE_FS=m | 494 | # CONFIG_FUSE_FS is not set |
618 | CONFIG_GENERIC_ACL=y | 495 | CONFIG_GENERIC_ACL=y |
619 | 496 | ||
620 | # | 497 | # |
@@ -687,7 +564,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
687 | # CONFIG_DEBUG_FS is not set | 564 | # CONFIG_DEBUG_FS is not set |
688 | # CONFIG_HEADERS_CHECK is not set | 565 | # CONFIG_HEADERS_CHECK is not set |
689 | # CONFIG_DEBUG_KERNEL is not set | 566 | # CONFIG_DEBUG_KERNEL is not set |
690 | CONFIG_LOG_BUF_SHIFT=14 | ||
691 | CONFIG_CROSSCOMPILE=y | 567 | CONFIG_CROSSCOMPILE=y |
692 | CONFIG_CMDLINE="console=ttyVR0,19200 ide0=0x1f0,0x3f6,40 mem=8M" | 568 | CONFIG_CMDLINE="console=ttyVR0,19200 ide0=0x1f0,0x3f6,40 mem=8M" |
693 | 569 | ||
@@ -696,10 +572,6 @@ CONFIG_CMDLINE="console=ttyVR0,19200 ide0=0x1f0,0x3f6,40 mem=8M" | |||
696 | # | 572 | # |
697 | # CONFIG_KEYS is not set | 573 | # CONFIG_KEYS is not set |
698 | # CONFIG_SECURITY is not set | 574 | # CONFIG_SECURITY is not set |
699 | |||
700 | # | ||
701 | # Cryptographic options | ||
702 | # | ||
703 | # CONFIG_CRYPTO is not set | 575 | # CONFIG_CRYPTO is not set |
704 | 576 | ||
705 | # | 577 | # |
@@ -707,8 +579,11 @@ CONFIG_CMDLINE="console=ttyVR0,19200 ide0=0x1f0,0x3f6,40 mem=8M" | |||
707 | # | 579 | # |
708 | # CONFIG_CRC_CCITT is not set | 580 | # CONFIG_CRC_CCITT is not set |
709 | # CONFIG_CRC16 is not set | 581 | # CONFIG_CRC16 is not set |
582 | # CONFIG_CRC_ITU_T is not set | ||
710 | # CONFIG_CRC32 is not set | 583 | # CONFIG_CRC32 is not set |
584 | # CONFIG_CRC7 is not set | ||
711 | # CONFIG_LIBCRC32C is not set | 585 | # CONFIG_LIBCRC32C is not set |
712 | CONFIG_PLIST=y | 586 | CONFIG_PLIST=y |
713 | CONFIG_HAS_IOMEM=y | 587 | CONFIG_HAS_IOMEM=y |
714 | CONFIG_HAS_IOPORT=y | 588 | CONFIG_HAS_IOPORT=y |
589 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig index 934d8a008936..670039bb1a7c 100644 --- a/arch/mips/configs/ip22_defconfig +++ b/arch/mips/configs/ip22_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.20 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Tue Feb 20 21:47:32 2007 | 4 | # Tue Aug 7 12:39:49 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -9,52 +9,40 @@ CONFIG_MIPS=y | |||
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | CONFIG_ZONE_DMA=y |
12 | # CONFIG_MIPS_MTX1 is not set | 12 | # CONFIG_MACH_ALCHEMY is not set |
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 13 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 14 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 15 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 16 | # CONFIG_MACH_JAZZ is not set |
17 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 18 | # CONFIG_MIPS_ATLAS is not set |
30 | # CONFIG_MIPS_MALTA is not set | 19 | # CONFIG_MIPS_MALTA is not set |
31 | # CONFIG_MIPS_SEAD is not set | 20 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 21 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 22 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 23 | # CONFIG_MACH_VR41XX is not set |
36 | # CONFIG_PNX8550_JBS is not set | 24 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 25 | # CONFIG_PNX8550_STB810 is not set |
38 | # CONFIG_MACH_VR41XX is not set | 26 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 27 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 28 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | CONFIG_SGI_IP22=y | 29 | CONFIG_SGI_IP22=y |
43 | # CONFIG_SGI_IP27 is not set | 30 | # CONFIG_SGI_IP27 is not set |
44 | # CONFIG_SGI_IP32 is not set | 31 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 32 | # CONFIG_SIBYTE_CRHINE is not set |
33 | # CONFIG_SIBYTE_CARMEL is not set | ||
34 | # CONFIG_SIBYTE_CRHONE is not set | ||
35 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 36 | # CONFIG_SIBYTE_SWARM is not set |
37 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 38 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 39 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 40 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 41 | # CONFIG_SNI_RM is not set |
55 | # CONFIG_TOSHIBA_JMR3927 is not set | 42 | # CONFIG_TOSHIBA_JMR3927 is not set |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 43 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 44 | # CONFIG_TOSHIBA_RBTX4938 is not set |
45 | # CONFIG_WR_PPMC is not set | ||
58 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 46 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
59 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 47 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
60 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 48 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
@@ -67,6 +55,9 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
67 | CONFIG_ARC=y | 55 | CONFIG_ARC=y |
68 | CONFIG_DMA_NONCOHERENT=y | 56 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 57 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
58 | CONFIG_EARLY_PRINTK=y | ||
59 | CONFIG_SYS_HAS_EARLY_PRINTK=y | ||
60 | # CONFIG_NO_IOPORT is not set | ||
70 | CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y | 61 | CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y |
71 | CONFIG_CPU_BIG_ENDIAN=y | 62 | CONFIG_CPU_BIG_ENDIAN=y |
72 | # CONFIG_CPU_LITTLE_ENDIAN is not set | 63 | # CONFIG_CPU_LITTLE_ENDIAN is not set |
@@ -82,6 +73,7 @@ CONFIG_ARC_PROMLIB=y | |||
82 | # | 73 | # |
83 | # CPU selection | 74 | # CPU selection |
84 | # | 75 | # |
76 | # CONFIG_CPU_LOONGSON2 is not set | ||
85 | # CONFIG_CPU_MIPS32_R1 is not set | 77 | # CONFIG_CPU_MIPS32_R1 is not set |
86 | # CONFIG_CPU_MIPS32_R2 is not set | 78 | # CONFIG_CPU_MIPS32_R2 is not set |
87 | # CONFIG_CPU_MIPS64_R1 is not set | 79 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -122,8 +114,6 @@ CONFIG_IP22_CPU_SCACHE=y | |||
122 | CONFIG_MIPS_MT_DISABLED=y | 114 | CONFIG_MIPS_MT_DISABLED=y |
123 | # CONFIG_MIPS_MT_SMP is not set | 115 | # CONFIG_MIPS_MT_SMP is not set |
124 | # CONFIG_MIPS_MT_SMTC is not set | 116 | # CONFIG_MIPS_MT_SMTC is not set |
125 | # CONFIG_MIPS_VPE_LOADER is not set | ||
126 | # CONFIG_64BIT_PHYS_ADDR is not set | ||
127 | CONFIG_CPU_HAS_LLSC=y | 117 | CONFIG_CPU_HAS_LLSC=y |
128 | CONFIG_CPU_HAS_SYNC=y | 118 | CONFIG_CPU_HAS_SYNC=y |
129 | CONFIG_GENERIC_HARDIRQS=y | 119 | CONFIG_GENERIC_HARDIRQS=y |
@@ -139,6 +129,8 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
139 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 129 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
140 | # CONFIG_RESOURCES_64BIT is not set | 130 | # CONFIG_RESOURCES_64BIT is not set |
141 | CONFIG_ZONE_DMA_FLAG=1 | 131 | CONFIG_ZONE_DMA_FLAG=1 |
132 | CONFIG_BOUNCE=y | ||
133 | CONFIG_VIRT_TO_BUS=y | ||
142 | # CONFIG_HZ_48 is not set | 134 | # CONFIG_HZ_48 is not set |
143 | # CONFIG_HZ_100 is not set | 135 | # CONFIG_HZ_100 is not set |
144 | # CONFIG_HZ_128 is not set | 136 | # CONFIG_HZ_128 is not set |
@@ -152,35 +144,33 @@ CONFIG_HZ=1000 | |||
152 | CONFIG_PREEMPT_VOLUNTARY=y | 144 | CONFIG_PREEMPT_VOLUNTARY=y |
153 | # CONFIG_PREEMPT is not set | 145 | # CONFIG_PREEMPT is not set |
154 | # CONFIG_KEXEC is not set | 146 | # CONFIG_KEXEC is not set |
147 | CONFIG_SECCOMP=y | ||
155 | CONFIG_LOCKDEP_SUPPORT=y | 148 | CONFIG_LOCKDEP_SUPPORT=y |
156 | CONFIG_STACKTRACE_SUPPORT=y | 149 | CONFIG_STACKTRACE_SUPPORT=y |
157 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 150 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
158 | 151 | ||
159 | # | 152 | # |
160 | # Code maturity level options | 153 | # General setup |
161 | # | 154 | # |
162 | CONFIG_EXPERIMENTAL=y | 155 | CONFIG_EXPERIMENTAL=y |
163 | CONFIG_BROKEN_ON_SMP=y | 156 | CONFIG_BROKEN_ON_SMP=y |
164 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 157 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
165 | |||
166 | # | ||
167 | # General setup | ||
168 | # | ||
169 | CONFIG_LOCALVERSION="" | 158 | CONFIG_LOCALVERSION="" |
170 | CONFIG_LOCALVERSION_AUTO=y | 159 | CONFIG_LOCALVERSION_AUTO=y |
171 | CONFIG_SWAP=y | 160 | CONFIG_SWAP=y |
172 | CONFIG_SYSVIPC=y | 161 | CONFIG_SYSVIPC=y |
173 | # CONFIG_IPC_NS is not set | ||
174 | CONFIG_SYSVIPC_SYSCTL=y | 162 | CONFIG_SYSVIPC_SYSCTL=y |
175 | # CONFIG_POSIX_MQUEUE is not set | 163 | # CONFIG_POSIX_MQUEUE is not set |
176 | # CONFIG_BSD_PROCESS_ACCT is not set | 164 | # CONFIG_BSD_PROCESS_ACCT is not set |
177 | # CONFIG_TASKSTATS is not set | 165 | # CONFIG_TASKSTATS is not set |
178 | # CONFIG_UTS_NS is not set | 166 | # CONFIG_USER_NS is not set |
179 | # CONFIG_AUDIT is not set | 167 | # CONFIG_AUDIT is not set |
180 | CONFIG_IKCONFIG=y | 168 | CONFIG_IKCONFIG=y |
181 | CONFIG_IKCONFIG_PROC=y | 169 | CONFIG_IKCONFIG_PROC=y |
170 | CONFIG_LOG_BUF_SHIFT=14 | ||
182 | CONFIG_SYSFS_DEPRECATED=y | 171 | CONFIG_SYSFS_DEPRECATED=y |
183 | CONFIG_RELAY=y | 172 | CONFIG_RELAY=y |
173 | # CONFIG_BLK_DEV_INITRD is not set | ||
184 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 174 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
185 | CONFIG_SYSCTL=y | 175 | CONFIG_SYSCTL=y |
186 | CONFIG_EMBEDDED=y | 176 | CONFIG_EMBEDDED=y |
@@ -193,32 +183,30 @@ CONFIG_BUG=y | |||
193 | CONFIG_ELF_CORE=y | 183 | CONFIG_ELF_CORE=y |
194 | CONFIG_BASE_FULL=y | 184 | CONFIG_BASE_FULL=y |
195 | CONFIG_FUTEX=y | 185 | CONFIG_FUTEX=y |
186 | CONFIG_ANON_INODES=y | ||
196 | CONFIG_EPOLL=y | 187 | CONFIG_EPOLL=y |
188 | CONFIG_SIGNALFD=y | ||
189 | CONFIG_TIMERFD=y | ||
190 | CONFIG_EVENTFD=y | ||
197 | CONFIG_SHMEM=y | 191 | CONFIG_SHMEM=y |
198 | CONFIG_SLAB=y | ||
199 | CONFIG_VM_EVENT_COUNTERS=y | 192 | CONFIG_VM_EVENT_COUNTERS=y |
193 | CONFIG_SLAB=y | ||
194 | # CONFIG_SLUB is not set | ||
195 | # CONFIG_SLOB is not set | ||
200 | CONFIG_RT_MUTEXES=y | 196 | CONFIG_RT_MUTEXES=y |
201 | # CONFIG_TINY_SHMEM is not set | 197 | # CONFIG_TINY_SHMEM is not set |
202 | CONFIG_BASE_SMALL=0 | 198 | CONFIG_BASE_SMALL=0 |
203 | # CONFIG_SLOB is not set | ||
204 | |||
205 | # | ||
206 | # Loadable module support | ||
207 | # | ||
208 | CONFIG_MODULES=y | 199 | CONFIG_MODULES=y |
209 | CONFIG_MODULE_UNLOAD=y | 200 | CONFIG_MODULE_UNLOAD=y |
210 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 201 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
211 | CONFIG_MODVERSIONS=y | 202 | CONFIG_MODVERSIONS=y |
212 | CONFIG_MODULE_SRCVERSION_ALL=y | 203 | CONFIG_MODULE_SRCVERSION_ALL=y |
213 | CONFIG_KMOD=y | 204 | CONFIG_KMOD=y |
214 | |||
215 | # | ||
216 | # Block layer | ||
217 | # | ||
218 | CONFIG_BLOCK=y | 205 | CONFIG_BLOCK=y |
219 | # CONFIG_LBD is not set | 206 | # CONFIG_LBD is not set |
220 | # CONFIG_BLK_DEV_IO_TRACE is not set | 207 | # CONFIG_BLK_DEV_IO_TRACE is not set |
221 | # CONFIG_LSF is not set | 208 | # CONFIG_LSF is not set |
209 | # CONFIG_BLK_DEV_BSG is not set | ||
222 | 210 | ||
223 | # | 211 | # |
224 | # IO Schedulers | 212 | # IO Schedulers |
@@ -237,6 +225,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
237 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) | 225 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) |
238 | # | 226 | # |
239 | CONFIG_HW_HAS_EISA=y | 227 | CONFIG_HW_HAS_EISA=y |
228 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
240 | # CONFIG_EISA is not set | 229 | # CONFIG_EISA is not set |
241 | CONFIG_MMU=y | 230 | CONFIG_MMU=y |
242 | 231 | ||
@@ -245,10 +234,6 @@ CONFIG_MMU=y | |||
245 | # | 234 | # |
246 | 235 | ||
247 | # | 236 | # |
248 | # PCI Hotplug Support | ||
249 | # | ||
250 | |||
251 | # | ||
252 | # Executable file formats | 237 | # Executable file formats |
253 | # | 238 | # |
254 | CONFIG_BINFMT_ELF=y | 239 | CONFIG_BINFMT_ELF=y |
@@ -261,7 +246,7 @@ CONFIG_TRAD_SIGNALS=y | |||
261 | CONFIG_PM=y | 246 | CONFIG_PM=y |
262 | # CONFIG_PM_LEGACY is not set | 247 | # CONFIG_PM_LEGACY is not set |
263 | # CONFIG_PM_DEBUG is not set | 248 | # CONFIG_PM_DEBUG is not set |
264 | # CONFIG_PM_SYSFS_DEPRECATED is not set | 249 | # CONFIG_SUSPEND is not set |
265 | 250 | ||
266 | # | 251 | # |
267 | # Networking | 252 | # Networking |
@@ -271,7 +256,6 @@ CONFIG_NET=y | |||
271 | # | 256 | # |
272 | # Networking options | 257 | # Networking options |
273 | # | 258 | # |
274 | # CONFIG_NETDEBUG is not set | ||
275 | CONFIG_PACKET=y | 259 | CONFIG_PACKET=y |
276 | CONFIG_PACKET_MMAP=y | 260 | CONFIG_PACKET_MMAP=y |
277 | CONFIG_UNIX=y | 261 | CONFIG_UNIX=y |
@@ -308,10 +292,6 @@ CONFIG_INET_TCP_DIAG=y | |||
308 | CONFIG_TCP_CONG_CUBIC=y | 292 | CONFIG_TCP_CONG_CUBIC=y |
309 | CONFIG_DEFAULT_TCP_CONG="cubic" | 293 | CONFIG_DEFAULT_TCP_CONG="cubic" |
310 | CONFIG_TCP_MD5SIG=y | 294 | CONFIG_TCP_MD5SIG=y |
311 | |||
312 | # | ||
313 | # IP: Virtual Server Configuration | ||
314 | # | ||
315 | CONFIG_IP_VS=m | 295 | CONFIG_IP_VS=m |
316 | # CONFIG_IP_VS_DEBUG is not set | 296 | # CONFIG_IP_VS_DEBUG is not set |
317 | CONFIG_IP_VS_TAB_BITS=12 | 297 | CONFIG_IP_VS_TAB_BITS=12 |
@@ -346,10 +326,11 @@ CONFIG_IPV6=m | |||
346 | CONFIG_IPV6_PRIVACY=y | 326 | CONFIG_IPV6_PRIVACY=y |
347 | CONFIG_IPV6_ROUTER_PREF=y | 327 | CONFIG_IPV6_ROUTER_PREF=y |
348 | CONFIG_IPV6_ROUTE_INFO=y | 328 | CONFIG_IPV6_ROUTE_INFO=y |
329 | CONFIG_IPV6_OPTIMISTIC_DAD=y | ||
349 | CONFIG_INET6_AH=m | 330 | CONFIG_INET6_AH=m |
350 | CONFIG_INET6_ESP=m | 331 | CONFIG_INET6_ESP=m |
351 | CONFIG_INET6_IPCOMP=m | 332 | CONFIG_INET6_IPCOMP=m |
352 | CONFIG_IPV6_MIP6=y | 333 | CONFIG_IPV6_MIP6=m |
353 | CONFIG_INET6_XFRM_TUNNEL=m | 334 | CONFIG_INET6_XFRM_TUNNEL=m |
354 | CONFIG_INET6_TUNNEL=m | 335 | CONFIG_INET6_TUNNEL=m |
355 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | 336 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m |
@@ -371,8 +352,6 @@ CONFIG_NETFILTER_NETLINK=m | |||
371 | CONFIG_NETFILTER_NETLINK_QUEUE=m | 352 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
372 | CONFIG_NETFILTER_NETLINK_LOG=m | 353 | CONFIG_NETFILTER_NETLINK_LOG=m |
373 | CONFIG_NF_CONNTRACK_ENABLED=m | 354 | CONFIG_NF_CONNTRACK_ENABLED=m |
374 | CONFIG_NF_CONNTRACK_SUPPORT=y | ||
375 | # CONFIG_IP_NF_CONNTRACK_SUPPORT is not set | ||
376 | CONFIG_NF_CONNTRACK=m | 355 | CONFIG_NF_CONNTRACK=m |
377 | CONFIG_NF_CT_ACCT=y | 356 | CONFIG_NF_CT_ACCT=y |
378 | CONFIG_NF_CONNTRACK_MARK=y | 357 | CONFIG_NF_CONNTRACK_MARK=y |
@@ -380,6 +359,7 @@ CONFIG_NF_CONNTRACK_SECMARK=y | |||
380 | CONFIG_NF_CONNTRACK_EVENTS=y | 359 | CONFIG_NF_CONNTRACK_EVENTS=y |
381 | CONFIG_NF_CT_PROTO_GRE=m | 360 | CONFIG_NF_CT_PROTO_GRE=m |
382 | CONFIG_NF_CT_PROTO_SCTP=m | 361 | CONFIG_NF_CT_PROTO_SCTP=m |
362 | CONFIG_NF_CT_PROTO_UDPLITE=m | ||
383 | CONFIG_NF_CONNTRACK_AMANDA=m | 363 | CONFIG_NF_CONNTRACK_AMANDA=m |
384 | CONFIG_NF_CONNTRACK_FTP=m | 364 | CONFIG_NF_CONNTRACK_FTP=m |
385 | CONFIG_NF_CONNTRACK_H323=m | 365 | CONFIG_NF_CONNTRACK_H323=m |
@@ -398,11 +378,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
398 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 378 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
399 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | 379 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m |
400 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | 380 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m |
381 | CONFIG_NETFILTER_XT_TARGET_TRACE=m | ||
401 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m | 382 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m |
402 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m | 383 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m |
403 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | 384 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m |
404 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 385 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
405 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | 386 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m |
387 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m | ||
406 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | 388 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
407 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | 389 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
408 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 390 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
@@ -423,6 +405,7 @@ CONFIG_NETFILTER_XT_MATCH_STATE=m | |||
423 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m | 405 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m |
424 | CONFIG_NETFILTER_XT_MATCH_STRING=m | 406 | CONFIG_NETFILTER_XT_MATCH_STRING=m |
425 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | 407 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m |
408 | CONFIG_NETFILTER_XT_MATCH_U32=m | ||
426 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | 409 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m |
427 | 410 | ||
428 | # | 411 | # |
@@ -490,25 +473,13 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
490 | CONFIG_IP6_NF_MANGLE=m | 473 | CONFIG_IP6_NF_MANGLE=m |
491 | CONFIG_IP6_NF_TARGET_HL=m | 474 | CONFIG_IP6_NF_TARGET_HL=m |
492 | CONFIG_IP6_NF_RAW=m | 475 | CONFIG_IP6_NF_RAW=m |
493 | |||
494 | # | ||
495 | # DCCP Configuration (EXPERIMENTAL) | ||
496 | # | ||
497 | # CONFIG_IP_DCCP is not set | 476 | # CONFIG_IP_DCCP is not set |
498 | |||
499 | # | ||
500 | # SCTP Configuration (EXPERIMENTAL) | ||
501 | # | ||
502 | CONFIG_IP_SCTP=m | 477 | CONFIG_IP_SCTP=m |
503 | # CONFIG_SCTP_DBG_MSG is not set | 478 | # CONFIG_SCTP_DBG_MSG is not set |
504 | # CONFIG_SCTP_DBG_OBJCNT is not set | 479 | # CONFIG_SCTP_DBG_OBJCNT is not set |
505 | # CONFIG_SCTP_HMAC_NONE is not set | 480 | # CONFIG_SCTP_HMAC_NONE is not set |
506 | # CONFIG_SCTP_HMAC_SHA1 is not set | 481 | # CONFIG_SCTP_HMAC_SHA1 is not set |
507 | CONFIG_SCTP_HMAC_MD5=y | 482 | CONFIG_SCTP_HMAC_MD5=y |
508 | |||
509 | # | ||
510 | # TIPC Configuration (EXPERIMENTAL) | ||
511 | # | ||
512 | # CONFIG_TIPC is not set | 483 | # CONFIG_TIPC is not set |
513 | # CONFIG_ATM is not set | 484 | # CONFIG_ATM is not set |
514 | # CONFIG_BRIDGE is not set | 485 | # CONFIG_BRIDGE is not set |
@@ -527,9 +498,6 @@ CONFIG_SCTP_HMAC_MD5=y | |||
527 | # | 498 | # |
528 | CONFIG_NET_SCHED=y | 499 | CONFIG_NET_SCHED=y |
529 | CONFIG_NET_SCH_FIFO=y | 500 | CONFIG_NET_SCH_FIFO=y |
530 | # CONFIG_NET_SCH_CLK_JIFFIES is not set | ||
531 | CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y | ||
532 | # CONFIG_NET_SCH_CLK_CPU is not set | ||
533 | 501 | ||
534 | # | 502 | # |
535 | # Queueing/Scheduling | 503 | # Queueing/Scheduling |
@@ -538,6 +506,7 @@ CONFIG_NET_SCH_CBQ=m | |||
538 | CONFIG_NET_SCH_HTB=m | 506 | CONFIG_NET_SCH_HTB=m |
539 | CONFIG_NET_SCH_HFSC=m | 507 | CONFIG_NET_SCH_HFSC=m |
540 | CONFIG_NET_SCH_PRIO=m | 508 | CONFIG_NET_SCH_PRIO=m |
509 | CONFIG_NET_SCH_RR=m | ||
541 | CONFIG_NET_SCH_RED=m | 510 | CONFIG_NET_SCH_RED=m |
542 | CONFIG_NET_SCH_SFQ=m | 511 | CONFIG_NET_SCH_SFQ=m |
543 | CONFIG_NET_SCH_TEQL=m | 512 | CONFIG_NET_SCH_TEQL=m |
@@ -562,10 +531,16 @@ CONFIG_NET_CLS_U32=m | |||
562 | CONFIG_NET_CLS_RSVP=m | 531 | CONFIG_NET_CLS_RSVP=m |
563 | CONFIG_NET_CLS_RSVP6=m | 532 | CONFIG_NET_CLS_RSVP6=m |
564 | # CONFIG_NET_EMATCH is not set | 533 | # CONFIG_NET_EMATCH is not set |
565 | # CONFIG_NET_CLS_ACT is not set | 534 | CONFIG_NET_CLS_ACT=y |
535 | CONFIG_NET_ACT_POLICE=y | ||
536 | CONFIG_NET_ACT_GACT=m | ||
537 | CONFIG_GACT_PROB=y | ||
538 | CONFIG_NET_ACT_MIRRED=m | ||
539 | CONFIG_NET_ACT_IPT=m | ||
540 | CONFIG_NET_ACT_PEDIT=m | ||
541 | CONFIG_NET_ACT_SIMP=m | ||
566 | CONFIG_NET_CLS_POLICE=y | 542 | CONFIG_NET_CLS_POLICE=y |
567 | # CONFIG_NET_CLS_IND is not set | 543 | # CONFIG_NET_CLS_IND is not set |
568 | CONFIG_NET_ESTIMATOR=y | ||
569 | 544 | ||
570 | # | 545 | # |
571 | # Network testing | 546 | # Network testing |
@@ -574,14 +549,26 @@ CONFIG_NET_ESTIMATOR=y | |||
574 | # CONFIG_HAMRADIO is not set | 549 | # CONFIG_HAMRADIO is not set |
575 | # CONFIG_IRDA is not set | 550 | # CONFIG_IRDA is not set |
576 | # CONFIG_BT is not set | 551 | # CONFIG_BT is not set |
552 | # CONFIG_AF_RXRPC is not set | ||
553 | CONFIG_FIB_RULES=y | ||
554 | |||
555 | # | ||
556 | # Wireless | ||
557 | # | ||
558 | CONFIG_CFG80211=m | ||
559 | CONFIG_WIRELESS_EXT=y | ||
560 | CONFIG_MAC80211=m | ||
561 | # CONFIG_MAC80211_DEBUG is not set | ||
577 | CONFIG_IEEE80211=m | 562 | CONFIG_IEEE80211=m |
578 | # CONFIG_IEEE80211_DEBUG is not set | 563 | # CONFIG_IEEE80211_DEBUG is not set |
579 | CONFIG_IEEE80211_CRYPT_WEP=m | 564 | CONFIG_IEEE80211_CRYPT_WEP=m |
580 | CONFIG_IEEE80211_CRYPT_CCMP=m | 565 | CONFIG_IEEE80211_CRYPT_CCMP=m |
566 | CONFIG_IEEE80211_CRYPT_TKIP=m | ||
581 | CONFIG_IEEE80211_SOFTMAC=m | 567 | CONFIG_IEEE80211_SOFTMAC=m |
582 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | 568 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set |
583 | CONFIG_WIRELESS_EXT=y | 569 | CONFIG_RFKILL=m |
584 | CONFIG_FIB_RULES=y | 570 | CONFIG_RFKILL_INPUT=m |
571 | # CONFIG_NET_9P is not set | ||
585 | 572 | ||
586 | # | 573 | # |
587 | # Device Drivers | 574 | # Device Drivers |
@@ -593,47 +580,19 @@ CONFIG_FIB_RULES=y | |||
593 | CONFIG_STANDALONE=y | 580 | CONFIG_STANDALONE=y |
594 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 581 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
595 | # CONFIG_SYS_HYPERVISOR is not set | 582 | # CONFIG_SYS_HYPERVISOR is not set |
596 | |||
597 | # | ||
598 | # Connector - unified userspace <-> kernelspace linker | ||
599 | # | ||
600 | CONFIG_CONNECTOR=m | 583 | CONFIG_CONNECTOR=m |
601 | |||
602 | # | ||
603 | # Memory Technology Devices (MTD) | ||
604 | # | ||
605 | # CONFIG_MTD is not set | 584 | # CONFIG_MTD is not set |
606 | |||
607 | # | ||
608 | # Parallel port support | ||
609 | # | ||
610 | # CONFIG_PARPORT is not set | 585 | # CONFIG_PARPORT is not set |
611 | 586 | CONFIG_BLK_DEV=y | |
612 | # | ||
613 | # Plug and Play support | ||
614 | # | ||
615 | # CONFIG_PNPACPI is not set | ||
616 | |||
617 | # | ||
618 | # Block devices | ||
619 | # | ||
620 | # CONFIG_BLK_DEV_COW_COMMON is not set | 587 | # CONFIG_BLK_DEV_COW_COMMON is not set |
621 | # CONFIG_BLK_DEV_LOOP is not set | 588 | # CONFIG_BLK_DEV_LOOP is not set |
622 | # CONFIG_BLK_DEV_NBD is not set | 589 | # CONFIG_BLK_DEV_NBD is not set |
623 | # CONFIG_BLK_DEV_RAM is not set | 590 | # CONFIG_BLK_DEV_RAM is not set |
624 | # CONFIG_BLK_DEV_INITRD is not set | ||
625 | CONFIG_CDROM_PKTCDVD=m | 591 | CONFIG_CDROM_PKTCDVD=m |
626 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 592 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
627 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 593 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
628 | CONFIG_ATA_OVER_ETH=m | 594 | CONFIG_ATA_OVER_ETH=m |
629 | 595 | # CONFIG_MISC_DEVICES is not set | |
630 | # | ||
631 | # Misc devices | ||
632 | # | ||
633 | |||
634 | # | ||
635 | # ATA/ATAPI/MFM/RLL support | ||
636 | # | ||
637 | # CONFIG_IDE is not set | 596 | # CONFIG_IDE is not set |
638 | 597 | ||
639 | # | 598 | # |
@@ -641,6 +600,7 @@ CONFIG_ATA_OVER_ETH=m | |||
641 | # | 600 | # |
642 | CONFIG_RAID_ATTRS=m | 601 | CONFIG_RAID_ATTRS=m |
643 | CONFIG_SCSI=y | 602 | CONFIG_SCSI=y |
603 | CONFIG_SCSI_DMA=y | ||
644 | CONFIG_SCSI_TGT=m | 604 | CONFIG_SCSI_TGT=m |
645 | # CONFIG_SCSI_NETLINK is not set | 605 | # CONFIG_SCSI_NETLINK is not set |
646 | CONFIG_SCSI_PROC_FS=y | 606 | CONFIG_SCSI_PROC_FS=y |
@@ -663,6 +623,7 @@ CONFIG_CHR_DEV_SCH=m | |||
663 | CONFIG_SCSI_CONSTANTS=y | 623 | CONFIG_SCSI_CONSTANTS=y |
664 | # CONFIG_SCSI_LOGGING is not set | 624 | # CONFIG_SCSI_LOGGING is not set |
665 | CONFIG_SCSI_SCAN_ASYNC=y | 625 | CONFIG_SCSI_SCAN_ASYNC=y |
626 | CONFIG_SCSI_WAIT_SCAN=m | ||
666 | 627 | ||
667 | # | 628 | # |
668 | # SCSI Transports | 629 | # SCSI Transports |
@@ -670,51 +631,21 @@ CONFIG_SCSI_SCAN_ASYNC=y | |||
670 | CONFIG_SCSI_SPI_ATTRS=m | 631 | CONFIG_SCSI_SPI_ATTRS=m |
671 | # CONFIG_SCSI_FC_ATTRS is not set | 632 | # CONFIG_SCSI_FC_ATTRS is not set |
672 | CONFIG_SCSI_ISCSI_ATTRS=m | 633 | CONFIG_SCSI_ISCSI_ATTRS=m |
673 | CONFIG_SCSI_SAS_ATTRS=m | ||
674 | # CONFIG_SCSI_SAS_LIBSAS is not set | 634 | # CONFIG_SCSI_SAS_LIBSAS is not set |
675 | 635 | CONFIG_SCSI_LOWLEVEL=y | |
676 | # | ||
677 | # SCSI low-level drivers | ||
678 | # | ||
679 | CONFIG_ISCSI_TCP=m | 636 | CONFIG_ISCSI_TCP=m |
680 | CONFIG_SGIWD93_SCSI=y | 637 | CONFIG_SGIWD93_SCSI=y |
681 | # CONFIG_SCSI_DEBUG is not set | 638 | # CONFIG_SCSI_DEBUG is not set |
682 | |||
683 | # | ||
684 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
685 | # | ||
686 | # CONFIG_ATA is not set | 639 | # CONFIG_ATA is not set |
687 | |||
688 | # | ||
689 | # Multi-device support (RAID and LVM) | ||
690 | # | ||
691 | # CONFIG_MD is not set | 640 | # CONFIG_MD is not set |
692 | |||
693 | # | ||
694 | # Fusion MPT device support | ||
695 | # | ||
696 | # CONFIG_FUSION is not set | ||
697 | |||
698 | # | ||
699 | # IEEE 1394 (FireWire) support | ||
700 | # | ||
701 | |||
702 | # | ||
703 | # I2O device support | ||
704 | # | ||
705 | |||
706 | # | ||
707 | # Network device support | ||
708 | # | ||
709 | CONFIG_NETDEVICES=y | 641 | CONFIG_NETDEVICES=y |
642 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
643 | # CONFIG_IFB is not set | ||
710 | CONFIG_DUMMY=m | 644 | CONFIG_DUMMY=m |
711 | CONFIG_BONDING=m | 645 | CONFIG_BONDING=m |
646 | CONFIG_MACVLAN=m | ||
712 | CONFIG_EQUALIZER=m | 647 | CONFIG_EQUALIZER=m |
713 | CONFIG_TUN=m | 648 | CONFIG_TUN=m |
714 | |||
715 | # | ||
716 | # PHY device support | ||
717 | # | ||
718 | CONFIG_PHYLIB=m | 649 | CONFIG_PHYLIB=m |
719 | 650 | ||
720 | # | 651 | # |
@@ -728,36 +659,25 @@ CONFIG_CICADA_PHY=m | |||
728 | # CONFIG_VITESSE_PHY is not set | 659 | # CONFIG_VITESSE_PHY is not set |
729 | # CONFIG_SMSC_PHY is not set | 660 | # CONFIG_SMSC_PHY is not set |
730 | # CONFIG_BROADCOM_PHY is not set | 661 | # CONFIG_BROADCOM_PHY is not set |
662 | # CONFIG_ICPLUS_PHY is not set | ||
731 | # CONFIG_FIXED_PHY is not set | 663 | # CONFIG_FIXED_PHY is not set |
732 | |||
733 | # | ||
734 | # Ethernet (10 or 100Mbit) | ||
735 | # | ||
736 | CONFIG_NET_ETHERNET=y | 664 | CONFIG_NET_ETHERNET=y |
737 | # CONFIG_MII is not set | 665 | # CONFIG_MII is not set |
666 | # CONFIG_AX88796 is not set | ||
738 | # CONFIG_DM9000 is not set | 667 | # CONFIG_DM9000 is not set |
739 | CONFIG_SGISEEQ=y | 668 | CONFIG_SGISEEQ=y |
669 | # CONFIG_NETDEV_1000 is not set | ||
670 | # CONFIG_NETDEV_10000 is not set | ||
740 | 671 | ||
741 | # | 672 | # |
742 | # Ethernet (1000 Mbit) | 673 | # Wireless LAN |
743 | # | ||
744 | |||
745 | # | ||
746 | # Ethernet (10000 Mbit) | ||
747 | # | ||
748 | |||
749 | # | ||
750 | # Token Ring devices | ||
751 | # | ||
752 | |||
753 | # | ||
754 | # Wireless LAN (non-hamradio) | ||
755 | # | ||
756 | # CONFIG_NET_RADIO is not set | ||
757 | |||
758 | # | ||
759 | # Wan interfaces | ||
760 | # | 674 | # |
675 | CONFIG_WLAN_PRE80211=y | ||
676 | CONFIG_STRIP=m | ||
677 | CONFIG_WLAN_80211=y | ||
678 | # CONFIG_LIBERTAS is not set | ||
679 | CONFIG_HOSTAP=m | ||
680 | # CONFIG_HOSTAP_FIRMWARE is not set | ||
761 | # CONFIG_WAN is not set | 681 | # CONFIG_WAN is not set |
762 | # CONFIG_PPP is not set | 682 | # CONFIG_PPP is not set |
763 | # CONFIG_SLIP is not set | 683 | # CONFIG_SLIP is not set |
@@ -765,15 +685,7 @@ CONFIG_SGISEEQ=y | |||
765 | # CONFIG_NETCONSOLE is not set | 685 | # CONFIG_NETCONSOLE is not set |
766 | # CONFIG_NETPOLL is not set | 686 | # CONFIG_NETPOLL is not set |
767 | # CONFIG_NET_POLL_CONTROLLER is not set | 687 | # CONFIG_NET_POLL_CONTROLLER is not set |
768 | |||
769 | # | ||
770 | # ISDN subsystem | ||
771 | # | ||
772 | # CONFIG_ISDN is not set | 688 | # CONFIG_ISDN is not set |
773 | |||
774 | # | ||
775 | # Telephony Support | ||
776 | # | ||
777 | # CONFIG_PHONE is not set | 689 | # CONFIG_PHONE is not set |
778 | 690 | ||
779 | # | 691 | # |
@@ -781,6 +693,7 @@ CONFIG_SGISEEQ=y | |||
781 | # | 693 | # |
782 | CONFIG_INPUT=y | 694 | CONFIG_INPUT=y |
783 | # CONFIG_INPUT_FF_MEMLESS is not set | 695 | # CONFIG_INPUT_FF_MEMLESS is not set |
696 | # CONFIG_INPUT_POLLDEV is not set | ||
784 | 697 | ||
785 | # | 698 | # |
786 | # Userland interfaces | 699 | # Userland interfaces |
@@ -806,9 +719,16 @@ CONFIG_KEYBOARD_ATKBD=y | |||
806 | # CONFIG_KEYBOARD_STOWAWAY is not set | 719 | # CONFIG_KEYBOARD_STOWAWAY is not set |
807 | CONFIG_INPUT_MOUSE=y | 720 | CONFIG_INPUT_MOUSE=y |
808 | CONFIG_MOUSE_PS2=m | 721 | CONFIG_MOUSE_PS2=m |
722 | # CONFIG_MOUSE_PS2_ALPS is not set | ||
723 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
724 | # CONFIG_MOUSE_PS2_SYNAPTICS is not set | ||
725 | # CONFIG_MOUSE_PS2_LIFEBOOK is not set | ||
726 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
727 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
809 | CONFIG_MOUSE_SERIAL=m | 728 | CONFIG_MOUSE_SERIAL=m |
810 | # CONFIG_MOUSE_VSXXXAA is not set | 729 | # CONFIG_MOUSE_VSXXXAA is not set |
811 | # CONFIG_INPUT_JOYSTICK is not set | 730 | # CONFIG_INPUT_JOYSTICK is not set |
731 | # CONFIG_INPUT_TABLET is not set | ||
812 | # CONFIG_INPUT_TOUCHSCREEN is not set | 732 | # CONFIG_INPUT_TOUCHSCREEN is not set |
813 | # CONFIG_INPUT_MISC is not set | 733 | # CONFIG_INPUT_MISC is not set |
814 | 734 | ||
@@ -844,15 +764,7 @@ CONFIG_SERIAL_CORE=m | |||
844 | CONFIG_UNIX98_PTYS=y | 764 | CONFIG_UNIX98_PTYS=y |
845 | CONFIG_LEGACY_PTYS=y | 765 | CONFIG_LEGACY_PTYS=y |
846 | CONFIG_LEGACY_PTY_COUNT=256 | 766 | CONFIG_LEGACY_PTY_COUNT=256 |
847 | |||
848 | # | ||
849 | # IPMI | ||
850 | # | ||
851 | # CONFIG_IPMI_HANDLER is not set | 767 | # CONFIG_IPMI_HANDLER is not set |
852 | |||
853 | # | ||
854 | # Watchdog Cards | ||
855 | # | ||
856 | CONFIG_WATCHDOG=y | 768 | CONFIG_WATCHDOG=y |
857 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 769 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
858 | 770 | ||
@@ -864,20 +776,10 @@ CONFIG_INDYDOG=m | |||
864 | # CONFIG_HW_RANDOM is not set | 776 | # CONFIG_HW_RANDOM is not set |
865 | # CONFIG_RTC is not set | 777 | # CONFIG_RTC is not set |
866 | CONFIG_SGI_DS1286=m | 778 | CONFIG_SGI_DS1286=m |
867 | # CONFIG_GEN_RTC is not set | ||
868 | # CONFIG_DTLK is not set | ||
869 | # CONFIG_R3964 is not set | 779 | # CONFIG_R3964 is not set |
870 | CONFIG_RAW_DRIVER=m | 780 | CONFIG_RAW_DRIVER=m |
871 | CONFIG_MAX_RAW_DEVS=256 | 781 | CONFIG_MAX_RAW_DEVS=256 |
872 | |||
873 | # | ||
874 | # TPM devices | ||
875 | # | ||
876 | # CONFIG_TCG_TPM is not set | 782 | # CONFIG_TCG_TPM is not set |
877 | |||
878 | # | ||
879 | # I2C support | ||
880 | # | ||
881 | # CONFIG_I2C is not set | 783 | # CONFIG_I2C is not set |
882 | 784 | ||
883 | # | 785 | # |
@@ -885,32 +787,33 @@ CONFIG_MAX_RAW_DEVS=256 | |||
885 | # | 787 | # |
886 | # CONFIG_SPI is not set | 788 | # CONFIG_SPI is not set |
887 | # CONFIG_SPI_MASTER is not set | 789 | # CONFIG_SPI_MASTER is not set |
888 | |||
889 | # | ||
890 | # Dallas's 1-wire bus | ||
891 | # | ||
892 | # CONFIG_W1 is not set | 790 | # CONFIG_W1 is not set |
791 | # CONFIG_POWER_SUPPLY is not set | ||
792 | # CONFIG_HWMON is not set | ||
893 | 793 | ||
894 | # | 794 | # |
895 | # Hardware Monitoring support | 795 | # Multifunction device drivers |
896 | # | 796 | # |
897 | # CONFIG_HWMON is not set | 797 | # CONFIG_MFD_SM501 is not set |
898 | # CONFIG_HWMON_VID is not set | ||
899 | 798 | ||
900 | # | 799 | # |
901 | # Multimedia devices | 800 | # Multimedia devices |
902 | # | 801 | # |
903 | # CONFIG_VIDEO_DEV is not set | 802 | # CONFIG_VIDEO_DEV is not set |
803 | # CONFIG_DVB_CORE is not set | ||
804 | # CONFIG_DAB is not set | ||
904 | 805 | ||
905 | # | 806 | # |
906 | # Digital Video Broadcasting Devices | 807 | # Graphics support |
907 | # | 808 | # |
908 | # CONFIG_DVB is not set | 809 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
909 | 810 | ||
910 | # | 811 | # |
911 | # Graphics support | 812 | # Display device support |
912 | # | 813 | # |
913 | CONFIG_FIRMWARE_EDID=y | 814 | # CONFIG_DISPLAY_SUPPORT is not set |
815 | # CONFIG_VGASTATE is not set | ||
816 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
914 | # CONFIG_FB is not set | 817 | # CONFIG_FB is not set |
915 | 818 | ||
916 | # | 819 | # |
@@ -920,31 +823,20 @@ CONFIG_FIRMWARE_EDID=y | |||
920 | CONFIG_SGI_NEWPORT_CONSOLE=y | 823 | CONFIG_SGI_NEWPORT_CONSOLE=y |
921 | CONFIG_DUMMY_CONSOLE=y | 824 | CONFIG_DUMMY_CONSOLE=y |
922 | CONFIG_FONT_8x16=y | 825 | CONFIG_FONT_8x16=y |
923 | |||
924 | # | ||
925 | # Logo configuration | ||
926 | # | ||
927 | CONFIG_LOGO=y | 826 | CONFIG_LOGO=y |
928 | # CONFIG_LOGO_LINUX_MONO is not set | 827 | # CONFIG_LOGO_LINUX_MONO is not set |
929 | # CONFIG_LOGO_LINUX_VGA16 is not set | 828 | # CONFIG_LOGO_LINUX_VGA16 is not set |
930 | # CONFIG_LOGO_LINUX_CLUT224 is not set | 829 | # CONFIG_LOGO_LINUX_CLUT224 is not set |
931 | CONFIG_LOGO_SGI_CLUT224=y | 830 | CONFIG_LOGO_SGI_CLUT224=y |
932 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
933 | 831 | ||
934 | # | 832 | # |
935 | # Sound | 833 | # Sound |
936 | # | 834 | # |
937 | # CONFIG_SOUND is not set | 835 | # CONFIG_SOUND is not set |
938 | 836 | CONFIG_HID_SUPPORT=y | |
939 | # | ||
940 | # HID Devices | ||
941 | # | ||
942 | CONFIG_HID=y | 837 | CONFIG_HID=y |
943 | # CONFIG_HID_DEBUG is not set | 838 | # CONFIG_HID_DEBUG is not set |
944 | 839 | CONFIG_USB_SUPPORT=y | |
945 | # | ||
946 | # USB support | ||
947 | # | ||
948 | # CONFIG_USB_ARCH_HAS_HCD is not set | 840 | # CONFIG_USB_ARCH_HAS_HCD is not set |
949 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 841 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
950 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 842 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
@@ -957,36 +849,8 @@ CONFIG_HID=y | |||
957 | # USB Gadget Support | 849 | # USB Gadget Support |
958 | # | 850 | # |
959 | # CONFIG_USB_GADGET is not set | 851 | # CONFIG_USB_GADGET is not set |
960 | |||
961 | # | ||
962 | # MMC/SD Card support | ||
963 | # | ||
964 | # CONFIG_MMC is not set | 852 | # CONFIG_MMC is not set |
965 | |||
966 | # | ||
967 | # LED devices | ||
968 | # | ||
969 | # CONFIG_NEW_LEDS is not set | 853 | # CONFIG_NEW_LEDS is not set |
970 | |||
971 | # | ||
972 | # LED drivers | ||
973 | # | ||
974 | |||
975 | # | ||
976 | # LED Triggers | ||
977 | # | ||
978 | |||
979 | # | ||
980 | # InfiniBand support | ||
981 | # | ||
982 | |||
983 | # | ||
984 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
985 | # | ||
986 | |||
987 | # | ||
988 | # Real Time Clock | ||
989 | # | ||
990 | # CONFIG_RTC_CLASS is not set | 854 | # CONFIG_RTC_CLASS is not set |
991 | 855 | ||
992 | # | 856 | # |
@@ -1003,12 +867,9 @@ CONFIG_HID=y | |||
1003 | # | 867 | # |
1004 | 868 | ||
1005 | # | 869 | # |
1006 | # Auxiliary Display support | 870 | # Userspace I/O |
1007 | # | ||
1008 | |||
1009 | # | ||
1010 | # Virtualization | ||
1011 | # | 871 | # |
872 | # CONFIG_UIO is not set | ||
1012 | 873 | ||
1013 | # | 874 | # |
1014 | # File systems | 875 | # File systems |
@@ -1121,6 +982,7 @@ CONFIG_NFS_ACL_SUPPORT=m | |||
1121 | CONFIG_NFS_COMMON=y | 982 | CONFIG_NFS_COMMON=y |
1122 | CONFIG_SUNRPC=m | 983 | CONFIG_SUNRPC=m |
1123 | CONFIG_SUNRPC_GSS=m | 984 | CONFIG_SUNRPC_GSS=m |
985 | # CONFIG_SUNRPC_BIND34 is not set | ||
1124 | CONFIG_RPCSEC_GSS_KRB5=m | 986 | CONFIG_RPCSEC_GSS_KRB5=m |
1125 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 987 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1126 | CONFIG_SMB_FS=m | 988 | CONFIG_SMB_FS=m |
@@ -1136,7 +998,6 @@ CONFIG_CIFS=m | |||
1136 | CONFIG_CODA_FS=m | 998 | CONFIG_CODA_FS=m |
1137 | # CONFIG_CODA_FS_OLD_API is not set | 999 | # CONFIG_CODA_FS_OLD_API is not set |
1138 | # CONFIG_AFS_FS is not set | 1000 | # CONFIG_AFS_FS is not set |
1139 | # CONFIG_9P_FS is not set | ||
1140 | 1001 | ||
1141 | # | 1002 | # |
1142 | # Partition Types | 1003 | # Partition Types |
@@ -1158,6 +1019,7 @@ CONFIG_SGI_PARTITION=y | |||
1158 | # CONFIG_SUN_PARTITION is not set | 1019 | # CONFIG_SUN_PARTITION is not set |
1159 | # CONFIG_KARMA_PARTITION is not set | 1020 | # CONFIG_KARMA_PARTITION is not set |
1160 | # CONFIG_EFI_PARTITION is not set | 1021 | # CONFIG_EFI_PARTITION is not set |
1022 | # CONFIG_SYSV68_PARTITION is not set | ||
1161 | 1023 | ||
1162 | # | 1024 | # |
1163 | # Native Language Support | 1025 | # Native Language Support |
@@ -1207,8 +1069,6 @@ CONFIG_NLS_UTF8=m | |||
1207 | # Distributed Lock Manager | 1069 | # Distributed Lock Manager |
1208 | # | 1070 | # |
1209 | CONFIG_DLM=m | 1071 | CONFIG_DLM=m |
1210 | CONFIG_DLM_TCP=y | ||
1211 | # CONFIG_DLM_SCTP is not set | ||
1212 | # CONFIG_DLM_DEBUG is not set | 1072 | # CONFIG_DLM_DEBUG is not set |
1213 | 1073 | ||
1214 | # | 1074 | # |
@@ -1227,7 +1087,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1227 | # CONFIG_DEBUG_FS is not set | 1087 | # CONFIG_DEBUG_FS is not set |
1228 | # CONFIG_HEADERS_CHECK is not set | 1088 | # CONFIG_HEADERS_CHECK is not set |
1229 | # CONFIG_DEBUG_KERNEL is not set | 1089 | # CONFIG_DEBUG_KERNEL is not set |
1230 | CONFIG_LOG_BUF_SHIFT=14 | ||
1231 | CONFIG_CROSSCOMPILE=y | 1090 | CONFIG_CROSSCOMPILE=y |
1232 | CONFIG_CMDLINE="" | 1091 | CONFIG_CMDLINE="" |
1233 | 1092 | ||
@@ -1237,12 +1096,9 @@ CONFIG_CMDLINE="" | |||
1237 | CONFIG_KEYS=y | 1096 | CONFIG_KEYS=y |
1238 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | 1097 | CONFIG_KEYS_DEBUG_PROC_KEYS=y |
1239 | # CONFIG_SECURITY is not set | 1098 | # CONFIG_SECURITY is not set |
1240 | |||
1241 | # | ||
1242 | # Cryptographic options | ||
1243 | # | ||
1244 | CONFIG_CRYPTO=y | 1099 | CONFIG_CRYPTO=y |
1245 | CONFIG_CRYPTO_ALGAPI=y | 1100 | CONFIG_CRYPTO_ALGAPI=y |
1101 | CONFIG_CRYPTO_ABLKCIPHER=m | ||
1246 | CONFIG_CRYPTO_BLKCIPHER=m | 1102 | CONFIG_CRYPTO_BLKCIPHER=m |
1247 | CONFIG_CRYPTO_HASH=y | 1103 | CONFIG_CRYPTO_HASH=y |
1248 | CONFIG_CRYPTO_MANAGER=y | 1104 | CONFIG_CRYPTO_MANAGER=y |
@@ -1261,6 +1117,7 @@ CONFIG_CRYPTO_ECB=m | |||
1261 | CONFIG_CRYPTO_CBC=m | 1117 | CONFIG_CRYPTO_CBC=m |
1262 | CONFIG_CRYPTO_PCBC=m | 1118 | CONFIG_CRYPTO_PCBC=m |
1263 | CONFIG_CRYPTO_LRW=m | 1119 | CONFIG_CRYPTO_LRW=m |
1120 | CONFIG_CRYPTO_CRYPTD=m | ||
1264 | CONFIG_CRYPTO_DES=m | 1121 | CONFIG_CRYPTO_DES=m |
1265 | CONFIG_CRYPTO_FCRYPT=m | 1122 | CONFIG_CRYPTO_FCRYPT=m |
1266 | CONFIG_CRYPTO_BLOWFISH=m | 1123 | CONFIG_CRYPTO_BLOWFISH=m |
@@ -1279,10 +1136,7 @@ CONFIG_CRYPTO_MICHAEL_MIC=m | |||
1279 | CONFIG_CRYPTO_CRC32C=m | 1136 | CONFIG_CRYPTO_CRC32C=m |
1280 | CONFIG_CRYPTO_CAMELLIA=m | 1137 | CONFIG_CRYPTO_CAMELLIA=m |
1281 | # CONFIG_CRYPTO_TEST is not set | 1138 | # CONFIG_CRYPTO_TEST is not set |
1282 | 1139 | # CONFIG_CRYPTO_HW is not set | |
1283 | # | ||
1284 | # Hardware crypto devices | ||
1285 | # | ||
1286 | 1140 | ||
1287 | # | 1141 | # |
1288 | # Library routines | 1142 | # Library routines |
@@ -1290,7 +1144,9 @@ CONFIG_CRYPTO_CAMELLIA=m | |||
1290 | CONFIG_BITREVERSE=m | 1144 | CONFIG_BITREVERSE=m |
1291 | # CONFIG_CRC_CCITT is not set | 1145 | # CONFIG_CRC_CCITT is not set |
1292 | CONFIG_CRC16=m | 1146 | CONFIG_CRC16=m |
1147 | # CONFIG_CRC_ITU_T is not set | ||
1293 | CONFIG_CRC32=m | 1148 | CONFIG_CRC32=m |
1149 | # CONFIG_CRC7 is not set | ||
1294 | CONFIG_LIBCRC32C=m | 1150 | CONFIG_LIBCRC32C=m |
1295 | CONFIG_ZLIB_INFLATE=m | 1151 | CONFIG_ZLIB_INFLATE=m |
1296 | CONFIG_ZLIB_DEFLATE=m | 1152 | CONFIG_ZLIB_DEFLATE=m |
@@ -1301,3 +1157,4 @@ CONFIG_TEXTSEARCH_FSM=m | |||
1301 | CONFIG_PLIST=y | 1157 | CONFIG_PLIST=y |
1302 | CONFIG_HAS_IOMEM=y | 1158 | CONFIG_HAS_IOMEM=y |
1303 | CONFIG_HAS_IOPORT=y | 1159 | CONFIG_HAS_IOPORT=y |
1160 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig index eb35f7518d06..49bcc58929ba 100644 --- a/arch/mips/configs/ip27_defconfig +++ b/arch/mips/configs/ip27_defconfig | |||
@@ -1,66 +1,52 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.20 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Tue Feb 20 21:47:32 2007 | 4 | # Tue Aug 7 13:04:24 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 13 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
30 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
31 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 21 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 22 | # CONFIG_MACH_VR41XX is not set |
36 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
38 | # CONFIG_MACH_VR41XX is not set | 25 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
43 | CONFIG_SGI_IP27=y | 29 | CONFIG_SGI_IP27=y |
44 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
55 | # CONFIG_TOSHIBA_JMR3927 is not set | 41 | # CONFIG_TOSHIBA_JMR3927 is not set |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 42 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 43 | # CONFIG_TOSHIBA_RBTX4938 is not set |
44 | # CONFIG_WR_PPMC is not set | ||
58 | CONFIG_SGI_SN_M_MODE=y | 45 | CONFIG_SGI_SN_M_MODE=y |
59 | # CONFIG_SGI_SN_N_MODE is not set | 46 | # CONFIG_SGI_SN_N_MODE is not set |
60 | # CONFIG_MAPPED_KERNEL is not set | 47 | # CONFIG_MAPPED_KERNEL is not set |
61 | # CONFIG_REPLICATE_KTEXT is not set | 48 | # CONFIG_REPLICATE_KTEXT is not set |
62 | # CONFIG_REPLICATE_EXHANDLERS is not set | 49 | # CONFIG_REPLICATE_EXHANDLERS is not set |
63 | CONFIG_EARLY_PRINTK=y | ||
64 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 50 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
65 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 51 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
66 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 52 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
@@ -72,6 +58,9 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
72 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 58 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
73 | CONFIG_ARC=y | 59 | CONFIG_ARC=y |
74 | CONFIG_DMA_IP27=y | 60 | CONFIG_DMA_IP27=y |
61 | CONFIG_EARLY_PRINTK=y | ||
62 | CONFIG_SYS_HAS_EARLY_PRINTK=y | ||
63 | # CONFIG_NO_IOPORT is not set | ||
75 | CONFIG_CPU_BIG_ENDIAN=y | 64 | CONFIG_CPU_BIG_ENDIAN=y |
76 | # CONFIG_CPU_LITTLE_ENDIAN is not set | 65 | # CONFIG_CPU_LITTLE_ENDIAN is not set |
77 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | 66 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y |
@@ -82,6 +71,7 @@ CONFIG_BOOT_ELF64=y | |||
82 | # | 71 | # |
83 | # CPU selection | 72 | # CPU selection |
84 | # | 73 | # |
74 | # CONFIG_CPU_LOONGSON2 is not set | ||
85 | # CONFIG_CPU_MIPS32_R1 is not set | 75 | # CONFIG_CPU_MIPS32_R1 is not set |
86 | # CONFIG_CPU_MIPS32_R2 is not set | 76 | # CONFIG_CPU_MIPS32_R2 is not set |
87 | # CONFIG_CPU_MIPS64_R1 is not set | 77 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -119,7 +109,6 @@ CONFIG_CPU_HAS_PREFETCH=y | |||
119 | CONFIG_MIPS_MT_DISABLED=y | 109 | CONFIG_MIPS_MT_DISABLED=y |
120 | # CONFIG_MIPS_MT_SMP is not set | 110 | # CONFIG_MIPS_MT_SMP is not set |
121 | # CONFIG_MIPS_MT_SMTC is not set | 111 | # CONFIG_MIPS_MT_SMTC is not set |
122 | # CONFIG_MIPS_VPE_LOADER is not set | ||
123 | CONFIG_CPU_HAS_LLSC=y | 112 | CONFIG_CPU_HAS_LLSC=y |
124 | CONFIG_CPU_HAS_SYNC=y | 113 | CONFIG_CPU_HAS_SYNC=y |
125 | CONFIG_GENERIC_HARDIRQS=y | 114 | CONFIG_GENERIC_HARDIRQS=y |
@@ -141,7 +130,8 @@ CONFIG_NEED_MULTIPLE_NODES=y | |||
141 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 130 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
142 | CONFIG_MIGRATION=y | 131 | CONFIG_MIGRATION=y |
143 | CONFIG_RESOURCES_64BIT=y | 132 | CONFIG_RESOURCES_64BIT=y |
144 | CONFIG_ZONE_DMA_FLAG=1 | 133 | CONFIG_ZONE_DMA_FLAG=0 |
134 | CONFIG_VIRT_TO_BUS=y | ||
145 | CONFIG_SMP=y | 135 | CONFIG_SMP=y |
146 | CONFIG_SYS_SUPPORTS_SMP=y | 136 | CONFIG_SYS_SUPPORTS_SMP=y |
147 | CONFIG_NR_CPUS_DEFAULT_64=y | 137 | CONFIG_NR_CPUS_DEFAULT_64=y |
@@ -161,36 +151,34 @@ CONFIG_PREEMPT_NONE=y | |||
161 | CONFIG_PREEMPT_BKL=y | 151 | CONFIG_PREEMPT_BKL=y |
162 | # CONFIG_MIPS_INSANE_LARGE is not set | 152 | # CONFIG_MIPS_INSANE_LARGE is not set |
163 | # CONFIG_KEXEC is not set | 153 | # CONFIG_KEXEC is not set |
154 | CONFIG_SECCOMP=y | ||
164 | CONFIG_LOCKDEP_SUPPORT=y | 155 | CONFIG_LOCKDEP_SUPPORT=y |
165 | CONFIG_STACKTRACE_SUPPORT=y | 156 | CONFIG_STACKTRACE_SUPPORT=y |
166 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 157 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
167 | 158 | ||
168 | # | 159 | # |
169 | # Code maturity level options | 160 | # General setup |
170 | # | 161 | # |
171 | CONFIG_EXPERIMENTAL=y | 162 | CONFIG_EXPERIMENTAL=y |
172 | CONFIG_LOCK_KERNEL=y | 163 | CONFIG_LOCK_KERNEL=y |
173 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 164 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
174 | |||
175 | # | ||
176 | # General setup | ||
177 | # | ||
178 | CONFIG_LOCALVERSION="" | 165 | CONFIG_LOCALVERSION="" |
179 | CONFIG_LOCALVERSION_AUTO=y | 166 | CONFIG_LOCALVERSION_AUTO=y |
180 | CONFIG_SWAP=y | 167 | CONFIG_SWAP=y |
181 | CONFIG_SYSVIPC=y | 168 | CONFIG_SYSVIPC=y |
182 | # CONFIG_IPC_NS is not set | ||
183 | CONFIG_SYSVIPC_SYSCTL=y | 169 | CONFIG_SYSVIPC_SYSCTL=y |
184 | CONFIG_POSIX_MQUEUE=y | 170 | CONFIG_POSIX_MQUEUE=y |
185 | # CONFIG_BSD_PROCESS_ACCT is not set | 171 | # CONFIG_BSD_PROCESS_ACCT is not set |
186 | # CONFIG_TASKSTATS is not set | 172 | # CONFIG_TASKSTATS is not set |
187 | # CONFIG_UTS_NS is not set | 173 | # CONFIG_USER_NS is not set |
188 | # CONFIG_AUDIT is not set | 174 | # CONFIG_AUDIT is not set |
189 | CONFIG_IKCONFIG=y | 175 | CONFIG_IKCONFIG=y |
190 | CONFIG_IKCONFIG_PROC=y | 176 | CONFIG_IKCONFIG_PROC=y |
177 | CONFIG_LOG_BUF_SHIFT=15 | ||
191 | CONFIG_CPUSETS=y | 178 | CONFIG_CPUSETS=y |
192 | CONFIG_SYSFS_DEPRECATED=y | 179 | CONFIG_SYSFS_DEPRECATED=y |
193 | CONFIG_RELAY=y | 180 | CONFIG_RELAY=y |
181 | # CONFIG_BLK_DEV_INITRD is not set | ||
194 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 182 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
195 | CONFIG_SYSCTL=y | 183 | CONFIG_SYSCTL=y |
196 | CONFIG_EMBEDDED=y | 184 | CONFIG_EMBEDDED=y |
@@ -203,18 +191,19 @@ CONFIG_BUG=y | |||
203 | CONFIG_ELF_CORE=y | 191 | CONFIG_ELF_CORE=y |
204 | CONFIG_BASE_FULL=y | 192 | CONFIG_BASE_FULL=y |
205 | CONFIG_FUTEX=y | 193 | CONFIG_FUTEX=y |
194 | CONFIG_ANON_INODES=y | ||
206 | CONFIG_EPOLL=y | 195 | CONFIG_EPOLL=y |
196 | CONFIG_SIGNALFD=y | ||
197 | CONFIG_TIMERFD=y | ||
198 | CONFIG_EVENTFD=y | ||
207 | CONFIG_SHMEM=y | 199 | CONFIG_SHMEM=y |
208 | CONFIG_SLAB=y | ||
209 | CONFIG_VM_EVENT_COUNTERS=y | 200 | CONFIG_VM_EVENT_COUNTERS=y |
201 | CONFIG_SLAB=y | ||
202 | # CONFIG_SLUB is not set | ||
203 | # CONFIG_SLOB is not set | ||
210 | CONFIG_RT_MUTEXES=y | 204 | CONFIG_RT_MUTEXES=y |
211 | # CONFIG_TINY_SHMEM is not set | 205 | # CONFIG_TINY_SHMEM is not set |
212 | CONFIG_BASE_SMALL=0 | 206 | CONFIG_BASE_SMALL=0 |
213 | # CONFIG_SLOB is not set | ||
214 | |||
215 | # | ||
216 | # Loadable module support | ||
217 | # | ||
218 | CONFIG_MODULES=y | 207 | CONFIG_MODULES=y |
219 | CONFIG_MODULE_UNLOAD=y | 208 | CONFIG_MODULE_UNLOAD=y |
220 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 209 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
@@ -222,12 +211,9 @@ CONFIG_MODULE_UNLOAD=y | |||
222 | CONFIG_MODULE_SRCVERSION_ALL=y | 211 | CONFIG_MODULE_SRCVERSION_ALL=y |
223 | CONFIG_KMOD=y | 212 | CONFIG_KMOD=y |
224 | CONFIG_STOP_MACHINE=y | 213 | CONFIG_STOP_MACHINE=y |
225 | |||
226 | # | ||
227 | # Block layer | ||
228 | # | ||
229 | CONFIG_BLOCK=y | 214 | CONFIG_BLOCK=y |
230 | # CONFIG_BLK_DEV_IO_TRACE is not set | 215 | # CONFIG_BLK_DEV_IO_TRACE is not set |
216 | # CONFIG_BLK_DEV_BSG is not set | ||
231 | 217 | ||
232 | # | 218 | # |
233 | # IO Schedulers | 219 | # IO Schedulers |
@@ -248,16 +234,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
248 | CONFIG_HW_HAS_PCI=y | 234 | CONFIG_HW_HAS_PCI=y |
249 | CONFIG_PCI=y | 235 | CONFIG_PCI=y |
250 | CONFIG_PCI_DOMAINS=y | 236 | CONFIG_PCI_DOMAINS=y |
237 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
251 | CONFIG_MMU=y | 238 | CONFIG_MMU=y |
252 | 239 | ||
253 | # | 240 | # |
254 | # PCCARD (PCMCIA/CardBus) support | 241 | # PCCARD (PCMCIA/CardBus) support |
255 | # | 242 | # |
256 | # CONFIG_PCCARD is not set | 243 | # CONFIG_PCCARD is not set |
257 | |||
258 | # | ||
259 | # PCI Hotplug Support | ||
260 | # | ||
261 | # CONFIG_HOTPLUG_PCI is not set | 244 | # CONFIG_HOTPLUG_PCI is not set |
262 | 245 | ||
263 | # | 246 | # |
@@ -279,7 +262,6 @@ CONFIG_BINFMT_ELF32=y | |||
279 | CONFIG_PM=y | 262 | CONFIG_PM=y |
280 | # CONFIG_PM_LEGACY is not set | 263 | # CONFIG_PM_LEGACY is not set |
281 | # CONFIG_PM_DEBUG is not set | 264 | # CONFIG_PM_DEBUG is not set |
282 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
283 | 265 | ||
284 | # | 266 | # |
285 | # Networking | 267 | # Networking |
@@ -289,7 +271,6 @@ CONFIG_NET=y | |||
289 | # | 271 | # |
290 | # Networking options | 272 | # Networking options |
291 | # | 273 | # |
292 | # CONFIG_NETDEBUG is not set | ||
293 | CONFIG_PACKET=y | 274 | CONFIG_PACKET=y |
294 | CONFIG_PACKET_MMAP=y | 275 | CONFIG_PACKET_MMAP=y |
295 | CONFIG_UNIX=y | 276 | CONFIG_UNIX=y |
@@ -331,20 +312,13 @@ CONFIG_TCP_MD5SIG=y | |||
331 | # CONFIG_INET6_TUNNEL is not set | 312 | # CONFIG_INET6_TUNNEL is not set |
332 | CONFIG_NETWORK_SECMARK=y | 313 | CONFIG_NETWORK_SECMARK=y |
333 | # CONFIG_NETFILTER is not set | 314 | # CONFIG_NETFILTER is not set |
334 | |||
335 | # | ||
336 | # DCCP Configuration (EXPERIMENTAL) | ||
337 | # | ||
338 | # CONFIG_IP_DCCP is not set | 315 | # CONFIG_IP_DCCP is not set |
339 | 316 | CONFIG_IP_SCTP=m | |
340 | # | 317 | # CONFIG_SCTP_DBG_MSG is not set |
341 | # SCTP Configuration (EXPERIMENTAL) | 318 | # CONFIG_SCTP_DBG_OBJCNT is not set |
342 | # | 319 | # CONFIG_SCTP_HMAC_NONE is not set |
343 | # CONFIG_IP_SCTP is not set | 320 | # CONFIG_SCTP_HMAC_SHA1 is not set |
344 | 321 | CONFIG_SCTP_HMAC_MD5=y | |
345 | # | ||
346 | # TIPC Configuration (EXPERIMENTAL) | ||
347 | # | ||
348 | # CONFIG_TIPC is not set | 322 | # CONFIG_TIPC is not set |
349 | # CONFIG_ATM is not set | 323 | # CONFIG_ATM is not set |
350 | # CONFIG_BRIDGE is not set | 324 | # CONFIG_BRIDGE is not set |
@@ -363,9 +337,6 @@ CONFIG_NETWORK_SECMARK=y | |||
363 | # | 337 | # |
364 | CONFIG_NET_SCHED=y | 338 | CONFIG_NET_SCHED=y |
365 | CONFIG_NET_SCH_FIFO=y | 339 | CONFIG_NET_SCH_FIFO=y |
366 | # CONFIG_NET_SCH_CLK_JIFFIES is not set | ||
367 | CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y | ||
368 | # CONFIG_NET_SCH_CLK_CPU is not set | ||
369 | 340 | ||
370 | # | 341 | # |
371 | # Queueing/Scheduling | 342 | # Queueing/Scheduling |
@@ -374,6 +345,7 @@ CONFIG_NET_SCH_CBQ=m | |||
374 | CONFIG_NET_SCH_HTB=m | 345 | CONFIG_NET_SCH_HTB=m |
375 | CONFIG_NET_SCH_HFSC=m | 346 | CONFIG_NET_SCH_HFSC=m |
376 | CONFIG_NET_SCH_PRIO=m | 347 | CONFIG_NET_SCH_PRIO=m |
348 | CONFIG_NET_SCH_RR=m | ||
377 | CONFIG_NET_SCH_RED=m | 349 | CONFIG_NET_SCH_RED=m |
378 | CONFIG_NET_SCH_SFQ=m | 350 | CONFIG_NET_SCH_SFQ=m |
379 | CONFIG_NET_SCH_TEQL=m | 351 | CONFIG_NET_SCH_TEQL=m |
@@ -398,10 +370,15 @@ CONFIG_CLS_U32_MARK=y | |||
398 | CONFIG_NET_CLS_RSVP=m | 370 | CONFIG_NET_CLS_RSVP=m |
399 | CONFIG_NET_CLS_RSVP6=m | 371 | CONFIG_NET_CLS_RSVP6=m |
400 | # CONFIG_NET_EMATCH is not set | 372 | # CONFIG_NET_EMATCH is not set |
401 | # CONFIG_NET_CLS_ACT is not set | 373 | CONFIG_NET_CLS_ACT=y |
374 | CONFIG_NET_ACT_POLICE=y | ||
375 | CONFIG_NET_ACT_GACT=m | ||
376 | CONFIG_GACT_PROB=y | ||
377 | CONFIG_NET_ACT_MIRRED=m | ||
378 | CONFIG_NET_ACT_PEDIT=m | ||
379 | # CONFIG_NET_ACT_SIMP is not set | ||
402 | CONFIG_NET_CLS_POLICE=y | 380 | CONFIG_NET_CLS_POLICE=y |
403 | # CONFIG_NET_CLS_IND is not set | 381 | # CONFIG_NET_CLS_IND is not set |
404 | CONFIG_NET_ESTIMATOR=y | ||
405 | 382 | ||
406 | # | 383 | # |
407 | # Network testing | 384 | # Network testing |
@@ -410,13 +387,24 @@ CONFIG_NET_ESTIMATOR=y | |||
410 | # CONFIG_HAMRADIO is not set | 387 | # CONFIG_HAMRADIO is not set |
411 | # CONFIG_IRDA is not set | 388 | # CONFIG_IRDA is not set |
412 | # CONFIG_BT is not set | 389 | # CONFIG_BT is not set |
390 | # CONFIG_AF_RXRPC is not set | ||
391 | |||
392 | # | ||
393 | # Wireless | ||
394 | # | ||
395 | CONFIG_CFG80211=m | ||
396 | CONFIG_WIRELESS_EXT=y | ||
397 | CONFIG_MAC80211=m | ||
398 | # CONFIG_MAC80211_DEBUG is not set | ||
413 | CONFIG_IEEE80211=m | 399 | CONFIG_IEEE80211=m |
414 | # CONFIG_IEEE80211_DEBUG is not set | 400 | # CONFIG_IEEE80211_DEBUG is not set |
415 | CONFIG_IEEE80211_CRYPT_WEP=m | 401 | CONFIG_IEEE80211_CRYPT_WEP=m |
416 | CONFIG_IEEE80211_CRYPT_CCMP=m | 402 | CONFIG_IEEE80211_CRYPT_CCMP=m |
403 | CONFIG_IEEE80211_CRYPT_TKIP=m | ||
417 | CONFIG_IEEE80211_SOFTMAC=m | 404 | CONFIG_IEEE80211_SOFTMAC=m |
418 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | 405 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set |
419 | CONFIG_WIRELESS_EXT=y | 406 | CONFIG_RFKILL=m |
407 | # CONFIG_NET_9P is not set | ||
420 | 408 | ||
421 | # | 409 | # |
422 | # Device Drivers | 410 | # Device Drivers |
@@ -429,30 +417,10 @@ CONFIG_STANDALONE=y | |||
429 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 417 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
430 | CONFIG_FW_LOADER=y | 418 | CONFIG_FW_LOADER=y |
431 | # CONFIG_SYS_HYPERVISOR is not set | 419 | # CONFIG_SYS_HYPERVISOR is not set |
432 | |||
433 | # | ||
434 | # Connector - unified userspace <-> kernelspace linker | ||
435 | # | ||
436 | CONFIG_CONNECTOR=m | 420 | CONFIG_CONNECTOR=m |
437 | |||
438 | # | ||
439 | # Memory Technology Devices (MTD) | ||
440 | # | ||
441 | # CONFIG_MTD is not set | 421 | # CONFIG_MTD is not set |
442 | |||
443 | # | ||
444 | # Parallel port support | ||
445 | # | ||
446 | # CONFIG_PARPORT is not set | 422 | # CONFIG_PARPORT is not set |
447 | 423 | CONFIG_BLK_DEV=y | |
448 | # | ||
449 | # Plug and Play support | ||
450 | # | ||
451 | # CONFIG_PNPACPI is not set | ||
452 | |||
453 | # | ||
454 | # Block devices | ||
455 | # | ||
456 | # CONFIG_BLK_CPQ_DA is not set | 424 | # CONFIG_BLK_CPQ_DA is not set |
457 | # CONFIG_BLK_CPQ_CISS_DA is not set | 425 | # CONFIG_BLK_CPQ_CISS_DA is not set |
458 | # CONFIG_BLK_DEV_DAC960 is not set | 426 | # CONFIG_BLK_DEV_DAC960 is not set |
@@ -463,21 +431,11 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m | |||
463 | # CONFIG_BLK_DEV_NBD is not set | 431 | # CONFIG_BLK_DEV_NBD is not set |
464 | # CONFIG_BLK_DEV_SX8 is not set | 432 | # CONFIG_BLK_DEV_SX8 is not set |
465 | # CONFIG_BLK_DEV_RAM is not set | 433 | # CONFIG_BLK_DEV_RAM is not set |
466 | # CONFIG_BLK_DEV_INITRD is not set | ||
467 | CONFIG_CDROM_PKTCDVD=m | 434 | CONFIG_CDROM_PKTCDVD=m |
468 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 435 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
469 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 436 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
470 | CONFIG_ATA_OVER_ETH=m | 437 | CONFIG_ATA_OVER_ETH=m |
471 | 438 | # CONFIG_MISC_DEVICES is not set | |
472 | # | ||
473 | # Misc devices | ||
474 | # | ||
475 | CONFIG_SGI_IOC4=m | ||
476 | # CONFIG_TIFM_CORE is not set | ||
477 | |||
478 | # | ||
479 | # ATA/ATAPI/MFM/RLL support | ||
480 | # | ||
481 | # CONFIG_IDE is not set | 439 | # CONFIG_IDE is not set |
482 | 440 | ||
483 | # | 441 | # |
@@ -485,6 +443,7 @@ CONFIG_SGI_IOC4=m | |||
485 | # | 443 | # |
486 | CONFIG_RAID_ATTRS=m | 444 | CONFIG_RAID_ATTRS=m |
487 | CONFIG_SCSI=y | 445 | CONFIG_SCSI=y |
446 | CONFIG_SCSI_DMA=y | ||
488 | CONFIG_SCSI_TGT=m | 447 | CONFIG_SCSI_TGT=m |
489 | CONFIG_SCSI_NETLINK=y | 448 | CONFIG_SCSI_NETLINK=y |
490 | CONFIG_SCSI_PROC_FS=y | 449 | CONFIG_SCSI_PROC_FS=y |
@@ -507,6 +466,7 @@ CONFIG_CHR_DEV_SCH=m | |||
507 | CONFIG_SCSI_CONSTANTS=y | 466 | CONFIG_SCSI_CONSTANTS=y |
508 | CONFIG_SCSI_LOGGING=y | 467 | CONFIG_SCSI_LOGGING=y |
509 | CONFIG_SCSI_SCAN_ASYNC=y | 468 | CONFIG_SCSI_SCAN_ASYNC=y |
469 | CONFIG_SCSI_WAIT_SCAN=m | ||
510 | 470 | ||
511 | # | 471 | # |
512 | # SCSI Transports | 472 | # SCSI Transports |
@@ -517,10 +477,7 @@ CONFIG_SCSI_ISCSI_ATTRS=m | |||
517 | CONFIG_SCSI_SAS_ATTRS=m | 477 | CONFIG_SCSI_SAS_ATTRS=m |
518 | CONFIG_SCSI_SAS_LIBSAS=m | 478 | CONFIG_SCSI_SAS_LIBSAS=m |
519 | # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set | 479 | # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set |
520 | 480 | CONFIG_SCSI_LOWLEVEL=y | |
521 | # | ||
522 | # SCSI low-level drivers | ||
523 | # | ||
524 | # CONFIG_ISCSI_TCP is not set | 481 | # CONFIG_ISCSI_TCP is not set |
525 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 482 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
526 | # CONFIG_SCSI_3W_9XXX is not set | 483 | # CONFIG_SCSI_3W_9XXX is not set |
@@ -551,15 +508,7 @@ CONFIG_SCSI_QLOGIC_1280=y | |||
551 | # CONFIG_SCSI_DC390T is not set | 508 | # CONFIG_SCSI_DC390T is not set |
552 | # CONFIG_SCSI_DEBUG is not set | 509 | # CONFIG_SCSI_DEBUG is not set |
553 | # CONFIG_SCSI_SRP is not set | 510 | # CONFIG_SCSI_SRP is not set |
554 | |||
555 | # | ||
556 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
557 | # | ||
558 | # CONFIG_ATA is not set | 511 | # CONFIG_ATA is not set |
559 | |||
560 | # | ||
561 | # Multi-device support (RAID and LVM) | ||
562 | # | ||
563 | CONFIG_MD=y | 512 | CONFIG_MD=y |
564 | CONFIG_BLK_DEV_MD=y | 513 | CONFIG_BLK_DEV_MD=y |
565 | CONFIG_MD_LINEAR=m | 514 | CONFIG_MD_LINEAR=m |
@@ -578,6 +527,8 @@ CONFIG_DM_MIRROR=m | |||
578 | CONFIG_DM_ZERO=m | 527 | CONFIG_DM_ZERO=m |
579 | CONFIG_DM_MULTIPATH=m | 528 | CONFIG_DM_MULTIPATH=m |
580 | CONFIG_DM_MULTIPATH_EMC=m | 529 | CONFIG_DM_MULTIPATH_EMC=m |
530 | CONFIG_DM_MULTIPATH_RDAC=m | ||
531 | # CONFIG_DM_DELAY is not set | ||
581 | 532 | ||
582 | # | 533 | # |
583 | # Fusion MPT device support | 534 | # Fusion MPT device support |
@@ -590,30 +541,18 @@ CONFIG_DM_MULTIPATH_EMC=m | |||
590 | # | 541 | # |
591 | # IEEE 1394 (FireWire) support | 542 | # IEEE 1394 (FireWire) support |
592 | # | 543 | # |
544 | # CONFIG_FIREWIRE is not set | ||
593 | # CONFIG_IEEE1394 is not set | 545 | # CONFIG_IEEE1394 is not set |
594 | |||
595 | # | ||
596 | # I2O device support | ||
597 | # | ||
598 | # CONFIG_I2O is not set | 546 | # CONFIG_I2O is not set |
599 | |||
600 | # | ||
601 | # Network device support | ||
602 | # | ||
603 | CONFIG_NETDEVICES=y | 547 | CONFIG_NETDEVICES=y |
548 | CONFIG_NETDEVICES_MULTIQUEUE=y | ||
549 | CONFIG_IFB=m | ||
604 | # CONFIG_DUMMY is not set | 550 | # CONFIG_DUMMY is not set |
605 | # CONFIG_BONDING is not set | 551 | # CONFIG_BONDING is not set |
552 | CONFIG_MACVLAN=m | ||
606 | # CONFIG_EQUALIZER is not set | 553 | # CONFIG_EQUALIZER is not set |
607 | # CONFIG_TUN is not set | 554 | # CONFIG_TUN is not set |
608 | |||
609 | # | ||
610 | # ARCnet devices | ||
611 | # | ||
612 | # CONFIG_ARCNET is not set | 555 | # CONFIG_ARCNET is not set |
613 | |||
614 | # | ||
615 | # PHY device support | ||
616 | # | ||
617 | CONFIG_PHYLIB=m | 556 | CONFIG_PHYLIB=m |
618 | 557 | ||
619 | # | 558 | # |
@@ -627,30 +566,21 @@ CONFIG_CICADA_PHY=m | |||
627 | CONFIG_VITESSE_PHY=m | 566 | CONFIG_VITESSE_PHY=m |
628 | CONFIG_SMSC_PHY=m | 567 | CONFIG_SMSC_PHY=m |
629 | # CONFIG_BROADCOM_PHY is not set | 568 | # CONFIG_BROADCOM_PHY is not set |
569 | CONFIG_ICPLUS_PHY=m | ||
630 | # CONFIG_FIXED_PHY is not set | 570 | # CONFIG_FIXED_PHY is not set |
631 | |||
632 | # | ||
633 | # Ethernet (10 or 100Mbit) | ||
634 | # | ||
635 | CONFIG_NET_ETHERNET=y | 571 | CONFIG_NET_ETHERNET=y |
636 | CONFIG_MII=y | 572 | CONFIG_MII=y |
573 | CONFIG_AX88796=m | ||
637 | CONFIG_SGI_IOC3_ETH=y | 574 | CONFIG_SGI_IOC3_ETH=y |
638 | # CONFIG_HAPPYMEAL is not set | 575 | # CONFIG_HAPPYMEAL is not set |
639 | # CONFIG_SUNGEM is not set | 576 | # CONFIG_SUNGEM is not set |
640 | # CONFIG_CASSINI is not set | 577 | # CONFIG_CASSINI is not set |
641 | # CONFIG_NET_VENDOR_3COM is not set | 578 | # CONFIG_NET_VENDOR_3COM is not set |
642 | # CONFIG_DM9000 is not set | 579 | # CONFIG_DM9000 is not set |
643 | |||
644 | # | ||
645 | # Tulip family network device support | ||
646 | # | ||
647 | # CONFIG_NET_TULIP is not set | 580 | # CONFIG_NET_TULIP is not set |
648 | # CONFIG_HP100 is not set | 581 | # CONFIG_HP100 is not set |
649 | # CONFIG_NET_PCI is not set | 582 | # CONFIG_NET_PCI is not set |
650 | 583 | CONFIG_NETDEV_1000=y | |
651 | # | ||
652 | # Ethernet (1000 Mbit) | ||
653 | # | ||
654 | # CONFIG_ACENIC is not set | 584 | # CONFIG_ACENIC is not set |
655 | # CONFIG_DL2K is not set | 585 | # CONFIG_DL2K is not set |
656 | # CONFIG_E1000 is not set | 586 | # CONFIG_E1000 is not set |
@@ -661,35 +591,57 @@ CONFIG_SGI_IOC3_ETH=y | |||
661 | # CONFIG_SIS190 is not set | 591 | # CONFIG_SIS190 is not set |
662 | # CONFIG_SKGE is not set | 592 | # CONFIG_SKGE is not set |
663 | # CONFIG_SKY2 is not set | 593 | # CONFIG_SKY2 is not set |
664 | # CONFIG_SK98LIN is not set | 594 | CONFIG_VIA_VELOCITY=m |
665 | # CONFIG_TIGON3 is not set | 595 | # CONFIG_TIGON3 is not set |
666 | # CONFIG_BNX2 is not set | 596 | # CONFIG_BNX2 is not set |
667 | CONFIG_QLA3XXX=m | 597 | CONFIG_QLA3XXX=m |
668 | # CONFIG_ATL1 is not set | 598 | # CONFIG_ATL1 is not set |
669 | 599 | CONFIG_NETDEV_10000=y | |
670 | # | ||
671 | # Ethernet (10000 Mbit) | ||
672 | # | ||
673 | # CONFIG_CHELSIO_T1 is not set | 600 | # CONFIG_CHELSIO_T1 is not set |
674 | CONFIG_CHELSIO_T3=m | 601 | CONFIG_CHELSIO_T3=m |
675 | # CONFIG_IXGB is not set | 602 | # CONFIG_IXGB is not set |
676 | # CONFIG_S2IO is not set | 603 | # CONFIG_S2IO is not set |
677 | # CONFIG_MYRI10GE is not set | 604 | # CONFIG_MYRI10GE is not set |
678 | CONFIG_NETXEN_NIC=m | 605 | CONFIG_NETXEN_NIC=m |
679 | 606 | # CONFIG_MLX4_CORE is not set | |
680 | # | ||
681 | # Token Ring devices | ||
682 | # | ||
683 | # CONFIG_TR is not set | 607 | # CONFIG_TR is not set |
684 | 608 | ||
685 | # | 609 | # |
686 | # Wireless LAN (non-hamradio) | 610 | # Wireless LAN |
687 | # | 611 | # |
688 | # CONFIG_NET_RADIO is not set | 612 | # CONFIG_WLAN_PRE80211 is not set |
689 | 613 | CONFIG_WLAN_80211=y | |
690 | # | 614 | CONFIG_IPW2100=m |
691 | # Wan interfaces | 615 | CONFIG_IPW2100_MONITOR=y |
692 | # | 616 | CONFIG_IPW2100_DEBUG=y |
617 | CONFIG_IPW2200=m | ||
618 | CONFIG_IPW2200_MONITOR=y | ||
619 | CONFIG_IPW2200_RADIOTAP=y | ||
620 | CONFIG_IPW2200_PROMISCUOUS=y | ||
621 | CONFIG_IPW2200_QOS=y | ||
622 | CONFIG_IPW2200_DEBUG=y | ||
623 | CONFIG_LIBERTAS=m | ||
624 | # CONFIG_LIBERTAS_DEBUG is not set | ||
625 | CONFIG_HERMES=m | ||
626 | CONFIG_PLX_HERMES=m | ||
627 | CONFIG_TMD_HERMES=m | ||
628 | CONFIG_NORTEL_HERMES=m | ||
629 | CONFIG_PCI_HERMES=m | ||
630 | CONFIG_ATMEL=m | ||
631 | CONFIG_PCI_ATMEL=m | ||
632 | CONFIG_PRISM54=m | ||
633 | CONFIG_HOSTAP=m | ||
634 | CONFIG_HOSTAP_FIRMWARE=y | ||
635 | CONFIG_HOSTAP_FIRMWARE_NVRAM=y | ||
636 | CONFIG_HOSTAP_PLX=m | ||
637 | CONFIG_HOSTAP_PCI=m | ||
638 | CONFIG_BCM43XX=m | ||
639 | CONFIG_BCM43XX_DEBUG=y | ||
640 | CONFIG_BCM43XX_DMA=y | ||
641 | CONFIG_BCM43XX_PIO=y | ||
642 | CONFIG_BCM43XX_DMA_AND_PIO_MODE=y | ||
643 | # CONFIG_BCM43XX_DMA_MODE is not set | ||
644 | # CONFIG_BCM43XX_PIO_MODE is not set | ||
693 | # CONFIG_WAN is not set | 645 | # CONFIG_WAN is not set |
694 | # CONFIG_FDDI is not set | 646 | # CONFIG_FDDI is not set |
695 | # CONFIG_HIPPI is not set | 647 | # CONFIG_HIPPI is not set |
@@ -700,15 +652,7 @@ CONFIG_NETXEN_NIC=m | |||
700 | # CONFIG_NETCONSOLE is not set | 652 | # CONFIG_NETCONSOLE is not set |
701 | # CONFIG_NETPOLL is not set | 653 | # CONFIG_NETPOLL is not set |
702 | # CONFIG_NET_POLL_CONTROLLER is not set | 654 | # CONFIG_NET_POLL_CONTROLLER is not set |
703 | |||
704 | # | ||
705 | # ISDN subsystem | ||
706 | # | ||
707 | # CONFIG_ISDN is not set | 655 | # CONFIG_ISDN is not set |
708 | |||
709 | # | ||
710 | # Telephony Support | ||
711 | # | ||
712 | # CONFIG_PHONE is not set | 656 | # CONFIG_PHONE is not set |
713 | 657 | ||
714 | # | 658 | # |
@@ -756,34 +700,17 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
756 | CONFIG_UNIX98_PTYS=y | 700 | CONFIG_UNIX98_PTYS=y |
757 | CONFIG_LEGACY_PTYS=y | 701 | CONFIG_LEGACY_PTYS=y |
758 | CONFIG_LEGACY_PTY_COUNT=256 | 702 | CONFIG_LEGACY_PTY_COUNT=256 |
759 | |||
760 | # | ||
761 | # IPMI | ||
762 | # | ||
763 | # CONFIG_IPMI_HANDLER is not set | 703 | # CONFIG_IPMI_HANDLER is not set |
764 | |||
765 | # | ||
766 | # Watchdog Cards | ||
767 | # | ||
768 | # CONFIG_WATCHDOG is not set | 704 | # CONFIG_WATCHDOG is not set |
769 | # CONFIG_HW_RANDOM is not set | 705 | CONFIG_HW_RANDOM=m |
770 | # CONFIG_RTC is not set | 706 | # CONFIG_RTC is not set |
771 | CONFIG_SGI_IP27_RTC=y | 707 | CONFIG_SGI_IP27_RTC=y |
772 | # CONFIG_GEN_RTC is not set | ||
773 | # CONFIG_DTLK is not set | ||
774 | # CONFIG_R3964 is not set | 708 | # CONFIG_R3964 is not set |
775 | # CONFIG_APPLICOM is not set | 709 | # CONFIG_APPLICOM is not set |
776 | # CONFIG_DRM is not set | 710 | # CONFIG_DRM is not set |
777 | # CONFIG_RAW_DRIVER is not set | 711 | # CONFIG_RAW_DRIVER is not set |
778 | |||
779 | # | ||
780 | # TPM devices | ||
781 | # | ||
782 | # CONFIG_TCG_TPM is not set | 712 | # CONFIG_TCG_TPM is not set |
783 | 713 | CONFIG_DEVPORT=y | |
784 | # | ||
785 | # I2C support | ||
786 | # | ||
787 | # CONFIG_I2C is not set | 714 | # CONFIG_I2C is not set |
788 | 715 | ||
789 | # | 716 | # |
@@ -791,43 +718,40 @@ CONFIG_SGI_IP27_RTC=y | |||
791 | # | 718 | # |
792 | # CONFIG_SPI is not set | 719 | # CONFIG_SPI is not set |
793 | # CONFIG_SPI_MASTER is not set | 720 | # CONFIG_SPI_MASTER is not set |
794 | |||
795 | # | ||
796 | # Dallas's 1-wire bus | ||
797 | # | ||
798 | # CONFIG_W1 is not set | 721 | # CONFIG_W1 is not set |
722 | # CONFIG_POWER_SUPPLY is not set | ||
723 | # CONFIG_HWMON is not set | ||
799 | 724 | ||
800 | # | 725 | # |
801 | # Hardware Monitoring support | 726 | # Multifunction device drivers |
802 | # | 727 | # |
803 | # CONFIG_HWMON is not set | 728 | # CONFIG_MFD_SM501 is not set |
804 | # CONFIG_HWMON_VID is not set | ||
805 | 729 | ||
806 | # | 730 | # |
807 | # Multimedia devices | 731 | # Multimedia devices |
808 | # | 732 | # |
809 | # CONFIG_VIDEO_DEV is not set | 733 | # CONFIG_VIDEO_DEV is not set |
734 | # CONFIG_DVB_CORE is not set | ||
735 | # CONFIG_DAB is not set | ||
810 | 736 | ||
811 | # | 737 | # |
812 | # Digital Video Broadcasting Devices | 738 | # Graphics support |
813 | # | 739 | # |
814 | # CONFIG_DVB is not set | 740 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
815 | 741 | ||
816 | # | 742 | # |
817 | # Graphics support | 743 | # Display device support |
818 | # | 744 | # |
819 | # CONFIG_FIRMWARE_EDID is not set | 745 | # CONFIG_DISPLAY_SUPPORT is not set |
746 | # CONFIG_VGASTATE is not set | ||
747 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
820 | # CONFIG_FB is not set | 748 | # CONFIG_FB is not set |
821 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
822 | 749 | ||
823 | # | 750 | # |
824 | # Sound | 751 | # Sound |
825 | # | 752 | # |
826 | # CONFIG_SOUND is not set | 753 | # CONFIG_SOUND is not set |
827 | 754 | CONFIG_USB_SUPPORT=y | |
828 | # | ||
829 | # USB support | ||
830 | # | ||
831 | CONFIG_USB_ARCH_HAS_HCD=y | 755 | CONFIG_USB_ARCH_HAS_HCD=y |
832 | CONFIG_USB_ARCH_HAS_OHCI=y | 756 | CONFIG_USB_ARCH_HAS_OHCI=y |
833 | CONFIG_USB_ARCH_HAS_EHCI=y | 757 | CONFIG_USB_ARCH_HAS_EHCI=y |
@@ -841,37 +765,9 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
841 | # USB Gadget Support | 765 | # USB Gadget Support |
842 | # | 766 | # |
843 | # CONFIG_USB_GADGET is not set | 767 | # CONFIG_USB_GADGET is not set |
844 | |||
845 | # | ||
846 | # MMC/SD Card support | ||
847 | # | ||
848 | # CONFIG_MMC is not set | 768 | # CONFIG_MMC is not set |
849 | |||
850 | # | ||
851 | # LED devices | ||
852 | # | ||
853 | # CONFIG_NEW_LEDS is not set | 769 | # CONFIG_NEW_LEDS is not set |
854 | |||
855 | # | ||
856 | # LED drivers | ||
857 | # | ||
858 | |||
859 | # | ||
860 | # LED Triggers | ||
861 | # | ||
862 | |||
863 | # | ||
864 | # InfiniBand support | ||
865 | # | ||
866 | # CONFIG_INFINIBAND is not set | 770 | # CONFIG_INFINIBAND is not set |
867 | |||
868 | # | ||
869 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
870 | # | ||
871 | |||
872 | # | ||
873 | # Real Time Clock | ||
874 | # | ||
875 | # CONFIG_RTC_CLASS is not set | 771 | # CONFIG_RTC_CLASS is not set |
876 | 772 | ||
877 | # | 773 | # |
@@ -888,12 +784,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
888 | # | 784 | # |
889 | 785 | ||
890 | # | 786 | # |
891 | # Auxiliary Display support | 787 | # Userspace I/O |
892 | # | ||
893 | |||
894 | # | ||
895 | # Virtualization | ||
896 | # | 788 | # |
789 | CONFIG_UIO=y | ||
790 | # CONFIG_UIO_CIF is not set | ||
897 | 791 | ||
898 | # | 792 | # |
899 | # File systems | 793 | # File systems |
@@ -992,6 +886,7 @@ CONFIG_LOCKD_V4=y | |||
992 | CONFIG_NFS_COMMON=y | 886 | CONFIG_NFS_COMMON=y |
993 | CONFIG_SUNRPC=y | 887 | CONFIG_SUNRPC=y |
994 | CONFIG_SUNRPC_GSS=y | 888 | CONFIG_SUNRPC_GSS=y |
889 | # CONFIG_SUNRPC_BIND34 is not set | ||
995 | CONFIG_RPCSEC_GSS_KRB5=y | 890 | CONFIG_RPCSEC_GSS_KRB5=y |
996 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 891 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
997 | # CONFIG_SMB_FS is not set | 892 | # CONFIG_SMB_FS is not set |
@@ -999,7 +894,6 @@ CONFIG_RPCSEC_GSS_KRB5=y | |||
999 | # CONFIG_NCP_FS is not set | 894 | # CONFIG_NCP_FS is not set |
1000 | # CONFIG_CODA_FS is not set | 895 | # CONFIG_CODA_FS is not set |
1001 | # CONFIG_AFS_FS is not set | 896 | # CONFIG_AFS_FS is not set |
1002 | # CONFIG_9P_FS is not set | ||
1003 | 897 | ||
1004 | # | 898 | # |
1005 | # Partition Types | 899 | # Partition Types |
@@ -1021,6 +915,7 @@ CONFIG_SGI_PARTITION=y | |||
1021 | # CONFIG_SUN_PARTITION is not set | 915 | # CONFIG_SUN_PARTITION is not set |
1022 | # CONFIG_KARMA_PARTITION is not set | 916 | # CONFIG_KARMA_PARTITION is not set |
1023 | # CONFIG_EFI_PARTITION is not set | 917 | # CONFIG_EFI_PARTITION is not set |
918 | # CONFIG_SYSV68_PARTITION is not set | ||
1024 | 919 | ||
1025 | # | 920 | # |
1026 | # Native Language Support | 921 | # Native Language Support |
@@ -1031,8 +926,6 @@ CONFIG_SGI_PARTITION=y | |||
1031 | # Distributed Lock Manager | 926 | # Distributed Lock Manager |
1032 | # | 927 | # |
1033 | CONFIG_DLM=m | 928 | CONFIG_DLM=m |
1034 | CONFIG_DLM_TCP=y | ||
1035 | # CONFIG_DLM_SCTP is not set | ||
1036 | # CONFIG_DLM_DEBUG is not set | 929 | # CONFIG_DLM_DEBUG is not set |
1037 | 930 | ||
1038 | # | 931 | # |
@@ -1051,7 +944,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1051 | # CONFIG_DEBUG_FS is not set | 944 | # CONFIG_DEBUG_FS is not set |
1052 | # CONFIG_HEADERS_CHECK is not set | 945 | # CONFIG_HEADERS_CHECK is not set |
1053 | # CONFIG_DEBUG_KERNEL is not set | 946 | # CONFIG_DEBUG_KERNEL is not set |
1054 | CONFIG_LOG_BUF_SHIFT=15 | ||
1055 | CONFIG_CROSSCOMPILE=y | 947 | CONFIG_CROSSCOMPILE=y |
1056 | CONFIG_CMDLINE="" | 948 | CONFIG_CMDLINE="" |
1057 | CONFIG_SYS_SUPPORTS_KGDB=y | 949 | CONFIG_SYS_SUPPORTS_KGDB=y |
@@ -1062,12 +954,13 @@ CONFIG_SYS_SUPPORTS_KGDB=y | |||
1062 | CONFIG_KEYS=y | 954 | CONFIG_KEYS=y |
1063 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | 955 | CONFIG_KEYS_DEBUG_PROC_KEYS=y |
1064 | # CONFIG_SECURITY is not set | 956 | # CONFIG_SECURITY is not set |
1065 | 957 | CONFIG_XOR_BLOCKS=m | |
1066 | # | 958 | CONFIG_ASYNC_CORE=m |
1067 | # Cryptographic options | 959 | CONFIG_ASYNC_MEMCPY=m |
1068 | # | 960 | CONFIG_ASYNC_XOR=m |
1069 | CONFIG_CRYPTO=y | 961 | CONFIG_CRYPTO=y |
1070 | CONFIG_CRYPTO_ALGAPI=y | 962 | CONFIG_CRYPTO_ALGAPI=y |
963 | CONFIG_CRYPTO_ABLKCIPHER=m | ||
1071 | CONFIG_CRYPTO_BLKCIPHER=y | 964 | CONFIG_CRYPTO_BLKCIPHER=y |
1072 | CONFIG_CRYPTO_HASH=y | 965 | CONFIG_CRYPTO_HASH=y |
1073 | CONFIG_CRYPTO_MANAGER=y | 966 | CONFIG_CRYPTO_MANAGER=y |
@@ -1086,6 +979,7 @@ CONFIG_CRYPTO_ECB=m | |||
1086 | CONFIG_CRYPTO_CBC=y | 979 | CONFIG_CRYPTO_CBC=y |
1087 | CONFIG_CRYPTO_PCBC=m | 980 | CONFIG_CRYPTO_PCBC=m |
1088 | CONFIG_CRYPTO_LRW=m | 981 | CONFIG_CRYPTO_LRW=m |
982 | CONFIG_CRYPTO_CRYPTD=m | ||
1089 | CONFIG_CRYPTO_DES=y | 983 | CONFIG_CRYPTO_DES=y |
1090 | CONFIG_CRYPTO_FCRYPT=m | 984 | CONFIG_CRYPTO_FCRYPT=m |
1091 | CONFIG_CRYPTO_BLOWFISH=m | 985 | CONFIG_CRYPTO_BLOWFISH=m |
@@ -1104,21 +998,21 @@ CONFIG_CRYPTO_MICHAEL_MIC=m | |||
1104 | CONFIG_CRYPTO_CRC32C=m | 998 | CONFIG_CRYPTO_CRC32C=m |
1105 | CONFIG_CRYPTO_CAMELLIA=m | 999 | CONFIG_CRYPTO_CAMELLIA=m |
1106 | # CONFIG_CRYPTO_TEST is not set | 1000 | # CONFIG_CRYPTO_TEST is not set |
1107 | 1001 | CONFIG_CRYPTO_HW=y | |
1108 | # | ||
1109 | # Hardware crypto devices | ||
1110 | # | ||
1111 | 1002 | ||
1112 | # | 1003 | # |
1113 | # Library routines | 1004 | # Library routines |
1114 | # | 1005 | # |
1115 | CONFIG_BITREVERSE=y | 1006 | CONFIG_BITREVERSE=y |
1116 | # CONFIG_CRC_CCITT is not set | 1007 | CONFIG_CRC_CCITT=m |
1117 | CONFIG_CRC16=m | 1008 | # CONFIG_CRC16 is not set |
1009 | # CONFIG_CRC_ITU_T is not set | ||
1118 | CONFIG_CRC32=y | 1010 | CONFIG_CRC32=y |
1011 | # CONFIG_CRC7 is not set | ||
1119 | CONFIG_LIBCRC32C=m | 1012 | CONFIG_LIBCRC32C=m |
1120 | CONFIG_ZLIB_INFLATE=m | 1013 | CONFIG_ZLIB_INFLATE=m |
1121 | CONFIG_ZLIB_DEFLATE=m | 1014 | CONFIG_ZLIB_DEFLATE=m |
1122 | CONFIG_PLIST=y | 1015 | CONFIG_PLIST=y |
1123 | CONFIG_HAS_IOMEM=y | 1016 | CONFIG_HAS_IOMEM=y |
1124 | CONFIG_HAS_IOPORT=y | 1017 | CONFIG_HAS_IOPORT=y |
1018 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig index 95a72d2750ef..eb96791c33ea 100644 --- a/arch/mips/configs/jmr3927_defconfig +++ b/arch/mips/configs/jmr3927_defconfig | |||
@@ -1,60 +1,47 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.21-rc3 | 3 | # Linux kernel version: 2.6.23-rc1 |
4 | # Thu Mar 15 00:40:40 2007 | 4 | # Thu Aug 2 23:07:36 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 13 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
30 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
31 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 21 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 22 | # CONFIG_MACH_VR41XX is not set |
36 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
38 | # CONFIG_MACH_VR41XX is not set | 25 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
43 | # CONFIG_SGI_IP27 is not set | 29 | # CONFIG_SGI_IP27 is not set |
44 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
55 | CONFIG_TOSHIBA_JMR3927=y | 41 | CONFIG_TOSHIBA_JMR3927=y |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 42 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 43 | # CONFIG_TOSHIBA_RBTX4938 is not set |
44 | # CONFIG_WR_PPMC is not set | ||
58 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 45 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
59 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 46 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
60 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 47 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
@@ -66,10 +53,12 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
66 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 53 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
67 | CONFIG_DMA_NONCOHERENT=y | 54 | CONFIG_DMA_NONCOHERENT=y |
68 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 55 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
56 | # CONFIG_NO_IOPORT is not set | ||
69 | CONFIG_CPU_BIG_ENDIAN=y | 57 | CONFIG_CPU_BIG_ENDIAN=y |
70 | # CONFIG_CPU_LITTLE_ENDIAN is not set | 58 | # CONFIG_CPU_LITTLE_ENDIAN is not set |
71 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | 59 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y |
72 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 60 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
61 | CONFIG_IRQ_TXX9=y | ||
73 | CONFIG_MIPS_TX3927=y | 62 | CONFIG_MIPS_TX3927=y |
74 | CONFIG_SWAP_IO_SPACE=y | 63 | CONFIG_SWAP_IO_SPACE=y |
75 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | 64 | CONFIG_MIPS_L1_CACHE_SHIFT=5 |
@@ -77,6 +66,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
77 | # | 66 | # |
78 | # CPU selection | 67 | # CPU selection |
79 | # | 68 | # |
69 | # CONFIG_CPU_LOONGSON2 is not set | ||
80 | # CONFIG_CPU_MIPS32_R1 is not set | 70 | # CONFIG_CPU_MIPS32_R1 is not set |
81 | # CONFIG_CPU_MIPS32_R2 is not set | 71 | # CONFIG_CPU_MIPS32_R2 is not set |
82 | # CONFIG_CPU_MIPS64_R1 is not set | 72 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -112,21 +102,17 @@ CONFIG_PAGE_SIZE_4KB=y | |||
112 | CONFIG_MIPS_MT_DISABLED=y | 102 | CONFIG_MIPS_MT_DISABLED=y |
113 | # CONFIG_MIPS_MT_SMP is not set | 103 | # CONFIG_MIPS_MT_SMP is not set |
114 | # CONFIG_MIPS_MT_SMTC is not set | 104 | # CONFIG_MIPS_MT_SMTC is not set |
115 | # CONFIG_MIPS_VPE_LOADER is not set | ||
116 | CONFIG_CPU_HAS_SYNC=y | 105 | CONFIG_CPU_HAS_SYNC=y |
117 | CONFIG_GENERIC_HARDIRQS=y | 106 | CONFIG_GENERIC_HARDIRQS=y |
118 | CONFIG_GENERIC_IRQ_PROBE=y | 107 | CONFIG_GENERIC_IRQ_PROBE=y |
119 | CONFIG_ARCH_FLATMEM_ENABLE=y | 108 | CONFIG_ARCH_FLATMEM_ENABLE=y |
120 | CONFIG_SELECT_MEMORY_MODEL=y | ||
121 | CONFIG_FLATMEM_MANUAL=y | ||
122 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
123 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
124 | CONFIG_FLATMEM=y | 109 | CONFIG_FLATMEM=y |
125 | CONFIG_FLAT_NODE_MEM_MAP=y | 110 | CONFIG_FLAT_NODE_MEM_MAP=y |
126 | # CONFIG_SPARSEMEM_STATIC is not set | 111 | # CONFIG_SPARSEMEM_STATIC is not set |
127 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 112 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
128 | # CONFIG_RESOURCES_64BIT is not set | 113 | # CONFIG_RESOURCES_64BIT is not set |
129 | CONFIG_ZONE_DMA_FLAG=1 | 114 | CONFIG_ZONE_DMA_FLAG=0 |
115 | CONFIG_VIRT_TO_BUS=y | ||
130 | # CONFIG_HZ_48 is not set | 116 | # CONFIG_HZ_48 is not set |
131 | # CONFIG_HZ_100 is not set | 117 | # CONFIG_HZ_100 is not set |
132 | # CONFIG_HZ_128 is not set | 118 | # CONFIG_HZ_128 is not set |
@@ -139,37 +125,30 @@ CONFIG_HZ=250 | |||
139 | CONFIG_PREEMPT_NONE=y | 125 | CONFIG_PREEMPT_NONE=y |
140 | # CONFIG_PREEMPT_VOLUNTARY is not set | 126 | # CONFIG_PREEMPT_VOLUNTARY is not set |
141 | # CONFIG_PREEMPT is not set | 127 | # CONFIG_PREEMPT is not set |
142 | # CONFIG_KEXEC is not set | 128 | # CONFIG_SECCOMP is not set |
143 | CONFIG_LOCKDEP_SUPPORT=y | 129 | CONFIG_LOCKDEP_SUPPORT=y |
144 | CONFIG_STACKTRACE_SUPPORT=y | 130 | CONFIG_STACKTRACE_SUPPORT=y |
145 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 131 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
146 | 132 | ||
147 | # | 133 | # |
148 | # Code maturity level options | 134 | # General setup |
149 | # | 135 | # |
150 | CONFIG_EXPERIMENTAL=y | 136 | # CONFIG_EXPERIMENTAL is not set |
151 | CONFIG_BROKEN_ON_SMP=y | 137 | CONFIG_BROKEN_ON_SMP=y |
152 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 138 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
153 | |||
154 | # | ||
155 | # General setup | ||
156 | # | ||
157 | CONFIG_LOCALVERSION="" | 139 | CONFIG_LOCALVERSION="" |
158 | CONFIG_LOCALVERSION_AUTO=y | 140 | CONFIG_LOCALVERSION_AUTO=y |
159 | CONFIG_SWAP=y | 141 | CONFIG_SWAP=y |
160 | CONFIG_SYSVIPC=y | 142 | CONFIG_SYSVIPC=y |
161 | # CONFIG_IPC_NS is not set | ||
162 | CONFIG_SYSVIPC_SYSCTL=y | 143 | CONFIG_SYSVIPC_SYSCTL=y |
163 | # CONFIG_POSIX_MQUEUE is not set | ||
164 | # CONFIG_BSD_PROCESS_ACCT is not set | 144 | # CONFIG_BSD_PROCESS_ACCT is not set |
165 | # CONFIG_TASKSTATS is not set | 145 | # CONFIG_TASKSTATS is not set |
166 | # CONFIG_UTS_NS is not set | ||
167 | # CONFIG_AUDIT is not set | 146 | # CONFIG_AUDIT is not set |
168 | # CONFIG_IKCONFIG is not set | 147 | # CONFIG_IKCONFIG is not set |
148 | CONFIG_LOG_BUF_SHIFT=14 | ||
169 | CONFIG_SYSFS_DEPRECATED=y | 149 | CONFIG_SYSFS_DEPRECATED=y |
170 | # CONFIG_RELAY is not set | 150 | # CONFIG_RELAY is not set |
171 | # CONFIG_BLK_DEV_INITRD is not set | 151 | # CONFIG_BLK_DEV_INITRD is not set |
172 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
173 | CONFIG_SYSCTL=y | 152 | CONFIG_SYSCTL=y |
174 | CONFIG_EMBEDDED=y | 153 | CONFIG_EMBEDDED=y |
175 | CONFIG_SYSCTL_SYSCALL=y | 154 | CONFIG_SYSCTL_SYSCALL=y |
@@ -181,23 +160,20 @@ CONFIG_BUG=y | |||
181 | CONFIG_ELF_CORE=y | 160 | CONFIG_ELF_CORE=y |
182 | CONFIG_BASE_FULL=y | 161 | CONFIG_BASE_FULL=y |
183 | CONFIG_FUTEX=y | 162 | CONFIG_FUTEX=y |
163 | CONFIG_ANON_INODES=y | ||
184 | CONFIG_EPOLL=y | 164 | CONFIG_EPOLL=y |
165 | CONFIG_SIGNALFD=y | ||
166 | CONFIG_TIMERFD=y | ||
167 | CONFIG_EVENTFD=y | ||
185 | CONFIG_SHMEM=y | 168 | CONFIG_SHMEM=y |
186 | CONFIG_SLAB=y | ||
187 | CONFIG_VM_EVENT_COUNTERS=y | 169 | CONFIG_VM_EVENT_COUNTERS=y |
170 | CONFIG_SLAB=y | ||
171 | # CONFIG_SLUB is not set | ||
172 | # CONFIG_SLOB is not set | ||
188 | CONFIG_RT_MUTEXES=y | 173 | CONFIG_RT_MUTEXES=y |
189 | # CONFIG_TINY_SHMEM is not set | 174 | # CONFIG_TINY_SHMEM is not set |
190 | CONFIG_BASE_SMALL=0 | 175 | CONFIG_BASE_SMALL=0 |
191 | # CONFIG_SLOB is not set | ||
192 | |||
193 | # | ||
194 | # Loadable module support | ||
195 | # | ||
196 | # CONFIG_MODULES is not set | 176 | # CONFIG_MODULES is not set |
197 | |||
198 | # | ||
199 | # Block layer | ||
200 | # | ||
201 | CONFIG_BLOCK=y | 177 | CONFIG_BLOCK=y |
202 | # CONFIG_LBD is not set | 178 | # CONFIG_LBD is not set |
203 | # CONFIG_BLK_DEV_IO_TRACE is not set | 179 | # CONFIG_BLK_DEV_IO_TRACE is not set |
@@ -221,6 +197,7 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
221 | # | 197 | # |
222 | CONFIG_HW_HAS_PCI=y | 198 | CONFIG_HW_HAS_PCI=y |
223 | CONFIG_PCI=y | 199 | CONFIG_PCI=y |
200 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
224 | CONFIG_MMU=y | 201 | CONFIG_MMU=y |
225 | 202 | ||
226 | # | 203 | # |
@@ -228,10 +205,6 @@ CONFIG_MMU=y | |||
228 | # | 205 | # |
229 | 206 | ||
230 | # | 207 | # |
231 | # PCI Hotplug Support | ||
232 | # | ||
233 | |||
234 | # | ||
235 | # Executable file formats | 208 | # Executable file formats |
236 | # | 209 | # |
237 | CONFIG_BINFMT_ELF=y | 210 | CONFIG_BINFMT_ELF=y |
@@ -251,7 +224,6 @@ CONFIG_NET=y | |||
251 | # | 224 | # |
252 | # Networking options | 225 | # Networking options |
253 | # | 226 | # |
254 | # CONFIG_NETDEBUG is not set | ||
255 | CONFIG_PACKET=y | 227 | CONFIG_PACKET=y |
256 | # CONFIG_PACKET_MMAP is not set | 228 | # CONFIG_PACKET_MMAP is not set |
257 | CONFIG_UNIX=y | 229 | CONFIG_UNIX=y |
@@ -266,7 +238,6 @@ CONFIG_IP_PNP_BOOTP=y | |||
266 | # CONFIG_IP_PNP_RARP is not set | 238 | # CONFIG_IP_PNP_RARP is not set |
267 | # CONFIG_NET_IPIP is not set | 239 | # CONFIG_NET_IPIP is not set |
268 | # CONFIG_NET_IPGRE is not set | 240 | # CONFIG_NET_IPGRE is not set |
269 | # CONFIG_ARPD is not set | ||
270 | # CONFIG_SYN_COOKIES is not set | 241 | # CONFIG_SYN_COOKIES is not set |
271 | # CONFIG_INET_AH is not set | 242 | # CONFIG_INET_AH is not set |
272 | # CONFIG_INET_ESP is not set | 243 | # CONFIG_INET_ESP is not set |
@@ -280,38 +251,17 @@ CONFIG_IP_PNP_BOOTP=y | |||
280 | # CONFIG_TCP_CONG_ADVANCED is not set | 251 | # CONFIG_TCP_CONG_ADVANCED is not set |
281 | CONFIG_TCP_CONG_CUBIC=y | 252 | CONFIG_TCP_CONG_CUBIC=y |
282 | CONFIG_DEFAULT_TCP_CONG="cubic" | 253 | CONFIG_DEFAULT_TCP_CONG="cubic" |
283 | # CONFIG_TCP_MD5SIG is not set | ||
284 | # CONFIG_IPV6 is not set | 254 | # CONFIG_IPV6 is not set |
285 | # CONFIG_INET6_XFRM_TUNNEL is not set | 255 | # CONFIG_INET6_XFRM_TUNNEL is not set |
286 | # CONFIG_INET6_TUNNEL is not set | 256 | # CONFIG_INET6_TUNNEL is not set |
287 | # CONFIG_NETWORK_SECMARK is not set | 257 | # CONFIG_NETWORK_SECMARK is not set |
288 | # CONFIG_NETFILTER is not set | 258 | # CONFIG_NETFILTER is not set |
289 | |||
290 | # | ||
291 | # DCCP Configuration (EXPERIMENTAL) | ||
292 | # | ||
293 | # CONFIG_IP_DCCP is not set | ||
294 | |||
295 | # | ||
296 | # SCTP Configuration (EXPERIMENTAL) | ||
297 | # | ||
298 | # CONFIG_IP_SCTP is not set | ||
299 | |||
300 | # | ||
301 | # TIPC Configuration (EXPERIMENTAL) | ||
302 | # | ||
303 | # CONFIG_TIPC is not set | ||
304 | # CONFIG_ATM is not set | ||
305 | # CONFIG_BRIDGE is not set | 259 | # CONFIG_BRIDGE is not set |
306 | # CONFIG_VLAN_8021Q is not set | 260 | # CONFIG_VLAN_8021Q is not set |
307 | # CONFIG_DECNET is not set | 261 | # CONFIG_DECNET is not set |
308 | # CONFIG_LLC2 is not set | 262 | # CONFIG_LLC2 is not set |
309 | # CONFIG_IPX is not set | 263 | # CONFIG_IPX is not set |
310 | # CONFIG_ATALK is not set | 264 | # CONFIG_ATALK is not set |
311 | # CONFIG_X25 is not set | ||
312 | # CONFIG_LAPB is not set | ||
313 | # CONFIG_ECONET is not set | ||
314 | # CONFIG_WAN_ROUTER is not set | ||
315 | 265 | ||
316 | # | 266 | # |
317 | # QoS and/or fair queueing | 267 | # QoS and/or fair queueing |
@@ -325,7 +275,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
325 | # CONFIG_HAMRADIO is not set | 275 | # CONFIG_HAMRADIO is not set |
326 | # CONFIG_IRDA is not set | 276 | # CONFIG_IRDA is not set |
327 | # CONFIG_BT is not set | 277 | # CONFIG_BT is not set |
278 | |||
279 | # | ||
280 | # Wireless | ||
281 | # | ||
282 | # CONFIG_CFG80211 is not set | ||
283 | # CONFIG_WIRELESS_EXT is not set | ||
328 | # CONFIG_IEEE80211 is not set | 284 | # CONFIG_IEEE80211 is not set |
285 | # CONFIG_RFKILL is not set | ||
329 | 286 | ||
330 | # | 287 | # |
331 | # Device Drivers | 288 | # Device Drivers |
@@ -337,34 +294,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
337 | CONFIG_STANDALONE=y | 294 | CONFIG_STANDALONE=y |
338 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 295 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
339 | # CONFIG_SYS_HYPERVISOR is not set | 296 | # CONFIG_SYS_HYPERVISOR is not set |
340 | |||
341 | # | ||
342 | # Connector - unified userspace <-> kernelspace linker | ||
343 | # | ||
344 | # CONFIG_CONNECTOR is not set | 297 | # CONFIG_CONNECTOR is not set |
345 | |||
346 | # | ||
347 | # Memory Technology Devices (MTD) | ||
348 | # | ||
349 | # CONFIG_MTD is not set | 298 | # CONFIG_MTD is not set |
350 | |||
351 | # | ||
352 | # Parallel port support | ||
353 | # | ||
354 | # CONFIG_PARPORT is not set | 299 | # CONFIG_PARPORT is not set |
355 | 300 | CONFIG_BLK_DEV=y | |
356 | # | ||
357 | # Plug and Play support | ||
358 | # | ||
359 | # CONFIG_PNPACPI is not set | ||
360 | |||
361 | # | ||
362 | # Block devices | ||
363 | # | ||
364 | # CONFIG_BLK_CPQ_DA is not set | 301 | # CONFIG_BLK_CPQ_DA is not set |
365 | # CONFIG_BLK_CPQ_CISS_DA is not set | 302 | # CONFIG_BLK_CPQ_CISS_DA is not set |
366 | # CONFIG_BLK_DEV_DAC960 is not set | 303 | # CONFIG_BLK_DEV_DAC960 is not set |
367 | # CONFIG_BLK_DEV_UMEM is not set | ||
368 | # CONFIG_BLK_DEV_COW_COMMON is not set | 304 | # CONFIG_BLK_DEV_COW_COMMON is not set |
369 | # CONFIG_BLK_DEV_LOOP is not set | 305 | # CONFIG_BLK_DEV_LOOP is not set |
370 | # CONFIG_BLK_DEV_NBD is not set | 306 | # CONFIG_BLK_DEV_NBD is not set |
@@ -372,16 +308,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
372 | # CONFIG_BLK_DEV_RAM is not set | 308 | # CONFIG_BLK_DEV_RAM is not set |
373 | # CONFIG_CDROM_PKTCDVD is not set | 309 | # CONFIG_CDROM_PKTCDVD is not set |
374 | # CONFIG_ATA_OVER_ETH is not set | 310 | # CONFIG_ATA_OVER_ETH is not set |
375 | 311 | # CONFIG_MISC_DEVICES is not set | |
376 | # | ||
377 | # Misc devices | ||
378 | # | ||
379 | # CONFIG_SGI_IOC4 is not set | ||
380 | # CONFIG_TIFM_CORE is not set | ||
381 | |||
382 | # | ||
383 | # ATA/ATAPI/MFM/RLL support | ||
384 | # | ||
385 | # CONFIG_IDE is not set | 312 | # CONFIG_IDE is not set |
386 | 313 | ||
387 | # | 314 | # |
@@ -389,16 +316,9 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
389 | # | 316 | # |
390 | # CONFIG_RAID_ATTRS is not set | 317 | # CONFIG_RAID_ATTRS is not set |
391 | # CONFIG_SCSI is not set | 318 | # CONFIG_SCSI is not set |
319 | # CONFIG_SCSI_DMA is not set | ||
392 | # CONFIG_SCSI_NETLINK is not set | 320 | # CONFIG_SCSI_NETLINK is not set |
393 | |||
394 | # | ||
395 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
396 | # | ||
397 | # CONFIG_ATA is not set | 321 | # CONFIG_ATA is not set |
398 | |||
399 | # | ||
400 | # Multi-device support (RAID and LVM) | ||
401 | # | ||
402 | # CONFIG_MD is not set | 322 | # CONFIG_MD is not set |
403 | 323 | ||
404 | # | 324 | # |
@@ -409,46 +329,28 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
409 | # | 329 | # |
410 | # IEEE 1394 (FireWire) support | 330 | # IEEE 1394 (FireWire) support |
411 | # | 331 | # |
412 | # CONFIG_IEEE1394 is not set | ||
413 | 332 | ||
414 | # | 333 | # |
415 | # I2O device support | 334 | # An alternative FireWire stack is available with EXPERIMENTAL=y |
416 | # | 335 | # |
336 | # CONFIG_IEEE1394 is not set | ||
417 | # CONFIG_I2O is not set | 337 | # CONFIG_I2O is not set |
418 | |||
419 | # | ||
420 | # Network device support | ||
421 | # | ||
422 | CONFIG_NETDEVICES=y | 338 | CONFIG_NETDEVICES=y |
339 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
423 | # CONFIG_DUMMY is not set | 340 | # CONFIG_DUMMY is not set |
424 | # CONFIG_BONDING is not set | 341 | # CONFIG_BONDING is not set |
425 | # CONFIG_EQUALIZER is not set | 342 | # CONFIG_EQUALIZER is not set |
426 | # CONFIG_TUN is not set | 343 | # CONFIG_TUN is not set |
427 | |||
428 | # | ||
429 | # ARCnet devices | ||
430 | # | ||
431 | # CONFIG_ARCNET is not set | 344 | # CONFIG_ARCNET is not set |
432 | |||
433 | # | ||
434 | # PHY device support | ||
435 | # | ||
436 | # CONFIG_PHYLIB is not set | 345 | # CONFIG_PHYLIB is not set |
437 | |||
438 | # | ||
439 | # Ethernet (10 or 100Mbit) | ||
440 | # | ||
441 | CONFIG_NET_ETHERNET=y | 346 | CONFIG_NET_ETHERNET=y |
442 | CONFIG_MII=y | 347 | CONFIG_MII=y |
348 | # CONFIG_AX88796 is not set | ||
443 | # CONFIG_HAPPYMEAL is not set | 349 | # CONFIG_HAPPYMEAL is not set |
444 | # CONFIG_SUNGEM is not set | 350 | # CONFIG_SUNGEM is not set |
445 | # CONFIG_CASSINI is not set | 351 | # CONFIG_CASSINI is not set |
446 | # CONFIG_NET_VENDOR_3COM is not set | 352 | # CONFIG_NET_VENDOR_3COM is not set |
447 | # CONFIG_DM9000 is not set | 353 | # CONFIG_DM9000 is not set |
448 | |||
449 | # | ||
450 | # Tulip family network device support | ||
451 | # | ||
452 | # CONFIG_NET_TULIP is not set | 354 | # CONFIG_NET_TULIP is not set |
453 | # CONFIG_HP100 is not set | 355 | # CONFIG_HP100 is not set |
454 | CONFIG_NET_PCI=y | 356 | CONFIG_NET_PCI=y |
@@ -464,76 +366,28 @@ CONFIG_TC35815=y | |||
464 | # CONFIG_FEALNX is not set | 366 | # CONFIG_FEALNX is not set |
465 | # CONFIG_NATSEMI is not set | 367 | # CONFIG_NATSEMI is not set |
466 | # CONFIG_NE2K_PCI is not set | 368 | # CONFIG_NE2K_PCI is not set |
467 | # CONFIG_8139CP is not set | ||
468 | # CONFIG_8139TOO is not set | 369 | # CONFIG_8139TOO is not set |
469 | # CONFIG_SIS900 is not set | 370 | # CONFIG_SIS900 is not set |
470 | # CONFIG_EPIC100 is not set | 371 | # CONFIG_EPIC100 is not set |
471 | # CONFIG_SUNDANCE is not set | 372 | # CONFIG_SUNDANCE is not set |
472 | # CONFIG_TLAN is not set | 373 | # CONFIG_TLAN is not set |
473 | # CONFIG_VIA_RHINE is not set | 374 | # CONFIG_VIA_RHINE is not set |
474 | # CONFIG_SC92031 is not set | 375 | # CONFIG_NETDEV_1000 is not set |
475 | 376 | # CONFIG_NETDEV_10000 is not set | |
476 | # | ||
477 | # Ethernet (1000 Mbit) | ||
478 | # | ||
479 | # CONFIG_ACENIC is not set | ||
480 | # CONFIG_DL2K is not set | ||
481 | # CONFIG_E1000 is not set | ||
482 | # CONFIG_NS83820 is not set | ||
483 | # CONFIG_HAMACHI is not set | ||
484 | # CONFIG_YELLOWFIN is not set | ||
485 | # CONFIG_R8169 is not set | ||
486 | # CONFIG_SIS190 is not set | ||
487 | # CONFIG_SKGE is not set | ||
488 | # CONFIG_SKY2 is not set | ||
489 | # CONFIG_SK98LIN is not set | ||
490 | # CONFIG_VIA_VELOCITY is not set | ||
491 | # CONFIG_TIGON3 is not set | ||
492 | # CONFIG_BNX2 is not set | ||
493 | # CONFIG_QLA3XXX is not set | ||
494 | # CONFIG_ATL1 is not set | ||
495 | |||
496 | # | ||
497 | # Ethernet (10000 Mbit) | ||
498 | # | ||
499 | # CONFIG_CHELSIO_T1 is not set | ||
500 | # CONFIG_CHELSIO_T3 is not set | ||
501 | # CONFIG_IXGB is not set | ||
502 | # CONFIG_S2IO is not set | ||
503 | # CONFIG_MYRI10GE is not set | ||
504 | # CONFIG_NETXEN_NIC is not set | ||
505 | |||
506 | # | ||
507 | # Token Ring devices | ||
508 | # | ||
509 | # CONFIG_TR is not set | 377 | # CONFIG_TR is not set |
510 | 378 | ||
511 | # | 379 | # |
512 | # Wireless LAN (non-hamradio) | 380 | # Wireless LAN |
513 | # | ||
514 | # CONFIG_NET_RADIO is not set | ||
515 | |||
516 | # | ||
517 | # Wan interfaces | ||
518 | # | 381 | # |
382 | # CONFIG_WLAN_PRE80211 is not set | ||
383 | # CONFIG_WLAN_80211 is not set | ||
519 | # CONFIG_WAN is not set | 384 | # CONFIG_WAN is not set |
520 | # CONFIG_FDDI is not set | 385 | # CONFIG_FDDI is not set |
521 | # CONFIG_HIPPI is not set | ||
522 | # CONFIG_PPP is not set | 386 | # CONFIG_PPP is not set |
523 | # CONFIG_SLIP is not set | 387 | # CONFIG_SLIP is not set |
524 | # CONFIG_SHAPER is not set | ||
525 | # CONFIG_NETCONSOLE is not set | ||
526 | # CONFIG_NETPOLL is not set | 388 | # CONFIG_NETPOLL is not set |
527 | # CONFIG_NET_POLL_CONTROLLER is not set | 389 | # CONFIG_NET_POLL_CONTROLLER is not set |
528 | |||
529 | # | ||
530 | # ISDN subsystem | ||
531 | # | ||
532 | # CONFIG_ISDN is not set | 390 | # CONFIG_ISDN is not set |
533 | |||
534 | # | ||
535 | # Telephony Support | ||
536 | # | ||
537 | # CONFIG_PHONE is not set | 391 | # CONFIG_PHONE is not set |
538 | 392 | ||
539 | # | 393 | # |
@@ -541,6 +395,7 @@ CONFIG_TC35815=y | |||
541 | # | 395 | # |
542 | CONFIG_INPUT=y | 396 | CONFIG_INPUT=y |
543 | # CONFIG_INPUT_FF_MEMLESS is not set | 397 | # CONFIG_INPUT_FF_MEMLESS is not set |
398 | # CONFIG_INPUT_POLLDEV is not set | ||
544 | 399 | ||
545 | # | 400 | # |
546 | # Userland interfaces | 401 | # Userland interfaces |
@@ -557,6 +412,7 @@ CONFIG_INPUT=y | |||
557 | # CONFIG_INPUT_KEYBOARD is not set | 412 | # CONFIG_INPUT_KEYBOARD is not set |
558 | # CONFIG_INPUT_MOUSE is not set | 413 | # CONFIG_INPUT_MOUSE is not set |
559 | # CONFIG_INPUT_JOYSTICK is not set | 414 | # CONFIG_INPUT_JOYSTICK is not set |
415 | # CONFIG_INPUT_TABLET is not set | ||
560 | # CONFIG_INPUT_TOUCHSCREEN is not set | 416 | # CONFIG_INPUT_TOUCHSCREEN is not set |
561 | # CONFIG_INPUT_MISC is not set | 417 | # CONFIG_INPUT_MISC is not set |
562 | 418 | ||
@@ -607,33 +463,15 @@ CONFIG_SERIAL_TXX9_STDSERIAL=y | |||
607 | # CONFIG_UNIX98_PTYS is not set | 463 | # CONFIG_UNIX98_PTYS is not set |
608 | CONFIG_LEGACY_PTYS=y | 464 | CONFIG_LEGACY_PTYS=y |
609 | CONFIG_LEGACY_PTY_COUNT=256 | 465 | CONFIG_LEGACY_PTY_COUNT=256 |
610 | |||
611 | # | ||
612 | # IPMI | ||
613 | # | ||
614 | # CONFIG_IPMI_HANDLER is not set | 466 | # CONFIG_IPMI_HANDLER is not set |
615 | |||
616 | # | ||
617 | # Watchdog Cards | ||
618 | # | ||
619 | # CONFIG_WATCHDOG is not set | 467 | # CONFIG_WATCHDOG is not set |
620 | # CONFIG_HW_RANDOM is not set | 468 | # CONFIG_HW_RANDOM is not set |
621 | # CONFIG_RTC is not set | 469 | # CONFIG_RTC is not set |
622 | # CONFIG_GEN_RTC is not set | ||
623 | # CONFIG_DTLK is not set | ||
624 | # CONFIG_R3964 is not set | 470 | # CONFIG_R3964 is not set |
625 | # CONFIG_APPLICOM is not set | 471 | # CONFIG_APPLICOM is not set |
626 | # CONFIG_DRM is not set | 472 | # CONFIG_DRM is not set |
627 | # CONFIG_RAW_DRIVER is not set | 473 | # CONFIG_RAW_DRIVER is not set |
628 | 474 | CONFIG_DEVPORT=y | |
629 | # | ||
630 | # TPM devices | ||
631 | # | ||
632 | # CONFIG_TCG_TPM is not set | ||
633 | |||
634 | # | ||
635 | # I2C support | ||
636 | # | ||
637 | # CONFIG_I2C is not set | 475 | # CONFIG_I2C is not set |
638 | 476 | ||
639 | # | 477 | # |
@@ -641,17 +479,9 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
641 | # | 479 | # |
642 | # CONFIG_SPI is not set | 480 | # CONFIG_SPI is not set |
643 | # CONFIG_SPI_MASTER is not set | 481 | # CONFIG_SPI_MASTER is not set |
644 | |||
645 | # | ||
646 | # Dallas's 1-wire bus | ||
647 | # | ||
648 | # CONFIG_W1 is not set | 482 | # CONFIG_W1 is not set |
649 | 483 | # CONFIG_POWER_SUPPLY is not set | |
650 | # | ||
651 | # Hardware Monitoring support | ||
652 | # | ||
653 | # CONFIG_HWMON is not set | 484 | # CONFIG_HWMON is not set |
654 | # CONFIG_HWMON_VID is not set | ||
655 | 485 | ||
656 | # | 486 | # |
657 | # Multifunction device drivers | 487 | # Multifunction device drivers |
@@ -662,75 +492,31 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
662 | # Multimedia devices | 492 | # Multimedia devices |
663 | # | 493 | # |
664 | # CONFIG_VIDEO_DEV is not set | 494 | # CONFIG_VIDEO_DEV is not set |
495 | # CONFIG_DVB_CORE is not set | ||
496 | # CONFIG_DAB is not set | ||
665 | 497 | ||
666 | # | 498 | # |
667 | # Digital Video Broadcasting Devices | 499 | # Graphics support |
668 | # | 500 | # |
669 | # CONFIG_DVB is not set | 501 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
670 | 502 | ||
671 | # | 503 | # |
672 | # Graphics support | 504 | # Display device support |
673 | # | 505 | # |
674 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 506 | # CONFIG_DISPLAY_SUPPORT is not set |
507 | # CONFIG_VGASTATE is not set | ||
508 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
675 | # CONFIG_FB is not set | 509 | # CONFIG_FB is not set |
676 | 510 | ||
677 | # | 511 | # |
678 | # Sound | 512 | # Sound |
679 | # | 513 | # |
680 | # CONFIG_SOUND is not set | 514 | # CONFIG_SOUND is not set |
681 | 515 | # CONFIG_HID_SUPPORT is not set | |
682 | # | 516 | # CONFIG_USB_SUPPORT is not set |
683 | # HID Devices | ||
684 | # | ||
685 | # CONFIG_HID is not set | ||
686 | |||
687 | # | ||
688 | # USB support | ||
689 | # | ||
690 | CONFIG_USB_ARCH_HAS_HCD=y | ||
691 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
692 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
693 | # CONFIG_USB is not set | ||
694 | |||
695 | # | ||
696 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
697 | # | ||
698 | |||
699 | # | ||
700 | # USB Gadget Support | ||
701 | # | ||
702 | # CONFIG_USB_GADGET is not set | ||
703 | |||
704 | # | ||
705 | # MMC/SD Card support | ||
706 | # | ||
707 | # CONFIG_MMC is not set | 517 | # CONFIG_MMC is not set |
708 | |||
709 | # | ||
710 | # LED devices | ||
711 | # | ||
712 | # CONFIG_NEW_LEDS is not set | 518 | # CONFIG_NEW_LEDS is not set |
713 | |||
714 | # | ||
715 | # LED drivers | ||
716 | # | ||
717 | |||
718 | # | ||
719 | # LED Triggers | ||
720 | # | ||
721 | |||
722 | # | ||
723 | # InfiniBand support | ||
724 | # | ||
725 | # CONFIG_INFINIBAND is not set | 519 | # CONFIG_INFINIBAND is not set |
726 | |||
727 | # | ||
728 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
729 | # | ||
730 | |||
731 | # | ||
732 | # Real Time Clock | ||
733 | # | ||
734 | CONFIG_RTC_LIB=y | 520 | CONFIG_RTC_LIB=y |
735 | CONFIG_RTC_CLASS=y | 521 | CONFIG_RTC_CLASS=y |
736 | CONFIG_RTC_HCTOSYS=y | 522 | CONFIG_RTC_HCTOSYS=y |
@@ -744,17 +530,28 @@ CONFIG_RTC_INTF_SYSFS=y | |||
744 | CONFIG_RTC_INTF_PROC=y | 530 | CONFIG_RTC_INTF_PROC=y |
745 | CONFIG_RTC_INTF_DEV=y | 531 | CONFIG_RTC_INTF_DEV=y |
746 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | 532 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set |
533 | # CONFIG_RTC_DRV_TEST is not set | ||
534 | |||
535 | # | ||
536 | # SPI RTC drivers | ||
537 | # | ||
747 | 538 | ||
748 | # | 539 | # |
749 | # RTC drivers | 540 | # Platform RTC drivers |
750 | # | 541 | # |
542 | # CONFIG_RTC_DRV_CMOS is not set | ||
751 | # CONFIG_RTC_DRV_DS1553 is not set | 543 | # CONFIG_RTC_DRV_DS1553 is not set |
544 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
752 | CONFIG_RTC_DRV_DS1742=y | 545 | CONFIG_RTC_DRV_DS1742=y |
753 | # CONFIG_RTC_DRV_M48T86 is not set | 546 | # CONFIG_RTC_DRV_M48T86 is not set |
754 | # CONFIG_RTC_DRV_TEST is not set | 547 | # CONFIG_RTC_DRV_M48T59 is not set |
755 | # CONFIG_RTC_DRV_V3020 is not set | 548 | # CONFIG_RTC_DRV_V3020 is not set |
756 | 549 | ||
757 | # | 550 | # |
551 | # on-CPU RTC drivers | ||
552 | # | ||
553 | |||
554 | # | ||
758 | # DMA Engine support | 555 | # DMA Engine support |
759 | # | 556 | # |
760 | # CONFIG_DMA_ENGINE is not set | 557 | # CONFIG_DMA_ENGINE is not set |
@@ -768,24 +565,19 @@ CONFIG_RTC_DRV_DS1742=y | |||
768 | # | 565 | # |
769 | 566 | ||
770 | # | 567 | # |
771 | # Auxiliary Display support | 568 | # Userspace I/O |
772 | # | ||
773 | |||
774 | # | ||
775 | # Virtualization | ||
776 | # | 569 | # |
570 | # CONFIG_UIO is not set | ||
777 | 571 | ||
778 | # | 572 | # |
779 | # File systems | 573 | # File systems |
780 | # | 574 | # |
781 | # CONFIG_EXT2_FS is not set | 575 | # CONFIG_EXT2_FS is not set |
782 | # CONFIG_EXT3_FS is not set | 576 | # CONFIG_EXT3_FS is not set |
783 | # CONFIG_EXT4DEV_FS is not set | ||
784 | # CONFIG_REISERFS_FS is not set | 577 | # CONFIG_REISERFS_FS is not set |
785 | # CONFIG_JFS_FS is not set | 578 | # CONFIG_JFS_FS is not set |
786 | # CONFIG_FS_POSIX_ACL is not set | 579 | # CONFIG_FS_POSIX_ACL is not set |
787 | # CONFIG_XFS_FS is not set | 580 | # CONFIG_XFS_FS is not set |
788 | # CONFIG_GFS2_FS is not set | ||
789 | # CONFIG_OCFS2_FS is not set | 581 | # CONFIG_OCFS2_FS is not set |
790 | # CONFIG_MINIX_FS is not set | 582 | # CONFIG_MINIX_FS is not set |
791 | # CONFIG_ROMFS_FS is not set | 583 | # CONFIG_ROMFS_FS is not set |
@@ -820,18 +612,11 @@ CONFIG_SYSFS=y | |||
820 | # CONFIG_TMPFS is not set | 612 | # CONFIG_TMPFS is not set |
821 | # CONFIG_HUGETLB_PAGE is not set | 613 | # CONFIG_HUGETLB_PAGE is not set |
822 | CONFIG_RAMFS=y | 614 | CONFIG_RAMFS=y |
823 | # CONFIG_CONFIGFS_FS is not set | ||
824 | 615 | ||
825 | # | 616 | # |
826 | # Miscellaneous filesystems | 617 | # Miscellaneous filesystems |
827 | # | 618 | # |
828 | # CONFIG_ADFS_FS is not set | ||
829 | # CONFIG_AFFS_FS is not set | ||
830 | # CONFIG_HFS_FS is not set | ||
831 | # CONFIG_HFSPLUS_FS is not set | 619 | # CONFIG_HFSPLUS_FS is not set |
832 | # CONFIG_BEFS_FS is not set | ||
833 | # CONFIG_BFS_FS is not set | ||
834 | # CONFIG_EFS_FS is not set | ||
835 | # CONFIG_CRAMFS is not set | 620 | # CONFIG_CRAMFS is not set |
836 | # CONFIG_VXFS_FS is not set | 621 | # CONFIG_VXFS_FS is not set |
837 | # CONFIG_HPFS_FS is not set | 622 | # CONFIG_HPFS_FS is not set |
@@ -844,21 +629,16 @@ CONFIG_RAMFS=y | |||
844 | # | 629 | # |
845 | CONFIG_NFS_FS=y | 630 | CONFIG_NFS_FS=y |
846 | # CONFIG_NFS_V3 is not set | 631 | # CONFIG_NFS_V3 is not set |
847 | # CONFIG_NFS_V4 is not set | ||
848 | # CONFIG_NFS_DIRECTIO is not set | 632 | # CONFIG_NFS_DIRECTIO is not set |
849 | # CONFIG_NFSD is not set | 633 | # CONFIG_NFSD is not set |
850 | CONFIG_ROOT_NFS=y | 634 | CONFIG_ROOT_NFS=y |
851 | CONFIG_LOCKD=y | 635 | CONFIG_LOCKD=y |
852 | CONFIG_NFS_COMMON=y | 636 | CONFIG_NFS_COMMON=y |
853 | CONFIG_SUNRPC=y | 637 | CONFIG_SUNRPC=y |
854 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
855 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
856 | # CONFIG_SMB_FS is not set | 638 | # CONFIG_SMB_FS is not set |
857 | # CONFIG_CIFS is not set | 639 | # CONFIG_CIFS is not set |
858 | # CONFIG_NCP_FS is not set | 640 | # CONFIG_NCP_FS is not set |
859 | # CONFIG_CODA_FS is not set | 641 | # CONFIG_CODA_FS is not set |
860 | # CONFIG_AFS_FS is not set | ||
861 | # CONFIG_9P_FS is not set | ||
862 | 642 | ||
863 | # | 643 | # |
864 | # Partition Types | 644 | # Partition Types |
@@ -872,16 +652,6 @@ CONFIG_MSDOS_PARTITION=y | |||
872 | # CONFIG_NLS is not set | 652 | # CONFIG_NLS is not set |
873 | 653 | ||
874 | # | 654 | # |
875 | # Distributed Lock Manager | ||
876 | # | ||
877 | # CONFIG_DLM is not set | ||
878 | |||
879 | # | ||
880 | # Profiling support | ||
881 | # | ||
882 | # CONFIG_PROFILING is not set | ||
883 | |||
884 | # | ||
885 | # Kernel hacking | 655 | # Kernel hacking |
886 | # | 656 | # |
887 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 657 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -892,7 +662,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
892 | # CONFIG_DEBUG_FS is not set | 662 | # CONFIG_DEBUG_FS is not set |
893 | # CONFIG_HEADERS_CHECK is not set | 663 | # CONFIG_HEADERS_CHECK is not set |
894 | # CONFIG_DEBUG_KERNEL is not set | 664 | # CONFIG_DEBUG_KERNEL is not set |
895 | CONFIG_LOG_BUF_SHIFT=14 | ||
896 | CONFIG_CROSSCOMPILE=y | 665 | CONFIG_CROSSCOMPILE=y |
897 | CONFIG_CMDLINE="" | 666 | CONFIG_CMDLINE="" |
898 | 667 | ||
@@ -901,10 +670,6 @@ CONFIG_CMDLINE="" | |||
901 | # | 670 | # |
902 | # CONFIG_KEYS is not set | 671 | # CONFIG_KEYS is not set |
903 | # CONFIG_SECURITY is not set | 672 | # CONFIG_SECURITY is not set |
904 | |||
905 | # | ||
906 | # Cryptographic options | ||
907 | # | ||
908 | # CONFIG_CRYPTO is not set | 673 | # CONFIG_CRYPTO is not set |
909 | 674 | ||
910 | # | 675 | # |
@@ -913,8 +678,11 @@ CONFIG_CMDLINE="" | |||
913 | CONFIG_BITREVERSE=y | 678 | CONFIG_BITREVERSE=y |
914 | # CONFIG_CRC_CCITT is not set | 679 | # CONFIG_CRC_CCITT is not set |
915 | # CONFIG_CRC16 is not set | 680 | # CONFIG_CRC16 is not set |
681 | # CONFIG_CRC_ITU_T is not set | ||
916 | CONFIG_CRC32=y | 682 | CONFIG_CRC32=y |
683 | # CONFIG_CRC7 is not set | ||
917 | # CONFIG_LIBCRC32C is not set | 684 | # CONFIG_LIBCRC32C is not set |
918 | CONFIG_PLIST=y | 685 | CONFIG_PLIST=y |
919 | CONFIG_HAS_IOMEM=y | 686 | CONFIG_HAS_IOMEM=y |
920 | CONFIG_HAS_IOPORT=y | 687 | CONFIG_HAS_IOPORT=y |
688 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig index fbfa5685887c..fbd2d802fdfd 100644 --- a/arch/mips/configs/malta_defconfig +++ b/arch/mips/configs/malta_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.20 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Sun Feb 18 21:27:55 2007 | 4 | # Tue Aug 7 12:59:29 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -9,52 +9,40 @@ CONFIG_MIPS=y | |||
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | CONFIG_ZONE_DMA=y |
12 | # CONFIG_MIPS_MTX1 is not set | 12 | # CONFIG_MACH_ALCHEMY is not set |
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 13 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 14 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 15 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 16 | # CONFIG_MACH_JAZZ is not set |
17 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 18 | # CONFIG_MIPS_ATLAS is not set |
30 | CONFIG_MIPS_MALTA=y | 19 | CONFIG_MIPS_MALTA=y |
31 | # CONFIG_MIPS_SEAD is not set | 20 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 21 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 22 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 23 | # CONFIG_MACH_VR41XX is not set |
36 | # CONFIG_PNX8550_JBS is not set | 24 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 25 | # CONFIG_PNX8550_STB810 is not set |
38 | # CONFIG_MACH_VR41XX is not set | 26 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 27 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 28 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | # CONFIG_SGI_IP22 is not set | 29 | # CONFIG_SGI_IP22 is not set |
43 | # CONFIG_SGI_IP27 is not set | 30 | # CONFIG_SGI_IP27 is not set |
44 | # CONFIG_SGI_IP32 is not set | 31 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 32 | # CONFIG_SIBYTE_CRHINE is not set |
33 | # CONFIG_SIBYTE_CARMEL is not set | ||
34 | # CONFIG_SIBYTE_CRHONE is not set | ||
35 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 36 | # CONFIG_SIBYTE_SWARM is not set |
37 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 38 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 39 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 40 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 41 | # CONFIG_SNI_RM is not set |
55 | # CONFIG_TOSHIBA_JMR3927 is not set | 42 | # CONFIG_TOSHIBA_JMR3927 is not set |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 43 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 44 | # CONFIG_TOSHIBA_RBTX4938 is not set |
45 | # CONFIG_WR_PPMC is not set | ||
58 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 46 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
59 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 47 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
60 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 48 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
@@ -67,25 +55,28 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
67 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 55 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
68 | CONFIG_DMA_NONCOHERENT=y | 56 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 57 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
58 | CONFIG_EARLY_PRINTK=y | ||
59 | CONFIG_SYS_HAS_EARLY_PRINTK=y | ||
70 | CONFIG_GENERIC_ISA_DMA=y | 60 | CONFIG_GENERIC_ISA_DMA=y |
71 | CONFIG_I8259=y | 61 | CONFIG_I8259=y |
72 | CONFIG_MIPS_BONITO64=y | 62 | CONFIG_MIPS_BONITO64=y |
73 | CONFIG_MIPS_MSC=y | 63 | CONFIG_MIPS_MSC=y |
64 | # CONFIG_NO_IOPORT is not set | ||
74 | # CONFIG_CPU_BIG_ENDIAN is not set | 65 | # CONFIG_CPU_BIG_ENDIAN is not set |
75 | CONFIG_CPU_LITTLE_ENDIAN=y | 66 | CONFIG_CPU_LITTLE_ENDIAN=y |
76 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | 67 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y |
77 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 68 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
78 | CONFIG_IRQ_CPU=y | 69 | CONFIG_IRQ_CPU=y |
79 | CONFIG_MIPS_BOARDS_GEN=y | 70 | CONFIG_MIPS_BOARDS_GEN=y |
80 | CONFIG_MIPS_GT64120=y | 71 | CONFIG_PCI_GT64XXX_PCI0=y |
81 | CONFIG_SWAP_IO_SPACE=y | 72 | CONFIG_SWAP_IO_SPACE=y |
82 | CONFIG_BOOT_ELF32=y | 73 | CONFIG_BOOT_ELF32=y |
83 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | 74 | CONFIG_MIPS_L1_CACHE_SHIFT=5 |
84 | CONFIG_HAVE_STD_PC_SERIAL_PORT=y | ||
85 | 75 | ||
86 | # | 76 | # |
87 | # CPU selection | 77 | # CPU selection |
88 | # | 78 | # |
79 | # CONFIG_CPU_LOONGSON2 is not set | ||
89 | # CONFIG_CPU_MIPS32_R1 is not set | 80 | # CONFIG_CPU_MIPS32_R1 is not set |
90 | CONFIG_CPU_MIPS32_R2=y | 81 | CONFIG_CPU_MIPS32_R2=y |
91 | # CONFIG_CPU_MIPS64_R1 is not set | 82 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -131,14 +122,14 @@ CONFIG_CPU_HAS_PREFETCH=y | |||
131 | # CONFIG_MIPS_MT_DISABLED is not set | 122 | # CONFIG_MIPS_MT_DISABLED is not set |
132 | CONFIG_MIPS_MT_SMP=y | 123 | CONFIG_MIPS_MT_SMP=y |
133 | # CONFIG_MIPS_MT_SMTC is not set | 124 | # CONFIG_MIPS_MT_SMTC is not set |
134 | # CONFIG_MIPS_VPE_LOADER is not set | ||
135 | CONFIG_MIPS_MT=y | 125 | CONFIG_MIPS_MT=y |
136 | CONFIG_SYS_SUPPORTS_MULTITHREADING=y | 126 | CONFIG_SYS_SUPPORTS_MULTITHREADING=y |
137 | CONFIG_MIPS_MT_FPAFF=y | 127 | CONFIG_MIPS_MT_FPAFF=y |
138 | # CONFIG_64BIT_PHYS_ADDR is not set | 128 | # CONFIG_MIPS_VPE_LOADER is not set |
139 | CONFIG_CPU_HAS_LLSC=y | 129 | CONFIG_CPU_HAS_LLSC=y |
140 | # CONFIG_CPU_HAS_SMARTMIPS is not set | 130 | # CONFIG_CPU_HAS_SMARTMIPS is not set |
141 | CONFIG_CPU_MIPSR2_IRQ_VI=y | 131 | CONFIG_CPU_MIPSR2_IRQ_VI=y |
132 | CONFIG_CPU_MIPSR2_IRQ_EI=y | ||
142 | CONFIG_CPU_MIPSR2_SRS=y | 133 | CONFIG_CPU_MIPSR2_SRS=y |
143 | CONFIG_CPU_HAS_SYNC=y | 134 | CONFIG_CPU_HAS_SYNC=y |
144 | CONFIG_GENERIC_HARDIRQS=y | 135 | CONFIG_GENERIC_HARDIRQS=y |
@@ -157,8 +148,11 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
157 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 148 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
158 | # CONFIG_RESOURCES_64BIT is not set | 149 | # CONFIG_RESOURCES_64BIT is not set |
159 | CONFIG_ZONE_DMA_FLAG=1 | 150 | CONFIG_ZONE_DMA_FLAG=1 |
151 | CONFIG_BOUNCE=y | ||
152 | CONFIG_VIRT_TO_BUS=y | ||
160 | CONFIG_SMP=y | 153 | CONFIG_SMP=y |
161 | CONFIG_SYS_SUPPORTS_SMP=y | 154 | CONFIG_SYS_SUPPORTS_SMP=y |
155 | CONFIG_NR_CPUS_DEFAULT_2=y | ||
162 | CONFIG_NR_CPUS=2 | 156 | CONFIG_NR_CPUS=2 |
163 | # CONFIG_HZ_48 is not set | 157 | # CONFIG_HZ_48 is not set |
164 | CONFIG_HZ_100=y | 158 | CONFIG_HZ_100=y |
@@ -174,35 +168,33 @@ CONFIG_PREEMPT_NONE=y | |||
174 | # CONFIG_PREEMPT is not set | 168 | # CONFIG_PREEMPT is not set |
175 | CONFIG_PREEMPT_BKL=y | 169 | CONFIG_PREEMPT_BKL=y |
176 | # CONFIG_KEXEC is not set | 170 | # CONFIG_KEXEC is not set |
171 | CONFIG_SECCOMP=y | ||
177 | CONFIG_LOCKDEP_SUPPORT=y | 172 | CONFIG_LOCKDEP_SUPPORT=y |
178 | CONFIG_STACKTRACE_SUPPORT=y | 173 | CONFIG_STACKTRACE_SUPPORT=y |
179 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 174 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
180 | 175 | ||
181 | # | 176 | # |
182 | # Code maturity level options | 177 | # General setup |
183 | # | 178 | # |
184 | CONFIG_EXPERIMENTAL=y | 179 | CONFIG_EXPERIMENTAL=y |
185 | CONFIG_LOCK_KERNEL=y | 180 | CONFIG_LOCK_KERNEL=y |
186 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 181 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
187 | |||
188 | # | ||
189 | # General setup | ||
190 | # | ||
191 | CONFIG_LOCALVERSION="" | 182 | CONFIG_LOCALVERSION="" |
192 | CONFIG_LOCALVERSION_AUTO=y | 183 | CONFIG_LOCALVERSION_AUTO=y |
193 | CONFIG_SWAP=y | 184 | CONFIG_SWAP=y |
194 | CONFIG_SYSVIPC=y | 185 | CONFIG_SYSVIPC=y |
195 | # CONFIG_IPC_NS is not set | ||
196 | CONFIG_SYSVIPC_SYSCTL=y | 186 | CONFIG_SYSVIPC_SYSCTL=y |
197 | # CONFIG_POSIX_MQUEUE is not set | 187 | # CONFIG_POSIX_MQUEUE is not set |
198 | # CONFIG_BSD_PROCESS_ACCT is not set | 188 | # CONFIG_BSD_PROCESS_ACCT is not set |
199 | # CONFIG_TASKSTATS is not set | 189 | # CONFIG_TASKSTATS is not set |
200 | # CONFIG_UTS_NS is not set | 190 | # CONFIG_USER_NS is not set |
201 | # CONFIG_AUDIT is not set | 191 | # CONFIG_AUDIT is not set |
202 | # CONFIG_IKCONFIG is not set | 192 | # CONFIG_IKCONFIG is not set |
193 | CONFIG_LOG_BUF_SHIFT=15 | ||
203 | # CONFIG_CPUSETS is not set | 194 | # CONFIG_CPUSETS is not set |
204 | CONFIG_SYSFS_DEPRECATED=y | 195 | CONFIG_SYSFS_DEPRECATED=y |
205 | CONFIG_RELAY=y | 196 | CONFIG_RELAY=y |
197 | # CONFIG_BLK_DEV_INITRD is not set | ||
206 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 198 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
207 | CONFIG_SYSCTL=y | 199 | CONFIG_SYSCTL=y |
208 | CONFIG_EMBEDDED=y | 200 | CONFIG_EMBEDDED=y |
@@ -215,18 +207,19 @@ CONFIG_BUG=y | |||
215 | CONFIG_ELF_CORE=y | 207 | CONFIG_ELF_CORE=y |
216 | CONFIG_BASE_FULL=y | 208 | CONFIG_BASE_FULL=y |
217 | CONFIG_FUTEX=y | 209 | CONFIG_FUTEX=y |
210 | CONFIG_ANON_INODES=y | ||
218 | CONFIG_EPOLL=y | 211 | CONFIG_EPOLL=y |
212 | CONFIG_SIGNALFD=y | ||
213 | CONFIG_TIMERFD=y | ||
214 | CONFIG_EVENTFD=y | ||
219 | CONFIG_SHMEM=y | 215 | CONFIG_SHMEM=y |
220 | CONFIG_SLAB=y | ||
221 | CONFIG_VM_EVENT_COUNTERS=y | 216 | CONFIG_VM_EVENT_COUNTERS=y |
217 | CONFIG_SLAB=y | ||
218 | # CONFIG_SLUB is not set | ||
219 | # CONFIG_SLOB is not set | ||
222 | CONFIG_RT_MUTEXES=y | 220 | CONFIG_RT_MUTEXES=y |
223 | # CONFIG_TINY_SHMEM is not set | 221 | # CONFIG_TINY_SHMEM is not set |
224 | CONFIG_BASE_SMALL=0 | 222 | CONFIG_BASE_SMALL=0 |
225 | # CONFIG_SLOB is not set | ||
226 | |||
227 | # | ||
228 | # Loadable module support | ||
229 | # | ||
230 | CONFIG_MODULES=y | 223 | CONFIG_MODULES=y |
231 | CONFIG_MODULE_UNLOAD=y | 224 | CONFIG_MODULE_UNLOAD=y |
232 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 225 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
@@ -234,14 +227,11 @@ CONFIG_MODVERSIONS=y | |||
234 | CONFIG_MODULE_SRCVERSION_ALL=y | 227 | CONFIG_MODULE_SRCVERSION_ALL=y |
235 | CONFIG_KMOD=y | 228 | CONFIG_KMOD=y |
236 | CONFIG_STOP_MACHINE=y | 229 | CONFIG_STOP_MACHINE=y |
237 | |||
238 | # | ||
239 | # Block layer | ||
240 | # | ||
241 | CONFIG_BLOCK=y | 230 | CONFIG_BLOCK=y |
242 | # CONFIG_LBD is not set | 231 | # CONFIG_LBD is not set |
243 | # CONFIG_BLK_DEV_IO_TRACE is not set | 232 | # CONFIG_BLK_DEV_IO_TRACE is not set |
244 | # CONFIG_LSF is not set | 233 | # CONFIG_LSF is not set |
234 | # CONFIG_BLK_DEV_BSG is not set | ||
245 | 235 | ||
246 | # | 236 | # |
247 | # IO Schedulers | 237 | # IO Schedulers |
@@ -261,16 +251,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
261 | # | 251 | # |
262 | CONFIG_HW_HAS_PCI=y | 252 | CONFIG_HW_HAS_PCI=y |
263 | CONFIG_PCI=y | 253 | CONFIG_PCI=y |
254 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
264 | CONFIG_MMU=y | 255 | CONFIG_MMU=y |
265 | 256 | ||
266 | # | 257 | # |
267 | # PCCARD (PCMCIA/CardBus) support | 258 | # PCCARD (PCMCIA/CardBus) support |
268 | # | 259 | # |
269 | # CONFIG_PCCARD is not set | 260 | # CONFIG_PCCARD is not set |
270 | |||
271 | # | ||
272 | # PCI Hotplug Support | ||
273 | # | ||
274 | # CONFIG_HOTPLUG_PCI is not set | 261 | # CONFIG_HOTPLUG_PCI is not set |
275 | 262 | ||
276 | # | 263 | # |
@@ -286,7 +273,6 @@ CONFIG_TRAD_SIGNALS=y | |||
286 | CONFIG_PM=y | 273 | CONFIG_PM=y |
287 | # CONFIG_PM_LEGACY is not set | 274 | # CONFIG_PM_LEGACY is not set |
288 | # CONFIG_PM_DEBUG is not set | 275 | # CONFIG_PM_DEBUG is not set |
289 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
290 | 276 | ||
291 | # | 277 | # |
292 | # Networking | 278 | # Networking |
@@ -296,7 +282,6 @@ CONFIG_NET=y | |||
296 | # | 282 | # |
297 | # Networking options | 283 | # Networking options |
298 | # | 284 | # |
299 | # CONFIG_NETDEBUG is not set | ||
300 | CONFIG_PACKET=y | 285 | CONFIG_PACKET=y |
301 | CONFIG_PACKET_MMAP=y | 286 | CONFIG_PACKET_MMAP=y |
302 | CONFIG_UNIX=y | 287 | CONFIG_UNIX=y |
@@ -314,7 +299,6 @@ CONFIG_ASK_IP_FIB_HASH=y | |||
314 | CONFIG_IP_FIB_HASH=y | 299 | CONFIG_IP_FIB_HASH=y |
315 | CONFIG_IP_MULTIPLE_TABLES=y | 300 | CONFIG_IP_MULTIPLE_TABLES=y |
316 | CONFIG_IP_ROUTE_MULTIPATH=y | 301 | CONFIG_IP_ROUTE_MULTIPATH=y |
317 | # CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set | ||
318 | CONFIG_IP_ROUTE_VERBOSE=y | 302 | CONFIG_IP_ROUTE_VERBOSE=y |
319 | CONFIG_IP_PNP=y | 303 | CONFIG_IP_PNP=y |
320 | CONFIG_IP_PNP_DHCP=y | 304 | CONFIG_IP_PNP_DHCP=y |
@@ -342,10 +326,6 @@ CONFIG_INET_TCP_DIAG=y | |||
342 | CONFIG_TCP_CONG_CUBIC=y | 326 | CONFIG_TCP_CONG_CUBIC=y |
343 | CONFIG_DEFAULT_TCP_CONG="cubic" | 327 | CONFIG_DEFAULT_TCP_CONG="cubic" |
344 | CONFIG_TCP_MD5SIG=y | 328 | CONFIG_TCP_MD5SIG=y |
345 | |||
346 | # | ||
347 | # IP: Virtual Server Configuration | ||
348 | # | ||
349 | CONFIG_IP_VS=m | 329 | CONFIG_IP_VS=m |
350 | # CONFIG_IP_VS_DEBUG is not set | 330 | # CONFIG_IP_VS_DEBUG is not set |
351 | CONFIG_IP_VS_TAB_BITS=12 | 331 | CONFIG_IP_VS_TAB_BITS=12 |
@@ -380,6 +360,7 @@ CONFIG_IPV6=m | |||
380 | CONFIG_IPV6_PRIVACY=y | 360 | CONFIG_IPV6_PRIVACY=y |
381 | CONFIG_IPV6_ROUTER_PREF=y | 361 | CONFIG_IPV6_ROUTER_PREF=y |
382 | CONFIG_IPV6_ROUTE_INFO=y | 362 | CONFIG_IPV6_ROUTE_INFO=y |
363 | CONFIG_IPV6_OPTIMISTIC_DAD=y | ||
383 | CONFIG_INET6_AH=m | 364 | CONFIG_INET6_AH=m |
384 | CONFIG_INET6_ESP=m | 365 | CONFIG_INET6_ESP=m |
385 | CONFIG_INET6_IPCOMP=m | 366 | CONFIG_INET6_IPCOMP=m |
@@ -405,8 +386,6 @@ CONFIG_NETFILTER_NETLINK=m | |||
405 | CONFIG_NETFILTER_NETLINK_QUEUE=m | 386 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
406 | CONFIG_NETFILTER_NETLINK_LOG=m | 387 | CONFIG_NETFILTER_NETLINK_LOG=m |
407 | CONFIG_NF_CONNTRACK_ENABLED=m | 388 | CONFIG_NF_CONNTRACK_ENABLED=m |
408 | CONFIG_NF_CONNTRACK_SUPPORT=y | ||
409 | # CONFIG_IP_NF_CONNTRACK_SUPPORT is not set | ||
410 | CONFIG_NF_CONNTRACK=m | 389 | CONFIG_NF_CONNTRACK=m |
411 | CONFIG_NF_CT_ACCT=y | 390 | CONFIG_NF_CT_ACCT=y |
412 | CONFIG_NF_CONNTRACK_MARK=y | 391 | CONFIG_NF_CONNTRACK_MARK=y |
@@ -414,6 +393,7 @@ CONFIG_NF_CONNTRACK_SECMARK=y | |||
414 | CONFIG_NF_CONNTRACK_EVENTS=y | 393 | CONFIG_NF_CONNTRACK_EVENTS=y |
415 | CONFIG_NF_CT_PROTO_GRE=m | 394 | CONFIG_NF_CT_PROTO_GRE=m |
416 | CONFIG_NF_CT_PROTO_SCTP=m | 395 | CONFIG_NF_CT_PROTO_SCTP=m |
396 | CONFIG_NF_CT_PROTO_UDPLITE=m | ||
417 | CONFIG_NF_CONNTRACK_AMANDA=m | 397 | CONFIG_NF_CONNTRACK_AMANDA=m |
418 | CONFIG_NF_CONNTRACK_FTP=m | 398 | CONFIG_NF_CONNTRACK_FTP=m |
419 | CONFIG_NF_CONNTRACK_H323=m | 399 | CONFIG_NF_CONNTRACK_H323=m |
@@ -432,11 +412,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
432 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 412 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
433 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | 413 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m |
434 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | 414 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m |
415 | CONFIG_NETFILTER_XT_TARGET_TRACE=m | ||
435 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m | 416 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m |
436 | # CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set | 417 | # CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set |
437 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | 418 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m |
438 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 419 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
439 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | 420 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m |
421 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m | ||
440 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | 422 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
441 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | 423 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
442 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 424 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
@@ -458,6 +440,7 @@ CONFIG_NETFILTER_XT_MATCH_STATE=m | |||
458 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m | 440 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m |
459 | CONFIG_NETFILTER_XT_MATCH_STRING=m | 441 | CONFIG_NETFILTER_XT_MATCH_STRING=m |
460 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | 442 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m |
443 | CONFIG_NETFILTER_XT_MATCH_U32=m | ||
461 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | 444 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m |
462 | 445 | ||
463 | # | 446 | # |
@@ -549,25 +532,13 @@ CONFIG_BRIDGE_EBT_REDIRECT=m | |||
549 | CONFIG_BRIDGE_EBT_SNAT=m | 532 | CONFIG_BRIDGE_EBT_SNAT=m |
550 | CONFIG_BRIDGE_EBT_LOG=m | 533 | CONFIG_BRIDGE_EBT_LOG=m |
551 | CONFIG_BRIDGE_EBT_ULOG=m | 534 | CONFIG_BRIDGE_EBT_ULOG=m |
552 | |||
553 | # | ||
554 | # DCCP Configuration (EXPERIMENTAL) | ||
555 | # | ||
556 | # CONFIG_IP_DCCP is not set | 535 | # CONFIG_IP_DCCP is not set |
557 | |||
558 | # | ||
559 | # SCTP Configuration (EXPERIMENTAL) | ||
560 | # | ||
561 | CONFIG_IP_SCTP=m | 536 | CONFIG_IP_SCTP=m |
562 | # CONFIG_SCTP_DBG_MSG is not set | 537 | # CONFIG_SCTP_DBG_MSG is not set |
563 | # CONFIG_SCTP_DBG_OBJCNT is not set | 538 | # CONFIG_SCTP_DBG_OBJCNT is not set |
564 | # CONFIG_SCTP_HMAC_NONE is not set | 539 | # CONFIG_SCTP_HMAC_NONE is not set |
565 | # CONFIG_SCTP_HMAC_SHA1 is not set | 540 | # CONFIG_SCTP_HMAC_SHA1 is not set |
566 | CONFIG_SCTP_HMAC_MD5=y | 541 | CONFIG_SCTP_HMAC_MD5=y |
567 | |||
568 | # | ||
569 | # TIPC Configuration (EXPERIMENTAL) | ||
570 | # | ||
571 | # CONFIG_TIPC is not set | 542 | # CONFIG_TIPC is not set |
572 | # CONFIG_ATM is not set | 543 | # CONFIG_ATM is not set |
573 | CONFIG_BRIDGE=m | 544 | CONFIG_BRIDGE=m |
@@ -591,9 +562,6 @@ CONFIG_IPDDP_DECAP=y | |||
591 | # | 562 | # |
592 | CONFIG_NET_SCHED=y | 563 | CONFIG_NET_SCHED=y |
593 | CONFIG_NET_SCH_FIFO=y | 564 | CONFIG_NET_SCH_FIFO=y |
594 | CONFIG_NET_SCH_CLK_JIFFIES=y | ||
595 | # CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set | ||
596 | # CONFIG_NET_SCH_CLK_CPU is not set | ||
597 | 565 | ||
598 | # | 566 | # |
599 | # Queueing/Scheduling | 567 | # Queueing/Scheduling |
@@ -602,6 +570,7 @@ CONFIG_NET_SCH_CBQ=m | |||
602 | CONFIG_NET_SCH_HTB=m | 570 | CONFIG_NET_SCH_HTB=m |
603 | CONFIG_NET_SCH_HFSC=m | 571 | CONFIG_NET_SCH_HFSC=m |
604 | CONFIG_NET_SCH_PRIO=m | 572 | CONFIG_NET_SCH_PRIO=m |
573 | CONFIG_NET_SCH_RR=m | ||
605 | CONFIG_NET_SCH_RED=m | 574 | CONFIG_NET_SCH_RED=m |
606 | CONFIG_NET_SCH_SFQ=m | 575 | CONFIG_NET_SCH_SFQ=m |
607 | CONFIG_NET_SCH_TEQL=m | 576 | CONFIG_NET_SCH_TEQL=m |
@@ -626,10 +595,16 @@ CONFIG_NET_CLS_U32=m | |||
626 | CONFIG_NET_CLS_RSVP=m | 595 | CONFIG_NET_CLS_RSVP=m |
627 | CONFIG_NET_CLS_RSVP6=m | 596 | CONFIG_NET_CLS_RSVP6=m |
628 | # CONFIG_NET_EMATCH is not set | 597 | # CONFIG_NET_EMATCH is not set |
629 | # CONFIG_NET_CLS_ACT is not set | 598 | CONFIG_NET_CLS_ACT=y |
599 | CONFIG_NET_ACT_POLICE=y | ||
600 | CONFIG_NET_ACT_GACT=m | ||
601 | CONFIG_GACT_PROB=y | ||
602 | CONFIG_NET_ACT_MIRRED=m | ||
603 | CONFIG_NET_ACT_IPT=m | ||
604 | CONFIG_NET_ACT_PEDIT=m | ||
605 | CONFIG_NET_ACT_SIMP=m | ||
630 | CONFIG_NET_CLS_POLICE=y | 606 | CONFIG_NET_CLS_POLICE=y |
631 | CONFIG_NET_CLS_IND=y | 607 | CONFIG_NET_CLS_IND=y |
632 | CONFIG_NET_ESTIMATOR=y | ||
633 | 608 | ||
634 | # | 609 | # |
635 | # Network testing | 610 | # Network testing |
@@ -638,14 +613,26 @@ CONFIG_NET_ESTIMATOR=y | |||
638 | # CONFIG_HAMRADIO is not set | 613 | # CONFIG_HAMRADIO is not set |
639 | # CONFIG_IRDA is not set | 614 | # CONFIG_IRDA is not set |
640 | # CONFIG_BT is not set | 615 | # CONFIG_BT is not set |
616 | # CONFIG_AF_RXRPC is not set | ||
617 | CONFIG_FIB_RULES=y | ||
618 | |||
619 | # | ||
620 | # Wireless | ||
621 | # | ||
622 | CONFIG_CFG80211=m | ||
623 | CONFIG_WIRELESS_EXT=y | ||
624 | CONFIG_MAC80211=m | ||
625 | # CONFIG_MAC80211_DEBUG is not set | ||
641 | CONFIG_IEEE80211=m | 626 | CONFIG_IEEE80211=m |
642 | # CONFIG_IEEE80211_DEBUG is not set | 627 | # CONFIG_IEEE80211_DEBUG is not set |
643 | CONFIG_IEEE80211_CRYPT_WEP=m | 628 | CONFIG_IEEE80211_CRYPT_WEP=m |
644 | CONFIG_IEEE80211_CRYPT_CCMP=m | 629 | CONFIG_IEEE80211_CRYPT_CCMP=m |
630 | CONFIG_IEEE80211_CRYPT_TKIP=m | ||
645 | CONFIG_IEEE80211_SOFTMAC=m | 631 | CONFIG_IEEE80211_SOFTMAC=m |
646 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | 632 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set |
647 | CONFIG_WIRELESS_EXT=y | 633 | CONFIG_RFKILL=m |
648 | CONFIG_FIB_RULES=y | 634 | CONFIG_RFKILL_INPUT=m |
635 | # CONFIG_NET_9P is not set | ||
649 | 636 | ||
650 | # | 637 | # |
651 | # Device Drivers | 638 | # Device Drivers |
@@ -658,15 +645,7 @@ CONFIG_STANDALONE=y | |||
658 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 645 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
659 | CONFIG_FW_LOADER=y | 646 | CONFIG_FW_LOADER=y |
660 | # CONFIG_SYS_HYPERVISOR is not set | 647 | # CONFIG_SYS_HYPERVISOR is not set |
661 | |||
662 | # | ||
663 | # Connector - unified userspace <-> kernelspace linker | ||
664 | # | ||
665 | CONFIG_CONNECTOR=m | 648 | CONFIG_CONNECTOR=m |
666 | |||
667 | # | ||
668 | # Memory Technology Devices (MTD) | ||
669 | # | ||
670 | CONFIG_MTD=y | 649 | CONFIG_MTD=y |
671 | # CONFIG_MTD_DEBUG is not set | 650 | # CONFIG_MTD_DEBUG is not set |
672 | # CONFIG_MTD_CONCAT is not set | 651 | # CONFIG_MTD_CONCAT is not set |
@@ -710,7 +689,6 @@ CONFIG_MTD_CFI_UTIL=y | |||
710 | # CONFIG_MTD_RAM is not set | 689 | # CONFIG_MTD_RAM is not set |
711 | # CONFIG_MTD_ROM is not set | 690 | # CONFIG_MTD_ROM is not set |
712 | # CONFIG_MTD_ABSENT is not set | 691 | # CONFIG_MTD_ABSENT is not set |
713 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
714 | 692 | ||
715 | # | 693 | # |
716 | # Mapping drivers for chip access | 694 | # Mapping drivers for chip access |
@@ -737,30 +715,23 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=0 | |||
737 | # CONFIG_MTD_DOC2000 is not set | 715 | # CONFIG_MTD_DOC2000 is not set |
738 | # CONFIG_MTD_DOC2001 is not set | 716 | # CONFIG_MTD_DOC2001 is not set |
739 | # CONFIG_MTD_DOC2001PLUS is not set | 717 | # CONFIG_MTD_DOC2001PLUS is not set |
740 | |||
741 | # | ||
742 | # NAND Flash Device Drivers | ||
743 | # | ||
744 | # CONFIG_MTD_NAND is not set | 718 | # CONFIG_MTD_NAND is not set |
745 | # CONFIG_MTD_NAND_CAFE is not set | ||
746 | |||
747 | # | ||
748 | # OneNAND Flash Device Drivers | ||
749 | # | ||
750 | # CONFIG_MTD_ONENAND is not set | 719 | # CONFIG_MTD_ONENAND is not set |
751 | 720 | ||
752 | # | 721 | # |
753 | # Parallel port support | 722 | # UBI - Unsorted block images |
754 | # | ||
755 | # CONFIG_PARPORT is not set | ||
756 | |||
757 | # | ||
758 | # Plug and Play support | ||
759 | # | 723 | # |
724 | CONFIG_MTD_UBI=m | ||
725 | CONFIG_MTD_UBI_WL_THRESHOLD=4096 | ||
726 | CONFIG_MTD_UBI_BEB_RESERVE=1 | ||
727 | CONFIG_MTD_UBI_GLUEBI=y | ||
760 | 728 | ||
761 | # | 729 | # |
762 | # Block devices | 730 | # UBI debugging options |
763 | # | 731 | # |
732 | # CONFIG_MTD_UBI_DEBUG is not set | ||
733 | # CONFIG_PARPORT is not set | ||
734 | CONFIG_BLK_DEV=y | ||
764 | CONFIG_BLK_DEV_FD=m | 735 | CONFIG_BLK_DEV_FD=m |
765 | # CONFIG_BLK_CPQ_DA is not set | 736 | # CONFIG_BLK_CPQ_DA is not set |
766 | # CONFIG_BLK_CPQ_CISS_DA is not set | 737 | # CONFIG_BLK_CPQ_CISS_DA is not set |
@@ -775,21 +746,11 @@ CONFIG_BLK_DEV_RAM=y | |||
775 | CONFIG_BLK_DEV_RAM_COUNT=16 | 746 | CONFIG_BLK_DEV_RAM_COUNT=16 |
776 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 747 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
777 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 748 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
778 | # CONFIG_BLK_DEV_INITRD is not set | ||
779 | CONFIG_CDROM_PKTCDVD=m | 749 | CONFIG_CDROM_PKTCDVD=m |
780 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 750 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
781 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 751 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
782 | CONFIG_ATA_OVER_ETH=m | 752 | CONFIG_ATA_OVER_ETH=m |
783 | 753 | # CONFIG_MISC_DEVICES is not set | |
784 | # | ||
785 | # Misc devices | ||
786 | # | ||
787 | CONFIG_SGI_IOC4=m | ||
788 | # CONFIG_TIFM_CORE is not set | ||
789 | |||
790 | # | ||
791 | # ATA/ATAPI/MFM/RLL support | ||
792 | # | ||
793 | CONFIG_IDE=y | 754 | CONFIG_IDE=y |
794 | CONFIG_IDE_MAX_HWIFS=4 | 755 | CONFIG_IDE_MAX_HWIFS=4 |
795 | CONFIG_BLK_DEV_IDE=y | 756 | CONFIG_BLK_DEV_IDE=y |
@@ -805,6 +766,7 @@ CONFIG_BLK_DEV_IDECD=y | |||
805 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 766 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
806 | # CONFIG_BLK_DEV_IDESCSI is not set | 767 | # CONFIG_BLK_DEV_IDESCSI is not set |
807 | # CONFIG_IDE_TASK_IOCTL is not set | 768 | # CONFIG_IDE_TASK_IOCTL is not set |
769 | CONFIG_IDE_PROC_FS=y | ||
808 | 770 | ||
809 | # | 771 | # |
810 | # IDE chipset support/bugfixes | 772 | # IDE chipset support/bugfixes |
@@ -812,12 +774,12 @@ CONFIG_BLK_DEV_IDECD=y | |||
812 | CONFIG_IDE_GENERIC=y | 774 | CONFIG_IDE_GENERIC=y |
813 | CONFIG_BLK_DEV_IDEPCI=y | 775 | CONFIG_BLK_DEV_IDEPCI=y |
814 | # CONFIG_IDEPCI_SHARE_IRQ is not set | 776 | # CONFIG_IDEPCI_SHARE_IRQ is not set |
777 | CONFIG_IDEPCI_PCIBUS_ORDER=y | ||
815 | # CONFIG_BLK_DEV_OFFBOARD is not set | 778 | # CONFIG_BLK_DEV_OFFBOARD is not set |
816 | CONFIG_BLK_DEV_GENERIC=y | 779 | CONFIG_BLK_DEV_GENERIC=y |
817 | # CONFIG_BLK_DEV_OPTI621 is not set | 780 | # CONFIG_BLK_DEV_OPTI621 is not set |
818 | CONFIG_BLK_DEV_IDEDMA_PCI=y | 781 | CONFIG_BLK_DEV_IDEDMA_PCI=y |
819 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set | 782 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set |
820 | CONFIG_IDEDMA_PCI_AUTO=y | ||
821 | # CONFIG_IDEDMA_ONLYDISK is not set | 783 | # CONFIG_IDEDMA_ONLYDISK is not set |
822 | # CONFIG_BLK_DEV_AEC62XX is not set | 784 | # CONFIG_BLK_DEV_AEC62XX is not set |
823 | # CONFIG_BLK_DEV_ALI15X3 is not set | 785 | # CONFIG_BLK_DEV_ALI15X3 is not set |
@@ -846,7 +808,6 @@ CONFIG_BLK_DEV_TC86C001=m | |||
846 | # CONFIG_IDE_ARM is not set | 808 | # CONFIG_IDE_ARM is not set |
847 | CONFIG_BLK_DEV_IDEDMA=y | 809 | CONFIG_BLK_DEV_IDEDMA=y |
848 | # CONFIG_IDEDMA_IVB is not set | 810 | # CONFIG_IDEDMA_IVB is not set |
849 | CONFIG_IDEDMA_AUTO=y | ||
850 | # CONFIG_BLK_DEV_HD is not set | 811 | # CONFIG_BLK_DEV_HD is not set |
851 | 812 | ||
852 | # | 813 | # |
@@ -854,6 +815,7 @@ CONFIG_IDEDMA_AUTO=y | |||
854 | # | 815 | # |
855 | CONFIG_RAID_ATTRS=m | 816 | CONFIG_RAID_ATTRS=m |
856 | CONFIG_SCSI=m | 817 | CONFIG_SCSI=m |
818 | CONFIG_SCSI_DMA=y | ||
857 | CONFIG_SCSI_TGT=m | 819 | CONFIG_SCSI_TGT=m |
858 | CONFIG_SCSI_NETLINK=y | 820 | CONFIG_SCSI_NETLINK=y |
859 | CONFIG_SCSI_PROC_FS=y | 821 | CONFIG_SCSI_PROC_FS=y |
@@ -876,6 +838,7 @@ CONFIG_SCSI_MULTI_LUN=y | |||
876 | CONFIG_SCSI_CONSTANTS=y | 838 | CONFIG_SCSI_CONSTANTS=y |
877 | CONFIG_SCSI_LOGGING=y | 839 | CONFIG_SCSI_LOGGING=y |
878 | CONFIG_SCSI_SCAN_ASYNC=y | 840 | CONFIG_SCSI_SCAN_ASYNC=y |
841 | CONFIG_SCSI_WAIT_SCAN=m | ||
879 | 842 | ||
880 | # | 843 | # |
881 | # SCSI Transports | 844 | # SCSI Transports |
@@ -883,12 +846,8 @@ CONFIG_SCSI_SCAN_ASYNC=y | |||
883 | CONFIG_SCSI_SPI_ATTRS=m | 846 | CONFIG_SCSI_SPI_ATTRS=m |
884 | CONFIG_SCSI_FC_ATTRS=m | 847 | CONFIG_SCSI_FC_ATTRS=m |
885 | CONFIG_SCSI_ISCSI_ATTRS=m | 848 | CONFIG_SCSI_ISCSI_ATTRS=m |
886 | CONFIG_SCSI_SAS_ATTRS=m | ||
887 | # CONFIG_SCSI_SAS_LIBSAS is not set | 849 | # CONFIG_SCSI_SAS_LIBSAS is not set |
888 | 850 | CONFIG_SCSI_LOWLEVEL=y | |
889 | # | ||
890 | # SCSI low-level drivers | ||
891 | # | ||
892 | CONFIG_ISCSI_TCP=m | 851 | CONFIG_ISCSI_TCP=m |
893 | CONFIG_BLK_DEV_3W_XXXX_RAID=m | 852 | CONFIG_BLK_DEV_3W_XXXX_RAID=m |
894 | CONFIG_SCSI_3W_9XXX=m | 853 | CONFIG_SCSI_3W_9XXX=m |
@@ -925,15 +884,7 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y | |||
925 | # CONFIG_SCSI_NSP32 is not set | 884 | # CONFIG_SCSI_NSP32 is not set |
926 | # CONFIG_SCSI_DEBUG is not set | 885 | # CONFIG_SCSI_DEBUG is not set |
927 | # CONFIG_SCSI_SRP is not set | 886 | # CONFIG_SCSI_SRP is not set |
928 | |||
929 | # | ||
930 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
931 | # | ||
932 | # CONFIG_ATA is not set | 887 | # CONFIG_ATA is not set |
933 | |||
934 | # | ||
935 | # Multi-device support (RAID and LVM) | ||
936 | # | ||
937 | CONFIG_MD=y | 888 | CONFIG_MD=y |
938 | CONFIG_BLK_DEV_MD=m | 889 | CONFIG_BLK_DEV_MD=m |
939 | CONFIG_MD_LINEAR=m | 890 | CONFIG_MD_LINEAR=m |
@@ -952,6 +903,8 @@ CONFIG_DM_MIRROR=m | |||
952 | CONFIG_DM_ZERO=m | 903 | CONFIG_DM_ZERO=m |
953 | CONFIG_DM_MULTIPATH=m | 904 | CONFIG_DM_MULTIPATH=m |
954 | CONFIG_DM_MULTIPATH_EMC=m | 905 | CONFIG_DM_MULTIPATH_EMC=m |
906 | CONFIG_DM_MULTIPATH_RDAC=m | ||
907 | # CONFIG_DM_DELAY is not set | ||
955 | 908 | ||
956 | # | 909 | # |
957 | # Fusion MPT device support | 910 | # Fusion MPT device support |
@@ -964,30 +917,18 @@ CONFIG_DM_MULTIPATH_EMC=m | |||
964 | # | 917 | # |
965 | # IEEE 1394 (FireWire) support | 918 | # IEEE 1394 (FireWire) support |
966 | # | 919 | # |
920 | # CONFIG_FIREWIRE is not set | ||
967 | # CONFIG_IEEE1394 is not set | 921 | # CONFIG_IEEE1394 is not set |
968 | |||
969 | # | ||
970 | # I2O device support | ||
971 | # | ||
972 | # CONFIG_I2O is not set | 922 | # CONFIG_I2O is not set |
973 | |||
974 | # | ||
975 | # Network device support | ||
976 | # | ||
977 | CONFIG_NETDEVICES=y | 923 | CONFIG_NETDEVICES=y |
924 | CONFIG_NETDEVICES_MULTIQUEUE=y | ||
925 | CONFIG_IFB=m | ||
978 | CONFIG_DUMMY=m | 926 | CONFIG_DUMMY=m |
979 | CONFIG_BONDING=m | 927 | CONFIG_BONDING=m |
928 | CONFIG_MACVLAN=m | ||
980 | CONFIG_EQUALIZER=m | 929 | CONFIG_EQUALIZER=m |
981 | CONFIG_TUN=m | 930 | CONFIG_TUN=m |
982 | |||
983 | # | ||
984 | # ARCnet devices | ||
985 | # | ||
986 | # CONFIG_ARCNET is not set | 931 | # CONFIG_ARCNET is not set |
987 | |||
988 | # | ||
989 | # PHY device support | ||
990 | # | ||
991 | CONFIG_PHYLIB=m | 932 | CONFIG_PHYLIB=m |
992 | 933 | ||
993 | # | 934 | # |
@@ -1000,23 +941,17 @@ CONFIG_LXT_PHY=m | |||
1000 | CONFIG_CICADA_PHY=m | 941 | CONFIG_CICADA_PHY=m |
1001 | CONFIG_VITESSE_PHY=m | 942 | CONFIG_VITESSE_PHY=m |
1002 | CONFIG_SMSC_PHY=m | 943 | CONFIG_SMSC_PHY=m |
1003 | # CONFIG_BROADCOM_PHY is not set | 944 | CONFIG_BROADCOM_PHY=m |
945 | CONFIG_ICPLUS_PHY=m | ||
1004 | # CONFIG_FIXED_PHY is not set | 946 | # CONFIG_FIXED_PHY is not set |
1005 | |||
1006 | # | ||
1007 | # Ethernet (10 or 100Mbit) | ||
1008 | # | ||
1009 | CONFIG_NET_ETHERNET=y | 947 | CONFIG_NET_ETHERNET=y |
1010 | CONFIG_MII=y | 948 | CONFIG_MII=y |
949 | CONFIG_AX88796=m | ||
1011 | # CONFIG_HAPPYMEAL is not set | 950 | # CONFIG_HAPPYMEAL is not set |
1012 | # CONFIG_SUNGEM is not set | 951 | # CONFIG_SUNGEM is not set |
1013 | # CONFIG_CASSINI is not set | 952 | # CONFIG_CASSINI is not set |
1014 | # CONFIG_NET_VENDOR_3COM is not set | 953 | # CONFIG_NET_VENDOR_3COM is not set |
1015 | # CONFIG_DM9000 is not set | 954 | # CONFIG_DM9000 is not set |
1016 | |||
1017 | # | ||
1018 | # Tulip family network device support | ||
1019 | # | ||
1020 | # CONFIG_NET_TULIP is not set | 955 | # CONFIG_NET_TULIP is not set |
1021 | # CONFIG_HP100 is not set | 956 | # CONFIG_HP100 is not set |
1022 | CONFIG_NET_PCI=y | 957 | CONFIG_NET_PCI=y |
@@ -1026,6 +961,7 @@ CONFIG_PCNET32=y | |||
1026 | # CONFIG_ADAPTEC_STARFIRE is not set | 961 | # CONFIG_ADAPTEC_STARFIRE is not set |
1027 | # CONFIG_B44 is not set | 962 | # CONFIG_B44 is not set |
1028 | # CONFIG_FORCEDETH is not set | 963 | # CONFIG_FORCEDETH is not set |
964 | CONFIG_TC35815=m | ||
1029 | # CONFIG_DGRS is not set | 965 | # CONFIG_DGRS is not set |
1030 | # CONFIG_EEPRO100 is not set | 966 | # CONFIG_EEPRO100 is not set |
1031 | # CONFIG_E100 is not set | 967 | # CONFIG_E100 is not set |
@@ -1040,10 +976,7 @@ CONFIG_PCNET32=y | |||
1040 | # CONFIG_TLAN is not set | 976 | # CONFIG_TLAN is not set |
1041 | # CONFIG_VIA_RHINE is not set | 977 | # CONFIG_VIA_RHINE is not set |
1042 | # CONFIG_SC92031 is not set | 978 | # CONFIG_SC92031 is not set |
1043 | 979 | CONFIG_NETDEV_1000=y | |
1044 | # | ||
1045 | # Ethernet (1000 Mbit) | ||
1046 | # | ||
1047 | # CONFIG_ACENIC is not set | 980 | # CONFIG_ACENIC is not set |
1048 | # CONFIG_DL2K is not set | 981 | # CONFIG_DL2K is not set |
1049 | # CONFIG_E1000 is not set | 982 | # CONFIG_E1000 is not set |
@@ -1054,36 +987,58 @@ CONFIG_PCNET32=y | |||
1054 | # CONFIG_SIS190 is not set | 987 | # CONFIG_SIS190 is not set |
1055 | # CONFIG_SKGE is not set | 988 | # CONFIG_SKGE is not set |
1056 | # CONFIG_SKY2 is not set | 989 | # CONFIG_SKY2 is not set |
1057 | # CONFIG_SK98LIN is not set | ||
1058 | # CONFIG_VIA_VELOCITY is not set | 990 | # CONFIG_VIA_VELOCITY is not set |
1059 | # CONFIG_TIGON3 is not set | 991 | # CONFIG_TIGON3 is not set |
1060 | # CONFIG_BNX2 is not set | 992 | # CONFIG_BNX2 is not set |
1061 | # CONFIG_QLA3XXX is not set | 993 | # CONFIG_QLA3XXX is not set |
1062 | # CONFIG_ATL1 is not set | 994 | # CONFIG_ATL1 is not set |
1063 | 995 | CONFIG_NETDEV_10000=y | |
1064 | # | ||
1065 | # Ethernet (10000 Mbit) | ||
1066 | # | ||
1067 | # CONFIG_CHELSIO_T1 is not set | 996 | # CONFIG_CHELSIO_T1 is not set |
1068 | CONFIG_CHELSIO_T3=m | 997 | CONFIG_CHELSIO_T3=m |
1069 | # CONFIG_IXGB is not set | 998 | # CONFIG_IXGB is not set |
1070 | # CONFIG_S2IO is not set | 999 | # CONFIG_S2IO is not set |
1071 | # CONFIG_MYRI10GE is not set | 1000 | # CONFIG_MYRI10GE is not set |
1072 | CONFIG_NETXEN_NIC=m | 1001 | CONFIG_NETXEN_NIC=m |
1073 | 1002 | # CONFIG_MLX4_CORE is not set | |
1074 | # | ||
1075 | # Token Ring devices | ||
1076 | # | ||
1077 | # CONFIG_TR is not set | 1003 | # CONFIG_TR is not set |
1078 | 1004 | ||
1079 | # | 1005 | # |
1080 | # Wireless LAN (non-hamradio) | 1006 | # Wireless LAN |
1081 | # | 1007 | # |
1082 | # CONFIG_NET_RADIO is not set | 1008 | CONFIG_WLAN_PRE80211=y |
1083 | 1009 | CONFIG_STRIP=m | |
1084 | # | 1010 | CONFIG_WLAN_80211=y |
1085 | # Wan interfaces | 1011 | CONFIG_IPW2100=m |
1086 | # | 1012 | CONFIG_IPW2100_MONITOR=y |
1013 | # CONFIG_IPW2100_DEBUG is not set | ||
1014 | CONFIG_IPW2200=m | ||
1015 | CONFIG_IPW2200_MONITOR=y | ||
1016 | CONFIG_IPW2200_RADIOTAP=y | ||
1017 | CONFIG_IPW2200_PROMISCUOUS=y | ||
1018 | CONFIG_IPW2200_QOS=y | ||
1019 | # CONFIG_IPW2200_DEBUG is not set | ||
1020 | CONFIG_LIBERTAS=m | ||
1021 | # CONFIG_LIBERTAS_DEBUG is not set | ||
1022 | CONFIG_HERMES=m | ||
1023 | CONFIG_PLX_HERMES=m | ||
1024 | CONFIG_TMD_HERMES=m | ||
1025 | CONFIG_NORTEL_HERMES=m | ||
1026 | CONFIG_PCI_HERMES=m | ||
1027 | CONFIG_ATMEL=m | ||
1028 | CONFIG_PCI_ATMEL=m | ||
1029 | CONFIG_PRISM54=m | ||
1030 | CONFIG_HOSTAP=m | ||
1031 | CONFIG_HOSTAP_FIRMWARE=y | ||
1032 | CONFIG_HOSTAP_FIRMWARE_NVRAM=y | ||
1033 | CONFIG_HOSTAP_PLX=m | ||
1034 | CONFIG_HOSTAP_PCI=m | ||
1035 | CONFIG_BCM43XX=m | ||
1036 | CONFIG_BCM43XX_DEBUG=y | ||
1037 | CONFIG_BCM43XX_DMA=y | ||
1038 | CONFIG_BCM43XX_PIO=y | ||
1039 | CONFIG_BCM43XX_DMA_AND_PIO_MODE=y | ||
1040 | # CONFIG_BCM43XX_DMA_MODE is not set | ||
1041 | # CONFIG_BCM43XX_PIO_MODE is not set | ||
1087 | # CONFIG_WAN is not set | 1042 | # CONFIG_WAN is not set |
1088 | # CONFIG_FDDI is not set | 1043 | # CONFIG_FDDI is not set |
1089 | # CONFIG_HIPPI is not set | 1044 | # CONFIG_HIPPI is not set |
@@ -1094,15 +1049,7 @@ CONFIG_NETXEN_NIC=m | |||
1094 | # CONFIG_NETCONSOLE is not set | 1049 | # CONFIG_NETCONSOLE is not set |
1095 | # CONFIG_NETPOLL is not set | 1050 | # CONFIG_NETPOLL is not set |
1096 | # CONFIG_NET_POLL_CONTROLLER is not set | 1051 | # CONFIG_NET_POLL_CONTROLLER is not set |
1097 | |||
1098 | # | ||
1099 | # ISDN subsystem | ||
1100 | # | ||
1101 | # CONFIG_ISDN is not set | 1052 | # CONFIG_ISDN is not set |
1102 | |||
1103 | # | ||
1104 | # Telephony Support | ||
1105 | # | ||
1106 | # CONFIG_PHONE is not set | 1053 | # CONFIG_PHONE is not set |
1107 | 1054 | ||
1108 | # | 1055 | # |
@@ -1110,6 +1057,7 @@ CONFIG_NETXEN_NIC=m | |||
1110 | # | 1057 | # |
1111 | CONFIG_INPUT=y | 1058 | CONFIG_INPUT=y |
1112 | # CONFIG_INPUT_FF_MEMLESS is not set | 1059 | # CONFIG_INPUT_FF_MEMLESS is not set |
1060 | # CONFIG_INPUT_POLLDEV is not set | ||
1113 | 1061 | ||
1114 | # | 1062 | # |
1115 | # Userland interfaces | 1063 | # Userland interfaces |
@@ -1129,6 +1077,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
1129 | # CONFIG_INPUT_KEYBOARD is not set | 1077 | # CONFIG_INPUT_KEYBOARD is not set |
1130 | # CONFIG_INPUT_MOUSE is not set | 1078 | # CONFIG_INPUT_MOUSE is not set |
1131 | # CONFIG_INPUT_JOYSTICK is not set | 1079 | # CONFIG_INPUT_JOYSTICK is not set |
1080 | # CONFIG_INPUT_TABLET is not set | ||
1132 | # CONFIG_INPUT_TOUCHSCREEN is not set | 1081 | # CONFIG_INPUT_TOUCHSCREEN is not set |
1133 | # CONFIG_INPUT_MISC is not set | 1082 | # CONFIG_INPUT_MISC is not set |
1134 | 1083 | ||
@@ -1171,32 +1120,16 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
1171 | CONFIG_UNIX98_PTYS=y | 1120 | CONFIG_UNIX98_PTYS=y |
1172 | CONFIG_LEGACY_PTYS=y | 1121 | CONFIG_LEGACY_PTYS=y |
1173 | CONFIG_LEGACY_PTY_COUNT=256 | 1122 | CONFIG_LEGACY_PTY_COUNT=256 |
1174 | |||
1175 | # | ||
1176 | # IPMI | ||
1177 | # | ||
1178 | # CONFIG_IPMI_HANDLER is not set | 1123 | # CONFIG_IPMI_HANDLER is not set |
1179 | |||
1180 | # | ||
1181 | # Watchdog Cards | ||
1182 | # | ||
1183 | # CONFIG_WATCHDOG is not set | 1124 | # CONFIG_WATCHDOG is not set |
1184 | # CONFIG_HW_RANDOM is not set | 1125 | CONFIG_HW_RANDOM=m |
1185 | CONFIG_RTC=y | 1126 | CONFIG_RTC=y |
1186 | # CONFIG_DTLK is not set | ||
1187 | # CONFIG_R3964 is not set | 1127 | # CONFIG_R3964 is not set |
1188 | # CONFIG_APPLICOM is not set | 1128 | # CONFIG_APPLICOM is not set |
1189 | # CONFIG_DRM is not set | 1129 | # CONFIG_DRM is not set |
1190 | # CONFIG_RAW_DRIVER is not set | 1130 | # CONFIG_RAW_DRIVER is not set |
1191 | |||
1192 | # | ||
1193 | # TPM devices | ||
1194 | # | ||
1195 | # CONFIG_TCG_TPM is not set | 1131 | # CONFIG_TCG_TPM is not set |
1196 | 1132 | CONFIG_DEVPORT=y | |
1197 | # | ||
1198 | # I2C support | ||
1199 | # | ||
1200 | # CONFIG_I2C is not set | 1133 | # CONFIG_I2C is not set |
1201 | 1134 | ||
1202 | # | 1135 | # |
@@ -1204,32 +1137,33 @@ CONFIG_RTC=y | |||
1204 | # | 1137 | # |
1205 | # CONFIG_SPI is not set | 1138 | # CONFIG_SPI is not set |
1206 | # CONFIG_SPI_MASTER is not set | 1139 | # CONFIG_SPI_MASTER is not set |
1207 | |||
1208 | # | ||
1209 | # Dallas's 1-wire bus | ||
1210 | # | ||
1211 | # CONFIG_W1 is not set | 1140 | # CONFIG_W1 is not set |
1141 | # CONFIG_POWER_SUPPLY is not set | ||
1142 | # CONFIG_HWMON is not set | ||
1212 | 1143 | ||
1213 | # | 1144 | # |
1214 | # Hardware Monitoring support | 1145 | # Multifunction device drivers |
1215 | # | 1146 | # |
1216 | # CONFIG_HWMON is not set | 1147 | # CONFIG_MFD_SM501 is not set |
1217 | # CONFIG_HWMON_VID is not set | ||
1218 | 1148 | ||
1219 | # | 1149 | # |
1220 | # Multimedia devices | 1150 | # Multimedia devices |
1221 | # | 1151 | # |
1222 | # CONFIG_VIDEO_DEV is not set | 1152 | # CONFIG_VIDEO_DEV is not set |
1153 | # CONFIG_DVB_CORE is not set | ||
1154 | # CONFIG_DAB is not set | ||
1223 | 1155 | ||
1224 | # | 1156 | # |
1225 | # Digital Video Broadcasting Devices | 1157 | # Graphics support |
1226 | # | 1158 | # |
1227 | # CONFIG_DVB is not set | 1159 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
1228 | 1160 | ||
1229 | # | 1161 | # |
1230 | # Graphics support | 1162 | # Display device support |
1231 | # | 1163 | # |
1232 | # CONFIG_FIRMWARE_EDID is not set | 1164 | # CONFIG_DISPLAY_SUPPORT is not set |
1165 | # CONFIG_VGASTATE is not set | ||
1166 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
1233 | # CONFIG_FB is not set | 1167 | # CONFIG_FB is not set |
1234 | 1168 | ||
1235 | # | 1169 | # |
@@ -1237,22 +1171,15 @@ CONFIG_RTC=y | |||
1237 | # | 1171 | # |
1238 | # CONFIG_VGA_CONSOLE is not set | 1172 | # CONFIG_VGA_CONSOLE is not set |
1239 | CONFIG_DUMMY_CONSOLE=y | 1173 | CONFIG_DUMMY_CONSOLE=y |
1240 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
1241 | 1174 | ||
1242 | # | 1175 | # |
1243 | # Sound | 1176 | # Sound |
1244 | # | 1177 | # |
1245 | # CONFIG_SOUND is not set | 1178 | # CONFIG_SOUND is not set |
1246 | 1179 | CONFIG_HID_SUPPORT=y | |
1247 | # | ||
1248 | # HID Devices | ||
1249 | # | ||
1250 | CONFIG_HID=m | 1180 | CONFIG_HID=m |
1251 | # CONFIG_HID_DEBUG is not set | 1181 | # CONFIG_HID_DEBUG is not set |
1252 | 1182 | CONFIG_USB_SUPPORT=y | |
1253 | # | ||
1254 | # USB support | ||
1255 | # | ||
1256 | CONFIG_USB_ARCH_HAS_HCD=y | 1183 | CONFIG_USB_ARCH_HAS_HCD=y |
1257 | CONFIG_USB_ARCH_HAS_OHCI=y | 1184 | CONFIG_USB_ARCH_HAS_OHCI=y |
1258 | CONFIG_USB_ARCH_HAS_EHCI=y | 1185 | CONFIG_USB_ARCH_HAS_EHCI=y |
@@ -1266,37 +1193,9 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
1266 | # USB Gadget Support | 1193 | # USB Gadget Support |
1267 | # | 1194 | # |
1268 | # CONFIG_USB_GADGET is not set | 1195 | # CONFIG_USB_GADGET is not set |
1269 | |||
1270 | # | ||
1271 | # MMC/SD Card support | ||
1272 | # | ||
1273 | # CONFIG_MMC is not set | 1196 | # CONFIG_MMC is not set |
1274 | |||
1275 | # | ||
1276 | # LED devices | ||
1277 | # | ||
1278 | # CONFIG_NEW_LEDS is not set | 1197 | # CONFIG_NEW_LEDS is not set |
1279 | |||
1280 | # | ||
1281 | # LED drivers | ||
1282 | # | ||
1283 | |||
1284 | # | ||
1285 | # LED Triggers | ||
1286 | # | ||
1287 | |||
1288 | # | ||
1289 | # InfiniBand support | ||
1290 | # | ||
1291 | # CONFIG_INFINIBAND is not set | 1198 | # CONFIG_INFINIBAND is not set |
1292 | |||
1293 | # | ||
1294 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
1295 | # | ||
1296 | |||
1297 | # | ||
1298 | # Real Time Clock | ||
1299 | # | ||
1300 | # CONFIG_RTC_CLASS is not set | 1199 | # CONFIG_RTC_CLASS is not set |
1301 | 1200 | ||
1302 | # | 1201 | # |
@@ -1313,12 +1212,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
1313 | # | 1212 | # |
1314 | 1213 | ||
1315 | # | 1214 | # |
1316 | # Auxiliary Display support | 1215 | # Userspace I/O |
1317 | # | ||
1318 | |||
1319 | # | ||
1320 | # Virtualization | ||
1321 | # | 1216 | # |
1217 | CONFIG_UIO=m | ||
1218 | CONFIG_UIO_CIF=m | ||
1322 | 1219 | ||
1323 | # | 1220 | # |
1324 | # File systems | 1221 | # File systems |
@@ -1451,6 +1348,7 @@ CONFIG_LOCKD_V4=y | |||
1451 | CONFIG_EXPORTFS=y | 1348 | CONFIG_EXPORTFS=y |
1452 | CONFIG_NFS_COMMON=y | 1349 | CONFIG_NFS_COMMON=y |
1453 | CONFIG_SUNRPC=y | 1350 | CONFIG_SUNRPC=y |
1351 | # CONFIG_SUNRPC_BIND34 is not set | ||
1454 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1352 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1455 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1353 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1456 | # CONFIG_SMB_FS is not set | 1354 | # CONFIG_SMB_FS is not set |
@@ -1458,7 +1356,6 @@ CONFIG_SUNRPC=y | |||
1458 | # CONFIG_NCP_FS is not set | 1356 | # CONFIG_NCP_FS is not set |
1459 | # CONFIG_CODA_FS is not set | 1357 | # CONFIG_CODA_FS is not set |
1460 | # CONFIG_AFS_FS is not set | 1358 | # CONFIG_AFS_FS is not set |
1461 | # CONFIG_9P_FS is not set | ||
1462 | 1359 | ||
1463 | # | 1360 | # |
1464 | # Partition Types | 1361 | # Partition Types |
@@ -1531,7 +1428,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1531 | # CONFIG_DEBUG_FS is not set | 1428 | # CONFIG_DEBUG_FS is not set |
1532 | # CONFIG_HEADERS_CHECK is not set | 1429 | # CONFIG_HEADERS_CHECK is not set |
1533 | # CONFIG_DEBUG_KERNEL is not set | 1430 | # CONFIG_DEBUG_KERNEL is not set |
1534 | CONFIG_LOG_BUF_SHIFT=15 | ||
1535 | CONFIG_CROSSCOMPILE=y | 1431 | CONFIG_CROSSCOMPILE=y |
1536 | CONFIG_CMDLINE="" | 1432 | CONFIG_CMDLINE="" |
1537 | 1433 | ||
@@ -1540,12 +1436,13 @@ CONFIG_CMDLINE="" | |||
1540 | # | 1436 | # |
1541 | # CONFIG_KEYS is not set | 1437 | # CONFIG_KEYS is not set |
1542 | # CONFIG_SECURITY is not set | 1438 | # CONFIG_SECURITY is not set |
1543 | 1439 | CONFIG_XOR_BLOCKS=m | |
1544 | # | 1440 | CONFIG_ASYNC_CORE=m |
1545 | # Cryptographic options | 1441 | CONFIG_ASYNC_MEMCPY=m |
1546 | # | 1442 | CONFIG_ASYNC_XOR=m |
1547 | CONFIG_CRYPTO=y | 1443 | CONFIG_CRYPTO=y |
1548 | CONFIG_CRYPTO_ALGAPI=y | 1444 | CONFIG_CRYPTO_ALGAPI=y |
1445 | CONFIG_CRYPTO_ABLKCIPHER=m | ||
1549 | CONFIG_CRYPTO_BLKCIPHER=m | 1446 | CONFIG_CRYPTO_BLKCIPHER=m |
1550 | CONFIG_CRYPTO_HASH=y | 1447 | CONFIG_CRYPTO_HASH=y |
1551 | CONFIG_CRYPTO_MANAGER=y | 1448 | CONFIG_CRYPTO_MANAGER=y |
@@ -1564,6 +1461,7 @@ CONFIG_CRYPTO_ECB=m | |||
1564 | CONFIG_CRYPTO_CBC=m | 1461 | CONFIG_CRYPTO_CBC=m |
1565 | CONFIG_CRYPTO_PCBC=m | 1462 | CONFIG_CRYPTO_PCBC=m |
1566 | CONFIG_CRYPTO_LRW=m | 1463 | CONFIG_CRYPTO_LRW=m |
1464 | CONFIG_CRYPTO_CRYPTD=m | ||
1567 | CONFIG_CRYPTO_DES=m | 1465 | CONFIG_CRYPTO_DES=m |
1568 | CONFIG_CRYPTO_FCRYPT=m | 1466 | CONFIG_CRYPTO_FCRYPT=m |
1569 | CONFIG_CRYPTO_BLOWFISH=m | 1467 | CONFIG_CRYPTO_BLOWFISH=m |
@@ -1582,10 +1480,7 @@ CONFIG_CRYPTO_MICHAEL_MIC=m | |||
1582 | CONFIG_CRYPTO_CRC32C=m | 1480 | CONFIG_CRYPTO_CRC32C=m |
1583 | CONFIG_CRYPTO_CAMELLIA=m | 1481 | CONFIG_CRYPTO_CAMELLIA=m |
1584 | # CONFIG_CRYPTO_TEST is not set | 1482 | # CONFIG_CRYPTO_TEST is not set |
1585 | 1483 | CONFIG_CRYPTO_HW=y | |
1586 | # | ||
1587 | # Hardware crypto devices | ||
1588 | # | ||
1589 | 1484 | ||
1590 | # | 1485 | # |
1591 | # Library routines | 1486 | # Library routines |
@@ -1593,7 +1488,9 @@ CONFIG_CRYPTO_CAMELLIA=m | |||
1593 | CONFIG_BITREVERSE=y | 1488 | CONFIG_BITREVERSE=y |
1594 | # CONFIG_CRC_CCITT is not set | 1489 | # CONFIG_CRC_CCITT is not set |
1595 | CONFIG_CRC16=m | 1490 | CONFIG_CRC16=m |
1491 | # CONFIG_CRC_ITU_T is not set | ||
1596 | CONFIG_CRC32=y | 1492 | CONFIG_CRC32=y |
1493 | # CONFIG_CRC7 is not set | ||
1597 | CONFIG_LIBCRC32C=m | 1494 | CONFIG_LIBCRC32C=m |
1598 | CONFIG_ZLIB_INFLATE=m | 1495 | CONFIG_ZLIB_INFLATE=m |
1599 | CONFIG_ZLIB_DEFLATE=m | 1496 | CONFIG_ZLIB_DEFLATE=m |
@@ -1604,3 +1501,4 @@ CONFIG_TEXTSEARCH_FSM=m | |||
1604 | CONFIG_PLIST=y | 1501 | CONFIG_PLIST=y |
1605 | CONFIG_HAS_IOMEM=y | 1502 | CONFIG_HAS_IOMEM=y |
1606 | CONFIG_HAS_IOPORT=y | 1503 | CONFIG_HAS_IOPORT=y |
1504 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig index 239810b6c88d..8334350d7229 100644 --- a/arch/mips/configs/mpc30x_defconfig +++ b/arch/mips/configs/mpc30x_defconfig | |||
@@ -1,60 +1,47 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.20 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Tue Feb 20 21:47:35 2007 | 4 | # Wed Aug 8 15:09:51 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 13 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
30 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
31 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 21 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 22 | CONFIG_MACH_VR41XX=y |
36 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
38 | CONFIG_MACH_VR41XX=y | 25 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
43 | # CONFIG_SGI_IP27 is not set | 29 | # CONFIG_SGI_IP27 is not set |
44 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
55 | # CONFIG_TOSHIBA_JMR3927 is not set | 41 | # CONFIG_TOSHIBA_JMR3927 is not set |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 42 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 43 | # CONFIG_TOSHIBA_RBTX4938 is not set |
44 | # CONFIG_WR_PPMC is not set | ||
58 | # CONFIG_CASIO_E55 is not set | 45 | # CONFIG_CASIO_E55 is not set |
59 | # CONFIG_IBM_WORKPAD is not set | 46 | # CONFIG_IBM_WORKPAD is not set |
60 | # CONFIG_NEC_CMBVR4133 is not set | 47 | # CONFIG_NEC_CMBVR4133 is not set |
@@ -73,6 +60,8 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
73 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 60 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
74 | CONFIG_DMA_NONCOHERENT=y | 61 | CONFIG_DMA_NONCOHERENT=y |
75 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 62 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
63 | # CONFIG_HOTPLUG_CPU is not set | ||
64 | # CONFIG_NO_IOPORT is not set | ||
76 | # CONFIG_CPU_BIG_ENDIAN is not set | 65 | # CONFIG_CPU_BIG_ENDIAN is not set |
77 | CONFIG_CPU_LITTLE_ENDIAN=y | 66 | CONFIG_CPU_LITTLE_ENDIAN=y |
78 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 67 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
@@ -82,6 +71,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
82 | # | 71 | # |
83 | # CPU selection | 72 | # CPU selection |
84 | # | 73 | # |
74 | # CONFIG_CPU_LOONGSON2 is not set | ||
85 | # CONFIG_CPU_MIPS32_R1 is not set | 75 | # CONFIG_CPU_MIPS32_R1 is not set |
86 | # CONFIG_CPU_MIPS32_R2 is not set | 76 | # CONFIG_CPU_MIPS32_R2 is not set |
87 | # CONFIG_CPU_MIPS64_R1 is not set | 77 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -103,7 +93,6 @@ CONFIG_CPU_VR41XX=y | |||
103 | # CONFIG_CPU_SB1 is not set | 93 | # CONFIG_CPU_SB1 is not set |
104 | CONFIG_SYS_HAS_CPU_VR41XX=y | 94 | CONFIG_SYS_HAS_CPU_VR41XX=y |
105 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | 95 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y |
106 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
107 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | 96 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y |
108 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | 97 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y |
109 | 98 | ||
@@ -119,7 +108,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
119 | CONFIG_MIPS_MT_DISABLED=y | 108 | CONFIG_MIPS_MT_DISABLED=y |
120 | # CONFIG_MIPS_MT_SMP is not set | 109 | # CONFIG_MIPS_MT_SMP is not set |
121 | # CONFIG_MIPS_MT_SMTC is not set | 110 | # CONFIG_MIPS_MT_SMTC is not set |
122 | # CONFIG_MIPS_VPE_LOADER is not set | ||
123 | CONFIG_CPU_HAS_SYNC=y | 111 | CONFIG_CPU_HAS_SYNC=y |
124 | CONFIG_GENERIC_HARDIRQS=y | 112 | CONFIG_GENERIC_HARDIRQS=y |
125 | CONFIG_GENERIC_IRQ_PROBE=y | 113 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -133,48 +121,47 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
133 | # CONFIG_SPARSEMEM_STATIC is not set | 121 | # CONFIG_SPARSEMEM_STATIC is not set |
134 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 122 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
135 | # CONFIG_RESOURCES_64BIT is not set | 123 | # CONFIG_RESOURCES_64BIT is not set |
136 | CONFIG_ZONE_DMA_FLAG=1 | 124 | CONFIG_ZONE_DMA_FLAG=0 |
125 | CONFIG_VIRT_TO_BUS=y | ||
137 | # CONFIG_HZ_48 is not set | 126 | # CONFIG_HZ_48 is not set |
138 | # CONFIG_HZ_100 is not set | 127 | # CONFIG_HZ_100 is not set |
139 | # CONFIG_HZ_128 is not set | 128 | # CONFIG_HZ_128 is not set |
140 | # CONFIG_HZ_250 is not set | 129 | CONFIG_HZ_250=y |
141 | # CONFIG_HZ_256 is not set | 130 | # CONFIG_HZ_256 is not set |
142 | CONFIG_HZ_1000=y | 131 | # CONFIG_HZ_1000 is not set |
143 | # CONFIG_HZ_1024 is not set | 132 | # CONFIG_HZ_1024 is not set |
144 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | 133 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y |
145 | CONFIG_HZ=1000 | 134 | CONFIG_HZ=250 |
146 | CONFIG_PREEMPT_NONE=y | 135 | CONFIG_PREEMPT_NONE=y |
147 | # CONFIG_PREEMPT_VOLUNTARY is not set | 136 | # CONFIG_PREEMPT_VOLUNTARY is not set |
148 | # CONFIG_PREEMPT is not set | 137 | # CONFIG_PREEMPT is not set |
149 | # CONFIG_KEXEC is not set | 138 | # CONFIG_KEXEC is not set |
139 | CONFIG_SECCOMP=y | ||
150 | CONFIG_LOCKDEP_SUPPORT=y | 140 | CONFIG_LOCKDEP_SUPPORT=y |
151 | CONFIG_STACKTRACE_SUPPORT=y | 141 | CONFIG_STACKTRACE_SUPPORT=y |
152 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 142 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
153 | 143 | ||
154 | # | 144 | # |
155 | # Code maturity level options | 145 | # General setup |
156 | # | 146 | # |
157 | CONFIG_EXPERIMENTAL=y | 147 | CONFIG_EXPERIMENTAL=y |
158 | CONFIG_BROKEN_ON_SMP=y | 148 | CONFIG_BROKEN_ON_SMP=y |
159 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 149 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
160 | |||
161 | # | ||
162 | # General setup | ||
163 | # | ||
164 | CONFIG_LOCALVERSION="" | 150 | CONFIG_LOCALVERSION="" |
165 | CONFIG_LOCALVERSION_AUTO=y | 151 | CONFIG_LOCALVERSION_AUTO=y |
166 | CONFIG_SWAP=y | 152 | CONFIG_SWAP=y |
167 | CONFIG_SYSVIPC=y | 153 | CONFIG_SYSVIPC=y |
168 | # CONFIG_IPC_NS is not set | ||
169 | CONFIG_SYSVIPC_SYSCTL=y | 154 | CONFIG_SYSVIPC_SYSCTL=y |
170 | # CONFIG_POSIX_MQUEUE is not set | 155 | # CONFIG_POSIX_MQUEUE is not set |
171 | # CONFIG_BSD_PROCESS_ACCT is not set | 156 | # CONFIG_BSD_PROCESS_ACCT is not set |
172 | # CONFIG_TASKSTATS is not set | 157 | # CONFIG_TASKSTATS is not set |
173 | # CONFIG_UTS_NS is not set | 158 | # CONFIG_USER_NS is not set |
174 | # CONFIG_AUDIT is not set | 159 | # CONFIG_AUDIT is not set |
175 | # CONFIG_IKCONFIG is not set | 160 | # CONFIG_IKCONFIG is not set |
161 | CONFIG_LOG_BUF_SHIFT=14 | ||
176 | CONFIG_SYSFS_DEPRECATED=y | 162 | CONFIG_SYSFS_DEPRECATED=y |
177 | CONFIG_RELAY=y | 163 | CONFIG_RELAY=y |
164 | # CONFIG_BLK_DEV_INITRD is not set | ||
178 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 165 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
179 | CONFIG_SYSCTL=y | 166 | CONFIG_SYSCTL=y |
180 | CONFIG_EMBEDDED=y | 167 | CONFIG_EMBEDDED=y |
@@ -187,32 +174,30 @@ CONFIG_BUG=y | |||
187 | CONFIG_ELF_CORE=y | 174 | CONFIG_ELF_CORE=y |
188 | CONFIG_BASE_FULL=y | 175 | CONFIG_BASE_FULL=y |
189 | CONFIG_FUTEX=y | 176 | CONFIG_FUTEX=y |
177 | CONFIG_ANON_INODES=y | ||
190 | CONFIG_EPOLL=y | 178 | CONFIG_EPOLL=y |
179 | CONFIG_SIGNALFD=y | ||
180 | CONFIG_TIMERFD=y | ||
181 | CONFIG_EVENTFD=y | ||
191 | CONFIG_SHMEM=y | 182 | CONFIG_SHMEM=y |
192 | CONFIG_SLAB=y | ||
193 | CONFIG_VM_EVENT_COUNTERS=y | 183 | CONFIG_VM_EVENT_COUNTERS=y |
184 | CONFIG_SLAB=y | ||
185 | # CONFIG_SLUB is not set | ||
186 | # CONFIG_SLOB is not set | ||
194 | CONFIG_RT_MUTEXES=y | 187 | CONFIG_RT_MUTEXES=y |
195 | # CONFIG_TINY_SHMEM is not set | 188 | # CONFIG_TINY_SHMEM is not set |
196 | CONFIG_BASE_SMALL=0 | 189 | CONFIG_BASE_SMALL=0 |
197 | # CONFIG_SLOB is not set | ||
198 | |||
199 | # | ||
200 | # Loadable module support | ||
201 | # | ||
202 | CONFIG_MODULES=y | 190 | CONFIG_MODULES=y |
203 | CONFIG_MODULE_UNLOAD=y | 191 | CONFIG_MODULE_UNLOAD=y |
204 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 192 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
205 | CONFIG_MODVERSIONS=y | 193 | CONFIG_MODVERSIONS=y |
206 | CONFIG_MODULE_SRCVERSION_ALL=y | 194 | CONFIG_MODULE_SRCVERSION_ALL=y |
207 | CONFIG_KMOD=y | 195 | CONFIG_KMOD=y |
208 | |||
209 | # | ||
210 | # Block layer | ||
211 | # | ||
212 | CONFIG_BLOCK=y | 196 | CONFIG_BLOCK=y |
213 | # CONFIG_LBD is not set | 197 | # CONFIG_LBD is not set |
214 | # CONFIG_BLK_DEV_IO_TRACE is not set | 198 | # CONFIG_BLK_DEV_IO_TRACE is not set |
215 | # CONFIG_LSF is not set | 199 | # CONFIG_LSF is not set |
200 | # CONFIG_BLK_DEV_BSG is not set | ||
216 | 201 | ||
217 | # | 202 | # |
218 | # IO Schedulers | 203 | # IO Schedulers |
@@ -232,29 +217,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
232 | # | 217 | # |
233 | CONFIG_HW_HAS_PCI=y | 218 | CONFIG_HW_HAS_PCI=y |
234 | CONFIG_PCI=y | 219 | CONFIG_PCI=y |
220 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
235 | CONFIG_MMU=y | 221 | CONFIG_MMU=y |
236 | 222 | ||
237 | # | 223 | # |
238 | # PCCARD (PCMCIA/CardBus) support | 224 | # PCCARD (PCMCIA/CardBus) support |
239 | # | 225 | # |
240 | CONFIG_PCCARD=y | 226 | # CONFIG_PCCARD is not set |
241 | # CONFIG_PCMCIA_DEBUG is not set | ||
242 | CONFIG_PCMCIA=y | ||
243 | CONFIG_PCMCIA_LOAD_CIS=y | ||
244 | CONFIG_PCMCIA_IOCTL=y | ||
245 | # CONFIG_CARDBUS is not set | ||
246 | |||
247 | # | ||
248 | # PC-card bridges | ||
249 | # | ||
250 | # CONFIG_YENTA is not set | ||
251 | # CONFIG_PD6729 is not set | ||
252 | # CONFIG_I82092 is not set | ||
253 | # CONFIG_PCMCIA_VRC4173 is not set | ||
254 | |||
255 | # | ||
256 | # PCI Hotplug Support | ||
257 | # | ||
258 | # CONFIG_HOTPLUG_PCI is not set | 227 | # CONFIG_HOTPLUG_PCI is not set |
259 | 228 | ||
260 | # | 229 | # |
@@ -267,10 +236,7 @@ CONFIG_TRAD_SIGNALS=y | |||
267 | # | 236 | # |
268 | # Power management options | 237 | # Power management options |
269 | # | 238 | # |
270 | CONFIG_PM=y | 239 | # CONFIG_PM is not set |
271 | # CONFIG_PM_LEGACY is not set | ||
272 | # CONFIG_PM_DEBUG is not set | ||
273 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
274 | 240 | ||
275 | # | 241 | # |
276 | # Networking | 242 | # Networking |
@@ -280,7 +246,6 @@ CONFIG_NET=y | |||
280 | # | 246 | # |
281 | # Networking options | 247 | # Networking options |
282 | # | 248 | # |
283 | # CONFIG_NETDEBUG is not set | ||
284 | CONFIG_PACKET=y | 249 | CONFIG_PACKET=y |
285 | CONFIG_PACKET_MMAP=y | 250 | CONFIG_PACKET_MMAP=y |
286 | CONFIG_UNIX=y | 251 | CONFIG_UNIX=y |
@@ -313,26 +278,17 @@ CONFIG_INET_TCP_DIAG=y | |||
313 | # CONFIG_TCP_CONG_ADVANCED is not set | 278 | # CONFIG_TCP_CONG_ADVANCED is not set |
314 | CONFIG_TCP_CONG_CUBIC=y | 279 | CONFIG_TCP_CONG_CUBIC=y |
315 | CONFIG_DEFAULT_TCP_CONG="cubic" | 280 | CONFIG_DEFAULT_TCP_CONG="cubic" |
316 | CONFIG_TCP_MD5SIG=y | 281 | # CONFIG_TCP_MD5SIG is not set |
317 | # CONFIG_IPV6 is not set | 282 | # CONFIG_IPV6 is not set |
318 | # CONFIG_INET6_XFRM_TUNNEL is not set | 283 | # CONFIG_INET6_XFRM_TUNNEL is not set |
319 | # CONFIG_INET6_TUNNEL is not set | 284 | # CONFIG_INET6_TUNNEL is not set |
320 | CONFIG_NETWORK_SECMARK=y | 285 | CONFIG_NETWORK_SECMARK=y |
321 | # CONFIG_NETFILTER is not set | 286 | # CONFIG_NETFILTER is not set |
322 | |||
323 | # | ||
324 | # DCCP Configuration (EXPERIMENTAL) | ||
325 | # | ||
326 | # CONFIG_IP_DCCP is not set | 287 | # CONFIG_IP_DCCP is not set |
327 | |||
328 | # | ||
329 | # SCTP Configuration (EXPERIMENTAL) | ||
330 | # | ||
331 | # CONFIG_IP_SCTP is not set | 288 | # CONFIG_IP_SCTP is not set |
332 | 289 | # CONFIG_SCTP_HMAC_NONE is not set | |
333 | # | 290 | # CONFIG_SCTP_HMAC_SHA1 is not set |
334 | # TIPC Configuration (EXPERIMENTAL) | 291 | # CONFIG_SCTP_HMAC_MD5 is not set |
335 | # | ||
336 | # CONFIG_TIPC is not set | 292 | # CONFIG_TIPC is not set |
337 | # CONFIG_ATM is not set | 293 | # CONFIG_ATM is not set |
338 | # CONFIG_BRIDGE is not set | 294 | # CONFIG_BRIDGE is not set |
@@ -358,14 +314,17 @@ CONFIG_NETWORK_SECMARK=y | |||
358 | # CONFIG_HAMRADIO is not set | 314 | # CONFIG_HAMRADIO is not set |
359 | # CONFIG_IRDA is not set | 315 | # CONFIG_IRDA is not set |
360 | # CONFIG_BT is not set | 316 | # CONFIG_BT is not set |
361 | CONFIG_IEEE80211=m | 317 | # CONFIG_AF_RXRPC is not set |
362 | # CONFIG_IEEE80211_DEBUG is not set | 318 | |
363 | CONFIG_IEEE80211_CRYPT_WEP=m | 319 | # |
364 | CONFIG_IEEE80211_CRYPT_CCMP=m | 320 | # Wireless |
365 | CONFIG_IEEE80211_CRYPT_TKIP=m | 321 | # |
366 | CONFIG_IEEE80211_SOFTMAC=m | 322 | # CONFIG_CFG80211 is not set |
367 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | 323 | # CONFIG_WIRELESS_EXT is not set |
368 | CONFIG_WIRELESS_EXT=y | 324 | # CONFIG_MAC80211 is not set |
325 | # CONFIG_IEEE80211 is not set | ||
326 | # CONFIG_RFKILL is not set | ||
327 | # CONFIG_NET_9P is not set | ||
369 | 328 | ||
370 | # | 329 | # |
371 | # Device Drivers | 330 | # Device Drivers |
@@ -378,30 +337,10 @@ CONFIG_STANDALONE=y | |||
378 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 337 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
379 | CONFIG_FW_LOADER=y | 338 | CONFIG_FW_LOADER=y |
380 | # CONFIG_SYS_HYPERVISOR is not set | 339 | # CONFIG_SYS_HYPERVISOR is not set |
381 | |||
382 | # | ||
383 | # Connector - unified userspace <-> kernelspace linker | ||
384 | # | ||
385 | CONFIG_CONNECTOR=m | 340 | CONFIG_CONNECTOR=m |
386 | |||
387 | # | ||
388 | # Memory Technology Devices (MTD) | ||
389 | # | ||
390 | # CONFIG_MTD is not set | 341 | # CONFIG_MTD is not set |
391 | |||
392 | # | ||
393 | # Parallel port support | ||
394 | # | ||
395 | # CONFIG_PARPORT is not set | 342 | # CONFIG_PARPORT is not set |
396 | 343 | CONFIG_BLK_DEV=y | |
397 | # | ||
398 | # Plug and Play support | ||
399 | # | ||
400 | # CONFIG_PNPACPI is not set | ||
401 | |||
402 | # | ||
403 | # Block devices | ||
404 | # | ||
405 | # CONFIG_BLK_CPQ_DA is not set | 344 | # CONFIG_BLK_CPQ_DA is not set |
406 | # CONFIG_BLK_CPQ_CISS_DA is not set | 345 | # CONFIG_BLK_CPQ_CISS_DA is not set |
407 | # CONFIG_BLK_DEV_DAC960 is not set | 346 | # CONFIG_BLK_DEV_DAC960 is not set |
@@ -412,19 +351,9 @@ CONFIG_CONNECTOR=m | |||
412 | # CONFIG_BLK_DEV_SX8 is not set | 351 | # CONFIG_BLK_DEV_SX8 is not set |
413 | # CONFIG_BLK_DEV_UB is not set | 352 | # CONFIG_BLK_DEV_UB is not set |
414 | # CONFIG_BLK_DEV_RAM is not set | 353 | # CONFIG_BLK_DEV_RAM is not set |
415 | # CONFIG_BLK_DEV_INITRD is not set | ||
416 | # CONFIG_CDROM_PKTCDVD is not set | 354 | # CONFIG_CDROM_PKTCDVD is not set |
417 | CONFIG_ATA_OVER_ETH=m | 355 | CONFIG_ATA_OVER_ETH=m |
418 | 356 | # CONFIG_MISC_DEVICES is not set | |
419 | # | ||
420 | # Misc devices | ||
421 | # | ||
422 | CONFIG_SGI_IOC4=m | ||
423 | # CONFIG_TIFM_CORE is not set | ||
424 | |||
425 | # | ||
426 | # ATA/ATAPI/MFM/RLL support | ||
427 | # | ||
428 | CONFIG_IDE=y | 357 | CONFIG_IDE=y |
429 | CONFIG_IDE_MAX_HWIFS=4 | 358 | CONFIG_IDE_MAX_HWIFS=4 |
430 | CONFIG_BLK_DEV_IDE=y | 359 | CONFIG_BLK_DEV_IDE=y |
@@ -435,20 +364,20 @@ CONFIG_BLK_DEV_IDE=y | |||
435 | # CONFIG_BLK_DEV_IDE_SATA is not set | 364 | # CONFIG_BLK_DEV_IDE_SATA is not set |
436 | CONFIG_BLK_DEV_IDEDISK=y | 365 | CONFIG_BLK_DEV_IDEDISK=y |
437 | # CONFIG_IDEDISK_MULTI_MODE is not set | 366 | # CONFIG_IDEDISK_MULTI_MODE is not set |
438 | CONFIG_BLK_DEV_IDECS=m | ||
439 | # CONFIG_BLK_DEV_IDECD is not set | 367 | # CONFIG_BLK_DEV_IDECD is not set |
440 | # CONFIG_BLK_DEV_IDETAPE is not set | 368 | # CONFIG_BLK_DEV_IDETAPE is not set |
441 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 369 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
442 | # CONFIG_IDE_TASK_IOCTL is not set | 370 | # CONFIG_IDE_TASK_IOCTL is not set |
371 | CONFIG_IDE_PROC_FS=y | ||
443 | 372 | ||
444 | # | 373 | # |
445 | # IDE chipset support/bugfixes | 374 | # IDE chipset support/bugfixes |
446 | # | 375 | # |
447 | CONFIG_IDE_GENERIC=y | 376 | CONFIG_IDE_GENERIC=y |
448 | # CONFIG_BLK_DEV_IDEPCI is not set | 377 | # CONFIG_BLK_DEV_IDEPCI is not set |
378 | # CONFIG_IDEPCI_PCIBUS_ORDER is not set | ||
449 | # CONFIG_IDE_ARM is not set | 379 | # CONFIG_IDE_ARM is not set |
450 | # CONFIG_BLK_DEV_IDEDMA is not set | 380 | # CONFIG_BLK_DEV_IDEDMA is not set |
451 | # CONFIG_IDEDMA_AUTO is not set | ||
452 | # CONFIG_BLK_DEV_HD is not set | 381 | # CONFIG_BLK_DEV_HD is not set |
453 | 382 | ||
454 | # | 383 | # |
@@ -456,16 +385,9 @@ CONFIG_IDE_GENERIC=y | |||
456 | # | 385 | # |
457 | # CONFIG_RAID_ATTRS is not set | 386 | # CONFIG_RAID_ATTRS is not set |
458 | # CONFIG_SCSI is not set | 387 | # CONFIG_SCSI is not set |
388 | # CONFIG_SCSI_DMA is not set | ||
459 | # CONFIG_SCSI_NETLINK is not set | 389 | # CONFIG_SCSI_NETLINK is not set |
460 | |||
461 | # | ||
462 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
463 | # | ||
464 | # CONFIG_ATA is not set | 390 | # CONFIG_ATA is not set |
465 | |||
466 | # | ||
467 | # Multi-device support (RAID and LVM) | ||
468 | # | ||
469 | # CONFIG_MD is not set | 391 | # CONFIG_MD is not set |
470 | 392 | ||
471 | # | 393 | # |
@@ -476,135 +398,38 @@ CONFIG_IDE_GENERIC=y | |||
476 | # | 398 | # |
477 | # IEEE 1394 (FireWire) support | 399 | # IEEE 1394 (FireWire) support |
478 | # | 400 | # |
401 | # CONFIG_FIREWIRE is not set | ||
479 | # CONFIG_IEEE1394 is not set | 402 | # CONFIG_IEEE1394 is not set |
480 | |||
481 | # | ||
482 | # I2O device support | ||
483 | # | ||
484 | # CONFIG_I2O is not set | 403 | # CONFIG_I2O is not set |
485 | |||
486 | # | ||
487 | # Network device support | ||
488 | # | ||
489 | CONFIG_NETDEVICES=y | 404 | CONFIG_NETDEVICES=y |
405 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
490 | # CONFIG_DUMMY is not set | 406 | # CONFIG_DUMMY is not set |
491 | # CONFIG_BONDING is not set | 407 | # CONFIG_BONDING is not set |
408 | # CONFIG_MACVLAN is not set | ||
492 | # CONFIG_EQUALIZER is not set | 409 | # CONFIG_EQUALIZER is not set |
493 | # CONFIG_TUN is not set | 410 | # CONFIG_TUN is not set |
494 | |||
495 | # | ||
496 | # ARCnet devices | ||
497 | # | ||
498 | # CONFIG_ARCNET is not set | 411 | # CONFIG_ARCNET is not set |
499 | |||
500 | # | ||
501 | # PHY device support | ||
502 | # | ||
503 | |||
504 | # | ||
505 | # Ethernet (10 or 100Mbit) | ||
506 | # | ||
507 | # CONFIG_NET_ETHERNET is not set | 412 | # CONFIG_NET_ETHERNET is not set |
508 | CONFIG_MII=m | 413 | CONFIG_MII=m |
509 | 414 | # CONFIG_NETDEV_1000 is not set | |
510 | # | 415 | # CONFIG_NETDEV_10000 is not set |
511 | # Ethernet (1000 Mbit) | ||
512 | # | ||
513 | # CONFIG_ACENIC is not set | ||
514 | # CONFIG_DL2K is not set | ||
515 | # CONFIG_E1000 is not set | ||
516 | # CONFIG_NS83820 is not set | ||
517 | # CONFIG_HAMACHI is not set | ||
518 | # CONFIG_YELLOWFIN is not set | ||
519 | # CONFIG_R8169 is not set | ||
520 | # CONFIG_SIS190 is not set | ||
521 | # CONFIG_SKGE is not set | ||
522 | # CONFIG_SKY2 is not set | ||
523 | # CONFIG_SK98LIN is not set | ||
524 | # CONFIG_TIGON3 is not set | ||
525 | # CONFIG_BNX2 is not set | ||
526 | CONFIG_QLA3XXX=m | ||
527 | # CONFIG_ATL1 is not set | ||
528 | |||
529 | # | ||
530 | # Ethernet (10000 Mbit) | ||
531 | # | ||
532 | # CONFIG_CHELSIO_T1 is not set | ||
533 | CONFIG_CHELSIO_T3=m | ||
534 | # CONFIG_IXGB is not set | ||
535 | # CONFIG_S2IO is not set | ||
536 | # CONFIG_MYRI10GE is not set | ||
537 | CONFIG_NETXEN_NIC=m | ||
538 | |||
539 | # | ||
540 | # Token Ring devices | ||
541 | # | ||
542 | # CONFIG_TR is not set | 416 | # CONFIG_TR is not set |
543 | 417 | ||
544 | # | 418 | # |
545 | # Wireless LAN (non-hamradio) | 419 | # Wireless LAN |
546 | # | 420 | # |
547 | CONFIG_NET_RADIO=y | 421 | # CONFIG_WLAN_PRE80211 is not set |
548 | # CONFIG_NET_WIRELESS_RTNETLINK is not set | 422 | # CONFIG_WLAN_80211 is not set |
549 | 423 | ||
550 | # | 424 | # |
551 | # Obsolete Wireless cards support (pre-802.11) | 425 | # USB Network Adapters |
552 | # | ||
553 | # CONFIG_STRIP is not set | ||
554 | # CONFIG_PCMCIA_WAVELAN is not set | ||
555 | # CONFIG_PCMCIA_NETWAVE is not set | ||
556 | |||
557 | # | ||
558 | # Wireless 802.11 Frequency Hopping cards support | ||
559 | # | ||
560 | # CONFIG_PCMCIA_RAYCS is not set | ||
561 | |||
562 | # | ||
563 | # Wireless 802.11b ISA/PCI cards support | ||
564 | # | ||
565 | # CONFIG_IPW2100 is not set | ||
566 | # CONFIG_IPW2200 is not set | ||
567 | CONFIG_HERMES=m | ||
568 | # CONFIG_PLX_HERMES is not set | ||
569 | # CONFIG_TMD_HERMES is not set | ||
570 | # CONFIG_NORTEL_HERMES is not set | ||
571 | # CONFIG_PCI_HERMES is not set | ||
572 | # CONFIG_ATMEL is not set | ||
573 | |||
574 | # | ||
575 | # Wireless 802.11b Pcmcia/Cardbus cards support | ||
576 | # | ||
577 | CONFIG_PCMCIA_HERMES=m | ||
578 | # CONFIG_PCMCIA_SPECTRUM is not set | ||
579 | # CONFIG_AIRO_CS is not set | ||
580 | # CONFIG_PCMCIA_WL3501 is not set | ||
581 | |||
582 | # | ||
583 | # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support | ||
584 | # | ||
585 | # CONFIG_PRISM54 is not set | ||
586 | # CONFIG_USB_ZD1201 is not set | ||
587 | # CONFIG_HOSTAP is not set | ||
588 | # CONFIG_BCM43XX is not set | ||
589 | # CONFIG_ZD1211RW is not set | ||
590 | CONFIG_NET_WIRELESS=y | ||
591 | |||
592 | # | ||
593 | # PCMCIA network device support | ||
594 | # | ||
595 | CONFIG_NET_PCMCIA=y | ||
596 | CONFIG_PCMCIA_3C589=m | ||
597 | CONFIG_PCMCIA_3C574=m | ||
598 | CONFIG_PCMCIA_FMVJ18X=m | ||
599 | CONFIG_PCMCIA_PCNET=m | ||
600 | CONFIG_PCMCIA_NMCLAN=m | ||
601 | CONFIG_PCMCIA_SMC91C92=m | ||
602 | CONFIG_PCMCIA_XIRC2PS=m | ||
603 | CONFIG_PCMCIA_AXNET=m | ||
604 | |||
605 | # | ||
606 | # Wan interfaces | ||
607 | # | 426 | # |
427 | # CONFIG_USB_CATC is not set | ||
428 | # CONFIG_USB_KAWETH is not set | ||
429 | CONFIG_USB_PEGASUS=m | ||
430 | # CONFIG_USB_RTL8150 is not set | ||
431 | # CONFIG_USB_USBNET_MII is not set | ||
432 | # CONFIG_USB_USBNET is not set | ||
608 | # CONFIG_WAN is not set | 433 | # CONFIG_WAN is not set |
609 | # CONFIG_FDDI is not set | 434 | # CONFIG_FDDI is not set |
610 | # CONFIG_HIPPI is not set | 435 | # CONFIG_HIPPI is not set |
@@ -614,15 +439,7 @@ CONFIG_PCMCIA_AXNET=m | |||
614 | # CONFIG_NETCONSOLE is not set | 439 | # CONFIG_NETCONSOLE is not set |
615 | # CONFIG_NETPOLL is not set | 440 | # CONFIG_NETPOLL is not set |
616 | # CONFIG_NET_POLL_CONTROLLER is not set | 441 | # CONFIG_NET_POLL_CONTROLLER is not set |
617 | |||
618 | # | ||
619 | # ISDN subsystem | ||
620 | # | ||
621 | # CONFIG_ISDN is not set | 442 | # CONFIG_ISDN is not set |
622 | |||
623 | # | ||
624 | # Telephony Support | ||
625 | # | ||
626 | # CONFIG_PHONE is not set | 443 | # CONFIG_PHONE is not set |
627 | 444 | ||
628 | # | 445 | # |
@@ -630,14 +447,12 @@ CONFIG_PCMCIA_AXNET=m | |||
630 | # | 447 | # |
631 | CONFIG_INPUT=y | 448 | CONFIG_INPUT=y |
632 | # CONFIG_INPUT_FF_MEMLESS is not set | 449 | # CONFIG_INPUT_FF_MEMLESS is not set |
450 | # CONFIG_INPUT_POLLDEV is not set | ||
633 | 451 | ||
634 | # | 452 | # |
635 | # Userland interfaces | 453 | # Userland interfaces |
636 | # | 454 | # |
637 | CONFIG_INPUT_MOUSEDEV=y | 455 | # CONFIG_INPUT_MOUSEDEV is not set |
638 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
639 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
640 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
641 | # CONFIG_INPUT_JOYDEV is not set | 456 | # CONFIG_INPUT_JOYDEV is not set |
642 | # CONFIG_INPUT_TSDEV is not set | 457 | # CONFIG_INPUT_TSDEV is not set |
643 | # CONFIG_INPUT_EVDEV is not set | 458 | # CONFIG_INPUT_EVDEV is not set |
@@ -649,18 +464,14 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
649 | # CONFIG_INPUT_KEYBOARD is not set | 464 | # CONFIG_INPUT_KEYBOARD is not set |
650 | # CONFIG_INPUT_MOUSE is not set | 465 | # CONFIG_INPUT_MOUSE is not set |
651 | # CONFIG_INPUT_JOYSTICK is not set | 466 | # CONFIG_INPUT_JOYSTICK is not set |
467 | # CONFIG_INPUT_TABLET is not set | ||
652 | # CONFIG_INPUT_TOUCHSCREEN is not set | 468 | # CONFIG_INPUT_TOUCHSCREEN is not set |
653 | # CONFIG_INPUT_MISC is not set | 469 | # CONFIG_INPUT_MISC is not set |
654 | 470 | ||
655 | # | 471 | # |
656 | # Hardware I/O ports | 472 | # Hardware I/O ports |
657 | # | 473 | # |
658 | CONFIG_SERIO=y | 474 | # CONFIG_SERIO is not set |
659 | # CONFIG_SERIO_I8042 is not set | ||
660 | CONFIG_SERIO_SERPORT=y | ||
661 | # CONFIG_SERIO_PCIPS2 is not set | ||
662 | # CONFIG_SERIO_LIBPS2 is not set | ||
663 | CONFIG_SERIO_RAW=m | ||
664 | # CONFIG_GAMEPORT is not set | 475 | # CONFIG_GAMEPORT is not set |
665 | 476 | ||
666 | # | 477 | # |
@@ -680,46 +491,25 @@ CONFIG_VT_HW_CONSOLE_BINDING=y | |||
680 | # | 491 | # |
681 | # Non-8250 serial port support | 492 | # Non-8250 serial port support |
682 | # | 493 | # |
683 | # CONFIG_SERIAL_VR41XX is not set | 494 | CONFIG_SERIAL_CORE=y |
495 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
496 | CONFIG_SERIAL_VR41XX=y | ||
497 | CONFIG_SERIAL_VR41XX_CONSOLE=y | ||
684 | # CONFIG_SERIAL_JSM is not set | 498 | # CONFIG_SERIAL_JSM is not set |
685 | CONFIG_UNIX98_PTYS=y | 499 | CONFIG_UNIX98_PTYS=y |
686 | CONFIG_LEGACY_PTYS=y | 500 | CONFIG_LEGACY_PTYS=y |
687 | CONFIG_LEGACY_PTY_COUNT=256 | 501 | CONFIG_LEGACY_PTY_COUNT=256 |
688 | |||
689 | # | ||
690 | # IPMI | ||
691 | # | ||
692 | # CONFIG_IPMI_HANDLER is not set | 502 | # CONFIG_IPMI_HANDLER is not set |
693 | |||
694 | # | ||
695 | # Watchdog Cards | ||
696 | # | ||
697 | # CONFIG_WATCHDOG is not set | 503 | # CONFIG_WATCHDOG is not set |
698 | # CONFIG_HW_RANDOM is not set | 504 | # CONFIG_HW_RANDOM is not set |
699 | # CONFIG_RTC is not set | 505 | # CONFIG_RTC is not set |
700 | # CONFIG_GEN_RTC is not set | ||
701 | # CONFIG_DTLK is not set | ||
702 | # CONFIG_R3964 is not set | 506 | # CONFIG_R3964 is not set |
703 | # CONFIG_APPLICOM is not set | 507 | # CONFIG_APPLICOM is not set |
704 | # CONFIG_DRM is not set | 508 | # CONFIG_DRM is not set |
705 | 509 | CONFIG_GPIO_VR41XX=y | |
706 | # | ||
707 | # PCMCIA character devices | ||
708 | # | ||
709 | # CONFIG_SYNCLINK_CS is not set | ||
710 | # CONFIG_CARDMAN_4000 is not set | ||
711 | # CONFIG_CARDMAN_4040 is not set | ||
712 | # CONFIG_GPIO_VR41XX is not set | ||
713 | # CONFIG_RAW_DRIVER is not set | 510 | # CONFIG_RAW_DRIVER is not set |
714 | |||
715 | # | ||
716 | # TPM devices | ||
717 | # | ||
718 | # CONFIG_TCG_TPM is not set | 511 | # CONFIG_TCG_TPM is not set |
719 | 512 | CONFIG_DEVPORT=y | |
720 | # | ||
721 | # I2C support | ||
722 | # | ||
723 | # CONFIG_I2C is not set | 513 | # CONFIG_I2C is not set |
724 | 514 | ||
725 | # | 515 | # |
@@ -727,33 +517,33 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
727 | # | 517 | # |
728 | # CONFIG_SPI is not set | 518 | # CONFIG_SPI is not set |
729 | # CONFIG_SPI_MASTER is not set | 519 | # CONFIG_SPI_MASTER is not set |
730 | |||
731 | # | ||
732 | # Dallas's 1-wire bus | ||
733 | # | ||
734 | # CONFIG_W1 is not set | 520 | # CONFIG_W1 is not set |
521 | # CONFIG_POWER_SUPPLY is not set | ||
522 | # CONFIG_HWMON is not set | ||
735 | 523 | ||
736 | # | 524 | # |
737 | # Hardware Monitoring support | 525 | # Multifunction device drivers |
738 | # | 526 | # |
739 | # CONFIG_HWMON is not set | 527 | # CONFIG_MFD_SM501 is not set |
740 | # CONFIG_HWMON_VID is not set | ||
741 | 528 | ||
742 | # | 529 | # |
743 | # Multimedia devices | 530 | # Multimedia devices |
744 | # | 531 | # |
745 | # CONFIG_VIDEO_DEV is not set | 532 | # CONFIG_VIDEO_DEV is not set |
533 | # CONFIG_DVB_CORE is not set | ||
534 | # CONFIG_DAB is not set | ||
746 | 535 | ||
747 | # | 536 | # |
748 | # Digital Video Broadcasting Devices | 537 | # Graphics support |
749 | # | 538 | # |
750 | # CONFIG_DVB is not set | 539 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
751 | # CONFIG_USB_DABUSB is not set | ||
752 | 540 | ||
753 | # | 541 | # |
754 | # Graphics support | 542 | # Display device support |
755 | # | 543 | # |
756 | # CONFIG_FIRMWARE_EDID is not set | 544 | # CONFIG_DISPLAY_SUPPORT is not set |
545 | # CONFIG_VGASTATE is not set | ||
546 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
757 | # CONFIG_FB is not set | 547 | # CONFIG_FB is not set |
758 | 548 | ||
759 | # | 549 | # |
@@ -761,22 +551,13 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
761 | # | 551 | # |
762 | # CONFIG_VGA_CONSOLE is not set | 552 | # CONFIG_VGA_CONSOLE is not set |
763 | CONFIG_DUMMY_CONSOLE=y | 553 | CONFIG_DUMMY_CONSOLE=y |
764 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
765 | 554 | ||
766 | # | 555 | # |
767 | # Sound | 556 | # Sound |
768 | # | 557 | # |
769 | # CONFIG_SOUND is not set | 558 | # CONFIG_SOUND is not set |
770 | 559 | # CONFIG_HID_SUPPORT is not set | |
771 | # | 560 | CONFIG_USB_SUPPORT=y |
772 | # HID Devices | ||
773 | # | ||
774 | CONFIG_HID=y | ||
775 | # CONFIG_HID_DEBUG is not set | ||
776 | |||
777 | # | ||
778 | # USB support | ||
779 | # | ||
780 | CONFIG_USB_ARCH_HAS_HCD=y | 561 | CONFIG_USB_ARCH_HAS_HCD=y |
781 | CONFIG_USB_ARCH_HAS_OHCI=y | 562 | CONFIG_USB_ARCH_HAS_OHCI=y |
782 | CONFIG_USB_ARCH_HAS_EHCI=y | 563 | CONFIG_USB_ARCH_HAS_EHCI=y |
@@ -787,8 +568,8 @@ CONFIG_USB=m | |||
787 | # Miscellaneous USB options | 568 | # Miscellaneous USB options |
788 | # | 569 | # |
789 | CONFIG_USB_DEVICEFS=y | 570 | CONFIG_USB_DEVICEFS=y |
571 | CONFIG_USB_DEVICE_CLASS=y | ||
790 | # CONFIG_USB_DYNAMIC_MINORS is not set | 572 | # CONFIG_USB_DYNAMIC_MINORS is not set |
791 | # CONFIG_USB_SUSPEND is not set | ||
792 | # CONFIG_USB_OTG is not set | 573 | # CONFIG_USB_OTG is not set |
793 | 574 | ||
794 | # | 575 | # |
@@ -802,6 +583,7 @@ CONFIG_USB_OHCI_HCD=m | |||
802 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 583 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
803 | # CONFIG_USB_UHCI_HCD is not set | 584 | # CONFIG_USB_UHCI_HCD is not set |
804 | # CONFIG_USB_SL811_HCD is not set | 585 | # CONFIG_USB_SL811_HCD is not set |
586 | # CONFIG_USB_R8A66597_HCD is not set | ||
805 | 587 | ||
806 | # | 588 | # |
807 | # USB Device Class drivers | 589 | # USB Device Class drivers |
@@ -819,43 +601,9 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
819 | # CONFIG_USB_LIBUSUAL is not set | 601 | # CONFIG_USB_LIBUSUAL is not set |
820 | 602 | ||
821 | # | 603 | # |
822 | # USB Input Devices | ||
823 | # | ||
824 | # CONFIG_USB_HID is not set | ||
825 | |||
826 | # | ||
827 | # USB HID Boot Protocol drivers | ||
828 | # | ||
829 | # CONFIG_USB_KBD is not set | ||
830 | # CONFIG_USB_MOUSE is not set | ||
831 | # CONFIG_USB_AIPTEK is not set | ||
832 | # CONFIG_USB_WACOM is not set | ||
833 | # CONFIG_USB_ACECAD is not set | ||
834 | # CONFIG_USB_KBTAB is not set | ||
835 | # CONFIG_USB_POWERMATE is not set | ||
836 | # CONFIG_USB_TOUCHSCREEN is not set | ||
837 | # CONFIG_USB_YEALINK is not set | ||
838 | # CONFIG_USB_XPAD is not set | ||
839 | # CONFIG_USB_ATI_REMOTE is not set | ||
840 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
841 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
842 | # CONFIG_USB_APPLETOUCH is not set | ||
843 | # CONFIG_USB_GTCO is not set | ||
844 | |||
845 | # | ||
846 | # USB Imaging devices | 604 | # USB Imaging devices |
847 | # | 605 | # |
848 | # CONFIG_USB_MDC800 is not set | 606 | # CONFIG_USB_MDC800 is not set |
849 | |||
850 | # | ||
851 | # USB Network Adapters | ||
852 | # | ||
853 | # CONFIG_USB_CATC is not set | ||
854 | # CONFIG_USB_KAWETH is not set | ||
855 | CONFIG_USB_PEGASUS=m | ||
856 | # CONFIG_USB_RTL8150 is not set | ||
857 | # CONFIG_USB_USBNET_MII is not set | ||
858 | # CONFIG_USB_USBNET is not set | ||
859 | # CONFIG_USB_MON is not set | 607 | # CONFIG_USB_MON is not set |
860 | 608 | ||
861 | # | 609 | # |
@@ -887,6 +635,7 @@ CONFIG_USB_PEGASUS=m | |||
887 | # CONFIG_USB_APPLEDISPLAY is not set | 635 | # CONFIG_USB_APPLEDISPLAY is not set |
888 | # CONFIG_USB_LD is not set | 636 | # CONFIG_USB_LD is not set |
889 | # CONFIG_USB_TRANCEVIBRATOR is not set | 637 | # CONFIG_USB_TRANCEVIBRATOR is not set |
638 | # CONFIG_USB_IOWARRIOR is not set | ||
890 | # CONFIG_USB_TEST is not set | 639 | # CONFIG_USB_TEST is not set |
891 | 640 | ||
892 | # | 641 | # |
@@ -897,38 +646,43 @@ CONFIG_USB_PEGASUS=m | |||
897 | # USB Gadget Support | 646 | # USB Gadget Support |
898 | # | 647 | # |
899 | # CONFIG_USB_GADGET is not set | 648 | # CONFIG_USB_GADGET is not set |
900 | |||
901 | # | ||
902 | # MMC/SD Card support | ||
903 | # | ||
904 | # CONFIG_MMC is not set | 649 | # CONFIG_MMC is not set |
905 | |||
906 | # | ||
907 | # LED devices | ||
908 | # | ||
909 | # CONFIG_NEW_LEDS is not set | 650 | # CONFIG_NEW_LEDS is not set |
651 | # CONFIG_INFINIBAND is not set | ||
652 | CONFIG_RTC_LIB=y | ||
653 | CONFIG_RTC_CLASS=y | ||
654 | CONFIG_RTC_HCTOSYS=y | ||
655 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
656 | # CONFIG_RTC_DEBUG is not set | ||
910 | 657 | ||
911 | # | 658 | # |
912 | # LED drivers | 659 | # RTC interfaces |
913 | # | ||
914 | |||
915 | # | ||
916 | # LED Triggers | ||
917 | # | 660 | # |
661 | CONFIG_RTC_INTF_SYSFS=y | ||
662 | CONFIG_RTC_INTF_PROC=y | ||
663 | CONFIG_RTC_INTF_DEV=y | ||
664 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
665 | # CONFIG_RTC_DRV_TEST is not set | ||
918 | 666 | ||
919 | # | 667 | # |
920 | # InfiniBand support | 668 | # SPI RTC drivers |
921 | # | 669 | # |
922 | # CONFIG_INFINIBAND is not set | ||
923 | 670 | ||
924 | # | 671 | # |
925 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | 672 | # Platform RTC drivers |
926 | # | 673 | # |
674 | # CONFIG_RTC_DRV_CMOS is not set | ||
675 | # CONFIG_RTC_DRV_DS1553 is not set | ||
676 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
677 | # CONFIG_RTC_DRV_DS1742 is not set | ||
678 | # CONFIG_RTC_DRV_M48T86 is not set | ||
679 | # CONFIG_RTC_DRV_M48T59 is not set | ||
680 | # CONFIG_RTC_DRV_V3020 is not set | ||
927 | 681 | ||
928 | # | 682 | # |
929 | # Real Time Clock | 683 | # on-CPU RTC drivers |
930 | # | 684 | # |
931 | # CONFIG_RTC_CLASS is not set | 685 | CONFIG_RTC_DRV_VR41XX=y |
932 | 686 | ||
933 | # | 687 | # |
934 | # DMA Engine support | 688 | # DMA Engine support |
@@ -944,12 +698,9 @@ CONFIG_USB_PEGASUS=m | |||
944 | # | 698 | # |
945 | 699 | ||
946 | # | 700 | # |
947 | # Auxiliary Display support | 701 | # Userspace I/O |
948 | # | ||
949 | |||
950 | # | ||
951 | # Virtualization | ||
952 | # | 702 | # |
703 | # CONFIG_UIO is not set | ||
953 | 704 | ||
954 | # | 705 | # |
955 | # File systems | 706 | # File systems |
@@ -973,7 +724,7 @@ CONFIG_INOTIFY_USER=y | |||
973 | CONFIG_DNOTIFY=y | 724 | CONFIG_DNOTIFY=y |
974 | CONFIG_AUTOFS_FS=y | 725 | CONFIG_AUTOFS_FS=y |
975 | CONFIG_AUTOFS4_FS=y | 726 | CONFIG_AUTOFS4_FS=y |
976 | CONFIG_FUSE_FS=m | 727 | # CONFIG_FUSE_FS is not set |
977 | 728 | ||
978 | # | 729 | # |
979 | # CD-ROM/DVD Filesystems | 730 | # CD-ROM/DVD Filesystems |
@@ -1005,7 +756,6 @@ CONFIG_CONFIGFS_FS=m | |||
1005 | # | 756 | # |
1006 | # CONFIG_ADFS_FS is not set | 757 | # CONFIG_ADFS_FS is not set |
1007 | # CONFIG_AFFS_FS is not set | 758 | # CONFIG_AFFS_FS is not set |
1008 | # CONFIG_ECRYPT_FS is not set | ||
1009 | # CONFIG_HFS_FS is not set | 759 | # CONFIG_HFS_FS is not set |
1010 | # CONFIG_HFSPLUS_FS is not set | 760 | # CONFIG_HFSPLUS_FS is not set |
1011 | # CONFIG_BEFS_FS is not set | 761 | # CONFIG_BEFS_FS is not set |
@@ -1029,6 +779,7 @@ CONFIG_NFS_FS=y | |||
1029 | CONFIG_LOCKD=y | 779 | CONFIG_LOCKD=y |
1030 | CONFIG_NFS_COMMON=y | 780 | CONFIG_NFS_COMMON=y |
1031 | CONFIG_SUNRPC=y | 781 | CONFIG_SUNRPC=y |
782 | # CONFIG_SUNRPC_BIND34 is not set | ||
1032 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 783 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1033 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 784 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1034 | # CONFIG_SMB_FS is not set | 785 | # CONFIG_SMB_FS is not set |
@@ -1036,7 +787,6 @@ CONFIG_SUNRPC=y | |||
1036 | # CONFIG_NCP_FS is not set | 787 | # CONFIG_NCP_FS is not set |
1037 | # CONFIG_CODA_FS is not set | 788 | # CONFIG_CODA_FS is not set |
1038 | # CONFIG_AFS_FS is not set | 789 | # CONFIG_AFS_FS is not set |
1039 | # CONFIG_9P_FS is not set | ||
1040 | 790 | ||
1041 | # | 791 | # |
1042 | # Partition Types | 792 | # Partition Types |
@@ -1052,10 +802,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1052 | # | 802 | # |
1053 | # Distributed Lock Manager | 803 | # Distributed Lock Manager |
1054 | # | 804 | # |
1055 | CONFIG_DLM=m | 805 | # CONFIG_DLM is not set |
1056 | CONFIG_DLM_TCP=y | ||
1057 | # CONFIG_DLM_SCTP is not set | ||
1058 | # CONFIG_DLM_DEBUG is not set | ||
1059 | 806 | ||
1060 | # | 807 | # |
1061 | # Profiling support | 808 | # Profiling support |
@@ -1073,73 +820,26 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1073 | # CONFIG_DEBUG_FS is not set | 820 | # CONFIG_DEBUG_FS is not set |
1074 | # CONFIG_HEADERS_CHECK is not set | 821 | # CONFIG_HEADERS_CHECK is not set |
1075 | # CONFIG_DEBUG_KERNEL is not set | 822 | # CONFIG_DEBUG_KERNEL is not set |
1076 | CONFIG_LOG_BUF_SHIFT=14 | ||
1077 | CONFIG_CROSSCOMPILE=y | 823 | CONFIG_CROSSCOMPILE=y |
1078 | CONFIG_CMDLINE="mem=32M console=ttyVR0,19200 ide0=0x170,0x376,73" | 824 | CONFIG_CMDLINE="mem=32M console=ttyVR0,19200 ide0=0x170,0x376,73" |
1079 | 825 | ||
1080 | # | 826 | # |
1081 | # Security options | 827 | # Security options |
1082 | # | 828 | # |
1083 | CONFIG_KEYS=y | 829 | # CONFIG_KEYS is not set |
1084 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | ||
1085 | # CONFIG_SECURITY is not set | 830 | # CONFIG_SECURITY is not set |
1086 | 831 | # CONFIG_CRYPTO is not set | |
1087 | # | ||
1088 | # Cryptographic options | ||
1089 | # | ||
1090 | CONFIG_CRYPTO=y | ||
1091 | CONFIG_CRYPTO_ALGAPI=y | ||
1092 | CONFIG_CRYPTO_BLKCIPHER=m | ||
1093 | CONFIG_CRYPTO_HASH=y | ||
1094 | CONFIG_CRYPTO_MANAGER=y | ||
1095 | CONFIG_CRYPTO_HMAC=y | ||
1096 | CONFIG_CRYPTO_XCBC=m | ||
1097 | CONFIG_CRYPTO_NULL=m | ||
1098 | CONFIG_CRYPTO_MD4=m | ||
1099 | CONFIG_CRYPTO_MD5=y | ||
1100 | CONFIG_CRYPTO_SHA1=m | ||
1101 | CONFIG_CRYPTO_SHA256=m | ||
1102 | CONFIG_CRYPTO_SHA512=m | ||
1103 | CONFIG_CRYPTO_WP512=m | ||
1104 | CONFIG_CRYPTO_TGR192=m | ||
1105 | CONFIG_CRYPTO_GF128MUL=m | ||
1106 | CONFIG_CRYPTO_ECB=m | ||
1107 | CONFIG_CRYPTO_CBC=m | ||
1108 | CONFIG_CRYPTO_PCBC=m | ||
1109 | CONFIG_CRYPTO_LRW=m | ||
1110 | CONFIG_CRYPTO_DES=m | ||
1111 | CONFIG_CRYPTO_FCRYPT=m | ||
1112 | CONFIG_CRYPTO_BLOWFISH=m | ||
1113 | CONFIG_CRYPTO_TWOFISH=m | ||
1114 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1115 | CONFIG_CRYPTO_SERPENT=m | ||
1116 | CONFIG_CRYPTO_AES=m | ||
1117 | CONFIG_CRYPTO_CAST5=m | ||
1118 | CONFIG_CRYPTO_CAST6=m | ||
1119 | CONFIG_CRYPTO_TEA=m | ||
1120 | CONFIG_CRYPTO_ARC4=m | ||
1121 | CONFIG_CRYPTO_KHAZAD=m | ||
1122 | CONFIG_CRYPTO_ANUBIS=m | ||
1123 | CONFIG_CRYPTO_DEFLATE=m | ||
1124 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1125 | CONFIG_CRYPTO_CRC32C=m | ||
1126 | CONFIG_CRYPTO_CAMELLIA=m | ||
1127 | # CONFIG_CRYPTO_TEST is not set | ||
1128 | |||
1129 | # | ||
1130 | # Hardware crypto devices | ||
1131 | # | ||
1132 | 832 | ||
1133 | # | 833 | # |
1134 | # Library routines | 834 | # Library routines |
1135 | # | 835 | # |
1136 | CONFIG_BITREVERSE=y | ||
1137 | # CONFIG_CRC_CCITT is not set | 836 | # CONFIG_CRC_CCITT is not set |
1138 | CONFIG_CRC16=m | 837 | # CONFIG_CRC16 is not set |
1139 | CONFIG_CRC32=y | 838 | # CONFIG_CRC_ITU_T is not set |
1140 | CONFIG_LIBCRC32C=m | 839 | # CONFIG_CRC32 is not set |
1141 | CONFIG_ZLIB_INFLATE=m | 840 | # CONFIG_CRC7 is not set |
1142 | CONFIG_ZLIB_DEFLATE=m | 841 | # CONFIG_LIBCRC32C is not set |
1143 | CONFIG_PLIST=y | 842 | CONFIG_PLIST=y |
1144 | CONFIG_HAS_IOMEM=y | 843 | CONFIG_HAS_IOMEM=y |
1145 | CONFIG_HAS_IOPORT=y | 844 | CONFIG_HAS_IOPORT=y |
845 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/rbhma4200_defconfig b/arch/mips/configs/rbhma4200_defconfig index 9913980add21..9383a598094b 100644 --- a/arch/mips/configs/rbhma4200_defconfig +++ b/arch/mips/configs/rbhma4200_defconfig | |||
@@ -1,58 +1,47 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.21 | 3 | # Linux kernel version: 2.6.23-rc1 |
4 | # Wed May 9 23:44:19 2007 | 4 | # Thu Aug 2 22:55:57 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | # CONFIG_MIPS_MTX1 is not set | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_MIPS_BOSPORUS is not set | ||
13 | # CONFIG_MIPS_PB1000 is not set | ||
14 | # CONFIG_MIPS_PB1100 is not set | ||
15 | # CONFIG_MIPS_PB1500 is not set | ||
16 | # CONFIG_MIPS_PB1550 is not set | ||
17 | # CONFIG_MIPS_PB1200 is not set | ||
18 | # CONFIG_MIPS_DB1000 is not set | ||
19 | # CONFIG_MIPS_DB1100 is not set | ||
20 | # CONFIG_MIPS_DB1500 is not set | ||
21 | # CONFIG_MIPS_DB1550 is not set | ||
22 | # CONFIG_MIPS_DB1200 is not set | ||
23 | # CONFIG_MIPS_MIRAGE is not set | ||
24 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
25 | # CONFIG_MIPS_COBALT is not set | 13 | # CONFIG_MIPS_COBALT is not set |
26 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
27 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
28 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
29 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
30 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
31 | # CONFIG_WR_PPMC is not set | ||
32 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
33 | # CONFIG_MIPS_XXS1500 is not set | 21 | # CONFIG_MARKEINS is not set |
22 | # CONFIG_MACH_VR41XX is not set | ||
34 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
35 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
36 | # CONFIG_MACH_VR41XX is not set | 25 | # CONFIG_PMC_MSP is not set |
37 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
38 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
39 | # CONFIG_MARKEINS is not set | ||
40 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
41 | # CONFIG_SGI_IP27 is not set | 29 | # CONFIG_SGI_IP27 is not set |
42 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
43 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
44 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
45 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
46 | # CONFIG_SIBYTE_RHONE is not set | ||
47 | # CONFIG_SIBYTE_CARMEL is not set | ||
48 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
49 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
50 | # CONFIG_SIBYTE_CRHINE is not set | ||
51 | # CONFIG_SIBYTE_CRHONE is not set | ||
52 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
53 | # CONFIG_TOSHIBA_JMR3927 is not set | 41 | # CONFIG_TOSHIBA_JMR3927 is not set |
54 | CONFIG_TOSHIBA_RBTX4927=y | 42 | CONFIG_TOSHIBA_RBTX4927=y |
55 | # CONFIG_TOSHIBA_RBTX4938 is not set | 43 | # CONFIG_TOSHIBA_RBTX4938 is not set |
44 | # CONFIG_WR_PPMC is not set | ||
56 | # CONFIG_TOSHIBA_FPCIB0 is not set | 45 | # CONFIG_TOSHIBA_FPCIB0 is not set |
57 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 46 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
58 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 47 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
@@ -65,17 +54,20 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
65 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 54 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
66 | CONFIG_DMA_NONCOHERENT=y | 55 | CONFIG_DMA_NONCOHERENT=y |
67 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 56 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
68 | CONFIG_I8259=y | 57 | # CONFIG_NO_IOPORT is not set |
69 | CONFIG_CPU_BIG_ENDIAN=y | 58 | CONFIG_CPU_BIG_ENDIAN=y |
70 | # CONFIG_CPU_LITTLE_ENDIAN is not set | 59 | # CONFIG_CPU_LITTLE_ENDIAN is not set |
71 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | 60 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y |
72 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 61 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
62 | CONFIG_IRQ_CPU=y | ||
63 | CONFIG_IRQ_TXX9=y | ||
73 | CONFIG_SWAP_IO_SPACE=y | 64 | CONFIG_SWAP_IO_SPACE=y |
74 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | 65 | CONFIG_MIPS_L1_CACHE_SHIFT=5 |
75 | 66 | ||
76 | # | 67 | # |
77 | # CPU selection | 68 | # CPU selection |
78 | # | 69 | # |
70 | # CONFIG_CPU_LOONGSON2 is not set | ||
79 | # CONFIG_CPU_MIPS32_R1 is not set | 71 | # CONFIG_CPU_MIPS32_R1 is not set |
80 | # CONFIG_CPU_MIPS32_R2 is not set | 72 | # CONFIG_CPU_MIPS32_R2 is not set |
81 | # CONFIG_CPU_MIPS64_R1 is not set | 73 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -114,22 +106,18 @@ CONFIG_CPU_HAS_PREFETCH=y | |||
114 | CONFIG_MIPS_MT_DISABLED=y | 106 | CONFIG_MIPS_MT_DISABLED=y |
115 | # CONFIG_MIPS_MT_SMP is not set | 107 | # CONFIG_MIPS_MT_SMP is not set |
116 | # CONFIG_MIPS_MT_SMTC is not set | 108 | # CONFIG_MIPS_MT_SMTC is not set |
117 | # CONFIG_MIPS_VPE_LOADER is not set | ||
118 | CONFIG_CPU_HAS_LLSC=y | 109 | CONFIG_CPU_HAS_LLSC=y |
119 | CONFIG_CPU_HAS_SYNC=y | 110 | CONFIG_CPU_HAS_SYNC=y |
120 | CONFIG_GENERIC_HARDIRQS=y | 111 | CONFIG_GENERIC_HARDIRQS=y |
121 | CONFIG_GENERIC_IRQ_PROBE=y | 112 | CONFIG_GENERIC_IRQ_PROBE=y |
122 | CONFIG_ARCH_FLATMEM_ENABLE=y | 113 | CONFIG_ARCH_FLATMEM_ENABLE=y |
123 | CONFIG_SELECT_MEMORY_MODEL=y | ||
124 | CONFIG_FLATMEM_MANUAL=y | ||
125 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
126 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
127 | CONFIG_FLATMEM=y | 114 | CONFIG_FLATMEM=y |
128 | CONFIG_FLAT_NODE_MEM_MAP=y | 115 | CONFIG_FLAT_NODE_MEM_MAP=y |
129 | # CONFIG_SPARSEMEM_STATIC is not set | 116 | # CONFIG_SPARSEMEM_STATIC is not set |
130 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 117 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
131 | # CONFIG_RESOURCES_64BIT is not set | 118 | # CONFIG_RESOURCES_64BIT is not set |
132 | CONFIG_ZONE_DMA_FLAG=0 | 119 | CONFIG_ZONE_DMA_FLAG=0 |
120 | CONFIG_VIRT_TO_BUS=y | ||
133 | # CONFIG_HZ_48 is not set | 121 | # CONFIG_HZ_48 is not set |
134 | # CONFIG_HZ_100 is not set | 122 | # CONFIG_HZ_100 is not set |
135 | # CONFIG_HZ_128 is not set | 123 | # CONFIG_HZ_128 is not set |
@@ -142,31 +130,24 @@ CONFIG_HZ=250 | |||
142 | CONFIG_PREEMPT_NONE=y | 130 | CONFIG_PREEMPT_NONE=y |
143 | # CONFIG_PREEMPT_VOLUNTARY is not set | 131 | # CONFIG_PREEMPT_VOLUNTARY is not set |
144 | # CONFIG_PREEMPT is not set | 132 | # CONFIG_PREEMPT is not set |
145 | # CONFIG_KEXEC is not set | 133 | # CONFIG_SECCOMP is not set |
146 | CONFIG_LOCKDEP_SUPPORT=y | 134 | CONFIG_LOCKDEP_SUPPORT=y |
147 | CONFIG_STACKTRACE_SUPPORT=y | 135 | CONFIG_STACKTRACE_SUPPORT=y |
148 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 136 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
149 | 137 | ||
150 | # | 138 | # |
151 | # Code maturity level options | 139 | # General setup |
152 | # | 140 | # |
153 | CONFIG_EXPERIMENTAL=y | 141 | # CONFIG_EXPERIMENTAL is not set |
154 | CONFIG_BROKEN_ON_SMP=y | 142 | CONFIG_BROKEN_ON_SMP=y |
155 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 143 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
156 | |||
157 | # | ||
158 | # General setup | ||
159 | # | ||
160 | CONFIG_LOCALVERSION="" | 144 | CONFIG_LOCALVERSION="" |
161 | CONFIG_LOCALVERSION_AUTO=y | 145 | CONFIG_LOCALVERSION_AUTO=y |
162 | CONFIG_SWAP=y | 146 | CONFIG_SWAP=y |
163 | CONFIG_SYSVIPC=y | 147 | CONFIG_SYSVIPC=y |
164 | # CONFIG_IPC_NS is not set | ||
165 | CONFIG_SYSVIPC_SYSCTL=y | 148 | CONFIG_SYSVIPC_SYSCTL=y |
166 | # CONFIG_POSIX_MQUEUE is not set | ||
167 | # CONFIG_BSD_PROCESS_ACCT is not set | 149 | # CONFIG_BSD_PROCESS_ACCT is not set |
168 | # CONFIG_TASKSTATS is not set | 150 | # CONFIG_TASKSTATS is not set |
169 | # CONFIG_UTS_NS is not set | ||
170 | # CONFIG_AUDIT is not set | 151 | # CONFIG_AUDIT is not set |
171 | CONFIG_IKCONFIG=y | 152 | CONFIG_IKCONFIG=y |
172 | CONFIG_IKCONFIG_PROC=y | 153 | CONFIG_IKCONFIG_PROC=y |
@@ -175,7 +156,6 @@ CONFIG_SYSFS_DEPRECATED=y | |||
175 | # CONFIG_RELAY is not set | 156 | # CONFIG_RELAY is not set |
176 | CONFIG_BLK_DEV_INITRD=y | 157 | CONFIG_BLK_DEV_INITRD=y |
177 | CONFIG_INITRAMFS_SOURCE="" | 158 | CONFIG_INITRAMFS_SOURCE="" |
178 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
179 | CONFIG_SYSCTL=y | 159 | CONFIG_SYSCTL=y |
180 | CONFIG_EMBEDDED=y | 160 | CONFIG_EMBEDDED=y |
181 | CONFIG_SYSCTL_SYSCALL=y | 161 | CONFIG_SYSCTL_SYSCALL=y |
@@ -187,7 +167,11 @@ CONFIG_BUG=y | |||
187 | CONFIG_ELF_CORE=y | 167 | CONFIG_ELF_CORE=y |
188 | CONFIG_BASE_FULL=y | 168 | CONFIG_BASE_FULL=y |
189 | # CONFIG_FUTEX is not set | 169 | # CONFIG_FUTEX is not set |
170 | CONFIG_ANON_INODES=y | ||
190 | # CONFIG_EPOLL is not set | 171 | # CONFIG_EPOLL is not set |
172 | CONFIG_SIGNALFD=y | ||
173 | CONFIG_TIMERFD=y | ||
174 | CONFIG_EVENTFD=y | ||
191 | CONFIG_SHMEM=y | 175 | CONFIG_SHMEM=y |
192 | CONFIG_VM_EVENT_COUNTERS=y | 176 | CONFIG_VM_EVENT_COUNTERS=y |
193 | CONFIG_SLAB=y | 177 | CONFIG_SLAB=y |
@@ -195,19 +179,11 @@ CONFIG_SLAB=y | |||
195 | # CONFIG_SLOB is not set | 179 | # CONFIG_SLOB is not set |
196 | # CONFIG_TINY_SHMEM is not set | 180 | # CONFIG_TINY_SHMEM is not set |
197 | CONFIG_BASE_SMALL=0 | 181 | CONFIG_BASE_SMALL=0 |
198 | |||
199 | # | ||
200 | # Loadable module support | ||
201 | # | ||
202 | CONFIG_MODULES=y | 182 | CONFIG_MODULES=y |
203 | # CONFIG_MODULE_UNLOAD is not set | 183 | # CONFIG_MODULE_UNLOAD is not set |
204 | # CONFIG_MODVERSIONS is not set | 184 | # CONFIG_MODVERSIONS is not set |
205 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 185 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
206 | CONFIG_KMOD=y | 186 | CONFIG_KMOD=y |
207 | |||
208 | # | ||
209 | # Block layer | ||
210 | # | ||
211 | CONFIG_BLOCK=y | 187 | CONFIG_BLOCK=y |
212 | # CONFIG_LBD is not set | 188 | # CONFIG_LBD is not set |
213 | # CONFIG_BLK_DEV_IO_TRACE is not set | 189 | # CONFIG_BLK_DEV_IO_TRACE is not set |
@@ -273,7 +249,6 @@ CONFIG_IP_PNP=y | |||
273 | # CONFIG_NET_IPIP is not set | 249 | # CONFIG_NET_IPIP is not set |
274 | # CONFIG_NET_IPGRE is not set | 250 | # CONFIG_NET_IPGRE is not set |
275 | # CONFIG_IP_MROUTE is not set | 251 | # CONFIG_IP_MROUTE is not set |
276 | # CONFIG_ARPD is not set | ||
277 | # CONFIG_SYN_COOKIES is not set | 252 | # CONFIG_SYN_COOKIES is not set |
278 | # CONFIG_INET_AH is not set | 253 | # CONFIG_INET_AH is not set |
279 | # CONFIG_INET_ESP is not set | 254 | # CONFIG_INET_ESP is not set |
@@ -288,38 +263,17 @@ CONFIG_INET_TCP_DIAG=y | |||
288 | # CONFIG_TCP_CONG_ADVANCED is not set | 263 | # CONFIG_TCP_CONG_ADVANCED is not set |
289 | CONFIG_TCP_CONG_CUBIC=y | 264 | CONFIG_TCP_CONG_CUBIC=y |
290 | CONFIG_DEFAULT_TCP_CONG="cubic" | 265 | CONFIG_DEFAULT_TCP_CONG="cubic" |
291 | # CONFIG_TCP_MD5SIG is not set | ||
292 | # CONFIG_IPV6 is not set | 266 | # CONFIG_IPV6 is not set |
293 | # CONFIG_INET6_XFRM_TUNNEL is not set | 267 | # CONFIG_INET6_XFRM_TUNNEL is not set |
294 | # CONFIG_INET6_TUNNEL is not set | 268 | # CONFIG_INET6_TUNNEL is not set |
295 | # CONFIG_NETWORK_SECMARK is not set | 269 | # CONFIG_NETWORK_SECMARK is not set |
296 | # CONFIG_NETFILTER is not set | 270 | # CONFIG_NETFILTER is not set |
297 | |||
298 | # | ||
299 | # DCCP Configuration (EXPERIMENTAL) | ||
300 | # | ||
301 | # CONFIG_IP_DCCP is not set | ||
302 | |||
303 | # | ||
304 | # SCTP Configuration (EXPERIMENTAL) | ||
305 | # | ||
306 | # CONFIG_IP_SCTP is not set | ||
307 | |||
308 | # | ||
309 | # TIPC Configuration (EXPERIMENTAL) | ||
310 | # | ||
311 | # CONFIG_TIPC is not set | ||
312 | # CONFIG_ATM is not set | ||
313 | # CONFIG_BRIDGE is not set | 271 | # CONFIG_BRIDGE is not set |
314 | # CONFIG_VLAN_8021Q is not set | 272 | # CONFIG_VLAN_8021Q is not set |
315 | # CONFIG_DECNET is not set | 273 | # CONFIG_DECNET is not set |
316 | # CONFIG_LLC2 is not set | 274 | # CONFIG_LLC2 is not set |
317 | # CONFIG_IPX is not set | 275 | # CONFIG_IPX is not set |
318 | # CONFIG_ATALK is not set | 276 | # CONFIG_ATALK is not set |
319 | # CONFIG_X25 is not set | ||
320 | # CONFIG_LAPB is not set | ||
321 | # CONFIG_ECONET is not set | ||
322 | # CONFIG_WAN_ROUTER is not set | ||
323 | 277 | ||
324 | # | 278 | # |
325 | # QoS and/or fair queueing | 279 | # QoS and/or fair queueing |
@@ -333,14 +287,12 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
333 | # CONFIG_HAMRADIO is not set | 287 | # CONFIG_HAMRADIO is not set |
334 | # CONFIG_IRDA is not set | 288 | # CONFIG_IRDA is not set |
335 | # CONFIG_BT is not set | 289 | # CONFIG_BT is not set |
336 | # CONFIG_AF_RXRPC is not set | ||
337 | 290 | ||
338 | # | 291 | # |
339 | # Wireless | 292 | # Wireless |
340 | # | 293 | # |
341 | # CONFIG_CFG80211 is not set | 294 | # CONFIG_CFG80211 is not set |
342 | # CONFIG_WIRELESS_EXT is not set | 295 | # CONFIG_WIRELESS_EXT is not set |
343 | # CONFIG_MAC80211 is not set | ||
344 | # CONFIG_IEEE80211 is not set | 296 | # CONFIG_IEEE80211 is not set |
345 | # CONFIG_RFKILL is not set | 297 | # CONFIG_RFKILL is not set |
346 | 298 | ||
@@ -354,30 +306,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
354 | CONFIG_STANDALONE=y | 306 | CONFIG_STANDALONE=y |
355 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 307 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
356 | # CONFIG_SYS_HYPERVISOR is not set | 308 | # CONFIG_SYS_HYPERVISOR is not set |
357 | |||
358 | # | ||
359 | # Connector - unified userspace <-> kernelspace linker | ||
360 | # | ||
361 | # CONFIG_CONNECTOR is not set | 309 | # CONFIG_CONNECTOR is not set |
362 | # CONFIG_MTD is not set | 310 | # CONFIG_MTD is not set |
363 | |||
364 | # | ||
365 | # Parallel port support | ||
366 | # | ||
367 | # CONFIG_PARPORT is not set | 311 | # CONFIG_PARPORT is not set |
368 | 312 | CONFIG_BLK_DEV=y | |
369 | # | ||
370 | # Plug and Play support | ||
371 | # | ||
372 | # CONFIG_PNPACPI is not set | ||
373 | |||
374 | # | ||
375 | # Block devices | ||
376 | # | ||
377 | # CONFIG_BLK_CPQ_DA is not set | 313 | # CONFIG_BLK_CPQ_DA is not set |
378 | # CONFIG_BLK_CPQ_CISS_DA is not set | 314 | # CONFIG_BLK_CPQ_CISS_DA is not set |
379 | # CONFIG_BLK_DEV_DAC960 is not set | 315 | # CONFIG_BLK_DEV_DAC960 is not set |
380 | # CONFIG_BLK_DEV_UMEM is not set | ||
381 | # CONFIG_BLK_DEV_COW_COMMON is not set | 316 | # CONFIG_BLK_DEV_COW_COMMON is not set |
382 | CONFIG_BLK_DEV_LOOP=y | 317 | CONFIG_BLK_DEV_LOOP=y |
383 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 318 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
@@ -389,18 +324,7 @@ CONFIG_BLK_DEV_RAM_SIZE=8192 | |||
389 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 324 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
390 | # CONFIG_CDROM_PKTCDVD is not set | 325 | # CONFIG_CDROM_PKTCDVD is not set |
391 | # CONFIG_ATA_OVER_ETH is not set | 326 | # CONFIG_ATA_OVER_ETH is not set |
392 | 327 | # CONFIG_MISC_DEVICES is not set | |
393 | # | ||
394 | # Misc devices | ||
395 | # | ||
396 | # CONFIG_PHANTOM is not set | ||
397 | # CONFIG_SGI_IOC4 is not set | ||
398 | # CONFIG_TIFM_CORE is not set | ||
399 | # CONFIG_BLINK is not set | ||
400 | |||
401 | # | ||
402 | # ATA/ATAPI/MFM/RLL support | ||
403 | # | ||
404 | # CONFIG_IDE is not set | 328 | # CONFIG_IDE is not set |
405 | 329 | ||
406 | # | 330 | # |
@@ -408,16 +332,9 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | |||
408 | # | 332 | # |
409 | # CONFIG_RAID_ATTRS is not set | 333 | # CONFIG_RAID_ATTRS is not set |
410 | # CONFIG_SCSI is not set | 334 | # CONFIG_SCSI is not set |
335 | # CONFIG_SCSI_DMA is not set | ||
411 | # CONFIG_SCSI_NETLINK is not set | 336 | # CONFIG_SCSI_NETLINK is not set |
412 | |||
413 | # | ||
414 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
415 | # | ||
416 | # CONFIG_ATA is not set | 337 | # CONFIG_ATA is not set |
417 | |||
418 | # | ||
419 | # Multi-device support (RAID and LVM) | ||
420 | # | ||
421 | # CONFIG_MD is not set | 338 | # CONFIG_MD is not set |
422 | 339 | ||
423 | # | 340 | # |
@@ -428,83 +345,34 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | |||
428 | # | 345 | # |
429 | # IEEE 1394 (FireWire) support | 346 | # IEEE 1394 (FireWire) support |
430 | # | 347 | # |
431 | # CONFIG_IEEE1394 is not set | ||
432 | 348 | ||
433 | # | 349 | # |
434 | # I2O device support | 350 | # An alternative FireWire stack is available with EXPERIMENTAL=y |
435 | # | 351 | # |
352 | # CONFIG_IEEE1394 is not set | ||
436 | # CONFIG_I2O is not set | 353 | # CONFIG_I2O is not set |
437 | |||
438 | # | ||
439 | # Network device support | ||
440 | # | ||
441 | CONFIG_NETDEVICES=y | 354 | CONFIG_NETDEVICES=y |
355 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
442 | # CONFIG_DUMMY is not set | 356 | # CONFIG_DUMMY is not set |
443 | # CONFIG_BONDING is not set | 357 | # CONFIG_BONDING is not set |
444 | # CONFIG_EQUALIZER is not set | 358 | # CONFIG_EQUALIZER is not set |
445 | # CONFIG_TUN is not set | 359 | # CONFIG_TUN is not set |
446 | |||
447 | # | ||
448 | # ARCnet devices | ||
449 | # | ||
450 | # CONFIG_ARCNET is not set | 360 | # CONFIG_ARCNET is not set |
451 | |||
452 | # | ||
453 | # PHY device support | ||
454 | # | ||
455 | # CONFIG_PHYLIB is not set | 361 | # CONFIG_PHYLIB is not set |
456 | |||
457 | # | ||
458 | # Ethernet (10 or 100Mbit) | ||
459 | # | ||
460 | CONFIG_NET_ETHERNET=y | 362 | CONFIG_NET_ETHERNET=y |
461 | # CONFIG_MII is not set | 363 | # CONFIG_MII is not set |
364 | # CONFIG_AX88796 is not set | ||
462 | # CONFIG_HAPPYMEAL is not set | 365 | # CONFIG_HAPPYMEAL is not set |
463 | # CONFIG_SUNGEM is not set | 366 | # CONFIG_SUNGEM is not set |
464 | # CONFIG_CASSINI is not set | 367 | # CONFIG_CASSINI is not set |
465 | # CONFIG_NET_VENDOR_3COM is not set | 368 | # CONFIG_NET_VENDOR_3COM is not set |
466 | # CONFIG_DM9000 is not set | 369 | # CONFIG_DM9000 is not set |
467 | |||
468 | # | ||
469 | # Tulip family network device support | ||
470 | # | ||
471 | # CONFIG_NET_TULIP is not set | 370 | # CONFIG_NET_TULIP is not set |
472 | # CONFIG_HP100 is not set | 371 | # CONFIG_HP100 is not set |
473 | CONFIG_NE2000=y | 372 | CONFIG_NE2000=y |
474 | # CONFIG_NET_PCI is not set | 373 | # CONFIG_NET_PCI is not set |
475 | 374 | # CONFIG_NETDEV_1000 is not set | |
476 | # | 375 | # CONFIG_NETDEV_10000 is not set |
477 | # Ethernet (1000 Mbit) | ||
478 | # | ||
479 | # CONFIG_ACENIC is not set | ||
480 | # CONFIG_DL2K is not set | ||
481 | # CONFIG_E1000 is not set | ||
482 | # CONFIG_NS83820 is not set | ||
483 | # CONFIG_HAMACHI is not set | ||
484 | # CONFIG_YELLOWFIN is not set | ||
485 | # CONFIG_R8169 is not set | ||
486 | # CONFIG_SIS190 is not set | ||
487 | # CONFIG_SKGE is not set | ||
488 | # CONFIG_SKY2 is not set | ||
489 | # CONFIG_SK98LIN is not set | ||
490 | # CONFIG_TIGON3 is not set | ||
491 | # CONFIG_BNX2 is not set | ||
492 | # CONFIG_QLA3XXX is not set | ||
493 | # CONFIG_ATL1 is not set | ||
494 | |||
495 | # | ||
496 | # Ethernet (10000 Mbit) | ||
497 | # | ||
498 | # CONFIG_CHELSIO_T1 is not set | ||
499 | # CONFIG_CHELSIO_T3 is not set | ||
500 | # CONFIG_IXGB is not set | ||
501 | # CONFIG_S2IO is not set | ||
502 | # CONFIG_MYRI10GE is not set | ||
503 | # CONFIG_NETXEN_NIC is not set | ||
504 | |||
505 | # | ||
506 | # Token Ring devices | ||
507 | # | ||
508 | # CONFIG_TR is not set | 376 | # CONFIG_TR is not set |
509 | 377 | ||
510 | # | 378 | # |
@@ -512,28 +380,13 @@ CONFIG_NE2000=y | |||
512 | # | 380 | # |
513 | # CONFIG_WLAN_PRE80211 is not set | 381 | # CONFIG_WLAN_PRE80211 is not set |
514 | # CONFIG_WLAN_80211 is not set | 382 | # CONFIG_WLAN_80211 is not set |
515 | |||
516 | # | ||
517 | # Wan interfaces | ||
518 | # | ||
519 | # CONFIG_WAN is not set | 383 | # CONFIG_WAN is not set |
520 | # CONFIG_FDDI is not set | 384 | # CONFIG_FDDI is not set |
521 | # CONFIG_HIPPI is not set | ||
522 | # CONFIG_PPP is not set | 385 | # CONFIG_PPP is not set |
523 | # CONFIG_SLIP is not set | 386 | # CONFIG_SLIP is not set |
524 | # CONFIG_SHAPER is not set | ||
525 | # CONFIG_NETCONSOLE is not set | ||
526 | # CONFIG_NETPOLL is not set | 387 | # CONFIG_NETPOLL is not set |
527 | # CONFIG_NET_POLL_CONTROLLER is not set | 388 | # CONFIG_NET_POLL_CONTROLLER is not set |
528 | |||
529 | # | ||
530 | # ISDN subsystem | ||
531 | # | ||
532 | # CONFIG_ISDN is not set | 389 | # CONFIG_ISDN is not set |
533 | |||
534 | # | ||
535 | # Telephony Support | ||
536 | # | ||
537 | # CONFIG_PHONE is not set | 390 | # CONFIG_PHONE is not set |
538 | 391 | ||
539 | # | 392 | # |
@@ -577,29 +430,14 @@ CONFIG_SERIAL_TXX9_STDSERIAL=y | |||
577 | CONFIG_UNIX98_PTYS=y | 430 | CONFIG_UNIX98_PTYS=y |
578 | CONFIG_LEGACY_PTYS=y | 431 | CONFIG_LEGACY_PTYS=y |
579 | CONFIG_LEGACY_PTY_COUNT=256 | 432 | CONFIG_LEGACY_PTY_COUNT=256 |
580 | |||
581 | # | ||
582 | # IPMI | ||
583 | # | ||
584 | # CONFIG_IPMI_HANDLER is not set | 433 | # CONFIG_IPMI_HANDLER is not set |
585 | |||
586 | # | ||
587 | # Watchdog Cards | ||
588 | # | ||
589 | # CONFIG_WATCHDOG is not set | 434 | # CONFIG_WATCHDOG is not set |
590 | # CONFIG_HW_RANDOM is not set | 435 | # CONFIG_HW_RANDOM is not set |
591 | # CONFIG_RTC is not set | 436 | # CONFIG_RTC is not set |
592 | # CONFIG_GEN_RTC is not set | ||
593 | # CONFIG_DTLK is not set | ||
594 | # CONFIG_R3964 is not set | 437 | # CONFIG_R3964 is not set |
595 | # CONFIG_APPLICOM is not set | 438 | # CONFIG_APPLICOM is not set |
596 | # CONFIG_DRM is not set | 439 | # CONFIG_DRM is not set |
597 | # CONFIG_RAW_DRIVER is not set | 440 | # CONFIG_RAW_DRIVER is not set |
598 | |||
599 | # | ||
600 | # TPM devices | ||
601 | # | ||
602 | # CONFIG_TCG_TPM is not set | ||
603 | CONFIG_DEVPORT=y | 441 | CONFIG_DEVPORT=y |
604 | # CONFIG_I2C is not set | 442 | # CONFIG_I2C is not set |
605 | 443 | ||
@@ -608,11 +446,8 @@ CONFIG_DEVPORT=y | |||
608 | # | 446 | # |
609 | # CONFIG_SPI is not set | 447 | # CONFIG_SPI is not set |
610 | # CONFIG_SPI_MASTER is not set | 448 | # CONFIG_SPI_MASTER is not set |
611 | |||
612 | # | ||
613 | # Dallas's 1-wire bus | ||
614 | # | ||
615 | # CONFIG_W1 is not set | 449 | # CONFIG_W1 is not set |
450 | # CONFIG_POWER_SUPPLY is not set | ||
616 | # CONFIG_HWMON is not set | 451 | # CONFIG_HWMON is not set |
617 | 452 | ||
618 | # | 453 | # |
@@ -624,11 +459,8 @@ CONFIG_DEVPORT=y | |||
624 | # Multimedia devices | 459 | # Multimedia devices |
625 | # | 460 | # |
626 | # CONFIG_VIDEO_DEV is not set | 461 | # CONFIG_VIDEO_DEV is not set |
627 | 462 | # CONFIG_DVB_CORE is not set | |
628 | # | 463 | # CONFIG_DAB is not set |
629 | # Digital Video Broadcasting Devices | ||
630 | # | ||
631 | # CONFIG_DVB is not set | ||
632 | 464 | ||
633 | # | 465 | # |
634 | # Graphics support | 466 | # Graphics support |
@@ -640,56 +472,17 @@ CONFIG_DEVPORT=y | |||
640 | # | 472 | # |
641 | # CONFIG_DISPLAY_SUPPORT is not set | 473 | # CONFIG_DISPLAY_SUPPORT is not set |
642 | # CONFIG_VGASTATE is not set | 474 | # CONFIG_VGASTATE is not set |
475 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
643 | # CONFIG_FB is not set | 476 | # CONFIG_FB is not set |
644 | 477 | ||
645 | # | 478 | # |
646 | # Sound | 479 | # Sound |
647 | # | 480 | # |
648 | # CONFIG_SOUND is not set | 481 | # CONFIG_SOUND is not set |
649 | 482 | # CONFIG_USB_SUPPORT is not set | |
650 | # | ||
651 | # USB support | ||
652 | # | ||
653 | CONFIG_USB_ARCH_HAS_HCD=y | ||
654 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
655 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
656 | # CONFIG_USB is not set | ||
657 | |||
658 | # | ||
659 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
660 | # | ||
661 | |||
662 | # | ||
663 | # USB Gadget Support | ||
664 | # | ||
665 | # CONFIG_USB_GADGET is not set | ||
666 | # CONFIG_MMC is not set | 483 | # CONFIG_MMC is not set |
667 | |||
668 | # | ||
669 | # LED devices | ||
670 | # | ||
671 | # CONFIG_NEW_LEDS is not set | 484 | # CONFIG_NEW_LEDS is not set |
672 | |||
673 | # | ||
674 | # LED drivers | ||
675 | # | ||
676 | |||
677 | # | ||
678 | # LED Triggers | ||
679 | # | ||
680 | |||
681 | # | ||
682 | # InfiniBand support | ||
683 | # | ||
684 | # CONFIG_INFINIBAND is not set | 485 | # CONFIG_INFINIBAND is not set |
685 | |||
686 | # | ||
687 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
688 | # | ||
689 | |||
690 | # | ||
691 | # Real Time Clock | ||
692 | # | ||
693 | CONFIG_RTC_LIB=y | 486 | CONFIG_RTC_LIB=y |
694 | CONFIG_RTC_CLASS=y | 487 | CONFIG_RTC_CLASS=y |
695 | CONFIG_RTC_HCTOSYS=y | 488 | CONFIG_RTC_HCTOSYS=y |
@@ -706,19 +499,18 @@ CONFIG_RTC_INTF_DEV=y | |||
706 | # CONFIG_RTC_DRV_TEST is not set | 499 | # CONFIG_RTC_DRV_TEST is not set |
707 | 500 | ||
708 | # | 501 | # |
709 | # I2C RTC drivers | ||
710 | # | ||
711 | |||
712 | # | ||
713 | # SPI RTC drivers | 502 | # SPI RTC drivers |
714 | # | 503 | # |
715 | 504 | ||
716 | # | 505 | # |
717 | # Platform RTC drivers | 506 | # Platform RTC drivers |
718 | # | 507 | # |
508 | # CONFIG_RTC_DRV_CMOS is not set | ||
719 | # CONFIG_RTC_DRV_DS1553 is not set | 509 | # CONFIG_RTC_DRV_DS1553 is not set |
510 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
720 | CONFIG_RTC_DRV_DS1742=y | 511 | CONFIG_RTC_DRV_DS1742=y |
721 | # CONFIG_RTC_DRV_M48T86 is not set | 512 | # CONFIG_RTC_DRV_M48T86 is not set |
513 | # CONFIG_RTC_DRV_M48T59 is not set | ||
722 | # CONFIG_RTC_DRV_V3020 is not set | 514 | # CONFIG_RTC_DRV_V3020 is not set |
723 | 515 | ||
724 | # | 516 | # |
@@ -739,24 +531,19 @@ CONFIG_RTC_DRV_DS1742=y | |||
739 | # | 531 | # |
740 | 532 | ||
741 | # | 533 | # |
742 | # Auxiliary Display support | 534 | # Userspace I/O |
743 | # | ||
744 | |||
745 | # | ||
746 | # Virtualization | ||
747 | # | 535 | # |
536 | # CONFIG_UIO is not set | ||
748 | 537 | ||
749 | # | 538 | # |
750 | # File systems | 539 | # File systems |
751 | # | 540 | # |
752 | # CONFIG_EXT2_FS is not set | 541 | # CONFIG_EXT2_FS is not set |
753 | # CONFIG_EXT3_FS is not set | 542 | # CONFIG_EXT3_FS is not set |
754 | # CONFIG_EXT4DEV_FS is not set | ||
755 | # CONFIG_REISERFS_FS is not set | 543 | # CONFIG_REISERFS_FS is not set |
756 | # CONFIG_JFS_FS is not set | 544 | # CONFIG_JFS_FS is not set |
757 | CONFIG_FS_POSIX_ACL=y | 545 | CONFIG_FS_POSIX_ACL=y |
758 | # CONFIG_XFS_FS is not set | 546 | # CONFIG_XFS_FS is not set |
759 | # CONFIG_GFS2_FS is not set | ||
760 | # CONFIG_OCFS2_FS is not set | 547 | # CONFIG_OCFS2_FS is not set |
761 | # CONFIG_MINIX_FS is not set | 548 | # CONFIG_MINIX_FS is not set |
762 | # CONFIG_ROMFS_FS is not set | 549 | # CONFIG_ROMFS_FS is not set |
@@ -793,18 +580,11 @@ CONFIG_TMPFS=y | |||
793 | CONFIG_TMPFS_POSIX_ACL=y | 580 | CONFIG_TMPFS_POSIX_ACL=y |
794 | # CONFIG_HUGETLB_PAGE is not set | 581 | # CONFIG_HUGETLB_PAGE is not set |
795 | CONFIG_RAMFS=y | 582 | CONFIG_RAMFS=y |
796 | # CONFIG_CONFIGFS_FS is not set | ||
797 | 583 | ||
798 | # | 584 | # |
799 | # Miscellaneous filesystems | 585 | # Miscellaneous filesystems |
800 | # | 586 | # |
801 | # CONFIG_ADFS_FS is not set | ||
802 | # CONFIG_AFFS_FS is not set | ||
803 | # CONFIG_HFS_FS is not set | ||
804 | # CONFIG_HFSPLUS_FS is not set | 587 | # CONFIG_HFSPLUS_FS is not set |
805 | # CONFIG_BEFS_FS is not set | ||
806 | # CONFIG_BFS_FS is not set | ||
807 | # CONFIG_EFS_FS is not set | ||
808 | # CONFIG_CRAMFS is not set | 588 | # CONFIG_CRAMFS is not set |
809 | # CONFIG_VXFS_FS is not set | 589 | # CONFIG_VXFS_FS is not set |
810 | # CONFIG_HPFS_FS is not set | 590 | # CONFIG_HPFS_FS is not set |
@@ -818,7 +598,6 @@ CONFIG_RAMFS=y | |||
818 | CONFIG_NFS_FS=y | 598 | CONFIG_NFS_FS=y |
819 | CONFIG_NFS_V3=y | 599 | CONFIG_NFS_V3=y |
820 | # CONFIG_NFS_V3_ACL is not set | 600 | # CONFIG_NFS_V3_ACL is not set |
821 | # CONFIG_NFS_V4 is not set | ||
822 | # CONFIG_NFS_DIRECTIO is not set | 601 | # CONFIG_NFS_DIRECTIO is not set |
823 | # CONFIG_NFSD is not set | 602 | # CONFIG_NFSD is not set |
824 | CONFIG_ROOT_NFS=y | 603 | CONFIG_ROOT_NFS=y |
@@ -826,15 +605,10 @@ CONFIG_LOCKD=y | |||
826 | CONFIG_LOCKD_V4=y | 605 | CONFIG_LOCKD_V4=y |
827 | CONFIG_NFS_COMMON=y | 606 | CONFIG_NFS_COMMON=y |
828 | CONFIG_SUNRPC=y | 607 | CONFIG_SUNRPC=y |
829 | # CONFIG_SUNRPC_BIND34 is not set | ||
830 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
831 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
832 | # CONFIG_SMB_FS is not set | 608 | # CONFIG_SMB_FS is not set |
833 | # CONFIG_CIFS is not set | 609 | # CONFIG_CIFS is not set |
834 | # CONFIG_NCP_FS is not set | 610 | # CONFIG_NCP_FS is not set |
835 | # CONFIG_CODA_FS is not set | 611 | # CONFIG_CODA_FS is not set |
836 | # CONFIG_AFS_FS is not set | ||
837 | # CONFIG_9P_FS is not set | ||
838 | 612 | ||
839 | # | 613 | # |
840 | # Partition Types | 614 | # Partition Types |
@@ -848,16 +622,6 @@ CONFIG_MSDOS_PARTITION=y | |||
848 | # CONFIG_NLS is not set | 622 | # CONFIG_NLS is not set |
849 | 623 | ||
850 | # | 624 | # |
851 | # Distributed Lock Manager | ||
852 | # | ||
853 | # CONFIG_DLM is not set | ||
854 | |||
855 | # | ||
856 | # Profiling support | ||
857 | # | ||
858 | # CONFIG_PROFILING is not set | ||
859 | |||
860 | # | ||
861 | # Kernel hacking | 625 | # Kernel hacking |
862 | # | 626 | # |
863 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 627 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -877,10 +641,6 @@ CONFIG_SYS_SUPPORTS_KGDB=y | |||
877 | # | 641 | # |
878 | # CONFIG_KEYS is not set | 642 | # CONFIG_KEYS is not set |
879 | # CONFIG_SECURITY is not set | 643 | # CONFIG_SECURITY is not set |
880 | |||
881 | # | ||
882 | # Cryptographic options | ||
883 | # | ||
884 | # CONFIG_CRYPTO is not set | 644 | # CONFIG_CRYPTO is not set |
885 | 645 | ||
886 | # | 646 | # |
@@ -889,7 +649,9 @@ CONFIG_SYS_SUPPORTS_KGDB=y | |||
889 | CONFIG_BITREVERSE=y | 649 | CONFIG_BITREVERSE=y |
890 | # CONFIG_CRC_CCITT is not set | 650 | # CONFIG_CRC_CCITT is not set |
891 | # CONFIG_CRC16 is not set | 651 | # CONFIG_CRC16 is not set |
652 | # CONFIG_CRC_ITU_T is not set | ||
892 | CONFIG_CRC32=y | 653 | CONFIG_CRC32=y |
654 | # CONFIG_CRC7 is not set | ||
893 | # CONFIG_LIBCRC32C is not set | 655 | # CONFIG_LIBCRC32C is not set |
894 | CONFIG_HAS_IOMEM=y | 656 | CONFIG_HAS_IOMEM=y |
895 | CONFIG_HAS_IOPORT=y | 657 | CONFIG_HAS_IOPORT=y |
diff --git a/arch/mips/configs/rbhma4500_defconfig b/arch/mips/configs/rbhma4500_defconfig index 40453cd7c70e..d1b56cc0fd7c 100644 --- a/arch/mips/configs/rbhma4500_defconfig +++ b/arch/mips/configs/rbhma4500_defconfig | |||
@@ -1,48 +1,47 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.22-rc5 | 3 | # Linux kernel version: 2.6.23-rc1 |
4 | # Fri Jun 22 21:39:45 2007 | 4 | # Thu Aug 2 22:59:53 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | ||
12 | # CONFIG_LEMOTE_FULONG is not set | ||
13 | # CONFIG_MACH_ALCHEMY is not set | 11 | # CONFIG_MACH_ALCHEMY is not set |
14 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
15 | # CONFIG_MIPS_COBALT is not set | 13 | # CONFIG_MIPS_COBALT is not set |
16 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
17 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
18 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
19 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
20 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
21 | # CONFIG_WR_PPMC is not set | ||
22 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
21 | # CONFIG_MARKEINS is not set | ||
22 | # CONFIG_MACH_VR41XX is not set | ||
23 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
24 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
25 | # CONFIG_MACH_VR41XX is not set | ||
26 | # CONFIG_PMC_MSP is not set | 25 | # CONFIG_PMC_MSP is not set |
27 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
28 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
29 | # CONFIG_MARKEINS is not set | ||
30 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
31 | # CONFIG_SGI_IP27 is not set | 29 | # CONFIG_SGI_IP27 is not set |
32 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
33 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
34 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
35 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
36 | # CONFIG_SIBYTE_RHONE is not set | ||
37 | # CONFIG_SIBYTE_CARMEL is not set | ||
38 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
39 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
40 | # CONFIG_SIBYTE_CRHINE is not set | ||
41 | # CONFIG_SIBYTE_CRHONE is not set | ||
42 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
43 | # CONFIG_TOSHIBA_JMR3927 is not set | 41 | # CONFIG_TOSHIBA_JMR3927 is not set |
44 | # CONFIG_TOSHIBA_RBTX4927 is not set | 42 | # CONFIG_TOSHIBA_RBTX4927 is not set |
45 | CONFIG_TOSHIBA_RBTX4938=y | 43 | CONFIG_TOSHIBA_RBTX4938=y |
44 | # CONFIG_WR_PPMC is not set | ||
46 | 45 | ||
47 | # | 46 | # |
48 | # Multiplex Pin Select | 47 | # Multiplex Pin Select |
@@ -61,17 +60,16 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
61 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 60 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
62 | CONFIG_DMA_NONCOHERENT=y | 61 | CONFIG_DMA_NONCOHERENT=y |
63 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 62 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
64 | CONFIG_GENERIC_ISA_DMA=y | ||
65 | CONFIG_I8259=y | ||
66 | # CONFIG_NO_IOPORT is not set | 63 | # CONFIG_NO_IOPORT is not set |
67 | CONFIG_GENERIC_GPIO=y | 64 | CONFIG_GENERIC_GPIO=y |
68 | # CONFIG_CPU_BIG_ENDIAN is not set | 65 | # CONFIG_CPU_BIG_ENDIAN is not set |
69 | CONFIG_CPU_LITTLE_ENDIAN=y | 66 | CONFIG_CPU_LITTLE_ENDIAN=y |
70 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | 67 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y |
71 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 68 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
69 | CONFIG_IRQ_CPU=y | ||
70 | CONFIG_IRQ_TXX9=y | ||
72 | CONFIG_SWAP_IO_SPACE=y | 71 | CONFIG_SWAP_IO_SPACE=y |
73 | CONFIG_MIPS_L1_CACHE_SHIFT=5 | 72 | CONFIG_MIPS_L1_CACHE_SHIFT=5 |
74 | CONFIG_HAVE_STD_PC_SERIAL_PORT=y | ||
75 | 73 | ||
76 | # | 74 | # |
77 | # CPU selection | 75 | # CPU selection |
@@ -114,22 +112,18 @@ CONFIG_CPU_HAS_PREFETCH=y | |||
114 | CONFIG_MIPS_MT_DISABLED=y | 112 | CONFIG_MIPS_MT_DISABLED=y |
115 | # CONFIG_MIPS_MT_SMP is not set | 113 | # CONFIG_MIPS_MT_SMP is not set |
116 | # CONFIG_MIPS_MT_SMTC is not set | 114 | # CONFIG_MIPS_MT_SMTC is not set |
117 | # CONFIG_MIPS_VPE_LOADER is not set | ||
118 | CONFIG_CPU_HAS_LLSC=y | 115 | CONFIG_CPU_HAS_LLSC=y |
119 | CONFIG_CPU_HAS_SYNC=y | 116 | CONFIG_CPU_HAS_SYNC=y |
120 | CONFIG_GENERIC_HARDIRQS=y | 117 | CONFIG_GENERIC_HARDIRQS=y |
121 | CONFIG_GENERIC_IRQ_PROBE=y | 118 | CONFIG_GENERIC_IRQ_PROBE=y |
122 | CONFIG_ARCH_FLATMEM_ENABLE=y | 119 | CONFIG_ARCH_FLATMEM_ENABLE=y |
123 | CONFIG_SELECT_MEMORY_MODEL=y | ||
124 | CONFIG_FLATMEM_MANUAL=y | ||
125 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
126 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
127 | CONFIG_FLATMEM=y | 120 | CONFIG_FLATMEM=y |
128 | CONFIG_FLAT_NODE_MEM_MAP=y | 121 | CONFIG_FLAT_NODE_MEM_MAP=y |
129 | # CONFIG_SPARSEMEM_STATIC is not set | 122 | # CONFIG_SPARSEMEM_STATIC is not set |
130 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 123 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
131 | # CONFIG_RESOURCES_64BIT is not set | 124 | # CONFIG_RESOURCES_64BIT is not set |
132 | CONFIG_ZONE_DMA_FLAG=1 | 125 | CONFIG_ZONE_DMA_FLAG=0 |
126 | CONFIG_VIRT_TO_BUS=y | ||
133 | # CONFIG_HZ_48 is not set | 127 | # CONFIG_HZ_48 is not set |
134 | # CONFIG_HZ_100 is not set | 128 | # CONFIG_HZ_100 is not set |
135 | # CONFIG_HZ_128 is not set | 129 | # CONFIG_HZ_128 is not set |
@@ -142,31 +136,24 @@ CONFIG_HZ=250 | |||
142 | CONFIG_PREEMPT_NONE=y | 136 | CONFIG_PREEMPT_NONE=y |
143 | # CONFIG_PREEMPT_VOLUNTARY is not set | 137 | # CONFIG_PREEMPT_VOLUNTARY is not set |
144 | # CONFIG_PREEMPT is not set | 138 | # CONFIG_PREEMPT is not set |
145 | # CONFIG_KEXEC is not set | 139 | # CONFIG_SECCOMP is not set |
146 | CONFIG_LOCKDEP_SUPPORT=y | 140 | CONFIG_LOCKDEP_SUPPORT=y |
147 | CONFIG_STACKTRACE_SUPPORT=y | 141 | CONFIG_STACKTRACE_SUPPORT=y |
148 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 142 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
149 | 143 | ||
150 | # | 144 | # |
151 | # Code maturity level options | 145 | # General setup |
152 | # | 146 | # |
153 | CONFIG_EXPERIMENTAL=y | 147 | # CONFIG_EXPERIMENTAL is not set |
154 | CONFIG_BROKEN_ON_SMP=y | 148 | CONFIG_BROKEN_ON_SMP=y |
155 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 149 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
156 | |||
157 | # | ||
158 | # General setup | ||
159 | # | ||
160 | CONFIG_LOCALVERSION="" | 150 | CONFIG_LOCALVERSION="" |
161 | CONFIG_LOCALVERSION_AUTO=y | 151 | CONFIG_LOCALVERSION_AUTO=y |
162 | CONFIG_SWAP=y | 152 | CONFIG_SWAP=y |
163 | CONFIG_SYSVIPC=y | 153 | CONFIG_SYSVIPC=y |
164 | # CONFIG_IPC_NS is not set | ||
165 | CONFIG_SYSVIPC_SYSCTL=y | 154 | CONFIG_SYSVIPC_SYSCTL=y |
166 | # CONFIG_POSIX_MQUEUE is not set | ||
167 | # CONFIG_BSD_PROCESS_ACCT is not set | 155 | # CONFIG_BSD_PROCESS_ACCT is not set |
168 | # CONFIG_TASKSTATS is not set | 156 | # CONFIG_TASKSTATS is not set |
169 | # CONFIG_UTS_NS is not set | ||
170 | # CONFIG_AUDIT is not set | 157 | # CONFIG_AUDIT is not set |
171 | CONFIG_IKCONFIG=y | 158 | CONFIG_IKCONFIG=y |
172 | CONFIG_IKCONFIG_PROC=y | 159 | CONFIG_IKCONFIG_PROC=y |
@@ -175,7 +162,6 @@ CONFIG_SYSFS_DEPRECATED=y | |||
175 | # CONFIG_RELAY is not set | 162 | # CONFIG_RELAY is not set |
176 | CONFIG_BLK_DEV_INITRD=y | 163 | CONFIG_BLK_DEV_INITRD=y |
177 | CONFIG_INITRAMFS_SOURCE="" | 164 | CONFIG_INITRAMFS_SOURCE="" |
178 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
179 | CONFIG_SYSCTL=y | 165 | CONFIG_SYSCTL=y |
180 | CONFIG_EMBEDDED=y | 166 | CONFIG_EMBEDDED=y |
181 | CONFIG_SYSCTL_SYSCALL=y | 167 | CONFIG_SYSCTL_SYSCALL=y |
@@ -199,19 +185,11 @@ CONFIG_SLAB=y | |||
199 | # CONFIG_SLOB is not set | 185 | # CONFIG_SLOB is not set |
200 | # CONFIG_TINY_SHMEM is not set | 186 | # CONFIG_TINY_SHMEM is not set |
201 | CONFIG_BASE_SMALL=0 | 187 | CONFIG_BASE_SMALL=0 |
202 | |||
203 | # | ||
204 | # Loadable module support | ||
205 | # | ||
206 | CONFIG_MODULES=y | 188 | CONFIG_MODULES=y |
207 | # CONFIG_MODULE_UNLOAD is not set | 189 | # CONFIG_MODULE_UNLOAD is not set |
208 | # CONFIG_MODVERSIONS is not set | 190 | # CONFIG_MODVERSIONS is not set |
209 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 191 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
210 | CONFIG_KMOD=y | 192 | CONFIG_KMOD=y |
211 | |||
212 | # | ||
213 | # Block layer | ||
214 | # | ||
215 | CONFIG_BLOCK=y | 193 | CONFIG_BLOCK=y |
216 | # CONFIG_LBD is not set | 194 | # CONFIG_LBD is not set |
217 | # CONFIG_BLK_DEV_IO_TRACE is not set | 195 | # CONFIG_BLK_DEV_IO_TRACE is not set |
@@ -277,7 +255,6 @@ CONFIG_IP_PNP=y | |||
277 | # CONFIG_NET_IPIP is not set | 255 | # CONFIG_NET_IPIP is not set |
278 | # CONFIG_NET_IPGRE is not set | 256 | # CONFIG_NET_IPGRE is not set |
279 | # CONFIG_IP_MROUTE is not set | 257 | # CONFIG_IP_MROUTE is not set |
280 | # CONFIG_ARPD is not set | ||
281 | # CONFIG_SYN_COOKIES is not set | 258 | # CONFIG_SYN_COOKIES is not set |
282 | # CONFIG_INET_AH is not set | 259 | # CONFIG_INET_AH is not set |
283 | # CONFIG_INET_ESP is not set | 260 | # CONFIG_INET_ESP is not set |
@@ -292,26 +269,17 @@ CONFIG_INET_TCP_DIAG=y | |||
292 | # CONFIG_TCP_CONG_ADVANCED is not set | 269 | # CONFIG_TCP_CONG_ADVANCED is not set |
293 | CONFIG_TCP_CONG_CUBIC=y | 270 | CONFIG_TCP_CONG_CUBIC=y |
294 | CONFIG_DEFAULT_TCP_CONG="cubic" | 271 | CONFIG_DEFAULT_TCP_CONG="cubic" |
295 | # CONFIG_TCP_MD5SIG is not set | ||
296 | # CONFIG_IPV6 is not set | 272 | # CONFIG_IPV6 is not set |
297 | # CONFIG_INET6_XFRM_TUNNEL is not set | 273 | # CONFIG_INET6_XFRM_TUNNEL is not set |
298 | # CONFIG_INET6_TUNNEL is not set | 274 | # CONFIG_INET6_TUNNEL is not set |
299 | # CONFIG_NETWORK_SECMARK is not set | 275 | # CONFIG_NETWORK_SECMARK is not set |
300 | # CONFIG_NETFILTER is not set | 276 | # CONFIG_NETFILTER is not set |
301 | # CONFIG_IP_DCCP is not set | ||
302 | # CONFIG_IP_SCTP is not set | ||
303 | # CONFIG_TIPC is not set | ||
304 | # CONFIG_ATM is not set | ||
305 | # CONFIG_BRIDGE is not set | 277 | # CONFIG_BRIDGE is not set |
306 | # CONFIG_VLAN_8021Q is not set | 278 | # CONFIG_VLAN_8021Q is not set |
307 | # CONFIG_DECNET is not set | 279 | # CONFIG_DECNET is not set |
308 | # CONFIG_LLC2 is not set | 280 | # CONFIG_LLC2 is not set |
309 | # CONFIG_IPX is not set | 281 | # CONFIG_IPX is not set |
310 | # CONFIG_ATALK is not set | 282 | # CONFIG_ATALK is not set |
311 | # CONFIG_X25 is not set | ||
312 | # CONFIG_LAPB is not set | ||
313 | # CONFIG_ECONET is not set | ||
314 | # CONFIG_WAN_ROUTER is not set | ||
315 | 283 | ||
316 | # | 284 | # |
317 | # QoS and/or fair queueing | 285 | # QoS and/or fair queueing |
@@ -325,14 +293,12 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
325 | # CONFIG_HAMRADIO is not set | 293 | # CONFIG_HAMRADIO is not set |
326 | # CONFIG_IRDA is not set | 294 | # CONFIG_IRDA is not set |
327 | # CONFIG_BT is not set | 295 | # CONFIG_BT is not set |
328 | # CONFIG_AF_RXRPC is not set | ||
329 | 296 | ||
330 | # | 297 | # |
331 | # Wireless | 298 | # Wireless |
332 | # | 299 | # |
333 | # CONFIG_CFG80211 is not set | 300 | # CONFIG_CFG80211 is not set |
334 | # CONFIG_WIRELESS_EXT is not set | 301 | # CONFIG_WIRELESS_EXT is not set |
335 | # CONFIG_MAC80211 is not set | ||
336 | # CONFIG_IEEE80211 is not set | 302 | # CONFIG_IEEE80211 is not set |
337 | # CONFIG_RFKILL is not set | 303 | # CONFIG_RFKILL is not set |
338 | 304 | ||
@@ -346,30 +312,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
346 | CONFIG_STANDALONE=y | 312 | CONFIG_STANDALONE=y |
347 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 313 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
348 | # CONFIG_SYS_HYPERVISOR is not set | 314 | # CONFIG_SYS_HYPERVISOR is not set |
349 | |||
350 | # | ||
351 | # Connector - unified userspace <-> kernelspace linker | ||
352 | # | ||
353 | # CONFIG_CONNECTOR is not set | 315 | # CONFIG_CONNECTOR is not set |
354 | # CONFIG_MTD is not set | 316 | # CONFIG_MTD is not set |
355 | |||
356 | # | ||
357 | # Parallel port support | ||
358 | # | ||
359 | # CONFIG_PARPORT is not set | 317 | # CONFIG_PARPORT is not set |
360 | 318 | CONFIG_BLK_DEV=y | |
361 | # | ||
362 | # Plug and Play support | ||
363 | # | ||
364 | # CONFIG_PNPACPI is not set | ||
365 | |||
366 | # | ||
367 | # Block devices | ||
368 | # | ||
369 | # CONFIG_BLK_CPQ_DA is not set | 319 | # CONFIG_BLK_CPQ_DA is not set |
370 | # CONFIG_BLK_CPQ_CISS_DA is not set | 320 | # CONFIG_BLK_CPQ_CISS_DA is not set |
371 | # CONFIG_BLK_DEV_DAC960 is not set | 321 | # CONFIG_BLK_DEV_DAC960 is not set |
372 | # CONFIG_BLK_DEV_UMEM is not set | ||
373 | # CONFIG_BLK_DEV_COW_COMMON is not set | 322 | # CONFIG_BLK_DEV_COW_COMMON is not set |
374 | CONFIG_BLK_DEV_LOOP=y | 323 | CONFIG_BLK_DEV_LOOP=y |
375 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 324 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
@@ -381,14 +330,7 @@ CONFIG_BLK_DEV_RAM_SIZE=8192 | |||
381 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 330 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
382 | # CONFIG_CDROM_PKTCDVD is not set | 331 | # CONFIG_CDROM_PKTCDVD is not set |
383 | # CONFIG_ATA_OVER_ETH is not set | 332 | # CONFIG_ATA_OVER_ETH is not set |
384 | 333 | # CONFIG_MISC_DEVICES is not set | |
385 | # | ||
386 | # Misc devices | ||
387 | # | ||
388 | # CONFIG_PHANTOM is not set | ||
389 | # CONFIG_SGI_IOC4 is not set | ||
390 | # CONFIG_TIFM_CORE is not set | ||
391 | # CONFIG_BLINK is not set | ||
392 | # CONFIG_IDE is not set | 334 | # CONFIG_IDE is not set |
393 | 335 | ||
394 | # | 336 | # |
@@ -396,12 +338,9 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | |||
396 | # | 338 | # |
397 | # CONFIG_RAID_ATTRS is not set | 339 | # CONFIG_RAID_ATTRS is not set |
398 | # CONFIG_SCSI is not set | 340 | # CONFIG_SCSI is not set |
341 | # CONFIG_SCSI_DMA is not set | ||
399 | # CONFIG_SCSI_NETLINK is not set | 342 | # CONFIG_SCSI_NETLINK is not set |
400 | # CONFIG_ATA is not set | 343 | # CONFIG_ATA is not set |
401 | |||
402 | # | ||
403 | # Multi-device support (RAID and LVM) | ||
404 | # | ||
405 | # CONFIG_MD is not set | 344 | # CONFIG_MD is not set |
406 | 345 | ||
407 | # | 346 | # |
@@ -412,39 +351,28 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | |||
412 | # | 351 | # |
413 | # IEEE 1394 (FireWire) support | 352 | # IEEE 1394 (FireWire) support |
414 | # | 353 | # |
415 | # CONFIG_FIREWIRE is not set | ||
416 | # CONFIG_IEEE1394 is not set | ||
417 | 354 | ||
418 | # | 355 | # |
419 | # I2O device support | 356 | # An alternative FireWire stack is available with EXPERIMENTAL=y |
420 | # | 357 | # |
358 | # CONFIG_IEEE1394 is not set | ||
421 | # CONFIG_I2O is not set | 359 | # CONFIG_I2O is not set |
422 | |||
423 | # | ||
424 | # Network device support | ||
425 | # | ||
426 | CONFIG_NETDEVICES=y | 360 | CONFIG_NETDEVICES=y |
361 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
427 | # CONFIG_DUMMY is not set | 362 | # CONFIG_DUMMY is not set |
428 | # CONFIG_BONDING is not set | 363 | # CONFIG_BONDING is not set |
429 | # CONFIG_EQUALIZER is not set | 364 | # CONFIG_EQUALIZER is not set |
430 | # CONFIG_TUN is not set | 365 | # CONFIG_TUN is not set |
431 | # CONFIG_ARCNET is not set | 366 | # CONFIG_ARCNET is not set |
432 | # CONFIG_PHYLIB is not set | 367 | # CONFIG_PHYLIB is not set |
433 | |||
434 | # | ||
435 | # Ethernet (10 or 100Mbit) | ||
436 | # | ||
437 | CONFIG_NET_ETHERNET=y | 368 | CONFIG_NET_ETHERNET=y |
438 | CONFIG_MII=y | 369 | CONFIG_MII=y |
370 | # CONFIG_AX88796 is not set | ||
439 | # CONFIG_HAPPYMEAL is not set | 371 | # CONFIG_HAPPYMEAL is not set |
440 | # CONFIG_SUNGEM is not set | 372 | # CONFIG_SUNGEM is not set |
441 | # CONFIG_CASSINI is not set | 373 | # CONFIG_CASSINI is not set |
442 | # CONFIG_NET_VENDOR_3COM is not set | 374 | # CONFIG_NET_VENDOR_3COM is not set |
443 | # CONFIG_DM9000 is not set | 375 | # CONFIG_DM9000 is not set |
444 | |||
445 | # | ||
446 | # Tulip family network device support | ||
447 | # | ||
448 | # CONFIG_NET_TULIP is not set | 376 | # CONFIG_NET_TULIP is not set |
449 | # CONFIG_HP100 is not set | 377 | # CONFIG_HP100 is not set |
450 | CONFIG_NE2000=y | 378 | CONFIG_NE2000=y |
@@ -461,14 +389,12 @@ CONFIG_TC35815=y | |||
461 | # CONFIG_FEALNX is not set | 389 | # CONFIG_FEALNX is not set |
462 | # CONFIG_NATSEMI is not set | 390 | # CONFIG_NATSEMI is not set |
463 | # CONFIG_NE2K_PCI is not set | 391 | # CONFIG_NE2K_PCI is not set |
464 | # CONFIG_8139CP is not set | ||
465 | # CONFIG_8139TOO is not set | 392 | # CONFIG_8139TOO is not set |
466 | # CONFIG_SIS900 is not set | 393 | # CONFIG_SIS900 is not set |
467 | # CONFIG_EPIC100 is not set | 394 | # CONFIG_EPIC100 is not set |
468 | # CONFIG_SUNDANCE is not set | 395 | # CONFIG_SUNDANCE is not set |
469 | # CONFIG_TLAN is not set | 396 | # CONFIG_TLAN is not set |
470 | # CONFIG_VIA_RHINE is not set | 397 | # CONFIG_VIA_RHINE is not set |
471 | # CONFIG_SC92031 is not set | ||
472 | # CONFIG_NETDEV_1000 is not set | 398 | # CONFIG_NETDEV_1000 is not set |
473 | # CONFIG_NETDEV_10000 is not set | 399 | # CONFIG_NETDEV_10000 is not set |
474 | # CONFIG_TR is not set | 400 | # CONFIG_TR is not set |
@@ -480,22 +406,11 @@ CONFIG_TC35815=y | |||
480 | # CONFIG_WLAN_80211 is not set | 406 | # CONFIG_WLAN_80211 is not set |
481 | # CONFIG_WAN is not set | 407 | # CONFIG_WAN is not set |
482 | # CONFIG_FDDI is not set | 408 | # CONFIG_FDDI is not set |
483 | # CONFIG_HIPPI is not set | ||
484 | # CONFIG_PPP is not set | 409 | # CONFIG_PPP is not set |
485 | # CONFIG_SLIP is not set | 410 | # CONFIG_SLIP is not set |
486 | # CONFIG_SHAPER is not set | ||
487 | # CONFIG_NETCONSOLE is not set | ||
488 | # CONFIG_NETPOLL is not set | 411 | # CONFIG_NETPOLL is not set |
489 | # CONFIG_NET_POLL_CONTROLLER is not set | 412 | # CONFIG_NET_POLL_CONTROLLER is not set |
490 | |||
491 | # | ||
492 | # ISDN subsystem | ||
493 | # | ||
494 | # CONFIG_ISDN is not set | 413 | # CONFIG_ISDN is not set |
495 | |||
496 | # | ||
497 | # Telephony Support | ||
498 | # | ||
499 | # CONFIG_PHONE is not set | 414 | # CONFIG_PHONE is not set |
500 | 415 | ||
501 | # | 416 | # |
@@ -534,24 +449,14 @@ CONFIG_SERIAL_TXX9_STDSERIAL=y | |||
534 | CONFIG_UNIX98_PTYS=y | 449 | CONFIG_UNIX98_PTYS=y |
535 | CONFIG_LEGACY_PTYS=y | 450 | CONFIG_LEGACY_PTYS=y |
536 | CONFIG_LEGACY_PTY_COUNT=256 | 451 | CONFIG_LEGACY_PTY_COUNT=256 |
537 | |||
538 | # | ||
539 | # IPMI | ||
540 | # | ||
541 | # CONFIG_IPMI_HANDLER is not set | 452 | # CONFIG_IPMI_HANDLER is not set |
542 | # CONFIG_WATCHDOG is not set | 453 | # CONFIG_WATCHDOG is not set |
543 | # CONFIG_HW_RANDOM is not set | 454 | # CONFIG_HW_RANDOM is not set |
544 | # CONFIG_RTC is not set | 455 | # CONFIG_RTC is not set |
545 | # CONFIG_GEN_RTC is not set | ||
546 | # CONFIG_R3964 is not set | 456 | # CONFIG_R3964 is not set |
547 | # CONFIG_APPLICOM is not set | 457 | # CONFIG_APPLICOM is not set |
548 | # CONFIG_DRM is not set | 458 | # CONFIG_DRM is not set |
549 | # CONFIG_RAW_DRIVER is not set | 459 | # CONFIG_RAW_DRIVER is not set |
550 | |||
551 | # | ||
552 | # TPM devices | ||
553 | # | ||
554 | # CONFIG_TCG_TPM is not set | ||
555 | CONFIG_DEVPORT=y | 460 | CONFIG_DEVPORT=y |
556 | # CONFIG_I2C is not set | 461 | # CONFIG_I2C is not set |
557 | 462 | ||
@@ -564,19 +469,15 @@ CONFIG_SPI_MASTER=y | |||
564 | # | 469 | # |
565 | # SPI Master Controller Drivers | 470 | # SPI Master Controller Drivers |
566 | # | 471 | # |
567 | # CONFIG_SPI_BITBANG is not set | ||
568 | CONFIG_SPI_TXX9=y | 472 | CONFIG_SPI_TXX9=y |
569 | 473 | ||
570 | # | 474 | # |
571 | # SPI Protocol Masters | 475 | # SPI Protocol Masters |
572 | # | 476 | # |
573 | CONFIG_SPI_AT25=y | 477 | CONFIG_SPI_AT25=y |
574 | # CONFIG_SPI_SPIDEV is not set | 478 | # CONFIG_SPI_TLE62X0 is not set |
575 | |||
576 | # | ||
577 | # Dallas's 1-wire bus | ||
578 | # | ||
579 | # CONFIG_W1 is not set | 479 | # CONFIG_W1 is not set |
480 | # CONFIG_POWER_SUPPLY is not set | ||
580 | # CONFIG_HWMON is not set | 481 | # CONFIG_HWMON is not set |
581 | 482 | ||
582 | # | 483 | # |
@@ -601,56 +502,17 @@ CONFIG_SPI_AT25=y | |||
601 | # | 502 | # |
602 | # CONFIG_DISPLAY_SUPPORT is not set | 503 | # CONFIG_DISPLAY_SUPPORT is not set |
603 | # CONFIG_VGASTATE is not set | 504 | # CONFIG_VGASTATE is not set |
505 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
604 | # CONFIG_FB is not set | 506 | # CONFIG_FB is not set |
605 | 507 | ||
606 | # | 508 | # |
607 | # Sound | 509 | # Sound |
608 | # | 510 | # |
609 | # CONFIG_SOUND is not set | 511 | # CONFIG_SOUND is not set |
610 | 512 | # CONFIG_USB_SUPPORT is not set | |
611 | # | ||
612 | # USB support | ||
613 | # | ||
614 | CONFIG_USB_ARCH_HAS_HCD=y | ||
615 | CONFIG_USB_ARCH_HAS_OHCI=y | ||
616 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
617 | # CONFIG_USB is not set | ||
618 | |||
619 | # | ||
620 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
621 | # | ||
622 | |||
623 | # | ||
624 | # USB Gadget Support | ||
625 | # | ||
626 | # CONFIG_USB_GADGET is not set | ||
627 | # CONFIG_MMC is not set | 513 | # CONFIG_MMC is not set |
628 | |||
629 | # | ||
630 | # LED devices | ||
631 | # | ||
632 | # CONFIG_NEW_LEDS is not set | 514 | # CONFIG_NEW_LEDS is not set |
633 | |||
634 | # | ||
635 | # LED drivers | ||
636 | # | ||
637 | |||
638 | # | ||
639 | # LED Triggers | ||
640 | # | ||
641 | |||
642 | # | ||
643 | # InfiniBand support | ||
644 | # | ||
645 | # CONFIG_INFINIBAND is not set | 515 | # CONFIG_INFINIBAND is not set |
646 | |||
647 | # | ||
648 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
649 | # | ||
650 | |||
651 | # | ||
652 | # Real Time Clock | ||
653 | # | ||
654 | CONFIG_RTC_LIB=y | 516 | CONFIG_RTC_LIB=y |
655 | CONFIG_RTC_CLASS=y | 517 | CONFIG_RTC_CLASS=y |
656 | CONFIG_RTC_HCTOSYS=y | 518 | CONFIG_RTC_HCTOSYS=y |
@@ -667,10 +529,6 @@ CONFIG_RTC_INTF_DEV_UIE_EMUL=y | |||
667 | # CONFIG_RTC_DRV_TEST is not set | 529 | # CONFIG_RTC_DRV_TEST is not set |
668 | 530 | ||
669 | # | 531 | # |
670 | # I2C RTC drivers | ||
671 | # | ||
672 | |||
673 | # | ||
674 | # SPI RTC drivers | 532 | # SPI RTC drivers |
675 | # | 533 | # |
676 | CONFIG_RTC_DRV_RS5C348=y | 534 | CONFIG_RTC_DRV_RS5C348=y |
@@ -681,8 +539,10 @@ CONFIG_RTC_DRV_RS5C348=y | |||
681 | # | 539 | # |
682 | # CONFIG_RTC_DRV_CMOS is not set | 540 | # CONFIG_RTC_DRV_CMOS is not set |
683 | # CONFIG_RTC_DRV_DS1553 is not set | 541 | # CONFIG_RTC_DRV_DS1553 is not set |
542 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
684 | # CONFIG_RTC_DRV_DS1742 is not set | 543 | # CONFIG_RTC_DRV_DS1742 is not set |
685 | # CONFIG_RTC_DRV_M48T86 is not set | 544 | # CONFIG_RTC_DRV_M48T86 is not set |
545 | # CONFIG_RTC_DRV_M48T59 is not set | ||
686 | # CONFIG_RTC_DRV_V3020 is not set | 546 | # CONFIG_RTC_DRV_V3020 is not set |
687 | 547 | ||
688 | # | 548 | # |
@@ -703,16 +563,19 @@ CONFIG_RTC_DRV_RS5C348=y | |||
703 | # | 563 | # |
704 | 564 | ||
705 | # | 565 | # |
566 | # Userspace I/O | ||
567 | # | ||
568 | # CONFIG_UIO is not set | ||
569 | |||
570 | # | ||
706 | # File systems | 571 | # File systems |
707 | # | 572 | # |
708 | # CONFIG_EXT2_FS is not set | 573 | # CONFIG_EXT2_FS is not set |
709 | # CONFIG_EXT3_FS is not set | 574 | # CONFIG_EXT3_FS is not set |
710 | # CONFIG_EXT4DEV_FS is not set | ||
711 | # CONFIG_REISERFS_FS is not set | 575 | # CONFIG_REISERFS_FS is not set |
712 | # CONFIG_JFS_FS is not set | 576 | # CONFIG_JFS_FS is not set |
713 | CONFIG_FS_POSIX_ACL=y | 577 | CONFIG_FS_POSIX_ACL=y |
714 | # CONFIG_XFS_FS is not set | 578 | # CONFIG_XFS_FS is not set |
715 | # CONFIG_GFS2_FS is not set | ||
716 | # CONFIG_OCFS2_FS is not set | 579 | # CONFIG_OCFS2_FS is not set |
717 | # CONFIG_MINIX_FS is not set | 580 | # CONFIG_MINIX_FS is not set |
718 | # CONFIG_ROMFS_FS is not set | 581 | # CONFIG_ROMFS_FS is not set |
@@ -749,18 +612,11 @@ CONFIG_TMPFS=y | |||
749 | CONFIG_TMPFS_POSIX_ACL=y | 612 | CONFIG_TMPFS_POSIX_ACL=y |
750 | # CONFIG_HUGETLB_PAGE is not set | 613 | # CONFIG_HUGETLB_PAGE is not set |
751 | CONFIG_RAMFS=y | 614 | CONFIG_RAMFS=y |
752 | # CONFIG_CONFIGFS_FS is not set | ||
753 | 615 | ||
754 | # | 616 | # |
755 | # Miscellaneous filesystems | 617 | # Miscellaneous filesystems |
756 | # | 618 | # |
757 | # CONFIG_ADFS_FS is not set | ||
758 | # CONFIG_AFFS_FS is not set | ||
759 | # CONFIG_HFS_FS is not set | ||
760 | # CONFIG_HFSPLUS_FS is not set | 619 | # CONFIG_HFSPLUS_FS is not set |
761 | # CONFIG_BEFS_FS is not set | ||
762 | # CONFIG_BFS_FS is not set | ||
763 | # CONFIG_EFS_FS is not set | ||
764 | # CONFIG_CRAMFS is not set | 620 | # CONFIG_CRAMFS is not set |
765 | # CONFIG_VXFS_FS is not set | 621 | # CONFIG_VXFS_FS is not set |
766 | # CONFIG_HPFS_FS is not set | 622 | # CONFIG_HPFS_FS is not set |
@@ -774,7 +630,6 @@ CONFIG_RAMFS=y | |||
774 | CONFIG_NFS_FS=y | 630 | CONFIG_NFS_FS=y |
775 | CONFIG_NFS_V3=y | 631 | CONFIG_NFS_V3=y |
776 | # CONFIG_NFS_V3_ACL is not set | 632 | # CONFIG_NFS_V3_ACL is not set |
777 | # CONFIG_NFS_V4 is not set | ||
778 | # CONFIG_NFS_DIRECTIO is not set | 633 | # CONFIG_NFS_DIRECTIO is not set |
779 | # CONFIG_NFSD is not set | 634 | # CONFIG_NFSD is not set |
780 | CONFIG_ROOT_NFS=y | 635 | CONFIG_ROOT_NFS=y |
@@ -782,15 +637,10 @@ CONFIG_LOCKD=y | |||
782 | CONFIG_LOCKD_V4=y | 637 | CONFIG_LOCKD_V4=y |
783 | CONFIG_NFS_COMMON=y | 638 | CONFIG_NFS_COMMON=y |
784 | CONFIG_SUNRPC=y | 639 | CONFIG_SUNRPC=y |
785 | # CONFIG_SUNRPC_BIND34 is not set | ||
786 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
787 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
788 | # CONFIG_SMB_FS is not set | 640 | # CONFIG_SMB_FS is not set |
789 | # CONFIG_CIFS is not set | 641 | # CONFIG_CIFS is not set |
790 | # CONFIG_NCP_FS is not set | 642 | # CONFIG_NCP_FS is not set |
791 | # CONFIG_CODA_FS is not set | 643 | # CONFIG_CODA_FS is not set |
792 | # CONFIG_AFS_FS is not set | ||
793 | # CONFIG_9P_FS is not set | ||
794 | 644 | ||
795 | # | 645 | # |
796 | # Partition Types | 646 | # Partition Types |
@@ -804,16 +654,6 @@ CONFIG_MSDOS_PARTITION=y | |||
804 | # CONFIG_NLS is not set | 654 | # CONFIG_NLS is not set |
805 | 655 | ||
806 | # | 656 | # |
807 | # Distributed Lock Manager | ||
808 | # | ||
809 | # CONFIG_DLM is not set | ||
810 | |||
811 | # | ||
812 | # Profiling support | ||
813 | # | ||
814 | # CONFIG_PROFILING is not set | ||
815 | |||
816 | # | ||
817 | # Kernel hacking | 657 | # Kernel hacking |
818 | # | 658 | # |
819 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 659 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -833,10 +673,6 @@ CONFIG_SYS_SUPPORTS_KGDB=y | |||
833 | # | 673 | # |
834 | # CONFIG_KEYS is not set | 674 | # CONFIG_KEYS is not set |
835 | # CONFIG_SECURITY is not set | 675 | # CONFIG_SECURITY is not set |
836 | |||
837 | # | ||
838 | # Cryptographic options | ||
839 | # | ||
840 | # CONFIG_CRYPTO is not set | 676 | # CONFIG_CRYPTO is not set |
841 | 677 | ||
842 | # | 678 | # |
@@ -847,6 +683,7 @@ CONFIG_BITREVERSE=y | |||
847 | # CONFIG_CRC16 is not set | 683 | # CONFIG_CRC16 is not set |
848 | # CONFIG_CRC_ITU_T is not set | 684 | # CONFIG_CRC_ITU_T is not set |
849 | CONFIG_CRC32=y | 685 | CONFIG_CRC32=y |
686 | # CONFIG_CRC7 is not set | ||
850 | # CONFIG_LIBCRC32C is not set | 687 | # CONFIG_LIBCRC32C is not set |
851 | CONFIG_HAS_IOMEM=y | 688 | CONFIG_HAS_IOMEM=y |
852 | CONFIG_HAS_IOPORT=y | 689 | CONFIG_HAS_IOPORT=y |
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig index e72fdf36b3fe..93f9e8331ad7 100644 --- a/arch/mips/configs/sb1250-swarm_defconfig +++ b/arch/mips/configs/sb1250-swarm_defconfig | |||
@@ -655,8 +655,8 @@ CONFIG_MOXA_SMARTIO_NEW=m | |||
655 | # CONFIG_SX is not set | 655 | # CONFIG_SX is not set |
656 | # CONFIG_RIO is not set | 656 | # CONFIG_RIO is not set |
657 | # CONFIG_STALDRV is not set | 657 | # CONFIG_STALDRV is not set |
658 | CONFIG_SIBYTE_SB1250_DUART=y | 658 | CONFIG_SERIAL_SB1250_DUART=y |
659 | CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y | 659 | CONFIG_SERIAL_SB1250_DUART_CONSOLE=y |
660 | 660 | ||
661 | # | 661 | # |
662 | # Serial drivers | 662 | # Serial drivers |
diff --git a/arch/mips/configs/tb0219_defconfig b/arch/mips/configs/tb0219_defconfig index e9f2cef4c716..326aa7aa40ea 100644 --- a/arch/mips/configs/tb0219_defconfig +++ b/arch/mips/configs/tb0219_defconfig | |||
@@ -1,60 +1,47 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.21-rc6 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Sun Apr 15 01:06:01 2007 | 4 | # Wed Aug 8 16:11:47 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 13 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
30 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
31 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 21 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 22 | CONFIG_MACH_VR41XX=y |
36 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
38 | CONFIG_MACH_VR41XX=y | 25 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
43 | # CONFIG_SGI_IP27 is not set | 29 | # CONFIG_SGI_IP27 is not set |
44 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
55 | # CONFIG_TOSHIBA_JMR3927 is not set | 41 | # CONFIG_TOSHIBA_JMR3927 is not set |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 42 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 43 | # CONFIG_TOSHIBA_RBTX4938 is not set |
44 | # CONFIG_WR_PPMC is not set | ||
58 | # CONFIG_CASIO_E55 is not set | 45 | # CONFIG_CASIO_E55 is not set |
59 | # CONFIG_IBM_WORKPAD is not set | 46 | # CONFIG_IBM_WORKPAD is not set |
60 | # CONFIG_NEC_CMBVR4133 is not set | 47 | # CONFIG_NEC_CMBVR4133 is not set |
@@ -76,6 +63,8 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
76 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 63 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
77 | CONFIG_DMA_NONCOHERENT=y | 64 | CONFIG_DMA_NONCOHERENT=y |
78 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 65 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
66 | # CONFIG_HOTPLUG_CPU is not set | ||
67 | # CONFIG_NO_IOPORT is not set | ||
79 | # CONFIG_CPU_BIG_ENDIAN is not set | 68 | # CONFIG_CPU_BIG_ENDIAN is not set |
80 | CONFIG_CPU_LITTLE_ENDIAN=y | 69 | CONFIG_CPU_LITTLE_ENDIAN=y |
81 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 70 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
@@ -85,6 +74,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
85 | # | 74 | # |
86 | # CPU selection | 75 | # CPU selection |
87 | # | 76 | # |
77 | # CONFIG_CPU_LOONGSON2 is not set | ||
88 | # CONFIG_CPU_MIPS32_R1 is not set | 78 | # CONFIG_CPU_MIPS32_R1 is not set |
89 | # CONFIG_CPU_MIPS32_R2 is not set | 79 | # CONFIG_CPU_MIPS32_R2 is not set |
90 | # CONFIG_CPU_MIPS64_R1 is not set | 80 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -106,7 +96,6 @@ CONFIG_CPU_VR41XX=y | |||
106 | # CONFIG_CPU_SB1 is not set | 96 | # CONFIG_CPU_SB1 is not set |
107 | CONFIG_SYS_HAS_CPU_VR41XX=y | 97 | CONFIG_SYS_HAS_CPU_VR41XX=y |
108 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | 98 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y |
109 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
110 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | 99 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y |
111 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | 100 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y |
112 | 101 | ||
@@ -122,7 +111,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
122 | CONFIG_MIPS_MT_DISABLED=y | 111 | CONFIG_MIPS_MT_DISABLED=y |
123 | # CONFIG_MIPS_MT_SMP is not set | 112 | # CONFIG_MIPS_MT_SMP is not set |
124 | # CONFIG_MIPS_MT_SMTC is not set | 113 | # CONFIG_MIPS_MT_SMTC is not set |
125 | # CONFIG_MIPS_VPE_LOADER is not set | ||
126 | CONFIG_CPU_HAS_SYNC=y | 114 | CONFIG_CPU_HAS_SYNC=y |
127 | CONFIG_GENERIC_HARDIRQS=y | 115 | CONFIG_GENERIC_HARDIRQS=y |
128 | CONFIG_GENERIC_IRQ_PROBE=y | 116 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -136,46 +124,44 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
136 | # CONFIG_SPARSEMEM_STATIC is not set | 124 | # CONFIG_SPARSEMEM_STATIC is not set |
137 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 125 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
138 | # CONFIG_RESOURCES_64BIT is not set | 126 | # CONFIG_RESOURCES_64BIT is not set |
139 | CONFIG_ZONE_DMA_FLAG=1 | 127 | CONFIG_ZONE_DMA_FLAG=0 |
128 | CONFIG_VIRT_TO_BUS=y | ||
140 | # CONFIG_HZ_48 is not set | 129 | # CONFIG_HZ_48 is not set |
141 | # CONFIG_HZ_100 is not set | 130 | # CONFIG_HZ_100 is not set |
142 | # CONFIG_HZ_128 is not set | 131 | # CONFIG_HZ_128 is not set |
143 | # CONFIG_HZ_250 is not set | 132 | CONFIG_HZ_250=y |
144 | # CONFIG_HZ_256 is not set | 133 | # CONFIG_HZ_256 is not set |
145 | CONFIG_HZ_1000=y | 134 | # CONFIG_HZ_1000 is not set |
146 | # CONFIG_HZ_1024 is not set | 135 | # CONFIG_HZ_1024 is not set |
147 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | 136 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y |
148 | CONFIG_HZ=1000 | 137 | CONFIG_HZ=250 |
149 | CONFIG_PREEMPT_NONE=y | 138 | CONFIG_PREEMPT_NONE=y |
150 | # CONFIG_PREEMPT_VOLUNTARY is not set | 139 | # CONFIG_PREEMPT_VOLUNTARY is not set |
151 | # CONFIG_PREEMPT is not set | 140 | # CONFIG_PREEMPT is not set |
152 | # CONFIG_KEXEC is not set | 141 | # CONFIG_KEXEC is not set |
142 | CONFIG_SECCOMP=y | ||
153 | CONFIG_LOCKDEP_SUPPORT=y | 143 | CONFIG_LOCKDEP_SUPPORT=y |
154 | CONFIG_STACKTRACE_SUPPORT=y | 144 | CONFIG_STACKTRACE_SUPPORT=y |
155 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 145 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
156 | 146 | ||
157 | # | 147 | # |
158 | # Code maturity level options | 148 | # General setup |
159 | # | 149 | # |
160 | CONFIG_EXPERIMENTAL=y | 150 | CONFIG_EXPERIMENTAL=y |
161 | CONFIG_BROKEN_ON_SMP=y | 151 | CONFIG_BROKEN_ON_SMP=y |
162 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 152 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
163 | |||
164 | # | ||
165 | # General setup | ||
166 | # | ||
167 | CONFIG_LOCALVERSION="" | 153 | CONFIG_LOCALVERSION="" |
168 | CONFIG_LOCALVERSION_AUTO=y | 154 | CONFIG_LOCALVERSION_AUTO=y |
169 | CONFIG_SWAP=y | 155 | CONFIG_SWAP=y |
170 | CONFIG_SYSVIPC=y | 156 | CONFIG_SYSVIPC=y |
171 | # CONFIG_IPC_NS is not set | ||
172 | CONFIG_SYSVIPC_SYSCTL=y | 157 | CONFIG_SYSVIPC_SYSCTL=y |
173 | # CONFIG_POSIX_MQUEUE is not set | 158 | # CONFIG_POSIX_MQUEUE is not set |
174 | # CONFIG_BSD_PROCESS_ACCT is not set | 159 | # CONFIG_BSD_PROCESS_ACCT is not set |
175 | # CONFIG_TASKSTATS is not set | 160 | # CONFIG_TASKSTATS is not set |
176 | # CONFIG_UTS_NS is not set | 161 | # CONFIG_USER_NS is not set |
177 | # CONFIG_AUDIT is not set | 162 | # CONFIG_AUDIT is not set |
178 | # CONFIG_IKCONFIG is not set | 163 | # CONFIG_IKCONFIG is not set |
164 | CONFIG_LOG_BUF_SHIFT=14 | ||
179 | CONFIG_SYSFS_DEPRECATED=y | 165 | CONFIG_SYSFS_DEPRECATED=y |
180 | # CONFIG_RELAY is not set | 166 | # CONFIG_RELAY is not set |
181 | # CONFIG_BLK_DEV_INITRD is not set | 167 | # CONFIG_BLK_DEV_INITRD is not set |
@@ -191,32 +177,30 @@ CONFIG_BUG=y | |||
191 | CONFIG_ELF_CORE=y | 177 | CONFIG_ELF_CORE=y |
192 | CONFIG_BASE_FULL=y | 178 | CONFIG_BASE_FULL=y |
193 | CONFIG_FUTEX=y | 179 | CONFIG_FUTEX=y |
180 | CONFIG_ANON_INODES=y | ||
194 | CONFIG_EPOLL=y | 181 | CONFIG_EPOLL=y |
182 | CONFIG_SIGNALFD=y | ||
183 | CONFIG_TIMERFD=y | ||
184 | CONFIG_EVENTFD=y | ||
195 | CONFIG_SHMEM=y | 185 | CONFIG_SHMEM=y |
196 | CONFIG_SLAB=y | ||
197 | CONFIG_VM_EVENT_COUNTERS=y | 186 | CONFIG_VM_EVENT_COUNTERS=y |
187 | CONFIG_SLAB=y | ||
188 | # CONFIG_SLUB is not set | ||
189 | # CONFIG_SLOB is not set | ||
198 | CONFIG_RT_MUTEXES=y | 190 | CONFIG_RT_MUTEXES=y |
199 | # CONFIG_TINY_SHMEM is not set | 191 | # CONFIG_TINY_SHMEM is not set |
200 | CONFIG_BASE_SMALL=0 | 192 | CONFIG_BASE_SMALL=0 |
201 | # CONFIG_SLOB is not set | ||
202 | |||
203 | # | ||
204 | # Loadable module support | ||
205 | # | ||
206 | CONFIG_MODULES=y | 193 | CONFIG_MODULES=y |
207 | CONFIG_MODULE_UNLOAD=y | 194 | CONFIG_MODULE_UNLOAD=y |
208 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 195 | CONFIG_MODULE_FORCE_UNLOAD=y |
209 | CONFIG_MODVERSIONS=y | 196 | CONFIG_MODVERSIONS=y |
210 | CONFIG_MODULE_SRCVERSION_ALL=y | 197 | CONFIG_MODULE_SRCVERSION_ALL=y |
211 | CONFIG_KMOD=y | 198 | CONFIG_KMOD=y |
212 | |||
213 | # | ||
214 | # Block layer | ||
215 | # | ||
216 | CONFIG_BLOCK=y | 199 | CONFIG_BLOCK=y |
217 | # CONFIG_LBD is not set | 200 | # CONFIG_LBD is not set |
218 | # CONFIG_BLK_DEV_IO_TRACE is not set | 201 | # CONFIG_BLK_DEV_IO_TRACE is not set |
219 | # CONFIG_LSF is not set | 202 | # CONFIG_LSF is not set |
203 | # CONFIG_BLK_DEV_BSG is not set | ||
220 | 204 | ||
221 | # | 205 | # |
222 | # IO Schedulers | 206 | # IO Schedulers |
@@ -236,16 +220,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
236 | # | 220 | # |
237 | CONFIG_HW_HAS_PCI=y | 221 | CONFIG_HW_HAS_PCI=y |
238 | CONFIG_PCI=y | 222 | CONFIG_PCI=y |
223 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
239 | CONFIG_MMU=y | 224 | CONFIG_MMU=y |
240 | 225 | ||
241 | # | 226 | # |
242 | # PCCARD (PCMCIA/CardBus) support | 227 | # PCCARD (PCMCIA/CardBus) support |
243 | # | 228 | # |
244 | # CONFIG_PCCARD is not set | 229 | # CONFIG_PCCARD is not set |
245 | |||
246 | # | ||
247 | # PCI Hotplug Support | ||
248 | # | ||
249 | # CONFIG_HOTPLUG_PCI is not set | 230 | # CONFIG_HOTPLUG_PCI is not set |
250 | 231 | ||
251 | # | 232 | # |
@@ -258,10 +239,7 @@ CONFIG_TRAD_SIGNALS=y | |||
258 | # | 239 | # |
259 | # Power management options | 240 | # Power management options |
260 | # | 241 | # |
261 | CONFIG_PM=y | 242 | # CONFIG_PM is not set |
262 | # CONFIG_PM_LEGACY is not set | ||
263 | # CONFIG_PM_DEBUG is not set | ||
264 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
265 | 243 | ||
266 | # | 244 | # |
267 | # Networking | 245 | # Networking |
@@ -271,14 +249,9 @@ CONFIG_NET=y | |||
271 | # | 249 | # |
272 | # Networking options | 250 | # Networking options |
273 | # | 251 | # |
274 | # CONFIG_NETDEBUG is not set | ||
275 | CONFIG_PACKET=y | 252 | CONFIG_PACKET=y |
276 | # CONFIG_PACKET_MMAP is not set | 253 | # CONFIG_PACKET_MMAP is not set |
277 | CONFIG_UNIX=y | 254 | CONFIG_UNIX=y |
278 | CONFIG_XFRM=y | ||
279 | # CONFIG_XFRM_USER is not set | ||
280 | # CONFIG_XFRM_SUB_POLICY is not set | ||
281 | CONFIG_XFRM_MIGRATE=y | ||
282 | # CONFIG_NET_KEY is not set | 255 | # CONFIG_NET_KEY is not set |
283 | CONFIG_INET=y | 256 | CONFIG_INET=y |
284 | CONFIG_IP_MULTICAST=y | 257 | CONFIG_IP_MULTICAST=y |
@@ -288,7 +261,6 @@ CONFIG_ASK_IP_FIB_HASH=y | |||
288 | CONFIG_IP_FIB_HASH=y | 261 | CONFIG_IP_FIB_HASH=y |
289 | CONFIG_IP_MULTIPLE_TABLES=y | 262 | CONFIG_IP_MULTIPLE_TABLES=y |
290 | CONFIG_IP_ROUTE_MULTIPATH=y | 263 | CONFIG_IP_ROUTE_MULTIPATH=y |
291 | # CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set | ||
292 | CONFIG_IP_ROUTE_VERBOSE=y | 264 | CONFIG_IP_ROUTE_VERBOSE=y |
293 | CONFIG_IP_PNP=y | 265 | CONFIG_IP_PNP=y |
294 | # CONFIG_IP_PNP_DHCP is not set | 266 | # CONFIG_IP_PNP_DHCP is not set |
@@ -305,34 +277,25 @@ CONFIG_SYN_COOKIES=y | |||
305 | # CONFIG_INET_IPCOMP is not set | 277 | # CONFIG_INET_IPCOMP is not set |
306 | # CONFIG_INET_XFRM_TUNNEL is not set | 278 | # CONFIG_INET_XFRM_TUNNEL is not set |
307 | CONFIG_INET_TUNNEL=m | 279 | CONFIG_INET_TUNNEL=m |
308 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | 280 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set |
309 | CONFIG_INET_XFRM_MODE_TUNNEL=m | 281 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set |
310 | CONFIG_INET_XFRM_MODE_BEET=m | 282 | # CONFIG_INET_XFRM_MODE_BEET is not set |
311 | CONFIG_INET_DIAG=y | 283 | CONFIG_INET_DIAG=y |
312 | CONFIG_INET_TCP_DIAG=y | 284 | CONFIG_INET_TCP_DIAG=y |
313 | # CONFIG_TCP_CONG_ADVANCED is not set | 285 | # CONFIG_TCP_CONG_ADVANCED is not set |
314 | CONFIG_TCP_CONG_CUBIC=y | 286 | CONFIG_TCP_CONG_CUBIC=y |
315 | CONFIG_DEFAULT_TCP_CONG="cubic" | 287 | CONFIG_DEFAULT_TCP_CONG="cubic" |
316 | CONFIG_TCP_MD5SIG=y | 288 | # CONFIG_TCP_MD5SIG is not set |
317 | # CONFIG_IPV6 is not set | 289 | # CONFIG_IPV6 is not set |
318 | # CONFIG_INET6_XFRM_TUNNEL is not set | 290 | # CONFIG_INET6_XFRM_TUNNEL is not set |
319 | # CONFIG_INET6_TUNNEL is not set | 291 | # CONFIG_INET6_TUNNEL is not set |
320 | CONFIG_NETWORK_SECMARK=y | 292 | CONFIG_NETWORK_SECMARK=y |
321 | # CONFIG_NETFILTER is not set | 293 | # CONFIG_NETFILTER is not set |
322 | |||
323 | # | ||
324 | # DCCP Configuration (EXPERIMENTAL) | ||
325 | # | ||
326 | # CONFIG_IP_DCCP is not set | 294 | # CONFIG_IP_DCCP is not set |
327 | |||
328 | # | ||
329 | # SCTP Configuration (EXPERIMENTAL) | ||
330 | # | ||
331 | # CONFIG_IP_SCTP is not set | 295 | # CONFIG_IP_SCTP is not set |
332 | 296 | # CONFIG_SCTP_HMAC_NONE is not set | |
333 | # | 297 | # CONFIG_SCTP_HMAC_SHA1 is not set |
334 | # TIPC Configuration (EXPERIMENTAL) | 298 | # CONFIG_SCTP_HMAC_MD5 is not set |
335 | # | ||
336 | # CONFIG_TIPC is not set | 299 | # CONFIG_TIPC is not set |
337 | # CONFIG_ATM is not set | 300 | # CONFIG_ATM is not set |
338 | # CONFIG_BRIDGE is not set | 301 | # CONFIG_BRIDGE is not set |
@@ -358,10 +321,20 @@ CONFIG_NETWORK_SECMARK=y | |||
358 | # CONFIG_HAMRADIO is not set | 321 | # CONFIG_HAMRADIO is not set |
359 | # CONFIG_IRDA is not set | 322 | # CONFIG_IRDA is not set |
360 | # CONFIG_BT is not set | 323 | # CONFIG_BT is not set |
361 | # CONFIG_IEEE80211 is not set | 324 | # CONFIG_AF_RXRPC is not set |
362 | CONFIG_FIB_RULES=y | 325 | CONFIG_FIB_RULES=y |
363 | 326 | ||
364 | # | 327 | # |
328 | # Wireless | ||
329 | # | ||
330 | # CONFIG_CFG80211 is not set | ||
331 | # CONFIG_WIRELESS_EXT is not set | ||
332 | # CONFIG_MAC80211 is not set | ||
333 | # CONFIG_IEEE80211 is not set | ||
334 | # CONFIG_RFKILL is not set | ||
335 | # CONFIG_NET_9P is not set | ||
336 | |||
337 | # | ||
365 | # Device Drivers | 338 | # Device Drivers |
366 | # | 339 | # |
367 | 340 | ||
@@ -372,30 +345,10 @@ CONFIG_STANDALONE=y | |||
372 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 345 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
373 | CONFIG_FW_LOADER=m | 346 | CONFIG_FW_LOADER=m |
374 | # CONFIG_SYS_HYPERVISOR is not set | 347 | # CONFIG_SYS_HYPERVISOR is not set |
375 | |||
376 | # | ||
377 | # Connector - unified userspace <-> kernelspace linker | ||
378 | # | ||
379 | # CONFIG_CONNECTOR is not set | 348 | # CONFIG_CONNECTOR is not set |
380 | |||
381 | # | ||
382 | # Memory Technology Devices (MTD) | ||
383 | # | ||
384 | # CONFIG_MTD is not set | 349 | # CONFIG_MTD is not set |
385 | |||
386 | # | ||
387 | # Parallel port support | ||
388 | # | ||
389 | # CONFIG_PARPORT is not set | 350 | # CONFIG_PARPORT is not set |
390 | 351 | CONFIG_BLK_DEV=y | |
391 | # | ||
392 | # Plug and Play support | ||
393 | # | ||
394 | # CONFIG_PNPACPI is not set | ||
395 | |||
396 | # | ||
397 | # Block devices | ||
398 | # | ||
399 | # CONFIG_BLK_CPQ_DA is not set | 352 | # CONFIG_BLK_CPQ_DA is not set |
400 | # CONFIG_BLK_CPQ_CISS_DA is not set | 353 | # CONFIG_BLK_CPQ_CISS_DA is not set |
401 | # CONFIG_BLK_DEV_DAC960 is not set | 354 | # CONFIG_BLK_DEV_DAC960 is not set |
@@ -412,16 +365,7 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
412 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 365 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
413 | # CONFIG_CDROM_PKTCDVD is not set | 366 | # CONFIG_CDROM_PKTCDVD is not set |
414 | # CONFIG_ATA_OVER_ETH is not set | 367 | # CONFIG_ATA_OVER_ETH is not set |
415 | 368 | # CONFIG_MISC_DEVICES is not set | |
416 | # | ||
417 | # Misc devices | ||
418 | # | ||
419 | CONFIG_SGI_IOC4=m | ||
420 | # CONFIG_TIFM_CORE is not set | ||
421 | |||
422 | # | ||
423 | # ATA/ATAPI/MFM/RLL support | ||
424 | # | ||
425 | # CONFIG_IDE is not set | 369 | # CONFIG_IDE is not set |
426 | 370 | ||
427 | # | 371 | # |
@@ -429,16 +373,9 @@ CONFIG_SGI_IOC4=m | |||
429 | # | 373 | # |
430 | # CONFIG_RAID_ATTRS is not set | 374 | # CONFIG_RAID_ATTRS is not set |
431 | # CONFIG_SCSI is not set | 375 | # CONFIG_SCSI is not set |
376 | # CONFIG_SCSI_DMA is not set | ||
432 | # CONFIG_SCSI_NETLINK is not set | 377 | # CONFIG_SCSI_NETLINK is not set |
433 | |||
434 | # | ||
435 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
436 | # | ||
437 | # CONFIG_ATA is not set | 378 | # CONFIG_ATA is not set |
438 | |||
439 | # | ||
440 | # Multi-device support (RAID and LVM) | ||
441 | # | ||
442 | # CONFIG_MD is not set | 379 | # CONFIG_MD is not set |
443 | 380 | ||
444 | # | 381 | # |
@@ -449,30 +386,17 @@ CONFIG_SGI_IOC4=m | |||
449 | # | 386 | # |
450 | # IEEE 1394 (FireWire) support | 387 | # IEEE 1394 (FireWire) support |
451 | # | 388 | # |
389 | # CONFIG_FIREWIRE is not set | ||
452 | # CONFIG_IEEE1394 is not set | 390 | # CONFIG_IEEE1394 is not set |
453 | |||
454 | # | ||
455 | # I2O device support | ||
456 | # | ||
457 | # CONFIG_I2O is not set | 391 | # CONFIG_I2O is not set |
458 | |||
459 | # | ||
460 | # Network device support | ||
461 | # | ||
462 | CONFIG_NETDEVICES=y | 392 | CONFIG_NETDEVICES=y |
463 | CONFIG_DUMMY=m | 393 | # CONFIG_NETDEVICES_MULTIQUEUE is not set |
394 | # CONFIG_DUMMY is not set | ||
464 | # CONFIG_BONDING is not set | 395 | # CONFIG_BONDING is not set |
396 | # CONFIG_MACVLAN is not set | ||
465 | # CONFIG_EQUALIZER is not set | 397 | # CONFIG_EQUALIZER is not set |
466 | # CONFIG_TUN is not set | 398 | # CONFIG_TUN is not set |
467 | |||
468 | # | ||
469 | # ARCnet devices | ||
470 | # | ||
471 | # CONFIG_ARCNET is not set | 399 | # CONFIG_ARCNET is not set |
472 | |||
473 | # | ||
474 | # PHY device support | ||
475 | # | ||
476 | CONFIG_PHYLIB=m | 400 | CONFIG_PHYLIB=m |
477 | 401 | ||
478 | # | 402 | # |
@@ -486,29 +410,46 @@ CONFIG_CICADA_PHY=m | |||
486 | CONFIG_VITESSE_PHY=m | 410 | CONFIG_VITESSE_PHY=m |
487 | CONFIG_SMSC_PHY=m | 411 | CONFIG_SMSC_PHY=m |
488 | # CONFIG_BROADCOM_PHY is not set | 412 | # CONFIG_BROADCOM_PHY is not set |
413 | # CONFIG_ICPLUS_PHY is not set | ||
489 | # CONFIG_FIXED_PHY is not set | 414 | # CONFIG_FIXED_PHY is not set |
490 | |||
491 | # | ||
492 | # Ethernet (10 or 100Mbit) | ||
493 | # | ||
494 | CONFIG_NET_ETHERNET=y | 415 | CONFIG_NET_ETHERNET=y |
495 | CONFIG_MII=y | 416 | CONFIG_MII=y |
417 | # CONFIG_AX88796 is not set | ||
496 | # CONFIG_HAPPYMEAL is not set | 418 | # CONFIG_HAPPYMEAL is not set |
497 | # CONFIG_SUNGEM is not set | 419 | # CONFIG_SUNGEM is not set |
498 | # CONFIG_CASSINI is not set | 420 | # CONFIG_CASSINI is not set |
499 | # CONFIG_NET_VENDOR_3COM is not set | 421 | # CONFIG_NET_VENDOR_3COM is not set |
500 | # CONFIG_DM9000 is not set | 422 | # CONFIG_DM9000 is not set |
501 | |||
502 | # | ||
503 | # Tulip family network device support | ||
504 | # | ||
505 | # CONFIG_NET_TULIP is not set | 423 | # CONFIG_NET_TULIP is not set |
506 | # CONFIG_HP100 is not set | 424 | # CONFIG_HP100 is not set |
507 | # CONFIG_NET_PCI is not set | 425 | CONFIG_NET_PCI=y |
508 | 426 | # CONFIG_PCNET32 is not set | |
509 | # | 427 | # CONFIG_AMD8111_ETH is not set |
510 | # Ethernet (1000 Mbit) | 428 | # CONFIG_ADAPTEC_STARFIRE is not set |
511 | # | 429 | # CONFIG_B44 is not set |
430 | # CONFIG_FORCEDETH is not set | ||
431 | # CONFIG_TC35815 is not set | ||
432 | # CONFIG_DGRS is not set | ||
433 | # CONFIG_EEPRO100 is not set | ||
434 | # CONFIG_E100 is not set | ||
435 | # CONFIG_FEALNX is not set | ||
436 | # CONFIG_NATSEMI is not set | ||
437 | # CONFIG_NE2K_PCI is not set | ||
438 | # CONFIG_8139CP is not set | ||
439 | CONFIG_8139TOO=y | ||
440 | CONFIG_8139TOO_PIO=y | ||
441 | # CONFIG_8139TOO_TUNE_TWISTER is not set | ||
442 | # CONFIG_8139TOO_8129 is not set | ||
443 | # CONFIG_8139_OLD_RX_RESET is not set | ||
444 | # CONFIG_SIS900 is not set | ||
445 | # CONFIG_EPIC100 is not set | ||
446 | # CONFIG_SUNDANCE is not set | ||
447 | # CONFIG_TLAN is not set | ||
448 | CONFIG_VIA_RHINE=y | ||
449 | CONFIG_VIA_RHINE_MMIO=y | ||
450 | # CONFIG_VIA_RHINE_NAPI is not set | ||
451 | # CONFIG_SC92031 is not set | ||
452 | CONFIG_NETDEV_1000=y | ||
512 | # CONFIG_ACENIC is not set | 453 | # CONFIG_ACENIC is not set |
513 | # CONFIG_DL2K is not set | 454 | # CONFIG_DL2K is not set |
514 | # CONFIG_E1000 is not set | 455 | # CONFIG_E1000 is not set |
@@ -520,35 +461,29 @@ CONFIG_R8169=y | |||
520 | # CONFIG_SIS190 is not set | 461 | # CONFIG_SIS190 is not set |
521 | # CONFIG_SKGE is not set | 462 | # CONFIG_SKGE is not set |
522 | # CONFIG_SKY2 is not set | 463 | # CONFIG_SKY2 is not set |
523 | # CONFIG_SK98LIN is not set | 464 | CONFIG_VIA_VELOCITY=y |
524 | # CONFIG_TIGON3 is not set | 465 | # CONFIG_TIGON3 is not set |
525 | # CONFIG_BNX2 is not set | 466 | # CONFIG_BNX2 is not set |
526 | CONFIG_QLA3XXX=m | 467 | # CONFIG_QLA3XXX is not set |
527 | # CONFIG_ATL1 is not set | 468 | # CONFIG_ATL1 is not set |
528 | 469 | # CONFIG_NETDEV_10000 is not set | |
529 | # | ||
530 | # Ethernet (10000 Mbit) | ||
531 | # | ||
532 | # CONFIG_CHELSIO_T1 is not set | ||
533 | CONFIG_CHELSIO_T3=m | ||
534 | # CONFIG_IXGB is not set | ||
535 | # CONFIG_S2IO is not set | ||
536 | # CONFIG_MYRI10GE is not set | ||
537 | CONFIG_NETXEN_NIC=m | ||
538 | |||
539 | # | ||
540 | # Token Ring devices | ||
541 | # | ||
542 | # CONFIG_TR is not set | 470 | # CONFIG_TR is not set |
543 | 471 | ||
544 | # | 472 | # |
545 | # Wireless LAN (non-hamradio) | 473 | # Wireless LAN |
546 | # | 474 | # |
547 | # CONFIG_NET_RADIO is not set | 475 | # CONFIG_WLAN_PRE80211 is not set |
476 | # CONFIG_WLAN_80211 is not set | ||
548 | 477 | ||
549 | # | 478 | # |
550 | # Wan interfaces | 479 | # USB Network Adapters |
551 | # | 480 | # |
481 | # CONFIG_USB_CATC is not set | ||
482 | # CONFIG_USB_KAWETH is not set | ||
483 | # CONFIG_USB_PEGASUS is not set | ||
484 | # CONFIG_USB_RTL8150 is not set | ||
485 | # CONFIG_USB_USBNET_MII is not set | ||
486 | # CONFIG_USB_USBNET is not set | ||
552 | # CONFIG_WAN is not set | 487 | # CONFIG_WAN is not set |
553 | # CONFIG_FDDI is not set | 488 | # CONFIG_FDDI is not set |
554 | # CONFIG_HIPPI is not set | 489 | # CONFIG_HIPPI is not set |
@@ -558,15 +493,7 @@ CONFIG_NETXEN_NIC=m | |||
558 | # CONFIG_NETCONSOLE is not set | 493 | # CONFIG_NETCONSOLE is not set |
559 | # CONFIG_NETPOLL is not set | 494 | # CONFIG_NETPOLL is not set |
560 | # CONFIG_NET_POLL_CONTROLLER is not set | 495 | # CONFIG_NET_POLL_CONTROLLER is not set |
561 | |||
562 | # | ||
563 | # ISDN subsystem | ||
564 | # | ||
565 | # CONFIG_ISDN is not set | 496 | # CONFIG_ISDN is not set |
566 | |||
567 | # | ||
568 | # Telephony Support | ||
569 | # | ||
570 | # CONFIG_PHONE is not set | 497 | # CONFIG_PHONE is not set |
571 | 498 | ||
572 | # | 499 | # |
@@ -574,6 +501,7 @@ CONFIG_NETXEN_NIC=m | |||
574 | # | 501 | # |
575 | CONFIG_INPUT=y | 502 | CONFIG_INPUT=y |
576 | # CONFIG_INPUT_FF_MEMLESS is not set | 503 | # CONFIG_INPUT_FF_MEMLESS is not set |
504 | # CONFIG_INPUT_POLLDEV is not set | ||
577 | 505 | ||
578 | # | 506 | # |
579 | # Userland interfaces | 507 | # Userland interfaces |
@@ -590,6 +518,7 @@ CONFIG_INPUT=y | |||
590 | # CONFIG_INPUT_KEYBOARD is not set | 518 | # CONFIG_INPUT_KEYBOARD is not set |
591 | # CONFIG_INPUT_MOUSE is not set | 519 | # CONFIG_INPUT_MOUSE is not set |
592 | # CONFIG_INPUT_JOYSTICK is not set | 520 | # CONFIG_INPUT_JOYSTICK is not set |
521 | # CONFIG_INPUT_TABLET is not set | ||
593 | # CONFIG_INPUT_TOUCHSCREEN is not set | 522 | # CONFIG_INPUT_TOUCHSCREEN is not set |
594 | # CONFIG_INPUT_MISC is not set | 523 | # CONFIG_INPUT_MISC is not set |
595 | 524 | ||
@@ -624,35 +553,18 @@ CONFIG_SERIAL_VR41XX_CONSOLE=y | |||
624 | CONFIG_UNIX98_PTYS=y | 553 | CONFIG_UNIX98_PTYS=y |
625 | CONFIG_LEGACY_PTYS=y | 554 | CONFIG_LEGACY_PTYS=y |
626 | CONFIG_LEGACY_PTY_COUNT=256 | 555 | CONFIG_LEGACY_PTY_COUNT=256 |
627 | |||
628 | # | ||
629 | # IPMI | ||
630 | # | ||
631 | # CONFIG_IPMI_HANDLER is not set | 556 | # CONFIG_IPMI_HANDLER is not set |
632 | |||
633 | # | ||
634 | # Watchdog Cards | ||
635 | # | ||
636 | # CONFIG_WATCHDOG is not set | 557 | # CONFIG_WATCHDOG is not set |
637 | # CONFIG_HW_RANDOM is not set | 558 | # CONFIG_HW_RANDOM is not set |
638 | # CONFIG_RTC is not set | 559 | # CONFIG_RTC is not set |
639 | # CONFIG_GEN_RTC is not set | ||
640 | # CONFIG_DTLK is not set | ||
641 | # CONFIG_R3964 is not set | 560 | # CONFIG_R3964 is not set |
642 | # CONFIG_APPLICOM is not set | 561 | # CONFIG_APPLICOM is not set |
643 | CONFIG_GPIO_TB0219=y | 562 | CONFIG_GPIO_TB0219=y |
644 | # CONFIG_DRM is not set | 563 | # CONFIG_DRM is not set |
645 | CONFIG_GPIO_VR41XX=y | 564 | CONFIG_GPIO_VR41XX=y |
646 | # CONFIG_RAW_DRIVER is not set | 565 | # CONFIG_RAW_DRIVER is not set |
647 | |||
648 | # | ||
649 | # TPM devices | ||
650 | # | ||
651 | # CONFIG_TCG_TPM is not set | 566 | # CONFIG_TCG_TPM is not set |
652 | 567 | CONFIG_DEVPORT=y | |
653 | # | ||
654 | # I2C support | ||
655 | # | ||
656 | # CONFIG_I2C is not set | 568 | # CONFIG_I2C is not set |
657 | 569 | ||
658 | # | 570 | # |
@@ -660,17 +572,9 @@ CONFIG_GPIO_VR41XX=y | |||
660 | # | 572 | # |
661 | # CONFIG_SPI is not set | 573 | # CONFIG_SPI is not set |
662 | # CONFIG_SPI_MASTER is not set | 574 | # CONFIG_SPI_MASTER is not set |
663 | |||
664 | # | ||
665 | # Dallas's 1-wire bus | ||
666 | # | ||
667 | # CONFIG_W1 is not set | 575 | # CONFIG_W1 is not set |
668 | 576 | # CONFIG_POWER_SUPPLY is not set | |
669 | # | ||
670 | # Hardware Monitoring support | ||
671 | # | ||
672 | # CONFIG_HWMON is not set | 577 | # CONFIG_HWMON is not set |
673 | # CONFIG_HWMON_VID is not set | ||
674 | 578 | ||
675 | # | 579 | # |
676 | # Multifunction device drivers | 580 | # Multifunction device drivers |
@@ -681,17 +585,20 @@ CONFIG_GPIO_VR41XX=y | |||
681 | # Multimedia devices | 585 | # Multimedia devices |
682 | # | 586 | # |
683 | # CONFIG_VIDEO_DEV is not set | 587 | # CONFIG_VIDEO_DEV is not set |
588 | # CONFIG_DVB_CORE is not set | ||
589 | # CONFIG_DAB is not set | ||
684 | 590 | ||
685 | # | 591 | # |
686 | # Digital Video Broadcasting Devices | 592 | # Graphics support |
687 | # | 593 | # |
688 | # CONFIG_DVB is not set | 594 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
689 | # CONFIG_USB_DABUSB is not set | ||
690 | 595 | ||
691 | # | 596 | # |
692 | # Graphics support | 597 | # Display device support |
693 | # | 598 | # |
694 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 599 | # CONFIG_DISPLAY_SUPPORT is not set |
600 | # CONFIG_VGASTATE is not set | ||
601 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
695 | # CONFIG_FB is not set | 602 | # CONFIG_FB is not set |
696 | 603 | ||
697 | # | 604 | # |
@@ -704,16 +611,8 @@ CONFIG_DUMMY_CONSOLE=y | |||
704 | # Sound | 611 | # Sound |
705 | # | 612 | # |
706 | # CONFIG_SOUND is not set | 613 | # CONFIG_SOUND is not set |
707 | 614 | # CONFIG_HID_SUPPORT is not set | |
708 | # | 615 | CONFIG_USB_SUPPORT=y |
709 | # HID Devices | ||
710 | # | ||
711 | CONFIG_HID=y | ||
712 | # CONFIG_HID_DEBUG is not set | ||
713 | |||
714 | # | ||
715 | # USB support | ||
716 | # | ||
717 | CONFIG_USB_ARCH_HAS_HCD=y | 616 | CONFIG_USB_ARCH_HAS_HCD=y |
718 | CONFIG_USB_ARCH_HAS_OHCI=y | 617 | CONFIG_USB_ARCH_HAS_OHCI=y |
719 | CONFIG_USB_ARCH_HAS_EHCI=y | 618 | CONFIG_USB_ARCH_HAS_EHCI=y |
@@ -724,8 +623,8 @@ CONFIG_USB=m | |||
724 | # Miscellaneous USB options | 623 | # Miscellaneous USB options |
725 | # | 624 | # |
726 | CONFIG_USB_DEVICEFS=y | 625 | CONFIG_USB_DEVICEFS=y |
626 | CONFIG_USB_DEVICE_CLASS=y | ||
727 | # CONFIG_USB_DYNAMIC_MINORS is not set | 627 | # CONFIG_USB_DYNAMIC_MINORS is not set |
728 | # CONFIG_USB_SUSPEND is not set | ||
729 | # CONFIG_USB_OTG is not set | 628 | # CONFIG_USB_OTG is not set |
730 | 629 | ||
731 | # | 630 | # |
@@ -735,7 +634,6 @@ CONFIG_USB_EHCI_HCD=m | |||
735 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | 634 | # CONFIG_USB_EHCI_SPLIT_ISO is not set |
736 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 635 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
737 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 636 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
738 | # CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set | ||
739 | # CONFIG_USB_ISP116X_HCD is not set | 637 | # CONFIG_USB_ISP116X_HCD is not set |
740 | CONFIG_USB_OHCI_HCD=m | 638 | CONFIG_USB_OHCI_HCD=m |
741 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | 639 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
@@ -743,6 +641,7 @@ CONFIG_USB_OHCI_HCD=m | |||
743 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 641 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
744 | # CONFIG_USB_UHCI_HCD is not set | 642 | # CONFIG_USB_UHCI_HCD is not set |
745 | # CONFIG_USB_SL811_HCD is not set | 643 | # CONFIG_USB_SL811_HCD is not set |
644 | # CONFIG_USB_R8A66597_HCD is not set | ||
746 | 645 | ||
747 | # | 646 | # |
748 | # USB Device Class drivers | 647 | # USB Device Class drivers |
@@ -760,43 +659,9 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
760 | # CONFIG_USB_LIBUSUAL is not set | 659 | # CONFIG_USB_LIBUSUAL is not set |
761 | 660 | ||
762 | # | 661 | # |
763 | # USB Input Devices | ||
764 | # | ||
765 | # CONFIG_USB_HID is not set | ||
766 | |||
767 | # | ||
768 | # USB HID Boot Protocol drivers | ||
769 | # | ||
770 | # CONFIG_USB_KBD is not set | ||
771 | # CONFIG_USB_MOUSE is not set | ||
772 | # CONFIG_USB_AIPTEK is not set | ||
773 | # CONFIG_USB_WACOM is not set | ||
774 | # CONFIG_USB_ACECAD is not set | ||
775 | # CONFIG_USB_KBTAB is not set | ||
776 | # CONFIG_USB_POWERMATE is not set | ||
777 | # CONFIG_USB_TOUCHSCREEN is not set | ||
778 | # CONFIG_USB_YEALINK is not set | ||
779 | # CONFIG_USB_XPAD is not set | ||
780 | # CONFIG_USB_ATI_REMOTE is not set | ||
781 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
782 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
783 | # CONFIG_USB_APPLETOUCH is not set | ||
784 | # CONFIG_USB_GTCO is not set | ||
785 | |||
786 | # | ||
787 | # USB Imaging devices | 662 | # USB Imaging devices |
788 | # | 663 | # |
789 | # CONFIG_USB_MDC800 is not set | 664 | # CONFIG_USB_MDC800 is not set |
790 | |||
791 | # | ||
792 | # USB Network Adapters | ||
793 | # | ||
794 | # CONFIG_USB_CATC is not set | ||
795 | # CONFIG_USB_KAWETH is not set | ||
796 | # CONFIG_USB_PEGASUS is not set | ||
797 | # CONFIG_USB_RTL8150 is not set | ||
798 | # CONFIG_USB_USBNET_MII is not set | ||
799 | # CONFIG_USB_USBNET is not set | ||
800 | CONFIG_USB_MON=y | 665 | CONFIG_USB_MON=y |
801 | 666 | ||
802 | # | 667 | # |
@@ -840,37 +705,9 @@ CONFIG_USB_MON=y | |||
840 | # USB Gadget Support | 705 | # USB Gadget Support |
841 | # | 706 | # |
842 | # CONFIG_USB_GADGET is not set | 707 | # CONFIG_USB_GADGET is not set |
843 | |||
844 | # | ||
845 | # MMC/SD Card support | ||
846 | # | ||
847 | # CONFIG_MMC is not set | 708 | # CONFIG_MMC is not set |
848 | |||
849 | # | ||
850 | # LED devices | ||
851 | # | ||
852 | # CONFIG_NEW_LEDS is not set | 709 | # CONFIG_NEW_LEDS is not set |
853 | |||
854 | # | ||
855 | # LED drivers | ||
856 | # | ||
857 | |||
858 | # | ||
859 | # LED Triggers | ||
860 | # | ||
861 | |||
862 | # | ||
863 | # InfiniBand support | ||
864 | # | ||
865 | # CONFIG_INFINIBAND is not set | 710 | # CONFIG_INFINIBAND is not set |
866 | |||
867 | # | ||
868 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
869 | # | ||
870 | |||
871 | # | ||
872 | # Real Time Clock | ||
873 | # | ||
874 | CONFIG_RTC_LIB=y | 711 | CONFIG_RTC_LIB=y |
875 | CONFIG_RTC_CLASS=y | 712 | CONFIG_RTC_CLASS=y |
876 | CONFIG_RTC_HCTOSYS=y | 713 | CONFIG_RTC_HCTOSYS=y |
@@ -884,18 +721,29 @@ CONFIG_RTC_INTF_SYSFS=y | |||
884 | CONFIG_RTC_INTF_PROC=y | 721 | CONFIG_RTC_INTF_PROC=y |
885 | CONFIG_RTC_INTF_DEV=y | 722 | CONFIG_RTC_INTF_DEV=y |
886 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | 723 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set |
724 | # CONFIG_RTC_DRV_TEST is not set | ||
725 | |||
726 | # | ||
727 | # SPI RTC drivers | ||
728 | # | ||
887 | 729 | ||
888 | # | 730 | # |
889 | # RTC drivers | 731 | # Platform RTC drivers |
890 | # | 732 | # |
733 | # CONFIG_RTC_DRV_CMOS is not set | ||
891 | # CONFIG_RTC_DRV_DS1553 is not set | 734 | # CONFIG_RTC_DRV_DS1553 is not set |
735 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
892 | # CONFIG_RTC_DRV_DS1742 is not set | 736 | # CONFIG_RTC_DRV_DS1742 is not set |
893 | # CONFIG_RTC_DRV_M48T86 is not set | 737 | # CONFIG_RTC_DRV_M48T86 is not set |
894 | CONFIG_RTC_DRV_VR41XX=y | 738 | # CONFIG_RTC_DRV_M48T59 is not set |
895 | # CONFIG_RTC_DRV_TEST is not set | ||
896 | # CONFIG_RTC_DRV_V3020 is not set | 739 | # CONFIG_RTC_DRV_V3020 is not set |
897 | 740 | ||
898 | # | 741 | # |
742 | # on-CPU RTC drivers | ||
743 | # | ||
744 | CONFIG_RTC_DRV_VR41XX=y | ||
745 | |||
746 | # | ||
899 | # DMA Engine support | 747 | # DMA Engine support |
900 | # | 748 | # |
901 | # CONFIG_DMA_ENGINE is not set | 749 | # CONFIG_DMA_ENGINE is not set |
@@ -909,12 +757,9 @@ CONFIG_RTC_DRV_VR41XX=y | |||
909 | # | 757 | # |
910 | 758 | ||
911 | # | 759 | # |
912 | # Auxiliary Display support | 760 | # Userspace I/O |
913 | # | ||
914 | |||
915 | # | ||
916 | # Virtualization | ||
917 | # | 761 | # |
762 | # CONFIG_UIO is not set | ||
918 | 763 | ||
919 | # | 764 | # |
920 | # File systems | 765 | # File systems |
@@ -922,8 +767,14 @@ CONFIG_RTC_DRV_VR41XX=y | |||
922 | CONFIG_EXT2_FS=y | 767 | CONFIG_EXT2_FS=y |
923 | # CONFIG_EXT2_FS_XATTR is not set | 768 | # CONFIG_EXT2_FS_XATTR is not set |
924 | # CONFIG_EXT2_FS_XIP is not set | 769 | # CONFIG_EXT2_FS_XIP is not set |
925 | # CONFIG_EXT3_FS is not set | 770 | CONFIG_EXT3_FS=y |
771 | CONFIG_EXT3_FS_XATTR=y | ||
772 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
773 | # CONFIG_EXT3_FS_SECURITY is not set | ||
926 | # CONFIG_EXT4DEV_FS is not set | 774 | # CONFIG_EXT4DEV_FS is not set |
775 | CONFIG_JBD=y | ||
776 | # CONFIG_JBD_DEBUG is not set | ||
777 | CONFIG_FS_MBCACHE=y | ||
927 | # CONFIG_REISERFS_FS is not set | 778 | # CONFIG_REISERFS_FS is not set |
928 | # CONFIG_JFS_FS is not set | 779 | # CONFIG_JFS_FS is not set |
929 | CONFIG_FS_POSIX_ACL=y | 780 | CONFIG_FS_POSIX_ACL=y |
@@ -938,7 +789,7 @@ CONFIG_INOTIFY_USER=y | |||
938 | CONFIG_DNOTIFY=y | 789 | CONFIG_DNOTIFY=y |
939 | # CONFIG_AUTOFS_FS is not set | 790 | # CONFIG_AUTOFS_FS is not set |
940 | CONFIG_AUTOFS4_FS=y | 791 | CONFIG_AUTOFS4_FS=y |
941 | CONFIG_FUSE_FS=m | 792 | # CONFIG_FUSE_FS is not set |
942 | CONFIG_GENERIC_ACL=y | 793 | CONFIG_GENERIC_ACL=y |
943 | 794 | ||
944 | # | 795 | # |
@@ -965,7 +816,7 @@ CONFIG_TMPFS=y | |||
965 | CONFIG_TMPFS_POSIX_ACL=y | 816 | CONFIG_TMPFS_POSIX_ACL=y |
966 | # CONFIG_HUGETLB_PAGE is not set | 817 | # CONFIG_HUGETLB_PAGE is not set |
967 | CONFIG_RAMFS=y | 818 | CONFIG_RAMFS=y |
968 | CONFIG_CONFIGFS_FS=m | 819 | # CONFIG_CONFIGFS_FS is not set |
969 | 820 | ||
970 | # | 821 | # |
971 | # Miscellaneous filesystems | 822 | # Miscellaneous filesystems |
@@ -1003,6 +854,7 @@ CONFIG_LOCKD_V4=y | |||
1003 | CONFIG_EXPORTFS=y | 854 | CONFIG_EXPORTFS=y |
1004 | CONFIG_NFS_COMMON=y | 855 | CONFIG_NFS_COMMON=y |
1005 | CONFIG_SUNRPC=y | 856 | CONFIG_SUNRPC=y |
857 | # CONFIG_SUNRPC_BIND34 is not set | ||
1006 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 858 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1007 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 859 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1008 | # CONFIG_SMB_FS is not set | 860 | # CONFIG_SMB_FS is not set |
@@ -1010,7 +862,6 @@ CONFIG_SUNRPC=y | |||
1010 | # CONFIG_NCP_FS is not set | 862 | # CONFIG_NCP_FS is not set |
1011 | # CONFIG_CODA_FS is not set | 863 | # CONFIG_CODA_FS is not set |
1012 | # CONFIG_AFS_FS is not set | 864 | # CONFIG_AFS_FS is not set |
1013 | # CONFIG_9P_FS is not set | ||
1014 | 865 | ||
1015 | # | 866 | # |
1016 | # Partition Types | 867 | # Partition Types |
@@ -1026,10 +877,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1026 | # | 877 | # |
1027 | # Distributed Lock Manager | 878 | # Distributed Lock Manager |
1028 | # | 879 | # |
1029 | CONFIG_DLM=m | 880 | # CONFIG_DLM is not set |
1030 | CONFIG_DLM_TCP=y | ||
1031 | # CONFIG_DLM_SCTP is not set | ||
1032 | # CONFIG_DLM_DEBUG is not set | ||
1033 | 881 | ||
1034 | # | 882 | # |
1035 | # Profiling support | 883 | # Profiling support |
@@ -1047,7 +895,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1047 | # CONFIG_DEBUG_FS is not set | 895 | # CONFIG_DEBUG_FS is not set |
1048 | # CONFIG_HEADERS_CHECK is not set | 896 | # CONFIG_HEADERS_CHECK is not set |
1049 | # CONFIG_DEBUG_KERNEL is not set | 897 | # CONFIG_DEBUG_KERNEL is not set |
1050 | CONFIG_LOG_BUF_SHIFT=14 | ||
1051 | CONFIG_CROSSCOMPILE=y | 898 | CONFIG_CROSSCOMPILE=y |
1052 | CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" | 899 | CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" |
1053 | 900 | ||
@@ -1056,63 +903,20 @@ CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" | |||
1056 | # | 903 | # |
1057 | # CONFIG_KEYS is not set | 904 | # CONFIG_KEYS is not set |
1058 | # CONFIG_SECURITY is not set | 905 | # CONFIG_SECURITY is not set |
1059 | 906 | # CONFIG_CRYPTO is not set | |
1060 | # | ||
1061 | # Cryptographic options | ||
1062 | # | ||
1063 | CONFIG_CRYPTO=y | ||
1064 | CONFIG_CRYPTO_ALGAPI=y | ||
1065 | CONFIG_CRYPTO_BLKCIPHER=m | ||
1066 | CONFIG_CRYPTO_HASH=m | ||
1067 | CONFIG_CRYPTO_MANAGER=m | ||
1068 | CONFIG_CRYPTO_HMAC=m | ||
1069 | CONFIG_CRYPTO_XCBC=m | ||
1070 | CONFIG_CRYPTO_NULL=m | ||
1071 | CONFIG_CRYPTO_MD4=m | ||
1072 | CONFIG_CRYPTO_MD5=y | ||
1073 | CONFIG_CRYPTO_SHA1=m | ||
1074 | CONFIG_CRYPTO_SHA256=m | ||
1075 | CONFIG_CRYPTO_SHA512=m | ||
1076 | CONFIG_CRYPTO_WP512=m | ||
1077 | CONFIG_CRYPTO_TGR192=m | ||
1078 | CONFIG_CRYPTO_GF128MUL=m | ||
1079 | CONFIG_CRYPTO_ECB=m | ||
1080 | CONFIG_CRYPTO_CBC=m | ||
1081 | CONFIG_CRYPTO_PCBC=m | ||
1082 | CONFIG_CRYPTO_LRW=m | ||
1083 | CONFIG_CRYPTO_DES=m | ||
1084 | CONFIG_CRYPTO_FCRYPT=m | ||
1085 | CONFIG_CRYPTO_BLOWFISH=m | ||
1086 | CONFIG_CRYPTO_TWOFISH=m | ||
1087 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1088 | CONFIG_CRYPTO_SERPENT=m | ||
1089 | CONFIG_CRYPTO_AES=m | ||
1090 | CONFIG_CRYPTO_CAST5=m | ||
1091 | CONFIG_CRYPTO_CAST6=m | ||
1092 | CONFIG_CRYPTO_TEA=m | ||
1093 | CONFIG_CRYPTO_ARC4=m | ||
1094 | CONFIG_CRYPTO_KHAZAD=m | ||
1095 | CONFIG_CRYPTO_ANUBIS=m | ||
1096 | CONFIG_CRYPTO_DEFLATE=m | ||
1097 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1098 | CONFIG_CRYPTO_CRC32C=m | ||
1099 | CONFIG_CRYPTO_CAMELLIA=m | ||
1100 | # CONFIG_CRYPTO_TEST is not set | ||
1101 | |||
1102 | # | ||
1103 | # Hardware crypto devices | ||
1104 | # | ||
1105 | 907 | ||
1106 | # | 908 | # |
1107 | # Library routines | 909 | # Library routines |
1108 | # | 910 | # |
1109 | CONFIG_BITREVERSE=y | 911 | CONFIG_BITREVERSE=y |
1110 | # CONFIG_CRC_CCITT is not set | 912 | CONFIG_CRC_CCITT=y |
1111 | # CONFIG_CRC16 is not set | 913 | # CONFIG_CRC16 is not set |
914 | # CONFIG_CRC_ITU_T is not set | ||
1112 | CONFIG_CRC32=y | 915 | CONFIG_CRC32=y |
1113 | CONFIG_LIBCRC32C=m | 916 | # CONFIG_CRC7 is not set |
917 | # CONFIG_LIBCRC32C is not set | ||
1114 | CONFIG_ZLIB_INFLATE=m | 918 | CONFIG_ZLIB_INFLATE=m |
1115 | CONFIG_ZLIB_DEFLATE=m | ||
1116 | CONFIG_PLIST=y | 919 | CONFIG_PLIST=y |
1117 | CONFIG_HAS_IOMEM=y | 920 | CONFIG_HAS_IOMEM=y |
1118 | CONFIG_HAS_IOPORT=y | 921 | CONFIG_HAS_IOPORT=y |
922 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig index aea67568842a..9fd0faeacf53 100644 --- a/arch/mips/configs/tb0226_defconfig +++ b/arch/mips/configs/tb0226_defconfig | |||
@@ -1,68 +1,56 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.20 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Tue Feb 20 21:47:41 2007 | 4 | # Thu Aug 9 11:16:55 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 13 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
30 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
31 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 21 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 22 | CONFIG_MACH_VR41XX=y |
36 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
38 | CONFIG_MACH_VR41XX=y | 25 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
43 | # CONFIG_SGI_IP27 is not set | 29 | # CONFIG_SGI_IP27 is not set |
44 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
55 | # CONFIG_TOSHIBA_JMR3927 is not set | 41 | # CONFIG_TOSHIBA_JMR3927 is not set |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 42 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 43 | # CONFIG_TOSHIBA_RBTX4938 is not set |
44 | # CONFIG_WR_PPMC is not set | ||
58 | # CONFIG_CASIO_E55 is not set | 45 | # CONFIG_CASIO_E55 is not set |
59 | # CONFIG_IBM_WORKPAD is not set | 46 | # CONFIG_IBM_WORKPAD is not set |
60 | # CONFIG_NEC_CMBVR4133 is not set | 47 | # CONFIG_NEC_CMBVR4133 is not set |
61 | CONFIG_TANBAC_TB022X=y | 48 | CONFIG_TANBAC_TB022X=y |
62 | CONFIG_TANBAC_TB0226=y | ||
63 | # CONFIG_TANBAC_TB0287 is not set | ||
64 | # CONFIG_VICTOR_MPC30X is not set | 49 | # CONFIG_VICTOR_MPC30X is not set |
65 | # CONFIG_ZAO_CAPCELLA is not set | 50 | # CONFIG_ZAO_CAPCELLA is not set |
51 | # CONFIG_TANBAC_TB0219 is not set | ||
52 | CONFIG_TANBAC_TB0226=y | ||
53 | # CONFIG_TANBAC_TB0287 is not set | ||
66 | CONFIG_PCI_VR41XX=y | 54 | CONFIG_PCI_VR41XX=y |
67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 55 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
68 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 56 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
@@ -75,6 +63,8 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
75 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 63 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
76 | CONFIG_DMA_NONCOHERENT=y | 64 | CONFIG_DMA_NONCOHERENT=y |
77 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 65 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
66 | # CONFIG_HOTPLUG_CPU is not set | ||
67 | # CONFIG_NO_IOPORT is not set | ||
78 | # CONFIG_CPU_BIG_ENDIAN is not set | 68 | # CONFIG_CPU_BIG_ENDIAN is not set |
79 | CONFIG_CPU_LITTLE_ENDIAN=y | 69 | CONFIG_CPU_LITTLE_ENDIAN=y |
80 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 70 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
@@ -84,6 +74,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
84 | # | 74 | # |
85 | # CPU selection | 75 | # CPU selection |
86 | # | 76 | # |
77 | # CONFIG_CPU_LOONGSON2 is not set | ||
87 | # CONFIG_CPU_MIPS32_R1 is not set | 78 | # CONFIG_CPU_MIPS32_R1 is not set |
88 | # CONFIG_CPU_MIPS32_R2 is not set | 79 | # CONFIG_CPU_MIPS32_R2 is not set |
89 | # CONFIG_CPU_MIPS64_R1 is not set | 80 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -105,7 +96,6 @@ CONFIG_CPU_VR41XX=y | |||
105 | # CONFIG_CPU_SB1 is not set | 96 | # CONFIG_CPU_SB1 is not set |
106 | CONFIG_SYS_HAS_CPU_VR41XX=y | 97 | CONFIG_SYS_HAS_CPU_VR41XX=y |
107 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | 98 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y |
108 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
109 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | 99 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y |
110 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | 100 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y |
111 | 101 | ||
@@ -121,7 +111,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
121 | CONFIG_MIPS_MT_DISABLED=y | 111 | CONFIG_MIPS_MT_DISABLED=y |
122 | # CONFIG_MIPS_MT_SMP is not set | 112 | # CONFIG_MIPS_MT_SMP is not set |
123 | # CONFIG_MIPS_MT_SMTC is not set | 113 | # CONFIG_MIPS_MT_SMTC is not set |
124 | # CONFIG_MIPS_VPE_LOADER is not set | ||
125 | CONFIG_CPU_HAS_SYNC=y | 114 | CONFIG_CPU_HAS_SYNC=y |
126 | CONFIG_GENERIC_HARDIRQS=y | 115 | CONFIG_GENERIC_HARDIRQS=y |
127 | CONFIG_GENERIC_IRQ_PROBE=y | 116 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -135,48 +124,47 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
135 | # CONFIG_SPARSEMEM_STATIC is not set | 124 | # CONFIG_SPARSEMEM_STATIC is not set |
136 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 125 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
137 | # CONFIG_RESOURCES_64BIT is not set | 126 | # CONFIG_RESOURCES_64BIT is not set |
138 | CONFIG_ZONE_DMA_FLAG=1 | 127 | CONFIG_ZONE_DMA_FLAG=0 |
128 | CONFIG_VIRT_TO_BUS=y | ||
139 | # CONFIG_HZ_48 is not set | 129 | # CONFIG_HZ_48 is not set |
140 | # CONFIG_HZ_100 is not set | 130 | # CONFIG_HZ_100 is not set |
141 | # CONFIG_HZ_128 is not set | 131 | # CONFIG_HZ_128 is not set |
142 | # CONFIG_HZ_250 is not set | 132 | CONFIG_HZ_250=y |
143 | # CONFIG_HZ_256 is not set | 133 | # CONFIG_HZ_256 is not set |
144 | CONFIG_HZ_1000=y | 134 | # CONFIG_HZ_1000 is not set |
145 | # CONFIG_HZ_1024 is not set | 135 | # CONFIG_HZ_1024 is not set |
146 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | 136 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y |
147 | CONFIG_HZ=1000 | 137 | CONFIG_HZ=250 |
148 | CONFIG_PREEMPT_NONE=y | 138 | CONFIG_PREEMPT_NONE=y |
149 | # CONFIG_PREEMPT_VOLUNTARY is not set | 139 | # CONFIG_PREEMPT_VOLUNTARY is not set |
150 | # CONFIG_PREEMPT is not set | 140 | # CONFIG_PREEMPT is not set |
151 | # CONFIG_KEXEC is not set | 141 | # CONFIG_KEXEC is not set |
142 | CONFIG_SECCOMP=y | ||
152 | CONFIG_LOCKDEP_SUPPORT=y | 143 | CONFIG_LOCKDEP_SUPPORT=y |
153 | CONFIG_STACKTRACE_SUPPORT=y | 144 | CONFIG_STACKTRACE_SUPPORT=y |
154 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 145 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
155 | 146 | ||
156 | # | 147 | # |
157 | # Code maturity level options | 148 | # General setup |
158 | # | 149 | # |
159 | CONFIG_EXPERIMENTAL=y | 150 | CONFIG_EXPERIMENTAL=y |
160 | CONFIG_BROKEN_ON_SMP=y | 151 | CONFIG_BROKEN_ON_SMP=y |
161 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 152 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
162 | |||
163 | # | ||
164 | # General setup | ||
165 | # | ||
166 | CONFIG_LOCALVERSION="" | 153 | CONFIG_LOCALVERSION="" |
167 | CONFIG_LOCALVERSION_AUTO=y | 154 | CONFIG_LOCALVERSION_AUTO=y |
168 | CONFIG_SWAP=y | 155 | CONFIG_SWAP=y |
169 | CONFIG_SYSVIPC=y | 156 | CONFIG_SYSVIPC=y |
170 | # CONFIG_IPC_NS is not set | ||
171 | CONFIG_SYSVIPC_SYSCTL=y | 157 | CONFIG_SYSVIPC_SYSCTL=y |
172 | # CONFIG_POSIX_MQUEUE is not set | 158 | # CONFIG_POSIX_MQUEUE is not set |
173 | # CONFIG_BSD_PROCESS_ACCT is not set | 159 | # CONFIG_BSD_PROCESS_ACCT is not set |
174 | # CONFIG_TASKSTATS is not set | 160 | # CONFIG_TASKSTATS is not set |
175 | # CONFIG_UTS_NS is not set | 161 | # CONFIG_USER_NS is not set |
176 | # CONFIG_AUDIT is not set | 162 | # CONFIG_AUDIT is not set |
177 | # CONFIG_IKCONFIG is not set | 163 | # CONFIG_IKCONFIG is not set |
164 | CONFIG_LOG_BUF_SHIFT=14 | ||
178 | CONFIG_SYSFS_DEPRECATED=y | 165 | CONFIG_SYSFS_DEPRECATED=y |
179 | # CONFIG_RELAY is not set | 166 | # CONFIG_RELAY is not set |
167 | # CONFIG_BLK_DEV_INITRD is not set | ||
180 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 168 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
181 | CONFIG_SYSCTL=y | 169 | CONFIG_SYSCTL=y |
182 | CONFIG_EMBEDDED=y | 170 | CONFIG_EMBEDDED=y |
@@ -189,32 +177,30 @@ CONFIG_BUG=y | |||
189 | CONFIG_ELF_CORE=y | 177 | CONFIG_ELF_CORE=y |
190 | CONFIG_BASE_FULL=y | 178 | CONFIG_BASE_FULL=y |
191 | CONFIG_FUTEX=y | 179 | CONFIG_FUTEX=y |
180 | CONFIG_ANON_INODES=y | ||
192 | CONFIG_EPOLL=y | 181 | CONFIG_EPOLL=y |
182 | CONFIG_SIGNALFD=y | ||
183 | CONFIG_TIMERFD=y | ||
184 | CONFIG_EVENTFD=y | ||
193 | CONFIG_SHMEM=y | 185 | CONFIG_SHMEM=y |
194 | CONFIG_SLAB=y | ||
195 | CONFIG_VM_EVENT_COUNTERS=y | 186 | CONFIG_VM_EVENT_COUNTERS=y |
187 | CONFIG_SLAB=y | ||
188 | # CONFIG_SLUB is not set | ||
189 | # CONFIG_SLOB is not set | ||
196 | CONFIG_RT_MUTEXES=y | 190 | CONFIG_RT_MUTEXES=y |
197 | # CONFIG_TINY_SHMEM is not set | 191 | # CONFIG_TINY_SHMEM is not set |
198 | CONFIG_BASE_SMALL=0 | 192 | CONFIG_BASE_SMALL=0 |
199 | # CONFIG_SLOB is not set | ||
200 | |||
201 | # | ||
202 | # Loadable module support | ||
203 | # | ||
204 | CONFIG_MODULES=y | 193 | CONFIG_MODULES=y |
205 | CONFIG_MODULE_UNLOAD=y | 194 | CONFIG_MODULE_UNLOAD=y |
206 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 195 | CONFIG_MODULE_FORCE_UNLOAD=y |
207 | CONFIG_MODVERSIONS=y | 196 | CONFIG_MODVERSIONS=y |
208 | CONFIG_MODULE_SRCVERSION_ALL=y | 197 | CONFIG_MODULE_SRCVERSION_ALL=y |
209 | CONFIG_KMOD=y | 198 | CONFIG_KMOD=y |
210 | |||
211 | # | ||
212 | # Block layer | ||
213 | # | ||
214 | CONFIG_BLOCK=y | 199 | CONFIG_BLOCK=y |
215 | # CONFIG_LBD is not set | 200 | # CONFIG_LBD is not set |
216 | # CONFIG_BLK_DEV_IO_TRACE is not set | 201 | # CONFIG_BLK_DEV_IO_TRACE is not set |
217 | # CONFIG_LSF is not set | 202 | # CONFIG_LSF is not set |
203 | # CONFIG_BLK_DEV_BSG is not set | ||
218 | 204 | ||
219 | # | 205 | # |
220 | # IO Schedulers | 206 | # IO Schedulers |
@@ -234,16 +220,13 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
234 | # | 220 | # |
235 | CONFIG_HW_HAS_PCI=y | 221 | CONFIG_HW_HAS_PCI=y |
236 | CONFIG_PCI=y | 222 | CONFIG_PCI=y |
223 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
237 | CONFIG_MMU=y | 224 | CONFIG_MMU=y |
238 | 225 | ||
239 | # | 226 | # |
240 | # PCCARD (PCMCIA/CardBus) support | 227 | # PCCARD (PCMCIA/CardBus) support |
241 | # | 228 | # |
242 | # CONFIG_PCCARD is not set | 229 | # CONFIG_PCCARD is not set |
243 | |||
244 | # | ||
245 | # PCI Hotplug Support | ||
246 | # | ||
247 | # CONFIG_HOTPLUG_PCI is not set | 230 | # CONFIG_HOTPLUG_PCI is not set |
248 | 231 | ||
249 | # | 232 | # |
@@ -256,10 +239,7 @@ CONFIG_TRAD_SIGNALS=y | |||
256 | # | 239 | # |
257 | # Power management options | 240 | # Power management options |
258 | # | 241 | # |
259 | CONFIG_PM=y | 242 | # CONFIG_PM is not set |
260 | # CONFIG_PM_LEGACY is not set | ||
261 | # CONFIG_PM_DEBUG is not set | ||
262 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
263 | 243 | ||
264 | # | 244 | # |
265 | # Networking | 245 | # Networking |
@@ -269,14 +249,9 @@ CONFIG_NET=y | |||
269 | # | 249 | # |
270 | # Networking options | 250 | # Networking options |
271 | # | 251 | # |
272 | # CONFIG_NETDEBUG is not set | ||
273 | CONFIG_PACKET=y | 252 | CONFIG_PACKET=y |
274 | # CONFIG_PACKET_MMAP is not set | 253 | # CONFIG_PACKET_MMAP is not set |
275 | CONFIG_UNIX=y | 254 | CONFIG_UNIX=y |
276 | CONFIG_XFRM=y | ||
277 | # CONFIG_XFRM_USER is not set | ||
278 | # CONFIG_XFRM_SUB_POLICY is not set | ||
279 | CONFIG_XFRM_MIGRATE=y | ||
280 | # CONFIG_NET_KEY is not set | 255 | # CONFIG_NET_KEY is not set |
281 | CONFIG_INET=y | 256 | CONFIG_INET=y |
282 | CONFIG_IP_MULTICAST=y | 257 | CONFIG_IP_MULTICAST=y |
@@ -286,7 +261,6 @@ CONFIG_ASK_IP_FIB_HASH=y | |||
286 | CONFIG_IP_FIB_HASH=y | 261 | CONFIG_IP_FIB_HASH=y |
287 | CONFIG_IP_MULTIPLE_TABLES=y | 262 | CONFIG_IP_MULTIPLE_TABLES=y |
288 | CONFIG_IP_ROUTE_MULTIPATH=y | 263 | CONFIG_IP_ROUTE_MULTIPATH=y |
289 | # CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set | ||
290 | CONFIG_IP_ROUTE_VERBOSE=y | 264 | CONFIG_IP_ROUTE_VERBOSE=y |
291 | CONFIG_IP_PNP=y | 265 | CONFIG_IP_PNP=y |
292 | # CONFIG_IP_PNP_DHCP is not set | 266 | # CONFIG_IP_PNP_DHCP is not set |
@@ -302,34 +276,25 @@ CONFIG_SYN_COOKIES=y | |||
302 | # CONFIG_INET_IPCOMP is not set | 276 | # CONFIG_INET_IPCOMP is not set |
303 | # CONFIG_INET_XFRM_TUNNEL is not set | 277 | # CONFIG_INET_XFRM_TUNNEL is not set |
304 | # CONFIG_INET_TUNNEL is not set | 278 | # CONFIG_INET_TUNNEL is not set |
305 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | 279 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set |
306 | CONFIG_INET_XFRM_MODE_TUNNEL=m | 280 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set |
307 | CONFIG_INET_XFRM_MODE_BEET=m | 281 | # CONFIG_INET_XFRM_MODE_BEET is not set |
308 | CONFIG_INET_DIAG=y | 282 | CONFIG_INET_DIAG=y |
309 | CONFIG_INET_TCP_DIAG=y | 283 | CONFIG_INET_TCP_DIAG=y |
310 | # CONFIG_TCP_CONG_ADVANCED is not set | 284 | # CONFIG_TCP_CONG_ADVANCED is not set |
311 | CONFIG_TCP_CONG_CUBIC=y | 285 | CONFIG_TCP_CONG_CUBIC=y |
312 | CONFIG_DEFAULT_TCP_CONG="cubic" | 286 | CONFIG_DEFAULT_TCP_CONG="cubic" |
313 | CONFIG_TCP_MD5SIG=y | 287 | # CONFIG_TCP_MD5SIG is not set |
314 | # CONFIG_IPV6 is not set | 288 | # CONFIG_IPV6 is not set |
315 | # CONFIG_INET6_XFRM_TUNNEL is not set | 289 | # CONFIG_INET6_XFRM_TUNNEL is not set |
316 | # CONFIG_INET6_TUNNEL is not set | 290 | # CONFIG_INET6_TUNNEL is not set |
317 | CONFIG_NETWORK_SECMARK=y | 291 | CONFIG_NETWORK_SECMARK=y |
318 | # CONFIG_NETFILTER is not set | 292 | # CONFIG_NETFILTER is not set |
319 | |||
320 | # | ||
321 | # DCCP Configuration (EXPERIMENTAL) | ||
322 | # | ||
323 | # CONFIG_IP_DCCP is not set | 293 | # CONFIG_IP_DCCP is not set |
324 | |||
325 | # | ||
326 | # SCTP Configuration (EXPERIMENTAL) | ||
327 | # | ||
328 | # CONFIG_IP_SCTP is not set | 294 | # CONFIG_IP_SCTP is not set |
329 | 295 | # CONFIG_SCTP_HMAC_NONE is not set | |
330 | # | 296 | # CONFIG_SCTP_HMAC_SHA1 is not set |
331 | # TIPC Configuration (EXPERIMENTAL) | 297 | # CONFIG_SCTP_HMAC_MD5 is not set |
332 | # | ||
333 | # CONFIG_TIPC is not set | 298 | # CONFIG_TIPC is not set |
334 | # CONFIG_ATM is not set | 299 | # CONFIG_ATM is not set |
335 | # CONFIG_BRIDGE is not set | 300 | # CONFIG_BRIDGE is not set |
@@ -355,10 +320,20 @@ CONFIG_NETWORK_SECMARK=y | |||
355 | # CONFIG_HAMRADIO is not set | 320 | # CONFIG_HAMRADIO is not set |
356 | # CONFIG_IRDA is not set | 321 | # CONFIG_IRDA is not set |
357 | # CONFIG_BT is not set | 322 | # CONFIG_BT is not set |
358 | # CONFIG_IEEE80211 is not set | 323 | # CONFIG_AF_RXRPC is not set |
359 | CONFIG_FIB_RULES=y | 324 | CONFIG_FIB_RULES=y |
360 | 325 | ||
361 | # | 326 | # |
327 | # Wireless | ||
328 | # | ||
329 | # CONFIG_CFG80211 is not set | ||
330 | # CONFIG_WIRELESS_EXT is not set | ||
331 | # CONFIG_MAC80211 is not set | ||
332 | # CONFIG_IEEE80211 is not set | ||
333 | # CONFIG_RFKILL is not set | ||
334 | # CONFIG_NET_9P is not set | ||
335 | |||
336 | # | ||
362 | # Device Drivers | 337 | # Device Drivers |
363 | # | 338 | # |
364 | 339 | ||
@@ -369,30 +344,10 @@ CONFIG_STANDALONE=y | |||
369 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 344 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
370 | CONFIG_FW_LOADER=y | 345 | CONFIG_FW_LOADER=y |
371 | # CONFIG_SYS_HYPERVISOR is not set | 346 | # CONFIG_SYS_HYPERVISOR is not set |
372 | 347 | # CONFIG_CONNECTOR is not set | |
373 | # | ||
374 | # Connector - unified userspace <-> kernelspace linker | ||
375 | # | ||
376 | CONFIG_CONNECTOR=m | ||
377 | |||
378 | # | ||
379 | # Memory Technology Devices (MTD) | ||
380 | # | ||
381 | # CONFIG_MTD is not set | 348 | # CONFIG_MTD is not set |
382 | |||
383 | # | ||
384 | # Parallel port support | ||
385 | # | ||
386 | # CONFIG_PARPORT is not set | 349 | # CONFIG_PARPORT is not set |
387 | 350 | CONFIG_BLK_DEV=y | |
388 | # | ||
389 | # Plug and Play support | ||
390 | # | ||
391 | # CONFIG_PNPACPI is not set | ||
392 | |||
393 | # | ||
394 | # Block devices | ||
395 | # | ||
396 | # CONFIG_BLK_CPQ_DA is not set | 351 | # CONFIG_BLK_CPQ_DA is not set |
397 | # CONFIG_BLK_CPQ_CISS_DA is not set | 352 | # CONFIG_BLK_CPQ_CISS_DA is not set |
398 | # CONFIG_BLK_DEV_DAC960 is not set | 353 | # CONFIG_BLK_DEV_DAC960 is not set |
@@ -407,19 +362,9 @@ CONFIG_BLK_DEV_RAM=y | |||
407 | CONFIG_BLK_DEV_RAM_COUNT=16 | 362 | CONFIG_BLK_DEV_RAM_COUNT=16 |
408 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 363 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
409 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 364 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
410 | # CONFIG_BLK_DEV_INITRD is not set | ||
411 | # CONFIG_CDROM_PKTCDVD is not set | 365 | # CONFIG_CDROM_PKTCDVD is not set |
412 | # CONFIG_ATA_OVER_ETH is not set | 366 | # CONFIG_ATA_OVER_ETH is not set |
413 | 367 | # CONFIG_MISC_DEVICES is not set | |
414 | # | ||
415 | # Misc devices | ||
416 | # | ||
417 | CONFIG_SGI_IOC4=m | ||
418 | # CONFIG_TIFM_CORE is not set | ||
419 | |||
420 | # | ||
421 | # ATA/ATAPI/MFM/RLL support | ||
422 | # | ||
423 | # CONFIG_IDE is not set | 368 | # CONFIG_IDE is not set |
424 | 369 | ||
425 | # | 370 | # |
@@ -427,6 +372,7 @@ CONFIG_SGI_IOC4=m | |||
427 | # | 372 | # |
428 | # CONFIG_RAID_ATTRS is not set | 373 | # CONFIG_RAID_ATTRS is not set |
429 | CONFIG_SCSI=y | 374 | CONFIG_SCSI=y |
375 | CONFIG_SCSI_DMA=y | ||
430 | CONFIG_SCSI_TGT=m | 376 | CONFIG_SCSI_TGT=m |
431 | # CONFIG_SCSI_NETLINK is not set | 377 | # CONFIG_SCSI_NETLINK is not set |
432 | CONFIG_SCSI_PROC_FS=y | 378 | CONFIG_SCSI_PROC_FS=y |
@@ -448,6 +394,7 @@ CONFIG_SCSI_MULTI_LUN=y | |||
448 | # CONFIG_SCSI_CONSTANTS is not set | 394 | # CONFIG_SCSI_CONSTANTS is not set |
449 | # CONFIG_SCSI_LOGGING is not set | 395 | # CONFIG_SCSI_LOGGING is not set |
450 | CONFIG_SCSI_SCAN_ASYNC=y | 396 | CONFIG_SCSI_SCAN_ASYNC=y |
397 | CONFIG_SCSI_WAIT_SCAN=m | ||
451 | 398 | ||
452 | # | 399 | # |
453 | # SCSI Transports | 400 | # SCSI Transports |
@@ -458,51 +405,8 @@ CONFIG_SCSI_SCAN_ASYNC=y | |||
458 | CONFIG_SCSI_SAS_ATTRS=m | 405 | CONFIG_SCSI_SAS_ATTRS=m |
459 | CONFIG_SCSI_SAS_LIBSAS=m | 406 | CONFIG_SCSI_SAS_LIBSAS=m |
460 | # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set | 407 | # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set |
461 | 408 | # CONFIG_SCSI_LOWLEVEL is not set | |
462 | # | ||
463 | # SCSI low-level drivers | ||
464 | # | ||
465 | # CONFIG_ISCSI_TCP is not set | ||
466 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | ||
467 | # CONFIG_SCSI_3W_9XXX is not set | ||
468 | # CONFIG_SCSI_ACARD is not set | ||
469 | # CONFIG_SCSI_AACRAID is not set | ||
470 | # CONFIG_SCSI_AIC7XXX is not set | ||
471 | # CONFIG_SCSI_AIC7XXX_OLD is not set | ||
472 | # CONFIG_SCSI_AIC79XX is not set | ||
473 | CONFIG_SCSI_AIC94XX=m | ||
474 | # CONFIG_AIC94XX_DEBUG is not set | ||
475 | # CONFIG_SCSI_DPT_I2O is not set | ||
476 | # CONFIG_SCSI_ARCMSR is not set | ||
477 | # CONFIG_MEGARAID_NEWGEN is not set | ||
478 | # CONFIG_MEGARAID_LEGACY is not set | ||
479 | # CONFIG_MEGARAID_SAS is not set | ||
480 | # CONFIG_SCSI_HPTIOP is not set | ||
481 | # CONFIG_SCSI_DMX3191D is not set | ||
482 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | ||
483 | # CONFIG_SCSI_IPS is not set | ||
484 | # CONFIG_SCSI_INITIO is not set | ||
485 | # CONFIG_SCSI_INIA100 is not set | ||
486 | # CONFIG_SCSI_STEX is not set | ||
487 | # CONFIG_SCSI_SYM53C8XX_2 is not set | ||
488 | # CONFIG_SCSI_QLOGIC_1280 is not set | ||
489 | # CONFIG_SCSI_QLA_FC is not set | ||
490 | # CONFIG_SCSI_QLA_ISCSI is not set | ||
491 | # CONFIG_SCSI_LPFC is not set | ||
492 | # CONFIG_SCSI_DC395x is not set | ||
493 | # CONFIG_SCSI_DC390T is not set | ||
494 | # CONFIG_SCSI_NSP32 is not set | ||
495 | # CONFIG_SCSI_DEBUG is not set | ||
496 | # CONFIG_SCSI_SRP is not set | ||
497 | |||
498 | # | ||
499 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
500 | # | ||
501 | # CONFIG_ATA is not set | 409 | # CONFIG_ATA is not set |
502 | |||
503 | # | ||
504 | # Multi-device support (RAID and LVM) | ||
505 | # | ||
506 | # CONFIG_MD is not set | 410 | # CONFIG_MD is not set |
507 | 411 | ||
508 | # | 412 | # |
@@ -516,59 +420,26 @@ CONFIG_SCSI_AIC94XX=m | |||
516 | # | 420 | # |
517 | # IEEE 1394 (FireWire) support | 421 | # IEEE 1394 (FireWire) support |
518 | # | 422 | # |
423 | # CONFIG_FIREWIRE is not set | ||
519 | # CONFIG_IEEE1394 is not set | 424 | # CONFIG_IEEE1394 is not set |
520 | |||
521 | # | ||
522 | # I2O device support | ||
523 | # | ||
524 | # CONFIG_I2O is not set | 425 | # CONFIG_I2O is not set |
525 | |||
526 | # | ||
527 | # Network device support | ||
528 | # | ||
529 | CONFIG_NETDEVICES=y | 426 | CONFIG_NETDEVICES=y |
427 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
530 | # CONFIG_DUMMY is not set | 428 | # CONFIG_DUMMY is not set |
531 | # CONFIG_BONDING is not set | 429 | # CONFIG_BONDING is not set |
430 | # CONFIG_MACVLAN is not set | ||
532 | # CONFIG_EQUALIZER is not set | 431 | # CONFIG_EQUALIZER is not set |
533 | # CONFIG_TUN is not set | 432 | # CONFIG_TUN is not set |
534 | |||
535 | # | ||
536 | # ARCnet devices | ||
537 | # | ||
538 | # CONFIG_ARCNET is not set | 433 | # CONFIG_ARCNET is not set |
539 | 434 | # CONFIG_PHYLIB is not set | |
540 | # | ||
541 | # PHY device support | ||
542 | # | ||
543 | CONFIG_PHYLIB=m | ||
544 | |||
545 | # | ||
546 | # MII PHY device drivers | ||
547 | # | ||
548 | CONFIG_MARVELL_PHY=m | ||
549 | CONFIG_DAVICOM_PHY=m | ||
550 | CONFIG_QSEMI_PHY=m | ||
551 | CONFIG_LXT_PHY=m | ||
552 | CONFIG_CICADA_PHY=m | ||
553 | CONFIG_VITESSE_PHY=m | ||
554 | CONFIG_SMSC_PHY=m | ||
555 | # CONFIG_BROADCOM_PHY is not set | ||
556 | # CONFIG_FIXED_PHY is not set | ||
557 | |||
558 | # | ||
559 | # Ethernet (10 or 100Mbit) | ||
560 | # | ||
561 | CONFIG_NET_ETHERNET=y | 435 | CONFIG_NET_ETHERNET=y |
562 | CONFIG_MII=y | 436 | CONFIG_MII=y |
437 | # CONFIG_AX88796 is not set | ||
563 | # CONFIG_HAPPYMEAL is not set | 438 | # CONFIG_HAPPYMEAL is not set |
564 | # CONFIG_SUNGEM is not set | 439 | # CONFIG_SUNGEM is not set |
565 | # CONFIG_CASSINI is not set | 440 | # CONFIG_CASSINI is not set |
566 | # CONFIG_NET_VENDOR_3COM is not set | 441 | # CONFIG_NET_VENDOR_3COM is not set |
567 | # CONFIG_DM9000 is not set | 442 | # CONFIG_DM9000 is not set |
568 | |||
569 | # | ||
570 | # Tulip family network device support | ||
571 | # | ||
572 | # CONFIG_NET_TULIP is not set | 443 | # CONFIG_NET_TULIP is not set |
573 | # CONFIG_HP100 is not set | 444 | # CONFIG_HP100 is not set |
574 | CONFIG_NET_PCI=y | 445 | CONFIG_NET_PCI=y |
@@ -577,6 +448,7 @@ CONFIG_NET_PCI=y | |||
577 | # CONFIG_ADAPTEC_STARFIRE is not set | 448 | # CONFIG_ADAPTEC_STARFIRE is not set |
578 | # CONFIG_B44 is not set | 449 | # CONFIG_B44 is not set |
579 | # CONFIG_FORCEDETH is not set | 450 | # CONFIG_FORCEDETH is not set |
451 | # CONFIG_TC35815 is not set | ||
580 | # CONFIG_DGRS is not set | 452 | # CONFIG_DGRS is not set |
581 | # CONFIG_EEPRO100 is not set | 453 | # CONFIG_EEPRO100 is not set |
582 | CONFIG_E100=y | 454 | CONFIG_E100=y |
@@ -591,50 +463,25 @@ CONFIG_E100=y | |||
591 | # CONFIG_TLAN is not set | 463 | # CONFIG_TLAN is not set |
592 | # CONFIG_VIA_RHINE is not set | 464 | # CONFIG_VIA_RHINE is not set |
593 | # CONFIG_SC92031 is not set | 465 | # CONFIG_SC92031 is not set |
594 | 466 | # CONFIG_NETDEV_1000 is not set | |
595 | # | 467 | # CONFIG_NETDEV_10000 is not set |
596 | # Ethernet (1000 Mbit) | ||
597 | # | ||
598 | # CONFIG_ACENIC is not set | ||
599 | # CONFIG_DL2K is not set | ||
600 | # CONFIG_E1000 is not set | ||
601 | # CONFIG_NS83820 is not set | ||
602 | # CONFIG_HAMACHI is not set | ||
603 | # CONFIG_YELLOWFIN is not set | ||
604 | # CONFIG_R8169 is not set | ||
605 | # CONFIG_SIS190 is not set | ||
606 | # CONFIG_SKGE is not set | ||
607 | # CONFIG_SKY2 is not set | ||
608 | # CONFIG_SK98LIN is not set | ||
609 | # CONFIG_VIA_VELOCITY is not set | ||
610 | # CONFIG_TIGON3 is not set | ||
611 | # CONFIG_BNX2 is not set | ||
612 | CONFIG_QLA3XXX=m | ||
613 | # CONFIG_ATL1 is not set | ||
614 | |||
615 | # | ||
616 | # Ethernet (10000 Mbit) | ||
617 | # | ||
618 | # CONFIG_CHELSIO_T1 is not set | ||
619 | CONFIG_CHELSIO_T3=m | ||
620 | # CONFIG_IXGB is not set | ||
621 | # CONFIG_S2IO is not set | ||
622 | # CONFIG_MYRI10GE is not set | ||
623 | CONFIG_NETXEN_NIC=m | ||
624 | |||
625 | # | ||
626 | # Token Ring devices | ||
627 | # | ||
628 | # CONFIG_TR is not set | 468 | # CONFIG_TR is not set |
629 | 469 | ||
630 | # | 470 | # |
631 | # Wireless LAN (non-hamradio) | 471 | # Wireless LAN |
632 | # | 472 | # |
633 | # CONFIG_NET_RADIO is not set | 473 | # CONFIG_WLAN_PRE80211 is not set |
474 | # CONFIG_WLAN_80211 is not set | ||
634 | 475 | ||
635 | # | 476 | # |
636 | # Wan interfaces | 477 | # USB Network Adapters |
637 | # | 478 | # |
479 | CONFIG_USB_CATC=m | ||
480 | CONFIG_USB_KAWETH=m | ||
481 | CONFIG_USB_PEGASUS=m | ||
482 | CONFIG_USB_RTL8150=m | ||
483 | # CONFIG_USB_USBNET_MII is not set | ||
484 | # CONFIG_USB_USBNET is not set | ||
638 | # CONFIG_WAN is not set | 485 | # CONFIG_WAN is not set |
639 | # CONFIG_FDDI is not set | 486 | # CONFIG_FDDI is not set |
640 | # CONFIG_HIPPI is not set | 487 | # CONFIG_HIPPI is not set |
@@ -645,15 +492,7 @@ CONFIG_NETXEN_NIC=m | |||
645 | # CONFIG_NETCONSOLE is not set | 492 | # CONFIG_NETCONSOLE is not set |
646 | # CONFIG_NETPOLL is not set | 493 | # CONFIG_NETPOLL is not set |
647 | # CONFIG_NET_POLL_CONTROLLER is not set | 494 | # CONFIG_NET_POLL_CONTROLLER is not set |
648 | |||
649 | # | ||
650 | # ISDN subsystem | ||
651 | # | ||
652 | # CONFIG_ISDN is not set | 495 | # CONFIG_ISDN is not set |
653 | |||
654 | # | ||
655 | # Telephony Support | ||
656 | # | ||
657 | # CONFIG_PHONE is not set | 496 | # CONFIG_PHONE is not set |
658 | 497 | ||
659 | # | 498 | # |
@@ -661,6 +500,7 @@ CONFIG_NETXEN_NIC=m | |||
661 | # | 500 | # |
662 | CONFIG_INPUT=y | 501 | CONFIG_INPUT=y |
663 | # CONFIG_INPUT_FF_MEMLESS is not set | 502 | # CONFIG_INPUT_FF_MEMLESS is not set |
503 | # CONFIG_INPUT_POLLDEV is not set | ||
664 | 504 | ||
665 | # | 505 | # |
666 | # Userland interfaces | 506 | # Userland interfaces |
@@ -677,6 +517,7 @@ CONFIG_INPUT=y | |||
677 | # CONFIG_INPUT_KEYBOARD is not set | 517 | # CONFIG_INPUT_KEYBOARD is not set |
678 | # CONFIG_INPUT_MOUSE is not set | 518 | # CONFIG_INPUT_MOUSE is not set |
679 | # CONFIG_INPUT_JOYSTICK is not set | 519 | # CONFIG_INPUT_JOYSTICK is not set |
520 | # CONFIG_INPUT_TABLET is not set | ||
680 | # CONFIG_INPUT_TOUCHSCREEN is not set | 521 | # CONFIG_INPUT_TOUCHSCREEN is not set |
681 | # CONFIG_INPUT_MISC is not set | 522 | # CONFIG_INPUT_MISC is not set |
682 | 523 | ||
@@ -711,35 +552,18 @@ CONFIG_SERIAL_VR41XX_CONSOLE=y | |||
711 | CONFIG_UNIX98_PTYS=y | 552 | CONFIG_UNIX98_PTYS=y |
712 | CONFIG_LEGACY_PTYS=y | 553 | CONFIG_LEGACY_PTYS=y |
713 | CONFIG_LEGACY_PTY_COUNT=256 | 554 | CONFIG_LEGACY_PTY_COUNT=256 |
714 | |||
715 | # | ||
716 | # IPMI | ||
717 | # | ||
718 | # CONFIG_IPMI_HANDLER is not set | 555 | # CONFIG_IPMI_HANDLER is not set |
719 | |||
720 | # | ||
721 | # Watchdog Cards | ||
722 | # | ||
723 | # CONFIG_WATCHDOG is not set | 556 | # CONFIG_WATCHDOG is not set |
724 | # CONFIG_HW_RANDOM is not set | 557 | # CONFIG_HW_RANDOM is not set |
725 | # CONFIG_RTC is not set | 558 | # CONFIG_RTC is not set |
726 | # CONFIG_GEN_RTC is not set | ||
727 | # CONFIG_DTLK is not set | ||
728 | # CONFIG_R3964 is not set | 559 | # CONFIG_R3964 is not set |
729 | # CONFIG_APPLICOM is not set | 560 | # CONFIG_APPLICOM is not set |
730 | # CONFIG_TANBAC_TB0219 is not set | 561 | # CONFIG_GPIO_TB0219 is not set |
731 | # CONFIG_DRM is not set | 562 | # CONFIG_DRM is not set |
732 | CONFIG_GPIO_VR41XX=y | 563 | CONFIG_GPIO_VR41XX=y |
733 | # CONFIG_RAW_DRIVER is not set | 564 | # CONFIG_RAW_DRIVER is not set |
734 | |||
735 | # | ||
736 | # TPM devices | ||
737 | # | ||
738 | # CONFIG_TCG_TPM is not set | 565 | # CONFIG_TCG_TPM is not set |
739 | 566 | CONFIG_DEVPORT=y | |
740 | # | ||
741 | # I2C support | ||
742 | # | ||
743 | # CONFIG_I2C is not set | 567 | # CONFIG_I2C is not set |
744 | 568 | ||
745 | # | 569 | # |
@@ -747,33 +571,33 @@ CONFIG_GPIO_VR41XX=y | |||
747 | # | 571 | # |
748 | # CONFIG_SPI is not set | 572 | # CONFIG_SPI is not set |
749 | # CONFIG_SPI_MASTER is not set | 573 | # CONFIG_SPI_MASTER is not set |
750 | |||
751 | # | ||
752 | # Dallas's 1-wire bus | ||
753 | # | ||
754 | # CONFIG_W1 is not set | 574 | # CONFIG_W1 is not set |
575 | # CONFIG_POWER_SUPPLY is not set | ||
576 | # CONFIG_HWMON is not set | ||
755 | 577 | ||
756 | # | 578 | # |
757 | # Hardware Monitoring support | 579 | # Multifunction device drivers |
758 | # | 580 | # |
759 | # CONFIG_HWMON is not set | 581 | # CONFIG_MFD_SM501 is not set |
760 | # CONFIG_HWMON_VID is not set | ||
761 | 582 | ||
762 | # | 583 | # |
763 | # Multimedia devices | 584 | # Multimedia devices |
764 | # | 585 | # |
765 | # CONFIG_VIDEO_DEV is not set | 586 | # CONFIG_VIDEO_DEV is not set |
587 | # CONFIG_DVB_CORE is not set | ||
588 | # CONFIG_DAB is not set | ||
766 | 589 | ||
767 | # | 590 | # |
768 | # Digital Video Broadcasting Devices | 591 | # Graphics support |
769 | # | 592 | # |
770 | # CONFIG_DVB is not set | 593 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
771 | # CONFIG_USB_DABUSB is not set | ||
772 | 594 | ||
773 | # | 595 | # |
774 | # Graphics support | 596 | # Display device support |
775 | # | 597 | # |
776 | # CONFIG_FIRMWARE_EDID is not set | 598 | # CONFIG_DISPLAY_SUPPORT is not set |
599 | # CONFIG_VGASTATE is not set | ||
600 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
777 | # CONFIG_FB is not set | 601 | # CONFIG_FB is not set |
778 | 602 | ||
779 | # | 603 | # |
@@ -781,22 +605,13 @@ CONFIG_GPIO_VR41XX=y | |||
781 | # | 605 | # |
782 | # CONFIG_VGA_CONSOLE is not set | 606 | # CONFIG_VGA_CONSOLE is not set |
783 | CONFIG_DUMMY_CONSOLE=y | 607 | CONFIG_DUMMY_CONSOLE=y |
784 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
785 | 608 | ||
786 | # | 609 | # |
787 | # Sound | 610 | # Sound |
788 | # | 611 | # |
789 | # CONFIG_SOUND is not set | 612 | # CONFIG_SOUND is not set |
790 | 613 | # CONFIG_HID_SUPPORT is not set | |
791 | # | 614 | CONFIG_USB_SUPPORT=y |
792 | # HID Devices | ||
793 | # | ||
794 | CONFIG_HID=y | ||
795 | # CONFIG_HID_DEBUG is not set | ||
796 | |||
797 | # | ||
798 | # USB support | ||
799 | # | ||
800 | CONFIG_USB_ARCH_HAS_HCD=y | 615 | CONFIG_USB_ARCH_HAS_HCD=y |
801 | CONFIG_USB_ARCH_HAS_OHCI=y | 616 | CONFIG_USB_ARCH_HAS_OHCI=y |
802 | CONFIG_USB_ARCH_HAS_EHCI=y | 617 | CONFIG_USB_ARCH_HAS_EHCI=y |
@@ -807,8 +622,8 @@ CONFIG_USB=y | |||
807 | # Miscellaneous USB options | 622 | # Miscellaneous USB options |
808 | # | 623 | # |
809 | CONFIG_USB_DEVICEFS=y | 624 | CONFIG_USB_DEVICEFS=y |
625 | CONFIG_USB_DEVICE_CLASS=y | ||
810 | # CONFIG_USB_DYNAMIC_MINORS is not set | 626 | # CONFIG_USB_DYNAMIC_MINORS is not set |
811 | # CONFIG_USB_SUSPEND is not set | ||
812 | # CONFIG_USB_OTG is not set | 627 | # CONFIG_USB_OTG is not set |
813 | 628 | ||
814 | # | 629 | # |
@@ -818,7 +633,6 @@ CONFIG_USB_EHCI_HCD=y | |||
818 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | 633 | # CONFIG_USB_EHCI_SPLIT_ISO is not set |
819 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 634 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
820 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 635 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
821 | # CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set | ||
822 | # CONFIG_USB_ISP116X_HCD is not set | 636 | # CONFIG_USB_ISP116X_HCD is not set |
823 | CONFIG_USB_OHCI_HCD=y | 637 | CONFIG_USB_OHCI_HCD=y |
824 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | 638 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
@@ -826,11 +640,12 @@ CONFIG_USB_OHCI_HCD=y | |||
826 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 640 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
827 | # CONFIG_USB_UHCI_HCD is not set | 641 | # CONFIG_USB_UHCI_HCD is not set |
828 | # CONFIG_USB_SL811_HCD is not set | 642 | # CONFIG_USB_SL811_HCD is not set |
643 | # CONFIG_USB_R8A66597_HCD is not set | ||
829 | 644 | ||
830 | # | 645 | # |
831 | # USB Device Class drivers | 646 | # USB Device Class drivers |
832 | # | 647 | # |
833 | # CONFIG_USB_ACM is not set | 648 | CONFIG_USB_ACM=y |
834 | # CONFIG_USB_PRINTER is not set | 649 | # CONFIG_USB_PRINTER is not set |
835 | 650 | ||
836 | # | 651 | # |
@@ -854,44 +669,10 @@ CONFIG_USB_STORAGE=y | |||
854 | # CONFIG_USB_LIBUSUAL is not set | 669 | # CONFIG_USB_LIBUSUAL is not set |
855 | 670 | ||
856 | # | 671 | # |
857 | # USB Input Devices | ||
858 | # | ||
859 | # CONFIG_USB_HID is not set | ||
860 | |||
861 | # | ||
862 | # USB HID Boot Protocol drivers | ||
863 | # | ||
864 | # CONFIG_USB_KBD is not set | ||
865 | # CONFIG_USB_MOUSE is not set | ||
866 | # CONFIG_USB_AIPTEK is not set | ||
867 | # CONFIG_USB_WACOM is not set | ||
868 | # CONFIG_USB_ACECAD is not set | ||
869 | # CONFIG_USB_KBTAB is not set | ||
870 | # CONFIG_USB_POWERMATE is not set | ||
871 | # CONFIG_USB_TOUCHSCREEN is not set | ||
872 | # CONFIG_USB_YEALINK is not set | ||
873 | # CONFIG_USB_XPAD is not set | ||
874 | # CONFIG_USB_ATI_REMOTE is not set | ||
875 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
876 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
877 | # CONFIG_USB_APPLETOUCH is not set | ||
878 | # CONFIG_USB_GTCO is not set | ||
879 | |||
880 | # | ||
881 | # USB Imaging devices | 672 | # USB Imaging devices |
882 | # | 673 | # |
883 | # CONFIG_USB_MDC800 is not set | 674 | # CONFIG_USB_MDC800 is not set |
884 | # CONFIG_USB_MICROTEK is not set | 675 | # CONFIG_USB_MICROTEK is not set |
885 | |||
886 | # | ||
887 | # USB Network Adapters | ||
888 | # | ||
889 | # CONFIG_USB_CATC is not set | ||
890 | # CONFIG_USB_KAWETH is not set | ||
891 | # CONFIG_USB_PEGASUS is not set | ||
892 | # CONFIG_USB_RTL8150 is not set | ||
893 | # CONFIG_USB_USBNET_MII is not set | ||
894 | # CONFIG_USB_USBNET is not set | ||
895 | # CONFIG_USB_MON is not set | 676 | # CONFIG_USB_MON is not set |
896 | 677 | ||
897 | # | 678 | # |
@@ -924,6 +705,7 @@ CONFIG_USB_STORAGE=y | |||
924 | # CONFIG_USB_SISUSBVGA is not set | 705 | # CONFIG_USB_SISUSBVGA is not set |
925 | # CONFIG_USB_LD is not set | 706 | # CONFIG_USB_LD is not set |
926 | # CONFIG_USB_TRANCEVIBRATOR is not set | 707 | # CONFIG_USB_TRANCEVIBRATOR is not set |
708 | # CONFIG_USB_IOWARRIOR is not set | ||
927 | # CONFIG_USB_TEST is not set | 709 | # CONFIG_USB_TEST is not set |
928 | 710 | ||
929 | # | 711 | # |
@@ -934,37 +716,9 @@ CONFIG_USB_STORAGE=y | |||
934 | # USB Gadget Support | 716 | # USB Gadget Support |
935 | # | 717 | # |
936 | # CONFIG_USB_GADGET is not set | 718 | # CONFIG_USB_GADGET is not set |
937 | |||
938 | # | ||
939 | # MMC/SD Card support | ||
940 | # | ||
941 | # CONFIG_MMC is not set | 719 | # CONFIG_MMC is not set |
942 | |||
943 | # | ||
944 | # LED devices | ||
945 | # | ||
946 | # CONFIG_NEW_LEDS is not set | 720 | # CONFIG_NEW_LEDS is not set |
947 | |||
948 | # | ||
949 | # LED drivers | ||
950 | # | ||
951 | |||
952 | # | ||
953 | # LED Triggers | ||
954 | # | ||
955 | |||
956 | # | ||
957 | # InfiniBand support | ||
958 | # | ||
959 | # CONFIG_INFINIBAND is not set | 721 | # CONFIG_INFINIBAND is not set |
960 | |||
961 | # | ||
962 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
963 | # | ||
964 | |||
965 | # | ||
966 | # Real Time Clock | ||
967 | # | ||
968 | CONFIG_RTC_LIB=y | 722 | CONFIG_RTC_LIB=y |
969 | CONFIG_RTC_CLASS=y | 723 | CONFIG_RTC_CLASS=y |
970 | CONFIG_RTC_HCTOSYS=y | 724 | CONFIG_RTC_HCTOSYS=y |
@@ -978,18 +732,29 @@ CONFIG_RTC_INTF_SYSFS=y | |||
978 | CONFIG_RTC_INTF_PROC=y | 732 | CONFIG_RTC_INTF_PROC=y |
979 | CONFIG_RTC_INTF_DEV=y | 733 | CONFIG_RTC_INTF_DEV=y |
980 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | 734 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set |
735 | # CONFIG_RTC_DRV_TEST is not set | ||
736 | |||
737 | # | ||
738 | # SPI RTC drivers | ||
739 | # | ||
981 | 740 | ||
982 | # | 741 | # |
983 | # RTC drivers | 742 | # Platform RTC drivers |
984 | # | 743 | # |
744 | # CONFIG_RTC_DRV_CMOS is not set | ||
985 | # CONFIG_RTC_DRV_DS1553 is not set | 745 | # CONFIG_RTC_DRV_DS1553 is not set |
746 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
986 | # CONFIG_RTC_DRV_DS1742 is not set | 747 | # CONFIG_RTC_DRV_DS1742 is not set |
987 | # CONFIG_RTC_DRV_M48T86 is not set | 748 | # CONFIG_RTC_DRV_M48T86 is not set |
988 | CONFIG_RTC_DRV_VR41XX=y | 749 | # CONFIG_RTC_DRV_M48T59 is not set |
989 | # CONFIG_RTC_DRV_TEST is not set | ||
990 | # CONFIG_RTC_DRV_V3020 is not set | 750 | # CONFIG_RTC_DRV_V3020 is not set |
991 | 751 | ||
992 | # | 752 | # |
753 | # on-CPU RTC drivers | ||
754 | # | ||
755 | CONFIG_RTC_DRV_VR41XX=y | ||
756 | |||
757 | # | ||
993 | # DMA Engine support | 758 | # DMA Engine support |
994 | # | 759 | # |
995 | # CONFIG_DMA_ENGINE is not set | 760 | # CONFIG_DMA_ENGINE is not set |
@@ -1003,12 +768,9 @@ CONFIG_RTC_DRV_VR41XX=y | |||
1003 | # | 768 | # |
1004 | 769 | ||
1005 | # | 770 | # |
1006 | # Auxiliary Display support | 771 | # Userspace I/O |
1007 | # | ||
1008 | |||
1009 | # | ||
1010 | # Virtualization | ||
1011 | # | 772 | # |
773 | # CONFIG_UIO is not set | ||
1012 | 774 | ||
1013 | # | 775 | # |
1014 | # File systems | 776 | # File systems |
@@ -1032,7 +794,7 @@ CONFIG_INOTIFY_USER=y | |||
1032 | CONFIG_DNOTIFY=y | 794 | CONFIG_DNOTIFY=y |
1033 | # CONFIG_AUTOFS_FS is not set | 795 | # CONFIG_AUTOFS_FS is not set |
1034 | CONFIG_AUTOFS4_FS=y | 796 | CONFIG_AUTOFS4_FS=y |
1035 | CONFIG_FUSE_FS=m | 797 | # CONFIG_FUSE_FS is not set |
1036 | CONFIG_GENERIC_ACL=y | 798 | CONFIG_GENERIC_ACL=y |
1037 | 799 | ||
1038 | # | 800 | # |
@@ -1059,7 +821,7 @@ CONFIG_TMPFS=y | |||
1059 | CONFIG_TMPFS_POSIX_ACL=y | 821 | CONFIG_TMPFS_POSIX_ACL=y |
1060 | # CONFIG_HUGETLB_PAGE is not set | 822 | # CONFIG_HUGETLB_PAGE is not set |
1061 | CONFIG_RAMFS=y | 823 | CONFIG_RAMFS=y |
1062 | CONFIG_CONFIGFS_FS=m | 824 | # CONFIG_CONFIGFS_FS is not set |
1063 | 825 | ||
1064 | # | 826 | # |
1065 | # Miscellaneous filesystems | 827 | # Miscellaneous filesystems |
@@ -1097,6 +859,7 @@ CONFIG_LOCKD_V4=y | |||
1097 | CONFIG_EXPORTFS=m | 859 | CONFIG_EXPORTFS=m |
1098 | CONFIG_NFS_COMMON=y | 860 | CONFIG_NFS_COMMON=y |
1099 | CONFIG_SUNRPC=y | 861 | CONFIG_SUNRPC=y |
862 | # CONFIG_SUNRPC_BIND34 is not set | ||
1100 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 863 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1101 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 864 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1102 | # CONFIG_SMB_FS is not set | 865 | # CONFIG_SMB_FS is not set |
@@ -1104,7 +867,6 @@ CONFIG_SUNRPC=y | |||
1104 | # CONFIG_NCP_FS is not set | 867 | # CONFIG_NCP_FS is not set |
1105 | # CONFIG_CODA_FS is not set | 868 | # CONFIG_CODA_FS is not set |
1106 | # CONFIG_AFS_FS is not set | 869 | # CONFIG_AFS_FS is not set |
1107 | # CONFIG_9P_FS is not set | ||
1108 | 870 | ||
1109 | # | 871 | # |
1110 | # Partition Types | 872 | # Partition Types |
@@ -1120,10 +882,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1120 | # | 882 | # |
1121 | # Distributed Lock Manager | 883 | # Distributed Lock Manager |
1122 | # | 884 | # |
1123 | CONFIG_DLM=m | 885 | # CONFIG_DLM is not set |
1124 | CONFIG_DLM_TCP=y | ||
1125 | # CONFIG_DLM_SCTP is not set | ||
1126 | # CONFIG_DLM_DEBUG is not set | ||
1127 | 886 | ||
1128 | # | 887 | # |
1129 | # Profiling support | 888 | # Profiling support |
@@ -1141,7 +900,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1141 | # CONFIG_DEBUG_FS is not set | 900 | # CONFIG_DEBUG_FS is not set |
1142 | # CONFIG_HEADERS_CHECK is not set | 901 | # CONFIG_HEADERS_CHECK is not set |
1143 | # CONFIG_DEBUG_KERNEL is not set | 902 | # CONFIG_DEBUG_KERNEL is not set |
1144 | CONFIG_LOG_BUF_SHIFT=14 | ||
1145 | CONFIG_CROSSCOMPILE=y | 903 | CONFIG_CROSSCOMPILE=y |
1146 | CONFIG_CMDLINE="mem=32M console=ttyVR0,115200" | 904 | CONFIG_CMDLINE="mem=32M console=ttyVR0,115200" |
1147 | 905 | ||
@@ -1150,62 +908,20 @@ CONFIG_CMDLINE="mem=32M console=ttyVR0,115200" | |||
1150 | # | 908 | # |
1151 | # CONFIG_KEYS is not set | 909 | # CONFIG_KEYS is not set |
1152 | # CONFIG_SECURITY is not set | 910 | # CONFIG_SECURITY is not set |
1153 | 911 | # CONFIG_CRYPTO is not set | |
1154 | # | ||
1155 | # Cryptographic options | ||
1156 | # | ||
1157 | CONFIG_CRYPTO=y | ||
1158 | CONFIG_CRYPTO_ALGAPI=y | ||
1159 | CONFIG_CRYPTO_BLKCIPHER=m | ||
1160 | CONFIG_CRYPTO_HASH=m | ||
1161 | CONFIG_CRYPTO_MANAGER=m | ||
1162 | CONFIG_CRYPTO_HMAC=m | ||
1163 | CONFIG_CRYPTO_XCBC=m | ||
1164 | CONFIG_CRYPTO_NULL=m | ||
1165 | CONFIG_CRYPTO_MD4=m | ||
1166 | CONFIG_CRYPTO_MD5=y | ||
1167 | CONFIG_CRYPTO_SHA1=m | ||
1168 | CONFIG_CRYPTO_SHA256=m | ||
1169 | CONFIG_CRYPTO_SHA512=m | ||
1170 | CONFIG_CRYPTO_WP512=m | ||
1171 | CONFIG_CRYPTO_TGR192=m | ||
1172 | CONFIG_CRYPTO_GF128MUL=m | ||
1173 | CONFIG_CRYPTO_ECB=m | ||
1174 | CONFIG_CRYPTO_CBC=m | ||
1175 | CONFIG_CRYPTO_PCBC=m | ||
1176 | CONFIG_CRYPTO_LRW=m | ||
1177 | CONFIG_CRYPTO_DES=m | ||
1178 | CONFIG_CRYPTO_FCRYPT=m | ||
1179 | CONFIG_CRYPTO_BLOWFISH=m | ||
1180 | CONFIG_CRYPTO_TWOFISH=m | ||
1181 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1182 | CONFIG_CRYPTO_SERPENT=m | ||
1183 | CONFIG_CRYPTO_AES=m | ||
1184 | CONFIG_CRYPTO_CAST5=m | ||
1185 | CONFIG_CRYPTO_CAST6=m | ||
1186 | CONFIG_CRYPTO_TEA=m | ||
1187 | CONFIG_CRYPTO_ARC4=m | ||
1188 | CONFIG_CRYPTO_KHAZAD=m | ||
1189 | CONFIG_CRYPTO_ANUBIS=m | ||
1190 | CONFIG_CRYPTO_DEFLATE=m | ||
1191 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1192 | CONFIG_CRYPTO_CRC32C=m | ||
1193 | CONFIG_CRYPTO_CAMELLIA=m | ||
1194 | # CONFIG_CRYPTO_TEST is not set | ||
1195 | |||
1196 | # | ||
1197 | # Hardware crypto devices | ||
1198 | # | ||
1199 | 912 | ||
1200 | # | 913 | # |
1201 | # Library routines | 914 | # Library routines |
1202 | # | 915 | # |
916 | CONFIG_BITREVERSE=m | ||
1203 | # CONFIG_CRC_CCITT is not set | 917 | # CONFIG_CRC_CCITT is not set |
1204 | # CONFIG_CRC16 is not set | 918 | # CONFIG_CRC16 is not set |
1205 | # CONFIG_CRC32 is not set | 919 | # CONFIG_CRC_ITU_T is not set |
1206 | CONFIG_LIBCRC32C=m | 920 | CONFIG_CRC32=m |
921 | # CONFIG_CRC7 is not set | ||
922 | # CONFIG_LIBCRC32C is not set | ||
1207 | CONFIG_ZLIB_INFLATE=m | 923 | CONFIG_ZLIB_INFLATE=m |
1208 | CONFIG_ZLIB_DEFLATE=m | ||
1209 | CONFIG_PLIST=y | 924 | CONFIG_PLIST=y |
1210 | CONFIG_HAS_IOMEM=y | 925 | CONFIG_HAS_IOMEM=y |
1211 | CONFIG_HAS_IOPORT=y | 926 | CONFIG_HAS_IOPORT=y |
927 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/tb0287_defconfig b/arch/mips/configs/tb0287_defconfig index 66383ecff200..499b6bd7ee68 100644 --- a/arch/mips/configs/tb0287_defconfig +++ b/arch/mips/configs/tb0287_defconfig | |||
@@ -1,68 +1,56 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.21-rc1 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Thu Feb 22 10:38:09 2007 | 4 | # Thu Aug 9 14:03:54 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 13 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
30 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
31 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 21 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 22 | CONFIG_MACH_VR41XX=y |
36 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
38 | CONFIG_MACH_VR41XX=y | 25 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
43 | # CONFIG_SGI_IP27 is not set | 29 | # CONFIG_SGI_IP27 is not set |
44 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
55 | # CONFIG_TOSHIBA_JMR3927 is not set | 41 | # CONFIG_TOSHIBA_JMR3927 is not set |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 42 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 43 | # CONFIG_TOSHIBA_RBTX4938 is not set |
44 | # CONFIG_WR_PPMC is not set | ||
58 | # CONFIG_CASIO_E55 is not set | 45 | # CONFIG_CASIO_E55 is not set |
59 | # CONFIG_IBM_WORKPAD is not set | 46 | # CONFIG_IBM_WORKPAD is not set |
60 | # CONFIG_NEC_CMBVR4133 is not set | 47 | # CONFIG_NEC_CMBVR4133 is not set |
61 | CONFIG_TANBAC_TB022X=y | 48 | CONFIG_TANBAC_TB022X=y |
62 | # CONFIG_TANBAC_TB0226 is not set | ||
63 | CONFIG_TANBAC_TB0287=y | ||
64 | # CONFIG_VICTOR_MPC30X is not set | 49 | # CONFIG_VICTOR_MPC30X is not set |
65 | # CONFIG_ZAO_CAPCELLA is not set | 50 | # CONFIG_ZAO_CAPCELLA is not set |
51 | # CONFIG_TANBAC_TB0219 is not set | ||
52 | # CONFIG_TANBAC_TB0226 is not set | ||
53 | CONFIG_TANBAC_TB0287=y | ||
66 | CONFIG_PCI_VR41XX=y | 54 | CONFIG_PCI_VR41XX=y |
67 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 55 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
68 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 56 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
@@ -75,6 +63,8 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
75 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 63 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
76 | CONFIG_DMA_NONCOHERENT=y | 64 | CONFIG_DMA_NONCOHERENT=y |
77 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 65 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
66 | # CONFIG_HOTPLUG_CPU is not set | ||
67 | # CONFIG_NO_IOPORT is not set | ||
78 | # CONFIG_CPU_BIG_ENDIAN is not set | 68 | # CONFIG_CPU_BIG_ENDIAN is not set |
79 | CONFIG_CPU_LITTLE_ENDIAN=y | 69 | CONFIG_CPU_LITTLE_ENDIAN=y |
80 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 70 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
@@ -84,6 +74,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
84 | # | 74 | # |
85 | # CPU selection | 75 | # CPU selection |
86 | # | 76 | # |
77 | # CONFIG_CPU_LOONGSON2 is not set | ||
87 | # CONFIG_CPU_MIPS32_R1 is not set | 78 | # CONFIG_CPU_MIPS32_R1 is not set |
88 | # CONFIG_CPU_MIPS32_R2 is not set | 79 | # CONFIG_CPU_MIPS32_R2 is not set |
89 | # CONFIG_CPU_MIPS64_R1 is not set | 80 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -105,7 +96,6 @@ CONFIG_CPU_VR41XX=y | |||
105 | # CONFIG_CPU_SB1 is not set | 96 | # CONFIG_CPU_SB1 is not set |
106 | CONFIG_SYS_HAS_CPU_VR41XX=y | 97 | CONFIG_SYS_HAS_CPU_VR41XX=y |
107 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | 98 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y |
108 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
109 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | 99 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y |
110 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | 100 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y |
111 | 101 | ||
@@ -121,7 +111,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
121 | CONFIG_MIPS_MT_DISABLED=y | 111 | CONFIG_MIPS_MT_DISABLED=y |
122 | # CONFIG_MIPS_MT_SMP is not set | 112 | # CONFIG_MIPS_MT_SMP is not set |
123 | # CONFIG_MIPS_MT_SMTC is not set | 113 | # CONFIG_MIPS_MT_SMTC is not set |
124 | # CONFIG_MIPS_VPE_LOADER is not set | ||
125 | CONFIG_CPU_HAS_SYNC=y | 114 | CONFIG_CPU_HAS_SYNC=y |
126 | CONFIG_GENERIC_HARDIRQS=y | 115 | CONFIG_GENERIC_HARDIRQS=y |
127 | CONFIG_GENERIC_IRQ_PROBE=y | 116 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -135,86 +124,83 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
135 | # CONFIG_SPARSEMEM_STATIC is not set | 124 | # CONFIG_SPARSEMEM_STATIC is not set |
136 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 125 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
137 | # CONFIG_RESOURCES_64BIT is not set | 126 | # CONFIG_RESOURCES_64BIT is not set |
138 | CONFIG_ZONE_DMA_FLAG=1 | 127 | CONFIG_ZONE_DMA_FLAG=0 |
128 | CONFIG_VIRT_TO_BUS=y | ||
139 | # CONFIG_HZ_48 is not set | 129 | # CONFIG_HZ_48 is not set |
140 | # CONFIG_HZ_100 is not set | 130 | # CONFIG_HZ_100 is not set |
141 | # CONFIG_HZ_128 is not set | 131 | # CONFIG_HZ_128 is not set |
142 | # CONFIG_HZ_250 is not set | 132 | CONFIG_HZ_250=y |
143 | # CONFIG_HZ_256 is not set | 133 | # CONFIG_HZ_256 is not set |
144 | CONFIG_HZ_1000=y | 134 | # CONFIG_HZ_1000 is not set |
145 | # CONFIG_HZ_1024 is not set | 135 | # CONFIG_HZ_1024 is not set |
146 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | 136 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y |
147 | CONFIG_HZ=1000 | 137 | CONFIG_HZ=250 |
148 | CONFIG_PREEMPT_NONE=y | 138 | CONFIG_PREEMPT_NONE=y |
149 | # CONFIG_PREEMPT_VOLUNTARY is not set | 139 | # CONFIG_PREEMPT_VOLUNTARY is not set |
150 | # CONFIG_PREEMPT is not set | 140 | # CONFIG_PREEMPT is not set |
151 | # CONFIG_KEXEC is not set | 141 | # CONFIG_KEXEC is not set |
142 | CONFIG_SECCOMP=y | ||
152 | CONFIG_LOCKDEP_SUPPORT=y | 143 | CONFIG_LOCKDEP_SUPPORT=y |
153 | CONFIG_STACKTRACE_SUPPORT=y | 144 | CONFIG_STACKTRACE_SUPPORT=y |
154 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 145 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
155 | 146 | ||
156 | # | 147 | # |
157 | # Code maturity level options | 148 | # General setup |
158 | # | 149 | # |
159 | CONFIG_EXPERIMENTAL=y | 150 | CONFIG_EXPERIMENTAL=y |
160 | CONFIG_BROKEN_ON_SMP=y | 151 | CONFIG_BROKEN_ON_SMP=y |
161 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 152 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
162 | |||
163 | # | ||
164 | # General setup | ||
165 | # | ||
166 | CONFIG_LOCALVERSION="" | 153 | CONFIG_LOCALVERSION="" |
167 | CONFIG_LOCALVERSION_AUTO=y | 154 | CONFIG_LOCALVERSION_AUTO=y |
168 | CONFIG_SWAP=y | 155 | CONFIG_SWAP=y |
169 | CONFIG_SYSVIPC=y | 156 | CONFIG_SYSVIPC=y |
170 | # CONFIG_IPC_NS is not set | ||
171 | CONFIG_SYSVIPC_SYSCTL=y | 157 | CONFIG_SYSVIPC_SYSCTL=y |
172 | # CONFIG_POSIX_MQUEUE is not set | 158 | # CONFIG_POSIX_MQUEUE is not set |
173 | # CONFIG_BSD_PROCESS_ACCT is not set | 159 | # CONFIG_BSD_PROCESS_ACCT is not set |
174 | # CONFIG_TASKSTATS is not set | 160 | # CONFIG_TASKSTATS is not set |
175 | # CONFIG_UTS_NS is not set | 161 | # CONFIG_USER_NS is not set |
176 | # CONFIG_AUDIT is not set | 162 | # CONFIG_AUDIT is not set |
177 | # CONFIG_IKCONFIG is not set | 163 | # CONFIG_IKCONFIG is not set |
164 | CONFIG_LOG_BUF_SHIFT=14 | ||
178 | CONFIG_SYSFS_DEPRECATED=y | 165 | CONFIG_SYSFS_DEPRECATED=y |
179 | # CONFIG_RELAY is not set | 166 | # CONFIG_RELAY is not set |
167 | # CONFIG_BLK_DEV_INITRD is not set | ||
180 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 168 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
181 | CONFIG_SYSCTL=y | 169 | CONFIG_SYSCTL=y |
182 | CONFIG_EMBEDDED=y | 170 | CONFIG_EMBEDDED=y |
183 | # CONFIG_SYSCTL_SYSCALL is not set | 171 | # CONFIG_SYSCTL_SYSCALL is not set |
184 | CONFIG_KALLSYMS=y | 172 | CONFIG_KALLSYMS=y |
185 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 173 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
186 | # CONFIG_HOTPLUG is not set | 174 | CONFIG_HOTPLUG=y |
187 | CONFIG_PRINTK=y | 175 | CONFIG_PRINTK=y |
188 | CONFIG_BUG=y | 176 | CONFIG_BUG=y |
189 | CONFIG_ELF_CORE=y | 177 | CONFIG_ELF_CORE=y |
190 | CONFIG_BASE_FULL=y | 178 | CONFIG_BASE_FULL=y |
191 | CONFIG_FUTEX=y | 179 | CONFIG_FUTEX=y |
180 | CONFIG_ANON_INODES=y | ||
192 | CONFIG_EPOLL=y | 181 | CONFIG_EPOLL=y |
182 | CONFIG_SIGNALFD=y | ||
183 | CONFIG_TIMERFD=y | ||
184 | CONFIG_EVENTFD=y | ||
193 | CONFIG_SHMEM=y | 185 | CONFIG_SHMEM=y |
194 | CONFIG_SLAB=y | ||
195 | CONFIG_VM_EVENT_COUNTERS=y | 186 | CONFIG_VM_EVENT_COUNTERS=y |
187 | CONFIG_SLAB=y | ||
188 | # CONFIG_SLUB is not set | ||
189 | # CONFIG_SLOB is not set | ||
196 | CONFIG_RT_MUTEXES=y | 190 | CONFIG_RT_MUTEXES=y |
197 | # CONFIG_TINY_SHMEM is not set | 191 | # CONFIG_TINY_SHMEM is not set |
198 | CONFIG_BASE_SMALL=0 | 192 | CONFIG_BASE_SMALL=0 |
199 | # CONFIG_SLOB is not set | ||
200 | |||
201 | # | ||
202 | # Loadable module support | ||
203 | # | ||
204 | CONFIG_MODULES=y | 193 | CONFIG_MODULES=y |
205 | CONFIG_MODULE_UNLOAD=y | 194 | CONFIG_MODULE_UNLOAD=y |
206 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 195 | CONFIG_MODULE_FORCE_UNLOAD=y |
207 | CONFIG_MODVERSIONS=y | 196 | CONFIG_MODVERSIONS=y |
208 | CONFIG_MODULE_SRCVERSION_ALL=y | 197 | CONFIG_MODULE_SRCVERSION_ALL=y |
209 | CONFIG_KMOD=y | 198 | CONFIG_KMOD=y |
210 | |||
211 | # | ||
212 | # Block layer | ||
213 | # | ||
214 | CONFIG_BLOCK=y | 199 | CONFIG_BLOCK=y |
215 | # CONFIG_LBD is not set | 200 | # CONFIG_LBD is not set |
216 | # CONFIG_BLK_DEV_IO_TRACE is not set | 201 | # CONFIG_BLK_DEV_IO_TRACE is not set |
217 | # CONFIG_LSF is not set | 202 | # CONFIG_LSF is not set |
203 | # CONFIG_BLK_DEV_BSG is not set | ||
218 | 204 | ||
219 | # | 205 | # |
220 | # IO Schedulers | 206 | # IO Schedulers |
@@ -234,15 +220,14 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
234 | # | 220 | # |
235 | CONFIG_HW_HAS_PCI=y | 221 | CONFIG_HW_HAS_PCI=y |
236 | CONFIG_PCI=y | 222 | CONFIG_PCI=y |
223 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
237 | CONFIG_MMU=y | 224 | CONFIG_MMU=y |
238 | 225 | ||
239 | # | 226 | # |
240 | # PCCARD (PCMCIA/CardBus) support | 227 | # PCCARD (PCMCIA/CardBus) support |
241 | # | 228 | # |
242 | 229 | # CONFIG_PCCARD is not set | |
243 | # | 230 | # CONFIG_HOTPLUG_PCI is not set |
244 | # PCI Hotplug Support | ||
245 | # | ||
246 | 231 | ||
247 | # | 232 | # |
248 | # Executable file formats | 233 | # Executable file formats |
@@ -254,10 +239,7 @@ CONFIG_TRAD_SIGNALS=y | |||
254 | # | 239 | # |
255 | # Power management options | 240 | # Power management options |
256 | # | 241 | # |
257 | CONFIG_PM=y | 242 | # CONFIG_PM is not set |
258 | # CONFIG_PM_LEGACY is not set | ||
259 | # CONFIG_PM_DEBUG is not set | ||
260 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
261 | 243 | ||
262 | # | 244 | # |
263 | # Networking | 245 | # Networking |
@@ -267,14 +249,9 @@ CONFIG_NET=y | |||
267 | # | 249 | # |
268 | # Networking options | 250 | # Networking options |
269 | # | 251 | # |
270 | # CONFIG_NETDEBUG is not set | ||
271 | CONFIG_PACKET=y | 252 | CONFIG_PACKET=y |
272 | # CONFIG_PACKET_MMAP is not set | 253 | # CONFIG_PACKET_MMAP is not set |
273 | CONFIG_UNIX=y | 254 | CONFIG_UNIX=y |
274 | CONFIG_XFRM=y | ||
275 | # CONFIG_XFRM_USER is not set | ||
276 | # CONFIG_XFRM_SUB_POLICY is not set | ||
277 | CONFIG_XFRM_MIGRATE=y | ||
278 | # CONFIG_NET_KEY is not set | 255 | # CONFIG_NET_KEY is not set |
279 | CONFIG_INET=y | 256 | CONFIG_INET=y |
280 | CONFIG_IP_MULTICAST=y | 257 | CONFIG_IP_MULTICAST=y |
@@ -284,7 +261,6 @@ CONFIG_ASK_IP_FIB_HASH=y | |||
284 | CONFIG_IP_FIB_HASH=y | 261 | CONFIG_IP_FIB_HASH=y |
285 | CONFIG_IP_MULTIPLE_TABLES=y | 262 | CONFIG_IP_MULTIPLE_TABLES=y |
286 | CONFIG_IP_ROUTE_MULTIPATH=y | 263 | CONFIG_IP_ROUTE_MULTIPATH=y |
287 | # CONFIG_IP_ROUTE_MULTIPATH_CACHED is not set | ||
288 | CONFIG_IP_ROUTE_VERBOSE=y | 264 | CONFIG_IP_ROUTE_VERBOSE=y |
289 | CONFIG_IP_PNP=y | 265 | CONFIG_IP_PNP=y |
290 | # CONFIG_IP_PNP_DHCP is not set | 266 | # CONFIG_IP_PNP_DHCP is not set |
@@ -301,9 +277,9 @@ CONFIG_SYN_COOKIES=y | |||
301 | # CONFIG_INET_IPCOMP is not set | 277 | # CONFIG_INET_IPCOMP is not set |
302 | # CONFIG_INET_XFRM_TUNNEL is not set | 278 | # CONFIG_INET_XFRM_TUNNEL is not set |
303 | CONFIG_INET_TUNNEL=m | 279 | CONFIG_INET_TUNNEL=m |
304 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | 280 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set |
305 | CONFIG_INET_XFRM_MODE_TUNNEL=m | 281 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set |
306 | CONFIG_INET_XFRM_MODE_BEET=y | 282 | # CONFIG_INET_XFRM_MODE_BEET is not set |
307 | CONFIG_INET_DIAG=y | 283 | CONFIG_INET_DIAG=y |
308 | CONFIG_INET_TCP_DIAG=y | 284 | CONFIG_INET_TCP_DIAG=y |
309 | CONFIG_TCP_CONG_ADVANCED=y | 285 | CONFIG_TCP_CONG_ADVANCED=y |
@@ -317,6 +293,8 @@ CONFIG_TCP_CONG_HTCP=m | |||
317 | # CONFIG_TCP_CONG_SCALABLE is not set | 293 | # CONFIG_TCP_CONG_SCALABLE is not set |
318 | # CONFIG_TCP_CONG_LP is not set | 294 | # CONFIG_TCP_CONG_LP is not set |
319 | # CONFIG_TCP_CONG_VENO is not set | 295 | # CONFIG_TCP_CONG_VENO is not set |
296 | # CONFIG_TCP_CONG_YEAH is not set | ||
297 | # CONFIG_TCP_CONG_ILLINOIS is not set | ||
320 | CONFIG_DEFAULT_BIC=y | 298 | CONFIG_DEFAULT_BIC=y |
321 | # CONFIG_DEFAULT_CUBIC is not set | 299 | # CONFIG_DEFAULT_CUBIC is not set |
322 | # CONFIG_DEFAULT_HTCP is not set | 300 | # CONFIG_DEFAULT_HTCP is not set |
@@ -324,26 +302,14 @@ CONFIG_DEFAULT_BIC=y | |||
324 | # CONFIG_DEFAULT_WESTWOOD is not set | 302 | # CONFIG_DEFAULT_WESTWOOD is not set |
325 | # CONFIG_DEFAULT_RENO is not set | 303 | # CONFIG_DEFAULT_RENO is not set |
326 | CONFIG_DEFAULT_TCP_CONG="bic" | 304 | CONFIG_DEFAULT_TCP_CONG="bic" |
327 | CONFIG_TCP_MD5SIG=y | 305 | # CONFIG_TCP_MD5SIG is not set |
328 | # CONFIG_IPV6 is not set | 306 | # CONFIG_IPV6 is not set |
329 | # CONFIG_INET6_XFRM_TUNNEL is not set | 307 | # CONFIG_INET6_XFRM_TUNNEL is not set |
330 | # CONFIG_INET6_TUNNEL is not set | 308 | # CONFIG_INET6_TUNNEL is not set |
331 | CONFIG_NETWORK_SECMARK=y | 309 | CONFIG_NETWORK_SECMARK=y |
332 | # CONFIG_NETFILTER is not set | 310 | # CONFIG_NETFILTER is not set |
333 | |||
334 | # | ||
335 | # DCCP Configuration (EXPERIMENTAL) | ||
336 | # | ||
337 | # CONFIG_IP_DCCP is not set | 311 | # CONFIG_IP_DCCP is not set |
338 | |||
339 | # | ||
340 | # SCTP Configuration (EXPERIMENTAL) | ||
341 | # | ||
342 | # CONFIG_IP_SCTP is not set | 312 | # CONFIG_IP_SCTP is not set |
343 | |||
344 | # | ||
345 | # TIPC Configuration (EXPERIMENTAL) | ||
346 | # | ||
347 | # CONFIG_TIPC is not set | 313 | # CONFIG_TIPC is not set |
348 | # CONFIG_ATM is not set | 314 | # CONFIG_ATM is not set |
349 | # CONFIG_BRIDGE is not set | 315 | # CONFIG_BRIDGE is not set |
@@ -369,10 +335,20 @@ CONFIG_NETWORK_SECMARK=y | |||
369 | # CONFIG_HAMRADIO is not set | 335 | # CONFIG_HAMRADIO is not set |
370 | # CONFIG_IRDA is not set | 336 | # CONFIG_IRDA is not set |
371 | # CONFIG_BT is not set | 337 | # CONFIG_BT is not set |
372 | # CONFIG_IEEE80211 is not set | 338 | # CONFIG_AF_RXRPC is not set |
373 | CONFIG_FIB_RULES=y | 339 | CONFIG_FIB_RULES=y |
374 | 340 | ||
375 | # | 341 | # |
342 | # Wireless | ||
343 | # | ||
344 | # CONFIG_CFG80211 is not set | ||
345 | # CONFIG_WIRELESS_EXT is not set | ||
346 | # CONFIG_MAC80211 is not set | ||
347 | # CONFIG_IEEE80211 is not set | ||
348 | # CONFIG_RFKILL is not set | ||
349 | # CONFIG_NET_9P is not set | ||
350 | |||
351 | # | ||
376 | # Device Drivers | 352 | # Device Drivers |
377 | # | 353 | # |
378 | 354 | ||
@@ -381,31 +357,12 @@ CONFIG_FIB_RULES=y | |||
381 | # | 357 | # |
382 | CONFIG_STANDALONE=y | 358 | CONFIG_STANDALONE=y |
383 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 359 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
360 | CONFIG_FW_LOADER=m | ||
384 | # CONFIG_SYS_HYPERVISOR is not set | 361 | # CONFIG_SYS_HYPERVISOR is not set |
385 | |||
386 | # | ||
387 | # Connector - unified userspace <-> kernelspace linker | ||
388 | # | ||
389 | # CONFIG_CONNECTOR is not set | 362 | # CONFIG_CONNECTOR is not set |
390 | |||
391 | # | ||
392 | # Memory Technology Devices (MTD) | ||
393 | # | ||
394 | # CONFIG_MTD is not set | 363 | # CONFIG_MTD is not set |
395 | |||
396 | # | ||
397 | # Parallel port support | ||
398 | # | ||
399 | # CONFIG_PARPORT is not set | 364 | # CONFIG_PARPORT is not set |
400 | 365 | CONFIG_BLK_DEV=y | |
401 | # | ||
402 | # Plug and Play support | ||
403 | # | ||
404 | # CONFIG_PNPACPI is not set | ||
405 | |||
406 | # | ||
407 | # Block devices | ||
408 | # | ||
409 | # CONFIG_BLK_CPQ_DA is not set | 366 | # CONFIG_BLK_CPQ_DA is not set |
410 | # CONFIG_BLK_CPQ_CISS_DA is not set | 367 | # CONFIG_BLK_CPQ_CISS_DA is not set |
411 | # CONFIG_BLK_DEV_DAC960 is not set | 368 | # CONFIG_BLK_DEV_DAC960 is not set |
@@ -420,19 +377,9 @@ CONFIG_BLK_DEV_RAM=y | |||
420 | CONFIG_BLK_DEV_RAM_COUNT=16 | 377 | CONFIG_BLK_DEV_RAM_COUNT=16 |
421 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 378 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
422 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 379 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
423 | # CONFIG_BLK_DEV_INITRD is not set | ||
424 | # CONFIG_CDROM_PKTCDVD is not set | 380 | # CONFIG_CDROM_PKTCDVD is not set |
425 | # CONFIG_ATA_OVER_ETH is not set | 381 | # CONFIG_ATA_OVER_ETH is not set |
426 | 382 | # CONFIG_MISC_DEVICES is not set | |
427 | # | ||
428 | # Misc devices | ||
429 | # | ||
430 | CONFIG_SGI_IOC4=m | ||
431 | # CONFIG_TIFM_CORE is not set | ||
432 | |||
433 | # | ||
434 | # ATA/ATAPI/MFM/RLL support | ||
435 | # | ||
436 | # CONFIG_IDE is not set | 383 | # CONFIG_IDE is not set |
437 | 384 | ||
438 | # | 385 | # |
@@ -440,6 +387,7 @@ CONFIG_SGI_IOC4=m | |||
440 | # | 387 | # |
441 | # CONFIG_RAID_ATTRS is not set | 388 | # CONFIG_RAID_ATTRS is not set |
442 | CONFIG_SCSI=y | 389 | CONFIG_SCSI=y |
390 | CONFIG_SCSI_DMA=y | ||
443 | CONFIG_SCSI_TGT=m | 391 | CONFIG_SCSI_TGT=m |
444 | # CONFIG_SCSI_NETLINK is not set | 392 | # CONFIG_SCSI_NETLINK is not set |
445 | CONFIG_SCSI_PROC_FS=y | 393 | CONFIG_SCSI_PROC_FS=y |
@@ -461,6 +409,7 @@ CONFIG_BLK_DEV_SD=y | |||
461 | # CONFIG_SCSI_CONSTANTS is not set | 409 | # CONFIG_SCSI_CONSTANTS is not set |
462 | # CONFIG_SCSI_LOGGING is not set | 410 | # CONFIG_SCSI_LOGGING is not set |
463 | CONFIG_SCSI_SCAN_ASYNC=y | 411 | CONFIG_SCSI_SCAN_ASYNC=y |
412 | CONFIG_SCSI_WAIT_SCAN=m | ||
464 | 413 | ||
465 | # | 414 | # |
466 | # SCSI Transports | 415 | # SCSI Transports |
@@ -468,48 +417,8 @@ CONFIG_SCSI_SCAN_ASYNC=y | |||
468 | # CONFIG_SCSI_SPI_ATTRS is not set | 417 | # CONFIG_SCSI_SPI_ATTRS is not set |
469 | # CONFIG_SCSI_FC_ATTRS is not set | 418 | # CONFIG_SCSI_FC_ATTRS is not set |
470 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 419 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
471 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
472 | # CONFIG_SCSI_SAS_LIBSAS is not set | 420 | # CONFIG_SCSI_SAS_LIBSAS is not set |
473 | 421 | # CONFIG_SCSI_LOWLEVEL is not set | |
474 | # | ||
475 | # SCSI low-level drivers | ||
476 | # | ||
477 | # CONFIG_ISCSI_TCP is not set | ||
478 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | ||
479 | # CONFIG_SCSI_3W_9XXX is not set | ||
480 | # CONFIG_SCSI_ACARD is not set | ||
481 | # CONFIG_SCSI_AACRAID is not set | ||
482 | # CONFIG_SCSI_AIC7XXX is not set | ||
483 | # CONFIG_SCSI_AIC7XXX_OLD is not set | ||
484 | # CONFIG_SCSI_AIC79XX is not set | ||
485 | # CONFIG_SCSI_AIC94XX is not set | ||
486 | # CONFIG_SCSI_DPT_I2O is not set | ||
487 | # CONFIG_SCSI_ARCMSR is not set | ||
488 | # CONFIG_MEGARAID_NEWGEN is not set | ||
489 | # CONFIG_MEGARAID_LEGACY is not set | ||
490 | # CONFIG_MEGARAID_SAS is not set | ||
491 | # CONFIG_SCSI_HPTIOP is not set | ||
492 | # CONFIG_SCSI_DMX3191D is not set | ||
493 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | ||
494 | # CONFIG_SCSI_IPS is not set | ||
495 | # CONFIG_SCSI_INITIO is not set | ||
496 | # CONFIG_SCSI_INIA100 is not set | ||
497 | # CONFIG_SCSI_STEX is not set | ||
498 | # CONFIG_SCSI_SYM53C8XX_2 is not set | ||
499 | # CONFIG_SCSI_IPR is not set | ||
500 | # CONFIG_SCSI_QLOGIC_1280 is not set | ||
501 | # CONFIG_SCSI_QLA_FC is not set | ||
502 | # CONFIG_SCSI_QLA_ISCSI is not set | ||
503 | # CONFIG_SCSI_LPFC is not set | ||
504 | # CONFIG_SCSI_DC395x is not set | ||
505 | # CONFIG_SCSI_DC390T is not set | ||
506 | # CONFIG_SCSI_NSP32 is not set | ||
507 | # CONFIG_SCSI_DEBUG is not set | ||
508 | # CONFIG_SCSI_SRP is not set | ||
509 | |||
510 | # | ||
511 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
512 | # | ||
513 | CONFIG_ATA=y | 422 | CONFIG_ATA=y |
514 | # CONFIG_ATA_NONSTANDARD is not set | 423 | # CONFIG_ATA_NONSTANDARD is not set |
515 | # CONFIG_SATA_AHCI is not set | 424 | # CONFIG_SATA_AHCI is not set |
@@ -532,6 +441,7 @@ CONFIG_ATA=y | |||
532 | # CONFIG_PATA_AMD is not set | 441 | # CONFIG_PATA_AMD is not set |
533 | # CONFIG_PATA_ARTOP is not set | 442 | # CONFIG_PATA_ARTOP is not set |
534 | # CONFIG_PATA_ATIIXP is not set | 443 | # CONFIG_PATA_ATIIXP is not set |
444 | # CONFIG_PATA_CMD640_PCI is not set | ||
535 | # CONFIG_PATA_CMD64X is not set | 445 | # CONFIG_PATA_CMD64X is not set |
536 | # CONFIG_PATA_CS5520 is not set | 446 | # CONFIG_PATA_CS5520 is not set |
537 | # CONFIG_PATA_CS5530 is not set | 447 | # CONFIG_PATA_CS5530 is not set |
@@ -564,10 +474,6 @@ CONFIG_PATA_SIL680=y | |||
564 | # CONFIG_PATA_VIA is not set | 474 | # CONFIG_PATA_VIA is not set |
565 | # CONFIG_PATA_WINBOND is not set | 475 | # CONFIG_PATA_WINBOND is not set |
566 | # CONFIG_PATA_PLATFORM is not set | 476 | # CONFIG_PATA_PLATFORM is not set |
567 | |||
568 | # | ||
569 | # Multi-device support (RAID and LVM) | ||
570 | # | ||
571 | # CONFIG_MD is not set | 477 | # CONFIG_MD is not set |
572 | 478 | ||
573 | # | 479 | # |
@@ -581,17 +487,16 @@ CONFIG_PATA_SIL680=y | |||
581 | # | 487 | # |
582 | # IEEE 1394 (FireWire) support | 488 | # IEEE 1394 (FireWire) support |
583 | # | 489 | # |
490 | # CONFIG_FIREWIRE is not set | ||
584 | CONFIG_IEEE1394=m | 491 | CONFIG_IEEE1394=m |
585 | 492 | ||
586 | # | 493 | # |
587 | # Subsystem Options | 494 | # Subsystem Options |
588 | # | 495 | # |
589 | # CONFIG_IEEE1394_VERBOSEDEBUG is not set | 496 | # CONFIG_IEEE1394_VERBOSEDEBUG is not set |
590 | CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y | ||
591 | CONFIG_IEEE1394_CONFIG_ROM_IP1394=y | ||
592 | 497 | ||
593 | # | 498 | # |
594 | # Device Drivers | 499 | # Controllers |
595 | # | 500 | # |
596 | 501 | ||
597 | # | 502 | # |
@@ -600,59 +505,63 @@ CONFIG_IEEE1394_CONFIG_ROM_IP1394=y | |||
600 | CONFIG_IEEE1394_OHCI1394=m | 505 | CONFIG_IEEE1394_OHCI1394=m |
601 | 506 | ||
602 | # | 507 | # |
603 | # Protocol Drivers | 508 | # Protocols |
604 | # | 509 | # |
605 | CONFIG_IEEE1394_VIDEO1394=m | 510 | CONFIG_IEEE1394_VIDEO1394=m |
606 | CONFIG_IEEE1394_SBP2=m | 511 | CONFIG_IEEE1394_SBP2=m |
512 | # CONFIG_IEEE1394_SBP2_PHYS_DMA is not set | ||
513 | CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y | ||
607 | CONFIG_IEEE1394_ETH1394=m | 514 | CONFIG_IEEE1394_ETH1394=m |
608 | CONFIG_IEEE1394_DV1394=m | 515 | CONFIG_IEEE1394_DV1394=m |
609 | CONFIG_IEEE1394_RAWIO=m | 516 | CONFIG_IEEE1394_RAWIO=m |
610 | |||
611 | # | ||
612 | # I2O device support | ||
613 | # | ||
614 | # CONFIG_I2O is not set | 517 | # CONFIG_I2O is not set |
615 | |||
616 | # | ||
617 | # Network device support | ||
618 | # | ||
619 | CONFIG_NETDEVICES=y | 518 | CONFIG_NETDEVICES=y |
620 | CONFIG_DUMMY=m | 519 | # CONFIG_NETDEVICES_MULTIQUEUE is not set |
520 | # CONFIG_DUMMY is not set | ||
621 | # CONFIG_BONDING is not set | 521 | # CONFIG_BONDING is not set |
522 | # CONFIG_MACVLAN is not set | ||
622 | # CONFIG_EQUALIZER is not set | 523 | # CONFIG_EQUALIZER is not set |
623 | # CONFIG_TUN is not set | 524 | # CONFIG_TUN is not set |
624 | |||
625 | # | ||
626 | # ARCnet devices | ||
627 | # | ||
628 | # CONFIG_ARCNET is not set | 525 | # CONFIG_ARCNET is not set |
629 | |||
630 | # | ||
631 | # PHY device support | ||
632 | # | ||
633 | # CONFIG_PHYLIB is not set | 526 | # CONFIG_PHYLIB is not set |
634 | |||
635 | # | ||
636 | # Ethernet (10 or 100Mbit) | ||
637 | # | ||
638 | CONFIG_NET_ETHERNET=y | 527 | CONFIG_NET_ETHERNET=y |
639 | CONFIG_MII=y | 528 | CONFIG_MII=y |
529 | # CONFIG_AX88796 is not set | ||
640 | # CONFIG_HAPPYMEAL is not set | 530 | # CONFIG_HAPPYMEAL is not set |
641 | # CONFIG_SUNGEM is not set | 531 | # CONFIG_SUNGEM is not set |
642 | # CONFIG_CASSINI is not set | 532 | # CONFIG_CASSINI is not set |
643 | # CONFIG_NET_VENDOR_3COM is not set | 533 | # CONFIG_NET_VENDOR_3COM is not set |
644 | # CONFIG_DM9000 is not set | 534 | # CONFIG_DM9000 is not set |
645 | |||
646 | # | ||
647 | # Tulip family network device support | ||
648 | # | ||
649 | # CONFIG_NET_TULIP is not set | 535 | # CONFIG_NET_TULIP is not set |
650 | # CONFIG_HP100 is not set | 536 | # CONFIG_HP100 is not set |
651 | # CONFIG_NET_PCI is not set | 537 | CONFIG_NET_PCI=y |
652 | 538 | # CONFIG_PCNET32 is not set | |
653 | # | 539 | # CONFIG_AMD8111_ETH is not set |
654 | # Ethernet (1000 Mbit) | 540 | # CONFIG_ADAPTEC_STARFIRE is not set |
655 | # | 541 | # CONFIG_B44 is not set |
542 | # CONFIG_FORCEDETH is not set | ||
543 | # CONFIG_TC35815 is not set | ||
544 | # CONFIG_DGRS is not set | ||
545 | # CONFIG_EEPRO100 is not set | ||
546 | # CONFIG_E100 is not set | ||
547 | # CONFIG_FEALNX is not set | ||
548 | # CONFIG_NATSEMI is not set | ||
549 | # CONFIG_NE2K_PCI is not set | ||
550 | # CONFIG_8139CP is not set | ||
551 | CONFIG_8139TOO=y | ||
552 | CONFIG_8139TOO_PIO=y | ||
553 | # CONFIG_8139TOO_TUNE_TWISTER is not set | ||
554 | # CONFIG_8139TOO_8129 is not set | ||
555 | # CONFIG_8139_OLD_RX_RESET is not set | ||
556 | # CONFIG_SIS900 is not set | ||
557 | # CONFIG_EPIC100 is not set | ||
558 | # CONFIG_SUNDANCE is not set | ||
559 | # CONFIG_TLAN is not set | ||
560 | CONFIG_VIA_RHINE=y | ||
561 | CONFIG_VIA_RHINE_MMIO=y | ||
562 | # CONFIG_VIA_RHINE_NAPI is not set | ||
563 | # CONFIG_SC92031 is not set | ||
564 | CONFIG_NETDEV_1000=y | ||
656 | # CONFIG_ACENIC is not set | 565 | # CONFIG_ACENIC is not set |
657 | # CONFIG_DL2K is not set | 566 | # CONFIG_DL2K is not set |
658 | # CONFIG_E1000 is not set | 567 | # CONFIG_E1000 is not set |
@@ -664,35 +573,29 @@ CONFIG_R8169=y | |||
664 | # CONFIG_SIS190 is not set | 573 | # CONFIG_SIS190 is not set |
665 | # CONFIG_SKGE is not set | 574 | # CONFIG_SKGE is not set |
666 | # CONFIG_SKY2 is not set | 575 | # CONFIG_SKY2 is not set |
667 | # CONFIG_SK98LIN is not set | 576 | CONFIG_VIA_VELOCITY=y |
668 | # CONFIG_TIGON3 is not set | 577 | # CONFIG_TIGON3 is not set |
669 | # CONFIG_BNX2 is not set | 578 | # CONFIG_BNX2 is not set |
670 | # CONFIG_QLA3XXX is not set | 579 | # CONFIG_QLA3XXX is not set |
671 | # CONFIG_ATL1 is not set | 580 | # CONFIG_ATL1 is not set |
672 | 581 | # CONFIG_NETDEV_10000 is not set | |
673 | # | ||
674 | # Ethernet (10000 Mbit) | ||
675 | # | ||
676 | # CONFIG_CHELSIO_T1 is not set | ||
677 | CONFIG_CHELSIO_T3=m | ||
678 | # CONFIG_IXGB is not set | ||
679 | # CONFIG_S2IO is not set | ||
680 | # CONFIG_MYRI10GE is not set | ||
681 | CONFIG_NETXEN_NIC=m | ||
682 | |||
683 | # | ||
684 | # Token Ring devices | ||
685 | # | ||
686 | # CONFIG_TR is not set | 582 | # CONFIG_TR is not set |
687 | 583 | ||
688 | # | 584 | # |
689 | # Wireless LAN (non-hamradio) | 585 | # Wireless LAN |
690 | # | 586 | # |
691 | # CONFIG_NET_RADIO is not set | 587 | # CONFIG_WLAN_PRE80211 is not set |
588 | # CONFIG_WLAN_80211 is not set | ||
692 | 589 | ||
693 | # | 590 | # |
694 | # Wan interfaces | 591 | # USB Network Adapters |
695 | # | 592 | # |
593 | # CONFIG_USB_CATC is not set | ||
594 | # CONFIG_USB_KAWETH is not set | ||
595 | # CONFIG_USB_PEGASUS is not set | ||
596 | # CONFIG_USB_RTL8150 is not set | ||
597 | # CONFIG_USB_USBNET_MII is not set | ||
598 | # CONFIG_USB_USBNET is not set | ||
696 | # CONFIG_WAN is not set | 599 | # CONFIG_WAN is not set |
697 | # CONFIG_FDDI is not set | 600 | # CONFIG_FDDI is not set |
698 | # CONFIG_HIPPI is not set | 601 | # CONFIG_HIPPI is not set |
@@ -703,15 +606,7 @@ CONFIG_NETXEN_NIC=m | |||
703 | # CONFIG_NETCONSOLE is not set | 606 | # CONFIG_NETCONSOLE is not set |
704 | # CONFIG_NETPOLL is not set | 607 | # CONFIG_NETPOLL is not set |
705 | # CONFIG_NET_POLL_CONTROLLER is not set | 608 | # CONFIG_NET_POLL_CONTROLLER is not set |
706 | |||
707 | # | ||
708 | # ISDN subsystem | ||
709 | # | ||
710 | # CONFIG_ISDN is not set | 609 | # CONFIG_ISDN is not set |
711 | |||
712 | # | ||
713 | # Telephony Support | ||
714 | # | ||
715 | # CONFIG_PHONE is not set | 610 | # CONFIG_PHONE is not set |
716 | 611 | ||
717 | # | 612 | # |
@@ -719,11 +614,15 @@ CONFIG_NETXEN_NIC=m | |||
719 | # | 614 | # |
720 | CONFIG_INPUT=y | 615 | CONFIG_INPUT=y |
721 | # CONFIG_INPUT_FF_MEMLESS is not set | 616 | # CONFIG_INPUT_FF_MEMLESS is not set |
617 | # CONFIG_INPUT_POLLDEV is not set | ||
722 | 618 | ||
723 | # | 619 | # |
724 | # Userland interfaces | 620 | # Userland interfaces |
725 | # | 621 | # |
726 | # CONFIG_INPUT_MOUSEDEV is not set | 622 | CONFIG_INPUT_MOUSEDEV=y |
623 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
624 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
625 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
727 | # CONFIG_INPUT_JOYDEV is not set | 626 | # CONFIG_INPUT_JOYDEV is not set |
728 | # CONFIG_INPUT_TSDEV is not set | 627 | # CONFIG_INPUT_TSDEV is not set |
729 | # CONFIG_INPUT_EVDEV is not set | 628 | # CONFIG_INPUT_EVDEV is not set |
@@ -735,6 +634,7 @@ CONFIG_INPUT=y | |||
735 | # CONFIG_INPUT_KEYBOARD is not set | 634 | # CONFIG_INPUT_KEYBOARD is not set |
736 | # CONFIG_INPUT_MOUSE is not set | 635 | # CONFIG_INPUT_MOUSE is not set |
737 | # CONFIG_INPUT_JOYSTICK is not set | 636 | # CONFIG_INPUT_JOYSTICK is not set |
637 | # CONFIG_INPUT_TABLET is not set | ||
738 | # CONFIG_INPUT_TOUCHSCREEN is not set | 638 | # CONFIG_INPUT_TOUCHSCREEN is not set |
739 | # CONFIG_INPUT_MISC is not set | 639 | # CONFIG_INPUT_MISC is not set |
740 | 640 | ||
@@ -769,35 +669,18 @@ CONFIG_SERIAL_VR41XX_CONSOLE=y | |||
769 | CONFIG_UNIX98_PTYS=y | 669 | CONFIG_UNIX98_PTYS=y |
770 | CONFIG_LEGACY_PTYS=y | 670 | CONFIG_LEGACY_PTYS=y |
771 | CONFIG_LEGACY_PTY_COUNT=256 | 671 | CONFIG_LEGACY_PTY_COUNT=256 |
772 | |||
773 | # | ||
774 | # IPMI | ||
775 | # | ||
776 | # CONFIG_IPMI_HANDLER is not set | 672 | # CONFIG_IPMI_HANDLER is not set |
777 | |||
778 | # | ||
779 | # Watchdog Cards | ||
780 | # | ||
781 | # CONFIG_WATCHDOG is not set | 673 | # CONFIG_WATCHDOG is not set |
782 | # CONFIG_HW_RANDOM is not set | 674 | # CONFIG_HW_RANDOM is not set |
783 | # CONFIG_RTC is not set | 675 | # CONFIG_RTC is not set |
784 | # CONFIG_GEN_RTC is not set | ||
785 | # CONFIG_DTLK is not set | ||
786 | # CONFIG_R3964 is not set | 676 | # CONFIG_R3964 is not set |
787 | # CONFIG_APPLICOM is not set | 677 | # CONFIG_APPLICOM is not set |
788 | # CONFIG_TANBAC_TB0219 is not set | 678 | # CONFIG_GPIO_TB0219 is not set |
789 | # CONFIG_DRM is not set | 679 | # CONFIG_DRM is not set |
790 | CONFIG_GPIO_VR41XX=y | 680 | CONFIG_GPIO_VR41XX=y |
791 | # CONFIG_RAW_DRIVER is not set | 681 | # CONFIG_RAW_DRIVER is not set |
792 | |||
793 | # | ||
794 | # TPM devices | ||
795 | # | ||
796 | # CONFIG_TCG_TPM is not set | 682 | # CONFIG_TCG_TPM is not set |
797 | 683 | CONFIG_DEVPORT=y | |
798 | # | ||
799 | # I2C support | ||
800 | # | ||
801 | # CONFIG_I2C is not set | 684 | # CONFIG_I2C is not set |
802 | 685 | ||
803 | # | 686 | # |
@@ -805,17 +688,9 @@ CONFIG_GPIO_VR41XX=y | |||
805 | # | 688 | # |
806 | # CONFIG_SPI is not set | 689 | # CONFIG_SPI is not set |
807 | # CONFIG_SPI_MASTER is not set | 690 | # CONFIG_SPI_MASTER is not set |
808 | |||
809 | # | ||
810 | # Dallas's 1-wire bus | ||
811 | # | ||
812 | # CONFIG_W1 is not set | 691 | # CONFIG_W1 is not set |
813 | 692 | # CONFIG_POWER_SUPPLY is not set | |
814 | # | ||
815 | # Hardware Monitoring support | ||
816 | # | ||
817 | # CONFIG_HWMON is not set | 693 | # CONFIG_HWMON is not set |
818 | # CONFIG_HWMON_VID is not set | ||
819 | 694 | ||
820 | # | 695 | # |
821 | # Multifunction device drivers | 696 | # Multifunction device drivers |
@@ -826,23 +701,31 @@ CONFIG_MFD_SM501=y | |||
826 | # Multimedia devices | 701 | # Multimedia devices |
827 | # | 702 | # |
828 | # CONFIG_VIDEO_DEV is not set | 703 | # CONFIG_VIDEO_DEV is not set |
704 | # CONFIG_DVB_CORE is not set | ||
705 | # CONFIG_DAB is not set | ||
829 | 706 | ||
830 | # | 707 | # |
831 | # Digital Video Broadcasting Devices | 708 | # Graphics support |
832 | # | 709 | # |
833 | # CONFIG_DVB is not set | 710 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
834 | # CONFIG_USB_DABUSB is not set | ||
835 | 711 | ||
836 | # | 712 | # |
837 | # Graphics support | 713 | # Display device support |
838 | # | 714 | # |
839 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 715 | # CONFIG_DISPLAY_SUPPORT is not set |
716 | # CONFIG_VGASTATE is not set | ||
717 | CONFIG_VIDEO_OUTPUT_CONTROL=m | ||
840 | CONFIG_FB=y | 718 | CONFIG_FB=y |
841 | # CONFIG_FIRMWARE_EDID is not set | 719 | # CONFIG_FIRMWARE_EDID is not set |
842 | # CONFIG_FB_DDC is not set | 720 | # CONFIG_FB_DDC is not set |
843 | CONFIG_FB_CFB_FILLRECT=y | 721 | CONFIG_FB_CFB_FILLRECT=y |
844 | CONFIG_FB_CFB_COPYAREA=y | 722 | CONFIG_FB_CFB_COPYAREA=y |
845 | CONFIG_FB_CFB_IMAGEBLIT=y | 723 | CONFIG_FB_CFB_IMAGEBLIT=y |
724 | # CONFIG_FB_SYS_FILLRECT is not set | ||
725 | # CONFIG_FB_SYS_COPYAREA is not set | ||
726 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
727 | # CONFIG_FB_SYS_FOPS is not set | ||
728 | CONFIG_FB_DEFERRED_IO=y | ||
846 | # CONFIG_FB_SVGALIB is not set | 729 | # CONFIG_FB_SVGALIB is not set |
847 | # CONFIG_FB_MACMODES is not set | 730 | # CONFIG_FB_MACMODES is not set |
848 | # CONFIG_FB_BACKLIGHT is not set | 731 | # CONFIG_FB_BACKLIGHT is not set |
@@ -850,7 +733,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
850 | # CONFIG_FB_TILEBLITTING is not set | 733 | # CONFIG_FB_TILEBLITTING is not set |
851 | 734 | ||
852 | # | 735 | # |
853 | # Frambuffer hardware drivers | 736 | # Frame buffer hardware drivers |
854 | # | 737 | # |
855 | # CONFIG_FB_CIRRUS is not set | 738 | # CONFIG_FB_CIRRUS is not set |
856 | # CONFIG_FB_PM2 is not set | 739 | # CONFIG_FB_PM2 is not set |
@@ -871,8 +754,10 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
871 | # CONFIG_FB_KYRO is not set | 754 | # CONFIG_FB_KYRO is not set |
872 | # CONFIG_FB_3DFX is not set | 755 | # CONFIG_FB_3DFX is not set |
873 | # CONFIG_FB_VOODOO1 is not set | 756 | # CONFIG_FB_VOODOO1 is not set |
874 | # CONFIG_FB_SMIVGX is not set | 757 | # CONFIG_FB_VT8623 is not set |
875 | # CONFIG_FB_TRIDENT is not set | 758 | # CONFIG_FB_TRIDENT is not set |
759 | # CONFIG_FB_ARK is not set | ||
760 | # CONFIG_FB_PM3 is not set | ||
876 | CONFIG_FB_SM501=y | 761 | CONFIG_FB_SM501=y |
877 | # CONFIG_FB_VIRTUAL is not set | 762 | # CONFIG_FB_VIRTUAL is not set |
878 | 763 | ||
@@ -881,27 +766,44 @@ CONFIG_FB_SM501=y | |||
881 | # | 766 | # |
882 | # CONFIG_VGA_CONSOLE is not set | 767 | # CONFIG_VGA_CONSOLE is not set |
883 | CONFIG_DUMMY_CONSOLE=y | 768 | CONFIG_DUMMY_CONSOLE=y |
884 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | 769 | CONFIG_FRAMEBUFFER_CONSOLE=y |
885 | 770 | # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set | |
886 | # | 771 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set |
887 | # Logo configuration | 772 | CONFIG_FONTS=y |
888 | # | 773 | CONFIG_FONT_8x8=y |
774 | CONFIG_FONT_8x16=y | ||
775 | # CONFIG_FONT_6x11 is not set | ||
776 | # CONFIG_FONT_7x14 is not set | ||
777 | # CONFIG_FONT_PEARL_8x8 is not set | ||
778 | # CONFIG_FONT_ACORN_8x8 is not set | ||
779 | # CONFIG_FONT_MINI_4x6 is not set | ||
780 | # CONFIG_FONT_SUN8x16 is not set | ||
781 | # CONFIG_FONT_SUN12x22 is not set | ||
782 | # CONFIG_FONT_10x18 is not set | ||
889 | # CONFIG_LOGO is not set | 783 | # CONFIG_LOGO is not set |
890 | 784 | ||
891 | # | 785 | # |
892 | # Sound | 786 | # Sound |
893 | # | 787 | # |
894 | # CONFIG_SOUND is not set | 788 | # CONFIG_SOUND is not set |
789 | CONFIG_HID_SUPPORT=y | ||
790 | CONFIG_HID=y | ||
791 | # CONFIG_HID_DEBUG is not set | ||
895 | 792 | ||
896 | # | 793 | # |
897 | # HID Devices | 794 | # USB Input Devices |
898 | # | 795 | # |
899 | CONFIG_HID=y | 796 | CONFIG_USB_HID=m |
900 | # CONFIG_HID_DEBUG is not set | 797 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set |
798 | # CONFIG_HID_FF is not set | ||
799 | # CONFIG_USB_HIDDEV is not set | ||
901 | 800 | ||
902 | # | 801 | # |
903 | # USB support | 802 | # USB HID Boot Protocol drivers |
904 | # | 803 | # |
804 | # CONFIG_USB_KBD is not set | ||
805 | # CONFIG_USB_MOUSE is not set | ||
806 | CONFIG_USB_SUPPORT=y | ||
905 | CONFIG_USB_ARCH_HAS_HCD=y | 807 | CONFIG_USB_ARCH_HAS_HCD=y |
906 | CONFIG_USB_ARCH_HAS_OHCI=y | 808 | CONFIG_USB_ARCH_HAS_OHCI=y |
907 | CONFIG_USB_ARCH_HAS_EHCI=y | 809 | CONFIG_USB_ARCH_HAS_EHCI=y |
@@ -912,8 +814,8 @@ CONFIG_USB=m | |||
912 | # Miscellaneous USB options | 814 | # Miscellaneous USB options |
913 | # | 815 | # |
914 | # CONFIG_USB_DEVICEFS is not set | 816 | # CONFIG_USB_DEVICEFS is not set |
817 | CONFIG_USB_DEVICE_CLASS=y | ||
915 | # CONFIG_USB_DYNAMIC_MINORS is not set | 818 | # CONFIG_USB_DYNAMIC_MINORS is not set |
916 | # CONFIG_USB_SUSPEND is not set | ||
917 | # CONFIG_USB_OTG is not set | 819 | # CONFIG_USB_OTG is not set |
918 | 820 | ||
919 | # | 821 | # |
@@ -923,7 +825,6 @@ CONFIG_USB_EHCI_HCD=m | |||
923 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | 825 | # CONFIG_USB_EHCI_SPLIT_ISO is not set |
924 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 826 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
925 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 827 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
926 | # CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set | ||
927 | # CONFIG_USB_ISP116X_HCD is not set | 828 | # CONFIG_USB_ISP116X_HCD is not set |
928 | CONFIG_USB_OHCI_HCD=m | 829 | CONFIG_USB_OHCI_HCD=m |
929 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | 830 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
@@ -931,6 +832,7 @@ CONFIG_USB_OHCI_HCD=m | |||
931 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 832 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
932 | # CONFIG_USB_UHCI_HCD is not set | 833 | # CONFIG_USB_UHCI_HCD is not set |
933 | # CONFIG_USB_SL811_HCD is not set | 834 | # CONFIG_USB_SL811_HCD is not set |
835 | # CONFIG_USB_R8A66597_HCD is not set | ||
934 | 836 | ||
935 | # | 837 | # |
936 | # USB Device Class drivers | 838 | # USB Device Class drivers |
@@ -959,47 +861,10 @@ CONFIG_USB_STORAGE=m | |||
959 | # CONFIG_USB_LIBUSUAL is not set | 861 | # CONFIG_USB_LIBUSUAL is not set |
960 | 862 | ||
961 | # | 863 | # |
962 | # USB Input Devices | ||
963 | # | ||
964 | CONFIG_USB_HID=m | ||
965 | # CONFIG_USB_HIDINPUT_POWERBOOK is not set | ||
966 | # CONFIG_HID_FF is not set | ||
967 | # CONFIG_USB_HIDDEV is not set | ||
968 | |||
969 | # | ||
970 | # USB HID Boot Protocol drivers | ||
971 | # | ||
972 | # CONFIG_USB_KBD is not set | ||
973 | # CONFIG_USB_MOUSE is not set | ||
974 | # CONFIG_USB_AIPTEK is not set | ||
975 | # CONFIG_USB_WACOM is not set | ||
976 | # CONFIG_USB_ACECAD is not set | ||
977 | # CONFIG_USB_KBTAB is not set | ||
978 | # CONFIG_USB_POWERMATE is not set | ||
979 | # CONFIG_USB_TOUCHSCREEN is not set | ||
980 | # CONFIG_USB_YEALINK is not set | ||
981 | # CONFIG_USB_XPAD is not set | ||
982 | # CONFIG_USB_ATI_REMOTE is not set | ||
983 | # CONFIG_USB_ATI_REMOTE2 is not set | ||
984 | # CONFIG_USB_KEYSPAN_REMOTE is not set | ||
985 | # CONFIG_USB_APPLETOUCH is not set | ||
986 | # CONFIG_USB_GTCO is not set | ||
987 | |||
988 | # | ||
989 | # USB Imaging devices | 864 | # USB Imaging devices |
990 | # | 865 | # |
991 | # CONFIG_USB_MDC800 is not set | 866 | # CONFIG_USB_MDC800 is not set |
992 | # CONFIG_USB_MICROTEK is not set | 867 | # CONFIG_USB_MICROTEK is not set |
993 | |||
994 | # | ||
995 | # USB Network Adapters | ||
996 | # | ||
997 | # CONFIG_USB_CATC is not set | ||
998 | # CONFIG_USB_KAWETH is not set | ||
999 | # CONFIG_USB_PEGASUS is not set | ||
1000 | # CONFIG_USB_RTL8150 is not set | ||
1001 | # CONFIG_USB_USBNET_MII is not set | ||
1002 | # CONFIG_USB_USBNET is not set | ||
1003 | CONFIG_USB_MON=y | 868 | CONFIG_USB_MON=y |
1004 | 869 | ||
1005 | # | 870 | # |
@@ -1032,6 +897,7 @@ CONFIG_USB_MON=y | |||
1032 | # CONFIG_USB_SISUSBVGA is not set | 897 | # CONFIG_USB_SISUSBVGA is not set |
1033 | # CONFIG_USB_LD is not set | 898 | # CONFIG_USB_LD is not set |
1034 | # CONFIG_USB_TRANCEVIBRATOR is not set | 899 | # CONFIG_USB_TRANCEVIBRATOR is not set |
900 | # CONFIG_USB_IOWARRIOR is not set | ||
1035 | 901 | ||
1036 | # | 902 | # |
1037 | # USB DSL modem support | 903 | # USB DSL modem support |
@@ -1041,37 +907,9 @@ CONFIG_USB_MON=y | |||
1041 | # USB Gadget Support | 907 | # USB Gadget Support |
1042 | # | 908 | # |
1043 | # CONFIG_USB_GADGET is not set | 909 | # CONFIG_USB_GADGET is not set |
1044 | |||
1045 | # | ||
1046 | # MMC/SD Card support | ||
1047 | # | ||
1048 | # CONFIG_MMC is not set | 910 | # CONFIG_MMC is not set |
1049 | |||
1050 | # | ||
1051 | # LED devices | ||
1052 | # | ||
1053 | # CONFIG_NEW_LEDS is not set | 911 | # CONFIG_NEW_LEDS is not set |
1054 | |||
1055 | # | ||
1056 | # LED drivers | ||
1057 | # | ||
1058 | |||
1059 | # | ||
1060 | # LED Triggers | ||
1061 | # | ||
1062 | |||
1063 | # | ||
1064 | # InfiniBand support | ||
1065 | # | ||
1066 | # CONFIG_INFINIBAND is not set | 912 | # CONFIG_INFINIBAND is not set |
1067 | |||
1068 | # | ||
1069 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
1070 | # | ||
1071 | |||
1072 | # | ||
1073 | # Real Time Clock | ||
1074 | # | ||
1075 | # CONFIG_RTC_CLASS is not set | 913 | # CONFIG_RTC_CLASS is not set |
1076 | 914 | ||
1077 | # | 915 | # |
@@ -1088,12 +926,9 @@ CONFIG_USB_MON=y | |||
1088 | # | 926 | # |
1089 | 927 | ||
1090 | # | 928 | # |
1091 | # Auxiliary Display support | 929 | # Userspace I/O |
1092 | # | ||
1093 | |||
1094 | # | ||
1095 | # Virtualization | ||
1096 | # | 930 | # |
931 | # CONFIG_UIO is not set | ||
1097 | 932 | ||
1098 | # | 933 | # |
1099 | # File systems | 934 | # File systems |
@@ -1111,7 +946,7 @@ CONFIG_JBD=y | |||
1111 | CONFIG_FS_MBCACHE=y | 946 | CONFIG_FS_MBCACHE=y |
1112 | # CONFIG_REISERFS_FS is not set | 947 | # CONFIG_REISERFS_FS is not set |
1113 | # CONFIG_JFS_FS is not set | 948 | # CONFIG_JFS_FS is not set |
1114 | # CONFIG_FS_POSIX_ACL is not set | 949 | CONFIG_FS_POSIX_ACL=y |
1115 | CONFIG_XFS_FS=y | 950 | CONFIG_XFS_FS=y |
1116 | CONFIG_XFS_QUOTA=y | 951 | CONFIG_XFS_QUOTA=y |
1117 | # CONFIG_XFS_SECURITY is not set | 952 | # CONFIG_XFS_SECURITY is not set |
@@ -1125,10 +960,11 @@ CONFIG_INOTIFY=y | |||
1125 | CONFIG_INOTIFY_USER=y | 960 | CONFIG_INOTIFY_USER=y |
1126 | # CONFIG_QUOTA is not set | 961 | # CONFIG_QUOTA is not set |
1127 | CONFIG_QUOTACTL=y | 962 | CONFIG_QUOTACTL=y |
1128 | # CONFIG_DNOTIFY is not set | 963 | CONFIG_DNOTIFY=y |
1129 | # CONFIG_AUTOFS_FS is not set | 964 | # CONFIG_AUTOFS_FS is not set |
1130 | CONFIG_AUTOFS4_FS=y | 965 | CONFIG_AUTOFS4_FS=y |
1131 | # CONFIG_FUSE_FS is not set | 966 | # CONFIG_FUSE_FS is not set |
967 | CONFIG_GENERIC_ACL=y | ||
1132 | 968 | ||
1133 | # | 969 | # |
1134 | # CD-ROM/DVD Filesystems | 970 | # CD-ROM/DVD Filesystems |
@@ -1151,10 +987,10 @@ CONFIG_PROC_KCORE=y | |||
1151 | CONFIG_PROC_SYSCTL=y | 987 | CONFIG_PROC_SYSCTL=y |
1152 | CONFIG_SYSFS=y | 988 | CONFIG_SYSFS=y |
1153 | CONFIG_TMPFS=y | 989 | CONFIG_TMPFS=y |
1154 | # CONFIG_TMPFS_POSIX_ACL is not set | 990 | CONFIG_TMPFS_POSIX_ACL=y |
1155 | # CONFIG_HUGETLB_PAGE is not set | 991 | # CONFIG_HUGETLB_PAGE is not set |
1156 | CONFIG_RAMFS=y | 992 | CONFIG_RAMFS=y |
1157 | CONFIG_CONFIGFS_FS=m | 993 | # CONFIG_CONFIGFS_FS is not set |
1158 | 994 | ||
1159 | # | 995 | # |
1160 | # Miscellaneous filesystems | 996 | # Miscellaneous filesystems |
@@ -1181,12 +1017,18 @@ CONFIG_NFS_V3=y | |||
1181 | # CONFIG_NFS_V3_ACL is not set | 1017 | # CONFIG_NFS_V3_ACL is not set |
1182 | # CONFIG_NFS_V4 is not set | 1018 | # CONFIG_NFS_V4 is not set |
1183 | # CONFIG_NFS_DIRECTIO is not set | 1019 | # CONFIG_NFS_DIRECTIO is not set |
1184 | # CONFIG_NFSD is not set | 1020 | CONFIG_NFSD=m |
1021 | CONFIG_NFSD_V3=y | ||
1022 | # CONFIG_NFSD_V3_ACL is not set | ||
1023 | # CONFIG_NFSD_V4 is not set | ||
1024 | CONFIG_NFSD_TCP=y | ||
1185 | CONFIG_ROOT_NFS=y | 1025 | CONFIG_ROOT_NFS=y |
1186 | CONFIG_LOCKD=y | 1026 | CONFIG_LOCKD=y |
1187 | CONFIG_LOCKD_V4=y | 1027 | CONFIG_LOCKD_V4=y |
1028 | CONFIG_EXPORTFS=m | ||
1188 | CONFIG_NFS_COMMON=y | 1029 | CONFIG_NFS_COMMON=y |
1189 | CONFIG_SUNRPC=y | 1030 | CONFIG_SUNRPC=y |
1031 | # CONFIG_SUNRPC_BIND34 is not set | ||
1190 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1032 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1191 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1033 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1192 | # CONFIG_SMB_FS is not set | 1034 | # CONFIG_SMB_FS is not set |
@@ -1194,7 +1036,6 @@ CONFIG_SUNRPC=y | |||
1194 | # CONFIG_NCP_FS is not set | 1036 | # CONFIG_NCP_FS is not set |
1195 | # CONFIG_CODA_FS is not set | 1037 | # CONFIG_CODA_FS is not set |
1196 | # CONFIG_AFS_FS is not set | 1038 | # CONFIG_AFS_FS is not set |
1197 | # CONFIG_9P_FS is not set | ||
1198 | 1039 | ||
1199 | # | 1040 | # |
1200 | # Partition Types | 1041 | # Partition Types |
@@ -1210,10 +1051,7 @@ CONFIG_MSDOS_PARTITION=y | |||
1210 | # | 1051 | # |
1211 | # Distributed Lock Manager | 1052 | # Distributed Lock Manager |
1212 | # | 1053 | # |
1213 | CONFIG_DLM=m | 1054 | # CONFIG_DLM is not set |
1214 | CONFIG_DLM_TCP=y | ||
1215 | # CONFIG_DLM_SCTP is not set | ||
1216 | # CONFIG_DLM_DEBUG is not set | ||
1217 | 1055 | ||
1218 | # | 1056 | # |
1219 | # Profiling support | 1057 | # Profiling support |
@@ -1231,7 +1069,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1231 | # CONFIG_DEBUG_FS is not set | 1069 | # CONFIG_DEBUG_FS is not set |
1232 | # CONFIG_HEADERS_CHECK is not set | 1070 | # CONFIG_HEADERS_CHECK is not set |
1233 | # CONFIG_DEBUG_KERNEL is not set | 1071 | # CONFIG_DEBUG_KERNEL is not set |
1234 | CONFIG_LOG_BUF_SHIFT=14 | ||
1235 | CONFIG_CROSSCOMPILE=y | 1072 | CONFIG_CROSSCOMPILE=y |
1236 | CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" | 1073 | CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" |
1237 | 1074 | ||
@@ -1240,63 +1077,20 @@ CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" | |||
1240 | # | 1077 | # |
1241 | # CONFIG_KEYS is not set | 1078 | # CONFIG_KEYS is not set |
1242 | # CONFIG_SECURITY is not set | 1079 | # CONFIG_SECURITY is not set |
1243 | 1080 | # CONFIG_CRYPTO is not set | |
1244 | # | ||
1245 | # Cryptographic options | ||
1246 | # | ||
1247 | CONFIG_CRYPTO=y | ||
1248 | CONFIG_CRYPTO_ALGAPI=y | ||
1249 | CONFIG_CRYPTO_BLKCIPHER=m | ||
1250 | CONFIG_CRYPTO_HASH=m | ||
1251 | CONFIG_CRYPTO_MANAGER=m | ||
1252 | CONFIG_CRYPTO_HMAC=m | ||
1253 | CONFIG_CRYPTO_XCBC=m | ||
1254 | CONFIG_CRYPTO_NULL=m | ||
1255 | CONFIG_CRYPTO_MD4=m | ||
1256 | CONFIG_CRYPTO_MD5=y | ||
1257 | CONFIG_CRYPTO_SHA1=m | ||
1258 | CONFIG_CRYPTO_SHA256=m | ||
1259 | CONFIG_CRYPTO_SHA512=m | ||
1260 | CONFIG_CRYPTO_WP512=m | ||
1261 | CONFIG_CRYPTO_TGR192=m | ||
1262 | CONFIG_CRYPTO_GF128MUL=m | ||
1263 | CONFIG_CRYPTO_ECB=m | ||
1264 | CONFIG_CRYPTO_CBC=m | ||
1265 | CONFIG_CRYPTO_PCBC=m | ||
1266 | CONFIG_CRYPTO_LRW=m | ||
1267 | CONFIG_CRYPTO_DES=m | ||
1268 | CONFIG_CRYPTO_FCRYPT=m | ||
1269 | CONFIG_CRYPTO_BLOWFISH=m | ||
1270 | CONFIG_CRYPTO_TWOFISH=m | ||
1271 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1272 | CONFIG_CRYPTO_SERPENT=m | ||
1273 | CONFIG_CRYPTO_AES=m | ||
1274 | CONFIG_CRYPTO_CAST5=m | ||
1275 | CONFIG_CRYPTO_CAST6=m | ||
1276 | CONFIG_CRYPTO_TEA=m | ||
1277 | CONFIG_CRYPTO_ARC4=m | ||
1278 | CONFIG_CRYPTO_KHAZAD=m | ||
1279 | CONFIG_CRYPTO_ANUBIS=m | ||
1280 | CONFIG_CRYPTO_DEFLATE=m | ||
1281 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1282 | CONFIG_CRYPTO_CRC32C=m | ||
1283 | CONFIG_CRYPTO_CAMELLIA=m | ||
1284 | # CONFIG_CRYPTO_TEST is not set | ||
1285 | |||
1286 | # | ||
1287 | # Hardware crypto devices | ||
1288 | # | ||
1289 | 1081 | ||
1290 | # | 1082 | # |
1291 | # Library routines | 1083 | # Library routines |
1292 | # | 1084 | # |
1293 | CONFIG_BITREVERSE=y | 1085 | CONFIG_BITREVERSE=y |
1294 | # CONFIG_CRC_CCITT is not set | 1086 | CONFIG_CRC_CCITT=y |
1295 | # CONFIG_CRC16 is not set | 1087 | # CONFIG_CRC16 is not set |
1088 | # CONFIG_CRC_ITU_T is not set | ||
1296 | CONFIG_CRC32=y | 1089 | CONFIG_CRC32=y |
1297 | CONFIG_LIBCRC32C=m | 1090 | # CONFIG_CRC7 is not set |
1091 | # CONFIG_LIBCRC32C is not set | ||
1298 | CONFIG_ZLIB_INFLATE=m | 1092 | CONFIG_ZLIB_INFLATE=m |
1299 | CONFIG_ZLIB_DEFLATE=m | ||
1300 | CONFIG_PLIST=y | 1093 | CONFIG_PLIST=y |
1301 | CONFIG_HAS_IOMEM=y | 1094 | CONFIG_HAS_IOMEM=y |
1302 | CONFIG_HAS_IOPORT=y | 1095 | CONFIG_HAS_IOPORT=y |
1096 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/configs/workpad_defconfig b/arch/mips/configs/workpad_defconfig index db6fd4f15719..b52256ca0b53 100644 --- a/arch/mips/configs/workpad_defconfig +++ b/arch/mips/configs/workpad_defconfig | |||
@@ -1,60 +1,47 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.20 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Tue Feb 20 21:47:42 2007 | 4 | # Thu Aug 9 14:33:57 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
8 | # | 8 | # |
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_MIPS_MTX1 is not set | ||
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 12 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 13 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 14 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 15 | # CONFIG_MACH_JAZZ is not set |
16 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 17 | # CONFIG_MIPS_ATLAS is not set |
30 | # CONFIG_MIPS_MALTA is not set | 18 | # CONFIG_MIPS_MALTA is not set |
31 | # CONFIG_MIPS_SEAD is not set | 19 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 20 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 21 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 22 | CONFIG_MACH_VR41XX=y |
36 | # CONFIG_PNX8550_JBS is not set | 23 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 24 | # CONFIG_PNX8550_STB810 is not set |
38 | CONFIG_MACH_VR41XX=y | 25 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 26 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 27 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | # CONFIG_SGI_IP22 is not set | 28 | # CONFIG_SGI_IP22 is not set |
43 | # CONFIG_SGI_IP27 is not set | 29 | # CONFIG_SGI_IP27 is not set |
44 | # CONFIG_SGI_IP32 is not set | 30 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 31 | # CONFIG_SIBYTE_CRHINE is not set |
32 | # CONFIG_SIBYTE_CARMEL is not set | ||
33 | # CONFIG_SIBYTE_CRHONE is not set | ||
34 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 35 | # CONFIG_SIBYTE_SWARM is not set |
36 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 37 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 38 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 39 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 40 | # CONFIG_SNI_RM is not set |
55 | # CONFIG_TOSHIBA_JMR3927 is not set | 41 | # CONFIG_TOSHIBA_JMR3927 is not set |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 42 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 43 | # CONFIG_TOSHIBA_RBTX4938 is not set |
44 | # CONFIG_WR_PPMC is not set | ||
58 | # CONFIG_CASIO_E55 is not set | 45 | # CONFIG_CASIO_E55 is not set |
59 | CONFIG_IBM_WORKPAD=y | 46 | CONFIG_IBM_WORKPAD=y |
60 | # CONFIG_NEC_CMBVR4133 is not set | 47 | # CONFIG_NEC_CMBVR4133 is not set |
@@ -72,6 +59,8 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
72 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 59 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
73 | CONFIG_DMA_NONCOHERENT=y | 60 | CONFIG_DMA_NONCOHERENT=y |
74 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 61 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
62 | # CONFIG_HOTPLUG_CPU is not set | ||
63 | # CONFIG_NO_IOPORT is not set | ||
75 | # CONFIG_CPU_BIG_ENDIAN is not set | 64 | # CONFIG_CPU_BIG_ENDIAN is not set |
76 | CONFIG_CPU_LITTLE_ENDIAN=y | 65 | CONFIG_CPU_LITTLE_ENDIAN=y |
77 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y | 66 | CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y |
@@ -81,6 +70,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
81 | # | 70 | # |
82 | # CPU selection | 71 | # CPU selection |
83 | # | 72 | # |
73 | # CONFIG_CPU_LOONGSON2 is not set | ||
84 | # CONFIG_CPU_MIPS32_R1 is not set | 74 | # CONFIG_CPU_MIPS32_R1 is not set |
85 | # CONFIG_CPU_MIPS32_R2 is not set | 75 | # CONFIG_CPU_MIPS32_R2 is not set |
86 | # CONFIG_CPU_MIPS64_R1 is not set | 76 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -102,7 +92,6 @@ CONFIG_CPU_VR41XX=y | |||
102 | # CONFIG_CPU_SB1 is not set | 92 | # CONFIG_CPU_SB1 is not set |
103 | CONFIG_SYS_HAS_CPU_VR41XX=y | 93 | CONFIG_SYS_HAS_CPU_VR41XX=y |
104 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y | 94 | CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y |
105 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | ||
106 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | 95 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y |
107 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y | 96 | CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y |
108 | 97 | ||
@@ -118,7 +107,6 @@ CONFIG_PAGE_SIZE_4KB=y | |||
118 | CONFIG_MIPS_MT_DISABLED=y | 107 | CONFIG_MIPS_MT_DISABLED=y |
119 | # CONFIG_MIPS_MT_SMP is not set | 108 | # CONFIG_MIPS_MT_SMP is not set |
120 | # CONFIG_MIPS_MT_SMTC is not set | 109 | # CONFIG_MIPS_MT_SMTC is not set |
121 | # CONFIG_MIPS_VPE_LOADER is not set | ||
122 | CONFIG_CPU_HAS_SYNC=y | 110 | CONFIG_CPU_HAS_SYNC=y |
123 | CONFIG_GENERIC_HARDIRQS=y | 111 | CONFIG_GENERIC_HARDIRQS=y |
124 | CONFIG_GENERIC_IRQ_PROBE=y | 112 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -132,48 +120,47 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
132 | # CONFIG_SPARSEMEM_STATIC is not set | 120 | # CONFIG_SPARSEMEM_STATIC is not set |
133 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 121 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
134 | # CONFIG_RESOURCES_64BIT is not set | 122 | # CONFIG_RESOURCES_64BIT is not set |
135 | CONFIG_ZONE_DMA_FLAG=1 | 123 | CONFIG_ZONE_DMA_FLAG=0 |
124 | CONFIG_VIRT_TO_BUS=y | ||
136 | # CONFIG_HZ_48 is not set | 125 | # CONFIG_HZ_48 is not set |
137 | # CONFIG_HZ_100 is not set | 126 | # CONFIG_HZ_100 is not set |
138 | # CONFIG_HZ_128 is not set | 127 | # CONFIG_HZ_128 is not set |
139 | # CONFIG_HZ_250 is not set | 128 | CONFIG_HZ_250=y |
140 | # CONFIG_HZ_256 is not set | 129 | # CONFIG_HZ_256 is not set |
141 | CONFIG_HZ_1000=y | 130 | # CONFIG_HZ_1000 is not set |
142 | # CONFIG_HZ_1024 is not set | 131 | # CONFIG_HZ_1024 is not set |
143 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y | 132 | CONFIG_SYS_SUPPORTS_ARBIT_HZ=y |
144 | CONFIG_HZ=1000 | 133 | CONFIG_HZ=250 |
145 | CONFIG_PREEMPT_NONE=y | 134 | CONFIG_PREEMPT_NONE=y |
146 | # CONFIG_PREEMPT_VOLUNTARY is not set | 135 | # CONFIG_PREEMPT_VOLUNTARY is not set |
147 | # CONFIG_PREEMPT is not set | 136 | # CONFIG_PREEMPT is not set |
148 | # CONFIG_KEXEC is not set | 137 | # CONFIG_KEXEC is not set |
138 | CONFIG_SECCOMP=y | ||
149 | CONFIG_LOCKDEP_SUPPORT=y | 139 | CONFIG_LOCKDEP_SUPPORT=y |
150 | CONFIG_STACKTRACE_SUPPORT=y | 140 | CONFIG_STACKTRACE_SUPPORT=y |
151 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 141 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
152 | 142 | ||
153 | # | 143 | # |
154 | # Code maturity level options | 144 | # General setup |
155 | # | 145 | # |
156 | CONFIG_EXPERIMENTAL=y | 146 | CONFIG_EXPERIMENTAL=y |
157 | CONFIG_BROKEN_ON_SMP=y | 147 | CONFIG_BROKEN_ON_SMP=y |
158 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 148 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
159 | |||
160 | # | ||
161 | # General setup | ||
162 | # | ||
163 | CONFIG_LOCALVERSION="" | 149 | CONFIG_LOCALVERSION="" |
164 | CONFIG_LOCALVERSION_AUTO=y | 150 | CONFIG_LOCALVERSION_AUTO=y |
165 | CONFIG_SWAP=y | 151 | CONFIG_SWAP=y |
166 | CONFIG_SYSVIPC=y | 152 | CONFIG_SYSVIPC=y |
167 | # CONFIG_IPC_NS is not set | ||
168 | CONFIG_SYSVIPC_SYSCTL=y | 153 | CONFIG_SYSVIPC_SYSCTL=y |
169 | # CONFIG_POSIX_MQUEUE is not set | 154 | # CONFIG_POSIX_MQUEUE is not set |
170 | # CONFIG_BSD_PROCESS_ACCT is not set | 155 | # CONFIG_BSD_PROCESS_ACCT is not set |
171 | # CONFIG_TASKSTATS is not set | 156 | # CONFIG_TASKSTATS is not set |
172 | # CONFIG_UTS_NS is not set | 157 | # CONFIG_USER_NS is not set |
173 | # CONFIG_AUDIT is not set | 158 | # CONFIG_AUDIT is not set |
174 | # CONFIG_IKCONFIG is not set | 159 | # CONFIG_IKCONFIG is not set |
160 | CONFIG_LOG_BUF_SHIFT=14 | ||
175 | CONFIG_SYSFS_DEPRECATED=y | 161 | CONFIG_SYSFS_DEPRECATED=y |
176 | # CONFIG_RELAY is not set | 162 | # CONFIG_RELAY is not set |
163 | # CONFIG_BLK_DEV_INITRD is not set | ||
177 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 164 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
178 | CONFIG_SYSCTL=y | 165 | CONFIG_SYSCTL=y |
179 | CONFIG_EMBEDDED=y | 166 | CONFIG_EMBEDDED=y |
@@ -186,32 +173,30 @@ CONFIG_BUG=y | |||
186 | CONFIG_ELF_CORE=y | 173 | CONFIG_ELF_CORE=y |
187 | CONFIG_BASE_FULL=y | 174 | CONFIG_BASE_FULL=y |
188 | CONFIG_FUTEX=y | 175 | CONFIG_FUTEX=y |
176 | CONFIG_ANON_INODES=y | ||
189 | CONFIG_EPOLL=y | 177 | CONFIG_EPOLL=y |
178 | CONFIG_SIGNALFD=y | ||
179 | CONFIG_TIMERFD=y | ||
180 | CONFIG_EVENTFD=y | ||
190 | CONFIG_SHMEM=y | 181 | CONFIG_SHMEM=y |
191 | CONFIG_SLAB=y | ||
192 | CONFIG_VM_EVENT_COUNTERS=y | 182 | CONFIG_VM_EVENT_COUNTERS=y |
183 | CONFIG_SLAB=y | ||
184 | # CONFIG_SLUB is not set | ||
185 | # CONFIG_SLOB is not set | ||
193 | CONFIG_RT_MUTEXES=y | 186 | CONFIG_RT_MUTEXES=y |
194 | # CONFIG_TINY_SHMEM is not set | 187 | # CONFIG_TINY_SHMEM is not set |
195 | CONFIG_BASE_SMALL=0 | 188 | CONFIG_BASE_SMALL=0 |
196 | # CONFIG_SLOB is not set | ||
197 | |||
198 | # | ||
199 | # Loadable module support | ||
200 | # | ||
201 | CONFIG_MODULES=y | 189 | CONFIG_MODULES=y |
202 | CONFIG_MODULE_UNLOAD=y | 190 | CONFIG_MODULE_UNLOAD=y |
203 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 191 | CONFIG_MODULE_FORCE_UNLOAD=y |
204 | CONFIG_MODVERSIONS=y | 192 | CONFIG_MODVERSIONS=y |
205 | CONFIG_MODULE_SRCVERSION_ALL=y | 193 | CONFIG_MODULE_SRCVERSION_ALL=y |
206 | CONFIG_KMOD=y | 194 | CONFIG_KMOD=y |
207 | |||
208 | # | ||
209 | # Block layer | ||
210 | # | ||
211 | CONFIG_BLOCK=y | 195 | CONFIG_BLOCK=y |
212 | # CONFIG_LBD is not set | 196 | # CONFIG_LBD is not set |
213 | # CONFIG_BLK_DEV_IO_TRACE is not set | 197 | # CONFIG_BLK_DEV_IO_TRACE is not set |
214 | # CONFIG_LSF is not set | 198 | # CONFIG_LSF is not set |
199 | # CONFIG_BLK_DEV_BSG is not set | ||
215 | 200 | ||
216 | # | 201 | # |
217 | # IO Schedulers | 202 | # IO Schedulers |
@@ -229,6 +214,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
229 | # | 214 | # |
230 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) | 215 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) |
231 | # | 216 | # |
217 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
232 | CONFIG_ISA=y | 218 | CONFIG_ISA=y |
233 | CONFIG_MMU=y | 219 | CONFIG_MMU=y |
234 | 220 | ||
@@ -250,10 +236,6 @@ CONFIG_PCMCIA_PROBE=y | |||
250 | CONFIG_PCMCIA_VRC4171=y | 236 | CONFIG_PCMCIA_VRC4171=y |
251 | 237 | ||
252 | # | 238 | # |
253 | # PCI Hotplug Support | ||
254 | # | ||
255 | |||
256 | # | ||
257 | # Executable file formats | 239 | # Executable file formats |
258 | # | 240 | # |
259 | CONFIG_BINFMT_ELF=y | 241 | CONFIG_BINFMT_ELF=y |
@@ -263,10 +245,7 @@ CONFIG_TRAD_SIGNALS=y | |||
263 | # | 245 | # |
264 | # Power management options | 246 | # Power management options |
265 | # | 247 | # |
266 | CONFIG_PM=y | 248 | # CONFIG_PM is not set |
267 | # CONFIG_PM_LEGACY is not set | ||
268 | # CONFIG_PM_DEBUG is not set | ||
269 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
270 | 249 | ||
271 | # | 250 | # |
272 | # Networking | 251 | # Networking |
@@ -276,7 +255,6 @@ CONFIG_NET=y | |||
276 | # | 255 | # |
277 | # Networking options | 256 | # Networking options |
278 | # | 257 | # |
279 | # CONFIG_NETDEBUG is not set | ||
280 | CONFIG_PACKET=y | 258 | CONFIG_PACKET=y |
281 | CONFIG_PACKET_MMAP=y | 259 | CONFIG_PACKET_MMAP=y |
282 | CONFIG_UNIX=y | 260 | CONFIG_UNIX=y |
@@ -301,34 +279,25 @@ CONFIG_IP_FIB_HASH=y | |||
301 | # CONFIG_INET_IPCOMP is not set | 279 | # CONFIG_INET_IPCOMP is not set |
302 | # CONFIG_INET_XFRM_TUNNEL is not set | 280 | # CONFIG_INET_XFRM_TUNNEL is not set |
303 | # CONFIG_INET_TUNNEL is not set | 281 | # CONFIG_INET_TUNNEL is not set |
304 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | 282 | # CONFIG_INET_XFRM_MODE_TRANSPORT is not set |
305 | CONFIG_INET_XFRM_MODE_TUNNEL=m | 283 | # CONFIG_INET_XFRM_MODE_TUNNEL is not set |
306 | CONFIG_INET_XFRM_MODE_BEET=m | 284 | # CONFIG_INET_XFRM_MODE_BEET is not set |
307 | CONFIG_INET_DIAG=y | 285 | CONFIG_INET_DIAG=y |
308 | CONFIG_INET_TCP_DIAG=y | 286 | CONFIG_INET_TCP_DIAG=y |
309 | # CONFIG_TCP_CONG_ADVANCED is not set | 287 | # CONFIG_TCP_CONG_ADVANCED is not set |
310 | CONFIG_TCP_CONG_CUBIC=y | 288 | CONFIG_TCP_CONG_CUBIC=y |
311 | CONFIG_DEFAULT_TCP_CONG="cubic" | 289 | CONFIG_DEFAULT_TCP_CONG="cubic" |
312 | CONFIG_TCP_MD5SIG=y | 290 | # CONFIG_TCP_MD5SIG is not set |
313 | # CONFIG_IPV6 is not set | 291 | # CONFIG_IPV6 is not set |
314 | # CONFIG_INET6_XFRM_TUNNEL is not set | 292 | # CONFIG_INET6_XFRM_TUNNEL is not set |
315 | # CONFIG_INET6_TUNNEL is not set | 293 | # CONFIG_INET6_TUNNEL is not set |
316 | CONFIG_NETWORK_SECMARK=y | 294 | CONFIG_NETWORK_SECMARK=y |
317 | # CONFIG_NETFILTER is not set | 295 | # CONFIG_NETFILTER is not set |
318 | |||
319 | # | ||
320 | # DCCP Configuration (EXPERIMENTAL) | ||
321 | # | ||
322 | # CONFIG_IP_DCCP is not set | 296 | # CONFIG_IP_DCCP is not set |
323 | |||
324 | # | ||
325 | # SCTP Configuration (EXPERIMENTAL) | ||
326 | # | ||
327 | # CONFIG_IP_SCTP is not set | 297 | # CONFIG_IP_SCTP is not set |
328 | 298 | # CONFIG_SCTP_HMAC_NONE is not set | |
329 | # | 299 | # CONFIG_SCTP_HMAC_SHA1 is not set |
330 | # TIPC Configuration (EXPERIMENTAL) | 300 | # CONFIG_SCTP_HMAC_MD5 is not set |
331 | # | ||
332 | # CONFIG_TIPC is not set | 301 | # CONFIG_TIPC is not set |
333 | # CONFIG_ATM is not set | 302 | # CONFIG_ATM is not set |
334 | # CONFIG_BRIDGE is not set | 303 | # CONFIG_BRIDGE is not set |
@@ -354,8 +323,17 @@ CONFIG_NETWORK_SECMARK=y | |||
354 | # CONFIG_HAMRADIO is not set | 323 | # CONFIG_HAMRADIO is not set |
355 | # CONFIG_IRDA is not set | 324 | # CONFIG_IRDA is not set |
356 | # CONFIG_BT is not set | 325 | # CONFIG_BT is not set |
357 | # CONFIG_IEEE80211 is not set | 326 | # CONFIG_AF_RXRPC is not set |
327 | |||
328 | # | ||
329 | # Wireless | ||
330 | # | ||
331 | # CONFIG_CFG80211 is not set | ||
358 | CONFIG_WIRELESS_EXT=y | 332 | CONFIG_WIRELESS_EXT=y |
333 | # CONFIG_MAC80211 is not set | ||
334 | # CONFIG_IEEE80211 is not set | ||
335 | # CONFIG_RFKILL is not set | ||
336 | # CONFIG_NET_9P is not set | ||
359 | 337 | ||
360 | # | 338 | # |
361 | # Device Drivers | 339 | # Device Drivers |
@@ -368,31 +346,11 @@ CONFIG_STANDALONE=y | |||
368 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 346 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
369 | CONFIG_FW_LOADER=y | 347 | CONFIG_FW_LOADER=y |
370 | # CONFIG_SYS_HYPERVISOR is not set | 348 | # CONFIG_SYS_HYPERVISOR is not set |
371 | 349 | # CONFIG_CONNECTOR is not set | |
372 | # | ||
373 | # Connector - unified userspace <-> kernelspace linker | ||
374 | # | ||
375 | CONFIG_CONNECTOR=m | ||
376 | |||
377 | # | ||
378 | # Memory Technology Devices (MTD) | ||
379 | # | ||
380 | # CONFIG_MTD is not set | 350 | # CONFIG_MTD is not set |
381 | |||
382 | # | ||
383 | # Parallel port support | ||
384 | # | ||
385 | # CONFIG_PARPORT is not set | 351 | # CONFIG_PARPORT is not set |
386 | |||
387 | # | ||
388 | # Plug and Play support | ||
389 | # | ||
390 | # CONFIG_PNP is not set | 352 | # CONFIG_PNP is not set |
391 | # CONFIG_PNPACPI is not set | 353 | CONFIG_BLK_DEV=y |
392 | |||
393 | # | ||
394 | # Block devices | ||
395 | # | ||
396 | # CONFIG_BLK_DEV_COW_COMMON is not set | 354 | # CONFIG_BLK_DEV_COW_COMMON is not set |
397 | # CONFIG_BLK_DEV_LOOP is not set | 355 | # CONFIG_BLK_DEV_LOOP is not set |
398 | # CONFIG_BLK_DEV_NBD is not set | 356 | # CONFIG_BLK_DEV_NBD is not set |
@@ -400,17 +358,9 @@ CONFIG_BLK_DEV_RAM=m | |||
400 | CONFIG_BLK_DEV_RAM_COUNT=16 | 358 | CONFIG_BLK_DEV_RAM_COUNT=16 |
401 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 359 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
402 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 360 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
403 | # CONFIG_BLK_DEV_INITRD is not set | ||
404 | # CONFIG_CDROM_PKTCDVD is not set | 361 | # CONFIG_CDROM_PKTCDVD is not set |
405 | # CONFIG_ATA_OVER_ETH is not set | 362 | # CONFIG_ATA_OVER_ETH is not set |
406 | 363 | # CONFIG_MISC_DEVICES is not set | |
407 | # | ||
408 | # Misc devices | ||
409 | # | ||
410 | |||
411 | # | ||
412 | # ATA/ATAPI/MFM/RLL support | ||
413 | # | ||
414 | CONFIG_IDE=y | 364 | CONFIG_IDE=y |
415 | CONFIG_IDE_MAX_HWIFS=4 | 365 | CONFIG_IDE_MAX_HWIFS=4 |
416 | CONFIG_BLK_DEV_IDE=y | 366 | CONFIG_BLK_DEV_IDE=y |
@@ -426,15 +376,16 @@ CONFIG_BLK_DEV_IDECS=m | |||
426 | # CONFIG_BLK_DEV_IDETAPE is not set | 376 | # CONFIG_BLK_DEV_IDETAPE is not set |
427 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 377 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
428 | # CONFIG_IDE_TASK_IOCTL is not set | 378 | # CONFIG_IDE_TASK_IOCTL is not set |
379 | CONFIG_IDE_PROC_FS=y | ||
429 | 380 | ||
430 | # | 381 | # |
431 | # IDE chipset support/bugfixes | 382 | # IDE chipset support/bugfixes |
432 | # | 383 | # |
433 | CONFIG_IDE_GENERIC=y | 384 | CONFIG_IDE_GENERIC=y |
385 | # CONFIG_IDEPCI_PCIBUS_ORDER is not set | ||
434 | # CONFIG_IDE_ARM is not set | 386 | # CONFIG_IDE_ARM is not set |
435 | # CONFIG_IDE_CHIPSETS is not set | 387 | # CONFIG_IDE_CHIPSETS is not set |
436 | # CONFIG_BLK_DEV_IDEDMA is not set | 388 | # CONFIG_BLK_DEV_IDEDMA is not set |
437 | # CONFIG_IDEDMA_AUTO is not set | ||
438 | # CONFIG_BLK_DEV_HD is not set | 389 | # CONFIG_BLK_DEV_HD is not set |
439 | 390 | ||
440 | # | 391 | # |
@@ -442,135 +393,38 @@ CONFIG_IDE_GENERIC=y | |||
442 | # | 393 | # |
443 | # CONFIG_RAID_ATTRS is not set | 394 | # CONFIG_RAID_ATTRS is not set |
444 | # CONFIG_SCSI is not set | 395 | # CONFIG_SCSI is not set |
396 | # CONFIG_SCSI_DMA is not set | ||
445 | # CONFIG_SCSI_NETLINK is not set | 397 | # CONFIG_SCSI_NETLINK is not set |
446 | |||
447 | # | ||
448 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
449 | # | ||
450 | # CONFIG_ATA is not set | 398 | # CONFIG_ATA is not set |
451 | |||
452 | # | ||
453 | # Old CD-ROM drivers (not SCSI, not IDE) | ||
454 | # | ||
455 | # CONFIG_CD_NO_IDESCSI is not set | ||
456 | |||
457 | # | ||
458 | # Multi-device support (RAID and LVM) | ||
459 | # | ||
460 | # CONFIG_MD is not set | 399 | # CONFIG_MD is not set |
461 | |||
462 | # | ||
463 | # Fusion MPT device support | ||
464 | # | ||
465 | # CONFIG_FUSION is not set | ||
466 | |||
467 | # | ||
468 | # IEEE 1394 (FireWire) support | ||
469 | # | ||
470 | |||
471 | # | ||
472 | # I2O device support | ||
473 | # | ||
474 | |||
475 | # | ||
476 | # Network device support | ||
477 | # | ||
478 | CONFIG_NETDEVICES=y | 400 | CONFIG_NETDEVICES=y |
401 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
479 | # CONFIG_DUMMY is not set | 402 | # CONFIG_DUMMY is not set |
480 | # CONFIG_BONDING is not set | 403 | # CONFIG_BONDING is not set |
404 | # CONFIG_MACVLAN is not set | ||
481 | # CONFIG_EQUALIZER is not set | 405 | # CONFIG_EQUALIZER is not set |
482 | # CONFIG_TUN is not set | 406 | # CONFIG_TUN is not set |
483 | |||
484 | # | ||
485 | # ARCnet devices | ||
486 | # | ||
487 | # CONFIG_ARCNET is not set | 407 | # CONFIG_ARCNET is not set |
488 | 408 | # CONFIG_NET_ETHERNET is not set | |
489 | # | ||
490 | # PHY device support | ||
491 | # | ||
492 | CONFIG_PHYLIB=m | ||
493 | |||
494 | # | ||
495 | # MII PHY device drivers | ||
496 | # | ||
497 | CONFIG_MARVELL_PHY=m | ||
498 | CONFIG_DAVICOM_PHY=m | ||
499 | CONFIG_QSEMI_PHY=m | ||
500 | CONFIG_LXT_PHY=m | ||
501 | CONFIG_CICADA_PHY=m | ||
502 | CONFIG_VITESSE_PHY=m | ||
503 | CONFIG_SMSC_PHY=m | ||
504 | # CONFIG_BROADCOM_PHY is not set | ||
505 | # CONFIG_FIXED_PHY is not set | ||
506 | |||
507 | # | ||
508 | # Ethernet (10 or 100Mbit) | ||
509 | # | ||
510 | CONFIG_NET_ETHERNET=y | ||
511 | CONFIG_MII=m | 409 | CONFIG_MII=m |
512 | # CONFIG_NET_VENDOR_3COM is not set | 410 | # CONFIG_NETDEV_1000 is not set |
513 | # CONFIG_NET_VENDOR_SMC is not set | 411 | # CONFIG_NETDEV_10000 is not set |
514 | # CONFIG_DM9000 is not set | ||
515 | # CONFIG_NET_VENDOR_RACAL is not set | ||
516 | # CONFIG_AT1700 is not set | ||
517 | # CONFIG_DEPCA is not set | ||
518 | # CONFIG_HP100 is not set | ||
519 | # CONFIG_NET_ISA is not set | ||
520 | # CONFIG_NET_PCI is not set | ||
521 | |||
522 | # | ||
523 | # Ethernet (1000 Mbit) | ||
524 | # | ||
525 | |||
526 | # | ||
527 | # Ethernet (10000 Mbit) | ||
528 | # | ||
529 | |||
530 | # | ||
531 | # Token Ring devices | ||
532 | # | ||
533 | # CONFIG_TR is not set | 412 | # CONFIG_TR is not set |
534 | 413 | ||
535 | # | 414 | # |
536 | # Wireless LAN (non-hamradio) | 415 | # Wireless LAN |
537 | # | ||
538 | CONFIG_NET_RADIO=y | ||
539 | # CONFIG_NET_WIRELESS_RTNETLINK is not set | ||
540 | |||
541 | # | ||
542 | # Obsolete Wireless cards support (pre-802.11) | ||
543 | # | ||
544 | # CONFIG_STRIP is not set | ||
545 | # CONFIG_ARLAN is not set | ||
546 | # CONFIG_WAVELAN is not set | ||
547 | # CONFIG_PCMCIA_WAVELAN is not set | ||
548 | # CONFIG_PCMCIA_NETWAVE is not set | ||
549 | |||
550 | # | ||
551 | # Wireless 802.11 Frequency Hopping cards support | ||
552 | # | 416 | # |
417 | # CONFIG_WLAN_PRE80211 is not set | ||
418 | CONFIG_WLAN_80211=y | ||
553 | # CONFIG_PCMCIA_RAYCS is not set | 419 | # CONFIG_PCMCIA_RAYCS is not set |
554 | 420 | # CONFIG_LIBERTAS is not set | |
555 | # | ||
556 | # Wireless 802.11b ISA/PCI cards support | ||
557 | # | ||
558 | CONFIG_HERMES=m | 421 | CONFIG_HERMES=m |
559 | # CONFIG_ATMEL is not set | 422 | # CONFIG_ATMEL is not set |
560 | |||
561 | # | ||
562 | # Wireless 802.11b Pcmcia/Cardbus cards support | ||
563 | # | ||
564 | CONFIG_PCMCIA_HERMES=m | 423 | CONFIG_PCMCIA_HERMES=m |
565 | # CONFIG_PCMCIA_SPECTRUM is not set | 424 | # CONFIG_PCMCIA_SPECTRUM is not set |
566 | # CONFIG_AIRO_CS is not set | 425 | # CONFIG_AIRO_CS is not set |
567 | # CONFIG_PCMCIA_WL3501 is not set | 426 | # CONFIG_PCMCIA_WL3501 is not set |
568 | # CONFIG_HOSTAP is not set | 427 | # CONFIG_HOSTAP is not set |
569 | CONFIG_NET_WIRELESS=y | ||
570 | |||
571 | # | ||
572 | # PCMCIA network device support | ||
573 | # | ||
574 | CONFIG_NET_PCMCIA=y | 428 | CONFIG_NET_PCMCIA=y |
575 | CONFIG_PCMCIA_3C589=m | 429 | CONFIG_PCMCIA_3C589=m |
576 | CONFIG_PCMCIA_3C574=m | 430 | CONFIG_PCMCIA_3C574=m |
@@ -580,10 +434,6 @@ CONFIG_PCMCIA_NMCLAN=m | |||
580 | CONFIG_PCMCIA_SMC91C92=m | 434 | CONFIG_PCMCIA_SMC91C92=m |
581 | CONFIG_PCMCIA_XIRC2PS=m | 435 | CONFIG_PCMCIA_XIRC2PS=m |
582 | CONFIG_PCMCIA_AXNET=m | 436 | CONFIG_PCMCIA_AXNET=m |
583 | |||
584 | # | ||
585 | # Wan interfaces | ||
586 | # | ||
587 | # CONFIG_WAN is not set | 437 | # CONFIG_WAN is not set |
588 | # CONFIG_PPP is not set | 438 | # CONFIG_PPP is not set |
589 | # CONFIG_SLIP is not set | 439 | # CONFIG_SLIP is not set |
@@ -591,15 +441,7 @@ CONFIG_PCMCIA_AXNET=m | |||
591 | # CONFIG_NETCONSOLE is not set | 441 | # CONFIG_NETCONSOLE is not set |
592 | # CONFIG_NETPOLL is not set | 442 | # CONFIG_NETPOLL is not set |
593 | # CONFIG_NET_POLL_CONTROLLER is not set | 443 | # CONFIG_NET_POLL_CONTROLLER is not set |
594 | |||
595 | # | ||
596 | # ISDN subsystem | ||
597 | # | ||
598 | # CONFIG_ISDN is not set | 444 | # CONFIG_ISDN is not set |
599 | |||
600 | # | ||
601 | # Telephony Support | ||
602 | # | ||
603 | # CONFIG_PHONE is not set | 445 | # CONFIG_PHONE is not set |
604 | 446 | ||
605 | # | 447 | # |
@@ -607,6 +449,7 @@ CONFIG_PCMCIA_AXNET=m | |||
607 | # | 449 | # |
608 | CONFIG_INPUT=y | 450 | CONFIG_INPUT=y |
609 | # CONFIG_INPUT_FF_MEMLESS is not set | 451 | # CONFIG_INPUT_FF_MEMLESS is not set |
452 | # CONFIG_INPUT_POLLDEV is not set | ||
610 | 453 | ||
611 | # | 454 | # |
612 | # Userland interfaces | 455 | # Userland interfaces |
@@ -623,6 +466,7 @@ CONFIG_INPUT=y | |||
623 | # CONFIG_INPUT_KEYBOARD is not set | 466 | # CONFIG_INPUT_KEYBOARD is not set |
624 | # CONFIG_INPUT_MOUSE is not set | 467 | # CONFIG_INPUT_MOUSE is not set |
625 | # CONFIG_INPUT_JOYSTICK is not set | 468 | # CONFIG_INPUT_JOYSTICK is not set |
469 | # CONFIG_INPUT_TABLET is not set | ||
626 | # CONFIG_INPUT_TOUCHSCREEN is not set | 470 | # CONFIG_INPUT_TOUCHSCREEN is not set |
627 | # CONFIG_INPUT_MISC is not set | 471 | # CONFIG_INPUT_MISC is not set |
628 | 472 | ||
@@ -656,19 +500,10 @@ CONFIG_SERIAL_VR41XX_CONSOLE=y | |||
656 | CONFIG_UNIX98_PTYS=y | 500 | CONFIG_UNIX98_PTYS=y |
657 | CONFIG_LEGACY_PTYS=y | 501 | CONFIG_LEGACY_PTYS=y |
658 | CONFIG_LEGACY_PTY_COUNT=256 | 502 | CONFIG_LEGACY_PTY_COUNT=256 |
659 | |||
660 | # | ||
661 | # IPMI | ||
662 | # | ||
663 | # CONFIG_IPMI_HANDLER is not set | 503 | # CONFIG_IPMI_HANDLER is not set |
664 | |||
665 | # | ||
666 | # Watchdog Cards | ||
667 | # | ||
668 | # CONFIG_WATCHDOG is not set | 504 | # CONFIG_WATCHDOG is not set |
669 | # CONFIG_HW_RANDOM is not set | 505 | # CONFIG_HW_RANDOM is not set |
670 | # CONFIG_RTC is not set | 506 | # CONFIG_RTC is not set |
671 | # CONFIG_GEN_RTC is not set | ||
672 | # CONFIG_DTLK is not set | 507 | # CONFIG_DTLK is not set |
673 | # CONFIG_R3964 is not set | 508 | # CONFIG_R3964 is not set |
674 | 509 | ||
@@ -678,17 +513,10 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
678 | # CONFIG_SYNCLINK_CS is not set | 513 | # CONFIG_SYNCLINK_CS is not set |
679 | # CONFIG_CARDMAN_4000 is not set | 514 | # CONFIG_CARDMAN_4000 is not set |
680 | # CONFIG_CARDMAN_4040 is not set | 515 | # CONFIG_CARDMAN_4040 is not set |
681 | # CONFIG_GPIO_VR41XX is not set | 516 | CONFIG_GPIO_VR41XX=y |
682 | # CONFIG_RAW_DRIVER is not set | 517 | # CONFIG_RAW_DRIVER is not set |
683 | |||
684 | # | ||
685 | # TPM devices | ||
686 | # | ||
687 | # CONFIG_TCG_TPM is not set | 518 | # CONFIG_TCG_TPM is not set |
688 | 519 | CONFIG_DEVPORT=y | |
689 | # | ||
690 | # I2C support | ||
691 | # | ||
692 | # CONFIG_I2C is not set | 520 | # CONFIG_I2C is not set |
693 | 521 | ||
694 | # | 522 | # |
@@ -696,32 +524,33 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
696 | # | 524 | # |
697 | # CONFIG_SPI is not set | 525 | # CONFIG_SPI is not set |
698 | # CONFIG_SPI_MASTER is not set | 526 | # CONFIG_SPI_MASTER is not set |
699 | |||
700 | # | ||
701 | # Dallas's 1-wire bus | ||
702 | # | ||
703 | # CONFIG_W1 is not set | 527 | # CONFIG_W1 is not set |
528 | # CONFIG_POWER_SUPPLY is not set | ||
529 | # CONFIG_HWMON is not set | ||
704 | 530 | ||
705 | # | 531 | # |
706 | # Hardware Monitoring support | 532 | # Multifunction device drivers |
707 | # | 533 | # |
708 | # CONFIG_HWMON is not set | 534 | # CONFIG_MFD_SM501 is not set |
709 | # CONFIG_HWMON_VID is not set | ||
710 | 535 | ||
711 | # | 536 | # |
712 | # Multimedia devices | 537 | # Multimedia devices |
713 | # | 538 | # |
714 | # CONFIG_VIDEO_DEV is not set | 539 | # CONFIG_VIDEO_DEV is not set |
540 | # CONFIG_DVB_CORE is not set | ||
541 | # CONFIG_DAB is not set | ||
715 | 542 | ||
716 | # | 543 | # |
717 | # Digital Video Broadcasting Devices | 544 | # Graphics support |
718 | # | 545 | # |
719 | # CONFIG_DVB is not set | 546 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
720 | 547 | ||
721 | # | 548 | # |
722 | # Graphics support | 549 | # Display device support |
723 | # | 550 | # |
724 | # CONFIG_FIRMWARE_EDID is not set | 551 | # CONFIG_DISPLAY_SUPPORT is not set |
552 | # CONFIG_VGASTATE is not set | ||
553 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
725 | # CONFIG_FB is not set | 554 | # CONFIG_FB is not set |
726 | 555 | ||
727 | # | 556 | # |
@@ -730,65 +559,51 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
730 | # CONFIG_VGA_CONSOLE is not set | 559 | # CONFIG_VGA_CONSOLE is not set |
731 | # CONFIG_MDA_CONSOLE is not set | 560 | # CONFIG_MDA_CONSOLE is not set |
732 | CONFIG_DUMMY_CONSOLE=y | 561 | CONFIG_DUMMY_CONSOLE=y |
733 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
734 | 562 | ||
735 | # | 563 | # |
736 | # Sound | 564 | # Sound |
737 | # | 565 | # |
738 | # CONFIG_SOUND is not set | 566 | # CONFIG_SOUND is not set |
739 | 567 | CONFIG_HID_SUPPORT=y | |
740 | # | ||
741 | # HID Devices | ||
742 | # | ||
743 | CONFIG_HID=y | 568 | CONFIG_HID=y |
744 | # CONFIG_HID_DEBUG is not set | 569 | # CONFIG_HID_DEBUG is not set |
745 | 570 | # CONFIG_USB_SUPPORT is not set | |
746 | # | ||
747 | # USB support | ||
748 | # | ||
749 | # CONFIG_USB_ARCH_HAS_HCD is not set | ||
750 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
751 | # CONFIG_USB_ARCH_HAS_EHCI is not set | ||
752 | |||
753 | # | ||
754 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | ||
755 | # | ||
756 | |||
757 | # | ||
758 | # USB Gadget Support | ||
759 | # | ||
760 | # CONFIG_USB_GADGET is not set | ||
761 | |||
762 | # | ||
763 | # MMC/SD Card support | ||
764 | # | ||
765 | # CONFIG_MMC is not set | 571 | # CONFIG_MMC is not set |
766 | |||
767 | # | ||
768 | # LED devices | ||
769 | # | ||
770 | # CONFIG_NEW_LEDS is not set | 572 | # CONFIG_NEW_LEDS is not set |
573 | CONFIG_RTC_LIB=y | ||
574 | CONFIG_RTC_CLASS=y | ||
575 | CONFIG_RTC_HCTOSYS=y | ||
576 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
577 | # CONFIG_RTC_DEBUG is not set | ||
771 | 578 | ||
772 | # | 579 | # |
773 | # LED drivers | 580 | # RTC interfaces |
774 | # | ||
775 | |||
776 | # | ||
777 | # LED Triggers | ||
778 | # | 581 | # |
582 | CONFIG_RTC_INTF_SYSFS=y | ||
583 | CONFIG_RTC_INTF_PROC=y | ||
584 | CONFIG_RTC_INTF_DEV=y | ||
585 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
586 | # CONFIG_RTC_DRV_TEST is not set | ||
779 | 587 | ||
780 | # | 588 | # |
781 | # InfiniBand support | 589 | # SPI RTC drivers |
782 | # | 590 | # |
783 | 591 | ||
784 | # | 592 | # |
785 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | 593 | # Platform RTC drivers |
786 | # | 594 | # |
595 | # CONFIG_RTC_DRV_CMOS is not set | ||
596 | # CONFIG_RTC_DRV_DS1553 is not set | ||
597 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
598 | # CONFIG_RTC_DRV_DS1742 is not set | ||
599 | # CONFIG_RTC_DRV_M48T86 is not set | ||
600 | # CONFIG_RTC_DRV_M48T59 is not set | ||
601 | # CONFIG_RTC_DRV_V3020 is not set | ||
787 | 602 | ||
788 | # | 603 | # |
789 | # Real Time Clock | 604 | # on-CPU RTC drivers |
790 | # | 605 | # |
791 | # CONFIG_RTC_CLASS is not set | 606 | CONFIG_RTC_DRV_VR41XX=y |
792 | 607 | ||
793 | # | 608 | # |
794 | # DMA Engine support | 609 | # DMA Engine support |
@@ -804,23 +619,25 @@ CONFIG_HID=y | |||
804 | # | 619 | # |
805 | 620 | ||
806 | # | 621 | # |
807 | # Auxiliary Display support | 622 | # Userspace I/O |
808 | # | ||
809 | |||
810 | # | ||
811 | # Virtualization | ||
812 | # | 623 | # |
624 | # CONFIG_UIO is not set | ||
813 | 625 | ||
814 | # | 626 | # |
815 | # File systems | 627 | # File systems |
816 | # | 628 | # |
817 | CONFIG_EXT2_FS=y | 629 | CONFIG_EXT2_FS=y |
818 | CONFIG_EXT2_FS_XATTR=y | 630 | CONFIG_EXT2_FS_XATTR=y |
819 | CONFIG_EXT2_FS_POSIX_ACL=y | 631 | # CONFIG_EXT2_FS_POSIX_ACL is not set |
820 | CONFIG_EXT2_FS_SECURITY=y | 632 | # CONFIG_EXT2_FS_SECURITY is not set |
821 | # CONFIG_EXT2_FS_XIP is not set | 633 | # CONFIG_EXT2_FS_XIP is not set |
822 | # CONFIG_EXT3_FS is not set | 634 | CONFIG_EXT3_FS=y |
635 | CONFIG_EXT3_FS_XATTR=y | ||
636 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
637 | # CONFIG_EXT3_FS_SECURITY is not set | ||
823 | # CONFIG_EXT4DEV_FS is not set | 638 | # CONFIG_EXT4DEV_FS is not set |
639 | CONFIG_JBD=y | ||
640 | # CONFIG_JBD_DEBUG is not set | ||
824 | CONFIG_FS_MBCACHE=y | 641 | CONFIG_FS_MBCACHE=y |
825 | # CONFIG_REISERFS_FS is not set | 642 | # CONFIG_REISERFS_FS is not set |
826 | # CONFIG_JFS_FS is not set | 643 | # CONFIG_JFS_FS is not set |
@@ -836,7 +653,7 @@ CONFIG_INOTIFY_USER=y | |||
836 | CONFIG_DNOTIFY=y | 653 | CONFIG_DNOTIFY=y |
837 | # CONFIG_AUTOFS_FS is not set | 654 | # CONFIG_AUTOFS_FS is not set |
838 | CONFIG_AUTOFS4_FS=y | 655 | CONFIG_AUTOFS4_FS=y |
839 | CONFIG_FUSE_FS=m | 656 | # CONFIG_FUSE_FS is not set |
840 | CONFIG_GENERIC_ACL=y | 657 | CONFIG_GENERIC_ACL=y |
841 | 658 | ||
842 | # | 659 | # |
@@ -863,7 +680,7 @@ CONFIG_TMPFS=y | |||
863 | CONFIG_TMPFS_POSIX_ACL=y | 680 | CONFIG_TMPFS_POSIX_ACL=y |
864 | # CONFIG_HUGETLB_PAGE is not set | 681 | # CONFIG_HUGETLB_PAGE is not set |
865 | CONFIG_RAMFS=y | 682 | CONFIG_RAMFS=y |
866 | CONFIG_CONFIGFS_FS=m | 683 | # CONFIG_CONFIGFS_FS is not set |
867 | 684 | ||
868 | # | 685 | # |
869 | # Miscellaneous filesystems | 686 | # Miscellaneous filesystems |
@@ -885,17 +702,22 @@ CONFIG_CONFIGFS_FS=m | |||
885 | # | 702 | # |
886 | # Network File Systems | 703 | # Network File Systems |
887 | # | 704 | # |
888 | CONFIG_NFS_FS=y | 705 | CONFIG_NFS_FS=m |
889 | # CONFIG_NFS_V3 is not set | 706 | CONFIG_NFS_V3=y |
707 | # CONFIG_NFS_V3_ACL is not set | ||
890 | # CONFIG_NFS_V4 is not set | 708 | # CONFIG_NFS_V4 is not set |
891 | # CONFIG_NFS_DIRECTIO is not set | 709 | # CONFIG_NFS_DIRECTIO is not set |
892 | CONFIG_NFSD=y | 710 | CONFIG_NFSD=m |
893 | # CONFIG_NFSD_V3 is not set | 711 | CONFIG_NFSD_V3=y |
712 | # CONFIG_NFSD_V3_ACL is not set | ||
713 | # CONFIG_NFSD_V4 is not set | ||
894 | # CONFIG_NFSD_TCP is not set | 714 | # CONFIG_NFSD_TCP is not set |
895 | CONFIG_LOCKD=y | 715 | CONFIG_LOCKD=m |
896 | CONFIG_EXPORTFS=y | 716 | CONFIG_LOCKD_V4=y |
717 | CONFIG_EXPORTFS=m | ||
897 | CONFIG_NFS_COMMON=y | 718 | CONFIG_NFS_COMMON=y |
898 | CONFIG_SUNRPC=y | 719 | CONFIG_SUNRPC=m |
720 | # CONFIG_SUNRPC_BIND34 is not set | ||
899 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 721 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
900 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 722 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
901 | # CONFIG_SMB_FS is not set | 723 | # CONFIG_SMB_FS is not set |
@@ -903,7 +725,6 @@ CONFIG_SUNRPC=y | |||
903 | # CONFIG_NCP_FS is not set | 725 | # CONFIG_NCP_FS is not set |
904 | # CONFIG_CODA_FS is not set | 726 | # CONFIG_CODA_FS is not set |
905 | # CONFIG_AFS_FS is not set | 727 | # CONFIG_AFS_FS is not set |
906 | # CONFIG_9P_FS is not set | ||
907 | 728 | ||
908 | # | 729 | # |
909 | # Partition Types | 730 | # Partition Types |
@@ -919,10 +740,7 @@ CONFIG_MSDOS_PARTITION=y | |||
919 | # | 740 | # |
920 | # Distributed Lock Manager | 741 | # Distributed Lock Manager |
921 | # | 742 | # |
922 | CONFIG_DLM=m | 743 | # CONFIG_DLM is not set |
923 | CONFIG_DLM_TCP=y | ||
924 | # CONFIG_DLM_SCTP is not set | ||
925 | # CONFIG_DLM_DEBUG is not set | ||
926 | 744 | ||
927 | # | 745 | # |
928 | # Profiling support | 746 | # Profiling support |
@@ -940,7 +758,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
940 | # CONFIG_DEBUG_FS is not set | 758 | # CONFIG_DEBUG_FS is not set |
941 | # CONFIG_HEADERS_CHECK is not set | 759 | # CONFIG_HEADERS_CHECK is not set |
942 | # CONFIG_DEBUG_KERNEL is not set | 760 | # CONFIG_DEBUG_KERNEL is not set |
943 | CONFIG_LOG_BUF_SHIFT=14 | ||
944 | CONFIG_CROSSCOMPILE=y | 761 | CONFIG_CROSSCOMPILE=y |
945 | CONFIG_CMDLINE="console=ttyVR0,19200 ide0=0x170,0x376,49 mem=16M" | 762 | CONFIG_CMDLINE="console=ttyVR0,19200 ide0=0x170,0x376,49 mem=16M" |
946 | 763 | ||
@@ -949,52 +766,7 @@ CONFIG_CMDLINE="console=ttyVR0,19200 ide0=0x170,0x376,49 mem=16M" | |||
949 | # | 766 | # |
950 | # CONFIG_KEYS is not set | 767 | # CONFIG_KEYS is not set |
951 | # CONFIG_SECURITY is not set | 768 | # CONFIG_SECURITY is not set |
952 | 769 | # CONFIG_CRYPTO is not set | |
953 | # | ||
954 | # Cryptographic options | ||
955 | # | ||
956 | CONFIG_CRYPTO=y | ||
957 | CONFIG_CRYPTO_ALGAPI=y | ||
958 | CONFIG_CRYPTO_BLKCIPHER=m | ||
959 | CONFIG_CRYPTO_HASH=m | ||
960 | CONFIG_CRYPTO_MANAGER=m | ||
961 | CONFIG_CRYPTO_HMAC=m | ||
962 | CONFIG_CRYPTO_XCBC=m | ||
963 | CONFIG_CRYPTO_NULL=m | ||
964 | CONFIG_CRYPTO_MD4=m | ||
965 | CONFIG_CRYPTO_MD5=y | ||
966 | CONFIG_CRYPTO_SHA1=m | ||
967 | CONFIG_CRYPTO_SHA256=m | ||
968 | CONFIG_CRYPTO_SHA512=m | ||
969 | CONFIG_CRYPTO_WP512=m | ||
970 | CONFIG_CRYPTO_TGR192=m | ||
971 | CONFIG_CRYPTO_GF128MUL=m | ||
972 | CONFIG_CRYPTO_ECB=m | ||
973 | CONFIG_CRYPTO_CBC=m | ||
974 | CONFIG_CRYPTO_PCBC=m | ||
975 | CONFIG_CRYPTO_LRW=m | ||
976 | CONFIG_CRYPTO_DES=m | ||
977 | CONFIG_CRYPTO_FCRYPT=m | ||
978 | CONFIG_CRYPTO_BLOWFISH=m | ||
979 | CONFIG_CRYPTO_TWOFISH=m | ||
980 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
981 | CONFIG_CRYPTO_SERPENT=m | ||
982 | CONFIG_CRYPTO_AES=m | ||
983 | CONFIG_CRYPTO_CAST5=m | ||
984 | CONFIG_CRYPTO_CAST6=m | ||
985 | CONFIG_CRYPTO_TEA=m | ||
986 | CONFIG_CRYPTO_ARC4=m | ||
987 | CONFIG_CRYPTO_KHAZAD=m | ||
988 | CONFIG_CRYPTO_ANUBIS=m | ||
989 | CONFIG_CRYPTO_DEFLATE=m | ||
990 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
991 | CONFIG_CRYPTO_CRC32C=m | ||
992 | CONFIG_CRYPTO_CAMELLIA=m | ||
993 | # CONFIG_CRYPTO_TEST is not set | ||
994 | |||
995 | # | ||
996 | # Hardware crypto devices | ||
997 | # | ||
998 | 770 | ||
999 | # | 771 | # |
1000 | # Library routines | 772 | # Library routines |
@@ -1002,10 +774,11 @@ CONFIG_CRYPTO_CAMELLIA=m | |||
1002 | CONFIG_BITREVERSE=y | 774 | CONFIG_BITREVERSE=y |
1003 | # CONFIG_CRC_CCITT is not set | 775 | # CONFIG_CRC_CCITT is not set |
1004 | # CONFIG_CRC16 is not set | 776 | # CONFIG_CRC16 is not set |
777 | # CONFIG_CRC_ITU_T is not set | ||
1005 | CONFIG_CRC32=y | 778 | CONFIG_CRC32=y |
1006 | CONFIG_LIBCRC32C=m | 779 | # CONFIG_CRC7 is not set |
1007 | CONFIG_ZLIB_INFLATE=m | 780 | # CONFIG_LIBCRC32C is not set |
1008 | CONFIG_ZLIB_DEFLATE=m | ||
1009 | CONFIG_PLIST=y | 781 | CONFIG_PLIST=y |
1010 | CONFIG_HAS_IOMEM=y | 782 | CONFIG_HAS_IOMEM=y |
1011 | CONFIG_HAS_IOPORT=y | 783 | CONFIG_HAS_IOPORT=y |
784 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/defconfig b/arch/mips/defconfig index d3d81fb2765a..670039bb1a7c 100644 --- a/arch/mips/defconfig +++ b/arch/mips/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.20 | 3 | # Linux kernel version: 2.6.23-rc2 |
4 | # Tue Feb 20 21:47:14 2007 | 4 | # Tue Aug 7 12:39:49 2007 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -9,52 +9,40 @@ CONFIG_MIPS=y | |||
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | CONFIG_ZONE_DMA=y | 11 | CONFIG_ZONE_DMA=y |
12 | # CONFIG_MIPS_MTX1 is not set | 12 | # CONFIG_MACH_ALCHEMY is not set |
13 | # CONFIG_MIPS_BOSPORUS is not set | ||
14 | # CONFIG_MIPS_PB1000 is not set | ||
15 | # CONFIG_MIPS_PB1100 is not set | ||
16 | # CONFIG_MIPS_PB1500 is not set | ||
17 | # CONFIG_MIPS_PB1550 is not set | ||
18 | # CONFIG_MIPS_PB1200 is not set | ||
19 | # CONFIG_MIPS_DB1000 is not set | ||
20 | # CONFIG_MIPS_DB1100 is not set | ||
21 | # CONFIG_MIPS_DB1500 is not set | ||
22 | # CONFIG_MIPS_DB1550 is not set | ||
23 | # CONFIG_MIPS_DB1200 is not set | ||
24 | # CONFIG_MIPS_MIRAGE is not set | ||
25 | # CONFIG_BASLER_EXCITE is not set | 13 | # CONFIG_BASLER_EXCITE is not set |
26 | # CONFIG_MIPS_COBALT is not set | 14 | # CONFIG_MIPS_COBALT is not set |
27 | # CONFIG_MACH_DECSTATION is not set | 15 | # CONFIG_MACH_DECSTATION is not set |
28 | # CONFIG_MACH_JAZZ is not set | 16 | # CONFIG_MACH_JAZZ is not set |
17 | # CONFIG_LEMOTE_FULONG is not set | ||
29 | # CONFIG_MIPS_ATLAS is not set | 18 | # CONFIG_MIPS_ATLAS is not set |
30 | # CONFIG_MIPS_MALTA is not set | 19 | # CONFIG_MIPS_MALTA is not set |
31 | # CONFIG_MIPS_SEAD is not set | 20 | # CONFIG_MIPS_SEAD is not set |
32 | # CONFIG_WR_PPMC is not set | ||
33 | # CONFIG_MIPS_SIM is not set | 21 | # CONFIG_MIPS_SIM is not set |
34 | # CONFIG_MOMENCO_JAGUAR_ATX is not set | 22 | # CONFIG_MARKEINS is not set |
35 | # CONFIG_MIPS_XXS1500 is not set | 23 | # CONFIG_MACH_VR41XX is not set |
36 | # CONFIG_PNX8550_JBS is not set | 24 | # CONFIG_PNX8550_JBS is not set |
37 | # CONFIG_PNX8550_STB810 is not set | 25 | # CONFIG_PNX8550_STB810 is not set |
38 | # CONFIG_MACH_VR41XX is not set | 26 | # CONFIG_PMC_MSP is not set |
39 | # CONFIG_PMC_YOSEMITE is not set | 27 | # CONFIG_PMC_YOSEMITE is not set |
40 | # CONFIG_QEMU is not set | 28 | # CONFIG_QEMU is not set |
41 | # CONFIG_MARKEINS is not set | ||
42 | CONFIG_SGI_IP22=y | 29 | CONFIG_SGI_IP22=y |
43 | # CONFIG_SGI_IP27 is not set | 30 | # CONFIG_SGI_IP27 is not set |
44 | # CONFIG_SGI_IP32 is not set | 31 | # CONFIG_SGI_IP32 is not set |
45 | # CONFIG_SIBYTE_BIGSUR is not set | 32 | # CONFIG_SIBYTE_CRHINE is not set |
33 | # CONFIG_SIBYTE_CARMEL is not set | ||
34 | # CONFIG_SIBYTE_CRHONE is not set | ||
35 | # CONFIG_SIBYTE_RHONE is not set | ||
46 | # CONFIG_SIBYTE_SWARM is not set | 36 | # CONFIG_SIBYTE_SWARM is not set |
37 | # CONFIG_SIBYTE_LITTLESUR is not set | ||
47 | # CONFIG_SIBYTE_SENTOSA is not set | 38 | # CONFIG_SIBYTE_SENTOSA is not set |
48 | # CONFIG_SIBYTE_RHONE is not set | ||
49 | # CONFIG_SIBYTE_CARMEL is not set | ||
50 | # CONFIG_SIBYTE_PTSWARM is not set | 39 | # CONFIG_SIBYTE_PTSWARM is not set |
51 | # CONFIG_SIBYTE_LITTLESUR is not set | 40 | # CONFIG_SIBYTE_BIGSUR is not set |
52 | # CONFIG_SIBYTE_CRHINE is not set | ||
53 | # CONFIG_SIBYTE_CRHONE is not set | ||
54 | # CONFIG_SNI_RM is not set | 41 | # CONFIG_SNI_RM is not set |
55 | # CONFIG_TOSHIBA_JMR3927 is not set | 42 | # CONFIG_TOSHIBA_JMR3927 is not set |
56 | # CONFIG_TOSHIBA_RBTX4927 is not set | 43 | # CONFIG_TOSHIBA_RBTX4927 is not set |
57 | # CONFIG_TOSHIBA_RBTX4938 is not set | 44 | # CONFIG_TOSHIBA_RBTX4938 is not set |
45 | # CONFIG_WR_PPMC is not set | ||
58 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 46 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
59 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 47 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
60 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 48 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
@@ -67,6 +55,9 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | |||
67 | CONFIG_ARC=y | 55 | CONFIG_ARC=y |
68 | CONFIG_DMA_NONCOHERENT=y | 56 | CONFIG_DMA_NONCOHERENT=y |
69 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 57 | CONFIG_DMA_NEED_PCI_MAP_STATE=y |
58 | CONFIG_EARLY_PRINTK=y | ||
59 | CONFIG_SYS_HAS_EARLY_PRINTK=y | ||
60 | # CONFIG_NO_IOPORT is not set | ||
70 | CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y | 61 | CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y |
71 | CONFIG_CPU_BIG_ENDIAN=y | 62 | CONFIG_CPU_BIG_ENDIAN=y |
72 | # CONFIG_CPU_LITTLE_ENDIAN is not set | 63 | # CONFIG_CPU_LITTLE_ENDIAN is not set |
@@ -82,6 +73,7 @@ CONFIG_ARC_PROMLIB=y | |||
82 | # | 73 | # |
83 | # CPU selection | 74 | # CPU selection |
84 | # | 75 | # |
76 | # CONFIG_CPU_LOONGSON2 is not set | ||
85 | # CONFIG_CPU_MIPS32_R1 is not set | 77 | # CONFIG_CPU_MIPS32_R1 is not set |
86 | # CONFIG_CPU_MIPS32_R2 is not set | 78 | # CONFIG_CPU_MIPS32_R2 is not set |
87 | # CONFIG_CPU_MIPS64_R1 is not set | 79 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -122,8 +114,6 @@ CONFIG_IP22_CPU_SCACHE=y | |||
122 | CONFIG_MIPS_MT_DISABLED=y | 114 | CONFIG_MIPS_MT_DISABLED=y |
123 | # CONFIG_MIPS_MT_SMP is not set | 115 | # CONFIG_MIPS_MT_SMP is not set |
124 | # CONFIG_MIPS_MT_SMTC is not set | 116 | # CONFIG_MIPS_MT_SMTC is not set |
125 | # CONFIG_MIPS_VPE_LOADER is not set | ||
126 | # CONFIG_64BIT_PHYS_ADDR is not set | ||
127 | CONFIG_CPU_HAS_LLSC=y | 117 | CONFIG_CPU_HAS_LLSC=y |
128 | CONFIG_CPU_HAS_SYNC=y | 118 | CONFIG_CPU_HAS_SYNC=y |
129 | CONFIG_GENERIC_HARDIRQS=y | 119 | CONFIG_GENERIC_HARDIRQS=y |
@@ -139,6 +129,8 @@ CONFIG_FLAT_NODE_MEM_MAP=y | |||
139 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 129 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
140 | # CONFIG_RESOURCES_64BIT is not set | 130 | # CONFIG_RESOURCES_64BIT is not set |
141 | CONFIG_ZONE_DMA_FLAG=1 | 131 | CONFIG_ZONE_DMA_FLAG=1 |
132 | CONFIG_BOUNCE=y | ||
133 | CONFIG_VIRT_TO_BUS=y | ||
142 | # CONFIG_HZ_48 is not set | 134 | # CONFIG_HZ_48 is not set |
143 | # CONFIG_HZ_100 is not set | 135 | # CONFIG_HZ_100 is not set |
144 | # CONFIG_HZ_128 is not set | 136 | # CONFIG_HZ_128 is not set |
@@ -152,35 +144,33 @@ CONFIG_HZ=1000 | |||
152 | CONFIG_PREEMPT_VOLUNTARY=y | 144 | CONFIG_PREEMPT_VOLUNTARY=y |
153 | # CONFIG_PREEMPT is not set | 145 | # CONFIG_PREEMPT is not set |
154 | # CONFIG_KEXEC is not set | 146 | # CONFIG_KEXEC is not set |
147 | CONFIG_SECCOMP=y | ||
155 | CONFIG_LOCKDEP_SUPPORT=y | 148 | CONFIG_LOCKDEP_SUPPORT=y |
156 | CONFIG_STACKTRACE_SUPPORT=y | 149 | CONFIG_STACKTRACE_SUPPORT=y |
157 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 150 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
158 | 151 | ||
159 | # | 152 | # |
160 | # Code maturity level options | 153 | # General setup |
161 | # | 154 | # |
162 | CONFIG_EXPERIMENTAL=y | 155 | CONFIG_EXPERIMENTAL=y |
163 | CONFIG_BROKEN_ON_SMP=y | 156 | CONFIG_BROKEN_ON_SMP=y |
164 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 157 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
165 | |||
166 | # | ||
167 | # General setup | ||
168 | # | ||
169 | CONFIG_LOCALVERSION="" | 158 | CONFIG_LOCALVERSION="" |
170 | CONFIG_LOCALVERSION_AUTO=y | 159 | CONFIG_LOCALVERSION_AUTO=y |
171 | CONFIG_SWAP=y | 160 | CONFIG_SWAP=y |
172 | CONFIG_SYSVIPC=y | 161 | CONFIG_SYSVIPC=y |
173 | # CONFIG_IPC_NS is not set | ||
174 | CONFIG_SYSVIPC_SYSCTL=y | 162 | CONFIG_SYSVIPC_SYSCTL=y |
175 | # CONFIG_POSIX_MQUEUE is not set | 163 | # CONFIG_POSIX_MQUEUE is not set |
176 | # CONFIG_BSD_PROCESS_ACCT is not set | 164 | # CONFIG_BSD_PROCESS_ACCT is not set |
177 | # CONFIG_TASKSTATS is not set | 165 | # CONFIG_TASKSTATS is not set |
178 | # CONFIG_UTS_NS is not set | 166 | # CONFIG_USER_NS is not set |
179 | # CONFIG_AUDIT is not set | 167 | # CONFIG_AUDIT is not set |
180 | CONFIG_IKCONFIG=y | 168 | CONFIG_IKCONFIG=y |
181 | CONFIG_IKCONFIG_PROC=y | 169 | CONFIG_IKCONFIG_PROC=y |
170 | CONFIG_LOG_BUF_SHIFT=14 | ||
182 | CONFIG_SYSFS_DEPRECATED=y | 171 | CONFIG_SYSFS_DEPRECATED=y |
183 | CONFIG_RELAY=y | 172 | CONFIG_RELAY=y |
173 | # CONFIG_BLK_DEV_INITRD is not set | ||
184 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 174 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
185 | CONFIG_SYSCTL=y | 175 | CONFIG_SYSCTL=y |
186 | CONFIG_EMBEDDED=y | 176 | CONFIG_EMBEDDED=y |
@@ -193,32 +183,30 @@ CONFIG_BUG=y | |||
193 | CONFIG_ELF_CORE=y | 183 | CONFIG_ELF_CORE=y |
194 | CONFIG_BASE_FULL=y | 184 | CONFIG_BASE_FULL=y |
195 | CONFIG_FUTEX=y | 185 | CONFIG_FUTEX=y |
186 | CONFIG_ANON_INODES=y | ||
196 | CONFIG_EPOLL=y | 187 | CONFIG_EPOLL=y |
188 | CONFIG_SIGNALFD=y | ||
189 | CONFIG_TIMERFD=y | ||
190 | CONFIG_EVENTFD=y | ||
197 | CONFIG_SHMEM=y | 191 | CONFIG_SHMEM=y |
198 | CONFIG_SLAB=y | ||
199 | CONFIG_VM_EVENT_COUNTERS=y | 192 | CONFIG_VM_EVENT_COUNTERS=y |
193 | CONFIG_SLAB=y | ||
194 | # CONFIG_SLUB is not set | ||
195 | # CONFIG_SLOB is not set | ||
200 | CONFIG_RT_MUTEXES=y | 196 | CONFIG_RT_MUTEXES=y |
201 | # CONFIG_TINY_SHMEM is not set | 197 | # CONFIG_TINY_SHMEM is not set |
202 | CONFIG_BASE_SMALL=0 | 198 | CONFIG_BASE_SMALL=0 |
203 | # CONFIG_SLOB is not set | ||
204 | |||
205 | # | ||
206 | # Loadable module support | ||
207 | # | ||
208 | CONFIG_MODULES=y | 199 | CONFIG_MODULES=y |
209 | CONFIG_MODULE_UNLOAD=y | 200 | CONFIG_MODULE_UNLOAD=y |
210 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 201 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
211 | CONFIG_MODVERSIONS=y | 202 | CONFIG_MODVERSIONS=y |
212 | CONFIG_MODULE_SRCVERSION_ALL=y | 203 | CONFIG_MODULE_SRCVERSION_ALL=y |
213 | CONFIG_KMOD=y | 204 | CONFIG_KMOD=y |
214 | |||
215 | # | ||
216 | # Block layer | ||
217 | # | ||
218 | CONFIG_BLOCK=y | 205 | CONFIG_BLOCK=y |
219 | # CONFIG_LBD is not set | 206 | # CONFIG_LBD is not set |
220 | # CONFIG_BLK_DEV_IO_TRACE is not set | 207 | # CONFIG_BLK_DEV_IO_TRACE is not set |
221 | # CONFIG_LSF is not set | 208 | # CONFIG_LSF is not set |
209 | # CONFIG_BLK_DEV_BSG is not set | ||
222 | 210 | ||
223 | # | 211 | # |
224 | # IO Schedulers | 212 | # IO Schedulers |
@@ -237,6 +225,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
237 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) | 225 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) |
238 | # | 226 | # |
239 | CONFIG_HW_HAS_EISA=y | 227 | CONFIG_HW_HAS_EISA=y |
228 | # CONFIG_ARCH_SUPPORTS_MSI is not set | ||
240 | # CONFIG_EISA is not set | 229 | # CONFIG_EISA is not set |
241 | CONFIG_MMU=y | 230 | CONFIG_MMU=y |
242 | 231 | ||
@@ -245,10 +234,6 @@ CONFIG_MMU=y | |||
245 | # | 234 | # |
246 | 235 | ||
247 | # | 236 | # |
248 | # PCI Hotplug Support | ||
249 | # | ||
250 | |||
251 | # | ||
252 | # Executable file formats | 237 | # Executable file formats |
253 | # | 238 | # |
254 | CONFIG_BINFMT_ELF=y | 239 | CONFIG_BINFMT_ELF=y |
@@ -261,7 +246,7 @@ CONFIG_TRAD_SIGNALS=y | |||
261 | CONFIG_PM=y | 246 | CONFIG_PM=y |
262 | # CONFIG_PM_LEGACY is not set | 247 | # CONFIG_PM_LEGACY is not set |
263 | # CONFIG_PM_DEBUG is not set | 248 | # CONFIG_PM_DEBUG is not set |
264 | # CONFIG_PM_SYSFS_DEPRECATED is not set | 249 | # CONFIG_SUSPEND is not set |
265 | 250 | ||
266 | # | 251 | # |
267 | # Networking | 252 | # Networking |
@@ -271,7 +256,6 @@ CONFIG_NET=y | |||
271 | # | 256 | # |
272 | # Networking options | 257 | # Networking options |
273 | # | 258 | # |
274 | # CONFIG_NETDEBUG is not set | ||
275 | CONFIG_PACKET=y | 259 | CONFIG_PACKET=y |
276 | CONFIG_PACKET_MMAP=y | 260 | CONFIG_PACKET_MMAP=y |
277 | CONFIG_UNIX=y | 261 | CONFIG_UNIX=y |
@@ -308,10 +292,6 @@ CONFIG_INET_TCP_DIAG=y | |||
308 | CONFIG_TCP_CONG_CUBIC=y | 292 | CONFIG_TCP_CONG_CUBIC=y |
309 | CONFIG_DEFAULT_TCP_CONG="cubic" | 293 | CONFIG_DEFAULT_TCP_CONG="cubic" |
310 | CONFIG_TCP_MD5SIG=y | 294 | CONFIG_TCP_MD5SIG=y |
311 | |||
312 | # | ||
313 | # IP: Virtual Server Configuration | ||
314 | # | ||
315 | CONFIG_IP_VS=m | 295 | CONFIG_IP_VS=m |
316 | # CONFIG_IP_VS_DEBUG is not set | 296 | # CONFIG_IP_VS_DEBUG is not set |
317 | CONFIG_IP_VS_TAB_BITS=12 | 297 | CONFIG_IP_VS_TAB_BITS=12 |
@@ -346,10 +326,11 @@ CONFIG_IPV6=m | |||
346 | CONFIG_IPV6_PRIVACY=y | 326 | CONFIG_IPV6_PRIVACY=y |
347 | CONFIG_IPV6_ROUTER_PREF=y | 327 | CONFIG_IPV6_ROUTER_PREF=y |
348 | CONFIG_IPV6_ROUTE_INFO=y | 328 | CONFIG_IPV6_ROUTE_INFO=y |
329 | CONFIG_IPV6_OPTIMISTIC_DAD=y | ||
349 | CONFIG_INET6_AH=m | 330 | CONFIG_INET6_AH=m |
350 | CONFIG_INET6_ESP=m | 331 | CONFIG_INET6_ESP=m |
351 | CONFIG_INET6_IPCOMP=m | 332 | CONFIG_INET6_IPCOMP=m |
352 | CONFIG_IPV6_MIP6=y | 333 | CONFIG_IPV6_MIP6=m |
353 | CONFIG_INET6_XFRM_TUNNEL=m | 334 | CONFIG_INET6_XFRM_TUNNEL=m |
354 | CONFIG_INET6_TUNNEL=m | 335 | CONFIG_INET6_TUNNEL=m |
355 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | 336 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m |
@@ -371,8 +352,6 @@ CONFIG_NETFILTER_NETLINK=m | |||
371 | CONFIG_NETFILTER_NETLINK_QUEUE=m | 352 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
372 | CONFIG_NETFILTER_NETLINK_LOG=m | 353 | CONFIG_NETFILTER_NETLINK_LOG=m |
373 | CONFIG_NF_CONNTRACK_ENABLED=m | 354 | CONFIG_NF_CONNTRACK_ENABLED=m |
374 | CONFIG_NF_CONNTRACK_SUPPORT=y | ||
375 | # CONFIG_IP_NF_CONNTRACK_SUPPORT is not set | ||
376 | CONFIG_NF_CONNTRACK=m | 355 | CONFIG_NF_CONNTRACK=m |
377 | CONFIG_NF_CT_ACCT=y | 356 | CONFIG_NF_CT_ACCT=y |
378 | CONFIG_NF_CONNTRACK_MARK=y | 357 | CONFIG_NF_CONNTRACK_MARK=y |
@@ -380,6 +359,7 @@ CONFIG_NF_CONNTRACK_SECMARK=y | |||
380 | CONFIG_NF_CONNTRACK_EVENTS=y | 359 | CONFIG_NF_CONNTRACK_EVENTS=y |
381 | CONFIG_NF_CT_PROTO_GRE=m | 360 | CONFIG_NF_CT_PROTO_GRE=m |
382 | CONFIG_NF_CT_PROTO_SCTP=m | 361 | CONFIG_NF_CT_PROTO_SCTP=m |
362 | CONFIG_NF_CT_PROTO_UDPLITE=m | ||
383 | CONFIG_NF_CONNTRACK_AMANDA=m | 363 | CONFIG_NF_CONNTRACK_AMANDA=m |
384 | CONFIG_NF_CONNTRACK_FTP=m | 364 | CONFIG_NF_CONNTRACK_FTP=m |
385 | CONFIG_NF_CONNTRACK_H323=m | 365 | CONFIG_NF_CONNTRACK_H323=m |
@@ -398,11 +378,13 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
398 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 378 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
399 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | 379 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m |
400 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | 380 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m |
381 | CONFIG_NETFILTER_XT_TARGET_TRACE=m | ||
401 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m | 382 | CONFIG_NETFILTER_XT_TARGET_SECMARK=m |
402 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m | 383 | CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m |
403 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | 384 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m |
404 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 385 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
405 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | 386 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m |
387 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m | ||
406 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m | 388 | CONFIG_NETFILTER_XT_MATCH_CONNMARK=m |
407 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | 389 | CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m |
408 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 390 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
@@ -423,6 +405,7 @@ CONFIG_NETFILTER_XT_MATCH_STATE=m | |||
423 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m | 405 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m |
424 | CONFIG_NETFILTER_XT_MATCH_STRING=m | 406 | CONFIG_NETFILTER_XT_MATCH_STRING=m |
425 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | 407 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m |
408 | CONFIG_NETFILTER_XT_MATCH_U32=m | ||
426 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | 409 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m |
427 | 410 | ||
428 | # | 411 | # |
@@ -490,25 +473,13 @@ CONFIG_IP6_NF_TARGET_REJECT=m | |||
490 | CONFIG_IP6_NF_MANGLE=m | 473 | CONFIG_IP6_NF_MANGLE=m |
491 | CONFIG_IP6_NF_TARGET_HL=m | 474 | CONFIG_IP6_NF_TARGET_HL=m |
492 | CONFIG_IP6_NF_RAW=m | 475 | CONFIG_IP6_NF_RAW=m |
493 | |||
494 | # | ||
495 | # DCCP Configuration (EXPERIMENTAL) | ||
496 | # | ||
497 | # CONFIG_IP_DCCP is not set | 476 | # CONFIG_IP_DCCP is not set |
498 | |||
499 | # | ||
500 | # SCTP Configuration (EXPERIMENTAL) | ||
501 | # | ||
502 | CONFIG_IP_SCTP=m | 477 | CONFIG_IP_SCTP=m |
503 | # CONFIG_SCTP_DBG_MSG is not set | 478 | # CONFIG_SCTP_DBG_MSG is not set |
504 | # CONFIG_SCTP_DBG_OBJCNT is not set | 479 | # CONFIG_SCTP_DBG_OBJCNT is not set |
505 | # CONFIG_SCTP_HMAC_NONE is not set | 480 | # CONFIG_SCTP_HMAC_NONE is not set |
506 | # CONFIG_SCTP_HMAC_SHA1 is not set | 481 | # CONFIG_SCTP_HMAC_SHA1 is not set |
507 | CONFIG_SCTP_HMAC_MD5=y | 482 | CONFIG_SCTP_HMAC_MD5=y |
508 | |||
509 | # | ||
510 | # TIPC Configuration (EXPERIMENTAL) | ||
511 | # | ||
512 | # CONFIG_TIPC is not set | 483 | # CONFIG_TIPC is not set |
513 | # CONFIG_ATM is not set | 484 | # CONFIG_ATM is not set |
514 | # CONFIG_BRIDGE is not set | 485 | # CONFIG_BRIDGE is not set |
@@ -527,9 +498,6 @@ CONFIG_SCTP_HMAC_MD5=y | |||
527 | # | 498 | # |
528 | CONFIG_NET_SCHED=y | 499 | CONFIG_NET_SCHED=y |
529 | CONFIG_NET_SCH_FIFO=y | 500 | CONFIG_NET_SCH_FIFO=y |
530 | # CONFIG_NET_SCH_CLK_JIFFIES is not set | ||
531 | CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y | ||
532 | # CONFIG_NET_SCH_CLK_CPU is not set | ||
533 | 501 | ||
534 | # | 502 | # |
535 | # Queueing/Scheduling | 503 | # Queueing/Scheduling |
@@ -538,6 +506,7 @@ CONFIG_NET_SCH_CBQ=m | |||
538 | CONFIG_NET_SCH_HTB=m | 506 | CONFIG_NET_SCH_HTB=m |
539 | CONFIG_NET_SCH_HFSC=m | 507 | CONFIG_NET_SCH_HFSC=m |
540 | CONFIG_NET_SCH_PRIO=m | 508 | CONFIG_NET_SCH_PRIO=m |
509 | CONFIG_NET_SCH_RR=m | ||
541 | CONFIG_NET_SCH_RED=m | 510 | CONFIG_NET_SCH_RED=m |
542 | CONFIG_NET_SCH_SFQ=m | 511 | CONFIG_NET_SCH_SFQ=m |
543 | CONFIG_NET_SCH_TEQL=m | 512 | CONFIG_NET_SCH_TEQL=m |
@@ -562,10 +531,16 @@ CONFIG_NET_CLS_U32=m | |||
562 | CONFIG_NET_CLS_RSVP=m | 531 | CONFIG_NET_CLS_RSVP=m |
563 | CONFIG_NET_CLS_RSVP6=m | 532 | CONFIG_NET_CLS_RSVP6=m |
564 | # CONFIG_NET_EMATCH is not set | 533 | # CONFIG_NET_EMATCH is not set |
565 | # CONFIG_NET_CLS_ACT is not set | 534 | CONFIG_NET_CLS_ACT=y |
535 | CONFIG_NET_ACT_POLICE=y | ||
536 | CONFIG_NET_ACT_GACT=m | ||
537 | CONFIG_GACT_PROB=y | ||
538 | CONFIG_NET_ACT_MIRRED=m | ||
539 | CONFIG_NET_ACT_IPT=m | ||
540 | CONFIG_NET_ACT_PEDIT=m | ||
541 | CONFIG_NET_ACT_SIMP=m | ||
566 | CONFIG_NET_CLS_POLICE=y | 542 | CONFIG_NET_CLS_POLICE=y |
567 | # CONFIG_NET_CLS_IND is not set | 543 | # CONFIG_NET_CLS_IND is not set |
568 | CONFIG_NET_ESTIMATOR=y | ||
569 | 544 | ||
570 | # | 545 | # |
571 | # Network testing | 546 | # Network testing |
@@ -574,14 +549,26 @@ CONFIG_NET_ESTIMATOR=y | |||
574 | # CONFIG_HAMRADIO is not set | 549 | # CONFIG_HAMRADIO is not set |
575 | # CONFIG_IRDA is not set | 550 | # CONFIG_IRDA is not set |
576 | # CONFIG_BT is not set | 551 | # CONFIG_BT is not set |
552 | # CONFIG_AF_RXRPC is not set | ||
553 | CONFIG_FIB_RULES=y | ||
554 | |||
555 | # | ||
556 | # Wireless | ||
557 | # | ||
558 | CONFIG_CFG80211=m | ||
559 | CONFIG_WIRELESS_EXT=y | ||
560 | CONFIG_MAC80211=m | ||
561 | # CONFIG_MAC80211_DEBUG is not set | ||
577 | CONFIG_IEEE80211=m | 562 | CONFIG_IEEE80211=m |
578 | # CONFIG_IEEE80211_DEBUG is not set | 563 | # CONFIG_IEEE80211_DEBUG is not set |
579 | CONFIG_IEEE80211_CRYPT_WEP=m | 564 | CONFIG_IEEE80211_CRYPT_WEP=m |
580 | CONFIG_IEEE80211_CRYPT_CCMP=m | 565 | CONFIG_IEEE80211_CRYPT_CCMP=m |
566 | CONFIG_IEEE80211_CRYPT_TKIP=m | ||
581 | CONFIG_IEEE80211_SOFTMAC=m | 567 | CONFIG_IEEE80211_SOFTMAC=m |
582 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | 568 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set |
583 | CONFIG_WIRELESS_EXT=y | 569 | CONFIG_RFKILL=m |
584 | CONFIG_FIB_RULES=y | 570 | CONFIG_RFKILL_INPUT=m |
571 | # CONFIG_NET_9P is not set | ||
585 | 572 | ||
586 | # | 573 | # |
587 | # Device Drivers | 574 | # Device Drivers |
@@ -593,47 +580,19 @@ CONFIG_FIB_RULES=y | |||
593 | CONFIG_STANDALONE=y | 580 | CONFIG_STANDALONE=y |
594 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 581 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
595 | # CONFIG_SYS_HYPERVISOR is not set | 582 | # CONFIG_SYS_HYPERVISOR is not set |
596 | |||
597 | # | ||
598 | # Connector - unified userspace <-> kernelspace linker | ||
599 | # | ||
600 | CONFIG_CONNECTOR=m | 583 | CONFIG_CONNECTOR=m |
601 | |||
602 | # | ||
603 | # Memory Technology Devices (MTD) | ||
604 | # | ||
605 | # CONFIG_MTD is not set | 584 | # CONFIG_MTD is not set |
606 | |||
607 | # | ||
608 | # Parallel port support | ||
609 | # | ||
610 | # CONFIG_PARPORT is not set | 585 | # CONFIG_PARPORT is not set |
611 | 586 | CONFIG_BLK_DEV=y | |
612 | # | ||
613 | # Plug and Play support | ||
614 | # | ||
615 | # CONFIG_PNPACPI is not set | ||
616 | |||
617 | # | ||
618 | # Block devices | ||
619 | # | ||
620 | # CONFIG_BLK_DEV_COW_COMMON is not set | 587 | # CONFIG_BLK_DEV_COW_COMMON is not set |
621 | # CONFIG_BLK_DEV_LOOP is not set | 588 | # CONFIG_BLK_DEV_LOOP is not set |
622 | # CONFIG_BLK_DEV_NBD is not set | 589 | # CONFIG_BLK_DEV_NBD is not set |
623 | # CONFIG_BLK_DEV_RAM is not set | 590 | # CONFIG_BLK_DEV_RAM is not set |
624 | # CONFIG_BLK_DEV_INITRD is not set | ||
625 | CONFIG_CDROM_PKTCDVD=m | 591 | CONFIG_CDROM_PKTCDVD=m |
626 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 592 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
627 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 593 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
628 | CONFIG_ATA_OVER_ETH=m | 594 | CONFIG_ATA_OVER_ETH=m |
629 | 595 | # CONFIG_MISC_DEVICES is not set | |
630 | # | ||
631 | # Misc devices | ||
632 | # | ||
633 | |||
634 | # | ||
635 | # ATA/ATAPI/MFM/RLL support | ||
636 | # | ||
637 | # CONFIG_IDE is not set | 596 | # CONFIG_IDE is not set |
638 | 597 | ||
639 | # | 598 | # |
@@ -641,6 +600,7 @@ CONFIG_ATA_OVER_ETH=m | |||
641 | # | 600 | # |
642 | CONFIG_RAID_ATTRS=m | 601 | CONFIG_RAID_ATTRS=m |
643 | CONFIG_SCSI=y | 602 | CONFIG_SCSI=y |
603 | CONFIG_SCSI_DMA=y | ||
644 | CONFIG_SCSI_TGT=m | 604 | CONFIG_SCSI_TGT=m |
645 | # CONFIG_SCSI_NETLINK is not set | 605 | # CONFIG_SCSI_NETLINK is not set |
646 | CONFIG_SCSI_PROC_FS=y | 606 | CONFIG_SCSI_PROC_FS=y |
@@ -663,6 +623,7 @@ CONFIG_CHR_DEV_SCH=m | |||
663 | CONFIG_SCSI_CONSTANTS=y | 623 | CONFIG_SCSI_CONSTANTS=y |
664 | # CONFIG_SCSI_LOGGING is not set | 624 | # CONFIG_SCSI_LOGGING is not set |
665 | CONFIG_SCSI_SCAN_ASYNC=y | 625 | CONFIG_SCSI_SCAN_ASYNC=y |
626 | CONFIG_SCSI_WAIT_SCAN=m | ||
666 | 627 | ||
667 | # | 628 | # |
668 | # SCSI Transports | 629 | # SCSI Transports |
@@ -670,51 +631,21 @@ CONFIG_SCSI_SCAN_ASYNC=y | |||
670 | CONFIG_SCSI_SPI_ATTRS=m | 631 | CONFIG_SCSI_SPI_ATTRS=m |
671 | # CONFIG_SCSI_FC_ATTRS is not set | 632 | # CONFIG_SCSI_FC_ATTRS is not set |
672 | CONFIG_SCSI_ISCSI_ATTRS=m | 633 | CONFIG_SCSI_ISCSI_ATTRS=m |
673 | CONFIG_SCSI_SAS_ATTRS=m | ||
674 | # CONFIG_SCSI_SAS_LIBSAS is not set | 634 | # CONFIG_SCSI_SAS_LIBSAS is not set |
675 | 635 | CONFIG_SCSI_LOWLEVEL=y | |
676 | # | ||
677 | # SCSI low-level drivers | ||
678 | # | ||
679 | CONFIG_ISCSI_TCP=m | 636 | CONFIG_ISCSI_TCP=m |
680 | CONFIG_SGIWD93_SCSI=y | 637 | CONFIG_SGIWD93_SCSI=y |
681 | # CONFIG_SCSI_DEBUG is not set | 638 | # CONFIG_SCSI_DEBUG is not set |
682 | |||
683 | # | ||
684 | # Serial ATA (prod) and Parallel ATA (experimental) drivers | ||
685 | # | ||
686 | # CONFIG_ATA is not set | 639 | # CONFIG_ATA is not set |
687 | |||
688 | # | ||
689 | # Multi-device support (RAID and LVM) | ||
690 | # | ||
691 | # CONFIG_MD is not set | 640 | # CONFIG_MD is not set |
692 | |||
693 | # | ||
694 | # Fusion MPT device support | ||
695 | # | ||
696 | # CONFIG_FUSION is not set | ||
697 | |||
698 | # | ||
699 | # IEEE 1394 (FireWire) support | ||
700 | # | ||
701 | |||
702 | # | ||
703 | # I2O device support | ||
704 | # | ||
705 | |||
706 | # | ||
707 | # Network device support | ||
708 | # | ||
709 | CONFIG_NETDEVICES=y | 641 | CONFIG_NETDEVICES=y |
642 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
643 | # CONFIG_IFB is not set | ||
710 | CONFIG_DUMMY=m | 644 | CONFIG_DUMMY=m |
711 | CONFIG_BONDING=m | 645 | CONFIG_BONDING=m |
646 | CONFIG_MACVLAN=m | ||
712 | CONFIG_EQUALIZER=m | 647 | CONFIG_EQUALIZER=m |
713 | CONFIG_TUN=m | 648 | CONFIG_TUN=m |
714 | |||
715 | # | ||
716 | # PHY device support | ||
717 | # | ||
718 | CONFIG_PHYLIB=m | 649 | CONFIG_PHYLIB=m |
719 | 650 | ||
720 | # | 651 | # |
@@ -728,36 +659,25 @@ CONFIG_CICADA_PHY=m | |||
728 | # CONFIG_VITESSE_PHY is not set | 659 | # CONFIG_VITESSE_PHY is not set |
729 | # CONFIG_SMSC_PHY is not set | 660 | # CONFIG_SMSC_PHY is not set |
730 | # CONFIG_BROADCOM_PHY is not set | 661 | # CONFIG_BROADCOM_PHY is not set |
662 | # CONFIG_ICPLUS_PHY is not set | ||
731 | # CONFIG_FIXED_PHY is not set | 663 | # CONFIG_FIXED_PHY is not set |
732 | |||
733 | # | ||
734 | # Ethernet (10 or 100Mbit) | ||
735 | # | ||
736 | CONFIG_NET_ETHERNET=y | 664 | CONFIG_NET_ETHERNET=y |
737 | # CONFIG_MII is not set | 665 | # CONFIG_MII is not set |
666 | # CONFIG_AX88796 is not set | ||
738 | # CONFIG_DM9000 is not set | 667 | # CONFIG_DM9000 is not set |
739 | CONFIG_SGISEEQ=y | 668 | CONFIG_SGISEEQ=y |
669 | # CONFIG_NETDEV_1000 is not set | ||
670 | # CONFIG_NETDEV_10000 is not set | ||
740 | 671 | ||
741 | # | 672 | # |
742 | # Ethernet (1000 Mbit) | 673 | # Wireless LAN |
743 | # | ||
744 | |||
745 | # | ||
746 | # Ethernet (10000 Mbit) | ||
747 | # | ||
748 | |||
749 | # | ||
750 | # Token Ring devices | ||
751 | # | ||
752 | |||
753 | # | ||
754 | # Wireless LAN (non-hamradio) | ||
755 | # | ||
756 | # CONFIG_NET_RADIO is not set | ||
757 | |||
758 | # | ||
759 | # Wan interfaces | ||
760 | # | 674 | # |
675 | CONFIG_WLAN_PRE80211=y | ||
676 | CONFIG_STRIP=m | ||
677 | CONFIG_WLAN_80211=y | ||
678 | # CONFIG_LIBERTAS is not set | ||
679 | CONFIG_HOSTAP=m | ||
680 | # CONFIG_HOSTAP_FIRMWARE is not set | ||
761 | # CONFIG_WAN is not set | 681 | # CONFIG_WAN is not set |
762 | # CONFIG_PPP is not set | 682 | # CONFIG_PPP is not set |
763 | # CONFIG_SLIP is not set | 683 | # CONFIG_SLIP is not set |
@@ -765,15 +685,7 @@ CONFIG_SGISEEQ=y | |||
765 | # CONFIG_NETCONSOLE is not set | 685 | # CONFIG_NETCONSOLE is not set |
766 | # CONFIG_NETPOLL is not set | 686 | # CONFIG_NETPOLL is not set |
767 | # CONFIG_NET_POLL_CONTROLLER is not set | 687 | # CONFIG_NET_POLL_CONTROLLER is not set |
768 | |||
769 | # | ||
770 | # ISDN subsystem | ||
771 | # | ||
772 | # CONFIG_ISDN is not set | 688 | # CONFIG_ISDN is not set |
773 | |||
774 | # | ||
775 | # Telephony Support | ||
776 | # | ||
777 | # CONFIG_PHONE is not set | 689 | # CONFIG_PHONE is not set |
778 | 690 | ||
779 | # | 691 | # |
@@ -781,6 +693,7 @@ CONFIG_SGISEEQ=y | |||
781 | # | 693 | # |
782 | CONFIG_INPUT=y | 694 | CONFIG_INPUT=y |
783 | # CONFIG_INPUT_FF_MEMLESS is not set | 695 | # CONFIG_INPUT_FF_MEMLESS is not set |
696 | # CONFIG_INPUT_POLLDEV is not set | ||
784 | 697 | ||
785 | # | 698 | # |
786 | # Userland interfaces | 699 | # Userland interfaces |
@@ -806,9 +719,16 @@ CONFIG_KEYBOARD_ATKBD=y | |||
806 | # CONFIG_KEYBOARD_STOWAWAY is not set | 719 | # CONFIG_KEYBOARD_STOWAWAY is not set |
807 | CONFIG_INPUT_MOUSE=y | 720 | CONFIG_INPUT_MOUSE=y |
808 | CONFIG_MOUSE_PS2=m | 721 | CONFIG_MOUSE_PS2=m |
722 | # CONFIG_MOUSE_PS2_ALPS is not set | ||
723 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
724 | # CONFIG_MOUSE_PS2_SYNAPTICS is not set | ||
725 | # CONFIG_MOUSE_PS2_LIFEBOOK is not set | ||
726 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
727 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
809 | CONFIG_MOUSE_SERIAL=m | 728 | CONFIG_MOUSE_SERIAL=m |
810 | # CONFIG_MOUSE_VSXXXAA is not set | 729 | # CONFIG_MOUSE_VSXXXAA is not set |
811 | # CONFIG_INPUT_JOYSTICK is not set | 730 | # CONFIG_INPUT_JOYSTICK is not set |
731 | # CONFIG_INPUT_TABLET is not set | ||
812 | # CONFIG_INPUT_TOUCHSCREEN is not set | 732 | # CONFIG_INPUT_TOUCHSCREEN is not set |
813 | # CONFIG_INPUT_MISC is not set | 733 | # CONFIG_INPUT_MISC is not set |
814 | 734 | ||
@@ -844,15 +764,7 @@ CONFIG_SERIAL_CORE=m | |||
844 | CONFIG_UNIX98_PTYS=y | 764 | CONFIG_UNIX98_PTYS=y |
845 | CONFIG_LEGACY_PTYS=y | 765 | CONFIG_LEGACY_PTYS=y |
846 | CONFIG_LEGACY_PTY_COUNT=256 | 766 | CONFIG_LEGACY_PTY_COUNT=256 |
847 | |||
848 | # | ||
849 | # IPMI | ||
850 | # | ||
851 | # CONFIG_IPMI_HANDLER is not set | 767 | # CONFIG_IPMI_HANDLER is not set |
852 | |||
853 | # | ||
854 | # Watchdog Cards | ||
855 | # | ||
856 | CONFIG_WATCHDOG=y | 768 | CONFIG_WATCHDOG=y |
857 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 769 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
858 | 770 | ||
@@ -864,20 +776,10 @@ CONFIG_INDYDOG=m | |||
864 | # CONFIG_HW_RANDOM is not set | 776 | # CONFIG_HW_RANDOM is not set |
865 | # CONFIG_RTC is not set | 777 | # CONFIG_RTC is not set |
866 | CONFIG_SGI_DS1286=m | 778 | CONFIG_SGI_DS1286=m |
867 | # CONFIG_GEN_RTC is not set | ||
868 | # CONFIG_DTLK is not set | ||
869 | # CONFIG_R3964 is not set | 779 | # CONFIG_R3964 is not set |
870 | CONFIG_RAW_DRIVER=m | 780 | CONFIG_RAW_DRIVER=m |
871 | CONFIG_MAX_RAW_DEVS=256 | 781 | CONFIG_MAX_RAW_DEVS=256 |
872 | |||
873 | # | ||
874 | # TPM devices | ||
875 | # | ||
876 | # CONFIG_TCG_TPM is not set | 782 | # CONFIG_TCG_TPM is not set |
877 | |||
878 | # | ||
879 | # I2C support | ||
880 | # | ||
881 | # CONFIG_I2C is not set | 783 | # CONFIG_I2C is not set |
882 | 784 | ||
883 | # | 785 | # |
@@ -885,32 +787,33 @@ CONFIG_MAX_RAW_DEVS=256 | |||
885 | # | 787 | # |
886 | # CONFIG_SPI is not set | 788 | # CONFIG_SPI is not set |
887 | # CONFIG_SPI_MASTER is not set | 789 | # CONFIG_SPI_MASTER is not set |
888 | |||
889 | # | ||
890 | # Dallas's 1-wire bus | ||
891 | # | ||
892 | # CONFIG_W1 is not set | 790 | # CONFIG_W1 is not set |
791 | # CONFIG_POWER_SUPPLY is not set | ||
792 | # CONFIG_HWMON is not set | ||
893 | 793 | ||
894 | # | 794 | # |
895 | # Hardware Monitoring support | 795 | # Multifunction device drivers |
896 | # | 796 | # |
897 | # CONFIG_HWMON is not set | 797 | # CONFIG_MFD_SM501 is not set |
898 | # CONFIG_HWMON_VID is not set | ||
899 | 798 | ||
900 | # | 799 | # |
901 | # Multimedia devices | 800 | # Multimedia devices |
902 | # | 801 | # |
903 | # CONFIG_VIDEO_DEV is not set | 802 | # CONFIG_VIDEO_DEV is not set |
803 | # CONFIG_DVB_CORE is not set | ||
804 | # CONFIG_DAB is not set | ||
904 | 805 | ||
905 | # | 806 | # |
906 | # Digital Video Broadcasting Devices | 807 | # Graphics support |
907 | # | 808 | # |
908 | # CONFIG_DVB is not set | 809 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
909 | 810 | ||
910 | # | 811 | # |
911 | # Graphics support | 812 | # Display device support |
912 | # | 813 | # |
913 | CONFIG_FIRMWARE_EDID=y | 814 | # CONFIG_DISPLAY_SUPPORT is not set |
815 | # CONFIG_VGASTATE is not set | ||
816 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
914 | # CONFIG_FB is not set | 817 | # CONFIG_FB is not set |
915 | 818 | ||
916 | # | 819 | # |
@@ -920,31 +823,20 @@ CONFIG_FIRMWARE_EDID=y | |||
920 | CONFIG_SGI_NEWPORT_CONSOLE=y | 823 | CONFIG_SGI_NEWPORT_CONSOLE=y |
921 | CONFIG_DUMMY_CONSOLE=y | 824 | CONFIG_DUMMY_CONSOLE=y |
922 | CONFIG_FONT_8x16=y | 825 | CONFIG_FONT_8x16=y |
923 | |||
924 | # | ||
925 | # Logo configuration | ||
926 | # | ||
927 | CONFIG_LOGO=y | 826 | CONFIG_LOGO=y |
928 | # CONFIG_LOGO_LINUX_MONO is not set | 827 | # CONFIG_LOGO_LINUX_MONO is not set |
929 | # CONFIG_LOGO_LINUX_VGA16 is not set | 828 | # CONFIG_LOGO_LINUX_VGA16 is not set |
930 | # CONFIG_LOGO_LINUX_CLUT224 is not set | 829 | # CONFIG_LOGO_LINUX_CLUT224 is not set |
931 | CONFIG_LOGO_SGI_CLUT224=y | 830 | CONFIG_LOGO_SGI_CLUT224=y |
932 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
933 | 831 | ||
934 | # | 832 | # |
935 | # Sound | 833 | # Sound |
936 | # | 834 | # |
937 | # CONFIG_SOUND is not set | 835 | # CONFIG_SOUND is not set |
938 | 836 | CONFIG_HID_SUPPORT=y | |
939 | # | ||
940 | # HID Devices | ||
941 | # | ||
942 | CONFIG_HID=y | 837 | CONFIG_HID=y |
943 | # CONFIG_HID_DEBUG is not set | 838 | # CONFIG_HID_DEBUG is not set |
944 | 839 | CONFIG_USB_SUPPORT=y | |
945 | # | ||
946 | # USB support | ||
947 | # | ||
948 | # CONFIG_USB_ARCH_HAS_HCD is not set | 840 | # CONFIG_USB_ARCH_HAS_HCD is not set |
949 | # CONFIG_USB_ARCH_HAS_OHCI is not set | 841 | # CONFIG_USB_ARCH_HAS_OHCI is not set |
950 | # CONFIG_USB_ARCH_HAS_EHCI is not set | 842 | # CONFIG_USB_ARCH_HAS_EHCI is not set |
@@ -957,36 +849,8 @@ CONFIG_HID=y | |||
957 | # USB Gadget Support | 849 | # USB Gadget Support |
958 | # | 850 | # |
959 | # CONFIG_USB_GADGET is not set | 851 | # CONFIG_USB_GADGET is not set |
960 | |||
961 | # | ||
962 | # MMC/SD Card support | ||
963 | # | ||
964 | # CONFIG_MMC is not set | 852 | # CONFIG_MMC is not set |
965 | |||
966 | # | ||
967 | # LED devices | ||
968 | # | ||
969 | # CONFIG_NEW_LEDS is not set | 853 | # CONFIG_NEW_LEDS is not set |
970 | |||
971 | # | ||
972 | # LED drivers | ||
973 | # | ||
974 | |||
975 | # | ||
976 | # LED Triggers | ||
977 | # | ||
978 | |||
979 | # | ||
980 | # InfiniBand support | ||
981 | # | ||
982 | |||
983 | # | ||
984 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | ||
985 | # | ||
986 | |||
987 | # | ||
988 | # Real Time Clock | ||
989 | # | ||
990 | # CONFIG_RTC_CLASS is not set | 854 | # CONFIG_RTC_CLASS is not set |
991 | 855 | ||
992 | # | 856 | # |
@@ -1003,12 +867,9 @@ CONFIG_HID=y | |||
1003 | # | 867 | # |
1004 | 868 | ||
1005 | # | 869 | # |
1006 | # Auxiliary Display support | 870 | # Userspace I/O |
1007 | # | ||
1008 | |||
1009 | # | ||
1010 | # Virtualization | ||
1011 | # | 871 | # |
872 | # CONFIG_UIO is not set | ||
1012 | 873 | ||
1013 | # | 874 | # |
1014 | # File systems | 875 | # File systems |
@@ -1121,6 +982,7 @@ CONFIG_NFS_ACL_SUPPORT=m | |||
1121 | CONFIG_NFS_COMMON=y | 982 | CONFIG_NFS_COMMON=y |
1122 | CONFIG_SUNRPC=m | 983 | CONFIG_SUNRPC=m |
1123 | CONFIG_SUNRPC_GSS=m | 984 | CONFIG_SUNRPC_GSS=m |
985 | # CONFIG_SUNRPC_BIND34 is not set | ||
1124 | CONFIG_RPCSEC_GSS_KRB5=m | 986 | CONFIG_RPCSEC_GSS_KRB5=m |
1125 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 987 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1126 | CONFIG_SMB_FS=m | 988 | CONFIG_SMB_FS=m |
@@ -1136,7 +998,6 @@ CONFIG_CIFS=m | |||
1136 | CONFIG_CODA_FS=m | 998 | CONFIG_CODA_FS=m |
1137 | # CONFIG_CODA_FS_OLD_API is not set | 999 | # CONFIG_CODA_FS_OLD_API is not set |
1138 | # CONFIG_AFS_FS is not set | 1000 | # CONFIG_AFS_FS is not set |
1139 | # CONFIG_9P_FS is not set | ||
1140 | 1001 | ||
1141 | # | 1002 | # |
1142 | # Partition Types | 1003 | # Partition Types |
@@ -1158,6 +1019,7 @@ CONFIG_SGI_PARTITION=y | |||
1158 | # CONFIG_SUN_PARTITION is not set | 1019 | # CONFIG_SUN_PARTITION is not set |
1159 | # CONFIG_KARMA_PARTITION is not set | 1020 | # CONFIG_KARMA_PARTITION is not set |
1160 | # CONFIG_EFI_PARTITION is not set | 1021 | # CONFIG_EFI_PARTITION is not set |
1022 | # CONFIG_SYSV68_PARTITION is not set | ||
1161 | 1023 | ||
1162 | # | 1024 | # |
1163 | # Native Language Support | 1025 | # Native Language Support |
@@ -1207,8 +1069,6 @@ CONFIG_NLS_UTF8=m | |||
1207 | # Distributed Lock Manager | 1069 | # Distributed Lock Manager |
1208 | # | 1070 | # |
1209 | CONFIG_DLM=m | 1071 | CONFIG_DLM=m |
1210 | CONFIG_DLM_TCP=y | ||
1211 | # CONFIG_DLM_SCTP is not set | ||
1212 | # CONFIG_DLM_DEBUG is not set | 1072 | # CONFIG_DLM_DEBUG is not set |
1213 | 1073 | ||
1214 | # | 1074 | # |
@@ -1227,7 +1087,6 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1227 | # CONFIG_DEBUG_FS is not set | 1087 | # CONFIG_DEBUG_FS is not set |
1228 | # CONFIG_HEADERS_CHECK is not set | 1088 | # CONFIG_HEADERS_CHECK is not set |
1229 | # CONFIG_DEBUG_KERNEL is not set | 1089 | # CONFIG_DEBUG_KERNEL is not set |
1230 | CONFIG_LOG_BUF_SHIFT=14 | ||
1231 | CONFIG_CROSSCOMPILE=y | 1090 | CONFIG_CROSSCOMPILE=y |
1232 | CONFIG_CMDLINE="" | 1091 | CONFIG_CMDLINE="" |
1233 | 1092 | ||
@@ -1237,12 +1096,9 @@ CONFIG_CMDLINE="" | |||
1237 | CONFIG_KEYS=y | 1096 | CONFIG_KEYS=y |
1238 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | 1097 | CONFIG_KEYS_DEBUG_PROC_KEYS=y |
1239 | # CONFIG_SECURITY is not set | 1098 | # CONFIG_SECURITY is not set |
1240 | |||
1241 | # | ||
1242 | # Cryptographic options | ||
1243 | # | ||
1244 | CONFIG_CRYPTO=y | 1099 | CONFIG_CRYPTO=y |
1245 | CONFIG_CRYPTO_ALGAPI=y | 1100 | CONFIG_CRYPTO_ALGAPI=y |
1101 | CONFIG_CRYPTO_ABLKCIPHER=m | ||
1246 | CONFIG_CRYPTO_BLKCIPHER=m | 1102 | CONFIG_CRYPTO_BLKCIPHER=m |
1247 | CONFIG_CRYPTO_HASH=y | 1103 | CONFIG_CRYPTO_HASH=y |
1248 | CONFIG_CRYPTO_MANAGER=y | 1104 | CONFIG_CRYPTO_MANAGER=y |
@@ -1261,6 +1117,7 @@ CONFIG_CRYPTO_ECB=m | |||
1261 | CONFIG_CRYPTO_CBC=m | 1117 | CONFIG_CRYPTO_CBC=m |
1262 | CONFIG_CRYPTO_PCBC=m | 1118 | CONFIG_CRYPTO_PCBC=m |
1263 | CONFIG_CRYPTO_LRW=m | 1119 | CONFIG_CRYPTO_LRW=m |
1120 | CONFIG_CRYPTO_CRYPTD=m | ||
1264 | CONFIG_CRYPTO_DES=m | 1121 | CONFIG_CRYPTO_DES=m |
1265 | CONFIG_CRYPTO_FCRYPT=m | 1122 | CONFIG_CRYPTO_FCRYPT=m |
1266 | CONFIG_CRYPTO_BLOWFISH=m | 1123 | CONFIG_CRYPTO_BLOWFISH=m |
@@ -1279,10 +1136,7 @@ CONFIG_CRYPTO_MICHAEL_MIC=m | |||
1279 | CONFIG_CRYPTO_CRC32C=m | 1136 | CONFIG_CRYPTO_CRC32C=m |
1280 | CONFIG_CRYPTO_CAMELLIA=m | 1137 | CONFIG_CRYPTO_CAMELLIA=m |
1281 | # CONFIG_CRYPTO_TEST is not set | 1138 | # CONFIG_CRYPTO_TEST is not set |
1282 | 1139 | # CONFIG_CRYPTO_HW is not set | |
1283 | # | ||
1284 | # Hardware crypto devices | ||
1285 | # | ||
1286 | 1140 | ||
1287 | # | 1141 | # |
1288 | # Library routines | 1142 | # Library routines |
@@ -1290,7 +1144,9 @@ CONFIG_CRYPTO_CAMELLIA=m | |||
1290 | CONFIG_BITREVERSE=m | 1144 | CONFIG_BITREVERSE=m |
1291 | # CONFIG_CRC_CCITT is not set | 1145 | # CONFIG_CRC_CCITT is not set |
1292 | CONFIG_CRC16=m | 1146 | CONFIG_CRC16=m |
1147 | # CONFIG_CRC_ITU_T is not set | ||
1293 | CONFIG_CRC32=m | 1148 | CONFIG_CRC32=m |
1149 | # CONFIG_CRC7 is not set | ||
1294 | CONFIG_LIBCRC32C=m | 1150 | CONFIG_LIBCRC32C=m |
1295 | CONFIG_ZLIB_INFLATE=m | 1151 | CONFIG_ZLIB_INFLATE=m |
1296 | CONFIG_ZLIB_DEFLATE=m | 1152 | CONFIG_ZLIB_DEFLATE=m |
@@ -1301,3 +1157,4 @@ CONFIG_TEXTSEARCH_FSM=m | |||
1301 | CONFIG_PLIST=y | 1157 | CONFIG_PLIST=y |
1302 | CONFIG_HAS_IOMEM=y | 1158 | CONFIG_HAS_IOMEM=y |
1303 | CONFIG_HAS_IOPORT=y | 1159 | CONFIG_HAS_IOPORT=y |
1160 | CONFIG_HAS_DMA=y | ||
diff --git a/arch/mips/jmr3927/rbhma3100/irq.c b/arch/mips/jmr3927/rbhma3100/irq.c index 1187b44a3dd4..d9efe692e551 100644 --- a/arch/mips/jmr3927/rbhma3100/irq.c +++ b/arch/mips/jmr3927/rbhma3100/irq.c | |||
@@ -45,9 +45,6 @@ | |||
45 | #error JMR3927_IRQ_END > NR_IRQS | 45 | #error JMR3927_IRQ_END > NR_IRQS |
46 | #endif | 46 | #endif |
47 | 47 | ||
48 | #define irc_dlevel 0 | ||
49 | #define irc_elevel 1 | ||
50 | |||
51 | static unsigned char irc_level[TX3927_NUM_IR] = { | 48 | static unsigned char irc_level[TX3927_NUM_IR] = { |
52 | 5, 5, 5, 5, 5, 5, /* INT[5:0] */ | 49 | 5, 5, 5, 5, 5, 5, /* INT[5:0] */ |
53 | 7, 7, /* SIO */ | 50 | 7, 7, /* SIO */ |
@@ -80,34 +77,6 @@ static void unmask_irq_ioc(unsigned int irq) | |||
80 | (void)jmr3927_ioc_reg_in(JMR3927_IOC_REV_ADDR); | 77 | (void)jmr3927_ioc_reg_in(JMR3927_IOC_REV_ADDR); |
81 | } | 78 | } |
82 | 79 | ||
83 | static void mask_irq_irc(unsigned int irq) | ||
84 | { | ||
85 | unsigned int irq_nr = irq - JMR3927_IRQ_IRC; | ||
86 | volatile unsigned long *ilrp = &tx3927_ircptr->ilr[irq_nr / 2]; | ||
87 | if (irq_nr & 1) | ||
88 | *ilrp = (*ilrp & 0x00ff) | (irc_dlevel << 8); | ||
89 | else | ||
90 | *ilrp = (*ilrp & 0xff00) | irc_dlevel; | ||
91 | /* update IRCSR */ | ||
92 | tx3927_ircptr->imr = 0; | ||
93 | tx3927_ircptr->imr = irc_elevel; | ||
94 | /* flush write buffer */ | ||
95 | (void)tx3927_ircptr->ssr; | ||
96 | } | ||
97 | |||
98 | static void unmask_irq_irc(unsigned int irq) | ||
99 | { | ||
100 | unsigned int irq_nr = irq - JMR3927_IRQ_IRC; | ||
101 | volatile unsigned long *ilrp = &tx3927_ircptr->ilr[irq_nr / 2]; | ||
102 | if (irq_nr & 1) | ||
103 | *ilrp = (*ilrp & 0x00ff) | (irc_level[irq_nr] << 8); | ||
104 | else | ||
105 | *ilrp = (*ilrp & 0xff00) | irc_level[irq_nr]; | ||
106 | /* update IRCSR */ | ||
107 | tx3927_ircptr->imr = 0; | ||
108 | tx3927_ircptr->imr = irc_elevel; | ||
109 | } | ||
110 | |||
111 | asmlinkage void plat_irq_dispatch(void) | 80 | asmlinkage void plat_irq_dispatch(void) |
112 | { | 81 | { |
113 | unsigned long cp0_cause = read_c0_cause(); | 82 | unsigned long cp0_cause = read_c0_cause(); |
@@ -168,10 +137,6 @@ void __init arch_init_irq(void) | |||
168 | /* clear PCI Reset interrupts */ | 137 | /* clear PCI Reset interrupts */ |
169 | jmr3927_ioc_reg_out(0, JMR3927_IOC_RESET_ADDR); | 138 | jmr3927_ioc_reg_out(0, JMR3927_IOC_RESET_ADDR); |
170 | 139 | ||
171 | /* enable interrupt control */ | ||
172 | tx3927_ircptr->cer = TX3927_IRCER_ICE; | ||
173 | tx3927_ircptr->imr = irc_elevel; | ||
174 | |||
175 | jmr3927_irq_init(); | 140 | jmr3927_irq_init(); |
176 | 141 | ||
177 | /* setup IOC interrupt 1 (PCI, MODEM) */ | 142 | /* setup IOC interrupt 1 (PCI, MODEM) */ |
@@ -193,20 +158,13 @@ static struct irq_chip jmr3927_irq_ioc = { | |||
193 | .unmask = unmask_irq_ioc, | 158 | .unmask = unmask_irq_ioc, |
194 | }; | 159 | }; |
195 | 160 | ||
196 | static struct irq_chip jmr3927_irq_irc = { | ||
197 | .name = "jmr3927_irc", | ||
198 | .ack = mask_irq_irc, | ||
199 | .mask = mask_irq_irc, | ||
200 | .mask_ack = mask_irq_irc, | ||
201 | .unmask = unmask_irq_irc, | ||
202 | }; | ||
203 | |||
204 | static void __init jmr3927_irq_init(void) | 161 | static void __init jmr3927_irq_init(void) |
205 | { | 162 | { |
206 | u32 i; | 163 | u32 i; |
207 | 164 | ||
208 | for (i = JMR3927_IRQ_IRC; i < JMR3927_IRQ_IRC + JMR3927_NR_IRQ_IRC; i++) | 165 | txx9_irq_init(TX3927_IRC_REG); |
209 | set_irq_chip_and_handler(i, &jmr3927_irq_irc, handle_level_irq); | 166 | for (i = 0; i < TXx9_MAX_IR; i++) |
167 | txx9_irq_set_pri(i, irc_level[i]); | ||
210 | for (i = JMR3927_IRQ_IOC; i < JMR3927_IRQ_IOC + JMR3927_NR_IRQ_IOC; i++) | 168 | for (i = JMR3927_IRQ_IOC; i < JMR3927_IRQ_IOC + JMR3927_NR_IRQ_IOC; i++) |
211 | set_irq_chip_and_handler(i, &jmr3927_irq_ioc, handle_level_irq); | 169 | set_irq_chip_and_handler(i, &jmr3927_irq_ioc, handle_level_irq); |
212 | } | 170 | } |
diff --git a/arch/mips/jmr3927/rbhma3100/setup.c b/arch/mips/jmr3927/rbhma3100/setup.c index 8303001516d2..fde56e86c2ab 100644 --- a/arch/mips/jmr3927/rbhma3100/setup.c +++ b/arch/mips/jmr3927/rbhma3100/setup.c | |||
@@ -290,19 +290,6 @@ static void __init tx3927_setup(void) | |||
290 | tx3927_ccfgptr->crir, | 290 | tx3927_ccfgptr->crir, |
291 | tx3927_ccfgptr->ccfg, tx3927_ccfgptr->pcfg); | 291 | tx3927_ccfgptr->ccfg, tx3927_ccfgptr->pcfg); |
292 | 292 | ||
293 | /* IRC */ | ||
294 | /* disable interrupt control */ | ||
295 | tx3927_ircptr->cer = 0; | ||
296 | /* mask all IRC interrupts */ | ||
297 | tx3927_ircptr->imr = 0; | ||
298 | for (i = 0; i < TX3927_NUM_IR / 2; i++) { | ||
299 | tx3927_ircptr->ilr[i] = 0; | ||
300 | } | ||
301 | /* setup IRC interrupt mode (Low Active) */ | ||
302 | for (i = 0; i < TX3927_NUM_IR / 8; i++) { | ||
303 | tx3927_ircptr->cr[i] = 0; | ||
304 | } | ||
305 | |||
306 | /* TMR */ | 293 | /* TMR */ |
307 | /* disable all timers */ | 294 | /* disable all timers */ |
308 | for (i = 0; i < TX3927_NR_TMR; i++) { | 295 | for (i = 0; i < TX3927_NR_TMR; i++) { |
diff --git a/arch/mips/kernel/Makefile b/arch/mips/kernel/Makefile index 07344cb37596..2fd96d95a39c 100644 --- a/arch/mips/kernel/Makefile +++ b/arch/mips/kernel/Makefile | |||
@@ -50,6 +50,7 @@ obj-$(CONFIG_IRQ_CPU) += irq_cpu.o | |||
50 | obj-$(CONFIG_IRQ_CPU_RM7K) += irq-rm7000.o | 50 | obj-$(CONFIG_IRQ_CPU_RM7K) += irq-rm7000.o |
51 | obj-$(CONFIG_IRQ_CPU_RM9K) += irq-rm9000.o | 51 | obj-$(CONFIG_IRQ_CPU_RM9K) += irq-rm9000.o |
52 | obj-$(CONFIG_MIPS_BOARDS_GEN) += irq-msc01.o | 52 | obj-$(CONFIG_MIPS_BOARDS_GEN) += irq-msc01.o |
53 | obj-$(CONFIG_IRQ_TXX9) += irq_txx9.o | ||
53 | 54 | ||
54 | obj-$(CONFIG_32BIT) += scall32-o32.o | 55 | obj-$(CONFIG_32BIT) += scall32-o32.o |
55 | obj-$(CONFIG_64BIT) += scall64-64.o | 56 | obj-$(CONFIG_64BIT) += scall64-64.o |
diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c index 013327286c26..ca136298acdc 100644 --- a/arch/mips/kernel/asm-offsets.c +++ b/arch/mips/kernel/asm-offsets.c | |||
@@ -232,6 +232,10 @@ void output_mm_defines(void) | |||
232 | constant("#define _PMD_T_LOG2 ", PMD_T_LOG2); | 232 | constant("#define _PMD_T_LOG2 ", PMD_T_LOG2); |
233 | constant("#define _PTE_T_LOG2 ", PTE_T_LOG2); | 233 | constant("#define _PTE_T_LOG2 ", PTE_T_LOG2); |
234 | linefeed; | 234 | linefeed; |
235 | constant("#define _PGD_ORDER ", PGD_ORDER); | ||
236 | constant("#define _PMD_ORDER ", PMD_ORDER); | ||
237 | constant("#define _PTE_ORDER ", PTE_ORDER); | ||
238 | linefeed; | ||
235 | constant("#define _PMD_SHIFT ", PMD_SHIFT); | 239 | constant("#define _PMD_SHIFT ", PMD_SHIFT); |
236 | constant("#define _PGDIR_SHIFT ", PGDIR_SHIFT); | 240 | constant("#define _PGDIR_SHIFT ", PGDIR_SHIFT); |
237 | linefeed; | 241 | linefeed; |
diff --git a/arch/mips/kernel/cpu-bugs64.c b/arch/mips/kernel/cpu-bugs64.c index c09337b947b9..ac04f0adc408 100644 --- a/arch/mips/kernel/cpu-bugs64.c +++ b/arch/mips/kernel/cpu-bugs64.c | |||
@@ -29,7 +29,7 @@ static inline void align_mod(const int align, const int mod) | |||
29 | ".endr\n\t" | 29 | ".endr\n\t" |
30 | ".set pop" | 30 | ".set pop" |
31 | : | 31 | : |
32 | : "n" (align), "n" (mod)); | 32 | : "rn" (align), "rn" (mod)); |
33 | } | 33 | } |
34 | 34 | ||
35 | static inline void mult_sh_align_mod(long *v1, long *v2, long *w, | 35 | static inline void mult_sh_align_mod(long *v1, long *v2, long *w, |
diff --git a/arch/mips/kernel/irixsig.c b/arch/mips/kernel/irixsig.c index 6980deb6dced..28b2a8f00911 100644 --- a/arch/mips/kernel/irixsig.c +++ b/arch/mips/kernel/irixsig.c | |||
@@ -725,7 +725,7 @@ asmlinkage int irix_getcontext(struct pt_regs *regs) | |||
725 | current->comm, current->pid, ctx); | 725 | current->comm, current->pid, ctx); |
726 | #endif | 726 | #endif |
727 | 727 | ||
728 | if (!access_ok(VERIFY_WRITE, ctx, sizeof(*ctx))); | 728 | if (!access_ok(VERIFY_WRITE, ctx, sizeof(*ctx))) |
729 | return -EFAULT; | 729 | return -EFAULT; |
730 | 730 | ||
731 | error = __put_user(current->thread.irix_oldctx, &ctx->link); | 731 | error = __put_user(current->thread.irix_oldctx, &ctx->link); |
diff --git a/arch/mips/kernel/irq_txx9.c b/arch/mips/kernel/irq_txx9.c new file mode 100644 index 000000000000..a4d1462c27f7 --- /dev/null +++ b/arch/mips/kernel/irq_txx9.c | |||
@@ -0,0 +1,192 @@ | |||
1 | /* | ||
2 | * linux/arch/mips/kernel/irq_txx9.c | ||
3 | * | ||
4 | * Based on linux/arch/mips/jmr3927/rbhma3100/irq.c, | ||
5 | * linux/arch/mips/tx4927/common/tx4927_irq.c, | ||
6 | * linux/arch/mips/tx4938/common/irq.c | ||
7 | * | ||
8 | * Copyright 2001, 2003-2005 MontaVista Software Inc. | ||
9 | * Author: MontaVista Software, Inc. | ||
10 | * ahennessy@mvista.com | ||
11 | * source@mvista.com | ||
12 | * Copyright (C) 2000-2001 Toshiba Corporation | ||
13 | * | ||
14 | * This file is subject to the terms and conditions of the GNU General Public | ||
15 | * License. See the file "COPYING" in the main directory of this archive | ||
16 | * for more details. | ||
17 | */ | ||
18 | #include <linux/init.h> | ||
19 | #include <linux/interrupt.h> | ||
20 | #include <linux/types.h> | ||
21 | #include <asm/txx9irq.h> | ||
22 | |||
23 | struct txx9_irc_reg { | ||
24 | u32 cer; | ||
25 | u32 cr[2]; | ||
26 | u32 unused0; | ||
27 | u32 ilr[8]; | ||
28 | u32 unused1[4]; | ||
29 | u32 imr; | ||
30 | u32 unused2[7]; | ||
31 | u32 scr; | ||
32 | u32 unused3[7]; | ||
33 | u32 ssr; | ||
34 | u32 unused4[7]; | ||
35 | u32 csr; | ||
36 | }; | ||
37 | |||
38 | /* IRCER : Int. Control Enable */ | ||
39 | #define TXx9_IRCER_ICE 0x00000001 | ||
40 | |||
41 | /* IRCR : Int. Control */ | ||
42 | #define TXx9_IRCR_LOW 0x00000000 | ||
43 | #define TXx9_IRCR_HIGH 0x00000001 | ||
44 | #define TXx9_IRCR_DOWN 0x00000002 | ||
45 | #define TXx9_IRCR_UP 0x00000003 | ||
46 | #define TXx9_IRCR_EDGE(cr) ((cr) & 0x00000002) | ||
47 | |||
48 | /* IRSCR : Int. Status Control */ | ||
49 | #define TXx9_IRSCR_EIClrE 0x00000100 | ||
50 | #define TXx9_IRSCR_EIClr_MASK 0x0000000f | ||
51 | |||
52 | /* IRCSR : Int. Current Status */ | ||
53 | #define TXx9_IRCSR_IF 0x00010000 | ||
54 | #define TXx9_IRCSR_ILV_MASK 0x00000700 | ||
55 | #define TXx9_IRCSR_IVL_MASK 0x0000001f | ||
56 | |||
57 | #define irc_dlevel 0 | ||
58 | #define irc_elevel 1 | ||
59 | |||
60 | static struct txx9_irc_reg __iomem *txx9_ircptr __read_mostly; | ||
61 | |||
62 | static struct { | ||
63 | unsigned char level; | ||
64 | unsigned char mode; | ||
65 | } txx9irq[TXx9_MAX_IR] __read_mostly; | ||
66 | |||
67 | static void txx9_irq_unmask(unsigned int irq) | ||
68 | { | ||
69 | unsigned int irq_nr = irq - TXX9_IRQ_BASE; | ||
70 | u32 __iomem *ilrp = &txx9_ircptr->ilr[(irq_nr % 16 ) / 2]; | ||
71 | int ofs = irq_nr / 16 * 16 + (irq_nr & 1) * 8; | ||
72 | |||
73 | __raw_writel((__raw_readl(ilrp) & ~(0xff << ofs)) | ||
74 | | (txx9irq[irq_nr].level << ofs), | ||
75 | ilrp); | ||
76 | #ifdef CONFIG_CPU_TX39XX | ||
77 | /* update IRCSR */ | ||
78 | __raw_writel(0, &txx9_ircptr->imr); | ||
79 | __raw_writel(irc_elevel, &txx9_ircptr->imr); | ||
80 | #endif | ||
81 | } | ||
82 | |||
83 | static inline void txx9_irq_mask(unsigned int irq) | ||
84 | { | ||
85 | unsigned int irq_nr = irq - TXX9_IRQ_BASE; | ||
86 | u32 __iomem *ilrp = &txx9_ircptr->ilr[(irq_nr % 16) / 2]; | ||
87 | int ofs = irq_nr / 16 * 16 + (irq_nr & 1) * 8; | ||
88 | |||
89 | __raw_writel((__raw_readl(ilrp) & ~(0xff << ofs)) | ||
90 | | (irc_dlevel << ofs), | ||
91 | ilrp); | ||
92 | #ifdef CONFIG_CPU_TX39XX | ||
93 | /* update IRCSR */ | ||
94 | __raw_writel(0, &txx9_ircptr->imr); | ||
95 | __raw_writel(irc_elevel, &txx9_ircptr->imr); | ||
96 | /* flush write buffer */ | ||
97 | __raw_readl(&txx9_ircptr->ssr); | ||
98 | #else | ||
99 | mmiowb(); | ||
100 | #endif | ||
101 | } | ||
102 | |||
103 | static void txx9_irq_mask_ack(unsigned int irq) | ||
104 | { | ||
105 | unsigned int irq_nr = irq - TXX9_IRQ_BASE; | ||
106 | |||
107 | txx9_irq_mask(irq); | ||
108 | /* clear edge detection */ | ||
109 | if (unlikely(TXx9_IRCR_EDGE(txx9irq[irq_nr].mode))) | ||
110 | __raw_writel(TXx9_IRSCR_EIClrE | irq_nr, &txx9_ircptr->scr); | ||
111 | } | ||
112 | |||
113 | static int txx9_irq_set_type(unsigned int irq, unsigned int flow_type) | ||
114 | { | ||
115 | unsigned int irq_nr = irq - TXX9_IRQ_BASE; | ||
116 | u32 cr; | ||
117 | u32 __iomem *crp; | ||
118 | int ofs; | ||
119 | int mode; | ||
120 | |||
121 | if (flow_type & IRQF_TRIGGER_PROBE) | ||
122 | return 0; | ||
123 | switch (flow_type & IRQF_TRIGGER_MASK) { | ||
124 | case IRQF_TRIGGER_RISING: mode = TXx9_IRCR_UP; break; | ||
125 | case IRQF_TRIGGER_FALLING: mode = TXx9_IRCR_DOWN; break; | ||
126 | case IRQF_TRIGGER_HIGH: mode = TXx9_IRCR_HIGH; break; | ||
127 | case IRQF_TRIGGER_LOW: mode = TXx9_IRCR_LOW; break; | ||
128 | default: | ||
129 | return -EINVAL; | ||
130 | } | ||
131 | crp = &txx9_ircptr->cr[(unsigned int)irq_nr / 8]; | ||
132 | cr = __raw_readl(crp); | ||
133 | ofs = (irq_nr & (8 - 1)) * 2; | ||
134 | cr &= ~(0x3 << ofs); | ||
135 | cr |= (mode & 0x3) << ofs; | ||
136 | __raw_writel(cr, crp); | ||
137 | txx9irq[irq_nr].mode = mode; | ||
138 | return 0; | ||
139 | } | ||
140 | |||
141 | static struct irq_chip txx9_irq_chip = { | ||
142 | .name = "TXX9", | ||
143 | .ack = txx9_irq_mask_ack, | ||
144 | .mask = txx9_irq_mask, | ||
145 | .mask_ack = txx9_irq_mask_ack, | ||
146 | .unmask = txx9_irq_unmask, | ||
147 | .set_type = txx9_irq_set_type, | ||
148 | }; | ||
149 | |||
150 | void __init txx9_irq_init(unsigned long baseaddr) | ||
151 | { | ||
152 | int i; | ||
153 | |||
154 | txx9_ircptr = ioremap(baseaddr, sizeof(struct txx9_irc_reg)); | ||
155 | for (i = 0; i < TXx9_MAX_IR; i++) { | ||
156 | txx9irq[i].level = 4; /* middle level */ | ||
157 | txx9irq[i].mode = TXx9_IRCR_LOW; | ||
158 | set_irq_chip_and_handler(TXX9_IRQ_BASE + i, | ||
159 | &txx9_irq_chip, handle_level_irq); | ||
160 | } | ||
161 | |||
162 | /* mask all IRC interrupts */ | ||
163 | __raw_writel(0, &txx9_ircptr->imr); | ||
164 | for (i = 0; i < 8; i++) | ||
165 | __raw_writel(0, &txx9_ircptr->ilr[i]); | ||
166 | /* setup IRC interrupt mode (Low Active) */ | ||
167 | for (i = 0; i < 2; i++) | ||
168 | __raw_writel(0, &txx9_ircptr->cr[i]); | ||
169 | /* enable interrupt control */ | ||
170 | __raw_writel(TXx9_IRCER_ICE, &txx9_ircptr->cer); | ||
171 | __raw_writel(irc_elevel, &txx9_ircptr->imr); | ||
172 | } | ||
173 | |||
174 | int __init txx9_irq_set_pri(int irc_irq, int new_pri) | ||
175 | { | ||
176 | int old_pri; | ||
177 | |||
178 | if ((unsigned int)irc_irq >= TXx9_MAX_IR) | ||
179 | return 0; | ||
180 | old_pri = txx9irq[irc_irq].level; | ||
181 | txx9irq[irc_irq].level = new_pri; | ||
182 | return old_pri; | ||
183 | } | ||
184 | |||
185 | int txx9_irq(void) | ||
186 | { | ||
187 | u32 csr = __raw_readl(&txx9_ircptr->csr); | ||
188 | |||
189 | if (likely(!(csr & TXx9_IRCSR_IF))) | ||
190 | return TXX9_IRQ_BASE + (csr & (TXx9_MAX_IR - 1)); | ||
191 | return -1; | ||
192 | } | ||
diff --git a/arch/mips/kernel/machine_kexec.c b/arch/mips/kernel/machine_kexec.c index 22960d67cf07..85beb9b0b2d0 100644 --- a/arch/mips/kernel/machine_kexec.c +++ b/arch/mips/kernel/machine_kexec.c | |||
@@ -78,11 +78,8 @@ machine_kexec(struct kimage *image) | |||
78 | */ | 78 | */ |
79 | local_irq_disable(); | 79 | local_irq_disable(); |
80 | 80 | ||
81 | flush_icache_range(reboot_code_buffer, | ||
82 | reboot_code_buffer + KEXEC_CONTROL_CODE_SIZE); | ||
83 | |||
84 | printk("Will call new kernel at %08lx\n", image->start); | 81 | printk("Will call new kernel at %08lx\n", image->start); |
85 | printk("Bye ...\n"); | 82 | printk("Bye ...\n"); |
86 | flush_cache_all(); | 83 | __flush_cache_all(); |
87 | ((noretfun_t) reboot_code_buffer)(); | 84 | ((noretfun_t) reboot_code_buffer)(); |
88 | } | 85 | } |
diff --git a/arch/mips/kernel/mips-mt.c b/arch/mips/kernel/mips-mt.c index 7169a4db37b8..56750b02ab40 100644 --- a/arch/mips/kernel/mips-mt.c +++ b/arch/mips/kernel/mips-mt.c | |||
@@ -4,6 +4,7 @@ | |||
4 | */ | 4 | */ |
5 | 5 | ||
6 | #include <linux/device.h> | 6 | #include <linux/device.h> |
7 | #include <linux/kallsyms.h> | ||
7 | #include <linux/kernel.h> | 8 | #include <linux/kernel.h> |
8 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
9 | #include <linux/module.h> | 10 | #include <linux/module.h> |
@@ -84,8 +85,9 @@ void mips_mt_regdump(unsigned long mvpctl) | |||
84 | read_vpe_c0_vpeconf0()); | 85 | read_vpe_c0_vpeconf0()); |
85 | printk(" VPE%d.Status : %08lx\n", | 86 | printk(" VPE%d.Status : %08lx\n", |
86 | i, read_vpe_c0_status()); | 87 | i, read_vpe_c0_status()); |
87 | printk(" VPE%d.EPC : %08lx\n", | 88 | printk(" VPE%d.EPC : %08lx ", |
88 | i, read_vpe_c0_epc()); | 89 | i, read_vpe_c0_epc()); |
90 | print_symbol("%s\n", read_vpe_c0_epc()); | ||
89 | printk(" VPE%d.Cause : %08lx\n", | 91 | printk(" VPE%d.Cause : %08lx\n", |
90 | i, read_vpe_c0_cause()); | 92 | i, read_vpe_c0_cause()); |
91 | printk(" VPE%d.Config7 : %08lx\n", | 93 | printk(" VPE%d.Config7 : %08lx\n", |
@@ -110,7 +112,8 @@ void mips_mt_regdump(unsigned long mvpctl) | |||
110 | } | 112 | } |
111 | printk(" TCStatus : %08lx\n", tcstatval); | 113 | printk(" TCStatus : %08lx\n", tcstatval); |
112 | printk(" TCBind : %08lx\n", read_tc_c0_tcbind()); | 114 | printk(" TCBind : %08lx\n", read_tc_c0_tcbind()); |
113 | printk(" TCRestart : %08lx\n", read_tc_c0_tcrestart()); | 115 | printk(" TCRestart : %08lx ", read_tc_c0_tcrestart()); |
116 | print_symbol("%s\n", read_tc_c0_tcrestart()); | ||
114 | printk(" TCHalt : %08lx\n", haltval); | 117 | printk(" TCHalt : %08lx\n", haltval); |
115 | printk(" TCContext : %08lx\n", read_tc_c0_tccontext()); | 118 | printk(" TCContext : %08lx\n", read_tc_c0_tccontext()); |
116 | if (!haltval) | 119 | if (!haltval) |
diff --git a/arch/mips/kernel/smp-mt.c b/arch/mips/kernel/smp-mt.c index 19b30d6f1727..05dcce416325 100644 --- a/arch/mips/kernel/smp-mt.c +++ b/arch/mips/kernel/smp-mt.c | |||
@@ -287,7 +287,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus) | |||
287 | * (unsigned long)idle->thread_info the gp | 287 | * (unsigned long)idle->thread_info the gp |
288 | * assumes a 1:1 mapping of TC => VPE | 288 | * assumes a 1:1 mapping of TC => VPE |
289 | */ | 289 | */ |
290 | void prom_boot_secondary(int cpu, struct task_struct *idle) | 290 | void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle) |
291 | { | 291 | { |
292 | struct thread_info *gp = task_thread_info(idle); | 292 | struct thread_info *gp = task_thread_info(idle); |
293 | dvpe(); | 293 | dvpe(); |
@@ -321,7 +321,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle) | |||
321 | evpe(EVPE_ENABLE); | 321 | evpe(EVPE_ENABLE); |
322 | } | 322 | } |
323 | 323 | ||
324 | void prom_init_secondary(void) | 324 | void __cpuinit prom_init_secondary(void) |
325 | { | 325 | { |
326 | /* Enable per-cpu interrupts */ | 326 | /* Enable per-cpu interrupts */ |
327 | 327 | ||
@@ -330,7 +330,7 @@ void prom_init_secondary(void) | |||
330 | (STATUSF_IP0 | STATUSF_IP1 | STATUSF_IP6 | STATUSF_IP7)); | 330 | (STATUSF_IP0 | STATUSF_IP1 | STATUSF_IP6 | STATUSF_IP7)); |
331 | } | 331 | } |
332 | 332 | ||
333 | void prom_smp_finish(void) | 333 | void __cpuinit prom_smp_finish(void) |
334 | { | 334 | { |
335 | write_c0_compare(read_c0_count() + (8* mips_hpt_frequency/HZ)); | 335 | write_c0_compare(read_c0_count() + (8* mips_hpt_frequency/HZ)); |
336 | 336 | ||
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c index 16aa5d37117c..43826c16101d 100644 --- a/arch/mips/kernel/smtc.c +++ b/arch/mips/kernel/smtc.c | |||
@@ -28,8 +28,6 @@ | |||
28 | * This file should be built into the kernel only if CONFIG_MIPS_MT_SMTC is set. | 28 | * This file should be built into the kernel only if CONFIG_MIPS_MT_SMTC is set. |
29 | */ | 29 | */ |
30 | 30 | ||
31 | #define MIPS_CPU_IPI_IRQ 1 | ||
32 | |||
33 | #define LOCK_MT_PRA() \ | 31 | #define LOCK_MT_PRA() \ |
34 | local_irq_save(flags); \ | 32 | local_irq_save(flags); \ |
35 | mtflags = dmt() | 33 | mtflags = dmt() |
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index c8e291c83057..6379003f9d8d 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -606,6 +606,8 @@ asmlinkage void do_ov(struct pt_regs *regs) | |||
606 | */ | 606 | */ |
607 | asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31) | 607 | asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31) |
608 | { | 608 | { |
609 | siginfo_t info; | ||
610 | |||
609 | die_if_kernel("FP exception in kernel code", regs); | 611 | die_if_kernel("FP exception in kernel code", regs); |
610 | 612 | ||
611 | if (fcr31 & FPU_CSR_UNI_X) { | 613 | if (fcr31 & FPU_CSR_UNI_X) { |
@@ -641,9 +643,22 @@ asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31) | |||
641 | force_sig(sig, current); | 643 | force_sig(sig, current); |
642 | 644 | ||
643 | return; | 645 | return; |
644 | } | 646 | } else if (fcr31 & FPU_CSR_INV_X) |
645 | 647 | info.si_code = FPE_FLTINV; | |
646 | force_sig(SIGFPE, current); | 648 | else if (fcr31 & FPU_CSR_DIV_X) |
649 | info.si_code = FPE_FLTDIV; | ||
650 | else if (fcr31 & FPU_CSR_OVF_X) | ||
651 | info.si_code = FPE_FLTOVF; | ||
652 | else if (fcr31 & FPU_CSR_UDF_X) | ||
653 | info.si_code = FPE_FLTUND; | ||
654 | else if (fcr31 & FPU_CSR_INE_X) | ||
655 | info.si_code = FPE_FLTRES; | ||
656 | else | ||
657 | info.si_code = __SI_FAULT; | ||
658 | info.si_signo = SIGFPE; | ||
659 | info.si_errno = 0; | ||
660 | info.si_addr = (void __user *) regs->cp0_epc; | ||
661 | force_sig_info(SIGFPE, &info, current); | ||
647 | } | 662 | } |
648 | 663 | ||
649 | asmlinkage void do_bp(struct pt_regs *regs) | 664 | asmlinkage void do_bp(struct pt_regs *regs) |
@@ -1035,19 +1050,11 @@ void ejtag_exception_handler(struct pt_regs *regs) | |||
1035 | /* | 1050 | /* |
1036 | * NMI exception handler. | 1051 | * NMI exception handler. |
1037 | */ | 1052 | */ |
1038 | void nmi_exception_handler(struct pt_regs *regs) | 1053 | NORET_TYPE void ATTRIB_NORET nmi_exception_handler(struct pt_regs *regs) |
1039 | { | 1054 | { |
1040 | #ifdef CONFIG_MIPS_MT_SMTC | ||
1041 | unsigned long dvpret = dvpe(); | ||
1042 | bust_spinlocks(1); | ||
1043 | printk("NMI taken!!!!\n"); | ||
1044 | mips_mt_regdump(dvpret); | ||
1045 | #else | ||
1046 | bust_spinlocks(1); | 1055 | bust_spinlocks(1); |
1047 | printk("NMI taken!!!!\n"); | 1056 | printk("NMI taken!!!!\n"); |
1048 | #endif /* CONFIG_MIPS_MT_SMTC */ | ||
1049 | die("NMI", regs); | 1057 | die("NMI", regs); |
1050 | while(1) ; | ||
1051 | } | 1058 | } |
1052 | 1059 | ||
1053 | #define VECTORSPACING 0x100 /* for EI/VI mode */ | 1060 | #define VECTORSPACING 0x100 /* for EI/VI mode */ |
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S index bc9bae2a73f4..60bbaecde187 100644 --- a/arch/mips/kernel/vmlinux.lds.S +++ b/arch/mips/kernel/vmlinux.lds.S | |||
@@ -142,15 +142,16 @@ SECTIONS | |||
142 | *(.exitcall.exit) | 142 | *(.exitcall.exit) |
143 | 143 | ||
144 | /* ABI crap starts here */ | 144 | /* ABI crap starts here */ |
145 | *(.comment) | ||
146 | *(.MIPS.options) | 145 | *(.MIPS.options) |
147 | *(.note) | ||
148 | *(.options) | 146 | *(.options) |
149 | *(.pdr) | 147 | *(.pdr) |
150 | *(.reginfo) | 148 | *(.reginfo) |
151 | *(.mdebug*) | ||
152 | } | 149 | } |
153 | 150 | ||
151 | /* These mark the ABI of the kernel for debuggers. */ | ||
152 | .mdebug.abi32 : { KEEP(*(.mdebug.abi32)) } | ||
153 | .mdebug.abi64 : { KEEP(*(.mdebug.abi64)) } | ||
154 | |||
154 | /* This is the MIPS specific mdebug section. */ | 155 | /* This is the MIPS specific mdebug section. */ |
155 | .mdebug : { *(.mdebug) } | 156 | .mdebug : { *(.mdebug) } |
156 | 157 | ||
diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile index 91ed1eb33102..8810dfb915dd 100644 --- a/arch/mips/lib/Makefile +++ b/arch/mips/lib/Makefile | |||
@@ -28,4 +28,4 @@ obj-$(CONFIG_CPU_TX49XX) += dump_tlb.o | |||
28 | obj-$(CONFIG_CPU_VR41XX) += dump_tlb.o | 28 | obj-$(CONFIG_CPU_VR41XX) += dump_tlb.o |
29 | 29 | ||
30 | # libgcc-style stuff needed in the kernel | 30 | # libgcc-style stuff needed in the kernel |
31 | obj-y += ashldi3.o ashrdi3.o lshrdi3.o ucmpdi2.o | 31 | obj-y += ashldi3.o ashrdi3.o cmpdi2.o lshrdi3.o ucmpdi2.o |
diff --git a/arch/mips/lib/cmpdi2.c b/arch/mips/lib/cmpdi2.c new file mode 100644 index 000000000000..8c1306437ed1 --- /dev/null +++ b/arch/mips/lib/cmpdi2.c | |||
@@ -0,0 +1,27 @@ | |||
1 | #include <linux/module.h> | ||
2 | |||
3 | #include "libgcc.h" | ||
4 | |||
5 | word_type __cmpdi2(long long a, long long b) | ||
6 | { | ||
7 | const DWunion au = { | ||
8 | .ll = a | ||
9 | }; | ||
10 | const DWunion bu = { | ||
11 | .ll = b | ||
12 | }; | ||
13 | |||
14 | if (au.s.high < bu.s.high) | ||
15 | return 0; | ||
16 | else if (au.s.high > bu.s.high) | ||
17 | return 2; | ||
18 | |||
19 | if ((unsigned int) au.s.low < (unsigned int) bu.s.low) | ||
20 | return 0; | ||
21 | else if ((unsigned int) au.s.low > (unsigned int) bu.s.low) | ||
22 | return 2; | ||
23 | |||
24 | return 1; | ||
25 | } | ||
26 | |||
27 | EXPORT_SYMBOL(__cmpdi2); | ||
diff --git a/arch/mips/mips-boards/malta/malta_smtc.c b/arch/mips/mips-boards/malta/malta_smtc.c index 0fb4c269901c..ae05d058cb37 100644 --- a/arch/mips/mips-boards/malta/malta_smtc.c +++ b/arch/mips/mips-boards/malta/malta_smtc.c | |||
@@ -1,6 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Malta Platform-specific hooks for SMP operation | 2 | * Malta Platform-specific hooks for SMP operation |
3 | */ | 3 | */ |
4 | #include <linux/irq.h> | ||
4 | #include <linux/init.h> | 5 | #include <linux/init.h> |
5 | 6 | ||
6 | #include <asm/mipsregs.h> | 7 | #include <asm/mipsregs.h> |
@@ -24,7 +25,7 @@ void core_send_ipi(int cpu, unsigned int action) | |||
24 | * Platform "CPU" startup hook | 25 | * Platform "CPU" startup hook |
25 | */ | 26 | */ |
26 | 27 | ||
27 | void prom_boot_secondary(int cpu, struct task_struct *idle) | 28 | void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle) |
28 | { | 29 | { |
29 | smtc_boot_secondary(cpu, idle); | 30 | smtc_boot_secondary(cpu, idle); |
30 | } | 31 | } |
@@ -33,7 +34,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle) | |||
33 | * Post-config but pre-boot cleanup entry point | 34 | * Post-config but pre-boot cleanup entry point |
34 | */ | 35 | */ |
35 | 36 | ||
36 | void prom_init_secondary(void) | 37 | void __cpuinit prom_init_secondary(void) |
37 | { | 38 | { |
38 | void smtc_init_secondary(void); | 39 | void smtc_init_secondary(void); |
39 | int myvpe; | 40 | int myvpe; |
@@ -42,10 +43,11 @@ void prom_init_secondary(void) | |||
42 | myvpe = read_c0_tcbind() & TCBIND_CURVPE; | 43 | myvpe = read_c0_tcbind() & TCBIND_CURVPE; |
43 | if (myvpe != 0) { | 44 | if (myvpe != 0) { |
44 | /* Ideally, this should be done only once per VPE, but... */ | 45 | /* Ideally, this should be done only once per VPE, but... */ |
45 | clear_c0_status(STATUSF_IP2); | 46 | clear_c0_status(ST0_IM); |
46 | set_c0_status(STATUSF_IP0 | STATUSF_IP1 | STATUSF_IP3 | 47 | set_c0_status((0x100 << cp0_compare_irq) |
47 | | STATUSF_IP4 | STATUSF_IP5 | STATUSF_IP6 | 48 | | (0x100 << MIPS_CPU_IPI_IRQ)); |
48 | | STATUSF_IP7); | 49 | if (cp0_perfcount_irq >= 0) |
50 | set_c0_status(0x100 << cp0_perfcount_irq); | ||
49 | } | 51 | } |
50 | 52 | ||
51 | smtc_init_secondary(); | 53 | smtc_init_secondary(); |
@@ -74,7 +76,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus) | |||
74 | * SMP initialization finalization entry point | 76 | * SMP initialization finalization entry point |
75 | */ | 77 | */ |
76 | 78 | ||
77 | void prom_smp_finish(void) | 79 | void __cpuinit prom_smp_finish(void) |
78 | { | 80 | { |
79 | smtc_smp_finish(); | 81 | smtc_smp_finish(); |
80 | } | 82 | } |
diff --git a/arch/mips/mips-boards/sim/sim_int.c b/arch/mips/mips-boards/sim/sim_int.c deleted file mode 100644 index 766e0159ee5b..000000000000 --- a/arch/mips/mips-boards/sim/sim_int.c +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1999, 2005 MIPS Technologies, Inc. All rights reserved. | ||
3 | * | ||
4 | * This program is free software; you can distribute it and/or modify it | ||
5 | * under the terms of the GNU General Public License (Version 2) as | ||
6 | * published by the Free Software Foundation. | ||
7 | * | ||
8 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
11 | * for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License along | ||
14 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
15 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
16 | * | ||
17 | */ | ||
18 | #include <linux/init.h> | ||
19 | #include <linux/sched.h> | ||
20 | #include <linux/slab.h> | ||
21 | #include <linux/interrupt.h> | ||
22 | #include <linux/kernel_stat.h> | ||
23 | #include <asm/mips-boards/simint.h> | ||
24 | #include <asm/irq_cpu.h> | ||
25 | |||
26 | static inline int clz(unsigned long x) | ||
27 | { | ||
28 | __asm__ ( | ||
29 | " .set push \n" | ||
30 | " .set mips32 \n" | ||
31 | " clz %0, %1 \n" | ||
32 | " .set pop \n" | ||
33 | : "=r" (x) | ||
34 | : "r" (x)); | ||
35 | |||
36 | return x; | ||
37 | } | ||
38 | |||
39 | /* | ||
40 | * Version of ffs that only looks at bits 12..15. | ||
41 | */ | ||
42 | static inline unsigned int irq_ffs(unsigned int pending) | ||
43 | { | ||
44 | #if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64) | ||
45 | return -clz(pending) + 31 - CAUSEB_IP; | ||
46 | #else | ||
47 | unsigned int a0 = 7; | ||
48 | unsigned int t0; | ||
49 | |||
50 | t0 = s0 & 0xf000; | ||
51 | t0 = t0 < 1; | ||
52 | t0 = t0 << 2; | ||
53 | a0 = a0 - t0; | ||
54 | s0 = s0 << t0; | ||
55 | |||
56 | t0 = s0 & 0xc000; | ||
57 | t0 = t0 < 1; | ||
58 | t0 = t0 << 1; | ||
59 | a0 = a0 - t0; | ||
60 | s0 = s0 << t0; | ||
61 | |||
62 | t0 = s0 & 0x8000; | ||
63 | t0 = t0 < 1; | ||
64 | //t0 = t0 << 2; | ||
65 | a0 = a0 - t0; | ||
66 | //s0 = s0 << t0; | ||
67 | |||
68 | return a0; | ||
69 | #endif | ||
70 | } | ||
71 | |||
72 | asmlinkage void plat_irq_dispatch(void) | ||
73 | { | ||
74 | unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM; | ||
75 | int irq; | ||
76 | |||
77 | irq = irq_ffs(pending); | ||
78 | |||
79 | if (irq > 0) | ||
80 | do_IRQ(MIPS_CPU_IRQ_BASE + irq); | ||
81 | else | ||
82 | spurious_interrupt(); | ||
83 | } | ||
84 | |||
85 | void __init arch_init_irq(void) | ||
86 | { | ||
87 | mips_cpu_irq_init(); | ||
88 | } | ||
diff --git a/arch/mips/mipssim/sim_smp.c b/arch/mips/mipssim/sim_smp.c index 38fa807b99f9..ccbbccac23ef 100644 --- a/arch/mips/mipssim/sim_smp.c +++ b/arch/mips/mipssim/sim_smp.c | |||
@@ -53,7 +53,7 @@ void core_send_ipi(int cpu, unsigned int action) | |||
53 | * Platform "CPU" startup hook | 53 | * Platform "CPU" startup hook |
54 | */ | 54 | */ |
55 | 55 | ||
56 | void prom_boot_secondary(int cpu, struct task_struct *idle) | 56 | void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle) |
57 | { | 57 | { |
58 | #ifdef CONFIG_MIPS_MT_SMTC | 58 | #ifdef CONFIG_MIPS_MT_SMTC |
59 | smtc_boot_secondary(cpu, idle); | 59 | smtc_boot_secondary(cpu, idle); |
@@ -64,7 +64,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle) | |||
64 | * Post-config but pre-boot cleanup entry point | 64 | * Post-config but pre-boot cleanup entry point |
65 | */ | 65 | */ |
66 | 66 | ||
67 | void prom_init_secondary(void) | 67 | void __cpuinit prom_init_secondary(void) |
68 | { | 68 | { |
69 | #ifdef CONFIG_MIPS_MT_SMTC | 69 | #ifdef CONFIG_MIPS_MT_SMTC |
70 | void smtc_init_secondary(void); | 70 | void smtc_init_secondary(void); |
@@ -103,7 +103,7 @@ void plat_prepare_cpus(unsigned int max_cpus) | |||
103 | * SMP initialization finalization entry point | 103 | * SMP initialization finalization entry point |
104 | */ | 104 | */ |
105 | 105 | ||
106 | void prom_smp_finish(void) | 106 | void __cpuinit prom_smp_finish(void) |
107 | { | 107 | { |
108 | #ifdef CONFIG_MIPS_MT_SMTC | 108 | #ifdef CONFIG_MIPS_MT_SMTC |
109 | smtc_smp_finish(); | 109 | smtc_smp_finish(); |
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index b8cb0dde3af0..09d91505b90c 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/proc_fs.h> | 26 | #include <linux/proc_fs.h> |
27 | #include <linux/pfn.h> | 27 | #include <linux/pfn.h> |
28 | 28 | ||
29 | #include <asm/asm-offsets.h> | ||
29 | #include <asm/bootinfo.h> | 30 | #include <asm/bootinfo.h> |
30 | #include <asm/cachectl.h> | 31 | #include <asm/cachectl.h> |
31 | #include <asm/cpu.h> | 32 | #include <asm/cpu.h> |
@@ -498,7 +499,13 @@ unsigned long pgd_current[NR_CPUS]; | |||
498 | * different layout ... | 499 | * different layout ... |
499 | */ | 500 | */ |
500 | #define __page_aligned(order) __attribute__((__aligned__(PAGE_SIZE<<order))) | 501 | #define __page_aligned(order) __attribute__((__aligned__(PAGE_SIZE<<order))) |
501 | pgd_t swapper_pg_dir[PTRS_PER_PGD] __page_aligned(PGD_ORDER); | 502 | |
503 | /* | ||
504 | * gcc 3.3 and older have trouble determining that PTRS_PER_PGD and PGD_ORDER | ||
505 | * are constants. So we use the variants from asm-offset.h until that gcc | ||
506 | * will officially be retired. | ||
507 | */ | ||
508 | pgd_t swapper_pg_dir[_PTRS_PER_PGD] __page_aligned(_PGD_ORDER); | ||
502 | #ifdef CONFIG_64BIT | 509 | #ifdef CONFIG_64BIT |
503 | #ifdef MODULE_START | 510 | #ifdef MODULE_START |
504 | pgd_t module_pg_dir[PTRS_PER_PGD] __page_aligned(PGD_ORDER); | 511 | pgd_t module_pg_dir[PTRS_PER_PGD] __page_aligned(PGD_ORDER); |
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c index 99d8f4fd3ff4..6c5c684d1422 100644 --- a/arch/mips/pci/pci.c +++ b/arch/mips/pci/pci.c | |||
@@ -75,7 +75,7 @@ pcibios_align_resource(void *data, struct resource *res, | |||
75 | res->start = start; | 75 | res->start = start; |
76 | } | 76 | } |
77 | 77 | ||
78 | void __init register_pci_controller(struct pci_controller *hose) | 78 | void __devinit register_pci_controller(struct pci_controller *hose) |
79 | { | 79 | { |
80 | if (request_resource(&iomem_resource, hose->mem_resource) < 0) | 80 | if (request_resource(&iomem_resource, hose->mem_resource) < 0) |
81 | goto out; | 81 | goto out; |
@@ -230,7 +230,7 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) | |||
230 | return pcibios_plat_dev_init(dev); | 230 | return pcibios_plat_dev_init(dev); |
231 | } | 231 | } |
232 | 232 | ||
233 | static void __devinit pcibios_fixup_device_resources(struct pci_dev *dev, | 233 | static void pcibios_fixup_device_resources(struct pci_dev *dev, |
234 | struct pci_bus *bus) | 234 | struct pci_bus *bus) |
235 | { | 235 | { |
236 | /* Update device resources. */ | 236 | /* Update device resources. */ |
@@ -251,7 +251,7 @@ static void __devinit pcibios_fixup_device_resources(struct pci_dev *dev, | |||
251 | } | 251 | } |
252 | } | 252 | } |
253 | 253 | ||
254 | void __devinit pcibios_fixup_bus(struct pci_bus *bus) | 254 | void pcibios_fixup_bus(struct pci_bus *bus) |
255 | { | 255 | { |
256 | /* Propagate hose info into the subordinate devices. */ | 256 | /* Propagate hose info into the subordinate devices. */ |
257 | 257 | ||
@@ -282,8 +282,7 @@ pcibios_update_irq(struct pci_dev *dev, int irq) | |||
282 | pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq); | 282 | pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq); |
283 | } | 283 | } |
284 | 284 | ||
285 | void __devinit | 285 | void pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, |
286 | pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, | ||
287 | struct resource *res) | 286 | struct resource *res) |
288 | { | 287 | { |
289 | struct pci_controller *hose = (struct pci_controller *)dev->sysdata; | 288 | struct pci_controller *hose = (struct pci_controller *)dev->sysdata; |
diff --git a/arch/mips/philips/pnx8550/common/Kconfig b/arch/mips/philips/pnx8550/common/Kconfig deleted file mode 100644 index 072572d173cc..000000000000 --- a/arch/mips/philips/pnx8550/common/Kconfig +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | # Place holder | ||
diff --git a/arch/mips/pmc-sierra/yosemite/smp.c b/arch/mips/pmc-sierra/yosemite/smp.c index 1c852d6a7654..b0f12cd2968a 100644 --- a/arch/mips/pmc-sierra/yosemite/smp.c +++ b/arch/mips/pmc-sierra/yosemite/smp.c | |||
@@ -77,7 +77,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus) | |||
77 | * stack so the first thing we do is throw away that stuff and load useful | 77 | * stack so the first thing we do is throw away that stuff and load useful |
78 | * values into the registers ... | 78 | * values into the registers ... |
79 | */ | 79 | */ |
80 | void __init prom_boot_secondary(int cpu, struct task_struct *idle) | 80 | void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle) |
81 | { | 81 | { |
82 | unsigned long gp = (unsigned long) task_thread_info(idle); | 82 | unsigned long gp = (unsigned long) task_thread_info(idle); |
83 | unsigned long sp = __KSTK_TOS(idle); | 83 | unsigned long sp = __KSTK_TOS(idle); |
@@ -97,12 +97,12 @@ void prom_cpus_done(void) | |||
97 | * After we've done initial boot, this function is called to allow the | 97 | * After we've done initial boot, this function is called to allow the |
98 | * board code to clean up state, if needed | 98 | * board code to clean up state, if needed |
99 | */ | 99 | */ |
100 | void prom_init_secondary(void) | 100 | void __cpuinit prom_init_secondary(void) |
101 | { | 101 | { |
102 | set_c0_status(ST0_CO | ST0_IE | ST0_IM); | 102 | set_c0_status(ST0_CO | ST0_IE | ST0_IM); |
103 | } | 103 | } |
104 | 104 | ||
105 | void prom_smp_finish(void) | 105 | void __cpuinit prom_smp_finish(void) |
106 | { | 106 | { |
107 | } | 107 | } |
108 | 108 | ||
diff --git a/arch/mips/qemu/q-smp.c b/arch/mips/qemu/q-smp.c index 786bbfa214d1..4b0178d0df0b 100644 --- a/arch/mips/qemu/q-smp.c +++ b/arch/mips/qemu/q-smp.c | |||
@@ -22,11 +22,11 @@ void core_send_ipi(int cpu, unsigned int action) | |||
22 | * After we've done initial boot, this function is called to allow the | 22 | * After we've done initial boot, this function is called to allow the |
23 | * board code to clean up state, if needed | 23 | * board code to clean up state, if needed |
24 | */ | 24 | */ |
25 | void prom_init_secondary(void) | 25 | void __cpuinit prom_init_secondary(void) |
26 | { | 26 | { |
27 | } | 27 | } |
28 | 28 | ||
29 | void prom_smp_finish(void) | 29 | void __cpuinit prom_smp_finish(void) |
30 | { | 30 | { |
31 | } | 31 | } |
32 | 32 | ||
@@ -43,7 +43,7 @@ void __init prom_prepare_cpus(unsigned int max_cpus) | |||
43 | /* | 43 | /* |
44 | * Firmware CPU startup hook | 44 | * Firmware CPU startup hook |
45 | */ | 45 | */ |
46 | void prom_boot_secondary(int cpu, struct task_struct *idle) | 46 | void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle) |
47 | { | 47 | { |
48 | } | 48 | } |
49 | 49 | ||
diff --git a/arch/mips/sgi-ip22/ip22-mc.c b/arch/mips/sgi-ip22/ip22-mc.c index ddb6506d8341..01a805dcc67c 100644 --- a/arch/mips/sgi-ip22/ip22-mc.c +++ b/arch/mips/sgi-ip22/ip22-mc.c | |||
@@ -47,7 +47,7 @@ struct mem { | |||
47 | /* | 47 | /* |
48 | * Detect installed memory, do some sanity checks and notify kernel about it | 48 | * Detect installed memory, do some sanity checks and notify kernel about it |
49 | */ | 49 | */ |
50 | static void probe_memory(void) | 50 | static void __init probe_memory(void) |
51 | { | 51 | { |
52 | int i, j, found, cnt = 0; | 52 | int i, j, found, cnt = 0; |
53 | struct mem bank[4]; | 53 | struct mem bank[4]; |
diff --git a/arch/mips/sgi-ip22/ip22-setup.c b/arch/mips/sgi-ip22/ip22-setup.c index 25097ecc9baa..e7ce7982db72 100644 --- a/arch/mips/sgi-ip22/ip22-setup.c +++ b/arch/mips/sgi-ip22/ip22-setup.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <asm/sgi/ip22.h> | 29 | #include <asm/sgi/ip22.h> |
30 | 30 | ||
31 | unsigned long sgi_gfxaddr; | 31 | unsigned long sgi_gfxaddr; |
32 | EXPORT_SYMBOL_GPL(sgi_gfxaddr); | ||
32 | 33 | ||
33 | /* | 34 | /* |
34 | * Stop-A is originally a Sun thing that isn't standard on IP22 so to avoid | 35 | * Stop-A is originally a Sun thing that isn't standard on IP22 so to avoid |
diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c index ba8e0794630c..856649cf9f1e 100644 --- a/arch/mips/sgi-ip27/ip27-irq.c +++ b/arch/mips/sgi-ip27/ip27-irq.c | |||
@@ -207,11 +207,9 @@ static int intr_connect_level(int cpu, int bit) | |||
207 | { | 207 | { |
208 | nasid_t nasid = COMPACT_TO_NASID_NODEID(cpu_to_node(cpu)); | 208 | nasid_t nasid = COMPACT_TO_NASID_NODEID(cpu_to_node(cpu)); |
209 | struct slice_data *si = cpu_data[cpu].data; | 209 | struct slice_data *si = cpu_data[cpu].data; |
210 | unsigned long flags; | ||
211 | 210 | ||
212 | set_bit(bit, si->irq_enable_mask); | 211 | set_bit(bit, si->irq_enable_mask); |
213 | 212 | ||
214 | local_irq_save(flags); | ||
215 | if (!cputoslice(cpu)) { | 213 | if (!cputoslice(cpu)) { |
216 | REMOTE_HUB_S(nasid, PI_INT_MASK0_A, si->irq_enable_mask[0]); | 214 | REMOTE_HUB_S(nasid, PI_INT_MASK0_A, si->irq_enable_mask[0]); |
217 | REMOTE_HUB_S(nasid, PI_INT_MASK1_A, si->irq_enable_mask[1]); | 215 | REMOTE_HUB_S(nasid, PI_INT_MASK1_A, si->irq_enable_mask[1]); |
@@ -219,7 +217,6 @@ static int intr_connect_level(int cpu, int bit) | |||
219 | REMOTE_HUB_S(nasid, PI_INT_MASK0_B, si->irq_enable_mask[0]); | 217 | REMOTE_HUB_S(nasid, PI_INT_MASK0_B, si->irq_enable_mask[0]); |
220 | REMOTE_HUB_S(nasid, PI_INT_MASK1_B, si->irq_enable_mask[1]); | 218 | REMOTE_HUB_S(nasid, PI_INT_MASK1_B, si->irq_enable_mask[1]); |
221 | } | 219 | } |
222 | local_irq_restore(flags); | ||
223 | 220 | ||
224 | return 0; | 221 | return 0; |
225 | } | 222 | } |
@@ -285,6 +282,8 @@ static unsigned int startup_bridge_irq(unsigned int irq) | |||
285 | 282 | ||
286 | bridge->b_wid_tflush; | 283 | bridge->b_wid_tflush; |
287 | 284 | ||
285 | intr_connect_level(cpu, swlevel); | ||
286 | |||
288 | return 0; /* Never anything pending. */ | 287 | return 0; /* Never anything pending. */ |
289 | } | 288 | } |
290 | 289 | ||
@@ -292,7 +291,6 @@ static unsigned int startup_bridge_irq(unsigned int irq) | |||
292 | static void shutdown_bridge_irq(unsigned int irq) | 291 | static void shutdown_bridge_irq(unsigned int irq) |
293 | { | 292 | { |
294 | struct bridge_controller *bc = IRQ_TO_BRIDGE(irq); | 293 | struct bridge_controller *bc = IRQ_TO_BRIDGE(irq); |
295 | struct hub_data *hub = hub_data(cpu_to_node(bc->irq_cpu)); | ||
296 | bridge_t *bridge = bc->base; | 294 | bridge_t *bridge = bc->base; |
297 | int pin, swlevel; | 295 | int pin, swlevel; |
298 | cpuid_t cpu; | 296 | cpuid_t cpu; |
@@ -307,8 +305,6 @@ static void shutdown_bridge_irq(unsigned int irq) | |||
307 | swlevel = find_level(&cpu, irq); | 305 | swlevel = find_level(&cpu, irq); |
308 | intr_disconnect_level(cpu, swlevel); | 306 | intr_disconnect_level(cpu, swlevel); |
309 | 307 | ||
310 | __clear_bit(swlevel, hub->irq_alloc_mask); | ||
311 | |||
312 | bridge->b_int_enable &= ~(1 << pin); | 308 | bridge->b_int_enable &= ~(1 << pin); |
313 | bridge->b_wid_tflush; | 309 | bridge->b_wid_tflush; |
314 | } | 310 | } |
diff --git a/arch/mips/sgi-ip27/ip27-smp.c b/arch/mips/sgi-ip27/ip27-smp.c index 08e79141b47c..fbb27728a76a 100644 --- a/arch/mips/sgi-ip27/ip27-smp.c +++ b/arch/mips/sgi-ip27/ip27-smp.c | |||
@@ -171,7 +171,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus) | |||
171 | * set sp to the kernel stack of the newly created idle process, gp to the proc | 171 | * set sp to the kernel stack of the newly created idle process, gp to the proc |
172 | * struct so that current_thread_info() will work. | 172 | * struct so that current_thread_info() will work. |
173 | */ | 173 | */ |
174 | void __init prom_boot_secondary(int cpu, struct task_struct *idle) | 174 | void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle) |
175 | { | 175 | { |
176 | unsigned long gp = (unsigned long)task_thread_info(idle); | 176 | unsigned long gp = (unsigned long)task_thread_info(idle); |
177 | unsigned long sp = __KSTK_TOS(idle); | 177 | unsigned long sp = __KSTK_TOS(idle); |
@@ -191,7 +191,7 @@ void __init prom_cpus_done(void) | |||
191 | { | 191 | { |
192 | } | 192 | } |
193 | 193 | ||
194 | void prom_smp_finish(void) | 194 | void __cpuinit prom_smp_finish(void) |
195 | { | 195 | { |
196 | } | 196 | } |
197 | 197 | ||
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c index ba0c4b776c85..79ae6ef979bb 100644 --- a/arch/mips/sibyte/bcm1480/irq.c +++ b/arch/mips/sibyte/bcm1480/irq.c | |||
@@ -76,7 +76,7 @@ __setup("nokgdb", nokgdb); | |||
76 | 76 | ||
77 | /* Default to UART1 */ | 77 | /* Default to UART1 */ |
78 | int kgdb_port = 1; | 78 | int kgdb_port = 1; |
79 | #ifdef CONFIG_SIBYTE_SB1250_DUART | 79 | #ifdef CONFIG_SERIAL_SB1250_DUART |
80 | extern char sb1250_duart_present[]; | 80 | extern char sb1250_duart_present[]; |
81 | #endif | 81 | #endif |
82 | #endif | 82 | #endif |
@@ -404,7 +404,7 @@ void __init arch_init_irq(void) | |||
404 | if (kgdb_flag) { | 404 | if (kgdb_flag) { |
405 | kgdb_irq = K_BCM1480_INT_UART_0 + kgdb_port; | 405 | kgdb_irq = K_BCM1480_INT_UART_0 + kgdb_port; |
406 | 406 | ||
407 | #ifdef CONFIG_SIBYTE_SB1250_DUART | 407 | #ifdef CONFIG_SERIAL_SB1250_DUART |
408 | sb1250_duart_present[kgdb_port] = 0; | 408 | sb1250_duart_present[kgdb_port] = 0; |
409 | #endif | 409 | #endif |
410 | /* Setup uart 1 settings, mapper */ | 410 | /* Setup uart 1 settings, mapper */ |
diff --git a/arch/mips/sibyte/cfe/console.c b/arch/mips/sibyte/cfe/console.c index c6ec748175b0..4cec9d798d2f 100644 --- a/arch/mips/sibyte/cfe/console.c +++ b/arch/mips/sibyte/cfe/console.c | |||
@@ -46,7 +46,7 @@ static int cfe_console_setup(struct console *cons, char *str) | |||
46 | /* XXXKW think about interaction with 'console=' cmdline arg */ | 46 | /* XXXKW think about interaction with 'console=' cmdline arg */ |
47 | /* If none of the console options are configured, the build will break. */ | 47 | /* If none of the console options are configured, the build will break. */ |
48 | if (cfe_getenv("BOOT_CONSOLE", consdev, 32) >= 0) { | 48 | if (cfe_getenv("BOOT_CONSOLE", consdev, 32) >= 0) { |
49 | #ifdef CONFIG_SIBYTE_SB1250_DUART | 49 | #ifdef CONFIG_SERIAL_SB1250_DUART |
50 | if (!strcmp(consdev, "uart0")) { | 50 | if (!strcmp(consdev, "uart0")) { |
51 | setleds("u0cn"); | 51 | setleds("u0cn"); |
52 | } else if (!strcmp(consdev, "uart1")) { | 52 | } else if (!strcmp(consdev, "uart1")) { |
diff --git a/arch/mips/sibyte/cfe/smp.c b/arch/mips/sibyte/cfe/smp.c index eab20e2db323..5de4cff9d14a 100644 --- a/arch/mips/sibyte/cfe/smp.c +++ b/arch/mips/sibyte/cfe/smp.c | |||
@@ -58,7 +58,7 @@ void __init plat_prepare_cpus(unsigned int max_cpus) | |||
58 | * Setup the PC, SP, and GP of a secondary processor and start it | 58 | * Setup the PC, SP, and GP of a secondary processor and start it |
59 | * running! | 59 | * running! |
60 | */ | 60 | */ |
61 | void prom_boot_secondary(int cpu, struct task_struct *idle) | 61 | void __cpuinit prom_boot_secondary(int cpu, struct task_struct *idle) |
62 | { | 62 | { |
63 | int retval; | 63 | int retval; |
64 | 64 | ||
@@ -72,7 +72,7 @@ void prom_boot_secondary(int cpu, struct task_struct *idle) | |||
72 | /* | 72 | /* |
73 | * Code to run on secondary just after probing the CPU | 73 | * Code to run on secondary just after probing the CPU |
74 | */ | 74 | */ |
75 | void prom_init_secondary(void) | 75 | void __cpuinit prom_init_secondary(void) |
76 | { | 76 | { |
77 | #if defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80) | 77 | #if defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80) |
78 | extern void bcm1480_smp_init(void); | 78 | extern void bcm1480_smp_init(void); |
@@ -89,7 +89,7 @@ void prom_init_secondary(void) | |||
89 | * Do any tidying up before marking online and running the idle | 89 | * Do any tidying up before marking online and running the idle |
90 | * loop | 90 | * loop |
91 | */ | 91 | */ |
92 | void prom_smp_finish(void) | 92 | void __cpuinit prom_smp_finish(void) |
93 | { | 93 | { |
94 | #if defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80) | 94 | #if defined(CONFIG_SIBYTE_BCM1x55) || defined(CONFIG_SIBYTE_BCM1x80) |
95 | extern void bcm1480_smp_finish(void); | 95 | extern void bcm1480_smp_finish(void); |
diff --git a/arch/mips/sibyte/sb1250/irq.c b/arch/mips/sibyte/sb1250/irq.c index 0e6a13c0bd0e..ad593a6c20be 100644 --- a/arch/mips/sibyte/sb1250/irq.c +++ b/arch/mips/sibyte/sb1250/irq.c | |||
@@ -61,7 +61,7 @@ static int kgdb_irq; | |||
61 | 61 | ||
62 | /* Default to UART1 */ | 62 | /* Default to UART1 */ |
63 | int kgdb_port = 1; | 63 | int kgdb_port = 1; |
64 | #ifdef CONFIG_SIBYTE_SB1250_DUART | 64 | #ifdef CONFIG_SERIAL_SB1250_DUART |
65 | extern char sb1250_duart_present[]; | 65 | extern char sb1250_duart_present[]; |
66 | #endif | 66 | #endif |
67 | #endif | 67 | #endif |
@@ -359,7 +359,7 @@ void __init arch_init_irq(void) | |||
359 | if (kgdb_flag) { | 359 | if (kgdb_flag) { |
360 | kgdb_irq = K_INT_UART_0 + kgdb_port; | 360 | kgdb_irq = K_INT_UART_0 + kgdb_port; |
361 | 361 | ||
362 | #ifdef CONFIG_SIBYTE_SB1250_DUART | 362 | #ifdef CONFIG_SERIAL_SB1250_DUART |
363 | sb1250_duart_present[kgdb_port] = 0; | 363 | sb1250_duart_present[kgdb_port] = 0; |
364 | #endif | 364 | #endif |
365 | /* Setup uart 1 settings, mapper */ | 365 | /* Setup uart 1 settings, mapper */ |
diff --git a/arch/mips/sni/pcimt_scache.c b/arch/mips/sni/pcimt_scache.c deleted file mode 100644 index a59d457fa8b1..000000000000 --- a/arch/mips/sni/pcimt_scache.c +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | /* | ||
2 | * arch/mips/sni/pcimt_scache.c | ||
3 | * | ||
4 | * This file is subject to the terms and conditions of the GNU General Public | ||
5 | * License. See the file "COPYING" in the main directory of this archive | ||
6 | * for more details. | ||
7 | * | ||
8 | * Copyright (c) 1997, 1998 by Ralf Baechle | ||
9 | */ | ||
10 | #include <linux/init.h> | ||
11 | #include <linux/kernel.h> | ||
12 | #include <asm/bcache.h> | ||
13 | #include <asm/sni.h> | ||
14 | |||
15 | #define cacheconf (*(volatile unsigned int *)PCIMT_CACHECONF) | ||
16 | #define invspace (*(volatile unsigned int *)PCIMT_INVSPACE) | ||
17 | |||
18 | void __init sni_pcimt_sc_init(void) | ||
19 | { | ||
20 | unsigned int scsiz, sc_size; | ||
21 | |||
22 | scsiz = cacheconf & 7; | ||
23 | if (scsiz == 0) { | ||
24 | printk("Second level cache is deactived.\n"); | ||
25 | return; | ||
26 | } | ||
27 | if (scsiz >= 6) { | ||
28 | printk("Invalid second level cache size configured, " | ||
29 | "deactivating second level cache.\n"); | ||
30 | cacheconf = 0; | ||
31 | return; | ||
32 | } | ||
33 | |||
34 | sc_size = 128 << scsiz; | ||
35 | printk("%dkb second level cache detected, deactivating.\n", sc_size); | ||
36 | cacheconf = 0; | ||
37 | } | ||
diff --git a/arch/mips/sni/reset.c b/arch/mips/sni/reset.c index 2eada8aea682..38b6a97a31b5 100644 --- a/arch/mips/sni/reset.c +++ b/arch/mips/sni/reset.c | |||
@@ -40,10 +40,6 @@ void sni_machine_restart(char *command) | |||
40 | } | 40 | } |
41 | } | 41 | } |
42 | 42 | ||
43 | void sni_machine_halt(void) | ||
44 | { | ||
45 | } | ||
46 | |||
47 | void sni_machine_power_off(void) | 43 | void sni_machine_power_off(void) |
48 | { | 44 | { |
49 | *(volatile unsigned char *)PCIMT_CSWCSM = 0xfd; | 45 | *(volatile unsigned char *)PCIMT_CSWCSM = 0xfd; |
diff --git a/arch/mips/sni/setup.c b/arch/mips/sni/setup.c index 4fedfbda0c79..6edbb3051c82 100644 --- a/arch/mips/sni/setup.c +++ b/arch/mips/sni/setup.c | |||
@@ -26,7 +26,6 @@ | |||
26 | unsigned int sni_brd_type; | 26 | unsigned int sni_brd_type; |
27 | 27 | ||
28 | extern void sni_machine_restart(char *command); | 28 | extern void sni_machine_restart(char *command); |
29 | extern void sni_machine_halt(void); | ||
30 | extern void sni_machine_power_off(void); | 29 | extern void sni_machine_power_off(void); |
31 | 30 | ||
32 | static void __init sni_display_setup(void) | 31 | static void __init sni_display_setup(void) |
@@ -87,7 +86,6 @@ void __init plat_mem_setup(void) | |||
87 | } | 86 | } |
88 | 87 | ||
89 | _machine_restart = sni_machine_restart; | 88 | _machine_restart = sni_machine_restart; |
90 | _machine_halt = sni_machine_halt; | ||
91 | pm_power_off = sni_machine_power_off; | 89 | pm_power_off = sni_machine_power_off; |
92 | 90 | ||
93 | sni_display_setup(); | 91 | sni_display_setup(); |
diff --git a/arch/mips/tx4927/common/Makefile b/arch/mips/tx4927/common/Makefile index 9cb9535ebacb..18375787e094 100644 --- a/arch/mips/tx4927/common/Makefile +++ b/arch/mips/tx4927/common/Makefile | |||
@@ -10,3 +10,5 @@ obj-y += tx4927_prom.o tx4927_setup.o tx4927_irq.o | |||
10 | 10 | ||
11 | obj-$(CONFIG_TOSHIBA_FPCIB0) += smsc_fdc37m81x.o | 11 | obj-$(CONFIG_TOSHIBA_FPCIB0) += smsc_fdc37m81x.o |
12 | obj-$(CONFIG_KGDB) += tx4927_dbgio.o | 12 | obj-$(CONFIG_KGDB) += tx4927_dbgio.o |
13 | |||
14 | EXTRA_CFLAGS += -Werror | ||
diff --git a/arch/mips/tx4927/common/tx4927_irq.c b/arch/mips/tx4927/common/tx4927_irq.c index 00b0b975f349..0aabd57fdad2 100644 --- a/arch/mips/tx4927/common/tx4927_irq.c +++ b/arch/mips/tx4927/common/tx4927_irq.c | |||
@@ -23,398 +23,20 @@ | |||
23 | * with this program; if not, write to the Free Software Foundation, Inc., | 23 | * with this program; if not, write to the Free Software Foundation, Inc., |
24 | * 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | #include <linux/errno.h> | ||
27 | #include <linux/init.h> | 26 | #include <linux/init.h> |
28 | #include <linux/kernel_stat.h> | ||
29 | #include <linux/module.h> | ||
30 | #include <linux/signal.h> | ||
31 | #include <linux/sched.h> | ||
32 | #include <linux/types.h> | ||
33 | #include <linux/interrupt.h> | 27 | #include <linux/interrupt.h> |
34 | #include <linux/ioport.h> | 28 | #include <asm/irq_cpu.h> |
35 | #include <linux/timex.h> | ||
36 | #include <linux/slab.h> | ||
37 | #include <linux/random.h> | ||
38 | #include <linux/irq.h> | ||
39 | #include <linux/bitops.h> | ||
40 | #include <asm/bootinfo.h> | ||
41 | #include <asm/io.h> | ||
42 | #include <asm/irq.h> | ||
43 | #include <asm/mipsregs.h> | 29 | #include <asm/mipsregs.h> |
44 | #include <asm/system.h> | ||
45 | #include <asm/tx4927/tx4927.h> | 30 | #include <asm/tx4927/tx4927.h> |
46 | #ifdef CONFIG_TOSHIBA_RBTX4927 | 31 | #ifdef CONFIG_TOSHIBA_RBTX4927 |
47 | #include <asm/tx4927/toshiba_rbtx4927.h> | 32 | #include <asm/tx4927/toshiba_rbtx4927.h> |
48 | #endif | 33 | #endif |
49 | 34 | ||
50 | /* | ||
51 | * DEBUG | ||
52 | */ | ||
53 | |||
54 | #undef TX4927_IRQ_DEBUG | ||
55 | |||
56 | #ifdef TX4927_IRQ_DEBUG | ||
57 | #define TX4927_IRQ_NONE 0x00000000 | ||
58 | |||
59 | #define TX4927_IRQ_INFO ( 1 << 0 ) | ||
60 | #define TX4927_IRQ_WARN ( 1 << 1 ) | ||
61 | #define TX4927_IRQ_EROR ( 1 << 2 ) | ||
62 | |||
63 | #define TX4927_IRQ_INIT ( 1 << 5 ) | ||
64 | #define TX4927_IRQ_NEST1 ( 1 << 6 ) | ||
65 | #define TX4927_IRQ_NEST2 ( 1 << 7 ) | ||
66 | #define TX4927_IRQ_NEST3 ( 1 << 8 ) | ||
67 | #define TX4927_IRQ_NEST4 ( 1 << 9 ) | ||
68 | |||
69 | #define TX4927_IRQ_CP0_INIT ( 1 << 10 ) | ||
70 | #define TX4927_IRQ_CP0_ENABLE ( 1 << 13 ) | ||
71 | #define TX4927_IRQ_CP0_DISABLE ( 1 << 14 ) | ||
72 | |||
73 | #define TX4927_IRQ_PIC_INIT ( 1 << 20 ) | ||
74 | #define TX4927_IRQ_PIC_ENABLE ( 1 << 23 ) | ||
75 | #define TX4927_IRQ_PIC_DISABLE ( 1 << 24 ) | ||
76 | |||
77 | #define TX4927_IRQ_ALL 0xffffffff | ||
78 | #endif | ||
79 | |||
80 | #ifdef TX4927_IRQ_DEBUG | ||
81 | static const u32 tx4927_irq_debug_flag = (TX4927_IRQ_NONE | ||
82 | | TX4927_IRQ_INFO | ||
83 | | TX4927_IRQ_WARN | TX4927_IRQ_EROR | ||
84 | // | TX4927_IRQ_CP0_INIT | ||
85 | // | TX4927_IRQ_CP0_ENABLE | ||
86 | // | TX4927_IRQ_CP0_ENDIRQ | ||
87 | // | TX4927_IRQ_PIC_INIT | ||
88 | // | TX4927_IRQ_PIC_ENABLE | ||
89 | // | TX4927_IRQ_PIC_DISABLE | ||
90 | // | TX4927_IRQ_INIT | ||
91 | // | TX4927_IRQ_NEST1 | ||
92 | // | TX4927_IRQ_NEST2 | ||
93 | // | TX4927_IRQ_NEST3 | ||
94 | // | TX4927_IRQ_NEST4 | ||
95 | ); | ||
96 | #endif | ||
97 | |||
98 | #ifdef TX4927_IRQ_DEBUG | ||
99 | #define TX4927_IRQ_DPRINTK(flag,str...) \ | ||
100 | if ( (tx4927_irq_debug_flag) & (flag) ) \ | ||
101 | { \ | ||
102 | char tmp[100]; \ | ||
103 | sprintf( tmp, str ); \ | ||
104 | printk( "%s(%s:%u)::%s", __FUNCTION__, __FILE__, __LINE__, tmp ); \ | ||
105 | } | ||
106 | #else | ||
107 | #define TX4927_IRQ_DPRINTK(flag,str...) | ||
108 | #endif | ||
109 | |||
110 | /* | ||
111 | * Forwad definitions for all pic's | ||
112 | */ | ||
113 | |||
114 | static void tx4927_irq_cp0_enable(unsigned int irq); | ||
115 | static void tx4927_irq_cp0_disable(unsigned int irq); | ||
116 | |||
117 | static void tx4927_irq_pic_enable(unsigned int irq); | ||
118 | static void tx4927_irq_pic_disable(unsigned int irq); | ||
119 | |||
120 | /* | ||
121 | * Kernel structs for all pic's | ||
122 | */ | ||
123 | |||
124 | #define TX4927_CP0_NAME "TX4927-CP0" | ||
125 | static struct irq_chip tx4927_irq_cp0_type = { | ||
126 | .name = TX4927_CP0_NAME, | ||
127 | .ack = tx4927_irq_cp0_disable, | ||
128 | .mask = tx4927_irq_cp0_disable, | ||
129 | .mask_ack = tx4927_irq_cp0_disable, | ||
130 | .unmask = tx4927_irq_cp0_enable, | ||
131 | }; | ||
132 | |||
133 | #define TX4927_PIC_NAME "TX4927-PIC" | ||
134 | static struct irq_chip tx4927_irq_pic_type = { | ||
135 | .name = TX4927_PIC_NAME, | ||
136 | .ack = tx4927_irq_pic_disable, | ||
137 | .mask = tx4927_irq_pic_disable, | ||
138 | .mask_ack = tx4927_irq_pic_disable, | ||
139 | .unmask = tx4927_irq_pic_enable, | ||
140 | }; | ||
141 | |||
142 | #define TX4927_PIC_ACTION(s) { no_action, 0, CPU_MASK_NONE, s, NULL, NULL } | ||
143 | static struct irqaction tx4927_irq_pic_action = | ||
144 | TX4927_PIC_ACTION(TX4927_PIC_NAME); | ||
145 | |||
146 | #define CCP0_STATUS 12 | ||
147 | #define CCP0_CAUSE 13 | ||
148 | |||
149 | /* | ||
150 | * Functions for cp0 | ||
151 | */ | ||
152 | |||
153 | #define tx4927_irq_cp0_mask(irq) ( 1 << ( irq-TX4927_IRQ_CP0_BEG+8 ) ) | ||
154 | |||
155 | static void | ||
156 | tx4927_irq_cp0_modify(unsigned cp0_reg, unsigned clr_bits, unsigned set_bits) | ||
157 | { | ||
158 | unsigned long val = 0; | ||
159 | |||
160 | switch (cp0_reg) { | ||
161 | case CCP0_STATUS: | ||
162 | val = read_c0_status(); | ||
163 | break; | ||
164 | |||
165 | case CCP0_CAUSE: | ||
166 | val = read_c0_cause(); | ||
167 | break; | ||
168 | |||
169 | } | ||
170 | |||
171 | val &= (~clr_bits); | ||
172 | val |= (set_bits); | ||
173 | |||
174 | switch (cp0_reg) { | ||
175 | case CCP0_STATUS:{ | ||
176 | write_c0_status(val); | ||
177 | break; | ||
178 | } | ||
179 | case CCP0_CAUSE:{ | ||
180 | write_c0_cause(val); | ||
181 | break; | ||
182 | } | ||
183 | } | ||
184 | } | ||
185 | |||
186 | static void __init tx4927_irq_cp0_init(void) | ||
187 | { | ||
188 | int i; | ||
189 | |||
190 | TX4927_IRQ_DPRINTK(TX4927_IRQ_CP0_INIT, "beg=%d end=%d\n", | ||
191 | TX4927_IRQ_CP0_BEG, TX4927_IRQ_CP0_END); | ||
192 | |||
193 | for (i = TX4927_IRQ_CP0_BEG; i <= TX4927_IRQ_CP0_END; i++) | ||
194 | set_irq_chip_and_handler(i, &tx4927_irq_cp0_type, | ||
195 | handle_level_irq); | ||
196 | } | ||
197 | |||
198 | static void tx4927_irq_cp0_enable(unsigned int irq) | ||
199 | { | ||
200 | TX4927_IRQ_DPRINTK(TX4927_IRQ_CP0_ENABLE, "irq=%d \n", irq); | ||
201 | |||
202 | tx4927_irq_cp0_modify(CCP0_STATUS, 0, tx4927_irq_cp0_mask(irq)); | ||
203 | } | ||
204 | |||
205 | static void tx4927_irq_cp0_disable(unsigned int irq) | ||
206 | { | ||
207 | TX4927_IRQ_DPRINTK(TX4927_IRQ_CP0_DISABLE, "irq=%d \n", irq); | ||
208 | |||
209 | tx4927_irq_cp0_modify(CCP0_STATUS, tx4927_irq_cp0_mask(irq), 0); | ||
210 | } | ||
211 | |||
212 | /* | ||
213 | * Functions for pic | ||
214 | */ | ||
215 | u32 tx4927_irq_pic_addr(int irq) | ||
216 | { | ||
217 | /* MVMCP -- need to formulize this */ | ||
218 | irq -= TX4927_IRQ_PIC_BEG; | ||
219 | switch (irq) { | ||
220 | case 17: | ||
221 | case 16: | ||
222 | case 1: | ||
223 | case 0: | ||
224 | return (0xff1ff610); | ||
225 | |||
226 | case 19: | ||
227 | case 18: | ||
228 | case 3: | ||
229 | case 2: | ||
230 | return (0xff1ff614); | ||
231 | |||
232 | case 21: | ||
233 | case 20: | ||
234 | case 5: | ||
235 | case 4: | ||
236 | return (0xff1ff618); | ||
237 | |||
238 | case 23: | ||
239 | case 22: | ||
240 | case 7: | ||
241 | case 6: | ||
242 | return (0xff1ff61c); | ||
243 | |||
244 | case 25: | ||
245 | case 24: | ||
246 | case 9: | ||
247 | case 8: | ||
248 | return (0xff1ff620); | ||
249 | |||
250 | case 27: | ||
251 | case 26: | ||
252 | case 11: | ||
253 | case 10: | ||
254 | return (0xff1ff624); | ||
255 | |||
256 | case 29: | ||
257 | case 28: | ||
258 | case 13: | ||
259 | case 12: | ||
260 | return (0xff1ff628); | ||
261 | |||
262 | case 31: | ||
263 | case 30: | ||
264 | case 15: | ||
265 | case 14: | ||
266 | return (0xff1ff62c); | ||
267 | |||
268 | } | ||
269 | return (0); | ||
270 | } | ||
271 | |||
272 | u32 tx4927_irq_pic_mask(int irq) | ||
273 | { | ||
274 | /* MVMCP -- need to formulize this */ | ||
275 | irq -= TX4927_IRQ_PIC_BEG; | ||
276 | switch (irq) { | ||
277 | case 31: | ||
278 | case 29: | ||
279 | case 27: | ||
280 | case 25: | ||
281 | case 23: | ||
282 | case 21: | ||
283 | case 19: | ||
284 | case 17:{ | ||
285 | return (0x07000000); | ||
286 | } | ||
287 | case 30: | ||
288 | case 28: | ||
289 | case 26: | ||
290 | case 24: | ||
291 | case 22: | ||
292 | case 20: | ||
293 | case 18: | ||
294 | case 16:{ | ||
295 | return (0x00070000); | ||
296 | } | ||
297 | case 15: | ||
298 | case 13: | ||
299 | case 11: | ||
300 | case 9: | ||
301 | case 7: | ||
302 | case 5: | ||
303 | case 3: | ||
304 | case 1:{ | ||
305 | return (0x00000700); | ||
306 | } | ||
307 | case 14: | ||
308 | case 12: | ||
309 | case 10: | ||
310 | case 8: | ||
311 | case 6: | ||
312 | case 4: | ||
313 | case 2: | ||
314 | case 0:{ | ||
315 | return (0x00000007); | ||
316 | } | ||
317 | } | ||
318 | return (0x00000000); | ||
319 | } | ||
320 | |||
321 | static void tx4927_irq_pic_modify(unsigned pic_reg, unsigned clr_bits, | ||
322 | unsigned set_bits) | ||
323 | { | ||
324 | unsigned long val = 0; | ||
325 | |||
326 | val = TX4927_RD(pic_reg); | ||
327 | val &= (~clr_bits); | ||
328 | val |= (set_bits); | ||
329 | TX4927_WR(pic_reg, val); | ||
330 | } | ||
331 | |||
332 | static void __init tx4927_irq_pic_init(void) | ||
333 | { | ||
334 | int i; | ||
335 | |||
336 | TX4927_IRQ_DPRINTK(TX4927_IRQ_PIC_INIT, "beg=%d end=%d\n", | ||
337 | TX4927_IRQ_PIC_BEG, TX4927_IRQ_PIC_END); | ||
338 | |||
339 | for (i = TX4927_IRQ_PIC_BEG; i <= TX4927_IRQ_PIC_END; i++) | ||
340 | set_irq_chip_and_handler(i, &tx4927_irq_pic_type, | ||
341 | handle_level_irq); | ||
342 | |||
343 | setup_irq(TX4927_IRQ_NEST_PIC_ON_CP0, &tx4927_irq_pic_action); | ||
344 | |||
345 | TX4927_WR(0xff1ff640, 0x6); /* irq level mask -- only accept hightest */ | ||
346 | TX4927_WR(0xff1ff600, TX4927_RD(0xff1ff600) | 0x1); /* irq enable */ | ||
347 | } | ||
348 | |||
349 | static void tx4927_irq_pic_enable(unsigned int irq) | ||
350 | { | ||
351 | TX4927_IRQ_DPRINTK(TX4927_IRQ_PIC_ENABLE, "irq=%d\n", irq); | ||
352 | |||
353 | tx4927_irq_pic_modify(tx4927_irq_pic_addr(irq), 0, | ||
354 | tx4927_irq_pic_mask(irq)); | ||
355 | } | ||
356 | |||
357 | static void tx4927_irq_pic_disable(unsigned int irq) | ||
358 | { | ||
359 | TX4927_IRQ_DPRINTK(TX4927_IRQ_PIC_DISABLE, "irq=%d\n", irq); | ||
360 | |||
361 | tx4927_irq_pic_modify(tx4927_irq_pic_addr(irq), | ||
362 | tx4927_irq_pic_mask(irq), 0); | ||
363 | } | ||
364 | |||
365 | /* | ||
366 | * Main init functions | ||
367 | */ | ||
368 | void __init tx4927_irq_init(void) | 35 | void __init tx4927_irq_init(void) |
369 | { | 36 | { |
370 | TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "-\n"); | 37 | mips_cpu_irq_init(); |
371 | 38 | txx9_irq_init(TX4927_IRC_REG); | |
372 | TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "=Calling tx4927_irq_cp0_init()\n"); | 39 | set_irq_chained_handler(TX4927_IRQ_NEST_PIC_ON_CP0, handle_simple_irq); |
373 | tx4927_irq_cp0_init(); | ||
374 | |||
375 | TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "=Calling tx4927_irq_pic_init()\n"); | ||
376 | tx4927_irq_pic_init(); | ||
377 | |||
378 | TX4927_IRQ_DPRINTK(TX4927_IRQ_INIT, "+\n"); | ||
379 | } | ||
380 | |||
381 | static int tx4927_irq_nested(void) | ||
382 | { | ||
383 | int sw_irq = 0; | ||
384 | u32 level2; | ||
385 | |||
386 | TX4927_IRQ_DPRINTK(TX4927_IRQ_NEST1, "-\n"); | ||
387 | |||
388 | level2 = TX4927_RD(0xff1ff6a0); | ||
389 | TX4927_IRQ_DPRINTK(TX4927_IRQ_NEST2, "=level2a=0x%x\n", level2); | ||
390 | |||
391 | if ((level2 & 0x10000) == 0) { | ||
392 | level2 &= 0x1f; | ||
393 | TX4927_IRQ_DPRINTK(TX4927_IRQ_NEST3, "=level2b=0x%x\n", level2); | ||
394 | |||
395 | sw_irq = TX4927_IRQ_PIC_BEG + level2; | ||
396 | TX4927_IRQ_DPRINTK(TX4927_IRQ_NEST3, "=sw_irq=%d\n", sw_irq); | ||
397 | |||
398 | if (sw_irq == 27) { | ||
399 | TX4927_IRQ_DPRINTK(TX4927_IRQ_NEST4, "=irq-%d\n", | ||
400 | sw_irq); | ||
401 | |||
402 | #ifdef CONFIG_TOSHIBA_RBTX4927 | ||
403 | { | ||
404 | sw_irq = toshiba_rbtx4927_irq_nested(sw_irq); | ||
405 | } | ||
406 | #endif | ||
407 | |||
408 | TX4927_IRQ_DPRINTK(TX4927_IRQ_NEST4, "=irq+%d\n", | ||
409 | sw_irq); | ||
410 | } | ||
411 | } | ||
412 | |||
413 | TX4927_IRQ_DPRINTK(TX4927_IRQ_NEST2, "=sw_irq=%d\n", sw_irq); | ||
414 | |||
415 | TX4927_IRQ_DPRINTK(TX4927_IRQ_NEST1, "+\n"); | ||
416 | |||
417 | return (sw_irq); | ||
418 | } | 40 | } |
419 | 41 | ||
420 | asmlinkage void plat_irq_dispatch(void) | 42 | asmlinkage void plat_irq_dispatch(void) |
@@ -424,9 +46,12 @@ asmlinkage void plat_irq_dispatch(void) | |||
424 | if (pending & STATUSF_IP7) /* cpu timer */ | 46 | if (pending & STATUSF_IP7) /* cpu timer */ |
425 | do_IRQ(TX4927_IRQ_CPU_TIMER); | 47 | do_IRQ(TX4927_IRQ_CPU_TIMER); |
426 | else if (pending & STATUSF_IP2) { /* tx4927 pic */ | 48 | else if (pending & STATUSF_IP2) { /* tx4927 pic */ |
427 | unsigned int irq = tx4927_irq_nested(); | 49 | int irq = txx9_irq(); |
428 | 50 | #ifdef CONFIG_TOSHIBA_RBTX4927 | |
429 | if (unlikely(irq == 0)) { | 51 | if (irq == TX4927_IRQ_NEST_EXT_ON_PIC) |
52 | irq = toshiba_rbtx4927_irq_nested(irq); | ||
53 | #endif | ||
54 | if (unlikely(irq < 0)) { | ||
430 | spurious_interrupt(); | 55 | spurious_interrupt(); |
431 | return; | 56 | return; |
432 | } | 57 | } |
diff --git a/arch/mips/tx4927/toshiba_rbtx4927/Makefile b/arch/mips/tx4927/toshiba_rbtx4927/Makefile index 8a991f3c1a6f..13f96725d772 100644 --- a/arch/mips/tx4927/toshiba_rbtx4927/Makefile +++ b/arch/mips/tx4927/toshiba_rbtx4927/Makefile | |||
@@ -1,3 +1,5 @@ | |||
1 | obj-y += toshiba_rbtx4927_prom.o | 1 | obj-y += toshiba_rbtx4927_prom.o |
2 | obj-y += toshiba_rbtx4927_setup.o | 2 | obj-y += toshiba_rbtx4927_setup.o |
3 | obj-y += toshiba_rbtx4927_irq.o | 3 | obj-y += toshiba_rbtx4927_irq.o |
4 | |||
5 | EXTRA_CFLAGS += -Werror | ||
diff --git a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c index e265fcd31b60..9607ad5e734a 100644 --- a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c +++ b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c | |||
@@ -133,6 +133,7 @@ JP7 is not bus master -- do NOT use -- only 4 pci bus master's allowed -- SouthB | |||
133 | #include <linux/bootmem.h> | 133 | #include <linux/bootmem.h> |
134 | #include <linux/blkdev.h> | 134 | #include <linux/blkdev.h> |
135 | #ifdef CONFIG_TOSHIBA_FPCIB0 | 135 | #ifdef CONFIG_TOSHIBA_FPCIB0 |
136 | #include <asm/i8259.h> | ||
136 | #include <asm/tx4927/smsc_fdc37m81x.h> | 137 | #include <asm/tx4927/smsc_fdc37m81x.h> |
137 | #endif | 138 | #endif |
138 | #include <asm/tx4927/toshiba_rbtx4927.h> | 139 | #include <asm/tx4927/toshiba_rbtx4927.h> |
@@ -151,11 +152,6 @@ JP7 is not bus master -- do NOT use -- only 4 pci bus master's allowed -- SouthB | |||
151 | #define TOSHIBA_RBTX4927_IRQ_IOC_ENABLE ( 1 << 13 ) | 152 | #define TOSHIBA_RBTX4927_IRQ_IOC_ENABLE ( 1 << 13 ) |
152 | #define TOSHIBA_RBTX4927_IRQ_IOC_DISABLE ( 1 << 14 ) | 153 | #define TOSHIBA_RBTX4927_IRQ_IOC_DISABLE ( 1 << 14 ) |
153 | 154 | ||
154 | #define TOSHIBA_RBTX4927_IRQ_ISA_INIT ( 1 << 20 ) | ||
155 | #define TOSHIBA_RBTX4927_IRQ_ISA_ENABLE ( 1 << 23 ) | ||
156 | #define TOSHIBA_RBTX4927_IRQ_ISA_DISABLE ( 1 << 24 ) | ||
157 | #define TOSHIBA_RBTX4927_IRQ_ISA_MASK ( 1 << 25 ) | ||
158 | |||
159 | #define TOSHIBA_RBTX4927_SETUP_ALL 0xffffffff | 155 | #define TOSHIBA_RBTX4927_SETUP_ALL 0xffffffff |
160 | #endif | 156 | #endif |
161 | 157 | ||
@@ -167,10 +163,6 @@ static const u32 toshiba_rbtx4927_irq_debug_flag = | |||
167 | // | TOSHIBA_RBTX4927_IRQ_IOC_INIT | 163 | // | TOSHIBA_RBTX4927_IRQ_IOC_INIT |
168 | // | TOSHIBA_RBTX4927_IRQ_IOC_ENABLE | 164 | // | TOSHIBA_RBTX4927_IRQ_IOC_ENABLE |
169 | // | TOSHIBA_RBTX4927_IRQ_IOC_DISABLE | 165 | // | TOSHIBA_RBTX4927_IRQ_IOC_DISABLE |
170 | // | TOSHIBA_RBTX4927_IRQ_ISA_INIT | ||
171 | // | TOSHIBA_RBTX4927_IRQ_ISA_ENABLE | ||
172 | // | TOSHIBA_RBTX4927_IRQ_ISA_DISABLE | ||
173 | // | TOSHIBA_RBTX4927_IRQ_ISA_MASK | ||
174 | ); | 166 | ); |
175 | #endif | 167 | #endif |
176 | 168 | ||
@@ -196,33 +188,14 @@ static const u32 toshiba_rbtx4927_irq_debug_flag = | |||
196 | #define TOSHIBA_RBTX4927_IRQ_IOC_BEG ((TX4927_IRQ_PIC_END+1)+TOSHIBA_RBTX4927_IRQ_IOC_RAW_BEG) /* 56 */ | 188 | #define TOSHIBA_RBTX4927_IRQ_IOC_BEG ((TX4927_IRQ_PIC_END+1)+TOSHIBA_RBTX4927_IRQ_IOC_RAW_BEG) /* 56 */ |
197 | #define TOSHIBA_RBTX4927_IRQ_IOC_END ((TX4927_IRQ_PIC_END+1)+TOSHIBA_RBTX4927_IRQ_IOC_RAW_END) /* 63 */ | 189 | #define TOSHIBA_RBTX4927_IRQ_IOC_END ((TX4927_IRQ_PIC_END+1)+TOSHIBA_RBTX4927_IRQ_IOC_RAW_END) /* 63 */ |
198 | 190 | ||
199 | |||
200 | #define TOSHIBA_RBTX4927_IRQ_ISA_BEG MI8259_IRQ_ISA_BEG | ||
201 | #define TOSHIBA_RBTX4927_IRQ_ISA_END MI8259_IRQ_ISA_END | ||
202 | #define TOSHIBA_RBTX4927_IRQ_ISA_MID ((TOSHIBA_RBTX4927_IRQ_ISA_BEG+TOSHIBA_RBTX4927_IRQ_ISA_END+1)/2) | ||
203 | |||
204 | |||
205 | #define TOSHIBA_RBTX4927_IRQ_NEST_IOC_ON_PIC TX4927_IRQ_NEST_EXT_ON_PIC | 191 | #define TOSHIBA_RBTX4927_IRQ_NEST_IOC_ON_PIC TX4927_IRQ_NEST_EXT_ON_PIC |
206 | #define TOSHIBA_RBTX4927_IRQ_NEST_ISA_ON_IOC (TOSHIBA_RBTX4927_IRQ_IOC_BEG+2) | 192 | #define TOSHIBA_RBTX4927_IRQ_NEST_ISA_ON_IOC (TOSHIBA_RBTX4927_IRQ_IOC_BEG+2) |
207 | #define TOSHIBA_RBTX4927_IRQ_NEST_ISA_ON_ISA (TOSHIBA_RBTX4927_IRQ_ISA_BEG+2) | ||
208 | 193 | ||
209 | extern int tx4927_using_backplane; | 194 | extern int tx4927_using_backplane; |
210 | 195 | ||
211 | #ifdef CONFIG_TOSHIBA_FPCIB0 | ||
212 | extern void enable_8259A_irq(unsigned int irq); | ||
213 | extern void disable_8259A_irq(unsigned int irq); | ||
214 | extern void mask_and_ack_8259A(unsigned int irq); | ||
215 | #endif | ||
216 | |||
217 | static void toshiba_rbtx4927_irq_ioc_enable(unsigned int irq); | 196 | static void toshiba_rbtx4927_irq_ioc_enable(unsigned int irq); |
218 | static void toshiba_rbtx4927_irq_ioc_disable(unsigned int irq); | 197 | static void toshiba_rbtx4927_irq_ioc_disable(unsigned int irq); |
219 | 198 | ||
220 | #ifdef CONFIG_TOSHIBA_FPCIB0 | ||
221 | static void toshiba_rbtx4927_irq_isa_enable(unsigned int irq); | ||
222 | static void toshiba_rbtx4927_irq_isa_disable(unsigned int irq); | ||
223 | static void toshiba_rbtx4927_irq_isa_mask_and_ack(unsigned int irq); | ||
224 | #endif | ||
225 | |||
226 | #define TOSHIBA_RBTX4927_IOC_NAME "RBTX4927-IOC" | 199 | #define TOSHIBA_RBTX4927_IOC_NAME "RBTX4927-IOC" |
227 | static struct irq_chip toshiba_rbtx4927_irq_ioc_type = { | 200 | static struct irq_chip toshiba_rbtx4927_irq_ioc_type = { |
228 | .name = TOSHIBA_RBTX4927_IOC_NAME, | 201 | .name = TOSHIBA_RBTX4927_IOC_NAME, |
@@ -235,18 +208,6 @@ static struct irq_chip toshiba_rbtx4927_irq_ioc_type = { | |||
235 | #define TOSHIBA_RBTX4927_IOC_INTR_STAT 0xbc002006 | 208 | #define TOSHIBA_RBTX4927_IOC_INTR_STAT 0xbc002006 |
236 | 209 | ||
237 | 210 | ||
238 | #ifdef CONFIG_TOSHIBA_FPCIB0 | ||
239 | #define TOSHIBA_RBTX4927_ISA_NAME "RBTX4927-ISA" | ||
240 | static struct irq_chip toshiba_rbtx4927_irq_isa_type = { | ||
241 | .name = TOSHIBA_RBTX4927_ISA_NAME, | ||
242 | .ack = toshiba_rbtx4927_irq_isa_mask_and_ack, | ||
243 | .mask = toshiba_rbtx4927_irq_isa_disable, | ||
244 | .mask_ack = toshiba_rbtx4927_irq_isa_mask_and_ack, | ||
245 | .unmask = toshiba_rbtx4927_irq_isa_enable, | ||
246 | }; | ||
247 | #endif | ||
248 | |||
249 | |||
250 | u32 bit2num(u32 num) | 211 | u32 bit2num(u32 num) |
251 | { | 212 | { |
252 | u32 i; | 213 | u32 i; |
@@ -271,31 +232,10 @@ int toshiba_rbtx4927_irq_nested(int sw_irq) | |||
271 | } | 232 | } |
272 | } | 233 | } |
273 | #ifdef CONFIG_TOSHIBA_FPCIB0 | 234 | #ifdef CONFIG_TOSHIBA_FPCIB0 |
274 | { | 235 | if (tx4927_using_backplane) { |
275 | if (tx4927_using_backplane) { | 236 | int irq = i8259_irq(); |
276 | u32 level4; | 237 | if (irq >= 0) |
277 | u32 level5; | 238 | sw_irq = irq; |
278 | outb(0x0A, 0x20); | ||
279 | level4 = inb(0x20) & 0xff; | ||
280 | if (level4) { | ||
281 | sw_irq = | ||
282 | TOSHIBA_RBTX4927_IRQ_ISA_BEG + | ||
283 | bit2num(level4); | ||
284 | if (sw_irq != | ||
285 | TOSHIBA_RBTX4927_IRQ_NEST_ISA_ON_ISA) { | ||
286 | goto RETURN; | ||
287 | } | ||
288 | } | ||
289 | |||
290 | outb(0x0A, 0xA0); | ||
291 | level5 = inb(0xA0) & 0xff; | ||
292 | if (level5) { | ||
293 | sw_irq = | ||
294 | TOSHIBA_RBTX4927_IRQ_ISA_MID + | ||
295 | bit2num(level5); | ||
296 | goto RETURN; | ||
297 | } | ||
298 | } | ||
299 | } | 239 | } |
300 | #endif | 240 | #endif |
301 | 241 | ||
@@ -307,12 +247,6 @@ int toshiba_rbtx4927_irq_nested(int sw_irq) | |||
307 | #define TOSHIBA_RBTX4927_PIC_ACTION(s) { no_action, IRQF_SHARED, CPU_MASK_NONE, s, NULL, NULL } | 247 | #define TOSHIBA_RBTX4927_PIC_ACTION(s) { no_action, IRQF_SHARED, CPU_MASK_NONE, s, NULL, NULL } |
308 | static struct irqaction toshiba_rbtx4927_irq_ioc_action = | 248 | static struct irqaction toshiba_rbtx4927_irq_ioc_action = |
309 | TOSHIBA_RBTX4927_PIC_ACTION(TOSHIBA_RBTX4927_IOC_NAME); | 249 | TOSHIBA_RBTX4927_PIC_ACTION(TOSHIBA_RBTX4927_IOC_NAME); |
310 | #ifdef CONFIG_TOSHIBA_FPCIB0 | ||
311 | static struct irqaction toshiba_rbtx4927_irq_isa_master = | ||
312 | TOSHIBA_RBTX4927_PIC_ACTION(TOSHIBA_RBTX4927_ISA_NAME "/M"); | ||
313 | static struct irqaction toshiba_rbtx4927_irq_isa_slave = | ||
314 | TOSHIBA_RBTX4927_PIC_ACTION(TOSHIBA_RBTX4927_ISA_NAME "/S"); | ||
315 | #endif | ||
316 | 250 | ||
317 | 251 | ||
318 | /**********************************************************************************/ | 252 | /**********************************************************************************/ |
@@ -378,92 +312,6 @@ static void toshiba_rbtx4927_irq_ioc_disable(unsigned int irq) | |||
378 | } | 312 | } |
379 | 313 | ||
380 | 314 | ||
381 | /**********************************************************************************/ | ||
382 | /* Functions for isa */ | ||
383 | /**********************************************************************************/ | ||
384 | |||
385 | |||
386 | #ifdef CONFIG_TOSHIBA_FPCIB0 | ||
387 | static void __init toshiba_rbtx4927_irq_isa_init(void) | ||
388 | { | ||
389 | int i; | ||
390 | |||
391 | TOSHIBA_RBTX4927_IRQ_DPRINTK(TOSHIBA_RBTX4927_IRQ_ISA_INIT, | ||
392 | "beg=%d end=%d\n", | ||
393 | TOSHIBA_RBTX4927_IRQ_ISA_BEG, | ||
394 | TOSHIBA_RBTX4927_IRQ_ISA_END); | ||
395 | |||
396 | for (i = TOSHIBA_RBTX4927_IRQ_ISA_BEG; | ||
397 | i <= TOSHIBA_RBTX4927_IRQ_ISA_END; i++) | ||
398 | set_irq_chip_and_handler(i, &toshiba_rbtx4927_irq_isa_type, | ||
399 | handle_level_irq); | ||
400 | |||
401 | setup_irq(TOSHIBA_RBTX4927_IRQ_NEST_ISA_ON_IOC, | ||
402 | &toshiba_rbtx4927_irq_isa_master); | ||
403 | setup_irq(TOSHIBA_RBTX4927_IRQ_NEST_ISA_ON_ISA, | ||
404 | &toshiba_rbtx4927_irq_isa_slave); | ||
405 | |||
406 | /* make sure we are looking at IRR (not ISR) */ | ||
407 | outb(0x0A, 0x20); | ||
408 | outb(0x0A, 0xA0); | ||
409 | } | ||
410 | #endif | ||
411 | |||
412 | |||
413 | #ifdef CONFIG_TOSHIBA_FPCIB0 | ||
414 | static void toshiba_rbtx4927_irq_isa_enable(unsigned int irq) | ||
415 | { | ||
416 | TOSHIBA_RBTX4927_IRQ_DPRINTK(TOSHIBA_RBTX4927_IRQ_ISA_ENABLE, | ||
417 | "irq=%d\n", irq); | ||
418 | |||
419 | if (irq < TOSHIBA_RBTX4927_IRQ_ISA_BEG | ||
420 | || irq > TOSHIBA_RBTX4927_IRQ_ISA_END) { | ||
421 | TOSHIBA_RBTX4927_IRQ_DPRINTK(TOSHIBA_RBTX4927_IRQ_EROR, | ||
422 | "bad irq=%d\n", irq); | ||
423 | panic("\n"); | ||
424 | } | ||
425 | |||
426 | enable_8259A_irq(irq); | ||
427 | } | ||
428 | #endif | ||
429 | |||
430 | |||
431 | #ifdef CONFIG_TOSHIBA_FPCIB0 | ||
432 | static void toshiba_rbtx4927_irq_isa_disable(unsigned int irq) | ||
433 | { | ||
434 | TOSHIBA_RBTX4927_IRQ_DPRINTK(TOSHIBA_RBTX4927_IRQ_ISA_DISABLE, | ||
435 | "irq=%d\n", irq); | ||
436 | |||
437 | if (irq < TOSHIBA_RBTX4927_IRQ_ISA_BEG | ||
438 | || irq > TOSHIBA_RBTX4927_IRQ_ISA_END) { | ||
439 | TOSHIBA_RBTX4927_IRQ_DPRINTK(TOSHIBA_RBTX4927_IRQ_EROR, | ||
440 | "bad irq=%d\n", irq); | ||
441 | panic("\n"); | ||
442 | } | ||
443 | |||
444 | disable_8259A_irq(irq); | ||
445 | } | ||
446 | #endif | ||
447 | |||
448 | |||
449 | #ifdef CONFIG_TOSHIBA_FPCIB0 | ||
450 | static void toshiba_rbtx4927_irq_isa_mask_and_ack(unsigned int irq) | ||
451 | { | ||
452 | TOSHIBA_RBTX4927_IRQ_DPRINTK(TOSHIBA_RBTX4927_IRQ_ISA_MASK, | ||
453 | "irq=%d\n", irq); | ||
454 | |||
455 | if (irq < TOSHIBA_RBTX4927_IRQ_ISA_BEG | ||
456 | || irq > TOSHIBA_RBTX4927_IRQ_ISA_END) { | ||
457 | TOSHIBA_RBTX4927_IRQ_DPRINTK(TOSHIBA_RBTX4927_IRQ_EROR, | ||
458 | "bad irq=%d\n", irq); | ||
459 | panic("\n"); | ||
460 | } | ||
461 | |||
462 | mask_and_ack_8259A(irq); | ||
463 | } | ||
464 | #endif | ||
465 | |||
466 | |||
467 | void __init arch_init_irq(void) | 315 | void __init arch_init_irq(void) |
468 | { | 316 | { |
469 | extern void tx4927_irq_init(void); | 317 | extern void tx4927_irq_init(void); |
@@ -471,12 +319,11 @@ void __init arch_init_irq(void) | |||
471 | tx4927_irq_init(); | 319 | tx4927_irq_init(); |
472 | toshiba_rbtx4927_irq_ioc_init(); | 320 | toshiba_rbtx4927_irq_ioc_init(); |
473 | #ifdef CONFIG_TOSHIBA_FPCIB0 | 321 | #ifdef CONFIG_TOSHIBA_FPCIB0 |
474 | { | 322 | if (tx4927_using_backplane) |
475 | if (tx4927_using_backplane) { | 323 | init_i8259_irqs(); |
476 | toshiba_rbtx4927_irq_isa_init(); | ||
477 | } | ||
478 | } | ||
479 | #endif | 324 | #endif |
325 | /* Onboard 10M Ether: High Active */ | ||
326 | set_irq_type(RBTX4927_RTL_8019_IRQ, IRQF_TRIGGER_HIGH); | ||
480 | 327 | ||
481 | wbflush(); | 328 | wbflush(); |
482 | } | 329 | } |
diff --git a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c index ea5a70b252a0..3e84237abe63 100644 --- a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c +++ b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c | |||
@@ -151,7 +151,6 @@ unsigned long mips_memory_upper; | |||
151 | static int tx4927_ccfg_toeon = 1; | 151 | static int tx4927_ccfg_toeon = 1; |
152 | static int tx4927_pcic_trdyto = 0; /* default: disabled */ | 152 | static int tx4927_pcic_trdyto = 0; /* default: disabled */ |
153 | unsigned long tx4927_ce_base[8]; | 153 | unsigned long tx4927_ce_base[8]; |
154 | void tx4927_pci_setup(void); | ||
155 | void tx4927_reset_pci_pcic(void); | 154 | void tx4927_reset_pci_pcic(void); |
156 | int tx4927_pci66 = 0; /* 0:auto */ | 155 | int tx4927_pci66 = 0; /* 0:auto */ |
157 | #endif | 156 | #endif |
@@ -442,7 +441,7 @@ arch_initcall(tx4927_pcibios_init); | |||
442 | extern struct resource pci_io_resource; | 441 | extern struct resource pci_io_resource; |
443 | extern struct resource pci_mem_resource; | 442 | extern struct resource pci_mem_resource; |
444 | 443 | ||
445 | void tx4927_pci_setup(void) | 444 | void __init tx4927_pci_setup(void) |
446 | { | 445 | { |
447 | static int called = 0; | 446 | static int called = 0; |
448 | extern unsigned int tx4927_get_mem_size(void); | 447 | extern unsigned int tx4927_get_mem_size(void); |
@@ -748,12 +747,6 @@ void __init toshiba_rbtx4927_setup(void) | |||
748 | } | 747 | } |
749 | #endif | 748 | #endif |
750 | 749 | ||
751 | /* setup irq stuff */ | ||
752 | TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_SETUP, | ||
753 | ":Setting up tx4927 pic.\n"); | ||
754 | TX4927_WR(0xff1ff604, 0x00000400); /* irq trigger */ | ||
755 | TX4927_WR(0xff1ff608, 0x00000000); /* irq trigger */ | ||
756 | |||
757 | /* setup serial stuff */ | 750 | /* setup serial stuff */ |
758 | TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_SETUP, | 751 | TOSHIBA_RBTX4927_SETUP_DPRINTK(TOSHIBA_RBTX4927_SETUP_SETUP, |
759 | ":Setting up tx4927 sio.\n"); | 752 | ":Setting up tx4927 sio.\n"); |
@@ -915,7 +908,7 @@ void __init toshiba_rbtx4927_setup(void) | |||
915 | req.iotype = UPIO_MEM; | 908 | req.iotype = UPIO_MEM; |
916 | req.membase = (char *)(0xff1ff300 + i * 0x100); | 909 | req.membase = (char *)(0xff1ff300 + i * 0x100); |
917 | req.mapbase = 0xff1ff300 + i * 0x100; | 910 | req.mapbase = 0xff1ff300 + i * 0x100; |
918 | req.irq = 32 + i; | 911 | req.irq = TX4927_IRQ_PIC_BEG + 8 + i; |
919 | req.flags |= UPF_BUGGY_UART /*HAVE_CTS_LINE*/; | 912 | req.flags |= UPF_BUGGY_UART /*HAVE_CTS_LINE*/; |
920 | req.uartclk = 50000000; | 913 | req.uartclk = 50000000; |
921 | early_serial_txx9_setup(&req); | 914 | early_serial_txx9_setup(&req); |
diff --git a/arch/mips/tx4938/common/Makefile b/arch/mips/tx4938/common/Makefile index 83cda518f204..8352eca67906 100644 --- a/arch/mips/tx4938/common/Makefile +++ b/arch/mips/tx4938/common/Makefile | |||
@@ -9,3 +9,4 @@ | |||
9 | obj-y += prom.o setup.o irq.o | 9 | obj-y += prom.o setup.o irq.o |
10 | obj-$(CONFIG_KGDB) += dbgio.o | 10 | obj-$(CONFIG_KGDB) += dbgio.o |
11 | 11 | ||
12 | EXTRA_CFLAGS += -Werror | ||
diff --git a/arch/mips/tx4938/common/irq.c b/arch/mips/tx4938/common/irq.c index 3a2dbfc25014..c059b899d120 100644 --- a/arch/mips/tx4938/common/irq.c +++ b/arch/mips/tx4938/common/irq.c | |||
@@ -11,284 +11,21 @@ | |||
11 | * | 11 | * |
12 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) | 12 | * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) |
13 | */ | 13 | */ |
14 | #include <linux/errno.h> | ||
15 | #include <linux/init.h> | 14 | #include <linux/init.h> |
16 | #include <linux/kernel_stat.h> | ||
17 | #include <linux/module.h> | ||
18 | #include <linux/signal.h> | ||
19 | #include <linux/sched.h> | ||
20 | #include <linux/types.h> | ||
21 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
22 | #include <linux/ioport.h> | 16 | #include <asm/irq_cpu.h> |
23 | #include <linux/timex.h> | ||
24 | #include <linux/slab.h> | ||
25 | #include <linux/random.h> | ||
26 | #include <linux/irq.h> | ||
27 | #include <asm/bitops.h> | ||
28 | #include <asm/bootinfo.h> | ||
29 | #include <asm/io.h> | ||
30 | #include <asm/irq.h> | ||
31 | #include <asm/mipsregs.h> | 17 | #include <asm/mipsregs.h> |
32 | #include <asm/system.h> | ||
33 | #include <asm/wbflush.h> | ||
34 | #include <asm/tx4938/rbtx4938.h> | 18 | #include <asm/tx4938/rbtx4938.h> |
35 | 19 | ||
36 | /**********************************************************************************/ | ||
37 | /* Forwad definitions for all pic's */ | ||
38 | /**********************************************************************************/ | ||
39 | |||
40 | static void tx4938_irq_cp0_enable(unsigned int irq); | ||
41 | static void tx4938_irq_cp0_disable(unsigned int irq); | ||
42 | |||
43 | static void tx4938_irq_pic_enable(unsigned int irq); | ||
44 | static void tx4938_irq_pic_disable(unsigned int irq); | ||
45 | |||
46 | /**********************************************************************************/ | ||
47 | /* Kernel structs for all pic's */ | ||
48 | /**********************************************************************************/ | ||
49 | |||
50 | #define TX4938_CP0_NAME "TX4938-CP0" | ||
51 | static struct irq_chip tx4938_irq_cp0_type = { | ||
52 | .name = TX4938_CP0_NAME, | ||
53 | .ack = tx4938_irq_cp0_disable, | ||
54 | .mask = tx4938_irq_cp0_disable, | ||
55 | .mask_ack = tx4938_irq_cp0_disable, | ||
56 | .unmask = tx4938_irq_cp0_enable, | ||
57 | }; | ||
58 | |||
59 | #define TX4938_PIC_NAME "TX4938-PIC" | ||
60 | static struct irq_chip tx4938_irq_pic_type = { | ||
61 | .name = TX4938_PIC_NAME, | ||
62 | .ack = tx4938_irq_pic_disable, | ||
63 | .mask = tx4938_irq_pic_disable, | ||
64 | .mask_ack = tx4938_irq_pic_disable, | ||
65 | .unmask = tx4938_irq_pic_enable, | ||
66 | }; | ||
67 | |||
68 | static struct irqaction tx4938_irq_pic_action = { | ||
69 | .handler = no_action, | ||
70 | .flags = 0, | ||
71 | .mask = CPU_MASK_NONE, | ||
72 | .name = TX4938_PIC_NAME | ||
73 | }; | ||
74 | |||
75 | /**********************************************************************************/ | ||
76 | /* Functions for cp0 */ | ||
77 | /**********************************************************************************/ | ||
78 | |||
79 | #define tx4938_irq_cp0_mask(irq) ( 1 << ( irq-TX4938_IRQ_CP0_BEG+8 ) ) | ||
80 | |||
81 | static void __init | ||
82 | tx4938_irq_cp0_init(void) | ||
83 | { | ||
84 | int i; | ||
85 | |||
86 | for (i = TX4938_IRQ_CP0_BEG; i <= TX4938_IRQ_CP0_END; i++) | ||
87 | set_irq_chip_and_handler(i, &tx4938_irq_cp0_type, | ||
88 | handle_level_irq); | ||
89 | } | ||
90 | |||
91 | static void | ||
92 | tx4938_irq_cp0_enable(unsigned int irq) | ||
93 | { | ||
94 | set_c0_status(tx4938_irq_cp0_mask(irq)); | ||
95 | } | ||
96 | |||
97 | static void | ||
98 | tx4938_irq_cp0_disable(unsigned int irq) | ||
99 | { | ||
100 | clear_c0_status(tx4938_irq_cp0_mask(irq)); | ||
101 | } | ||
102 | |||
103 | /**********************************************************************************/ | ||
104 | /* Functions for pic */ | ||
105 | /**********************************************************************************/ | ||
106 | |||
107 | u32 | ||
108 | tx4938_irq_pic_addr(int irq) | ||
109 | { | ||
110 | /* MVMCP -- need to formulize this */ | ||
111 | irq -= TX4938_IRQ_PIC_BEG; | ||
112 | |||
113 | switch (irq) { | ||
114 | case 17: | ||
115 | case 16: | ||
116 | case 1: | ||
117 | case 0:{ | ||
118 | return (TX4938_MKA(TX4938_IRC_IRLVL0)); | ||
119 | } | ||
120 | case 19: | ||
121 | case 18: | ||
122 | case 3: | ||
123 | case 2:{ | ||
124 | return (TX4938_MKA(TX4938_IRC_IRLVL1)); | ||
125 | } | ||
126 | case 21: | ||
127 | case 20: | ||
128 | case 5: | ||
129 | case 4:{ | ||
130 | return (TX4938_MKA(TX4938_IRC_IRLVL2)); | ||
131 | } | ||
132 | case 23: | ||
133 | case 22: | ||
134 | case 7: | ||
135 | case 6:{ | ||
136 | return (TX4938_MKA(TX4938_IRC_IRLVL3)); | ||
137 | } | ||
138 | case 25: | ||
139 | case 24: | ||
140 | case 9: | ||
141 | case 8:{ | ||
142 | return (TX4938_MKA(TX4938_IRC_IRLVL4)); | ||
143 | } | ||
144 | case 27: | ||
145 | case 26: | ||
146 | case 11: | ||
147 | case 10:{ | ||
148 | return (TX4938_MKA(TX4938_IRC_IRLVL5)); | ||
149 | } | ||
150 | case 29: | ||
151 | case 28: | ||
152 | case 13: | ||
153 | case 12:{ | ||
154 | return (TX4938_MKA(TX4938_IRC_IRLVL6)); | ||
155 | } | ||
156 | case 31: | ||
157 | case 30: | ||
158 | case 15: | ||
159 | case 14:{ | ||
160 | return (TX4938_MKA(TX4938_IRC_IRLVL7)); | ||
161 | } | ||
162 | } | ||
163 | |||
164 | return 0; | ||
165 | } | ||
166 | |||
167 | u32 | ||
168 | tx4938_irq_pic_mask(int irq) | ||
169 | { | ||
170 | /* MVMCP -- need to formulize this */ | ||
171 | irq -= TX4938_IRQ_PIC_BEG; | ||
172 | |||
173 | switch (irq) { | ||
174 | case 31: | ||
175 | case 29: | ||
176 | case 27: | ||
177 | case 25: | ||
178 | case 23: | ||
179 | case 21: | ||
180 | case 19: | ||
181 | case 17:{ | ||
182 | return (0x07000000); | ||
183 | } | ||
184 | case 30: | ||
185 | case 28: | ||
186 | case 26: | ||
187 | case 24: | ||
188 | case 22: | ||
189 | case 20: | ||
190 | case 18: | ||
191 | case 16:{ | ||
192 | return (0x00070000); | ||
193 | } | ||
194 | case 15: | ||
195 | case 13: | ||
196 | case 11: | ||
197 | case 9: | ||
198 | case 7: | ||
199 | case 5: | ||
200 | case 3: | ||
201 | case 1:{ | ||
202 | return (0x00000700); | ||
203 | } | ||
204 | case 14: | ||
205 | case 12: | ||
206 | case 10: | ||
207 | case 8: | ||
208 | case 6: | ||
209 | case 4: | ||
210 | case 2: | ||
211 | case 0:{ | ||
212 | return (0x00000007); | ||
213 | } | ||
214 | } | ||
215 | return 0x00000000; | ||
216 | } | ||
217 | |||
218 | static void | ||
219 | tx4938_irq_pic_modify(unsigned pic_reg, unsigned clr_bits, unsigned set_bits) | ||
220 | { | ||
221 | unsigned long val = 0; | ||
222 | |||
223 | val = TX4938_RD(pic_reg); | ||
224 | val &= (~clr_bits); | ||
225 | val |= (set_bits); | ||
226 | TX4938_WR(pic_reg, val); | ||
227 | mmiowb(); | ||
228 | TX4938_RD(pic_reg); | ||
229 | } | ||
230 | |||
231 | static void __init | ||
232 | tx4938_irq_pic_init(void) | ||
233 | { | ||
234 | int i; | ||
235 | |||
236 | for (i = TX4938_IRQ_PIC_BEG; i <= TX4938_IRQ_PIC_END; i++) | ||
237 | set_irq_chip_and_handler(i, &tx4938_irq_pic_type, | ||
238 | handle_level_irq); | ||
239 | |||
240 | setup_irq(TX4938_IRQ_NEST_PIC_ON_CP0, &tx4938_irq_pic_action); | ||
241 | |||
242 | TX4938_WR(0xff1ff640, 0x6); /* irq level mask -- only accept hightest */ | ||
243 | TX4938_WR(0xff1ff600, TX4938_RD(0xff1ff600) | 0x1); /* irq enable */ | ||
244 | } | ||
245 | |||
246 | static void | ||
247 | tx4938_irq_pic_enable(unsigned int irq) | ||
248 | { | ||
249 | tx4938_irq_pic_modify(tx4938_irq_pic_addr(irq), 0, | ||
250 | tx4938_irq_pic_mask(irq)); | ||
251 | } | ||
252 | |||
253 | static void | ||
254 | tx4938_irq_pic_disable(unsigned int irq) | ||
255 | { | ||
256 | tx4938_irq_pic_modify(tx4938_irq_pic_addr(irq), | ||
257 | tx4938_irq_pic_mask(irq), 0); | ||
258 | } | ||
259 | |||
260 | /**********************************************************************************/ | ||
261 | /* Main init functions */ | ||
262 | /**********************************************************************************/ | ||
263 | |||
264 | void __init | 20 | void __init |
265 | tx4938_irq_init(void) | 21 | tx4938_irq_init(void) |
266 | { | 22 | { |
267 | tx4938_irq_cp0_init(); | 23 | mips_cpu_irq_init(); |
268 | tx4938_irq_pic_init(); | 24 | txx9_irq_init(TX4938_IRC_REG); |
25 | set_irq_chained_handler(TX4938_IRQ_NEST_PIC_ON_CP0, handle_simple_irq); | ||
269 | } | 26 | } |
270 | 27 | ||
271 | int | 28 | int toshiba_rbtx4938_irq_nested(int irq); |
272 | tx4938_irq_nested(void) | ||
273 | { | ||
274 | int sw_irq = 0; | ||
275 | u32 level2; | ||
276 | |||
277 | level2 = TX4938_RD(0xff1ff6a0); | ||
278 | if ((level2 & 0x10000) == 0) { | ||
279 | level2 &= 0x1f; | ||
280 | sw_irq = TX4938_IRQ_PIC_BEG + level2; | ||
281 | if (sw_irq == 26) { | ||
282 | { | ||
283 | extern int toshiba_rbtx4938_irq_nested(int sw_irq); | ||
284 | sw_irq = toshiba_rbtx4938_irq_nested(sw_irq); | ||
285 | } | ||
286 | } | ||
287 | } | ||
288 | |||
289 | wbflush(); | ||
290 | return sw_irq; | ||
291 | } | ||
292 | 29 | ||
293 | asmlinkage void plat_irq_dispatch(void) | 30 | asmlinkage void plat_irq_dispatch(void) |
294 | { | 31 | { |
@@ -297,8 +34,10 @@ asmlinkage void plat_irq_dispatch(void) | |||
297 | if (pending & STATUSF_IP7) | 34 | if (pending & STATUSF_IP7) |
298 | do_IRQ(TX4938_IRQ_CPU_TIMER); | 35 | do_IRQ(TX4938_IRQ_CPU_TIMER); |
299 | else if (pending & STATUSF_IP2) { | 36 | else if (pending & STATUSF_IP2) { |
300 | int irq = tx4938_irq_nested(); | 37 | int irq = txx9_irq(); |
301 | if (irq) | 38 | if (irq == TX4938_IRQ_PIC_BEG + TX4938_IR_INT(0)) |
39 | irq = toshiba_rbtx4938_irq_nested(irq); | ||
40 | if (irq >= 0) | ||
302 | do_IRQ(irq); | 41 | do_IRQ(irq); |
303 | else | 42 | else |
304 | spurious_interrupt(); | 43 | spurious_interrupt(); |
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/Makefile b/arch/mips/tx4938/toshiba_rbtx4938/Makefile index 10c94e62bf5b..675bb1c3e40c 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/Makefile +++ b/arch/mips/tx4938/toshiba_rbtx4938/Makefile | |||
@@ -7,3 +7,5 @@ | |||
7 | # | 7 | # |
8 | 8 | ||
9 | obj-y += prom.o setup.o irq.o spi_eeprom.o | 9 | obj-y += prom.o setup.o irq.o spi_eeprom.o |
10 | |||
11 | EXTRA_CFLAGS += -Werror | ||
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/irq.c b/arch/mips/tx4938/toshiba_rbtx4938/irq.c index 91aea7aff515..f00185017e80 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/irq.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/irq.c | |||
@@ -181,7 +181,7 @@ void __init arch_init_irq(void) | |||
181 | tx4938_irq_init(); | 181 | tx4938_irq_init(); |
182 | toshiba_rbtx4938_irq_ioc_init(); | 182 | toshiba_rbtx4938_irq_ioc_init(); |
183 | /* Onboard 10M Ether: High Active */ | 183 | /* Onboard 10M Ether: High Active */ |
184 | TX4938_WR(TX4938_MKA(TX4938_IRC_IRDM0), 0x00000040); | 184 | set_irq_type(RBTX4938_IRQ_ETHER, IRQF_TRIGGER_HIGH); |
185 | 185 | ||
186 | wbflush(); | 186 | wbflush(); |
187 | } | 187 | } |
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/setup.c b/arch/mips/tx4938/toshiba_rbtx4938/setup.c index f9ad482749e4..84ebff711e6e 100644 --- a/arch/mips/tx4938/toshiba_rbtx4938/setup.c +++ b/arch/mips/tx4938/toshiba_rbtx4938/setup.c | |||
@@ -773,10 +773,6 @@ void __init tx4938_board_setup(void) | |||
773 | txboard_add_phys_region(base, size); | 773 | txboard_add_phys_region(base, size); |
774 | } | 774 | } |
775 | 775 | ||
776 | /* IRC */ | ||
777 | /* disable interrupt control */ | ||
778 | tx4938_ircptr->cer = 0; | ||
779 | |||
780 | /* TMR */ | 776 | /* TMR */ |
781 | /* disable all timers */ | 777 | /* disable all timers */ |
782 | for (i = 0; i < TX4938_NR_TMR; i++) { | 778 | for (i = 0; i < TX4938_NR_TMR; i++) { |
@@ -875,9 +871,6 @@ void __init toshiba_rbtx4938_setup(void) | |||
875 | if (txx9_master_clock == 0) | 871 | if (txx9_master_clock == 0) |
876 | txx9_master_clock = 25000000; /* 25MHz */ | 872 | txx9_master_clock = 25000000; /* 25MHz */ |
877 | tx4938_board_setup(); | 873 | tx4938_board_setup(); |
878 | /* setup irq stuff */ | ||
879 | TX4938_WR(TX4938_MKA(TX4938_IRC_IRDM0), 0x00000000); /* irq trigger */ | ||
880 | TX4938_WR(TX4938_MKA(TX4938_IRC_IRDM1), 0x00000000); /* irq trigger */ | ||
881 | /* setup serial stuff */ | 874 | /* setup serial stuff */ |
882 | TX4938_WR(0xff1ff314, 0x00000000); /* h/w flow control off */ | 875 | TX4938_WR(0xff1ff314, 0x00000000); /* h/w flow control off */ |
883 | TX4938_WR(0xff1ff414, 0x00000000); /* h/w flow control off */ | 876 | TX4938_WR(0xff1ff414, 0x00000000); /* h/w flow control off */ |
@@ -897,7 +890,7 @@ void __init toshiba_rbtx4938_setup(void) | |||
897 | req.iotype = UPIO_MEM; | 890 | req.iotype = UPIO_MEM; |
898 | req.membase = (char *)(0xff1ff300 + i * 0x100); | 891 | req.membase = (char *)(0xff1ff300 + i * 0x100); |
899 | req.mapbase = 0xff1ff300 + i * 0x100; | 892 | req.mapbase = 0xff1ff300 + i * 0x100; |
900 | req.irq = 32 + i; | 893 | req.irq = RBTX4938_IRQ_IRC_SIO(i); |
901 | req.flags |= UPF_BUGGY_UART /*HAVE_CTS_LINE*/; | 894 | req.flags |= UPF_BUGGY_UART /*HAVE_CTS_LINE*/; |
902 | req.uartclk = 50000000; | 895 | req.uartclk = 50000000; |
903 | early_serial_txx9_setup(&req); | 896 | early_serial_txx9_setup(&req); |
@@ -1122,7 +1115,7 @@ static void __init txx9_spi_init(unsigned long base, int irq) | |||
1122 | static int __init rbtx4938_spi_init(void) | 1115 | static int __init rbtx4938_spi_init(void) |
1123 | { | 1116 | { |
1124 | struct spi_board_info srtc_info = { | 1117 | struct spi_board_info srtc_info = { |
1125 | .modalias = "rs5c348", | 1118 | .modalias = "rtc-rs5c348", |
1126 | .max_speed_hz = 1000000, /* 1.0Mbps @ Vdd 2.0V */ | 1119 | .max_speed_hz = 1000000, /* 1.0Mbps @ Vdd 2.0V */ |
1127 | .bus_num = 0, | 1120 | .bus_num = 0, |
1128 | .chip_select = 16 + SRTC_CS, | 1121 | .chip_select = 16 + SRTC_CS, |
diff --git a/arch/parisc/kernel/sys_parisc32.c b/arch/parisc/kernel/sys_parisc32.c index bb23ff71c28e..2989c6682bf6 100644 --- a/arch/parisc/kernel/sys_parisc32.c +++ b/arch/parisc/kernel/sys_parisc32.c | |||
@@ -285,147 +285,6 @@ int cp_compat_stat(struct kstat *stat, struct compat_stat __user *statbuf) | |||
285 | return err; | 285 | return err; |
286 | } | 286 | } |
287 | 287 | ||
288 | struct linux32_dirent { | ||
289 | u32 d_ino; | ||
290 | compat_off_t d_off; | ||
291 | u16 d_reclen; | ||
292 | char d_name[1]; | ||
293 | }; | ||
294 | |||
295 | struct old_linux32_dirent { | ||
296 | u32 d_ino; | ||
297 | u32 d_offset; | ||
298 | u16 d_namlen; | ||
299 | char d_name[1]; | ||
300 | }; | ||
301 | |||
302 | struct getdents32_callback { | ||
303 | struct linux32_dirent __user * current_dir; | ||
304 | struct linux32_dirent __user * previous; | ||
305 | int count; | ||
306 | int error; | ||
307 | }; | ||
308 | |||
309 | struct readdir32_callback { | ||
310 | struct old_linux32_dirent __user * dirent; | ||
311 | int count; | ||
312 | }; | ||
313 | |||
314 | #define NAME_OFFSET(de) ((int) ((de)->d_name - (char __user *) (de))) | ||
315 | static int filldir32 (void *__buf, const char *name, int namlen, | ||
316 | loff_t offset, u64 ino, unsigned int d_type) | ||
317 | { | ||
318 | struct linux32_dirent __user * dirent; | ||
319 | struct getdents32_callback * buf = (struct getdents32_callback *) __buf; | ||
320 | int reclen = ALIGN(NAME_OFFSET(dirent) + namlen + 1, 4); | ||
321 | u32 d_ino; | ||
322 | |||
323 | buf->error = -EINVAL; /* only used if we fail.. */ | ||
324 | if (reclen > buf->count) | ||
325 | return -EINVAL; | ||
326 | d_ino = ino; | ||
327 | if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) | ||
328 | return -EOVERFLOW; | ||
329 | dirent = buf->previous; | ||
330 | if (dirent) | ||
331 | put_user(offset, &dirent->d_off); | ||
332 | dirent = buf->current_dir; | ||
333 | buf->previous = dirent; | ||
334 | put_user(d_ino, &dirent->d_ino); | ||
335 | put_user(reclen, &dirent->d_reclen); | ||
336 | copy_to_user(dirent->d_name, name, namlen); | ||
337 | put_user(0, dirent->d_name + namlen); | ||
338 | dirent = ((void __user *)dirent) + reclen; | ||
339 | buf->current_dir = dirent; | ||
340 | buf->count -= reclen; | ||
341 | return 0; | ||
342 | } | ||
343 | |||
344 | asmlinkage long | ||
345 | sys32_getdents (unsigned int fd, void __user * dirent, unsigned int count) | ||
346 | { | ||
347 | struct file * file; | ||
348 | struct linux32_dirent __user * lastdirent; | ||
349 | struct getdents32_callback buf; | ||
350 | int error; | ||
351 | |||
352 | error = -EFAULT; | ||
353 | if (!access_ok(VERIFY_WRITE, dirent, count)) | ||
354 | goto out; | ||
355 | |||
356 | error = -EBADF; | ||
357 | file = fget(fd); | ||
358 | if (!file) | ||
359 | goto out; | ||
360 | |||
361 | buf.current_dir = (struct linux32_dirent __user *) dirent; | ||
362 | buf.previous = NULL; | ||
363 | buf.count = count; | ||
364 | buf.error = 0; | ||
365 | |||
366 | error = vfs_readdir(file, filldir32, &buf); | ||
367 | if (error < 0) | ||
368 | goto out_putf; | ||
369 | error = buf.error; | ||
370 | lastdirent = buf.previous; | ||
371 | if (lastdirent) { | ||
372 | if (put_user(file->f_pos, &lastdirent->d_off)) | ||
373 | error = -EFAULT; | ||
374 | else | ||
375 | error = count - buf.count; | ||
376 | } | ||
377 | |||
378 | out_putf: | ||
379 | fput(file); | ||
380 | out: | ||
381 | return error; | ||
382 | } | ||
383 | |||
384 | static int fillonedir32(void * __buf, const char * name, int namlen, | ||
385 | loff_t offset, u64 ino, unsigned int d_type) | ||
386 | { | ||
387 | struct readdir32_callback * buf = (struct readdir32_callback *) __buf; | ||
388 | struct old_linux32_dirent __user * dirent; | ||
389 | u32 d_ino; | ||
390 | |||
391 | if (buf->count) | ||
392 | return -EINVAL; | ||
393 | d_ino = ino; | ||
394 | if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) | ||
395 | return -EOVERFLOW; | ||
396 | buf->count++; | ||
397 | dirent = buf->dirent; | ||
398 | put_user(d_ino, &dirent->d_ino); | ||
399 | put_user(offset, &dirent->d_offset); | ||
400 | put_user(namlen, &dirent->d_namlen); | ||
401 | copy_to_user(dirent->d_name, name, namlen); | ||
402 | put_user(0, dirent->d_name + namlen); | ||
403 | return 0; | ||
404 | } | ||
405 | |||
406 | asmlinkage long | ||
407 | sys32_readdir (unsigned int fd, void __user * dirent, unsigned int count) | ||
408 | { | ||
409 | int error; | ||
410 | struct file * file; | ||
411 | struct readdir32_callback buf; | ||
412 | |||
413 | error = -EBADF; | ||
414 | file = fget(fd); | ||
415 | if (!file) | ||
416 | goto out; | ||
417 | |||
418 | buf.count = 0; | ||
419 | buf.dirent = dirent; | ||
420 | |||
421 | error = vfs_readdir(file, fillonedir32, &buf); | ||
422 | if (error >= 0) | ||
423 | error = buf.count; | ||
424 | fput(file); | ||
425 | out: | ||
426 | return error; | ||
427 | } | ||
428 | |||
429 | /*** copied from mips64 ***/ | 288 | /*** copied from mips64 ***/ |
430 | /* | 289 | /* |
431 | * Ooo, nasty. We need here to frob 32-bit unsigned longs to | 290 | * Ooo, nasty. We need here to frob 32-bit unsigned longs to |
diff --git a/arch/parisc/kernel/syscall_table.S b/arch/parisc/kernel/syscall_table.S index 627f3c28ad8c..2540786a970f 100644 --- a/arch/parisc/kernel/syscall_table.S +++ b/arch/parisc/kernel/syscall_table.S | |||
@@ -222,9 +222,7 @@ | |||
222 | ENTRY_SAME(setfsgid) | 222 | ENTRY_SAME(setfsgid) |
223 | /* I think this might work */ | 223 | /* I think this might work */ |
224 | ENTRY_SAME(llseek) /* 140 */ | 224 | ENTRY_SAME(llseek) /* 140 */ |
225 | /* struct linux_dirent has longs, like 'unsigned long d_ino' which | 225 | ENTRY_COMP(getdents) |
226 | * almost definitely should be 'ino_t d_ino' but it's too late now */ | ||
227 | ENTRY_DIFF(getdents) | ||
228 | /* it is POSSIBLE that select will be OK because even though fd_set | 226 | /* it is POSSIBLE that select will be OK because even though fd_set |
229 | * contains longs, the macros and sizes are clever. */ | 227 | * contains longs, the macros and sizes are clever. */ |
230 | ENTRY_COMP(select) | 228 | ENTRY_COMP(select) |
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S index d4e6a93c8d9a..ee7a16eb6fdd 100644 --- a/arch/parisc/kernel/vmlinux.lds.S +++ b/arch/parisc/kernel/vmlinux.lds.S | |||
@@ -81,6 +81,8 @@ SECTIONS | |||
81 | __ex_table : { *(__ex_table) } | 81 | __ex_table : { *(__ex_table) } |
82 | __stop___ex_table = .; | 82 | __stop___ex_table = .; |
83 | 83 | ||
84 | NOTES | ||
85 | |||
84 | __start___unwind = .; /* unwind info */ | 86 | __start___unwind = .; /* unwind info */ |
85 | .PARISC.unwind : { *(.PARISC.unwind) } | 87 | .PARISC.unwind : { *(.PARISC.unwind) } |
86 | __stop___unwind = .; | 88 | __stop___unwind = .; |
diff --git a/arch/powerpc/boot/dts/mpc8544ds.dts b/arch/powerpc/boot/dts/mpc8544ds.dts index 4680e2010887..3e79bf0a3159 100644 --- a/arch/powerpc/boot/dts/mpc8544ds.dts +++ b/arch/powerpc/boot/dts/mpc8544ds.dts | |||
@@ -44,8 +44,18 @@ | |||
44 | #size-cells = <1>; | 44 | #size-cells = <1>; |
45 | #interrupt-cells = <2>; | 45 | #interrupt-cells = <2>; |
46 | device_type = "soc"; | 46 | device_type = "soc"; |
47 | ranges = <0 e0000000 00100000>; | 47 | |
48 | reg = <e0000000 00100000>; // CCSRBAR 1M | 48 | |
49 | ranges = <00001000 e0001000 000ff000 | ||
50 | 80000000 80000000 20000000 | ||
51 | a0000000 a0000000 10000000 | ||
52 | b0000000 b0000000 00100000 | ||
53 | c0000000 c0000000 20000000 | ||
54 | b0100000 b0100000 00100000 | ||
55 | e1000000 e1000000 00010000 | ||
56 | e1010000 e1010000 00010000 | ||
57 | e1020000 e1020000 00010000>; | ||
58 | reg = <e0000000 00001000>; // CCSRBAR 1M | ||
49 | bus-frequency = <0>; // Filled out by uboot. | 59 | bus-frequency = <0>; // Filled out by uboot. |
50 | 60 | ||
51 | memory-controller@2000 { | 61 | memory-controller@2000 { |
@@ -161,8 +171,8 @@ | |||
161 | interrupt-parent = <&mpic>; | 171 | interrupt-parent = <&mpic>; |
162 | interrupts = <18 2>; | 172 | interrupts = <18 2>; |
163 | bus-range = <0 ff>; | 173 | bus-range = <0 ff>; |
164 | ranges = <02000000 0 80000000 80000000 0 10000000 | 174 | ranges = <02000000 0 c0000000 c0000000 0 20000000 |
165 | 01000000 0 00000000 e2000000 0 00800000>; | 175 | 01000000 0 00000000 e1000000 0 00010000>; |
166 | clock-frequency = <3f940aa>; | 176 | clock-frequency = <3f940aa>; |
167 | #interrupt-cells = <1>; | 177 | #interrupt-cells = <1>; |
168 | #size-cells = <2>; | 178 | #size-cells = <2>; |
@@ -178,8 +188,8 @@ | |||
178 | #address-cells = <3>; | 188 | #address-cells = <3>; |
179 | reg = <9000 1000>; | 189 | reg = <9000 1000>; |
180 | bus-range = <0 ff>; | 190 | bus-range = <0 ff>; |
181 | ranges = <02000000 0 90000000 90000000 0 10000000 | 191 | ranges = <02000000 0 80000000 80000000 0 20000000 |
182 | 01000000 0 00000000 e3000000 0 00800000>; | 192 | 01000000 0 00000000 e1010000 0 00010000>; |
183 | clock-frequency = <1fca055>; | 193 | clock-frequency = <1fca055>; |
184 | interrupt-parent = <&mpic>; | 194 | interrupt-parent = <&mpic>; |
185 | interrupts = <1a 2>; | 195 | interrupts = <1a 2>; |
@@ -202,7 +212,7 @@ | |||
202 | reg = <a000 1000>; | 212 | reg = <a000 1000>; |
203 | bus-range = <0 ff>; | 213 | bus-range = <0 ff>; |
204 | ranges = <02000000 0 a0000000 a0000000 0 10000000 | 214 | ranges = <02000000 0 a0000000 a0000000 0 10000000 |
205 | 01000000 0 00000000 e2800000 0 00800000>; | 215 | 01000000 0 00000000 e1020000 0 00010000>; |
206 | clock-frequency = <1fca055>; | 216 | clock-frequency = <1fca055>; |
207 | interrupt-parent = <&mpic>; | 217 | interrupt-parent = <&mpic>; |
208 | interrupts = <19 2>; | 218 | interrupts = <19 2>; |
@@ -224,49 +234,29 @@ | |||
224 | #address-cells = <3>; | 234 | #address-cells = <3>; |
225 | reg = <b000 1000>; | 235 | reg = <b000 1000>; |
226 | bus-range = <0 ff>; | 236 | bus-range = <0 ff>; |
227 | ranges = <02000000 0 b0000000 b0000000 0 10000000 | 237 | ranges = <02000000 0 b0000000 b0000000 0 00100000 |
228 | 01000000 0 00000000 e3800000 0 00800000>; | 238 | 01000000 0 00000000 b0100000 0 00100000>; |
229 | clock-frequency = <1fca055>; | 239 | clock-frequency = <1fca055>; |
230 | interrupt-parent = <&mpic>; | 240 | interrupt-parent = <&mpic>; |
231 | interrupts = <1b 2>; | 241 | interrupts = <1b 2>; |
232 | interrupt-map-mask = <f800 0 0 7>; | 242 | interrupt-map-mask = <fb00 0 0 0>; |
233 | interrupt-map = < | 243 | interrupt-map = < |
234 | |||
235 | // IDSEL 0x1a | ||
236 | d000 0 0 1 &i8259 6 2 | ||
237 | d000 0 0 2 &i8259 3 2 | ||
238 | d000 0 0 3 &i8259 4 2 | ||
239 | d000 0 0 4 &i8259 5 2 | ||
240 | |||
241 | // IDSEL 0x1b | ||
242 | d800 0 0 1 &i8259 5 2 | ||
243 | d800 0 0 2 &i8259 0 0 | ||
244 | d800 0 0 3 &i8259 0 0 | ||
245 | d800 0 0 4 &i8259 0 0 | ||
246 | |||
247 | // IDSEL 0x1c USB | 244 | // IDSEL 0x1c USB |
248 | e000 0 0 1 &i8259 9 2 | 245 | e000 0 0 0 &i8259 c 2 |
249 | e000 0 0 2 &i8259 a 2 | 246 | e100 0 0 0 &i8259 9 2 |
250 | e000 0 0 3 &i8259 c 2 | 247 | e200 0 0 0 &i8259 a 2 |
251 | e000 0 0 4 &i8259 7 2 | 248 | e300 0 0 0 &i8259 b 2 |
252 | 249 | ||
253 | // IDSEL 0x1d Audio | 250 | // IDSEL 0x1d Audio |
254 | e800 0 0 1 &i8259 9 2 | 251 | e800 0 0 0 &i8259 6 2 |
255 | e800 0 0 2 &i8259 a 2 | ||
256 | e800 0 0 3 &i8259 b 2 | ||
257 | e800 0 0 4 &i8259 0 0 | ||
258 | 252 | ||
259 | // IDSEL 0x1e Legacy | 253 | // IDSEL 0x1e Legacy |
260 | f000 0 0 1 &i8259 c 2 | 254 | f000 0 0 0 &i8259 7 2 |
261 | f000 0 0 2 &i8259 0 0 | 255 | f100 0 0 0 &i8259 7 2 |
262 | f000 0 0 3 &i8259 0 0 | ||
263 | f000 0 0 4 &i8259 0 0 | ||
264 | 256 | ||
265 | // IDSEL 0x1f IDE/SATA | 257 | // IDSEL 0x1f IDE/SATA |
266 | f800 0 0 1 &i8259 6 2 | 258 | f800 0 0 0 &i8259 e 2 |
267 | f800 0 0 2 &i8259 0 0 | 259 | f900 0 0 0 &i8259 5 2 |
268 | f800 0 0 3 &i8259 0 0 | ||
269 | f800 0 0 4 &i8259 0 0 | ||
270 | >; | 260 | >; |
271 | uli1575@0 { | 261 | uli1575@0 { |
272 | reg = <0 0 0 0 0>; | 262 | reg = <0 0 0 0 0>; |
@@ -274,10 +264,10 @@ | |||
274 | #address-cells = <3>; | 264 | #address-cells = <3>; |
275 | ranges = <02000000 0 b0000000 | 265 | ranges = <02000000 0 b0000000 |
276 | 02000000 0 b0000000 | 266 | 02000000 0 b0000000 |
277 | 0 10000000 | 267 | 0 00100000 |
278 | 01000000 0 00000000 | 268 | 01000000 0 00000000 |
279 | 01000000 0 00000000 | 269 | 01000000 0 00000000 |
280 | 0 00080000>; | 270 | 0 00100000>; |
281 | 271 | ||
282 | pci_bridge@0 { | 272 | pci_bridge@0 { |
283 | reg = <0 0 0 0 0>; | 273 | reg = <0 0 0 0 0>; |
@@ -285,10 +275,10 @@ | |||
285 | #address-cells = <3>; | 275 | #address-cells = <3>; |
286 | ranges = <02000000 0 b0000000 | 276 | ranges = <02000000 0 b0000000 |
287 | 02000000 0 b0000000 | 277 | 02000000 0 b0000000 |
288 | 0 20000000 | 278 | 0 00100000 |
289 | 01000000 0 00000000 | 279 | 01000000 0 00000000 |
290 | 01000000 0 00000000 | 280 | 01000000 0 00000000 |
291 | 0 00100000>; | 281 | 0 00100000>; |
292 | 282 | ||
293 | isa@1e { | 283 | isa@1e { |
294 | device_type = "isa"; | 284 | device_type = "isa"; |
@@ -296,7 +286,8 @@ | |||
296 | #size-cells = <1>; | 286 | #size-cells = <1>; |
297 | #address-cells = <2>; | 287 | #address-cells = <2>; |
298 | reg = <f000 0 0 0 0>; | 288 | reg = <f000 0 0 0 0>; |
299 | ranges = <1 0 01000000 0 0 | 289 | ranges = <1 0 |
290 | 01000000 0 0 | ||
300 | 00001000>; | 291 | 00001000>; |
301 | interrupt-parent = <&i8259>; | 292 | interrupt-parent = <&i8259>; |
302 | 293 | ||
@@ -312,8 +303,7 @@ | |||
312 | built-in; | 303 | built-in; |
313 | compatible = "chrp,iic"; | 304 | compatible = "chrp,iic"; |
314 | interrupts = <9 2>; | 305 | interrupts = <9 2>; |
315 | interrupt-parent = | 306 | interrupt-parent = <&mpic>; |
316 | <&mpic>; | ||
317 | }; | 307 | }; |
318 | 308 | ||
319 | i8042@60 { | 309 | i8042@60 { |
@@ -321,8 +311,7 @@ | |||
321 | #address-cells = <1>; | 311 | #address-cells = <1>; |
322 | reg = <1 60 1 1 64 1>; | 312 | reg = <1 60 1 1 64 1>; |
323 | interrupts = <1 3 c 3>; | 313 | interrupts = <1 3 c 3>; |
324 | interrupt-parent = | 314 | interrupt-parent = <&i8259>; |
325 | <&i8259>; | ||
326 | 315 | ||
327 | keyboard@0 { | 316 | keyboard@0 { |
328 | reg = <0>; | 317 | reg = <0>; |
@@ -336,8 +325,7 @@ | |||
336 | }; | 325 | }; |
337 | 326 | ||
338 | rtc@70 { | 327 | rtc@70 { |
339 | compatible = | 328 | compatible = "pnpPNP,b00"; |
340 | "pnpPNP,b00"; | ||
341 | reg = <1 70 2>; | 329 | reg = <1 70 2>; |
342 | }; | 330 | }; |
343 | 331 | ||
diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn.dts b/arch/powerpc/boot/dts/mpc8641_hpcn.dts index 5d82709cfcbb..b0166e5c177e 100644 --- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts +++ b/arch/powerpc/boot/dts/mpc8641_hpcn.dts | |||
@@ -224,98 +224,36 @@ | |||
224 | clock-frequency = <1fca055>; | 224 | clock-frequency = <1fca055>; |
225 | interrupt-parent = <&mpic>; | 225 | interrupt-parent = <&mpic>; |
226 | interrupts = <18 2>; | 226 | interrupts = <18 2>; |
227 | interrupt-map-mask = <f800 0 0 7>; | 227 | interrupt-map-mask = <fb00 0 0 0>; |
228 | interrupt-map = < | 228 | interrupt-map = < |
229 | /* IDSEL 0x11 */ | 229 | /* IDSEL 0x11 */ |
230 | 8800 0 0 1 &i8259 3 2 | 230 | 8800 0 0 1 &i8259 9 2 |
231 | 8800 0 0 2 &i8259 4 2 | 231 | 8800 0 0 2 &i8259 a 2 |
232 | 8800 0 0 3 &i8259 5 2 | 232 | 8800 0 0 3 &i8259 b 2 |
233 | 8800 0 0 4 &i8259 6 2 | 233 | 8800 0 0 4 &i8259 c 2 |
234 | 234 | ||
235 | /* IDSEL 0x12 */ | 235 | /* IDSEL 0x12 */ |
236 | 9000 0 0 1 &i8259 4 2 | 236 | 9000 0 0 1 &i8259 a 2 |
237 | 9000 0 0 2 &i8259 5 2 | 237 | 9000 0 0 2 &i8259 b 2 |
238 | 9000 0 0 3 &i8259 6 2 | 238 | 9000 0 0 3 &i8259 c 2 |
239 | 9000 0 0 4 &i8259 3 2 | 239 | 9000 0 0 4 &i8259 9 2 |
240 | 240 | ||
241 | /* IDSEL 0x13 */ | 241 | // IDSEL 0x1c USB |
242 | 9800 0 0 1 &i8259 0 0 | 242 | e000 0 0 0 &i8259 c 2 |
243 | 9800 0 0 2 &i8259 0 0 | 243 | e100 0 0 0 &i8259 9 2 |
244 | 9800 0 0 3 &i8259 0 0 | 244 | e200 0 0 0 &i8259 a 2 |
245 | 9800 0 0 4 &i8259 0 0 | 245 | e300 0 0 0 &i8259 b 2 |
246 | 246 | ||
247 | /* IDSEL 0x14 */ | 247 | // IDSEL 0x1d Audio |
248 | a000 0 0 1 &i8259 0 0 | 248 | e800 0 0 0 &i8259 6 2 |
249 | a000 0 0 2 &i8259 0 0 | 249 | |
250 | a000 0 0 3 &i8259 0 0 | 250 | // IDSEL 0x1e Legacy |
251 | a000 0 0 4 &i8259 0 0 | 251 | f000 0 0 0 &i8259 7 2 |
252 | 252 | f100 0 0 0 &i8259 7 2 | |
253 | /* IDSEL 0x15 */ | 253 | |
254 | a800 0 0 1 &i8259 0 0 | 254 | // IDSEL 0x1f IDE/SATA |
255 | a800 0 0 2 &i8259 0 0 | 255 | f800 0 0 0 &i8259 e 2 |
256 | a800 0 0 3 &i8259 0 0 | 256 | f900 0 0 0 &i8259 5 2 |
257 | a800 0 0 4 &i8259 0 0 | ||
258 | |||
259 | /* IDSEL 0x16 */ | ||
260 | b000 0 0 1 &i8259 0 0 | ||
261 | b000 0 0 2 &i8259 0 0 | ||
262 | b000 0 0 3 &i8259 0 0 | ||
263 | b000 0 0 4 &i8259 0 0 | ||
264 | |||
265 | /* IDSEL 0x17 */ | ||
266 | b800 0 0 1 &i8259 0 0 | ||
267 | b800 0 0 2 &i8259 0 0 | ||
268 | b800 0 0 3 &i8259 0 0 | ||
269 | b800 0 0 4 &i8259 0 0 | ||
270 | |||
271 | /* IDSEL 0x18 */ | ||
272 | c000 0 0 1 &i8259 0 0 | ||
273 | c000 0 0 2 &i8259 0 0 | ||
274 | c000 0 0 3 &i8259 0 0 | ||
275 | c000 0 0 4 &i8259 0 0 | ||
276 | |||
277 | /* IDSEL 0x19 */ | ||
278 | c800 0 0 1 &i8259 0 0 | ||
279 | c800 0 0 2 &i8259 0 0 | ||
280 | c800 0 0 3 &i8259 0 0 | ||
281 | c800 0 0 4 &i8259 0 0 | ||
282 | |||
283 | /* IDSEL 0x1a */ | ||
284 | d000 0 0 1 &i8259 6 2 | ||
285 | d000 0 0 2 &i8259 3 2 | ||
286 | d000 0 0 3 &i8259 4 2 | ||
287 | d000 0 0 4 &i8259 5 2 | ||
288 | |||
289 | |||
290 | /* IDSEL 0x1b */ | ||
291 | d800 0 0 1 &i8259 5 2 | ||
292 | d800 0 0 2 &i8259 0 0 | ||
293 | d800 0 0 3 &i8259 0 0 | ||
294 | d800 0 0 4 &i8259 0 0 | ||
295 | |||
296 | /* IDSEL 0x1c */ | ||
297 | e000 0 0 1 &i8259 9 2 | ||
298 | e000 0 0 2 &i8259 a 2 | ||
299 | e000 0 0 3 &i8259 c 2 | ||
300 | e000 0 0 4 &i8259 7 2 | ||
301 | |||
302 | /* IDSEL 0x1d */ | ||
303 | e800 0 0 1 &i8259 9 2 | ||
304 | e800 0 0 2 &i8259 a 2 | ||
305 | e800 0 0 3 &i8259 b 2 | ||
306 | e800 0 0 4 &i8259 0 0 | ||
307 | |||
308 | /* IDSEL 0x1e */ | ||
309 | f000 0 0 1 &i8259 c 2 | ||
310 | f000 0 0 2 &i8259 0 0 | ||
311 | f000 0 0 3 &i8259 0 0 | ||
312 | f000 0 0 4 &i8259 0 0 | ||
313 | |||
314 | /* IDSEL 0x1f */ | ||
315 | f800 0 0 1 &i8259 6 2 | ||
316 | f800 0 0 2 &i8259 0 0 | ||
317 | f800 0 0 3 &i8259 0 0 | ||
318 | f800 0 0 4 &i8259 0 0 | ||
319 | >; | 257 | >; |
320 | uli1575@0 { | 258 | uli1575@0 { |
321 | reg = <0 0 0 0 0>; | 259 | reg = <0 0 0 0 0>; |
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig index d9ac24e8de16..8b47c846421c 100644 --- a/arch/powerpc/configs/cell_defconfig +++ b/arch/powerpc/configs/cell_defconfig | |||
@@ -1,9 +1,23 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.22-rc6 | 3 | # Linux kernel version: 2.6.23-rc3 |
4 | # Tue Jun 26 12:32:34 2007 | 4 | # Wed Aug 22 15:19:19 2007 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | |||
8 | # | ||
9 | # Processor support | ||
10 | # | ||
11 | # CONFIG_POWER4_ONLY is not set | ||
12 | CONFIG_POWER3=y | ||
13 | CONFIG_POWER4=y | ||
14 | CONFIG_PPC_FPU=y | ||
15 | CONFIG_ALTIVEC=y | ||
16 | CONFIG_PPC_STD_MMU=y | ||
17 | CONFIG_PPC_MM_SLICES=y | ||
18 | CONFIG_VIRT_CPU_ACCOUNTING=y | ||
19 | CONFIG_SMP=y | ||
20 | CONFIG_NR_CPUS=4 | ||
7 | CONFIG_64BIT=y | 21 | CONFIG_64BIT=y |
8 | CONFIG_PPC_MERGE=y | 22 | CONFIG_PPC_MERGE=y |
9 | CONFIG_MMU=y | 23 | CONFIG_MMU=y |
@@ -15,6 +29,7 @@ CONFIG_ARCH_HAS_ILOG2_U64=y | |||
15 | CONFIG_GENERIC_HWEIGHT=y | 29 | CONFIG_GENERIC_HWEIGHT=y |
16 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 30 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
17 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 31 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
32 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | ||
18 | CONFIG_PPC=y | 33 | CONFIG_PPC=y |
19 | CONFIG_EARLY_PRINTK=y | 34 | CONFIG_EARLY_PRINTK=y |
20 | CONFIG_COMPAT=y | 35 | CONFIG_COMPAT=y |
@@ -22,51 +37,33 @@ CONFIG_SYSVIPC_COMPAT=y | |||
22 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 37 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
23 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 38 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
24 | CONFIG_PPC_OF=y | 39 | CONFIG_PPC_OF=y |
40 | CONFIG_OF=y | ||
25 | CONFIG_PPC_UDBG_16550=y | 41 | CONFIG_PPC_UDBG_16550=y |
26 | # CONFIG_GENERIC_TBSYNC is not set | 42 | # CONFIG_GENERIC_TBSYNC is not set |
27 | CONFIG_AUDIT_ARCH=y | 43 | CONFIG_AUDIT_ARCH=y |
28 | CONFIG_GENERIC_BUG=y | 44 | CONFIG_GENERIC_BUG=y |
29 | # CONFIG_DEFAULT_UIMAGE is not set | 45 | # CONFIG_DEFAULT_UIMAGE is not set |
30 | |||
31 | # | ||
32 | # Processor support | ||
33 | # | ||
34 | # CONFIG_POWER4_ONLY is not set | ||
35 | CONFIG_POWER3=y | ||
36 | CONFIG_POWER4=y | ||
37 | CONFIG_PPC_FPU=y | ||
38 | # CONFIG_PPC_DCR_NATIVE is not set | 46 | # CONFIG_PPC_DCR_NATIVE is not set |
39 | CONFIG_PPC_DCR_MMIO=y | 47 | CONFIG_PPC_DCR_MMIO=y |
40 | CONFIG_PPC_DCR=y | 48 | CONFIG_PPC_DCR=y |
41 | CONFIG_PPC_OF_PLATFORM_PCI=y | 49 | CONFIG_PPC_OF_PLATFORM_PCI=y |
42 | CONFIG_ALTIVEC=y | ||
43 | CONFIG_PPC_STD_MMU=y | ||
44 | CONFIG_PPC_MM_SLICES=y | ||
45 | CONFIG_VIRT_CPU_ACCOUNTING=y | ||
46 | CONFIG_SMP=y | ||
47 | CONFIG_NR_CPUS=4 | ||
48 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 50 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
49 | 51 | ||
50 | # | 52 | # |
51 | # Code maturity level options | 53 | # General setup |
52 | # | 54 | # |
53 | CONFIG_EXPERIMENTAL=y | 55 | CONFIG_EXPERIMENTAL=y |
54 | CONFIG_LOCK_KERNEL=y | 56 | CONFIG_LOCK_KERNEL=y |
55 | CONFIG_INIT_ENV_ARG_LIMIT=32 | 57 | CONFIG_INIT_ENV_ARG_LIMIT=32 |
56 | |||
57 | # | ||
58 | # General setup | ||
59 | # | ||
60 | CONFIG_LOCALVERSION="" | 58 | CONFIG_LOCALVERSION="" |
61 | CONFIG_LOCALVERSION_AUTO=y | 59 | CONFIG_LOCALVERSION_AUTO=y |
62 | CONFIG_SWAP=y | 60 | CONFIG_SWAP=y |
63 | CONFIG_SYSVIPC=y | 61 | CONFIG_SYSVIPC=y |
64 | # CONFIG_IPC_NS is not set | ||
65 | CONFIG_SYSVIPC_SYSCTL=y | 62 | CONFIG_SYSVIPC_SYSCTL=y |
66 | # CONFIG_POSIX_MQUEUE is not set | 63 | # CONFIG_POSIX_MQUEUE is not set |
67 | # CONFIG_BSD_PROCESS_ACCT is not set | 64 | # CONFIG_BSD_PROCESS_ACCT is not set |
68 | # CONFIG_TASKSTATS is not set | 65 | # CONFIG_TASKSTATS is not set |
69 | # CONFIG_UTS_NS is not set | 66 | # CONFIG_USER_NS is not set |
70 | # CONFIG_AUDIT is not set | 67 | # CONFIG_AUDIT is not set |
71 | CONFIG_IKCONFIG=y | 68 | CONFIG_IKCONFIG=y |
72 | CONFIG_IKCONFIG_PROC=y | 69 | CONFIG_IKCONFIG_PROC=y |
@@ -96,16 +93,13 @@ CONFIG_TIMERFD=y | |||
96 | CONFIG_EVENTFD=y | 93 | CONFIG_EVENTFD=y |
97 | CONFIG_SHMEM=y | 94 | CONFIG_SHMEM=y |
98 | CONFIG_VM_EVENT_COUNTERS=y | 95 | CONFIG_VM_EVENT_COUNTERS=y |
99 | CONFIG_SLAB=y | 96 | CONFIG_SLUB_DEBUG=y |
100 | # CONFIG_SLUB is not set | 97 | # CONFIG_SLAB is not set |
98 | CONFIG_SLUB=y | ||
101 | # CONFIG_SLOB is not set | 99 | # CONFIG_SLOB is not set |
102 | CONFIG_RT_MUTEXES=y | 100 | CONFIG_RT_MUTEXES=y |
103 | # CONFIG_TINY_SHMEM is not set | 101 | # CONFIG_TINY_SHMEM is not set |
104 | CONFIG_BASE_SMALL=0 | 102 | CONFIG_BASE_SMALL=0 |
105 | |||
106 | # | ||
107 | # Loadable module support | ||
108 | # | ||
109 | CONFIG_MODULES=y | 103 | CONFIG_MODULES=y |
110 | CONFIG_MODULE_UNLOAD=y | 104 | CONFIG_MODULE_UNLOAD=y |
111 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 105 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
@@ -113,12 +107,9 @@ CONFIG_MODULE_UNLOAD=y | |||
113 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 107 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
114 | CONFIG_KMOD=y | 108 | CONFIG_KMOD=y |
115 | CONFIG_STOP_MACHINE=y | 109 | CONFIG_STOP_MACHINE=y |
116 | |||
117 | # | ||
118 | # Block layer | ||
119 | # | ||
120 | CONFIG_BLOCK=y | 110 | CONFIG_BLOCK=y |
121 | # CONFIG_BLK_DEV_IO_TRACE is not set | 111 | # CONFIG_BLK_DEV_IO_TRACE is not set |
112 | # CONFIG_BLK_DEV_BSG is not set | ||
122 | 113 | ||
123 | # | 114 | # |
124 | # IO Schedulers | 115 | # IO Schedulers |
@@ -138,7 +129,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
138 | # | 129 | # |
139 | CONFIG_PPC_MULTIPLATFORM=y | 130 | CONFIG_PPC_MULTIPLATFORM=y |
140 | # CONFIG_EMBEDDED6xx is not set | 131 | # CONFIG_EMBEDDED6xx is not set |
141 | # CONFIG_APUS is not set | 132 | # CONFIG_PPC_82xx is not set |
133 | # CONFIG_PPC_83xx is not set | ||
134 | # CONFIG_PPC_86xx is not set | ||
142 | # CONFIG_PPC_PSERIES is not set | 135 | # CONFIG_PPC_PSERIES is not set |
143 | # CONFIG_PPC_ISERIES is not set | 136 | # CONFIG_PPC_ISERIES is not set |
144 | # CONFIG_PPC_MPC52xx is not set | 137 | # CONFIG_PPC_MPC52xx is not set |
@@ -158,7 +151,11 @@ CONFIG_PS3_HTAB_SIZE=20 | |||
158 | CONFIG_PS3_USE_LPAR_ADDR=y | 151 | CONFIG_PS3_USE_LPAR_ADDR=y |
159 | CONFIG_PS3_VUART=y | 152 | CONFIG_PS3_VUART=y |
160 | CONFIG_PS3_PS3AV=y | 153 | CONFIG_PS3_PS3AV=y |
161 | CONFIG_PS3_SYS_MANAGER=y | 154 | CONFIG_PS3_SYS_MANAGER=m |
155 | CONFIG_PS3_STORAGE=y | ||
156 | CONFIG_PS3_DISK=y | ||
157 | CONFIG_PS3_ROM=m | ||
158 | CONFIG_PS3_FLASH=m | ||
162 | CONFIG_PPC_CELL=y | 159 | CONFIG_PPC_CELL=y |
163 | CONFIG_PPC_CELL_NATIVE=y | 160 | CONFIG_PPC_CELL_NATIVE=y |
164 | CONFIG_PPC_IBM_CELL_BLADE=y | 161 | CONFIG_PPC_IBM_CELL_BLADE=y |
@@ -171,6 +168,7 @@ CONFIG_SPU_BASE=y | |||
171 | CONFIG_CBE_RAS=y | 168 | CONFIG_CBE_RAS=y |
172 | CONFIG_CBE_THERM=m | 169 | CONFIG_CBE_THERM=m |
173 | CONFIG_CBE_CPUFREQ=m | 170 | CONFIG_CBE_CPUFREQ=m |
171 | CONFIG_CBE_CPUFREQ_PMI=m | ||
174 | # CONFIG_PQ2ADS is not set | 172 | # CONFIG_PQ2ADS is not set |
175 | CONFIG_PPC_NATIVE=y | 173 | CONFIG_PPC_NATIVE=y |
176 | CONFIG_UDBG_RTAS_CONSOLE=y | 174 | CONFIG_UDBG_RTAS_CONSOLE=y |
@@ -183,7 +181,7 @@ CONFIG_PPC_RTAS=y | |||
183 | # CONFIG_RTAS_ERROR_LOGGING is not set | 181 | # CONFIG_RTAS_ERROR_LOGGING is not set |
184 | CONFIG_RTAS_PROC=y | 182 | CONFIG_RTAS_PROC=y |
185 | CONFIG_RTAS_FLASH=y | 183 | CONFIG_RTAS_FLASH=y |
186 | # CONFIG_PPC_PMI is not set | 184 | CONFIG_PPC_PMI=m |
187 | CONFIG_MMIO_NVRAM=y | 185 | CONFIG_MMIO_NVRAM=y |
188 | # CONFIG_PPC_MPC106 is not set | 186 | # CONFIG_PPC_MPC106 is not set |
189 | # CONFIG_PPC_970_NAP is not set | 187 | # CONFIG_PPC_970_NAP is not set |
@@ -206,6 +204,8 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y | |||
206 | # CPU Frequency drivers | 204 | # CPU Frequency drivers |
207 | # | 205 | # |
208 | # CONFIG_CPM2 is not set | 206 | # CONFIG_CPM2 is not set |
207 | CONFIG_AXON_RAM=m | ||
208 | # CONFIG_FSL_ULI1575 is not set | ||
209 | 209 | ||
210 | # | 210 | # |
211 | # Kernel options | 211 | # Kernel options |
@@ -248,6 +248,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
248 | CONFIG_MIGRATION=y | 248 | CONFIG_MIGRATION=y |
249 | CONFIG_RESOURCES_64BIT=y | 249 | CONFIG_RESOURCES_64BIT=y |
250 | CONFIG_ZONE_DMA_FLAG=1 | 250 | CONFIG_ZONE_DMA_FLAG=1 |
251 | CONFIG_BOUNCE=y | ||
251 | CONFIG_ARCH_MEMORY_PROBE=y | 252 | CONFIG_ARCH_MEMORY_PROBE=y |
252 | CONFIG_NODES_SPAN_OTHER_NODES=y | 253 | CONFIG_NODES_SPAN_OTHER_NODES=y |
253 | CONFIG_PPC_HAS_HASH_64K=y | 254 | CONFIG_PPC_HAS_HASH_64K=y |
@@ -268,7 +269,9 @@ CONFIG_GENERIC_ISA_DMA=y | |||
268 | # CONFIG_PPC_INDIRECT_PCI is not set | 269 | # CONFIG_PPC_INDIRECT_PCI is not set |
269 | CONFIG_PCI=y | 270 | CONFIG_PCI=y |
270 | CONFIG_PCI_DOMAINS=y | 271 | CONFIG_PCI_DOMAINS=y |
272 | CONFIG_PCI_SYSCALL=y | ||
271 | CONFIG_PCIEPORTBUS=y | 273 | CONFIG_PCIEPORTBUS=y |
274 | CONFIG_PCIEAER=y | ||
272 | CONFIG_ARCH_SUPPORTS_MSI=y | 275 | CONFIG_ARCH_SUPPORTS_MSI=y |
273 | # CONFIG_PCI_MSI is not set | 276 | # CONFIG_PCI_MSI is not set |
274 | # CONFIG_PCI_DEBUG is not set | 277 | # CONFIG_PCI_DEBUG is not set |
@@ -359,6 +362,7 @@ CONFIG_NETFILTER_XT_TARGET_DSCP=m | |||
359 | CONFIG_NETFILTER_XT_TARGET_MARK=m | 362 | CONFIG_NETFILTER_XT_TARGET_MARK=m |
360 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 363 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
361 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | 364 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m |
365 | # CONFIG_NETFILTER_XT_TARGET_TRACE is not set | ||
362 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | 366 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m |
363 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 367 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
364 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 368 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
@@ -377,6 +381,7 @@ CONFIG_NETFILTER_XT_MATCH_SCTP=m | |||
377 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m | 381 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m |
378 | CONFIG_NETFILTER_XT_MATCH_STRING=m | 382 | CONFIG_NETFILTER_XT_MATCH_STRING=m |
379 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | 383 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m |
384 | CONFIG_NETFILTER_XT_MATCH_U32=m | ||
380 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | 385 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m |
381 | 386 | ||
382 | # | 387 | # |
@@ -448,6 +453,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
448 | # CONFIG_MAC80211 is not set | 453 | # CONFIG_MAC80211 is not set |
449 | # CONFIG_IEEE80211 is not set | 454 | # CONFIG_IEEE80211 is not set |
450 | # CONFIG_RFKILL is not set | 455 | # CONFIG_RFKILL is not set |
456 | # CONFIG_NET_9P is not set | ||
451 | 457 | ||
452 | # | 458 | # |
453 | # Device Drivers | 459 | # Device Drivers |
@@ -462,28 +468,12 @@ CONFIG_FW_LOADER=y | |||
462 | # CONFIG_DEBUG_DRIVER is not set | 468 | # CONFIG_DEBUG_DRIVER is not set |
463 | # CONFIG_DEBUG_DEVRES is not set | 469 | # CONFIG_DEBUG_DEVRES is not set |
464 | # CONFIG_SYS_HYPERVISOR is not set | 470 | # CONFIG_SYS_HYPERVISOR is not set |
465 | |||
466 | # | ||
467 | # Connector - unified userspace <-> kernelspace linker | ||
468 | # | ||
469 | # CONFIG_CONNECTOR is not set | 471 | # CONFIG_CONNECTOR is not set |
470 | # CONFIG_MTD is not set | 472 | # CONFIG_MTD is not set |
471 | 473 | CONFIG_OF_DEVICE=y | |
472 | # | ||
473 | # Parallel port support | ||
474 | # | ||
475 | # CONFIG_PARPORT is not set | 474 | # CONFIG_PARPORT is not set |
476 | 475 | CONFIG_BLK_DEV=y | |
477 | # | ||
478 | # Plug and Play support | ||
479 | # | ||
480 | # CONFIG_PNPACPI is not set | ||
481 | |||
482 | # | ||
483 | # Block devices | ||
484 | # | ||
485 | # CONFIG_BLK_DEV_FD is not set | 476 | # CONFIG_BLK_DEV_FD is not set |
486 | # CONFIG_BLK_CPQ_DA is not set | ||
487 | # CONFIG_BLK_CPQ_CISS_DA is not set | 477 | # CONFIG_BLK_CPQ_CISS_DA is not set |
488 | # CONFIG_BLK_DEV_DAC960 is not set | 478 | # CONFIG_BLK_DEV_DAC960 is not set |
489 | # CONFIG_BLK_DEV_UMEM is not set | 479 | # CONFIG_BLK_DEV_UMEM is not set |
@@ -499,14 +489,11 @@ CONFIG_BLK_DEV_RAM_SIZE=131072 | |||
499 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 489 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 |
500 | # CONFIG_CDROM_PKTCDVD is not set | 490 | # CONFIG_CDROM_PKTCDVD is not set |
501 | # CONFIG_ATA_OVER_ETH is not set | 491 | # CONFIG_ATA_OVER_ETH is not set |
502 | 492 | CONFIG_MISC_DEVICES=y | |
503 | # | ||
504 | # Misc devices | ||
505 | # | ||
506 | # CONFIG_PHANTOM is not set | 493 | # CONFIG_PHANTOM is not set |
494 | # CONFIG_EEPROM_93CX6 is not set | ||
507 | # CONFIG_SGI_IOC4 is not set | 495 | # CONFIG_SGI_IOC4 is not set |
508 | # CONFIG_TIFM_CORE is not set | 496 | # CONFIG_TIFM_CORE is not set |
509 | # CONFIG_BLINK is not set | ||
510 | CONFIG_IDE=y | 497 | CONFIG_IDE=y |
511 | CONFIG_BLK_DEV_IDE=y | 498 | CONFIG_BLK_DEV_IDE=y |
512 | 499 | ||
@@ -572,6 +559,7 @@ CONFIG_BLK_DEV_IDEDMA=y | |||
572 | # | 559 | # |
573 | # CONFIG_RAID_ATTRS is not set | 560 | # CONFIG_RAID_ATTRS is not set |
574 | CONFIG_SCSI=y | 561 | CONFIG_SCSI=y |
562 | CONFIG_SCSI_DMA=y | ||
575 | # CONFIG_SCSI_TGT is not set | 563 | # CONFIG_SCSI_TGT is not set |
576 | # CONFIG_SCSI_NETLINK is not set | 564 | # CONFIG_SCSI_NETLINK is not set |
577 | CONFIG_SCSI_PROC_FS=y | 565 | CONFIG_SCSI_PROC_FS=y |
@@ -604,10 +592,7 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
604 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 592 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
605 | CONFIG_SCSI_SAS_ATTRS=y | 593 | CONFIG_SCSI_SAS_ATTRS=y |
606 | # CONFIG_SCSI_SAS_LIBSAS is not set | 594 | # CONFIG_SCSI_SAS_LIBSAS is not set |
607 | 595 | CONFIG_SCSI_LOWLEVEL=y | |
608 | # | ||
609 | # SCSI low-level drivers | ||
610 | # | ||
611 | # CONFIG_ISCSI_TCP is not set | 596 | # CONFIG_ISCSI_TCP is not set |
612 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 597 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
613 | # CONFIG_SCSI_3W_9XXX is not set | 598 | # CONFIG_SCSI_3W_9XXX is not set |
@@ -622,7 +607,6 @@ CONFIG_SCSI_SAS_ATTRS=y | |||
622 | # CONFIG_MEGARAID_LEGACY is not set | 607 | # CONFIG_MEGARAID_LEGACY is not set |
623 | # CONFIG_MEGARAID_SAS is not set | 608 | # CONFIG_MEGARAID_SAS is not set |
624 | # CONFIG_SCSI_HPTIOP is not set | 609 | # CONFIG_SCSI_HPTIOP is not set |
625 | # CONFIG_SCSI_BUSLOGIC is not set | ||
626 | # CONFIG_SCSI_DMX3191D is not set | 610 | # CONFIG_SCSI_DMX3191D is not set |
627 | # CONFIG_SCSI_EATA is not set | 611 | # CONFIG_SCSI_EATA is not set |
628 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 612 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
@@ -696,10 +680,6 @@ CONFIG_PATA_PDC2027X=m | |||
696 | # CONFIG_PATA_VIA is not set | 680 | # CONFIG_PATA_VIA is not set |
697 | # CONFIG_PATA_WINBOND is not set | 681 | # CONFIG_PATA_WINBOND is not set |
698 | # CONFIG_PATA_SCC is not set | 682 | # CONFIG_PATA_SCC is not set |
699 | |||
700 | # | ||
701 | # Multi-device support (RAID and LVM) | ||
702 | # | ||
703 | CONFIG_MD=y | 683 | CONFIG_MD=y |
704 | CONFIG_BLK_DEV_MD=m | 684 | CONFIG_BLK_DEV_MD=m |
705 | CONFIG_MD_LINEAR=m | 685 | CONFIG_MD_LINEAR=m |
@@ -717,6 +697,7 @@ CONFIG_DM_MIRROR=m | |||
717 | CONFIG_DM_ZERO=m | 697 | CONFIG_DM_ZERO=m |
718 | CONFIG_DM_MULTIPATH=m | 698 | CONFIG_DM_MULTIPATH=m |
719 | # CONFIG_DM_MULTIPATH_EMC is not set | 699 | # CONFIG_DM_MULTIPATH_EMC is not set |
700 | # CONFIG_DM_MULTIPATH_RDAC is not set | ||
720 | # CONFIG_DM_DELAY is not set | 701 | # CONFIG_DM_DELAY is not set |
721 | 702 | ||
722 | # | 703 | # |
@@ -728,43 +709,30 @@ CONFIG_FUSION=y | |||
728 | CONFIG_FUSION_SAS=y | 709 | CONFIG_FUSION_SAS=y |
729 | CONFIG_FUSION_MAX_SGE=128 | 710 | CONFIG_FUSION_MAX_SGE=128 |
730 | # CONFIG_FUSION_CTL is not set | 711 | # CONFIG_FUSION_CTL is not set |
712 | # CONFIG_FUSION_LOGGING is not set | ||
731 | 713 | ||
732 | # | 714 | # |
733 | # IEEE 1394 (FireWire) support | 715 | # IEEE 1394 (FireWire) support |
734 | # | 716 | # |
735 | # CONFIG_FIREWIRE is not set | 717 | # CONFIG_FIREWIRE is not set |
736 | # CONFIG_IEEE1394 is not set | 718 | # CONFIG_IEEE1394 is not set |
737 | |||
738 | # | ||
739 | # I2O device support | ||
740 | # | ||
741 | # CONFIG_I2O is not set | 719 | # CONFIG_I2O is not set |
742 | # CONFIG_MACINTOSH_DRIVERS is not set | 720 | # CONFIG_MACINTOSH_DRIVERS is not set |
743 | |||
744 | # | ||
745 | # Network device support | ||
746 | # | ||
747 | CONFIG_NETDEVICES=y | 721 | CONFIG_NETDEVICES=y |
722 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
748 | # CONFIG_DUMMY is not set | 723 | # CONFIG_DUMMY is not set |
749 | CONFIG_BONDING=m | 724 | CONFIG_BONDING=m |
725 | CONFIG_MACVLAN=m | ||
750 | # CONFIG_EQUALIZER is not set | 726 | # CONFIG_EQUALIZER is not set |
751 | CONFIG_TUN=y | 727 | CONFIG_TUN=y |
752 | # CONFIG_ARCNET is not set | 728 | # CONFIG_ARCNET is not set |
753 | # CONFIG_PHYLIB is not set | 729 | # CONFIG_PHYLIB is not set |
754 | |||
755 | # | ||
756 | # Ethernet (10 or 100Mbit) | ||
757 | # | ||
758 | CONFIG_NET_ETHERNET=y | 730 | CONFIG_NET_ETHERNET=y |
759 | CONFIG_MII=y | 731 | CONFIG_MII=y |
760 | # CONFIG_HAPPYMEAL is not set | 732 | # CONFIG_HAPPYMEAL is not set |
761 | # CONFIG_SUNGEM is not set | 733 | # CONFIG_SUNGEM is not set |
762 | # CONFIG_CASSINI is not set | 734 | # CONFIG_CASSINI is not set |
763 | # CONFIG_NET_VENDOR_3COM is not set | 735 | # CONFIG_NET_VENDOR_3COM is not set |
764 | |||
765 | # | ||
766 | # Tulip family network device support | ||
767 | # | ||
768 | # CONFIG_NET_TULIP is not set | 736 | # CONFIG_NET_TULIP is not set |
769 | # CONFIG_HP100 is not set | 737 | # CONFIG_HP100 is not set |
770 | # CONFIG_NET_PCI is not set | 738 | # CONFIG_NET_PCI is not set |
@@ -781,11 +749,12 @@ CONFIG_E1000_NAPI=y | |||
781 | # CONFIG_SIS190 is not set | 749 | # CONFIG_SIS190 is not set |
782 | CONFIG_SKGE=m | 750 | CONFIG_SKGE=m |
783 | CONFIG_SKY2=m | 751 | CONFIG_SKY2=m |
784 | # CONFIG_SK98LIN is not set | 752 | # CONFIG_SKY2_DEBUG is not set |
785 | # CONFIG_VIA_VELOCITY is not set | 753 | # CONFIG_VIA_VELOCITY is not set |
786 | CONFIG_TIGON3=y | 754 | CONFIG_TIGON3=y |
787 | # CONFIG_BNX2 is not set | 755 | # CONFIG_BNX2 is not set |
788 | CONFIG_SPIDER_NET=y | 756 | CONFIG_SPIDER_NET=y |
757 | CONFIG_GELIC_NET=m | ||
789 | # CONFIG_QLA3XXX is not set | 758 | # CONFIG_QLA3XXX is not set |
790 | # CONFIG_ATL1 is not set | 759 | # CONFIG_ATL1 is not set |
791 | CONFIG_NETDEV_10000=y | 760 | CONFIG_NETDEV_10000=y |
@@ -824,15 +793,7 @@ CONFIG_NETDEV_10000=y | |||
824 | # CONFIG_NETCONSOLE is not set | 793 | # CONFIG_NETCONSOLE is not set |
825 | # CONFIG_NETPOLL is not set | 794 | # CONFIG_NETPOLL is not set |
826 | # CONFIG_NET_POLL_CONTROLLER is not set | 795 | # CONFIG_NET_POLL_CONTROLLER is not set |
827 | |||
828 | # | ||
829 | # ISDN subsystem | ||
830 | # | ||
831 | # CONFIG_ISDN is not set | 796 | # CONFIG_ISDN is not set |
832 | |||
833 | # | ||
834 | # Telephony Support | ||
835 | # | ||
836 | # CONFIG_PHONE is not set | 797 | # CONFIG_PHONE is not set |
837 | 798 | ||
838 | # | 799 | # |
@@ -925,10 +886,6 @@ CONFIG_UNIX98_PTYS=y | |||
925 | CONFIG_HVC_DRIVER=y | 886 | CONFIG_HVC_DRIVER=y |
926 | CONFIG_HVC_RTAS=y | 887 | CONFIG_HVC_RTAS=y |
927 | CONFIG_HVC_BEAT=y | 888 | CONFIG_HVC_BEAT=y |
928 | |||
929 | # | ||
930 | # IPMI | ||
931 | # | ||
932 | CONFIG_IPMI_HANDLER=m | 889 | CONFIG_IPMI_HANDLER=m |
933 | # CONFIG_IPMI_PANIC_EVENT is not set | 890 | # CONFIG_IPMI_PANIC_EVENT is not set |
934 | CONFIG_IPMI_DEVICE_INTERFACE=m | 891 | CONFIG_IPMI_DEVICE_INTERFACE=m |
@@ -963,10 +920,6 @@ CONFIG_GEN_RTC=y | |||
963 | # CONFIG_DRM is not set | 920 | # CONFIG_DRM is not set |
964 | # CONFIG_RAW_DRIVER is not set | 921 | # CONFIG_RAW_DRIVER is not set |
965 | # CONFIG_HANGCHECK_TIMER is not set | 922 | # CONFIG_HANGCHECK_TIMER is not set |
966 | |||
967 | # | ||
968 | # TPM devices | ||
969 | # | ||
970 | # CONFIG_TCG_TPM is not set | 923 | # CONFIG_TCG_TPM is not set |
971 | CONFIG_DEVPORT=y | 924 | CONFIG_DEVPORT=y |
972 | CONFIG_I2C=y | 925 | CONFIG_I2C=y |
@@ -1000,6 +953,7 @@ CONFIG_I2C_ALGOBIT=y | |||
1000 | # CONFIG_I2C_SIS5595 is not set | 953 | # CONFIG_I2C_SIS5595 is not set |
1001 | # CONFIG_I2C_SIS630 is not set | 954 | # CONFIG_I2C_SIS630 is not set |
1002 | # CONFIG_I2C_SIS96X is not set | 955 | # CONFIG_I2C_SIS96X is not set |
956 | # CONFIG_I2C_TAOS_EVM is not set | ||
1003 | # CONFIG_I2C_STUB is not set | 957 | # CONFIG_I2C_STUB is not set |
1004 | # CONFIG_I2C_TINY_USB is not set | 958 | # CONFIG_I2C_TINY_USB is not set |
1005 | # CONFIG_I2C_VIA is not set | 959 | # CONFIG_I2C_VIA is not set |
@@ -1011,11 +965,13 @@ CONFIG_I2C_ALGOBIT=y | |||
1011 | # | 965 | # |
1012 | # CONFIG_SENSORS_DS1337 is not set | 966 | # CONFIG_SENSORS_DS1337 is not set |
1013 | # CONFIG_SENSORS_DS1374 is not set | 967 | # CONFIG_SENSORS_DS1374 is not set |
968 | # CONFIG_DS1682 is not set | ||
1014 | # CONFIG_SENSORS_EEPROM is not set | 969 | # CONFIG_SENSORS_EEPROM is not set |
1015 | # CONFIG_SENSORS_PCF8574 is not set | 970 | # CONFIG_SENSORS_PCF8574 is not set |
1016 | # CONFIG_SENSORS_PCA9539 is not set | 971 | # CONFIG_SENSORS_PCA9539 is not set |
1017 | # CONFIG_SENSORS_PCF8591 is not set | 972 | # CONFIG_SENSORS_PCF8591 is not set |
1018 | # CONFIG_SENSORS_MAX6875 is not set | 973 | # CONFIG_SENSORS_MAX6875 is not set |
974 | # CONFIG_SENSORS_TSL2550 is not set | ||
1019 | # CONFIG_I2C_DEBUG_CORE is not set | 975 | # CONFIG_I2C_DEBUG_CORE is not set |
1020 | # CONFIG_I2C_DEBUG_ALGO is not set | 976 | # CONFIG_I2C_DEBUG_ALGO is not set |
1021 | # CONFIG_I2C_DEBUG_BUS is not set | 977 | # CONFIG_I2C_DEBUG_BUS is not set |
@@ -1026,11 +982,8 @@ CONFIG_I2C_ALGOBIT=y | |||
1026 | # | 982 | # |
1027 | # CONFIG_SPI is not set | 983 | # CONFIG_SPI is not set |
1028 | # CONFIG_SPI_MASTER is not set | 984 | # CONFIG_SPI_MASTER is not set |
1029 | |||
1030 | # | ||
1031 | # Dallas's 1-wire bus | ||
1032 | # | ||
1033 | # CONFIG_W1 is not set | 985 | # CONFIG_W1 is not set |
986 | # CONFIG_POWER_SUPPLY is not set | ||
1034 | # CONFIG_HWMON is not set | 987 | # CONFIG_HWMON is not set |
1035 | 988 | ||
1036 | # | 989 | # |
@@ -1055,6 +1008,7 @@ CONFIG_I2C_ALGOBIT=y | |||
1055 | # | 1008 | # |
1056 | # CONFIG_DISPLAY_SUPPORT is not set | 1009 | # CONFIG_DISPLAY_SUPPORT is not set |
1057 | # CONFIG_VGASTATE is not set | 1010 | # CONFIG_VGASTATE is not set |
1011 | CONFIG_VIDEO_OUTPUT_CONTROL=m | ||
1058 | # CONFIG_FB is not set | 1012 | # CONFIG_FB is not set |
1059 | # CONFIG_FB_IBM_GXT4500 is not set | 1013 | # CONFIG_FB_IBM_GXT4500 is not set |
1060 | 1014 | ||
@@ -1068,10 +1022,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
1068 | # Sound | 1022 | # Sound |
1069 | # | 1023 | # |
1070 | # CONFIG_SOUND is not set | 1024 | # CONFIG_SOUND is not set |
1071 | 1025 | CONFIG_HID_SUPPORT=y | |
1072 | # | ||
1073 | # HID Devices | ||
1074 | # | ||
1075 | CONFIG_HID=m | 1026 | CONFIG_HID=m |
1076 | # CONFIG_HID_DEBUG is not set | 1027 | # CONFIG_HID_DEBUG is not set |
1077 | 1028 | ||
@@ -1085,10 +1036,7 @@ CONFIG_HID=m | |||
1085 | # | 1036 | # |
1086 | # CONFIG_USB_KBD is not set | 1037 | # CONFIG_USB_KBD is not set |
1087 | # CONFIG_USB_MOUSE is not set | 1038 | # CONFIG_USB_MOUSE is not set |
1088 | 1039 | CONFIG_USB_SUPPORT=y | |
1089 | # | ||
1090 | # USB support | ||
1091 | # | ||
1092 | CONFIG_USB_ARCH_HAS_HCD=y | 1040 | CONFIG_USB_ARCH_HAS_HCD=y |
1093 | CONFIG_USB_ARCH_HAS_OHCI=y | 1041 | CONFIG_USB_ARCH_HAS_OHCI=y |
1094 | CONFIG_USB_ARCH_HAS_EHCI=y | 1042 | CONFIG_USB_ARCH_HAS_EHCI=y |
@@ -1122,6 +1070,7 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | |||
1122 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 1070 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
1123 | # CONFIG_USB_UHCI_HCD is not set | 1071 | # CONFIG_USB_UHCI_HCD is not set |
1124 | # CONFIG_USB_SL811_HCD is not set | 1072 | # CONFIG_USB_SL811_HCD is not set |
1073 | # CONFIG_USB_R8A66597_HCD is not set | ||
1125 | 1074 | ||
1126 | # | 1075 | # |
1127 | # USB Device Class drivers | 1076 | # USB Device Class drivers |
@@ -1199,23 +1148,7 @@ CONFIG_USB_MON=y | |||
1199 | # | 1148 | # |
1200 | # CONFIG_USB_GADGET is not set | 1149 | # CONFIG_USB_GADGET is not set |
1201 | # CONFIG_MMC is not set | 1150 | # CONFIG_MMC is not set |
1202 | |||
1203 | # | ||
1204 | # LED devices | ||
1205 | # | ||
1206 | # CONFIG_NEW_LEDS is not set | 1151 | # CONFIG_NEW_LEDS is not set |
1207 | |||
1208 | # | ||
1209 | # LED drivers | ||
1210 | # | ||
1211 | |||
1212 | # | ||
1213 | # LED Triggers | ||
1214 | # | ||
1215 | |||
1216 | # | ||
1217 | # InfiniBand support | ||
1218 | # | ||
1219 | CONFIG_INFINIBAND=m | 1152 | CONFIG_INFINIBAND=m |
1220 | CONFIG_INFINIBAND_USER_MAD=m | 1153 | CONFIG_INFINIBAND_USER_MAD=m |
1221 | CONFIG_INFINIBAND_USER_ACCESS=m | 1154 | CONFIG_INFINIBAND_USER_ACCESS=m |
@@ -1231,14 +1164,13 @@ CONFIG_INFINIBAND_IPOIB_DEBUG=y | |||
1231 | CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y | 1164 | CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y |
1232 | # CONFIG_INFINIBAND_SRP is not set | 1165 | # CONFIG_INFINIBAND_SRP is not set |
1233 | # CONFIG_INFINIBAND_ISER is not set | 1166 | # CONFIG_INFINIBAND_ISER is not set |
1167 | CONFIG_EDAC=y | ||
1234 | 1168 | ||
1235 | # | 1169 | # |
1236 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) | 1170 | # Reporting subsystems |
1237 | # | ||
1238 | |||
1239 | # | ||
1240 | # Real Time Clock | ||
1241 | # | 1171 | # |
1172 | # CONFIG_EDAC_DEBUG is not set | ||
1173 | CONFIG_EDAC_MM_EDAC=y | ||
1242 | # CONFIG_RTC_CLASS is not set | 1174 | # CONFIG_RTC_CLASS is not set |
1243 | 1175 | ||
1244 | # | 1176 | # |
@@ -1255,6 +1187,12 @@ CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y | |||
1255 | # | 1187 | # |
1256 | 1188 | ||
1257 | # | 1189 | # |
1190 | # Userspace I/O | ||
1191 | # | ||
1192 | CONFIG_UIO=m | ||
1193 | # CONFIG_UIO_CIF is not set | ||
1194 | |||
1195 | # | ||
1258 | # File systems | 1196 | # File systems |
1259 | # | 1197 | # |
1260 | CONFIG_EXT2_FS=y | 1198 | CONFIG_EXT2_FS=y |
@@ -1357,7 +1295,6 @@ CONFIG_SUNRPC=y | |||
1357 | # CONFIG_NCP_FS is not set | 1295 | # CONFIG_NCP_FS is not set |
1358 | # CONFIG_CODA_FS is not set | 1296 | # CONFIG_CODA_FS is not set |
1359 | # CONFIG_AFS_FS is not set | 1297 | # CONFIG_AFS_FS is not set |
1360 | # CONFIG_9P_FS is not set | ||
1361 | 1298 | ||
1362 | # | 1299 | # |
1363 | # Partition Types | 1300 | # Partition Types |
@@ -1439,6 +1376,7 @@ CONFIG_BITREVERSE=y | |||
1439 | # CONFIG_CRC16 is not set | 1376 | # CONFIG_CRC16 is not set |
1440 | # CONFIG_CRC_ITU_T is not set | 1377 | # CONFIG_CRC_ITU_T is not set |
1441 | CONFIG_CRC32=y | 1378 | CONFIG_CRC32=y |
1379 | # CONFIG_CRC7 is not set | ||
1442 | # CONFIG_LIBCRC32C is not set | 1380 | # CONFIG_LIBCRC32C is not set |
1443 | CONFIG_ZLIB_INFLATE=m | 1381 | CONFIG_ZLIB_INFLATE=m |
1444 | CONFIG_ZLIB_DEFLATE=m | 1382 | CONFIG_ZLIB_DEFLATE=m |
@@ -1471,9 +1409,10 @@ CONFIG_DEBUG_FS=y | |||
1471 | CONFIG_DEBUG_KERNEL=y | 1409 | CONFIG_DEBUG_KERNEL=y |
1472 | # CONFIG_DEBUG_SHIRQ is not set | 1410 | # CONFIG_DEBUG_SHIRQ is not set |
1473 | # CONFIG_DETECT_SOFTLOCKUP is not set | 1411 | # CONFIG_DETECT_SOFTLOCKUP is not set |
1412 | CONFIG_SCHED_DEBUG=y | ||
1474 | # CONFIG_SCHEDSTATS is not set | 1413 | # CONFIG_SCHEDSTATS is not set |
1475 | # CONFIG_TIMER_STATS is not set | 1414 | # CONFIG_TIMER_STATS is not set |
1476 | # CONFIG_DEBUG_SLAB is not set | 1415 | # CONFIG_SLUB_DEBUG_ON is not set |
1477 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1416 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1478 | # CONFIG_RT_MUTEX_TESTER is not set | 1417 | # CONFIG_RT_MUTEX_TESTER is not set |
1479 | # CONFIG_DEBUG_SPINLOCK is not set | 1418 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1504,10 +1443,6 @@ CONFIG_IRQSTACKS=y | |||
1504 | # | 1443 | # |
1505 | # CONFIG_KEYS is not set | 1444 | # CONFIG_KEYS is not set |
1506 | # CONFIG_SECURITY is not set | 1445 | # CONFIG_SECURITY is not set |
1507 | |||
1508 | # | ||
1509 | # Cryptographic options | ||
1510 | # | ||
1511 | CONFIG_CRYPTO=y | 1446 | CONFIG_CRYPTO=y |
1512 | CONFIG_CRYPTO_ALGAPI=y | 1447 | CONFIG_CRYPTO_ALGAPI=y |
1513 | CONFIG_CRYPTO_BLKCIPHER=m | 1448 | CONFIG_CRYPTO_BLKCIPHER=m |
@@ -1546,7 +1481,4 @@ CONFIG_CRYPTO_DEFLATE=m | |||
1546 | # CONFIG_CRYPTO_CRC32C is not set | 1481 | # CONFIG_CRYPTO_CRC32C is not set |
1547 | # CONFIG_CRYPTO_CAMELLIA is not set | 1482 | # CONFIG_CRYPTO_CAMELLIA is not set |
1548 | # CONFIG_CRYPTO_TEST is not set | 1483 | # CONFIG_CRYPTO_TEST is not set |
1549 | 1484 | CONFIG_CRYPTO_HW=y | |
1550 | # | ||
1551 | # Hardware crypto devices | ||
1552 | # | ||
diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c index 2bb1cb911783..d8502e377518 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c | |||
@@ -299,7 +299,7 @@ static inline int check_io_access(struct pt_regs *regs) | |||
299 | #ifndef CONFIG_FSL_BOOKE | 299 | #ifndef CONFIG_FSL_BOOKE |
300 | #define get_mc_reason(regs) ((regs)->dsisr) | 300 | #define get_mc_reason(regs) ((regs)->dsisr) |
301 | #else | 301 | #else |
302 | #define get_mc_reason(regs) (mfspr(SPRN_MCSR)) | 302 | #define get_mc_reason(regs) (mfspr(SPRN_MCSR) & MCSR_MASK) |
303 | #endif | 303 | #endif |
304 | #define REASON_FP ESR_FP | 304 | #define REASON_FP ESR_FP |
305 | #define REASON_ILLEGAL (ESR_PIL | ESR_PUO) | 305 | #define REASON_ILLEGAL (ESR_PIL | ESR_PUO) |
@@ -414,8 +414,6 @@ void machine_check_exception(struct pt_regs *regs) | |||
414 | printk("Data Cache Push Parity Error\n"); | 414 | printk("Data Cache Push Parity Error\n"); |
415 | if (reason & MCSR_DCPERR) | 415 | if (reason & MCSR_DCPERR) |
416 | printk("Data Cache Parity Error\n"); | 416 | printk("Data Cache Parity Error\n"); |
417 | if (reason & MCSR_GL_CI) | ||
418 | printk("Guarded Load or Cache-Inhibited stwcx.\n"); | ||
419 | if (reason & MCSR_BUS_IAERR) | 417 | if (reason & MCSR_BUS_IAERR) |
420 | printk("Bus - Instruction Address Error\n"); | 418 | printk("Bus - Instruction Address Error\n"); |
421 | if (reason & MCSR_BUS_RAERR) | 419 | if (reason & MCSR_BUS_RAERR) |
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c index a73d2d700973..ff1811ac6c81 100644 --- a/arch/powerpc/mm/slb.c +++ b/arch/powerpc/mm/slb.c | |||
@@ -74,6 +74,22 @@ static inline void slb_shadow_clear(unsigned long entry) | |||
74 | get_slb_shadow()->save_area[entry].esid = 0; | 74 | get_slb_shadow()->save_area[entry].esid = 0; |
75 | } | 75 | } |
76 | 76 | ||
77 | static inline void create_shadowed_slbe(unsigned long ea, unsigned long flags, | ||
78 | unsigned long entry) | ||
79 | { | ||
80 | /* | ||
81 | * Updating the shadow buffer before writing the SLB ensures | ||
82 | * we don't get a stale entry here if we get preempted by PHYP | ||
83 | * between these two statements. | ||
84 | */ | ||
85 | slb_shadow_update(ea, flags, entry); | ||
86 | |||
87 | asm volatile("slbmte %0,%1" : | ||
88 | : "r" (mk_vsid_data(ea, flags)), | ||
89 | "r" (mk_esid_data(ea, entry)) | ||
90 | : "memory" ); | ||
91 | } | ||
92 | |||
77 | void slb_flush_and_rebolt(void) | 93 | void slb_flush_and_rebolt(void) |
78 | { | 94 | { |
79 | /* If you change this make sure you change SLB_NUM_BOLTED | 95 | /* If you change this make sure you change SLB_NUM_BOLTED |
@@ -226,12 +242,16 @@ void slb_initialize(void) | |||
226 | vflags = SLB_VSID_KERNEL | vmalloc_llp; | 242 | vflags = SLB_VSID_KERNEL | vmalloc_llp; |
227 | 243 | ||
228 | /* Invalidate the entire SLB (even slot 0) & all the ERATS */ | 244 | /* Invalidate the entire SLB (even slot 0) & all the ERATS */ |
229 | slb_shadow_update(PAGE_OFFSET, lflags, 0); | 245 | asm volatile("isync":::"memory"); |
230 | asm volatile("isync; slbia; sync; slbmte %0,%1; isync" :: | 246 | asm volatile("slbmte %0,%0"::"r" (0) : "memory"); |
231 | "r" (get_slb_shadow()->save_area[0].vsid), | 247 | asm volatile("isync; slbia; isync":::"memory"); |
232 | "r" (get_slb_shadow()->save_area[0].esid) : "memory"); | 248 | create_shadowed_slbe(PAGE_OFFSET, lflags, 0); |
233 | 249 | ||
234 | slb_shadow_update(VMALLOC_START, vflags, 1); | 250 | create_shadowed_slbe(VMALLOC_START, vflags, 1); |
235 | 251 | ||
236 | slb_flush_and_rebolt(); | 252 | /* We don't bolt the stack for the time being - we're in boot, |
253 | * so the stack is in the bolted segment. By the time it goes | ||
254 | * elsewhere, we'll call _switch() which will bolt in the new | ||
255 | * one. */ | ||
256 | asm volatile("isync":::"memory"); | ||
237 | } | 257 | } |
diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig index f58184086c8c..f620171ad6b1 100644 --- a/arch/powerpc/platforms/85xx/Kconfig +++ b/arch/powerpc/platforms/85xx/Kconfig | |||
@@ -33,6 +33,7 @@ config MPC8544_DS | |||
33 | bool "Freescale MPC8544 DS" | 33 | bool "Freescale MPC8544 DS" |
34 | select PPC_I8259 | 34 | select PPC_I8259 |
35 | select DEFAULT_UIMAGE | 35 | select DEFAULT_UIMAGE |
36 | select FSL_ULI1575 | ||
36 | help | 37 | help |
37 | This option enables support for the MPC8544 DS board | 38 | This option enables support for the MPC8544 DS board |
38 | 39 | ||
diff --git a/arch/powerpc/platforms/85xx/mpc8544_ds.c b/arch/powerpc/platforms/85xx/mpc8544_ds.c index 4905f6f8903b..0f834d8be444 100644 --- a/arch/powerpc/platforms/85xx/mpc8544_ds.c +++ b/arch/powerpc/platforms/85xx/mpc8544_ds.c | |||
@@ -114,211 +114,25 @@ void __init mpc8544_ds_pic_init(void) | |||
114 | } | 114 | } |
115 | 115 | ||
116 | #ifdef CONFIG_PCI | 116 | #ifdef CONFIG_PCI |
117 | enum pirq { PIRQA = 8, PIRQB, PIRQC, PIRQD, PIRQE, PIRQF, PIRQG, PIRQH }; | 117 | extern int uses_fsl_uli_m1575; |
118 | extern int uli_exclude_device(struct pci_controller *hose, | ||
119 | u_char bus, u_char devfn); | ||
118 | 120 | ||
119 | /* | 121 | static int mpc85xx_exclude_device(struct pci_controller *hose, |
120 | * Value in table -- IRQ number | 122 | u_char bus, u_char devfn) |
121 | */ | ||
122 | const unsigned char uli1575_irq_route_table[16] = { | ||
123 | 0, /* 0: Reserved */ | ||
124 | 0x8, | ||
125 | 0, /* 2: Reserved */ | ||
126 | 0x2, | ||
127 | 0x4, | ||
128 | 0x5, | ||
129 | 0x7, | ||
130 | 0x6, | ||
131 | 0, /* 8: Reserved */ | ||
132 | 0x1, | ||
133 | 0x3, | ||
134 | 0x9, | ||
135 | 0xb, | ||
136 | 0, /* 13: Reserved */ | ||
137 | 0xd, | ||
138 | 0xf, | ||
139 | }; | ||
140 | |||
141 | static int __devinit | ||
142 | get_pci_irq_from_of(struct pci_controller *hose, int slot, int pin) | ||
143 | { | ||
144 | struct of_irq oirq; | ||
145 | u32 laddr[3]; | ||
146 | struct device_node *hosenode = hose ? hose->arch_data : NULL; | ||
147 | |||
148 | if (!hosenode) | ||
149 | return -EINVAL; | ||
150 | |||
151 | laddr[0] = (hose->first_busno << 16) | (PCI_DEVFN(slot, 0) << 8); | ||
152 | laddr[1] = laddr[2] = 0; | ||
153 | of_irq_map_raw(hosenode, &pin, 1, laddr, &oirq); | ||
154 | DBG("mpc8544_ds: pci irq addr %x, slot %d, pin %d, irq %d\n", | ||
155 | laddr[0], slot, pin, oirq.specifier[0]); | ||
156 | return oirq.specifier[0]; | ||
157 | } | ||
158 | |||
159 | /*8259*/ | ||
160 | static void __devinit quirk_uli1575(struct pci_dev *dev) | ||
161 | { | ||
162 | unsigned short temp; | ||
163 | struct pci_controller *hose = pci_bus_to_host(dev->bus); | ||
164 | unsigned char irq2pin[16]; | ||
165 | unsigned long pirq_map_word = 0; | ||
166 | u32 irq; | ||
167 | int i; | ||
168 | |||
169 | /* | ||
170 | * ULI1575 interrupts route setup | ||
171 | */ | ||
172 | memset(irq2pin, 0, 16); /* Initialize default value 0 */ | ||
173 | |||
174 | irq2pin[6]=PIRQA+3; /* enabled mapping for IRQ6 to PIRQD, used by SATA */ | ||
175 | |||
176 | /* | ||
177 | * PIRQE -> PIRQF mapping set manually | ||
178 | * | ||
179 | * IRQ pin IRQ# | ||
180 | * PIRQE ---- 9 | ||
181 | * PIRQF ---- 10 | ||
182 | * PIRQG ---- 11 | ||
183 | * PIRQH ---- 12 | ||
184 | */ | ||
185 | for (i = 0; i < 4; i++) | ||
186 | irq2pin[i + 9] = PIRQE + i; | ||
187 | |||
188 | /* Set IRQ-PIRQ Mapping to ULI1575 */ | ||
189 | for (i = 0; i < 16; i++) | ||
190 | if (irq2pin[i]) | ||
191 | pirq_map_word |= (uli1575_irq_route_table[i] & 0xf) | ||
192 | << ((irq2pin[i] - PIRQA) * 4); | ||
193 | |||
194 | pirq_map_word |= 1<<26; /* disable INTx in EP mode*/ | ||
195 | |||
196 | /* ULI1575 IRQ mapping conf register default value is 0xb9317542 */ | ||
197 | DBG("Setup ULI1575 IRQ mapping configuration register value = 0x%x\n", | ||
198 | (int)pirq_map_word); | ||
199 | pci_write_config_dword(dev, 0x48, pirq_map_word); | ||
200 | |||
201 | #define ULI1575_SET_DEV_IRQ(slot, pin, reg) \ | ||
202 | do { \ | ||
203 | int irq; \ | ||
204 | irq = get_pci_irq_from_of(hose, slot, pin); \ | ||
205 | if (irq > 0 && irq < 16) \ | ||
206 | pci_write_config_byte(dev, reg, irq2pin[irq]); \ | ||
207 | else \ | ||
208 | printk(KERN_WARNING "ULI1575 device" \ | ||
209 | "(slot %d, pin %d) irq %d is invalid.\n", \ | ||
210 | slot, pin, irq); \ | ||
211 | } while(0) | ||
212 | |||
213 | /* USB 1.1 OHCI controller 1, slot 28, pin 1 */ | ||
214 | ULI1575_SET_DEV_IRQ(28, 1, 0x86); | ||
215 | |||
216 | /* USB 1.1 OHCI controller 2, slot 28, pin 2 */ | ||
217 | ULI1575_SET_DEV_IRQ(28, 2, 0x87); | ||
218 | |||
219 | /* USB 1.1 OHCI controller 3, slot 28, pin 3 */ | ||
220 | ULI1575_SET_DEV_IRQ(28, 3, 0x88); | ||
221 | |||
222 | /* USB 2.0 controller, slot 28, pin 4 */ | ||
223 | irq = get_pci_irq_from_of(hose, 28, 4); | ||
224 | if (irq >= 0 && irq <= 15) | ||
225 | pci_write_config_dword(dev, 0x74, uli1575_irq_route_table[irq]); | ||
226 | |||
227 | /* Audio controller, slot 29, pin 1 */ | ||
228 | ULI1575_SET_DEV_IRQ(29, 1, 0x8a); | ||
229 | |||
230 | /* Modem controller, slot 29, pin 2 */ | ||
231 | ULI1575_SET_DEV_IRQ(29, 2, 0x8b); | ||
232 | |||
233 | /* HD audio controller, slot 29, pin 3 */ | ||
234 | ULI1575_SET_DEV_IRQ(29, 3, 0x8c); | ||
235 | |||
236 | /* SMB interrupt: slot 30, pin 1 */ | ||
237 | ULI1575_SET_DEV_IRQ(30, 1, 0x8e); | ||
238 | |||
239 | /* PMU ACPI SCI interrupt: slot 30, pin 2 */ | ||
240 | ULI1575_SET_DEV_IRQ(30, 2, 0x8f); | ||
241 | |||
242 | /* Serial ATA interrupt: slot 31, pin 1 */ | ||
243 | ULI1575_SET_DEV_IRQ(31, 1, 0x8d); | ||
244 | |||
245 | /* Primary PATA IDE IRQ: 14 | ||
246 | * Secondary PATA IDE IRQ: 15 | ||
247 | */ | ||
248 | pci_write_config_byte(dev, 0x44, 0x30 | uli1575_irq_route_table[14]); | ||
249 | pci_write_config_byte(dev, 0x75, uli1575_irq_route_table[15]); | ||
250 | |||
251 | /* Set IRQ14 and IRQ15 to legacy IRQs */ | ||
252 | pci_read_config_word(dev, 0x46, &temp); | ||
253 | temp |= 0xc000; | ||
254 | pci_write_config_word(dev, 0x46, temp); | ||
255 | |||
256 | /* Set i8259 interrupt trigger | ||
257 | * IRQ 3: Level | ||
258 | * IRQ 4: Level | ||
259 | * IRQ 5: Level | ||
260 | * IRQ 6: Level | ||
261 | * IRQ 7: Level | ||
262 | * IRQ 9: Level | ||
263 | * IRQ 10: Level | ||
264 | * IRQ 11: Level | ||
265 | * IRQ 12: Level | ||
266 | * IRQ 14: Edge | ||
267 | * IRQ 15: Edge | ||
268 | */ | ||
269 | outb(0xfa, 0x4d0); | ||
270 | outb(0x1e, 0x4d1); | ||
271 | |||
272 | #undef ULI1575_SET_DEV_IRQ | ||
273 | } | ||
274 | |||
275 | /* SATA */ | ||
276 | static void __devinit quirk_uli5288(struct pci_dev *dev) | ||
277 | { | 123 | { |
278 | unsigned char c; | 124 | struct device_node* node; |
279 | 125 | struct resource rsrc; | |
280 | pci_read_config_byte(dev, 0x83, &c); | ||
281 | c |= 0x80; /* read/write lock */ | ||
282 | pci_write_config_byte(dev, 0x83, c); | ||
283 | |||
284 | pci_write_config_byte(dev, 0x09, 0x01); /* Base class code: storage */ | ||
285 | pci_write_config_byte(dev, 0x0a, 0x06); /* IDE disk */ | ||
286 | 126 | ||
287 | pci_read_config_byte(dev, 0x83, &c); | 127 | node = (struct device_node *)hose->arch_data; |
288 | c &= 0x7f; | 128 | of_address_to_resource(node, 0, &rsrc); |
289 | pci_write_config_byte(dev, 0x83, c); | ||
290 | |||
291 | pci_read_config_byte(dev, 0x84, &c); | ||
292 | c |= 0x01; /* emulated PATA mode enabled */ | ||
293 | pci_write_config_byte(dev, 0x84, c); | ||
294 | } | ||
295 | 129 | ||
296 | /* PATA */ | 130 | if ((rsrc.start & 0xfffff) == 0xb000) { |
297 | static void __devinit quirk_uli5229(struct pci_dev *dev) | 131 | return uli_exclude_device(hose, bus, devfn); |
298 | { | 132 | } |
299 | unsigned short temp; | ||
300 | pci_write_config_word(dev, 0x04, 0x0405); /* MEM IO MSI */ | ||
301 | pci_read_config_word(dev, 0x4a, &temp); | ||
302 | temp |= 0x1000; /* Enable Native IRQ 14/15 */ | ||
303 | pci_write_config_word(dev, 0x4a, temp); | ||
304 | } | ||
305 | 133 | ||
306 | /*Bridge*/ | 134 | return PCIBIOS_SUCCESSFUL; |
307 | static void __devinit early_uli5249(struct pci_dev *dev) | ||
308 | { | ||
309 | unsigned char temp; | ||
310 | pci_write_config_word(dev, 0x04, 0x0007); /* mem access */ | ||
311 | pci_read_config_byte(dev, 0x7c, &temp); | ||
312 | pci_write_config_byte(dev, 0x7c, 0x80); /* R/W lock control */ | ||
313 | pci_write_config_byte(dev, 0x09, 0x01); /* set as pci-pci bridge */ | ||
314 | pci_write_config_byte(dev, 0x7c, temp); /* restore pci bus debug control */ | ||
315 | dev->class |= 0x1; | ||
316 | } | 135 | } |
317 | |||
318 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, quirk_uli1575); | ||
319 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288); | ||
320 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229); | ||
321 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, 0x5249, early_uli5249); | ||
322 | #endif /* CONFIG_PCI */ | 136 | #endif /* CONFIG_PCI */ |
323 | 137 | ||
324 | /* | 138 | /* |
@@ -342,6 +156,8 @@ static void __init mpc8544_ds_setup_arch(void) | |||
342 | else | 156 | else |
343 | fsl_add_bridge(np, 0); | 157 | fsl_add_bridge(np, 0); |
344 | } | 158 | } |
159 | uses_fsl_uli_m1575 = 1; | ||
160 | ppc_md.pci_exclude_device = mpc85xx_exclude_device; | ||
345 | #endif | 161 | #endif |
346 | 162 | ||
347 | printk("MPC8544 DS board from Freescale Semiconductor\n"); | 163 | printk("MPC8544 DS board from Freescale Semiconductor\n"); |
diff --git a/arch/powerpc/platforms/86xx/Kconfig b/arch/powerpc/platforms/86xx/Kconfig index 343b76d0d793..685b2fbbbe00 100644 --- a/arch/powerpc/platforms/86xx/Kconfig +++ b/arch/powerpc/platforms/86xx/Kconfig | |||
@@ -7,6 +7,7 @@ config MPC8641_HPCN | |||
7 | bool "Freescale MPC8641 HPCN" | 7 | bool "Freescale MPC8641 HPCN" |
8 | select PPC_I8259 | 8 | select PPC_I8259 |
9 | select DEFAULT_UIMAGE | 9 | select DEFAULT_UIMAGE |
10 | select FSL_ULI1575 | ||
10 | help | 11 | help |
11 | This option enables support for the MPC8641 HPCN board. | 12 | This option enables support for the MPC8641 HPCN board. |
12 | 13 | ||
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c index e9eaa0749ae6..56b27caf7a27 100644 --- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | |||
@@ -107,220 +107,25 @@ mpc86xx_hpcn_init_irq(void) | |||
107 | } | 107 | } |
108 | 108 | ||
109 | #ifdef CONFIG_PCI | 109 | #ifdef CONFIG_PCI |
110 | extern int uses_fsl_uli_m1575; | ||
111 | extern int uli_exclude_device(struct pci_controller *hose, | ||
112 | u_char bus, u_char devfn); | ||
110 | 113 | ||
111 | enum pirq{PIRQA = 8, PIRQB, PIRQC, PIRQD, PIRQE, PIRQF, PIRQG, PIRQH}; | 114 | static int mpc86xx_exclude_device(struct pci_controller *hose, |
112 | const unsigned char uli1575_irq_route_table[16] = { | 115 | u_char bus, u_char devfn) |
113 | 0, /* 0: Reserved */ | ||
114 | 0x8, /* 1: 0b1000 */ | ||
115 | 0, /* 2: Reserved */ | ||
116 | 0x2, /* 3: 0b0010 */ | ||
117 | 0x4, /* 4: 0b0100 */ | ||
118 | 0x5, /* 5: 0b0101 */ | ||
119 | 0x7, /* 6: 0b0111 */ | ||
120 | 0x6, /* 7: 0b0110 */ | ||
121 | 0, /* 8: Reserved */ | ||
122 | 0x1, /* 9: 0b0001 */ | ||
123 | 0x3, /* 10: 0b0011 */ | ||
124 | 0x9, /* 11: 0b1001 */ | ||
125 | 0xb, /* 12: 0b1011 */ | ||
126 | 0, /* 13: Reserved */ | ||
127 | 0xd, /* 14, 0b1101 */ | ||
128 | 0xf, /* 15, 0b1111 */ | ||
129 | }; | ||
130 | |||
131 | static int __devinit | ||
132 | get_pci_irq_from_of(struct pci_controller *hose, int slot, int pin) | ||
133 | { | ||
134 | struct of_irq oirq; | ||
135 | u32 laddr[3]; | ||
136 | struct device_node *hosenode = hose ? hose->arch_data : NULL; | ||
137 | |||
138 | if (!hosenode) return -EINVAL; | ||
139 | |||
140 | laddr[0] = (hose->first_busno << 16) | (PCI_DEVFN(slot, 0) << 8); | ||
141 | laddr[1] = laddr[2] = 0; | ||
142 | of_irq_map_raw(hosenode, &pin, 1, laddr, &oirq); | ||
143 | DBG("mpc86xx_hpcn: pci irq addr %x, slot %d, pin %d, irq %d\n", | ||
144 | laddr[0], slot, pin, oirq.specifier[0]); | ||
145 | return oirq.specifier[0]; | ||
146 | } | ||
147 | |||
148 | static void __devinit quirk_uli1575(struct pci_dev *dev) | ||
149 | { | ||
150 | unsigned short temp; | ||
151 | struct pci_controller *hose = pci_bus_to_host(dev->bus); | ||
152 | unsigned char irq2pin[16], c; | ||
153 | unsigned long pirq_map_word = 0; | ||
154 | u32 irq; | ||
155 | int i; | ||
156 | |||
157 | /* | ||
158 | * ULI1575 interrupts route setup | ||
159 | */ | ||
160 | memset(irq2pin, 0, 16); /* Initialize default value 0 */ | ||
161 | |||
162 | /* | ||
163 | * PIRQA -> PIRQD mapping read from OF-tree | ||
164 | * | ||
165 | * interrupts for PCI slot0 -- PIRQA / PIRQB / PIRQC / PIRQD | ||
166 | * PCI slot1 -- PIRQB / PIRQC / PIRQD / PIRQA | ||
167 | */ | ||
168 | for (i = 0; i < 4; i++){ | ||
169 | irq = get_pci_irq_from_of(hose, 17, i + 1); | ||
170 | if (irq > 0 && irq < 16) | ||
171 | irq2pin[irq] = PIRQA + i; | ||
172 | else | ||
173 | printk(KERN_WARNING "ULI1575 device" | ||
174 | "(slot %d, pin %d) irq %d is invalid.\n", | ||
175 | 17, i, irq); | ||
176 | } | ||
177 | |||
178 | /* | ||
179 | * PIRQE -> PIRQF mapping set manually | ||
180 | * | ||
181 | * IRQ pin IRQ# | ||
182 | * PIRQE ---- 9 | ||
183 | * PIRQF ---- 10 | ||
184 | * PIRQG ---- 11 | ||
185 | * PIRQH ---- 12 | ||
186 | */ | ||
187 | for (i = 0; i < 4; i++) irq2pin[i + 9] = PIRQE + i; | ||
188 | |||
189 | /* Set IRQ-PIRQ Mapping to ULI1575 */ | ||
190 | for (i = 0; i < 16; i++) | ||
191 | if (irq2pin[i]) | ||
192 | pirq_map_word |= (uli1575_irq_route_table[i] & 0xf) | ||
193 | << ((irq2pin[i] - PIRQA) * 4); | ||
194 | |||
195 | /* ULI1575 IRQ mapping conf register default value is 0xb9317542 */ | ||
196 | DBG("Setup ULI1575 IRQ mapping configuration register value = 0x%x\n", | ||
197 | pirq_map_word); | ||
198 | pci_write_config_dword(dev, 0x48, pirq_map_word); | ||
199 | |||
200 | #define ULI1575_SET_DEV_IRQ(slot, pin, reg) \ | ||
201 | do { \ | ||
202 | int irq; \ | ||
203 | irq = get_pci_irq_from_of(hose, slot, pin); \ | ||
204 | if (irq > 0 && irq < 16) \ | ||
205 | pci_write_config_byte(dev, reg, irq2pin[irq]); \ | ||
206 | else \ | ||
207 | printk(KERN_WARNING "ULI1575 device" \ | ||
208 | "(slot %d, pin %d) irq %d is invalid.\n", \ | ||
209 | slot, pin, irq); \ | ||
210 | } while(0) | ||
211 | |||
212 | /* USB 1.1 OHCI controller 1, slot 28, pin 1 */ | ||
213 | ULI1575_SET_DEV_IRQ(28, 1, 0x86); | ||
214 | |||
215 | /* USB 1.1 OHCI controller 2, slot 28, pin 2 */ | ||
216 | ULI1575_SET_DEV_IRQ(28, 2, 0x87); | ||
217 | |||
218 | /* USB 1.1 OHCI controller 3, slot 28, pin 3 */ | ||
219 | ULI1575_SET_DEV_IRQ(28, 3, 0x88); | ||
220 | |||
221 | /* USB 2.0 controller, slot 28, pin 4 */ | ||
222 | irq = get_pci_irq_from_of(hose, 28, 4); | ||
223 | if (irq >= 0 && irq <=15) | ||
224 | pci_write_config_dword(dev, 0x74, uli1575_irq_route_table[irq]); | ||
225 | |||
226 | /* Audio controller, slot 29, pin 1 */ | ||
227 | ULI1575_SET_DEV_IRQ(29, 1, 0x8a); | ||
228 | |||
229 | /* Modem controller, slot 29, pin 2 */ | ||
230 | ULI1575_SET_DEV_IRQ(29, 2, 0x8b); | ||
231 | |||
232 | /* HD audio controller, slot 29, pin 3 */ | ||
233 | ULI1575_SET_DEV_IRQ(29, 3, 0x8c); | ||
234 | |||
235 | /* SMB interrupt: slot 30, pin 1 */ | ||
236 | ULI1575_SET_DEV_IRQ(30, 1, 0x8e); | ||
237 | |||
238 | /* PMU ACPI SCI interrupt: slot 30, pin 2 */ | ||
239 | ULI1575_SET_DEV_IRQ(30, 2, 0x8f); | ||
240 | |||
241 | /* Serial ATA interrupt: slot 31, pin 1 */ | ||
242 | ULI1575_SET_DEV_IRQ(31, 1, 0x8d); | ||
243 | |||
244 | /* Primary PATA IDE IRQ: 14 | ||
245 | * Secondary PATA IDE IRQ: 15 | ||
246 | */ | ||
247 | pci_write_config_byte(dev, 0x44, 0x30 | uli1575_irq_route_table[14]); | ||
248 | pci_write_config_byte(dev, 0x75, uli1575_irq_route_table[15]); | ||
249 | |||
250 | /* Set IRQ14 and IRQ15 to legacy IRQs */ | ||
251 | pci_read_config_word(dev, 0x46, &temp); | ||
252 | temp |= 0xc000; | ||
253 | pci_write_config_word(dev, 0x46, temp); | ||
254 | |||
255 | /* Set i8259 interrupt trigger | ||
256 | * IRQ 3: Level | ||
257 | * IRQ 4: Level | ||
258 | * IRQ 5: Level | ||
259 | * IRQ 6: Level | ||
260 | * IRQ 7: Level | ||
261 | * IRQ 9: Level | ||
262 | * IRQ 10: Level | ||
263 | * IRQ 11: Level | ||
264 | * IRQ 12: Level | ||
265 | * IRQ 14: Edge | ||
266 | * IRQ 15: Edge | ||
267 | */ | ||
268 | outb(0xfa, 0x4d0); | ||
269 | outb(0x1e, 0x4d1); | ||
270 | |||
271 | #undef ULI1575_SET_DEV_IRQ | ||
272 | |||
273 | /* Disable the HD interface and enable the AC97 interface. */ | ||
274 | pci_read_config_byte(dev, 0xb8, &c); | ||
275 | c &= 0x7f; | ||
276 | pci_write_config_byte(dev, 0xb8, c); | ||
277 | } | ||
278 | |||
279 | static void __devinit quirk_uli5288(struct pci_dev *dev) | ||
280 | { | 116 | { |
281 | unsigned char c; | 117 | struct device_node* node; |
118 | struct resource rsrc; | ||
282 | 119 | ||
283 | pci_read_config_byte(dev,0x83,&c); | 120 | node = (struct device_node *)hose->arch_data; |
284 | c |= 0x80; | 121 | of_address_to_resource(node, 0, &rsrc); |
285 | pci_write_config_byte(dev, 0x83, c); | ||
286 | 122 | ||
287 | pci_write_config_byte(dev, 0x09, 0x01); | 123 | if ((rsrc.start & 0xfffff) == 0x8000) { |
288 | pci_write_config_byte(dev, 0x0a, 0x06); | 124 | return uli_exclude_device(hose, bus, devfn); |
289 | 125 | } | |
290 | pci_read_config_byte(dev,0x83,&c); | ||
291 | c &= 0x7f; | ||
292 | pci_write_config_byte(dev, 0x83, c); | ||
293 | |||
294 | pci_read_config_byte(dev,0x84,&c); | ||
295 | c |= 0x01; | ||
296 | pci_write_config_byte(dev, 0x84, c); | ||
297 | } | ||
298 | |||
299 | static void __devinit quirk_uli5229(struct pci_dev *dev) | ||
300 | { | ||
301 | unsigned short temp; | ||
302 | pci_write_config_word(dev, 0x04, 0x0405); | ||
303 | dev->class &= ~0x5; | ||
304 | pci_read_config_word(dev, 0x4a, &temp); | ||
305 | temp |= 0x1000; | ||
306 | pci_write_config_word(dev, 0x4a, temp); | ||
307 | } | ||
308 | 126 | ||
309 | static void __devinit early_uli5249(struct pci_dev *dev) | 127 | return PCIBIOS_SUCCESSFUL; |
310 | { | ||
311 | unsigned char temp; | ||
312 | pci_write_config_word(dev, 0x04, 0x0007); | ||
313 | pci_read_config_byte(dev, 0x7c, &temp); | ||
314 | pci_write_config_byte(dev, 0x7c, 0x80); | ||
315 | pci_write_config_byte(dev, 0x09, 0x01); | ||
316 | pci_write_config_byte(dev, 0x7c, temp); | ||
317 | dev->class |= 0x1; | ||
318 | } | 128 | } |
319 | |||
320 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, quirk_uli1575); | ||
321 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288); | ||
322 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229); | ||
323 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, 0x5249, early_uli5249); | ||
324 | #endif /* CONFIG_PCI */ | 129 | #endif /* CONFIG_PCI */ |
325 | 130 | ||
326 | 131 | ||
@@ -353,6 +158,9 @@ mpc86xx_hpcn_setup_arch(void) | |||
353 | else | 158 | else |
354 | fsl_add_bridge(np, 0); | 159 | fsl_add_bridge(np, 0); |
355 | } | 160 | } |
161 | uses_fsl_uli_m1575 = 1; | ||
162 | ppc_md.pci_exclude_device = mpc86xx_exclude_device; | ||
163 | |||
356 | #endif | 164 | #endif |
357 | 165 | ||
358 | printk("MPC86xx HPCN board from Freescale Semiconductor\n"); | 166 | printk("MPC86xx HPCN board from Freescale Semiconductor\n"); |
diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig index 2c937fb207fe..041df77ec117 100644 --- a/arch/powerpc/platforms/Kconfig +++ b/arch/powerpc/platforms/Kconfig | |||
@@ -283,4 +283,12 @@ config AXON_RAM | |||
283 | minor numbers are available in /proc/devices, /proc/partitions or | 283 | minor numbers are available in /proc/devices, /proc/partitions or |
284 | in /sys/block/axonram?/dev. | 284 | in /sys/block/axonram?/dev. |
285 | 285 | ||
286 | config FSL_ULI1575 | ||
287 | bool | ||
288 | default n | ||
289 | help | ||
290 | Supports for the ULI1575 PCIe south bridge that exists on some | ||
291 | Freescale reference boards. The boards all use the ULI in pretty | ||
292 | much the same way. | ||
293 | |||
286 | endmenu | 294 | endmenu |
diff --git a/arch/powerpc/platforms/Makefile b/arch/powerpc/platforms/Makefile index d6e041a46d25..d44e832b01f2 100644 --- a/arch/powerpc/platforms/Makefile +++ b/arch/powerpc/platforms/Makefile | |||
@@ -1,3 +1,6 @@ | |||
1 | |||
2 | obj-$(CONFIG_FSL_ULI1575) += fsl_uli1575.o | ||
3 | |||
1 | ifeq ($(CONFIG_PPC_MERGE),y) | 4 | ifeq ($(CONFIG_PPC_MERGE),y) |
2 | obj-$(CONFIG_PPC_PMAC) += powermac/ | 5 | obj-$(CONFIG_PPC_PMAC) += powermac/ |
3 | else | 6 | else |
diff --git a/arch/powerpc/platforms/cell/cbe_regs.h b/arch/powerpc/platforms/cell/cbe_regs.h index 17d597144877..b24025f2ac7a 100644 --- a/arch/powerpc/platforms/cell/cbe_regs.h +++ b/arch/powerpc/platforms/cell/cbe_regs.h | |||
@@ -113,10 +113,14 @@ struct cbe_pmd_regs { | |||
113 | u64 checkstop_fir; /* 0x0c00 */ | 113 | u64 checkstop_fir; /* 0x0c00 */ |
114 | u64 recoverable_fir; /* 0x0c08 */ | 114 | u64 recoverable_fir; /* 0x0c08 */ |
115 | u64 spec_att_mchk_fir; /* 0x0c10 */ | 115 | u64 spec_att_mchk_fir; /* 0x0c10 */ |
116 | u64 fir_mode_reg; /* 0x0c18 */ | 116 | u32 fir_mode_reg; /* 0x0c18 */ |
117 | u8 pad_0x0c1c_0x0c20 [4]; /* 0x0c1c */ | ||
118 | #define CBE_PMD_FIR_MODE_M8 0x00800 | ||
117 | u64 fir_enable_mask; /* 0x0c20 */ | 119 | u64 fir_enable_mask; /* 0x0c20 */ |
118 | 120 | ||
119 | u8 pad_0x0c28_0x1000 [0x1000 - 0x0c28]; /* 0x0c28 */ | 121 | u8 pad_0x0c28_0x0ca8 [0x0ca8 - 0x0c28]; /* 0x0c28 */ |
122 | u64 ras_esc_0; /* 0x0ca8 */ | ||
123 | u8 pad_0x0cb0_0x1000 [0x1000 - 0x0cb0]; /* 0x0cb0 */ | ||
120 | }; | 124 | }; |
121 | 125 | ||
122 | extern struct cbe_pmd_regs __iomem *cbe_get_pmd_regs(struct device_node *np); | 126 | extern struct cbe_pmd_regs __iomem *cbe_get_pmd_regs(struct device_node *np); |
diff --git a/arch/powerpc/platforms/cell/cbe_thermal.c b/arch/powerpc/platforms/cell/cbe_thermal.c index e4132f8f51b3..fb5eda48467d 100644 --- a/arch/powerpc/platforms/cell/cbe_thermal.c +++ b/arch/powerpc/platforms/cell/cbe_thermal.c | |||
@@ -88,17 +88,13 @@ static struct cbe_pmd_regs __iomem *get_pmd_regs(struct sys_device *sysdev) | |||
88 | /* returns the value for a given spu in a given register */ | 88 | /* returns the value for a given spu in a given register */ |
89 | static u8 spu_read_register_value(struct sys_device *sysdev, union spe_reg __iomem *reg) | 89 | static u8 spu_read_register_value(struct sys_device *sysdev, union spe_reg __iomem *reg) |
90 | { | 90 | { |
91 | const unsigned int *id; | ||
92 | union spe_reg value; | 91 | union spe_reg value; |
93 | struct spu *spu; | 92 | struct spu *spu; |
94 | 93 | ||
95 | /* getting the id from the reg attribute will not work on future device-tree layouts | ||
96 | * in future we should store the id to the spu struct and use it here */ | ||
97 | spu = container_of(sysdev, struct spu, sysdev); | 94 | spu = container_of(sysdev, struct spu, sysdev); |
98 | id = of_get_property(spu_devnode(spu), "reg", NULL); | ||
99 | value.val = in_be64(®->val); | 95 | value.val = in_be64(®->val); |
100 | 96 | ||
101 | return value.spe[*id]; | 97 | return value.spe[spu->spe_id]; |
102 | } | 98 | } |
103 | 99 | ||
104 | static ssize_t spu_show_temp(struct sys_device *sysdev, char *buf) | 100 | static ssize_t spu_show_temp(struct sys_device *sysdev, char *buf) |
diff --git a/arch/powerpc/platforms/cell/pervasive.c b/arch/powerpc/platforms/cell/pervasive.c index 812bf563ed65..4ede22d363fa 100644 --- a/arch/powerpc/platforms/cell/pervasive.c +++ b/arch/powerpc/platforms/cell/pervasive.c | |||
@@ -38,6 +38,8 @@ | |||
38 | #include "pervasive.h" | 38 | #include "pervasive.h" |
39 | #include "cbe_regs.h" | 39 | #include "cbe_regs.h" |
40 | 40 | ||
41 | static int sysreset_hack; | ||
42 | |||
41 | static void cbe_power_save(void) | 43 | static void cbe_power_save(void) |
42 | { | 44 | { |
43 | unsigned long ctrl, thread_switch_control; | 45 | unsigned long ctrl, thread_switch_control; |
@@ -85,6 +87,9 @@ static void cbe_power_save(void) | |||
85 | 87 | ||
86 | static int cbe_system_reset_exception(struct pt_regs *regs) | 88 | static int cbe_system_reset_exception(struct pt_regs *regs) |
87 | { | 89 | { |
90 | int cpu; | ||
91 | struct cbe_pmd_regs __iomem *pmd; | ||
92 | |||
88 | switch (regs->msr & SRR1_WAKEMASK) { | 93 | switch (regs->msr & SRR1_WAKEMASK) { |
89 | case SRR1_WAKEEE: | 94 | case SRR1_WAKEEE: |
90 | do_IRQ(regs); | 95 | do_IRQ(regs); |
@@ -93,6 +98,18 @@ static int cbe_system_reset_exception(struct pt_regs *regs) | |||
93 | timer_interrupt(regs); | 98 | timer_interrupt(regs); |
94 | break; | 99 | break; |
95 | case SRR1_WAKEMT: | 100 | case SRR1_WAKEMT: |
101 | /* | ||
102 | * The BMC can inject user triggered system reset exceptions, | ||
103 | * but cannot set the system reset reason in srr1, | ||
104 | * so check an extra register here. | ||
105 | */ | ||
106 | if (sysreset_hack && (cpu = smp_processor_id()) == 0) { | ||
107 | pmd = cbe_get_cpu_pmd_regs(cpu); | ||
108 | if (in_be64(&pmd->ras_esc_0) & 0xffff) { | ||
109 | out_be64(&pmd->ras_esc_0, 0); | ||
110 | return 0; | ||
111 | } | ||
112 | } | ||
96 | break; | 113 | break; |
97 | #ifdef CONFIG_CBE_RAS | 114 | #ifdef CONFIG_CBE_RAS |
98 | case SRR1_WAKESYSERR: | 115 | case SRR1_WAKESYSERR: |
@@ -113,9 +130,12 @@ static int cbe_system_reset_exception(struct pt_regs *regs) | |||
113 | void __init cbe_pervasive_init(void) | 130 | void __init cbe_pervasive_init(void) |
114 | { | 131 | { |
115 | int cpu; | 132 | int cpu; |
133 | |||
116 | if (!cpu_has_feature(CPU_FTR_PAUSE_ZERO)) | 134 | if (!cpu_has_feature(CPU_FTR_PAUSE_ZERO)) |
117 | return; | 135 | return; |
118 | 136 | ||
137 | sysreset_hack = machine_is_compatible("IBM,CBPLUS-1.0"); | ||
138 | |||
119 | for_each_possible_cpu(cpu) { | 139 | for_each_possible_cpu(cpu) { |
120 | struct cbe_pmd_regs __iomem *regs = cbe_get_cpu_pmd_regs(cpu); | 140 | struct cbe_pmd_regs __iomem *regs = cbe_get_cpu_pmd_regs(cpu); |
121 | if (!regs) | 141 | if (!regs) |
@@ -124,6 +144,12 @@ void __init cbe_pervasive_init(void) | |||
124 | /* Enable Pause(0) control bit */ | 144 | /* Enable Pause(0) control bit */ |
125 | out_be64(®s->pmcr, in_be64(®s->pmcr) | | 145 | out_be64(®s->pmcr, in_be64(®s->pmcr) | |
126 | CBE_PMD_PAUSE_ZERO_CONTROL); | 146 | CBE_PMD_PAUSE_ZERO_CONTROL); |
147 | |||
148 | /* Enable JTAG system-reset hack */ | ||
149 | if (sysreset_hack) | ||
150 | out_be32(®s->fir_mode_reg, | ||
151 | in_be32(®s->fir_mode_reg) | | ||
152 | CBE_PMD_FIR_MODE_M8); | ||
127 | } | 153 | } |
128 | 154 | ||
129 | ppc_md.power_save = cbe_power_save; | 155 | ppc_md.power_save = cbe_power_save; |
diff --git a/arch/powerpc/platforms/cell/spu_manage.c b/arch/powerpc/platforms/cell/spu_manage.c index 5eb88346181a..7c0668a9dcc7 100644 --- a/arch/powerpc/platforms/cell/spu_manage.c +++ b/arch/powerpc/platforms/cell/spu_manage.c | |||
@@ -48,7 +48,7 @@ static u64 __init find_spu_unit_number(struct device_node *spe) | |||
48 | { | 48 | { |
49 | const unsigned int *prop; | 49 | const unsigned int *prop; |
50 | int proplen; | 50 | int proplen; |
51 | prop = of_get_property(spe, "unit-id", &proplen); | 51 | prop = of_get_property(spe, "physical-id", &proplen); |
52 | if (proplen == 4) | 52 | if (proplen == 4) |
53 | return (u64)*prop; | 53 | return (u64)*prop; |
54 | 54 | ||
diff --git a/arch/powerpc/platforms/fsl_uli1575.c b/arch/powerpc/platforms/fsl_uli1575.c new file mode 100644 index 000000000000..afc9141be63e --- /dev/null +++ b/arch/powerpc/platforms/fsl_uli1575.c | |||
@@ -0,0 +1,255 @@ | |||
1 | /* | ||
2 | * ULI M1575 setup code - specific to Freescale boards | ||
3 | * | ||
4 | * Copyright 2007 Freescale Semiconductor Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | */ | ||
11 | |||
12 | #include <linux/stddef.h> | ||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/pci.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | #include <linux/mc146818rtc.h> | ||
17 | |||
18 | #include <asm/system.h> | ||
19 | #include <asm/pci-bridge.h> | ||
20 | |||
21 | #define ULI_PIRQA 0x08 | ||
22 | #define ULI_PIRQB 0x09 | ||
23 | #define ULI_PIRQC 0x0a | ||
24 | #define ULI_PIRQD 0x0b | ||
25 | #define ULI_PIRQE 0x0c | ||
26 | #define ULI_PIRQF 0x0d | ||
27 | #define ULI_PIRQG 0x0e | ||
28 | |||
29 | #define ULI_8259_NONE 0x00 | ||
30 | #define ULI_8259_IRQ1 0x08 | ||
31 | #define ULI_8259_IRQ3 0x02 | ||
32 | #define ULI_8259_IRQ4 0x04 | ||
33 | #define ULI_8259_IRQ5 0x05 | ||
34 | #define ULI_8259_IRQ6 0x07 | ||
35 | #define ULI_8259_IRQ7 0x06 | ||
36 | #define ULI_8259_IRQ9 0x01 | ||
37 | #define ULI_8259_IRQ10 0x03 | ||
38 | #define ULI_8259_IRQ11 0x09 | ||
39 | #define ULI_8259_IRQ12 0x0b | ||
40 | #define ULI_8259_IRQ14 0x0d | ||
41 | #define ULI_8259_IRQ15 0x0f | ||
42 | |||
43 | u8 uli_pirq_to_irq[8] = { | ||
44 | ULI_8259_IRQ9, /* PIRQA */ | ||
45 | ULI_8259_IRQ10, /* PIRQB */ | ||
46 | ULI_8259_IRQ11, /* PIRQC */ | ||
47 | ULI_8259_IRQ12, /* PIRQD */ | ||
48 | ULI_8259_IRQ5, /* PIRQE */ | ||
49 | ULI_8259_IRQ6, /* PIRQF */ | ||
50 | ULI_8259_IRQ7, /* PIRQG */ | ||
51 | ULI_8259_NONE, /* PIRQH */ | ||
52 | }; | ||
53 | |||
54 | /* set in board code if you want this quirks to do something */ | ||
55 | int uses_fsl_uli_m1575; | ||
56 | |||
57 | /* Bridge */ | ||
58 | static void __devinit early_uli5249(struct pci_dev *dev) | ||
59 | { | ||
60 | unsigned char temp; | ||
61 | |||
62 | if (!uses_fsl_uli_m1575) | ||
63 | return; | ||
64 | |||
65 | pci_write_config_word(dev, PCI_COMMAND, PCI_COMMAND_IO | | ||
66 | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER); | ||
67 | |||
68 | /* read/write lock */ | ||
69 | pci_read_config_byte(dev, 0x7c, &temp); | ||
70 | pci_write_config_byte(dev, 0x7c, 0x80); | ||
71 | |||
72 | /* set as P2P bridge */ | ||
73 | pci_write_config_byte(dev, PCI_CLASS_PROG, 0x01); | ||
74 | dev->class |= 0x1; | ||
75 | |||
76 | /* restore lock */ | ||
77 | pci_write_config_byte(dev, 0x7c, temp); | ||
78 | } | ||
79 | |||
80 | |||
81 | static void __devinit quirk_uli1575(struct pci_dev *dev) | ||
82 | { | ||
83 | int i; | ||
84 | |||
85 | if (!uses_fsl_uli_m1575) | ||
86 | return; | ||
87 | |||
88 | /* | ||
89 | * ULI1575 interrupts route setup | ||
90 | */ | ||
91 | |||
92 | /* ULI1575 IRQ mapping conf register maps PIRQx to IRQn */ | ||
93 | for (i = 0; i < 4; i++) { | ||
94 | u8 val = uli_pirq_to_irq[i*2] | (uli_pirq_to_irq[i*2+1] << 4); | ||
95 | pci_write_config_byte(dev, 0x48 + i, val); | ||
96 | } | ||
97 | |||
98 | /* USB 1.1 OHCI controller 1: dev 28, func 0 - IRQ12 */ | ||
99 | pci_write_config_byte(dev, 0x86, ULI_PIRQD); | ||
100 | |||
101 | /* USB 1.1 OHCI controller 2: dev 28, func 1 - IRQ9 */ | ||
102 | pci_write_config_byte(dev, 0x87, ULI_PIRQA); | ||
103 | |||
104 | /* USB 1.1 OHCI controller 3: dev 28, func 2 - IRQ10 */ | ||
105 | pci_write_config_byte(dev, 0x88, ULI_PIRQB); | ||
106 | |||
107 | /* Lan controller: dev 27, func 0 - IRQ6 */ | ||
108 | pci_write_config_byte(dev, 0x89, ULI_PIRQF); | ||
109 | |||
110 | /* AC97 Audio controller: dev 29, func 0 - IRQ6 */ | ||
111 | pci_write_config_byte(dev, 0x8a, ULI_PIRQF); | ||
112 | |||
113 | /* Modem controller: dev 29, func 1 - IRQ6 */ | ||
114 | pci_write_config_byte(dev, 0x8b, ULI_PIRQF); | ||
115 | |||
116 | /* HD Audio controller: dev 29, func 2 - IRQ6 */ | ||
117 | pci_write_config_byte(dev, 0x8c, ULI_PIRQF); | ||
118 | |||
119 | /* SATA controller: dev 31, func 1 - IRQ5 */ | ||
120 | pci_write_config_byte(dev, 0x8d, ULI_PIRQE); | ||
121 | |||
122 | /* SMB interrupt: dev 30, func 1 - IRQ7 */ | ||
123 | pci_write_config_byte(dev, 0x8e, ULI_PIRQG); | ||
124 | |||
125 | /* PMU ACPI SCI interrupt: dev 30, func 2 - IRQ7 */ | ||
126 | pci_write_config_byte(dev, 0x8f, ULI_PIRQG); | ||
127 | |||
128 | /* USB 2.0 controller: dev 28, func 3 */ | ||
129 | pci_write_config_byte(dev, 0x74, ULI_8259_IRQ11); | ||
130 | |||
131 | /* Primary PATA IDE IRQ: 14 | ||
132 | * Secondary PATA IDE IRQ: 15 | ||
133 | */ | ||
134 | pci_write_config_byte(dev, 0x44, 0x30 | ULI_8259_IRQ14); | ||
135 | pci_write_config_byte(dev, 0x75, ULI_8259_IRQ15); | ||
136 | } | ||
137 | |||
138 | static void __devinit quirk_final_uli1575(struct pci_dev *dev) | ||
139 | { | ||
140 | /* Set i8259 interrupt trigger | ||
141 | * IRQ 3: Level | ||
142 | * IRQ 4: Level | ||
143 | * IRQ 5: Level | ||
144 | * IRQ 6: Level | ||
145 | * IRQ 7: Level | ||
146 | * IRQ 9: Level | ||
147 | * IRQ 10: Level | ||
148 | * IRQ 11: Level | ||
149 | * IRQ 12: Level | ||
150 | * IRQ 14: Edge | ||
151 | * IRQ 15: Edge | ||
152 | */ | ||
153 | if (!uses_fsl_uli_m1575) | ||
154 | return; | ||
155 | |||
156 | outb(0xfa, 0x4d0); | ||
157 | outb(0x1e, 0x4d1); | ||
158 | |||
159 | /* setup RTC */ | ||
160 | CMOS_WRITE(RTC_SET, RTC_CONTROL); | ||
161 | CMOS_WRITE(RTC_24H, RTC_CONTROL); | ||
162 | |||
163 | /* ensure month, date, and week alarm fields are ignored */ | ||
164 | CMOS_WRITE(0, RTC_VALID); | ||
165 | |||
166 | outb_p(0x7c, 0x72); | ||
167 | outb_p(RTC_ALARM_DONT_CARE, 0x73); | ||
168 | |||
169 | outb_p(0x7d, 0x72); | ||
170 | outb_p(RTC_ALARM_DONT_CARE, 0x73); | ||
171 | } | ||
172 | |||
173 | /* SATA */ | ||
174 | static void __devinit quirk_uli5288(struct pci_dev *dev) | ||
175 | { | ||
176 | unsigned char c; | ||
177 | unsigned int d; | ||
178 | |||
179 | if (!uses_fsl_uli_m1575) | ||
180 | return; | ||
181 | |||
182 | /* read/write lock */ | ||
183 | pci_read_config_byte(dev, 0x83, &c); | ||
184 | pci_write_config_byte(dev, 0x83, c|0x80); | ||
185 | |||
186 | pci_read_config_dword(dev, PCI_CLASS_REVISION, &d); | ||
187 | d = (d & 0xff) | (PCI_CLASS_STORAGE_SATA_AHCI << 8); | ||
188 | pci_write_config_dword(dev, PCI_CLASS_REVISION, d); | ||
189 | |||
190 | /* restore lock */ | ||
191 | pci_write_config_byte(dev, 0x83, c); | ||
192 | |||
193 | /* disable emulated PATA mode enabled */ | ||
194 | pci_read_config_byte(dev, 0x84, &c); | ||
195 | pci_write_config_byte(dev, 0x84, c & ~0x01); | ||
196 | } | ||
197 | |||
198 | /* PATA */ | ||
199 | static void __devinit quirk_uli5229(struct pci_dev *dev) | ||
200 | { | ||
201 | unsigned short temp; | ||
202 | |||
203 | if (!uses_fsl_uli_m1575) | ||
204 | return; | ||
205 | |||
206 | pci_write_config_word(dev, PCI_COMMAND, PCI_COMMAND_INTX_DISABLE | | ||
207 | PCI_COMMAND_MASTER | PCI_COMMAND_IO); | ||
208 | |||
209 | /* Enable Native IRQ 14/15 */ | ||
210 | pci_read_config_word(dev, 0x4a, &temp); | ||
211 | pci_write_config_word(dev, 0x4a, temp | 0x1000); | ||
212 | } | ||
213 | |||
214 | /* We have to do a dummy read on the P2P for the RTC to work, WTF */ | ||
215 | static void __devinit quirk_final_uli5249(struct pci_dev *dev) | ||
216 | { | ||
217 | int i; | ||
218 | u8 *dummy; | ||
219 | struct pci_bus *bus = dev->bus; | ||
220 | |||
221 | for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) { | ||
222 | if ((bus->resource[i]) && | ||
223 | (bus->resource[i]->flags & IORESOURCE_MEM)) { | ||
224 | dummy = ioremap(bus->resource[i]->start, 0x4); | ||
225 | if (dummy) { | ||
226 | in_8(dummy); | ||
227 | iounmap(dummy); | ||
228 | } | ||
229 | break; | ||
230 | } | ||
231 | } | ||
232 | } | ||
233 | |||
234 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, 0x5249, early_uli5249); | ||
235 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, quirk_uli1575); | ||
236 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288); | ||
237 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229); | ||
238 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x5249, quirk_final_uli5249); | ||
239 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AL, 0x1575, quirk_final_uli1575); | ||
240 | |||
241 | int uli_exclude_device(struct pci_controller *hose, | ||
242 | u_char bus, u_char devfn) | ||
243 | { | ||
244 | if (bus == (hose->first_busno + 2)) { | ||
245 | /* exclude Modem controller */ | ||
246 | if ((PCI_SLOT(devfn) == 29) && (PCI_FUNC(devfn) == 1)) | ||
247 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
248 | |||
249 | /* exclude HD Audio controller */ | ||
250 | if ((PCI_SLOT(devfn) == 29) && (PCI_FUNC(devfn) == 2)) | ||
251 | return PCIBIOS_DEVICE_NOT_FOUND; | ||
252 | } | ||
253 | |||
254 | return PCIBIOS_SUCCESSFUL; | ||
255 | } | ||
diff --git a/arch/powerpc/platforms/pasemi/iommu.c b/arch/powerpc/platforms/pasemi/iommu.c index c910ec9c2bdf..6c42787fb382 100644 --- a/arch/powerpc/platforms/pasemi/iommu.c +++ b/arch/powerpc/platforms/pasemi/iommu.c | |||
@@ -93,7 +93,7 @@ static void iobmap_build(struct iommu_table *tbl, long index, | |||
93 | 93 | ||
94 | pr_debug("iobmap: build at: %lx, %lx, addr: %lx\n", index, npages, uaddr); | 94 | pr_debug("iobmap: build at: %lx, %lx, addr: %lx\n", index, npages, uaddr); |
95 | 95 | ||
96 | bus_addr = (tbl->it_offset + index) << PAGE_SHIFT; | 96 | bus_addr = (tbl->it_offset + index) << IOBMAP_PAGE_SHIFT; |
97 | 97 | ||
98 | ip = ((u32 *)tbl->it_base) + index; | 98 | ip = ((u32 *)tbl->it_base) + index; |
99 | 99 | ||
@@ -118,7 +118,7 @@ static void iobmap_free(struct iommu_table *tbl, long index, | |||
118 | 118 | ||
119 | pr_debug("iobmap: free at: %lx, %lx\n", index, npages); | 119 | pr_debug("iobmap: free at: %lx, %lx\n", index, npages); |
120 | 120 | ||
121 | bus_addr = (tbl->it_offset + index) << PAGE_SHIFT; | 121 | bus_addr = (tbl->it_offset + index) << IOBMAP_PAGE_SHIFT; |
122 | 122 | ||
123 | ip = ((u32 *)tbl->it_base) + index; | 123 | ip = ((u32 *)tbl->it_base) + index; |
124 | 124 | ||
@@ -137,7 +137,7 @@ static void iommu_table_iobmap_setup(void) | |||
137 | iommu_table_iobmap.it_busno = 0; | 137 | iommu_table_iobmap.it_busno = 0; |
138 | iommu_table_iobmap.it_offset = 0; | 138 | iommu_table_iobmap.it_offset = 0; |
139 | /* it_size is in number of entries */ | 139 | /* it_size is in number of entries */ |
140 | iommu_table_iobmap.it_size = 0x80000000 >> PAGE_SHIFT; | 140 | iommu_table_iobmap.it_size = 0x80000000 >> IOBMAP_PAGE_SHIFT; |
141 | 141 | ||
142 | /* Initialize the common IOMMU code */ | 142 | /* Initialize the common IOMMU code */ |
143 | iommu_table_iobmap.it_base = (unsigned long)iob_l2_base; | 143 | iommu_table_iobmap.it_base = (unsigned long)iob_l2_base; |
diff --git a/arch/powerpc/sysdev/axonram.c b/arch/powerpc/sysdev/axonram.c index 2326d5dc5752..ab037a3a40db 100644 --- a/arch/powerpc/sysdev/axonram.c +++ b/arch/powerpc/sysdev/axonram.c | |||
@@ -59,8 +59,7 @@ | |||
59 | struct axon_ram_bank { | 59 | struct axon_ram_bank { |
60 | struct of_device *device; | 60 | struct of_device *device; |
61 | struct gendisk *disk; | 61 | struct gendisk *disk; |
62 | unsigned int irq_correctable; | 62 | unsigned int irq_id; |
63 | unsigned int irq_uncorrectable; | ||
64 | unsigned long ph_addr; | 63 | unsigned long ph_addr; |
65 | unsigned long io_addr; | 64 | unsigned long io_addr; |
66 | unsigned long size; | 65 | unsigned long size; |
@@ -93,16 +92,9 @@ axon_ram_irq_handler(int irq, void *dev) | |||
93 | 92 | ||
94 | BUG_ON(!bank); | 93 | BUG_ON(!bank); |
95 | 94 | ||
96 | if (irq == bank->irq_correctable) { | 95 | dev_err(&device->dev, "Correctable memory error occured\n"); |
97 | dev_err(&device->dev, "Correctable memory error occured\n"); | 96 | bank->ecc_counter++; |
98 | bank->ecc_counter++; | 97 | return IRQ_HANDLED; |
99 | return IRQ_HANDLED; | ||
100 | } else if (irq == bank->irq_uncorrectable) { | ||
101 | dev_err(&device->dev, "Uncorrectable memory error occured\n"); | ||
102 | panic("Critical ECC error on %s", device->node->full_name); | ||
103 | } | ||
104 | |||
105 | return IRQ_NONE; | ||
106 | } | 98 | } |
107 | 99 | ||
108 | /** | 100 | /** |
@@ -259,28 +251,18 @@ axon_ram_probe(struct of_device *device, const struct of_device_id *device_id) | |||
259 | blk_queue_hardsect_size(bank->disk->queue, AXON_RAM_SECTOR_SIZE); | 251 | blk_queue_hardsect_size(bank->disk->queue, AXON_RAM_SECTOR_SIZE); |
260 | add_disk(bank->disk); | 252 | add_disk(bank->disk); |
261 | 253 | ||
262 | bank->irq_correctable = irq_of_parse_and_map(device->node, 0); | 254 | bank->irq_id = irq_of_parse_and_map(device->node, 0); |
263 | bank->irq_uncorrectable = irq_of_parse_and_map(device->node, 1); | 255 | if (bank->irq_id == NO_IRQ) { |
264 | if ((bank->irq_correctable <= 0) || (bank->irq_uncorrectable <= 0)) { | ||
265 | dev_err(&device->dev, "Cannot access ECC interrupt ID\n"); | 256 | dev_err(&device->dev, "Cannot access ECC interrupt ID\n"); |
266 | rc = -EFAULT; | 257 | rc = -EFAULT; |
267 | goto failed; | 258 | goto failed; |
268 | } | 259 | } |
269 | 260 | ||
270 | rc = request_irq(bank->irq_correctable, axon_ram_irq_handler, | 261 | rc = request_irq(bank->irq_id, axon_ram_irq_handler, |
271 | AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device); | ||
272 | if (rc != 0) { | ||
273 | dev_err(&device->dev, "Cannot register ECC interrupt handler\n"); | ||
274 | bank->irq_correctable = bank->irq_uncorrectable = 0; | ||
275 | rc = -EFAULT; | ||
276 | goto failed; | ||
277 | } | ||
278 | |||
279 | rc = request_irq(bank->irq_uncorrectable, axon_ram_irq_handler, | ||
280 | AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device); | 262 | AXON_RAM_IRQ_FLAGS, bank->disk->disk_name, device); |
281 | if (rc != 0) { | 263 | if (rc != 0) { |
282 | dev_err(&device->dev, "Cannot register ECC interrupt handler\n"); | 264 | dev_err(&device->dev, "Cannot register ECC interrupt handler\n"); |
283 | bank->irq_uncorrectable = 0; | 265 | bank->irq_id = NO_IRQ; |
284 | rc = -EFAULT; | 266 | rc = -EFAULT; |
285 | goto failed; | 267 | goto failed; |
286 | } | 268 | } |
@@ -296,13 +278,9 @@ axon_ram_probe(struct of_device *device, const struct of_device_id *device_id) | |||
296 | 278 | ||
297 | failed: | 279 | failed: |
298 | if (bank != NULL) { | 280 | if (bank != NULL) { |
299 | if (bank->irq_uncorrectable > 0) | 281 | if (bank->irq_id != NO_IRQ) |
300 | free_irq(bank->irq_uncorrectable, device); | 282 | free_irq(bank->irq_id, device); |
301 | if (bank->irq_correctable > 0) | ||
302 | free_irq(bank->irq_correctable, device); | ||
303 | if (bank->disk != NULL) { | 283 | if (bank->disk != NULL) { |
304 | if (bank->disk->queue != NULL) | ||
305 | blk_cleanup_queue(bank->disk->queue); | ||
306 | if (bank->disk->major > 0) | 284 | if (bank->disk->major > 0) |
307 | unregister_blkdev(bank->disk->major, | 285 | unregister_blkdev(bank->disk->major, |
308 | bank->disk->disk_name); | 286 | bank->disk->disk_name); |
@@ -329,9 +307,7 @@ axon_ram_remove(struct of_device *device) | |||
329 | BUG_ON(!bank || !bank->disk); | 307 | BUG_ON(!bank || !bank->disk); |
330 | 308 | ||
331 | device_remove_file(&device->dev, &dev_attr_ecc); | 309 | device_remove_file(&device->dev, &dev_attr_ecc); |
332 | free_irq(bank->irq_uncorrectable, device); | 310 | free_irq(bank->irq_id, device); |
333 | free_irq(bank->irq_correctable, device); | ||
334 | blk_cleanup_queue(bank->disk->queue); | ||
335 | unregister_blkdev(bank->disk->major, bank->disk->disk_name); | 311 | unregister_blkdev(bank->disk->major, bank->disk->disk_name); |
336 | del_gendisk(bank->disk); | 312 | del_gendisk(bank->disk); |
337 | iounmap((void __iomem *) bank->io_addr); | 313 | iounmap((void __iomem *) bank->io_addr); |
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index 9fb0ce5c7176..114c90f8f560 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c | |||
@@ -251,6 +251,8 @@ DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8568E, quirk_fsl_pcie_transpare | |||
251 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8568, quirk_fsl_pcie_transparent); | 251 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8568, quirk_fsl_pcie_transparent); |
252 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8567E, quirk_fsl_pcie_transparent); | 252 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8567E, quirk_fsl_pcie_transparent); |
253 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8567, quirk_fsl_pcie_transparent); | 253 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8567, quirk_fsl_pcie_transparent); |
254 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8533E, quirk_fsl_pcie_transparent); | ||
255 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8533, quirk_fsl_pcie_transparent); | ||
254 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8544E, quirk_fsl_pcie_transparent); | 256 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8544E, quirk_fsl_pcie_transparent); |
255 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8544, quirk_fsl_pcie_transparent); | 257 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8544, quirk_fsl_pcie_transparent); |
256 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8641, quirk_fsl_pcie_transparent); | 258 | DECLARE_PCI_FIXUP_EARLY(0x1957, PCI_DEVICE_ID_MPC8641, quirk_fsl_pcie_transparent); |
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c index 565f57d777fe..f3abce11bead 100644 --- a/arch/powerpc/sysdev/fsl_soc.c +++ b/arch/powerpc/sysdev/fsl_soc.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/device.h> | 23 | #include <linux/device.h> |
24 | #include <linux/platform_device.h> | 24 | #include <linux/platform_device.h> |
25 | #include <linux/of_platform.h> | ||
25 | #include <linux/phy.h> | 26 | #include <linux/phy.h> |
26 | #include <linux/fsl_devices.h> | 27 | #include <linux/fsl_devices.h> |
27 | #include <linux/fs_enet_pd.h> | 28 | #include <linux/fs_enet_pd.h> |
diff --git a/arch/powerpc/sysdev/rtc_cmos_setup.c b/arch/powerpc/sysdev/rtc_cmos_setup.c index e276048b8c5f..0c9ac7ee08fb 100644 --- a/arch/powerpc/sysdev/rtc_cmos_setup.c +++ b/arch/powerpc/sysdev/rtc_cmos_setup.c | |||
@@ -20,14 +20,16 @@ static int __init add_rtc(void) | |||
20 | { | 20 | { |
21 | struct device_node *np; | 21 | struct device_node *np; |
22 | struct platform_device *pd; | 22 | struct platform_device *pd; |
23 | struct resource res; | 23 | struct resource res[2]; |
24 | int ret; | 24 | int ret; |
25 | 25 | ||
26 | memset(&res, 0, sizeof(res)); | ||
27 | |||
26 | np = of_find_compatible_node(NULL, NULL, "pnpPNP,b00"); | 28 | np = of_find_compatible_node(NULL, NULL, "pnpPNP,b00"); |
27 | if (!np) | 29 | if (!np) |
28 | return -ENODEV; | 30 | return -ENODEV; |
29 | 31 | ||
30 | ret = of_address_to_resource(np, 0, &res); | 32 | ret = of_address_to_resource(np, 0, &res[0]); |
31 | of_node_put(np); | 33 | of_node_put(np); |
32 | if (ret) | 34 | if (ret) |
33 | return ret; | 35 | return ret; |
@@ -36,11 +38,18 @@ static int __init add_rtc(void) | |||
36 | * RTC_PORT(x) is hardcoded in asm/mc146818rtc.h. Verify that the | 38 | * RTC_PORT(x) is hardcoded in asm/mc146818rtc.h. Verify that the |
37 | * address provided by the device node matches. | 39 | * address provided by the device node matches. |
38 | */ | 40 | */ |
39 | if (res.start != RTC_PORT(0)) | 41 | if (res[0].start != RTC_PORT(0)) |
40 | return -EINVAL; | 42 | return -EINVAL; |
41 | 43 | ||
44 | /* Use a fixed interrupt value of 8 since on PPC if we are using this | ||
45 | * its off an i8259 which we ensure has interrupt numbers 0..15. */ | ||
46 | res[1].start = 8; | ||
47 | res[1].end = 8; | ||
48 | res[1].flags = IORESOURCE_IRQ; | ||
49 | |||
42 | pd = platform_device_register_simple("rtc_cmos", -1, | 50 | pd = platform_device_register_simple("rtc_cmos", -1, |
43 | &res, 1); | 51 | &res[0], 2); |
52 | |||
44 | if (IS_ERR(pd)) | 53 | if (IS_ERR(pd)) |
45 | return PTR_ERR(pd); | 54 | return PTR_ERR(pd); |
46 | 55 | ||
diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c index ad4ca75c0f04..5245717295b8 100644 --- a/arch/s390/hypfs/inode.c +++ b/arch/s390/hypfs/inode.c | |||
@@ -60,17 +60,28 @@ static void hypfs_add_dentry(struct dentry *dentry) | |||
60 | hypfs_last_dentry = dentry; | 60 | hypfs_last_dentry = dentry; |
61 | } | 61 | } |
62 | 62 | ||
63 | static inline int hypfs_positive(struct dentry *dentry) | ||
64 | { | ||
65 | return dentry->d_inode && !d_unhashed(dentry); | ||
66 | } | ||
67 | |||
63 | static void hypfs_remove(struct dentry *dentry) | 68 | static void hypfs_remove(struct dentry *dentry) |
64 | { | 69 | { |
65 | struct dentry *parent; | 70 | struct dentry *parent; |
66 | 71 | ||
67 | parent = dentry->d_parent; | 72 | parent = dentry->d_parent; |
68 | if (S_ISDIR(dentry->d_inode->i_mode)) | 73 | if (!parent || !parent->d_inode) |
69 | simple_rmdir(parent->d_inode, dentry); | 74 | return; |
70 | else | 75 | mutex_lock(&parent->d_inode->i_mutex); |
71 | simple_unlink(parent->d_inode, dentry); | 76 | if (hypfs_positive(dentry)) { |
77 | if (S_ISDIR(dentry->d_inode->i_mode)) | ||
78 | simple_rmdir(parent->d_inode, dentry); | ||
79 | else | ||
80 | simple_unlink(parent->d_inode, dentry); | ||
81 | } | ||
72 | d_delete(dentry); | 82 | d_delete(dentry); |
73 | dput(dentry); | 83 | dput(dentry); |
84 | mutex_unlock(&parent->d_inode->i_mutex); | ||
74 | } | 85 | } |
75 | 86 | ||
76 | static void hypfs_delete_tree(struct dentry *root) | 87 | static void hypfs_delete_tree(struct dentry *root) |
@@ -315,6 +326,7 @@ static int hypfs_fill_super(struct super_block *sb, void *data, int silent) | |||
315 | } | 326 | } |
316 | hypfs_update_update(sb); | 327 | hypfs_update_update(sb); |
317 | sb->s_root = root_dentry; | 328 | sb->s_root = root_dentry; |
329 | printk(KERN_INFO "hypfs: Hypervisor filesystem mounted\n"); | ||
318 | return 0; | 330 | return 0; |
319 | 331 | ||
320 | err_tree: | 332 | err_tree: |
@@ -356,13 +368,17 @@ static struct dentry *hypfs_create_file(struct super_block *sb, | |||
356 | qname.name = name; | 368 | qname.name = name; |
357 | qname.len = strlen(name); | 369 | qname.len = strlen(name); |
358 | qname.hash = full_name_hash(name, qname.len); | 370 | qname.hash = full_name_hash(name, qname.len); |
371 | mutex_lock(&parent->d_inode->i_mutex); | ||
359 | dentry = lookup_one_len(name, parent, strlen(name)); | 372 | dentry = lookup_one_len(name, parent, strlen(name)); |
360 | if (IS_ERR(dentry)) | 373 | if (IS_ERR(dentry)) { |
361 | return ERR_PTR(-ENOMEM); | 374 | dentry = ERR_PTR(-ENOMEM); |
375 | goto fail; | ||
376 | } | ||
362 | inode = hypfs_make_inode(sb, mode); | 377 | inode = hypfs_make_inode(sb, mode); |
363 | if (!inode) { | 378 | if (!inode) { |
364 | dput(dentry); | 379 | dput(dentry); |
365 | return ERR_PTR(-ENOMEM); | 380 | dentry = ERR_PTR(-ENOMEM); |
381 | goto fail; | ||
366 | } | 382 | } |
367 | if (mode & S_IFREG) { | 383 | if (mode & S_IFREG) { |
368 | inode->i_fop = &hypfs_file_ops; | 384 | inode->i_fop = &hypfs_file_ops; |
@@ -379,6 +395,8 @@ static struct dentry *hypfs_create_file(struct super_block *sb, | |||
379 | inode->i_private = data; | 395 | inode->i_private = data; |
380 | d_instantiate(dentry, inode); | 396 | d_instantiate(dentry, inode); |
381 | dget(dentry); | 397 | dget(dentry); |
398 | fail: | ||
399 | mutex_unlock(&parent->d_inode->i_mutex); | ||
382 | return dentry; | 400 | return dentry; |
383 | } | 401 | } |
384 | 402 | ||
@@ -391,7 +409,6 @@ struct dentry *hypfs_mkdir(struct super_block *sb, struct dentry *parent, | |||
391 | if (IS_ERR(dentry)) | 409 | if (IS_ERR(dentry)) |
392 | return dentry; | 410 | return dentry; |
393 | hypfs_add_dentry(dentry); | 411 | hypfs_add_dentry(dentry); |
394 | parent->d_inode->i_nlink++; | ||
395 | return dentry; | 412 | return dentry; |
396 | } | 413 | } |
397 | 414 | ||
diff --git a/arch/s390/kernel/Makefile b/arch/s390/kernel/Makefile index 3195d375bd51..56cb71007cd9 100644 --- a/arch/s390/kernel/Makefile +++ b/arch/s390/kernel/Makefile | |||
@@ -6,7 +6,7 @@ EXTRA_AFLAGS := -traditional | |||
6 | 6 | ||
7 | obj-y := bitmap.o traps.o time.o process.o base.o early.o \ | 7 | obj-y := bitmap.o traps.o time.o process.o base.o early.o \ |
8 | setup.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \ | 8 | setup.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \ |
9 | semaphore.o s390_ext.o debug.o irq.o ipl.o dis.o | 9 | semaphore.o s390_ext.o debug.o irq.o ipl.o dis.o diag.o |
10 | 10 | ||
11 | obj-y += $(if $(CONFIG_64BIT),entry64.o,entry.o) | 11 | obj-y += $(if $(CONFIG_64BIT),entry64.o,entry.o) |
12 | obj-y += $(if $(CONFIG_64BIT),reipl64.o,reipl.o) | 12 | obj-y += $(if $(CONFIG_64BIT),reipl64.o,reipl.o) |
diff --git a/arch/s390/kernel/diag.c b/arch/s390/kernel/diag.c new file mode 100644 index 000000000000..c032d11da8a1 --- /dev/null +++ b/arch/s390/kernel/diag.c | |||
@@ -0,0 +1,102 @@ | |||
1 | /* | ||
2 | * Implementation of s390 diagnose codes | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | ||
5 | * Author(s): Michael Holzheu <holzheu@de.ibm.com> | ||
6 | */ | ||
7 | |||
8 | #include <linux/module.h> | ||
9 | #include <asm/diag.h> | ||
10 | |||
11 | /* | ||
12 | * Diagnose 10: Release pages | ||
13 | */ | ||
14 | void diag10(unsigned long addr) | ||
15 | { | ||
16 | if (addr >= 0x7ff00000) | ||
17 | return; | ||
18 | asm volatile( | ||
19 | #ifdef CONFIG_64BIT | ||
20 | " sam31\n" | ||
21 | " diag %0,%0,0x10\n" | ||
22 | "0: sam64\n" | ||
23 | #else | ||
24 | " diag %0,%0,0x10\n" | ||
25 | "0:\n" | ||
26 | #endif | ||
27 | EX_TABLE(0b, 0b) | ||
28 | : : "a" (addr)); | ||
29 | } | ||
30 | EXPORT_SYMBOL(diag10); | ||
31 | |||
32 | /* | ||
33 | * Diagnose 14: Input spool file manipulation | ||
34 | */ | ||
35 | int diag14(unsigned long rx, unsigned long ry1, unsigned long subcode) | ||
36 | { | ||
37 | register unsigned long _ry1 asm("2") = ry1; | ||
38 | register unsigned long _ry2 asm("3") = subcode; | ||
39 | int rc = 0; | ||
40 | |||
41 | asm volatile( | ||
42 | #ifdef CONFIG_64BIT | ||
43 | " sam31\n" | ||
44 | " diag %2,2,0x14\n" | ||
45 | " sam64\n" | ||
46 | #else | ||
47 | " diag %2,2,0x14\n" | ||
48 | #endif | ||
49 | " ipm %0\n" | ||
50 | " srl %0,28\n" | ||
51 | : "=d" (rc), "+d" (_ry2) | ||
52 | : "d" (rx), "d" (_ry1) | ||
53 | : "cc"); | ||
54 | |||
55 | return rc; | ||
56 | } | ||
57 | EXPORT_SYMBOL(diag14); | ||
58 | |||
59 | /* | ||
60 | * Diagnose 210: Get information about a virtual device | ||
61 | */ | ||
62 | int diag210(struct diag210 *addr) | ||
63 | { | ||
64 | /* | ||
65 | * diag 210 needs its data below the 2GB border, so we | ||
66 | * use a static data area to be sure | ||
67 | */ | ||
68 | static struct diag210 diag210_tmp; | ||
69 | static DEFINE_SPINLOCK(diag210_lock); | ||
70 | unsigned long flags; | ||
71 | int ccode; | ||
72 | |||
73 | spin_lock_irqsave(&diag210_lock, flags); | ||
74 | diag210_tmp = *addr; | ||
75 | |||
76 | #ifdef CONFIG_64BIT | ||
77 | asm volatile( | ||
78 | " lhi %0,-1\n" | ||
79 | " sam31\n" | ||
80 | " diag %1,0,0x210\n" | ||
81 | "0: ipm %0\n" | ||
82 | " srl %0,28\n" | ||
83 | "1: sam64\n" | ||
84 | EX_TABLE(0b, 1b) | ||
85 | : "=&d" (ccode) : "a" (&diag210_tmp) : "cc", "memory"); | ||
86 | #else | ||
87 | asm volatile( | ||
88 | " lhi %0,-1\n" | ||
89 | " diag %1,0,0x210\n" | ||
90 | "0: ipm %0\n" | ||
91 | " srl %0,28\n" | ||
92 | "1:\n" | ||
93 | EX_TABLE(0b, 1b) | ||
94 | : "=&d" (ccode) : "a" (&diag210_tmp) : "cc", "memory"); | ||
95 | #endif | ||
96 | |||
97 | *addr = diag210_tmp; | ||
98 | spin_unlock_irqrestore(&diag210_lock, flags); | ||
99 | |||
100 | return ccode; | ||
101 | } | ||
102 | EXPORT_SYMBOL(diag210); | ||
diff --git a/arch/s390/kernel/dis.c b/arch/s390/kernel/dis.c index d3057318f2bf..50d2235df732 100644 --- a/arch/s390/kernel/dis.c +++ b/arch/s390/kernel/dis.c | |||
@@ -577,7 +577,7 @@ static struct insn opcode_b2[] = { | |||
577 | { "esta", 0x4a, INSTR_RRE_RR }, | 577 | { "esta", 0x4a, INSTR_RRE_RR }, |
578 | { "lura", 0x4b, INSTR_RRE_RR }, | 578 | { "lura", 0x4b, INSTR_RRE_RR }, |
579 | { "tar", 0x4c, INSTR_RRE_AR }, | 579 | { "tar", 0x4c, INSTR_RRE_AR }, |
580 | { "cpya", INSTR_RRE_AA }, | 580 | { "cpya", 0x4d, INSTR_RRE_AA }, |
581 | { "sar", 0x4e, INSTR_RRE_AR }, | 581 | { "sar", 0x4e, INSTR_RRE_AR }, |
582 | { "ear", 0x4f, INSTR_RRE_RA }, | 582 | { "ear", 0x4f, INSTR_RRE_RA }, |
583 | { "csp", 0x50, INSTR_RRE_RR }, | 583 | { "csp", 0x50, INSTR_RRE_RR }, |
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c index 358d2bbbc481..e40373d9fbce 100644 --- a/arch/s390/kernel/kprobes.c +++ b/arch/s390/kernel/kprobes.c | |||
@@ -85,7 +85,7 @@ void __kprobes get_instruction_type(struct arch_specific_insn *ainsn) | |||
85 | ainsn->reg = (*ainsn->insn & 0xf0) >> 4; | 85 | ainsn->reg = (*ainsn->insn & 0xf0) >> 4; |
86 | 86 | ||
87 | /* save the instruction length (pop 5-5) in bytes */ | 87 | /* save the instruction length (pop 5-5) in bytes */ |
88 | switch (*(__u8 *) (ainsn->insn) >> 4) { | 88 | switch (*(__u8 *) (ainsn->insn) >> 6) { |
89 | case 0: | 89 | case 0: |
90 | ainsn->ilen = 2; | 90 | ainsn->ilen = 2; |
91 | break; | 91 | break; |
diff --git a/arch/s390/kernel/s390_ksyms.c b/arch/s390/kernel/s390_ksyms.c index 90b5ef529eb7..7234c737f825 100644 --- a/arch/s390/kernel/s390_ksyms.c +++ b/arch/s390/kernel/s390_ksyms.c | |||
@@ -25,7 +25,6 @@ EXPORT_SYMBOL(_oi_bitmap); | |||
25 | EXPORT_SYMBOL(_ni_bitmap); | 25 | EXPORT_SYMBOL(_ni_bitmap); |
26 | EXPORT_SYMBOL(_zb_findmap); | 26 | EXPORT_SYMBOL(_zb_findmap); |
27 | EXPORT_SYMBOL(_sb_findmap); | 27 | EXPORT_SYMBOL(_sb_findmap); |
28 | EXPORT_SYMBOL(diag10); | ||
29 | 28 | ||
30 | /* | 29 | /* |
31 | * semaphore ops | 30 | * semaphore ops |
diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c index c5b2f4f078bc..fabc50adc46a 100644 --- a/arch/s390/mm/cmm.c +++ b/arch/s390/mm/cmm.c | |||
@@ -20,6 +20,7 @@ | |||
20 | 20 | ||
21 | #include <asm/pgalloc.h> | 21 | #include <asm/pgalloc.h> |
22 | #include <asm/uaccess.h> | 22 | #include <asm/uaccess.h> |
23 | #include <asm/diag.h> | ||
23 | 24 | ||
24 | static char *sender = "VMRMSVM"; | 25 | static char *sender = "VMRMSVM"; |
25 | module_param(sender, charp, 0400); | 26 | module_param(sender, charp, 0400); |
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c index 9098531a2671..3a25bbf2eb0a 100644 --- a/arch/s390/mm/init.c +++ b/arch/s390/mm/init.c | |||
@@ -42,23 +42,6 @@ DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); | |||
42 | pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__((__aligned__(PAGE_SIZE))); | 42 | pgd_t swapper_pg_dir[PTRS_PER_PGD] __attribute__((__aligned__(PAGE_SIZE))); |
43 | char empty_zero_page[PAGE_SIZE] __attribute__((__aligned__(PAGE_SIZE))); | 43 | char empty_zero_page[PAGE_SIZE] __attribute__((__aligned__(PAGE_SIZE))); |
44 | 44 | ||
45 | void diag10(unsigned long addr) | ||
46 | { | ||
47 | if (addr >= 0x7ff00000) | ||
48 | return; | ||
49 | asm volatile( | ||
50 | #ifdef CONFIG_64BIT | ||
51 | " sam31\n" | ||
52 | " diag %0,%0,0x10\n" | ||
53 | "0: sam64\n" | ||
54 | #else | ||
55 | " diag %0,%0,0x10\n" | ||
56 | "0:\n" | ||
57 | #endif | ||
58 | EX_TABLE(0b,0b) | ||
59 | : : "a" (addr)); | ||
60 | } | ||
61 | |||
62 | void show_mem(void) | 45 | void show_mem(void) |
63 | { | 46 | { |
64 | int i, total = 0, reserved = 0; | 47 | int i, total = 0, reserved = 0; |
diff --git a/arch/sh/Makefile b/arch/sh/Makefile index 3d211aa33cd8..97ac58682d0f 100644 --- a/arch/sh/Makefile +++ b/arch/sh/Makefile | |||
@@ -34,6 +34,8 @@ isa-y := $(isa-y)-nofpu | |||
34 | endif | 34 | endif |
35 | endif | 35 | endif |
36 | 36 | ||
37 | isa-y := $(isa-y)-up | ||
38 | |||
37 | cflags-$(CONFIG_CPU_SH2) := $(call cc-option,-m2,) | 39 | cflags-$(CONFIG_CPU_SH2) := $(call cc-option,-m2,) |
38 | cflags-$(CONFIG_CPU_SH2A) += $(call cc-option,-m2a,) \ | 40 | cflags-$(CONFIG_CPU_SH2A) += $(call cc-option,-m2a,) \ |
39 | $(call cc-option,-m2a-nofpu,) | 41 | $(call cc-option,-m2a-nofpu,) |
@@ -46,7 +48,20 @@ cflags-$(CONFIG_CPU_SH4A) += $(call cc-option,-m4a,) \ | |||
46 | cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb | 48 | cflags-$(CONFIG_CPU_BIG_ENDIAN) += -mb |
47 | cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml | 49 | cflags-$(CONFIG_CPU_LITTLE_ENDIAN) += -ml |
48 | 50 | ||
49 | cflags-y += $(call as-option,-Wa$(comma)-isa=$(isa-y),) -ffreestanding | 51 | # |
52 | # -Wa,-isa= tuning implies -Wa,-dsp for the versions of binutils that | ||
53 | # support it, while -Wa,-dsp by itself limits the range of usable opcodes | ||
54 | # on certain CPU subtypes. Try the ISA variant first, and if that fails, | ||
55 | # fall back on -Wa,-dsp for the old binutils versions. Even without DSP | ||
56 | # opcodes, we always want the best ISA tuning the version of binutils | ||
57 | # will provide. | ||
58 | # | ||
59 | isaflags-y := $(call as-option,-Wa$(comma)-isa=$(isa-y),) | ||
60 | |||
61 | isaflags-$(CONFIG_SH_DSP) := \ | ||
62 | $(call as-option,-Wa$(comma)-isa=$(isa-y),-Wa$(comma)-dsp) | ||
63 | |||
64 | cflags-y += $(isaflags-y) -ffreestanding | ||
50 | 65 | ||
51 | cflags-$(CONFIG_MORE_COMPILE_OPTIONS) += \ | 66 | cflags-$(CONFIG_MORE_COMPILE_OPTIONS) += \ |
52 | $(shell echo $(CONFIG_COMPILE_OPTIONS) | sed -e 's/"//g') | 67 | $(shell echo $(CONFIG_COMPILE_OPTIONS) | sed -e 's/"//g') |
diff --git a/arch/sh/kernel/cpu/sh4/setup-sh4-202.c b/arch/sh/kernel/cpu/sh4/setup-sh4-202.c index 6e4e96541358..dab193293f20 100644 --- a/arch/sh/kernel/cpu/sh4/setup-sh4-202.c +++ b/arch/sh/kernel/cpu/sh4/setup-sh4-202.c | |||
@@ -41,3 +41,8 @@ static int __init sh4202_devices_setup(void) | |||
41 | ARRAY_SIZE(sh4202_devices)); | 41 | ARRAY_SIZE(sh4202_devices)); |
42 | } | 42 | } |
43 | __initcall(sh4202_devices_setup); | 43 | __initcall(sh4202_devices_setup); |
44 | |||
45 | void __init plat_irq_setup(void) | ||
46 | { | ||
47 | /* do nothing - all IRL interrupts are handled by the board code */ | ||
48 | } | ||
diff --git a/arch/sh/kernel/early_printk.c b/arch/sh/kernel/early_printk.c index 9833493d8867..80b637c30203 100644 --- a/arch/sh/kernel/early_printk.c +++ b/arch/sh/kernel/early_printk.c | |||
@@ -76,7 +76,7 @@ static void scif_sercon_putc(int c) | |||
76 | sci_in(&scif_port, SCxSR); | 76 | sci_in(&scif_port, SCxSR); |
77 | sci_out(&scif_port, SCxSR, 0xf3 & ~(0x20 | 0x40)); | 77 | sci_out(&scif_port, SCxSR, 0xf3 & ~(0x20 | 0x40)); |
78 | 78 | ||
79 | while ((sci_in(&scif_port, SCxSR) & 0x40) == 0); | 79 | while ((sci_in(&scif_port, SCxSR) & 0x40) == 0) |
80 | ; | 80 | ; |
81 | 81 | ||
82 | if (c == '\n') | 82 | if (c == '\n') |
diff --git a/arch/sh/kernel/machvec.c b/arch/sh/kernel/machvec.c index 23c5948f0124..129b2cfd18a8 100644 --- a/arch/sh/kernel/machvec.c +++ b/arch/sh/kernel/machvec.c | |||
@@ -91,6 +91,13 @@ void __init sh_mv_setup(void) | |||
91 | (unsigned long)&__machvec_start); | 91 | (unsigned long)&__machvec_start); |
92 | 92 | ||
93 | /* | 93 | /* |
94 | * Sanity check for machvec section alignment. Ensure | ||
95 | * __initmv hasn't been misused. | ||
96 | */ | ||
97 | if (machvec_size % sizeof(struct sh_machine_vector)) | ||
98 | panic("machvec misaligned, invalid __initmv use?"); | ||
99 | |||
100 | /* | ||
94 | * If the machvec hasn't been preselected, use the first | 101 | * If the machvec hasn't been preselected, use the first |
95 | * vector (usually the only one) from .machvec.init. | 102 | * vector (usually the only one) from .machvec.init. |
96 | */ | 103 | */ |
diff --git a/arch/sh/kernel/ptrace.c b/arch/sh/kernel/ptrace.c index 891d1d46c902..f64a2d2416d4 100644 --- a/arch/sh/kernel/ptrace.c +++ b/arch/sh/kernel/ptrace.c | |||
@@ -93,6 +93,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) | |||
93 | case PTRACE_PEEKTEXT: /* read word at location addr. */ | 93 | case PTRACE_PEEKTEXT: /* read word at location addr. */ |
94 | case PTRACE_PEEKDATA: | 94 | case PTRACE_PEEKDATA: |
95 | ret = generic_ptrace_peekdata(child, addr, data); | 95 | ret = generic_ptrace_peekdata(child, addr, data); |
96 | break; | ||
96 | 97 | ||
97 | /* read the word at location addr in the USER area. */ | 98 | /* read the word at location addr in the USER area. */ |
98 | case PTRACE_PEEKUSR: { | 99 | case PTRACE_PEEKUSR: { |
diff --git a/arch/sh64/kernel/setup.c b/arch/sh64/kernel/setup.c index 53e9d20a874a..2b7264c0c6f7 100644 --- a/arch/sh64/kernel/setup.c +++ b/arch/sh64/kernel/setup.c | |||
@@ -59,10 +59,6 @@ | |||
59 | #include <asm/setup.h> | 59 | #include <asm/setup.h> |
60 | #include <asm/smp.h> | 60 | #include <asm/smp.h> |
61 | 61 | ||
62 | #ifdef CONFIG_VT | ||
63 | #include <linux/console.h> | ||
64 | #endif | ||
65 | |||
66 | struct screen_info screen_info; | 62 | struct screen_info screen_info; |
67 | 63 | ||
68 | #ifdef CONFIG_BLK_DEV_RAM | 64 | #ifdef CONFIG_BLK_DEV_RAM |
diff --git a/arch/sh64/kernel/signal.c b/arch/sh64/kernel/signal.c index 0bb4a8f94276..79fc48cf54c6 100644 --- a/arch/sh64/kernel/signal.c +++ b/arch/sh64/kernel/signal.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/ptrace.h> | 25 | #include <linux/ptrace.h> |
26 | #include <linux/unistd.h> | 26 | #include <linux/unistd.h> |
27 | #include <linux/stddef.h> | 27 | #include <linux/stddef.h> |
28 | #include <linux/personality.h> | ||
29 | #include <asm/ucontext.h> | 28 | #include <asm/ucontext.h> |
30 | #include <asm/uaccess.h> | 29 | #include <asm/uaccess.h> |
31 | #include <asm/pgtable.h> | 30 | #include <asm/pgtable.h> |
diff --git a/arch/sparc/kernel/ebus.c b/arch/sparc/kernel/ebus.c index ac352eb6dff3..e2d02fd13f35 100644 --- a/arch/sparc/kernel/ebus.c +++ b/arch/sparc/kernel/ebus.c | |||
@@ -238,6 +238,7 @@ void __init fill_ebus_device(struct device_node *dp, struct linux_ebus_device *d | |||
238 | sd = &dev->ofdev.dev.archdata; | 238 | sd = &dev->ofdev.dev.archdata; |
239 | sd->prom_node = dp; | 239 | sd->prom_node = dp; |
240 | sd->op = &dev->ofdev; | 240 | sd->op = &dev->ofdev; |
241 | sd->iommu = dev->bus->ofdev.dev.parent->archdata.iommu; | ||
241 | 242 | ||
242 | dev->ofdev.node = dp; | 243 | dev->ofdev.node = dp; |
243 | dev->ofdev.dev.parent = &dev->bus->ofdev.dev; | 244 | dev->ofdev.dev.parent = &dev->bus->ofdev.dev; |
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile index 9ddc5b9ce3bd..76effdbea075 100644 --- a/arch/sparc/lib/Makefile +++ b/arch/sparc/lib/Makefile | |||
@@ -8,6 +8,7 @@ lib-y := mul.o rem.o sdiv.o udiv.o umul.o urem.o ashrdi3.o memcpy.o memset.o \ | |||
8 | strlen.o checksum.o blockops.o memscan.o memcmp.o strncmp.o \ | 8 | strlen.o checksum.o blockops.o memscan.o memcmp.o strncmp.o \ |
9 | strncpy_from_user.o divdi3.o udivdi3.o strlen_user.o \ | 9 | strncpy_from_user.o divdi3.o udivdi3.o strlen_user.o \ |
10 | copy_user.o locks.o atomic.o \ | 10 | copy_user.o locks.o atomic.o \ |
11 | lshrdi3.o ashldi3.o rwsem.o muldi3.o bitext.o | 11 | lshrdi3.o ashldi3.o rwsem.o muldi3.o bitext.o \ |
12 | cmpdi2.o | ||
12 | 13 | ||
13 | obj-y += iomap.o atomic32.o | 14 | obj-y += iomap.o atomic32.o |
diff --git a/arch/sparc/lib/cmpdi2.c b/arch/sparc/lib/cmpdi2.c new file mode 100644 index 000000000000..8c1306437ed1 --- /dev/null +++ b/arch/sparc/lib/cmpdi2.c | |||
@@ -0,0 +1,27 @@ | |||
1 | #include <linux/module.h> | ||
2 | |||
3 | #include "libgcc.h" | ||
4 | |||
5 | word_type __cmpdi2(long long a, long long b) | ||
6 | { | ||
7 | const DWunion au = { | ||
8 | .ll = a | ||
9 | }; | ||
10 | const DWunion bu = { | ||
11 | .ll = b | ||
12 | }; | ||
13 | |||
14 | if (au.s.high < bu.s.high) | ||
15 | return 0; | ||
16 | else if (au.s.high > bu.s.high) | ||
17 | return 2; | ||
18 | |||
19 | if ((unsigned int) au.s.low < (unsigned int) bu.s.low) | ||
20 | return 0; | ||
21 | else if ((unsigned int) au.s.low > (unsigned int) bu.s.low) | ||
22 | return 2; | ||
23 | |||
24 | return 1; | ||
25 | } | ||
26 | |||
27 | EXPORT_SYMBOL(__cmpdi2); | ||
diff --git a/arch/sparc/lib/libgcc.h b/arch/sparc/lib/libgcc.h new file mode 100644 index 000000000000..b84fd797f3ea --- /dev/null +++ b/arch/sparc/lib/libgcc.h | |||
@@ -0,0 +1,18 @@ | |||
1 | #ifndef __ASM_LIBGCC_H | ||
2 | #define __ASM_LIBGCC_H | ||
3 | |||
4 | #include <asm/byteorder.h> | ||
5 | |||
6 | typedef int word_type __attribute__ ((mode (__word__))); | ||
7 | |||
8 | struct DWstruct { | ||
9 | int high, low; | ||
10 | }; | ||
11 | |||
12 | typedef union | ||
13 | { | ||
14 | struct DWstruct s; | ||
15 | long long ll; | ||
16 | } DWunion; | ||
17 | |||
18 | #endif /* __ASM_LIBGCC_H */ | ||
diff --git a/arch/sparc/mm/io-unit.c b/arch/sparc/mm/io-unit.c index 4ccda77d08d6..7c89893b1fe8 100644 --- a/arch/sparc/mm/io-unit.c +++ b/arch/sparc/mm/io-unit.c | |||
@@ -66,7 +66,7 @@ iounit_init(int sbi_node, int io_node, struct sbus_bus *sbus) | |||
66 | } | 66 | } |
67 | if(!xpt) panic("Cannot map External Page Table."); | 67 | if(!xpt) panic("Cannot map External Page Table."); |
68 | 68 | ||
69 | sbus->iommu = (struct iommu_struct *)iounit; | 69 | sbus->ofdev.dev.archdata.iommu = iounit; |
70 | iounit->page_table = xpt; | 70 | iounit->page_table = xpt; |
71 | spin_lock_init(&iounit->lock); | 71 | spin_lock_init(&iounit->lock); |
72 | 72 | ||
@@ -127,7 +127,7 @@ nexti: scan = find_next_zero_bit(iounit->bmap, limit, scan); | |||
127 | static __u32 iounit_get_scsi_one(char *vaddr, unsigned long len, struct sbus_bus *sbus) | 127 | static __u32 iounit_get_scsi_one(char *vaddr, unsigned long len, struct sbus_bus *sbus) |
128 | { | 128 | { |
129 | unsigned long ret, flags; | 129 | unsigned long ret, flags; |
130 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 130 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
131 | 131 | ||
132 | spin_lock_irqsave(&iounit->lock, flags); | 132 | spin_lock_irqsave(&iounit->lock, flags); |
133 | ret = iounit_get_area(iounit, (unsigned long)vaddr, len); | 133 | ret = iounit_get_area(iounit, (unsigned long)vaddr, len); |
@@ -138,7 +138,7 @@ static __u32 iounit_get_scsi_one(char *vaddr, unsigned long len, struct sbus_bus | |||
138 | static void iounit_get_scsi_sgl(struct scatterlist *sg, int sz, struct sbus_bus *sbus) | 138 | static void iounit_get_scsi_sgl(struct scatterlist *sg, int sz, struct sbus_bus *sbus) |
139 | { | 139 | { |
140 | unsigned long flags; | 140 | unsigned long flags; |
141 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 141 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
142 | 142 | ||
143 | /* FIXME: Cache some resolved pages - often several sg entries are to the same page */ | 143 | /* FIXME: Cache some resolved pages - often several sg entries are to the same page */ |
144 | spin_lock_irqsave(&iounit->lock, flags); | 144 | spin_lock_irqsave(&iounit->lock, flags); |
@@ -153,7 +153,7 @@ static void iounit_get_scsi_sgl(struct scatterlist *sg, int sz, struct sbus_bus | |||
153 | static void iounit_release_scsi_one(__u32 vaddr, unsigned long len, struct sbus_bus *sbus) | 153 | static void iounit_release_scsi_one(__u32 vaddr, unsigned long len, struct sbus_bus *sbus) |
154 | { | 154 | { |
155 | unsigned long flags; | 155 | unsigned long flags; |
156 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 156 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
157 | 157 | ||
158 | spin_lock_irqsave(&iounit->lock, flags); | 158 | spin_lock_irqsave(&iounit->lock, flags); |
159 | len = ((vaddr & ~PAGE_MASK) + len + (PAGE_SIZE-1)) >> PAGE_SHIFT; | 159 | len = ((vaddr & ~PAGE_MASK) + len + (PAGE_SIZE-1)) >> PAGE_SHIFT; |
@@ -168,7 +168,7 @@ static void iounit_release_scsi_sgl(struct scatterlist *sg, int sz, struct sbus_ | |||
168 | { | 168 | { |
169 | unsigned long flags; | 169 | unsigned long flags; |
170 | unsigned long vaddr, len; | 170 | unsigned long vaddr, len; |
171 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 171 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
172 | 172 | ||
173 | spin_lock_irqsave(&iounit->lock, flags); | 173 | spin_lock_irqsave(&iounit->lock, flags); |
174 | while (sz != 0) { | 174 | while (sz != 0) { |
@@ -211,7 +211,7 @@ static int iounit_map_dma_area(dma_addr_t *pba, unsigned long va, __u32 addr, in | |||
211 | i = ((addr - IOUNIT_DMA_BASE) >> PAGE_SHIFT); | 211 | i = ((addr - IOUNIT_DMA_BASE) >> PAGE_SHIFT); |
212 | 212 | ||
213 | for_each_sbus(sbus) { | 213 | for_each_sbus(sbus) { |
214 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 214 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
215 | 215 | ||
216 | iopte = (iopte_t *)(iounit->page_table + i); | 216 | iopte = (iopte_t *)(iounit->page_table + i); |
217 | *iopte = MKIOPTE(__pa(page)); | 217 | *iopte = MKIOPTE(__pa(page)); |
@@ -235,7 +235,7 @@ static void iounit_unmap_dma_area(unsigned long addr, int len) | |||
235 | static struct page *iounit_translate_dvma(unsigned long addr) | 235 | static struct page *iounit_translate_dvma(unsigned long addr) |
236 | { | 236 | { |
237 | struct sbus_bus *sbus = sbus_root; /* They are all the same */ | 237 | struct sbus_bus *sbus = sbus_root; /* They are all the same */ |
238 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 238 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
239 | int i; | 239 | int i; |
240 | iopte_t *iopte; | 240 | iopte_t *iopte; |
241 | 241 | ||
@@ -279,7 +279,7 @@ __u32 iounit_map_dma_init(struct sbus_bus *sbus, int size) | |||
279 | unsigned long rotor, scan, limit; | 279 | unsigned long rotor, scan, limit; |
280 | unsigned long flags; | 280 | unsigned long flags; |
281 | __u32 ret; | 281 | __u32 ret; |
282 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 282 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
283 | 283 | ||
284 | npages = (size + (PAGE_SIZE-1)) >> PAGE_SHIFT; | 284 | npages = (size + (PAGE_SIZE-1)) >> PAGE_SHIFT; |
285 | i = 0x0213; | 285 | i = 0x0213; |
@@ -315,7 +315,7 @@ nexti: scan = find_next_zero_bit(iounit->bmap, limit, scan); | |||
315 | __u32 iounit_map_dma_page(__u32 vaddr, void *addr, struct sbus_bus *sbus) | 315 | __u32 iounit_map_dma_page(__u32 vaddr, void *addr, struct sbus_bus *sbus) |
316 | { | 316 | { |
317 | int scan = (vaddr - IOUNIT_DMA_BASE) >> PAGE_SHIFT; | 317 | int scan = (vaddr - IOUNIT_DMA_BASE) >> PAGE_SHIFT; |
318 | struct iounit_struct *iounit = (struct iounit_struct *)sbus->iommu; | 318 | struct iounit_struct *iounit = sbus->ofdev.dev.archdata.iommu; |
319 | 319 | ||
320 | iounit->page_table[scan] = MKIOPTE(__pa(((unsigned long)addr) & PAGE_MASK)); | 320 | iounit->page_table[scan] = MKIOPTE(__pa(((unsigned long)addr) & PAGE_MASK)); |
321 | return vaddr + (((unsigned long)addr) & ~PAGE_MASK); | 321 | return vaddr + (((unsigned long)addr) & ~PAGE_MASK); |
diff --git a/arch/sparc/mm/iommu.c b/arch/sparc/mm/iommu.c index be042efd1ba4..52e907af9d29 100644 --- a/arch/sparc/mm/iommu.c +++ b/arch/sparc/mm/iommu.c | |||
@@ -132,7 +132,7 @@ iommu_init(int iommund, struct sbus_bus *sbus) | |||
132 | impl, vers, iommu->page_table, | 132 | impl, vers, iommu->page_table, |
133 | (int)(IOMMU_NPTES*sizeof(iopte_t)), (int)IOMMU_NPTES); | 133 | (int)(IOMMU_NPTES*sizeof(iopte_t)), (int)IOMMU_NPTES); |
134 | 134 | ||
135 | sbus->iommu = iommu; | 135 | sbus->ofdev.dev.archdata.iommu = iommu; |
136 | } | 136 | } |
137 | 137 | ||
138 | /* This begs to be btfixup-ed by srmmu. */ | 138 | /* This begs to be btfixup-ed by srmmu. */ |
@@ -166,7 +166,7 @@ static void iommu_flush_iotlb(iopte_t *iopte, unsigned int niopte) | |||
166 | 166 | ||
167 | static u32 iommu_get_one(struct page *page, int npages, struct sbus_bus *sbus) | 167 | static u32 iommu_get_one(struct page *page, int npages, struct sbus_bus *sbus) |
168 | { | 168 | { |
169 | struct iommu_struct *iommu = sbus->iommu; | 169 | struct iommu_struct *iommu = sbus->ofdev.dev.archdata.iommu; |
170 | int ioptex; | 170 | int ioptex; |
171 | iopte_t *iopte, *iopte0; | 171 | iopte_t *iopte, *iopte0; |
172 | unsigned int busa, busa0; | 172 | unsigned int busa, busa0; |
@@ -291,7 +291,7 @@ static void iommu_get_scsi_sgl_pflush(struct scatterlist *sg, int sz, struct sbu | |||
291 | 291 | ||
292 | static void iommu_release_one(u32 busa, int npages, struct sbus_bus *sbus) | 292 | static void iommu_release_one(u32 busa, int npages, struct sbus_bus *sbus) |
293 | { | 293 | { |
294 | struct iommu_struct *iommu = sbus->iommu; | 294 | struct iommu_struct *iommu = sbus->ofdev.dev.archdata.iommu; |
295 | int ioptex; | 295 | int ioptex; |
296 | int i; | 296 | int i; |
297 | 297 | ||
@@ -334,7 +334,7 @@ static int iommu_map_dma_area(dma_addr_t *pba, unsigned long va, | |||
334 | unsigned long addr, int len) | 334 | unsigned long addr, int len) |
335 | { | 335 | { |
336 | unsigned long page, end; | 336 | unsigned long page, end; |
337 | struct iommu_struct *iommu = sbus_root->iommu; | 337 | struct iommu_struct *iommu = sbus_root->ofdev.dev.archdata.iommu; |
338 | iopte_t *iopte = iommu->page_table; | 338 | iopte_t *iopte = iommu->page_table; |
339 | iopte_t *first; | 339 | iopte_t *first; |
340 | int ioptex; | 340 | int ioptex; |
@@ -399,7 +399,7 @@ static int iommu_map_dma_area(dma_addr_t *pba, unsigned long va, | |||
399 | 399 | ||
400 | static void iommu_unmap_dma_area(unsigned long busa, int len) | 400 | static void iommu_unmap_dma_area(unsigned long busa, int len) |
401 | { | 401 | { |
402 | struct iommu_struct *iommu = sbus_root->iommu; | 402 | struct iommu_struct *iommu = sbus_root->ofdev.dev.archdata.iommu; |
403 | iopte_t *iopte = iommu->page_table; | 403 | iopte_t *iopte = iommu->page_table; |
404 | unsigned long end; | 404 | unsigned long end; |
405 | int ioptex = (busa - iommu->start) >> PAGE_SHIFT; | 405 | int ioptex = (busa - iommu->start) >> PAGE_SHIFT; |
@@ -420,7 +420,7 @@ static void iommu_unmap_dma_area(unsigned long busa, int len) | |||
420 | 420 | ||
421 | static struct page *iommu_translate_dvma(unsigned long busa) | 421 | static struct page *iommu_translate_dvma(unsigned long busa) |
422 | { | 422 | { |
423 | struct iommu_struct *iommu = sbus_root->iommu; | 423 | struct iommu_struct *iommu = sbus_root->ofdev.dev.archdata.iommu; |
424 | iopte_t *iopte = iommu->page_table; | 424 | iopte_t *iopte = iommu->page_table; |
425 | 425 | ||
426 | iopte += ((busa - iommu->start) >> PAGE_SHIFT); | 426 | iopte += ((busa - iommu->start) >> PAGE_SHIFT); |
diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c index 79d60d86f6f8..005a3e72d4f2 100644 --- a/arch/sparc/mm/sun4c.c +++ b/arch/sparc/mm/sun4c.c | |||
@@ -268,7 +268,6 @@ static inline void sun4c_init_clean_mmu(unsigned long kernel_end) | |||
268 | unsigned char savectx, ctx; | 268 | unsigned char savectx, ctx; |
269 | 269 | ||
270 | savectx = sun4c_get_context(); | 270 | savectx = sun4c_get_context(); |
271 | kernel_end = SUN4C_REAL_PGDIR_ALIGN(kernel_end); | ||
272 | for (ctx = 0; ctx < num_contexts; ctx++) { | 271 | for (ctx = 0; ctx < num_contexts; ctx++) { |
273 | sun4c_set_context(ctx); | 272 | sun4c_set_context(ctx); |
274 | for (vaddr = 0; vaddr < 0x20000000; vaddr += SUN4C_REAL_PGDIR_SIZE) | 273 | for (vaddr = 0; vaddr < 0x20000000; vaddr += SUN4C_REAL_PGDIR_SIZE) |
@@ -2064,7 +2063,6 @@ void __init sun4c_paging_init(void) | |||
2064 | unsigned long end_pfn, pages_avail; | 2063 | unsigned long end_pfn, pages_avail; |
2065 | 2064 | ||
2066 | kernel_end = (unsigned long) &end; | 2065 | kernel_end = (unsigned long) &end; |
2067 | kernel_end += (SUN4C_REAL_PGDIR_SIZE * 4); | ||
2068 | kernel_end = SUN4C_REAL_PGDIR_ALIGN(kernel_end); | 2066 | kernel_end = SUN4C_REAL_PGDIR_ALIGN(kernel_end); |
2069 | 2067 | ||
2070 | pages_avail = 0; | 2068 | pages_avail = 0; |
diff --git a/arch/sparc/prom/console.c b/arch/sparc/prom/console.c index 8d1cfb0d5068..2a007a784415 100644 --- a/arch/sparc/prom/console.c +++ b/arch/sparc/prom/console.c | |||
@@ -17,9 +17,6 @@ | |||
17 | 17 | ||
18 | extern void restore_current(void); | 18 | extern void restore_current(void); |
19 | 19 | ||
20 | static char con_name_jmc[] = "/obio/su@"; /* "/obio/su@0,3002f8"; */ | ||
21 | #define CON_SIZE_JMC (sizeof(con_name_jmc)) | ||
22 | |||
23 | /* Non blocking get character from console input device, returns -1 | 20 | /* Non blocking get character from console input device, returns -1 |
24 | * if no input was taken. This can be used for polling. | 21 | * if no input was taken. This can be used for polling. |
25 | */ | 22 | */ |
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S index ac18bd8e273f..63144ad476f6 100644 --- a/arch/sparc64/kernel/head.S +++ b/arch/sparc64/kernel/head.S | |||
@@ -501,7 +501,7 @@ niagara_tlb_fixup: | |||
501 | cmp %g1, SUN4V_CHIP_NIAGARA1 | 501 | cmp %g1, SUN4V_CHIP_NIAGARA1 |
502 | be,pt %xcc, niagara_patch | 502 | be,pt %xcc, niagara_patch |
503 | cmp %g1, SUN4V_CHIP_NIAGARA2 | 503 | cmp %g1, SUN4V_CHIP_NIAGARA2 |
504 | be,pt %xcc, niagara_patch | 504 | be,pt %xcc, niagara2_patch |
505 | nop | 505 | nop |
506 | 506 | ||
507 | call generic_patch_copyops | 507 | call generic_patch_copyops |
@@ -512,6 +512,15 @@ niagara_tlb_fixup: | |||
512 | nop | 512 | nop |
513 | 513 | ||
514 | ba,a,pt %xcc, 80f | 514 | ba,a,pt %xcc, 80f |
515 | niagara2_patch: | ||
516 | call niagara2_patch_copyops | ||
517 | nop | ||
518 | call niagara_patch_bzero | ||
519 | nop | ||
520 | call niagara2_patch_pageops | ||
521 | nop | ||
522 | |||
523 | ba,a,pt %xcc, 80f | ||
515 | 524 | ||
516 | niagara_patch: | 525 | niagara_patch: |
517 | call niagara_patch_copyops | 526 | call niagara_patch_copyops |
@@ -706,12 +715,13 @@ setup_trap_table: | |||
706 | 715 | ||
707 | membar #Sync | 716 | membar #Sync |
708 | 717 | ||
718 | BRANCH_IF_SUN4V(o2, 1f) | ||
719 | |||
709 | /* Kill PROM timer */ | 720 | /* Kill PROM timer */ |
710 | sethi %hi(0x80000000), %o2 | 721 | sethi %hi(0x80000000), %o2 |
711 | sllx %o2, 32, %o2 | 722 | sllx %o2, 32, %o2 |
712 | wr %o2, 0, %tick_cmpr | 723 | wr %o2, 0, %tick_cmpr |
713 | 724 | ||
714 | BRANCH_IF_SUN4V(o2, 1f) | ||
715 | BRANCH_IF_ANY_CHEETAH(o2, o3, 1f) | 725 | BRANCH_IF_ANY_CHEETAH(o2, o3, 1f) |
716 | 726 | ||
717 | ba,pt %xcc, 2f | 727 | ba,pt %xcc, 2f |
diff --git a/arch/sparc64/kernel/mdesc.c b/arch/sparc64/kernel/mdesc.c index 95059c2ec414..9f22e4ff6015 100644 --- a/arch/sparc64/kernel/mdesc.c +++ b/arch/sparc64/kernel/mdesc.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/list.h> | 9 | #include <linux/list.h> |
10 | #include <linux/slab.h> | 10 | #include <linux/slab.h> |
11 | #include <linux/mm.h> | 11 | #include <linux/mm.h> |
12 | #include <linux/miscdevice.h> | ||
12 | 13 | ||
13 | #include <asm/hypervisor.h> | 14 | #include <asm/hypervisor.h> |
14 | #include <asm/mdesc.h> | 15 | #include <asm/mdesc.h> |
@@ -836,6 +837,43 @@ void __devinit mdesc_fill_in_cpu_data(cpumask_t mask) | |||
836 | mdesc_release(hp); | 837 | mdesc_release(hp); |
837 | } | 838 | } |
838 | 839 | ||
840 | static ssize_t mdesc_read(struct file *file, char __user *buf, | ||
841 | size_t len, loff_t *offp) | ||
842 | { | ||
843 | struct mdesc_handle *hp = mdesc_grab(); | ||
844 | int err; | ||
845 | |||
846 | if (!hp) | ||
847 | return -ENODEV; | ||
848 | |||
849 | err = hp->handle_size; | ||
850 | if (len < hp->handle_size) | ||
851 | err = -EMSGSIZE; | ||
852 | else if (copy_to_user(buf, &hp->mdesc, hp->handle_size)) | ||
853 | err = -EFAULT; | ||
854 | mdesc_release(hp); | ||
855 | |||
856 | return err; | ||
857 | } | ||
858 | |||
859 | static const struct file_operations mdesc_fops = { | ||
860 | .read = mdesc_read, | ||
861 | .owner = THIS_MODULE, | ||
862 | }; | ||
863 | |||
864 | static struct miscdevice mdesc_misc = { | ||
865 | .minor = MISC_DYNAMIC_MINOR, | ||
866 | .name = "mdesc", | ||
867 | .fops = &mdesc_fops, | ||
868 | }; | ||
869 | |||
870 | static int __init mdesc_misc_init(void) | ||
871 | { | ||
872 | return misc_register(&mdesc_misc); | ||
873 | } | ||
874 | |||
875 | __initcall(mdesc_misc_init); | ||
876 | |||
839 | void __init sun4v_mdesc_init(void) | 877 | void __init sun4v_mdesc_init(void) |
840 | { | 878 | { |
841 | struct mdesc_handle *hp; | 879 | struct mdesc_handle *hp; |
diff --git a/arch/sparc64/kernel/trampoline.S b/arch/sparc64/kernel/trampoline.S index 9448595f9063..9533a25ce5d2 100644 --- a/arch/sparc64/kernel/trampoline.S +++ b/arch/sparc64/kernel/trampoline.S | |||
@@ -95,14 +95,13 @@ spitfire_startup: | |||
95 | membar #Sync | 95 | membar #Sync |
96 | 96 | ||
97 | startup_continue: | 97 | startup_continue: |
98 | mov %o0, %l0 | ||
99 | BRANCH_IF_SUN4V(g1, niagara_lock_tlb) | ||
100 | |||
98 | sethi %hi(0x80000000), %g2 | 101 | sethi %hi(0x80000000), %g2 |
99 | sllx %g2, 32, %g2 | 102 | sllx %g2, 32, %g2 |
100 | wr %g2, 0, %tick_cmpr | 103 | wr %g2, 0, %tick_cmpr |
101 | 104 | ||
102 | mov %o0, %l0 | ||
103 | |||
104 | BRANCH_IF_SUN4V(g1, niagara_lock_tlb) | ||
105 | |||
106 | /* Call OBP by hand to lock KERNBASE into i/d tlbs. | 105 | /* Call OBP by hand to lock KERNBASE into i/d tlbs. |
107 | * We lock 2 consequetive entries if we are 'bigkernel'. | 106 | * We lock 2 consequetive entries if we are 'bigkernel'. |
108 | */ | 107 | */ |
diff --git a/arch/sparc64/lib/Makefile b/arch/sparc64/lib/Makefile index f95fbfa3eeb8..f095e13910bc 100644 --- a/arch/sparc64/lib/Makefile +++ b/arch/sparc64/lib/Makefile | |||
@@ -13,6 +13,8 @@ lib-y := PeeCeeI.o copy_page.o clear_page.o strlen.o strncmp.o \ | |||
13 | U3memcpy.o U3copy_from_user.o U3copy_to_user.o U3patch.o \ | 13 | U3memcpy.o U3copy_from_user.o U3copy_to_user.o U3patch.o \ |
14 | NGmemcpy.o NGcopy_from_user.o NGcopy_to_user.o NGpatch.o \ | 14 | NGmemcpy.o NGcopy_from_user.o NGcopy_to_user.o NGpatch.o \ |
15 | NGpage.o NGbzero.o \ | 15 | NGpage.o NGbzero.o \ |
16 | NG2memcpy.o NG2copy_from_user.o NG2copy_to_user.o NG2patch.o \ | ||
17 | NG2page.o \ | ||
16 | GENmemcpy.o GENcopy_from_user.o GENcopy_to_user.o GENpatch.o \ | 18 | GENmemcpy.o GENcopy_from_user.o GENcopy_to_user.o GENpatch.o \ |
17 | GENpage.o GENbzero.o \ | 19 | GENpage.o GENbzero.o \ |
18 | copy_in_user.o user_fixup.o memmove.o \ | 20 | copy_in_user.o user_fixup.o memmove.o \ |
diff --git a/arch/sparc64/lib/NG2copy_from_user.S b/arch/sparc64/lib/NG2copy_from_user.S new file mode 100644 index 000000000000..c77ef5f22102 --- /dev/null +++ b/arch/sparc64/lib/NG2copy_from_user.S | |||
@@ -0,0 +1,40 @@ | |||
1 | /* NG2copy_from_user.S: Niagara-2 optimized copy from userspace. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller (davem@davemloft.net) | ||
4 | */ | ||
5 | |||
6 | #define EX_LD(x) \ | ||
7 | 98: x; \ | ||
8 | .section .fixup; \ | ||
9 | .align 4; \ | ||
10 | 99: wr %g0, ASI_AIUS, %asi;\ | ||
11 | retl; \ | ||
12 | mov 1, %o0; \ | ||
13 | .section __ex_table,"a";\ | ||
14 | .align 4; \ | ||
15 | .word 98b, 99b; \ | ||
16 | .text; \ | ||
17 | .align 4; | ||
18 | |||
19 | #ifndef ASI_AIUS | ||
20 | #define ASI_AIUS 0x11 | ||
21 | #endif | ||
22 | |||
23 | #ifndef ASI_BLK_AIUS_4V | ||
24 | #define ASI_BLK_AIUS_4V 0x17 | ||
25 | #endif | ||
26 | |||
27 | #define FUNC_NAME NG2copy_from_user | ||
28 | #define LOAD(type,addr,dest) type##a [addr] %asi, dest | ||
29 | #define LOAD_BLK(addr,dest) ldda [addr] ASI_BLK_AIUS_4V, dest | ||
30 | #define EX_RETVAL(x) 0 | ||
31 | |||
32 | #ifdef __KERNEL__ | ||
33 | #define PREAMBLE \ | ||
34 | rd %asi, %g1; \ | ||
35 | cmp %g1, ASI_AIUS; \ | ||
36 | bne,pn %icc, memcpy_user_stub; \ | ||
37 | nop | ||
38 | #endif | ||
39 | |||
40 | #include "NG2memcpy.S" | ||
diff --git a/arch/sparc64/lib/NG2copy_to_user.S b/arch/sparc64/lib/NG2copy_to_user.S new file mode 100644 index 000000000000..4bd4093acbbd --- /dev/null +++ b/arch/sparc64/lib/NG2copy_to_user.S | |||
@@ -0,0 +1,49 @@ | |||
1 | /* NG2copy_to_user.S: Niagara-2 optimized copy to userspace. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller (davem@davemloft.net) | ||
4 | */ | ||
5 | |||
6 | #define EX_ST(x) \ | ||
7 | 98: x; \ | ||
8 | .section .fixup; \ | ||
9 | .align 4; \ | ||
10 | 99: wr %g0, ASI_AIUS, %asi;\ | ||
11 | retl; \ | ||
12 | mov 1, %o0; \ | ||
13 | .section __ex_table,"a";\ | ||
14 | .align 4; \ | ||
15 | .word 98b, 99b; \ | ||
16 | .text; \ | ||
17 | .align 4; | ||
18 | |||
19 | #ifndef ASI_AIUS | ||
20 | #define ASI_AIUS 0x11 | ||
21 | #endif | ||
22 | |||
23 | #ifndef ASI_BLK_AIUS_4V | ||
24 | #define ASI_BLK_AIUS_4V 0x17 | ||
25 | #endif | ||
26 | |||
27 | #ifndef ASI_BLK_INIT_QUAD_LDD_AIUS | ||
28 | #define ASI_BLK_INIT_QUAD_LDD_AIUS 0x23 | ||
29 | #endif | ||
30 | |||
31 | #define FUNC_NAME NG2copy_to_user | ||
32 | #define STORE(type,src,addr) type##a src, [addr] ASI_AIUS | ||
33 | #define STORE_ASI ASI_BLK_INIT_QUAD_LDD_AIUS | ||
34 | #define STORE_BLK(src,addr) stda src, [addr] ASI_BLK_AIUS_4V | ||
35 | #define EX_RETVAL(x) 0 | ||
36 | |||
37 | #ifdef __KERNEL__ | ||
38 | /* Writing to %asi is _expensive_ so we hardcode it. | ||
39 | * Reading %asi to check for KERNEL_DS is comparatively | ||
40 | * cheap. | ||
41 | */ | ||
42 | #define PREAMBLE \ | ||
43 | rd %asi, %g1; \ | ||
44 | cmp %g1, ASI_AIUS; \ | ||
45 | bne,pn %icc, memcpy_user_stub; \ | ||
46 | nop | ||
47 | #endif | ||
48 | |||
49 | #include "NG2memcpy.S" | ||
diff --git a/arch/sparc64/lib/NG2memcpy.S b/arch/sparc64/lib/NG2memcpy.S new file mode 100644 index 000000000000..0aed75653b50 --- /dev/null +++ b/arch/sparc64/lib/NG2memcpy.S | |||
@@ -0,0 +1,520 @@ | |||
1 | /* NG2memcpy.S: Niagara-2 optimized memcpy. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller (davem@davemloft.net) | ||
4 | */ | ||
5 | |||
6 | #ifdef __KERNEL__ | ||
7 | #include <asm/visasm.h> | ||
8 | #include <asm/asi.h> | ||
9 | #define GLOBAL_SPARE %g7 | ||
10 | #else | ||
11 | #define ASI_PNF 0x82 | ||
12 | #define ASI_BLK_P 0xf0 | ||
13 | #define ASI_BLK_INIT_QUAD_LDD_P 0xe2 | ||
14 | #define FPRS_FEF 0x04 | ||
15 | #ifdef MEMCPY_DEBUG | ||
16 | #define VISEntryHalf rd %fprs, %o5; wr %g0, FPRS_FEF, %fprs; \ | ||
17 | clr %g1; clr %g2; clr %g3; subcc %g0, %g0, %g0; | ||
18 | #define VISExitHalf and %o5, FPRS_FEF, %o5; wr %o5, 0x0, %fprs | ||
19 | #else | ||
20 | #define VISEntryHalf rd %fprs, %o5; wr %g0, FPRS_FEF, %fprs | ||
21 | #define VISExitHalf and %o5, FPRS_FEF, %o5; wr %o5, 0x0, %fprs | ||
22 | #endif | ||
23 | #define GLOBAL_SPARE %g5 | ||
24 | #endif | ||
25 | |||
26 | #ifndef STORE_ASI | ||
27 | #ifndef SIMULATE_NIAGARA_ON_NON_NIAGARA | ||
28 | #define STORE_ASI ASI_BLK_INIT_QUAD_LDD_P | ||
29 | #else | ||
30 | #define STORE_ASI 0x80 /* ASI_P */ | ||
31 | #endif | ||
32 | #endif | ||
33 | |||
34 | #ifndef EX_LD | ||
35 | #define EX_LD(x) x | ||
36 | #endif | ||
37 | |||
38 | #ifndef EX_ST | ||
39 | #define EX_ST(x) x | ||
40 | #endif | ||
41 | |||
42 | #ifndef EX_RETVAL | ||
43 | #define EX_RETVAL(x) x | ||
44 | #endif | ||
45 | |||
46 | #ifndef LOAD | ||
47 | #define LOAD(type,addr,dest) type [addr], dest | ||
48 | #endif | ||
49 | |||
50 | #ifndef LOAD_BLK | ||
51 | #define LOAD_BLK(addr,dest) ldda [addr] ASI_BLK_P, dest | ||
52 | #endif | ||
53 | |||
54 | #ifndef STORE | ||
55 | #ifndef MEMCPY_DEBUG | ||
56 | #define STORE(type,src,addr) type src, [addr] | ||
57 | #else | ||
58 | #define STORE(type,src,addr) type##a src, [addr] 0x80 | ||
59 | #endif | ||
60 | #endif | ||
61 | |||
62 | #ifndef STORE_BLK | ||
63 | #define STORE_BLK(src,addr) stda src, [addr] ASI_BLK_P | ||
64 | #endif | ||
65 | |||
66 | #ifndef STORE_INIT | ||
67 | #define STORE_INIT(src,addr) stxa src, [addr] STORE_ASI | ||
68 | #endif | ||
69 | |||
70 | #ifndef FUNC_NAME | ||
71 | #define FUNC_NAME NG2memcpy | ||
72 | #endif | ||
73 | |||
74 | #ifndef PREAMBLE | ||
75 | #define PREAMBLE | ||
76 | #endif | ||
77 | |||
78 | #ifndef XCC | ||
79 | #define XCC xcc | ||
80 | #endif | ||
81 | |||
82 | #define FREG_FROB(x0, x1, x2, x3, x4, x5, x6, x7, x8) \ | ||
83 | faligndata %x0, %x1, %f0; \ | ||
84 | faligndata %x1, %x2, %f2; \ | ||
85 | faligndata %x2, %x3, %f4; \ | ||
86 | faligndata %x3, %x4, %f6; \ | ||
87 | faligndata %x4, %x5, %f8; \ | ||
88 | faligndata %x5, %x6, %f10; \ | ||
89 | faligndata %x6, %x7, %f12; \ | ||
90 | faligndata %x7, %x8, %f14; | ||
91 | |||
92 | #define FREG_MOVE_1(x0) \ | ||
93 | fmovd %x0, %f0; | ||
94 | #define FREG_MOVE_2(x0, x1) \ | ||
95 | fmovd %x0, %f0; \ | ||
96 | fmovd %x1, %f2; | ||
97 | #define FREG_MOVE_3(x0, x1, x2) \ | ||
98 | fmovd %x0, %f0; \ | ||
99 | fmovd %x1, %f2; \ | ||
100 | fmovd %x2, %f4; | ||
101 | #define FREG_MOVE_4(x0, x1, x2, x3) \ | ||
102 | fmovd %x0, %f0; \ | ||
103 | fmovd %x1, %f2; \ | ||
104 | fmovd %x2, %f4; \ | ||
105 | fmovd %x3, %f6; | ||
106 | #define FREG_MOVE_5(x0, x1, x2, x3, x4) \ | ||
107 | fmovd %x0, %f0; \ | ||
108 | fmovd %x1, %f2; \ | ||
109 | fmovd %x2, %f4; \ | ||
110 | fmovd %x3, %f6; \ | ||
111 | fmovd %x4, %f8; | ||
112 | #define FREG_MOVE_6(x0, x1, x2, x3, x4, x5) \ | ||
113 | fmovd %x0, %f0; \ | ||
114 | fmovd %x1, %f2; \ | ||
115 | fmovd %x2, %f4; \ | ||
116 | fmovd %x3, %f6; \ | ||
117 | fmovd %x4, %f8; \ | ||
118 | fmovd %x5, %f10; | ||
119 | #define FREG_MOVE_7(x0, x1, x2, x3, x4, x5, x6) \ | ||
120 | fmovd %x0, %f0; \ | ||
121 | fmovd %x1, %f2; \ | ||
122 | fmovd %x2, %f4; \ | ||
123 | fmovd %x3, %f6; \ | ||
124 | fmovd %x4, %f8; \ | ||
125 | fmovd %x5, %f10; \ | ||
126 | fmovd %x6, %f12; | ||
127 | #define FREG_MOVE_8(x0, x1, x2, x3, x4, x5, x6, x7) \ | ||
128 | fmovd %x0, %f0; \ | ||
129 | fmovd %x1, %f2; \ | ||
130 | fmovd %x2, %f4; \ | ||
131 | fmovd %x3, %f6; \ | ||
132 | fmovd %x4, %f8; \ | ||
133 | fmovd %x5, %f10; \ | ||
134 | fmovd %x6, %f12; \ | ||
135 | fmovd %x7, %f14; | ||
136 | #define FREG_LOAD_1(base, x0) \ | ||
137 | EX_LD(LOAD(ldd, base + 0x00, %x0)) | ||
138 | #define FREG_LOAD_2(base, x0, x1) \ | ||
139 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
140 | EX_LD(LOAD(ldd, base + 0x08, %x1)); | ||
141 | #define FREG_LOAD_3(base, x0, x1, x2) \ | ||
142 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
143 | EX_LD(LOAD(ldd, base + 0x08, %x1)); \ | ||
144 | EX_LD(LOAD(ldd, base + 0x10, %x2)); | ||
145 | #define FREG_LOAD_4(base, x0, x1, x2, x3) \ | ||
146 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
147 | EX_LD(LOAD(ldd, base + 0x08, %x1)); \ | ||
148 | EX_LD(LOAD(ldd, base + 0x10, %x2)); \ | ||
149 | EX_LD(LOAD(ldd, base + 0x18, %x3)); | ||
150 | #define FREG_LOAD_5(base, x0, x1, x2, x3, x4) \ | ||
151 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
152 | EX_LD(LOAD(ldd, base + 0x08, %x1)); \ | ||
153 | EX_LD(LOAD(ldd, base + 0x10, %x2)); \ | ||
154 | EX_LD(LOAD(ldd, base + 0x18, %x3)); \ | ||
155 | EX_LD(LOAD(ldd, base + 0x20, %x4)); | ||
156 | #define FREG_LOAD_6(base, x0, x1, x2, x3, x4, x5) \ | ||
157 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
158 | EX_LD(LOAD(ldd, base + 0x08, %x1)); \ | ||
159 | EX_LD(LOAD(ldd, base + 0x10, %x2)); \ | ||
160 | EX_LD(LOAD(ldd, base + 0x18, %x3)); \ | ||
161 | EX_LD(LOAD(ldd, base + 0x20, %x4)); \ | ||
162 | EX_LD(LOAD(ldd, base + 0x28, %x5)); | ||
163 | #define FREG_LOAD_7(base, x0, x1, x2, x3, x4, x5, x6) \ | ||
164 | EX_LD(LOAD(ldd, base + 0x00, %x0)); \ | ||
165 | EX_LD(LOAD(ldd, base + 0x08, %x1)); \ | ||
166 | EX_LD(LOAD(ldd, base + 0x10, %x2)); \ | ||
167 | EX_LD(LOAD(ldd, base + 0x18, %x3)); \ | ||
168 | EX_LD(LOAD(ldd, base + 0x20, %x4)); \ | ||
169 | EX_LD(LOAD(ldd, base + 0x28, %x5)); \ | ||
170 | EX_LD(LOAD(ldd, base + 0x30, %x6)); | ||
171 | |||
172 | .register %g2,#scratch | ||
173 | .register %g3,#scratch | ||
174 | |||
175 | .text | ||
176 | .align 64 | ||
177 | |||
178 | .globl FUNC_NAME | ||
179 | .type FUNC_NAME,#function | ||
180 | FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */ | ||
181 | srlx %o2, 31, %g2 | ||
182 | cmp %g2, 0 | ||
183 | tne %xcc, 5 | ||
184 | PREAMBLE | ||
185 | mov %o0, GLOBAL_SPARE | ||
186 | cmp %o2, 0 | ||
187 | be,pn %XCC, 85f | ||
188 | or %o0, %o1, %o3 | ||
189 | cmp %o2, 16 | ||
190 | blu,a,pn %XCC, 80f | ||
191 | or %o3, %o2, %o3 | ||
192 | |||
193 | /* 2 blocks (128 bytes) is the minimum we can do the block | ||
194 | * copy with. We need to ensure that we'll iterate at least | ||
195 | * once in the block copy loop. At worst we'll need to align | ||
196 | * the destination to a 64-byte boundary which can chew up | ||
197 | * to (64 - 1) bytes from the length before we perform the | ||
198 | * block copy loop. | ||
199 | * | ||
200 | * However, the cut-off point, performance wise, is around | ||
201 | * 4 64-byte blocks. | ||
202 | */ | ||
203 | cmp %o2, (4 * 64) | ||
204 | blu,pt %XCC, 75f | ||
205 | andcc %o3, 0x7, %g0 | ||
206 | |||
207 | /* %o0: dst | ||
208 | * %o1: src | ||
209 | * %o2: len (known to be >= 128) | ||
210 | * | ||
211 | * The block copy loops can use %o4, %g2, %g3 as | ||
212 | * temporaries while copying the data. %o5 must | ||
213 | * be preserved between VISEntryHalf and VISExitHalf | ||
214 | */ | ||
215 | |||
216 | LOAD(prefetch, %o1 + 0x000, #one_read) | ||
217 | LOAD(prefetch, %o1 + 0x040, #one_read) | ||
218 | LOAD(prefetch, %o1 + 0x080, #one_read) | ||
219 | |||
220 | /* Align destination on 64-byte boundary. */ | ||
221 | andcc %o0, (64 - 1), %o4 | ||
222 | be,pt %XCC, 2f | ||
223 | sub %o4, 64, %o4 | ||
224 | sub %g0, %o4, %o4 ! bytes to align dst | ||
225 | sub %o2, %o4, %o2 | ||
226 | 1: subcc %o4, 1, %o4 | ||
227 | EX_LD(LOAD(ldub, %o1, %g1)) | ||
228 | EX_ST(STORE(stb, %g1, %o0)) | ||
229 | add %o1, 1, %o1 | ||
230 | bne,pt %XCC, 1b | ||
231 | add %o0, 1, %o0 | ||
232 | |||
233 | 2: | ||
234 | /* Clobbers o5/g1/g2/g3/g7/icc/xcc. We must preserve | ||
235 | * o5 from here until we hit VISExitHalf. | ||
236 | */ | ||
237 | VISEntryHalf | ||
238 | |||
239 | alignaddr %o1, %g0, %g0 | ||
240 | |||
241 | add %o1, (64 - 1), %o4 | ||
242 | andn %o4, (64 - 1), %o4 | ||
243 | andn %o2, (64 - 1), %g1 | ||
244 | sub %o2, %g1, %o2 | ||
245 | |||
246 | and %o1, (64 - 1), %g2 | ||
247 | add %o1, %g1, %o1 | ||
248 | sub %o0, %o4, %g3 | ||
249 | brz,pt %g2, 190f | ||
250 | cmp %g2, 32 | ||
251 | blu,a 5f | ||
252 | cmp %g2, 16 | ||
253 | cmp %g2, 48 | ||
254 | blu,a 4f | ||
255 | cmp %g2, 40 | ||
256 | cmp %g2, 56 | ||
257 | blu 170f | ||
258 | nop | ||
259 | ba,a,pt %xcc, 180f | ||
260 | |||
261 | 4: /* 32 <= low bits < 48 */ | ||
262 | blu 150f | ||
263 | nop | ||
264 | ba,a,pt %xcc, 160f | ||
265 | 5: /* 0 < low bits < 32 */ | ||
266 | blu,a 6f | ||
267 | cmp %g2, 8 | ||
268 | cmp %g2, 24 | ||
269 | blu 130f | ||
270 | nop | ||
271 | ba,a,pt %xcc, 140f | ||
272 | 6: /* 0 < low bits < 16 */ | ||
273 | bgeu 120f | ||
274 | nop | ||
275 | /* fall through for 0 < low bits < 8 */ | ||
276 | 110: sub %o4, 64, %g2 | ||
277 | EX_LD(LOAD_BLK(%g2, %f0)) | ||
278 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
279 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
280 | FREG_FROB(f0, f2, f4, f6, f8, f10, f12, f14, f16) | ||
281 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
282 | FREG_MOVE_8(f16, f18, f20, f22, f24, f26, f28, f30) | ||
283 | subcc %g1, 64, %g1 | ||
284 | add %o4, 64, %o4 | ||
285 | bne,pt %xcc, 1b | ||
286 | LOAD(prefetch, %o4 + 64, #one_read) | ||
287 | ba,pt %xcc, 195f | ||
288 | nop | ||
289 | |||
290 | 120: sub %o4, 56, %g2 | ||
291 | FREG_LOAD_7(%g2, f0, f2, f4, f6, f8, f10, f12) | ||
292 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
293 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
294 | FREG_FROB(f0, f2, f4, f6, f8, f10, f12, f16, f18) | ||
295 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
296 | FREG_MOVE_7(f18, f20, f22, f24, f26, f28, f30) | ||
297 | subcc %g1, 64, %g1 | ||
298 | add %o4, 64, %o4 | ||
299 | bne,pt %xcc, 1b | ||
300 | LOAD(prefetch, %o4 + 64, #one_read) | ||
301 | ba,pt %xcc, 195f | ||
302 | nop | ||
303 | |||
304 | 130: sub %o4, 48, %g2 | ||
305 | FREG_LOAD_6(%g2, f0, f2, f4, f6, f8, f10) | ||
306 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
307 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
308 | FREG_FROB(f0, f2, f4, f6, f8, f10, f16, f18, f20) | ||
309 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
310 | FREG_MOVE_6(f20, f22, f24, f26, f28, f30) | ||
311 | subcc %g1, 64, %g1 | ||
312 | add %o4, 64, %o4 | ||
313 | bne,pt %xcc, 1b | ||
314 | LOAD(prefetch, %o4 + 64, #one_read) | ||
315 | ba,pt %xcc, 195f | ||
316 | nop | ||
317 | |||
318 | 140: sub %o4, 40, %g2 | ||
319 | FREG_LOAD_5(%g2, f0, f2, f4, f6, f8) | ||
320 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
321 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
322 | FREG_FROB(f0, f2, f4, f6, f8, f16, f18, f20, f22) | ||
323 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
324 | FREG_MOVE_5(f22, f24, f26, f28, f30) | ||
325 | subcc %g1, 64, %g1 | ||
326 | add %o4, 64, %o4 | ||
327 | bne,pt %xcc, 1b | ||
328 | LOAD(prefetch, %o4 + 64, #one_read) | ||
329 | ba,pt %xcc, 195f | ||
330 | nop | ||
331 | |||
332 | 150: sub %o4, 32, %g2 | ||
333 | FREG_LOAD_4(%g2, f0, f2, f4, f6) | ||
334 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
335 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
336 | FREG_FROB(f0, f2, f4, f6, f16, f18, f20, f22, f24) | ||
337 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
338 | FREG_MOVE_4(f24, f26, f28, f30) | ||
339 | subcc %g1, 64, %g1 | ||
340 | add %o4, 64, %o4 | ||
341 | bne,pt %xcc, 1b | ||
342 | LOAD(prefetch, %o4 + 64, #one_read) | ||
343 | ba,pt %xcc, 195f | ||
344 | nop | ||
345 | |||
346 | 160: sub %o4, 24, %g2 | ||
347 | FREG_LOAD_3(%g2, f0, f2, f4) | ||
348 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
349 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
350 | FREG_FROB(f0, f2, f4, f16, f18, f20, f22, f24, f26) | ||
351 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
352 | FREG_MOVE_3(f26, f28, f30) | ||
353 | subcc %g1, 64, %g1 | ||
354 | add %o4, 64, %o4 | ||
355 | bne,pt %xcc, 1b | ||
356 | LOAD(prefetch, %o4 + 64, #one_read) | ||
357 | ba,pt %xcc, 195f | ||
358 | nop | ||
359 | |||
360 | 170: sub %o4, 16, %g2 | ||
361 | FREG_LOAD_2(%g2, f0, f2) | ||
362 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
363 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
364 | FREG_FROB(f0, f2, f16, f18, f20, f22, f24, f26, f28) | ||
365 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
366 | FREG_MOVE_2(f28, f30) | ||
367 | subcc %g1, 64, %g1 | ||
368 | add %o4, 64, %o4 | ||
369 | bne,pt %xcc, 1b | ||
370 | LOAD(prefetch, %o4 + 64, #one_read) | ||
371 | ba,pt %xcc, 195f | ||
372 | nop | ||
373 | |||
374 | 180: sub %o4, 8, %g2 | ||
375 | FREG_LOAD_1(%g2, f0) | ||
376 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
377 | EX_LD(LOAD_BLK(%o4, %f16)) | ||
378 | FREG_FROB(f0, f16, f18, f20, f22, f24, f26, f28, f30) | ||
379 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
380 | FREG_MOVE_1(f30) | ||
381 | subcc %g1, 64, %g1 | ||
382 | add %o4, 64, %o4 | ||
383 | bne,pt %xcc, 1b | ||
384 | LOAD(prefetch, %o4 + 64, #one_read) | ||
385 | ba,pt %xcc, 195f | ||
386 | nop | ||
387 | |||
388 | 190: | ||
389 | 1: EX_ST(STORE_INIT(%g0, %o4 + %g3)) | ||
390 | subcc %g1, 64, %g1 | ||
391 | EX_LD(LOAD_BLK(%o4, %f0)) | ||
392 | EX_ST(STORE_BLK(%f0, %o4 + %g3)) | ||
393 | add %o4, 64, %o4 | ||
394 | bne,pt %xcc, 1b | ||
395 | LOAD(prefetch, %o4 + 64, #one_read) | ||
396 | |||
397 | 195: | ||
398 | add %o4, %g3, %o0 | ||
399 | membar #Sync | ||
400 | |||
401 | VISExitHalf | ||
402 | |||
403 | /* %o2 contains any final bytes still needed to be copied | ||
404 | * over. If anything is left, we copy it one byte at a time. | ||
405 | */ | ||
406 | brz,pt %o2, 85f | ||
407 | sub %o0, %o1, %o3 | ||
408 | ba,a,pt %XCC, 90f | ||
409 | |||
410 | .align 64 | ||
411 | 75: /* 16 < len <= 64 */ | ||
412 | bne,pn %XCC, 75f | ||
413 | sub %o0, %o1, %o3 | ||
414 | |||
415 | 72: | ||
416 | andn %o2, 0xf, %o4 | ||
417 | and %o2, 0xf, %o2 | ||
418 | 1: subcc %o4, 0x10, %o4 | ||
419 | EX_LD(LOAD(ldx, %o1, %o5)) | ||
420 | add %o1, 0x08, %o1 | ||
421 | EX_LD(LOAD(ldx, %o1, %g1)) | ||
422 | sub %o1, 0x08, %o1 | ||
423 | EX_ST(STORE(stx, %o5, %o1 + %o3)) | ||
424 | add %o1, 0x8, %o1 | ||
425 | EX_ST(STORE(stx, %g1, %o1 + %o3)) | ||
426 | bgu,pt %XCC, 1b | ||
427 | add %o1, 0x8, %o1 | ||
428 | 73: andcc %o2, 0x8, %g0 | ||
429 | be,pt %XCC, 1f | ||
430 | nop | ||
431 | sub %o2, 0x8, %o2 | ||
432 | EX_LD(LOAD(ldx, %o1, %o5)) | ||
433 | EX_ST(STORE(stx, %o5, %o1 + %o3)) | ||
434 | add %o1, 0x8, %o1 | ||
435 | 1: andcc %o2, 0x4, %g0 | ||
436 | be,pt %XCC, 1f | ||
437 | nop | ||
438 | sub %o2, 0x4, %o2 | ||
439 | EX_LD(LOAD(lduw, %o1, %o5)) | ||
440 | EX_ST(STORE(stw, %o5, %o1 + %o3)) | ||
441 | add %o1, 0x4, %o1 | ||
442 | 1: cmp %o2, 0 | ||
443 | be,pt %XCC, 85f | ||
444 | nop | ||
445 | ba,pt %xcc, 90f | ||
446 | nop | ||
447 | |||
448 | 75: | ||
449 | andcc %o0, 0x7, %g1 | ||
450 | sub %g1, 0x8, %g1 | ||
451 | be,pn %icc, 2f | ||
452 | sub %g0, %g1, %g1 | ||
453 | sub %o2, %g1, %o2 | ||
454 | |||
455 | 1: subcc %g1, 1, %g1 | ||
456 | EX_LD(LOAD(ldub, %o1, %o5)) | ||
457 | EX_ST(STORE(stb, %o5, %o1 + %o3)) | ||
458 | bgu,pt %icc, 1b | ||
459 | add %o1, 1, %o1 | ||
460 | |||
461 | 2: add %o1, %o3, %o0 | ||
462 | andcc %o1, 0x7, %g1 | ||
463 | bne,pt %icc, 8f | ||
464 | sll %g1, 3, %g1 | ||
465 | |||
466 | cmp %o2, 16 | ||
467 | bgeu,pt %icc, 72b | ||
468 | nop | ||
469 | ba,a,pt %xcc, 73b | ||
470 | |||
471 | 8: mov 64, %o3 | ||
472 | andn %o1, 0x7, %o1 | ||
473 | EX_LD(LOAD(ldx, %o1, %g2)) | ||
474 | sub %o3, %g1, %o3 | ||
475 | andn %o2, 0x7, %o4 | ||
476 | sllx %g2, %g1, %g2 | ||
477 | 1: add %o1, 0x8, %o1 | ||
478 | EX_LD(LOAD(ldx, %o1, %g3)) | ||
479 | subcc %o4, 0x8, %o4 | ||
480 | srlx %g3, %o3, %o5 | ||
481 | or %o5, %g2, %o5 | ||
482 | EX_ST(STORE(stx, %o5, %o0)) | ||
483 | add %o0, 0x8, %o0 | ||
484 | bgu,pt %icc, 1b | ||
485 | sllx %g3, %g1, %g2 | ||
486 | |||
487 | srl %g1, 3, %g1 | ||
488 | andcc %o2, 0x7, %o2 | ||
489 | be,pn %icc, 85f | ||
490 | add %o1, %g1, %o1 | ||
491 | ba,pt %xcc, 90f | ||
492 | sub %o0, %o1, %o3 | ||
493 | |||
494 | .align 64 | ||
495 | 80: /* 0 < len <= 16 */ | ||
496 | andcc %o3, 0x3, %g0 | ||
497 | bne,pn %XCC, 90f | ||
498 | sub %o0, %o1, %o3 | ||
499 | |||
500 | 1: | ||
501 | subcc %o2, 4, %o2 | ||
502 | EX_LD(LOAD(lduw, %o1, %g1)) | ||
503 | EX_ST(STORE(stw, %g1, %o1 + %o3)) | ||
504 | bgu,pt %XCC, 1b | ||
505 | add %o1, 4, %o1 | ||
506 | |||
507 | 85: retl | ||
508 | mov EX_RETVAL(GLOBAL_SPARE), %o0 | ||
509 | |||
510 | .align 32 | ||
511 | 90: | ||
512 | subcc %o2, 1, %o2 | ||
513 | EX_LD(LOAD(ldub, %o1, %g1)) | ||
514 | EX_ST(STORE(stb, %g1, %o1 + %o3)) | ||
515 | bgu,pt %XCC, 90b | ||
516 | add %o1, 1, %o1 | ||
517 | retl | ||
518 | mov EX_RETVAL(GLOBAL_SPARE), %o0 | ||
519 | |||
520 | .size FUNC_NAME, .-FUNC_NAME | ||
diff --git a/arch/sparc64/lib/NG2page.S b/arch/sparc64/lib/NG2page.S new file mode 100644 index 000000000000..73b6b7c72cbf --- /dev/null +++ b/arch/sparc64/lib/NG2page.S | |||
@@ -0,0 +1,61 @@ | |||
1 | /* NG2page.S: Niagara-2 optimized clear and copy page. | ||
2 | * | ||
3 | * Copyright (C) 2007 (davem@davemloft.net) | ||
4 | */ | ||
5 | |||
6 | #include <asm/asi.h> | ||
7 | #include <asm/page.h> | ||
8 | #include <asm/visasm.h> | ||
9 | |||
10 | .text | ||
11 | .align 32 | ||
12 | |||
13 | /* This is heavily simplified from the sun4u variants | ||
14 | * because Niagara-2 does not have any D-cache aliasing issues. | ||
15 | */ | ||
16 | NG2copy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */ | ||
17 | prefetch [%o1 + 0x00], #one_read | ||
18 | prefetch [%o1 + 0x40], #one_read | ||
19 | VISEntryHalf | ||
20 | set PAGE_SIZE, %g7 | ||
21 | sub %o0, %o1, %g3 | ||
22 | 1: stxa %g0, [%o1 + %g3] ASI_BLK_INIT_QUAD_LDD_P | ||
23 | subcc %g7, 64, %g7 | ||
24 | ldda [%o1] ASI_BLK_P, %f0 | ||
25 | stda %f0, [%o1 + %g3] ASI_BLK_P | ||
26 | add %o1, 64, %o1 | ||
27 | bne,pt %xcc, 1b | ||
28 | prefetch [%o1 + 0x40], #one_read | ||
29 | membar #Sync | ||
30 | VISExitHalf | ||
31 | retl | ||
32 | nop | ||
33 | |||
34 | #define BRANCH_ALWAYS 0x10680000 | ||
35 | #define NOP 0x01000000 | ||
36 | #define NG_DO_PATCH(OLD, NEW) \ | ||
37 | sethi %hi(NEW), %g1; \ | ||
38 | or %g1, %lo(NEW), %g1; \ | ||
39 | sethi %hi(OLD), %g2; \ | ||
40 | or %g2, %lo(OLD), %g2; \ | ||
41 | sub %g1, %g2, %g1; \ | ||
42 | sethi %hi(BRANCH_ALWAYS), %g3; \ | ||
43 | sll %g1, 11, %g1; \ | ||
44 | srl %g1, 11 + 2, %g1; \ | ||
45 | or %g3, %lo(BRANCH_ALWAYS), %g3; \ | ||
46 | or %g3, %g1, %g3; \ | ||
47 | stw %g3, [%g2]; \ | ||
48 | sethi %hi(NOP), %g3; \ | ||
49 | or %g3, %lo(NOP), %g3; \ | ||
50 | stw %g3, [%g2 + 0x4]; \ | ||
51 | flush %g2; | ||
52 | |||
53 | .globl niagara2_patch_pageops | ||
54 | .type niagara2_patch_pageops,#function | ||
55 | niagara2_patch_pageops: | ||
56 | NG_DO_PATCH(copy_user_page, NG2copy_user_page) | ||
57 | NG_DO_PATCH(_clear_page, NGclear_page) | ||
58 | NG_DO_PATCH(clear_user_page, NGclear_user_page) | ||
59 | retl | ||
60 | nop | ||
61 | .size niagara2_patch_pageops,.-niagara2_patch_pageops | ||
diff --git a/arch/sparc64/lib/NG2patch.S b/arch/sparc64/lib/NG2patch.S new file mode 100644 index 000000000000..28c36f06a6d1 --- /dev/null +++ b/arch/sparc64/lib/NG2patch.S | |||
@@ -0,0 +1,33 @@ | |||
1 | /* NG2patch.S: Patch Ultra-I routines with Niagara-2 variant. | ||
2 | * | ||
3 | * Copyright (C) 2007 David S. Miller <davem@davemloft.net> | ||
4 | */ | ||
5 | |||
6 | #define BRANCH_ALWAYS 0x10680000 | ||
7 | #define NOP 0x01000000 | ||
8 | #define NG_DO_PATCH(OLD, NEW) \ | ||
9 | sethi %hi(NEW), %g1; \ | ||
10 | or %g1, %lo(NEW), %g1; \ | ||
11 | sethi %hi(OLD), %g2; \ | ||
12 | or %g2, %lo(OLD), %g2; \ | ||
13 | sub %g1, %g2, %g1; \ | ||
14 | sethi %hi(BRANCH_ALWAYS), %g3; \ | ||
15 | sll %g1, 11, %g1; \ | ||
16 | srl %g1, 11 + 2, %g1; \ | ||
17 | or %g3, %lo(BRANCH_ALWAYS), %g3; \ | ||
18 | or %g3, %g1, %g3; \ | ||
19 | stw %g3, [%g2]; \ | ||
20 | sethi %hi(NOP), %g3; \ | ||
21 | or %g3, %lo(NOP), %g3; \ | ||
22 | stw %g3, [%g2 + 0x4]; \ | ||
23 | flush %g2; | ||
24 | |||
25 | .globl niagara2_patch_copyops | ||
26 | .type niagara2_patch_copyops,#function | ||
27 | niagara2_patch_copyops: | ||
28 | NG_DO_PATCH(memcpy, NG2memcpy) | ||
29 | NG_DO_PATCH(___copy_from_user, NG2copy_from_user) | ||
30 | NG_DO_PATCH(___copy_to_user, NG2copy_to_user) | ||
31 | retl | ||
32 | nop | ||
33 | .size niagara2_patch_copyops,.-niagara2_patch_copyops | ||
diff --git a/arch/sparc64/lib/NGpage.S b/arch/sparc64/lib/NGpage.S index 8ce3a0c9c537..428920de05ba 100644 --- a/arch/sparc64/lib/NGpage.S +++ b/arch/sparc64/lib/NGpage.S | |||
@@ -45,6 +45,7 @@ NGcopy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */ | |||
45 | retl | 45 | retl |
46 | nop | 46 | nop |
47 | 47 | ||
48 | .globl NGclear_page, NGclear_user_page | ||
48 | NGclear_page: /* %o0=dest */ | 49 | NGclear_page: /* %o0=dest */ |
49 | NGclear_user_page: /* %o0=dest, %o1=vaddr */ | 50 | NGclear_user_page: /* %o0=dest, %o1=vaddr */ |
50 | mov 8, %g1 | 51 | mov 8, %g1 |
diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index aff661fe2ee1..0eabe73c964d 100644 --- a/arch/um/drivers/ubd_kern.c +++ b/arch/um/drivers/ubd_kern.c | |||
@@ -612,6 +612,8 @@ static int ubd_open_dev(struct ubd *ubd_dev) | |||
612 | ubd_dev->fd = fd; | 612 | ubd_dev->fd = fd; |
613 | 613 | ||
614 | if(ubd_dev->cow.file != NULL){ | 614 | if(ubd_dev->cow.file != NULL){ |
615 | blk_queue_max_sectors(ubd_dev->queue, 8 * sizeof(long)); | ||
616 | |||
615 | err = -ENOMEM; | 617 | err = -ENOMEM; |
616 | ubd_dev->cow.bitmap = (void *) vmalloc(ubd_dev->cow.bitmap_len); | 618 | ubd_dev->cow.bitmap = (void *) vmalloc(ubd_dev->cow.bitmap_len); |
617 | if(ubd_dev->cow.bitmap == NULL){ | 619 | if(ubd_dev->cow.bitmap == NULL){ |
@@ -712,8 +714,6 @@ static int ubd_add(int n, char **error_out) | |||
712 | ubd_dev->queue->queuedata = ubd_dev; | 714 | ubd_dev->queue->queuedata = ubd_dev; |
713 | 715 | ||
714 | blk_queue_max_hw_segments(ubd_dev->queue, MAX_SG); | 716 | blk_queue_max_hw_segments(ubd_dev->queue, MAX_SG); |
715 | if(ubd_dev->cow.file != NULL) | ||
716 | blk_queue_max_sectors(ubd_dev->queue, 8 * sizeof(long)); | ||
717 | err = ubd_disk_register(MAJOR_NR, ubd_dev->size, n, &ubd_gendisk[n]); | 717 | err = ubd_disk_register(MAJOR_NR, ubd_dev->size, n, &ubd_gendisk[n]); |
718 | if(err){ | 718 | if(err){ |
719 | *error_out = "Failed to register device"; | 719 | *error_out = "Failed to register device"; |
diff --git a/arch/x86_64/Makefile b/arch/x86_64/Makefile index 128561d3e876..b024e4a86895 100644 --- a/arch/x86_64/Makefile +++ b/arch/x86_64/Makefile | |||
@@ -57,8 +57,8 @@ cflags-y += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,) | |||
57 | cflags-y += -maccumulate-outgoing-args | 57 | cflags-y += -maccumulate-outgoing-args |
58 | 58 | ||
59 | # do binutils support CFI? | 59 | # do binutils support CFI? |
60 | cflags-y += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,) | 60 | cflags-y += $(call as-instr,.cfi_startproc\n.cfi_rel_offset rsp${comma}0\n.cfi_endproc,-DCONFIG_AS_CFI=1,) |
61 | AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_endproc,-DCONFIG_AS_CFI=1,) | 61 | AFLAGS += $(call as-instr,.cfi_startproc\n.cfi_rel_offset rsp${comma}0\n.cfi_endproc,-DCONFIG_AS_CFI=1,) |
62 | 62 | ||
63 | # is .cfi_signal_frame supported too? | 63 | # is .cfi_signal_frame supported too? |
64 | cflags-y += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,) | 64 | cflags-y += $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1,) |
diff --git a/arch/x86_64/kernel/head.S b/arch/x86_64/kernel/head.S index e89abcdbdde8..b6167fe3330e 100644 --- a/arch/x86_64/kernel/head.S +++ b/arch/x86_64/kernel/head.S | |||
@@ -345,8 +345,7 @@ NEXT_PAGE(level2_kernel_pgt) | |||
345 | /* 40MB kernel mapping. The kernel code cannot be bigger than that. | 345 | /* 40MB kernel mapping. The kernel code cannot be bigger than that. |
346 | When you change this change KERNEL_TEXT_SIZE in page.h too. */ | 346 | When you change this change KERNEL_TEXT_SIZE in page.h too. */ |
347 | /* (2^48-(2*1024*1024*1024)-((2^39)*511)-((2^30)*510)) = 0 */ | 347 | /* (2^48-(2*1024*1024*1024)-((2^39)*511)-((2^30)*510)) = 0 */ |
348 | PMDS(0x0000000000000000, __PAGE_KERNEL_LARGE_EXEC|_PAGE_GLOBAL, | 348 | PMDS(0x0000000000000000, __PAGE_KERNEL_LARGE_EXEC|_PAGE_GLOBAL, KERNEL_TEXT_SIZE/PMD_SIZE) |
349 | KERNEL_TEXT_SIZE/PMD_SIZE) | ||
350 | /* Module mapping starts here */ | 349 | /* Module mapping starts here */ |
351 | .fill (PTRS_PER_PMD - (KERNEL_TEXT_SIZE/PMD_SIZE)),8,0 | 350 | .fill (PTRS_PER_PMD - (KERNEL_TEXT_SIZE/PMD_SIZE)),8,0 |
352 | 351 | ||
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c index f57f8b901912..966fa1062491 100644 --- a/arch/x86_64/kernel/io_apic.c +++ b/arch/x86_64/kernel/io_apic.c | |||
@@ -397,14 +397,12 @@ static void clear_IO_APIC (void) | |||
397 | int skip_ioapic_setup; | 397 | int skip_ioapic_setup; |
398 | int ioapic_force; | 398 | int ioapic_force; |
399 | 399 | ||
400 | /* dummy parsing: see setup.c */ | 400 | static int __init parse_noapic(char *str) |
401 | |||
402 | static int __init disable_ioapic_setup(char *str) | ||
403 | { | 401 | { |
404 | skip_ioapic_setup = 1; | 402 | disable_ioapic_setup(); |
405 | return 0; | 403 | return 0; |
406 | } | 404 | } |
407 | early_param("noapic", disable_ioapic_setup); | 405 | early_param("noapic", parse_noapic); |
408 | 406 | ||
409 | /* Actually the next is obsolete, but keep it for paranoid reasons -AK */ | 407 | /* Actually the next is obsolete, but keep it for paranoid reasons -AK */ |
410 | static int __init disable_timer_pin_setup(char *arg) | 408 | static int __init disable_timer_pin_setup(char *arg) |
diff --git a/arch/x86_64/kernel/nmi.c b/arch/x86_64/kernel/nmi.c index cb8ee9d02f86..0ec6d2ddb931 100644 --- a/arch/x86_64/kernel/nmi.c +++ b/arch/x86_64/kernel/nmi.c | |||
@@ -85,7 +85,7 @@ int __init check_nmi_watchdog (void) | |||
85 | int *counts; | 85 | int *counts; |
86 | int cpu; | 86 | int cpu; |
87 | 87 | ||
88 | if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DEFAULT)) | 88 | if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DISABLED)) |
89 | return 0; | 89 | return 0; |
90 | 90 | ||
91 | if (!atomic_read(&nmi_active)) | 91 | if (!atomic_read(&nmi_active)) |
@@ -442,7 +442,7 @@ int proc_nmi_enabled(struct ctl_table *table, int write, struct file *file, | |||
442 | if (!!old_state == !!nmi_watchdog_enabled) | 442 | if (!!old_state == !!nmi_watchdog_enabled) |
443 | return 0; | 443 | return 0; |
444 | 444 | ||
445 | if (atomic_read(&nmi_active) < 0) { | 445 | if (atomic_read(&nmi_active) < 0 || nmi_watchdog == NMI_DISABLED) { |
446 | printk( KERN_WARNING "NMI watchdog is permanently disabled\n"); | 446 | printk( KERN_WARNING "NMI watchdog is permanently disabled\n"); |
447 | return -EIO; | 447 | return -EIO; |
448 | } | 448 | } |
diff --git a/arch/x86_64/kernel/pci-dma.c b/arch/x86_64/kernel/pci-dma.c index 05d745ede561..29711445c818 100644 --- a/arch/x86_64/kernel/pci-dma.c +++ b/arch/x86_64/kernel/pci-dma.c | |||
@@ -82,6 +82,10 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, | |||
82 | if (dma_mask == 0) | 82 | if (dma_mask == 0) |
83 | dma_mask = DMA_32BIT_MASK; | 83 | dma_mask = DMA_32BIT_MASK; |
84 | 84 | ||
85 | /* Device not DMA able */ | ||
86 | if (dev->dma_mask == NULL) | ||
87 | return NULL; | ||
88 | |||
85 | /* Don't invoke OOM killer */ | 89 | /* Don't invoke OOM killer */ |
86 | gfp |= __GFP_NORETRY; | 90 | gfp |= __GFP_NORETRY; |
87 | 91 | ||
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig index f1372de4ce79..4875f0149eb4 100644 --- a/drivers/acpi/Kconfig +++ b/drivers/acpi/Kconfig | |||
@@ -68,6 +68,24 @@ config ACPI_PROCFS | |||
68 | 68 | ||
69 | Say N to delete /proc/acpi/ files that have moved to /sys/ | 69 | Say N to delete /proc/acpi/ files that have moved to /sys/ |
70 | 70 | ||
71 | config ACPI_PROC_EVENT | ||
72 | bool "Deprecated /proc/acpi/event support" | ||
73 | depends on PROC_FS | ||
74 | default y | ||
75 | ---help--- | ||
76 | A user-space daemon, acpi, typically read /proc/acpi/event | ||
77 | and handled all ACPI sub-system generated events. | ||
78 | |||
79 | These events are now delivered to user-space via | ||
80 | either the input layer, or as netlink events. | ||
81 | |||
82 | This build option enables the old code for legacy | ||
83 | user-space implementation. After some time, this will | ||
84 | be moved under CONFIG_ACPI_PROCFS, and then deleted. | ||
85 | |||
86 | Say Y here to retain the old behaviour. Say N if your | ||
87 | user-space is newer than kernel 2.6.23 (September 2007). | ||
88 | |||
71 | config ACPI_AC | 89 | config ACPI_AC |
72 | tristate "AC Adapter" | 90 | tristate "AC Adapter" |
73 | depends on X86 | 91 | depends on X86 |
diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c index d8b35093527a..26d70702b313 100644 --- a/drivers/acpi/ac.c +++ b/drivers/acpi/ac.c | |||
@@ -204,7 +204,10 @@ static void acpi_ac_notify(acpi_handle handle, u32 event, void *data) | |||
204 | case ACPI_NOTIFY_BUS_CHECK: | 204 | case ACPI_NOTIFY_BUS_CHECK: |
205 | case ACPI_NOTIFY_DEVICE_CHECK: | 205 | case ACPI_NOTIFY_DEVICE_CHECK: |
206 | acpi_ac_get_state(ac); | 206 | acpi_ac_get_state(ac); |
207 | acpi_bus_generate_event(device, event, (u32) ac->state); | 207 | acpi_bus_generate_proc_event(device, event, (u32) ac->state); |
208 | acpi_bus_generate_netlink_event(device->pnp.device_class, | ||
209 | device->dev.bus_id, event, | ||
210 | (u32) ac->state); | ||
208 | break; | 211 | break; |
209 | default: | 212 | default: |
210 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 213 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
diff --git a/drivers/acpi/asus_acpi.c b/drivers/acpi/asus_acpi.c index 86fd142f4bf3..d915fec9bf63 100644 --- a/drivers/acpi/asus_acpi.c +++ b/drivers/acpi/asus_acpi.c | |||
@@ -1069,7 +1069,7 @@ static void asus_hotk_notify(acpi_handle handle, u32 event, void *data) | |||
1069 | hotk->brightness = (event & ~((u32) BR_DOWN)); | 1069 | hotk->brightness = (event & ~((u32) BR_DOWN)); |
1070 | } | 1070 | } |
1071 | 1071 | ||
1072 | acpi_bus_generate_event(hotk->device, event, | 1072 | acpi_bus_generate_proc_event(hotk->device, event, |
1073 | hotk->event_count[event % 128]++); | 1073 | hotk->event_count[event % 128]++); |
1074 | 1074 | ||
1075 | return; | 1075 | return; |
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index d7b499fe0cd9..9b2c0f74f869 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c | |||
@@ -113,7 +113,7 @@ struct acpi_battery_info { | |||
113 | acpi_string oem_info; | 113 | acpi_string oem_info; |
114 | }; | 114 | }; |
115 | 115 | ||
116 | enum acpi_battery_files { | 116 | enum acpi_battery_files{ |
117 | ACPI_BATTERY_INFO = 0, | 117 | ACPI_BATTERY_INFO = 0, |
118 | ACPI_BATTERY_STATE, | 118 | ACPI_BATTERY_STATE, |
119 | ACPI_BATTERY_ALARM, | 119 | ACPI_BATTERY_ALARM, |
@@ -129,14 +129,13 @@ struct acpi_battery_flags { | |||
129 | }; | 129 | }; |
130 | 130 | ||
131 | struct acpi_battery { | 131 | struct acpi_battery { |
132 | struct mutex mutex; | ||
132 | struct acpi_device *device; | 133 | struct acpi_device *device; |
133 | struct acpi_battery_flags flags; | 134 | struct acpi_battery_flags flags; |
134 | struct acpi_buffer bif_data; | 135 | struct acpi_buffer bif_data; |
135 | struct acpi_buffer bst_data; | 136 | struct acpi_buffer bst_data; |
136 | struct mutex lock; | ||
137 | unsigned long alarm; | 137 | unsigned long alarm; |
138 | unsigned long update_time[ACPI_BATTERY_NUMFILES]; | 138 | unsigned long update_time[ACPI_BATTERY_NUMFILES]; |
139 | |||
140 | }; | 139 | }; |
141 | 140 | ||
142 | inline int acpi_battery_present(struct acpi_battery *battery) | 141 | inline int acpi_battery_present(struct acpi_battery *battery) |
@@ -236,10 +235,10 @@ static int acpi_battery_get_info(struct acpi_battery *battery) | |||
236 | return 0; | 235 | return 0; |
237 | 236 | ||
238 | /* Evaluate _BIF */ | 237 | /* Evaluate _BIF */ |
239 | mutex_lock(&battery->lock); | 238 | |
240 | status = acpi_evaluate_object(acpi_battery_handle(battery), "_BIF", | 239 | status = |
241 | NULL, &buffer); | 240 | acpi_evaluate_object(acpi_battery_handle(battery), "_BIF", NULL, |
242 | mutex_unlock(&battery->lock); | 241 | &buffer); |
243 | if (ACPI_FAILURE(status)) { | 242 | if (ACPI_FAILURE(status)) { |
244 | ACPI_EXCEPTION((AE_INFO, status, "Evaluating _BIF")); | 243 | ACPI_EXCEPTION((AE_INFO, status, "Evaluating _BIF")); |
245 | return -ENODEV; | 244 | return -ENODEV; |
@@ -286,10 +285,10 @@ static int acpi_battery_get_state(struct acpi_battery *battery) | |||
286 | return 0; | 285 | return 0; |
287 | 286 | ||
288 | /* Evaluate _BST */ | 287 | /* Evaluate _BST */ |
289 | mutex_lock(&battery->lock); | 288 | |
290 | status = acpi_evaluate_object(acpi_battery_handle(battery), "_BST", | 289 | status = |
291 | NULL, &buffer); | 290 | acpi_evaluate_object(acpi_battery_handle(battery), "_BST", NULL, |
292 | mutex_unlock(&battery->lock); | 291 | &buffer); |
293 | if (ACPI_FAILURE(status)) { | 292 | if (ACPI_FAILURE(status)) { |
294 | ACPI_EXCEPTION((AE_INFO, status, "Evaluating _BST")); | 293 | ACPI_EXCEPTION((AE_INFO, status, "Evaluating _BST")); |
295 | return -ENODEV; | 294 | return -ENODEV; |
@@ -337,10 +336,9 @@ static int acpi_battery_set_alarm(struct acpi_battery *battery, | |||
337 | 336 | ||
338 | arg0.integer.value = alarm; | 337 | arg0.integer.value = alarm; |
339 | 338 | ||
340 | mutex_lock(&battery->lock); | 339 | status = |
341 | status = acpi_evaluate_object(acpi_battery_handle(battery), "_BTP", | 340 | acpi_evaluate_object(acpi_battery_handle(battery), "_BTP", |
342 | &arg_list, NULL); | 341 | &arg_list, NULL); |
343 | mutex_unlock(&battery->lock); | ||
344 | if (ACPI_FAILURE(status)) | 342 | if (ACPI_FAILURE(status)) |
345 | return -ENODEV; | 343 | return -ENODEV; |
346 | 344 | ||
@@ -660,6 +658,8 @@ acpi_battery_write_alarm(struct file *file, | |||
660 | if (!battery || (count > sizeof(alarm_string) - 1)) | 658 | if (!battery || (count > sizeof(alarm_string) - 1)) |
661 | return -EINVAL; | 659 | return -EINVAL; |
662 | 660 | ||
661 | mutex_lock(&battery->mutex); | ||
662 | |||
663 | result = acpi_battery_update(battery, 1, &update_result); | 663 | result = acpi_battery_update(battery, 1, &update_result); |
664 | if (result) { | 664 | if (result) { |
665 | result = -ENODEV; | 665 | result = -ENODEV; |
@@ -688,7 +688,9 @@ acpi_battery_write_alarm(struct file *file, | |||
688 | acpi_battery_check_result(battery, result); | 688 | acpi_battery_check_result(battery, result); |
689 | 689 | ||
690 | if (!result) | 690 | if (!result) |
691 | return count; | 691 | result = count; |
692 | |||
693 | mutex_unlock(&battery->mutex); | ||
692 | 694 | ||
693 | return result; | 695 | return result; |
694 | } | 696 | } |
@@ -712,6 +714,8 @@ static int acpi_battery_read(int fid, struct seq_file *seq) | |||
712 | int update_result = ACPI_BATTERY_NONE_UPDATE; | 714 | int update_result = ACPI_BATTERY_NONE_UPDATE; |
713 | int update = 0; | 715 | int update = 0; |
714 | 716 | ||
717 | mutex_lock(&battery->mutex); | ||
718 | |||
715 | update = (get_seconds() - battery->update_time[fid] >= update_time); | 719 | update = (get_seconds() - battery->update_time[fid] >= update_time); |
716 | update = (update | battery->flags.update[fid]); | 720 | update = (update | battery->flags.update[fid]); |
717 | 721 | ||
@@ -729,6 +733,7 @@ static int acpi_battery_read(int fid, struct seq_file *seq) | |||
729 | result = acpi_read_funcs[fid].print(seq, result); | 733 | result = acpi_read_funcs[fid].print(seq, result); |
730 | acpi_battery_check_result(battery, result); | 734 | acpi_battery_check_result(battery, result); |
731 | battery->flags.update[fid] = result; | 735 | battery->flags.update[fid] = result; |
736 | mutex_unlock(&battery->mutex); | ||
732 | return result; | 737 | return result; |
733 | } | 738 | } |
734 | 739 | ||
@@ -867,8 +872,11 @@ static void acpi_battery_notify(acpi_handle handle, u32 event, void *data) | |||
867 | case ACPI_NOTIFY_DEVICE_CHECK: | 872 | case ACPI_NOTIFY_DEVICE_CHECK: |
868 | device = battery->device; | 873 | device = battery->device; |
869 | acpi_battery_notify_update(battery); | 874 | acpi_battery_notify_update(battery); |
870 | acpi_bus_generate_event(device, event, | 875 | acpi_bus_generate_proc_event(device, event, |
871 | acpi_battery_present(battery)); | 876 | acpi_battery_present(battery)); |
877 | acpi_bus_generate_netlink_event(device->pnp.device_class, | ||
878 | device->dev.bus_id, event, | ||
879 | acpi_battery_present(battery)); | ||
872 | break; | 880 | break; |
873 | default: | 881 | default: |
874 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 882 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
@@ -892,7 +900,10 @@ static int acpi_battery_add(struct acpi_device *device) | |||
892 | if (!battery) | 900 | if (!battery) |
893 | return -ENOMEM; | 901 | return -ENOMEM; |
894 | 902 | ||
895 | mutex_init(&battery->lock); | 903 | mutex_init(&battery->mutex); |
904 | |||
905 | mutex_lock(&battery->mutex); | ||
906 | |||
896 | battery->device = device; | 907 | battery->device = device; |
897 | strcpy(acpi_device_name(device), ACPI_BATTERY_DEVICE_NAME); | 908 | strcpy(acpi_device_name(device), ACPI_BATTERY_DEVICE_NAME); |
898 | strcpy(acpi_device_class(device), ACPI_BATTERY_CLASS); | 909 | strcpy(acpi_device_class(device), ACPI_BATTERY_CLASS); |
@@ -928,6 +939,7 @@ static int acpi_battery_add(struct acpi_device *device) | |||
928 | kfree(battery); | 939 | kfree(battery); |
929 | } | 940 | } |
930 | 941 | ||
942 | mutex_unlock(&battery->mutex); | ||
931 | 943 | ||
932 | return result; | 944 | return result; |
933 | } | 945 | } |
@@ -942,6 +954,8 @@ static int acpi_battery_remove(struct acpi_device *device, int type) | |||
942 | 954 | ||
943 | battery = acpi_driver_data(device); | 955 | battery = acpi_driver_data(device); |
944 | 956 | ||
957 | mutex_lock(&battery->mutex); | ||
958 | |||
945 | status = acpi_remove_notify_handler(device->handle, | 959 | status = acpi_remove_notify_handler(device->handle, |
946 | ACPI_ALL_NOTIFY, | 960 | ACPI_ALL_NOTIFY, |
947 | acpi_battery_notify); | 961 | acpi_battery_notify); |
@@ -952,7 +966,9 @@ static int acpi_battery_remove(struct acpi_device *device, int type) | |||
952 | 966 | ||
953 | kfree(battery->bst_data.pointer); | 967 | kfree(battery->bst_data.pointer); |
954 | 968 | ||
955 | mutex_destroy(&battery->lock); | 969 | mutex_unlock(&battery->mutex); |
970 | |||
971 | mutex_destroy(&battery->mutex); | ||
956 | 972 | ||
957 | kfree(battery); | 973 | kfree(battery); |
958 | 974 | ||
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index 6b2658c96242..9ba778a2b484 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c | |||
@@ -276,6 +276,7 @@ EXPORT_SYMBOL(acpi_bus_set_power); | |||
276 | Event Management | 276 | Event Management |
277 | -------------------------------------------------------------------------- */ | 277 | -------------------------------------------------------------------------- */ |
278 | 278 | ||
279 | #ifdef CONFIG_ACPI_PROC_EVENT | ||
279 | static DEFINE_SPINLOCK(acpi_bus_event_lock); | 280 | static DEFINE_SPINLOCK(acpi_bus_event_lock); |
280 | 281 | ||
281 | LIST_HEAD(acpi_bus_event_list); | 282 | LIST_HEAD(acpi_bus_event_list); |
@@ -283,7 +284,7 @@ DECLARE_WAIT_QUEUE_HEAD(acpi_bus_event_queue); | |||
283 | 284 | ||
284 | extern int event_is_open; | 285 | extern int event_is_open; |
285 | 286 | ||
286 | int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data) | 287 | int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data) |
287 | { | 288 | { |
288 | struct acpi_bus_event *event = NULL; | 289 | struct acpi_bus_event *event = NULL; |
289 | unsigned long flags = 0; | 290 | unsigned long flags = 0; |
@@ -292,10 +293,6 @@ int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data) | |||
292 | if (!device) | 293 | if (!device) |
293 | return -EINVAL; | 294 | return -EINVAL; |
294 | 295 | ||
295 | if (acpi_bus_generate_genetlink_event(device, type, data)) | ||
296 | printk(KERN_WARNING PREFIX | ||
297 | "Failed to generate an ACPI event via genetlink!\n"); | ||
298 | |||
299 | /* drop event on the floor if no one's listening */ | 296 | /* drop event on the floor if no one's listening */ |
300 | if (!event_is_open) | 297 | if (!event_is_open) |
301 | return 0; | 298 | return 0; |
@@ -318,7 +315,7 @@ int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data) | |||
318 | return 0; | 315 | return 0; |
319 | } | 316 | } |
320 | 317 | ||
321 | EXPORT_SYMBOL(acpi_bus_generate_event); | 318 | EXPORT_SYMBOL(acpi_bus_generate_proc_event); |
322 | 319 | ||
323 | int acpi_bus_receive_event(struct acpi_bus_event *event) | 320 | int acpi_bus_receive_event(struct acpi_bus_event *event) |
324 | { | 321 | { |
@@ -364,6 +361,7 @@ int acpi_bus_receive_event(struct acpi_bus_event *event) | |||
364 | } | 361 | } |
365 | 362 | ||
366 | EXPORT_SYMBOL(acpi_bus_receive_event); | 363 | EXPORT_SYMBOL(acpi_bus_receive_event); |
364 | #endif /* CONFIG_ACPI_PROC_EVENT */ | ||
367 | 365 | ||
368 | /* -------------------------------------------------------------------------- | 366 | /* -------------------------------------------------------------------------- |
369 | Notification Handling | 367 | Notification Handling |
diff --git a/drivers/acpi/button.c b/drivers/acpi/button.c index 540581338ef5..2e79a3395ecf 100644 --- a/drivers/acpi/button.c +++ b/drivers/acpi/button.c | |||
@@ -284,7 +284,7 @@ static void acpi_button_notify(acpi_handle handle, u32 event, void *data) | |||
284 | } | 284 | } |
285 | input_sync(input); | 285 | input_sync(input); |
286 | 286 | ||
287 | acpi_bus_generate_event(button->device, event, | 287 | acpi_bus_generate_proc_event(button->device, event, |
288 | ++button->pushed); | 288 | ++button->pushed); |
289 | break; | 289 | break; |
290 | default: | 290 | default: |
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 56bee9e065cf..43749c86861f 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
@@ -696,14 +696,6 @@ ec_parse_device(acpi_handle handle, u32 Level, void *context, void **retval) | |||
696 | return AE_CTRL_TERMINATE; | 696 | return AE_CTRL_TERMINATE; |
697 | } | 697 | } |
698 | 698 | ||
699 | static void ec_remove_handlers(struct acpi_ec *ec) | ||
700 | { | ||
701 | acpi_remove_address_space_handler(ec->handle, | ||
702 | ACPI_ADR_SPACE_EC, | ||
703 | &acpi_ec_space_handler); | ||
704 | acpi_remove_gpe_handler(NULL, ec->gpe, &acpi_ec_gpe_handler); | ||
705 | } | ||
706 | |||
707 | static int acpi_ec_add(struct acpi_device *device) | 699 | static int acpi_ec_add(struct acpi_device *device) |
708 | { | 700 | { |
709 | struct acpi_ec *ec = NULL; | 701 | struct acpi_ec *ec = NULL; |
@@ -727,13 +719,16 @@ static int acpi_ec_add(struct acpi_device *device) | |||
727 | /* Check if we found the boot EC */ | 719 | /* Check if we found the boot EC */ |
728 | if (boot_ec) { | 720 | if (boot_ec) { |
729 | if (boot_ec->gpe == ec->gpe) { | 721 | if (boot_ec->gpe == ec->gpe) { |
730 | ec_remove_handlers(boot_ec); | 722 | /* We might have incorrect info for GL at boot time */ |
731 | mutex_destroy(&boot_ec->lock); | 723 | mutex_lock(&boot_ec->lock); |
732 | kfree(boot_ec); | 724 | boot_ec->global_lock = ec->global_lock; |
733 | first_ec = boot_ec = NULL; | 725 | /* Copy handlers from new ec into boot ec */ |
726 | list_splice(&ec->list, &boot_ec->list); | ||
727 | mutex_unlock(&boot_ec->lock); | ||
728 | kfree(ec); | ||
729 | ec = boot_ec; | ||
734 | } | 730 | } |
735 | } | 731 | } else |
736 | if (!first_ec) | ||
737 | first_ec = ec; | 732 | first_ec = ec; |
738 | ec->handle = device->handle; | 733 | ec->handle = device->handle; |
739 | acpi_driver_data(device) = ec; | 734 | acpi_driver_data(device) = ec; |
@@ -762,6 +757,9 @@ static int acpi_ec_remove(struct acpi_device *device, int type) | |||
762 | if (ec == first_ec) | 757 | if (ec == first_ec) |
763 | first_ec = NULL; | 758 | first_ec = NULL; |
764 | 759 | ||
760 | /* Don't touch boot EC */ | ||
761 | if (boot_ec != ec) | ||
762 | kfree(ec); | ||
765 | return 0; | 763 | return 0; |
766 | } | 764 | } |
767 | 765 | ||
@@ -825,7 +823,9 @@ static int acpi_ec_start(struct acpi_device *device) | |||
825 | if (!ec) | 823 | if (!ec) |
826 | return -EINVAL; | 824 | return -EINVAL; |
827 | 825 | ||
828 | ret = ec_install_handlers(ec); | 826 | /* Boot EC is already working */ |
827 | if (ec != boot_ec) | ||
828 | ret = ec_install_handlers(ec); | ||
829 | 829 | ||
830 | /* EC is fully operational, allow queries */ | 830 | /* EC is fully operational, allow queries */ |
831 | atomic_set(&ec->query_pending, 0); | 831 | atomic_set(&ec->query_pending, 0); |
@@ -835,6 +835,7 @@ static int acpi_ec_start(struct acpi_device *device) | |||
835 | 835 | ||
836 | static int acpi_ec_stop(struct acpi_device *device, int type) | 836 | static int acpi_ec_stop(struct acpi_device *device, int type) |
837 | { | 837 | { |
838 | acpi_status status; | ||
838 | struct acpi_ec *ec; | 839 | struct acpi_ec *ec; |
839 | 840 | ||
840 | if (!device) | 841 | if (!device) |
@@ -843,7 +844,21 @@ static int acpi_ec_stop(struct acpi_device *device, int type) | |||
843 | ec = acpi_driver_data(device); | 844 | ec = acpi_driver_data(device); |
844 | if (!ec) | 845 | if (!ec) |
845 | return -EINVAL; | 846 | return -EINVAL; |
846 | ec_remove_handlers(ec); | 847 | |
848 | /* Don't touch boot EC */ | ||
849 | if (ec == boot_ec) | ||
850 | return 0; | ||
851 | |||
852 | status = acpi_remove_address_space_handler(ec->handle, | ||
853 | ACPI_ADR_SPACE_EC, | ||
854 | &acpi_ec_space_handler); | ||
855 | if (ACPI_FAILURE(status)) | ||
856 | return -ENODEV; | ||
857 | |||
858 | status = acpi_remove_gpe_handler(NULL, ec->gpe, &acpi_ec_gpe_handler); | ||
859 | if (ACPI_FAILURE(status)) | ||
860 | return -ENODEV; | ||
861 | |||
847 | return 0; | 862 | return 0; |
848 | } | 863 | } |
849 | 864 | ||
diff --git a/drivers/acpi/event.c b/drivers/acpi/event.c index 95637a4ff782..a2b9304596ce 100644 --- a/drivers/acpi/event.c +++ b/drivers/acpi/event.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #define _COMPONENT ACPI_SYSTEM_COMPONENT | 17 | #define _COMPONENT ACPI_SYSTEM_COMPONENT |
18 | ACPI_MODULE_NAME("event"); | 18 | ACPI_MODULE_NAME("event"); |
19 | 19 | ||
20 | #ifdef CONFIG_ACPI_PROC_EVENT | ||
20 | /* Global vars for handling event proc entry */ | 21 | /* Global vars for handling event proc entry */ |
21 | static DEFINE_SPINLOCK(acpi_system_event_lock); | 22 | static DEFINE_SPINLOCK(acpi_system_event_lock); |
22 | int event_is_open = 0; | 23 | int event_is_open = 0; |
@@ -106,6 +107,7 @@ static const struct file_operations acpi_system_event_ops = { | |||
106 | .release = acpi_system_close_event, | 107 | .release = acpi_system_close_event, |
107 | .poll = acpi_system_poll_event, | 108 | .poll = acpi_system_poll_event, |
108 | }; | 109 | }; |
110 | #endif /* CONFIG_ACPI_PROC_EVENT */ | ||
109 | 111 | ||
110 | #ifdef CONFIG_NET | 112 | #ifdef CONFIG_NET |
111 | static unsigned int acpi_event_seqnum; | 113 | static unsigned int acpi_event_seqnum; |
@@ -147,7 +149,8 @@ static struct genl_multicast_group acpi_event_mcgrp = { | |||
147 | .name = ACPI_GENL_MCAST_GROUP_NAME, | 149 | .name = ACPI_GENL_MCAST_GROUP_NAME, |
148 | }; | 150 | }; |
149 | 151 | ||
150 | int acpi_bus_generate_genetlink_event(struct acpi_device *device, | 152 | int acpi_bus_generate_netlink_event(const char *device_class, |
153 | const char *bus_id, | ||
151 | u8 type, int data) | 154 | u8 type, int data) |
152 | { | 155 | { |
153 | struct sk_buff *skb; | 156 | struct sk_buff *skb; |
@@ -191,8 +194,8 @@ int acpi_bus_generate_genetlink_event(struct acpi_device *device, | |||
191 | 194 | ||
192 | memset(event, 0, sizeof(struct acpi_genl_event)); | 195 | memset(event, 0, sizeof(struct acpi_genl_event)); |
193 | 196 | ||
194 | strcpy(event->device_class, device->pnp.device_class); | 197 | strcpy(event->device_class, device_class); |
195 | strcpy(event->bus_id, device->dev.bus_id); | 198 | strcpy(event->bus_id, bus_id); |
196 | event->type = type; | 199 | event->type = type; |
197 | event->data = data; | 200 | event->data = data; |
198 | 201 | ||
@@ -211,6 +214,8 @@ int acpi_bus_generate_genetlink_event(struct acpi_device *device, | |||
211 | return 0; | 214 | return 0; |
212 | } | 215 | } |
213 | 216 | ||
217 | EXPORT_SYMBOL(acpi_bus_generate_netlink_event); | ||
218 | |||
214 | static int acpi_event_genetlink_init(void) | 219 | static int acpi_event_genetlink_init(void) |
215 | { | 220 | { |
216 | int result; | 221 | int result; |
@@ -228,12 +233,15 @@ static int acpi_event_genetlink_init(void) | |||
228 | } | 233 | } |
229 | 234 | ||
230 | #else | 235 | #else |
231 | int acpi_bus_generate_genetlink_event(struct acpi_device *device, u8 type, | 236 | int acpi_bus_generate_netlink_event(const char *device_class, |
232 | int data) | 237 | const char *bus_id, |
238 | u8 type, int data) | ||
233 | { | 239 | { |
234 | return 0; | 240 | return 0; |
235 | } | 241 | } |
236 | 242 | ||
243 | EXPORT_SYMBOL(acpi_generate_netlink_event); | ||
244 | |||
237 | static int acpi_event_genetlink_init(void) | 245 | static int acpi_event_genetlink_init(void) |
238 | { | 246 | { |
239 | return -ENODEV; | 247 | return -ENODEV; |
@@ -242,7 +250,9 @@ static int acpi_event_genetlink_init(void) | |||
242 | 250 | ||
243 | static int __init acpi_event_init(void) | 251 | static int __init acpi_event_init(void) |
244 | { | 252 | { |
253 | #ifdef CONFIG_ACPI_PROC_EVENT | ||
245 | struct proc_dir_entry *entry; | 254 | struct proc_dir_entry *entry; |
255 | #endif | ||
246 | int error = 0; | 256 | int error = 0; |
247 | 257 | ||
248 | if (acpi_disabled) | 258 | if (acpi_disabled) |
@@ -254,12 +264,14 @@ static int __init acpi_event_init(void) | |||
254 | printk(KERN_WARNING PREFIX | 264 | printk(KERN_WARNING PREFIX |
255 | "Failed to create genetlink family for ACPI event\n"); | 265 | "Failed to create genetlink family for ACPI event\n"); |
256 | 266 | ||
267 | #ifdef CONFIG_ACPI_PROC_EVENT | ||
257 | /* 'event' [R] */ | 268 | /* 'event' [R] */ |
258 | entry = create_proc_entry("event", S_IRUSR, acpi_root_dir); | 269 | entry = create_proc_entry("event", S_IRUSR, acpi_root_dir); |
259 | if (entry) | 270 | if (entry) |
260 | entry->proc_fops = &acpi_system_event_ops; | 271 | entry->proc_fops = &acpi_system_event_ops; |
261 | else | 272 | else |
262 | return -ENODEV; | 273 | return -ENODEV; |
274 | #endif | ||
263 | 275 | ||
264 | return 0; | 276 | return 0; |
265 | } | 277 | } |
diff --git a/drivers/acpi/hardware/hwsleep.c b/drivers/acpi/hardware/hwsleep.c index 76c525dc590b..cf69c0040a39 100644 --- a/drivers/acpi/hardware/hwsleep.c +++ b/drivers/acpi/hardware/hwsleep.c | |||
@@ -576,13 +576,10 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state) | |||
576 | ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS")); | 576 | ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS")); |
577 | } | 577 | } |
578 | 578 | ||
579 | status = acpi_evaluate_object(NULL, METHOD_NAME__WAK, &arg_list, NULL); | ||
580 | if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { | ||
581 | ACPI_EXCEPTION((AE_INFO, status, "During Method _WAK")); | ||
582 | } | ||
583 | /* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */ | ||
584 | |||
585 | /* | 579 | /* |
580 | * GPEs must be enabled before _WAK is called as GPEs | ||
581 | * might get fired there | ||
582 | * | ||
586 | * Restore the GPEs: | 583 | * Restore the GPEs: |
587 | * 1) Disable/Clear all GPEs | 584 | * 1) Disable/Clear all GPEs |
588 | * 2) Enable all runtime GPEs | 585 | * 2) Enable all runtime GPEs |
@@ -591,13 +588,19 @@ acpi_status acpi_leave_sleep_state(u8 sleep_state) | |||
591 | if (ACPI_FAILURE(status)) { | 588 | if (ACPI_FAILURE(status)) { |
592 | return_ACPI_STATUS(status); | 589 | return_ACPI_STATUS(status); |
593 | } | 590 | } |
594 | acpi_gbl_system_awake_and_running = TRUE; | ||
595 | |||
596 | status = acpi_hw_enable_all_runtime_gpes(); | 591 | status = acpi_hw_enable_all_runtime_gpes(); |
597 | if (ACPI_FAILURE(status)) { | 592 | if (ACPI_FAILURE(status)) { |
598 | return_ACPI_STATUS(status); | 593 | return_ACPI_STATUS(status); |
599 | } | 594 | } |
600 | 595 | ||
596 | status = acpi_evaluate_object(NULL, METHOD_NAME__WAK, &arg_list, NULL); | ||
597 | if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) { | ||
598 | ACPI_EXCEPTION((AE_INFO, status, "During Method _WAK")); | ||
599 | } | ||
600 | /* TBD: _WAK "sometimes" returns stuff - do we want to look at it? */ | ||
601 | |||
602 | acpi_gbl_system_awake_and_running = TRUE; | ||
603 | |||
601 | /* Enable power button */ | 604 | /* Enable power button */ |
602 | 605 | ||
603 | (void) | 606 | (void) |
diff --git a/drivers/acpi/namespace/nsxfeval.c b/drivers/acpi/namespace/nsxfeval.c index ab65b2c2560e..f39fbc6b9237 100644 --- a/drivers/acpi/namespace/nsxfeval.c +++ b/drivers/acpi/namespace/nsxfeval.c | |||
@@ -540,7 +540,7 @@ acpi_ns_get_device_callback(acpi_handle obj_handle, | |||
540 | ******************************************************************************/ | 540 | ******************************************************************************/ |
541 | 541 | ||
542 | acpi_status | 542 | acpi_status |
543 | acpi_get_devices(char *HID, | 543 | acpi_get_devices(const char *HID, |
544 | acpi_walk_callback user_function, | 544 | acpi_walk_callback user_function, |
545 | void *context, void **return_value) | 545 | void *context, void **return_value) |
546 | { | 546 | { |
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c index 498422343f38..e944aaee4e06 100644 --- a/drivers/acpi/processor_core.c +++ b/drivers/acpi/processor_core.c | |||
@@ -698,16 +698,23 @@ static void acpi_processor_notify(acpi_handle handle, u32 event, void *data) | |||
698 | switch (event) { | 698 | switch (event) { |
699 | case ACPI_PROCESSOR_NOTIFY_PERFORMANCE: | 699 | case ACPI_PROCESSOR_NOTIFY_PERFORMANCE: |
700 | acpi_processor_ppc_has_changed(pr); | 700 | acpi_processor_ppc_has_changed(pr); |
701 | acpi_bus_generate_event(device, event, | 701 | acpi_bus_generate_proc_event(device, event, |
702 | pr->performance_platform_limit); | 702 | pr->performance_platform_limit); |
703 | acpi_bus_generate_netlink_event(device->pnp.device_class, | ||
704 | device->dev.bus_id, event, | ||
705 | pr->performance_platform_limit); | ||
703 | break; | 706 | break; |
704 | case ACPI_PROCESSOR_NOTIFY_POWER: | 707 | case ACPI_PROCESSOR_NOTIFY_POWER: |
705 | acpi_processor_cst_has_changed(pr); | 708 | acpi_processor_cst_has_changed(pr); |
706 | acpi_bus_generate_event(device, event, 0); | 709 | acpi_bus_generate_proc_event(device, event, 0); |
710 | acpi_bus_generate_netlink_event(device->pnp.device_class, | ||
711 | device->dev.bus_id, event, 0); | ||
707 | break; | 712 | break; |
708 | case ACPI_PROCESSOR_NOTIFY_THROTTLING: | 713 | case ACPI_PROCESSOR_NOTIFY_THROTTLING: |
709 | acpi_processor_tstate_has_changed(pr); | 714 | acpi_processor_tstate_has_changed(pr); |
710 | acpi_bus_generate_event(device, event, 0); | 715 | acpi_bus_generate_proc_event(device, event, 0); |
716 | acpi_bus_generate_netlink_event(device->pnp.device_class, | ||
717 | device->dev.bus_id, event, 0); | ||
711 | default: | 718 | default: |
712 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 719 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
713 | "Unsupported event [0x%x]\n", event)); | 720 | "Unsupported event [0x%x]\n", event)); |
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index a8634a0655fc..d9b8af763e1e 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
@@ -63,6 +63,7 @@ | |||
63 | ACPI_MODULE_NAME("processor_idle"); | 63 | ACPI_MODULE_NAME("processor_idle"); |
64 | #define ACPI_PROCESSOR_FILE_POWER "power" | 64 | #define ACPI_PROCESSOR_FILE_POWER "power" |
65 | #define US_TO_PM_TIMER_TICKS(t) ((t * (PM_TIMER_FREQUENCY/1000)) / 1000) | 65 | #define US_TO_PM_TIMER_TICKS(t) ((t * (PM_TIMER_FREQUENCY/1000)) / 1000) |
66 | #define PM_TIMER_TICK_NS (1000000000ULL/PM_TIMER_FREQUENCY) | ||
66 | #define C2_OVERHEAD 4 /* 1us (3.579 ticks per us) */ | 67 | #define C2_OVERHEAD 4 /* 1us (3.579 ticks per us) */ |
67 | #define C3_OVERHEAD 4 /* 1us (3.579 ticks per us) */ | 68 | #define C3_OVERHEAD 4 /* 1us (3.579 ticks per us) */ |
68 | static void (*pm_idle_save) (void) __read_mostly; | 69 | static void (*pm_idle_save) (void) __read_mostly; |
@@ -462,6 +463,9 @@ static void acpi_processor_idle(void) | |||
462 | * TBD: Can't get time duration while in C1, as resumes | 463 | * TBD: Can't get time duration while in C1, as resumes |
463 | * go to an ISR rather than here. Need to instrument | 464 | * go to an ISR rather than here. Need to instrument |
464 | * base interrupt handler. | 465 | * base interrupt handler. |
466 | * | ||
467 | * Note: the TSC better not stop in C1, sched_clock() will | ||
468 | * skew otherwise. | ||
465 | */ | 469 | */ |
466 | sleep_ticks = 0xFFFFFFFF; | 470 | sleep_ticks = 0xFFFFFFFF; |
467 | break; | 471 | break; |
@@ -469,6 +473,8 @@ static void acpi_processor_idle(void) | |||
469 | case ACPI_STATE_C2: | 473 | case ACPI_STATE_C2: |
470 | /* Get start time (ticks) */ | 474 | /* Get start time (ticks) */ |
471 | t1 = inl(acpi_gbl_FADT.xpm_timer_block.address); | 475 | t1 = inl(acpi_gbl_FADT.xpm_timer_block.address); |
476 | /* Tell the scheduler that we are going deep-idle: */ | ||
477 | sched_clock_idle_sleep_event(); | ||
472 | /* Invoke C2 */ | 478 | /* Invoke C2 */ |
473 | acpi_state_timer_broadcast(pr, cx, 1); | 479 | acpi_state_timer_broadcast(pr, cx, 1); |
474 | acpi_cstate_enter(cx); | 480 | acpi_cstate_enter(cx); |
@@ -479,17 +485,22 @@ static void acpi_processor_idle(void) | |||
479 | /* TSC halts in C2, so notify users */ | 485 | /* TSC halts in C2, so notify users */ |
480 | mark_tsc_unstable("possible TSC halt in C2"); | 486 | mark_tsc_unstable("possible TSC halt in C2"); |
481 | #endif | 487 | #endif |
488 | /* Compute time (ticks) that we were actually asleep */ | ||
489 | sleep_ticks = ticks_elapsed(t1, t2); | ||
490 | |||
491 | /* Tell the scheduler how much we idled: */ | ||
492 | sched_clock_idle_wakeup_event(sleep_ticks*PM_TIMER_TICK_NS); | ||
493 | |||
482 | /* Re-enable interrupts */ | 494 | /* Re-enable interrupts */ |
483 | local_irq_enable(); | 495 | local_irq_enable(); |
496 | /* Do not account our idle-switching overhead: */ | ||
497 | sleep_ticks -= cx->latency_ticks + C2_OVERHEAD; | ||
498 | |||
484 | current_thread_info()->status |= TS_POLLING; | 499 | current_thread_info()->status |= TS_POLLING; |
485 | /* Compute time (ticks) that we were actually asleep */ | ||
486 | sleep_ticks = | ||
487 | ticks_elapsed(t1, t2) - cx->latency_ticks - C2_OVERHEAD; | ||
488 | acpi_state_timer_broadcast(pr, cx, 0); | 500 | acpi_state_timer_broadcast(pr, cx, 0); |
489 | break; | 501 | break; |
490 | 502 | ||
491 | case ACPI_STATE_C3: | 503 | case ACPI_STATE_C3: |
492 | |||
493 | /* | 504 | /* |
494 | * disable bus master | 505 | * disable bus master |
495 | * bm_check implies we need ARB_DIS | 506 | * bm_check implies we need ARB_DIS |
@@ -518,6 +529,8 @@ static void acpi_processor_idle(void) | |||
518 | t1 = inl(acpi_gbl_FADT.xpm_timer_block.address); | 529 | t1 = inl(acpi_gbl_FADT.xpm_timer_block.address); |
519 | /* Invoke C3 */ | 530 | /* Invoke C3 */ |
520 | acpi_state_timer_broadcast(pr, cx, 1); | 531 | acpi_state_timer_broadcast(pr, cx, 1); |
532 | /* Tell the scheduler that we are going deep-idle: */ | ||
533 | sched_clock_idle_sleep_event(); | ||
521 | acpi_cstate_enter(cx); | 534 | acpi_cstate_enter(cx); |
522 | /* Get end time (ticks) */ | 535 | /* Get end time (ticks) */ |
523 | t2 = inl(acpi_gbl_FADT.xpm_timer_block.address); | 536 | t2 = inl(acpi_gbl_FADT.xpm_timer_block.address); |
@@ -531,12 +544,17 @@ static void acpi_processor_idle(void) | |||
531 | /* TSC halts in C3, so notify users */ | 544 | /* TSC halts in C3, so notify users */ |
532 | mark_tsc_unstable("TSC halts in C3"); | 545 | mark_tsc_unstable("TSC halts in C3"); |
533 | #endif | 546 | #endif |
547 | /* Compute time (ticks) that we were actually asleep */ | ||
548 | sleep_ticks = ticks_elapsed(t1, t2); | ||
549 | /* Tell the scheduler how much we idled: */ | ||
550 | sched_clock_idle_wakeup_event(sleep_ticks*PM_TIMER_TICK_NS); | ||
551 | |||
534 | /* Re-enable interrupts */ | 552 | /* Re-enable interrupts */ |
535 | local_irq_enable(); | 553 | local_irq_enable(); |
554 | /* Do not account our idle-switching overhead: */ | ||
555 | sleep_ticks -= cx->latency_ticks + C3_OVERHEAD; | ||
556 | |||
536 | current_thread_info()->status |= TS_POLLING; | 557 | current_thread_info()->status |= TS_POLLING; |
537 | /* Compute time (ticks) that we were actually asleep */ | ||
538 | sleep_ticks = | ||
539 | ticks_elapsed(t1, t2) - cx->latency_ticks - C3_OVERHEAD; | ||
540 | acpi_state_timer_broadcast(pr, cx, 0); | 558 | acpi_state_timer_broadcast(pr, cx, 0); |
541 | break; | 559 | break; |
542 | 560 | ||
diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c index 82c3a550016d..a578986e3214 100644 --- a/drivers/acpi/sbs.c +++ b/drivers/acpi/sbs.c | |||
@@ -440,11 +440,12 @@ static int acpi_sbs_generate_event(struct acpi_device *device, | |||
440 | strcpy(acpi_device_bid(device), bid); | 440 | strcpy(acpi_device_bid(device), bid); |
441 | strcpy(acpi_device_class(device), class); | 441 | strcpy(acpi_device_class(device), class); |
442 | 442 | ||
443 | result = acpi_bus_generate_event(device, event, state); | 443 | result = acpi_bus_generate_proc_event(device, event, state); |
444 | 444 | ||
445 | strcpy(acpi_device_bid(device), bid_saved); | 445 | strcpy(acpi_device_bid(device), bid_saved); |
446 | strcpy(acpi_device_class(device), class_saved); | 446 | strcpy(acpi_device_class(device), class_saved); |
447 | 447 | ||
448 | acpi_bus_generate_netlink_event(class, bid, event, state); | ||
448 | return result; | 449 | return result; |
449 | } | 450 | } |
450 | 451 | ||
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index be74347d1354..64620d668742 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c | |||
@@ -35,8 +35,9 @@ struct acpi_device_bus_id{ | |||
35 | * e.g. on a device with hid:IBM0001 and cid:ACPI0001 you get: | 35 | * e.g. on a device with hid:IBM0001 and cid:ACPI0001 you get: |
36 | * char *modalias: "acpi:IBM0001:ACPI0001" | 36 | * char *modalias: "acpi:IBM0001:ACPI0001" |
37 | */ | 37 | */ |
38 | int create_modalias(struct acpi_device *acpi_dev, char *modalias, int size){ | 38 | static int create_modalias(struct acpi_device *acpi_dev, char *modalias, |
39 | 39 | int size) | |
40 | { | ||
40 | int len; | 41 | int len; |
41 | 42 | ||
42 | if (!acpi_dev->flags.hardware_id) | 43 | if (!acpi_dev->flags.hardware_id) |
diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c index e8cff5dd4cbc..c52ade816fb4 100644 --- a/drivers/acpi/sleep/main.c +++ b/drivers/acpi/sleep/main.c | |||
@@ -305,7 +305,7 @@ int acpi_pm_device_sleep_state(struct device *dev, int wake, int *d_min_p) | |||
305 | unsigned long d_min, d_max; | 305 | unsigned long d_min, d_max; |
306 | 306 | ||
307 | if (!handle || ACPI_FAILURE(acpi_bus_get_device(handle, &adev))) { | 307 | if (!handle || ACPI_FAILURE(acpi_bus_get_device(handle, &adev))) { |
308 | printk(KERN_ERR "ACPI handle has no context!\n"); | 308 | printk(KERN_DEBUG "ACPI handle has no context!\n"); |
309 | return -ENODEV; | 309 | return -ENODEV; |
310 | } | 310 | } |
311 | 311 | ||
diff --git a/drivers/acpi/tables/tbutils.c b/drivers/acpi/tables/tbutils.c index 1da64b4518c0..8cc9492ffbf2 100644 --- a/drivers/acpi/tables/tbutils.c +++ b/drivers/acpi/tables/tbutils.c | |||
@@ -51,6 +51,65 @@ ACPI_MODULE_NAME("tbutils") | |||
51 | static acpi_physical_address | 51 | static acpi_physical_address |
52 | acpi_tb_get_root_table_entry(u8 * table_entry, | 52 | acpi_tb_get_root_table_entry(u8 * table_entry, |
53 | acpi_native_uint table_entry_size); | 53 | acpi_native_uint table_entry_size); |
54 | /******************************************************************************* | ||
55 | * | ||
56 | * FUNCTION: acpi_tb_check_xsdt | ||
57 | * | ||
58 | * PARAMETERS: address - Pointer to the XSDT | ||
59 | * | ||
60 | * RETURN: status | ||
61 | * AE_OK - XSDT is okay | ||
62 | * AE_NO_MEMORY - can't map XSDT | ||
63 | * AE_INVALID_TABLE_LENGTH - invalid table length | ||
64 | * AE_NULL_ENTRY - XSDT has NULL entry | ||
65 | * | ||
66 | * DESCRIPTION: validate XSDT | ||
67 | ******************************************************************************/ | ||
68 | |||
69 | static acpi_status | ||
70 | acpi_tb_check_xsdt(acpi_physical_address address) | ||
71 | { | ||
72 | struct acpi_table_header *table; | ||
73 | u32 length; | ||
74 | u64 xsdt_entry_address; | ||
75 | u8 *table_entry; | ||
76 | u32 table_count; | ||
77 | int i; | ||
78 | |||
79 | table = acpi_os_map_memory(address, sizeof(struct acpi_table_header)); | ||
80 | if (!table) | ||
81 | return AE_NO_MEMORY; | ||
82 | |||
83 | length = table->length; | ||
84 | acpi_os_unmap_memory(table, sizeof(struct acpi_table_header)); | ||
85 | if (length < sizeof(struct acpi_table_header)) | ||
86 | return AE_INVALID_TABLE_LENGTH; | ||
87 | |||
88 | table = acpi_os_map_memory(address, length); | ||
89 | if (!table) | ||
90 | return AE_NO_MEMORY; | ||
91 | |||
92 | /* Calculate the number of tables described in XSDT */ | ||
93 | table_count = | ||
94 | (u32) ((table->length - | ||
95 | sizeof(struct acpi_table_header)) / sizeof(u64)); | ||
96 | table_entry = | ||
97 | ACPI_CAST_PTR(u8, table) + sizeof(struct acpi_table_header); | ||
98 | for (i = 0; i < table_count; i++) { | ||
99 | ACPI_MOVE_64_TO_64(&xsdt_entry_address, table_entry); | ||
100 | if (!xsdt_entry_address) { | ||
101 | /* XSDT has NULL entry */ | ||
102 | break; | ||
103 | } | ||
104 | table_entry += sizeof(u64); | ||
105 | } | ||
106 | acpi_os_unmap_memory(table, length); | ||
107 | |||
108 | if (i < table_count) | ||
109 | return AE_NULL_ENTRY; | ||
110 | else | ||
111 | return AE_OK; | ||
112 | } | ||
54 | 113 | ||
55 | /******************************************************************************* | 114 | /******************************************************************************* |
56 | * | 115 | * |
@@ -341,6 +400,7 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags) | |||
341 | u32 table_count; | 400 | u32 table_count; |
342 | struct acpi_table_header *table; | 401 | struct acpi_table_header *table; |
343 | acpi_physical_address address; | 402 | acpi_physical_address address; |
403 | acpi_physical_address rsdt_address; | ||
344 | u32 length; | 404 | u32 length; |
345 | u8 *table_entry; | 405 | u8 *table_entry; |
346 | acpi_status status; | 406 | acpi_status status; |
@@ -369,6 +429,8 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags) | |||
369 | */ | 429 | */ |
370 | address = (acpi_physical_address) rsdp->xsdt_physical_address; | 430 | address = (acpi_physical_address) rsdp->xsdt_physical_address; |
371 | table_entry_size = sizeof(u64); | 431 | table_entry_size = sizeof(u64); |
432 | rsdt_address = (acpi_physical_address) | ||
433 | rsdp->rsdt_physical_address; | ||
372 | } else { | 434 | } else { |
373 | /* Root table is an RSDT (32-bit physical addresses) */ | 435 | /* Root table is an RSDT (32-bit physical addresses) */ |
374 | 436 | ||
@@ -382,6 +444,15 @@ acpi_tb_parse_root_table(acpi_physical_address rsdp_address, u8 flags) | |||
382 | */ | 444 | */ |
383 | acpi_os_unmap_memory(rsdp, sizeof(struct acpi_table_rsdp)); | 445 | acpi_os_unmap_memory(rsdp, sizeof(struct acpi_table_rsdp)); |
384 | 446 | ||
447 | if (table_entry_size == sizeof(u64)) { | ||
448 | if (acpi_tb_check_xsdt(address) == AE_NULL_ENTRY) { | ||
449 | /* XSDT has NULL entry, RSDT is used */ | ||
450 | address = rsdt_address; | ||
451 | table_entry_size = sizeof(u32); | ||
452 | ACPI_WARNING((AE_INFO, "BIOS XSDT has NULL entry," | ||
453 | "using RSDT")); | ||
454 | } | ||
455 | } | ||
385 | /* Map the RSDT/XSDT table header to get the full table length */ | 456 | /* Map the RSDT/XSDT table header to get the full table length */ |
386 | 457 | ||
387 | table = acpi_os_map_memory(address, sizeof(struct acpi_table_header)); | 458 | table = acpi_os_map_memory(address, sizeof(struct acpi_table_header)); |
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c index 1e06159fd9c4..bc6d5866ef98 100644 --- a/drivers/acpi/thermal.c +++ b/drivers/acpi/thermal.c | |||
@@ -77,23 +77,27 @@ MODULE_LICENSE("GPL"); | |||
77 | 77 | ||
78 | static int act; | 78 | static int act; |
79 | module_param(act, int, 0644); | 79 | module_param(act, int, 0644); |
80 | MODULE_PARM_DESC(act, "Disable or override all lowest active trip points.\n"); | 80 | MODULE_PARM_DESC(act, "Disable or override all lowest active trip points."); |
81 | |||
82 | static int crt; | ||
83 | module_param(crt, int, 0644); | ||
84 | MODULE_PARM_DESC(crt, "Disable or lower all critical trip points."); | ||
81 | 85 | ||
82 | static int tzp; | 86 | static int tzp; |
83 | module_param(tzp, int, 0444); | 87 | module_param(tzp, int, 0444); |
84 | MODULE_PARM_DESC(tzp, "Thermal zone polling frequency, in 1/10 seconds.\n"); | 88 | MODULE_PARM_DESC(tzp, "Thermal zone polling frequency, in 1/10 seconds."); |
85 | 89 | ||
86 | static int nocrt; | 90 | static int nocrt; |
87 | module_param(nocrt, int, 0); | 91 | module_param(nocrt, int, 0); |
88 | MODULE_PARM_DESC(nocrt, "Set to disable action on ACPI thermal zone critical and hot trips.\n"); | 92 | MODULE_PARM_DESC(nocrt, "Set to take no action upon ACPI thermal zone critical trips points."); |
89 | 93 | ||
90 | static int off; | 94 | static int off; |
91 | module_param(off, int, 0); | 95 | module_param(off, int, 0); |
92 | MODULE_PARM_DESC(off, "Set to disable ACPI thermal support.\n"); | 96 | MODULE_PARM_DESC(off, "Set to disable ACPI thermal support."); |
93 | 97 | ||
94 | static int psv; | 98 | static int psv; |
95 | module_param(psv, int, 0644); | 99 | module_param(psv, int, 0644); |
96 | MODULE_PARM_DESC(psv, "Disable or override all passive trip points.\n"); | 100 | MODULE_PARM_DESC(psv, "Disable or override all passive trip points."); |
97 | 101 | ||
98 | static int acpi_thermal_add(struct acpi_device *device); | 102 | static int acpi_thermal_add(struct acpi_device *device); |
99 | static int acpi_thermal_remove(struct acpi_device *device, int type); | 103 | static int acpi_thermal_remove(struct acpi_device *device, int type); |
@@ -340,6 +344,20 @@ static int acpi_thermal_get_trip_points(struct acpi_thermal *tz) | |||
340 | tz->trips.critical.temperature)); | 344 | tz->trips.critical.temperature)); |
341 | } | 345 | } |
342 | 346 | ||
347 | if (tz->trips.critical.flags.valid == 1) { | ||
348 | if (crt == -1) { | ||
349 | tz->trips.critical.flags.valid = 0; | ||
350 | } else if (crt > 0) { | ||
351 | unsigned long crt_k = CELSIUS_TO_KELVIN(crt); | ||
352 | |||
353 | /* | ||
354 | * Allow override to lower critical threshold | ||
355 | */ | ||
356 | if (crt_k < tz->trips.critical.temperature) | ||
357 | tz->trips.critical.temperature = crt_k; | ||
358 | } | ||
359 | } | ||
360 | |||
343 | /* Critical Sleep (optional) */ | 361 | /* Critical Sleep (optional) */ |
344 | 362 | ||
345 | status = | 363 | status = |
@@ -485,8 +503,12 @@ static int acpi_thermal_critical(struct acpi_thermal *tz) | |||
485 | printk(KERN_EMERG | 503 | printk(KERN_EMERG |
486 | "Critical temperature reached (%ld C), shutting down.\n", | 504 | "Critical temperature reached (%ld C), shutting down.\n", |
487 | KELVIN_TO_CELSIUS(tz->temperature)); | 505 | KELVIN_TO_CELSIUS(tz->temperature)); |
488 | acpi_bus_generate_event(tz->device, ACPI_THERMAL_NOTIFY_CRITICAL, | 506 | acpi_bus_generate_proc_event(tz->device, ACPI_THERMAL_NOTIFY_CRITICAL, |
489 | tz->trips.critical.flags.enabled); | 507 | tz->trips.critical.flags.enabled); |
508 | acpi_bus_generate_netlink_event(tz->device->pnp.device_class, | ||
509 | tz->device->dev.bus_id, | ||
510 | ACPI_THERMAL_NOTIFY_CRITICAL, | ||
511 | tz->trips.critical.flags.enabled); | ||
490 | 512 | ||
491 | orderly_poweroff(true); | 513 | orderly_poweroff(true); |
492 | 514 | ||
@@ -504,8 +526,12 @@ static int acpi_thermal_hot(struct acpi_thermal *tz) | |||
504 | } else if (tz->trips.hot.flags.enabled) | 526 | } else if (tz->trips.hot.flags.enabled) |
505 | tz->trips.hot.flags.enabled = 0; | 527 | tz->trips.hot.flags.enabled = 0; |
506 | 528 | ||
507 | acpi_bus_generate_event(tz->device, ACPI_THERMAL_NOTIFY_HOT, | 529 | acpi_bus_generate_proc_event(tz->device, ACPI_THERMAL_NOTIFY_HOT, |
508 | tz->trips.hot.flags.enabled); | 530 | tz->trips.hot.flags.enabled); |
531 | acpi_bus_generate_netlink_event(tz->device->pnp.device_class, | ||
532 | tz->device->dev.bus_id, | ||
533 | ACPI_THERMAL_NOTIFY_HOT, | ||
534 | tz->trips.hot.flags.enabled); | ||
509 | 535 | ||
510 | /* TBD: Call user-mode "sleep(S4)" function */ | 536 | /* TBD: Call user-mode "sleep(S4)" function */ |
511 | 537 | ||
@@ -1067,9 +1093,9 @@ static int acpi_thermal_add_fs(struct acpi_device *device) | |||
1067 | entry->owner = THIS_MODULE; | 1093 | entry->owner = THIS_MODULE; |
1068 | } | 1094 | } |
1069 | 1095 | ||
1070 | /* 'trip_points' [R/W] */ | 1096 | /* 'trip_points' [R] */ |
1071 | entry = create_proc_entry(ACPI_THERMAL_FILE_TRIP_POINTS, | 1097 | entry = create_proc_entry(ACPI_THERMAL_FILE_TRIP_POINTS, |
1072 | S_IFREG | S_IRUGO | S_IWUSR, | 1098 | S_IRUGO, |
1073 | acpi_device_dir(device)); | 1099 | acpi_device_dir(device)); |
1074 | if (!entry) | 1100 | if (!entry) |
1075 | return -ENODEV; | 1101 | return -ENODEV; |
@@ -1149,12 +1175,16 @@ static void acpi_thermal_notify(acpi_handle handle, u32 event, void *data) | |||
1149 | case ACPI_THERMAL_NOTIFY_THRESHOLDS: | 1175 | case ACPI_THERMAL_NOTIFY_THRESHOLDS: |
1150 | acpi_thermal_get_trip_points(tz); | 1176 | acpi_thermal_get_trip_points(tz); |
1151 | acpi_thermal_check(tz); | 1177 | acpi_thermal_check(tz); |
1152 | acpi_bus_generate_event(device, event, 0); | 1178 | acpi_bus_generate_proc_event(device, event, 0); |
1179 | acpi_bus_generate_netlink_event(device->pnp.device_class, | ||
1180 | device->dev.bus_id, event, 0); | ||
1153 | break; | 1181 | break; |
1154 | case ACPI_THERMAL_NOTIFY_DEVICES: | 1182 | case ACPI_THERMAL_NOTIFY_DEVICES: |
1155 | if (tz->flags.devices) | 1183 | if (tz->flags.devices) |
1156 | acpi_thermal_get_devices(tz); | 1184 | acpi_thermal_get_devices(tz); |
1157 | acpi_bus_generate_event(device, event, 0); | 1185 | acpi_bus_generate_proc_event(device, event, 0); |
1186 | acpi_bus_generate_netlink_event(device->pnp.device_class, | ||
1187 | device->dev.bus_id, event, 0); | ||
1158 | break; | 1188 | break; |
1159 | default: | 1189 | default: |
1160 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 1190 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
@@ -1339,6 +1369,13 @@ static int thermal_act(struct dmi_system_id *d) { | |||
1339 | } | 1369 | } |
1340 | return 0; | 1370 | return 0; |
1341 | } | 1371 | } |
1372 | static int thermal_nocrt(struct dmi_system_id *d) { | ||
1373 | |||
1374 | printk(KERN_NOTICE "ACPI: %s detected: " | ||
1375 | "disabling all critical thermal trip point actions.\n", d->ident); | ||
1376 | nocrt = 1; | ||
1377 | return 0; | ||
1378 | } | ||
1342 | static int thermal_tzp(struct dmi_system_id *d) { | 1379 | static int thermal_tzp(struct dmi_system_id *d) { |
1343 | 1380 | ||
1344 | if (tzp == 0) { | 1381 | if (tzp == 0) { |
@@ -1387,6 +1424,14 @@ static struct dmi_system_id thermal_dmi_table[] __initdata = { | |||
1387 | DMI_MATCH(DMI_BOARD_NAME, "i915GMm-HFS"), | 1424 | DMI_MATCH(DMI_BOARD_NAME, "i915GMm-HFS"), |
1388 | }, | 1425 | }, |
1389 | }, | 1426 | }, |
1427 | { | ||
1428 | .callback = thermal_nocrt, | ||
1429 | .ident = "Gigabyte GA-7ZX", | ||
1430 | .matches = { | ||
1431 | DMI_MATCH(DMI_BOARD_VENDOR, "Gigabyte Technology Co., Ltd."), | ||
1432 | DMI_MATCH(DMI_BOARD_NAME, "7ZX"), | ||
1433 | }, | ||
1434 | }, | ||
1390 | {} | 1435 | {} |
1391 | }; | 1436 | }; |
1392 | #endif /* CONFIG_DMI */ | 1437 | #endif /* CONFIG_DMI */ |
diff --git a/drivers/acpi/utilities/utglobal.c b/drivers/acpi/utilities/utglobal.c index 1621655d6e2b..93ea8290b4f7 100644 --- a/drivers/acpi/utilities/utglobal.c +++ b/drivers/acpi/utilities/utglobal.c | |||
@@ -126,6 +126,7 @@ const char *acpi_format_exception(acpi_status status) | |||
126 | "Unknown exception code: 0x%8.8X", status)); | 126 | "Unknown exception code: 0x%8.8X", status)); |
127 | 127 | ||
128 | exception = "UNKNOWN_STATUS_CODE"; | 128 | exception = "UNKNOWN_STATUS_CODE"; |
129 | dump_stack(); | ||
129 | } | 130 | } |
130 | 131 | ||
131 | return (ACPI_CAST_PTR(const char, exception)); | 132 | return (ACPI_CAST_PTR(const char, exception)); |
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index d98701941981..3c9bb85a6a93 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c | |||
@@ -31,7 +31,7 @@ | |||
31 | #include <linux/list.h> | 31 | #include <linux/list.h> |
32 | #include <linux/proc_fs.h> | 32 | #include <linux/proc_fs.h> |
33 | #include <linux/seq_file.h> | 33 | #include <linux/seq_file.h> |
34 | 34 | #include <linux/input.h> | |
35 | #include <linux/backlight.h> | 35 | #include <linux/backlight.h> |
36 | #include <linux/video_output.h> | 36 | #include <linux/video_output.h> |
37 | #include <asm/uaccess.h> | 37 | #include <asm/uaccess.h> |
@@ -138,6 +138,8 @@ struct acpi_video_bus { | |||
138 | struct semaphore sem; | 138 | struct semaphore sem; |
139 | struct list_head video_device_list; | 139 | struct list_head video_device_list; |
140 | struct proc_dir_entry *dir; | 140 | struct proc_dir_entry *dir; |
141 | struct input_dev *input; | ||
142 | char phys[32]; /* for input device */ | ||
141 | }; | 143 | }; |
142 | 144 | ||
143 | struct acpi_video_device_flags { | 145 | struct acpi_video_device_flags { |
@@ -1764,6 +1766,9 @@ static void acpi_video_bus_notify(acpi_handle handle, u32 event, void *data) | |||
1764 | { | 1766 | { |
1765 | struct acpi_video_bus *video = data; | 1767 | struct acpi_video_bus *video = data; |
1766 | struct acpi_device *device = NULL; | 1768 | struct acpi_device *device = NULL; |
1769 | struct input_dev *input; | ||
1770 | int keycode; | ||
1771 | |||
1767 | 1772 | ||
1768 | printk("video bus notify\n"); | 1773 | printk("video bus notify\n"); |
1769 | 1774 | ||
@@ -1771,11 +1776,13 @@ static void acpi_video_bus_notify(acpi_handle handle, u32 event, void *data) | |||
1771 | return; | 1776 | return; |
1772 | 1777 | ||
1773 | device = video->device; | 1778 | device = video->device; |
1779 | input = video->input; | ||
1774 | 1780 | ||
1775 | switch (event) { | 1781 | switch (event) { |
1776 | case ACPI_VIDEO_NOTIFY_SWITCH: /* User requested a switch, | 1782 | case ACPI_VIDEO_NOTIFY_SWITCH: /* User requested a switch, |
1777 | * most likely via hotkey. */ | 1783 | * most likely via hotkey. */ |
1778 | acpi_bus_generate_event(device, event, 0); | 1784 | acpi_bus_generate_proc_event(device, event, 0); |
1785 | keycode = KEY_SWITCHVIDEOMODE; | ||
1779 | break; | 1786 | break; |
1780 | 1787 | ||
1781 | case ACPI_VIDEO_NOTIFY_PROBE: /* User plugged in or removed a video | 1788 | case ACPI_VIDEO_NOTIFY_PROBE: /* User plugged in or removed a video |
@@ -1783,22 +1790,38 @@ static void acpi_video_bus_notify(acpi_handle handle, u32 event, void *data) | |||
1783 | acpi_video_device_enumerate(video); | 1790 | acpi_video_device_enumerate(video); |
1784 | acpi_video_device_rebind(video); | 1791 | acpi_video_device_rebind(video); |
1785 | acpi_video_switch_output(video, event); | 1792 | acpi_video_switch_output(video, event); |
1786 | acpi_bus_generate_event(device, event, 0); | 1793 | acpi_bus_generate_proc_event(device, event, 0); |
1794 | keycode = KEY_SWITCHVIDEOMODE; | ||
1787 | break; | 1795 | break; |
1788 | 1796 | ||
1789 | case ACPI_VIDEO_NOTIFY_CYCLE: /* Cycle Display output hotkey pressed. */ | 1797 | case ACPI_VIDEO_NOTIFY_CYCLE: /* Cycle Display output hotkey pressed. */ |
1798 | acpi_video_switch_output(video, event); | ||
1799 | acpi_bus_generate_proc_event(device, event, 0); | ||
1800 | keycode = KEY_SWITCHVIDEOMODE; | ||
1801 | break; | ||
1790 | case ACPI_VIDEO_NOTIFY_NEXT_OUTPUT: /* Next Display output hotkey pressed. */ | 1802 | case ACPI_VIDEO_NOTIFY_NEXT_OUTPUT: /* Next Display output hotkey pressed. */ |
1803 | acpi_video_switch_output(video, event); | ||
1804 | acpi_bus_generate_proc_event(device, event, 0); | ||
1805 | keycode = KEY_VIDEO_NEXT; | ||
1806 | break; | ||
1791 | case ACPI_VIDEO_NOTIFY_PREV_OUTPUT: /* previous Display output hotkey pressed. */ | 1807 | case ACPI_VIDEO_NOTIFY_PREV_OUTPUT: /* previous Display output hotkey pressed. */ |
1792 | acpi_video_switch_output(video, event); | 1808 | acpi_video_switch_output(video, event); |
1793 | acpi_bus_generate_event(device, event, 0); | 1809 | acpi_bus_generate_proc_event(device, event, 0); |
1810 | keycode = KEY_VIDEO_PREV; | ||
1794 | break; | 1811 | break; |
1795 | 1812 | ||
1796 | default: | 1813 | default: |
1814 | keycode = KEY_UNKNOWN; | ||
1797 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 1815 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
1798 | "Unsupported event [0x%x]\n", event)); | 1816 | "Unsupported event [0x%x]\n", event)); |
1799 | break; | 1817 | break; |
1800 | } | 1818 | } |
1801 | 1819 | ||
1820 | input_report_key(input, keycode, 1); | ||
1821 | input_sync(input); | ||
1822 | input_report_key(input, keycode, 0); | ||
1823 | input_sync(input); | ||
1824 | |||
1802 | return; | 1825 | return; |
1803 | } | 1826 | } |
1804 | 1827 | ||
@@ -1806,38 +1829,65 @@ static void acpi_video_device_notify(acpi_handle handle, u32 event, void *data) | |||
1806 | { | 1829 | { |
1807 | struct acpi_video_device *video_device = data; | 1830 | struct acpi_video_device *video_device = data; |
1808 | struct acpi_device *device = NULL; | 1831 | struct acpi_device *device = NULL; |
1832 | struct acpi_video_bus *bus; | ||
1833 | struct input_dev *input; | ||
1834 | int keycode; | ||
1809 | 1835 | ||
1810 | if (!video_device) | 1836 | if (!video_device) |
1811 | return; | 1837 | return; |
1812 | 1838 | ||
1813 | device = video_device->dev; | 1839 | device = video_device->dev; |
1840 | bus = video_device->video; | ||
1841 | input = bus->input; | ||
1814 | 1842 | ||
1815 | switch (event) { | 1843 | switch (event) { |
1816 | case ACPI_VIDEO_NOTIFY_SWITCH: /* change in status (cycle output device) */ | ||
1817 | case ACPI_VIDEO_NOTIFY_PROBE: /* change in status (output device status) */ | ||
1818 | acpi_bus_generate_event(device, event, 0); | ||
1819 | break; | ||
1820 | case ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS: /* Cycle brightness */ | 1844 | case ACPI_VIDEO_NOTIFY_CYCLE_BRIGHTNESS: /* Cycle brightness */ |
1845 | acpi_video_switch_brightness(video_device, event); | ||
1846 | acpi_bus_generate_proc_event(device, event, 0); | ||
1847 | keycode = KEY_BRIGHTNESS_CYCLE; | ||
1848 | break; | ||
1821 | case ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS: /* Increase brightness */ | 1849 | case ACPI_VIDEO_NOTIFY_INC_BRIGHTNESS: /* Increase brightness */ |
1850 | acpi_video_switch_brightness(video_device, event); | ||
1851 | acpi_bus_generate_proc_event(device, event, 0); | ||
1852 | keycode = KEY_BRIGHTNESSUP; | ||
1853 | break; | ||
1822 | case ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS: /* Decrease brightness */ | 1854 | case ACPI_VIDEO_NOTIFY_DEC_BRIGHTNESS: /* Decrease brightness */ |
1855 | acpi_video_switch_brightness(video_device, event); | ||
1856 | acpi_bus_generate_proc_event(device, event, 0); | ||
1857 | keycode = KEY_BRIGHTNESSDOWN; | ||
1858 | break; | ||
1823 | case ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS: /* zero brightnesss */ | 1859 | case ACPI_VIDEO_NOTIFY_ZERO_BRIGHTNESS: /* zero brightnesss */ |
1860 | acpi_video_switch_brightness(video_device, event); | ||
1861 | acpi_bus_generate_proc_event(device, event, 0); | ||
1862 | keycode = KEY_BRIGHTNESS_ZERO; | ||
1863 | break; | ||
1824 | case ACPI_VIDEO_NOTIFY_DISPLAY_OFF: /* display device off */ | 1864 | case ACPI_VIDEO_NOTIFY_DISPLAY_OFF: /* display device off */ |
1825 | acpi_video_switch_brightness(video_device, event); | 1865 | acpi_video_switch_brightness(video_device, event); |
1826 | acpi_bus_generate_event(device, event, 0); | 1866 | acpi_bus_generate_proc_event(device, event, 0); |
1867 | keycode = KEY_DISPLAY_OFF; | ||
1827 | break; | 1868 | break; |
1828 | default: | 1869 | default: |
1870 | keycode = KEY_UNKNOWN; | ||
1829 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, | 1871 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, |
1830 | "Unsupported event [0x%x]\n", event)); | 1872 | "Unsupported event [0x%x]\n", event)); |
1831 | break; | 1873 | break; |
1832 | } | 1874 | } |
1875 | |||
1876 | input_report_key(input, keycode, 1); | ||
1877 | input_sync(input); | ||
1878 | input_report_key(input, keycode, 0); | ||
1879 | input_sync(input); | ||
1880 | |||
1833 | return; | 1881 | return; |
1834 | } | 1882 | } |
1835 | 1883 | ||
1884 | static int instance; | ||
1836 | static int acpi_video_bus_add(struct acpi_device *device) | 1885 | static int acpi_video_bus_add(struct acpi_device *device) |
1837 | { | 1886 | { |
1838 | int result = 0; | 1887 | int result = 0; |
1839 | acpi_status status = 0; | 1888 | acpi_status status = 0; |
1840 | struct acpi_video_bus *video = NULL; | 1889 | struct acpi_video_bus *video = NULL; |
1890 | struct input_dev *input; | ||
1841 | 1891 | ||
1842 | 1892 | ||
1843 | if (!device) | 1893 | if (!device) |
@@ -1847,6 +1897,13 @@ static int acpi_video_bus_add(struct acpi_device *device) | |||
1847 | if (!video) | 1897 | if (!video) |
1848 | return -ENOMEM; | 1898 | return -ENOMEM; |
1849 | 1899 | ||
1900 | /* a hack to fix the duplicate name "VID" problem on T61 */ | ||
1901 | if (!strcmp(device->pnp.bus_id, "VID")) { | ||
1902 | if (instance) | ||
1903 | device->pnp.bus_id[3] = '0' + instance; | ||
1904 | instance ++; | ||
1905 | } | ||
1906 | |||
1850 | video->device = device; | 1907 | video->device = device; |
1851 | strcpy(acpi_device_name(device), ACPI_VIDEO_BUS_NAME); | 1908 | strcpy(acpi_device_name(device), ACPI_VIDEO_BUS_NAME); |
1852 | strcpy(acpi_device_class(device), ACPI_VIDEO_CLASS); | 1909 | strcpy(acpi_device_class(device), ACPI_VIDEO_CLASS); |
@@ -1881,6 +1938,39 @@ static int acpi_video_bus_add(struct acpi_device *device) | |||
1881 | goto end; | 1938 | goto end; |
1882 | } | 1939 | } |
1883 | 1940 | ||
1941 | |||
1942 | video->input = input = input_allocate_device(); | ||
1943 | |||
1944 | snprintf(video->phys, sizeof(video->phys), | ||
1945 | "%s/video/input0", acpi_device_hid(video->device)); | ||
1946 | |||
1947 | input->name = acpi_device_name(video->device); | ||
1948 | input->phys = video->phys; | ||
1949 | input->id.bustype = BUS_HOST; | ||
1950 | input->id.product = 0x06; | ||
1951 | input->evbit[0] = BIT(EV_KEY); | ||
1952 | set_bit(KEY_SWITCHVIDEOMODE, input->keybit); | ||
1953 | set_bit(KEY_VIDEO_NEXT, input->keybit); | ||
1954 | set_bit(KEY_VIDEO_PREV, input->keybit); | ||
1955 | set_bit(KEY_BRIGHTNESS_CYCLE, input->keybit); | ||
1956 | set_bit(KEY_BRIGHTNESSUP, input->keybit); | ||
1957 | set_bit(KEY_BRIGHTNESSDOWN, input->keybit); | ||
1958 | set_bit(KEY_BRIGHTNESS_ZERO, input->keybit); | ||
1959 | set_bit(KEY_DISPLAY_OFF, input->keybit); | ||
1960 | set_bit(KEY_UNKNOWN, input->keybit); | ||
1961 | result = input_register_device(input); | ||
1962 | if (result) { | ||
1963 | acpi_remove_notify_handler(video->device->handle, | ||
1964 | ACPI_DEVICE_NOTIFY, | ||
1965 | acpi_video_bus_notify); | ||
1966 | acpi_video_bus_stop_devices(video); | ||
1967 | acpi_video_bus_put_devices(video); | ||
1968 | kfree(video->attached_array); | ||
1969 | acpi_video_bus_remove_fs(device); | ||
1970 | goto end; | ||
1971 | } | ||
1972 | |||
1973 | |||
1884 | printk(KERN_INFO PREFIX "%s [%s] (multi-head: %s rom: %s post: %s)\n", | 1974 | printk(KERN_INFO PREFIX "%s [%s] (multi-head: %s rom: %s post: %s)\n", |
1885 | ACPI_VIDEO_DEVICE_NAME, acpi_device_bid(device), | 1975 | ACPI_VIDEO_DEVICE_NAME, acpi_device_bid(device), |
1886 | video->flags.multihead ? "yes" : "no", | 1976 | video->flags.multihead ? "yes" : "no", |
@@ -1914,6 +2004,7 @@ static int acpi_video_bus_remove(struct acpi_device *device, int type) | |||
1914 | acpi_video_bus_put_devices(video); | 2004 | acpi_video_bus_put_devices(video); |
1915 | acpi_video_bus_remove_fs(device); | 2005 | acpi_video_bus_remove_fs(device); |
1916 | 2006 | ||
2007 | input_unregister_device(video->input); | ||
1917 | kfree(video->attached_array); | 2008 | kfree(video->attached_array); |
1918 | kfree(video); | 2009 | kfree(video); |
1919 | 2010 | ||
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c index a78832ea81fa..071d274afaab 100644 --- a/drivers/ata/ata_piix.c +++ b/drivers/ata/ata_piix.c | |||
@@ -436,7 +436,7 @@ static const struct piix_map_db ich8_map_db = { | |||
436 | /* PM PS SM SS MAP */ | 436 | /* PM PS SM SS MAP */ |
437 | { P0, P2, P1, P3 }, /* 00b (hardwired when in AHCI) */ | 437 | { P0, P2, P1, P3 }, /* 00b (hardwired when in AHCI) */ |
438 | { RV, RV, RV, RV }, | 438 | { RV, RV, RV, RV }, |
439 | { IDE, IDE, NA, NA }, /* 10b (IDE mode) */ | 439 | { P0, P2, IDE, IDE }, /* 10b (IDE mode) */ |
440 | { RV, RV, RV, RV }, | 440 | { RV, RV, RV, RV }, |
441 | }, | 441 | }, |
442 | }; | 442 | }; |
@@ -901,6 +901,13 @@ static int piix_broken_suspend(void) | |||
901 | }, | 901 | }, |
902 | }, | 902 | }, |
903 | { | 903 | { |
904 | .ident = "TECRA M7", | ||
905 | .matches = { | ||
906 | DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), | ||
907 | DMI_MATCH(DMI_PRODUCT_NAME, "TECRA M7"), | ||
908 | }, | ||
909 | }, | ||
910 | { | ||
904 | .ident = "Satellite U205", | 911 | .ident = "Satellite U205", |
905 | .matches = { | 912 | .matches = { |
906 | DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), | 913 | DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), |
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 60e78bef469f..2ad4dda6d4a7 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -1723,7 +1723,7 @@ int ata_dev_read_id(struct ata_device *dev, unsigned int *p_class, | |||
1723 | tf.protocol = ATA_PROT_NODATA; | 1723 | tf.protocol = ATA_PROT_NODATA; |
1724 | tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; | 1724 | tf.flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; |
1725 | err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0); | 1725 | err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0); |
1726 | if (err_mask) { | 1726 | if (err_mask && id[2] != 0x738c) { |
1727 | rc = -EIO; | 1727 | rc = -EIO; |
1728 | reason = "SPINUP failed"; | 1728 | reason = "SPINUP failed"; |
1729 | goto err_out; | 1729 | goto err_out; |
@@ -3700,11 +3700,16 @@ int ata_dev_revalidate(struct ata_device *dev, unsigned int readid_flags) | |||
3700 | goto fail; | 3700 | goto fail; |
3701 | 3701 | ||
3702 | /* verify n_sectors hasn't changed */ | 3702 | /* verify n_sectors hasn't changed */ |
3703 | if (dev->class == ATA_DEV_ATA && dev->n_sectors != n_sectors) { | 3703 | if (dev->class == ATA_DEV_ATA && n_sectors && |
3704 | dev->n_sectors != n_sectors) { | ||
3704 | ata_dev_printk(dev, KERN_INFO, "n_sectors mismatch " | 3705 | ata_dev_printk(dev, KERN_INFO, "n_sectors mismatch " |
3705 | "%llu != %llu\n", | 3706 | "%llu != %llu\n", |
3706 | (unsigned long long)n_sectors, | 3707 | (unsigned long long)n_sectors, |
3707 | (unsigned long long)dev->n_sectors); | 3708 | (unsigned long long)dev->n_sectors); |
3709 | |||
3710 | /* restore original n_sectors */ | ||
3711 | dev->n_sectors = n_sectors; | ||
3712 | |||
3708 | rc = -ENODEV; | 3713 | rc = -ENODEV; |
3709 | goto fail; | 3714 | goto fail; |
3710 | } | 3715 | } |
diff --git a/drivers/ata/pata_artop.c b/drivers/ata/pata_artop.c index ce589d96ca42..b5352ebecef9 100644 --- a/drivers/ata/pata_artop.c +++ b/drivers/ata/pata_artop.c | |||
@@ -2,6 +2,7 @@ | |||
2 | * pata_artop.c - ARTOP ATA controller driver | 2 | * pata_artop.c - ARTOP ATA controller driver |
3 | * | 3 | * |
4 | * (C) 2006 Red Hat <alan@redhat.com> | 4 | * (C) 2006 Red Hat <alan@redhat.com> |
5 | * (C) 2007 Bartlomiej Zolnierkiewicz | ||
5 | * | 6 | * |
6 | * Based in part on drivers/ide/pci/aec62xx.c | 7 | * Based in part on drivers/ide/pci/aec62xx.c |
7 | * Copyright (C) 1999-2002 Andre Hedrick <andre@linux-ide.org> | 8 | * Copyright (C) 1999-2002 Andre Hedrick <andre@linux-ide.org> |
@@ -28,7 +29,7 @@ | |||
28 | #include <linux/ata.h> | 29 | #include <linux/ata.h> |
29 | 30 | ||
30 | #define DRV_NAME "pata_artop" | 31 | #define DRV_NAME "pata_artop" |
31 | #define DRV_VERSION "0.4.3" | 32 | #define DRV_VERSION "0.4.4" |
32 | 33 | ||
33 | /* | 34 | /* |
34 | * The ARTOP has 33 Mhz and "over clocked" timing tables. Until we | 35 | * The ARTOP has 33 Mhz and "over clocked" timing tables. Until we |
@@ -430,7 +431,7 @@ static int artop_init_one (struct pci_dev *pdev, const struct pci_device_id *id) | |||
430 | .udma_mask = ATA_UDMA4, | 431 | .udma_mask = ATA_UDMA4, |
431 | .port_ops = &artop6260_ops, | 432 | .port_ops = &artop6260_ops, |
432 | }; | 433 | }; |
433 | static const struct ata_port_info info_626x_fast = { | 434 | static const struct ata_port_info info_628x = { |
434 | .sht = &artop_sht, | 435 | .sht = &artop_sht, |
435 | .flags = ATA_FLAG_SLAVE_POSS, | 436 | .flags = ATA_FLAG_SLAVE_POSS, |
436 | .pio_mask = 0x1f, /* pio0-4 */ | 437 | .pio_mask = 0x1f, /* pio0-4 */ |
@@ -438,6 +439,14 @@ static int artop_init_one (struct pci_dev *pdev, const struct pci_device_id *id) | |||
438 | .udma_mask = ATA_UDMA5, | 439 | .udma_mask = ATA_UDMA5, |
439 | .port_ops = &artop6260_ops, | 440 | .port_ops = &artop6260_ops, |
440 | }; | 441 | }; |
442 | static const struct ata_port_info info_628x_fast = { | ||
443 | .sht = &artop_sht, | ||
444 | .flags = ATA_FLAG_SLAVE_POSS, | ||
445 | .pio_mask = 0x1f, /* pio0-4 */ | ||
446 | .mwdma_mask = 0x07, /* mwdma0-2 */ | ||
447 | .udma_mask = ATA_UDMA6, | ||
448 | .port_ops = &artop6260_ops, | ||
449 | }; | ||
441 | const struct ata_port_info *ppi[] = { NULL, NULL }; | 450 | const struct ata_port_info *ppi[] = { NULL, NULL }; |
442 | 451 | ||
443 | if (!printed_version++) | 452 | if (!printed_version++) |
@@ -455,13 +464,13 @@ static int artop_init_one (struct pci_dev *pdev, const struct pci_device_id *id) | |||
455 | } | 464 | } |
456 | else if (id->driver_data == 1) /* 6260 */ | 465 | else if (id->driver_data == 1) /* 6260 */ |
457 | ppi[0] = &info_626x; | 466 | ppi[0] = &info_626x; |
458 | else if (id->driver_data == 2) { /* 6260 or 6260 + fast */ | 467 | else if (id->driver_data == 2) { /* 6280 or 6280 + fast */ |
459 | unsigned long io = pci_resource_start(pdev, 4); | 468 | unsigned long io = pci_resource_start(pdev, 4); |
460 | u8 reg; | 469 | u8 reg; |
461 | 470 | ||
462 | ppi[0] = &info_626x; | 471 | ppi[0] = &info_628x; |
463 | if (inb(io) & 0x10) | 472 | if (inb(io) & 0x10) |
464 | ppi[0] = &info_626x_fast; | 473 | ppi[0] = &info_628x_fast; |
465 | /* Mac systems come up with some registers not set as we | 474 | /* Mac systems come up with some registers not set as we |
466 | will need them */ | 475 | will need them */ |
467 | 476 | ||
diff --git a/drivers/ata/pata_hpt37x.c b/drivers/ata/pata_hpt37x.c index 84d9c5568567..c5ddd937dbf2 100644 --- a/drivers/ata/pata_hpt37x.c +++ b/drivers/ata/pata_hpt37x.c | |||
@@ -8,12 +8,10 @@ | |||
8 | * Copyright (C) 1999-2003 Andre Hedrick <andre@linux-ide.org> | 8 | * Copyright (C) 1999-2003 Andre Hedrick <andre@linux-ide.org> |
9 | * Portions Copyright (C) 2001 Sun Microsystems, Inc. | 9 | * Portions Copyright (C) 2001 Sun Microsystems, Inc. |
10 | * Portions Copyright (C) 2003 Red Hat Inc | 10 | * Portions Copyright (C) 2003 Red Hat Inc |
11 | * Portions Copyright (C) 2005-2006 MontaVista Software, Inc. | 11 | * Portions Copyright (C) 2005-2007 MontaVista Software, Inc. |
12 | * | 12 | * |
13 | * TODO | 13 | * TODO |
14 | * PLL mode | 14 | * Look into engine reset on timeout errors. Should not be required. |
15 | * Look into engine reset on timeout errors. Should not be | ||
16 | * required. | ||
17 | */ | 15 | */ |
18 | 16 | ||
19 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
@@ -26,7 +24,7 @@ | |||
26 | #include <linux/libata.h> | 24 | #include <linux/libata.h> |
27 | 25 | ||
28 | #define DRV_NAME "pata_hpt37x" | 26 | #define DRV_NAME "pata_hpt37x" |
29 | #define DRV_VERSION "0.6.7" | 27 | #define DRV_VERSION "0.6.9" |
30 | 28 | ||
31 | struct hpt_clock { | 29 | struct hpt_clock { |
32 | u8 xfer_speed; | 30 | u8 xfer_speed; |
@@ -1092,9 +1090,7 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
1092 | int dpll, adjust; | 1090 | int dpll, adjust; |
1093 | 1091 | ||
1094 | /* Compute DPLL */ | 1092 | /* Compute DPLL */ |
1095 | dpll = 2; | 1093 | dpll = (port->udma_mask & 0xC0) ? 3 : 2; |
1096 | if (port->udma_mask & 0xE0) | ||
1097 | dpll = 3; | ||
1098 | 1094 | ||
1099 | f_low = (MHz[clock_slot] * 48) / MHz[dpll]; | 1095 | f_low = (MHz[clock_slot] * 48) / MHz[dpll]; |
1100 | f_high = f_low + 2; | 1096 | f_high = f_low + 2; |
@@ -1116,7 +1112,7 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
1116 | pci_write_config_dword(dev, 0x5C, (f_high << 16) | f_low | 0x100); | 1112 | pci_write_config_dword(dev, 0x5C, (f_high << 16) | f_low | 0x100); |
1117 | } | 1113 | } |
1118 | if (adjust == 8) { | 1114 | if (adjust == 8) { |
1119 | printk(KERN_WARNING "hpt37x: DPLL did not stabilize.\n"); | 1115 | printk(KERN_ERR "pata_hpt37x: DPLL did not stabilize!\n"); |
1120 | return -ENODEV; | 1116 | return -ENODEV; |
1121 | } | 1117 | } |
1122 | if (dpll == 3) | 1118 | if (dpll == 3) |
@@ -1124,7 +1120,8 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
1124 | else | 1120 | else |
1125 | private_data = (void *)hpt37x_timings_50; | 1121 | private_data = (void *)hpt37x_timings_50; |
1126 | 1122 | ||
1127 | printk(KERN_INFO "hpt37x: Bus clock %dMHz, using DPLL.\n", MHz[dpll]); | 1123 | printk(KERN_INFO "pata_hpt37x: bus clock %dMHz, using %dMHz DPLL.\n", |
1124 | MHz[clock_slot], MHz[dpll]); | ||
1128 | } else { | 1125 | } else { |
1129 | private_data = (void *)chip_table->clocks[clock_slot]; | 1126 | private_data = (void *)chip_table->clocks[clock_slot]; |
1130 | /* | 1127 | /* |
@@ -1137,7 +1134,8 @@ static int hpt37x_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
1137 | port = &info_hpt370_33; | 1134 | port = &info_hpt370_33; |
1138 | if (clock_slot < 2 && port == &info_hpt370a) | 1135 | if (clock_slot < 2 && port == &info_hpt370a) |
1139 | port = &info_hpt370a_33; | 1136 | port = &info_hpt370a_33; |
1140 | printk(KERN_INFO "hpt37x: %s: Bus clock %dMHz.\n", chip_table->name, MHz[clock_slot]); | 1137 | printk(KERN_INFO "pata_hpt37x: %s using %dMHz bus clock.\n", |
1138 | chip_table->name, MHz[clock_slot]); | ||
1141 | } | 1139 | } |
1142 | 1140 | ||
1143 | /* Now kick off ATA set up */ | 1141 | /* Now kick off ATA set up */ |
diff --git a/drivers/ata/pata_hpt3x2n.c b/drivers/ata/pata_hpt3x2n.c index aa29cde09f8b..f8f234bfc8ce 100644 --- a/drivers/ata/pata_hpt3x2n.c +++ b/drivers/ata/pata_hpt3x2n.c | |||
@@ -8,7 +8,7 @@ | |||
8 | * Copyright (C) 1999-2003 Andre Hedrick <andre@linux-ide.org> | 8 | * Copyright (C) 1999-2003 Andre Hedrick <andre@linux-ide.org> |
9 | * Portions Copyright (C) 2001 Sun Microsystems, Inc. | 9 | * Portions Copyright (C) 2001 Sun Microsystems, Inc. |
10 | * Portions Copyright (C) 2003 Red Hat Inc | 10 | * Portions Copyright (C) 2003 Red Hat Inc |
11 | * Portions Copyright (C) 2005-2006 MontaVista Software, Inc. | 11 | * Portions Copyright (C) 2005-2007 MontaVista Software, Inc. |
12 | * | 12 | * |
13 | * | 13 | * |
14 | * TODO | 14 | * TODO |
@@ -25,7 +25,7 @@ | |||
25 | #include <linux/libata.h> | 25 | #include <linux/libata.h> |
26 | 26 | ||
27 | #define DRV_NAME "pata_hpt3x2n" | 27 | #define DRV_NAME "pata_hpt3x2n" |
28 | #define DRV_VERSION "0.3.3" | 28 | #define DRV_VERSION "0.3.4" |
29 | 29 | ||
30 | enum { | 30 | enum { |
31 | HPT_PCI_FAST = (1 << 31), | 31 | HPT_PCI_FAST = (1 << 31), |
@@ -579,10 +579,12 @@ static int hpt3x2n_init_one(struct pci_dev *dev, const struct pci_device_id *id) | |||
579 | pci_write_config_dword(dev, 0x5C, (f_high << 16) | f_low); | 579 | pci_write_config_dword(dev, 0x5C, (f_high << 16) | f_low); |
580 | } | 580 | } |
581 | if (adjust == 8) { | 581 | if (adjust == 8) { |
582 | printk(KERN_WARNING "hpt3x2n: DPLL did not stabilize.\n"); | 582 | printk(KERN_ERR "pata_hpt3x2n: DPLL did not stabilize!\n"); |
583 | return -ENODEV; | 583 | return -ENODEV; |
584 | } | 584 | } |
585 | 585 | ||
586 | printk(KERN_INFO "pata_hpt37x: bus clock %dMHz, using 66MHz DPLL.\n", | ||
587 | pci_mhz); | ||
586 | /* Set our private data up. We only need a few flags so we use | 588 | /* Set our private data up. We only need a few flags so we use |
587 | it directly */ | 589 | it directly */ |
588 | port.private_data = NULL; | 590 | port.private_data = NULL; |
diff --git a/drivers/ata/pata_isapnp.c b/drivers/ata/pata_isapnp.c index 5525518204e6..91a396fa5b20 100644 --- a/drivers/ata/pata_isapnp.c +++ b/drivers/ata/pata_isapnp.c | |||
@@ -139,6 +139,8 @@ static struct pnp_device_id isapnp_devices[] = { | |||
139 | {.id = ""} | 139 | {.id = ""} |
140 | }; | 140 | }; |
141 | 141 | ||
142 | MODULE_DEVICE_TABLE(pnp, isapnp_devices); | ||
143 | |||
142 | static struct pnp_driver isapnp_driver = { | 144 | static struct pnp_driver isapnp_driver = { |
143 | .name = DRV_NAME, | 145 | .name = DRV_NAME, |
144 | .id_table = isapnp_devices, | 146 | .id_table = isapnp_devices, |
diff --git a/drivers/ata/pata_it821x.c b/drivers/ata/pata_it821x.c index 430673be1df7..7225124d96c2 100644 --- a/drivers/ata/pata_it821x.c +++ b/drivers/ata/pata_it821x.c | |||
@@ -587,7 +587,7 @@ static int it821x_port_start(struct ata_port *ap) | |||
587 | itdev->want[1][1] = ATA_ANY; | 587 | itdev->want[1][1] = ATA_ANY; |
588 | itdev->last_device = -1; | 588 | itdev->last_device = -1; |
589 | 589 | ||
590 | if (pdev->revision == 0x11) { | 590 | if (pdev->revision == 0x10) { |
591 | itdev->timing10 = 1; | 591 | itdev->timing10 = 1; |
592 | /* Need to disable ATAPI DMA for this case */ | 592 | /* Need to disable ATAPI DMA for this case */ |
593 | if (!itdev->smart) | 593 | if (!itdev->smart) |
diff --git a/drivers/ata/pata_pdc2027x.c b/drivers/ata/pata_pdc2027x.c index 69a5aa4949f5..e3245b36269a 100644 --- a/drivers/ata/pata_pdc2027x.c +++ b/drivers/ata/pata_pdc2027x.c | |||
@@ -563,13 +563,13 @@ static long pdc_read_counter(struct ata_host *host) | |||
563 | u32 bccrl, bccrh, bccrlv, bccrhv; | 563 | u32 bccrl, bccrh, bccrlv, bccrhv; |
564 | 564 | ||
565 | retry: | 565 | retry: |
566 | bccrl = readl(mmio_base + PDC_BYTE_COUNT) & 0xffff; | 566 | bccrl = readl(mmio_base + PDC_BYTE_COUNT) & 0x7fff; |
567 | bccrh = readl(mmio_base + PDC_BYTE_COUNT + 0x100) & 0xffff; | 567 | bccrh = readl(mmio_base + PDC_BYTE_COUNT + 0x100) & 0x7fff; |
568 | rmb(); | 568 | rmb(); |
569 | 569 | ||
570 | /* Read the counter values again for verification */ | 570 | /* Read the counter values again for verification */ |
571 | bccrlv = readl(mmio_base + PDC_BYTE_COUNT) & 0xffff; | 571 | bccrlv = readl(mmio_base + PDC_BYTE_COUNT) & 0x7fff; |
572 | bccrhv = readl(mmio_base + PDC_BYTE_COUNT + 0x100) & 0xffff; | 572 | bccrhv = readl(mmio_base + PDC_BYTE_COUNT + 0x100) & 0x7fff; |
573 | rmb(); | 573 | rmb(); |
574 | 574 | ||
575 | counter = (bccrh << 15) | bccrl; | 575 | counter = (bccrh << 15) | bccrl; |
@@ -692,16 +692,16 @@ static long pdc_detect_pll_input_clock(struct ata_host *host) | |||
692 | struct timeval start_time, end_time; | 692 | struct timeval start_time, end_time; |
693 | long pll_clock, usec_elapsed; | 693 | long pll_clock, usec_elapsed; |
694 | 694 | ||
695 | /* Read current counter value */ | ||
696 | start_count = pdc_read_counter(host); | ||
697 | do_gettimeofday(&start_time); | ||
698 | |||
699 | /* Start the test mode */ | 695 | /* Start the test mode */ |
700 | scr = readl(mmio_base + PDC_SYS_CTL); | 696 | scr = readl(mmio_base + PDC_SYS_CTL); |
701 | PDPRINTK("scr[%X]\n", scr); | 697 | PDPRINTK("scr[%X]\n", scr); |
702 | writel(scr | (0x01 << 14), mmio_base + PDC_SYS_CTL); | 698 | writel(scr | (0x01 << 14), mmio_base + PDC_SYS_CTL); |
703 | readl(mmio_base + PDC_SYS_CTL); /* flush */ | 699 | readl(mmio_base + PDC_SYS_CTL); /* flush */ |
704 | 700 | ||
701 | /* Read current counter value */ | ||
702 | start_count = pdc_read_counter(host); | ||
703 | do_gettimeofday(&start_time); | ||
704 | |||
705 | /* Let the counter run for 100 ms. */ | 705 | /* Let the counter run for 100 ms. */ |
706 | mdelay(100); | 706 | mdelay(100); |
707 | 707 | ||
@@ -719,7 +719,7 @@ static long pdc_detect_pll_input_clock(struct ata_host *host) | |||
719 | usec_elapsed = (end_time.tv_sec - start_time.tv_sec) * 1000000 + | 719 | usec_elapsed = (end_time.tv_sec - start_time.tv_sec) * 1000000 + |
720 | (end_time.tv_usec - start_time.tv_usec); | 720 | (end_time.tv_usec - start_time.tv_usec); |
721 | 721 | ||
722 | pll_clock = (start_count - end_count) / 100 * | 722 | pll_clock = ((start_count - end_count) & 0x3fffffff) / 100 * |
723 | (100000000 / usec_elapsed); | 723 | (100000000 / usec_elapsed); |
724 | 724 | ||
725 | PDPRINTK("start[%ld] end[%ld] \n", start_count, end_count); | 725 | PDPRINTK("start[%ld] end[%ld] \n", start_count, end_count); |
diff --git a/drivers/ata/pata_sis.c b/drivers/ata/pata_sis.c index 66bd0e83ac07..2bd7645f1a88 100644 --- a/drivers/ata/pata_sis.c +++ b/drivers/ata/pata_sis.c | |||
@@ -54,6 +54,7 @@ struct sis_laptop { | |||
54 | static const struct sis_laptop sis_laptop[] = { | 54 | static const struct sis_laptop sis_laptop[] = { |
55 | /* devid, subvendor, subdev */ | 55 | /* devid, subvendor, subdev */ |
56 | { 0x5513, 0x1043, 0x1107 }, /* ASUS A6K */ | 56 | { 0x5513, 0x1043, 0x1107 }, /* ASUS A6K */ |
57 | { 0x5513, 0x1734, 0x105F }, /* FSC Amilo A1630 */ | ||
57 | /* end marker */ | 58 | /* end marker */ |
58 | { 0, } | 59 | { 0, } |
59 | }; | 60 | }; |
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c index f645fe22cd1e..ea18e33f50ef 100644 --- a/drivers/ata/pata_via.c +++ b/drivers/ata/pata_via.c | |||
@@ -63,7 +63,7 @@ | |||
63 | #include <linux/dmi.h> | 63 | #include <linux/dmi.h> |
64 | 64 | ||
65 | #define DRV_NAME "pata_via" | 65 | #define DRV_NAME "pata_via" |
66 | #define DRV_VERSION "0.3.1" | 66 | #define DRV_VERSION "0.3.2" |
67 | 67 | ||
68 | /* | 68 | /* |
69 | * The following comes directly from Vojtech Pavlik's ide/pci/via82cxxx | 69 | * The following comes directly from Vojtech Pavlik's ide/pci/via82cxxx |
@@ -144,6 +144,9 @@ static int via_cable_override(struct pci_dev *pdev) | |||
144 | /* Systems by DMI */ | 144 | /* Systems by DMI */ |
145 | if (dmi_check_system(cable_dmi_table)) | 145 | if (dmi_check_system(cable_dmi_table)) |
146 | return 1; | 146 | return 1; |
147 | /* Arima W730-K8/Targa Visionary 811/... */ | ||
148 | if (pdev->subsystem_vendor == 0x161F && pdev->subsystem_device == 0x2032) | ||
149 | return 1; | ||
147 | return 0; | 150 | return 0; |
148 | } | 151 | } |
149 | 152 | ||
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c index 8ec520885b95..3acf65e75eb2 100644 --- a/drivers/ata/sata_mv.c +++ b/drivers/ata/sata_mv.c | |||
@@ -621,6 +621,9 @@ static const struct pci_device_id mv_pci_tbl[] = { | |||
621 | { PCI_VDEVICE(MARVELL, 0x5041), chip_504x }, | 621 | { PCI_VDEVICE(MARVELL, 0x5041), chip_504x }, |
622 | { PCI_VDEVICE(MARVELL, 0x5080), chip_5080 }, | 622 | { PCI_VDEVICE(MARVELL, 0x5080), chip_5080 }, |
623 | { PCI_VDEVICE(MARVELL, 0x5081), chip_508x }, | 623 | { PCI_VDEVICE(MARVELL, 0x5081), chip_508x }, |
624 | /* RocketRAID 1740/174x have different identifiers */ | ||
625 | { PCI_VDEVICE(TTI, 0x1740), chip_508x }, | ||
626 | { PCI_VDEVICE(TTI, 0x1742), chip_508x }, | ||
624 | 627 | ||
625 | { PCI_VDEVICE(MARVELL, 0x6040), chip_604x }, | 628 | { PCI_VDEVICE(MARVELL, 0x6040), chip_604x }, |
626 | { PCI_VDEVICE(MARVELL, 0x6041), chip_604x }, | 629 | { PCI_VDEVICE(MARVELL, 0x6041), chip_604x }, |
diff --git a/drivers/atm/Kconfig b/drivers/atm/Kconfig index bed9f58c2d5a..b554edac1ced 100644 --- a/drivers/atm/Kconfig +++ b/drivers/atm/Kconfig | |||
@@ -6,6 +6,11 @@ menuconfig ATM_DRIVERS | |||
6 | bool "ATM drivers" | 6 | bool "ATM drivers" |
7 | depends on NETDEVICES && ATM | 7 | depends on NETDEVICES && ATM |
8 | default y | 8 | default y |
9 | ---help--- | ||
10 | Say Y here to get to see options for Asynchronous Transfer Mode | ||
11 | device drivers. This option alone does not add any kernel code. | ||
12 | |||
13 | If you say N, all options in this submenu will be skipped and disabled. | ||
9 | 14 | ||
10 | if ATM_DRIVERS && NETDEVICES && ATM | 15 | if ATM_DRIVERS && NETDEVICES && ATM |
11 | 16 | ||
diff --git a/drivers/auxdisplay/Kconfig b/drivers/auxdisplay/Kconfig index de2fcce10ba5..043353bd0600 100644 --- a/drivers/auxdisplay/Kconfig +++ b/drivers/auxdisplay/Kconfig | |||
@@ -8,6 +8,11 @@ | |||
8 | menuconfig AUXDISPLAY | 8 | menuconfig AUXDISPLAY |
9 | depends on PARPORT | 9 | depends on PARPORT |
10 | bool "Auxiliary Display support" | 10 | bool "Auxiliary Display support" |
11 | ---help--- | ||
12 | Say Y here to get to see options for auxiliary display drivers. | ||
13 | This option alone does not add any kernel code. | ||
14 | |||
15 | If you say N, all options in this submenu will be skipped and disabled. | ||
11 | 16 | ||
12 | if AUXDISPLAY && PARPORT | 17 | if AUXDISPLAY && PARPORT |
13 | 18 | ||
diff --git a/drivers/auxdisplay/cfag12864b.c b/drivers/auxdisplay/cfag12864b.c index cb44cb4f6a47..80bb06105387 100644 --- a/drivers/auxdisplay/cfag12864b.c +++ b/drivers/auxdisplay/cfag12864b.c | |||
@@ -355,7 +355,7 @@ static int __init cfag12864b_init(void) | |||
355 | 355 | ||
356 | cfag12864b_cache = kmalloc(sizeof(unsigned char) * | 356 | cfag12864b_cache = kmalloc(sizeof(unsigned char) * |
357 | CFAG12864B_SIZE, GFP_KERNEL); | 357 | CFAG12864B_SIZE, GFP_KERNEL); |
358 | if (cfag12864b_buffer == NULL) { | 358 | if (cfag12864b_cache == NULL) { |
359 | printk(KERN_ERR CFAG12864B_NAME ": ERROR: " | 359 | printk(KERN_ERR CFAG12864B_NAME ": ERROR: " |
360 | "can't alloc cache buffer (%i bytes)\n", | 360 | "can't alloc cache buffer (%i bytes)\n", |
361 | CFAG12864B_SIZE); | 361 | CFAG12864B_SIZE); |
diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig index a4a311992408..4245b7f80a49 100644 --- a/drivers/block/Kconfig +++ b/drivers/block/Kconfig | |||
@@ -6,6 +6,12 @@ menuconfig BLK_DEV | |||
6 | bool "Block devices" | 6 | bool "Block devices" |
7 | depends on BLOCK | 7 | depends on BLOCK |
8 | default y | 8 | default y |
9 | ---help--- | ||
10 | Say Y here to get to see options for various different block device | ||
11 | drivers. This option alone does not add any kernel code. | ||
12 | |||
13 | If you say N, all options in this submenu will be skipped and disabled; | ||
14 | only do this if you know what you are doing. | ||
9 | 15 | ||
10 | if BLK_DEV | 16 | if BLK_DEV |
11 | 17 | ||
@@ -62,6 +68,7 @@ config AMIGA_Z2RAM | |||
62 | config BLK_DEV_XD | 68 | config BLK_DEV_XD |
63 | tristate "XT hard disk support" | 69 | tristate "XT hard disk support" |
64 | depends on ISA && ISA_DMA_API | 70 | depends on ISA && ISA_DMA_API |
71 | select CHECK_SIGNATURE | ||
65 | help | 72 | help |
66 | Very old 8 bit hard disk controllers used in the IBM XT computer | 73 | Very old 8 bit hard disk controllers used in the IBM XT computer |
67 | will be supported if you say Y here. | 74 | will be supported if you say Y here. |
diff --git a/drivers/block/lguest_blk.c b/drivers/block/lguest_blk.c index 93e3c4001bf5..160cf14431ac 100644 --- a/drivers/block/lguest_blk.c +++ b/drivers/block/lguest_blk.c | |||
@@ -308,9 +308,12 @@ static int lguestblk_probe(struct lguest_device *lgdev) | |||
308 | } | 308 | } |
309 | 309 | ||
310 | /* This allocates a "struct gendisk" where we pack all the information | 310 | /* This allocates a "struct gendisk" where we pack all the information |
311 | * about the disk which the rest of Linux sees. We ask for one minor | 311 | * about the disk which the rest of Linux sees. The argument is the |
312 | * number; I do wonder if we should be asking for more. */ | 312 | * number of minor devices desired: we need one minor for the main |
313 | bd->disk = alloc_disk(1); | 313 | * disk, and one for each partition. Of course, we can't possibly know |
314 | * how many partitions are on the disk (add_disk does that). | ||
315 | */ | ||
316 | bd->disk = alloc_disk(16); | ||
314 | if (!bd->disk) { | 317 | if (!bd->disk) { |
315 | err = -ENOMEM; | 318 | err = -ENOMEM; |
316 | goto out_unregister_blkdev; | 319 | goto out_unregister_blkdev; |
diff --git a/drivers/block/sunvdc.c b/drivers/block/sunvdc.c index 4dff49256ac2..317a790c153b 100644 --- a/drivers/block/sunvdc.c +++ b/drivers/block/sunvdc.c | |||
@@ -417,7 +417,7 @@ static int __send_request(struct request *req) | |||
417 | desc->req_id = port->req_id; | 417 | desc->req_id = port->req_id; |
418 | desc->operation = op; | 418 | desc->operation = op; |
419 | if (port->vdisk_type == VD_DISK_TYPE_DISK) { | 419 | if (port->vdisk_type == VD_DISK_TYPE_DISK) { |
420 | desc->slice = 2; | 420 | desc->slice = 0xff; |
421 | } else { | 421 | } else { |
422 | desc->slice = 0; | 422 | desc->slice = 0; |
423 | } | 423 | } |
diff --git a/drivers/char/agp/amd-k7-agp.c b/drivers/char/agp/amd-k7-agp.c index df0ddf14b85c..f60bca70d1fb 100644 --- a/drivers/char/agp/amd-k7-agp.c +++ b/drivers/char/agp/amd-k7-agp.c | |||
@@ -223,6 +223,8 @@ static int amd_irongate_configure(void) | |||
223 | pci_read_config_dword(agp_bridge->dev, AMD_MMBASE, &temp); | 223 | pci_read_config_dword(agp_bridge->dev, AMD_MMBASE, &temp); |
224 | temp = (temp & PCI_BASE_ADDRESS_MEM_MASK); | 224 | temp = (temp & PCI_BASE_ADDRESS_MEM_MASK); |
225 | amd_irongate_private.registers = (volatile u8 __iomem *) ioremap(temp, 4096); | 225 | amd_irongate_private.registers = (volatile u8 __iomem *) ioremap(temp, 4096); |
226 | if (!amd_irongate_private.registers) | ||
227 | return -ENOMEM; | ||
226 | 228 | ||
227 | /* Write out the address of the gatt table */ | 229 | /* Write out the address of the gatt table */ |
228 | writel(agp_bridge->gatt_bus_addr, amd_irongate_private.registers+AMD_ATTBASE); | 230 | writel(agp_bridge->gatt_bus_addr, amd_irongate_private.registers+AMD_ATTBASE); |
diff --git a/drivers/char/agp/ati-agp.c b/drivers/char/agp/ati-agp.c index da7513d7b4e7..2d46b713c8f2 100644 --- a/drivers/char/agp/ati-agp.c +++ b/drivers/char/agp/ati-agp.c | |||
@@ -213,6 +213,9 @@ static int ati_configure(void) | |||
213 | temp = (temp & 0xfffff000); | 213 | temp = (temp & 0xfffff000); |
214 | ati_generic_private.registers = (volatile u8 __iomem *) ioremap(temp, 4096); | 214 | ati_generic_private.registers = (volatile u8 __iomem *) ioremap(temp, 4096); |
215 | 215 | ||
216 | if (!ati_generic_private.registers) | ||
217 | return -ENOMEM; | ||
218 | |||
216 | if (is_r200()) | 219 | if (is_r200()) |
217 | pci_write_config_dword(agp_bridge->dev, ATI_RS100_IG_AGPMODE, 0x20000); | 220 | pci_write_config_dword(agp_bridge->dev, ATI_RS100_IG_AGPMODE, 0x20000); |
218 | else | 221 | else |
diff --git a/drivers/char/agp/efficeon-agp.c b/drivers/char/agp/efficeon-agp.c index df8da7262853..d78cd09186aa 100644 --- a/drivers/char/agp/efficeon-agp.c +++ b/drivers/char/agp/efficeon-agp.c | |||
@@ -375,6 +375,7 @@ static int __devinit agp_efficeon_probe(struct pci_dev *pdev, | |||
375 | if (!r->start && r->end) { | 375 | if (!r->start && r->end) { |
376 | if (pci_assign_resource(pdev, 0)) { | 376 | if (pci_assign_resource(pdev, 0)) { |
377 | printk(KERN_ERR PFX "could not assign resource 0\n"); | 377 | printk(KERN_ERR PFX "could not assign resource 0\n"); |
378 | agp_put_bridge(bridge); | ||
378 | return -ENODEV; | 379 | return -ENODEV; |
379 | } | 380 | } |
380 | } | 381 | } |
@@ -386,6 +387,7 @@ static int __devinit agp_efficeon_probe(struct pci_dev *pdev, | |||
386 | */ | 387 | */ |
387 | if (pci_enable_device(pdev)) { | 388 | if (pci_enable_device(pdev)) { |
388 | printk(KERN_ERR PFX "Unable to Enable PCI device\n"); | 389 | printk(KERN_ERR PFX "Unable to Enable PCI device\n"); |
390 | agp_put_bridge(bridge); | ||
389 | return -ENODEV; | 391 | return -ENODEV; |
390 | } | 392 | } |
391 | 393 | ||
diff --git a/drivers/char/agp/hp-agp.c b/drivers/char/agp/hp-agp.c index bcdb149c8179..313a133a1172 100644 --- a/drivers/char/agp/hp-agp.c +++ b/drivers/char/agp/hp-agp.c | |||
@@ -221,6 +221,7 @@ hp_zx1_lba_init (u64 hpa) | |||
221 | if (cap != PCI_CAP_ID_AGP) { | 221 | if (cap != PCI_CAP_ID_AGP) { |
222 | printk(KERN_ERR PFX "Invalid capability ID 0x%02x at 0x%x\n", | 222 | printk(KERN_ERR PFX "Invalid capability ID 0x%02x at 0x%x\n", |
223 | cap, hp->lba_cap_offset); | 223 | cap, hp->lba_cap_offset); |
224 | iounmap(hp->lba_regs); | ||
224 | return -ENODEV; | 225 | return -ENODEV; |
225 | } | 226 | } |
226 | 227 | ||
diff --git a/drivers/char/agp/i460-agp.c b/drivers/char/agp/i460-agp.c index 53354bf83af7..75d2aca6353d 100644 --- a/drivers/char/agp/i460-agp.c +++ b/drivers/char/agp/i460-agp.c | |||
@@ -249,6 +249,10 @@ static int i460_create_gatt_table (struct agp_bridge_data *bridge) | |||
249 | num_entries = A_SIZE_8(temp)->num_entries; | 249 | num_entries = A_SIZE_8(temp)->num_entries; |
250 | 250 | ||
251 | i460.gatt = ioremap(INTEL_I460_ATTBASE, PAGE_SIZE << page_order); | 251 | i460.gatt = ioremap(INTEL_I460_ATTBASE, PAGE_SIZE << page_order); |
252 | if (!i460.gatt) { | ||
253 | printk(KERN_ERR PFX "ioremap failed\n"); | ||
254 | return -ENOMEM; | ||
255 | } | ||
252 | 256 | ||
253 | /* These are no good, the should be removed from the agp_bridge strucure... */ | 257 | /* These are no good, the should be removed from the agp_bridge strucure... */ |
254 | agp_bridge->gatt_table_real = NULL; | 258 | agp_bridge->gatt_table_real = NULL; |
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index 294cdbf4d44d..2c9ca2c64628 100644 --- a/drivers/char/agp/intel-agp.c +++ b/drivers/char/agp/intel-agp.c | |||
@@ -930,8 +930,10 @@ static int intel_i915_create_gatt_table(struct agp_bridge_data *bridge) | |||
930 | temp &= 0xfff80000; | 930 | temp &= 0xfff80000; |
931 | 931 | ||
932 | intel_private.registers = ioremap(temp,128 * 4096); | 932 | intel_private.registers = ioremap(temp,128 * 4096); |
933 | if (!intel_private.registers) | 933 | if (!intel_private.registers) { |
934 | iounmap(intel_private.gtt); | ||
934 | return -ENOMEM; | 935 | return -ENOMEM; |
936 | } | ||
935 | 937 | ||
936 | temp = readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000; | 938 | temp = readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000; |
937 | global_cache_flush(); /* FIXME: ? */ | 939 | global_cache_flush(); /* FIXME: ? */ |
@@ -985,13 +987,15 @@ static int intel_i965_create_gatt_table(struct agp_bridge_data *bridge) | |||
985 | temp &= 0xfff00000; | 987 | temp &= 0xfff00000; |
986 | intel_private.gtt = ioremap((temp + (512 * 1024)) , 512 * 1024); | 988 | intel_private.gtt = ioremap((temp + (512 * 1024)) , 512 * 1024); |
987 | 989 | ||
988 | if (!intel_private.gtt) | 990 | if (!intel_private.gtt) |
989 | return -ENOMEM; | 991 | return -ENOMEM; |
990 | 992 | ||
991 | 993 | ||
992 | intel_private.registers = ioremap(temp,128 * 4096); | 994 | intel_private.registers = ioremap(temp,128 * 4096); |
993 | if (!intel_private.registers) | 995 | if (!intel_private.registers) { |
994 | return -ENOMEM; | 996 | iounmap(intel_private.gtt); |
997 | return -ENOMEM; | ||
998 | } | ||
995 | 999 | ||
996 | temp = readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000; | 1000 | temp = readl(intel_private.registers+I810_PGETBL_CTL) & 0xfffff000; |
997 | global_cache_flush(); /* FIXME: ? */ | 1001 | global_cache_flush(); /* FIXME: ? */ |
diff --git a/drivers/char/agp/nvidia-agp.c b/drivers/char/agp/nvidia-agp.c index 6cd7373dcdf4..225ed2a53d45 100644 --- a/drivers/char/agp/nvidia-agp.c +++ b/drivers/char/agp/nvidia-agp.c | |||
@@ -157,6 +157,9 @@ static int nvidia_configure(void) | |||
157 | nvidia_private.aperture = | 157 | nvidia_private.aperture = |
158 | (volatile u32 __iomem *) ioremap(apbase, 33 * PAGE_SIZE); | 158 | (volatile u32 __iomem *) ioremap(apbase, 33 * PAGE_SIZE); |
159 | 159 | ||
160 | if (!nvidia_private.aperture) | ||
161 | return -ENOMEM; | ||
162 | |||
160 | return 0; | 163 | return 0; |
161 | } | 164 | } |
162 | 165 | ||
diff --git a/drivers/char/agp/via-agp.c b/drivers/char/agp/via-agp.c index 9aaf401a8975..0ecc54d327bc 100644 --- a/drivers/char/agp/via-agp.c +++ b/drivers/char/agp/via-agp.c | |||
@@ -399,6 +399,11 @@ static struct agp_device_ids via_agp_device_ids[] __devinitdata = | |||
399 | .device_id = PCI_DEVICE_ID_VIA_P4M890, | 399 | .device_id = PCI_DEVICE_ID_VIA_P4M890, |
400 | .chipset_name = "P4M890", | 400 | .chipset_name = "P4M890", |
401 | }, | 401 | }, |
402 | /* P4M900 */ | ||
403 | { | ||
404 | .device_id = PCI_DEVICE_ID_VIA_VT3364, | ||
405 | .chipset_name = "P4M900", | ||
406 | }, | ||
402 | { }, /* dummy final entry, always present */ | 407 | { }, /* dummy final entry, always present */ |
403 | }; | 408 | }; |
404 | 409 | ||
diff --git a/drivers/char/drm/drm_bufs.c b/drivers/char/drm/drm_bufs.c index 923174c54a1c..c115b39b8517 100644 --- a/drivers/char/drm/drm_bufs.c +++ b/drivers/char/drm/drm_bufs.c | |||
@@ -177,8 +177,14 @@ static int drm_addmap_core(struct drm_device * dev, unsigned int offset, | |||
177 | MTRR_TYPE_WRCOMB, 1); | 177 | MTRR_TYPE_WRCOMB, 1); |
178 | } | 178 | } |
179 | } | 179 | } |
180 | if (map->type == _DRM_REGISTERS) | 180 | if (map->type == _DRM_REGISTERS) { |
181 | map->handle = ioremap(map->offset, map->size); | 181 | map->handle = ioremap(map->offset, map->size); |
182 | if (!map->handle) { | ||
183 | drm_free(map, sizeof(*map), DRM_MEM_MAPS); | ||
184 | return -ENOMEM; | ||
185 | } | ||
186 | } | ||
187 | |||
182 | break; | 188 | break; |
183 | case _DRM_SHM: | 189 | case _DRM_SHM: |
184 | list = drm_find_matching_map(dev, map); | 190 | list = drm_find_matching_map(dev, map); |
@@ -479,11 +485,6 @@ int drm_rmmap_ioctl(struct inode *inode, struct file *filp, | |||
479 | return -EINVAL; | 485 | return -EINVAL; |
480 | } | 486 | } |
481 | 487 | ||
482 | if (!map) { | ||
483 | mutex_unlock(&dev->struct_mutex); | ||
484 | return -EINVAL; | ||
485 | } | ||
486 | |||
487 | /* Register and framebuffer maps are permanent */ | 488 | /* Register and framebuffer maps are permanent */ |
488 | if ((map->type == _DRM_REGISTERS) || (map->type == _DRM_FRAME_BUFFER)) { | 489 | if ((map->type == _DRM_REGISTERS) || (map->type == _DRM_FRAME_BUFFER)) { |
489 | mutex_unlock(&dev->struct_mutex); | 490 | mutex_unlock(&dev->struct_mutex); |
diff --git a/drivers/char/drm/via_dmablit.c b/drivers/char/drm/via_dmablit.c index 832de1d9ba7e..3dd1ed3d1bf5 100644 --- a/drivers/char/drm/via_dmablit.c +++ b/drivers/char/drm/via_dmablit.c | |||
@@ -560,7 +560,7 @@ via_init_dmablit(struct drm_device *dev) | |||
560 | blitq->head = 0; | 560 | blitq->head = 0; |
561 | blitq->cur = 0; | 561 | blitq->cur = 0; |
562 | blitq->serviced = 0; | 562 | blitq->serviced = 0; |
563 | blitq->num_free = VIA_NUM_BLIT_SLOTS; | 563 | blitq->num_free = VIA_NUM_BLIT_SLOTS - 1; |
564 | blitq->num_outstanding = 0; | 564 | blitq->num_outstanding = 0; |
565 | blitq->is_active = 0; | 565 | blitq->is_active = 0; |
566 | blitq->aborting = 0; | 566 | blitq->aborting = 0; |
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index d57083a9e4e0..f2e5cb1bedf3 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c | |||
@@ -2292,7 +2292,7 @@ static int __devinit ipmi_of_probe(struct of_device *dev, | |||
2292 | info->irq = irq_of_parse_and_map(dev->node, 0); | 2292 | info->irq = irq_of_parse_and_map(dev->node, 0); |
2293 | info->dev = &dev->dev; | 2293 | info->dev = &dev->dev; |
2294 | 2294 | ||
2295 | dev_dbg(&dev->dev, "addr 0x%lx regsize %ld spacing %ld irq %x\n", | 2295 | dev_dbg(&dev->dev, "addr 0x%lx regsize %d spacing %d irq %x\n", |
2296 | info->io.addr_data, info->io.regsize, info->io.regspacing, | 2296 | info->io.addr_data, info->io.regsize, info->io.regspacing, |
2297 | info->irq); | 2297 | info->irq); |
2298 | 2298 | ||
diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c index 2ce0af1bd588..d95f316afb5a 100644 --- a/drivers/char/keyboard.c +++ b/drivers/char/keyboard.c | |||
@@ -1022,10 +1022,6 @@ static const unsigned short x86_keycodes[256] = | |||
1022 | 308,310,313,314,315,317,318,319,320,357,322,323,324,325,276,330, | 1022 | 308,310,313,314,315,317,318,319,320,357,322,323,324,325,276,330, |
1023 | 332,340,365,342,343,344,345,346,356,270,341,368,369,370,371,372 }; | 1023 | 332,340,365,342,343,344,345,346,356,270,341,368,369,370,371,372 }; |
1024 | 1024 | ||
1025 | #ifdef CONFIG_MAC_EMUMOUSEBTN | ||
1026 | extern int mac_hid_mouse_emulate_buttons(int, int, int); | ||
1027 | #endif /* CONFIG_MAC_EMUMOUSEBTN */ | ||
1028 | |||
1029 | #ifdef CONFIG_SPARC | 1025 | #ifdef CONFIG_SPARC |
1030 | static int sparc_l1_a_state = 0; | 1026 | static int sparc_l1_a_state = 0; |
1031 | extern void sun_do_break(void); | 1027 | extern void sun_do_break(void); |
diff --git a/drivers/char/lcd.c b/drivers/char/lcd.c index 1f0962616ee5..4fe9206f84de 100644 --- a/drivers/char/lcd.c +++ b/drivers/char/lcd.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <asm/io.h> | 25 | #include <asm/io.h> |
26 | #include <asm/uaccess.h> | 26 | #include <asm/uaccess.h> |
27 | #include <asm/system.h> | 27 | #include <asm/system.h> |
28 | #include <linux/delay.h> | ||
29 | 28 | ||
30 | #include "lcd.h" | 29 | #include "lcd.h" |
31 | 30 | ||
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c index aeec67e27264..859858561ab6 100644 --- a/drivers/char/sonypi.c +++ b/drivers/char/sonypi.c | |||
@@ -875,7 +875,7 @@ found: | |||
875 | 875 | ||
876 | #ifdef CONFIG_ACPI | 876 | #ifdef CONFIG_ACPI |
877 | if (sonypi_acpi_device) | 877 | if (sonypi_acpi_device) |
878 | acpi_bus_generate_event(sonypi_acpi_device, 1, event); | 878 | acpi_bus_generate_proc_event(sonypi_acpi_device, 1, event); |
879 | #endif | 879 | #endif |
880 | 880 | ||
881 | kfifo_put(sonypi_device.fifo, (unsigned char *)&event, sizeof(event)); | 881 | kfifo_put(sonypi_device.fifo, (unsigned char *)&event, sizeof(event)); |
diff --git a/drivers/char/synclink_gt.c b/drivers/char/synclink_gt.c index bbb7f1292665..2f97d2f8f916 100644 --- a/drivers/char/synclink_gt.c +++ b/drivers/char/synclink_gt.c | |||
@@ -1565,6 +1565,9 @@ static int hdlcdev_open(struct net_device *dev) | |||
1565 | int rc; | 1565 | int rc; |
1566 | unsigned long flags; | 1566 | unsigned long flags; |
1567 | 1567 | ||
1568 | if (!try_module_get(THIS_MODULE)) | ||
1569 | return -EBUSY; | ||
1570 | |||
1568 | DBGINFO(("%s hdlcdev_open\n", dev->name)); | 1571 | DBGINFO(("%s hdlcdev_open\n", dev->name)); |
1569 | 1572 | ||
1570 | /* generic HDLC layer open processing */ | 1573 | /* generic HDLC layer open processing */ |
@@ -1634,6 +1637,7 @@ static int hdlcdev_close(struct net_device *dev) | |||
1634 | info->netcount=0; | 1637 | info->netcount=0; |
1635 | spin_unlock_irqrestore(&info->netlock, flags); | 1638 | spin_unlock_irqrestore(&info->netlock, flags); |
1636 | 1639 | ||
1640 | module_put(THIS_MODULE); | ||
1637 | return 0; | 1641 | return 0; |
1638 | } | 1642 | } |
1639 | 1643 | ||
diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c index 9bb542913b86..39564b76d4a3 100644 --- a/drivers/char/tpm/tpm.c +++ b/drivers/char/tpm/tpm.c | |||
@@ -7,7 +7,7 @@ | |||
7 | * Reiner Sailer <sailer@watson.ibm.com> | 7 | * Reiner Sailer <sailer@watson.ibm.com> |
8 | * Kylene Hall <kjhall@us.ibm.com> | 8 | * Kylene Hall <kjhall@us.ibm.com> |
9 | * | 9 | * |
10 | * Maintained by: <tpmdd_devel@lists.sourceforge.net> | 10 | * Maintained by: <tpmdd-devel@lists.sourceforge.net> |
11 | * | 11 | * |
12 | * Device driver for TCG/TCPA TPM (trusted platform module). | 12 | * Device driver for TCG/TCPA TPM (trusted platform module). |
13 | * Specifications at www.trustedcomputinggroup.org | 13 | * Specifications at www.trustedcomputinggroup.org |
diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h index b2e2b002a1bb..d15ccddc92eb 100644 --- a/drivers/char/tpm/tpm.h +++ b/drivers/char/tpm/tpm.h | |||
@@ -7,7 +7,7 @@ | |||
7 | * Reiner Sailer <sailer@watson.ibm.com> | 7 | * Reiner Sailer <sailer@watson.ibm.com> |
8 | * Kylene Hall <kjhall@us.ibm.com> | 8 | * Kylene Hall <kjhall@us.ibm.com> |
9 | * | 9 | * |
10 | * Maintained by: <tpmdd_devel@lists.sourceforge.net> | 10 | * Maintained by: <tpmdd-devel@lists.sourceforge.net> |
11 | * | 11 | * |
12 | * Device driver for TCG/TCPA TPM (trusted platform module). | 12 | * Device driver for TCG/TCPA TPM (trusted platform module). |
13 | * Specifications at www.trustedcomputinggroup.org | 13 | * Specifications at www.trustedcomputinggroup.org |
diff --git a/drivers/char/tpm/tpm_atmel.c b/drivers/char/tpm/tpm_atmel.c index 1ab0896070be..d0e7926eb486 100644 --- a/drivers/char/tpm/tpm_atmel.c +++ b/drivers/char/tpm/tpm_atmel.c | |||
@@ -7,7 +7,7 @@ | |||
7 | * Reiner Sailer <sailer@watson.ibm.com> | 7 | * Reiner Sailer <sailer@watson.ibm.com> |
8 | * Kylene Hall <kjhall@us.ibm.com> | 8 | * Kylene Hall <kjhall@us.ibm.com> |
9 | * | 9 | * |
10 | * Maintained by: <tpmdd_devel@lists.sourceforge.net> | 10 | * Maintained by: <tpmdd-devel@lists.sourceforge.net> |
11 | * | 11 | * |
12 | * Device driver for TCG/TCPA TPM (trusted platform module). | 12 | * Device driver for TCG/TCPA TPM (trusted platform module). |
13 | * Specifications at www.trustedcomputinggroup.org | 13 | * Specifications at www.trustedcomputinggroup.org |
diff --git a/drivers/char/tpm/tpm_atmel.h b/drivers/char/tpm/tpm_atmel.h index 9363bcf0a402..6c831f9466b7 100644 --- a/drivers/char/tpm/tpm_atmel.h +++ b/drivers/char/tpm/tpm_atmel.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * Authors: | 4 | * Authors: |
5 | * Kylene Hall <kjhall@us.ibm.com> | 5 | * Kylene Hall <kjhall@us.ibm.com> |
6 | * | 6 | * |
7 | * Maintained by: <tpmdd_devel@lists.sourceforge.net> | 7 | * Maintained by: <tpmdd-devel@lists.sourceforge.net> |
8 | * | 8 | * |
9 | * Device driver for TCG/TCPA TPM (trusted platform module). | 9 | * Device driver for TCG/TCPA TPM (trusted platform module). |
10 | * Specifications at www.trustedcomputinggroup.org | 10 | * Specifications at www.trustedcomputinggroup.org |
diff --git a/drivers/char/tpm/tpm_bios.c b/drivers/char/tpm/tpm_bios.c index 8677fc6a545e..60a2d2630e36 100644 --- a/drivers/char/tpm/tpm_bios.c +++ b/drivers/char/tpm/tpm_bios.c | |||
@@ -7,6 +7,8 @@ | |||
7 | * Reiner Sailer <sailer@watson.ibm.com> | 7 | * Reiner Sailer <sailer@watson.ibm.com> |
8 | * Kylene Hall <kjhall@us.ibm.com> | 8 | * Kylene Hall <kjhall@us.ibm.com> |
9 | * | 9 | * |
10 | * Maintained by: <tpmdd-devel@lists.sourceforge.net> | ||
11 | * | ||
10 | * Access to the eventlog extended by the TCG BIOS of PC platform | 12 | * Access to the eventlog extended by the TCG BIOS of PC platform |
11 | * | 13 | * |
12 | * This program is free software; you can redistribute it and/or | 14 | * This program is free software; you can redistribute it and/or |
diff --git a/drivers/char/tpm/tpm_nsc.c b/drivers/char/tpm/tpm_nsc.c index 608f73071bef..6313326bc41f 100644 --- a/drivers/char/tpm/tpm_nsc.c +++ b/drivers/char/tpm/tpm_nsc.c | |||
@@ -7,7 +7,7 @@ | |||
7 | * Reiner Sailer <sailer@watson.ibm.com> | 7 | * Reiner Sailer <sailer@watson.ibm.com> |
8 | * Kylene Hall <kjhall@us.ibm.com> | 8 | * Kylene Hall <kjhall@us.ibm.com> |
9 | * | 9 | * |
10 | * Maintained by: <tpmdd_devel@lists.sourceforge.net> | 10 | * Maintained by: <tpmdd-devel@lists.sourceforge.net> |
11 | * | 11 | * |
12 | * Device driver for TCG/TCPA TPM (trusted platform module). | 12 | * Device driver for TCG/TCPA TPM (trusted platform module). |
13 | * Specifications at www.trustedcomputinggroup.org | 13 | * Specifications at www.trustedcomputinggroup.org |
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c index 483f3f60013c..23fa18a6654c 100644 --- a/drivers/char/tpm/tpm_tis.c +++ b/drivers/char/tpm/tpm_tis.c | |||
@@ -5,6 +5,8 @@ | |||
5 | * Leendert van Doorn <leendert@watson.ibm.com> | 5 | * Leendert van Doorn <leendert@watson.ibm.com> |
6 | * Kylene Hall <kjhall@us.ibm.com> | 6 | * Kylene Hall <kjhall@us.ibm.com> |
7 | * | 7 | * |
8 | * Maintained by: <tpmdd-devel@lists.sourceforge.net> | ||
9 | * | ||
8 | * Device driver for TCG/TCPA TPM (trusted platform module). | 10 | * Device driver for TCG/TCPA TPM (trusted platform module). |
9 | * Specifications at www.trustedcomputinggroup.org | 11 | * Specifications at www.trustedcomputinggroup.org |
10 | * | 12 | * |
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index 51ea93cab6c4..9c867cf6de64 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c | |||
@@ -2063,8 +2063,7 @@ static int init_dev(struct tty_driver *driver, int idx, | |||
2063 | } | 2063 | } |
2064 | 2064 | ||
2065 | if (!*tp_loc) { | 2065 | if (!*tp_loc) { |
2066 | tp = (struct ktermios *) kmalloc(sizeof(struct ktermios), | 2066 | tp = kmalloc(sizeof(struct ktermios), GFP_KERNEL); |
2067 | GFP_KERNEL); | ||
2068 | if (!tp) | 2067 | if (!tp) |
2069 | goto free_mem_out; | 2068 | goto free_mem_out; |
2070 | *tp = driver->init_termios; | 2069 | *tp = driver->init_termios; |
@@ -2094,8 +2093,7 @@ static int init_dev(struct tty_driver *driver, int idx, | |||
2094 | } | 2093 | } |
2095 | 2094 | ||
2096 | if (!*o_tp_loc) { | 2095 | if (!*o_tp_loc) { |
2097 | o_tp = (struct ktermios *) | 2096 | o_tp = kmalloc(sizeof(struct ktermios), GFP_KERNEL); |
2098 | kmalloc(sizeof(struct ktermios), GFP_KERNEL); | ||
2099 | if (!o_tp) | 2097 | if (!o_tp) |
2100 | goto free_mem_out; | 2098 | goto free_mem_out; |
2101 | *o_tp = driver->other->init_termios; | 2099 | *o_tp = driver->other->init_termios; |
diff --git a/drivers/char/watchdog/alim1535_wdt.c b/drivers/char/watchdog/alim1535_wdt.c index e3f6a7d0c83d..c404fc69e7e6 100644 --- a/drivers/char/watchdog/alim1535_wdt.c +++ b/drivers/char/watchdog/alim1535_wdt.c | |||
@@ -312,6 +312,7 @@ static int ali_notify_sys(struct notifier_block *this, unsigned long code, void | |||
312 | */ | 312 | */ |
313 | 313 | ||
314 | static struct pci_device_id ali_pci_tbl[] = { | 314 | static struct pci_device_id ali_pci_tbl[] = { |
315 | { PCI_VENDOR_ID_AL, 0x1533, PCI_ANY_ID, PCI_ANY_ID,}, | ||
315 | { PCI_VENDOR_ID_AL, 0x1535, PCI_ANY_ID, PCI_ANY_ID,}, | 316 | { PCI_VENDOR_ID_AL, 0x1535, PCI_ANY_ID, PCI_ANY_ID,}, |
316 | { 0, }, | 317 | { 0, }, |
317 | }; | 318 | }; |
@@ -329,9 +330,11 @@ static int __init ali_find_watchdog(void) | |||
329 | struct pci_dev *pdev; | 330 | struct pci_dev *pdev; |
330 | u32 wdog; | 331 | u32 wdog; |
331 | 332 | ||
332 | /* Check for a 1535 series bridge */ | 333 | /* Check for a 1533/1535 series bridge */ |
333 | pdev = pci_get_device(PCI_VENDOR_ID_AL, 0x1535, NULL); | 334 | pdev = pci_get_device(PCI_VENDOR_ID_AL, 0x1535, NULL); |
334 | if(pdev == NULL) | 335 | if (pdev == NULL) |
336 | pdev = pci_get_device(PCI_VENDOR_ID_AL, 0x1533, NULL); | ||
337 | if (pdev == NULL) | ||
335 | return -ENODEV; | 338 | return -ENODEV; |
336 | pci_dev_put(pdev); | 339 | pci_dev_put(pdev); |
337 | 340 | ||
diff --git a/drivers/char/watchdog/eurotechwdt.c b/drivers/char/watchdog/eurotechwdt.c index b070324e27a6..b14e9d1f164d 100644 --- a/drivers/char/watchdog/eurotechwdt.c +++ b/drivers/char/watchdog/eurotechwdt.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Eurotech CPU-1220/1410 on board WDT driver | 2 | * Eurotech CPU-1220/1410/1420 on board WDT driver |
3 | * | 3 | * |
4 | * (c) Copyright 2001 Ascensit <support@ascensit.com> | 4 | * (c) Copyright 2001 Ascensit <support@ascensit.com> |
5 | * (c) Copyright 2001 Rodolfo Giometti <giometti@ascensit.com> | 5 | * (c) Copyright 2001 Rodolfo Giometti <giometti@ascensit.com> |
@@ -25,6 +25,9 @@ | |||
25 | 25 | ||
26 | /* Changelog: | 26 | /* Changelog: |
27 | * | 27 | * |
28 | * 2001 - Rodolfo Giometti | ||
29 | * Initial release | ||
30 | * | ||
28 | * 2002/04/25 - Rob Radez | 31 | * 2002/04/25 - Rob Radez |
29 | * clean up #includes | 32 | * clean up #includes |
30 | * clean up locking | 33 | * clean up locking |
@@ -33,13 +36,15 @@ | |||
33 | * add WDIOC_GETSTATUS and WDIOC_SETOPTIONS ioctls | 36 | * add WDIOC_GETSTATUS and WDIOC_SETOPTIONS ioctls |
34 | * add expect_close support | 37 | * add expect_close support |
35 | * | 38 | * |
36 | * 2001 - Rodolfo Giometti | ||
37 | * Initial release | ||
38 | * | ||
39 | * 2002.05.30 - Joel Becker <joel.becker@oracle.com> | 39 | * 2002.05.30 - Joel Becker <joel.becker@oracle.com> |
40 | * Added Matt Domsch's nowayout module option. | 40 | * Added Matt Domsch's nowayout module option. |
41 | */ | 41 | */ |
42 | 42 | ||
43 | /* | ||
44 | * The eurotech CPU-1220/1410/1420's watchdog is a part | ||
45 | * of the on-board SUPER I/O device SMSC FDC 37B782. | ||
46 | */ | ||
47 | |||
43 | #include <linux/interrupt.h> | 48 | #include <linux/interrupt.h> |
44 | #include <linux/module.h> | 49 | #include <linux/module.h> |
45 | #include <linux/moduleparam.h> | 50 | #include <linux/moduleparam.h> |
diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index 84ebfcc1ffb4..c0fc4aeb8596 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig | |||
@@ -2,6 +2,11 @@ | |||
2 | menuconfig CRYPTO_HW | 2 | menuconfig CRYPTO_HW |
3 | bool "Hardware crypto devices" | 3 | bool "Hardware crypto devices" |
4 | default y | 4 | default y |
5 | ---help--- | ||
6 | Say Y here to get to see options for hardware crypto devices and | ||
7 | processors. This option alone does not add any kernel code. | ||
8 | |||
9 | If you say N, all options in this submenu will be skipped and disabled. | ||
5 | 10 | ||
6 | if CRYPTO_HW | 11 | if CRYPTO_HW |
7 | 12 | ||
diff --git a/drivers/dma/ioatdma.c b/drivers/dma/ioatdma.c index 5fbe56b5cea0..41b18c5a3141 100644 --- a/drivers/dma/ioatdma.c +++ b/drivers/dma/ioatdma.c | |||
@@ -191,17 +191,12 @@ static int ioat_dma_alloc_chan_resources(struct dma_chan *chan) | |||
191 | int i; | 191 | int i; |
192 | LIST_HEAD(tmp_list); | 192 | LIST_HEAD(tmp_list); |
193 | 193 | ||
194 | /* | 194 | /* have we already been set up? */ |
195 | * In-use bit automatically set by reading chanctrl | 195 | if (!list_empty(&ioat_chan->free_desc)) |
196 | * If 0, we got it, if 1, someone else did | 196 | return INITIAL_IOAT_DESC_COUNT; |
197 | */ | ||
198 | chanctrl = readw(ioat_chan->reg_base + IOAT_CHANCTRL_OFFSET); | ||
199 | if (chanctrl & IOAT_CHANCTRL_CHANNEL_IN_USE) | ||
200 | return -EBUSY; | ||
201 | 197 | ||
202 | /* Setup register to interrupt and write completion status on error */ | 198 | /* Setup register to interrupt and write completion status on error */ |
203 | chanctrl = IOAT_CHANCTRL_CHANNEL_IN_USE | | 199 | chanctrl = IOAT_CHANCTRL_ERR_INT_EN | |
204 | IOAT_CHANCTRL_ERR_INT_EN | | ||
205 | IOAT_CHANCTRL_ANY_ERR_ABORT_EN | | 200 | IOAT_CHANCTRL_ANY_ERR_ABORT_EN | |
206 | IOAT_CHANCTRL_ERR_COMPLETION_EN; | 201 | IOAT_CHANCTRL_ERR_COMPLETION_EN; |
207 | writew(chanctrl, ioat_chan->reg_base + IOAT_CHANCTRL_OFFSET); | 202 | writew(chanctrl, ioat_chan->reg_base + IOAT_CHANCTRL_OFFSET); |
@@ -282,11 +277,6 @@ static void ioat_dma_free_chan_resources(struct dma_chan *chan) | |||
282 | in_use_descs - 1); | 277 | in_use_descs - 1); |
283 | 278 | ||
284 | ioat_chan->last_completion = ioat_chan->completion_addr = 0; | 279 | ioat_chan->last_completion = ioat_chan->completion_addr = 0; |
285 | |||
286 | /* Tell hw the chan is free */ | ||
287 | chanctrl = readw(ioat_chan->reg_base + IOAT_CHANCTRL_OFFSET); | ||
288 | chanctrl &= ~IOAT_CHANCTRL_CHANNEL_IN_USE; | ||
289 | writew(chanctrl, ioat_chan->reg_base + IOAT_CHANCTRL_OFFSET); | ||
290 | } | 280 | } |
291 | 281 | ||
292 | static struct dma_async_tx_descriptor * | 282 | static struct dma_async_tx_descriptor * |
@@ -347,8 +337,7 @@ ioat_dma_prep_memcpy(struct dma_chan *chan, size_t len, int int_en) | |||
347 | new->async_tx.ack = 0; /* client is in control of this ack */ | 337 | new->async_tx.ack = 0; /* client is in control of this ack */ |
348 | new->async_tx.cookie = -EBUSY; | 338 | new->async_tx.cookie = -EBUSY; |
349 | 339 | ||
350 | pci_unmap_len_set(new, src_len, orig_len); | 340 | pci_unmap_len_set(new, len, orig_len); |
351 | pci_unmap_len_set(new, dst_len, orig_len); | ||
352 | spin_unlock_bh(&ioat_chan->desc_lock); | 341 | spin_unlock_bh(&ioat_chan->desc_lock); |
353 | 342 | ||
354 | return new ? &new->async_tx : NULL; | 343 | return new ? &new->async_tx : NULL; |
@@ -423,11 +412,11 @@ static void ioat_dma_memcpy_cleanup(struct ioat_dma_chan *chan) | |||
423 | */ | 412 | */ |
424 | pci_unmap_page(chan->device->pdev, | 413 | pci_unmap_page(chan->device->pdev, |
425 | pci_unmap_addr(desc, dst), | 414 | pci_unmap_addr(desc, dst), |
426 | pci_unmap_len(desc, dst_len), | 415 | pci_unmap_len(desc, len), |
427 | PCI_DMA_FROMDEVICE); | 416 | PCI_DMA_FROMDEVICE); |
428 | pci_unmap_page(chan->device->pdev, | 417 | pci_unmap_page(chan->device->pdev, |
429 | pci_unmap_addr(desc, src), | 418 | pci_unmap_addr(desc, src), |
430 | pci_unmap_len(desc, src_len), | 419 | pci_unmap_len(desc, len), |
431 | PCI_DMA_TODEVICE); | 420 | PCI_DMA_TODEVICE); |
432 | } | 421 | } |
433 | 422 | ||
diff --git a/drivers/dma/ioatdma.h b/drivers/dma/ioatdma.h index d3726478031a..bf4dad70e0f5 100644 --- a/drivers/dma/ioatdma.h +++ b/drivers/dma/ioatdma.h | |||
@@ -111,10 +111,9 @@ struct ioat_desc_sw { | |||
111 | struct ioat_dma_descriptor *hw; | 111 | struct ioat_dma_descriptor *hw; |
112 | struct list_head node; | 112 | struct list_head node; |
113 | int tx_cnt; | 113 | int tx_cnt; |
114 | DECLARE_PCI_UNMAP_LEN(len) | ||
114 | DECLARE_PCI_UNMAP_ADDR(src) | 115 | DECLARE_PCI_UNMAP_ADDR(src) |
115 | DECLARE_PCI_UNMAP_LEN(src_len) | ||
116 | DECLARE_PCI_UNMAP_ADDR(dst) | 116 | DECLARE_PCI_UNMAP_ADDR(dst) |
117 | DECLARE_PCI_UNMAP_LEN(dst_len) | ||
118 | struct dma_async_tx_descriptor async_tx; | 117 | struct dma_async_tx_descriptor async_tx; |
119 | }; | 118 | }; |
120 | 119 | ||
diff --git a/drivers/firewire/fw-card.c b/drivers/firewire/fw-card.c index 0aeab3218bb6..3e9719948a8e 100644 --- a/drivers/firewire/fw-card.c +++ b/drivers/firewire/fw-card.c | |||
@@ -510,9 +510,11 @@ fw_core_remove_card(struct fw_card *card) | |||
510 | /* Set up the dummy driver. */ | 510 | /* Set up the dummy driver. */ |
511 | card->driver = &dummy_driver; | 511 | card->driver = &dummy_driver; |
512 | 512 | ||
513 | fw_flush_transactions(card); | ||
514 | |||
515 | fw_destroy_nodes(card); | 513 | fw_destroy_nodes(card); |
514 | flush_scheduled_work(); | ||
515 | |||
516 | fw_flush_transactions(card); | ||
517 | del_timer_sync(&card->flush_timer); | ||
516 | 518 | ||
517 | fw_card_put(card); | 519 | fw_card_put(card); |
518 | } | 520 | } |
diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c index ba816ef6def1..238730f75db1 100644 --- a/drivers/firewire/fw-sbp2.c +++ b/drivers/firewire/fw-sbp2.c | |||
@@ -159,6 +159,7 @@ struct sbp2_pointer { | |||
159 | 159 | ||
160 | struct sbp2_orb { | 160 | struct sbp2_orb { |
161 | struct fw_transaction t; | 161 | struct fw_transaction t; |
162 | struct kref kref; | ||
162 | dma_addr_t request_bus; | 163 | dma_addr_t request_bus; |
163 | int rcode; | 164 | int rcode; |
164 | struct sbp2_pointer pointer; | 165 | struct sbp2_pointer pointer; |
@@ -280,6 +281,14 @@ static const struct { | |||
280 | }; | 281 | }; |
281 | 282 | ||
282 | static void | 283 | static void |
284 | free_orb(struct kref *kref) | ||
285 | { | ||
286 | struct sbp2_orb *orb = container_of(kref, struct sbp2_orb, kref); | ||
287 | |||
288 | kfree(orb); | ||
289 | } | ||
290 | |||
291 | static void | ||
283 | sbp2_status_write(struct fw_card *card, struct fw_request *request, | 292 | sbp2_status_write(struct fw_card *card, struct fw_request *request, |
284 | int tcode, int destination, int source, | 293 | int tcode, int destination, int source, |
285 | int generation, int speed, | 294 | int generation, int speed, |
@@ -312,8 +321,8 @@ sbp2_status_write(struct fw_card *card, struct fw_request *request, | |||
312 | spin_lock_irqsave(&card->lock, flags); | 321 | spin_lock_irqsave(&card->lock, flags); |
313 | list_for_each_entry(orb, &sd->orb_list, link) { | 322 | list_for_each_entry(orb, &sd->orb_list, link) { |
314 | if (STATUS_GET_ORB_HIGH(status) == 0 && | 323 | if (STATUS_GET_ORB_HIGH(status) == 0 && |
315 | STATUS_GET_ORB_LOW(status) == orb->request_bus && | 324 | STATUS_GET_ORB_LOW(status) == orb->request_bus) { |
316 | orb->rcode == RCODE_COMPLETE) { | 325 | orb->rcode = RCODE_COMPLETE; |
317 | list_del(&orb->link); | 326 | list_del(&orb->link); |
318 | break; | 327 | break; |
319 | } | 328 | } |
@@ -325,6 +334,8 @@ sbp2_status_write(struct fw_card *card, struct fw_request *request, | |||
325 | else | 334 | else |
326 | fw_error("status write for unknown orb\n"); | 335 | fw_error("status write for unknown orb\n"); |
327 | 336 | ||
337 | kref_put(&orb->kref, free_orb); | ||
338 | |||
328 | fw_send_response(card, request, RCODE_COMPLETE); | 339 | fw_send_response(card, request, RCODE_COMPLETE); |
329 | } | 340 | } |
330 | 341 | ||
@@ -335,13 +346,27 @@ complete_transaction(struct fw_card *card, int rcode, | |||
335 | struct sbp2_orb *orb = data; | 346 | struct sbp2_orb *orb = data; |
336 | unsigned long flags; | 347 | unsigned long flags; |
337 | 348 | ||
338 | orb->rcode = rcode; | 349 | /* |
339 | if (rcode != RCODE_COMPLETE) { | 350 | * This is a little tricky. We can get the status write for |
340 | spin_lock_irqsave(&card->lock, flags); | 351 | * the orb before we get this callback. The status write |
352 | * handler above will assume the orb pointer transaction was | ||
353 | * successful and set the rcode to RCODE_COMPLETE for the orb. | ||
354 | * So this callback only sets the rcode if it hasn't already | ||
355 | * been set and only does the cleanup if the transaction | ||
356 | * failed and we didn't already get a status write. | ||
357 | */ | ||
358 | spin_lock_irqsave(&card->lock, flags); | ||
359 | |||
360 | if (orb->rcode == -1) | ||
361 | orb->rcode = rcode; | ||
362 | if (orb->rcode != RCODE_COMPLETE) { | ||
341 | list_del(&orb->link); | 363 | list_del(&orb->link); |
342 | spin_unlock_irqrestore(&card->lock, flags); | ||
343 | orb->callback(orb, NULL); | 364 | orb->callback(orb, NULL); |
344 | } | 365 | } |
366 | |||
367 | spin_unlock_irqrestore(&card->lock, flags); | ||
368 | |||
369 | kref_put(&orb->kref, free_orb); | ||
345 | } | 370 | } |
346 | 371 | ||
347 | static void | 372 | static void |
@@ -360,6 +385,10 @@ sbp2_send_orb(struct sbp2_orb *orb, struct fw_unit *unit, | |||
360 | list_add_tail(&orb->link, &sd->orb_list); | 385 | list_add_tail(&orb->link, &sd->orb_list); |
361 | spin_unlock_irqrestore(&device->card->lock, flags); | 386 | spin_unlock_irqrestore(&device->card->lock, flags); |
362 | 387 | ||
388 | /* Take a ref for the orb list and for the transaction callback. */ | ||
389 | kref_get(&orb->kref); | ||
390 | kref_get(&orb->kref); | ||
391 | |||
363 | fw_send_request(device->card, &orb->t, TCODE_WRITE_BLOCK_REQUEST, | 392 | fw_send_request(device->card, &orb->t, TCODE_WRITE_BLOCK_REQUEST, |
364 | node_id, generation, device->max_speed, offset, | 393 | node_id, generation, device->max_speed, offset, |
365 | &orb->pointer, sizeof(orb->pointer), | 394 | &orb->pointer, sizeof(orb->pointer), |
@@ -416,6 +445,7 @@ sbp2_send_management_orb(struct fw_unit *unit, int node_id, int generation, | |||
416 | if (orb == NULL) | 445 | if (orb == NULL) |
417 | return -ENOMEM; | 446 | return -ENOMEM; |
418 | 447 | ||
448 | kref_init(&orb->base.kref); | ||
419 | orb->response_bus = | 449 | orb->response_bus = |
420 | dma_map_single(device->card->device, &orb->response, | 450 | dma_map_single(device->card->device, &orb->response, |
421 | sizeof(orb->response), DMA_FROM_DEVICE); | 451 | sizeof(orb->response), DMA_FROM_DEVICE); |
@@ -490,7 +520,7 @@ sbp2_send_management_orb(struct fw_unit *unit, int node_id, int generation, | |||
490 | if (response) | 520 | if (response) |
491 | fw_memcpy_from_be32(response, | 521 | fw_memcpy_from_be32(response, |
492 | orb->response, sizeof(orb->response)); | 522 | orb->response, sizeof(orb->response)); |
493 | kfree(orb); | 523 | kref_put(&orb->base.kref, free_orb); |
494 | 524 | ||
495 | return retval; | 525 | return retval; |
496 | } | 526 | } |
@@ -886,7 +916,6 @@ complete_command_orb(struct sbp2_orb *base_orb, struct sbp2_status *status) | |||
886 | 916 | ||
887 | orb->cmd->result = result; | 917 | orb->cmd->result = result; |
888 | orb->done(orb->cmd); | 918 | orb->done(orb->cmd); |
889 | kfree(orb); | ||
890 | } | 919 | } |
891 | 920 | ||
892 | static int sbp2_command_orb_map_scatterlist(struct sbp2_command_orb *orb) | 921 | static int sbp2_command_orb_map_scatterlist(struct sbp2_command_orb *orb) |
@@ -1005,6 +1034,7 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done) | |||
1005 | 1034 | ||
1006 | /* Initialize rcode to something not RCODE_COMPLETE. */ | 1035 | /* Initialize rcode to something not RCODE_COMPLETE. */ |
1007 | orb->base.rcode = -1; | 1036 | orb->base.rcode = -1; |
1037 | kref_init(&orb->base.kref); | ||
1008 | 1038 | ||
1009 | orb->unit = unit; | 1039 | orb->unit = unit; |
1010 | orb->done = done; | 1040 | orb->done = done; |
@@ -1051,10 +1081,11 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done) | |||
1051 | sbp2_send_orb(&orb->base, unit, sd->node_id, sd->generation, | 1081 | sbp2_send_orb(&orb->base, unit, sd->node_id, sd->generation, |
1052 | sd->command_block_agent_address + SBP2_ORB_POINTER); | 1082 | sd->command_block_agent_address + SBP2_ORB_POINTER); |
1053 | 1083 | ||
1084 | kref_put(&orb->base.kref, free_orb); | ||
1054 | return 0; | 1085 | return 0; |
1055 | 1086 | ||
1056 | fail_mapping: | 1087 | fail_mapping: |
1057 | kfree(orb); | 1088 | kref_put(&orb->base.kref, free_orb); |
1058 | fail_alloc: | 1089 | fail_alloc: |
1059 | return SCSI_MLQUEUE_HOST_BUSY; | 1090 | return SCSI_MLQUEUE_HOST_BUSY; |
1060 | } | 1091 | } |
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig index 3b63b0b78122..19667fcc722a 100644 --- a/drivers/hid/Kconfig +++ b/drivers/hid/Kconfig | |||
@@ -5,6 +5,11 @@ menuconfig HID_SUPPORT | |||
5 | bool "HID Devices" | 5 | bool "HID Devices" |
6 | depends on INPUT | 6 | depends on INPUT |
7 | default y | 7 | default y |
8 | ---help--- | ||
9 | Say Y here to get to see options for various computer-human interface | ||
10 | device drivers. This option alone does not add any kernel code. | ||
11 | |||
12 | If you say N, all options in this submenu will be skipped and disabled. | ||
8 | 13 | ||
9 | if HID_SUPPORT | 14 | if HID_SUPPORT |
10 | 15 | ||
diff --git a/drivers/hwmon/smsc47m1.c b/drivers/hwmon/smsc47m1.c index 338ee4f54614..d3181967f167 100644 --- a/drivers/hwmon/smsc47m1.c +++ b/drivers/hwmon/smsc47m1.c | |||
@@ -585,6 +585,8 @@ static int __devinit smsc47m1_probe(struct platform_device *pdev) | |||
585 | 585 | ||
586 | if ((err = device_create_file(dev, &dev_attr_alarms))) | 586 | if ((err = device_create_file(dev, &dev_attr_alarms))) |
587 | goto error_remove_files; | 587 | goto error_remove_files; |
588 | if ((err = device_create_file(dev, &dev_attr_name))) | ||
589 | goto error_remove_files; | ||
588 | 590 | ||
589 | data->class_dev = hwmon_device_register(dev); | 591 | data->class_dev = hwmon_device_register(dev); |
590 | if (IS_ERR(data->class_dev)) { | 592 | if (IS_ERR(data->class_dev)) { |
diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c index c51ae2e17758..d9a9ec7dd84a 100644 --- a/drivers/hwmon/w83627ehf.c +++ b/drivers/hwmon/w83627ehf.c | |||
@@ -309,18 +309,16 @@ static inline int is_word_sized(u16 reg) | |||
309 | || (reg & 0x00ff) == 0x55)); | 309 | || (reg & 0x00ff) == 0x55)); |
310 | } | 310 | } |
311 | 311 | ||
312 | /* We assume that the default bank is 0, thus the following two functions do | 312 | /* Registers 0x50-0x5f are banked */ |
313 | nothing for registers which live in bank 0. For others, they respectively | ||
314 | set the bank register to the correct value (before the register is | ||
315 | accessed), and back to 0 (afterwards). */ | ||
316 | static inline void w83627ehf_set_bank(struct w83627ehf_data *data, u16 reg) | 313 | static inline void w83627ehf_set_bank(struct w83627ehf_data *data, u16 reg) |
317 | { | 314 | { |
318 | if (reg & 0xff00) { | 315 | if ((reg & 0x00f0) == 0x50) { |
319 | outb_p(W83627EHF_REG_BANK, data->addr + ADDR_REG_OFFSET); | 316 | outb_p(W83627EHF_REG_BANK, data->addr + ADDR_REG_OFFSET); |
320 | outb_p(reg >> 8, data->addr + DATA_REG_OFFSET); | 317 | outb_p(reg >> 8, data->addr + DATA_REG_OFFSET); |
321 | } | 318 | } |
322 | } | 319 | } |
323 | 320 | ||
321 | /* Not strictly necessary, but play it safe for now */ | ||
324 | static inline void w83627ehf_reset_bank(struct w83627ehf_data *data, u16 reg) | 322 | static inline void w83627ehf_reset_bank(struct w83627ehf_data *data, u16 reg) |
325 | { | 323 | { |
326 | if (reg & 0xff00) { | 324 | if (reg & 0xff00) { |
@@ -421,6 +419,31 @@ static void w83627ehf_write_fan_div(struct w83627ehf_data *data, int nr) | |||
421 | } | 419 | } |
422 | } | 420 | } |
423 | 421 | ||
422 | static void w83627ehf_update_fan_div(struct w83627ehf_data *data) | ||
423 | { | ||
424 | int i; | ||
425 | |||
426 | i = w83627ehf_read_value(data, W83627EHF_REG_FANDIV1); | ||
427 | data->fan_div[0] = (i >> 4) & 0x03; | ||
428 | data->fan_div[1] = (i >> 6) & 0x03; | ||
429 | i = w83627ehf_read_value(data, W83627EHF_REG_FANDIV2); | ||
430 | data->fan_div[2] = (i >> 6) & 0x03; | ||
431 | i = w83627ehf_read_value(data, W83627EHF_REG_VBAT); | ||
432 | data->fan_div[0] |= (i >> 3) & 0x04; | ||
433 | data->fan_div[1] |= (i >> 4) & 0x04; | ||
434 | data->fan_div[2] |= (i >> 5) & 0x04; | ||
435 | if (data->has_fan & ((1 << 3) | (1 << 4))) { | ||
436 | i = w83627ehf_read_value(data, W83627EHF_REG_DIODE); | ||
437 | data->fan_div[3] = i & 0x03; | ||
438 | data->fan_div[4] = ((i >> 2) & 0x03) | ||
439 | | ((i >> 5) & 0x04); | ||
440 | } | ||
441 | if (data->has_fan & (1 << 3)) { | ||
442 | i = w83627ehf_read_value(data, W83627EHF_REG_SMI_OVT); | ||
443 | data->fan_div[3] |= (i >> 5) & 0x04; | ||
444 | } | ||
445 | } | ||
446 | |||
424 | static struct w83627ehf_data *w83627ehf_update_device(struct device *dev) | 447 | static struct w83627ehf_data *w83627ehf_update_device(struct device *dev) |
425 | { | 448 | { |
426 | struct w83627ehf_data *data = dev_get_drvdata(dev); | 449 | struct w83627ehf_data *data = dev_get_drvdata(dev); |
@@ -432,25 +455,7 @@ static struct w83627ehf_data *w83627ehf_update_device(struct device *dev) | |||
432 | if (time_after(jiffies, data->last_updated + HZ + HZ/2) | 455 | if (time_after(jiffies, data->last_updated + HZ + HZ/2) |
433 | || !data->valid) { | 456 | || !data->valid) { |
434 | /* Fan clock dividers */ | 457 | /* Fan clock dividers */ |
435 | i = w83627ehf_read_value(data, W83627EHF_REG_FANDIV1); | 458 | w83627ehf_update_fan_div(data); |
436 | data->fan_div[0] = (i >> 4) & 0x03; | ||
437 | data->fan_div[1] = (i >> 6) & 0x03; | ||
438 | i = w83627ehf_read_value(data, W83627EHF_REG_FANDIV2); | ||
439 | data->fan_div[2] = (i >> 6) & 0x03; | ||
440 | i = w83627ehf_read_value(data, W83627EHF_REG_VBAT); | ||
441 | data->fan_div[0] |= (i >> 3) & 0x04; | ||
442 | data->fan_div[1] |= (i >> 4) & 0x04; | ||
443 | data->fan_div[2] |= (i >> 5) & 0x04; | ||
444 | if (data->has_fan & ((1 << 3) | (1 << 4))) { | ||
445 | i = w83627ehf_read_value(data, W83627EHF_REG_DIODE); | ||
446 | data->fan_div[3] = i & 0x03; | ||
447 | data->fan_div[4] = ((i >> 2) & 0x03) | ||
448 | | ((i >> 5) & 0x04); | ||
449 | } | ||
450 | if (data->has_fan & (1 << 3)) { | ||
451 | i = w83627ehf_read_value(data, W83627EHF_REG_SMI_OVT); | ||
452 | data->fan_div[3] |= (i >> 5) & 0x04; | ||
453 | } | ||
454 | 459 | ||
455 | /* Measured voltages and limits */ | 460 | /* Measured voltages and limits */ |
456 | for (i = 0; i < data->in_num; i++) { | 461 | for (i = 0; i < data->in_num; i++) { |
@@ -1312,6 +1317,9 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev) | |||
1312 | if (!(i & (1 << 1)) && (!fan5pin)) | 1317 | if (!(i & (1 << 1)) && (!fan5pin)) |
1313 | data->has_fan |= (1 << 4); | 1318 | data->has_fan |= (1 << 4); |
1314 | 1319 | ||
1320 | /* Read fan clock dividers immediately */ | ||
1321 | w83627ehf_update_fan_div(data); | ||
1322 | |||
1315 | /* Register sysfs hooks */ | 1323 | /* Register sysfs hooks */ |
1316 | for (i = 0; i < ARRAY_SIZE(sda_sf3_arrays); i++) | 1324 | for (i = 0; i < ARRAY_SIZE(sda_sf3_arrays); i++) |
1317 | if ((err = device_create_file(dev, | 1325 | if ((err = device_create_file(dev, |
diff --git a/drivers/hwmon/w83781d.c b/drivers/hwmon/w83781d.c index f85b48fea1c4..c95909cc1d21 100644 --- a/drivers/hwmon/w83781d.c +++ b/drivers/hwmon/w83781d.c | |||
@@ -740,9 +740,9 @@ store_sensor(struct device *dev, struct device_attribute *da, | |||
740 | static SENSOR_DEVICE_ATTR(temp1_type, S_IRUGO | S_IWUSR, | 740 | static SENSOR_DEVICE_ATTR(temp1_type, S_IRUGO | S_IWUSR, |
741 | show_sensor, store_sensor, 0); | 741 | show_sensor, store_sensor, 0); |
742 | static SENSOR_DEVICE_ATTR(temp2_type, S_IRUGO | S_IWUSR, | 742 | static SENSOR_DEVICE_ATTR(temp2_type, S_IRUGO | S_IWUSR, |
743 | show_sensor, store_sensor, 0); | 743 | show_sensor, store_sensor, 1); |
744 | static SENSOR_DEVICE_ATTR(temp3_type, S_IRUGO | S_IWUSR, | 744 | static SENSOR_DEVICE_ATTR(temp3_type, S_IRUGO | S_IWUSR, |
745 | show_sensor, store_sensor, 0); | 745 | show_sensor, store_sensor, 2); |
746 | 746 | ||
747 | /* I2C devices get this name attribute automatically, but for ISA devices | 747 | /* I2C devices get this name attribute automatically, but for ISA devices |
748 | we must create it by ourselves. */ | 748 | we must create it by ourselves. */ |
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index e049f65bc3a2..7adb61bad6ad 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
@@ -304,9 +304,9 @@ comment "IDE chipset support/bugfixes" | |||
304 | 304 | ||
305 | config IDE_GENERIC | 305 | config IDE_GENERIC |
306 | tristate "generic/default IDE chipset support" | 306 | tristate "generic/default IDE chipset support" |
307 | default y | 307 | default H8300 |
308 | help | 308 | help |
309 | If unsure, say Y. | 309 | If unsure, say N. |
310 | 310 | ||
311 | config BLK_DEV_CMD640 | 311 | config BLK_DEV_CMD640 |
312 | bool "CMD640 chipset bugfix/support" | 312 | bool "CMD640 chipset bugfix/support" |
@@ -345,6 +345,7 @@ config BLK_DEV_CMD640_ENHANCED | |||
345 | config BLK_DEV_IDEPNP | 345 | config BLK_DEV_IDEPNP |
346 | bool "PNP EIDE support" | 346 | bool "PNP EIDE support" |
347 | depends on PNP | 347 | depends on PNP |
348 | select IDE_GENERIC | ||
348 | help | 349 | help |
349 | If you have a PnP (Plug and Play) compatible EIDE card and | 350 | If you have a PnP (Plug and Play) compatible EIDE card and |
350 | would like the kernel to automatically detect and activate | 351 | would like the kernel to automatically detect and activate |
@@ -834,6 +835,7 @@ config BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ | |||
834 | 835 | ||
835 | config IDE_ARM | 836 | config IDE_ARM |
836 | def_bool ARM && (ARCH_CLPS7500 || ARCH_RPC || ARCH_SHARK) | 837 | def_bool ARM && (ARCH_CLPS7500 || ARCH_RPC || ARCH_SHARK) |
838 | select IDE_GENERIC | ||
837 | 839 | ||
838 | config BLK_DEV_IDE_ICSIDE | 840 | config BLK_DEV_IDE_ICSIDE |
839 | tristate "ICS IDE interface support" | 841 | tristate "ICS IDE interface support" |
@@ -867,6 +869,7 @@ config BLK_DEV_IDE_BAST | |||
867 | config BLK_DEV_GAYLE | 869 | config BLK_DEV_GAYLE |
868 | bool "Amiga Gayle IDE interface support" | 870 | bool "Amiga Gayle IDE interface support" |
869 | depends on AMIGA | 871 | depends on AMIGA |
872 | select IDE_GENERIC | ||
870 | help | 873 | help |
871 | This is the IDE driver for the Amiga Gayle IDE interface. It supports | 874 | This is the IDE driver for the Amiga Gayle IDE interface. It supports |
872 | both the `A1200 style' and `A4000 style' of the Gayle IDE interface, | 875 | both the `A1200 style' and `A4000 style' of the Gayle IDE interface, |
@@ -898,6 +901,7 @@ config BLK_DEV_IDEDOUBLER | |||
898 | config BLK_DEV_BUDDHA | 901 | config BLK_DEV_BUDDHA |
899 | bool "Buddha/Catweasel/X-Surf IDE interface support (EXPERIMENTAL)" | 902 | bool "Buddha/Catweasel/X-Surf IDE interface support (EXPERIMENTAL)" |
900 | depends on ZORRO && EXPERIMENTAL | 903 | depends on ZORRO && EXPERIMENTAL |
904 | select IDE_GENERIC | ||
901 | help | 905 | help |
902 | This is the IDE driver for the IDE interfaces on the Buddha, | 906 | This is the IDE driver for the IDE interfaces on the Buddha, |
903 | Catweasel and X-Surf expansion boards. It supports up to two interfaces | 907 | Catweasel and X-Surf expansion boards. It supports up to two interfaces |
@@ -910,6 +914,7 @@ config BLK_DEV_BUDDHA | |||
910 | config BLK_DEV_FALCON_IDE | 914 | config BLK_DEV_FALCON_IDE |
911 | bool "Falcon IDE interface support" | 915 | bool "Falcon IDE interface support" |
912 | depends on ATARI | 916 | depends on ATARI |
917 | select IDE_GENERIC | ||
913 | help | 918 | help |
914 | This is the IDE driver for the builtin IDE interface on the Atari | 919 | This is the IDE driver for the builtin IDE interface on the Atari |
915 | Falcon. Say Y if you have a Falcon and want to use IDE devices (hard | 920 | Falcon. Say Y if you have a Falcon and want to use IDE devices (hard |
@@ -919,6 +924,7 @@ config BLK_DEV_FALCON_IDE | |||
919 | config BLK_DEV_MAC_IDE | 924 | config BLK_DEV_MAC_IDE |
920 | bool "Macintosh Quadra/Powerbook IDE interface support" | 925 | bool "Macintosh Quadra/Powerbook IDE interface support" |
921 | depends on MAC | 926 | depends on MAC |
927 | select IDE_GENERIC | ||
922 | help | 928 | help |
923 | This is the IDE driver for the builtin IDE interface on some m68k | 929 | This is the IDE driver for the builtin IDE interface on some m68k |
924 | Macintosh models. It supports both the `Quadra style' (used in | 930 | Macintosh models. It supports both the `Quadra style' (used in |
@@ -932,6 +938,7 @@ config BLK_DEV_MAC_IDE | |||
932 | config BLK_DEV_Q40IDE | 938 | config BLK_DEV_Q40IDE |
933 | bool "Q40/Q60 IDE interface support" | 939 | bool "Q40/Q60 IDE interface support" |
934 | depends on Q40 | 940 | depends on Q40 |
941 | select IDE_GENERIC | ||
935 | help | 942 | help |
936 | Enable the on-board IDE controller in the Q40/Q60. This should | 943 | Enable the on-board IDE controller in the Q40/Q60. This should |
937 | normally be on; disable it only if you are running a custom hard | 944 | normally be on; disable it only if you are running a custom hard |
@@ -940,6 +947,7 @@ config BLK_DEV_Q40IDE | |||
940 | config BLK_DEV_MPC8xx_IDE | 947 | config BLK_DEV_MPC8xx_IDE |
941 | bool "MPC8xx IDE support" | 948 | bool "MPC8xx IDE support" |
942 | depends on 8xx && IDE=y && BLK_DEV_IDE=y | 949 | depends on 8xx && IDE=y && BLK_DEV_IDE=y |
950 | select IDE_GENERIC | ||
943 | help | 951 | help |
944 | This option provides support for IDE on Motorola MPC8xx Systems. | 952 | This option provides support for IDE on Motorola MPC8xx Systems. |
945 | Please see 'Type of MPC8xx IDE interface' for details. | 953 | Please see 'Type of MPC8xx IDE interface' for details. |
diff --git a/drivers/ide/cris/ide-cris.c b/drivers/ide/cris/ide-cris.c index fbfea46a34f2..04636f7eaae7 100644 --- a/drivers/ide/cris/ide-cris.c +++ b/drivers/ide/cris/ide-cris.c | |||
@@ -718,6 +718,8 @@ static void tune_cris_ide(ide_drive_t *drive, u8 pio) | |||
718 | } | 718 | } |
719 | 719 | ||
720 | cris_ide_set_speed(TYPE_PIO, setup, strobe, hold); | 720 | cris_ide_set_speed(TYPE_PIO, setup, strobe, hold); |
721 | |||
722 | (void)ide_config_drive_speed(drive, XFER_PIO_0 + pio); | ||
721 | } | 723 | } |
722 | 724 | ||
723 | static int speed_cris_ide(ide_drive_t *drive, u8 speed) | 725 | static int speed_cris_ide(ide_drive_t *drive, u8 speed) |
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index 5ce4216f72a2..eba1adbc1b6a 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c | |||
@@ -481,6 +481,15 @@ static inline int idedisk_supports_lba48(const struct hd_driveid *id) | |||
481 | && id->lba_capacity_2; | 481 | && id->lba_capacity_2; |
482 | } | 482 | } |
483 | 483 | ||
484 | /* | ||
485 | * Some disks report total number of sectors instead of | ||
486 | * maximum sector address. We list them here. | ||
487 | */ | ||
488 | static const struct drive_list_entry hpa_list[] = { | ||
489 | { "ST340823A", NULL }, | ||
490 | { NULL, NULL } | ||
491 | }; | ||
492 | |||
484 | static void idedisk_check_hpa(ide_drive_t *drive) | 493 | static void idedisk_check_hpa(ide_drive_t *drive) |
485 | { | 494 | { |
486 | unsigned long long capacity, set_max; | 495 | unsigned long long capacity, set_max; |
@@ -492,6 +501,15 @@ static void idedisk_check_hpa(ide_drive_t *drive) | |||
492 | else | 501 | else |
493 | set_max = idedisk_read_native_max_address(drive); | 502 | set_max = idedisk_read_native_max_address(drive); |
494 | 503 | ||
504 | if (ide_in_drive_list(drive->id, hpa_list)) { | ||
505 | /* | ||
506 | * Since we are inclusive wrt to firmware revisions do this | ||
507 | * extra check and apply the workaround only when needed. | ||
508 | */ | ||
509 | if (set_max == capacity + 1) | ||
510 | set_max--; | ||
511 | } | ||
512 | |||
495 | if (set_max <= capacity) | 513 | if (set_max <= capacity) |
496 | return; | 514 | return; |
497 | 515 | ||
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index 5fe1d72ab451..ff644a5e12cd 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c | |||
@@ -135,25 +135,6 @@ static const struct drive_list_entry drive_blacklist [] = { | |||
135 | }; | 135 | }; |
136 | 136 | ||
137 | /** | 137 | /** |
138 | * ide_in_drive_list - look for drive in black/white list | ||
139 | * @id: drive identifier | ||
140 | * @drive_table: list to inspect | ||
141 | * | ||
142 | * Look for a drive in the blacklist and the whitelist tables | ||
143 | * Returns 1 if the drive is found in the table. | ||
144 | */ | ||
145 | |||
146 | int ide_in_drive_list(struct hd_driveid *id, const struct drive_list_entry *drive_table) | ||
147 | { | ||
148 | for ( ; drive_table->id_model ; drive_table++) | ||
149 | if ((!strcmp(drive_table->id_model, id->model)) && | ||
150 | (!drive_table->id_firmware || | ||
151 | strstr(id->fw_rev, drive_table->id_firmware))) | ||
152 | return 1; | ||
153 | return 0; | ||
154 | } | ||
155 | |||
156 | /** | ||
157 | * ide_dma_intr - IDE DMA interrupt handler | 138 | * ide_dma_intr - IDE DMA interrupt handler |
158 | * @drive: the drive the interrupt is for | 139 | * @drive: the drive the interrupt is for |
159 | * | 140 | * |
@@ -349,9 +330,17 @@ EXPORT_SYMBOL_GPL(ide_destroy_dmatable); | |||
349 | 330 | ||
350 | static int config_drive_for_dma (ide_drive_t *drive) | 331 | static int config_drive_for_dma (ide_drive_t *drive) |
351 | { | 332 | { |
333 | ide_hwif_t *hwif = drive->hwif; | ||
352 | struct hd_driveid *id = drive->id; | 334 | struct hd_driveid *id = drive->id; |
353 | 335 | ||
354 | if ((id->capability & 1) && drive->hwif->autodma) { | 336 | /* consult the list of known "bad" drives */ |
337 | if (__ide_dma_bad_drive(drive)) | ||
338 | return -1; | ||
339 | |||
340 | if (drive->media != ide_disk && hwif->atapi_dma == 0) | ||
341 | return -1; | ||
342 | |||
343 | if ((id->capability & 1) && drive->autodma) { | ||
355 | /* | 344 | /* |
356 | * Enable DMA on any drive that has | 345 | * Enable DMA on any drive that has |
357 | * UltraDMA (mode 0/1/2/3/4/5/6) enabled | 346 | * UltraDMA (mode 0/1/2/3/4/5/6) enabled |
@@ -514,20 +503,6 @@ int __ide_dma_on (ide_drive_t *drive) | |||
514 | EXPORT_SYMBOL(__ide_dma_on); | 503 | EXPORT_SYMBOL(__ide_dma_on); |
515 | 504 | ||
516 | /** | 505 | /** |
517 | * __ide_dma_check - check DMA setup | ||
518 | * @drive: drive to check | ||
519 | * | ||
520 | * Don't use - due for extermination | ||
521 | */ | ||
522 | |||
523 | int __ide_dma_check (ide_drive_t *drive) | ||
524 | { | ||
525 | return config_drive_for_dma(drive); | ||
526 | } | ||
527 | |||
528 | EXPORT_SYMBOL(__ide_dma_check); | ||
529 | |||
530 | /** | ||
531 | * ide_dma_setup - begin a DMA phase | 506 | * ide_dma_setup - begin a DMA phase |
532 | * @drive: target device | 507 | * @drive: target device |
533 | * | 508 | * |
@@ -1021,7 +996,7 @@ void ide_setup_dma (ide_hwif_t *hwif, unsigned long dma_base, unsigned int num_p | |||
1021 | if (!hwif->dma_host_on) | 996 | if (!hwif->dma_host_on) |
1022 | hwif->dma_host_on = &ide_dma_host_on; | 997 | hwif->dma_host_on = &ide_dma_host_on; |
1023 | if (!hwif->ide_dma_check) | 998 | if (!hwif->ide_dma_check) |
1024 | hwif->ide_dma_check = &__ide_dma_check; | 999 | hwif->ide_dma_check = &config_drive_for_dma; |
1025 | if (!hwif->dma_setup) | 1000 | if (!hwif->dma_setup) |
1026 | hwif->dma_setup = &ide_dma_setup; | 1001 | hwif->dma_setup = &ide_dma_setup; |
1027 | if (!hwif->dma_exec_cmd) | 1002 | if (!hwif->dma_exec_cmd) |
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c index 92578b6832e9..f4cd2700cae5 100644 --- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c | |||
@@ -565,6 +565,36 @@ int ide_wait_stat (ide_startstop_t *startstop, ide_drive_t *drive, u8 good, u8 b | |||
565 | 565 | ||
566 | EXPORT_SYMBOL(ide_wait_stat); | 566 | EXPORT_SYMBOL(ide_wait_stat); |
567 | 567 | ||
568 | /** | ||
569 | * ide_in_drive_list - look for drive in black/white list | ||
570 | * @id: drive identifier | ||
571 | * @drive_table: list to inspect | ||
572 | * | ||
573 | * Look for a drive in the blacklist and the whitelist tables | ||
574 | * Returns 1 if the drive is found in the table. | ||
575 | */ | ||
576 | |||
577 | int ide_in_drive_list(struct hd_driveid *id, const struct drive_list_entry *drive_table) | ||
578 | { | ||
579 | for ( ; drive_table->id_model; drive_table++) | ||
580 | if ((!strcmp(drive_table->id_model, id->model)) && | ||
581 | (!drive_table->id_firmware || | ||
582 | strstr(id->fw_rev, drive_table->id_firmware))) | ||
583 | return 1; | ||
584 | return 0; | ||
585 | } | ||
586 | |||
587 | EXPORT_SYMBOL_GPL(ide_in_drive_list); | ||
588 | |||
589 | /* | ||
590 | * Early UDMA66 devices don't set bit14 to 1, only bit13 is valid. | ||
591 | * We list them here and depend on the device side cable detection for them. | ||
592 | */ | ||
593 | static const struct drive_list_entry ivb_list[] = { | ||
594 | { "QUANTUM FIREBALLlct10 05" , "A03.0900" }, | ||
595 | { NULL , NULL } | ||
596 | }; | ||
597 | |||
568 | /* | 598 | /* |
569 | * All hosts that use the 80c ribbon must use! | 599 | * All hosts that use the 80c ribbon must use! |
570 | * The name is derived from upper byte of word 93 and the 80c ribbon. | 600 | * The name is derived from upper byte of word 93 and the 80c ribbon. |
@@ -573,11 +603,16 @@ u8 eighty_ninty_three (ide_drive_t *drive) | |||
573 | { | 603 | { |
574 | ide_hwif_t *hwif = drive->hwif; | 604 | ide_hwif_t *hwif = drive->hwif; |
575 | struct hd_driveid *id = drive->id; | 605 | struct hd_driveid *id = drive->id; |
606 | int ivb = ide_in_drive_list(id, ivb_list); | ||
576 | 607 | ||
577 | if (hwif->cbl == ATA_CBL_PATA40_SHORT) | 608 | if (hwif->cbl == ATA_CBL_PATA40_SHORT) |
578 | return 1; | 609 | return 1; |
579 | 610 | ||
580 | if (hwif->cbl != ATA_CBL_PATA80) | 611 | if (ivb) |
612 | printk(KERN_DEBUG "%s: skipping word 93 validity check\n", | ||
613 | drive->name); | ||
614 | |||
615 | if (hwif->cbl != ATA_CBL_PATA80 && !ivb) | ||
581 | goto no_80w; | 616 | goto no_80w; |
582 | 617 | ||
583 | /* Check for SATA but only if we are ATA5 or higher */ | 618 | /* Check for SATA but only if we are ATA5 or higher */ |
@@ -587,11 +622,11 @@ u8 eighty_ninty_three (ide_drive_t *drive) | |||
587 | /* | 622 | /* |
588 | * FIXME: | 623 | * FIXME: |
589 | * - change master/slave IDENTIFY order | 624 | * - change master/slave IDENTIFY order |
590 | * - force bit13 (80c cable present) check | 625 | * - force bit13 (80c cable present) check also for !ivb devices |
591 | * (unless the slave device is pre-ATA3) | 626 | * (unless the slave device is pre-ATA3) |
592 | */ | 627 | */ |
593 | #ifndef CONFIG_IDEDMA_IVB | 628 | #ifndef CONFIG_IDEDMA_IVB |
594 | if (id->hw_config & 0x4000) | 629 | if ((id->hw_config & 0x4000) || (ivb && (id->hw_config & 0x2000))) |
595 | #else | 630 | #else |
596 | if (id->hw_config & 0x6000) | 631 | if (id->hw_config & 0x6000) |
597 | #endif | 632 | #endif |
@@ -795,7 +830,7 @@ int ide_config_drive_speed (ide_drive_t *drive, u8 speed) | |||
795 | hwif->OUTB(drive->ctl | 2, IDE_CONTROL_REG); | 830 | hwif->OUTB(drive->ctl | 2, IDE_CONTROL_REG); |
796 | hwif->OUTB(speed, IDE_NSECTOR_REG); | 831 | hwif->OUTB(speed, IDE_NSECTOR_REG); |
797 | hwif->OUTB(SETFEATURES_XFER, IDE_FEATURE_REG); | 832 | hwif->OUTB(SETFEATURES_XFER, IDE_FEATURE_REG); |
798 | hwif->OUTB(WIN_SETFEATURES, IDE_COMMAND_REG); | 833 | hwif->OUTBSYNC(drive, WIN_SETFEATURES, IDE_COMMAND_REG); |
799 | if ((IDE_CONTROL_REG) && (drive->quirk_list == 2)) | 834 | if ((IDE_CONTROL_REG) && (drive->quirk_list == 2)) |
800 | hwif->OUTB(drive->ctl, IDE_CONTROL_REG); | 835 | hwif->OUTB(drive->ctl, IDE_CONTROL_REG); |
801 | udelay(1); | 836 | udelay(1); |
@@ -822,7 +857,7 @@ int ide_config_drive_speed (ide_drive_t *drive, u8 speed) | |||
822 | */ | 857 | */ |
823 | for (i = 0; i < 10; i++) { | 858 | for (i = 0; i < 10; i++) { |
824 | udelay(1); | 859 | udelay(1); |
825 | if (OK_STAT((stat = hwif->INB(IDE_STATUS_REG)), DRIVE_READY, BUSY_STAT|DRQ_STAT|ERR_STAT)) { | 860 | if (OK_STAT((stat = hwif->INB(IDE_STATUS_REG)), drive->ready_stat, BUSY_STAT|DRQ_STAT|ERR_STAT)) { |
826 | error = 0; | 861 | error = 0; |
827 | break; | 862 | break; |
828 | } | 863 | } |
diff --git a/drivers/ide/pci/cs5530.c b/drivers/ide/pci/cs5530.c index acaf71fd4c09..e5949b1d3fb0 100644 --- a/drivers/ide/pci/cs5530.c +++ b/drivers/ide/pci/cs5530.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/ide/pci/cs5530.c Version 0.73 Mar 10 2007 | 2 | * linux/drivers/ide/pci/cs5530.c Version 0.74 Jul 28 2007 |
3 | * | 3 | * |
4 | * Copyright (C) 2000 Andre Hedrick <andre@linux-ide.org> | 4 | * Copyright (C) 2000 Andre Hedrick <andre@linux-ide.org> |
5 | * Copyright (C) 2000 Mark Lord <mlord@pobox.com> | 5 | * Copyright (C) 2000 Mark Lord <mlord@pobox.com> |
@@ -207,6 +207,9 @@ static unsigned int __devinit init_chipset_cs5530 (struct pci_dev *dev, const ch | |||
207 | struct pci_dev *master_0 = NULL, *cs5530_0 = NULL; | 207 | struct pci_dev *master_0 = NULL, *cs5530_0 = NULL; |
208 | unsigned long flags; | 208 | unsigned long flags; |
209 | 209 | ||
210 | if (pci_resource_start(dev, 4) == 0) | ||
211 | return -EFAULT; | ||
212 | |||
210 | dev = NULL; | 213 | dev = NULL; |
211 | while ((dev = pci_get_device(PCI_VENDOR_ID_CYRIX, PCI_ANY_ID, dev)) != NULL) { | 214 | while ((dev = pci_get_device(PCI_VENDOR_ID_CYRIX, PCI_ANY_ID, dev)) != NULL) { |
212 | switch (dev->device) { | 215 | switch (dev->device) { |
@@ -325,6 +328,9 @@ static void __devinit init_hwif_cs5530 (ide_hwif_t *hwif) | |||
325 | /* needs autotuning later */ | 328 | /* needs autotuning later */ |
326 | } | 329 | } |
327 | 330 | ||
331 | if (hwif->dma_base == 0) | ||
332 | return; | ||
333 | |||
328 | hwif->atapi_dma = 1; | 334 | hwif->atapi_dma = 1; |
329 | hwif->ultra_mask = 0x07; | 335 | hwif->ultra_mask = 0x07; |
330 | hwif->mwdma_mask = 0x07; | 336 | hwif->mwdma_mask = 0x07; |
diff --git a/drivers/ide/pci/hpt34x.c b/drivers/ide/pci/hpt34x.c index 19778c5fe711..cb8fe5643d3b 100644 --- a/drivers/ide/pci/hpt34x.c +++ b/drivers/ide/pci/hpt34x.c | |||
@@ -89,11 +89,7 @@ static int hpt34x_config_drive_xfer_rate (ide_drive_t *drive) | |||
89 | drive->init_speed = 0; | 89 | drive->init_speed = 0; |
90 | 90 | ||
91 | if (ide_tune_dma(drive)) | 91 | if (ide_tune_dma(drive)) |
92 | #ifndef CONFIG_HPT34X_AUTODMA | ||
93 | return -1; | 92 | return -1; |
94 | #else | ||
95 | return 0; | ||
96 | #endif | ||
97 | 93 | ||
98 | if (ide_use_fast_pio(drive)) | 94 | if (ide_use_fast_pio(drive)) |
99 | hpt34x_tune_drive(drive, 255); | 95 | hpt34x_tune_drive(drive, 255); |
@@ -160,9 +156,11 @@ static void __devinit init_hwif_hpt34x(ide_hwif_t *hwif) | |||
160 | if (!hwif->dma_base) | 156 | if (!hwif->dma_base) |
161 | return; | 157 | return; |
162 | 158 | ||
159 | #ifdef CONFIG_HPT34X_AUTODMA | ||
163 | hwif->ultra_mask = 0x07; | 160 | hwif->ultra_mask = 0x07; |
164 | hwif->mwdma_mask = 0x07; | 161 | hwif->mwdma_mask = 0x07; |
165 | hwif->swdma_mask = 0x07; | 162 | hwif->swdma_mask = 0x07; |
163 | #endif | ||
166 | 164 | ||
167 | hwif->ide_dma_check = &hpt34x_config_drive_xfer_rate; | 165 | hwif->ide_dma_check = &hpt34x_config_drive_xfer_rate; |
168 | if (!noautodma) | 166 | if (!noautodma) |
diff --git a/drivers/ide/pci/ns87415.c b/drivers/ide/pci/ns87415.c index 09941f37d635..465c935fdf25 100644 --- a/drivers/ide/pci/ns87415.c +++ b/drivers/ide/pci/ns87415.c | |||
@@ -187,14 +187,6 @@ static int ns87415_ide_dma_setup(ide_drive_t *drive) | |||
187 | return 1; | 187 | return 1; |
188 | } | 188 | } |
189 | 189 | ||
190 | static int ns87415_ide_dma_check (ide_drive_t *drive) | ||
191 | { | ||
192 | if (drive->media != ide_disk) | ||
193 | return -1; | ||
194 | |||
195 | return __ide_dma_check(drive); | ||
196 | } | ||
197 | |||
198 | static void __devinit init_hwif_ns87415 (ide_hwif_t *hwif) | 190 | static void __devinit init_hwif_ns87415 (ide_hwif_t *hwif) |
199 | { | 191 | { |
200 | struct pci_dev *dev = hwif->pci_dev; | 192 | struct pci_dev *dev = hwif->pci_dev; |
@@ -266,7 +258,6 @@ static void __devinit init_hwif_ns87415 (ide_hwif_t *hwif) | |||
266 | 258 | ||
267 | outb(0x60, hwif->dma_status); | 259 | outb(0x60, hwif->dma_status); |
268 | hwif->dma_setup = &ns87415_ide_dma_setup; | 260 | hwif->dma_setup = &ns87415_ide_dma_setup; |
269 | hwif->ide_dma_check = &ns87415_ide_dma_check; | ||
270 | hwif->ide_dma_end = &ns87415_ide_dma_end; | 261 | hwif->ide_dma_end = &ns87415_ide_dma_end; |
271 | 262 | ||
272 | if (!noautodma) | 263 | if (!noautodma) |
diff --git a/drivers/ide/pci/pdc202xx_new.c b/drivers/ide/pci/pdc202xx_new.c index 8a66a2871b3a..f6db2f37efad 100644 --- a/drivers/ide/pci/pdc202xx_new.c +++ b/drivers/ide/pci/pdc202xx_new.c | |||
@@ -378,6 +378,9 @@ static unsigned int __devinit init_chipset_pdcnew(struct pci_dev *dev, const cha | |||
378 | int f, r; | 378 | int f, r; |
379 | u8 pll_ctl0, pll_ctl1; | 379 | u8 pll_ctl0, pll_ctl1; |
380 | 380 | ||
381 | if (dma_base == 0) | ||
382 | return -EFAULT; | ||
383 | |||
381 | #ifdef CONFIG_PPC_PMAC | 384 | #ifdef CONFIG_PPC_PMAC |
382 | apple_kiwi_init(dev); | 385 | apple_kiwi_init(dev); |
383 | #endif | 386 | #endif |
@@ -494,15 +497,18 @@ static void __devinit init_hwif_pdc202new(ide_hwif_t *hwif) | |||
494 | hwif->speedproc = &pdcnew_tune_chipset; | 497 | hwif->speedproc = &pdcnew_tune_chipset; |
495 | hwif->resetproc = &pdcnew_reset; | 498 | hwif->resetproc = &pdcnew_reset; |
496 | 499 | ||
500 | hwif->err_stops_fifo = 1; | ||
501 | |||
497 | hwif->drives[0].autotune = hwif->drives[1].autotune = 1; | 502 | hwif->drives[0].autotune = hwif->drives[1].autotune = 1; |
498 | 503 | ||
504 | if (hwif->dma_base == 0) | ||
505 | return; | ||
506 | |||
499 | hwif->atapi_dma = 1; | 507 | hwif->atapi_dma = 1; |
500 | 508 | ||
501 | hwif->ultra_mask = hwif->cds->udma_mask; | 509 | hwif->ultra_mask = hwif->cds->udma_mask; |
502 | hwif->mwdma_mask = 0x07; | 510 | hwif->mwdma_mask = 0x07; |
503 | 511 | ||
504 | hwif->err_stops_fifo = 1; | ||
505 | |||
506 | hwif->ide_dma_check = &pdcnew_config_drive_xfer_rate; | 512 | hwif->ide_dma_check = &pdcnew_config_drive_xfer_rate; |
507 | 513 | ||
508 | if (hwif->cbl != ATA_CBL_PATA40_SHORT) | 514 | if (hwif->cbl != ATA_CBL_PATA40_SHORT) |
diff --git a/drivers/ide/pci/pdc202xx_old.c b/drivers/ide/pci/pdc202xx_old.c index fbcb0bb9c956..e19a891171cb 100644 --- a/drivers/ide/pci/pdc202xx_old.c +++ b/drivers/ide/pci/pdc202xx_old.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/ide/pci/pdc202xx_old.c Version 0.50 Mar 3, 2007 | 2 | * linux/drivers/ide/pci/pdc202xx_old.c Version 0.51 Jul 27, 2007 |
3 | * | 3 | * |
4 | * Copyright (C) 1998-2002 Andre Hedrick <andre@linux-ide.org> | 4 | * Copyright (C) 1998-2002 Andre Hedrick <andre@linux-ide.org> |
5 | * Copyright (C) 2006-2007 MontaVista Software, Inc. | 5 | * Copyright (C) 2006-2007 MontaVista Software, Inc. |
@@ -337,15 +337,18 @@ static void __devinit init_hwif_pdc202xx(ide_hwif_t *hwif) | |||
337 | 337 | ||
338 | hwif->speedproc = &pdc202xx_tune_chipset; | 338 | hwif->speedproc = &pdc202xx_tune_chipset; |
339 | 339 | ||
340 | hwif->err_stops_fifo = 1; | ||
341 | |||
340 | hwif->drives[0].autotune = hwif->drives[1].autotune = 1; | 342 | hwif->drives[0].autotune = hwif->drives[1].autotune = 1; |
341 | 343 | ||
344 | if (hwif->dma_base == 0) | ||
345 | return; | ||
346 | |||
342 | hwif->ultra_mask = hwif->cds->udma_mask; | 347 | hwif->ultra_mask = hwif->cds->udma_mask; |
343 | hwif->mwdma_mask = 0x07; | 348 | hwif->mwdma_mask = 0x07; |
344 | hwif->swdma_mask = 0x07; | 349 | hwif->swdma_mask = 0x07; |
345 | hwif->atapi_dma = 1; | 350 | hwif->atapi_dma = 1; |
346 | 351 | ||
347 | hwif->err_stops_fifo = 1; | ||
348 | |||
349 | hwif->ide_dma_check = &pdc202xx_config_drive_xfer_rate; | 352 | hwif->ide_dma_check = &pdc202xx_config_drive_xfer_rate; |
350 | hwif->dma_lost_irq = &pdc202xx_dma_lost_irq; | 353 | hwif->dma_lost_irq = &pdc202xx_dma_lost_irq; |
351 | hwif->dma_timeout = &pdc202xx_dma_timeout; | 354 | hwif->dma_timeout = &pdc202xx_dma_timeout; |
diff --git a/drivers/ide/pci/triflex.c b/drivers/ide/pci/triflex.c index 024bbfae0429..098692a6d615 100644 --- a/drivers/ide/pci/triflex.c +++ b/drivers/ide/pci/triflex.c | |||
@@ -115,6 +115,9 @@ static void __devinit init_hwif_triflex(ide_hwif_t *hwif) | |||
115 | hwif->tuneproc = &triflex_tune_drive; | 115 | hwif->tuneproc = &triflex_tune_drive; |
116 | hwif->speedproc = &triflex_tune_chipset; | 116 | hwif->speedproc = &triflex_tune_chipset; |
117 | 117 | ||
118 | if (hwif->dma_base == 0) | ||
119 | return; | ||
120 | |||
118 | hwif->atapi_dma = 1; | 121 | hwif->atapi_dma = 1; |
119 | hwif->mwdma_mask = 0x07; | 122 | hwif->mwdma_mask = 0x07; |
120 | hwif->swdma_mask = 0x07; | 123 | hwif->swdma_mask = 0x07; |
diff --git a/drivers/ide/ppc/pmac.c b/drivers/ide/ppc/pmac.c index 33630ad3e794..4b13cd9a027d 100644 --- a/drivers/ide/ppc/pmac.c +++ b/drivers/ide/ppc/pmac.c | |||
@@ -604,6 +604,9 @@ out: | |||
604 | drive->id->dma_1word |= 0x0101; break; | 604 | drive->id->dma_1word |= 0x0101; break; |
605 | default: break; | 605 | default: break; |
606 | } | 606 | } |
607 | if (!drive->init_speed) | ||
608 | drive->init_speed = command; | ||
609 | drive->current_speed = command; | ||
607 | } | 610 | } |
608 | enable_irq(hwif->irq); | 611 | enable_irq(hwif->irq); |
609 | return result; | 612 | return result; |
@@ -986,7 +989,6 @@ pmac_ide_tune_chipset (ide_drive_t *drive, byte speed) | |||
986 | return ret; | 989 | return ret; |
987 | 990 | ||
988 | pmac_ide_do_update_timings(drive); | 991 | pmac_ide_do_update_timings(drive); |
989 | drive->current_speed = speed; | ||
990 | 992 | ||
991 | return 0; | 993 | return 0; |
992 | } | 994 | } |
@@ -1737,11 +1739,6 @@ pmac_ide_mdma_enable(ide_drive_t *drive, u16 mode) | |||
1737 | /* Apply timings to controller */ | 1739 | /* Apply timings to controller */ |
1738 | *timings = timing_local[0]; | 1740 | *timings = timing_local[0]; |
1739 | *timings2 = timing_local[1]; | 1741 | *timings2 = timing_local[1]; |
1740 | |||
1741 | /* Set speed info in drive */ | ||
1742 | drive->current_speed = mode; | ||
1743 | if (!drive->init_speed) | ||
1744 | drive->init_speed = mode; | ||
1745 | 1742 | ||
1746 | return 1; | 1743 | return 1; |
1747 | } | 1744 | } |
@@ -1793,11 +1790,6 @@ pmac_ide_udma_enable(ide_drive_t *drive, u16 mode) | |||
1793 | *timings = timing_local[0]; | 1790 | *timings = timing_local[0]; |
1794 | *timings2 = timing_local[1]; | 1791 | *timings2 = timing_local[1]; |
1795 | 1792 | ||
1796 | /* Set speed info in drive */ | ||
1797 | drive->current_speed = mode; | ||
1798 | if (!drive->init_speed) | ||
1799 | drive->init_speed = mode; | ||
1800 | |||
1801 | return 1; | 1793 | return 1; |
1802 | } | 1794 | } |
1803 | 1795 | ||
diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c index 47dbe8f17e82..a81ba8fca0db 100644 --- a/drivers/ieee1394/sbp2.c +++ b/drivers/ieee1394/sbp2.c | |||
@@ -513,9 +513,9 @@ static int sbp2util_create_command_orb_pool(struct sbp2_lu *lu) | |||
513 | return 0; | 513 | return 0; |
514 | } | 514 | } |
515 | 515 | ||
516 | static void sbp2util_remove_command_orb_pool(struct sbp2_lu *lu) | 516 | static void sbp2util_remove_command_orb_pool(struct sbp2_lu *lu, |
517 | struct hpsb_host *host) | ||
517 | { | 518 | { |
518 | struct hpsb_host *host = lu->hi->host; | ||
519 | struct list_head *lh, *next; | 519 | struct list_head *lh, *next; |
520 | struct sbp2_command_info *cmd; | 520 | struct sbp2_command_info *cmd; |
521 | unsigned long flags; | 521 | unsigned long flags; |
@@ -922,15 +922,16 @@ static void sbp2_remove_device(struct sbp2_lu *lu) | |||
922 | 922 | ||
923 | if (!lu) | 923 | if (!lu) |
924 | return; | 924 | return; |
925 | |||
926 | hi = lu->hi; | 925 | hi = lu->hi; |
926 | if (!hi) | ||
927 | goto no_hi; | ||
927 | 928 | ||
928 | if (lu->shost) { | 929 | if (lu->shost) { |
929 | scsi_remove_host(lu->shost); | 930 | scsi_remove_host(lu->shost); |
930 | scsi_host_put(lu->shost); | 931 | scsi_host_put(lu->shost); |
931 | } | 932 | } |
932 | flush_scheduled_work(); | 933 | flush_scheduled_work(); |
933 | sbp2util_remove_command_orb_pool(lu); | 934 | sbp2util_remove_command_orb_pool(lu, hi->host); |
934 | 935 | ||
935 | list_del(&lu->lu_list); | 936 | list_del(&lu->lu_list); |
936 | 937 | ||
@@ -971,9 +972,8 @@ static void sbp2_remove_device(struct sbp2_lu *lu) | |||
971 | 972 | ||
972 | lu->ud->device.driver_data = NULL; | 973 | lu->ud->device.driver_data = NULL; |
973 | 974 | ||
974 | if (hi) | 975 | module_put(hi->host->driver->owner); |
975 | module_put(hi->host->driver->owner); | 976 | no_hi: |
976 | |||
977 | kfree(lu); | 977 | kfree(lu); |
978 | } | 978 | } |
979 | 979 | ||
diff --git a/drivers/infiniband/core/agent.c b/drivers/infiniband/core/agent.c index db2633e4aae6..ae7c2880e624 100644 --- a/drivers/infiniband/core/agent.c +++ b/drivers/infiniband/core/agent.c | |||
@@ -78,15 +78,14 @@ ib_get_agent_port(struct ib_device *device, int port_num) | |||
78 | return entry; | 78 | return entry; |
79 | } | 79 | } |
80 | 80 | ||
81 | int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, | 81 | void agent_send_response(struct ib_mad *mad, struct ib_grh *grh, |
82 | struct ib_wc *wc, struct ib_device *device, | 82 | struct ib_wc *wc, struct ib_device *device, |
83 | int port_num, int qpn) | 83 | int port_num, int qpn) |
84 | { | 84 | { |
85 | struct ib_agent_port_private *port_priv; | 85 | struct ib_agent_port_private *port_priv; |
86 | struct ib_mad_agent *agent; | 86 | struct ib_mad_agent *agent; |
87 | struct ib_mad_send_buf *send_buf; | 87 | struct ib_mad_send_buf *send_buf; |
88 | struct ib_ah *ah; | 88 | struct ib_ah *ah; |
89 | int ret; | ||
90 | struct ib_mad_send_wr_private *mad_send_wr; | 89 | struct ib_mad_send_wr_private *mad_send_wr; |
91 | 90 | ||
92 | if (device->node_type == RDMA_NODE_IB_SWITCH) | 91 | if (device->node_type == RDMA_NODE_IB_SWITCH) |
@@ -96,23 +95,21 @@ int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, | |||
96 | 95 | ||
97 | if (!port_priv) { | 96 | if (!port_priv) { |
98 | printk(KERN_ERR SPFX "Unable to find port agent\n"); | 97 | printk(KERN_ERR SPFX "Unable to find port agent\n"); |
99 | return -ENODEV; | 98 | return; |
100 | } | 99 | } |
101 | 100 | ||
102 | agent = port_priv->agent[qpn]; | 101 | agent = port_priv->agent[qpn]; |
103 | ah = ib_create_ah_from_wc(agent->qp->pd, wc, grh, port_num); | 102 | ah = ib_create_ah_from_wc(agent->qp->pd, wc, grh, port_num); |
104 | if (IS_ERR(ah)) { | 103 | if (IS_ERR(ah)) { |
105 | ret = PTR_ERR(ah); | 104 | printk(KERN_ERR SPFX "ib_create_ah_from_wc error\n"); |
106 | printk(KERN_ERR SPFX "ib_create_ah_from_wc error:%d\n", ret); | 105 | return; |
107 | return ret; | ||
108 | } | 106 | } |
109 | 107 | ||
110 | send_buf = ib_create_send_mad(agent, wc->src_qp, wc->pkey_index, 0, | 108 | send_buf = ib_create_send_mad(agent, wc->src_qp, wc->pkey_index, 0, |
111 | IB_MGMT_MAD_HDR, IB_MGMT_MAD_DATA, | 109 | IB_MGMT_MAD_HDR, IB_MGMT_MAD_DATA, |
112 | GFP_KERNEL); | 110 | GFP_KERNEL); |
113 | if (IS_ERR(send_buf)) { | 111 | if (IS_ERR(send_buf)) { |
114 | ret = PTR_ERR(send_buf); | 112 | printk(KERN_ERR SPFX "ib_create_send_mad error\n"); |
115 | printk(KERN_ERR SPFX "ib_create_send_mad error:%d\n", ret); | ||
116 | goto err1; | 113 | goto err1; |
117 | } | 114 | } |
118 | 115 | ||
@@ -126,16 +123,15 @@ int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, | |||
126 | mad_send_wr->send_wr.wr.ud.port_num = port_num; | 123 | mad_send_wr->send_wr.wr.ud.port_num = port_num; |
127 | } | 124 | } |
128 | 125 | ||
129 | if ((ret = ib_post_send_mad(send_buf, NULL))) { | 126 | if (ib_post_send_mad(send_buf, NULL)) { |
130 | printk(KERN_ERR SPFX "ib_post_send_mad error:%d\n", ret); | 127 | printk(KERN_ERR SPFX "ib_post_send_mad error\n"); |
131 | goto err2; | 128 | goto err2; |
132 | } | 129 | } |
133 | return 0; | 130 | return; |
134 | err2: | 131 | err2: |
135 | ib_free_send_mad(send_buf); | 132 | ib_free_send_mad(send_buf); |
136 | err1: | 133 | err1: |
137 | ib_destroy_ah(ah); | 134 | ib_destroy_ah(ah); |
138 | return ret; | ||
139 | } | 135 | } |
140 | 136 | ||
141 | static void agent_send_handler(struct ib_mad_agent *mad_agent, | 137 | static void agent_send_handler(struct ib_mad_agent *mad_agent, |
diff --git a/drivers/infiniband/core/agent.h b/drivers/infiniband/core/agent.h index 86d72fab37b0..fb9ed1489f95 100644 --- a/drivers/infiniband/core/agent.h +++ b/drivers/infiniband/core/agent.h | |||
@@ -46,8 +46,8 @@ extern int ib_agent_port_open(struct ib_device *device, int port_num); | |||
46 | 46 | ||
47 | extern int ib_agent_port_close(struct ib_device *device, int port_num); | 47 | extern int ib_agent_port_close(struct ib_device *device, int port_num); |
48 | 48 | ||
49 | extern int agent_send_response(struct ib_mad *mad, struct ib_grh *grh, | 49 | extern void agent_send_response(struct ib_mad *mad, struct ib_grh *grh, |
50 | struct ib_wc *wc, struct ib_device *device, | 50 | struct ib_wc *wc, struct ib_device *device, |
51 | int port_num, int qpn); | 51 | int port_num, int qpn); |
52 | 52 | ||
53 | #endif /* __AGENT_H_ */ | 53 | #endif /* __AGENT_H_ */ |
diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c index 3ada17c0f239..2506c43ba041 100644 --- a/drivers/infiniband/core/device.c +++ b/drivers/infiniband/core/device.c | |||
@@ -702,7 +702,7 @@ int ib_find_pkey(struct ib_device *device, | |||
702 | if (ret) | 702 | if (ret) |
703 | return ret; | 703 | return ret; |
704 | 704 | ||
705 | if (pkey == tmp_pkey) { | 705 | if ((pkey & 0x7fff) == (tmp_pkey & 0x7fff)) { |
706 | *index = i; | 706 | *index = i; |
707 | return 0; | 707 | return 0; |
708 | } | 708 | } |
diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c index bc547f1d34ba..6f4287716ab1 100644 --- a/drivers/infiniband/core/mad.c +++ b/drivers/infiniband/core/mad.c | |||
@@ -1842,16 +1842,11 @@ static void ib_mad_recv_done_handler(struct ib_mad_port_private *port_priv, | |||
1842 | { | 1842 | { |
1843 | struct ib_mad_qp_info *qp_info; | 1843 | struct ib_mad_qp_info *qp_info; |
1844 | struct ib_mad_private_header *mad_priv_hdr; | 1844 | struct ib_mad_private_header *mad_priv_hdr; |
1845 | struct ib_mad_private *recv, *response; | 1845 | struct ib_mad_private *recv, *response = NULL; |
1846 | struct ib_mad_list_head *mad_list; | 1846 | struct ib_mad_list_head *mad_list; |
1847 | struct ib_mad_agent_private *mad_agent; | 1847 | struct ib_mad_agent_private *mad_agent; |
1848 | int port_num; | 1848 | int port_num; |
1849 | 1849 | ||
1850 | response = kmem_cache_alloc(ib_mad_cache, GFP_KERNEL); | ||
1851 | if (!response) | ||
1852 | printk(KERN_ERR PFX "ib_mad_recv_done_handler no memory " | ||
1853 | "for response buffer\n"); | ||
1854 | |||
1855 | mad_list = (struct ib_mad_list_head *)(unsigned long)wc->wr_id; | 1850 | mad_list = (struct ib_mad_list_head *)(unsigned long)wc->wr_id; |
1856 | qp_info = mad_list->mad_queue->qp_info; | 1851 | qp_info = mad_list->mad_queue->qp_info; |
1857 | dequeue_mad(mad_list); | 1852 | dequeue_mad(mad_list); |
@@ -1879,6 +1874,13 @@ static void ib_mad_recv_done_handler(struct ib_mad_port_private *port_priv, | |||
1879 | if (!validate_mad(&recv->mad.mad, qp_info->qp->qp_num)) | 1874 | if (!validate_mad(&recv->mad.mad, qp_info->qp->qp_num)) |
1880 | goto out; | 1875 | goto out; |
1881 | 1876 | ||
1877 | response = kmem_cache_alloc(ib_mad_cache, GFP_KERNEL); | ||
1878 | if (!response) { | ||
1879 | printk(KERN_ERR PFX "ib_mad_recv_done_handler no memory " | ||
1880 | "for response buffer\n"); | ||
1881 | goto out; | ||
1882 | } | ||
1883 | |||
1882 | if (port_priv->device->node_type == RDMA_NODE_IB_SWITCH) | 1884 | if (port_priv->device->node_type == RDMA_NODE_IB_SWITCH) |
1883 | port_num = wc->port_num; | 1885 | port_num = wc->port_num; |
1884 | else | 1886 | else |
@@ -1914,12 +1916,11 @@ static void ib_mad_recv_done_handler(struct ib_mad_port_private *port_priv, | |||
1914 | response->header.recv_wc.recv_buf.mad = &response->mad.mad; | 1916 | response->header.recv_wc.recv_buf.mad = &response->mad.mad; |
1915 | response->header.recv_wc.recv_buf.grh = &response->grh; | 1917 | response->header.recv_wc.recv_buf.grh = &response->grh; |
1916 | 1918 | ||
1917 | if (!agent_send_response(&response->mad.mad, | 1919 | agent_send_response(&response->mad.mad, |
1918 | &response->grh, wc, | 1920 | &response->grh, wc, |
1919 | port_priv->device, | 1921 | port_priv->device, |
1920 | smi_get_fwd_port(&recv->mad.smp), | 1922 | smi_get_fwd_port(&recv->mad.smp), |
1921 | qp_info->qp->qp_num)) | 1923 | qp_info->qp->qp_num); |
1922 | response = NULL; | ||
1923 | 1924 | ||
1924 | goto out; | 1925 | goto out; |
1925 | } | 1926 | } |
diff --git a/drivers/infiniband/core/mad_rmpp.c b/drivers/infiniband/core/mad_rmpp.c index 3663fd7022be..d43bc62005b3 100644 --- a/drivers/infiniband/core/mad_rmpp.c +++ b/drivers/infiniband/core/mad_rmpp.c | |||
@@ -163,8 +163,10 @@ static struct ib_mad_send_buf *alloc_response_msg(struct ib_mad_agent *agent, | |||
163 | hdr_len, 0, GFP_KERNEL); | 163 | hdr_len, 0, GFP_KERNEL); |
164 | if (IS_ERR(msg)) | 164 | if (IS_ERR(msg)) |
165 | ib_destroy_ah(ah); | 165 | ib_destroy_ah(ah); |
166 | else | 166 | else { |
167 | msg->ah = ah; | 167 | msg->ah = ah; |
168 | msg->context[0] = ah; | ||
169 | } | ||
168 | 170 | ||
169 | return msg; | 171 | return msg; |
170 | } | 172 | } |
@@ -197,9 +199,7 @@ static void ack_ds_ack(struct ib_mad_agent_private *agent, | |||
197 | 199 | ||
198 | void ib_rmpp_send_handler(struct ib_mad_send_wc *mad_send_wc) | 200 | void ib_rmpp_send_handler(struct ib_mad_send_wc *mad_send_wc) |
199 | { | 201 | { |
200 | struct ib_rmpp_mad *rmpp_mad = mad_send_wc->send_buf->mad; | 202 | if (mad_send_wc->send_buf->context[0] == mad_send_wc->send_buf->ah) |
201 | |||
202 | if (rmpp_mad->rmpp_hdr.rmpp_type != IB_MGMT_RMPP_TYPE_ACK) | ||
203 | ib_destroy_ah(mad_send_wc->send_buf->ah); | 203 | ib_destroy_ah(mad_send_wc->send_buf->ah); |
204 | ib_free_send_mad(mad_send_wc->send_buf); | 204 | ib_free_send_mad(mad_send_wc->send_buf); |
205 | } | 205 | } |
diff --git a/drivers/infiniband/core/sa_query.c b/drivers/infiniband/core/sa_query.c index 20ab6b3e484d..d271bd715c12 100644 --- a/drivers/infiniband/core/sa_query.c +++ b/drivers/infiniband/core/sa_query.c | |||
@@ -385,9 +385,7 @@ static void update_sm_ah(struct work_struct *work) | |||
385 | 385 | ||
386 | new_ah->pkey_index = 0; | 386 | new_ah->pkey_index = 0; |
387 | if (ib_find_pkey(port->agent->device, port->port_num, | 387 | if (ib_find_pkey(port->agent->device, port->port_num, |
388 | IB_DEFAULT_PKEY_FULL, &new_ah->pkey_index) && | 388 | IB_DEFAULT_PKEY_FULL, &new_ah->pkey_index)) |
389 | ib_find_pkey(port->agent->device, port->port_num, | ||
390 | IB_DEFAULT_PKEY_PARTIAL, &new_ah->pkey_index)) | ||
391 | printk(KERN_ERR "Couldn't find index for default PKey\n"); | 389 | printk(KERN_ERR "Couldn't find index for default PKey\n"); |
392 | 390 | ||
393 | memset(&ah_attr, 0, sizeof ah_attr); | 391 | memset(&ah_attr, 0, sizeof ah_attr); |
diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c index 26d0470eef6e..664d2faa9e74 100644 --- a/drivers/infiniband/core/umem.c +++ b/drivers/infiniband/core/umem.c | |||
@@ -40,6 +40,11 @@ | |||
40 | 40 | ||
41 | #include "uverbs.h" | 41 | #include "uverbs.h" |
42 | 42 | ||
43 | #define IB_UMEM_MAX_PAGE_CHUNK \ | ||
44 | ((PAGE_SIZE - offsetof(struct ib_umem_chunk, page_list)) / \ | ||
45 | ((void *) &((struct ib_umem_chunk *) 0)->page_list[1] - \ | ||
46 | (void *) &((struct ib_umem_chunk *) 0)->page_list[0])) | ||
47 | |||
43 | static void __ib_umem_release(struct ib_device *dev, struct ib_umem *umem, int dirty) | 48 | static void __ib_umem_release(struct ib_device *dev, struct ib_umem *umem, int dirty) |
44 | { | 49 | { |
45 | struct ib_umem_chunk *chunk, *tmp; | 50 | struct ib_umem_chunk *chunk, *tmp; |
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c index 9574088f0d4e..1cdfcd43b0bc 100644 --- a/drivers/infiniband/hw/cxgb3/iwch_cm.c +++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c | |||
@@ -139,7 +139,7 @@ static void release_tid(struct t3cdev *tdev, u32 hwtid, struct sk_buff *skb) | |||
139 | req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); | 139 | req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_FORWARD)); |
140 | OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_TID_RELEASE, hwtid)); | 140 | OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_TID_RELEASE, hwtid)); |
141 | skb->priority = CPL_PRIORITY_SETUP; | 141 | skb->priority = CPL_PRIORITY_SETUP; |
142 | tdev->send(tdev, skb); | 142 | cxgb3_ofld_send(tdev, skb); |
143 | return; | 143 | return; |
144 | } | 144 | } |
145 | 145 | ||
@@ -161,7 +161,7 @@ int iwch_quiesce_tid(struct iwch_ep *ep) | |||
161 | req->val = cpu_to_be64(1 << S_TCB_RX_QUIESCE); | 161 | req->val = cpu_to_be64(1 << S_TCB_RX_QUIESCE); |
162 | 162 | ||
163 | skb->priority = CPL_PRIORITY_DATA; | 163 | skb->priority = CPL_PRIORITY_DATA; |
164 | ep->com.tdev->send(ep->com.tdev, skb); | 164 | cxgb3_ofld_send(ep->com.tdev, skb); |
165 | return 0; | 165 | return 0; |
166 | } | 166 | } |
167 | 167 | ||
@@ -183,7 +183,7 @@ int iwch_resume_tid(struct iwch_ep *ep) | |||
183 | req->val = 0; | 183 | req->val = 0; |
184 | 184 | ||
185 | skb->priority = CPL_PRIORITY_DATA; | 185 | skb->priority = CPL_PRIORITY_DATA; |
186 | ep->com.tdev->send(ep->com.tdev, skb); | 186 | cxgb3_ofld_send(ep->com.tdev, skb); |
187 | return 0; | 187 | return 0; |
188 | } | 188 | } |
189 | 189 | ||
@@ -784,7 +784,7 @@ static int update_rx_credits(struct iwch_ep *ep, u32 credits) | |||
784 | OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_RX_DATA_ACK, ep->hwtid)); | 784 | OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_RX_DATA_ACK, ep->hwtid)); |
785 | req->credit_dack = htonl(V_RX_CREDITS(credits) | V_RX_FORCE_ACK(1)); | 785 | req->credit_dack = htonl(V_RX_CREDITS(credits) | V_RX_FORCE_ACK(1)); |
786 | skb->priority = CPL_PRIORITY_ACK; | 786 | skb->priority = CPL_PRIORITY_ACK; |
787 | ep->com.tdev->send(ep->com.tdev, skb); | 787 | cxgb3_ofld_send(ep->com.tdev, skb); |
788 | return credits; | 788 | return credits; |
789 | } | 789 | } |
790 | 790 | ||
@@ -1152,7 +1152,7 @@ static int listen_start(struct iwch_listen_ep *ep) | |||
1152 | req->opt1 = htonl(V_CONN_POLICY(CPL_CONN_POLICY_ASK)); | 1152 | req->opt1 = htonl(V_CONN_POLICY(CPL_CONN_POLICY_ASK)); |
1153 | 1153 | ||
1154 | skb->priority = 1; | 1154 | skb->priority = 1; |
1155 | ep->com.tdev->send(ep->com.tdev, skb); | 1155 | cxgb3_ofld_send(ep->com.tdev, skb); |
1156 | return 0; | 1156 | return 0; |
1157 | } | 1157 | } |
1158 | 1158 | ||
@@ -1186,7 +1186,7 @@ static int listen_stop(struct iwch_listen_ep *ep) | |||
1186 | req->cpu_idx = 0; | 1186 | req->cpu_idx = 0; |
1187 | OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_CLOSE_LISTSRV_REQ, ep->stid)); | 1187 | OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_CLOSE_LISTSRV_REQ, ep->stid)); |
1188 | skb->priority = 1; | 1188 | skb->priority = 1; |
1189 | ep->com.tdev->send(ep->com.tdev, skb); | 1189 | cxgb3_ofld_send(ep->com.tdev, skb); |
1190 | return 0; | 1190 | return 0; |
1191 | } | 1191 | } |
1192 | 1192 | ||
@@ -1264,7 +1264,7 @@ static void reject_cr(struct t3cdev *tdev, u32 hwtid, __be32 peer_ip, | |||
1264 | rpl->opt0l_status = htonl(CPL_PASS_OPEN_REJECT); | 1264 | rpl->opt0l_status = htonl(CPL_PASS_OPEN_REJECT); |
1265 | rpl->opt2 = 0; | 1265 | rpl->opt2 = 0; |
1266 | rpl->rsvd = rpl->opt2; | 1266 | rpl->rsvd = rpl->opt2; |
1267 | tdev->send(tdev, skb); | 1267 | cxgb3_ofld_send(tdev, skb); |
1268 | } | 1268 | } |
1269 | } | 1269 | } |
1270 | 1270 | ||
@@ -1557,7 +1557,7 @@ static int peer_abort(struct t3cdev *tdev, struct sk_buff *skb, void *ctx) | |||
1557 | rpl->wr.wr_lo = htonl(V_WR_TID(ep->hwtid)); | 1557 | rpl->wr.wr_lo = htonl(V_WR_TID(ep->hwtid)); |
1558 | OPCODE_TID(rpl) = htonl(MK_OPCODE_TID(CPL_ABORT_RPL, ep->hwtid)); | 1558 | OPCODE_TID(rpl) = htonl(MK_OPCODE_TID(CPL_ABORT_RPL, ep->hwtid)); |
1559 | rpl->cmd = CPL_ABORT_NO_RST; | 1559 | rpl->cmd = CPL_ABORT_NO_RST; |
1560 | ep->com.tdev->send(ep->com.tdev, rpl_skb); | 1560 | cxgb3_ofld_send(ep->com.tdev, rpl_skb); |
1561 | if (state != ABORTING) { | 1561 | if (state != ABORTING) { |
1562 | state_set(&ep->com, DEAD); | 1562 | state_set(&ep->com, DEAD); |
1563 | release_ep_resources(ep); | 1563 | release_ep_resources(ep); |
diff --git a/drivers/infiniband/hw/mlx4/cq.c b/drivers/infiniband/hw/mlx4/cq.c index 660b27aecae5..8bf44daf45ec 100644 --- a/drivers/infiniband/hw/mlx4/cq.c +++ b/drivers/infiniband/hw/mlx4/cq.c | |||
@@ -389,7 +389,7 @@ static int mlx4_ib_poll_one(struct mlx4_ib_cq *cq, | |||
389 | wc->opcode = IB_WC_SEND; | 389 | wc->opcode = IB_WC_SEND; |
390 | break; | 390 | break; |
391 | case MLX4_OPCODE_RDMA_READ: | 391 | case MLX4_OPCODE_RDMA_READ: |
392 | wc->opcode = IB_WC_SEND; | 392 | wc->opcode = IB_WC_RDMA_READ; |
393 | wc->byte_len = be32_to_cpu(cqe->byte_cnt); | 393 | wc->byte_len = be32_to_cpu(cqe->byte_cnt); |
394 | break; | 394 | break; |
395 | case MLX4_OPCODE_ATOMIC_CS: | 395 | case MLX4_OPCODE_ATOMIC_CS: |
diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c index 333091787c5f..0ed02b7834da 100644 --- a/drivers/infiniband/hw/mlx4/mad.c +++ b/drivers/infiniband/hw/mlx4/mad.c | |||
@@ -109,7 +109,7 @@ int mlx4_MAD_IFC(struct mlx4_ib_dev *dev, int ignore_mkey, int ignore_bkey, | |||
109 | in_modifier, op_modifier, | 109 | in_modifier, op_modifier, |
110 | MLX4_CMD_MAD_IFC, MLX4_CMD_TIME_CLASS_C); | 110 | MLX4_CMD_MAD_IFC, MLX4_CMD_TIME_CLASS_C); |
111 | 111 | ||
112 | if (!err); | 112 | if (!err) |
113 | memcpy(response_mad, outmailbox->buf, 256); | 113 | memcpy(response_mad, outmailbox->buf, 256); |
114 | 114 | ||
115 | mlx4_free_cmd_mailbox(dev->dev, inmailbox); | 115 | mlx4_free_cmd_mailbox(dev->dev, inmailbox); |
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c index 982eb88e27ec..563aeacf9e14 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_verbs.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_verbs.c | |||
@@ -211,6 +211,7 @@ out_free_cq: | |||
211 | 211 | ||
212 | out_free_mr: | 212 | out_free_mr: |
213 | ib_dereg_mr(priv->mr); | 213 | ib_dereg_mr(priv->mr); |
214 | ipoib_cm_dev_cleanup(dev); | ||
214 | 215 | ||
215 | out_free_pd: | 216 | out_free_pd: |
216 | ib_dealloc_pd(priv->pd); | 217 | ib_dealloc_pd(priv->pd); |
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c index f01ca182f226..f6a051428144 100644 --- a/drivers/infiniband/ulp/srp/ib_srp.c +++ b/drivers/infiniband/ulp/srp/ib_srp.c | |||
@@ -75,16 +75,12 @@ module_param(topspin_workarounds, int, 0444); | |||
75 | MODULE_PARM_DESC(topspin_workarounds, | 75 | MODULE_PARM_DESC(topspin_workarounds, |
76 | "Enable workarounds for Topspin/Cisco SRP target bugs if != 0"); | 76 | "Enable workarounds for Topspin/Cisco SRP target bugs if != 0"); |
77 | 77 | ||
78 | static const u8 topspin_oui[3] = { 0x00, 0x05, 0xad }; | ||
79 | |||
80 | static int mellanox_workarounds = 1; | 78 | static int mellanox_workarounds = 1; |
81 | 79 | ||
82 | module_param(mellanox_workarounds, int, 0444); | 80 | module_param(mellanox_workarounds, int, 0444); |
83 | MODULE_PARM_DESC(mellanox_workarounds, | 81 | MODULE_PARM_DESC(mellanox_workarounds, |
84 | "Enable workarounds for Mellanox SRP target bugs if != 0"); | 82 | "Enable workarounds for Mellanox SRP target bugs if != 0"); |
85 | 83 | ||
86 | static const u8 mellanox_oui[3] = { 0x00, 0x02, 0xc9 }; | ||
87 | |||
88 | static void srp_add_one(struct ib_device *device); | 84 | static void srp_add_one(struct ib_device *device); |
89 | static void srp_remove_one(struct ib_device *device); | 85 | static void srp_remove_one(struct ib_device *device); |
90 | static void srp_completion(struct ib_cq *cq, void *target_ptr); | 86 | static void srp_completion(struct ib_cq *cq, void *target_ptr); |
@@ -108,6 +104,24 @@ static const char *srp_target_info(struct Scsi_Host *host) | |||
108 | return host_to_target(host)->target_name; | 104 | return host_to_target(host)->target_name; |
109 | } | 105 | } |
110 | 106 | ||
107 | static int srp_target_is_topspin(struct srp_target_port *target) | ||
108 | { | ||
109 | static const u8 topspin_oui[3] = { 0x00, 0x05, 0xad }; | ||
110 | static const u8 cisco_oui[3] = { 0x00, 0x1b, 0x0d }; | ||
111 | |||
112 | return topspin_workarounds && | ||
113 | (!memcmp(&target->ioc_guid, topspin_oui, sizeof topspin_oui) || | ||
114 | !memcmp(&target->ioc_guid, cisco_oui, sizeof cisco_oui)); | ||
115 | } | ||
116 | |||
117 | static int srp_target_is_mellanox(struct srp_target_port *target) | ||
118 | { | ||
119 | static const u8 mellanox_oui[3] = { 0x00, 0x02, 0xc9 }; | ||
120 | |||
121 | return mellanox_workarounds && | ||
122 | !memcmp(&target->ioc_guid, mellanox_oui, sizeof mellanox_oui); | ||
123 | } | ||
124 | |||
111 | static struct srp_iu *srp_alloc_iu(struct srp_host *host, size_t size, | 125 | static struct srp_iu *srp_alloc_iu(struct srp_host *host, size_t size, |
112 | gfp_t gfp_mask, | 126 | gfp_t gfp_mask, |
113 | enum dma_data_direction direction) | 127 | enum dma_data_direction direction) |
@@ -360,7 +374,7 @@ static int srp_send_req(struct srp_target_port *target) | |||
360 | * zero out the first 8 bytes of our initiator port ID and set | 374 | * zero out the first 8 bytes of our initiator port ID and set |
361 | * the second 8 bytes to the local node GUID. | 375 | * the second 8 bytes to the local node GUID. |
362 | */ | 376 | */ |
363 | if (topspin_workarounds && !memcmp(&target->ioc_guid, topspin_oui, 3)) { | 377 | if (srp_target_is_topspin(target)) { |
364 | printk(KERN_DEBUG PFX "Topspin/Cisco initiator port ID workaround " | 378 | printk(KERN_DEBUG PFX "Topspin/Cisco initiator port ID workaround " |
365 | "activated for target GUID %016llx\n", | 379 | "activated for target GUID %016llx\n", |
366 | (unsigned long long) be64_to_cpu(target->ioc_guid)); | 380 | (unsigned long long) be64_to_cpu(target->ioc_guid)); |
@@ -585,8 +599,8 @@ static int srp_map_fmr(struct srp_target_port *target, struct scatterlist *scat, | |||
585 | if (!dev->fmr_pool) | 599 | if (!dev->fmr_pool) |
586 | return -ENODEV; | 600 | return -ENODEV; |
587 | 601 | ||
588 | if ((ib_sg_dma_address(ibdev, &scat[0]) & ~dev->fmr_page_mask) && | 602 | if (srp_target_is_mellanox(target) && |
589 | mellanox_workarounds && !memcmp(&target->ioc_guid, mellanox_oui, 3)) | 603 | (ib_sg_dma_address(ibdev, &scat[0]) & ~dev->fmr_page_mask)) |
590 | return -EINVAL; | 604 | return -EINVAL; |
591 | 605 | ||
592 | len = page_cnt = 0; | 606 | len = page_cnt = 0; |
@@ -1087,8 +1101,7 @@ static void srp_cm_rej_handler(struct ib_cm_id *cm_id, | |||
1087 | break; | 1101 | break; |
1088 | 1102 | ||
1089 | case IB_CM_REJ_PORT_REDIRECT: | 1103 | case IB_CM_REJ_PORT_REDIRECT: |
1090 | if (topspin_workarounds && | 1104 | if (srp_target_is_topspin(target)) { |
1091 | !memcmp(&target->ioc_guid, topspin_oui, 3)) { | ||
1092 | /* | 1105 | /* |
1093 | * Topspin/Cisco SRP gateways incorrectly send | 1106 | * Topspin/Cisco SRP gateways incorrectly send |
1094 | * reject reason code 25 when they mean 24 | 1107 | * reject reason code 25 when they mean 24 |
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig index 9b26574f1466..d602b8fa7d46 100644 --- a/drivers/input/misc/Kconfig +++ b/drivers/input/misc/Kconfig | |||
@@ -68,6 +68,7 @@ config INPUT_WISTRON_BTNS | |||
68 | select INPUT_POLLDEV | 68 | select INPUT_POLLDEV |
69 | select NEW_LEDS | 69 | select NEW_LEDS |
70 | select LEDS_CLASS | 70 | select LEDS_CLASS |
71 | select CHECK_SIGNATURE | ||
71 | help | 72 | help |
72 | Say Y here for support of Winstron laptop button interface, used on | 73 | Say Y here for support of Winstron laptop button interface, used on |
73 | laptops of various brands, including Acer and Fujitsu-Siemens. If | 74 | laptops of various brands, including Acer and Fujitsu-Siemens. If |
diff --git a/drivers/isdn/hisax/hfc_usb.c b/drivers/isdn/hisax/hfc_usb.c index b1a26e02df02..60843b3f3b6f 100644 --- a/drivers/isdn/hisax/hfc_usb.c +++ b/drivers/isdn/hisax/hfc_usb.c | |||
@@ -1,12 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * hfc_usb.c | 2 | * hfc_usb.c |
3 | * | 3 | * |
4 | * $Id: hfc_usb.c,v 2.3.2.13 2006/02/17 17:17:22 mbachem Exp $ | 4 | * $Id: hfc_usb.c,v 2.3.2.20 2007/08/20 14:07:54 mbachem Exp $ |
5 | * | 5 | * |
6 | * modular HiSax ISDN driver for Colognechip HFC-S USB chip | 6 | * modular HiSax ISDN driver for Colognechip HFC-S USB chip |
7 | * | 7 | * |
8 | * Authors : Peter Sprenger (sprenger@moving-bytes.de) | 8 | * Authors : Peter Sprenger (sprenger@moving-bytes.de) |
9 | * Martin Bachem (info@colognechip.com) | 9 | * Martin Bachem (m.bachem@gmx.de, info@colognechip.com) |
10 | * | 10 | * |
11 | * based on the first hfc_usb driver of | 11 | * based on the first hfc_usb driver of |
12 | * Werner Cornelius (werner@isdn-development.de) | 12 | * Werner Cornelius (werner@isdn-development.de) |
@@ -37,24 +37,25 @@ | |||
37 | #include <linux/kernel_stat.h> | 37 | #include <linux/kernel_stat.h> |
38 | #include <linux/usb.h> | 38 | #include <linux/usb.h> |
39 | #include <linux/kernel.h> | 39 | #include <linux/kernel.h> |
40 | #include <linux/smp_lock.h> | ||
41 | #include <linux/sched.h> | ||
42 | #include <linux/moduleparam.h> | ||
40 | #include "hisax.h" | 43 | #include "hisax.h" |
41 | #include "hisax_if.h" | 44 | #include "hisax_if.h" |
42 | #include "hfc_usb.h" | 45 | #include "hfc_usb.h" |
43 | 46 | ||
44 | static const char *hfcusb_revision = | 47 | static const char *hfcusb_revision = |
45 | "$Revision: 2.3.2.13 $ $Date: 2006/02/17 17:17:22 $ "; | 48 | "$Revision: 2.3.2.20 $ $Date: 2007/08/20 14:07:54 $ "; |
46 | 49 | ||
47 | /* Hisax debug support | 50 | /* Hisax debug support |
48 | * use "modprobe debug=x" where x is bitfield of USB_DBG & ISDN_DBG | 51 | * debug flags defined in hfc_usb.h as HFCUSB_DBG_[*] |
49 | */ | 52 | */ |
50 | #ifdef CONFIG_HISAX_DEBUG | ||
51 | #include <linux/moduleparam.h> | ||
52 | #define __debug_variable hfc_debug | 53 | #define __debug_variable hfc_debug |
53 | #include "hisax_debug.h" | 54 | #include "hisax_debug.h" |
54 | static u_int debug; | 55 | static u_int debug; |
55 | module_param(debug, uint, 0); | 56 | module_param(debug, uint, 0); |
56 | static int hfc_debug; | 57 | static int hfc_debug; |
57 | #endif | 58 | |
58 | 59 | ||
59 | /* private vendor specific data */ | 60 | /* private vendor specific data */ |
60 | typedef struct { | 61 | typedef struct { |
@@ -63,9 +64,7 @@ typedef struct { | |||
63 | char *vend_name; // device name | 64 | char *vend_name; // device name |
64 | } hfcsusb_vdata; | 65 | } hfcsusb_vdata; |
65 | 66 | ||
66 | /****************************************/ | 67 | /* VID/PID device list */ |
67 | /* data defining the devices to be used */ | ||
68 | /****************************************/ | ||
69 | static struct usb_device_id hfcusb_idtab[] = { | 68 | static struct usb_device_id hfcusb_idtab[] = { |
70 | { | 69 | { |
71 | USB_DEVICE(0x0959, 0x2bd0), | 70 | USB_DEVICE(0x0959, 0x2bd0), |
@@ -90,49 +89,47 @@ static struct usb_device_id hfcusb_idtab[] = { | |||
90 | .driver_info = (unsigned long) &((hfcsusb_vdata) | 89 | .driver_info = (unsigned long) &((hfcsusb_vdata) |
91 | {LED_SCHEME1, {4, 0, 2, 1}, | 90 | {LED_SCHEME1, {4, 0, 2, 1}, |
92 | "Stollmann USB TA"}), | 91 | "Stollmann USB TA"}), |
93 | }, | 92 | }, |
94 | { | 93 | { |
95 | USB_DEVICE(0x0742, 0x2009), | 94 | USB_DEVICE(0x0742, 0x2009), |
96 | .driver_info = (unsigned long) &((hfcsusb_vdata) | 95 | .driver_info = (unsigned long) &((hfcsusb_vdata) |
97 | {LED_SCHEME1, {4, 0, 2, 1}, | 96 | {LED_SCHEME1, {4, 0, 2, 1}, |
98 | "Aceex USB ISDN TA"}), | 97 | "Aceex USB ISDN TA"}), |
99 | }, | 98 | }, |
100 | { | 99 | { |
101 | USB_DEVICE(0x0742, 0x200A), | 100 | USB_DEVICE(0x0742, 0x200A), |
102 | .driver_info = (unsigned long) &((hfcsusb_vdata) | 101 | .driver_info = (unsigned long) &((hfcsusb_vdata) |
103 | {LED_SCHEME1, {4, 0, 2, 1}, | 102 | {LED_SCHEME1, {4, 0, 2, 1}, |
104 | "OEM USB ISDN TA"}), | 103 | "OEM USB ISDN TA"}), |
105 | }, | 104 | }, |
106 | { | 105 | { |
107 | USB_DEVICE(0x08e3, 0x0301), | 106 | USB_DEVICE(0x08e3, 0x0301), |
108 | .driver_info = (unsigned long) &((hfcsusb_vdata) | 107 | .driver_info = (unsigned long) &((hfcsusb_vdata) |
109 | {LED_SCHEME1, {2, 0, 1, 4}, | 108 | {LED_SCHEME1, {2, 0, 1, 4}, |
110 | "Olitec USB RNIS"}), | 109 | "Olitec USB RNIS"}), |
111 | }, | 110 | }, |
112 | { | 111 | { |
113 | USB_DEVICE(0x07fa, 0x0846), | 112 | USB_DEVICE(0x07fa, 0x0846), |
114 | .driver_info = (unsigned long) &((hfcsusb_vdata) | 113 | .driver_info = (unsigned long) &((hfcsusb_vdata) |
115 | {LED_SCHEME1, {0x80, -64, -32, -16}, | 114 | {LED_SCHEME1, {0x80, -64, -32, -16}, |
116 | "Bewan Modem RNIS USB"}), | 115 | "Bewan Modem RNIS USB"}), |
117 | }, | 116 | }, |
118 | { | 117 | { |
119 | USB_DEVICE(0x07fa, 0x0847), | 118 | USB_DEVICE(0x07fa, 0x0847), |
120 | .driver_info = (unsigned long) &((hfcsusb_vdata) | 119 | .driver_info = (unsigned long) &((hfcsusb_vdata) |
121 | {LED_SCHEME1, {0x80, -64, -32, -16}, | 120 | {LED_SCHEME1, {0x80, -64, -32, -16}, |
122 | "Djinn Numeris USB"}), | 121 | "Djinn Numeris USB"}), |
123 | }, | 122 | }, |
124 | { | 123 | { |
125 | USB_DEVICE(0x07b0, 0x0006), | 124 | USB_DEVICE(0x07b0, 0x0006), |
126 | .driver_info = (unsigned long) &((hfcsusb_vdata) | 125 | .driver_info = (unsigned long) &((hfcsusb_vdata) |
127 | {LED_SCHEME1, {0x80, -64, -32, -16}, | 126 | {LED_SCHEME1, {0x80, -64, -32, -16}, |
128 | "Twister ISDN TA"}), | 127 | "Twister ISDN TA"}), |
129 | }, | 128 | }, |
130 | { } | 129 | { } |
131 | }; | 130 | }; |
132 | 131 | ||
133 | /***************************************************************/ | ||
134 | /* structure defining input+output fifos (interrupt/bulk mode) */ | 132 | /* structure defining input+output fifos (interrupt/bulk mode) */ |
135 | /***************************************************************/ | ||
136 | struct usb_fifo; /* forward definition */ | 133 | struct usb_fifo; /* forward definition */ |
137 | typedef struct iso_urb_struct { | 134 | typedef struct iso_urb_struct { |
138 | struct urb *purb; | 135 | struct urb *purb; |
@@ -140,8 +137,8 @@ typedef struct iso_urb_struct { | |||
140 | struct usb_fifo *owner_fifo; /* pointer to owner fifo */ | 137 | struct usb_fifo *owner_fifo; /* pointer to owner fifo */ |
141 | } iso_urb_struct; | 138 | } iso_urb_struct; |
142 | 139 | ||
143 | |||
144 | struct hfcusb_data; /* forward definition */ | 140 | struct hfcusb_data; /* forward definition */ |
141 | |||
145 | typedef struct usb_fifo { | 142 | typedef struct usb_fifo { |
146 | int fifonum; /* fifo index attached to this structure */ | 143 | int fifonum; /* fifo index attached to this structure */ |
147 | int active; /* fifo is currently active */ | 144 | int active; /* fifo is currently active */ |
@@ -160,15 +157,12 @@ typedef struct usb_fifo { | |||
160 | struct hisax_if *hif; /* hisax interface */ | 157 | struct hisax_if *hif; /* hisax interface */ |
161 | int delete_flg; /* only delete skbuff once */ | 158 | int delete_flg; /* only delete skbuff once */ |
162 | int last_urblen; /* remember length of last packet */ | 159 | int last_urblen; /* remember length of last packet */ |
163 | |||
164 | } usb_fifo; | 160 | } usb_fifo; |
165 | 161 | ||
166 | /*********************************************/ | ||
167 | /* structure holding all data for one device */ | 162 | /* structure holding all data for one device */ |
168 | /*********************************************/ | ||
169 | typedef struct hfcusb_data { | 163 | typedef struct hfcusb_data { |
170 | /* HiSax Interface for loadable Layer1 drivers */ | 164 | /* HiSax Interface for loadable Layer1 drivers */ |
171 | struct hisax_d_if d_if; /* see hisax_if.h */ | 165 | struct hisax_d_if d_if; /* see hisax_if.h */ |
172 | struct hisax_b_if b_if[2]; /* see hisax_if.h */ | 166 | struct hisax_b_if b_if[2]; /* see hisax_if.h */ |
173 | int protocol; | 167 | int protocol; |
174 | 168 | ||
@@ -176,12 +170,13 @@ typedef struct hfcusb_data { | |||
176 | int if_used; /* used interface number */ | 170 | int if_used; /* used interface number */ |
177 | int alt_used; /* used alternate config */ | 171 | int alt_used; /* used alternate config */ |
178 | int ctrl_paksize; /* control pipe packet size */ | 172 | int ctrl_paksize; /* control pipe packet size */ |
179 | int ctrl_in_pipe, ctrl_out_pipe; /* handles for control pipe */ | 173 | int ctrl_in_pipe, /* handles for control pipe */ |
174 | ctrl_out_pipe; | ||
180 | int cfg_used; /* configuration index used */ | 175 | int cfg_used; /* configuration index used */ |
181 | int vend_idx; /* vendor found */ | 176 | int vend_idx; /* vendor found */ |
182 | int b_mode[2]; /* B-channel mode */ | 177 | int b_mode[2]; /* B-channel mode */ |
183 | int l1_activated; /* layer 1 activated */ | 178 | int l1_activated; /* layer 1 activated */ |
184 | int disc_flag; /* 'true' if device was disonnected to avoid some USB actions */ | 179 | int disc_flag; /* TRUE if device was disonnected to avoid some USB actions */ |
185 | int packet_size, iso_packet_size; | 180 | int packet_size, iso_packet_size; |
186 | 181 | ||
187 | /* control pipe background handling */ | 182 | /* control pipe background handling */ |
@@ -208,7 +203,6 @@ typedef struct hfcusb_data { | |||
208 | static void collect_rx_frame(usb_fifo * fifo, __u8 * data, int len, | 203 | static void collect_rx_frame(usb_fifo * fifo, __u8 * data, int len, |
209 | int finish); | 204 | int finish); |
210 | 205 | ||
211 | |||
212 | static inline const char * | 206 | static inline const char * |
213 | symbolic(struct hfcusb_symbolic_list list[], const int num) | 207 | symbolic(struct hfcusb_symbolic_list list[], const int num) |
214 | { | 208 | { |
@@ -219,10 +213,6 @@ symbolic(struct hfcusb_symbolic_list list[], const int num) | |||
219 | return "<unknown ERROR>"; | 213 | return "<unknown ERROR>"; |
220 | } | 214 | } |
221 | 215 | ||
222 | |||
223 | /******************************************************/ | ||
224 | /* start next background transfer for control channel */ | ||
225 | /******************************************************/ | ||
226 | static void | 216 | static void |
227 | ctrl_start_transfer(hfcusb_data * hfc) | 217 | ctrl_start_transfer(hfcusb_data * hfc) |
228 | { | 218 | { |
@@ -240,10 +230,6 @@ ctrl_start_transfer(hfcusb_data * hfc) | |||
240 | } | 230 | } |
241 | } /* ctrl_start_transfer */ | 231 | } /* ctrl_start_transfer */ |
242 | 232 | ||
243 | /************************************/ | ||
244 | /* queue a control transfer request */ | ||
245 | /* return 0 on success. */ | ||
246 | /************************************/ | ||
247 | static int | 233 | static int |
248 | queue_control_request(hfcusb_data * hfc, __u8 reg, __u8 val, int action) | 234 | queue_control_request(hfcusb_data * hfc, __u8 reg, __u8 val, int action) |
249 | { | 235 | { |
@@ -260,19 +246,8 @@ queue_control_request(hfcusb_data * hfc, __u8 reg, __u8 val, int action) | |||
260 | if (++hfc->ctrl_cnt == 1) | 246 | if (++hfc->ctrl_cnt == 1) |
261 | ctrl_start_transfer(hfc); | 247 | ctrl_start_transfer(hfc); |
262 | return (0); | 248 | return (0); |
263 | } /* queue_control_request */ | ||
264 | |||
265 | static int | ||
266 | control_action_handler(hfcusb_data * hfc, int reg, int val, int action) | ||
267 | { | ||
268 | if (!action) | ||
269 | return (1); /* no action defined */ | ||
270 | return (0); | ||
271 | } | 249 | } |
272 | 250 | ||
273 | /***************************************************************/ | ||
274 | /* control completion routine handling background control cmds */ | ||
275 | /***************************************************************/ | ||
276 | static void | 251 | static void |
277 | ctrl_complete(struct urb *urb) | 252 | ctrl_complete(struct urb *urb) |
278 | { | 253 | { |
@@ -282,9 +257,6 @@ ctrl_complete(struct urb *urb) | |||
282 | urb->dev = hfc->dev; | 257 | urb->dev = hfc->dev; |
283 | if (hfc->ctrl_cnt) { | 258 | if (hfc->ctrl_cnt) { |
284 | buf = &hfc->ctrl_buff[hfc->ctrl_out_idx]; | 259 | buf = &hfc->ctrl_buff[hfc->ctrl_out_idx]; |
285 | control_action_handler(hfc, buf->hfc_reg, buf->reg_val, | ||
286 | buf->action); | ||
287 | |||
288 | hfc->ctrl_cnt--; /* decrement actual count */ | 260 | hfc->ctrl_cnt--; /* decrement actual count */ |
289 | if (++hfc->ctrl_out_idx >= HFC_CTRL_BUFSIZE) | 261 | if (++hfc->ctrl_out_idx >= HFC_CTRL_BUFSIZE) |
290 | hfc->ctrl_out_idx = 0; /* pointer wrap */ | 262 | hfc->ctrl_out_idx = 0; /* pointer wrap */ |
@@ -293,9 +265,7 @@ ctrl_complete(struct urb *urb) | |||
293 | } | 265 | } |
294 | } /* ctrl_complete */ | 266 | } /* ctrl_complete */ |
295 | 267 | ||
296 | /***************************************************/ | ||
297 | /* write led data to auxport & invert if necessary */ | 268 | /* write led data to auxport & invert if necessary */ |
298 | /***************************************************/ | ||
299 | static void | 269 | static void |
300 | write_led(hfcusb_data * hfc, __u8 led_state) | 270 | write_led(hfcusb_data * hfc, __u8 led_state) |
301 | { | 271 | { |
@@ -305,9 +275,6 @@ write_led(hfcusb_data * hfc, __u8 led_state) | |||
305 | } | 275 | } |
306 | } | 276 | } |
307 | 277 | ||
308 | /**************************/ | ||
309 | /* handle LED bits */ | ||
310 | /**************************/ | ||
311 | static void | 278 | static void |
312 | set_led_bit(hfcusb_data * hfc, signed short led_bits, int unset) | 279 | set_led_bit(hfcusb_data * hfc, signed short led_bits, int unset) |
313 | { | 280 | { |
@@ -324,9 +291,7 @@ set_led_bit(hfcusb_data * hfc, signed short led_bits, int unset) | |||
324 | } | 291 | } |
325 | } | 292 | } |
326 | 293 | ||
327 | /**************************/ | 294 | /* handle LED requests */ |
328 | /* handle LED requests */ | ||
329 | /**************************/ | ||
330 | static void | 295 | static void |
331 | handle_led(hfcusb_data * hfc, int event) | 296 | handle_led(hfcusb_data * hfc, int event) |
332 | { | 297 | { |
@@ -339,85 +304,73 @@ handle_led(hfcusb_data * hfc, int event) | |||
339 | 304 | ||
340 | switch (event) { | 305 | switch (event) { |
341 | case LED_POWER_ON: | 306 | case LED_POWER_ON: |
342 | set_led_bit(hfc, driver_info->led_bits[0], | 307 | set_led_bit(hfc, driver_info->led_bits[0], 0); |
343 | 0); | 308 | set_led_bit(hfc, driver_info->led_bits[1], 1); |
344 | set_led_bit(hfc, driver_info->led_bits[1], | 309 | set_led_bit(hfc, driver_info->led_bits[2], 1); |
345 | 1); | 310 | set_led_bit(hfc, driver_info->led_bits[3], 1); |
346 | set_led_bit(hfc, driver_info->led_bits[2], | ||
347 | 1); | ||
348 | set_led_bit(hfc, driver_info->led_bits[3], | ||
349 | 1); | ||
350 | break; | 311 | break; |
351 | case LED_POWER_OFF: /* no Power off handling */ | 312 | case LED_POWER_OFF: |
313 | set_led_bit(hfc, driver_info->led_bits[0], 1); | ||
314 | set_led_bit(hfc, driver_info->led_bits[1], 1); | ||
315 | set_led_bit(hfc, driver_info->led_bits[2], 1); | ||
316 | set_led_bit(hfc, driver_info->led_bits[3], 1); | ||
352 | break; | 317 | break; |
353 | case LED_S0_ON: | 318 | case LED_S0_ON: |
354 | set_led_bit(hfc, driver_info->led_bits[1], | 319 | set_led_bit(hfc, driver_info->led_bits[1], 0); |
355 | 0); | ||
356 | break; | 320 | break; |
357 | case LED_S0_OFF: | 321 | case LED_S0_OFF: |
358 | set_led_bit(hfc, driver_info->led_bits[1], | 322 | set_led_bit(hfc, driver_info->led_bits[1], 1); |
359 | 1); | ||
360 | break; | 323 | break; |
361 | case LED_B1_ON: | 324 | case LED_B1_ON: |
362 | set_led_bit(hfc, driver_info->led_bits[2], | 325 | set_led_bit(hfc, driver_info->led_bits[2], 0); |
363 | 0); | ||
364 | break; | 326 | break; |
365 | case LED_B1_OFF: | 327 | case LED_B1_OFF: |
366 | set_led_bit(hfc, driver_info->led_bits[2], | 328 | set_led_bit(hfc, driver_info->led_bits[2], 1); |
367 | 1); | ||
368 | break; | 329 | break; |
369 | case LED_B2_ON: | 330 | case LED_B2_ON: |
370 | set_led_bit(hfc, driver_info->led_bits[3], | 331 | set_led_bit(hfc, driver_info->led_bits[3], 0); |
371 | 0); | ||
372 | break; | 332 | break; |
373 | case LED_B2_OFF: | 333 | case LED_B2_OFF: |
374 | set_led_bit(hfc, driver_info->led_bits[3], | 334 | set_led_bit(hfc, driver_info->led_bits[3], 1); |
375 | 1); | ||
376 | break; | 335 | break; |
377 | } | 336 | } |
378 | write_led(hfc, hfc->led_state); | 337 | write_led(hfc, hfc->led_state); |
379 | } | 338 | } |
380 | 339 | ||
381 | /********************************/ | 340 | /* ISDN l1 timer T3 expires */ |
382 | /* called when timer t3 expires */ | ||
383 | /********************************/ | ||
384 | static void | 341 | static void |
385 | l1_timer_expire_t3(hfcusb_data * hfc) | 342 | l1_timer_expire_t3(hfcusb_data * hfc) |
386 | { | 343 | { |
387 | hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, PH_DEACTIVATE | INDICATION, | 344 | hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, PH_DEACTIVATE | INDICATION, |
388 | NULL); | 345 | NULL); |
389 | #ifdef CONFIG_HISAX_DEBUG | 346 | |
390 | DBG(ISDN_DBG, | 347 | DBG(HFCUSB_DBG_STATES, |
391 | "HFC-S USB: PH_DEACTIVATE | INDICATION sent (T3 expire)"); | 348 | "HFC-S USB: PH_DEACTIVATE | INDICATION sent (T3 expire)"); |
392 | #endif | 349 | |
393 | hfc->l1_activated = false; | 350 | hfc->l1_activated = 0; |
394 | handle_led(hfc, LED_S0_OFF); | 351 | handle_led(hfc, LED_S0_OFF); |
395 | /* deactivate : */ | 352 | /* deactivate : */ |
396 | queue_control_request(hfc, HFCUSB_STATES, 0x10, 1); | 353 | queue_control_request(hfc, HFCUSB_STATES, 0x10, 1); |
397 | queue_control_request(hfc, HFCUSB_STATES, 3, 1); | 354 | queue_control_request(hfc, HFCUSB_STATES, 3, 1); |
398 | } | 355 | } |
399 | 356 | ||
400 | /********************************/ | 357 | /* ISDN l1 timer T4 expires */ |
401 | /* called when timer t4 expires */ | ||
402 | /********************************/ | ||
403 | static void | 358 | static void |
404 | l1_timer_expire_t4(hfcusb_data * hfc) | 359 | l1_timer_expire_t4(hfcusb_data * hfc) |
405 | { | 360 | { |
406 | hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, PH_DEACTIVATE | INDICATION, | 361 | hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, PH_DEACTIVATE | INDICATION, |
407 | NULL); | 362 | NULL); |
408 | #ifdef CONFIG_HISAX_DEBUG | 363 | |
409 | DBG(ISDN_DBG, | 364 | DBG(HFCUSB_DBG_STATES, |
410 | "HFC-S USB: PH_DEACTIVATE | INDICATION sent (T4 expire)"); | 365 | "HFC-S USB: PH_DEACTIVATE | INDICATION sent (T4 expire)"); |
411 | #endif | 366 | |
412 | hfc->l1_activated = false; | 367 | hfc->l1_activated = 0; |
413 | handle_led(hfc, LED_S0_OFF); | 368 | handle_led(hfc, LED_S0_OFF); |
414 | } | 369 | } |
415 | 370 | ||
416 | /*****************************/ | 371 | /* S0 state changed */ |
417 | /* handle S0 state changes */ | ||
418 | /*****************************/ | ||
419 | static void | 372 | static void |
420 | state_handler(hfcusb_data * hfc, __u8 state) | 373 | s0_state_handler(hfcusb_data * hfc, __u8 state) |
421 | { | 374 | { |
422 | __u8 old_state; | 375 | __u8 old_state; |
423 | 376 | ||
@@ -425,38 +378,29 @@ state_handler(hfcusb_data * hfc, __u8 state) | |||
425 | if (state == old_state || state < 1 || state > 8) | 378 | if (state == old_state || state < 1 || state > 8) |
426 | return; | 379 | return; |
427 | 380 | ||
428 | #ifdef CONFIG_HISAX_DEBUG | 381 | DBG(HFCUSB_DBG_STATES, "HFC-S USB: S0 statechange(%d -> %d)", |
429 | DBG(ISDN_DBG, "HFC-S USB: new S0 state:%d old_state:%d", state, | 382 | old_state, state); |
430 | old_state); | 383 | |
431 | #endif | ||
432 | if (state < 4 || state == 7 || state == 8) { | 384 | if (state < 4 || state == 7 || state == 8) { |
433 | if (timer_pending(&hfc->t3_timer)) | 385 | if (timer_pending(&hfc->t3_timer)) |
434 | del_timer(&hfc->t3_timer); | 386 | del_timer(&hfc->t3_timer); |
435 | #ifdef CONFIG_HISAX_DEBUG | 387 | DBG(HFCUSB_DBG_STATES, "HFC-S USB: T3 deactivated"); |
436 | DBG(ISDN_DBG, "HFC-S USB: T3 deactivated"); | ||
437 | #endif | ||
438 | } | 388 | } |
439 | if (state >= 7) { | 389 | if (state >= 7) { |
440 | if (timer_pending(&hfc->t4_timer)) | 390 | if (timer_pending(&hfc->t4_timer)) |
441 | del_timer(&hfc->t4_timer); | 391 | del_timer(&hfc->t4_timer); |
442 | #ifdef CONFIG_HISAX_DEBUG | 392 | DBG(HFCUSB_DBG_STATES, "HFC-S USB: T4 deactivated"); |
443 | DBG(ISDN_DBG, "HFC-S USB: T4 deactivated"); | ||
444 | #endif | ||
445 | } | 393 | } |
446 | 394 | ||
447 | if (state == 7 && !hfc->l1_activated) { | 395 | if (state == 7 && !hfc->l1_activated) { |
448 | hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, | 396 | hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, |
449 | PH_ACTIVATE | INDICATION, NULL); | 397 | PH_ACTIVATE | INDICATION, NULL); |
450 | #ifdef CONFIG_HISAX_DEBUG | 398 | DBG(HFCUSB_DBG_STATES, "HFC-S USB: PH_ACTIVATE | INDICATION sent"); |
451 | DBG(ISDN_DBG, "HFC-S USB: PH_ACTIVATE | INDICATION sent"); | 399 | hfc->l1_activated = 1; |
452 | #endif | ||
453 | hfc->l1_activated = true; | ||
454 | handle_led(hfc, LED_S0_ON); | 400 | handle_led(hfc, LED_S0_ON); |
455 | } else if (state <= 3 /* && activated */ ) { | 401 | } else if (state <= 3 /* && activated */ ) { |
456 | if (old_state == 7 || old_state == 8) { | 402 | if (old_state == 7 || old_state == 8) { |
457 | #ifdef CONFIG_HISAX_DEBUG | 403 | DBG(HFCUSB_DBG_STATES, "HFC-S USB: T4 activated"); |
458 | DBG(ISDN_DBG, "HFC-S USB: T4 activated"); | ||
459 | #endif | ||
460 | if (!timer_pending(&hfc->t4_timer)) { | 404 | if (!timer_pending(&hfc->t4_timer)) { |
461 | hfc->t4_timer.expires = | 405 | hfc->t4_timer.expires = |
462 | jiffies + (HFC_TIMER_T4 * HZ) / 1000; | 406 | jiffies + (HFC_TIMER_T4 * HZ) / 1000; |
@@ -466,18 +410,15 @@ state_handler(hfcusb_data * hfc, __u8 state) | |||
466 | hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, | 410 | hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, |
467 | PH_DEACTIVATE | INDICATION, | 411 | PH_DEACTIVATE | INDICATION, |
468 | NULL); | 412 | NULL); |
469 | #ifdef CONFIG_HISAX_DEBUG | 413 | DBG(HFCUSB_DBG_STATES, |
470 | DBG(ISDN_DBG, | ||
471 | "HFC-S USB: PH_DEACTIVATE | INDICATION sent"); | 414 | "HFC-S USB: PH_DEACTIVATE | INDICATION sent"); |
472 | #endif | 415 | hfc->l1_activated = 0; |
473 | hfc->l1_activated = false; | ||
474 | handle_led(hfc, LED_S0_OFF); | 416 | handle_led(hfc, LED_S0_OFF); |
475 | } | 417 | } |
476 | } | 418 | } |
477 | hfc->l1_state = state; | 419 | hfc->l1_state = state; |
478 | } | 420 | } |
479 | 421 | ||
480 | /* prepare iso urb */ | ||
481 | static void | 422 | static void |
482 | fill_isoc_urb(struct urb *urb, struct usb_device *dev, unsigned int pipe, | 423 | fill_isoc_urb(struct urb *urb, struct usb_device *dev, unsigned int pipe, |
483 | void *buf, int num_packets, int packet_size, int interval, | 424 | void *buf, int num_packets, int packet_size, int interval, |
@@ -503,15 +444,16 @@ fill_isoc_urb(struct urb *urb, struct usb_device *dev, unsigned int pipe, | |||
503 | } | 444 | } |
504 | 445 | ||
505 | /* allocs urbs and start isoc transfer with two pending urbs to avoid | 446 | /* allocs urbs and start isoc transfer with two pending urbs to avoid |
506 | gaps in the transfer chain */ | 447 | * gaps in the transfer chain |
448 | */ | ||
507 | static int | 449 | static int |
508 | start_isoc_chain(usb_fifo * fifo, int num_packets_per_urb, | 450 | start_isoc_chain(usb_fifo * fifo, int num_packets_per_urb, |
509 | usb_complete_t complete, int packet_size) | 451 | usb_complete_t complete, int packet_size) |
510 | { | 452 | { |
511 | int i, k, errcode; | 453 | int i, k, errcode; |
512 | 454 | ||
513 | printk(KERN_INFO "HFC-S USB: starting ISO-chain for Fifo %i\n", | 455 | DBG(HFCUSB_DBG_INIT, "HFC-S USB: starting ISO-URBs for fifo:%d\n", |
514 | fifo->fifonum); | 456 | fifo->fifonum); |
515 | 457 | ||
516 | /* allocate Memory for Iso out Urbs */ | 458 | /* allocate Memory for Iso out Urbs */ |
517 | for (i = 0; i < 2; i++) { | 459 | for (i = 0; i < 2; i++) { |
@@ -556,10 +498,9 @@ start_isoc_chain(usb_fifo * fifo, int num_packets_per_urb, | |||
556 | 498 | ||
557 | errcode = usb_submit_urb(fifo->iso[i].purb, GFP_KERNEL); | 499 | errcode = usb_submit_urb(fifo->iso[i].purb, GFP_KERNEL); |
558 | fifo->active = (errcode >= 0) ? 1 : 0; | 500 | fifo->active = (errcode >= 0) ? 1 : 0; |
559 | if (errcode < 0) { | 501 | if (errcode < 0) |
560 | printk(KERN_INFO "HFC-S USB: %s URB nr:%d\n", | 502 | printk(KERN_INFO "HFC-S USB: usb_submit_urb URB nr:%d, error(%i): '%s'\n", |
561 | symbolic(urb_errlist, errcode), i); | 503 | i, errcode, symbolic(urb_errlist, errcode)); |
562 | }; | ||
563 | } | 504 | } |
564 | return (fifo->active); | 505 | return (fifo->active); |
565 | } | 506 | } |
@@ -572,16 +513,15 @@ stop_isoc_chain(usb_fifo * fifo) | |||
572 | 513 | ||
573 | for (i = 0; i < 2; i++) { | 514 | for (i = 0; i < 2; i++) { |
574 | if (fifo->iso[i].purb) { | 515 | if (fifo->iso[i].purb) { |
575 | #ifdef CONFIG_HISAX_DEBUG | 516 | DBG(HFCUSB_DBG_INIT, |
576 | DBG(USB_DBG, | ||
577 | "HFC-S USB: Stopping iso chain for fifo %i.%i", | 517 | "HFC-S USB: Stopping iso chain for fifo %i.%i", |
578 | fifo->fifonum, i); | 518 | fifo->fifonum, i); |
579 | #endif | ||
580 | usb_kill_urb(fifo->iso[i].purb); | 519 | usb_kill_urb(fifo->iso[i].purb); |
581 | usb_free_urb(fifo->iso[i].purb); | 520 | usb_free_urb(fifo->iso[i].purb); |
582 | fifo->iso[i].purb = NULL; | 521 | fifo->iso[i].purb = NULL; |
583 | } | 522 | } |
584 | } | 523 | } |
524 | |||
585 | usb_kill_urb(fifo->urb); | 525 | usb_kill_urb(fifo->urb); |
586 | usb_free_urb(fifo->urb); | 526 | usb_free_urb(fifo->urb); |
587 | fifo->urb = NULL; | 527 | fifo->urb = NULL; |
@@ -594,9 +534,6 @@ static int iso_packets[8] = | |||
594 | ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D | 534 | ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D, ISOC_PACKETS_D |
595 | }; | 535 | }; |
596 | 536 | ||
597 | /*****************************************************/ | ||
598 | /* transmit completion routine for all ISO tx fifos */ | ||
599 | /*****************************************************/ | ||
600 | static void | 537 | static void |
601 | tx_iso_complete(struct urb *urb) | 538 | tx_iso_complete(struct urb *urb) |
602 | { | 539 | { |
@@ -607,20 +544,38 @@ tx_iso_complete(struct urb *urb) | |||
607 | errcode; | 544 | errcode; |
608 | int frame_complete, transp_mode, fifon, status; | 545 | int frame_complete, transp_mode, fifon, status; |
609 | __u8 threshbit; | 546 | __u8 threshbit; |
610 | __u8 threshtable[8] = { 1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80 }; | ||
611 | 547 | ||
612 | fifon = fifo->fifonum; | 548 | fifon = fifo->fifonum; |
613 | status = urb->status; | 549 | status = urb->status; |
614 | 550 | ||
615 | tx_offset = 0; | 551 | tx_offset = 0; |
616 | 552 | ||
553 | /* ISO transfer only partially completed, | ||
554 | look at individual frame status for details */ | ||
555 | if (status == -EXDEV) { | ||
556 | DBG(HFCUSB_DBG_VERBOSE_USB, "HFC-S USB: tx_iso_complete with -EXDEV" | ||
557 | ", urb->status %d, fifonum %d\n", | ||
558 | status, fifon); | ||
559 | |||
560 | for (k = 0; k < iso_packets[fifon]; ++k) { | ||
561 | errcode = urb->iso_frame_desc[k].status; | ||
562 | if (errcode) | ||
563 | DBG(HFCUSB_DBG_VERBOSE_USB, "HFC-S USB: tx_iso_complete " | ||
564 | "packet %i, status: %i\n", | ||
565 | k, errcode); | ||
566 | } | ||
567 | |||
568 | // clear status, so go on with ISO transfers | ||
569 | status = 0; | ||
570 | } | ||
571 | |||
617 | if (fifo->active && !status) { | 572 | if (fifo->active && !status) { |
618 | transp_mode = 0; | 573 | transp_mode = 0; |
619 | if (fifon < 4 && hfc->b_mode[fifon / 2] == L1_MODE_TRANS) | 574 | if (fifon < 4 && hfc->b_mode[fifon / 2] == L1_MODE_TRANS) |
620 | transp_mode = true; | 575 | transp_mode = 1; |
621 | 576 | ||
622 | /* is FifoFull-threshold set for our channel? */ | 577 | /* is FifoFull-threshold set for our channel? */ |
623 | threshbit = threshtable[fifon] & hfc->threshold_mask; | 578 | threshbit = (hfc->threshold_mask & (1 << fifon)); |
624 | num_isoc_packets = iso_packets[fifon]; | 579 | num_isoc_packets = iso_packets[fifon]; |
625 | 580 | ||
626 | /* predict dataflow to avoid fifo overflow */ | 581 | /* predict dataflow to avoid fifo overflow */ |
@@ -635,8 +590,9 @@ tx_iso_complete(struct urb *urb) | |||
635 | tx_iso_complete, urb->context); | 590 | tx_iso_complete, urb->context); |
636 | memset(context_iso_urb->buffer, 0, | 591 | memset(context_iso_urb->buffer, 0, |
637 | sizeof(context_iso_urb->buffer)); | 592 | sizeof(context_iso_urb->buffer)); |
638 | frame_complete = false; | 593 | frame_complete = 0; |
639 | /* Generate next Iso Packets */ | 594 | |
595 | /* Generate next ISO Packets */ | ||
640 | for (k = 0; k < num_isoc_packets; ++k) { | 596 | for (k = 0; k < num_isoc_packets; ++k) { |
641 | if (fifo->skbuff) { | 597 | if (fifo->skbuff) { |
642 | len = fifo->skbuff->len; | 598 | len = fifo->skbuff->len; |
@@ -661,7 +617,7 @@ tx_iso_complete(struct urb *urb) | |||
661 | /* add 2 byte flags and 16bit CRC at end of ISDN frame */ | 617 | /* add 2 byte flags and 16bit CRC at end of ISDN frame */ |
662 | fifo->bit_line += 32; | 618 | fifo->bit_line += 32; |
663 | } | 619 | } |
664 | frame_complete = true; | 620 | frame_complete = 1; |
665 | } | 621 | } |
666 | 622 | ||
667 | memcpy(context_iso_urb->buffer + | 623 | memcpy(context_iso_urb->buffer + |
@@ -688,7 +644,7 @@ tx_iso_complete(struct urb *urb) | |||
688 | } | 644 | } |
689 | 645 | ||
690 | if (frame_complete) { | 646 | if (frame_complete) { |
691 | fifo->delete_flg = true; | 647 | fifo->delete_flg = 1; |
692 | fifo->hif->l1l2(fifo->hif, | 648 | fifo->hif->l1l2(fifo->hif, |
693 | PH_DATA | CONFIRM, | 649 | PH_DATA | CONFIRM, |
694 | (void *) (unsigned long) fifo->skbuff-> | 650 | (void *) (unsigned long) fifo->skbuff-> |
@@ -696,30 +652,26 @@ tx_iso_complete(struct urb *urb) | |||
696 | if (fifo->skbuff && fifo->delete_flg) { | 652 | if (fifo->skbuff && fifo->delete_flg) { |
697 | dev_kfree_skb_any(fifo->skbuff); | 653 | dev_kfree_skb_any(fifo->skbuff); |
698 | fifo->skbuff = NULL; | 654 | fifo->skbuff = NULL; |
699 | fifo->delete_flg = false; | 655 | fifo->delete_flg = 0; |
700 | } | 656 | } |
701 | frame_complete = false; | 657 | frame_complete = 0; |
702 | } | 658 | } |
703 | } | 659 | } |
704 | errcode = usb_submit_urb(urb, GFP_ATOMIC); | 660 | errcode = usb_submit_urb(urb, GFP_ATOMIC); |
705 | if (errcode < 0) { | 661 | if (errcode < 0) { |
706 | printk(KERN_INFO | 662 | printk(KERN_INFO |
707 | "HFC-S USB: error submitting ISO URB: %d \n", | 663 | "HFC-S USB: error submitting ISO URB: %d\n", |
708 | errcode); | 664 | errcode); |
709 | } | 665 | } |
710 | } else { | 666 | } else { |
711 | if (status && !hfc->disc_flag) { | 667 | if (status && !hfc->disc_flag) { |
712 | printk(KERN_INFO | 668 | printk(KERN_INFO |
713 | "HFC-S USB: tx_iso_complete : urb->status %s (%i), fifonum=%d\n", | 669 | "HFC-S USB: tx_iso_complete: error(%i): '%s', fifonum=%d\n", |
714 | symbolic(urb_errlist, status), status, | 670 | status, symbolic(urb_errlist, status), fifon); |
715 | fifon); | ||
716 | } | 671 | } |
717 | } | 672 | } |
718 | } /* tx_iso_complete */ | 673 | } |
719 | 674 | ||
720 | /*****************************************************/ | ||
721 | /* receive completion routine for all ISO tx fifos */ | ||
722 | /*****************************************************/ | ||
723 | static void | 675 | static void |
724 | rx_iso_complete(struct urb *urb) | 676 | rx_iso_complete(struct urb *urb) |
725 | { | 677 | { |
@@ -731,21 +683,25 @@ rx_iso_complete(struct urb *urb) | |||
731 | unsigned int iso_status; | 683 | unsigned int iso_status; |
732 | __u8 *buf; | 684 | __u8 *buf; |
733 | static __u8 eof[8]; | 685 | static __u8 eof[8]; |
734 | #ifdef CONFIG_HISAX_DEBUG | ||
735 | __u8 i; | ||
736 | #endif | ||
737 | 686 | ||
738 | fifon = fifo->fifonum; | 687 | fifon = fifo->fifonum; |
739 | status = urb->status; | 688 | status = urb->status; |
740 | 689 | ||
741 | if (urb->status == -EOVERFLOW) { | 690 | if (urb->status == -EOVERFLOW) { |
742 | #ifdef CONFIG_HISAX_DEBUG | 691 | DBG(HFCUSB_DBG_VERBOSE_USB, |
743 | DBG(USB_DBG, | 692 | "HFC-USB: ignoring USB DATAOVERRUN fifo(%i)", fifon); |
744 | "HFC-USB: ignoring USB DATAOVERRUN for fifo %i \n", | 693 | status = 0; |
745 | fifon); | 694 | } |
746 | #endif | 695 | |
696 | /* ISO transfer only partially completed, | ||
697 | look at individual frame status for details */ | ||
698 | if (status == -EXDEV) { | ||
699 | DBG(HFCUSB_DBG_VERBOSE_USB, "HFC-S USB: rx_iso_complete with -EXDEV " | ||
700 | "urb->status %d, fifonum %d\n", | ||
701 | status, fifon); | ||
747 | status = 0; | 702 | status = 0; |
748 | } | 703 | } |
704 | |||
749 | if (fifo->active && !status) { | 705 | if (fifo->active && !status) { |
750 | num_isoc_packets = iso_packets[fifon]; | 706 | num_isoc_packets = iso_packets[fifon]; |
751 | maxlen = fifo->usb_packet_maxlen; | 707 | maxlen = fifo->usb_packet_maxlen; |
@@ -754,40 +710,38 @@ rx_iso_complete(struct urb *urb) | |||
754 | offset = urb->iso_frame_desc[k].offset; | 710 | offset = urb->iso_frame_desc[k].offset; |
755 | buf = context_iso_urb->buffer + offset; | 711 | buf = context_iso_urb->buffer + offset; |
756 | iso_status = urb->iso_frame_desc[k].status; | 712 | iso_status = urb->iso_frame_desc[k].status; |
757 | #ifdef CONFIG_HISAX_DEBUG | 713 | |
758 | if (iso_status && !hfc->disc_flag) | 714 | if (iso_status && !hfc->disc_flag) |
759 | DBG(USB_DBG, | 715 | DBG(HFCUSB_DBG_VERBOSE_USB, |
760 | "HFC-S USB: ISO packet failure - status:%x", | 716 | "HFC-S USB: rx_iso_complete " |
761 | iso_status); | 717 | "ISO packet %i, status: %i\n", |
718 | k, iso_status); | ||
762 | 719 | ||
763 | if ((fifon == 5) && (debug > 1)) { | 720 | if (fifon == HFCUSB_D_RX) { |
764 | printk(KERN_INFO | 721 | DBG(HFCUSB_DBG_VERBOSE_USB, |
765 | "HFC-S USB: ISO-D-RX lst_urblen:%2d " | 722 | "HFC-S USB: ISO-D-RX lst_urblen:%2d " |
766 | "act_urblen:%2d max-urblen:%2d " | 723 | "act_urblen:%2d max-urblen:%2d EOF:0x%0x", |
767 | "EOF:0x%0x DATA: ", | ||
768 | fifo->last_urblen, len, maxlen, | 724 | fifo->last_urblen, len, maxlen, |
769 | eof[5]); | 725 | eof[5]); |
770 | for (i = 0; i < len; i++) | 726 | |
771 | printk("%.2x ", buf[i]); | 727 | DBG_PACKET(HFCUSB_DBG_VERBOSE_USB, buf, len); |
772 | printk("\n"); | ||
773 | } | 728 | } |
774 | #endif | 729 | |
775 | if (fifo->last_urblen != maxlen) { | 730 | if (fifo->last_urblen != maxlen) { |
776 | /* the threshold mask is in the 2nd status byte */ | 731 | /* the threshold mask is in the 2nd status byte */ |
777 | hfc->threshold_mask = buf[1]; | 732 | hfc->threshold_mask = buf[1]; |
778 | /* care for L1 state only for D-Channel | 733 | /* care for L1 state only for D-Channel |
779 | to avoid overlapped iso completions */ | 734 | to avoid overlapped iso completions */ |
780 | if (fifon == 5) { | 735 | if (fifon == HFCUSB_D_RX) { |
781 | /* the S0 state is in the upper half | 736 | /* the S0 state is in the upper half |
782 | of the 1st status byte */ | 737 | of the 1st status byte */ |
783 | state_handler(hfc, buf[0] >> 4); | 738 | s0_state_handler(hfc, buf[0] >> 4); |
784 | } | 739 | } |
785 | eof[fifon] = buf[0] & 1; | 740 | eof[fifon] = buf[0] & 1; |
786 | if (len > 2) | 741 | if (len > 2) |
787 | collect_rx_frame(fifo, buf + 2, | 742 | collect_rx_frame(fifo, buf + 2, |
788 | len - 2, | 743 | len - 2, |
789 | (len < | 744 | (len < maxlen) ? |
790 | maxlen) ? | ||
791 | eof[fifon] : 0); | 745 | eof[fifon] : 0); |
792 | } else { | 746 | } else { |
793 | collect_rx_frame(fifo, buf, len, | 747 | collect_rx_frame(fifo, buf, len, |
@@ -804,41 +758,37 @@ rx_iso_complete(struct urb *urb) | |||
804 | rx_iso_complete, urb->context); | 758 | rx_iso_complete, urb->context); |
805 | errcode = usb_submit_urb(urb, GFP_ATOMIC); | 759 | errcode = usb_submit_urb(urb, GFP_ATOMIC); |
806 | if (errcode < 0) { | 760 | if (errcode < 0) { |
807 | printk(KERN_INFO | 761 | printk(KERN_ERR |
808 | "HFC-S USB: error submitting ISO URB: %d \n", | 762 | "HFC-S USB: error submitting ISO URB: %d\n", |
809 | errcode); | 763 | errcode); |
810 | } | 764 | } |
811 | } else { | 765 | } else { |
812 | if (status && !hfc->disc_flag) { | 766 | if (status && !hfc->disc_flag) { |
813 | printk(KERN_INFO | 767 | printk(KERN_ERR |
814 | "HFC-S USB: rx_iso_complete : " | 768 | "HFC-S USB: rx_iso_complete : " |
815 | "urb->status %d, fifonum %d\n", | 769 | "urb->status %d, fifonum %d\n", |
816 | status, fifon); | 770 | status, fifon); |
817 | } | 771 | } |
818 | } | 772 | } |
819 | } /* rx_iso_complete */ | 773 | } |
820 | 774 | ||
821 | /*****************************************************/ | 775 | /* collect rx data from INT- and ISO-URBs */ |
822 | /* collect data from interrupt or isochron in */ | ||
823 | /*****************************************************/ | ||
824 | static void | 776 | static void |
825 | collect_rx_frame(usb_fifo * fifo, __u8 * data, int len, int finish) | 777 | collect_rx_frame(usb_fifo * fifo, __u8 * data, int len, int finish) |
826 | { | 778 | { |
827 | hfcusb_data *hfc = fifo->hfc; | 779 | hfcusb_data *hfc = fifo->hfc; |
828 | int transp_mode, fifon; | 780 | int transp_mode, fifon; |
829 | #ifdef CONFIG_HISAX_DEBUG | 781 | |
830 | int i; | ||
831 | #endif | ||
832 | fifon = fifo->fifonum; | 782 | fifon = fifo->fifonum; |
833 | transp_mode = 0; | 783 | transp_mode = 0; |
834 | if (fifon < 4 && hfc->b_mode[fifon / 2] == L1_MODE_TRANS) | 784 | if (fifon < 4 && hfc->b_mode[fifon / 2] == L1_MODE_TRANS) |
835 | transp_mode = true; | 785 | transp_mode = 1; |
836 | 786 | ||
837 | if (!fifo->skbuff) { | 787 | if (!fifo->skbuff) { |
838 | fifo->skbuff = dev_alloc_skb(fifo->max_size + 3); | 788 | fifo->skbuff = dev_alloc_skb(fifo->max_size + 3); |
839 | if (!fifo->skbuff) { | 789 | if (!fifo->skbuff) { |
840 | printk(KERN_INFO | 790 | printk(KERN_ERR |
841 | "HFC-S USB: cannot allocate buffer (dev_alloc_skb) fifo:%d\n", | 791 | "HFC-S USB: cannot allocate buffer for fifo(%d)\n", |
842 | fifon); | 792 | fifon); |
843 | return; | 793 | return; |
844 | } | 794 | } |
@@ -847,17 +797,11 @@ collect_rx_frame(usb_fifo * fifo, __u8 * data, int len, int finish) | |||
847 | if (fifo->skbuff->len + len < fifo->max_size) { | 797 | if (fifo->skbuff->len + len < fifo->max_size) { |
848 | memcpy(skb_put(fifo->skbuff, len), data, len); | 798 | memcpy(skb_put(fifo->skbuff, len), data, len); |
849 | } else { | 799 | } else { |
850 | #ifdef CONFIG_HISAX_DEBUG | 800 | DBG(HFCUSB_DBG_FIFO_ERR, |
851 | printk(KERN_INFO "HFC-S USB: "); | 801 | "HCF-USB: got frame exceeded fifo->max_size(%d) fifo(%d)", |
852 | for (i = 0; i < 15; i++) | ||
853 | printk("%.2x ", | ||
854 | fifo->skbuff->data[fifo->skbuff-> | ||
855 | len - 15 + i]); | ||
856 | printk("\n"); | ||
857 | #endif | ||
858 | printk(KERN_INFO | ||
859 | "HCF-USB: got frame exceeded fifo->max_size:%d on fifo:%d\n", | ||
860 | fifo->max_size, fifon); | 802 | fifo->max_size, fifon); |
803 | DBG_SKB(HFCUSB_DBG_VERBOSE_USB, fifo->skbuff); | ||
804 | skb_trim(fifo->skbuff, 0); | ||
861 | } | 805 | } |
862 | } | 806 | } |
863 | if (transp_mode && fifo->skbuff->len >= 128) { | 807 | if (transp_mode && fifo->skbuff->len >= 128) { |
@@ -870,6 +814,13 @@ collect_rx_frame(usb_fifo * fifo, __u8 * data, int len, int finish) | |||
870 | if (finish) { | 814 | if (finish) { |
871 | if ((!fifo->skbuff->data[fifo->skbuff->len - 1]) | 815 | if ((!fifo->skbuff->data[fifo->skbuff->len - 1]) |
872 | && (fifo->skbuff->len > 3)) { | 816 | && (fifo->skbuff->len > 3)) { |
817 | |||
818 | if (fifon == HFCUSB_D_RX) { | ||
819 | DBG(HFCUSB_DBG_DCHANNEL, | ||
820 | "HFC-S USB: D-RX len(%d)", fifo->skbuff->len); | ||
821 | DBG_SKB(HFCUSB_DBG_DCHANNEL, fifo->skbuff); | ||
822 | } | ||
823 | |||
873 | /* remove CRC & status */ | 824 | /* remove CRC & status */ |
874 | skb_trim(fifo->skbuff, fifo->skbuff->len - 3); | 825 | skb_trim(fifo->skbuff, fifo->skbuff->len - 3); |
875 | if (fifon == HFCUSB_PCM_RX) { | 826 | if (fifon == HFCUSB_PCM_RX) { |
@@ -882,39 +833,17 @@ collect_rx_frame(usb_fifo * fifo, __u8 * data, int len, int finish) | |||
882 | fifo->skbuff); | 833 | fifo->skbuff); |
883 | fifo->skbuff = NULL; /* buffer was freed from upper layer */ | 834 | fifo->skbuff = NULL; /* buffer was freed from upper layer */ |
884 | } else { | 835 | } else { |
885 | if (fifo->skbuff->len > 3) { | 836 | DBG(HFCUSB_DBG_FIFO_ERR, |
886 | printk(KERN_INFO | 837 | "HFC-S USB: ERROR frame len(%d) fifo(%d)", |
887 | "HFC-S USB: got frame %d bytes but CRC ERROR on fifo:%d!!!\n", | 838 | fifo->skbuff->len, fifon); |
888 | fifo->skbuff->len, fifon); | 839 | DBG_SKB(HFCUSB_DBG_VERBOSE_USB, fifo->skbuff); |
889 | #ifdef CONFIG_HISAX_DEBUG | ||
890 | if (debug > 1) { | ||
891 | printk(KERN_INFO "HFC-S USB: "); | ||
892 | for (i = 0; i < 15; i++) | ||
893 | printk("%.2x ", | ||
894 | fifo->skbuff-> | ||
895 | data[fifo->skbuff-> | ||
896 | len - 15 + i]); | ||
897 | printk("\n"); | ||
898 | } | ||
899 | #endif | ||
900 | } | ||
901 | #ifdef CONFIG_HISAX_DEBUG | ||
902 | else { | ||
903 | printk(KERN_INFO | ||
904 | "HFC-S USB: frame to small (%d bytes)!!!\n", | ||
905 | fifo->skbuff->len); | ||
906 | } | ||
907 | #endif | ||
908 | skb_trim(fifo->skbuff, 0); | 840 | skb_trim(fifo->skbuff, 0); |
909 | } | 841 | } |
910 | } | 842 | } |
911 | } | 843 | } |
912 | 844 | ||
913 | /***********************************************/ | ||
914 | /* receive completion routine for all rx fifos */ | ||
915 | /***********************************************/ | ||
916 | static void | 845 | static void |
917 | rx_complete(struct urb *urb) | 846 | rx_int_complete(struct urb *urb) |
918 | { | 847 | { |
919 | int len; | 848 | int len; |
920 | int status; | 849 | int status; |
@@ -922,18 +851,14 @@ rx_complete(struct urb *urb) | |||
922 | usb_fifo *fifo = (usb_fifo *) urb->context; | 851 | usb_fifo *fifo = (usb_fifo *) urb->context; |
923 | hfcusb_data *hfc = fifo->hfc; | 852 | hfcusb_data *hfc = fifo->hfc; |
924 | static __u8 eof[8]; | 853 | static __u8 eof[8]; |
925 | #ifdef CONFIG_HISAX_DEBUG | ||
926 | __u8 i; | ||
927 | #endif | ||
928 | 854 | ||
929 | urb->dev = hfc->dev; /* security init */ | 855 | urb->dev = hfc->dev; /* security init */ |
930 | 856 | ||
931 | fifon = fifo->fifonum; | 857 | fifon = fifo->fifonum; |
932 | if ((!fifo->active) || (urb->status)) { | 858 | if ((!fifo->active) || (urb->status)) { |
933 | #ifdef CONFIG_HISAX_DEBUG | 859 | DBG(HFCUSB_DBG_INIT, "HFC-S USB: RX-Fifo %i is going down (%i)", |
934 | DBG(USB_DBG, "HFC-S USB: RX-Fifo %i is going down (%i)", | ||
935 | fifon, urb->status); | 860 | fifon, urb->status); |
936 | #endif | 861 | |
937 | fifo->urb->interval = 0; /* cancel automatic rescheduling */ | 862 | fifo->urb->interval = 0; /* cancel automatic rescheduling */ |
938 | if (fifo->skbuff) { | 863 | if (fifo->skbuff) { |
939 | dev_kfree_skb_any(fifo->skbuff); | 864 | dev_kfree_skb_any(fifo->skbuff); |
@@ -945,22 +870,20 @@ rx_complete(struct urb *urb) | |||
945 | buf = fifo->buffer; | 870 | buf = fifo->buffer; |
946 | maxlen = fifo->usb_packet_maxlen; | 871 | maxlen = fifo->usb_packet_maxlen; |
947 | 872 | ||
948 | #ifdef CONFIG_HISAX_DEBUG | 873 | if (fifon == HFCUSB_D_RX) { |
949 | if ((fifon == 5) && (debug > 1)) { | 874 | DBG(HFCUSB_DBG_VERBOSE_USB, |
950 | printk(KERN_INFO | 875 | "HFC-S USB: INT-D-RX lst_urblen:%2d " |
951 | "HFC-S USB: INT-D-RX lst_urblen:%2d act_urblen:%2d max-urblen:%2d EOF:0x%0x DATA: ", | 876 | "act_urblen:%2d max-urblen:%2d EOF:0x%0x", |
952 | fifo->last_urblen, len, maxlen, eof[5]); | 877 | fifo->last_urblen, len, maxlen, |
953 | for (i = 0; i < len; i++) | 878 | eof[5]); |
954 | printk("%.2x ", buf[i]); | 879 | DBG_PACKET(HFCUSB_DBG_VERBOSE_USB, buf, len); |
955 | printk("\n"); | ||
956 | } | 880 | } |
957 | #endif | ||
958 | 881 | ||
959 | if (fifo->last_urblen != fifo->usb_packet_maxlen) { | 882 | if (fifo->last_urblen != fifo->usb_packet_maxlen) { |
960 | /* the threshold mask is in the 2nd status byte */ | 883 | /* the threshold mask is in the 2nd status byte */ |
961 | hfc->threshold_mask = buf[1]; | 884 | hfc->threshold_mask = buf[1]; |
962 | /* the S0 state is in the upper half of the 1st status byte */ | 885 | /* the S0 state is in the upper half of the 1st status byte */ |
963 | state_handler(hfc, buf[0] >> 4); | 886 | s0_state_handler(hfc, buf[0] >> 4); |
964 | eof[fifon] = buf[0] & 1; | 887 | eof[fifon] = buf[0] & 1; |
965 | /* if we have more than the 2 status bytes -> collect data */ | 888 | /* if we have more than the 2 status bytes -> collect data */ |
966 | if (len > 2) | 889 | if (len > 2) |
@@ -975,20 +898,19 @@ rx_complete(struct urb *urb) | |||
975 | status = usb_submit_urb(urb, GFP_ATOMIC); | 898 | status = usb_submit_urb(urb, GFP_ATOMIC); |
976 | if (status) { | 899 | if (status) { |
977 | printk(KERN_INFO | 900 | printk(KERN_INFO |
978 | "HFC-S USB: error resubmitting URN at rx_complete...\n"); | 901 | "HFC-S USB: %s error resubmitting URB fifo(%d)\n", |
902 | __FUNCTION__, fifon); | ||
979 | } | 903 | } |
980 | } /* rx_complete */ | 904 | } |
981 | 905 | ||
982 | /***************************************************/ | 906 | /* start initial INT-URB for certain fifo */ |
983 | /* start the interrupt transfer for the given fifo */ | ||
984 | /***************************************************/ | ||
985 | static void | 907 | static void |
986 | start_int_fifo(usb_fifo * fifo) | 908 | start_int_fifo(usb_fifo * fifo) |
987 | { | 909 | { |
988 | int errcode; | 910 | int errcode; |
989 | 911 | ||
990 | printk(KERN_INFO "HFC-S USB: starting intr IN fifo:%d\n", | 912 | DBG(HFCUSB_DBG_INIT, "HFC-S USB: starting RX INT-URB for fifo:%d\n", |
991 | fifo->fifonum); | 913 | fifo->fifonum); |
992 | 914 | ||
993 | if (!fifo->urb) { | 915 | if (!fifo->urb) { |
994 | fifo->urb = usb_alloc_urb(0, GFP_KERNEL); | 916 | fifo->urb = usb_alloc_urb(0, GFP_KERNEL); |
@@ -997,33 +919,28 @@ start_int_fifo(usb_fifo * fifo) | |||
997 | } | 919 | } |
998 | usb_fill_int_urb(fifo->urb, fifo->hfc->dev, fifo->pipe, | 920 | usb_fill_int_urb(fifo->urb, fifo->hfc->dev, fifo->pipe, |
999 | fifo->buffer, fifo->usb_packet_maxlen, | 921 | fifo->buffer, fifo->usb_packet_maxlen, |
1000 | rx_complete, fifo, fifo->intervall); | 922 | rx_int_complete, fifo, fifo->intervall); |
1001 | fifo->active = 1; /* must be marked active */ | 923 | fifo->active = 1; /* must be marked active */ |
1002 | errcode = usb_submit_urb(fifo->urb, GFP_KERNEL); | 924 | errcode = usb_submit_urb(fifo->urb, GFP_KERNEL); |
1003 | if (errcode) { | 925 | if (errcode) { |
1004 | printk(KERN_INFO | 926 | printk(KERN_ERR |
1005 | "HFC-S USB: submit URB error(start_int_info): status:%i\n", | 927 | "HFC-S USB: submit URB error(start_int_info): status:%i\n", |
1006 | errcode); | 928 | errcode); |
1007 | fifo->active = 0; | 929 | fifo->active = 0; |
1008 | fifo->skbuff = NULL; | 930 | fifo->skbuff = NULL; |
1009 | } | 931 | } |
1010 | } /* start_int_fifo */ | 932 | } |
1011 | 933 | ||
1012 | /*****************************/ | ||
1013 | /* set the B-channel mode */ | ||
1014 | /*****************************/ | ||
1015 | static void | 934 | static void |
1016 | set_hfcmode(hfcusb_data * hfc, int channel, int mode) | 935 | setup_bchannel(hfcusb_data * hfc, int channel, int mode) |
1017 | { | 936 | { |
1018 | __u8 val, idx_table[2] = { 0, 2 }; | 937 | __u8 val, idx_table[2] = { 0, 2 }; |
1019 | 938 | ||
1020 | if (hfc->disc_flag) { | 939 | if (hfc->disc_flag) { |
1021 | return; | 940 | return; |
1022 | } | 941 | } |
1023 | #ifdef CONFIG_HISAX_DEBUG | 942 | DBG(HFCUSB_DBG_STATES, "HFC-S USB: setting channel %d to mode %d", |
1024 | DBG(ISDN_DBG, "HFC-S USB: setting channel %d to mode %d", channel, | 943 | channel, mode); |
1025 | mode); | ||
1026 | #endif | ||
1027 | hfc->b_mode[channel] = mode; | 944 | hfc->b_mode[channel] = mode; |
1028 | 945 | ||
1029 | /* setup CON_HDLC */ | 946 | /* setup CON_HDLC */ |
@@ -1080,20 +997,17 @@ hfc_usb_l2l1(struct hisax_if *my_hisax_if, int pr, void *arg) | |||
1080 | switch (pr) { | 997 | switch (pr) { |
1081 | case PH_ACTIVATE | REQUEST: | 998 | case PH_ACTIVATE | REQUEST: |
1082 | if (fifo->fifonum == HFCUSB_D_TX) { | 999 | if (fifo->fifonum == HFCUSB_D_TX) { |
1083 | #ifdef CONFIG_HISAX_DEBUG | 1000 | DBG(HFCUSB_DBG_STATES, |
1084 | DBG(ISDN_DBG, | ||
1085 | "HFC_USB: hfc_usb_d_l2l1 D-chan: PH_ACTIVATE | REQUEST"); | 1001 | "HFC_USB: hfc_usb_d_l2l1 D-chan: PH_ACTIVATE | REQUEST"); |
1086 | #endif | 1002 | |
1087 | if (hfc->l1_state != 3 | 1003 | if (hfc->l1_state != 3 |
1088 | && hfc->l1_state != 7) { | 1004 | && hfc->l1_state != 7) { |
1089 | hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, | 1005 | hfc->d_if.ifc.l1l2(&hfc->d_if.ifc, |
1090 | PH_DEACTIVATE | | 1006 | PH_DEACTIVATE | |
1091 | INDICATION, | 1007 | INDICATION, |
1092 | NULL); | 1008 | NULL); |
1093 | #ifdef CONFIG_HISAX_DEBUG | 1009 | DBG(HFCUSB_DBG_STATES, |
1094 | DBG(ISDN_DBG, | ||
1095 | "HFC-S USB: PH_DEACTIVATE | INDICATION sent (not state 3 or 7)"); | 1010 | "HFC-S USB: PH_DEACTIVATE | INDICATION sent (not state 3 or 7)"); |
1096 | #endif | ||
1097 | } else { | 1011 | } else { |
1098 | if (hfc->l1_state == 7) { /* l1 already active */ | 1012 | if (hfc->l1_state == 7) { /* l1 already active */ |
1099 | hfc->d_if.ifc.l1l2(&hfc-> | 1013 | hfc->d_if.ifc.l1l2(&hfc-> |
@@ -1103,10 +1017,8 @@ hfc_usb_l2l1(struct hisax_if *my_hisax_if, int pr, void *arg) | |||
1103 | | | 1017 | | |
1104 | INDICATION, | 1018 | INDICATION, |
1105 | NULL); | 1019 | NULL); |
1106 | #ifdef CONFIG_HISAX_DEBUG | 1020 | DBG(HFCUSB_DBG_STATES, |
1107 | DBG(ISDN_DBG, | ||
1108 | "HFC-S USB: PH_ACTIVATE | INDICATION sent again ;)"); | 1021 | "HFC-S USB: PH_ACTIVATE | INDICATION sent again ;)"); |
1109 | #endif | ||
1110 | } else { | 1022 | } else { |
1111 | /* force sending sending INFO1 */ | 1023 | /* force sending sending INFO1 */ |
1112 | queue_control_request(hfc, | 1024 | queue_control_request(hfc, |
@@ -1132,11 +1044,9 @@ hfc_usb_l2l1(struct hisax_if *my_hisax_if, int pr, void *arg) | |||
1132 | } | 1044 | } |
1133 | } | 1045 | } |
1134 | } else { | 1046 | } else { |
1135 | #ifdef CONFIG_HISAX_DEBUG | 1047 | DBG(HFCUSB_DBG_STATES, |
1136 | DBG(ISDN_DBG, | 1048 | "HFC_USB: hfc_usb_d_l2l1 B-chan: PH_ACTIVATE | REQUEST"); |
1137 | "HFC_USB: hfc_usb_d_l2l1 Bx-chan: PH_ACTIVATE | REQUEST"); | 1049 | setup_bchannel(hfc, |
1138 | #endif | ||
1139 | set_hfcmode(hfc, | ||
1140 | (fifo->fifonum == | 1050 | (fifo->fifonum == |
1141 | HFCUSB_B1_TX) ? 0 : 1, | 1051 | HFCUSB_B1_TX) ? 0 : 1, |
1142 | (long) arg); | 1052 | (long) arg); |
@@ -1147,18 +1057,12 @@ hfc_usb_l2l1(struct hisax_if *my_hisax_if, int pr, void *arg) | |||
1147 | break; | 1057 | break; |
1148 | case PH_DEACTIVATE | REQUEST: | 1058 | case PH_DEACTIVATE | REQUEST: |
1149 | if (fifo->fifonum == HFCUSB_D_TX) { | 1059 | if (fifo->fifonum == HFCUSB_D_TX) { |
1150 | #ifdef CONFIG_HISAX_DEBUG | 1060 | DBG(HFCUSB_DBG_STATES, |
1151 | DBG(ISDN_DBG, | ||
1152 | "HFC_USB: hfc_usb_d_l2l1 D-chan: PH_DEACTIVATE | REQUEST"); | 1061 | "HFC_USB: hfc_usb_d_l2l1 D-chan: PH_DEACTIVATE | REQUEST"); |
1153 | #endif | ||
1154 | printk(KERN_INFO | ||
1155 | "HFC-S USB: ISDN TE device should not deativate...\n"); | ||
1156 | } else { | 1062 | } else { |
1157 | #ifdef CONFIG_HISAX_DEBUG | 1063 | DBG(HFCUSB_DBG_STATES, |
1158 | DBG(ISDN_DBG, | ||
1159 | "HFC_USB: hfc_usb_d_l2l1 Bx-chan: PH_DEACTIVATE | REQUEST"); | 1064 | "HFC_USB: hfc_usb_d_l2l1 Bx-chan: PH_DEACTIVATE | REQUEST"); |
1160 | #endif | 1065 | setup_bchannel(hfc, |
1161 | set_hfcmode(hfc, | ||
1162 | (fifo->fifonum == | 1066 | (fifo->fifonum == |
1163 | HFCUSB_B1_TX) ? 0 : 1, | 1067 | HFCUSB_B1_TX) ? 0 : 1, |
1164 | (int) L1_MODE_NULL); | 1068 | (int) L1_MODE_NULL); |
@@ -1171,25 +1075,20 @@ hfc_usb_l2l1(struct hisax_if *my_hisax_if, int pr, void *arg) | |||
1171 | if (fifo->skbuff && fifo->delete_flg) { | 1075 | if (fifo->skbuff && fifo->delete_flg) { |
1172 | dev_kfree_skb_any(fifo->skbuff); | 1076 | dev_kfree_skb_any(fifo->skbuff); |
1173 | fifo->skbuff = NULL; | 1077 | fifo->skbuff = NULL; |
1174 | fifo->delete_flg = false; | 1078 | fifo->delete_flg = 0; |
1175 | } | 1079 | } |
1176 | fifo->skbuff = arg; /* we have a new buffer */ | 1080 | fifo->skbuff = arg; /* we have a new buffer */ |
1177 | break; | 1081 | break; |
1178 | default: | 1082 | default: |
1179 | printk(KERN_INFO | 1083 | DBG(HFCUSB_DBG_STATES, |
1180 | "HFC_USB: hfc_usb_d_l2l1: unkown state : %#x\n", | 1084 | "HFC_USB: hfc_usb_d_l2l1: unkown state : %#x", pr); |
1181 | pr); | ||
1182 | break; | 1085 | break; |
1183 | } | 1086 | } |
1184 | } | 1087 | } |
1185 | 1088 | ||
1186 | /***************************************************************************/ | 1089 | /* initial init HFC-S USB chip registers, HiSax interface, USB URBs */ |
1187 | /* usb_init is called once when a new matching device is detected to setup */ | ||
1188 | /* main parameters. It registers the driver at the main hisax module. */ | ||
1189 | /* on success 0 is returned. */ | ||
1190 | /***************************************************************************/ | ||
1191 | static int | 1090 | static int |
1192 | usb_init(hfcusb_data * hfc) | 1091 | hfc_usb_init(hfcusb_data * hfc) |
1193 | { | 1092 | { |
1194 | usb_fifo *fifo; | 1093 | usb_fifo *fifo; |
1195 | int i, err; | 1094 | int i, err; |
@@ -1214,11 +1113,11 @@ usb_init(hfcusb_data * hfc) | |||
1214 | /* aux = output, reset off */ | 1113 | /* aux = output, reset off */ |
1215 | write_usb(hfc, HFCUSB_CIRM, 0x10); | 1114 | write_usb(hfc, HFCUSB_CIRM, 0x10); |
1216 | 1115 | ||
1217 | /* set USB_SIZE to match the wMaxPacketSize for INT or BULK transfers */ | 1116 | /* set USB_SIZE to match wMaxPacketSize for INT or BULK transfers */ |
1218 | write_usb(hfc, HFCUSB_USB_SIZE, | 1117 | write_usb(hfc, HFCUSB_USB_SIZE, |
1219 | (hfc->packet_size / 8) | ((hfc->packet_size / 8) << 4)); | 1118 | (hfc->packet_size / 8) | ((hfc->packet_size / 8) << 4)); |
1220 | 1119 | ||
1221 | /* set USB_SIZE_I to match the wMaxPacketSize for ISO transfers */ | 1120 | /* set USB_SIZE_I to match wMaxPacketSize for ISO transfers */ |
1222 | write_usb(hfc, HFCUSB_USB_SIZE_I, hfc->iso_packet_size); | 1121 | write_usb(hfc, HFCUSB_USB_SIZE_I, hfc->iso_packet_size); |
1223 | 1122 | ||
1224 | /* enable PCM/GCI master mode */ | 1123 | /* enable PCM/GCI master mode */ |
@@ -1257,8 +1156,8 @@ usb_init(hfcusb_data * hfc) | |||
1257 | hfc->b_mode[0] = L1_MODE_NULL; | 1156 | hfc->b_mode[0] = L1_MODE_NULL; |
1258 | hfc->b_mode[1] = L1_MODE_NULL; | 1157 | hfc->b_mode[1] = L1_MODE_NULL; |
1259 | 1158 | ||
1260 | hfc->l1_activated = false; | 1159 | hfc->l1_activated = 0; |
1261 | hfc->disc_flag = false; | 1160 | hfc->disc_flag = 0; |
1262 | hfc->led_state = 0; | 1161 | hfc->led_state = 0; |
1263 | hfc->led_new_data = 0; | 1162 | hfc->led_new_data = 0; |
1264 | hfc->old_led_state = 0; | 1163 | hfc->old_led_state = 0; |
@@ -1349,11 +1248,9 @@ usb_init(hfcusb_data * hfc) | |||
1349 | handle_led(hfc, LED_POWER_ON); | 1248 | handle_led(hfc, LED_POWER_ON); |
1350 | 1249 | ||
1351 | return (0); | 1250 | return (0); |
1352 | } /* usb_init */ | 1251 | } |
1353 | 1252 | ||
1354 | /*************************************************/ | 1253 | /* initial callback for each plugged USB device */ |
1355 | /* function called to probe a new plugged device */ | ||
1356 | /*************************************************/ | ||
1357 | static int | 1254 | static int |
1358 | hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) | 1255 | hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) |
1359 | { | 1256 | { |
@@ -1378,11 +1275,6 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) | |||
1378 | } | 1275 | } |
1379 | } | 1276 | } |
1380 | 1277 | ||
1381 | #ifdef CONFIG_HISAX_DEBUG | ||
1382 | DBG(USB_DBG, | ||
1383 | "HFC-USB: probing interface(%d) actalt(%d) minor(%d)\n", ifnum, | ||
1384 | iface->desc.bAlternateSetting, intf->minor); | ||
1385 | #endif | ||
1386 | printk(KERN_INFO | 1278 | printk(KERN_INFO |
1387 | "HFC-S USB: probing interface(%d) actalt(%d) minor(%d)\n", | 1279 | "HFC-S USB: probing interface(%d) actalt(%d) minor(%d)\n", |
1388 | ifnum, iface->desc.bAlternateSetting, intf->minor); | 1280 | ifnum, iface->desc.bAlternateSetting, intf->minor); |
@@ -1403,15 +1295,11 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) | |||
1403 | 1295 | ||
1404 | /* check for config EOL element */ | 1296 | /* check for config EOL element */ |
1405 | while (validconf[cfg_used][0]) { | 1297 | while (validconf[cfg_used][0]) { |
1406 | cfg_found = true; | 1298 | cfg_found = 1; |
1407 | vcf = validconf[cfg_used]; | 1299 | vcf = validconf[cfg_used]; |
1408 | /* first endpoint descriptor */ | 1300 | /* first endpoint descriptor */ |
1409 | ep = iface->endpoint; | 1301 | ep = iface->endpoint; |
1410 | #ifdef CONFIG_HISAX_DEBUG | 1302 | |
1411 | DBG(USB_DBG, | ||
1412 | "HFC-S USB: (if=%d alt=%d cfg_used=%d)\n", | ||
1413 | ifnum, probe_alt_setting, cfg_used); | ||
1414 | #endif | ||
1415 | memcpy(cmptbl, vcf, 16 * sizeof(int)); | 1303 | memcpy(cmptbl, vcf, 16 * sizeof(int)); |
1416 | 1304 | ||
1417 | /* check for all endpoints in this alternate setting */ | 1305 | /* check for all endpoints in this alternate setting */ |
@@ -1425,7 +1313,7 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) | |||
1425 | idx++; | 1313 | idx++; |
1426 | attr = ep->desc.bmAttributes; | 1314 | attr = ep->desc.bmAttributes; |
1427 | if (cmptbl[idx] == EP_NUL) { | 1315 | if (cmptbl[idx] == EP_NUL) { |
1428 | cfg_found = false; | 1316 | cfg_found = 0; |
1429 | } | 1317 | } |
1430 | if (attr == USB_ENDPOINT_XFER_INT | 1318 | if (attr == USB_ENDPOINT_XFER_INT |
1431 | && cmptbl[idx] == EP_INT) | 1319 | && cmptbl[idx] == EP_INT) |
@@ -1438,16 +1326,9 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) | |||
1438 | cmptbl[idx] = EP_NUL; | 1326 | cmptbl[idx] = EP_NUL; |
1439 | 1327 | ||
1440 | /* check if all INT endpoints match minimum interval */ | 1328 | /* check if all INT endpoints match minimum interval */ |
1441 | if (attr == USB_ENDPOINT_XFER_INT | 1329 | if ((attr == USB_ENDPOINT_XFER_INT) |
1442 | && ep->desc.bInterval < | 1330 | && (ep->desc.bInterval < vcf[17])) { |
1443 | vcf[17]) { | 1331 | cfg_found = 0; |
1444 | #ifdef CONFIG_HISAX_DEBUG | ||
1445 | if (cfg_found) | ||
1446 | DBG(USB_DBG, | ||
1447 | "HFC-S USB: Interrupt Endpoint interval < %d found - skipping config", | ||
1448 | vcf[17]); | ||
1449 | #endif | ||
1450 | cfg_found = false; | ||
1451 | } | 1332 | } |
1452 | ep++; | 1333 | ep++; |
1453 | } | 1334 | } |
@@ -1455,7 +1336,7 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) | |||
1455 | /* all entries must be EP_NOP or EP_NUL for a valid config */ | 1336 | /* all entries must be EP_NOP or EP_NUL for a valid config */ |
1456 | if (cmptbl[i] != EP_NOP | 1337 | if (cmptbl[i] != EP_NOP |
1457 | && cmptbl[i] != EP_NUL) | 1338 | && cmptbl[i] != EP_NUL) |
1458 | cfg_found = false; | 1339 | cfg_found = 0; |
1459 | } | 1340 | } |
1460 | if (cfg_found) { | 1341 | if (cfg_found) { |
1461 | if (cfg_used < small_match) { | 1342 | if (cfg_used < small_match) { |
@@ -1464,23 +1345,16 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) | |||
1464 | probe_alt_setting; | 1345 | probe_alt_setting; |
1465 | iface_used = iface; | 1346 | iface_used = iface; |
1466 | } | 1347 | } |
1467 | #ifdef CONFIG_HISAX_DEBUG | ||
1468 | DBG(USB_DBG, | ||
1469 | "HFC-USB: small_match=%x %x\n", | ||
1470 | small_match, alt_used); | ||
1471 | #endif | ||
1472 | } | 1348 | } |
1473 | cfg_used++; | 1349 | cfg_used++; |
1474 | } | 1350 | } |
1475 | alt_idx++; | 1351 | alt_idx++; |
1476 | } /* (alt_idx < intf->num_altsetting) */ | 1352 | } /* (alt_idx < intf->num_altsetting) */ |
1477 | 1353 | ||
1478 | /* found a valid USB Ta Endpint config */ | 1354 | /* found a valid USB Ta Endpint config */ |
1479 | if (small_match != 0xffff) { | 1355 | if (small_match != 0xffff) { |
1480 | iface = iface_used; | 1356 | iface = iface_used; |
1481 | if (! | 1357 | if (!(context = kzalloc(sizeof(hfcusb_data), GFP_KERNEL))) |
1482 | (context = | ||
1483 | kzalloc(sizeof(hfcusb_data), GFP_KERNEL))) | ||
1484 | return (-ENOMEM); /* got no mem */ | 1358 | return (-ENOMEM); /* got no mem */ |
1485 | 1359 | ||
1486 | ep = iface->endpoint; | 1360 | ep = iface->endpoint; |
@@ -1613,20 +1487,15 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) | |||
1613 | driver_info; | 1487 | driver_info; |
1614 | printk(KERN_INFO "HFC-S USB: detected \"%s\"\n", | 1488 | printk(KERN_INFO "HFC-S USB: detected \"%s\"\n", |
1615 | driver_info->vend_name); | 1489 | driver_info->vend_name); |
1616 | #ifdef CONFIG_HISAX_DEBUG | 1490 | |
1617 | DBG(USB_DBG, | 1491 | DBG(HFCUSB_DBG_INIT, |
1618 | "HFC-S USB: Endpoint-Config: %s (if=%d alt=%d)\n", | 1492 | "HFC-S USB: Endpoint-Config: %s (if=%d alt=%d), E-Channel(%d)", |
1619 | conf_str[small_match], context->if_used, | 1493 | conf_str[small_match], context->if_used, |
1620 | context->alt_used); | 1494 | context->alt_used, |
1621 | printk(KERN_INFO | 1495 | validconf[small_match][18]); |
1622 | "HFC-S USB: E-channel (\"ECHO:\") logging "); | 1496 | |
1623 | if (validconf[small_match][18]) | ||
1624 | printk(" possible\n"); | ||
1625 | else | ||
1626 | printk("NOT possible\n"); | ||
1627 | #endif | ||
1628 | /* init the chip and register the driver */ | 1497 | /* init the chip and register the driver */ |
1629 | if (usb_init(context)) { | 1498 | if (hfc_usb_init(context)) { |
1630 | usb_kill_urb(context->ctrl_urb); | 1499 | usb_kill_urb(context->ctrl_urb); |
1631 | usb_free_urb(context->ctrl_urb); | 1500 | usb_free_urb(context->ctrl_urb); |
1632 | context->ctrl_urb = NULL; | 1501 | context->ctrl_urb = NULL; |
@@ -1643,17 +1512,19 @@ hfc_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) | |||
1643 | return (-EIO); | 1512 | return (-EIO); |
1644 | } | 1513 | } |
1645 | 1514 | ||
1646 | /****************************************************/ | 1515 | /* callback for unplugged USB device */ |
1647 | /* function called when an active device is removed */ | ||
1648 | /****************************************************/ | ||
1649 | static void | 1516 | static void |
1650 | hfc_usb_disconnect(struct usb_interface | 1517 | hfc_usb_disconnect(struct usb_interface |
1651 | *intf) | 1518 | *intf) |
1652 | { | 1519 | { |
1653 | hfcusb_data *context = usb_get_intfdata(intf); | 1520 | hfcusb_data *context = usb_get_intfdata(intf); |
1654 | int i; | 1521 | int i; |
1522 | |||
1523 | handle_led(context, LED_POWER_OFF); | ||
1524 | schedule_timeout((10 * HZ) / 1000); | ||
1525 | |||
1655 | printk(KERN_INFO "HFC-S USB: device disconnect\n"); | 1526 | printk(KERN_INFO "HFC-S USB: device disconnect\n"); |
1656 | context->disc_flag = true; | 1527 | context->disc_flag = 1; |
1657 | usb_set_intfdata(intf, NULL); | 1528 | usb_set_intfdata(intf, NULL); |
1658 | if (!context) | 1529 | if (!context) |
1659 | return; | 1530 | return; |
@@ -1661,25 +1532,22 @@ hfc_usb_disconnect(struct usb_interface | |||
1661 | del_timer(&context->t3_timer); | 1532 | del_timer(&context->t3_timer); |
1662 | if (timer_pending(&context->t4_timer)) | 1533 | if (timer_pending(&context->t4_timer)) |
1663 | del_timer(&context->t4_timer); | 1534 | del_timer(&context->t4_timer); |
1535 | |||
1664 | /* tell all fifos to terminate */ | 1536 | /* tell all fifos to terminate */ |
1665 | for (i = 0; i < HFCUSB_NUM_FIFOS; i++) { | 1537 | for (i = 0; i < HFCUSB_NUM_FIFOS; i++) { |
1666 | if (context->fifos[i].usb_transfer_mode == USB_ISOC) { | 1538 | if (context->fifos[i].usb_transfer_mode == USB_ISOC) { |
1667 | if (context->fifos[i].active > 0) { | 1539 | if (context->fifos[i].active > 0) { |
1668 | stop_isoc_chain(&context->fifos[i]); | 1540 | stop_isoc_chain(&context->fifos[i]); |
1669 | #ifdef CONFIG_HISAX_DEBUG | 1541 | DBG(HFCUSB_DBG_INIT, |
1670 | DBG(USB_DBG, | 1542 | "HFC-S USB: %s stopping ISOC chain Fifo(%i)", |
1671 | "HFC-S USB: hfc_usb_disconnect: stopping ISOC chain Fifo no %i", | 1543 | __FUNCTION__, i); |
1672 | i); | ||
1673 | #endif | ||
1674 | } | 1544 | } |
1675 | } else { | 1545 | } else { |
1676 | if (context->fifos[i].active > 0) { | 1546 | if (context->fifos[i].active > 0) { |
1677 | context->fifos[i].active = 0; | 1547 | context->fifos[i].active = 0; |
1678 | #ifdef CONFIG_HISAX_DEBUG | 1548 | DBG(HFCUSB_DBG_INIT, |
1679 | DBG(USB_DBG, | 1549 | "HFC-S USB: %s unlinking URB for Fifo(%i)", |
1680 | "HFC-S USB: hfc_usb_disconnect: unlinking URB for Fifo no %i", | 1550 | __FUNCTION__, i); |
1681 | i); | ||
1682 | #endif | ||
1683 | } | 1551 | } |
1684 | usb_kill_urb(context->fifos[i].urb); | 1552 | usb_kill_urb(context->fifos[i].urb); |
1685 | usb_free_urb(context->fifos[i].urb); | 1553 | usb_free_urb(context->fifos[i].urb); |
@@ -1692,34 +1560,29 @@ hfc_usb_disconnect(struct usb_interface | |||
1692 | context->ctrl_urb = NULL; | 1560 | context->ctrl_urb = NULL; |
1693 | hisax_unregister(&context->d_if); | 1561 | hisax_unregister(&context->d_if); |
1694 | kfree(context); /* free our structure again */ | 1562 | kfree(context); /* free our structure again */ |
1695 | } /* hfc_usb_disconnect */ | 1563 | } |
1696 | 1564 | ||
1697 | /************************************/ | ||
1698 | /* our driver information structure */ | ||
1699 | /************************************/ | ||
1700 | static struct usb_driver hfc_drv = { | 1565 | static struct usb_driver hfc_drv = { |
1701 | .name = "hfc_usb", | 1566 | .name = "hfc_usb", |
1702 | .id_table = hfcusb_idtab, | 1567 | .id_table = hfcusb_idtab, |
1703 | .probe = hfc_usb_probe, | 1568 | .probe = hfc_usb_probe, |
1704 | .disconnect = hfc_usb_disconnect, | 1569 | .disconnect = hfc_usb_disconnect, |
1705 | }; | 1570 | }; |
1571 | |||
1706 | static void __exit | 1572 | static void __exit |
1707 | hfc_usb_exit(void) | 1573 | hfc_usb_mod_exit(void) |
1708 | { | 1574 | { |
1709 | #ifdef CONFIG_HISAX_DEBUG | 1575 | usb_deregister(&hfc_drv); /* release our driver */ |
1710 | DBG(USB_DBG, "HFC-S USB: calling \"hfc_usb_exit\" ..."); | ||
1711 | #endif | ||
1712 | usb_deregister(&hfc_drv); /* release our driver */ | ||
1713 | printk(KERN_INFO "HFC-S USB: module removed\n"); | 1576 | printk(KERN_INFO "HFC-S USB: module removed\n"); |
1714 | } | 1577 | } |
1715 | 1578 | ||
1716 | static int __init | 1579 | static int __init |
1717 | hfc_usb_init(void) | 1580 | hfc_usb_mod_init(void) |
1718 | { | 1581 | { |
1582 | char revstr[30], datestr[30], dummy[30]; | ||
1719 | #ifndef CONFIG_HISAX_DEBUG | 1583 | #ifndef CONFIG_HISAX_DEBUG |
1720 | unsigned int debug = -1; | 1584 | hfc_debug = debug; |
1721 | #endif | 1585 | #endif |
1722 | char revstr[30], datestr[30], dummy[30]; | ||
1723 | sscanf(hfcusb_revision, | 1586 | sscanf(hfcusb_revision, |
1724 | "%s %s $ %s %s %s $ ", dummy, revstr, | 1587 | "%s %s $ %s %s %s $ ", dummy, revstr, |
1725 | dummy, datestr, dummy); | 1588 | dummy, datestr, dummy); |
@@ -1734,8 +1597,8 @@ hfc_usb_init(void) | |||
1734 | return (0); | 1597 | return (0); |
1735 | } | 1598 | } |
1736 | 1599 | ||
1737 | module_init(hfc_usb_init); | 1600 | module_init(hfc_usb_mod_init); |
1738 | module_exit(hfc_usb_exit); | 1601 | module_exit(hfc_usb_mod_exit); |
1739 | MODULE_AUTHOR(DRIVER_AUTHOR); | 1602 | MODULE_AUTHOR(DRIVER_AUTHOR); |
1740 | MODULE_DESCRIPTION(DRIVER_DESC); | 1603 | MODULE_DESCRIPTION(DRIVER_DESC); |
1741 | MODULE_LICENSE("GPL"); | 1604 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/isdn/hisax/hfc_usb.h b/drivers/isdn/hisax/hfc_usb.h index 471f2354dfde..e79f56568d30 100644 --- a/drivers/isdn/hisax/hfc_usb.h +++ b/drivers/isdn/hisax/hfc_usb.h | |||
@@ -1,8 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * hfc_usb.h | 2 | * hfc_usb.h |
3 | * | 3 | * |
4 | * $Id: hfc_usb.h,v 4.2 2005/04/07 15:27:17 martinb1 Exp $ | 4 | * $Id: hfc_usb.h,v 1.1.2.5 2007/08/20 14:36:03 mbachem Exp $ |
5 | */ | 5 | */ |
6 | 6 | ||
7 | #ifndef __HFC_USB_H__ | 7 | #ifndef __HFC_USB_H__ |
8 | #define __HFC_USB_H__ | 8 | #define __HFC_USB_H__ |
@@ -10,25 +10,20 @@ | |||
10 | #define DRIVER_AUTHOR "Peter Sprenger (sprenger@moving-byters.de)" | 10 | #define DRIVER_AUTHOR "Peter Sprenger (sprenger@moving-byters.de)" |
11 | #define DRIVER_DESC "HFC-S USB based HiSAX ISDN driver" | 11 | #define DRIVER_DESC "HFC-S USB based HiSAX ISDN driver" |
12 | 12 | ||
13 | #define VERBOSE_USB_DEBUG | ||
14 | 13 | ||
14 | #define HFC_CTRL_TIMEOUT 20 /* 5ms timeout writing/reading regs */ | ||
15 | #define HFC_TIMER_T3 8000 /* timeout for l1 activation timer */ | ||
16 | #define HFC_TIMER_T4 500 /* time for state change interval */ | ||
15 | 17 | ||
16 | /***********/ | 18 | #define HFCUSB_L1_STATECHANGE 0 /* L1 state changed */ |
17 | /* defines */ | 19 | #define HFCUSB_L1_DRX 1 /* D-frame received */ |
18 | /***********/ | 20 | #define HFCUSB_L1_ERX 2 /* E-frame received */ |
19 | #define HFC_CTRL_TIMEOUT 20 /* 5ms timeout writing/reading regs */ | 21 | #define HFCUSB_L1_DTX 4 /* D-frames completed */ |
20 | #define HFC_TIMER_T3 8000 /* timeout for l1 activation timer */ | ||
21 | #define HFC_TIMER_T4 500 /* time for state change interval */ | ||
22 | 22 | ||
23 | #define HFCUSB_L1_STATECHANGE 0 /* L1 state changed */ | 23 | #define MAX_BCH_SIZE 2048 /* allowed B-channel packet size */ |
24 | #define HFCUSB_L1_DRX 1 /* D-frame received */ | ||
25 | #define HFCUSB_L1_ERX 2 /* E-frame received */ | ||
26 | #define HFCUSB_L1_DTX 4 /* D-frames completed */ | ||
27 | 24 | ||
28 | #define MAX_BCH_SIZE 2048 /* allowed B-channel packet size */ | 25 | #define HFCUSB_RX_THRESHOLD 64 /* threshold for fifo report bit rx */ |
29 | 26 | #define HFCUSB_TX_THRESHOLD 64 /* threshold for fifo report bit tx */ | |
30 | #define HFCUSB_RX_THRESHOLD 64 /* threshold for fifo report bit rx */ | ||
31 | #define HFCUSB_TX_THRESHOLD 64 /* threshold for fifo report bit tx */ | ||
32 | 27 | ||
33 | #define HFCUSB_CHIP_ID 0x16 /* Chip ID register index */ | 28 | #define HFCUSB_CHIP_ID 0x16 /* Chip ID register index */ |
34 | #define HFCUSB_CIRM 0x00 /* cirm register index */ | 29 | #define HFCUSB_CIRM 0x00 /* cirm register index */ |
@@ -52,9 +47,8 @@ | |||
52 | 47 | ||
53 | #define HFCUSB_CHIPID 0x40 /* ID value of HFC-S USB */ | 48 | #define HFCUSB_CHIPID 0x40 /* ID value of HFC-S USB */ |
54 | 49 | ||
55 | /******************/ | 50 | |
56 | /* fifo registers */ | 51 | /* fifo registers */ |
57 | /******************/ | ||
58 | #define HFCUSB_NUM_FIFOS 8 /* maximum number of fifos */ | 52 | #define HFCUSB_NUM_FIFOS 8 /* maximum number of fifos */ |
59 | #define HFCUSB_B1_TX 0 /* index for B1 transmit bulk/int */ | 53 | #define HFCUSB_B1_TX 0 /* index for B1 transmit bulk/int */ |
60 | #define HFCUSB_B1_RX 1 /* index for B1 receive bulk/int */ | 54 | #define HFCUSB_B1_RX 1 /* index for B1 receive bulk/int */ |
@@ -66,9 +60,9 @@ | |||
66 | #define HFCUSB_PCM_RX 7 | 60 | #define HFCUSB_PCM_RX 7 |
67 | 61 | ||
68 | /* | 62 | /* |
69 | * used to switch snd_transfer_mode for different TA modes e.g. the Billion USB TA just | 63 | * used to switch snd_transfer_mode for different TA modes e.g. the Billion USB TA just |
70 | * supports ISO out, while the Cologne Chip EVAL TA just supports BULK out | 64 | * supports ISO out, while the Cologne Chip EVAL TA just supports BULK out |
71 | */ | 65 | */ |
72 | #define USB_INT 0 | 66 | #define USB_INT 0 |
73 | #define USB_BULK 1 | 67 | #define USB_BULK 1 |
74 | #define USB_ISOC 2 | 68 | #define USB_ISOC 2 |
@@ -77,49 +71,36 @@ | |||
77 | #define ISOC_PACKETS_B 8 | 71 | #define ISOC_PACKETS_B 8 |
78 | #define ISO_BUFFER_SIZE 128 | 72 | #define ISO_BUFFER_SIZE 128 |
79 | 73 | ||
80 | // ISO send definitions | 74 | /* Fifo flow Control for TX ISO */ |
81 | #define SINK_MAX 68 | 75 | #define SINK_MAX 68 |
82 | #define SINK_MIN 48 | 76 | #define SINK_MIN 48 |
83 | #define SINK_DMIN 12 | 77 | #define SINK_DMIN 12 |
84 | #define SINK_DMAX 18 | 78 | #define SINK_DMAX 18 |
85 | #define BITLINE_INF (-64*8) | 79 | #define BITLINE_INF (-64*8) |
86 | 80 | ||
87 | 81 | /* HFC-S USB register access by Control-URSs */ | |
88 | /**********/ | ||
89 | /* macros */ | ||
90 | /**********/ | ||
91 | #define write_usb(a,b,c)usb_control_msg((a)->dev,(a)->ctrl_out_pipe,0,0x40,(c),(b),NULL,0,HFC_CTRL_TIMEOUT) | 82 | #define write_usb(a,b,c)usb_control_msg((a)->dev,(a)->ctrl_out_pipe,0,0x40,(c),(b),NULL,0,HFC_CTRL_TIMEOUT) |
92 | #define read_usb(a,b,c) usb_control_msg((a)->dev,(a)->ctrl_in_pipe,1,0xC0,0,(b),(c),1,HFC_CTRL_TIMEOUT) | 83 | #define read_usb(a,b,c) usb_control_msg((a)->dev,(a)->ctrl_in_pipe,1,0xC0,0,(b),(c),1,HFC_CTRL_TIMEOUT) |
93 | |||
94 | |||
95 | /*******************/ | ||
96 | /* Debugging Flags */ | ||
97 | /*******************/ | ||
98 | #define USB_DBG 1 | ||
99 | #define ISDN_DBG 2 | ||
100 | |||
101 | |||
102 | /* *********************/ | ||
103 | /* USB related defines */ | ||
104 | /***********************/ | ||
105 | #define HFC_CTRL_BUFSIZE 32 | 84 | #define HFC_CTRL_BUFSIZE 32 |
106 | 85 | ||
107 | |||
108 | |||
109 | /*************************************************/ | ||
110 | /* entry and size of output/input control buffer */ | 86 | /* entry and size of output/input control buffer */ |
111 | /*************************************************/ | ||
112 | typedef struct { | 87 | typedef struct { |
113 | __u8 hfc_reg; /* register number */ | 88 | __u8 hfc_reg; /* register number */ |
114 | __u8 reg_val; /* value to be written (or read) */ | 89 | __u8 reg_val; /* value to be written (or read) */ |
115 | int action; /* data for action handler */ | 90 | int action; /* data for action handler */ |
116 | } ctrl_buft; | 91 | } ctrl_buft; |
117 | 92 | ||
93 | /* Debugging Flags */ | ||
94 | #define HFCUSB_DBG_INIT 0x0001 | ||
95 | #define HFCUSB_DBG_STATES 0x0002 | ||
96 | #define HFCUSB_DBG_DCHANNEL 0x0080 | ||
97 | #define HFCUSB_DBG_FIFO_ERR 0x4000 | ||
98 | #define HFCUSB_DBG_VERBOSE_USB 0x8000 | ||
118 | 99 | ||
119 | /********************/ | 100 | /* |
120 | /* URB error codes: */ | 101 | * URB error codes: |
121 | /********************/ | 102 | * Used to represent a list of values and their respective symbolic names |
122 | /* Used to represent a list of values and their respective symbolic names */ | 103 | */ |
123 | struct hfcusb_symbolic_list { | 104 | struct hfcusb_symbolic_list { |
124 | const int num; | 105 | const int num; |
125 | const char *name; | 106 | const char *name; |
@@ -134,20 +115,20 @@ static struct hfcusb_symbolic_list urb_errlist[] = { | |||
134 | {-ENXIO, "URB already queued"}, | 115 | {-ENXIO, "URB already queued"}, |
135 | {-EFBIG, "Too much ISO frames requested"}, | 116 | {-EFBIG, "Too much ISO frames requested"}, |
136 | {-ENOSR, "Buffer error (overrun)"}, | 117 | {-ENOSR, "Buffer error (overrun)"}, |
137 | {-EPIPE, "Specified endpoint is stalled"}, | 118 | {-EPIPE, "Specified endpoint is stalled (device not responding)"}, |
138 | {-EOVERFLOW, "Babble (bad cable?)"}, | 119 | {-EOVERFLOW, "Babble (bad cable?)"}, |
139 | {-EPROTO, "Bit-stuff error (bad cable?)"}, | 120 | {-EPROTO, "Bit-stuff error (bad cable?)"}, |
140 | {-EILSEQ, "CRC or missing token"}, | 121 | {-EILSEQ, "CRC/Timeout"}, |
141 | {-ETIME, "Device did not respond"}, | 122 | {-ETIMEDOUT, "NAK (device does not respond)"}, |
142 | {-ESHUTDOWN, "Device unplugged"}, | 123 | {-ESHUTDOWN, "Device unplugged"}, |
143 | {-1, NULL} | 124 | {-1, NULL} |
144 | }; | 125 | }; |
145 | 126 | ||
146 | 127 | ||
147 | /*****************************************************/ | 128 | /* |
148 | /* device dependant information to support different */ | 129 | * device dependant information to support different |
149 | /* ISDN Ta's using the HFC-S USB chip */ | 130 | * ISDN Ta's using the HFC-S USB chip |
150 | /*****************************************************/ | 131 | */ |
151 | 132 | ||
152 | /* USB descriptor need to contain one of the following EndPoint combination: */ | 133 | /* USB descriptor need to contain one of the following EndPoint combination: */ |
153 | #define CNF_4INT3ISO 1 // 4 INT IN, 3 ISO OUT | 134 | #define CNF_4INT3ISO 1 // 4 INT IN, 3 ISO OUT |
@@ -155,16 +136,19 @@ static struct hfcusb_symbolic_list urb_errlist[] = { | |||
155 | #define CNF_4ISO3ISO 3 // 4 ISO IN, 3 ISO OUT | 136 | #define CNF_4ISO3ISO 3 // 4 ISO IN, 3 ISO OUT |
156 | #define CNF_3ISO3ISO 4 // 3 ISO IN, 3 ISO OUT | 137 | #define CNF_3ISO3ISO 4 // 3 ISO IN, 3 ISO OUT |
157 | 138 | ||
158 | #define EP_NUL 1 // Endpoint at this position not allowed | 139 | #define EP_NUL 1 // Endpoint at this position not allowed |
159 | #define EP_NOP 2 // all type of endpoints allowed at this position | 140 | #define EP_NOP 2 // all type of endpoints allowed at this position |
160 | #define EP_ISO 3 // Isochron endpoint mandatory at this position | 141 | #define EP_ISO 3 // Isochron endpoint mandatory at this position |
161 | #define EP_BLK 4 // Bulk endpoint mandatory at this position | 142 | #define EP_BLK 4 // Bulk endpoint mandatory at this position |
162 | #define EP_INT 5 // Interrupt endpoint mandatory at this position | 143 | #define EP_INT 5 // Interrupt endpoint mandatory at this position |
163 | 144 | ||
164 | /* this array represents all endpoints possible in the HCF-USB the last | 145 | /* |
165 | * 3 entries are the configuration number, the minimum interval for | 146 | * List of all supported endpoint configuration sets, used to find the |
166 | * Interrupt endpoints & boolean if E-channel logging possible | 147 | * best matching endpoint configuration within a devices' USB descriptor. |
167 | */ | 148 | * We need at least 3 RX endpoints, and 3 TX endpoints, either |
149 | * INT-in and ISO-out, or ISO-in and ISO-out) | ||
150 | * with 4 RX endpoints even E-Channel logging is possible | ||
151 | */ | ||
168 | static int validconf[][19] = { | 152 | static int validconf[][19] = { |
169 | // INT in, ISO out config | 153 | // INT in, ISO out config |
170 | {EP_NUL, EP_INT, EP_NUL, EP_INT, EP_NUL, EP_INT, EP_NOP, EP_INT, | 154 | {EP_NUL, EP_INT, EP_NUL, EP_INT, EP_NUL, EP_INT, EP_NOP, EP_INT, |
@@ -193,7 +177,6 @@ static char *conf_str[] = { | |||
193 | }; | 177 | }; |
194 | #endif | 178 | #endif |
195 | 179 | ||
196 | |||
197 | typedef struct { | 180 | typedef struct { |
198 | int vendor; // vendor id | 181 | int vendor; // vendor id |
199 | int prod_id; // product id | 182 | int prod_id; // product id |
@@ -202,9 +185,9 @@ typedef struct { | |||
202 | signed short led_bits[8]; // array of 8 possible LED bitmask settings | 185 | signed short led_bits[8]; // array of 8 possible LED bitmask settings |
203 | } vendor_data; | 186 | } vendor_data; |
204 | 187 | ||
205 | #define LED_OFF 0 // no LED support | 188 | #define LED_OFF 0 // no LED support |
206 | #define LED_SCHEME1 1 // LED standard scheme | 189 | #define LED_SCHEME1 1 // LED standard scheme |
207 | #define LED_SCHEME2 2 // not used yet... | 190 | #define LED_SCHEME2 2 // not used yet... |
208 | 191 | ||
209 | #define LED_POWER_ON 1 | 192 | #define LED_POWER_ON 1 |
210 | #define LED_POWER_OFF 2 | 193 | #define LED_POWER_OFF 2 |
@@ -217,11 +200,8 @@ typedef struct { | |||
217 | #define LED_B2_OFF 9 | 200 | #define LED_B2_OFF 9 |
218 | #define LED_B2_DATA 10 | 201 | #define LED_B2_DATA 10 |
219 | 202 | ||
220 | #define LED_NORMAL 0 // LEDs are normal | 203 | #define LED_NORMAL 0 // LEDs are normal |
221 | #define LED_INVERTED 1 // LEDs are inverted | 204 | #define LED_INVERTED 1 // LEDs are inverted |
222 | |||
223 | /* time in ms to perform a Flashing LED when B-Channel has traffic */ | ||
224 | #define LED_TIME 250 | ||
225 | 205 | ||
226 | 206 | ||
227 | #endif // __HFC_USB_H__ | 207 | #endif // __HFC_USB_H__ |
diff --git a/drivers/isdn/i4l/isdn_bsdcomp.c b/drivers/isdn/i4l/isdn_bsdcomp.c index 90a23795db7e..02d9918705dd 100644 --- a/drivers/isdn/i4l/isdn_bsdcomp.c +++ b/drivers/isdn/i4l/isdn_bsdcomp.c | |||
@@ -341,7 +341,7 @@ static void *bsd_alloc (struct isdn_ppp_comp_data *data) | |||
341 | * Allocate space for the dictionary. This may be more than one page in | 341 | * Allocate space for the dictionary. This may be more than one page in |
342 | * length. | 342 | * length. |
343 | */ | 343 | */ |
344 | db->dict = (struct bsd_dict *) vmalloc (hsize * sizeof (struct bsd_dict)); | 344 | db->dict = vmalloc(hsize * sizeof(struct bsd_dict)); |
345 | if (!db->dict) { | 345 | if (!db->dict) { |
346 | bsd_free (db); | 346 | bsd_free (db); |
347 | return NULL; | 347 | return NULL; |
@@ -354,8 +354,7 @@ static void *bsd_alloc (struct isdn_ppp_comp_data *data) | |||
354 | if (!decomp) | 354 | if (!decomp) |
355 | db->lens = NULL; | 355 | db->lens = NULL; |
356 | else { | 356 | else { |
357 | db->lens = (unsigned short *) vmalloc ((maxmaxcode + 1) * | 357 | db->lens = vmalloc((maxmaxcode + 1) * sizeof(db->lens[0])); |
358 | sizeof (db->lens[0])); | ||
359 | if (!db->lens) { | 358 | if (!db->lens) { |
360 | bsd_free (db); | 359 | bsd_free (db); |
361 | return (NULL); | 360 | return (NULL); |
diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c index c97330b19877..ec5f4046412f 100644 --- a/drivers/isdn/i4l/isdn_common.c +++ b/drivers/isdn/i4l/isdn_common.c | |||
@@ -2291,7 +2291,7 @@ static int __init isdn_init(void) | |||
2291 | int i; | 2291 | int i; |
2292 | char tmprev[50]; | 2292 | char tmprev[50]; |
2293 | 2293 | ||
2294 | if (!(dev = (isdn_dev *) vmalloc(sizeof(isdn_dev)))) { | 2294 | if (!(dev = vmalloc(sizeof(isdn_dev)))) { |
2295 | printk(KERN_WARNING "isdn: Could not allocate device-struct.\n"); | 2295 | printk(KERN_WARNING "isdn: Could not allocate device-struct.\n"); |
2296 | return -EIO; | 2296 | return -EIO; |
2297 | } | 2297 | } |
diff --git a/drivers/kvm/Kconfig b/drivers/kvm/Kconfig index 6cecc396e040..7b64fd4aa2f3 100644 --- a/drivers/kvm/Kconfig +++ b/drivers/kvm/Kconfig | |||
@@ -5,6 +5,11 @@ menuconfig VIRTUALIZATION | |||
5 | bool "Virtualization" | 5 | bool "Virtualization" |
6 | depends on X86 | 6 | depends on X86 |
7 | default y | 7 | default y |
8 | ---help--- | ||
9 | Say Y here to get to see options for virtualization guest drivers. | ||
10 | This option alone does not add any kernel code. | ||
11 | |||
12 | If you say N, all options in this submenu will be skipped and disabled. | ||
8 | 13 | ||
9 | if VIRTUALIZATION | 14 | if VIRTUALIZATION |
10 | 15 | ||
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c index 96856097d15b..cd0557954e50 100644 --- a/drivers/kvm/kvm_main.c +++ b/drivers/kvm/kvm_main.c | |||
@@ -2974,6 +2974,10 @@ static int kvm_cpu_hotplug(struct notifier_block *notifier, unsigned long val, | |||
2974 | switch (val) { | 2974 | switch (val) { |
2975 | case CPU_DYING: | 2975 | case CPU_DYING: |
2976 | case CPU_DYING_FROZEN: | 2976 | case CPU_DYING_FROZEN: |
2977 | printk(KERN_INFO "kvm: disabling virtualization on CPU%d\n", | ||
2978 | cpu); | ||
2979 | hardware_disable(NULL); | ||
2980 | break; | ||
2977 | case CPU_UP_CANCELED: | 2981 | case CPU_UP_CANCELED: |
2978 | case CPU_UP_CANCELED_FROZEN: | 2982 | case CPU_UP_CANCELED_FROZEN: |
2979 | printk(KERN_INFO "kvm: disabling virtualization on CPU%d\n", | 2983 | printk(KERN_INFO "kvm: disabling virtualization on CPU%d\n", |
diff --git a/drivers/lguest/Kconfig b/drivers/lguest/Kconfig index fd6925f41647..41e2250613a1 100644 --- a/drivers/lguest/Kconfig +++ b/drivers/lguest/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config LGUEST | 1 | config LGUEST |
2 | tristate "Linux hypervisor example code" | 2 | tristate "Linux hypervisor example code" |
3 | depends on X86 && PARAVIRT && EXPERIMENTAL && !X86_PAE | 3 | depends on X86 && PARAVIRT && EXPERIMENTAL && !X86_PAE && FUTEX |
4 | select LGUEST_GUEST | 4 | select LGUEST_GUEST |
5 | select HVC_DRIVER | 5 | select HVC_DRIVER |
6 | ---help--- | 6 | ---help--- |
diff --git a/drivers/macintosh/Kconfig b/drivers/macintosh/Kconfig index dbe96268866e..56cd8998fe4b 100644 --- a/drivers/macintosh/Kconfig +++ b/drivers/macintosh/Kconfig | |||
@@ -3,6 +3,11 @@ menuconfig MACINTOSH_DRIVERS | |||
3 | bool "Macintosh device drivers" | 3 | bool "Macintosh device drivers" |
4 | depends on PPC || MAC || X86 | 4 | depends on PPC || MAC || X86 |
5 | default y if (PPC_PMAC || MAC) | 5 | default y if (PPC_PMAC || MAC) |
6 | ---help--- | ||
7 | Say Y here to get to see options for devices used with Macintosh | ||
8 | computers. This option alone does not add any kernel code. | ||
9 | |||
10 | If you say N, all options in this submenu will be skipped and disabled. | ||
6 | 11 | ||
7 | if MACINTOSH_DRIVERS | 12 | if MACINTOSH_DRIVERS |
8 | 13 | ||
diff --git a/drivers/macintosh/adb.c b/drivers/macintosh/adb.c index bc77c5e2ca9f..5c742a526082 100644 --- a/drivers/macintosh/adb.c +++ b/drivers/macintosh/adb.c | |||
@@ -89,7 +89,7 @@ static int sleepy_trackpad; | |||
89 | static int autopoll_devs; | 89 | static int autopoll_devs; |
90 | int __adb_probe_sync; | 90 | int __adb_probe_sync; |
91 | 91 | ||
92 | #ifdef CONFIG_PM | 92 | #ifdef CONFIG_PM_SLEEP |
93 | static void adb_notify_sleep(struct pmu_sleep_notifier *self, int when); | 93 | static void adb_notify_sleep(struct pmu_sleep_notifier *self, int when); |
94 | static struct pmu_sleep_notifier adb_sleep_notifier = { | 94 | static struct pmu_sleep_notifier adb_sleep_notifier = { |
95 | adb_notify_sleep, | 95 | adb_notify_sleep, |
@@ -313,7 +313,7 @@ int __init adb_init(void) | |||
313 | printk(KERN_WARNING "Warning: no ADB interface detected\n"); | 313 | printk(KERN_WARNING "Warning: no ADB interface detected\n"); |
314 | adb_controller = NULL; | 314 | adb_controller = NULL; |
315 | } else { | 315 | } else { |
316 | #ifdef CONFIG_PM | 316 | #ifdef CONFIG_PM_SLEEP |
317 | pmu_register_sleep_notifier(&adb_sleep_notifier); | 317 | pmu_register_sleep_notifier(&adb_sleep_notifier); |
318 | #endif /* CONFIG_PM */ | 318 | #endif /* CONFIG_PM */ |
319 | #ifdef CONFIG_PPC | 319 | #ifdef CONFIG_PPC |
diff --git a/drivers/macintosh/mac_hid.c b/drivers/macintosh/mac_hid.c index 76c1e8e4a487..33dee3a773ed 100644 --- a/drivers/macintosh/mac_hid.c +++ b/drivers/macintosh/mac_hid.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/sysctl.h> | 13 | #include <linux/sysctl.h> |
14 | #include <linux/input.h> | 14 | #include <linux/input.h> |
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | #include <linux/kbd_kern.h> | ||
16 | 17 | ||
17 | 18 | ||
18 | static struct input_dev *emumousebtn; | 19 | static struct input_dev *emumousebtn; |
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c index 5eee480245f3..f7c509b7a8ea 100644 --- a/drivers/macintosh/via-pmu.c +++ b/drivers/macintosh/via-pmu.c | |||
@@ -152,10 +152,10 @@ static spinlock_t pmu_lock; | |||
152 | static u8 pmu_intr_mask; | 152 | static u8 pmu_intr_mask; |
153 | static int pmu_version; | 153 | static int pmu_version; |
154 | static int drop_interrupts; | 154 | static int drop_interrupts; |
155 | #if defined(CONFIG_PM) && defined(CONFIG_PPC32) | 155 | #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) |
156 | static int option_lid_wakeup = 1; | 156 | static int option_lid_wakeup = 1; |
157 | #endif /* CONFIG_PM && CONFIG_PPC32 */ | 157 | #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */ |
158 | #if (defined(CONFIG_PM)&&defined(CONFIG_PPC32))||defined(CONFIG_PMAC_BACKLIGHT_LEGACY) | 158 | #if (defined(CONFIG_PM_SLEEP)&&defined(CONFIG_PPC32))||defined(CONFIG_PMAC_BACKLIGHT_LEGACY) |
159 | static int sleep_in_progress; | 159 | static int sleep_in_progress; |
160 | #endif | 160 | #endif |
161 | static unsigned long async_req_locks; | 161 | static unsigned long async_req_locks; |
@@ -875,7 +875,7 @@ proc_read_options(char *page, char **start, off_t off, | |||
875 | { | 875 | { |
876 | char *p = page; | 876 | char *p = page; |
877 | 877 | ||
878 | #if defined(CONFIG_PM) && defined(CONFIG_PPC32) | 878 | #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) |
879 | if (pmu_kind == PMU_KEYLARGO_BASED && | 879 | if (pmu_kind == PMU_KEYLARGO_BASED && |
880 | pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0) | 880 | pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0) |
881 | p += sprintf(p, "lid_wakeup=%d\n", option_lid_wakeup); | 881 | p += sprintf(p, "lid_wakeup=%d\n", option_lid_wakeup); |
@@ -916,7 +916,7 @@ proc_write_options(struct file *file, const char __user *buffer, | |||
916 | *(val++) = 0; | 916 | *(val++) = 0; |
917 | while(*val == ' ') | 917 | while(*val == ' ') |
918 | val++; | 918 | val++; |
919 | #if defined(CONFIG_PM) && defined(CONFIG_PPC32) | 919 | #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) |
920 | if (pmu_kind == PMU_KEYLARGO_BASED && | 920 | if (pmu_kind == PMU_KEYLARGO_BASED && |
921 | pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0) | 921 | pmac_call_feature(PMAC_FTR_SLEEP_STATE,NULL,0,-1) >= 0) |
922 | if (!strcmp(label, "lid_wakeup")) | 922 | if (!strcmp(label, "lid_wakeup")) |
@@ -1738,7 +1738,7 @@ pmu_present(void) | |||
1738 | return via != 0; | 1738 | return via != 0; |
1739 | } | 1739 | } |
1740 | 1740 | ||
1741 | #ifdef CONFIG_PM | 1741 | #ifdef CONFIG_PM_SLEEP |
1742 | 1742 | ||
1743 | static LIST_HEAD(sleep_notifiers); | 1743 | static LIST_HEAD(sleep_notifiers); |
1744 | 1744 | ||
@@ -1769,9 +1769,9 @@ pmu_unregister_sleep_notifier(struct pmu_sleep_notifier* n) | |||
1769 | return 0; | 1769 | return 0; |
1770 | } | 1770 | } |
1771 | EXPORT_SYMBOL(pmu_unregister_sleep_notifier); | 1771 | EXPORT_SYMBOL(pmu_unregister_sleep_notifier); |
1772 | #endif /* CONFIG_PM */ | 1772 | #endif /* CONFIG_PM_SLEEP */ |
1773 | 1773 | ||
1774 | #if defined(CONFIG_PM) && defined(CONFIG_PPC32) | 1774 | #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) |
1775 | 1775 | ||
1776 | /* Sleep is broadcast last-to-first */ | 1776 | /* Sleep is broadcast last-to-first */ |
1777 | static void broadcast_sleep(int when) | 1777 | static void broadcast_sleep(int when) |
@@ -2390,7 +2390,7 @@ powerbook_sleep_3400(void) | |||
2390 | return 0; | 2390 | return 0; |
2391 | } | 2391 | } |
2392 | 2392 | ||
2393 | #endif /* CONFIG_PM && CONFIG_PPC32 */ | 2393 | #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */ |
2394 | 2394 | ||
2395 | /* | 2395 | /* |
2396 | * Support for /dev/pmu device | 2396 | * Support for /dev/pmu device |
@@ -2573,7 +2573,7 @@ pmu_ioctl(struct inode * inode, struct file *filp, | |||
2573 | int error = -EINVAL; | 2573 | int error = -EINVAL; |
2574 | 2574 | ||
2575 | switch (cmd) { | 2575 | switch (cmd) { |
2576 | #if defined(CONFIG_PM) && defined(CONFIG_PPC32) | 2576 | #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) |
2577 | case PMU_IOC_SLEEP: | 2577 | case PMU_IOC_SLEEP: |
2578 | if (!capable(CAP_SYS_ADMIN)) | 2578 | if (!capable(CAP_SYS_ADMIN)) |
2579 | return -EACCES; | 2579 | return -EACCES; |
@@ -2601,7 +2601,7 @@ pmu_ioctl(struct inode * inode, struct file *filp, | |||
2601 | return put_user(0, argp); | 2601 | return put_user(0, argp); |
2602 | else | 2602 | else |
2603 | return put_user(1, argp); | 2603 | return put_user(1, argp); |
2604 | #endif /* CONFIG_PM && CONFIG_PPC32 */ | 2604 | #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */ |
2605 | 2605 | ||
2606 | #ifdef CONFIG_PMAC_BACKLIGHT_LEGACY | 2606 | #ifdef CONFIG_PMAC_BACKLIGHT_LEGACY |
2607 | /* Compatibility ioctl's for backlight */ | 2607 | /* Compatibility ioctl's for backlight */ |
@@ -2757,7 +2757,7 @@ pmu_polled_request(struct adb_request *req) | |||
2757 | * to do suspend-to-disk. | 2757 | * to do suspend-to-disk. |
2758 | */ | 2758 | */ |
2759 | 2759 | ||
2760 | #if defined(CONFIG_PM) && defined(CONFIG_PPC32) | 2760 | #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) |
2761 | 2761 | ||
2762 | int pmu_sys_suspended; | 2762 | int pmu_sys_suspended; |
2763 | 2763 | ||
@@ -2792,7 +2792,7 @@ static int pmu_sys_resume(struct sys_device *sysdev) | |||
2792 | return 0; | 2792 | return 0; |
2793 | } | 2793 | } |
2794 | 2794 | ||
2795 | #endif /* CONFIG_PM && CONFIG_PPC32 */ | 2795 | #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */ |
2796 | 2796 | ||
2797 | static struct sysdev_class pmu_sysclass = { | 2797 | static struct sysdev_class pmu_sysclass = { |
2798 | set_kset_name("pmu"), | 2798 | set_kset_name("pmu"), |
@@ -2803,10 +2803,10 @@ static struct sys_device device_pmu = { | |||
2803 | }; | 2803 | }; |
2804 | 2804 | ||
2805 | static struct sysdev_driver driver_pmu = { | 2805 | static struct sysdev_driver driver_pmu = { |
2806 | #if defined(CONFIG_PM) && defined(CONFIG_PPC32) | 2806 | #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) |
2807 | .suspend = &pmu_sys_suspend, | 2807 | .suspend = &pmu_sys_suspend, |
2808 | .resume = &pmu_sys_resume, | 2808 | .resume = &pmu_sys_resume, |
2809 | #endif /* CONFIG_PM && CONFIG_PPC32 */ | 2809 | #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */ |
2810 | }; | 2810 | }; |
2811 | 2811 | ||
2812 | static int __init init_pmu_sysfs(void) | 2812 | static int __init init_pmu_sysfs(void) |
@@ -2841,10 +2841,10 @@ EXPORT_SYMBOL(pmu_wait_complete); | |||
2841 | EXPORT_SYMBOL(pmu_suspend); | 2841 | EXPORT_SYMBOL(pmu_suspend); |
2842 | EXPORT_SYMBOL(pmu_resume); | 2842 | EXPORT_SYMBOL(pmu_resume); |
2843 | EXPORT_SYMBOL(pmu_unlock); | 2843 | EXPORT_SYMBOL(pmu_unlock); |
2844 | #if defined(CONFIG_PM) && defined(CONFIG_PPC32) | 2844 | #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) |
2845 | EXPORT_SYMBOL(pmu_enable_irled); | 2845 | EXPORT_SYMBOL(pmu_enable_irled); |
2846 | EXPORT_SYMBOL(pmu_battery_count); | 2846 | EXPORT_SYMBOL(pmu_battery_count); |
2847 | EXPORT_SYMBOL(pmu_batteries); | 2847 | EXPORT_SYMBOL(pmu_batteries); |
2848 | EXPORT_SYMBOL(pmu_power_flags); | 2848 | EXPORT_SYMBOL(pmu_power_flags); |
2849 | #endif /* CONFIG_PM && CONFIG_PPC32 */ | 2849 | #endif /* CONFIG_PM_SLEEP && CONFIG_PPC32 */ |
2850 | 2850 | ||
diff --git a/drivers/macintosh/via-pmu68k.c b/drivers/macintosh/via-pmu68k.c index dfdf11c1eec4..e2f84da09e7c 100644 --- a/drivers/macintosh/via-pmu68k.c +++ b/drivers/macintosh/via-pmu68k.c | |||
@@ -818,243 +818,3 @@ pmu_present(void) | |||
818 | { | 818 | { |
819 | return (pmu_kind != PMU_UNKNOWN); | 819 | return (pmu_kind != PMU_UNKNOWN); |
820 | } | 820 | } |
821 | |||
822 | #if 0 /* needs some work for 68K */ | ||
823 | |||
824 | /* | ||
825 | * This struct is used to store config register values for | ||
826 | * PCI devices which may get powered off when we sleep. | ||
827 | */ | ||
828 | static struct pci_save { | ||
829 | u16 command; | ||
830 | u16 cache_lat; | ||
831 | u16 intr; | ||
832 | } *pbook_pci_saves; | ||
833 | static int n_pbook_pci_saves; | ||
834 | |||
835 | static inline void | ||
836 | pbook_pci_save(void) | ||
837 | { | ||
838 | int npci; | ||
839 | struct pci_dev *pd = NULL; | ||
840 | struct pci_save *ps; | ||
841 | |||
842 | npci = 0; | ||
843 | while ((pd = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pd)) != NULL) | ||
844 | ++npci; | ||
845 | n_pbook_pci_saves = npci; | ||
846 | if (npci == 0) | ||
847 | return; | ||
848 | ps = kmalloc(npci * sizeof(*ps), GFP_KERNEL); | ||
849 | pbook_pci_saves = ps; | ||
850 | if (ps == NULL) | ||
851 | return; | ||
852 | |||
853 | pd = NULL; | ||
854 | while ((pd = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pd)) != NULL) { | ||
855 | pci_read_config_word(pd, PCI_COMMAND, &ps->command); | ||
856 | pci_read_config_word(pd, PCI_CACHE_LINE_SIZE, &ps->cache_lat); | ||
857 | pci_read_config_word(pd, PCI_INTERRUPT_LINE, &ps->intr); | ||
858 | ++ps; | ||
859 | --npci; | ||
860 | } | ||
861 | } | ||
862 | |||
863 | static inline void | ||
864 | pbook_pci_restore(void) | ||
865 | { | ||
866 | u16 cmd; | ||
867 | struct pci_save *ps = pbook_pci_saves; | ||
868 | struct pci_dev *pd = NULL; | ||
869 | int j; | ||
870 | |||
871 | while ((pd = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pd)) != NULL) { | ||
872 | if (ps->command == 0) | ||
873 | continue; | ||
874 | pci_read_config_word(pd, PCI_COMMAND, &cmd); | ||
875 | if ((ps->command & ~cmd) == 0) | ||
876 | continue; | ||
877 | switch (pd->hdr_type) { | ||
878 | case PCI_HEADER_TYPE_NORMAL: | ||
879 | for (j = 0; j < 6; ++j) | ||
880 | pci_write_config_dword(pd, | ||
881 | PCI_BASE_ADDRESS_0 + j*4, | ||
882 | pd->resource[j].start); | ||
883 | pci_write_config_dword(pd, PCI_ROM_ADDRESS, | ||
884 | pd->resource[PCI_ROM_RESOURCE].start); | ||
885 | pci_write_config_word(pd, PCI_CACHE_LINE_SIZE, | ||
886 | ps->cache_lat); | ||
887 | pci_write_config_word(pd, PCI_INTERRUPT_LINE, | ||
888 | ps->intr); | ||
889 | pci_write_config_word(pd, PCI_COMMAND, ps->command); | ||
890 | break; | ||
891 | /* other header types not restored at present */ | ||
892 | } | ||
893 | } | ||
894 | } | ||
895 | |||
896 | /* | ||
897 | * Put the powerbook to sleep. | ||
898 | */ | ||
899 | #define IRQ_ENABLE ((unsigned int *)0xf3000024) | ||
900 | #define MEM_CTRL ((unsigned int *)0xf8000070) | ||
901 | |||
902 | int powerbook_sleep(void) | ||
903 | { | ||
904 | int ret, i, x; | ||
905 | static int save_backlight; | ||
906 | static unsigned int save_irqen; | ||
907 | unsigned long msr; | ||
908 | unsigned int hid0; | ||
909 | unsigned long p, wait; | ||
910 | struct adb_request sleep_req; | ||
911 | |||
912 | /* Notify device drivers */ | ||
913 | ret = blocking_notifier_call_chain(&sleep_notifier_list, | ||
914 | PBOOK_SLEEP, NULL); | ||
915 | if (ret & NOTIFY_STOP_MASK) | ||
916 | return -EBUSY; | ||
917 | |||
918 | /* Sync the disks. */ | ||
919 | /* XXX It would be nice to have some way to ensure that | ||
920 | * nobody is dirtying any new buffers while we wait. */ | ||
921 | sys_sync(); | ||
922 | |||
923 | /* Turn off the display backlight */ | ||
924 | save_backlight = backlight_enabled; | ||
925 | if (save_backlight) | ||
926 | pmu_enable_backlight(0); | ||
927 | |||
928 | /* Give the disks a little time to actually finish writing */ | ||
929 | for (wait = jiffies + (HZ/4); time_before(jiffies, wait); ) | ||
930 | mb(); | ||
931 | |||
932 | /* Disable all interrupts except pmu */ | ||
933 | save_irqen = in_le32(IRQ_ENABLE); | ||
934 | for (i = 0; i < 32; ++i) | ||
935 | if (i != vias->intrs[0].line && (save_irqen & (1 << i))) | ||
936 | disable_irq(i); | ||
937 | asm volatile("mtdec %0" : : "r" (0x7fffffff)); | ||
938 | |||
939 | /* Save the state of PCI config space for some slots */ | ||
940 | pbook_pci_save(); | ||
941 | |||
942 | /* Set the memory controller to keep the memory refreshed | ||
943 | while we're asleep */ | ||
944 | for (i = 0x403f; i >= 0x4000; --i) { | ||
945 | out_be32(MEM_CTRL, i); | ||
946 | do { | ||
947 | x = (in_be32(MEM_CTRL) >> 16) & 0x3ff; | ||
948 | } while (x == 0); | ||
949 | if (x >= 0x100) | ||
950 | break; | ||
951 | } | ||
952 | |||
953 | /* Ask the PMU to put us to sleep */ | ||
954 | pmu_request(&sleep_req, NULL, 5, PMU_SLEEP, 'M', 'A', 'T', 'T'); | ||
955 | while (!sleep_req.complete) | ||
956 | mb(); | ||
957 | /* displacement-flush the L2 cache - necessary? */ | ||
958 | for (p = KERNELBASE; p < KERNELBASE + 0x100000; p += 0x1000) | ||
959 | i = *(volatile int *)p; | ||
960 | asleep = 1; | ||
961 | |||
962 | /* Put the CPU into sleep mode */ | ||
963 | asm volatile("mfspr %0,1008" : "=r" (hid0) :); | ||
964 | hid0 = (hid0 & ~(HID0_NAP | HID0_DOZE)) | HID0_SLEEP; | ||
965 | asm volatile("mtspr 1008,%0" : : "r" (hid0)); | ||
966 | local_save_flags(msr); | ||
967 | msr |= MSR_POW | MSR_EE; | ||
968 | local_irq_restore(msr); | ||
969 | udelay(10); | ||
970 | |||
971 | /* OK, we're awake again, start restoring things */ | ||
972 | out_be32(MEM_CTRL, 0x3f); | ||
973 | pbook_pci_restore(); | ||
974 | |||
975 | /* wait for the PMU interrupt sequence to complete */ | ||
976 | while (asleep) | ||
977 | mb(); | ||
978 | |||
979 | /* reenable interrupts */ | ||
980 | for (i = 0; i < 32; ++i) | ||
981 | if (i != vias->intrs[0].line && (save_irqen & (1 << i))) | ||
982 | enable_irq(i); | ||
983 | |||
984 | /* Notify drivers */ | ||
985 | blocking_notifier_call_chain(&sleep_notifier_list, PBOOK_WAKE, NULL); | ||
986 | |||
987 | /* reenable ADB autopoll */ | ||
988 | pmu_adb_autopoll(adb_dev_map); | ||
989 | |||
990 | /* Turn on the screen backlight, if it was on before */ | ||
991 | if (save_backlight) | ||
992 | pmu_enable_backlight(1); | ||
993 | |||
994 | /* Wait for the hard disk to spin up */ | ||
995 | |||
996 | return 0; | ||
997 | } | ||
998 | |||
999 | /* | ||
1000 | * Support for /dev/pmu device | ||
1001 | */ | ||
1002 | static int pmu_open(struct inode *inode, struct file *file) | ||
1003 | { | ||
1004 | return 0; | ||
1005 | } | ||
1006 | |||
1007 | static ssize_t pmu_read(struct file *file, char *buf, | ||
1008 | size_t count, loff_t *ppos) | ||
1009 | { | ||
1010 | return 0; | ||
1011 | } | ||
1012 | |||
1013 | static ssize_t pmu_write(struct file *file, const char *buf, | ||
1014 | size_t count, loff_t *ppos) | ||
1015 | { | ||
1016 | return 0; | ||
1017 | } | ||
1018 | |||
1019 | static int pmu_ioctl(struct inode * inode, struct file *filp, | ||
1020 | u_int cmd, u_long arg) | ||
1021 | { | ||
1022 | int error; | ||
1023 | __u32 value; | ||
1024 | |||
1025 | switch (cmd) { | ||
1026 | case PMU_IOC_SLEEP: | ||
1027 | return -ENOSYS; | ||
1028 | case PMU_IOC_GET_BACKLIGHT: | ||
1029 | return put_user(backlight_level, (__u32 *)arg); | ||
1030 | case PMU_IOC_SET_BACKLIGHT: | ||
1031 | error = get_user(value, (__u32 *)arg); | ||
1032 | if (!error) | ||
1033 | pmu_set_brightness(value); | ||
1034 | return error; | ||
1035 | case PMU_IOC_GET_MODEL: | ||
1036 | return put_user(pmu_kind, (__u32 *)arg); | ||
1037 | } | ||
1038 | return -EINVAL; | ||
1039 | } | ||
1040 | |||
1041 | static const struct file_operations pmu_device_fops = { | ||
1042 | .read = pmu_read, | ||
1043 | .write = pmu_write, | ||
1044 | .ioctl = pmu_ioctl, | ||
1045 | .open = pmu_open, | ||
1046 | }; | ||
1047 | |||
1048 | static struct miscdevice pmu_device = { | ||
1049 | PMU_MINOR, "pmu", &pmu_device_fops | ||
1050 | }; | ||
1051 | |||
1052 | void pmu_device_init(void) | ||
1053 | { | ||
1054 | if (!via) | ||
1055 | return; | ||
1056 | if (misc_register(&pmu_device) < 0) | ||
1057 | printk(KERN_ERR "via-pmu68k: cannot register misc device.\n"); | ||
1058 | } | ||
1059 | #endif /* CONFIG_PMAC_PBOOK */ | ||
1060 | |||
diff --git a/drivers/md/Kconfig b/drivers/md/Kconfig index 531d4d17d011..34a8c60a254a 100644 --- a/drivers/md/Kconfig +++ b/drivers/md/Kconfig | |||
@@ -263,7 +263,7 @@ config DM_MULTIPATH_EMC | |||
263 | 263 | ||
264 | config DM_MULTIPATH_RDAC | 264 | config DM_MULTIPATH_RDAC |
265 | tristate "LSI/Engenio RDAC multipath support (EXPERIMENTAL)" | 265 | tristate "LSI/Engenio RDAC multipath support (EXPERIMENTAL)" |
266 | depends on DM_MULTIPATH && BLK_DEV_DM && EXPERIMENTAL | 266 | depends on DM_MULTIPATH && BLK_DEV_DM && SCSI && EXPERIMENTAL |
267 | ---help--- | 267 | ---help--- |
268 | Multipath support for LSI/Engenio RDAC. | 268 | Multipath support for LSI/Engenio RDAC. |
269 | 269 | ||
diff --git a/drivers/md/dm-mpath-rdac.c b/drivers/md/dm-mpath-rdac.c index 8b776b8cb7f7..16b161345775 100644 --- a/drivers/md/dm-mpath-rdac.c +++ b/drivers/md/dm-mpath-rdac.c | |||
@@ -292,7 +292,7 @@ static struct request *get_rdac_req(struct rdac_handler *h, | |||
292 | rq->end_io_data = h; | 292 | rq->end_io_data = h; |
293 | rq->timeout = h->timeout; | 293 | rq->timeout = h->timeout; |
294 | rq->cmd_type = REQ_TYPE_BLOCK_PC; | 294 | rq->cmd_type = REQ_TYPE_BLOCK_PC; |
295 | rq->cmd_flags = REQ_FAILFAST | REQ_NOMERGE; | 295 | rq->cmd_flags |= REQ_FAILFAST | REQ_NOMERGE; |
296 | return rq; | 296 | return rq; |
297 | } | 297 | } |
298 | 298 | ||
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 650991bddd8e..f33a729960ca 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -1972,7 +1972,8 @@ static int run(mddev_t *mddev) | |||
1972 | !test_bit(In_sync, &disk->rdev->flags)) { | 1972 | !test_bit(In_sync, &disk->rdev->flags)) { |
1973 | disk->head_position = 0; | 1973 | disk->head_position = 0; |
1974 | mddev->degraded++; | 1974 | mddev->degraded++; |
1975 | conf->fullsync = 1; | 1975 | if (disk->rdev) |
1976 | conf->fullsync = 1; | ||
1976 | } | 1977 | } |
1977 | } | 1978 | } |
1978 | if (mddev->degraded == conf->raid_disks) { | 1979 | if (mddev->degraded == conf->raid_disks) { |
@@ -2153,11 +2154,25 @@ static int raid1_reshape(mddev_t *mddev) | |||
2153 | oldpool = conf->r1bio_pool; | 2154 | oldpool = conf->r1bio_pool; |
2154 | conf->r1bio_pool = newpool; | 2155 | conf->r1bio_pool = newpool; |
2155 | 2156 | ||
2156 | for (d=d2=0; d < conf->raid_disks; d++) | 2157 | for (d = d2 = 0; d < conf->raid_disks; d++) { |
2157 | if (conf->mirrors[d].rdev) { | 2158 | mdk_rdev_t *rdev = conf->mirrors[d].rdev; |
2158 | conf->mirrors[d].rdev->raid_disk = d2; | 2159 | if (rdev && rdev->raid_disk != d2) { |
2159 | newmirrors[d2++].rdev = conf->mirrors[d].rdev; | 2160 | char nm[20]; |
2161 | sprintf(nm, "rd%d", rdev->raid_disk); | ||
2162 | sysfs_remove_link(&mddev->kobj, nm); | ||
2163 | rdev->raid_disk = d2; | ||
2164 | sprintf(nm, "rd%d", rdev->raid_disk); | ||
2165 | sysfs_remove_link(&mddev->kobj, nm); | ||
2166 | if (sysfs_create_link(&mddev->kobj, | ||
2167 | &rdev->kobj, nm)) | ||
2168 | printk(KERN_WARNING | ||
2169 | "md/raid1: cannot register " | ||
2170 | "%s for %s\n", | ||
2171 | nm, mdname(mddev)); | ||
2160 | } | 2172 | } |
2173 | if (rdev) | ||
2174 | newmirrors[d2++].rdev = rdev; | ||
2175 | } | ||
2161 | kfree(conf->mirrors); | 2176 | kfree(conf->mirrors); |
2162 | conf->mirrors = newmirrors; | 2177 | conf->mirrors = newmirrors; |
2163 | kfree(conf->poolinfo); | 2178 | kfree(conf->poolinfo); |
diff --git a/drivers/media/dvb/b2c2/flexcop-i2c.c b/drivers/media/dvb/b2c2/flexcop-i2c.c index 02a0ea6e1c17..6bf858a436c9 100644 --- a/drivers/media/dvb/b2c2/flexcop-i2c.c +++ b/drivers/media/dvb/b2c2/flexcop-i2c.c | |||
@@ -135,6 +135,13 @@ static int flexcop_master_xfer(struct i2c_adapter *i2c_adap, struct i2c_msg msgs | |||
135 | struct flexcop_device *fc = i2c_get_adapdata(i2c_adap); | 135 | struct flexcop_device *fc = i2c_get_adapdata(i2c_adap); |
136 | int i, ret = 0; | 136 | int i, ret = 0; |
137 | 137 | ||
138 | /* Some drivers use 1 byte or 0 byte reads as probes, which this | ||
139 | * driver doesn't support. These probes will always fail, so this | ||
140 | * hack makes them always succeed. If one knew how, it would of | ||
141 | * course be better to actually do the read. */ | ||
142 | if (num == 1 && msgs[0].flags == I2C_M_RD && msgs[0].len <= 1) | ||
143 | return 1; | ||
144 | |||
138 | if (mutex_lock_interruptible(&fc->i2c_mutex)) | 145 | if (mutex_lock_interruptible(&fc->i2c_mutex)) |
139 | return -ERESTARTSYS; | 146 | return -ERESTARTSYS; |
140 | 147 | ||
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c b/drivers/media/dvb/dvb-core/dvb_net.c index acf026342ec5..bdd797071cb0 100644 --- a/drivers/media/dvb/dvb-core/dvb_net.c +++ b/drivers/media/dvb/dvb-core/dvb_net.c | |||
@@ -800,7 +800,8 @@ static int dvb_net_ts_callback(const u8 *buffer1, size_t buffer1_len, | |||
800 | } | 800 | } |
801 | 801 | ||
802 | 802 | ||
803 | static void dvb_net_sec(struct net_device *dev, u8 *pkt, int pkt_len) | 803 | static void dvb_net_sec(struct net_device *dev, const u8 *pkt, int |
804 | pkt_len) | ||
804 | { | 805 | { |
805 | u8 *eth; | 806 | u8 *eth; |
806 | struct sk_buff *skb; | 807 | struct sk_buff *skb; |
@@ -902,7 +903,7 @@ static int dvb_net_sec_callback(const u8 *buffer1, size_t buffer1_len, | |||
902 | * we rely on the DVB API definition where exactly one complete | 903 | * we rely on the DVB API definition where exactly one complete |
903 | * section is delivered in buffer1 | 904 | * section is delivered in buffer1 |
904 | */ | 905 | */ |
905 | dvb_net_sec (dev, (u8*) buffer1, buffer1_len); | 906 | dvb_net_sec (dev, buffer1, buffer1_len); |
906 | return 0; | 907 | return 0; |
907 | } | 908 | } |
908 | 909 | ||
diff --git a/drivers/media/dvb/frontends/dvb-pll.c b/drivers/media/dvb/frontends/dvb-pll.c index ca99e439c97c..11f7d5939bd9 100644 --- a/drivers/media/dvb/frontends/dvb-pll.c +++ b/drivers/media/dvb/frontends/dvb-pll.c | |||
@@ -784,7 +784,7 @@ struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr, | |||
784 | strncpy(fe->ops.tuner_ops.info.name, desc->name, | 784 | strncpy(fe->ops.tuner_ops.info.name, desc->name, |
785 | sizeof(fe->ops.tuner_ops.info.name)); | 785 | sizeof(fe->ops.tuner_ops.info.name)); |
786 | fe->ops.tuner_ops.info.frequency_min = desc->min; | 786 | fe->ops.tuner_ops.info.frequency_min = desc->min; |
787 | fe->ops.tuner_ops.info.frequency_min = desc->max; | 787 | fe->ops.tuner_ops.info.frequency_max = desc->max; |
788 | if (!desc->initdata) | 788 | if (!desc->initdata) |
789 | fe->ops.tuner_ops.init = NULL; | 789 | fe->ops.tuner_ops.init = NULL; |
790 | if (!desc->sleepdata) | 790 | if (!desc->sleepdata) |
diff --git a/drivers/media/video/cafe_ccic.c b/drivers/media/video/cafe_ccic.c index c08f650df423..ef5361824f87 100644 --- a/drivers/media/video/cafe_ccic.c +++ b/drivers/media/video/cafe_ccic.c | |||
@@ -356,6 +356,7 @@ static int cafe_smbus_write_data(struct cafe_camera *cam, | |||
356 | { | 356 | { |
357 | unsigned int rval; | 357 | unsigned int rval; |
358 | unsigned long flags; | 358 | unsigned long flags; |
359 | DEFINE_WAIT(the_wait); | ||
359 | 360 | ||
360 | spin_lock_irqsave(&cam->dev_lock, flags); | 361 | spin_lock_irqsave(&cam->dev_lock, flags); |
361 | rval = TWSIC0_EN | ((addr << TWSIC0_SID_SHIFT) & TWSIC0_SID); | 362 | rval = TWSIC0_EN | ((addr << TWSIC0_SID_SHIFT) & TWSIC0_SID); |
@@ -369,10 +370,29 @@ static int cafe_smbus_write_data(struct cafe_camera *cam, | |||
369 | rval = value | ((command << TWSIC1_ADDR_SHIFT) & TWSIC1_ADDR); | 370 | rval = value | ((command << TWSIC1_ADDR_SHIFT) & TWSIC1_ADDR); |
370 | cafe_reg_write(cam, REG_TWSIC1, rval); | 371 | cafe_reg_write(cam, REG_TWSIC1, rval); |
371 | spin_unlock_irqrestore(&cam->dev_lock, flags); | 372 | spin_unlock_irqrestore(&cam->dev_lock, flags); |
372 | msleep(2); /* Required or things flake */ | ||
373 | 373 | ||
374 | /* | ||
375 | * Time to wait for the write to complete. THIS IS A RACY | ||
376 | * WAY TO DO IT, but the sad fact is that reading the TWSIC1 | ||
377 | * register too quickly after starting the operation sends | ||
378 | * the device into a place that may be kinder and better, but | ||
379 | * which is absolutely useless for controlling the sensor. In | ||
380 | * practice we have plenty of time to get into our sleep state | ||
381 | * before the interrupt hits, and the worst case is that we | ||
382 | * time out and then see that things completed, so this seems | ||
383 | * the best way for now. | ||
384 | */ | ||
385 | do { | ||
386 | prepare_to_wait(&cam->smbus_wait, &the_wait, | ||
387 | TASK_UNINTERRUPTIBLE); | ||
388 | schedule_timeout(1); /* even 1 jiffy is too long */ | ||
389 | finish_wait(&cam->smbus_wait, &the_wait); | ||
390 | } while (!cafe_smbus_write_done(cam)); | ||
391 | |||
392 | #ifdef IF_THE_CAFE_HARDWARE_WORKED_RIGHT | ||
374 | wait_event_timeout(cam->smbus_wait, cafe_smbus_write_done(cam), | 393 | wait_event_timeout(cam->smbus_wait, cafe_smbus_write_done(cam), |
375 | CAFE_SMBUS_TIMEOUT); | 394 | CAFE_SMBUS_TIMEOUT); |
395 | #endif | ||
376 | spin_lock_irqsave(&cam->dev_lock, flags); | 396 | spin_lock_irqsave(&cam->dev_lock, flags); |
377 | rval = cafe_reg_read(cam, REG_TWSIC1); | 397 | rval = cafe_reg_read(cam, REG_TWSIC1); |
378 | spin_unlock_irqrestore(&cam->dev_lock, flags); | 398 | spin_unlock_irqrestore(&cam->dev_lock, flags); |
@@ -710,7 +730,7 @@ static void cafe_ctlr_init(struct cafe_camera *cam) | |||
710 | * Here we must wait a bit for the controller to come around. | 730 | * Here we must wait a bit for the controller to come around. |
711 | */ | 731 | */ |
712 | spin_unlock_irqrestore(&cam->dev_lock, flags); | 732 | spin_unlock_irqrestore(&cam->dev_lock, flags); |
713 | mdelay(5); /* FIXME revisit this */ | 733 | msleep(5); |
714 | spin_lock_irqsave(&cam->dev_lock, flags); | 734 | spin_lock_irqsave(&cam->dev_lock, flags); |
715 | 735 | ||
716 | cafe_reg_write(cam, REG_GL_CSR, GCSR_CCIC_EN|GCSR_SRC|GCSR_MRC); | 736 | cafe_reg_write(cam, REG_GL_CSR, GCSR_CCIC_EN|GCSR_SRC|GCSR_MRC); |
@@ -2233,12 +2253,21 @@ static int cafe_pci_resume(struct pci_dev *pdev) | |||
2233 | if (ret) | 2253 | if (ret) |
2234 | return ret; | 2254 | return ret; |
2235 | ret = pci_enable_device(pdev); | 2255 | ret = pci_enable_device(pdev); |
2256 | |||
2236 | if (ret) { | 2257 | if (ret) { |
2237 | cam_warn(cam, "Unable to re-enable device on resume!\n"); | 2258 | cam_warn(cam, "Unable to re-enable device on resume!\n"); |
2238 | return ret; | 2259 | return ret; |
2239 | } | 2260 | } |
2240 | cafe_ctlr_init(cam); | 2261 | cafe_ctlr_init(cam); |
2241 | cafe_ctlr_power_up(cam); | 2262 | cafe_ctlr_power_down(cam); |
2263 | |||
2264 | mutex_lock(&cam->s_mutex); | ||
2265 | if (cam->users > 0) { | ||
2266 | cafe_ctlr_power_up(cam); | ||
2267 | __cafe_cam_reset(cam); | ||
2268 | } | ||
2269 | mutex_unlock(&cam->s_mutex); | ||
2270 | |||
2242 | set_bit(CF_CONFIG_NEEDED, &cam->flags); | 2271 | set_bit(CF_CONFIG_NEEDED, &cam->flags); |
2243 | if (cam->state == S_SPECREAD) | 2272 | if (cam->state == S_SPECREAD) |
2244 | cam->state = S_IDLE; /* Don't bother restarting */ | 2273 | cam->state = S_IDLE; /* Don't bother restarting */ |
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c index 2c7b158ce7e1..40307f3f6fe3 100644 --- a/drivers/media/video/em28xx/em28xx-video.c +++ b/drivers/media/video/em28xx/em28xx-video.c | |||
@@ -1772,6 +1772,7 @@ static int em28xx_usb_probe(struct usb_interface *interface, | |||
1772 | if (dev->alt_max_pkt_size == NULL) { | 1772 | if (dev->alt_max_pkt_size == NULL) { |
1773 | em28xx_errdev("out of memory!\n"); | 1773 | em28xx_errdev("out of memory!\n"); |
1774 | em28xx_devused&=~(1<<nr); | 1774 | em28xx_devused&=~(1<<nr); |
1775 | kfree(dev); | ||
1775 | return -ENOMEM; | 1776 | return -ENOMEM; |
1776 | } | 1777 | } |
1777 | 1778 | ||
diff --git a/drivers/media/video/ivtv/ivtv-ioctl.c b/drivers/media/video/ivtv/ivtv-ioctl.c index 047624b9e271..5977a79619c2 100644 --- a/drivers/media/video/ivtv/ivtv-ioctl.c +++ b/drivers/media/video/ivtv/ivtv-ioctl.c | |||
@@ -1190,6 +1190,7 @@ int ivtv_v4l2_ioctls(struct ivtv *itv, struct file *filp, unsigned int cmd, void | |||
1190 | itv->osd_global_alpha_state = (fb->flags & V4L2_FBUF_FLAG_GLOBAL_ALPHA) != 0; | 1190 | itv->osd_global_alpha_state = (fb->flags & V4L2_FBUF_FLAG_GLOBAL_ALPHA) != 0; |
1191 | itv->osd_local_alpha_state = (fb->flags & V4L2_FBUF_FLAG_LOCAL_ALPHA) != 0; | 1191 | itv->osd_local_alpha_state = (fb->flags & V4L2_FBUF_FLAG_LOCAL_ALPHA) != 0; |
1192 | itv->osd_color_key_state = (fb->flags & V4L2_FBUF_FLAG_CHROMAKEY) != 0; | 1192 | itv->osd_color_key_state = (fb->flags & V4L2_FBUF_FLAG_CHROMAKEY) != 0; |
1193 | ivtv_set_osd_alpha(itv); | ||
1193 | break; | 1194 | break; |
1194 | } | 1195 | } |
1195 | 1196 | ||
@@ -1234,7 +1235,7 @@ int ivtv_v4l2_ioctls(struct ivtv *itv, struct file *filp, unsigned int cmd, void | |||
1234 | IVTV_INFO("Tuner: %s\n", | 1235 | IVTV_INFO("Tuner: %s\n", |
1235 | test_bit(IVTV_F_I_RADIO_USER, &itv->i_flags) ? "Radio" : "TV"); | 1236 | test_bit(IVTV_F_I_RADIO_USER, &itv->i_flags) ? "Radio" : "TV"); |
1236 | cx2341x_log_status(&itv->params, itv->name); | 1237 | cx2341x_log_status(&itv->params, itv->name); |
1237 | IVTV_INFO("Status flags: 0x%08lx\n", itv->i_flags); | 1238 | IVTV_INFO("Version: %s Status flags: 0x%08lx\n", IVTV_VERSION, itv->i_flags); |
1238 | for (i = 0; i < IVTV_MAX_STREAMS; i++) { | 1239 | for (i = 0; i < IVTV_MAX_STREAMS; i++) { |
1239 | struct ivtv_stream *s = &itv->streams[i]; | 1240 | struct ivtv_stream *s = &itv->streams[i]; |
1240 | 1241 | ||
diff --git a/drivers/media/video/ov7670.c b/drivers/media/video/ov7670.c index f8f21ddd9843..c4c5bd67f795 100644 --- a/drivers/media/video/ov7670.c +++ b/drivers/media/video/ov7670.c | |||
@@ -416,7 +416,10 @@ static int ov7670_read(struct i2c_client *c, unsigned char reg, | |||
416 | static int ov7670_write(struct i2c_client *c, unsigned char reg, | 416 | static int ov7670_write(struct i2c_client *c, unsigned char reg, |
417 | unsigned char value) | 417 | unsigned char value) |
418 | { | 418 | { |
419 | return i2c_smbus_write_byte_data(c, reg, value); | 419 | int ret = i2c_smbus_write_byte_data(c, reg, value); |
420 | if (reg == REG_COM7 && (value & COM7_RESET)) | ||
421 | msleep(2); /* Wait for reset to run */ | ||
422 | return ret; | ||
420 | } | 423 | } |
421 | 424 | ||
422 | 425 | ||
diff --git a/drivers/media/video/pwc/pwc-if.c b/drivers/media/video/pwc/pwc-if.c index 9c0e8d18c2f6..3d81966d8c42 100644 --- a/drivers/media/video/pwc/pwc-if.c +++ b/drivers/media/video/pwc/pwc-if.c | |||
@@ -1196,12 +1196,19 @@ static int pwc_video_open(struct inode *inode, struct file *file) | |||
1196 | return 0; | 1196 | return 0; |
1197 | } | 1197 | } |
1198 | 1198 | ||
1199 | |||
1200 | static void pwc_cleanup(struct pwc_device *pdev) | ||
1201 | { | ||
1202 | pwc_remove_sysfs_files(pdev->vdev); | ||
1203 | video_unregister_device(pdev->vdev); | ||
1204 | } | ||
1205 | |||
1199 | /* Note that all cleanup is done in the reverse order as in _open */ | 1206 | /* Note that all cleanup is done in the reverse order as in _open */ |
1200 | static int pwc_video_close(struct inode *inode, struct file *file) | 1207 | static int pwc_video_close(struct inode *inode, struct file *file) |
1201 | { | 1208 | { |
1202 | struct video_device *vdev = file->private_data; | 1209 | struct video_device *vdev = file->private_data; |
1203 | struct pwc_device *pdev; | 1210 | struct pwc_device *pdev; |
1204 | int i; | 1211 | int i, hint; |
1205 | 1212 | ||
1206 | PWC_DEBUG_OPEN(">> video_close called(vdev = 0x%p).\n", vdev); | 1213 | PWC_DEBUG_OPEN(">> video_close called(vdev = 0x%p).\n", vdev); |
1207 | 1214 | ||
@@ -1224,8 +1231,9 @@ static int pwc_video_close(struct inode *inode, struct file *file) | |||
1224 | pwc_isoc_cleanup(pdev); | 1231 | pwc_isoc_cleanup(pdev); |
1225 | pwc_free_buffers(pdev); | 1232 | pwc_free_buffers(pdev); |
1226 | 1233 | ||
1234 | lock_kernel(); | ||
1227 | /* Turn off LEDS and power down camera, but only when not unplugged */ | 1235 | /* Turn off LEDS and power down camera, but only when not unplugged */ |
1228 | if (pdev->error_status != EPIPE) { | 1236 | if (!pdev->unplugged) { |
1229 | /* Turn LEDs off */ | 1237 | /* Turn LEDs off */ |
1230 | if (pwc_set_leds(pdev, 0, 0) < 0) | 1238 | if (pwc_set_leds(pdev, 0, 0) < 0) |
1231 | PWC_DEBUG_MODULE("Failed to set LED on/off time.\n"); | 1239 | PWC_DEBUG_MODULE("Failed to set LED on/off time.\n"); |
@@ -1234,9 +1242,19 @@ static int pwc_video_close(struct inode *inode, struct file *file) | |||
1234 | if (i < 0) | 1242 | if (i < 0) |
1235 | PWC_ERROR("Failed to power down camera (%d)\n", i); | 1243 | PWC_ERROR("Failed to power down camera (%d)\n", i); |
1236 | } | 1244 | } |
1245 | pdev->vopen--; | ||
1246 | PWC_DEBUG_OPEN("<< video_close() vopen=%d\n", i); | ||
1247 | } else { | ||
1248 | pwc_cleanup(pdev); | ||
1249 | /* Free memory (don't set pdev to 0 just yet) */ | ||
1250 | kfree(pdev); | ||
1251 | /* search device_hint[] table if we occupy a slot, by any chance */ | ||
1252 | for (hint = 0; hint < MAX_DEV_HINTS; hint++) | ||
1253 | if (device_hint[hint].pdev == pdev) | ||
1254 | device_hint[hint].pdev = NULL; | ||
1237 | } | 1255 | } |
1238 | pdev->vopen--; | 1256 | unlock_kernel(); |
1239 | PWC_DEBUG_OPEN("<< video_close() vopen=%d\n", pdev->vopen); | 1257 | |
1240 | return 0; | 1258 | return 0; |
1241 | } | 1259 | } |
1242 | 1260 | ||
@@ -1791,21 +1809,21 @@ static void usb_pwc_disconnect(struct usb_interface *intf) | |||
1791 | /* Alert waiting processes */ | 1809 | /* Alert waiting processes */ |
1792 | wake_up_interruptible(&pdev->frameq); | 1810 | wake_up_interruptible(&pdev->frameq); |
1793 | /* Wait until device is closed */ | 1811 | /* Wait until device is closed */ |
1794 | while (pdev->vopen) | 1812 | if(pdev->vopen) { |
1795 | schedule(); | 1813 | pdev->unplugged = 1; |
1796 | /* Device is now closed, so we can safely unregister it */ | 1814 | } else { |
1797 | PWC_DEBUG_PROBE("Unregistering video device in disconnect().\n"); | 1815 | /* Device is closed, so we can safely unregister it */ |
1798 | pwc_remove_sysfs_files(pdev->vdev); | 1816 | PWC_DEBUG_PROBE("Unregistering video device in disconnect().\n"); |
1799 | video_unregister_device(pdev->vdev); | 1817 | pwc_cleanup(pdev); |
1800 | 1818 | /* Free memory (don't set pdev to 0 just yet) */ | |
1801 | /* Free memory (don't set pdev to 0 just yet) */ | 1819 | kfree(pdev); |
1802 | kfree(pdev); | ||
1803 | 1820 | ||
1804 | disconnect_out: | 1821 | disconnect_out: |
1805 | /* search device_hint[] table if we occupy a slot, by any chance */ | 1822 | /* search device_hint[] table if we occupy a slot, by any chance */ |
1806 | for (hint = 0; hint < MAX_DEV_HINTS; hint++) | 1823 | for (hint = 0; hint < MAX_DEV_HINTS; hint++) |
1807 | if (device_hint[hint].pdev == pdev) | 1824 | if (device_hint[hint].pdev == pdev) |
1808 | device_hint[hint].pdev = NULL; | 1825 | device_hint[hint].pdev = NULL; |
1826 | } | ||
1809 | 1827 | ||
1810 | unlock_kernel(); | 1828 | unlock_kernel(); |
1811 | } | 1829 | } |
diff --git a/drivers/media/video/pwc/pwc.h b/drivers/media/video/pwc/pwc.h index 910a04f53920..8e8e5b27e77e 100644 --- a/drivers/media/video/pwc/pwc.h +++ b/drivers/media/video/pwc/pwc.h | |||
@@ -193,6 +193,7 @@ struct pwc_device | |||
193 | char vsnapshot; /* snapshot mode */ | 193 | char vsnapshot; /* snapshot mode */ |
194 | char vsync; /* used by isoc handler */ | 194 | char vsync; /* used by isoc handler */ |
195 | char vmirror; /* for ToUCaM series */ | 195 | char vmirror; /* for ToUCaM series */ |
196 | char unplugged; | ||
196 | 197 | ||
197 | int cmd_len; | 198 | int cmd_len; |
198 | unsigned char cmd_buf[13]; | 199 | unsigned char cmd_buf[13]; |
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 518d5d335464..a26655881e6a 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig | |||
@@ -5,6 +5,11 @@ | |||
5 | menuconfig MISC_DEVICES | 5 | menuconfig MISC_DEVICES |
6 | bool "Misc devices" | 6 | bool "Misc devices" |
7 | default y | 7 | default y |
8 | ---help--- | ||
9 | Say Y here to get to see options for device drivers from various | ||
10 | different categories. This option alone does not add any kernel code. | ||
11 | |||
12 | If you say N, all options in this submenu will be skipped and disabled. | ||
8 | 13 | ||
9 | if MISC_DEVICES | 14 | if MISC_DEVICES |
10 | 15 | ||
diff --git a/drivers/misc/asus-laptop.c b/drivers/misc/asus-laptop.c index d0fc4fd212e6..7dce318df1bd 100644 --- a/drivers/misc/asus-laptop.c +++ b/drivers/misc/asus-laptop.c | |||
@@ -732,7 +732,7 @@ static void asus_hotk_notify(acpi_handle handle, u32 event, void *data) | |||
732 | lcd_blank(FB_BLANK_POWERDOWN); | 732 | lcd_blank(FB_BLANK_POWERDOWN); |
733 | } | 733 | } |
734 | 734 | ||
735 | acpi_bus_generate_event(hotk->device, event, | 735 | acpi_bus_generate_proc_event(hotk->device, event, |
736 | hotk->event_count[event % 128]++); | 736 | hotk->event_count[event % 128]++); |
737 | 737 | ||
738 | return; | 738 | return; |
@@ -1072,7 +1072,8 @@ static void asus_backlight_exit(void) | |||
1072 | } | 1072 | } |
1073 | 1073 | ||
1074 | #define ASUS_LED_UNREGISTER(object) \ | 1074 | #define ASUS_LED_UNREGISTER(object) \ |
1075 | led_classdev_unregister(&object##_led) | 1075 | if (object##_led.dev) \ |
1076 | led_classdev_unregister(&object##_led) | ||
1076 | 1077 | ||
1077 | static void asus_led_exit(void) | 1078 | static void asus_led_exit(void) |
1078 | { | 1079 | { |
diff --git a/drivers/misc/sony-laptop.c b/drivers/misc/sony-laptop.c index 91da6880ae93..d38ddce592c0 100644 --- a/drivers/misc/sony-laptop.c +++ b/drivers/misc/sony-laptop.c | |||
@@ -856,6 +856,15 @@ static struct dmi_system_id sony_nc_ids[] = { | |||
856 | }, | 856 | }, |
857 | }, | 857 | }, |
858 | { | 858 | { |
859 | .ident = "Sony Vaio FZ Series", | ||
860 | .callback = sony_nc_C_enable, | ||
861 | .driver_data = sony_C_events, | ||
862 | .matches = { | ||
863 | DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), | ||
864 | DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FZ"), | ||
865 | }, | ||
866 | }, | ||
867 | { | ||
859 | .ident = "Sony Vaio C Series", | 868 | .ident = "Sony Vaio C Series", |
860 | .callback = sony_nc_C_enable, | 869 | .callback = sony_nc_C_enable, |
861 | .driver_data = sony_C_events, | 870 | .driver_data = sony_C_events, |
@@ -904,7 +913,7 @@ static void sony_acpi_notify(acpi_handle handle, u32 event, void *data) | |||
904 | 913 | ||
905 | dprintk("sony_acpi_notify, event: 0x%.2x\n", ev); | 914 | dprintk("sony_acpi_notify, event: 0x%.2x\n", ev); |
906 | sony_laptop_report_input_event(ev); | 915 | sony_laptop_report_input_event(ev); |
907 | acpi_bus_generate_event(sony_nc_acpi_device, 1, ev); | 916 | acpi_bus_generate_proc_event(sony_nc_acpi_device, 1, ev); |
908 | } | 917 | } |
909 | 918 | ||
910 | static acpi_status sony_walk_callback(acpi_handle handle, u32 level, | 919 | static acpi_status sony_walk_callback(acpi_handle handle, u32 level, |
@@ -2292,7 +2301,7 @@ static irqreturn_t sony_pic_irq(int irq, void *dev_id) | |||
2292 | 2301 | ||
2293 | found: | 2302 | found: |
2294 | sony_laptop_report_input_event(device_event); | 2303 | sony_laptop_report_input_event(device_event); |
2295 | acpi_bus_generate_event(spic_dev.acpi_dev, 1, device_event); | 2304 | acpi_bus_generate_proc_event(spic_dev.acpi_dev, 1, device_event); |
2296 | sonypi_compat_report_event(device_event); | 2305 | sonypi_compat_report_event(device_event); |
2297 | 2306 | ||
2298 | return IRQ_HANDLED; | 2307 | return IRQ_HANDLED; |
@@ -2308,8 +2317,6 @@ static int sony_pic_remove(struct acpi_device *device, int type) | |||
2308 | struct sony_pic_ioport *io, *tmp_io; | 2317 | struct sony_pic_ioport *io, *tmp_io; |
2309 | struct sony_pic_irq *irq, *tmp_irq; | 2318 | struct sony_pic_irq *irq, *tmp_irq; |
2310 | 2319 | ||
2311 | sonypi_compat_exit(); | ||
2312 | |||
2313 | if (sony_pic_disable(device)) { | 2320 | if (sony_pic_disable(device)) { |
2314 | printk(KERN_ERR DRV_PFX "Couldn't disable device.\n"); | 2321 | printk(KERN_ERR DRV_PFX "Couldn't disable device.\n"); |
2315 | return -ENXIO; | 2322 | return -ENXIO; |
@@ -2319,6 +2326,8 @@ static int sony_pic_remove(struct acpi_device *device, int type) | |||
2319 | release_region(spic_dev.cur_ioport->io.minimum, | 2326 | release_region(spic_dev.cur_ioport->io.minimum, |
2320 | spic_dev.cur_ioport->io.address_length); | 2327 | spic_dev.cur_ioport->io.address_length); |
2321 | 2328 | ||
2329 | sonypi_compat_exit(); | ||
2330 | |||
2322 | sony_laptop_remove_input(); | 2331 | sony_laptop_remove_input(); |
2323 | 2332 | ||
2324 | /* pf attrs */ | 2333 | /* pf attrs */ |
@@ -2384,6 +2393,9 @@ static int sony_pic_add(struct acpi_device *device) | |||
2384 | goto err_free_resources; | 2393 | goto err_free_resources; |
2385 | } | 2394 | } |
2386 | 2395 | ||
2396 | if (sonypi_compat_init()) | ||
2397 | goto err_remove_input; | ||
2398 | |||
2387 | /* request io port */ | 2399 | /* request io port */ |
2388 | list_for_each_entry(io, &spic_dev.ioports, list) { | 2400 | list_for_each_entry(io, &spic_dev.ioports, list) { |
2389 | if (request_region(io->io.minimum, io->io.address_length, | 2401 | if (request_region(io->io.minimum, io->io.address_length, |
@@ -2398,7 +2410,7 @@ static int sony_pic_add(struct acpi_device *device) | |||
2398 | if (!spic_dev.cur_ioport) { | 2410 | if (!spic_dev.cur_ioport) { |
2399 | printk(KERN_ERR DRV_PFX "Failed to request_region.\n"); | 2411 | printk(KERN_ERR DRV_PFX "Failed to request_region.\n"); |
2400 | result = -ENODEV; | 2412 | result = -ENODEV; |
2401 | goto err_remove_input; | 2413 | goto err_remove_compat; |
2402 | } | 2414 | } |
2403 | 2415 | ||
2404 | /* request IRQ */ | 2416 | /* request IRQ */ |
@@ -2438,9 +2450,6 @@ static int sony_pic_add(struct acpi_device *device) | |||
2438 | if (result) | 2450 | if (result) |
2439 | goto err_remove_pf; | 2451 | goto err_remove_pf; |
2440 | 2452 | ||
2441 | if (sonypi_compat_init()) | ||
2442 | goto err_remove_pf; | ||
2443 | |||
2444 | return 0; | 2453 | return 0; |
2445 | 2454 | ||
2446 | err_remove_pf: | 2455 | err_remove_pf: |
@@ -2456,6 +2465,9 @@ err_release_region: | |||
2456 | release_region(spic_dev.cur_ioport->io.minimum, | 2465 | release_region(spic_dev.cur_ioport->io.minimum, |
2457 | spic_dev.cur_ioport->io.address_length); | 2466 | spic_dev.cur_ioport->io.address_length); |
2458 | 2467 | ||
2468 | err_remove_compat: | ||
2469 | sonypi_compat_exit(); | ||
2470 | |||
2459 | err_remove_input: | 2471 | err_remove_input: |
2460 | sony_laptop_remove_input(); | 2472 | sony_laptop_remove_input(); |
2461 | 2473 | ||
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c index f6cd34a3dbac..bb8956d0c104 100644 --- a/drivers/misc/thinkpad_acpi.c +++ b/drivers/misc/thinkpad_acpi.c | |||
@@ -1190,10 +1190,10 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event) | |||
1190 | } | 1190 | } |
1191 | 1191 | ||
1192 | if (sendacpi) | 1192 | if (sendacpi) |
1193 | acpi_bus_generate_event(ibm->acpi->device, event, hkey); | 1193 | acpi_bus_generate_proc_event(ibm->acpi->device, event, hkey); |
1194 | } else { | 1194 | } else { |
1195 | printk(IBM_ERR "unknown hotkey notification event %d\n", event); | 1195 | printk(IBM_ERR "unknown hotkey notification event %d\n", event); |
1196 | acpi_bus_generate_event(ibm->acpi->device, event, 0); | 1196 | acpi_bus_generate_proc_event(ibm->acpi->device, event, 0); |
1197 | } | 1197 | } |
1198 | } | 1198 | } |
1199 | 1199 | ||
@@ -2162,22 +2162,27 @@ static void dock_notify(struct ibm_struct *ibm, u32 event) | |||
2162 | int docked = dock_docked(); | 2162 | int docked = dock_docked(); |
2163 | int pci = ibm->acpi->hid && ibm->acpi->device && | 2163 | int pci = ibm->acpi->hid && ibm->acpi->device && |
2164 | acpi_match_device_ids(ibm->acpi->device, ibm_pci_device_ids); | 2164 | acpi_match_device_ids(ibm->acpi->device, ibm_pci_device_ids); |
2165 | int data; | ||
2165 | 2166 | ||
2166 | if (event == 1 && !pci) /* 570 */ | 2167 | if (event == 1 && !pci) /* 570 */ |
2167 | acpi_bus_generate_event(ibm->acpi->device, event, 1); /* button */ | 2168 | data = 1; /* button */ |
2168 | else if (event == 1 && pci) /* 570 */ | 2169 | else if (event == 1 && pci) /* 570 */ |
2169 | acpi_bus_generate_event(ibm->acpi->device, event, 3); /* dock */ | 2170 | data = 3; /* dock */ |
2170 | else if (event == 3 && docked) | 2171 | else if (event == 3 && docked) |
2171 | acpi_bus_generate_event(ibm->acpi->device, event, 1); /* button */ | 2172 | data = 1; /* button */ |
2172 | else if (event == 3 && !docked) | 2173 | else if (event == 3 && !docked) |
2173 | acpi_bus_generate_event(ibm->acpi->device, event, 2); /* undock */ | 2174 | data = 2; /* undock */ |
2174 | else if (event == 0 && docked) | 2175 | else if (event == 0 && docked) |
2175 | acpi_bus_generate_event(ibm->acpi->device, event, 3); /* dock */ | 2176 | data = 3; /* dock */ |
2176 | else { | 2177 | else { |
2177 | printk(IBM_ERR "unknown dock event %d, status %d\n", | 2178 | printk(IBM_ERR "unknown dock event %d, status %d\n", |
2178 | event, _sta(dock_handle)); | 2179 | event, _sta(dock_handle)); |
2179 | acpi_bus_generate_event(ibm->acpi->device, event, 0); /* unknown */ | 2180 | data = 0; /* unknown */ |
2180 | } | 2181 | } |
2182 | acpi_bus_generate_proc_event(ibm->acpi->device, event, data); | ||
2183 | acpi_bus_generate_netlink_event(ibm->acpi->device->pnp.device_class, | ||
2184 | ibm->acpi->device->dev.bus_id, | ||
2185 | event, data); | ||
2181 | } | 2186 | } |
2182 | 2187 | ||
2183 | static int dock_read(char *p) | 2188 | static int dock_read(char *p) |
@@ -2275,7 +2280,10 @@ static int __init bay_init(struct ibm_init_struct *iibm) | |||
2275 | 2280 | ||
2276 | static void bay_notify(struct ibm_struct *ibm, u32 event) | 2281 | static void bay_notify(struct ibm_struct *ibm, u32 event) |
2277 | { | 2282 | { |
2278 | acpi_bus_generate_event(ibm->acpi->device, event, 0); | 2283 | acpi_bus_generate_proc_event(ibm->acpi->device, event, 0); |
2284 | acpi_bus_generate_netlink_event(ibm->acpi->device->pnp.device_class, | ||
2285 | ibm->acpi->device->dev.bus_id, | ||
2286 | event, 0); | ||
2279 | } | 2287 | } |
2280 | 2288 | ||
2281 | #define bay_occupied(b) (_sta(b##_handle) & 1) | 2289 | #define bay_occupied(b) (_sta(b##_handle) & 1) |
diff --git a/drivers/mmc/core/bus.c b/drivers/mmc/core/bus.c index fe0e785ed7d2..817a79462b3d 100644 --- a/drivers/mmc/core/bus.c +++ b/drivers/mmc/core/bus.c | |||
@@ -186,12 +186,10 @@ struct mmc_card *mmc_alloc_card(struct mmc_host *host) | |||
186 | { | 186 | { |
187 | struct mmc_card *card; | 187 | struct mmc_card *card; |
188 | 188 | ||
189 | card = kmalloc(sizeof(struct mmc_card), GFP_KERNEL); | 189 | card = kzalloc(sizeof(struct mmc_card), GFP_KERNEL); |
190 | if (!card) | 190 | if (!card) |
191 | return ERR_PTR(-ENOMEM); | 191 | return ERR_PTR(-ENOMEM); |
192 | 192 | ||
193 | memset(card, 0, sizeof(struct mmc_card)); | ||
194 | |||
195 | card->host = host; | 193 | card->host = host; |
196 | 194 | ||
197 | device_initialize(&card->dev); | 195 | device_initialize(&card->dev); |
diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c index 6a7e29849603..2c7ce8f43a9a 100644 --- a/drivers/mmc/core/host.c +++ b/drivers/mmc/core/host.c | |||
@@ -58,12 +58,10 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev) | |||
58 | { | 58 | { |
59 | struct mmc_host *host; | 59 | struct mmc_host *host; |
60 | 60 | ||
61 | host = kmalloc(sizeof(struct mmc_host) + extra, GFP_KERNEL); | 61 | host = kzalloc(sizeof(struct mmc_host) + extra, GFP_KERNEL); |
62 | if (!host) | 62 | if (!host) |
63 | return NULL; | 63 | return NULL; |
64 | 64 | ||
65 | memset(host, 0, sizeof(struct mmc_host) + extra); | ||
66 | |||
67 | host->parent = dev; | 65 | host->parent = dev; |
68 | host->class_dev.parent = dev; | 66 | host->class_dev.parent = dev; |
69 | host->class_dev.class = &mmc_host_class; | 67 | host->class_dev.class = &mmc_host_class; |
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index f2bc87ac24f7..20a7d89e01ba 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c | |||
@@ -385,6 +385,9 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_data *data) | |||
385 | BUG_ON(data->blksz > host->mmc->max_blk_size); | 385 | BUG_ON(data->blksz > host->mmc->max_blk_size); |
386 | BUG_ON(data->blocks > 65535); | 386 | BUG_ON(data->blocks > 65535); |
387 | 387 | ||
388 | host->data = data; | ||
389 | host->data_early = 0; | ||
390 | |||
388 | /* timeout in us */ | 391 | /* timeout in us */ |
389 | target_timeout = data->timeout_ns / 1000 + | 392 | target_timeout = data->timeout_ns / 1000 + |
390 | data->timeout_clks / host->clock; | 393 | data->timeout_clks / host->clock; |
@@ -443,11 +446,11 @@ static void sdhci_set_transfer_mode(struct sdhci_host *host, | |||
443 | { | 446 | { |
444 | u16 mode; | 447 | u16 mode; |
445 | 448 | ||
446 | WARN_ON(host->data); | ||
447 | |||
448 | if (data == NULL) | 449 | if (data == NULL) |
449 | return; | 450 | return; |
450 | 451 | ||
452 | WARN_ON(!host->data); | ||
453 | |||
451 | mode = SDHCI_TRNS_BLK_CNT_EN; | 454 | mode = SDHCI_TRNS_BLK_CNT_EN; |
452 | if (data->blocks > 1) | 455 | if (data->blocks > 1) |
453 | mode |= SDHCI_TRNS_MULTI; | 456 | mode |= SDHCI_TRNS_MULTI; |
@@ -477,8 +480,8 @@ static void sdhci_finish_data(struct sdhci_host *host) | |||
477 | /* | 480 | /* |
478 | * Controller doesn't count down when in single block mode. | 481 | * Controller doesn't count down when in single block mode. |
479 | */ | 482 | */ |
480 | if ((data->blocks == 1) && (data->error == MMC_ERR_NONE)) | 483 | if (data->blocks == 1) |
481 | blocks = 0; | 484 | blocks = (data->error == MMC_ERR_NONE) ? 0 : 1; |
482 | else | 485 | else |
483 | blocks = readw(host->ioaddr + SDHCI_BLOCK_COUNT); | 486 | blocks = readw(host->ioaddr + SDHCI_BLOCK_COUNT); |
484 | data->bytes_xfered = data->blksz * (data->blocks - blocks); | 487 | data->bytes_xfered = data->blksz * (data->blocks - blocks); |
@@ -600,9 +603,10 @@ static void sdhci_finish_command(struct sdhci_host *host) | |||
600 | 603 | ||
601 | host->cmd->error = MMC_ERR_NONE; | 604 | host->cmd->error = MMC_ERR_NONE; |
602 | 605 | ||
603 | if (host->cmd->data) | 606 | if (host->data && host->data_early) |
604 | host->data = host->cmd->data; | 607 | sdhci_finish_data(host); |
605 | else | 608 | |
609 | if (!host->cmd->data) | ||
606 | tasklet_schedule(&host->finish_tasklet); | 610 | tasklet_schedule(&host->finish_tasklet); |
607 | 611 | ||
608 | host->cmd = NULL; | 612 | host->cmd = NULL; |
@@ -929,9 +933,9 @@ static void sdhci_cmd_irq(struct sdhci_host *host, u32 intmask) | |||
929 | BUG_ON(intmask == 0); | 933 | BUG_ON(intmask == 0); |
930 | 934 | ||
931 | if (!host->cmd) { | 935 | if (!host->cmd) { |
932 | printk(KERN_ERR "%s: Got command interrupt even though no " | 936 | printk(KERN_ERR "%s: Got command interrupt 0x%08x even " |
933 | "command operation was in progress.\n", | 937 | "though no command operation was in progress.\n", |
934 | mmc_hostname(host->mmc)); | 938 | mmc_hostname(host->mmc), (unsigned)intmask); |
935 | sdhci_dumpregs(host); | 939 | sdhci_dumpregs(host); |
936 | return; | 940 | return; |
937 | } | 941 | } |
@@ -961,9 +965,9 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask) | |||
961 | if (intmask & SDHCI_INT_DATA_END) | 965 | if (intmask & SDHCI_INT_DATA_END) |
962 | return; | 966 | return; |
963 | 967 | ||
964 | printk(KERN_ERR "%s: Got data interrupt even though no " | 968 | printk(KERN_ERR "%s: Got data interrupt 0x%08x even " |
965 | "data operation was in progress.\n", | 969 | "though no data operation was in progress.\n", |
966 | mmc_hostname(host->mmc)); | 970 | mmc_hostname(host->mmc), (unsigned)intmask); |
967 | sdhci_dumpregs(host); | 971 | sdhci_dumpregs(host); |
968 | 972 | ||
969 | return; | 973 | return; |
@@ -991,8 +995,18 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask) | |||
991 | writel(readl(host->ioaddr + SDHCI_DMA_ADDRESS), | 995 | writel(readl(host->ioaddr + SDHCI_DMA_ADDRESS), |
992 | host->ioaddr + SDHCI_DMA_ADDRESS); | 996 | host->ioaddr + SDHCI_DMA_ADDRESS); |
993 | 997 | ||
994 | if (intmask & SDHCI_INT_DATA_END) | 998 | if (intmask & SDHCI_INT_DATA_END) { |
995 | sdhci_finish_data(host); | 999 | if (host->cmd) { |
1000 | /* | ||
1001 | * Data managed to finish before the | ||
1002 | * command completed. Make sure we do | ||
1003 | * things in the proper order. | ||
1004 | */ | ||
1005 | host->data_early = 1; | ||
1006 | } else { | ||
1007 | sdhci_finish_data(host); | ||
1008 | } | ||
1009 | } | ||
996 | } | 1010 | } |
997 | } | 1011 | } |
998 | 1012 | ||
@@ -1347,12 +1361,11 @@ static int __devinit sdhci_probe_slot(struct pci_dev *pdev, int slot) | |||
1347 | */ | 1361 | */ |
1348 | mmc->max_blk_size = (caps & SDHCI_MAX_BLOCK_MASK) >> SDHCI_MAX_BLOCK_SHIFT; | 1362 | mmc->max_blk_size = (caps & SDHCI_MAX_BLOCK_MASK) >> SDHCI_MAX_BLOCK_SHIFT; |
1349 | if (mmc->max_blk_size >= 3) { | 1363 | if (mmc->max_blk_size >= 3) { |
1350 | printk(KERN_ERR "%s: Invalid maximum block size.\n", | 1364 | printk(KERN_WARNING "%s: Invalid maximum block size, assuming 512\n", |
1351 | host->slot_descr); | 1365 | host->slot_descr); |
1352 | ret = -ENODEV; | 1366 | mmc->max_blk_size = 512; |
1353 | goto unmap; | 1367 | } else |
1354 | } | 1368 | mmc->max_blk_size = 512 << mmc->max_blk_size; |
1355 | mmc->max_blk_size = 512 << mmc->max_blk_size; | ||
1356 | 1369 | ||
1357 | /* | 1370 | /* |
1358 | * Maximum block count. | 1371 | * Maximum block count. |
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h index d157776c1149..e28987d6d2eb 100644 --- a/drivers/mmc/host/sdhci.h +++ b/drivers/mmc/host/sdhci.h | |||
@@ -182,6 +182,7 @@ struct sdhci_host { | |||
182 | struct mmc_request *mrq; /* Current request */ | 182 | struct mmc_request *mrq; /* Current request */ |
183 | struct mmc_command *cmd; /* Current command */ | 183 | struct mmc_command *cmd; /* Current command */ |
184 | struct mmc_data *data; /* Current data request */ | 184 | struct mmc_data *data; /* Current data request */ |
185 | int data_early:1; /* Data finished before cmd */ | ||
185 | 186 | ||
186 | struct scatterlist *cur_sg; /* We're working on this */ | 187 | struct scatterlist *cur_sg; /* We're working on this */ |
187 | int num_sg; /* Entries left */ | 188 | int num_sg; /* Entries left */ |
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 81ef81c9a584..5b9e17bf1749 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -1968,6 +1968,16 @@ menuconfig NETDEV_1000 | |||
1968 | bool "Ethernet (1000 Mbit)" | 1968 | bool "Ethernet (1000 Mbit)" |
1969 | depends on !UML | 1969 | depends on !UML |
1970 | default y | 1970 | default y |
1971 | ---help--- | ||
1972 | Ethernet (also called IEEE 802.3 or ISO 8802-2) is the most common | ||
1973 | type of Local Area Network (LAN) in universities and companies. | ||
1974 | |||
1975 | Say Y here to get to see options for Gigabit Ethernet drivers. | ||
1976 | This option alone does not add any kernel code. | ||
1977 | Note that drivers supporting both 100 and 1000 MBit may be listed | ||
1978 | under "Ethernet (10 or 100MBit)" instead. | ||
1979 | |||
1980 | If you say N, all options in this submenu will be skipped and disabled. | ||
1971 | 1981 | ||
1972 | if NETDEV_1000 | 1982 | if NETDEV_1000 |
1973 | 1983 | ||
@@ -2339,6 +2349,11 @@ menuconfig NETDEV_10000 | |||
2339 | bool "Ethernet (10000 Mbit)" | 2349 | bool "Ethernet (10000 Mbit)" |
2340 | depends on !UML | 2350 | depends on !UML |
2341 | default y | 2351 | default y |
2352 | ---help--- | ||
2353 | Say Y here to get to see options for 10 Gigabit Ethernet drivers. | ||
2354 | This option alone does not add any kernel code. | ||
2355 | |||
2356 | If you say N, all options in this submenu will be skipped and disabled. | ||
2342 | 2357 | ||
2343 | if NETDEV_10000 | 2358 | if NETDEV_10000 |
2344 | 2359 | ||
diff --git a/drivers/net/bsd_comp.c b/drivers/net/bsd_comp.c index 202d4a4ef751..88edb986691a 100644 --- a/drivers/net/bsd_comp.c +++ b/drivers/net/bsd_comp.c | |||
@@ -406,8 +406,7 @@ static void *bsd_alloc (unsigned char *options, int opt_len, int decomp) | |||
406 | * Allocate space for the dictionary. This may be more than one page in | 406 | * Allocate space for the dictionary. This may be more than one page in |
407 | * length. | 407 | * length. |
408 | */ | 408 | */ |
409 | db->dict = (struct bsd_dict *) vmalloc (hsize * | 409 | db->dict = vmalloc(hsize * sizeof(struct bsd_dict)); |
410 | sizeof (struct bsd_dict)); | ||
411 | if (!db->dict) | 410 | if (!db->dict) |
412 | { | 411 | { |
413 | bsd_free (db); | 412 | bsd_free (db); |
@@ -426,8 +425,7 @@ static void *bsd_alloc (unsigned char *options, int opt_len, int decomp) | |||
426 | */ | 425 | */ |
427 | else | 426 | else |
428 | { | 427 | { |
429 | db->lens = (unsigned short *) vmalloc ((maxmaxcode + 1) * | 428 | db->lens = vmalloc((maxmaxcode + 1) * sizeof(db->lens[0])); |
430 | sizeof (db->lens[0])); | ||
431 | if (!db->lens) | 429 | if (!db->lens) |
432 | { | 430 | { |
433 | bsd_free (db); | 431 | bsd_free (db); |
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c index c3de81bf090a..738aa5906514 100644 --- a/drivers/net/dm9000.c +++ b/drivers/net/dm9000.c | |||
@@ -700,6 +700,7 @@ dm9000_init_dm9000(struct net_device *dev) | |||
700 | static int | 700 | static int |
701 | dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) | 701 | dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) |
702 | { | 702 | { |
703 | unsigned long flags; | ||
703 | board_info_t *db = (board_info_t *) dev->priv; | 704 | board_info_t *db = (board_info_t *) dev->priv; |
704 | 705 | ||
705 | PRINTK3("dm9000_start_xmit\n"); | 706 | PRINTK3("dm9000_start_xmit\n"); |
@@ -707,10 +708,7 @@ dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
707 | if (db->tx_pkt_cnt > 1) | 708 | if (db->tx_pkt_cnt > 1) |
708 | return 1; | 709 | return 1; |
709 | 710 | ||
710 | netif_stop_queue(dev); | 711 | spin_lock_irqsave(&db->lock, flags); |
711 | |||
712 | /* Disable all interrupts */ | ||
713 | iow(db, DM9000_IMR, IMR_PAR); | ||
714 | 712 | ||
715 | /* Move data to DM9000 TX RAM */ | 713 | /* Move data to DM9000 TX RAM */ |
716 | writeb(DM9000_MWCMD, db->io_addr); | 714 | writeb(DM9000_MWCMD, db->io_addr); |
@@ -718,12 +716,9 @@ dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
718 | (db->outblk)(db->io_data, skb->data, skb->len); | 716 | (db->outblk)(db->io_data, skb->data, skb->len); |
719 | db->stats.tx_bytes += skb->len; | 717 | db->stats.tx_bytes += skb->len; |
720 | 718 | ||
719 | db->tx_pkt_cnt++; | ||
721 | /* TX control: First packet immediately send, second packet queue */ | 720 | /* TX control: First packet immediately send, second packet queue */ |
722 | if (db->tx_pkt_cnt == 0) { | 721 | if (db->tx_pkt_cnt == 1) { |
723 | |||
724 | /* First Packet */ | ||
725 | db->tx_pkt_cnt++; | ||
726 | |||
727 | /* Set TX length to DM9000 */ | 722 | /* Set TX length to DM9000 */ |
728 | iow(db, DM9000_TXPLL, skb->len & 0xff); | 723 | iow(db, DM9000_TXPLL, skb->len & 0xff); |
729 | iow(db, DM9000_TXPLH, (skb->len >> 8) & 0xff); | 724 | iow(db, DM9000_TXPLH, (skb->len >> 8) & 0xff); |
@@ -732,23 +727,17 @@ dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
732 | iow(db, DM9000_TCR, TCR_TXREQ); /* Cleared after TX complete */ | 727 | iow(db, DM9000_TCR, TCR_TXREQ); /* Cleared after TX complete */ |
733 | 728 | ||
734 | dev->trans_start = jiffies; /* save the time stamp */ | 729 | dev->trans_start = jiffies; /* save the time stamp */ |
735 | |||
736 | } else { | 730 | } else { |
737 | /* Second packet */ | 731 | /* Second packet */ |
738 | db->tx_pkt_cnt++; | ||
739 | db->queue_pkt_len = skb->len; | 732 | db->queue_pkt_len = skb->len; |
733 | netif_stop_queue(dev); | ||
740 | } | 734 | } |
741 | 735 | ||
736 | spin_unlock_irqrestore(&db->lock, flags); | ||
737 | |||
742 | /* free this SKB */ | 738 | /* free this SKB */ |
743 | dev_kfree_skb(skb); | 739 | dev_kfree_skb(skb); |
744 | 740 | ||
745 | /* Re-enable resource check */ | ||
746 | if (db->tx_pkt_cnt == 1) | ||
747 | netif_wake_queue(dev); | ||
748 | |||
749 | /* Re-enable interrupt */ | ||
750 | iow(db, DM9000_IMR, IMR_PAR | IMR_PTM | IMR_PRM); | ||
751 | |||
752 | return 0; | 741 | return 0; |
753 | } | 742 | } |
754 | 743 | ||
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c index 9756211e83ce..db5747490a07 100644 --- a/drivers/net/ehea/ehea_main.c +++ b/drivers/net/ehea/ehea_main.c | |||
@@ -76,7 +76,7 @@ MODULE_PARM_DESC(rq1_entries, "Number of entries for Receive Queue 1 " | |||
76 | MODULE_PARM_DESC(sq_entries, " Number of entries for the Send Queue " | 76 | MODULE_PARM_DESC(sq_entries, " Number of entries for the Send Queue " |
77 | "[2^x - 1], x = [6..14]. Default = " | 77 | "[2^x - 1], x = [6..14]. Default = " |
78 | __MODULE_STRING(EHEA_DEF_ENTRIES_SQ) ")"); | 78 | __MODULE_STRING(EHEA_DEF_ENTRIES_SQ) ")"); |
79 | MODULE_PARM_DESC(use_mcs, " 0:NAPI, 1:Multiple receive queues, Default = 1 "); | 79 | MODULE_PARM_DESC(use_mcs, " 0:NAPI, 1:Multiple receive queues, Default = 0 "); |
80 | 80 | ||
81 | static int port_name_cnt = 0; | 81 | static int port_name_cnt = 0; |
82 | static LIST_HEAD(adapter_list); | 82 | static LIST_HEAD(adapter_list); |
@@ -2490,7 +2490,7 @@ static ssize_t ehea_show_port_id(struct device *dev, | |||
2490 | struct device_attribute *attr, char *buf) | 2490 | struct device_attribute *attr, char *buf) |
2491 | { | 2491 | { |
2492 | struct ehea_port *port = container_of(dev, struct ehea_port, ofdev.dev); | 2492 | struct ehea_port *port = container_of(dev, struct ehea_port, ofdev.dev); |
2493 | return sprintf(buf, "0x%X", port->logical_port_id); | 2493 | return sprintf(buf, "%d", port->logical_port_id); |
2494 | } | 2494 | } |
2495 | 2495 | ||
2496 | static DEVICE_ATTR(log_port_id, S_IRUSR | S_IRGRP | S_IROTH, ehea_show_port_id, | 2496 | static DEVICE_ATTR(log_port_id, S_IRUSR | S_IRGRP | S_IROTH, ehea_show_port_id, |
@@ -2781,7 +2781,7 @@ static ssize_t ehea_probe_port(struct device *dev, | |||
2781 | 2781 | ||
2782 | u32 logical_port_id; | 2782 | u32 logical_port_id; |
2783 | 2783 | ||
2784 | sscanf(buf, "%X", &logical_port_id); | 2784 | sscanf(buf, "%d", &logical_port_id); |
2785 | 2785 | ||
2786 | port = ehea_get_port(adapter, logical_port_id); | 2786 | port = ehea_get_port(adapter, logical_port_id); |
2787 | 2787 | ||
@@ -2834,7 +2834,7 @@ static ssize_t ehea_remove_port(struct device *dev, | |||
2834 | int i; | 2834 | int i; |
2835 | u32 logical_port_id; | 2835 | u32 logical_port_id; |
2836 | 2836 | ||
2837 | sscanf(buf, "%X", &logical_port_id); | 2837 | sscanf(buf, "%d", &logical_port_id); |
2838 | 2838 | ||
2839 | port = ehea_get_port(adapter, logical_port_id); | 2839 | port = ehea_get_port(adapter, logical_port_id); |
2840 | 2840 | ||
diff --git a/drivers/net/ehea/ehea_qmr.c b/drivers/net/ehea/ehea_qmr.c index a36fa6c23fdf..c82e24596074 100644 --- a/drivers/net/ehea/ehea_qmr.c +++ b/drivers/net/ehea/ehea_qmr.c | |||
@@ -235,6 +235,8 @@ int ehea_destroy_cq(struct ehea_cq *cq) | |||
235 | if (!cq) | 235 | if (!cq) |
236 | return 0; | 236 | return 0; |
237 | 237 | ||
238 | hcp_epas_dtor(&cq->epas); | ||
239 | |||
238 | if ((hret = ehea_destroy_cq_res(cq, NORMAL_FREE)) == H_R_STATE) { | 240 | if ((hret = ehea_destroy_cq_res(cq, NORMAL_FREE)) == H_R_STATE) { |
239 | ehea_error_data(cq->adapter, cq->fw_handle); | 241 | ehea_error_data(cq->adapter, cq->fw_handle); |
240 | hret = ehea_destroy_cq_res(cq, FORCE_FREE); | 242 | hret = ehea_destroy_cq_res(cq, FORCE_FREE); |
@@ -361,6 +363,8 @@ int ehea_destroy_eq(struct ehea_eq *eq) | |||
361 | if (!eq) | 363 | if (!eq) |
362 | return 0; | 364 | return 0; |
363 | 365 | ||
366 | hcp_epas_dtor(&eq->epas); | ||
367 | |||
364 | if ((hret = ehea_destroy_eq_res(eq, NORMAL_FREE)) == H_R_STATE) { | 368 | if ((hret = ehea_destroy_eq_res(eq, NORMAL_FREE)) == H_R_STATE) { |
365 | ehea_error_data(eq->adapter, eq->fw_handle); | 369 | ehea_error_data(eq->adapter, eq->fw_handle); |
366 | hret = ehea_destroy_eq_res(eq, FORCE_FREE); | 370 | hret = ehea_destroy_eq_res(eq, FORCE_FREE); |
@@ -541,6 +545,8 @@ int ehea_destroy_qp(struct ehea_qp *qp) | |||
541 | if (!qp) | 545 | if (!qp) |
542 | return 0; | 546 | return 0; |
543 | 547 | ||
548 | hcp_epas_dtor(&qp->epas); | ||
549 | |||
544 | if ((hret = ehea_destroy_qp_res(qp, NORMAL_FREE)) == H_R_STATE) { | 550 | if ((hret = ehea_destroy_qp_res(qp, NORMAL_FREE)) == H_R_STATE) { |
545 | ehea_error_data(qp->adapter, qp->fw_handle); | 551 | ehea_error_data(qp->adapter, qp->fw_handle); |
546 | hret = ehea_destroy_qp_res(qp, FORCE_FREE); | 552 | hret = ehea_destroy_qp_res(qp, FORCE_FREE); |
diff --git a/drivers/net/eql.c b/drivers/net/eql.c index a93700e5661a..102218c4a907 100644 --- a/drivers/net/eql.c +++ b/drivers/net/eql.c | |||
@@ -391,7 +391,7 @@ static int __eql_insert_slave(slave_queue_t *queue, slave_t *slave) | |||
391 | slave_t *duplicate_slave = NULL; | 391 | slave_t *duplicate_slave = NULL; |
392 | 392 | ||
393 | duplicate_slave = __eql_find_slave_dev(queue, slave->dev); | 393 | duplicate_slave = __eql_find_slave_dev(queue, slave->dev); |
394 | if (duplicate_slave != 0) | 394 | if (duplicate_slave) |
395 | eql_kill_one_slave(queue, duplicate_slave); | 395 | eql_kill_one_slave(queue, duplicate_slave); |
396 | 396 | ||
397 | list_add(&slave->list, &queue->all_slaves); | 397 | list_add(&slave->list, &queue->all_slaves); |
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index 69f5f365239a..1938d6dfc863 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c | |||
@@ -552,7 +552,7 @@ union ring_type { | |||
552 | #define PHY_OUI_MARVELL 0x5043 | 552 | #define PHY_OUI_MARVELL 0x5043 |
553 | #define PHY_OUI_CICADA 0x03f1 | 553 | #define PHY_OUI_CICADA 0x03f1 |
554 | #define PHY_OUI_VITESSE 0x01c1 | 554 | #define PHY_OUI_VITESSE 0x01c1 |
555 | #define PHY_OUI_REALTEK 0x01c1 | 555 | #define PHY_OUI_REALTEK 0x0732 |
556 | #define PHYID1_OUI_MASK 0x03ff | 556 | #define PHYID1_OUI_MASK 0x03ff |
557 | #define PHYID1_OUI_SHFT 6 | 557 | #define PHYID1_OUI_SHFT 6 |
558 | #define PHYID2_OUI_MASK 0xfc00 | 558 | #define PHYID2_OUI_MASK 0xfc00 |
@@ -3068,8 +3068,8 @@ static irqreturn_t nv_nic_irq(int foo, void *data) | |||
3068 | np->nic_poll_irq = np->irqmask; | 3068 | np->nic_poll_irq = np->irqmask; |
3069 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); | 3069 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); |
3070 | } | 3070 | } |
3071 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq.\n", dev->name, i); | ||
3072 | spin_unlock(&np->lock); | 3071 | spin_unlock(&np->lock); |
3072 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq.\n", dev->name, i); | ||
3073 | break; | 3073 | break; |
3074 | } | 3074 | } |
3075 | 3075 | ||
@@ -3186,8 +3186,8 @@ static irqreturn_t nv_nic_irq_optimized(int foo, void *data) | |||
3186 | np->nic_poll_irq = np->irqmask; | 3186 | np->nic_poll_irq = np->irqmask; |
3187 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); | 3187 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); |
3188 | } | 3188 | } |
3189 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq.\n", dev->name, i); | ||
3190 | spin_unlock(&np->lock); | 3189 | spin_unlock(&np->lock); |
3190 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq.\n", dev->name, i); | ||
3191 | break; | 3191 | break; |
3192 | } | 3192 | } |
3193 | 3193 | ||
@@ -3233,8 +3233,8 @@ static irqreturn_t nv_nic_irq_tx(int foo, void *data) | |||
3233 | np->nic_poll_irq |= NVREG_IRQ_TX_ALL; | 3233 | np->nic_poll_irq |= NVREG_IRQ_TX_ALL; |
3234 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); | 3234 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); |
3235 | } | 3235 | } |
3236 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_tx.\n", dev->name, i); | ||
3237 | spin_unlock_irqrestore(&np->lock, flags); | 3236 | spin_unlock_irqrestore(&np->lock, flags); |
3237 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_tx.\n", dev->name, i); | ||
3238 | break; | 3238 | break; |
3239 | } | 3239 | } |
3240 | 3240 | ||
@@ -3348,8 +3348,8 @@ static irqreturn_t nv_nic_irq_rx(int foo, void *data) | |||
3348 | np->nic_poll_irq |= NVREG_IRQ_RX_ALL; | 3348 | np->nic_poll_irq |= NVREG_IRQ_RX_ALL; |
3349 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); | 3349 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); |
3350 | } | 3350 | } |
3351 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_rx.\n", dev->name, i); | ||
3352 | spin_unlock_irqrestore(&np->lock, flags); | 3351 | spin_unlock_irqrestore(&np->lock, flags); |
3352 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_rx.\n", dev->name, i); | ||
3353 | break; | 3353 | break; |
3354 | } | 3354 | } |
3355 | } | 3355 | } |
@@ -3421,8 +3421,8 @@ static irqreturn_t nv_nic_irq_other(int foo, void *data) | |||
3421 | np->nic_poll_irq |= NVREG_IRQ_OTHER; | 3421 | np->nic_poll_irq |= NVREG_IRQ_OTHER; |
3422 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); | 3422 | mod_timer(&np->nic_poll, jiffies + POLL_WAIT); |
3423 | } | 3423 | } |
3424 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_other.\n", dev->name, i); | ||
3425 | spin_unlock_irqrestore(&np->lock, flags); | 3424 | spin_unlock_irqrestore(&np->lock, flags); |
3425 | printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_other.\n", dev->name, i); | ||
3426 | break; | 3426 | break; |
3427 | } | 3427 | } |
3428 | 3428 | ||
diff --git a/drivers/net/irda/kingsun-sir.c b/drivers/net/irda/kingsun-sir.c index bdd5c979bead..4e5101a45c3c 100644 --- a/drivers/net/irda/kingsun-sir.c +++ b/drivers/net/irda/kingsun-sir.c | |||
@@ -509,12 +509,12 @@ static int kingsun_probe(struct usb_interface *intf, | |||
509 | spin_lock_init(&kingsun->lock); | 509 | spin_lock_init(&kingsun->lock); |
510 | 510 | ||
511 | /* Allocate input buffer */ | 511 | /* Allocate input buffer */ |
512 | kingsun->in_buf = (__u8 *)kmalloc(kingsun->max_rx, GFP_KERNEL); | 512 | kingsun->in_buf = kmalloc(kingsun->max_rx, GFP_KERNEL); |
513 | if (!kingsun->in_buf) | 513 | if (!kingsun->in_buf) |
514 | goto free_mem; | 514 | goto free_mem; |
515 | 515 | ||
516 | /* Allocate output buffer */ | 516 | /* Allocate output buffer */ |
517 | kingsun->out_buf = (__u8 *)kmalloc(KINGSUN_FIFO_SIZE, GFP_KERNEL); | 517 | kingsun->out_buf = kmalloc(KINGSUN_FIFO_SIZE, GFP_KERNEL); |
518 | if (!kingsun->out_buf) | 518 | if (!kingsun->out_buf) |
519 | goto free_mem; | 519 | goto free_mem; |
520 | 520 | ||
diff --git a/drivers/net/meth.c b/drivers/net/meth.c index 92b403bf38b0..32bed6bc6c06 100644 --- a/drivers/net/meth.c +++ b/drivers/net/meth.c | |||
@@ -405,7 +405,7 @@ static void meth_rx(struct net_device* dev, unsigned long int_status) | |||
405 | priv->stats.rx_length_errors++; | 405 | priv->stats.rx_length_errors++; |
406 | skb = priv->rx_skbs[priv->rx_write]; | 406 | skb = priv->rx_skbs[priv->rx_write]; |
407 | } else { | 407 | } else { |
408 | skb = alloc_skb(METH_RX_BUFF_SIZE, GFP_ATOMIC | GFP_DMA); | 408 | skb = alloc_skb(METH_RX_BUFF_SIZE, GFP_ATOMIC); |
409 | if (!skb) { | 409 | if (!skb) { |
410 | /* Ouch! No memory! Drop packet on the floor */ | 410 | /* Ouch! No memory! Drop packet on the floor */ |
411 | DPRINTK("No mem: dropping packet\n"); | 411 | DPRINTK("No mem: dropping packet\n"); |
diff --git a/drivers/net/mlx4/reset.c b/drivers/net/mlx4/reset.c index e4dfd4b11a4a..e199715fabd0 100644 --- a/drivers/net/mlx4/reset.c +++ b/drivers/net/mlx4/reset.c | |||
@@ -119,6 +119,9 @@ int mlx4_reset(struct mlx4_dev *dev) | |||
119 | writel(MLX4_RESET_VALUE, reset + MLX4_RESET_OFFSET); | 119 | writel(MLX4_RESET_VALUE, reset + MLX4_RESET_OFFSET); |
120 | iounmap(reset); | 120 | iounmap(reset); |
121 | 121 | ||
122 | /* Docs say to wait one second before accessing device */ | ||
123 | msleep(1000); | ||
124 | |||
122 | end = jiffies + MLX4_RESET_TIMEOUT_JIFFIES; | 125 | end = jiffies + MLX4_RESET_TIMEOUT_JIFFIES; |
123 | do { | 126 | do { |
124 | if (!pci_read_config_word(dev->pdev, PCI_VENDOR_ID, &vendor) && | 127 | if (!pci_read_config_word(dev->pdev, PCI_VENDOR_ID, &vendor) && |
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c index ae9bb7b7fd67..1c42266bf889 100644 --- a/drivers/net/myri10ge/myri10ge.c +++ b/drivers/net/myri10ge/myri10ge.c | |||
@@ -72,7 +72,7 @@ | |||
72 | #include "myri10ge_mcp.h" | 72 | #include "myri10ge_mcp.h" |
73 | #include "myri10ge_mcp_gen_header.h" | 73 | #include "myri10ge_mcp_gen_header.h" |
74 | 74 | ||
75 | #define MYRI10GE_VERSION_STR "1.3.1-1.248" | 75 | #define MYRI10GE_VERSION_STR "1.3.2-1.269" |
76 | 76 | ||
77 | MODULE_DESCRIPTION("Myricom 10G driver (10GbE)"); | 77 | MODULE_DESCRIPTION("Myricom 10G driver (10GbE)"); |
78 | MODULE_AUTHOR("Maintainer: help@myri.com"); | 78 | MODULE_AUTHOR("Maintainer: help@myri.com"); |
@@ -2514,26 +2514,20 @@ static void myri10ge_firmware_probe(struct myri10ge_priv *mgp) | |||
2514 | { | 2514 | { |
2515 | struct pci_dev *pdev = mgp->pdev; | 2515 | struct pci_dev *pdev = mgp->pdev; |
2516 | struct device *dev = &pdev->dev; | 2516 | struct device *dev = &pdev->dev; |
2517 | int cap, status; | 2517 | int status; |
2518 | u16 val; | ||
2519 | 2518 | ||
2520 | mgp->tx.boundary = 4096; | 2519 | mgp->tx.boundary = 4096; |
2521 | /* | 2520 | /* |
2522 | * Verify the max read request size was set to 4KB | 2521 | * Verify the max read request size was set to 4KB |
2523 | * before trying the test with 4KB. | 2522 | * before trying the test with 4KB. |
2524 | */ | 2523 | */ |
2525 | cap = pci_find_capability(pdev, PCI_CAP_ID_EXP); | 2524 | status = pcie_get_readrq(pdev); |
2526 | if (cap < 64) { | 2525 | if (status < 0) { |
2527 | dev_err(dev, "Bad PCI_CAP_ID_EXP location %d\n", cap); | ||
2528 | goto abort; | ||
2529 | } | ||
2530 | status = pci_read_config_word(pdev, cap + PCI_EXP_DEVCTL, &val); | ||
2531 | if (status != 0) { | ||
2532 | dev_err(dev, "Couldn't read max read req size: %d\n", status); | 2526 | dev_err(dev, "Couldn't read max read req size: %d\n", status); |
2533 | goto abort; | 2527 | goto abort; |
2534 | } | 2528 | } |
2535 | if ((val & (5 << 12)) != (5 << 12)) { | 2529 | if (status != 4096) { |
2536 | dev_warn(dev, "Max Read Request size != 4096 (0x%x)\n", val); | 2530 | dev_warn(dev, "Max Read Request size != 4096 (%d)\n", status); |
2537 | mgp->tx.boundary = 2048; | 2531 | mgp->tx.boundary = 2048; |
2538 | } | 2532 | } |
2539 | /* | 2533 | /* |
@@ -2850,9 +2844,7 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2850 | size_t bytes; | 2844 | size_t bytes; |
2851 | int i; | 2845 | int i; |
2852 | int status = -ENXIO; | 2846 | int status = -ENXIO; |
2853 | int cap; | ||
2854 | int dac_enabled; | 2847 | int dac_enabled; |
2855 | u16 val; | ||
2856 | 2848 | ||
2857 | netdev = alloc_etherdev(sizeof(*mgp)); | 2849 | netdev = alloc_etherdev(sizeof(*mgp)); |
2858 | if (netdev == NULL) { | 2850 | if (netdev == NULL) { |
@@ -2884,19 +2876,7 @@ static int myri10ge_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2884 | = pci_find_capability(pdev, PCI_CAP_ID_VNDR); | 2876 | = pci_find_capability(pdev, PCI_CAP_ID_VNDR); |
2885 | 2877 | ||
2886 | /* Set our max read request to 4KB */ | 2878 | /* Set our max read request to 4KB */ |
2887 | cap = pci_find_capability(pdev, PCI_CAP_ID_EXP); | 2879 | status = pcie_set_readrq(pdev, 4096); |
2888 | if (cap < 64) { | ||
2889 | dev_err(&pdev->dev, "Bad PCI_CAP_ID_EXP location %d\n", cap); | ||
2890 | goto abort_with_netdev; | ||
2891 | } | ||
2892 | status = pci_read_config_word(pdev, cap + PCI_EXP_DEVCTL, &val); | ||
2893 | if (status != 0) { | ||
2894 | dev_err(&pdev->dev, "Error %d reading PCI_EXP_DEVCTL\n", | ||
2895 | status); | ||
2896 | goto abort_with_netdev; | ||
2897 | } | ||
2898 | val = (val & ~PCI_EXP_DEVCTL_READRQ) | (5 << 12); | ||
2899 | status = pci_write_config_word(pdev, cap + PCI_EXP_DEVCTL, val); | ||
2900 | if (status != 0) { | 2880 | if (status != 0) { |
2901 | dev_err(&pdev->dev, "Error %d writing PCI_EXP_DEVCTL\n", | 2881 | dev_err(&pdev->dev, "Error %d writing PCI_EXP_DEVCTL\n", |
2902 | status); | 2882 | status); |
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index a8b74cdab1ea..e275df8c55bc 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c | |||
@@ -364,7 +364,7 @@ EXPORT_SYMBOL(genphy_config_advert); | |||
364 | */ | 364 | */ |
365 | int genphy_setup_forced(struct phy_device *phydev) | 365 | int genphy_setup_forced(struct phy_device *phydev) |
366 | { | 366 | { |
367 | int ctl = BMCR_RESET; | 367 | int ctl = 0; |
368 | 368 | ||
369 | phydev->pause = phydev->asym_pause = 0; | 369 | phydev->pause = phydev->asym_pause = 0; |
370 | 370 | ||
diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c index ef3325b69233..9293c82ef2af 100644 --- a/drivers/net/ppp_generic.c +++ b/drivers/net/ppp_generic.c | |||
@@ -1726,7 +1726,7 @@ ppp_decompress_frame(struct ppp *ppp, struct sk_buff *skb) | |||
1726 | } | 1726 | } |
1727 | /* the decompressor still expects the A/C bytes in the hdr */ | 1727 | /* the decompressor still expects the A/C bytes in the hdr */ |
1728 | len = ppp->rcomp->decompress(ppp->rc_state, skb->data - 2, | 1728 | len = ppp->rcomp->decompress(ppp->rc_state, skb->data - 2, |
1729 | skb->len + 2, ns->data, ppp->mru + PPP_HDRLEN); | 1729 | skb->len + 2, ns->data, obuff_size); |
1730 | if (len < 0) { | 1730 | if (len < 0) { |
1731 | /* Pass the compressed frame to pppd as an | 1731 | /* Pass the compressed frame to pppd as an |
1732 | error indication. */ | 1732 | error indication. */ |
diff --git a/drivers/net/sgiseeq.c b/drivers/net/sgiseeq.c index 384b4685e977..0fb74cb51c4b 100644 --- a/drivers/net/sgiseeq.c +++ b/drivers/net/sgiseeq.c | |||
@@ -726,7 +726,7 @@ err_out: | |||
726 | return err; | 726 | return err; |
727 | } | 727 | } |
728 | 728 | ||
729 | static void __exit sgiseeq_remove(struct platform_device *pdev) | 729 | static int __exit sgiseeq_remove(struct platform_device *pdev) |
730 | { | 730 | { |
731 | struct net_device *dev = platform_get_drvdata(pdev); | 731 | struct net_device *dev = platform_get_drvdata(pdev); |
732 | struct sgiseeq_private *sp = netdev_priv(dev); | 732 | struct sgiseeq_private *sp = netdev_priv(dev); |
@@ -735,6 +735,8 @@ static void __exit sgiseeq_remove(struct platform_device *pdev) | |||
735 | free_page((unsigned long) sp->srings); | 735 | free_page((unsigned long) sp->srings); |
736 | free_netdev(dev); | 736 | free_netdev(dev); |
737 | platform_set_drvdata(pdev, NULL); | 737 | platform_set_drvdata(pdev, NULL); |
738 | |||
739 | return 0; | ||
738 | } | 740 | } |
739 | 741 | ||
740 | static struct platform_driver sgiseeq_driver = { | 742 | static struct platform_driver sgiseeq_driver = { |
diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index e7a2eadcc3b0..e6d937ec6886 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c | |||
@@ -51,7 +51,7 @@ | |||
51 | #include "sky2.h" | 51 | #include "sky2.h" |
52 | 52 | ||
53 | #define DRV_NAME "sky2" | 53 | #define DRV_NAME "sky2" |
54 | #define DRV_VERSION "1.16" | 54 | #define DRV_VERSION "1.17" |
55 | #define PFX DRV_NAME " " | 55 | #define PFX DRV_NAME " " |
56 | 56 | ||
57 | /* | 57 | /* |
@@ -99,10 +99,6 @@ static int disable_msi = 0; | |||
99 | module_param(disable_msi, int, 0); | 99 | module_param(disable_msi, int, 0); |
100 | MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)"); | 100 | MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)"); |
101 | 101 | ||
102 | static int idle_timeout = 100; | ||
103 | module_param(idle_timeout, int, 0); | ||
104 | MODULE_PARM_DESC(idle_timeout, "Watchdog timer for lost interrupts (ms)"); | ||
105 | |||
106 | static const struct pci_device_id sky2_id_table[] = { | 102 | static const struct pci_device_id sky2_id_table[] = { |
107 | { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9000) }, /* SK-9Sxx */ | 103 | { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9000) }, /* SK-9Sxx */ |
108 | { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9E00) }, /* SK-9Exx */ | 104 | { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9E00) }, /* SK-9Exx */ |
@@ -219,9 +215,12 @@ static void sky2_power_on(struct sky2_hw *hw) | |||
219 | else | 215 | else |
220 | sky2_write8(hw, B2_Y2_CLK_GATE, 0); | 216 | sky2_write8(hw, B2_Y2_CLK_GATE, 0); |
221 | 217 | ||
222 | if (hw->chip_id == CHIP_ID_YUKON_EC_U || hw->chip_id == CHIP_ID_YUKON_EX) { | 218 | if (hw->chip_id == CHIP_ID_YUKON_EC_U || |
219 | hw->chip_id == CHIP_ID_YUKON_EX) { | ||
223 | u32 reg; | 220 | u32 reg; |
224 | 221 | ||
222 | sky2_pci_write32(hw, PCI_DEV_REG3, 0); | ||
223 | |||
225 | reg = sky2_pci_read32(hw, PCI_DEV_REG4); | 224 | reg = sky2_pci_read32(hw, PCI_DEV_REG4); |
226 | /* set all bits to 0 except bits 15..12 and 8 */ | 225 | /* set all bits to 0 except bits 15..12 and 8 */ |
227 | reg &= P_ASPM_CONTROL_MSK; | 226 | reg &= P_ASPM_CONTROL_MSK; |
@@ -238,6 +237,8 @@ static void sky2_power_on(struct sky2_hw *hw) | |||
238 | reg = sky2_read32(hw, B2_GP_IO); | 237 | reg = sky2_read32(hw, B2_GP_IO); |
239 | reg |= GLB_GPIO_STAT_RACE_DIS; | 238 | reg |= GLB_GPIO_STAT_RACE_DIS; |
240 | sky2_write32(hw, B2_GP_IO, reg); | 239 | sky2_write32(hw, B2_GP_IO, reg); |
240 | |||
241 | sky2_read32(hw, B2_GP_IO); | ||
241 | } | 242 | } |
242 | } | 243 | } |
243 | 244 | ||
@@ -696,8 +697,8 @@ static void sky2_mac_init(struct sky2_hw *hw, unsigned port) | |||
696 | int i; | 697 | int i; |
697 | const u8 *addr = hw->dev[port]->dev_addr; | 698 | const u8 *addr = hw->dev[port]->dev_addr; |
698 | 699 | ||
699 | sky2_write32(hw, SK_REG(port, GPHY_CTRL), GPC_RST_SET); | 700 | sky2_write8(hw, SK_REG(port, GPHY_CTRL), GPC_RST_SET); |
700 | sky2_write32(hw, SK_REG(port, GPHY_CTRL), GPC_RST_CLR); | 701 | sky2_write8(hw, SK_REG(port, GPHY_CTRL), GPC_RST_CLR); |
701 | 702 | ||
702 | sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_RST_CLR); | 703 | sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_RST_CLR); |
703 | 704 | ||
@@ -1619,6 +1620,9 @@ static int sky2_down(struct net_device *dev) | |||
1619 | if (netif_msg_ifdown(sky2)) | 1620 | if (netif_msg_ifdown(sky2)) |
1620 | printk(KERN_INFO PFX "%s: disabling interface\n", dev->name); | 1621 | printk(KERN_INFO PFX "%s: disabling interface\n", dev->name); |
1621 | 1622 | ||
1623 | if (netif_carrier_ok(dev) && --hw->active == 0) | ||
1624 | del_timer(&hw->watchdog_timer); | ||
1625 | |||
1622 | /* Stop more packets from being queued */ | 1626 | /* Stop more packets from being queued */ |
1623 | netif_stop_queue(dev); | 1627 | netif_stop_queue(dev); |
1624 | 1628 | ||
@@ -1739,6 +1743,10 @@ static void sky2_link_up(struct sky2_port *sky2) | |||
1739 | 1743 | ||
1740 | netif_carrier_on(sky2->netdev); | 1744 | netif_carrier_on(sky2->netdev); |
1741 | 1745 | ||
1746 | if (hw->active++ == 0) | ||
1747 | mod_timer(&hw->watchdog_timer, jiffies + 1); | ||
1748 | |||
1749 | |||
1742 | /* Turn on link LED */ | 1750 | /* Turn on link LED */ |
1743 | sky2_write8(hw, SK_REG(port, LNK_LED_REG), | 1751 | sky2_write8(hw, SK_REG(port, LNK_LED_REG), |
1744 | LINKLED_ON | LINKLED_BLINK_OFF | LINKLED_LINKSYNC_OFF); | 1752 | LINKLED_ON | LINKLED_BLINK_OFF | LINKLED_LINKSYNC_OFF); |
@@ -1790,6 +1798,11 @@ static void sky2_link_down(struct sky2_port *sky2) | |||
1790 | 1798 | ||
1791 | netif_carrier_off(sky2->netdev); | 1799 | netif_carrier_off(sky2->netdev); |
1792 | 1800 | ||
1801 | /* Stop watchdog if both ports are not active */ | ||
1802 | if (--hw->active == 0) | ||
1803 | del_timer(&hw->watchdog_timer); | ||
1804 | |||
1805 | |||
1793 | /* Turn on link LED */ | 1806 | /* Turn on link LED */ |
1794 | sky2_write8(hw, SK_REG(port, LNK_LED_REG), LINKLED_OFF); | 1807 | sky2_write8(hw, SK_REG(port, LNK_LED_REG), LINKLED_OFF); |
1795 | 1808 | ||
@@ -2421,25 +2434,20 @@ static void sky2_le_error(struct sky2_hw *hw, unsigned port, | |||
2421 | sky2_write32(hw, Q_ADDR(q, Q_CSR), BMU_CLR_IRQ_CHK); | 2434 | sky2_write32(hw, Q_ADDR(q, Q_CSR), BMU_CLR_IRQ_CHK); |
2422 | } | 2435 | } |
2423 | 2436 | ||
2424 | /* If idle then force a fake soft NAPI poll once a second | 2437 | /* Check for lost IRQ once a second */ |
2425 | * to work around cases where sharing an edge triggered interrupt. | 2438 | static void sky2_watchdog(unsigned long arg) |
2426 | */ | ||
2427 | static inline void sky2_idle_start(struct sky2_hw *hw) | ||
2428 | { | ||
2429 | if (idle_timeout > 0) | ||
2430 | mod_timer(&hw->idle_timer, | ||
2431 | jiffies + msecs_to_jiffies(idle_timeout)); | ||
2432 | } | ||
2433 | |||
2434 | static void sky2_idle(unsigned long arg) | ||
2435 | { | 2439 | { |
2436 | struct sky2_hw *hw = (struct sky2_hw *) arg; | 2440 | struct sky2_hw *hw = (struct sky2_hw *) arg; |
2437 | struct net_device *dev = hw->dev[0]; | ||
2438 | 2441 | ||
2439 | if (__netif_rx_schedule_prep(dev)) | 2442 | if (sky2_read32(hw, B0_ISRC)) { |
2440 | __netif_rx_schedule(dev); | 2443 | struct net_device *dev = hw->dev[0]; |
2441 | 2444 | ||
2442 | mod_timer(&hw->idle_timer, jiffies + msecs_to_jiffies(idle_timeout)); | 2445 | if (__netif_rx_schedule_prep(dev)) |
2446 | __netif_rx_schedule(dev); | ||
2447 | } | ||
2448 | |||
2449 | if (hw->active > 0) | ||
2450 | mod_timer(&hw->watchdog_timer, round_jiffies(jiffies + HZ)); | ||
2443 | } | 2451 | } |
2444 | 2452 | ||
2445 | /* Hardware/software error handling */ | 2453 | /* Hardware/software error handling */ |
@@ -2727,8 +2735,6 @@ static void sky2_restart(struct work_struct *work) | |||
2727 | struct net_device *dev; | 2735 | struct net_device *dev; |
2728 | int i, err; | 2736 | int i, err; |
2729 | 2737 | ||
2730 | del_timer_sync(&hw->idle_timer); | ||
2731 | |||
2732 | rtnl_lock(); | 2738 | rtnl_lock(); |
2733 | sky2_write32(hw, B0_IMSK, 0); | 2739 | sky2_write32(hw, B0_IMSK, 0); |
2734 | sky2_read32(hw, B0_IMSK); | 2740 | sky2_read32(hw, B0_IMSK); |
@@ -2757,8 +2763,6 @@ static void sky2_restart(struct work_struct *work) | |||
2757 | } | 2763 | } |
2758 | } | 2764 | } |
2759 | 2765 | ||
2760 | sky2_idle_start(hw); | ||
2761 | |||
2762 | rtnl_unlock(); | 2766 | rtnl_unlock(); |
2763 | } | 2767 | } |
2764 | 2768 | ||
@@ -4025,11 +4029,9 @@ static int __devinit sky2_probe(struct pci_dev *pdev, | |||
4025 | sky2_show_addr(dev1); | 4029 | sky2_show_addr(dev1); |
4026 | } | 4030 | } |
4027 | 4031 | ||
4028 | setup_timer(&hw->idle_timer, sky2_idle, (unsigned long) hw); | 4032 | setup_timer(&hw->watchdog_timer, sky2_watchdog, (unsigned long) hw); |
4029 | INIT_WORK(&hw->restart_work, sky2_restart); | 4033 | INIT_WORK(&hw->restart_work, sky2_restart); |
4030 | 4034 | ||
4031 | sky2_idle_start(hw); | ||
4032 | |||
4033 | pci_set_drvdata(pdev, hw); | 4035 | pci_set_drvdata(pdev, hw); |
4034 | 4036 | ||
4035 | return 0; | 4037 | return 0; |
@@ -4064,7 +4066,7 @@ static void __devexit sky2_remove(struct pci_dev *pdev) | |||
4064 | if (!hw) | 4066 | if (!hw) |
4065 | return; | 4067 | return; |
4066 | 4068 | ||
4067 | del_timer_sync(&hw->idle_timer); | 4069 | del_timer_sync(&hw->watchdog_timer); |
4068 | 4070 | ||
4069 | flush_scheduled_work(); | 4071 | flush_scheduled_work(); |
4070 | 4072 | ||
@@ -4108,7 +4110,6 @@ static int sky2_suspend(struct pci_dev *pdev, pm_message_t state) | |||
4108 | if (!hw) | 4110 | if (!hw) |
4109 | return 0; | 4111 | return 0; |
4110 | 4112 | ||
4111 | del_timer_sync(&hw->idle_timer); | ||
4112 | netif_poll_disable(hw->dev[0]); | 4113 | netif_poll_disable(hw->dev[0]); |
4113 | 4114 | ||
4114 | for (i = 0; i < hw->ports; i++) { | 4115 | for (i = 0; i < hw->ports; i++) { |
@@ -4174,7 +4175,7 @@ static int sky2_resume(struct pci_dev *pdev) | |||
4174 | } | 4175 | } |
4175 | 4176 | ||
4176 | netif_poll_enable(hw->dev[0]); | 4177 | netif_poll_enable(hw->dev[0]); |
4177 | sky2_idle_start(hw); | 4178 | |
4178 | return 0; | 4179 | return 0; |
4179 | out: | 4180 | out: |
4180 | dev_err(&pdev->dev, "resume failed (%d)\n", err); | 4181 | dev_err(&pdev->dev, "resume failed (%d)\n", err); |
@@ -4191,7 +4192,6 @@ static void sky2_shutdown(struct pci_dev *pdev) | |||
4191 | if (!hw) | 4192 | if (!hw) |
4192 | return; | 4193 | return; |
4193 | 4194 | ||
4194 | del_timer_sync(&hw->idle_timer); | ||
4195 | netif_poll_disable(hw->dev[0]); | 4195 | netif_poll_disable(hw->dev[0]); |
4196 | 4196 | ||
4197 | for (i = 0; i < hw->ports; i++) { | 4197 | for (i = 0; i < hw->ports; i++) { |
diff --git a/drivers/net/sky2.h b/drivers/net/sky2.h index dce4d276d443..72e12b7cfa40 100644 --- a/drivers/net/sky2.h +++ b/drivers/net/sky2.h | |||
@@ -2045,12 +2045,13 @@ struct sky2_hw { | |||
2045 | u8 chip_rev; | 2045 | u8 chip_rev; |
2046 | u8 pmd_type; | 2046 | u8 pmd_type; |
2047 | u8 ports; | 2047 | u8 ports; |
2048 | u8 active; | ||
2048 | 2049 | ||
2049 | struct sky2_status_le *st_le; | 2050 | struct sky2_status_le *st_le; |
2050 | u32 st_idx; | 2051 | u32 st_idx; |
2051 | dma_addr_t st_dma; | 2052 | dma_addr_t st_dma; |
2052 | 2053 | ||
2053 | struct timer_list idle_timer; | 2054 | struct timer_list watchdog_timer; |
2054 | struct work_struct restart_work; | 2055 | struct work_struct restart_work; |
2055 | int msi; | 2056 | int msi; |
2056 | wait_queue_head_t msi_wait; | 2057 | wait_queue_head_t msi_wait; |
diff --git a/drivers/net/slip.c b/drivers/net/slip.c index 65bd20fac820..3fd4735006f5 100644 --- a/drivers/net/slip.c +++ b/drivers/net/slip.c | |||
@@ -957,7 +957,7 @@ slip_close(struct tty_struct *tty) | |||
957 | * STANDARD SLIP ENCAPSULATION * | 957 | * STANDARD SLIP ENCAPSULATION * |
958 | ************************************************************************/ | 958 | ************************************************************************/ |
959 | 959 | ||
960 | int | 960 | static int |
961 | slip_esc(unsigned char *s, unsigned char *d, int len) | 961 | slip_esc(unsigned char *s, unsigned char *d, int len) |
962 | { | 962 | { |
963 | unsigned char *ptr = d; | 963 | unsigned char *ptr = d; |
diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c index 70db38c0ced9..56829f82be4a 100644 --- a/drivers/pci/hotplug/acpiphp_ibm.c +++ b/drivers/pci/hotplug/acpiphp_ibm.c | |||
@@ -267,7 +267,10 @@ static void ibm_handle_events(acpi_handle handle, u32 event, void *context) | |||
267 | 267 | ||
268 | if (subevent == 0x80) { | 268 | if (subevent == 0x80) { |
269 | dbg("%s: generationg bus event\n", __FUNCTION__); | 269 | dbg("%s: generationg bus event\n", __FUNCTION__); |
270 | acpi_bus_generate_event(note->device, note->event, detail); | 270 | acpi_bus_generate_proc_event(note->device, note->event, detail); |
271 | acpi_bus_generate_netlink_event(note->device->pnp.device_class, | ||
272 | note->device->dev.bus_id, | ||
273 | note->event, detail); | ||
271 | } else | 274 | } else |
272 | note->event = event; | 275 | note->event = event; |
273 | } | 276 | } |
@@ -399,7 +402,7 @@ static acpi_status __init ibm_find_acpi_device(acpi_handle handle, | |||
399 | 402 | ||
400 | status = acpi_get_object_info(handle, &info_buffer); | 403 | status = acpi_get_object_info(handle, &info_buffer); |
401 | if (ACPI_FAILURE(status)) { | 404 | if (ACPI_FAILURE(status)) { |
402 | err("%s: Failed to get device information", __FUNCTION__); | 405 | err("%s: Failed to get device information\n", __FUNCTION__); |
403 | return 0; | 406 | return 0; |
404 | } | 407 | } |
405 | info.hardware_id.value[sizeof(info.hardware_id.value) - 1] = '\0'; | 408 | info.hardware_id.value[sizeof(info.hardware_id.value) - 1] = '\0'; |
diff --git a/drivers/pci/hotplug/cpqphp_ctrl.c b/drivers/pci/hotplug/cpqphp_ctrl.c index 79ff6b4de3a6..37d72f123a80 100644 --- a/drivers/pci/hotplug/cpqphp_ctrl.c +++ b/drivers/pci/hotplug/cpqphp_ctrl.c | |||
@@ -1746,10 +1746,8 @@ static void pushbutton_helper_thread(unsigned long data) | |||
1746 | static int event_thread(void* data) | 1746 | static int event_thread(void* data) |
1747 | { | 1747 | { |
1748 | struct controller *ctrl; | 1748 | struct controller *ctrl; |
1749 | lock_kernel(); | 1749 | |
1750 | daemonize("phpd_event"); | 1750 | daemonize("phpd_event"); |
1751 | |||
1752 | unlock_kernel(); | ||
1753 | 1751 | ||
1754 | while (1) { | 1752 | while (1) { |
1755 | dbg("!!!!event_thread sleeping\n"); | 1753 | dbg("!!!!event_thread sleeping\n"); |
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index c6e132d7c0f7..4c36e80f6d26 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h | |||
@@ -5,12 +5,7 @@ extern int pci_uevent(struct device *dev, char **envp, int num_envp, | |||
5 | extern int pci_create_sysfs_dev_files(struct pci_dev *pdev); | 5 | extern int pci_create_sysfs_dev_files(struct pci_dev *pdev); |
6 | extern void pci_remove_sysfs_dev_files(struct pci_dev *pdev); | 6 | extern void pci_remove_sysfs_dev_files(struct pci_dev *pdev); |
7 | extern void pci_cleanup_rom(struct pci_dev *dev); | 7 | extern void pci_cleanup_rom(struct pci_dev *dev); |
8 | extern int pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res, | 8 | |
9 | resource_size_t size, resource_size_t align, | ||
10 | resource_size_t min, unsigned int type_mask, | ||
11 | void (*alignf)(void *, struct resource *, | ||
12 | resource_size_t, resource_size_t), | ||
13 | void *alignf_data); | ||
14 | /* Firmware callbacks */ | 9 | /* Firmware callbacks */ |
15 | extern pci_power_t (*platform_pci_choose_state)(struct pci_dev *dev, pm_message_t state); | 10 | extern pci_power_t (*platform_pci_choose_state)(struct pci_dev *dev, pm_message_t state); |
16 | extern int (*platform_pci_set_power_state)(struct pci_dev *dev, pci_power_t state); | 11 | extern int (*platform_pci_set_power_state)(struct pci_dev *dev, pci_power_t state); |
@@ -35,7 +30,6 @@ static inline int pci_proc_detach_bus(struct pci_bus *bus) { return 0; } | |||
35 | 30 | ||
36 | /* Functions for PCI Hotplug drivers to use */ | 31 | /* Functions for PCI Hotplug drivers to use */ |
37 | extern unsigned int pci_do_scan_bus(struct pci_bus *bus); | 32 | extern unsigned int pci_do_scan_bus(struct pci_bus *bus); |
38 | extern int pci_bus_find_capability (struct pci_bus *bus, unsigned int devfn, int cap); | ||
39 | 33 | ||
40 | extern void pci_remove_legacy_files(struct pci_bus *bus); | 34 | extern void pci_remove_legacy_files(struct pci_bus *bus); |
41 | 35 | ||
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 34b8dae0d90f..27e00b2d7b5b 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
@@ -653,20 +653,20 @@ int pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass | |||
653 | 653 | ||
654 | sprintf(child->name, (is_cardbus ? "PCI CardBus #%02x" : "PCI Bus #%02x"), child->number); | 654 | sprintf(child->name, (is_cardbus ? "PCI CardBus #%02x" : "PCI Bus #%02x"), child->number); |
655 | 655 | ||
656 | /* Has only triggered on CardBus, fixup is in yenta_socket */ | ||
656 | while (bus->parent) { | 657 | while (bus->parent) { |
657 | if ((child->subordinate > bus->subordinate) || | 658 | if ((child->subordinate > bus->subordinate) || |
658 | (child->number > bus->subordinate) || | 659 | (child->number > bus->subordinate) || |
659 | (child->number < bus->number) || | 660 | (child->number < bus->number) || |
660 | (child->subordinate < bus->number)) { | 661 | (child->subordinate < bus->number)) { |
661 | printk(KERN_WARNING "PCI: Bus #%02x (-#%02x) is " | 662 | pr_debug("PCI: Bus #%02x (-#%02x) is %s" |
662 | "hidden behind%s bridge #%02x (-#%02x)%s\n", | 663 | "hidden behind%s bridge #%02x (-#%02x)\n", |
663 | child->number, child->subordinate, | 664 | child->number, child->subordinate, |
664 | bus->self->transparent ? " transparent" : " ", | 665 | (bus->number > child->subordinate && |
665 | bus->number, bus->subordinate, | 666 | bus->subordinate < child->number) ? |
666 | pcibios_assign_all_busses() ? " " : | 667 | "wholly " : " partially", |
667 | " (try 'pci=assign-busses')"); | 668 | bus->self->transparent ? " transparent" : " ", |
668 | printk(KERN_WARNING "Please report the result to " | 669 | bus->number, bus->subordinate); |
669 | "<bk@suse.de> to fix this permanently\n"); | ||
670 | } | 670 | } |
671 | bus = bus->parent; | 671 | bus = bus->parent; |
672 | } | 672 | } |
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index c559085c89a5..2d40f437b9fc 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -947,7 +947,7 @@ static void k8t_sound_hostbridge(struct pci_dev *dev) | |||
947 | unsigned char val; | 947 | unsigned char val; |
948 | 948 | ||
949 | pci_read_config_byte(dev, 0x50, &val); | 949 | pci_read_config_byte(dev, 0x50, &val); |
950 | if (val == 0x88 || val == 0xc8) { | 950 | if (val == 0xc8) { |
951 | /* Assume it's probably a MSI-K8T-Neo2Fir */ | 951 | /* Assume it's probably a MSI-K8T-Neo2Fir */ |
952 | printk(KERN_INFO "PCI: MSI-K8T-Neo2Fir, attempting to turn soundcard ON\n"); | 952 | printk(KERN_INFO "PCI: MSI-K8T-Neo2Fir, attempting to turn soundcard ON\n"); |
953 | pci_write_config_byte(dev, 0x50, val & (~0x40)); | 953 | pci_write_config_byte(dev, 0x50, val & (~0x40)); |
@@ -1485,7 +1485,7 @@ static void __devinit quirk_e100_interrupt(struct pci_dev *dev) | |||
1485 | 1485 | ||
1486 | iounmap(csr); | 1486 | iounmap(csr); |
1487 | } | 1487 | } |
1488 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_e100_interrupt); | 1488 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_e100_interrupt); |
1489 | 1489 | ||
1490 | static void __devinit fixup_rev1_53c810(struct pci_dev* dev) | 1490 | static void __devinit fixup_rev1_53c810(struct pci_dev* dev) |
1491 | { | 1491 | { |
@@ -1650,6 +1650,9 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCN | |||
1650 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX, quirk_disable_all_msi); | 1650 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX, quirk_disable_all_msi); |
1651 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi); | 1651 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi); |
1652 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi); | 1652 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi); |
1653 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RD580, quirk_disable_all_msi); | ||
1654 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RX790, quirk_disable_all_msi); | ||
1655 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS690, quirk_disable_all_msi); | ||
1653 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi); | 1656 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi); |
1654 | 1657 | ||
1655 | /* Disable MSI on chipsets that are known to not support it */ | 1658 | /* Disable MSI on chipsets that are known to not support it */ |
diff --git a/drivers/pnp/card.c b/drivers/pnp/card.c index b6a4f02b01d1..6c0440c20e31 100644 --- a/drivers/pnp/card.c +++ b/drivers/pnp/card.c | |||
@@ -25,13 +25,13 @@ static const struct pnp_card_device_id *match_card(struct pnp_card_driver *drv, | |||
25 | int found; | 25 | int found; |
26 | struct pnp_dev *dev; | 26 | struct pnp_dev *dev; |
27 | 27 | ||
28 | if (i == PNP_MAX_DEVICES | 28 | if (i == PNP_MAX_DEVICES || |
29 | || !*drv_id->devs[i].id) | 29 | !*drv_id->devs[i].id) |
30 | return drv_id; | 30 | return drv_id; |
31 | found = 0; | 31 | found = 0; |
32 | card_for_each_dev(card, dev) { | 32 | card_for_each_dev(card, dev) { |
33 | if (compare_pnp_id | 33 | if (compare_pnp_id(dev->id, |
34 | (dev->id, drv_id->devs[i].id)) { | 34 | drv_id->devs[i].id)) { |
35 | found = 1; | 35 | found = 1; |
36 | break; | 36 | break; |
37 | } | 37 | } |
@@ -183,7 +183,7 @@ static int pnp_interface_attach_card(struct pnp_card *card) | |||
183 | 183 | ||
184 | return 0; | 184 | return 0; |
185 | 185 | ||
186 | err_name: | 186 | err_name: |
187 | device_remove_file(&card->dev, &dev_attr_name); | 187 | device_remove_file(&card->dev, &dev_attr_name); |
188 | return rc; | 188 | return rc; |
189 | } | 189 | } |
@@ -321,10 +321,10 @@ struct pnp_dev *pnp_request_card_device(struct pnp_card_link *clink, | |||
321 | pos = pos->next; | 321 | pos = pos->next; |
322 | } | 322 | } |
323 | 323 | ||
324 | done: | 324 | done: |
325 | return NULL; | 325 | return NULL; |
326 | 326 | ||
327 | found: | 327 | found: |
328 | dev->card_link = clink; | 328 | dev->card_link = clink; |
329 | dev->dev.driver = &drv->link.driver; | 329 | dev->dev.driver = &drv->link.driver; |
330 | if (pnp_bus_type.probe(&dev->dev)) | 330 | if (pnp_bus_type.probe(&dev->dev)) |
@@ -334,7 +334,7 @@ struct pnp_dev *pnp_request_card_device(struct pnp_card_link *clink, | |||
334 | 334 | ||
335 | return dev; | 335 | return dev; |
336 | 336 | ||
337 | err_out: | 337 | err_out: |
338 | dev->dev.driver = NULL; | 338 | dev->dev.driver = NULL; |
339 | dev->card_link = NULL; | 339 | dev->card_link = NULL; |
340 | return NULL; | 340 | return NULL; |
diff --git a/drivers/pnp/core.c b/drivers/pnp/core.c index 61066fdb9e6d..d5964feb14de 100644 --- a/drivers/pnp/core.c +++ b/drivers/pnp/core.c | |||
@@ -52,9 +52,6 @@ int pnp_register_protocol(struct pnp_protocol *protocol) | |||
52 | int nodenum; | 52 | int nodenum; |
53 | struct list_head *pos; | 53 | struct list_head *pos; |
54 | 54 | ||
55 | if (!protocol) | ||
56 | return -EINVAL; | ||
57 | |||
58 | INIT_LIST_HEAD(&protocol->devices); | 55 | INIT_LIST_HEAD(&protocol->devices); |
59 | INIT_LIST_HEAD(&protocol->cards); | 56 | INIT_LIST_HEAD(&protocol->cards); |
60 | nodenum = 0; | 57 | nodenum = 0; |
@@ -94,8 +91,6 @@ static void pnp_free_ids(struct pnp_dev *dev) | |||
94 | struct pnp_id *id; | 91 | struct pnp_id *id; |
95 | struct pnp_id *next; | 92 | struct pnp_id *next; |
96 | 93 | ||
97 | if (!dev) | ||
98 | return; | ||
99 | id = dev->id; | 94 | id = dev->id; |
100 | while (id) { | 95 | while (id) { |
101 | next = id->next; | 96 | next = id->next; |
@@ -143,7 +138,7 @@ int __pnp_add_device(struct pnp_dev *dev) | |||
143 | */ | 138 | */ |
144 | int pnp_add_device(struct pnp_dev *dev) | 139 | int pnp_add_device(struct pnp_dev *dev) |
145 | { | 140 | { |
146 | if (!dev || !dev->protocol || dev->card) | 141 | if (dev->card) |
147 | return -EINVAL; | 142 | return -EINVAL; |
148 | dev->dev.parent = &dev->protocol->dev; | 143 | dev->dev.parent = &dev->protocol->dev; |
149 | sprintf(dev->dev.bus_id, "%02x:%02x", dev->protocol->number, | 144 | sprintf(dev->dev.bus_id, "%02x:%02x", dev->protocol->number, |
diff --git a/drivers/pnp/driver.c b/drivers/pnp/driver.c index 30b8f6f3258a..2fa64a6b25c8 100644 --- a/drivers/pnp/driver.c +++ b/drivers/pnp/driver.c | |||
@@ -118,7 +118,7 @@ static int pnp_device_probe(struct device *dev) | |||
118 | goto fail; | 118 | goto fail; |
119 | return error; | 119 | return error; |
120 | 120 | ||
121 | fail: | 121 | fail: |
122 | pnp_device_detach(pnp_dev); | 122 | pnp_device_detach(pnp_dev); |
123 | return error; | 123 | return error; |
124 | } | 124 | } |
@@ -232,10 +232,6 @@ int pnp_add_id(struct pnp_id *id, struct pnp_dev *dev) | |||
232 | { | 232 | { |
233 | struct pnp_id *ptr; | 233 | struct pnp_id *ptr; |
234 | 234 | ||
235 | if (!id) | ||
236 | return -EINVAL; | ||
237 | if (!dev) | ||
238 | return -EINVAL; | ||
239 | id->next = NULL; | 235 | id->next = NULL; |
240 | ptr = dev->id; | 236 | ptr = dev->id; |
241 | while (ptr && ptr->next) | 237 | while (ptr && ptr->next) |
diff --git a/drivers/pnp/interface.c b/drivers/pnp/interface.c index fe6684e13e82..a0cfb75bbb8d 100644 --- a/drivers/pnp/interface.c +++ b/drivers/pnp/interface.c | |||
@@ -459,7 +459,8 @@ pnp_set_current_resources(struct device *dmdev, struct device_attribute *attr, | |||
459 | up(&pnp_res_mutex); | 459 | up(&pnp_res_mutex); |
460 | goto done; | 460 | goto done; |
461 | } | 461 | } |
462 | done: | 462 | |
463 | done: | ||
463 | if (retval < 0) | 464 | if (retval < 0) |
464 | return retval; | 465 | return retval; |
465 | return count; | 466 | return count; |
@@ -499,10 +500,10 @@ int pnp_interface_attach_device(struct pnp_dev *dev) | |||
499 | 500 | ||
500 | return 0; | 501 | return 0; |
501 | 502 | ||
502 | err_res: | 503 | err_res: |
503 | device_remove_file(&dev->dev, &dev_attr_resources); | 504 | device_remove_file(&dev->dev, &dev_attr_resources); |
504 | err_opt: | 505 | err_opt: |
505 | device_remove_file(&dev->dev, &dev_attr_options); | 506 | device_remove_file(&dev->dev, &dev_attr_options); |
506 | err: | 507 | err: |
507 | return rc; | 508 | return rc; |
508 | } | 509 | } |
diff --git a/drivers/pnp/isapnp/core.c b/drivers/pnp/isapnp/core.c index b4e2aa995b53..b035d60a1dcc 100644 --- a/drivers/pnp/isapnp/core.c +++ b/drivers/pnp/isapnp/core.c | |||
@@ -47,9 +47,6 @@ | |||
47 | #if 0 | 47 | #if 0 |
48 | #define ISAPNP_REGION_OK | 48 | #define ISAPNP_REGION_OK |
49 | #endif | 49 | #endif |
50 | #if 0 | ||
51 | #define ISAPNP_DEBUG | ||
52 | #endif | ||
53 | 50 | ||
54 | int isapnp_disable; /* Disable ISA PnP */ | 51 | int isapnp_disable; /* Disable ISA PnP */ |
55 | static int isapnp_rdp; /* Read Data Port */ | 52 | static int isapnp_rdp; /* Read Data Port */ |
@@ -93,7 +90,6 @@ MODULE_LICENSE("GPL"); | |||
93 | 90 | ||
94 | static unsigned char isapnp_checksum_value; | 91 | static unsigned char isapnp_checksum_value; |
95 | static DEFINE_MUTEX(isapnp_cfg_mutex); | 92 | static DEFINE_MUTEX(isapnp_cfg_mutex); |
96 | static int isapnp_detected; | ||
97 | static int isapnp_csn_count; | 93 | static int isapnp_csn_count; |
98 | 94 | ||
99 | /* some prototypes */ | 95 | /* some prototypes */ |
@@ -335,7 +331,7 @@ static int __init isapnp_isolate(void) | |||
335 | } else if (iteration > 1) { | 331 | } else if (iteration > 1) { |
336 | break; | 332 | break; |
337 | } | 333 | } |
338 | __next: | 334 | __next: |
339 | if (csn == 255) | 335 | if (csn == 255) |
340 | break; | 336 | break; |
341 | checksum = 0x6a; | 337 | checksum = 0x6a; |
@@ -733,7 +729,7 @@ static int __init isapnp_create_device(struct pnp_card *card, | |||
733 | "isapnp: unexpected or unknown tag type 0x%x for logical device %i (device %i), ignored\n", | 729 | "isapnp: unexpected or unknown tag type 0x%x for logical device %i (device %i), ignored\n", |
734 | type, dev->number, card->number); | 730 | type, dev->number, card->number); |
735 | } | 731 | } |
736 | __skip: | 732 | __skip: |
737 | if (size > 0) | 733 | if (size > 0) |
738 | isapnp_skip_bytes(size); | 734 | isapnp_skip_bytes(size); |
739 | } | 735 | } |
@@ -788,7 +784,7 @@ static void __init isapnp_parse_resource_map(struct pnp_card *card) | |||
788 | "isapnp: unexpected or unknown tag type 0x%x for device %i, ignored\n", | 784 | "isapnp: unexpected or unknown tag type 0x%x for device %i, ignored\n", |
789 | type, card->number); | 785 | type, card->number); |
790 | } | 786 | } |
791 | __skip: | 787 | __skip: |
792 | if (size > 0) | 788 | if (size > 0) |
793 | isapnp_skip_bytes(size); | 789 | isapnp_skip_bytes(size); |
794 | } | 790 | } |
@@ -940,9 +936,6 @@ EXPORT_SYMBOL(isapnp_protocol); | |||
940 | EXPORT_SYMBOL(isapnp_present); | 936 | EXPORT_SYMBOL(isapnp_present); |
941 | EXPORT_SYMBOL(isapnp_cfg_begin); | 937 | EXPORT_SYMBOL(isapnp_cfg_begin); |
942 | EXPORT_SYMBOL(isapnp_cfg_end); | 938 | EXPORT_SYMBOL(isapnp_cfg_end); |
943 | #if 0 | ||
944 | EXPORT_SYMBOL(isapnp_read_byte); | ||
945 | #endif | ||
946 | EXPORT_SYMBOL(isapnp_write_byte); | 939 | EXPORT_SYMBOL(isapnp_write_byte); |
947 | 940 | ||
948 | static int isapnp_read_resources(struct pnp_dev *dev, | 941 | static int isapnp_read_resources(struct pnp_dev *dev, |
@@ -993,6 +986,7 @@ static int isapnp_get_resources(struct pnp_dev *dev, | |||
993 | struct pnp_resource_table *res) | 986 | struct pnp_resource_table *res) |
994 | { | 987 | { |
995 | int ret; | 988 | int ret; |
989 | |||
996 | pnp_init_resource_table(res); | 990 | pnp_init_resource_table(res); |
997 | isapnp_cfg_begin(dev->card->number, dev->number); | 991 | isapnp_cfg_begin(dev->card->number, dev->number); |
998 | ret = isapnp_read_resources(dev, res); | 992 | ret = isapnp_read_resources(dev, res); |
@@ -1046,7 +1040,7 @@ static int isapnp_set_resources(struct pnp_dev *dev, | |||
1046 | 1040 | ||
1047 | static int isapnp_disable_resources(struct pnp_dev *dev) | 1041 | static int isapnp_disable_resources(struct pnp_dev *dev) |
1048 | { | 1042 | { |
1049 | if (!dev || !dev->active) | 1043 | if (!dev->active) |
1050 | return -EINVAL; | 1044 | return -EINVAL; |
1051 | isapnp_cfg_begin(dev->card->number, dev->number); | 1045 | isapnp_cfg_begin(dev->card->number, dev->number); |
1052 | isapnp_deactivate(dev->number); | 1046 | isapnp_deactivate(dev->number); |
@@ -1069,7 +1063,6 @@ static int __init isapnp_init(void) | |||
1069 | struct pnp_dev *dev; | 1063 | struct pnp_dev *dev; |
1070 | 1064 | ||
1071 | if (isapnp_disable) { | 1065 | if (isapnp_disable) { |
1072 | isapnp_detected = 0; | ||
1073 | printk(KERN_INFO "isapnp: ISA Plug & Play support disabled\n"); | 1066 | printk(KERN_INFO "isapnp: ISA Plug & Play support disabled\n"); |
1074 | return 0; | 1067 | return 0; |
1075 | } | 1068 | } |
@@ -1117,7 +1110,6 @@ static int __init isapnp_init(void) | |||
1117 | } | 1110 | } |
1118 | isapnp_set_rdp(); | 1111 | isapnp_set_rdp(); |
1119 | } | 1112 | } |
1120 | isapnp_detected = 1; | ||
1121 | if (isapnp_rdp < 0x203 || isapnp_rdp > 0x3ff) { | 1113 | if (isapnp_rdp < 0x203 || isapnp_rdp > 0x3ff) { |
1122 | cards = isapnp_isolate(); | 1114 | cards = isapnp_isolate(); |
1123 | if (cards < 0 || (isapnp_rdp < 0x203 || isapnp_rdp > 0x3ff)) { | 1115 | if (cards < 0 || (isapnp_rdp < 0x203 || isapnp_rdp > 0x3ff)) { |
@@ -1125,7 +1117,6 @@ static int __init isapnp_init(void) | |||
1125 | release_region(_PIDXR, 1); | 1117 | release_region(_PIDXR, 1); |
1126 | #endif | 1118 | #endif |
1127 | release_region(_PNPWRP, 1); | 1119 | release_region(_PNPWRP, 1); |
1128 | isapnp_detected = 0; | ||
1129 | printk(KERN_INFO | 1120 | printk(KERN_INFO |
1130 | "isapnp: No Plug & Play device found\n"); | 1121 | "isapnp: No Plug & Play device found\n"); |
1131 | return 0; | 1122 | return 0; |
@@ -1148,13 +1139,12 @@ static int __init isapnp_init(void) | |||
1148 | } | 1139 | } |
1149 | } | 1140 | } |
1150 | } | 1141 | } |
1151 | if (cards) { | 1142 | if (cards) |
1152 | printk(KERN_INFO | 1143 | printk(KERN_INFO |
1153 | "isapnp: %i Plug & Play card%s detected total\n", cards, | 1144 | "isapnp: %i Plug & Play card%s detected total\n", cards, |
1154 | cards > 1 ? "s" : ""); | 1145 | cards > 1 ? "s" : ""); |
1155 | } else { | 1146 | else |
1156 | printk(KERN_INFO "isapnp: No Plug & Play card found\n"); | 1147 | printk(KERN_INFO "isapnp: No Plug & Play card found\n"); |
1157 | } | ||
1158 | 1148 | ||
1159 | isapnp_proc_init(); | 1149 | isapnp_proc_init(); |
1160 | return 0; | 1150 | return 0; |
diff --git a/drivers/pnp/isapnp/proc.c b/drivers/pnp/isapnp/proc.c index 3fbc0f9ffc26..560ccb640816 100644 --- a/drivers/pnp/isapnp/proc.c +++ b/drivers/pnp/isapnp/proc.c | |||
@@ -112,33 +112,6 @@ static int isapnp_proc_attach_device(struct pnp_dev *dev) | |||
112 | return 0; | 112 | return 0; |
113 | } | 113 | } |
114 | 114 | ||
115 | #ifdef MODULE | ||
116 | static int __exit isapnp_proc_detach_device(struct pnp_dev *dev) | ||
117 | { | ||
118 | struct pnp_card *bus = dev->card; | ||
119 | struct proc_dir_entry *de; | ||
120 | char name[16]; | ||
121 | |||
122 | if (!(de = bus->procdir)) | ||
123 | return -EINVAL; | ||
124 | sprintf(name, "%02x", dev->number); | ||
125 | remove_proc_entry(name, de); | ||
126 | return 0; | ||
127 | } | ||
128 | |||
129 | static int __exit isapnp_proc_detach_bus(struct pnp_card *bus) | ||
130 | { | ||
131 | struct proc_dir_entry *de; | ||
132 | char name[16]; | ||
133 | |||
134 | if (!(de = bus->procdir)) | ||
135 | return -EINVAL; | ||
136 | sprintf(name, "%02x", bus->number); | ||
137 | remove_proc_entry(name, isapnp_proc_bus_dir); | ||
138 | return 0; | ||
139 | } | ||
140 | #endif /* MODULE */ | ||
141 | |||
142 | int __init isapnp_proc_init(void) | 115 | int __init isapnp_proc_init(void) |
143 | { | 116 | { |
144 | struct pnp_dev *dev; | 117 | struct pnp_dev *dev; |
@@ -149,21 +122,3 @@ int __init isapnp_proc_init(void) | |||
149 | } | 122 | } |
150 | return 0; | 123 | return 0; |
151 | } | 124 | } |
152 | |||
153 | #ifdef MODULE | ||
154 | int __exit isapnp_proc_done(void) | ||
155 | { | ||
156 | struct pnp_dev *dev; | ||
157 | struct pnp_bus *card; | ||
158 | |||
159 | isapnp_for_each_dev(dev) { | ||
160 | isapnp_proc_detach_device(dev); | ||
161 | } | ||
162 | isapnp_for_each_card(card) { | ||
163 | isapnp_proc_detach_bus(card); | ||
164 | } | ||
165 | if (isapnp_proc_bus_dir) | ||
166 | remove_proc_entry("isapnp", proc_bus); | ||
167 | return 0; | ||
168 | } | ||
169 | #endif /* MODULE */ | ||
diff --git a/drivers/pnp/manager.c b/drivers/pnp/manager.c index 3bda513a6bd3..0826287eef53 100644 --- a/drivers/pnp/manager.c +++ b/drivers/pnp/manager.c | |||
@@ -21,9 +21,6 @@ static int pnp_assign_port(struct pnp_dev *dev, struct pnp_port *rule, int idx) | |||
21 | resource_size_t *start, *end; | 21 | resource_size_t *start, *end; |
22 | unsigned long *flags; | 22 | unsigned long *flags; |
23 | 23 | ||
24 | if (!dev || !rule) | ||
25 | return -EINVAL; | ||
26 | |||
27 | if (idx >= PNP_MAX_PORT) { | 24 | if (idx >= PNP_MAX_PORT) { |
28 | pnp_err | 25 | pnp_err |
29 | ("More than 4 ports is incompatible with pnp specifications."); | 26 | ("More than 4 ports is incompatible with pnp specifications."); |
@@ -66,9 +63,6 @@ static int pnp_assign_mem(struct pnp_dev *dev, struct pnp_mem *rule, int idx) | |||
66 | resource_size_t *start, *end; | 63 | resource_size_t *start, *end; |
67 | unsigned long *flags; | 64 | unsigned long *flags; |
68 | 65 | ||
69 | if (!dev || !rule) | ||
70 | return -EINVAL; | ||
71 | |||
72 | if (idx >= PNP_MAX_MEM) { | 66 | if (idx >= PNP_MAX_MEM) { |
73 | pnp_err | 67 | pnp_err |
74 | ("More than 8 mems is incompatible with pnp specifications."); | 68 | ("More than 8 mems is incompatible with pnp specifications."); |
@@ -127,9 +121,6 @@ static int pnp_assign_irq(struct pnp_dev *dev, struct pnp_irq *rule, int idx) | |||
127 | 5, 10, 11, 12, 9, 14, 15, 7, 3, 4, 13, 0, 1, 6, 8, 2 | 121 | 5, 10, 11, 12, 9, 14, 15, 7, 3, 4, 13, 0, 1, 6, 8, 2 |
128 | }; | 122 | }; |
129 | 123 | ||
130 | if (!dev || !rule) | ||
131 | return -EINVAL; | ||
132 | |||
133 | if (idx >= PNP_MAX_IRQ) { | 124 | if (idx >= PNP_MAX_IRQ) { |
134 | pnp_err | 125 | pnp_err |
135 | ("More than 2 irqs is incompatible with pnp specifications."); | 126 | ("More than 2 irqs is incompatible with pnp specifications."); |
@@ -181,9 +172,6 @@ static int pnp_assign_dma(struct pnp_dev *dev, struct pnp_dma *rule, int idx) | |||
181 | 1, 3, 5, 6, 7, 0, 2, 4 | 172 | 1, 3, 5, 6, 7, 0, 2, 4 |
182 | }; | 173 | }; |
183 | 174 | ||
184 | if (!dev || !rule) | ||
185 | return -EINVAL; | ||
186 | |||
187 | if (idx >= PNP_MAX_DMA) { | 175 | if (idx >= PNP_MAX_DMA) { |
188 | pnp_err | 176 | pnp_err |
189 | ("More than 2 dmas is incompatible with pnp specifications."); | 177 | ("More than 2 dmas is incompatible with pnp specifications."); |
@@ -390,7 +378,7 @@ static int pnp_assign_resources(struct pnp_dev *dev, int depnum) | |||
390 | up(&pnp_res_mutex); | 378 | up(&pnp_res_mutex); |
391 | return 1; | 379 | return 1; |
392 | 380 | ||
393 | fail: | 381 | fail: |
394 | pnp_clean_resource_table(&dev->res); | 382 | pnp_clean_resource_table(&dev->res); |
395 | up(&pnp_res_mutex); | 383 | up(&pnp_res_mutex); |
396 | return 0; | 384 | return 0; |
@@ -410,8 +398,6 @@ int pnp_manual_config_dev(struct pnp_dev *dev, struct pnp_resource_table *res, | |||
410 | int i; | 398 | int i; |
411 | struct pnp_resource_table *bak; | 399 | struct pnp_resource_table *bak; |
412 | 400 | ||
413 | if (!dev || !res) | ||
414 | return -EINVAL; | ||
415 | if (!pnp_can_configure(dev)) | 401 | if (!pnp_can_configure(dev)) |
416 | return -ENODEV; | 402 | return -ENODEV; |
417 | bak = pnp_alloc(sizeof(struct pnp_resource_table)); | 403 | bak = pnp_alloc(sizeof(struct pnp_resource_table)); |
@@ -444,7 +430,7 @@ int pnp_manual_config_dev(struct pnp_dev *dev, struct pnp_resource_table *res, | |||
444 | kfree(bak); | 430 | kfree(bak); |
445 | return 0; | 431 | return 0; |
446 | 432 | ||
447 | fail: | 433 | fail: |
448 | dev->res = *bak; | 434 | dev->res = *bak; |
449 | up(&pnp_res_mutex); | 435 | up(&pnp_res_mutex); |
450 | kfree(bak); | 436 | kfree(bak); |
@@ -460,9 +446,6 @@ int pnp_auto_config_dev(struct pnp_dev *dev) | |||
460 | struct pnp_option *dep; | 446 | struct pnp_option *dep; |
461 | int i = 1; | 447 | int i = 1; |
462 | 448 | ||
463 | if (!dev) | ||
464 | return -EINVAL; | ||
465 | |||
466 | if (!pnp_can_configure(dev)) { | 449 | if (!pnp_can_configure(dev)) { |
467 | pnp_dbg("Device %s does not support resource configuration.", | 450 | pnp_dbg("Device %s does not support resource configuration.", |
468 | dev->dev.bus_id); | 451 | dev->dev.bus_id); |
@@ -541,8 +524,6 @@ int pnp_activate_dev(struct pnp_dev *dev) | |||
541 | { | 524 | { |
542 | int error; | 525 | int error; |
543 | 526 | ||
544 | if (!dev) | ||
545 | return -EINVAL; | ||
546 | if (dev->active) | 527 | if (dev->active) |
547 | return 0; /* the device is already active */ | 528 | return 0; /* the device is already active */ |
548 | 529 | ||
@@ -568,8 +549,6 @@ int pnp_disable_dev(struct pnp_dev *dev) | |||
568 | { | 549 | { |
569 | int error; | 550 | int error; |
570 | 551 | ||
571 | if (!dev) | ||
572 | return -EINVAL; | ||
573 | if (!dev->active) | 552 | if (!dev->active) |
574 | return 0; /* the device is already disabled */ | 553 | return 0; /* the device is already disabled */ |
575 | 554 | ||
@@ -596,8 +575,6 @@ int pnp_disable_dev(struct pnp_dev *dev) | |||
596 | void pnp_resource_change(struct resource *resource, resource_size_t start, | 575 | void pnp_resource_change(struct resource *resource, resource_size_t start, |
597 | resource_size_t size) | 576 | resource_size_t size) |
598 | { | 577 | { |
599 | if (resource == NULL) | ||
600 | return; | ||
601 | resource->flags &= ~(IORESOURCE_AUTO | IORESOURCE_UNSET); | 578 | resource->flags &= ~(IORESOURCE_AUTO | IORESOURCE_UNSET); |
602 | resource->start = start; | 579 | resource->start = start; |
603 | resource->end = start + size - 1; | 580 | resource->end = start + size - 1; |
diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c index 616fc72190bf..a5a372222d69 100644 --- a/drivers/pnp/pnpacpi/core.c +++ b/drivers/pnp/pnpacpi/core.c | |||
@@ -248,9 +248,9 @@ static int __init pnpacpi_add_device(struct acpi_device *device) | |||
248 | num++; | 248 | num++; |
249 | 249 | ||
250 | return AE_OK; | 250 | return AE_OK; |
251 | err1: | 251 | err1: |
252 | kfree(dev_id); | 252 | kfree(dev_id); |
253 | err: | 253 | err: |
254 | kfree(dev); | 254 | kfree(dev); |
255 | return -EINVAL; | 255 | return -EINVAL; |
256 | } | 256 | } |
diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c index ce5027feb3da..0e3b8d0ff06b 100644 --- a/drivers/pnp/pnpacpi/rsparser.c +++ b/drivers/pnp/pnpacpi/rsparser.c | |||
@@ -34,19 +34,17 @@ | |||
34 | */ | 34 | */ |
35 | static int irq_flags(int triggering, int polarity) | 35 | static int irq_flags(int triggering, int polarity) |
36 | { | 36 | { |
37 | int flag; | ||
38 | if (triggering == ACPI_LEVEL_SENSITIVE) { | 37 | if (triggering == ACPI_LEVEL_SENSITIVE) { |
39 | if (polarity == ACPI_ACTIVE_LOW) | 38 | if (polarity == ACPI_ACTIVE_LOW) |
40 | flag = IORESOURCE_IRQ_LOWLEVEL; | 39 | return IORESOURCE_IRQ_LOWLEVEL; |
41 | else | 40 | else |
42 | flag = IORESOURCE_IRQ_HIGHLEVEL; | 41 | return IORESOURCE_IRQ_HIGHLEVEL; |
43 | } else { | 42 | } else { |
44 | if (polarity == ACPI_ACTIVE_LOW) | 43 | if (polarity == ACPI_ACTIVE_LOW) |
45 | flag = IORESOURCE_IRQ_LOWEDGE; | 44 | return IORESOURCE_IRQ_LOWEDGE; |
46 | else | 45 | else |
47 | flag = IORESOURCE_IRQ_HIGHEDGE; | 46 | return IORESOURCE_IRQ_HIGHEDGE; |
48 | } | 47 | } |
49 | return flag; | ||
50 | } | 48 | } |
51 | 49 | ||
52 | static void decode_irq_flags(int flag, int *triggering, int *polarity) | 50 | static void decode_irq_flags(int flag, int *triggering, int *polarity) |
@@ -242,8 +240,7 @@ static void pnpacpi_parse_allocated_address_space(struct pnp_resource_table *res | |||
242 | static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res, | 240 | static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res, |
243 | void *data) | 241 | void *data) |
244 | { | 242 | { |
245 | struct pnp_resource_table *res_table = | 243 | struct pnp_resource_table *res_table = data; |
246 | (struct pnp_resource_table *)data; | ||
247 | int i; | 244 | int i; |
248 | 245 | ||
249 | switch (res->type) { | 246 | switch (res->type) { |
@@ -566,8 +563,7 @@ static acpi_status pnpacpi_option_resource(struct acpi_resource *res, | |||
566 | void *data) | 563 | void *data) |
567 | { | 564 | { |
568 | int priority = 0; | 565 | int priority = 0; |
569 | struct acpipnp_parse_option_s *parse_data = | 566 | struct acpipnp_parse_option_s *parse_data = data; |
570 | (struct acpipnp_parse_option_s *)data; | ||
571 | struct pnp_dev *dev = parse_data->dev; | 567 | struct pnp_dev *dev = parse_data->dev; |
572 | struct pnp_option *option = parse_data->option; | 568 | struct pnp_option *option = parse_data->option; |
573 | 569 | ||
@@ -705,7 +701,7 @@ static int pnpacpi_supported_resource(struct acpi_resource *res) | |||
705 | static acpi_status pnpacpi_count_resources(struct acpi_resource *res, | 701 | static acpi_status pnpacpi_count_resources(struct acpi_resource *res, |
706 | void *data) | 702 | void *data) |
707 | { | 703 | { |
708 | int *res_cnt = (int *)data; | 704 | int *res_cnt = data; |
709 | 705 | ||
710 | if (pnpacpi_supported_resource(res)) | 706 | if (pnpacpi_supported_resource(res)) |
711 | (*res_cnt)++; | 707 | (*res_cnt)++; |
@@ -714,7 +710,7 @@ static acpi_status pnpacpi_count_resources(struct acpi_resource *res, | |||
714 | 710 | ||
715 | static acpi_status pnpacpi_type_resources(struct acpi_resource *res, void *data) | 711 | static acpi_status pnpacpi_type_resources(struct acpi_resource *res, void *data) |
716 | { | 712 | { |
717 | struct acpi_resource **resource = (struct acpi_resource **)data; | 713 | struct acpi_resource **resource = data; |
718 | 714 | ||
719 | if (pnpacpi_supported_resource(res)) { | 715 | if (pnpacpi_supported_resource(res)) { |
720 | (*resource)->type = res->type; | 716 | (*resource)->type = res->type; |
@@ -886,8 +882,7 @@ int pnpacpi_encode_resources(struct pnp_resource_table *res_table, | |||
886 | int i = 0; | 882 | int i = 0; |
887 | /* pnpacpi_build_resource_template allocates extra mem */ | 883 | /* pnpacpi_build_resource_template allocates extra mem */ |
888 | int res_cnt = (buffer->length - 1) / sizeof(struct acpi_resource) - 1; | 884 | int res_cnt = (buffer->length - 1) / sizeof(struct acpi_resource) - 1; |
889 | struct acpi_resource *resource = | 885 | struct acpi_resource *resource = buffer->pointer; |
890 | (struct acpi_resource *)buffer->pointer; | ||
891 | int port = 0, irq = 0, dma = 0, mem = 0; | 886 | int port = 0, irq = 0, dma = 0, mem = 0; |
892 | 887 | ||
893 | pnp_dbg("res cnt %d", res_cnt); | 888 | pnp_dbg("res cnt %d", res_cnt); |
diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c index 3692a099b45f..0691f473e9d4 100644 --- a/drivers/pnp/pnpbios/core.c +++ b/drivers/pnp/pnpbios/core.c | |||
@@ -419,7 +419,6 @@ static void __init build_devlist(void) | |||
419 | static int pnpbios_disabled; | 419 | static int pnpbios_disabled; |
420 | int pnpbios_dont_use_current_config; | 420 | int pnpbios_dont_use_current_config; |
421 | 421 | ||
422 | #ifndef MODULE | ||
423 | static int __init pnpbios_setup(char *str) | 422 | static int __init pnpbios_setup(char *str) |
424 | { | 423 | { |
425 | int invert; | 424 | int invert; |
@@ -443,7 +442,6 @@ static int __init pnpbios_setup(char *str) | |||
443 | } | 442 | } |
444 | 443 | ||
445 | __setup("pnpbios=", pnpbios_setup); | 444 | __setup("pnpbios=", pnpbios_setup); |
446 | #endif | ||
447 | 445 | ||
448 | /* PnP BIOS signature: "$PnP" */ | 446 | /* PnP BIOS signature: "$PnP" */ |
449 | #define PNP_SIGNATURE (('$' << 0) + ('P' << 8) + ('n' << 16) + ('P' << 24)) | 447 | #define PNP_SIGNATURE (('$' << 0) + ('P' << 8) + ('n' << 16) + ('P' << 24)) |
@@ -591,6 +589,7 @@ subsys_initcall(pnpbios_init); | |||
591 | static int __init pnpbios_thread_init(void) | 589 | static int __init pnpbios_thread_init(void) |
592 | { | 590 | { |
593 | struct task_struct *task; | 591 | struct task_struct *task; |
592 | |||
594 | #if defined(CONFIG_PPC_MERGE) | 593 | #if defined(CONFIG_PPC_MERGE) |
595 | if (check_legacy_ioport(PNPBIOS_BASE)) | 594 | if (check_legacy_ioport(PNPBIOS_BASE)) |
596 | return 0; | 595 | return 0; |
@@ -606,48 +605,7 @@ static int __init pnpbios_thread_init(void) | |||
606 | return 0; | 605 | return 0; |
607 | } | 606 | } |
608 | 607 | ||
609 | #ifndef MODULE | ||
610 | |||
611 | /* init/main.c calls pnpbios_init early */ | ||
612 | |||
613 | /* Start the kernel thread later: */ | 608 | /* Start the kernel thread later: */ |
614 | module_init(pnpbios_thread_init); | 609 | module_init(pnpbios_thread_init); |
615 | 610 | ||
616 | #else | ||
617 | |||
618 | /* | ||
619 | * N.B.: Building pnpbios as a module hasn't been fully implemented | ||
620 | */ | ||
621 | |||
622 | MODULE_LICENSE("GPL"); | ||
623 | |||
624 | static int __init pnpbios_init_all(void) | ||
625 | { | ||
626 | int r; | ||
627 | |||
628 | r = pnpbios_init(); | ||
629 | if (r) | ||
630 | return r; | ||
631 | r = pnpbios_thread_init(); | ||
632 | if (r) | ||
633 | return r; | ||
634 | return 0; | ||
635 | } | ||
636 | |||
637 | static void __exit pnpbios_exit(void) | ||
638 | { | ||
639 | #ifdef CONFIG_HOTPLUG | ||
640 | unloading = 1; | ||
641 | wait_for_completion(&unload_sem); | ||
642 | #endif | ||
643 | pnpbios_proc_exit(); | ||
644 | /* We ought to free resources here */ | ||
645 | return; | ||
646 | } | ||
647 | |||
648 | module_init(pnpbios_init_all); | ||
649 | module_exit(pnpbios_exit); | ||
650 | |||
651 | #endif | ||
652 | |||
653 | EXPORT_SYMBOL(pnpbios_protocol); | 611 | EXPORT_SYMBOL(pnpbios_protocol); |
diff --git a/drivers/pnp/pnpbios/proc.c b/drivers/pnp/pnpbios/proc.c index 9c8c07701b65..9d9841f24a85 100644 --- a/drivers/pnp/pnpbios/proc.c +++ b/drivers/pnp/pnpbios/proc.c | |||
@@ -212,7 +212,7 @@ static int proc_write_node(struct file *file, const char __user * buf, | |||
212 | goto out; | 212 | goto out; |
213 | } | 213 | } |
214 | ret = count; | 214 | ret = count; |
215 | out: | 215 | out: |
216 | kfree(node); | 216 | kfree(node); |
217 | return ret; | 217 | return ret; |
218 | } | 218 | } |
diff --git a/drivers/pnp/pnpbios/rsparser.c b/drivers/pnp/pnpbios/rsparser.c index 04ecd7b67230..3fabf11b0027 100644 --- a/drivers/pnp/pnpbios/rsparser.c +++ b/drivers/pnp/pnpbios/rsparser.c | |||
@@ -238,7 +238,7 @@ static unsigned char *pnpbios_parse_allocated_resource_data(unsigned char *p, | |||
238 | break; | 238 | break; |
239 | 239 | ||
240 | default: /* an unkown tag */ | 240 | default: /* an unkown tag */ |
241 | len_err: | 241 | len_err: |
242 | printk(KERN_ERR | 242 | printk(KERN_ERR |
243 | "PnPBIOS: Unknown tag '0x%x', length '%d'.\n", | 243 | "PnPBIOS: Unknown tag '0x%x', length '%d'.\n", |
244 | tag, len); | 244 | tag, len); |
@@ -298,6 +298,7 @@ static void pnpbios_parse_fixed_mem32_option(unsigned char *p, int size, | |||
298 | struct pnp_option *option) | 298 | struct pnp_option *option) |
299 | { | 299 | { |
300 | struct pnp_mem *mem; | 300 | struct pnp_mem *mem; |
301 | |||
301 | mem = kzalloc(sizeof(struct pnp_mem), GFP_KERNEL); | 302 | mem = kzalloc(sizeof(struct pnp_mem), GFP_KERNEL); |
302 | if (!mem) | 303 | if (!mem) |
303 | return; | 304 | return; |
@@ -468,7 +469,7 @@ static unsigned char *pnpbios_parse_resource_option_data(unsigned char *p, | |||
468 | return p + 2; | 469 | return p + 2; |
469 | 470 | ||
470 | default: /* an unkown tag */ | 471 | default: /* an unkown tag */ |
471 | len_err: | 472 | len_err: |
472 | printk(KERN_ERR | 473 | printk(KERN_ERR |
473 | "PnPBIOS: Unknown tag '0x%x', length '%d'.\n", | 474 | "PnPBIOS: Unknown tag '0x%x', length '%d'.\n", |
474 | tag, len); | 475 | tag, len); |
@@ -562,7 +563,7 @@ static unsigned char *pnpbios_parse_compatible_ids(unsigned char *p, | |||
562 | break; | 563 | break; |
563 | 564 | ||
564 | default: /* an unkown tag */ | 565 | default: /* an unkown tag */ |
565 | len_err: | 566 | len_err: |
566 | printk(KERN_ERR | 567 | printk(KERN_ERR |
567 | "PnPBIOS: Unknown tag '0x%x', length '%d'.\n", | 568 | "PnPBIOS: Unknown tag '0x%x', length '%d'.\n", |
568 | tag, len); | 569 | tag, len); |
@@ -756,7 +757,7 @@ static unsigned char *pnpbios_encode_allocated_resource_data(unsigned char *p, | |||
756 | break; | 757 | break; |
757 | 758 | ||
758 | default: /* an unkown tag */ | 759 | default: /* an unkown tag */ |
759 | len_err: | 760 | len_err: |
760 | printk(KERN_ERR | 761 | printk(KERN_ERR |
761 | "PnPBIOS: Unknown tag '0x%x', length '%d'.\n", | 762 | "PnPBIOS: Unknown tag '0x%x', length '%d'.\n", |
762 | tag, len); | 763 | tag, len); |
diff --git a/drivers/pnp/resource.c b/drivers/pnp/resource.c index ea6ec14a0559..ef1286900db3 100644 --- a/drivers/pnp/resource.c +++ b/drivers/pnp/resource.c | |||
@@ -47,9 +47,6 @@ struct pnp_option *pnp_register_independent_option(struct pnp_dev *dev) | |||
47 | { | 47 | { |
48 | struct pnp_option *option; | 48 | struct pnp_option *option; |
49 | 49 | ||
50 | if (!dev) | ||
51 | return NULL; | ||
52 | |||
53 | option = pnp_build_option(PNP_RES_PRIORITY_PREFERRED); | 50 | option = pnp_build_option(PNP_RES_PRIORITY_PREFERRED); |
54 | 51 | ||
55 | /* this should never happen but if it does we'll try to continue */ | 52 | /* this should never happen but if it does we'll try to continue */ |
@@ -64,9 +61,6 @@ struct pnp_option *pnp_register_dependent_option(struct pnp_dev *dev, | |||
64 | { | 61 | { |
65 | struct pnp_option *option; | 62 | struct pnp_option *option; |
66 | 63 | ||
67 | if (!dev) | ||
68 | return NULL; | ||
69 | |||
70 | option = pnp_build_option(priority); | 64 | option = pnp_build_option(priority); |
71 | 65 | ||
72 | if (dev->dependent) { | 66 | if (dev->dependent) { |
@@ -83,11 +77,6 @@ int pnp_register_irq_resource(struct pnp_option *option, struct pnp_irq *data) | |||
83 | { | 77 | { |
84 | struct pnp_irq *ptr; | 78 | struct pnp_irq *ptr; |
85 | 79 | ||
86 | if (!option) | ||
87 | return -EINVAL; | ||
88 | if (!data) | ||
89 | return -EINVAL; | ||
90 | |||
91 | ptr = option->irq; | 80 | ptr = option->irq; |
92 | while (ptr && ptr->next) | 81 | while (ptr && ptr->next) |
93 | ptr = ptr->next; | 82 | ptr = ptr->next; |
@@ -112,11 +101,6 @@ int pnp_register_dma_resource(struct pnp_option *option, struct pnp_dma *data) | |||
112 | { | 101 | { |
113 | struct pnp_dma *ptr; | 102 | struct pnp_dma *ptr; |
114 | 103 | ||
115 | if (!option) | ||
116 | return -EINVAL; | ||
117 | if (!data) | ||
118 | return -EINVAL; | ||
119 | |||
120 | ptr = option->dma; | 104 | ptr = option->dma; |
121 | while (ptr && ptr->next) | 105 | while (ptr && ptr->next) |
122 | ptr = ptr->next; | 106 | ptr = ptr->next; |
@@ -132,11 +116,6 @@ int pnp_register_port_resource(struct pnp_option *option, struct pnp_port *data) | |||
132 | { | 116 | { |
133 | struct pnp_port *ptr; | 117 | struct pnp_port *ptr; |
134 | 118 | ||
135 | if (!option) | ||
136 | return -EINVAL; | ||
137 | if (!data) | ||
138 | return -EINVAL; | ||
139 | |||
140 | ptr = option->port; | 119 | ptr = option->port; |
141 | while (ptr && ptr->next) | 120 | while (ptr && ptr->next) |
142 | ptr = ptr->next; | 121 | ptr = ptr->next; |
@@ -152,11 +131,6 @@ int pnp_register_mem_resource(struct pnp_option *option, struct pnp_mem *data) | |||
152 | { | 131 | { |
153 | struct pnp_mem *ptr; | 132 | struct pnp_mem *ptr; |
154 | 133 | ||
155 | if (!option) | ||
156 | return -EINVAL; | ||
157 | if (!data) | ||
158 | return -EINVAL; | ||
159 | |||
160 | ptr = option->mem; | 134 | ptr = option->mem; |
161 | while (ptr && ptr->next) | 135 | while (ptr && ptr->next) |
162 | ptr = ptr->next; | 136 | ptr = ptr->next; |
diff --git a/drivers/rtc/rtc-m41t80.c b/drivers/rtc/rtc-m41t80.c index 80c4a8463065..1cb33cac1237 100644 --- a/drivers/rtc/rtc-m41t80.c +++ b/drivers/rtc/rtc-m41t80.c | |||
@@ -892,7 +892,7 @@ static int m41t80_remove(struct i2c_client *client) | |||
892 | 892 | ||
893 | static struct i2c_driver m41t80_driver = { | 893 | static struct i2c_driver m41t80_driver = { |
894 | .driver = { | 894 | .driver = { |
895 | .name = "m41t80", | 895 | .name = "rtc-m41t80", |
896 | }, | 896 | }, |
897 | .probe = m41t80_probe, | 897 | .probe = m41t80_probe, |
898 | .remove = m41t80_remove, | 898 | .remove = m41t80_remove, |
diff --git a/drivers/rtc/rtc-max6902.c b/drivers/rtc/rtc-max6902.c index d94170728075..3e183cfee10f 100644 --- a/drivers/rtc/rtc-max6902.c +++ b/drivers/rtc/rtc-max6902.c | |||
@@ -13,7 +13,7 @@ | |||
13 | * | 13 | * |
14 | * 24-May-2006: Raphael Assenat <raph@8d.com> | 14 | * 24-May-2006: Raphael Assenat <raph@8d.com> |
15 | * - Major rework | 15 | * - Major rework |
16 | * Converted to rtc_device and uses the SPI layer. | 16 | * Converted to rtc_device and uses the SPI layer. |
17 | * | 17 | * |
18 | * ??-???-2005: Someone at Compulab | 18 | * ??-???-2005: Someone at Compulab |
19 | * - Initial driver creation. | 19 | * - Initial driver creation. |
@@ -259,11 +259,11 @@ static int __devexit max6902_remove(struct spi_device *spi) | |||
259 | 259 | ||
260 | static struct spi_driver max6902_driver = { | 260 | static struct spi_driver max6902_driver = { |
261 | .driver = { | 261 | .driver = { |
262 | .name = "max6902", | 262 | .name = "rtc-max6902", |
263 | .bus = &spi_bus_type, | 263 | .bus = &spi_bus_type, |
264 | .owner = THIS_MODULE, | 264 | .owner = THIS_MODULE, |
265 | }, | 265 | }, |
266 | .probe = max6902_probe, | 266 | .probe = max6902_probe, |
267 | .remove = __devexit_p(max6902_remove), | 267 | .remove = __devexit_p(max6902_remove), |
268 | }; | 268 | }; |
269 | 269 | ||
diff --git a/drivers/rtc/rtc-rs5c348.c b/drivers/rtc/rtc-rs5c348.c index f50f3fc353cd..839462659afa 100644 --- a/drivers/rtc/rtc-rs5c348.c +++ b/drivers/rtc/rtc-rs5c348.c | |||
@@ -226,7 +226,7 @@ static int __devexit rs5c348_remove(struct spi_device *spi) | |||
226 | 226 | ||
227 | static struct spi_driver rs5c348_driver = { | 227 | static struct spi_driver rs5c348_driver = { |
228 | .driver = { | 228 | .driver = { |
229 | .name = "rs5c348", | 229 | .name = "rtc-rs5c348", |
230 | .bus = &spi_bus_type, | 230 | .bus = &spi_bus_type, |
231 | .owner = THIS_MODULE, | 231 | .owner = THIS_MODULE, |
232 | }, | 232 | }, |
diff --git a/drivers/s390/block/dasd_diag.c b/drivers/s390/block/dasd_diag.c index eccac1c3b71b..d32c60dbdd82 100644 --- a/drivers/s390/block/dasd_diag.c +++ b/drivers/s390/block/dasd_diag.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <asm/s390_ext.h> | 24 | #include <asm/s390_ext.h> |
25 | #include <asm/todclk.h> | 25 | #include <asm/todclk.h> |
26 | #include <asm/vtoc.h> | 26 | #include <asm/vtoc.h> |
27 | #include <asm/diag.h> | ||
27 | 28 | ||
28 | #include "dasd_int.h" | 29 | #include "dasd_int.h" |
29 | #include "dasd_diag.h" | 30 | #include "dasd_diag.h" |
diff --git a/drivers/s390/char/raw3270.c b/drivers/s390/char/raw3270.c index 4f2f81b16cfa..2edd5fb6d3dc 100644 --- a/drivers/s390/char/raw3270.c +++ b/drivers/s390/char/raw3270.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <asm/ccwdev.h> | 21 | #include <asm/ccwdev.h> |
22 | #include <asm/cio.h> | 22 | #include <asm/cio.h> |
23 | #include <asm/ebcdic.h> | 23 | #include <asm/ebcdic.h> |
24 | #include <asm/diag.h> | ||
24 | 25 | ||
25 | #include "raw3270.h" | 26 | #include "raw3270.h" |
26 | 27 | ||
diff --git a/drivers/s390/char/vmur.c b/drivers/s390/char/vmur.c index 04b19bdc09da..d70a6e65bf14 100644 --- a/drivers/s390/char/vmur.c +++ b/drivers/s390/char/vmur.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <asm/cio.h> | 14 | #include <asm/cio.h> |
15 | #include <asm/ccwdev.h> | 15 | #include <asm/ccwdev.h> |
16 | #include <asm/debug.h> | 16 | #include <asm/debug.h> |
17 | #include <asm/diag.h> | ||
17 | 18 | ||
18 | #include "vmur.h" | 19 | #include "vmur.h" |
19 | 20 | ||
@@ -68,8 +69,26 @@ static struct ccw_driver ur_driver = { | |||
68 | .set_offline = ur_set_offline, | 69 | .set_offline = ur_set_offline, |
69 | }; | 70 | }; |
70 | 71 | ||
72 | static DEFINE_MUTEX(vmur_mutex); | ||
73 | |||
71 | /* | 74 | /* |
72 | * Allocation, freeing, getting and putting of urdev structures | 75 | * Allocation, freeing, getting and putting of urdev structures |
76 | * | ||
77 | * Each ur device (urd) contains a reference to its corresponding ccw device | ||
78 | * (cdev) using the urd->cdev pointer. Each ccw device has a reference to the | ||
79 | * ur device using the cdev->dev.driver_data pointer. | ||
80 | * | ||
81 | * urd references: | ||
82 | * - ur_probe gets a urd reference, ur_remove drops the reference | ||
83 | * (cdev->dev.driver_data) | ||
84 | * - ur_open gets a urd reference, ur_relase drops the reference | ||
85 | * (urf->urd) | ||
86 | * | ||
87 | * cdev references: | ||
88 | * - urdev_alloc get a cdev reference (urd->cdev) | ||
89 | * - urdev_free drops the cdev reference (urd->cdev) | ||
90 | * | ||
91 | * Setting and clearing of cdev->dev.driver_data is protected by the ccwdev lock | ||
73 | */ | 92 | */ |
74 | static struct urdev *urdev_alloc(struct ccw_device *cdev) | 93 | static struct urdev *urdev_alloc(struct ccw_device *cdev) |
75 | { | 94 | { |
@@ -78,42 +97,61 @@ static struct urdev *urdev_alloc(struct ccw_device *cdev) | |||
78 | urd = kzalloc(sizeof(struct urdev), GFP_KERNEL); | 97 | urd = kzalloc(sizeof(struct urdev), GFP_KERNEL); |
79 | if (!urd) | 98 | if (!urd) |
80 | return NULL; | 99 | return NULL; |
81 | urd->cdev = cdev; | ||
82 | urd->reclen = cdev->id.driver_info; | 100 | urd->reclen = cdev->id.driver_info; |
83 | ccw_device_get_id(cdev, &urd->dev_id); | 101 | ccw_device_get_id(cdev, &urd->dev_id); |
84 | mutex_init(&urd->io_mutex); | 102 | mutex_init(&urd->io_mutex); |
85 | mutex_init(&urd->open_mutex); | 103 | mutex_init(&urd->open_mutex); |
104 | atomic_set(&urd->ref_count, 1); | ||
105 | urd->cdev = cdev; | ||
106 | get_device(&cdev->dev); | ||
86 | return urd; | 107 | return urd; |
87 | } | 108 | } |
88 | 109 | ||
89 | static void urdev_free(struct urdev *urd) | 110 | static void urdev_free(struct urdev *urd) |
90 | { | 111 | { |
112 | TRACE("urdev_free: %p\n", urd); | ||
113 | if (urd->cdev) | ||
114 | put_device(&urd->cdev->dev); | ||
91 | kfree(urd); | 115 | kfree(urd); |
92 | } | 116 | } |
93 | 117 | ||
94 | /* | 118 | static void urdev_get(struct urdev *urd) |
95 | * This is how the character device driver gets a reference to a | 119 | { |
96 | * ur device. When this call returns successfully, a reference has | 120 | atomic_inc(&urd->ref_count); |
97 | * been taken (by get_device) on the underlying kobject. The recipient | 121 | } |
98 | * of this urdev pointer must eventually drop it with urdev_put(urd) | 122 | |
99 | * which does the corresponding put_device(). | 123 | static struct urdev *urdev_get_from_cdev(struct ccw_device *cdev) |
100 | */ | 124 | { |
125 | struct urdev *urd; | ||
126 | unsigned long flags; | ||
127 | |||
128 | spin_lock_irqsave(get_ccwdev_lock(cdev), flags); | ||
129 | urd = cdev->dev.driver_data; | ||
130 | if (urd) | ||
131 | urdev_get(urd); | ||
132 | spin_unlock_irqrestore(get_ccwdev_lock(cdev), flags); | ||
133 | return urd; | ||
134 | } | ||
135 | |||
101 | static struct urdev *urdev_get_from_devno(u16 devno) | 136 | static struct urdev *urdev_get_from_devno(u16 devno) |
102 | { | 137 | { |
103 | char bus_id[16]; | 138 | char bus_id[16]; |
104 | struct ccw_device *cdev; | 139 | struct ccw_device *cdev; |
140 | struct urdev *urd; | ||
105 | 141 | ||
106 | sprintf(bus_id, "0.0.%04x", devno); | 142 | sprintf(bus_id, "0.0.%04x", devno); |
107 | cdev = get_ccwdev_by_busid(&ur_driver, bus_id); | 143 | cdev = get_ccwdev_by_busid(&ur_driver, bus_id); |
108 | if (!cdev) | 144 | if (!cdev) |
109 | return NULL; | 145 | return NULL; |
110 | 146 | urd = urdev_get_from_cdev(cdev); | |
111 | return cdev->dev.driver_data; | 147 | put_device(&cdev->dev); |
148 | return urd; | ||
112 | } | 149 | } |
113 | 150 | ||
114 | static void urdev_put(struct urdev *urd) | 151 | static void urdev_put(struct urdev *urd) |
115 | { | 152 | { |
116 | put_device(&urd->cdev->dev); | 153 | if (atomic_dec_and_test(&urd->ref_count)) |
154 | urdev_free(urd); | ||
117 | } | 155 | } |
118 | 156 | ||
119 | /* | 157 | /* |
@@ -245,6 +283,7 @@ static void ur_int_handler(struct ccw_device *cdev, unsigned long intparm, | |||
245 | return; | 283 | return; |
246 | } | 284 | } |
247 | urd = cdev->dev.driver_data; | 285 | urd = cdev->dev.driver_data; |
286 | BUG_ON(!urd); | ||
248 | /* On special conditions irb is an error pointer */ | 287 | /* On special conditions irb is an error pointer */ |
249 | if (IS_ERR(irb)) | 288 | if (IS_ERR(irb)) |
250 | urd->io_request_rc = PTR_ERR(irb); | 289 | urd->io_request_rc = PTR_ERR(irb); |
@@ -262,9 +301,15 @@ static void ur_int_handler(struct ccw_device *cdev, unsigned long intparm, | |||
262 | static ssize_t ur_attr_reclen_show(struct device *dev, | 301 | static ssize_t ur_attr_reclen_show(struct device *dev, |
263 | struct device_attribute *attr, char *buf) | 302 | struct device_attribute *attr, char *buf) |
264 | { | 303 | { |
265 | struct urdev *urd = dev->driver_data; | 304 | struct urdev *urd; |
305 | int rc; | ||
266 | 306 | ||
267 | return sprintf(buf, "%zu\n", urd->reclen); | 307 | urd = urdev_get_from_cdev(to_ccwdev(dev)); |
308 | if (!urd) | ||
309 | return -ENODEV; | ||
310 | rc = sprintf(buf, "%zu\n", urd->reclen); | ||
311 | urdev_put(urd); | ||
312 | return rc; | ||
268 | } | 313 | } |
269 | 314 | ||
270 | static DEVICE_ATTR(reclen, 0444, ur_attr_reclen_show, NULL); | 315 | static DEVICE_ATTR(reclen, 0444, ur_attr_reclen_show, NULL); |
@@ -379,31 +424,6 @@ static ssize_t ur_write(struct file *file, const char __user *udata, | |||
379 | return do_write(urf->urd, udata, count, urf->dev_reclen, ppos); | 424 | return do_write(urf->urd, udata, count, urf->dev_reclen, ppos); |
380 | } | 425 | } |
381 | 426 | ||
382 | static int do_diag_14(unsigned long rx, unsigned long ry1, | ||
383 | unsigned long subcode) | ||
384 | { | ||
385 | register unsigned long _ry1 asm("2") = ry1; | ||
386 | register unsigned long _ry2 asm("3") = subcode; | ||
387 | int rc = 0; | ||
388 | |||
389 | asm volatile( | ||
390 | #ifdef CONFIG_64BIT | ||
391 | " sam31\n" | ||
392 | " diag %2,2,0x14\n" | ||
393 | " sam64\n" | ||
394 | #else | ||
395 | " diag %2,2,0x14\n" | ||
396 | #endif | ||
397 | " ipm %0\n" | ||
398 | " srl %0,28\n" | ||
399 | : "=d" (rc), "+d" (_ry2) | ||
400 | : "d" (rx), "d" (_ry1) | ||
401 | : "cc"); | ||
402 | |||
403 | TRACE("diag 14: subcode=0x%lx, cc=%i\n", subcode, rc); | ||
404 | return rc; | ||
405 | } | ||
406 | |||
407 | /* | 427 | /* |
408 | * diagnose code 0x14 subcode 0x0028 - position spool file to designated | 428 | * diagnose code 0x14 subcode 0x0028 - position spool file to designated |
409 | * record | 429 | * record |
@@ -415,7 +435,7 @@ static int diag_position_to_record(int devno, int record) | |||
415 | { | 435 | { |
416 | int cc; | 436 | int cc; |
417 | 437 | ||
418 | cc = do_diag_14(record, devno, 0x28); | 438 | cc = diag14(record, devno, 0x28); |
419 | switch (cc) { | 439 | switch (cc) { |
420 | case 0: | 440 | case 0: |
421 | return 0; | 441 | return 0; |
@@ -440,7 +460,7 @@ static int diag_read_file(int devno, char *buf) | |||
440 | { | 460 | { |
441 | int cc; | 461 | int cc; |
442 | 462 | ||
443 | cc = do_diag_14((unsigned long) buf, devno, 0x00); | 463 | cc = diag14((unsigned long) buf, devno, 0x00); |
444 | switch (cc) { | 464 | switch (cc) { |
445 | case 0: | 465 | case 0: |
446 | return 0; | 466 | return 0; |
@@ -533,7 +553,7 @@ static int diag_read_next_file_info(struct file_control_block *buf, int spid) | |||
533 | { | 553 | { |
534 | int cc; | 554 | int cc; |
535 | 555 | ||
536 | cc = do_diag_14((unsigned long) buf, spid, 0xfff); | 556 | cc = diag14((unsigned long) buf, spid, 0xfff); |
537 | switch (cc) { | 557 | switch (cc) { |
538 | case 0: | 558 | case 0: |
539 | return 0; | 559 | return 0; |
@@ -750,64 +770,63 @@ static struct file_operations ur_fops = { | |||
750 | 770 | ||
751 | /* | 771 | /* |
752 | * ccw_device infrastructure: | 772 | * ccw_device infrastructure: |
753 | * ur_probe gets its own ref to the device (i.e. get_device), | 773 | * ur_probe creates the struct urdev (with refcount = 1), the device |
754 | * creates the struct urdev, the device attributes, sets up | 774 | * attributes, sets up the interrupt handler and validates the virtual |
755 | * the interrupt handler and validates the virtual unit record device. | 775 | * unit record device. |
756 | * ur_remove removes the device attributes, frees the struct urdev | 776 | * ur_remove removes the device attributes and drops the reference to |
757 | * and drops (put_device) the ref to the device we got in ur_probe. | 777 | * struct urdev. |
778 | * | ||
779 | * ur_probe, ur_remove, ur_set_online and ur_set_offline are serialized | ||
780 | * by the vmur_mutex lock. | ||
781 | * | ||
782 | * urd->char_device is used as indication that the online function has | ||
783 | * been completed successfully. | ||
758 | */ | 784 | */ |
759 | static int ur_probe(struct ccw_device *cdev) | 785 | static int ur_probe(struct ccw_device *cdev) |
760 | { | 786 | { |
761 | struct urdev *urd; | 787 | struct urdev *urd; |
762 | int rc; | 788 | int rc; |
763 | 789 | ||
764 | TRACE("ur_probe: cdev=%p state=%d\n", cdev, *(int *) cdev->private); | 790 | TRACE("ur_probe: cdev=%p\n", cdev); |
765 | |||
766 | if (!get_device(&cdev->dev)) | ||
767 | return -ENODEV; | ||
768 | 791 | ||
792 | mutex_lock(&vmur_mutex); | ||
769 | urd = urdev_alloc(cdev); | 793 | urd = urdev_alloc(cdev); |
770 | if (!urd) { | 794 | if (!urd) { |
771 | rc = -ENOMEM; | 795 | rc = -ENOMEM; |
772 | goto fail; | 796 | goto fail_unlock; |
773 | } | 797 | } |
798 | |||
774 | rc = ur_create_attributes(&cdev->dev); | 799 | rc = ur_create_attributes(&cdev->dev); |
775 | if (rc) { | 800 | if (rc) { |
776 | rc = -ENOMEM; | 801 | rc = -ENOMEM; |
777 | goto fail; | 802 | goto fail_urdev_put; |
778 | } | 803 | } |
779 | cdev->dev.driver_data = urd; | ||
780 | cdev->handler = ur_int_handler; | 804 | cdev->handler = ur_int_handler; |
781 | 805 | ||
782 | /* validate virtual unit record device */ | 806 | /* validate virtual unit record device */ |
783 | urd->class = get_urd_class(urd); | 807 | urd->class = get_urd_class(urd); |
784 | if (urd->class < 0) { | 808 | if (urd->class < 0) { |
785 | rc = urd->class; | 809 | rc = urd->class; |
786 | goto fail; | 810 | goto fail_remove_attr; |
787 | } | 811 | } |
788 | if ((urd->class != DEV_CLASS_UR_I) && (urd->class != DEV_CLASS_UR_O)) { | 812 | if ((urd->class != DEV_CLASS_UR_I) && (urd->class != DEV_CLASS_UR_O)) { |
789 | rc = -ENOTSUPP; | 813 | rc = -ENOTSUPP; |
790 | goto fail; | 814 | goto fail_remove_attr; |
791 | } | 815 | } |
816 | spin_lock_irq(get_ccwdev_lock(cdev)); | ||
817 | cdev->dev.driver_data = urd; | ||
818 | spin_unlock_irq(get_ccwdev_lock(cdev)); | ||
792 | 819 | ||
820 | mutex_unlock(&vmur_mutex); | ||
793 | return 0; | 821 | return 0; |
794 | 822 | ||
795 | fail: | 823 | fail_remove_attr: |
796 | urdev_free(urd); | ||
797 | put_device(&cdev->dev); | ||
798 | return rc; | ||
799 | } | ||
800 | |||
801 | static void ur_remove(struct ccw_device *cdev) | ||
802 | { | ||
803 | struct urdev *urd = cdev->dev.driver_data; | ||
804 | |||
805 | TRACE("ur_remove\n"); | ||
806 | if (cdev->online) | ||
807 | ur_set_offline(cdev); | ||
808 | ur_remove_attributes(&cdev->dev); | 824 | ur_remove_attributes(&cdev->dev); |
809 | urdev_free(urd); | 825 | fail_urdev_put: |
810 | put_device(&cdev->dev); | 826 | urdev_put(urd); |
827 | fail_unlock: | ||
828 | mutex_unlock(&vmur_mutex); | ||
829 | return rc; | ||
811 | } | 830 | } |
812 | 831 | ||
813 | static int ur_set_online(struct ccw_device *cdev) | 832 | static int ur_set_online(struct ccw_device *cdev) |
@@ -816,20 +835,29 @@ static int ur_set_online(struct ccw_device *cdev) | |||
816 | int minor, major, rc; | 835 | int minor, major, rc; |
817 | char node_id[16]; | 836 | char node_id[16]; |
818 | 837 | ||
819 | TRACE("ur_set_online: cdev=%p state=%d\n", cdev, | 838 | TRACE("ur_set_online: cdev=%p\n", cdev); |
820 | *(int *) cdev->private); | ||
821 | 839 | ||
822 | if (!try_module_get(ur_driver.owner)) | 840 | mutex_lock(&vmur_mutex); |
823 | return -EINVAL; | 841 | urd = urdev_get_from_cdev(cdev); |
842 | if (!urd) { | ||
843 | /* ur_remove already deleted our urd */ | ||
844 | rc = -ENODEV; | ||
845 | goto fail_unlock; | ||
846 | } | ||
847 | |||
848 | if (urd->char_device) { | ||
849 | /* Another ur_set_online was faster */ | ||
850 | rc = -EBUSY; | ||
851 | goto fail_urdev_put; | ||
852 | } | ||
824 | 853 | ||
825 | urd = (struct urdev *) cdev->dev.driver_data; | ||
826 | minor = urd->dev_id.devno; | 854 | minor = urd->dev_id.devno; |
827 | major = MAJOR(ur_first_dev_maj_min); | 855 | major = MAJOR(ur_first_dev_maj_min); |
828 | 856 | ||
829 | urd->char_device = cdev_alloc(); | 857 | urd->char_device = cdev_alloc(); |
830 | if (!urd->char_device) { | 858 | if (!urd->char_device) { |
831 | rc = -ENOMEM; | 859 | rc = -ENOMEM; |
832 | goto fail_module_put; | 860 | goto fail_urdev_put; |
833 | } | 861 | } |
834 | 862 | ||
835 | cdev_init(urd->char_device, &ur_fops); | 863 | cdev_init(urd->char_device, &ur_fops); |
@@ -858,29 +886,79 @@ static int ur_set_online(struct ccw_device *cdev) | |||
858 | TRACE("ur_set_online: device_create rc=%d\n", rc); | 886 | TRACE("ur_set_online: device_create rc=%d\n", rc); |
859 | goto fail_free_cdev; | 887 | goto fail_free_cdev; |
860 | } | 888 | } |
861 | 889 | urdev_put(urd); | |
890 | mutex_unlock(&vmur_mutex); | ||
862 | return 0; | 891 | return 0; |
863 | 892 | ||
864 | fail_free_cdev: | 893 | fail_free_cdev: |
865 | cdev_del(urd->char_device); | 894 | cdev_del(urd->char_device); |
866 | fail_module_put: | 895 | urd->char_device = NULL; |
867 | module_put(ur_driver.owner); | 896 | fail_urdev_put: |
868 | 897 | urdev_put(urd); | |
898 | fail_unlock: | ||
899 | mutex_unlock(&vmur_mutex); | ||
869 | return rc; | 900 | return rc; |
870 | } | 901 | } |
871 | 902 | ||
872 | static int ur_set_offline(struct ccw_device *cdev) | 903 | static int ur_set_offline_force(struct ccw_device *cdev, int force) |
873 | { | 904 | { |
874 | struct urdev *urd; | 905 | struct urdev *urd; |
906 | int rc; | ||
875 | 907 | ||
876 | TRACE("ur_set_offline: cdev=%p cdev->private=%p state=%d\n", | 908 | TRACE("ur_set_offline: cdev=%p\n", cdev); |
877 | cdev, cdev->private, *(int *) cdev->private); | 909 | urd = urdev_get_from_cdev(cdev); |
878 | urd = (struct urdev *) cdev->dev.driver_data; | 910 | if (!urd) |
911 | /* ur_remove already deleted our urd */ | ||
912 | return -ENODEV; | ||
913 | if (!urd->char_device) { | ||
914 | /* Another ur_set_offline was faster */ | ||
915 | rc = -EBUSY; | ||
916 | goto fail_urdev_put; | ||
917 | } | ||
918 | if (!force && (atomic_read(&urd->ref_count) > 2)) { | ||
919 | /* There is still a user of urd (e.g. ur_open) */ | ||
920 | TRACE("ur_set_offline: BUSY\n"); | ||
921 | rc = -EBUSY; | ||
922 | goto fail_urdev_put; | ||
923 | } | ||
879 | device_destroy(vmur_class, urd->char_device->dev); | 924 | device_destroy(vmur_class, urd->char_device->dev); |
880 | cdev_del(urd->char_device); | 925 | cdev_del(urd->char_device); |
881 | module_put(ur_driver.owner); | 926 | urd->char_device = NULL; |
927 | rc = 0; | ||
882 | 928 | ||
883 | return 0; | 929 | fail_urdev_put: |
930 | urdev_put(urd); | ||
931 | return rc; | ||
932 | } | ||
933 | |||
934 | static int ur_set_offline(struct ccw_device *cdev) | ||
935 | { | ||
936 | int rc; | ||
937 | |||
938 | mutex_lock(&vmur_mutex); | ||
939 | rc = ur_set_offline_force(cdev, 0); | ||
940 | mutex_unlock(&vmur_mutex); | ||
941 | return rc; | ||
942 | } | ||
943 | |||
944 | static void ur_remove(struct ccw_device *cdev) | ||
945 | { | ||
946 | unsigned long flags; | ||
947 | |||
948 | TRACE("ur_remove\n"); | ||
949 | |||
950 | mutex_lock(&vmur_mutex); | ||
951 | |||
952 | if (cdev->online) | ||
953 | ur_set_offline_force(cdev, 1); | ||
954 | ur_remove_attributes(&cdev->dev); | ||
955 | |||
956 | spin_lock_irqsave(get_ccwdev_lock(cdev), flags); | ||
957 | urdev_put(cdev->dev.driver_data); | ||
958 | cdev->dev.driver_data = NULL; | ||
959 | spin_unlock_irqrestore(get_ccwdev_lock(cdev), flags); | ||
960 | |||
961 | mutex_unlock(&vmur_mutex); | ||
884 | } | 962 | } |
885 | 963 | ||
886 | /* | 964 | /* |
diff --git a/drivers/s390/char/vmur.h b/drivers/s390/char/vmur.h index 2b3c564e0472..fa959644735a 100644 --- a/drivers/s390/char/vmur.h +++ b/drivers/s390/char/vmur.h | |||
@@ -70,6 +70,7 @@ struct urdev { | |||
70 | size_t reclen; /* Record length for *write* CCWs */ | 70 | size_t reclen; /* Record length for *write* CCWs */ |
71 | int class; /* VM device class */ | 71 | int class; /* VM device class */ |
72 | int io_request_rc; /* return code from I/O request */ | 72 | int io_request_rc; /* return code from I/O request */ |
73 | atomic_t ref_count; /* reference counter */ | ||
73 | }; | 74 | }; |
74 | 75 | ||
75 | /* | 76 | /* |
diff --git a/drivers/s390/cio/cmf.c b/drivers/s390/cio/cmf.c index 02fd00b55e1b..34a796913b06 100644 --- a/drivers/s390/cio/cmf.c +++ b/drivers/s390/cio/cmf.c | |||
@@ -594,6 +594,9 @@ alloc_cmb (struct ccw_device *cdev) | |||
594 | free_pages((unsigned long)mem, get_order(size)); | 594 | free_pages((unsigned long)mem, get_order(size)); |
595 | } else if (!mem) { | 595 | } else if (!mem) { |
596 | /* no luck */ | 596 | /* no luck */ |
597 | printk(KERN_WARNING "cio: failed to allocate area " | ||
598 | "for measuring %d subchannels\n", | ||
599 | cmb_area.num_channels); | ||
597 | ret = -ENOMEM; | 600 | ret = -ENOMEM; |
598 | goto out; | 601 | goto out; |
599 | } else { | 602 | } else { |
@@ -1279,13 +1282,6 @@ init_cmf(void) | |||
1279 | case CMF_BASIC: | 1282 | case CMF_BASIC: |
1280 | format_string = "basic"; | 1283 | format_string = "basic"; |
1281 | cmbops = &cmbops_basic; | 1284 | cmbops = &cmbops_basic; |
1282 | if (cmb_area.num_channels > 4096 || cmb_area.num_channels < 1) { | ||
1283 | printk(KERN_ERR "cio: Basic channel measurement " | ||
1284 | "facility can only use 1 to 4096 devices\n" | ||
1285 | KERN_ERR "when the cmf driver is built" | ||
1286 | " as a loadable module\n"); | ||
1287 | return 1; | ||
1288 | } | ||
1289 | break; | 1285 | break; |
1290 | case CMF_EXTENDED: | 1286 | case CMF_EXTENDED: |
1291 | format_string = "extended"; | 1287 | format_string = "extended"; |
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c index 297659fa0e26..e44d92eac8e9 100644 --- a/drivers/s390/cio/device.c +++ b/drivers/s390/cio/device.c | |||
@@ -117,7 +117,10 @@ static int ccw_uevent(struct device *dev, char **envp, int num_envp, | |||
117 | snprint_alias(modalias_buf, sizeof(modalias_buf), id, ""); | 117 | snprint_alias(modalias_buf, sizeof(modalias_buf), id, ""); |
118 | ret = add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &len, | 118 | ret = add_uevent_var(envp, num_envp, &i, buffer, buffer_size, &len, |
119 | "MODALIAS=%s", modalias_buf); | 119 | "MODALIAS=%s", modalias_buf); |
120 | return ret; | 120 | if (ret) |
121 | return ret; | ||
122 | envp[i] = NULL; | ||
123 | return 0; | ||
121 | } | 124 | } |
122 | 125 | ||
123 | struct bus_type ccw_bus_type; | 126 | struct bus_type ccw_bus_type; |
diff --git a/drivers/s390/cio/device_id.c b/drivers/s390/cio/device_id.c index 60b9347f7c92..f232832f2b22 100644 --- a/drivers/s390/cio/device_id.c +++ b/drivers/s390/cio/device_id.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <asm/delay.h> | 17 | #include <asm/delay.h> |
18 | #include <asm/cio.h> | 18 | #include <asm/cio.h> |
19 | #include <asm/lowcore.h> | 19 | #include <asm/lowcore.h> |
20 | #include <asm/diag.h> | ||
20 | 21 | ||
21 | #include "cio.h" | 22 | #include "cio.h" |
22 | #include "cio_debug.h" | 23 | #include "cio_debug.h" |
@@ -25,51 +26,6 @@ | |||
25 | #include "ioasm.h" | 26 | #include "ioasm.h" |
26 | 27 | ||
27 | /* | 28 | /* |
28 | * diag210 is used under VM to get information about a virtual device | ||
29 | */ | ||
30 | int | ||
31 | diag210(struct diag210 * addr) | ||
32 | { | ||
33 | /* | ||
34 | * diag 210 needs its data below the 2GB border, so we | ||
35 | * use a static data area to be sure | ||
36 | */ | ||
37 | static struct diag210 diag210_tmp; | ||
38 | static DEFINE_SPINLOCK(diag210_lock); | ||
39 | unsigned long flags; | ||
40 | int ccode; | ||
41 | |||
42 | spin_lock_irqsave(&diag210_lock, flags); | ||
43 | diag210_tmp = *addr; | ||
44 | |||
45 | #ifdef CONFIG_64BIT | ||
46 | asm volatile( | ||
47 | " lhi %0,-1\n" | ||
48 | " sam31\n" | ||
49 | " diag %1,0,0x210\n" | ||
50 | "0: ipm %0\n" | ||
51 | " srl %0,28\n" | ||
52 | "1: sam64\n" | ||
53 | EX_TABLE(0b,1b) | ||
54 | : "=&d" (ccode) : "a" (&diag210_tmp) : "cc", "memory"); | ||
55 | #else | ||
56 | asm volatile( | ||
57 | " lhi %0,-1\n" | ||
58 | " diag %1,0,0x210\n" | ||
59 | "0: ipm %0\n" | ||
60 | " srl %0,28\n" | ||
61 | "1:\n" | ||
62 | EX_TABLE(0b,1b) | ||
63 | : "=&d" (ccode) : "a" (&diag210_tmp) : "cc", "memory"); | ||
64 | #endif | ||
65 | |||
66 | *addr = diag210_tmp; | ||
67 | spin_unlock_irqrestore(&diag210_lock, flags); | ||
68 | |||
69 | return ccode; | ||
70 | } | ||
71 | |||
72 | /* | ||
73 | * Input : | 29 | * Input : |
74 | * devno - device number | 30 | * devno - device number |
75 | * ps - pointer to sense ID data area | 31 | * ps - pointer to sense ID data area |
@@ -349,5 +305,3 @@ ccw_device_sense_id_irq(struct ccw_device *cdev, enum dev_event dev_event) | |||
349 | break; | 305 | break; |
350 | } | 306 | } |
351 | } | 307 | } |
352 | |||
353 | EXPORT_SYMBOL(diag210); | ||
diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c index 03347aed2b3e..d8d479876ec7 100644 --- a/drivers/s390/cio/qdio.c +++ b/drivers/s390/cio/qdio.c | |||
@@ -195,6 +195,8 @@ qdio_do_eqbs(struct qdio_q *q, unsigned char *state, | |||
195 | again: | 195 | again: |
196 | ccq = do_eqbs(irq->sch_token, state, q_no, start, cnt); | 196 | ccq = do_eqbs(irq->sch_token, state, q_no, start, cnt); |
197 | rc = qdio_check_ccq(q, ccq); | 197 | rc = qdio_check_ccq(q, ccq); |
198 | if ((ccq == 96) && (tmp_cnt != *cnt)) | ||
199 | rc = 0; | ||
198 | if (rc == 1) { | 200 | if (rc == 1) { |
199 | QDIO_DBF_TEXT5(1,trace,"eqAGAIN"); | 201 | QDIO_DBF_TEXT5(1,trace,"eqAGAIN"); |
200 | goto again; | 202 | goto again; |
@@ -740,7 +742,8 @@ qdio_get_outbound_buffer_frontier(struct qdio_q *q) | |||
740 | first_not_to_check=f+qdio_min(atomic_read(&q->number_of_buffers_used), | 742 | first_not_to_check=f+qdio_min(atomic_read(&q->number_of_buffers_used), |
741 | (QDIO_MAX_BUFFERS_PER_Q-1)); | 743 | (QDIO_MAX_BUFFERS_PER_Q-1)); |
742 | 744 | ||
743 | if ((!q->is_iqdio_q)&&(!q->hydra_gives_outbound_pcis)) | 745 | if (((!q->is_iqdio_q) && (!q->hydra_gives_outbound_pcis)) || |
746 | (q->queue_type == QDIO_IQDIO_QFMT_ASYNCH)) | ||
744 | SYNC_MEMORY; | 747 | SYNC_MEMORY; |
745 | 748 | ||
746 | check_next: | 749 | check_next: |
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index d2b3898b750a..6f2c71ef47ee 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig | |||
@@ -367,6 +367,7 @@ config SCSI_3W_9XXX | |||
367 | config SCSI_7000FASST | 367 | config SCSI_7000FASST |
368 | tristate "7000FASST SCSI support" | 368 | tristate "7000FASST SCSI support" |
369 | depends on ISA && SCSI && ISA_DMA_API | 369 | depends on ISA && SCSI && ISA_DMA_API |
370 | select CHECK_SIGNATURE | ||
370 | help | 371 | help |
371 | This driver supports the Western Digital 7000 SCSI host adapter | 372 | This driver supports the Western Digital 7000 SCSI host adapter |
372 | family. Some information is in the source: | 373 | family. Some information is in the source: |
@@ -388,6 +389,7 @@ config SCSI_AHA152X | |||
388 | tristate "Adaptec AHA152X/2825 support" | 389 | tristate "Adaptec AHA152X/2825 support" |
389 | depends on ISA && SCSI && !64BIT | 390 | depends on ISA && SCSI && !64BIT |
390 | select SCSI_SPI_ATTRS | 391 | select SCSI_SPI_ATTRS |
392 | select CHECK_SIGNATURE | ||
391 | ---help--- | 393 | ---help--- |
392 | This is a driver for the AHA-1510, AHA-1520, AHA-1522, and AHA-2825 | 394 | This is a driver for the AHA-1510, AHA-1520, AHA-1522, and AHA-2825 |
393 | SCSI host adapters. It also works for the AVA-1505, but the IRQ etc. | 395 | SCSI host adapters. It also works for the AVA-1505, but the IRQ etc. |
@@ -583,6 +585,7 @@ config SCSI_DTC3280 | |||
583 | tristate "DTC3180/3280 SCSI support" | 585 | tristate "DTC3180/3280 SCSI support" |
584 | depends on ISA && SCSI | 586 | depends on ISA && SCSI |
585 | select SCSI_SPI_ATTRS | 587 | select SCSI_SPI_ATTRS |
588 | select CHECK_SIGNATURE | ||
586 | help | 589 | help |
587 | This is support for DTC 3180/3280 SCSI Host Adapters. Please read | 590 | This is support for DTC 3180/3280 SCSI Host Adapters. Please read |
588 | the SCSI-HOWTO, available from | 591 | the SCSI-HOWTO, available from |
@@ -657,6 +660,7 @@ config SCSI_EATA_PIO | |||
657 | config SCSI_FUTURE_DOMAIN | 660 | config SCSI_FUTURE_DOMAIN |
658 | tristate "Future Domain 16xx SCSI/AHA-2920A support" | 661 | tristate "Future Domain 16xx SCSI/AHA-2920A support" |
659 | depends on (ISA || PCI) && SCSI | 662 | depends on (ISA || PCI) && SCSI |
663 | select CHECK_SIGNATURE | ||
660 | ---help--- | 664 | ---help--- |
661 | This is support for Future Domain's 16-bit SCSI host adapters | 665 | This is support for Future Domain's 16-bit SCSI host adapters |
662 | (TMC-1660/1680, TMC-1650/1670, TMC-3260, TMC-1610M/MER/MEX) and | 666 | (TMC-1660/1680, TMC-1650/1670, TMC-3260, TMC-1610M/MER/MEX) and |
@@ -1324,6 +1328,7 @@ config SCSI_LPFC | |||
1324 | config SCSI_SEAGATE | 1328 | config SCSI_SEAGATE |
1325 | tristate "Seagate ST-02 and Future Domain TMC-8xx SCSI support" | 1329 | tristate "Seagate ST-02 and Future Domain TMC-8xx SCSI support" |
1326 | depends on X86 && ISA && SCSI | 1330 | depends on X86 && ISA && SCSI |
1331 | select CHECK_SIGNATURE | ||
1327 | ---help--- | 1332 | ---help--- |
1328 | These are 8-bit SCSI controllers; the ST-01 is also supported by | 1333 | These are 8-bit SCSI controllers; the ST-01 is also supported by |
1329 | this driver. It is explained in section 3.9 of the SCSI-HOWTO, | 1334 | this driver. It is explained in section 3.9 of the SCSI-HOWTO, |
@@ -1397,6 +1402,7 @@ config SCSI_T128 | |||
1397 | tristate "Trantor T128/T128F/T228 SCSI support" | 1402 | tristate "Trantor T128/T128F/T228 SCSI support" |
1398 | depends on ISA && SCSI | 1403 | depends on ISA && SCSI |
1399 | select SCSI_SPI_ATTRS | 1404 | select SCSI_SPI_ATTRS |
1405 | select CHECK_SIGNATURE | ||
1400 | ---help--- | 1406 | ---help--- |
1401 | This is support for a SCSI host adapter. It is explained in section | 1407 | This is support for a SCSI host adapter. It is explained in section |
1402 | 3.11 of the SCSI-HOWTO, available from | 1408 | 3.11 of the SCSI-HOWTO, available from |
@@ -1561,7 +1567,7 @@ config A3000_SCSI | |||
1561 | built-in SCSI controller, say Y. Otherwise, say N. | 1567 | built-in SCSI controller, say Y. Otherwise, say N. |
1562 | 1568 | ||
1563 | To compile this driver as a module, choose M here: the | 1569 | To compile this driver as a module, choose M here: the |
1564 | module will be called wd33c93. | 1570 | module will be called a3000. |
1565 | 1571 | ||
1566 | config A2091_SCSI | 1572 | config A2091_SCSI |
1567 | tristate "A2091/A590 WD33C93A support" | 1573 | tristate "A2091/A590 WD33C93A support" |
@@ -1571,7 +1577,7 @@ config A2091_SCSI | |||
1571 | say N. | 1577 | say N. |
1572 | 1578 | ||
1573 | To compile this driver as a module, choose M here: the | 1579 | To compile this driver as a module, choose M here: the |
1574 | module will be called wd33c93. | 1580 | module will be called a2091. |
1575 | 1581 | ||
1576 | config GVP11_SCSI | 1582 | config GVP11_SCSI |
1577 | tristate "GVP Series II WD33C93A support" | 1583 | tristate "GVP Series II WD33C93A support" |
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index 301313002f6b..f94109cbb46e 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -129,7 +129,16 @@ struct uart_8250_port { | |||
129 | unsigned char mcr; | 129 | unsigned char mcr; |
130 | unsigned char mcr_mask; /* mask of user bits */ | 130 | unsigned char mcr_mask; /* mask of user bits */ |
131 | unsigned char mcr_force; /* mask of forced bits */ | 131 | unsigned char mcr_force; /* mask of forced bits */ |
132 | unsigned char lsr_break_flag; | 132 | |
133 | /* | ||
134 | * Some bits in registers are cleared on a read, so they must | ||
135 | * be saved whenever the register is read but the bits will not | ||
136 | * be immediately processed. | ||
137 | */ | ||
138 | #define LSR_SAVE_FLAGS UART_LSR_BRK_ERROR_BITS | ||
139 | unsigned char lsr_saved_flags; | ||
140 | #define MSR_SAVE_FLAGS UART_MSR_ANY_DELTA | ||
141 | unsigned char msr_saved_flags; | ||
133 | 142 | ||
134 | /* | 143 | /* |
135 | * We provide a per-port pm hook. | 144 | * We provide a per-port pm hook. |
@@ -1238,6 +1247,7 @@ static void serial8250_start_tx(struct uart_port *port) | |||
1238 | if (up->bugs & UART_BUG_TXEN) { | 1247 | if (up->bugs & UART_BUG_TXEN) { |
1239 | unsigned char lsr, iir; | 1248 | unsigned char lsr, iir; |
1240 | lsr = serial_in(up, UART_LSR); | 1249 | lsr = serial_in(up, UART_LSR); |
1250 | up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; | ||
1241 | iir = serial_in(up, UART_IIR) & 0x0f; | 1251 | iir = serial_in(up, UART_IIR) & 0x0f; |
1242 | if ((up->port.type == PORT_RM9000) ? | 1252 | if ((up->port.type == PORT_RM9000) ? |
1243 | (lsr & UART_LSR_THRE && | 1253 | (lsr & UART_LSR_THRE && |
@@ -1290,18 +1300,10 @@ receive_chars(struct uart_8250_port *up, unsigned int *status) | |||
1290 | flag = TTY_NORMAL; | 1300 | flag = TTY_NORMAL; |
1291 | up->port.icount.rx++; | 1301 | up->port.icount.rx++; |
1292 | 1302 | ||
1293 | #ifdef CONFIG_SERIAL_8250_CONSOLE | 1303 | lsr |= up->lsr_saved_flags; |
1294 | /* | 1304 | up->lsr_saved_flags = 0; |
1295 | * Recover the break flag from console xmit | ||
1296 | */ | ||
1297 | if (up->port.line == up->port.cons->index) { | ||
1298 | lsr |= up->lsr_break_flag; | ||
1299 | up->lsr_break_flag = 0; | ||
1300 | } | ||
1301 | #endif | ||
1302 | 1305 | ||
1303 | if (unlikely(lsr & (UART_LSR_BI | UART_LSR_PE | | 1306 | if (unlikely(lsr & UART_LSR_BRK_ERROR_BITS)) { |
1304 | UART_LSR_FE | UART_LSR_OE))) { | ||
1305 | /* | 1307 | /* |
1306 | * For statistics only | 1308 | * For statistics only |
1307 | */ | 1309 | */ |
@@ -1392,6 +1394,8 @@ static unsigned int check_modem_status(struct uart_8250_port *up) | |||
1392 | { | 1394 | { |
1393 | unsigned int status = serial_in(up, UART_MSR); | 1395 | unsigned int status = serial_in(up, UART_MSR); |
1394 | 1396 | ||
1397 | status |= up->msr_saved_flags; | ||
1398 | up->msr_saved_flags = 0; | ||
1395 | if (status & UART_MSR_ANY_DELTA && up->ier & UART_IER_MSI && | 1399 | if (status & UART_MSR_ANY_DELTA && up->ier & UART_IER_MSI && |
1396 | up->port.info != NULL) { | 1400 | up->port.info != NULL) { |
1397 | if (status & UART_MSR_TERI) | 1401 | if (status & UART_MSR_TERI) |
@@ -1591,7 +1595,8 @@ static void serial8250_timeout(unsigned long data) | |||
1591 | static void serial8250_backup_timeout(unsigned long data) | 1595 | static void serial8250_backup_timeout(unsigned long data) |
1592 | { | 1596 | { |
1593 | struct uart_8250_port *up = (struct uart_8250_port *)data; | 1597 | struct uart_8250_port *up = (struct uart_8250_port *)data; |
1594 | unsigned int iir, ier = 0; | 1598 | unsigned int iir, ier = 0, lsr; |
1599 | unsigned long flags; | ||
1595 | 1600 | ||
1596 | /* | 1601 | /* |
1597 | * Must disable interrupts or else we risk racing with the interrupt | 1602 | * Must disable interrupts or else we risk racing with the interrupt |
@@ -1610,9 +1615,13 @@ static void serial8250_backup_timeout(unsigned long data) | |||
1610 | * the "Diva" UART used on the management processor on many HP | 1615 | * the "Diva" UART used on the management processor on many HP |
1611 | * ia64 and parisc boxes. | 1616 | * ia64 and parisc boxes. |
1612 | */ | 1617 | */ |
1618 | spin_lock_irqsave(&up->port.lock, flags); | ||
1619 | lsr = serial_in(up, UART_LSR); | ||
1620 | up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; | ||
1621 | spin_unlock_irqrestore(&up->port.lock, flags); | ||
1613 | if ((iir & UART_IIR_NO_INT) && (up->ier & UART_IER_THRI) && | 1622 | if ((iir & UART_IIR_NO_INT) && (up->ier & UART_IER_THRI) && |
1614 | (!uart_circ_empty(&up->port.info->xmit) || up->port.x_char) && | 1623 | (!uart_circ_empty(&up->port.info->xmit) || up->port.x_char) && |
1615 | (serial_in(up, UART_LSR) & UART_LSR_THRE)) { | 1624 | (lsr & UART_LSR_THRE)) { |
1616 | iir &= ~(UART_IIR_ID | UART_IIR_NO_INT); | 1625 | iir &= ~(UART_IIR_ID | UART_IIR_NO_INT); |
1617 | iir |= UART_IIR_THRI; | 1626 | iir |= UART_IIR_THRI; |
1618 | } | 1627 | } |
@@ -1631,13 +1640,14 @@ static unsigned int serial8250_tx_empty(struct uart_port *port) | |||
1631 | { | 1640 | { |
1632 | struct uart_8250_port *up = (struct uart_8250_port *)port; | 1641 | struct uart_8250_port *up = (struct uart_8250_port *)port; |
1633 | unsigned long flags; | 1642 | unsigned long flags; |
1634 | unsigned int ret; | 1643 | unsigned int lsr; |
1635 | 1644 | ||
1636 | spin_lock_irqsave(&up->port.lock, flags); | 1645 | spin_lock_irqsave(&up->port.lock, flags); |
1637 | ret = serial_in(up, UART_LSR) & UART_LSR_TEMT ? TIOCSER_TEMT : 0; | 1646 | lsr = serial_in(up, UART_LSR); |
1647 | up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; | ||
1638 | spin_unlock_irqrestore(&up->port.lock, flags); | 1648 | spin_unlock_irqrestore(&up->port.lock, flags); |
1639 | 1649 | ||
1640 | return ret; | 1650 | return lsr & UART_LSR_TEMT ? TIOCSER_TEMT : 0; |
1641 | } | 1651 | } |
1642 | 1652 | ||
1643 | static unsigned int serial8250_get_mctrl(struct uart_port *port) | 1653 | static unsigned int serial8250_get_mctrl(struct uart_port *port) |
@@ -1708,8 +1718,7 @@ static inline void wait_for_xmitr(struct uart_8250_port *up, int bits) | |||
1708 | do { | 1718 | do { |
1709 | status = serial_in(up, UART_LSR); | 1719 | status = serial_in(up, UART_LSR); |
1710 | 1720 | ||
1711 | if (status & UART_LSR_BI) | 1721 | up->lsr_saved_flags |= status & LSR_SAVE_FLAGS; |
1712 | up->lsr_break_flag = UART_LSR_BI; | ||
1713 | 1722 | ||
1714 | if (--tmout == 0) | 1723 | if (--tmout == 0) |
1715 | break; | 1724 | break; |
@@ -1718,8 +1727,12 @@ static inline void wait_for_xmitr(struct uart_8250_port *up, int bits) | |||
1718 | 1727 | ||
1719 | /* Wait up to 1s for flow control if necessary */ | 1728 | /* Wait up to 1s for flow control if necessary */ |
1720 | if (up->port.flags & UPF_CONS_FLOW) { | 1729 | if (up->port.flags & UPF_CONS_FLOW) { |
1721 | tmout = 1000000; | 1730 | unsigned int tmout; |
1722 | while (!(serial_in(up, UART_MSR) & UART_MSR_CTS) && --tmout) { | 1731 | for (tmout = 1000000; tmout; tmout--) { |
1732 | unsigned int msr = serial_in(up, UART_MSR); | ||
1733 | up->msr_saved_flags |= msr & MSR_SAVE_FLAGS; | ||
1734 | if (msr & UART_MSR_CTS) | ||
1735 | break; | ||
1723 | udelay(1); | 1736 | udelay(1); |
1724 | touch_nmi_watchdog(); | 1737 | touch_nmi_watchdog(); |
1725 | } | 1738 | } |
@@ -1889,6 +1902,18 @@ static int serial8250_startup(struct uart_port *port) | |||
1889 | spin_unlock_irqrestore(&up->port.lock, flags); | 1902 | spin_unlock_irqrestore(&up->port.lock, flags); |
1890 | 1903 | ||
1891 | /* | 1904 | /* |
1905 | * Clear the interrupt registers again for luck, and clear the | ||
1906 | * saved flags to avoid getting false values from polling | ||
1907 | * routines or the previous session. | ||
1908 | */ | ||
1909 | serial_inp(up, UART_LSR); | ||
1910 | serial_inp(up, UART_RX); | ||
1911 | serial_inp(up, UART_IIR); | ||
1912 | serial_inp(up, UART_MSR); | ||
1913 | up->lsr_saved_flags = 0; | ||
1914 | up->msr_saved_flags = 0; | ||
1915 | |||
1916 | /* | ||
1892 | * Finally, enable interrupts. Note: Modem status interrupts | 1917 | * Finally, enable interrupts. Note: Modem status interrupts |
1893 | * are set via set_termios(), which will be occurring imminently | 1918 | * are set via set_termios(), which will be occurring imminently |
1894 | * anyway, so we don't enable them here. | 1919 | * anyway, so we don't enable them here. |
@@ -1906,14 +1931,6 @@ static int serial8250_startup(struct uart_port *port) | |||
1906 | (void) inb_p(icp); | 1931 | (void) inb_p(icp); |
1907 | } | 1932 | } |
1908 | 1933 | ||
1909 | /* | ||
1910 | * And clear the interrupt registers again for luck. | ||
1911 | */ | ||
1912 | (void) serial_inp(up, UART_LSR); | ||
1913 | (void) serial_inp(up, UART_RX); | ||
1914 | (void) serial_inp(up, UART_IIR); | ||
1915 | (void) serial_inp(up, UART_MSR); | ||
1916 | |||
1917 | return 0; | 1934 | return 0; |
1918 | } | 1935 | } |
1919 | 1936 | ||
@@ -2484,6 +2501,16 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count) | |||
2484 | wait_for_xmitr(up, BOTH_EMPTY); | 2501 | wait_for_xmitr(up, BOTH_EMPTY); |
2485 | serial_out(up, UART_IER, ier); | 2502 | serial_out(up, UART_IER, ier); |
2486 | 2503 | ||
2504 | /* | ||
2505 | * The receive handling will happen properly because the | ||
2506 | * receive ready bit will still be set; it is not cleared | ||
2507 | * on read. However, modem control will not, we must | ||
2508 | * call it if we have saved something in the saved flags | ||
2509 | * while processing with interrupts off. | ||
2510 | */ | ||
2511 | if (up->msr_saved_flags) | ||
2512 | check_modem_status(up); | ||
2513 | |||
2487 | if (locked) | 2514 | if (locked) |
2488 | spin_unlock(&up->port.lock); | 2515 | spin_unlock(&up->port.lock); |
2489 | local_irq_restore(flags); | 2516 | local_irq_restore(flags); |
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c index 5e485876f54c..bd66339f7a3f 100644 --- a/drivers/serial/8250_pci.c +++ b/drivers/serial/8250_pci.c | |||
@@ -580,6 +580,138 @@ static int pci_netmos_init(struct pci_dev *dev) | |||
580 | return num_serial; | 580 | return num_serial; |
581 | } | 581 | } |
582 | 582 | ||
583 | /* | ||
584 | * ITE support by Niels de Vos <niels.devos@wincor-nixdorf.com> | ||
585 | * | ||
586 | * These chips are available with optionally one parallel port and up to | ||
587 | * two serial ports. Unfortunately they all have the same product id. | ||
588 | * | ||
589 | * Basic configuration is done over a region of 32 I/O ports. The base | ||
590 | * ioport is called INTA or INTC, depending on docs/other drivers. | ||
591 | * | ||
592 | * The region of the 32 I/O ports is configured in POSIO0R... | ||
593 | */ | ||
594 | |||
595 | /* registers */ | ||
596 | #define ITE_887x_MISCR 0x9c | ||
597 | #define ITE_887x_INTCBAR 0x78 | ||
598 | #define ITE_887x_UARTBAR 0x7c | ||
599 | #define ITE_887x_PS0BAR 0x10 | ||
600 | #define ITE_887x_POSIO0 0x60 | ||
601 | |||
602 | /* I/O space size */ | ||
603 | #define ITE_887x_IOSIZE 32 | ||
604 | /* I/O space size (bits 26-24; 8 bytes = 011b) */ | ||
605 | #define ITE_887x_POSIO_IOSIZE_8 (3 << 24) | ||
606 | /* I/O space size (bits 26-24; 32 bytes = 101b) */ | ||
607 | #define ITE_887x_POSIO_IOSIZE_32 (5 << 24) | ||
608 | /* Decoding speed (1 = slow, 2 = medium, 3 = fast) */ | ||
609 | #define ITE_887x_POSIO_SPEED (3 << 29) | ||
610 | /* enable IO_Space bit */ | ||
611 | #define ITE_887x_POSIO_ENABLE (1 << 31) | ||
612 | |||
613 | static int __devinit pci_ite887x_init(struct pci_dev *dev) | ||
614 | { | ||
615 | /* inta_addr are the configuration addresses of the ITE */ | ||
616 | static const short inta_addr[] = { 0x2a0, 0x2c0, 0x220, 0x240, 0x1e0, | ||
617 | 0x200, 0x280, 0 }; | ||
618 | int ret, i, type; | ||
619 | struct resource *iobase = NULL; | ||
620 | u32 miscr, uartbar, ioport; | ||
621 | |||
622 | /* search for the base-ioport */ | ||
623 | i = 0; | ||
624 | while (inta_addr[i] && iobase == NULL) { | ||
625 | iobase = request_region(inta_addr[i], ITE_887x_IOSIZE, | ||
626 | "ite887x"); | ||
627 | if (iobase != NULL) { | ||
628 | /* write POSIO0R - speed | size | ioport */ | ||
629 | pci_write_config_dword(dev, ITE_887x_POSIO0, | ||
630 | ITE_887x_POSIO_ENABLE | ITE_887x_POSIO_SPEED | | ||
631 | ITE_887x_POSIO_IOSIZE_32 | inta_addr[i]); | ||
632 | /* write INTCBAR - ioport */ | ||
633 | pci_write_config_dword(dev, ITE_887x_INTCBAR, inta_addr[i]); | ||
634 | ret = inb(inta_addr[i]); | ||
635 | if (ret != 0xff) { | ||
636 | /* ioport connected */ | ||
637 | break; | ||
638 | } | ||
639 | release_region(iobase->start, ITE_887x_IOSIZE); | ||
640 | iobase = NULL; | ||
641 | } | ||
642 | i++; | ||
643 | } | ||
644 | |||
645 | if (!inta_addr[i]) { | ||
646 | printk(KERN_ERR "ite887x: could not find iobase\n"); | ||
647 | return -ENODEV; | ||
648 | } | ||
649 | |||
650 | /* start of undocumented type checking (see parport_pc.c) */ | ||
651 | type = inb(iobase->start + 0x18) & 0x0f; | ||
652 | |||
653 | switch (type) { | ||
654 | case 0x2: /* ITE8871 (1P) */ | ||
655 | case 0xa: /* ITE8875 (1P) */ | ||
656 | ret = 0; | ||
657 | break; | ||
658 | case 0xe: /* ITE8872 (2S1P) */ | ||
659 | ret = 2; | ||
660 | break; | ||
661 | case 0x6: /* ITE8873 (1S) */ | ||
662 | ret = 1; | ||
663 | break; | ||
664 | case 0x8: /* ITE8874 (2S) */ | ||
665 | ret = 2; | ||
666 | break; | ||
667 | default: | ||
668 | moan_device("Unknown ITE887x", dev); | ||
669 | ret = -ENODEV; | ||
670 | } | ||
671 | |||
672 | /* configure all serial ports */ | ||
673 | for (i = 0; i < ret; i++) { | ||
674 | /* read the I/O port from the device */ | ||
675 | pci_read_config_dword(dev, ITE_887x_PS0BAR + (0x4 * (i + 1)), | ||
676 | &ioport); | ||
677 | ioport &= 0x0000FF00; /* the actual base address */ | ||
678 | pci_write_config_dword(dev, ITE_887x_POSIO0 + (0x4 * (i + 1)), | ||
679 | ITE_887x_POSIO_ENABLE | ITE_887x_POSIO_SPEED | | ||
680 | ITE_887x_POSIO_IOSIZE_8 | ioport); | ||
681 | |||
682 | /* write the ioport to the UARTBAR */ | ||
683 | pci_read_config_dword(dev, ITE_887x_UARTBAR, &uartbar); | ||
684 | uartbar &= ~(0xffff << (16 * i)); /* clear half the reg */ | ||
685 | uartbar |= (ioport << (16 * i)); /* set the ioport */ | ||
686 | pci_write_config_dword(dev, ITE_887x_UARTBAR, uartbar); | ||
687 | |||
688 | /* get current config */ | ||
689 | pci_read_config_dword(dev, ITE_887x_MISCR, &miscr); | ||
690 | /* disable interrupts (UARTx_Routing[3:0]) */ | ||
691 | miscr &= ~(0xf << (12 - 4 * i)); | ||
692 | /* activate the UART (UARTx_En) */ | ||
693 | miscr |= 1 << (23 - i); | ||
694 | /* write new config with activated UART */ | ||
695 | pci_write_config_dword(dev, ITE_887x_MISCR, miscr); | ||
696 | } | ||
697 | |||
698 | if (ret <= 0) { | ||
699 | /* the device has no UARTs if we get here */ | ||
700 | release_region(iobase->start, ITE_887x_IOSIZE); | ||
701 | } | ||
702 | |||
703 | return ret; | ||
704 | } | ||
705 | |||
706 | static void __devexit pci_ite887x_exit(struct pci_dev *dev) | ||
707 | { | ||
708 | u32 ioport; | ||
709 | /* the ioport is bit 0-15 in POSIO0R */ | ||
710 | pci_read_config_dword(dev, ITE_887x_POSIO0, &ioport); | ||
711 | ioport &= 0xffff; | ||
712 | release_region(ioport, ITE_887x_IOSIZE); | ||
713 | } | ||
714 | |||
583 | static int | 715 | static int |
584 | pci_default_setup(struct serial_private *priv, struct pciserial_board *board, | 716 | pci_default_setup(struct serial_private *priv, struct pciserial_board *board, |
585 | struct uart_port *port, int idx) | 717 | struct uart_port *port, int idx) |
@@ -653,6 +785,18 @@ static struct pci_serial_quirk pci_serial_quirks[] = { | |||
653 | .setup = pci_default_setup, | 785 | .setup = pci_default_setup, |
654 | }, | 786 | }, |
655 | /* | 787 | /* |
788 | * ITE | ||
789 | */ | ||
790 | { | ||
791 | .vendor = PCI_VENDOR_ID_ITE, | ||
792 | .device = PCI_DEVICE_ID_ITE_8872, | ||
793 | .subvendor = PCI_ANY_ID, | ||
794 | .subdevice = PCI_ANY_ID, | ||
795 | .init = pci_ite887x_init, | ||
796 | .setup = pci_default_setup, | ||
797 | .exit = __devexit_p(pci_ite887x_exit), | ||
798 | }, | ||
799 | /* | ||
656 | * Panacom | 800 | * Panacom |
657 | */ | 801 | */ |
658 | { | 802 | { |
@@ -933,6 +1077,7 @@ enum pci_board_num_t { | |||
933 | 1077 | ||
934 | pbn_b1_2_1250000, | 1078 | pbn_b1_2_1250000, |
935 | 1079 | ||
1080 | pbn_b1_bt_1_115200, | ||
936 | pbn_b1_bt_2_921600, | 1081 | pbn_b1_bt_2_921600, |
937 | 1082 | ||
938 | pbn_b1_1_1382400, | 1083 | pbn_b1_1_1382400, |
@@ -983,6 +1128,7 @@ enum pci_board_num_t { | |||
983 | pbn_exar_XR17C152, | 1128 | pbn_exar_XR17C152, |
984 | pbn_exar_XR17C154, | 1129 | pbn_exar_XR17C154, |
985 | pbn_exar_XR17C158, | 1130 | pbn_exar_XR17C158, |
1131 | pbn_pasemi_1682M, | ||
986 | }; | 1132 | }; |
987 | 1133 | ||
988 | /* | 1134 | /* |
@@ -1211,6 +1357,13 @@ static struct pciserial_board pci_boards[] __devinitdata = { | |||
1211 | .uart_offset = 8, | 1357 | .uart_offset = 8, |
1212 | }, | 1358 | }, |
1213 | 1359 | ||
1360 | [pbn_b1_bt_1_115200] = { | ||
1361 | .flags = FL_BASE1|FL_BASE_BARS, | ||
1362 | .num_ports = 1, | ||
1363 | .base_baud = 115200, | ||
1364 | .uart_offset = 8, | ||
1365 | }, | ||
1366 | |||
1214 | [pbn_b1_bt_2_921600] = { | 1367 | [pbn_b1_bt_2_921600] = { |
1215 | .flags = FL_BASE1|FL_BASE_BARS, | 1368 | .flags = FL_BASE1|FL_BASE_BARS, |
1216 | .num_ports = 2, | 1369 | .num_ports = 2, |
@@ -1498,6 +1651,18 @@ static struct pciserial_board pci_boards[] __devinitdata = { | |||
1498 | .base_baud = 921600, | 1651 | .base_baud = 921600, |
1499 | .uart_offset = 0x200, | 1652 | .uart_offset = 0x200, |
1500 | }, | 1653 | }, |
1654 | /* | ||
1655 | * PA Semi PWRficient PA6T-1682M on-chip UART | ||
1656 | */ | ||
1657 | [pbn_pasemi_1682M] = { | ||
1658 | .flags = FL_BASE0, | ||
1659 | .num_ports = 1, | ||
1660 | .base_baud = 8333333, | ||
1661 | }, | ||
1662 | }; | ||
1663 | |||
1664 | static const struct pci_device_id softmodem_blacklist[] = { | ||
1665 | { PCI_VDEVICE ( AL, 0x5457 ), }, /* ALi Corporation M5457 AC'97 Modem */ | ||
1501 | }; | 1666 | }; |
1502 | 1667 | ||
1503 | /* | 1668 | /* |
@@ -1508,6 +1673,7 @@ static struct pciserial_board pci_boards[] __devinitdata = { | |||
1508 | static int __devinit | 1673 | static int __devinit |
1509 | serial_pci_guess_board(struct pci_dev *dev, struct pciserial_board *board) | 1674 | serial_pci_guess_board(struct pci_dev *dev, struct pciserial_board *board) |
1510 | { | 1675 | { |
1676 | const struct pci_device_id *blacklist; | ||
1511 | int num_iomem, num_port, first_port = -1, i; | 1677 | int num_iomem, num_port, first_port = -1, i; |
1512 | 1678 | ||
1513 | /* | 1679 | /* |
@@ -1522,6 +1688,18 @@ serial_pci_guess_board(struct pci_dev *dev, struct pciserial_board *board) | |||
1522 | (dev->class & 0xff) > 6) | 1688 | (dev->class & 0xff) > 6) |
1523 | return -ENODEV; | 1689 | return -ENODEV; |
1524 | 1690 | ||
1691 | /* | ||
1692 | * Do not access blacklisted devices that are known not to | ||
1693 | * feature serial ports. | ||
1694 | */ | ||
1695 | for (blacklist = softmodem_blacklist; | ||
1696 | blacklist < softmodem_blacklist + ARRAY_SIZE(softmodem_blacklist); | ||
1697 | blacklist++) { | ||
1698 | if (dev->vendor == blacklist->vendor && | ||
1699 | dev->device == blacklist->device) | ||
1700 | return -ENODEV; | ||
1701 | } | ||
1702 | |||
1525 | num_iomem = num_port = 0; | 1703 | num_iomem = num_port = 0; |
1526 | for (i = 0; i < PCI_NUM_BAR_RESOURCES; i++) { | 1704 | for (i = 0; i < PCI_NUM_BAR_RESOURCES; i++) { |
1527 | if (pci_resource_flags(dev, i) & IORESOURCE_IO) { | 1705 | if (pci_resource_flags(dev, i) & IORESOURCE_IO) { |
@@ -2364,6 +2542,13 @@ static struct pci_device_id serial_pci_tbl[] = { | |||
2364 | { PCI_VENDOR_ID_TOPIC, PCI_DEVICE_ID_TOPIC_TP560, | 2542 | { PCI_VENDOR_ID_TOPIC, PCI_DEVICE_ID_TOPIC_TP560, |
2365 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, | 2543 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, |
2366 | pbn_b0_1_115200 }, | 2544 | pbn_b0_1_115200 }, |
2545 | /* | ||
2546 | * ITE | ||
2547 | */ | ||
2548 | { PCI_VENDOR_ID_ITE, PCI_DEVICE_ID_ITE_8872, | ||
2549 | PCI_ANY_ID, PCI_ANY_ID, | ||
2550 | 0, 0, | ||
2551 | pbn_b1_bt_1_115200 }, | ||
2367 | 2552 | ||
2368 | /* | 2553 | /* |
2369 | * IntaShield IS-200 | 2554 | * IntaShield IS-200 |
@@ -2382,6 +2567,13 @@ static struct pci_device_id serial_pci_tbl[] = { | |||
2382 | PCI_SUBVENDOR_ID_PERLE, PCI_SUBDEVICE_ID_PCI_RAS8, | 2567 | PCI_SUBVENDOR_ID_PERLE, PCI_SUBDEVICE_ID_PCI_RAS8, |
2383 | 0, 0, pbn_b2_8_921600 }, | 2568 | 0, 0, pbn_b2_8_921600 }, |
2384 | /* | 2569 | /* |
2570 | * PA Semi PA6T-1682M on-chip UART | ||
2571 | */ | ||
2572 | { PCI_VENDOR_ID_PASEMI, 0xa004, | ||
2573 | PCI_ANY_ID, PCI_ANY_ID, 0, 0, | ||
2574 | pbn_pasemi_1682M }, | ||
2575 | |||
2576 | /* | ||
2385 | * These entries match devices with class COMMUNICATION_SERIAL, | 2577 | * These entries match devices with class COMMUNICATION_SERIAL, |
2386 | * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL | 2578 | * COMMUNICATION_MODEM or COMMUNICATION_MULTISERIAL |
2387 | */ | 2579 | */ |
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c index 030a6063541d..a055f58f342f 100644 --- a/drivers/serial/serial_core.c +++ b/drivers/serial/serial_core.c | |||
@@ -1146,11 +1146,14 @@ static void uart_set_termios(struct tty_struct *tty, struct ktermios *old_termio | |||
1146 | 1146 | ||
1147 | /* | 1147 | /* |
1148 | * These are the bits that are used to setup various | 1148 | * These are the bits that are used to setup various |
1149 | * flags in the low level driver. | 1149 | * flags in the low level driver. We can ignore the Bfoo |
1150 | * bits in c_cflag; c_[io]speed will always be set | ||
1151 | * appropriately by set_termios() in tty_ioctl.c | ||
1150 | */ | 1152 | */ |
1151 | #define RELEVANT_IFLAG(iflag) ((iflag) & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK)) | 1153 | #define RELEVANT_IFLAG(iflag) ((iflag) & (IGNBRK|BRKINT|IGNPAR|PARMRK|INPCK)) |
1152 | |||
1153 | if ((cflag ^ old_termios->c_cflag) == 0 && | 1154 | if ((cflag ^ old_termios->c_cflag) == 0 && |
1155 | tty->termios->c_ospeed == old_termios->c_ospeed && | ||
1156 | tty->termios->c_ispeed == old_termios->c_ispeed && | ||
1154 | RELEVANT_IFLAG(tty->termios->c_iflag ^ old_termios->c_iflag) == 0) | 1157 | RELEVANT_IFLAG(tty->termios->c_iflag ^ old_termios->c_iflag) == 0) |
1155 | return; | 1158 | return; |
1156 | 1159 | ||
diff --git a/drivers/serial/serial_txx9.c b/drivers/serial/serial_txx9.c index b8f91e018b21..0930e2a85514 100644 --- a/drivers/serial/serial_txx9.c +++ b/drivers/serial/serial_txx9.c | |||
@@ -37,7 +37,7 @@ | |||
37 | 37 | ||
38 | #include <asm/io.h> | 38 | #include <asm/io.h> |
39 | 39 | ||
40 | static char *serial_version = "1.09"; | 40 | static char *serial_version = "1.10"; |
41 | static char *serial_name = "TX39/49 Serial driver"; | 41 | static char *serial_name = "TX39/49 Serial driver"; |
42 | 42 | ||
43 | #define PASS_LIMIT 256 | 43 | #define PASS_LIMIT 256 |
@@ -436,8 +436,10 @@ static unsigned int serial_txx9_get_mctrl(struct uart_port *port) | |||
436 | struct uart_txx9_port *up = (struct uart_txx9_port *)port; | 436 | struct uart_txx9_port *up = (struct uart_txx9_port *)port; |
437 | unsigned int ret; | 437 | unsigned int ret; |
438 | 438 | ||
439 | ret = ((sio_in(up, TXX9_SIFLCR) & TXX9_SIFLCR_RTSSC) ? 0 : TIOCM_RTS) | 439 | /* no modem control lines */ |
440 | | ((sio_in(up, TXX9_SICISR) & TXX9_SICISR_CTSS) ? 0 : TIOCM_CTS); | 440 | ret = TIOCM_CAR | TIOCM_DSR; |
441 | ret |= (sio_in(up, TXX9_SIFLCR) & TXX9_SIFLCR_RTSSC) ? 0 : TIOCM_RTS; | ||
442 | ret |= (sio_in(up, TXX9_SICISR) & TXX9_SICISR_CTSS) ? 0 : TIOCM_CTS; | ||
441 | 443 | ||
442 | return ret; | 444 | return ret; |
443 | } | 445 | } |
@@ -557,6 +559,12 @@ serial_txx9_set_termios(struct uart_port *port, struct ktermios *termios, | |||
557 | unsigned long flags; | 559 | unsigned long flags; |
558 | unsigned int baud, quot; | 560 | unsigned int baud, quot; |
559 | 561 | ||
562 | /* | ||
563 | * We don't support modem control lines. | ||
564 | */ | ||
565 | termios->c_cflag &= ~(HUPCL | CMSPAR); | ||
566 | termios->c_cflag |= CLOCAL; | ||
567 | |||
560 | cval = sio_in(up, TXX9_SILCR); | 568 | cval = sio_in(up, TXX9_SILCR); |
561 | /* byte size and parity */ | 569 | /* byte size and parity */ |
562 | cval &= ~TXX9_SILCR_UMODE_MASK; | 570 | cval &= ~TXX9_SILCR_UMODE_MASK; |
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c index 79b13685bdfa..e074943feff5 100644 --- a/drivers/serial/sunsu.c +++ b/drivers/serial/sunsu.c | |||
@@ -1198,10 +1198,11 @@ static int __init sunsu_kbd_ms_init(struct uart_sunsu_port *up) | |||
1198 | if (up->port.type == PORT_UNKNOWN) | 1198 | if (up->port.type == PORT_UNKNOWN) |
1199 | return -ENODEV; | 1199 | return -ENODEV; |
1200 | 1200 | ||
1201 | printk("%s: %s port at %lx, irq %u\n", | 1201 | printk("%s: %s port at %llx, irq %u\n", |
1202 | to_of_device(up->port.dev)->node->full_name, | 1202 | to_of_device(up->port.dev)->node->full_name, |
1203 | (up->su_type == SU_PORT_KBD) ? "Keyboard" : "Mouse", | 1203 | (up->su_type == SU_PORT_KBD) ? "Keyboard" : "Mouse", |
1204 | up->port.mapbase, up->port.irq); | 1204 | (unsigned long long) up->port.mapbase, |
1205 | up->port.irq); | ||
1205 | 1206 | ||
1206 | #ifdef CONFIG_SERIO | 1207 | #ifdef CONFIG_SERIO |
1207 | serio = &up->serio; | 1208 | serio = &up->serio; |
diff --git a/drivers/serial/sunzilog.c b/drivers/serial/sunzilog.c index 1d262c0c613f..283bef0d24cb 100644 --- a/drivers/serial/sunzilog.c +++ b/drivers/serial/sunzilog.c | |||
@@ -1431,14 +1431,16 @@ static int __devinit zs_probe(struct of_device *op, const struct of_device_id *m | |||
1431 | return err; | 1431 | return err; |
1432 | } | 1432 | } |
1433 | } else { | 1433 | } else { |
1434 | printk(KERN_INFO "%s: Keyboard at MMIO 0x%lx (irq = %d) " | 1434 | printk(KERN_INFO "%s: Keyboard at MMIO 0x%llx (irq = %d) " |
1435 | "is a %s\n", | 1435 | "is a %s\n", |
1436 | op->dev.bus_id, up[0].port.mapbase, op->irqs[0], | 1436 | op->dev.bus_id, |
1437 | sunzilog_type (&up[0].port)); | 1437 | (unsigned long long) up[0].port.mapbase, |
1438 | printk(KERN_INFO "%s: Mouse at MMIO 0x%lx (irq = %d) " | 1438 | op->irqs[0], sunzilog_type(&up[0].port)); |
1439 | printk(KERN_INFO "%s: Mouse at MMIO 0x%llx (irq = %d) " | ||
1439 | "is a %s\n", | 1440 | "is a %s\n", |
1440 | op->dev.bus_id, up[1].port.mapbase, op->irqs[0], | 1441 | op->dev.bus_id, |
1441 | sunzilog_type (&up[1].port)); | 1442 | (unsigned long long) up[1].port.mapbase, |
1443 | op->irqs[0], sunzilog_type(&up[1].port)); | ||
1442 | } | 1444 | } |
1443 | 1445 | ||
1444 | dev_set_drvdata(&op->dev, &up[0]); | 1446 | dev_set_drvdata(&op->dev, &up[0]); |
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig index 7dd73546bf43..7580aa5da0f8 100644 --- a/drivers/usb/Kconfig +++ b/drivers/usb/Kconfig | |||
@@ -6,6 +6,9 @@ menuconfig USB_SUPPORT | |||
6 | bool "USB support" | 6 | bool "USB support" |
7 | depends on HAS_IOMEM | 7 | depends on HAS_IOMEM |
8 | default y | 8 | default y |
9 | ---help--- | ||
10 | This option adds core support for Universal Serial Bus (USB). | ||
11 | You will also need drivers from the following menu to make use of it. | ||
9 | 12 | ||
10 | if USB_SUPPORT | 13 | if USB_SUPPORT |
11 | 14 | ||
@@ -18,6 +21,7 @@ config USB_ARCH_HAS_HCD | |||
18 | default y if USB_ARCH_HAS_EHCI | 21 | default y if USB_ARCH_HAS_EHCI |
19 | default y if PCMCIA && !M32R # sl811_cs | 22 | default y if PCMCIA && !M32R # sl811_cs |
20 | default y if ARM # SL-811 | 23 | default y if ARM # SL-811 |
24 | default y if SUPERH # r8a66597-hcd | ||
21 | default PCI | 25 | default PCI |
22 | 26 | ||
23 | # many non-PCI SOC chips embed OHCI | 27 | # many non-PCI SOC chips embed OHCI |
diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c index 02c52f8d5dbf..a73e714288e5 100644 --- a/drivers/usb/atm/cxacru.c +++ b/drivers/usb/atm/cxacru.c | |||
@@ -456,7 +456,6 @@ static int cxacru_start_wait_urb(struct urb *urb, struct completion *done, | |||
456 | int* actual_length) | 456 | int* actual_length) |
457 | { | 457 | { |
458 | struct timer_list timer; | 458 | struct timer_list timer; |
459 | int status = urb->status; | ||
460 | 459 | ||
461 | init_timer(&timer); | 460 | init_timer(&timer); |
462 | timer.expires = jiffies + msecs_to_jiffies(CMD_TIMEOUT); | 461 | timer.expires = jiffies + msecs_to_jiffies(CMD_TIMEOUT); |
@@ -468,7 +467,7 @@ static int cxacru_start_wait_urb(struct urb *urb, struct completion *done, | |||
468 | 467 | ||
469 | if (actual_length) | 468 | if (actual_length) |
470 | *actual_length = urb->actual_length; | 469 | *actual_length = urb->actual_length; |
471 | return status; | 470 | return urb->status; /* must read status after completion */ |
472 | } | 471 | } |
473 | 472 | ||
474 | static int cxacru_cm(struct cxacru_data *instance, enum cxacru_cm_request cm, | 473 | static int cxacru_cm(struct cxacru_data *instance, enum cxacru_cm_request cm, |
diff --git a/drivers/usb/atm/ueagle-atm.c b/drivers/usb/atm/ueagle-atm.c index a1a1c9d467e0..29807d048b04 100644 --- a/drivers/usb/atm/ueagle-atm.c +++ b/drivers/usb/atm/ueagle-atm.c | |||
@@ -1721,9 +1721,12 @@ static int uea_bind(struct usbatm_data *usbatm, struct usb_interface *intf, | |||
1721 | 1721 | ||
1722 | ret = uea_boot(sc); | 1722 | ret = uea_boot(sc); |
1723 | if (ret < 0) | 1723 | if (ret < 0) |
1724 | goto error; | 1724 | goto error_rm_grp; |
1725 | 1725 | ||
1726 | return 0; | 1726 | return 0; |
1727 | |||
1728 | error_rm_grp: | ||
1729 | sysfs_remove_group(&intf->dev.kobj, &attr_grp); | ||
1727 | error: | 1730 | error: |
1728 | kfree(sc); | 1731 | kfree(sc); |
1729 | return ret; | 1732 | return ret; |
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index fe940e0536e0..f51e22490edf 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c | |||
@@ -921,6 +921,10 @@ skip_normal_probe: | |||
921 | return -EINVAL; | 921 | return -EINVAL; |
922 | } | 922 | } |
923 | } | 923 | } |
924 | |||
925 | /* Accept probe requests only for the control interface */ | ||
926 | if (intf != control_interface) | ||
927 | return -ENODEV; | ||
924 | 928 | ||
925 | if (usb_interface_claimed(data_interface)) { /* valid in this context */ | 929 | if (usb_interface_claimed(data_interface)) { /* valid in this context */ |
926 | dev_dbg(&intf->dev,"The data interface isn't available"); | 930 | dev_dbg(&intf->dev,"The data interface isn't available"); |
@@ -1109,10 +1113,12 @@ static void acm_disconnect(struct usb_interface *intf) | |||
1109 | return; | 1113 | return; |
1110 | } | 1114 | } |
1111 | if (acm->country_codes){ | 1115 | if (acm->country_codes){ |
1112 | device_remove_file(&intf->dev, &dev_attr_wCountryCodes); | 1116 | device_remove_file(&acm->control->dev, |
1113 | device_remove_file(&intf->dev, &dev_attr_iCountryCodeRelDate); | 1117 | &dev_attr_wCountryCodes); |
1118 | device_remove_file(&acm->control->dev, | ||
1119 | &dev_attr_iCountryCodeRelDate); | ||
1114 | } | 1120 | } |
1115 | device_remove_file(&intf->dev, &dev_attr_bmCapabilities); | 1121 | device_remove_file(&acm->control->dev, &dev_attr_bmCapabilities); |
1116 | acm->dev = NULL; | 1122 | acm->dev = NULL; |
1117 | usb_set_intfdata(acm->control, NULL); | 1123 | usb_set_intfdata(acm->control, NULL); |
1118 | usb_set_intfdata(acm->data, NULL); | 1124 | usb_set_intfdata(acm->data, NULL); |
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c index 654857493a82..a1ad11d0c47c 100644 --- a/drivers/usb/core/driver.c +++ b/drivers/usb/core/driver.c | |||
@@ -1224,6 +1224,8 @@ static int usb_autopm_do_device(struct usb_device *udev, int inc_usage_cnt) | |||
1224 | udev->auto_pm = 1; | 1224 | udev->auto_pm = 1; |
1225 | udev->pm_usage_cnt += inc_usage_cnt; | 1225 | udev->pm_usage_cnt += inc_usage_cnt; |
1226 | WARN_ON(udev->pm_usage_cnt < 0); | 1226 | WARN_ON(udev->pm_usage_cnt < 0); |
1227 | if (inc_usage_cnt) | ||
1228 | udev->last_busy = jiffies; | ||
1227 | if (inc_usage_cnt >= 0 && udev->pm_usage_cnt > 0) { | 1229 | if (inc_usage_cnt >= 0 && udev->pm_usage_cnt > 0) { |
1228 | if (udev->state == USB_STATE_SUSPENDED) | 1230 | if (udev->state == USB_STATE_SUSPENDED) |
1229 | status = usb_resume_both(udev); | 1231 | status = usb_resume_both(udev); |
@@ -1232,8 +1234,6 @@ static int usb_autopm_do_device(struct usb_device *udev, int inc_usage_cnt) | |||
1232 | else if (inc_usage_cnt) | 1234 | else if (inc_usage_cnt) |
1233 | udev->last_busy = jiffies; | 1235 | udev->last_busy = jiffies; |
1234 | } else if (inc_usage_cnt <= 0 && udev->pm_usage_cnt <= 0) { | 1236 | } else if (inc_usage_cnt <= 0 && udev->pm_usage_cnt <= 0) { |
1235 | if (inc_usage_cnt) | ||
1236 | udev->last_busy = jiffies; | ||
1237 | status = usb_suspend_both(udev, PMSG_SUSPEND); | 1237 | status = usb_suspend_both(udev, PMSG_SUSPEND); |
1238 | } | 1238 | } |
1239 | usb_pm_unlock(udev); | 1239 | usb_pm_unlock(udev); |
@@ -1342,16 +1342,15 @@ static int usb_autopm_do_interface(struct usb_interface *intf, | |||
1342 | else { | 1342 | else { |
1343 | udev->auto_pm = 1; | 1343 | udev->auto_pm = 1; |
1344 | intf->pm_usage_cnt += inc_usage_cnt; | 1344 | intf->pm_usage_cnt += inc_usage_cnt; |
1345 | udev->last_busy = jiffies; | ||
1345 | if (inc_usage_cnt >= 0 && intf->pm_usage_cnt > 0) { | 1346 | if (inc_usage_cnt >= 0 && intf->pm_usage_cnt > 0) { |
1346 | if (udev->state == USB_STATE_SUSPENDED) | 1347 | if (udev->state == USB_STATE_SUSPENDED) |
1347 | status = usb_resume_both(udev); | 1348 | status = usb_resume_both(udev); |
1348 | if (status != 0) | 1349 | if (status != 0) |
1349 | intf->pm_usage_cnt -= inc_usage_cnt; | 1350 | intf->pm_usage_cnt -= inc_usage_cnt; |
1350 | else if (inc_usage_cnt) | 1351 | else |
1351 | udev->last_busy = jiffies; | 1352 | udev->last_busy = jiffies; |
1352 | } else if (inc_usage_cnt <= 0 && intf->pm_usage_cnt <= 0) { | 1353 | } else if (inc_usage_cnt <= 0 && intf->pm_usage_cnt <= 0) { |
1353 | if (inc_usage_cnt) | ||
1354 | udev->last_busy = jiffies; | ||
1355 | status = usb_suspend_both(udev, PMSG_SUSPEND); | 1354 | status = usb_suspend_both(udev, PMSG_SUSPEND); |
1356 | } | 1355 | } |
1357 | } | 1356 | } |
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index e341a1da517f..f7b337feb3ea 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c | |||
@@ -1644,9 +1644,10 @@ static int finish_port_resume(struct usb_device *udev) | |||
1644 | * and device drivers will know about any resume quirks. | 1644 | * and device drivers will know about any resume quirks. |
1645 | */ | 1645 | */ |
1646 | if (status == 0) { | 1646 | if (status == 0) { |
1647 | devstatus = 0; | ||
1647 | status = usb_get_status(udev, USB_RECIP_DEVICE, 0, &devstatus); | 1648 | status = usb_get_status(udev, USB_RECIP_DEVICE, 0, &devstatus); |
1648 | if (status >= 0) | 1649 | if (status >= 0) |
1649 | status = (status == 2 ? 0 : -ENODEV); | 1650 | status = (status > 0 ? 0 : -ENODEV); |
1650 | } | 1651 | } |
1651 | 1652 | ||
1652 | if (status) { | 1653 | if (status) { |
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c index b6bd05e3d439..d8f7b089a8f0 100644 --- a/drivers/usb/core/message.c +++ b/drivers/usb/core/message.c | |||
@@ -637,12 +637,12 @@ int usb_get_descriptor(struct usb_device *dev, unsigned char type, unsigned char | |||
637 | memset(buf,0,size); // Make sure we parse really received data | 637 | memset(buf,0,size); // Make sure we parse really received data |
638 | 638 | ||
639 | for (i = 0; i < 3; ++i) { | 639 | for (i = 0; i < 3; ++i) { |
640 | /* retry on length 0 or stall; some devices are flakey */ | 640 | /* retry on length 0 or error; some devices are flakey */ |
641 | result = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), | 641 | result = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), |
642 | USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, | 642 | USB_REQ_GET_DESCRIPTOR, USB_DIR_IN, |
643 | (type << 8) + index, 0, buf, size, | 643 | (type << 8) + index, 0, buf, size, |
644 | USB_CTRL_GET_TIMEOUT); | 644 | USB_CTRL_GET_TIMEOUT); |
645 | if (result == 0 || result == -EPIPE) | 645 | if (result <= 0 && result != -ETIMEDOUT) |
646 | continue; | 646 | continue; |
647 | if (result > 1 && ((u8 *)buf)[1] != type) { | 647 | if (result > 1 && ((u8 *)buf)[1] != type) { |
648 | result = -EPROTO; | 648 | result = -EPROTO; |
@@ -1358,6 +1358,30 @@ static int usb_if_uevent(struct device *dev, char **envp, int num_envp, | |||
1358 | usb_dev = interface_to_usbdev(intf); | 1358 | usb_dev = interface_to_usbdev(intf); |
1359 | alt = intf->cur_altsetting; | 1359 | alt = intf->cur_altsetting; |
1360 | 1360 | ||
1361 | #ifdef CONFIG_USB_DEVICEFS | ||
1362 | if (add_uevent_var(envp, num_envp, &i, | ||
1363 | buffer, buffer_size, &length, | ||
1364 | "DEVICE=/proc/bus/usb/%03d/%03d", | ||
1365 | usb_dev->bus->busnum, usb_dev->devnum)) | ||
1366 | return -ENOMEM; | ||
1367 | #endif | ||
1368 | |||
1369 | if (add_uevent_var(envp, num_envp, &i, | ||
1370 | buffer, buffer_size, &length, | ||
1371 | "PRODUCT=%x/%x/%x", | ||
1372 | le16_to_cpu(usb_dev->descriptor.idVendor), | ||
1373 | le16_to_cpu(usb_dev->descriptor.idProduct), | ||
1374 | le16_to_cpu(usb_dev->descriptor.bcdDevice))) | ||
1375 | return -ENOMEM; | ||
1376 | |||
1377 | if (add_uevent_var(envp, num_envp, &i, | ||
1378 | buffer, buffer_size, &length, | ||
1379 | "TYPE=%d/%d/%d", | ||
1380 | usb_dev->descriptor.bDeviceClass, | ||
1381 | usb_dev->descriptor.bDeviceSubClass, | ||
1382 | usb_dev->descriptor.bDeviceProtocol)) | ||
1383 | return -ENOMEM; | ||
1384 | |||
1361 | if (add_uevent_var(envp, num_envp, &i, | 1385 | if (add_uevent_var(envp, num_envp, &i, |
1362 | buffer, buffer_size, &length, | 1386 | buffer, buffer_size, &length, |
1363 | "INTERFACE=%d/%d/%d", | 1387 | "INTERFACE=%d/%d/%d", |
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c index b7917c5a3c6f..9e467118dc94 100644 --- a/drivers/usb/core/quirks.c +++ b/drivers/usb/core/quirks.c | |||
@@ -30,6 +30,8 @@ | |||
30 | static const struct usb_device_id usb_quirk_list[] = { | 30 | static const struct usb_device_id usb_quirk_list[] = { |
31 | /* HP 5300/5370C scanner */ | 31 | /* HP 5300/5370C scanner */ |
32 | { USB_DEVICE(0x03f0, 0x0701), .driver_info = USB_QUIRK_STRING_FETCH_255 }, | 32 | { USB_DEVICE(0x03f0, 0x0701), .driver_info = USB_QUIRK_STRING_FETCH_255 }, |
33 | /* Hewlett-Packard PhotoSmart 720 / PhotoSmart 935 (storage) */ | ||
34 | { USB_DEVICE(0x03f0, 0x4002), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | ||
33 | /* Acer Peripherals Inc. (now BenQ Corp.) Prisa 640BU */ | 35 | /* Acer Peripherals Inc. (now BenQ Corp.) Prisa 640BU */ |
34 | { USB_DEVICE(0x04a5, 0x207e), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | 36 | { USB_DEVICE(0x04a5, 0x207e), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, |
35 | /* Benq S2W 3300U */ | 37 | /* Benq S2W 3300U */ |
@@ -56,6 +58,8 @@ static const struct usb_device_id usb_quirk_list[] = { | |||
56 | { USB_DEVICE(0x04b8, 0x0121), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | 58 | { USB_DEVICE(0x04b8, 0x0121), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, |
57 | /* Seiko Epson Corp.*/ | 59 | /* Seiko Epson Corp.*/ |
58 | { USB_DEVICE(0x04b8, 0x0122), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | 60 | { USB_DEVICE(0x04b8, 0x0122), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, |
61 | /* Samsung ML-2010 printer */ | ||
62 | { USB_DEVICE(0x04e8, 0x326c), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | ||
59 | /* Samsung ML-2510 Series printer */ | 63 | /* Samsung ML-2510 Series printer */ |
60 | { USB_DEVICE(0x04e8, 0x327e), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | 64 | { USB_DEVICE(0x04e8, 0x327e), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, |
61 | /* Elsa MicroLink 56k (V.250) */ | 65 | /* Elsa MicroLink 56k (V.250) */ |
@@ -64,12 +68,20 @@ static const struct usb_device_id usb_quirk_list[] = { | |||
64 | { USB_DEVICE(0x05d8, 0x4005), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | 68 | { USB_DEVICE(0x05d8, 0x4005), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, |
65 | /* Agfa Snapscan1212u */ | 69 | /* Agfa Snapscan1212u */ |
66 | { USB_DEVICE(0x06bd, 0x2061), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | 70 | { USB_DEVICE(0x06bd, 0x2061), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, |
71 | /* Seagate RSS LLC */ | ||
72 | { USB_DEVICE(0x0bc2, 0x3000), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | ||
67 | /* Umax [hex] Astra 3400U */ | 73 | /* Umax [hex] Astra 3400U */ |
68 | { USB_DEVICE(0x1606, 0x0060), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | 74 | { USB_DEVICE(0x1606, 0x0060), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, |
69 | 75 | ||
70 | /* Philips PSC805 audio device */ | 76 | /* Philips PSC805 audio device */ |
71 | { USB_DEVICE(0x0471, 0x0155), .driver_info = USB_QUIRK_RESET_RESUME }, | 77 | { USB_DEVICE(0x0471, 0x0155), .driver_info = USB_QUIRK_RESET_RESUME }, |
72 | 78 | ||
79 | /* Alcor multi-card reader */ | ||
80 | { USB_DEVICE(0x058f, 0x6366), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | ||
81 | |||
82 | /* Canon EOS 5D in PC Connection mode */ | ||
83 | { USB_DEVICE(0x04a9, 0x3101), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | ||
84 | |||
73 | /* RIM Blackberry */ | 85 | /* RIM Blackberry */ |
74 | { USB_DEVICE(0x0fca, 0x0001), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | 86 | { USB_DEVICE(0x0fca, 0x0001), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, |
75 | { USB_DEVICE(0x0fca, 0x0004), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, | 87 | { USB_DEVICE(0x0fca, 0x0004), .driver_info = USB_QUIRK_NO_AUTOSUSPEND }, |
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c index f2fbdc7fe376..d008d1360a7a 100644 --- a/drivers/usb/gadget/dummy_hcd.c +++ b/drivers/usb/gadget/dummy_hcd.c | |||
@@ -34,8 +34,6 @@ | |||
34 | * bypassing some hardware (and driver) issues. UML could help too. | 34 | * bypassing some hardware (and driver) issues. UML could help too. |
35 | */ | 35 | */ |
36 | 36 | ||
37 | #define DEBUG | ||
38 | |||
39 | #include <linux/module.h> | 37 | #include <linux/module.h> |
40 | #include <linux/kernel.h> | 38 | #include <linux/kernel.h> |
41 | #include <linux/delay.h> | 39 | #include <linux/delay.h> |
diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c index be7a1bd2823b..965ad7bec7b7 100644 --- a/drivers/usb/gadget/file_storage.c +++ b/drivers/usb/gadget/file_storage.c | |||
@@ -599,7 +599,6 @@ enum fsg_buffer_state { | |||
599 | 599 | ||
600 | struct fsg_buffhd { | 600 | struct fsg_buffhd { |
601 | void *buf; | 601 | void *buf; |
602 | dma_addr_t dma; | ||
603 | enum fsg_buffer_state state; | 602 | enum fsg_buffer_state state; |
604 | struct fsg_buffhd *next; | 603 | struct fsg_buffhd *next; |
605 | 604 | ||
@@ -1295,6 +1294,7 @@ static int class_setup_req(struct fsg_dev *fsg, | |||
1295 | struct usb_request *req = fsg->ep0req; | 1294 | struct usb_request *req = fsg->ep0req; |
1296 | int value = -EOPNOTSUPP; | 1295 | int value = -EOPNOTSUPP; |
1297 | u16 w_index = le16_to_cpu(ctrl->wIndex); | 1296 | u16 w_index = le16_to_cpu(ctrl->wIndex); |
1297 | u16 w_value = le16_to_cpu(ctrl->wValue); | ||
1298 | u16 w_length = le16_to_cpu(ctrl->wLength); | 1298 | u16 w_length = le16_to_cpu(ctrl->wLength); |
1299 | 1299 | ||
1300 | if (!fsg->config) | 1300 | if (!fsg->config) |
@@ -1308,7 +1308,7 @@ static int class_setup_req(struct fsg_dev *fsg, | |||
1308 | if (ctrl->bRequestType != (USB_DIR_OUT | | 1308 | if (ctrl->bRequestType != (USB_DIR_OUT | |
1309 | USB_TYPE_CLASS | USB_RECIP_INTERFACE)) | 1309 | USB_TYPE_CLASS | USB_RECIP_INTERFACE)) |
1310 | break; | 1310 | break; |
1311 | if (w_index != 0) { | 1311 | if (w_index != 0 || w_value != 0) { |
1312 | value = -EDOM; | 1312 | value = -EDOM; |
1313 | break; | 1313 | break; |
1314 | } | 1314 | } |
@@ -1324,7 +1324,7 @@ static int class_setup_req(struct fsg_dev *fsg, | |||
1324 | if (ctrl->bRequestType != (USB_DIR_IN | | 1324 | if (ctrl->bRequestType != (USB_DIR_IN | |
1325 | USB_TYPE_CLASS | USB_RECIP_INTERFACE)) | 1325 | USB_TYPE_CLASS | USB_RECIP_INTERFACE)) |
1326 | break; | 1326 | break; |
1327 | if (w_index != 0) { | 1327 | if (w_index != 0 || w_value != 0) { |
1328 | value = -EDOM; | 1328 | value = -EDOM; |
1329 | break; | 1329 | break; |
1330 | } | 1330 | } |
@@ -1343,7 +1343,7 @@ static int class_setup_req(struct fsg_dev *fsg, | |||
1343 | if (ctrl->bRequestType != (USB_DIR_OUT | | 1343 | if (ctrl->bRequestType != (USB_DIR_OUT | |
1344 | USB_TYPE_CLASS | USB_RECIP_INTERFACE)) | 1344 | USB_TYPE_CLASS | USB_RECIP_INTERFACE)) |
1345 | break; | 1345 | break; |
1346 | if (w_index != 0) { | 1346 | if (w_index != 0 || w_value != 0) { |
1347 | value = -EDOM; | 1347 | value = -EDOM; |
1348 | break; | 1348 | break; |
1349 | } | 1349 | } |
@@ -2611,7 +2611,6 @@ static int send_status(struct fsg_dev *fsg) | |||
2611 | 2611 | ||
2612 | fsg->intr_buffhd = bh; // Point to the right buffhd | 2612 | fsg->intr_buffhd = bh; // Point to the right buffhd |
2613 | fsg->intreq->buf = bh->inreq->buf; | 2613 | fsg->intreq->buf = bh->inreq->buf; |
2614 | fsg->intreq->dma = bh->inreq->dma; | ||
2615 | fsg->intreq->context = bh; | 2614 | fsg->intreq->context = bh; |
2616 | start_transfer(fsg, fsg->intr_in, fsg->intreq, | 2615 | start_transfer(fsg, fsg->intr_in, fsg->intreq, |
2617 | &fsg->intreq_busy, &bh->state); | 2616 | &fsg->intreq_busy, &bh->state); |
@@ -3200,7 +3199,6 @@ reset: | |||
3200 | if ((rc = alloc_request(fsg, fsg->bulk_out, &bh->outreq)) != 0) | 3199 | if ((rc = alloc_request(fsg, fsg->bulk_out, &bh->outreq)) != 0) |
3201 | goto reset; | 3200 | goto reset; |
3202 | bh->inreq->buf = bh->outreq->buf = bh->buf; | 3201 | bh->inreq->buf = bh->outreq->buf = bh->buf; |
3203 | bh->inreq->dma = bh->outreq->dma = bh->dma; | ||
3204 | bh->inreq->context = bh->outreq->context = bh; | 3202 | bh->inreq->context = bh->outreq->context = bh; |
3205 | bh->inreq->complete = bulk_in_complete; | 3203 | bh->inreq->complete = bulk_in_complete; |
3206 | bh->outreq->complete = bulk_out_complete; | 3204 | bh->outreq->complete = bulk_out_complete; |
diff --git a/drivers/usb/gadget/fsl_usb2_udc.c b/drivers/usb/gadget/fsl_usb2_udc.c index 10b2b33b8698..d57bcfbc08a5 100644 --- a/drivers/usb/gadget/fsl_usb2_udc.c +++ b/drivers/usb/gadget/fsl_usb2_udc.c | |||
@@ -1277,31 +1277,32 @@ static void setup_received_irq(struct fsl_udc *udc, | |||
1277 | 1277 | ||
1278 | udc_reset_ep_queue(udc, 0); | 1278 | udc_reset_ep_queue(udc, 0); |
1279 | 1279 | ||
1280 | /* We process some stardard setup requests here */ | ||
1280 | switch (setup->bRequest) { | 1281 | switch (setup->bRequest) { |
1281 | /* Request that need Data+Status phase from udc */ | ||
1282 | case USB_REQ_GET_STATUS: | 1282 | case USB_REQ_GET_STATUS: |
1283 | if ((setup->bRequestType & (USB_DIR_IN | USB_TYPE_STANDARD)) | 1283 | /* Data+Status phase from udc */ |
1284 | if ((setup->bRequestType & (USB_DIR_IN | USB_TYPE_MASK)) | ||
1284 | != (USB_DIR_IN | USB_TYPE_STANDARD)) | 1285 | != (USB_DIR_IN | USB_TYPE_STANDARD)) |
1285 | break; | 1286 | break; |
1286 | ch9getstatus(udc, setup->bRequestType, wValue, wIndex, wLength); | 1287 | ch9getstatus(udc, setup->bRequestType, wValue, wIndex, wLength); |
1287 | break; | 1288 | return; |
1288 | 1289 | ||
1289 | /* Requests that need Status phase from udc */ | ||
1290 | case USB_REQ_SET_ADDRESS: | 1290 | case USB_REQ_SET_ADDRESS: |
1291 | /* Status phase from udc */ | ||
1291 | if (setup->bRequestType != (USB_DIR_OUT | USB_TYPE_STANDARD | 1292 | if (setup->bRequestType != (USB_DIR_OUT | USB_TYPE_STANDARD |
1292 | | USB_RECIP_DEVICE)) | 1293 | | USB_RECIP_DEVICE)) |
1293 | break; | 1294 | break; |
1294 | ch9setaddress(udc, wValue, wIndex, wLength); | 1295 | ch9setaddress(udc, wValue, wIndex, wLength); |
1295 | break; | 1296 | return; |
1296 | 1297 | ||
1297 | /* Handled by udc, no data, status by udc */ | ||
1298 | case USB_REQ_CLEAR_FEATURE: | 1298 | case USB_REQ_CLEAR_FEATURE: |
1299 | case USB_REQ_SET_FEATURE: | 1299 | case USB_REQ_SET_FEATURE: |
1300 | { /* status transaction */ | 1300 | /* Status phase from udc */ |
1301 | { | ||
1301 | int rc = -EOPNOTSUPP; | 1302 | int rc = -EOPNOTSUPP; |
1302 | 1303 | ||
1303 | if ((setup->bRequestType & USB_RECIP_MASK) | 1304 | if ((setup->bRequestType & (USB_RECIP_MASK | USB_TYPE_MASK)) |
1304 | == USB_RECIP_ENDPOINT) { | 1305 | == (USB_RECIP_ENDPOINT | USB_TYPE_STANDARD)) { |
1305 | int pipe = get_pipe_by_windex(wIndex); | 1306 | int pipe = get_pipe_by_windex(wIndex); |
1306 | struct fsl_ep *ep; | 1307 | struct fsl_ep *ep; |
1307 | 1308 | ||
@@ -1315,8 +1316,9 @@ static void setup_received_irq(struct fsl_udc *udc, | |||
1315 | ? 1 : 0); | 1316 | ? 1 : 0); |
1316 | spin_lock(&udc->lock); | 1317 | spin_lock(&udc->lock); |
1317 | 1318 | ||
1318 | } else if ((setup->bRequestType & USB_RECIP_MASK) | 1319 | } else if ((setup->bRequestType & (USB_RECIP_MASK |
1319 | == USB_RECIP_DEVICE) { | 1320 | | USB_TYPE_MASK)) == (USB_RECIP_DEVICE |
1321 | | USB_TYPE_STANDARD)) { | ||
1320 | /* Note: The driver has not include OTG support yet. | 1322 | /* Note: The driver has not include OTG support yet. |
1321 | * This will be set when OTG support is added */ | 1323 | * This will be set when OTG support is added */ |
1322 | if (!udc->gadget.is_otg) | 1324 | if (!udc->gadget.is_otg) |
@@ -1329,39 +1331,42 @@ static void setup_received_irq(struct fsl_udc *udc, | |||
1329 | USB_DEVICE_A_ALT_HNP_SUPPORT) | 1331 | USB_DEVICE_A_ALT_HNP_SUPPORT) |
1330 | udc->gadget.a_alt_hnp_support = 1; | 1332 | udc->gadget.a_alt_hnp_support = 1; |
1331 | rc = 0; | 1333 | rc = 0; |
1332 | } | 1334 | } else |
1335 | break; | ||
1336 | |||
1333 | if (rc == 0) { | 1337 | if (rc == 0) { |
1334 | if (ep0_prime_status(udc, EP_DIR_IN)) | 1338 | if (ep0_prime_status(udc, EP_DIR_IN)) |
1335 | ep0stall(udc); | 1339 | ep0stall(udc); |
1336 | } | 1340 | } |
1337 | break; | 1341 | return; |
1338 | } | 1342 | } |
1339 | /* Requests handled by gadget */ | ||
1340 | default: | ||
1341 | if (wLength) { | ||
1342 | /* Data phase from gadget, status phase from udc */ | ||
1343 | udc->ep0_dir = (setup->bRequestType & USB_DIR_IN) | ||
1344 | ? USB_DIR_IN : USB_DIR_OUT; | ||
1345 | spin_unlock(&udc->lock); | ||
1346 | if (udc->driver->setup(&udc->gadget, | ||
1347 | &udc->local_setup_buff) < 0) | ||
1348 | ep0stall(udc); | ||
1349 | spin_lock(&udc->lock); | ||
1350 | udc->ep0_state = (setup->bRequestType & USB_DIR_IN) | ||
1351 | ? DATA_STATE_XMIT : DATA_STATE_RECV; | ||
1352 | 1343 | ||
1353 | } else { | 1344 | default: |
1354 | /* No data phase, IN status from gadget */ | ||
1355 | udc->ep0_dir = USB_DIR_IN; | ||
1356 | spin_unlock(&udc->lock); | ||
1357 | if (udc->driver->setup(&udc->gadget, | ||
1358 | &udc->local_setup_buff) < 0) | ||
1359 | ep0stall(udc); | ||
1360 | spin_lock(&udc->lock); | ||
1361 | udc->ep0_state = WAIT_FOR_OUT_STATUS; | ||
1362 | } | ||
1363 | break; | 1345 | break; |
1364 | } | 1346 | } |
1347 | |||
1348 | /* Requests handled by gadget */ | ||
1349 | if (wLength) { | ||
1350 | /* Data phase from gadget, status phase from udc */ | ||
1351 | udc->ep0_dir = (setup->bRequestType & USB_DIR_IN) | ||
1352 | ? USB_DIR_IN : USB_DIR_OUT; | ||
1353 | spin_unlock(&udc->lock); | ||
1354 | if (udc->driver->setup(&udc->gadget, | ||
1355 | &udc->local_setup_buff) < 0) | ||
1356 | ep0stall(udc); | ||
1357 | spin_lock(&udc->lock); | ||
1358 | udc->ep0_state = (setup->bRequestType & USB_DIR_IN) | ||
1359 | ? DATA_STATE_XMIT : DATA_STATE_RECV; | ||
1360 | } else { | ||
1361 | /* No data phase, IN status from gadget */ | ||
1362 | udc->ep0_dir = USB_DIR_IN; | ||
1363 | spin_unlock(&udc->lock); | ||
1364 | if (udc->driver->setup(&udc->gadget, | ||
1365 | &udc->local_setup_buff) < 0) | ||
1366 | ep0stall(udc); | ||
1367 | spin_lock(&udc->lock); | ||
1368 | udc->ep0_state = WAIT_FOR_OUT_STATUS; | ||
1369 | } | ||
1365 | } | 1370 | } |
1366 | 1371 | ||
1367 | /* Process request for Data or Status phase of ep0 | 1372 | /* Process request for Data or Status phase of ep0 |
diff --git a/drivers/usb/gadget/pxa2xx_udc.c b/drivers/usb/gadget/pxa2xx_udc.c index 72b4ebbf132d..1407ad1c8128 100644 --- a/drivers/usb/gadget/pxa2xx_udc.c +++ b/drivers/usb/gadget/pxa2xx_udc.c | |||
@@ -967,7 +967,7 @@ static int pxa2xx_udc_pullup(struct usb_gadget *_gadget, int is_active) | |||
967 | udc = container_of(_gadget, struct pxa2xx_udc, gadget); | 967 | udc = container_of(_gadget, struct pxa2xx_udc, gadget); |
968 | 968 | ||
969 | /* not all boards support pullup control */ | 969 | /* not all boards support pullup control */ |
970 | if (!udc->mach->udc_command) | 970 | if (!udc->mach->gpio_pullup && !udc->mach->udc_command) |
971 | return -EOPNOTSUPP; | 971 | return -EOPNOTSUPP; |
972 | 972 | ||
973 | is_active = (is_active != 0); | 973 | is_active = (is_active != 0); |
@@ -2309,7 +2309,7 @@ static int pxa2xx_udc_suspend(struct platform_device *dev, pm_message_t state) | |||
2309 | { | 2309 | { |
2310 | struct pxa2xx_udc *udc = platform_get_drvdata(dev); | 2310 | struct pxa2xx_udc *udc = platform_get_drvdata(dev); |
2311 | 2311 | ||
2312 | if (!udc->mach->udc_command) | 2312 | if (!udc->mach->gpio_pullup && !udc->mach->udc_command) |
2313 | WARN("USB host won't detect disconnect!\n"); | 2313 | WARN("USB host won't detect disconnect!\n"); |
2314 | pullup(udc, 0); | 2314 | pullup(udc, 0); |
2315 | 2315 | ||
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index 2f529828c74d..565d6ef4c4cf 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig | |||
@@ -237,7 +237,7 @@ config USB_SL811_CS | |||
237 | module will be called "sl811_cs". | 237 | module will be called "sl811_cs". |
238 | 238 | ||
239 | config USB_R8A66597_HCD | 239 | config USB_R8A66597_HCD |
240 | tristate "R8A66597 HCD suppoort" | 240 | tristate "R8A66597 HCD support" |
241 | depends on USB | 241 | depends on USB |
242 | help | 242 | help |
243 | The R8A66597 is a USB 2.0 host and peripheral controller. | 243 | The R8A66597 is a USB 2.0 host and peripheral controller. |
diff --git a/drivers/usb/host/ehci-au1xxx.c b/drivers/usb/host/ehci-au1xxx.c index 5d1b12aad776..b1d19268cb23 100644 --- a/drivers/usb/host/ehci-au1xxx.c +++ b/drivers/usb/host/ehci-au1xxx.c | |||
@@ -1,8 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * EHCI HCD (Host Controller Driver) for USB. | 2 | * EHCI HCD (Host Controller Driver) for USB. |
3 | * | 3 | * |
4 | * (C) Copyright 2000-2004 David Brownell <dbrownell@users.sourceforge.net> | ||
5 | * | ||
6 | * Bus Glue for AMD Alchemy Au1xxx | 4 | * Bus Glue for AMD Alchemy Au1xxx |
7 | * | 5 | * |
8 | * Based on "ohci-au1xxx.c" by Matt Porter <mporter@kernel.crashing.org> | 6 | * Based on "ohci-au1xxx.c" by Matt Porter <mporter@kernel.crashing.org> |
@@ -196,6 +194,9 @@ static const struct hc_driver ehci_au1xxx_hc_driver = { | |||
196 | 194 | ||
197 | /* | 195 | /* |
198 | * basic lifecycle operations | 196 | * basic lifecycle operations |
197 | * | ||
198 | * FIXME -- ehci_init() doesn't do enough here. | ||
199 | * See ehci-ppc-soc for a complete implementation. | ||
199 | */ | 200 | */ |
200 | .reset = ehci_init, | 201 | .reset = ehci_init, |
201 | .start = ehci_run, | 202 | .start = ehci_run, |
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index c4e15ed1405a..35cdba10411b 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c | |||
@@ -275,58 +275,6 @@ static void ehci_work(struct ehci_hcd *ehci); | |||
275 | 275 | ||
276 | /*-------------------------------------------------------------------------*/ | 276 | /*-------------------------------------------------------------------------*/ |
277 | 277 | ||
278 | #ifdef CONFIG_CPU_FREQ | ||
279 | |||
280 | #include <linux/cpufreq.h> | ||
281 | |||
282 | static void ehci_cpufreq_pause (struct ehci_hcd *ehci) | ||
283 | { | ||
284 | unsigned long flags; | ||
285 | |||
286 | spin_lock_irqsave(&ehci->lock, flags); | ||
287 | if (!ehci->cpufreq_changing++) | ||
288 | qh_inactivate_split_intr_qhs(ehci); | ||
289 | spin_unlock_irqrestore(&ehci->lock, flags); | ||
290 | } | ||
291 | |||
292 | static void ehci_cpufreq_unpause (struct ehci_hcd *ehci) | ||
293 | { | ||
294 | unsigned long flags; | ||
295 | |||
296 | spin_lock_irqsave(&ehci->lock, flags); | ||
297 | if (!--ehci->cpufreq_changing) | ||
298 | qh_reactivate_split_intr_qhs(ehci); | ||
299 | spin_unlock_irqrestore(&ehci->lock, flags); | ||
300 | } | ||
301 | |||
302 | /* | ||
303 | * ehci_cpufreq_notifier is needed to avoid MMF errors that occur when | ||
304 | * EHCI controllers that don't cache many uframes get delayed trying to | ||
305 | * read main memory during CPU frequency transitions. This can cause | ||
306 | * split interrupt transactions to not be completed in the required uframe. | ||
307 | * This has been observed on the Broadcom/ServerWorks HT1000 controller. | ||
308 | */ | ||
309 | static int ehci_cpufreq_notifier(struct notifier_block *nb, unsigned long val, | ||
310 | void *data) | ||
311 | { | ||
312 | struct ehci_hcd *ehci = container_of(nb, struct ehci_hcd, | ||
313 | cpufreq_transition); | ||
314 | |||
315 | switch (val) { | ||
316 | case CPUFREQ_PRECHANGE: | ||
317 | ehci_cpufreq_pause(ehci); | ||
318 | break; | ||
319 | case CPUFREQ_POSTCHANGE: | ||
320 | ehci_cpufreq_unpause(ehci); | ||
321 | break; | ||
322 | } | ||
323 | return 0; | ||
324 | } | ||
325 | |||
326 | #endif | ||
327 | |||
328 | /*-------------------------------------------------------------------------*/ | ||
329 | |||
330 | static void ehci_watchdog (unsigned long param) | 278 | static void ehci_watchdog (unsigned long param) |
331 | { | 279 | { |
332 | struct ehci_hcd *ehci = (struct ehci_hcd *) param; | 280 | struct ehci_hcd *ehci = (struct ehci_hcd *) param; |
@@ -460,10 +408,6 @@ static void ehci_stop (struct usb_hcd *hcd) | |||
460 | ehci_writel(ehci, 0, &ehci->regs->intr_enable); | 408 | ehci_writel(ehci, 0, &ehci->regs->intr_enable); |
461 | spin_unlock_irq(&ehci->lock); | 409 | spin_unlock_irq(&ehci->lock); |
462 | 410 | ||
463 | #ifdef CONFIG_CPU_FREQ | ||
464 | cpufreq_unregister_notifier(&ehci->cpufreq_transition, | ||
465 | CPUFREQ_TRANSITION_NOTIFIER); | ||
466 | #endif | ||
467 | /* let companion controllers work when we aren't */ | 411 | /* let companion controllers work when we aren't */ |
468 | ehci_writel(ehci, 0, &ehci->regs->configured_flag); | 412 | ehci_writel(ehci, 0, &ehci->regs->configured_flag); |
469 | 413 | ||
@@ -569,17 +513,6 @@ static int ehci_init(struct usb_hcd *hcd) | |||
569 | } | 513 | } |
570 | ehci->command = temp; | 514 | ehci->command = temp; |
571 | 515 | ||
572 | #ifdef CONFIG_CPU_FREQ | ||
573 | INIT_LIST_HEAD(&ehci->split_intr_qhs); | ||
574 | /* | ||
575 | * If the EHCI controller caches enough uframes, this probably | ||
576 | * isn't needed unless there are so many low/full speed devices | ||
577 | * that the controller's can't cache it all. | ||
578 | */ | ||
579 | ehci->cpufreq_transition.notifier_call = ehci_cpufreq_notifier; | ||
580 | cpufreq_register_notifier(&ehci->cpufreq_transition, | ||
581 | CPUFREQ_TRANSITION_NOTIFIER); | ||
582 | #endif | ||
583 | return 0; | 516 | return 0; |
584 | } | 517 | } |
585 | 518 | ||
diff --git a/drivers/usb/host/ehci-mem.c b/drivers/usb/host/ehci-mem.c index 8816d09903d0..0431397836f6 100644 --- a/drivers/usb/host/ehci-mem.c +++ b/drivers/usb/host/ehci-mem.c | |||
@@ -94,9 +94,6 @@ static struct ehci_qh *ehci_qh_alloc (struct ehci_hcd *ehci, gfp_t flags) | |||
94 | qh->qh_dma = dma; | 94 | qh->qh_dma = dma; |
95 | // INIT_LIST_HEAD (&qh->qh_list); | 95 | // INIT_LIST_HEAD (&qh->qh_list); |
96 | INIT_LIST_HEAD (&qh->qtd_list); | 96 | INIT_LIST_HEAD (&qh->qtd_list); |
97 | #ifdef CONFIG_CPU_FREQ | ||
98 | INIT_LIST_HEAD (&qh->split_intr_qhs); | ||
99 | #endif | ||
100 | 97 | ||
101 | /* dummy td enables safe urb queuing */ | 98 | /* dummy td enables safe urb queuing */ |
102 | qh->dummy = ehci_qtd_alloc (ehci, flags); | 99 | qh->dummy = ehci_qtd_alloc (ehci, flags); |
diff --git a/drivers/usb/host/ehci-ppc-soc.c b/drivers/usb/host/ehci-ppc-soc.c index c2cedb09ed8b..4f99b0eb27bc 100644 --- a/drivers/usb/host/ehci-ppc-soc.c +++ b/drivers/usb/host/ehci-ppc-soc.c | |||
@@ -6,7 +6,7 @@ | |||
6 | * Bus Glue for PPC On-Chip EHCI driver | 6 | * Bus Glue for PPC On-Chip EHCI driver |
7 | * Tested on AMCC 440EPx | 7 | * Tested on AMCC 440EPx |
8 | * | 8 | * |
9 | * Based on "ehci-au12xx.c" by David Brownell <dbrownell@users.sourceforge.net> | 9 | * Based on "ehci-au1xxx.c" by K.Boge <karsten.boge@amd.com> |
10 | * | 10 | * |
11 | * This file is licenced under the GPL. | 11 | * This file is licenced under the GPL. |
12 | */ | 12 | */ |
@@ -15,6 +15,24 @@ | |||
15 | 15 | ||
16 | extern int usb_disabled(void); | 16 | extern int usb_disabled(void); |
17 | 17 | ||
18 | /* called during probe() after chip reset completes */ | ||
19 | static int ehci_ppc_soc_setup(struct usb_hcd *hcd) | ||
20 | { | ||
21 | struct ehci_hcd *ehci = hcd_to_ehci(hcd); | ||
22 | int retval; | ||
23 | |||
24 | retval = ehci_halt(ehci); | ||
25 | if (retval) | ||
26 | return retval; | ||
27 | |||
28 | retval = ehci_init(hcd); | ||
29 | if (retval) | ||
30 | return retval; | ||
31 | |||
32 | ehci->sbrn = 0x20; | ||
33 | return ehci_reset(ehci); | ||
34 | } | ||
35 | |||
18 | /** | 36 | /** |
19 | * usb_ehci_ppc_soc_probe - initialize PPC-SoC-based HCDs | 37 | * usb_ehci_ppc_soc_probe - initialize PPC-SoC-based HCDs |
20 | * Context: !in_interrupt() | 38 | * Context: !in_interrupt() |
@@ -120,7 +138,7 @@ static const struct hc_driver ehci_ppc_soc_hc_driver = { | |||
120 | /* | 138 | /* |
121 | * basic lifecycle operations | 139 | * basic lifecycle operations |
122 | */ | 140 | */ |
123 | .reset = ehci_init, | 141 | .reset = ehci_ppc_soc_setup, |
124 | .start = ehci_run, | 142 | .start = ehci_run, |
125 | .stop = ehci_stop, | 143 | .stop = ehci_stop, |
126 | .shutdown = ehci_shutdown, | 144 | .shutdown = ehci_shutdown, |
diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c index 2284028f8aa5..140bfa423e07 100644 --- a/drivers/usb/host/ehci-q.c +++ b/drivers/usb/host/ehci-q.c | |||
@@ -312,10 +312,6 @@ qh_completions (struct ehci_hcd *ehci, struct ehci_qh *qh) | |||
312 | struct urb *urb; | 312 | struct urb *urb; |
313 | u32 token = 0; | 313 | u32 token = 0; |
314 | 314 | ||
315 | /* ignore QHs that are currently inactive */ | ||
316 | if (qh->hw_info1 & __constant_cpu_to_le32(QH_INACTIVATE)) | ||
317 | break; | ||
318 | |||
319 | qtd = list_entry (entry, struct ehci_qtd, qtd_list); | 315 | qtd = list_entry (entry, struct ehci_qtd, qtd_list); |
320 | urb = qtd->urb; | 316 | urb = qtd->urb; |
321 | 317 | ||
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c index d4a8ace49676..e682f2342ef8 100644 --- a/drivers/usb/host/ehci-sched.c +++ b/drivers/usb/host/ehci-sched.c | |||
@@ -479,109 +479,6 @@ static int disable_periodic (struct ehci_hcd *ehci) | |||
479 | } | 479 | } |
480 | 480 | ||
481 | /*-------------------------------------------------------------------------*/ | 481 | /*-------------------------------------------------------------------------*/ |
482 | #ifdef CONFIG_CPU_FREQ | ||
483 | |||
484 | static int safe_to_modify_i (struct ehci_hcd *ehci, struct ehci_qh *qh) | ||
485 | { | ||
486 | int now; /* current (frame * 8) + uframe */ | ||
487 | int prev_start, next_start; /* uframes from/to split start */ | ||
488 | int start_uframe = ffs(le32_to_cpup (&qh->hw_info2) & QH_SMASK); | ||
489 | int end_uframe = fls((le32_to_cpup (&qh->hw_info2) & QH_CMASK) >> 8); | ||
490 | int split_duration = end_uframe - start_uframe; | ||
491 | |||
492 | now = readl(&ehci->regs->frame_index) % (ehci->periodic_size << 3); | ||
493 | |||
494 | next_start = ((1024 << 3) + (qh->start << 3) + start_uframe - now) | ||
495 | % (qh->period << 3); | ||
496 | prev_start = (qh->period << 3) - next_start; | ||
497 | |||
498 | /* | ||
499 | * Make sure there will be at least one uframe when qh is safe. | ||
500 | */ | ||
501 | if ((qh->period << 3) <= (ehci->i_thresh + 2 + split_duration)) | ||
502 | /* never safe */ | ||
503 | return -EINVAL; | ||
504 | |||
505 | /* | ||
506 | * Wait 1 uframe after transaction should have started, to make | ||
507 | * sure controller has time to write back overlay, so we can | ||
508 | * check QTD_STS_STS to see if transaction is in progress. | ||
509 | */ | ||
510 | if ((next_start > ehci->i_thresh) && (prev_start > 1)) | ||
511 | /* safe to set "i" bit if split isn't in progress */ | ||
512 | return (qh->hw_token & STATUS_BIT(ehci)) ? 0 : 1; | ||
513 | else | ||
514 | return 0; | ||
515 | } | ||
516 | |||
517 | /* Set inactivate bit for all the split interrupt QHs. */ | ||
518 | static void qh_inactivate_split_intr_qhs (struct ehci_hcd *ehci) | ||
519 | { | ||
520 | struct ehci_qh *qh; | ||
521 | int not_done, safe; | ||
522 | u32 inactivate = INACTIVATE_BIT(ehci); | ||
523 | u32 active = ACTIVE_BIT(ehci); | ||
524 | |||
525 | do { | ||
526 | not_done = 0; | ||
527 | list_for_each_entry(qh, &ehci->split_intr_qhs, | ||
528 | split_intr_qhs) { | ||
529 | if (qh->hw_info1 & inactivate) | ||
530 | /* already off */ | ||
531 | continue; | ||
532 | /* | ||
533 | * To avoid setting "I" after the start split happens, | ||
534 | * don't set it if the QH might be cached in the | ||
535 | * controller. Some HCs (Broadcom/ServerWorks HT1000) | ||
536 | * will stop in the middle of a split transaction when | ||
537 | * the "I" bit is set. | ||
538 | */ | ||
539 | safe = safe_to_modify_i(ehci, qh); | ||
540 | if (safe == 0) { | ||
541 | not_done = 1; | ||
542 | } else if (safe > 0) { | ||
543 | qh->was_active = qh->hw_token & active; | ||
544 | qh->hw_info1 |= inactivate; | ||
545 | } | ||
546 | } | ||
547 | } while (not_done); | ||
548 | wmb(); | ||
549 | } | ||
550 | |||
551 | static void qh_reactivate_split_intr_qhs (struct ehci_hcd *ehci) | ||
552 | { | ||
553 | struct ehci_qh *qh; | ||
554 | u32 token; | ||
555 | int not_done, safe; | ||
556 | u32 inactivate = INACTIVATE_BIT(ehci); | ||
557 | u32 active = ACTIVE_BIT(ehci); | ||
558 | u32 halt = HALT_BIT(ehci); | ||
559 | |||
560 | do { | ||
561 | not_done = 0; | ||
562 | list_for_each_entry(qh, &ehci->split_intr_qhs, split_intr_qhs) { | ||
563 | if (!(qh->hw_info1 & inactivate)) /* already on */ | ||
564 | continue; | ||
565 | /* | ||
566 | * Don't reactivate if cached, or controller might | ||
567 | * overwrite overlay after we modify it! | ||
568 | */ | ||
569 | safe = safe_to_modify_i(ehci, qh); | ||
570 | if (safe == 0) { | ||
571 | not_done = 1; | ||
572 | } else if (safe > 0) { | ||
573 | /* See EHCI 1.0 section 4.15.2.4. */ | ||
574 | token = qh->hw_token; | ||
575 | qh->hw_token = (token | halt) & ~active; | ||
576 | wmb(); | ||
577 | qh->hw_info1 &= ~inactivate; | ||
578 | wmb(); | ||
579 | qh->hw_token = (token & ~halt) | qh->was_active; | ||
580 | } | ||
581 | } | ||
582 | } while (not_done); | ||
583 | } | ||
584 | #endif | ||
585 | 482 | ||
586 | /* periodic schedule slots have iso tds (normal or split) first, then a | 483 | /* periodic schedule slots have iso tds (normal or split) first, then a |
587 | * sparse tree for active interrupt transfers. | 484 | * sparse tree for active interrupt transfers. |
@@ -599,17 +496,6 @@ static int qh_link_periodic (struct ehci_hcd *ehci, struct ehci_qh *qh) | |||
599 | period, hc32_to_cpup(ehci, &qh->hw_info2) & (QH_CMASK | QH_SMASK), | 496 | period, hc32_to_cpup(ehci, &qh->hw_info2) & (QH_CMASK | QH_SMASK), |
600 | qh, qh->start, qh->usecs, qh->c_usecs); | 497 | qh, qh->start, qh->usecs, qh->c_usecs); |
601 | 498 | ||
602 | #ifdef CONFIG_CPU_FREQ | ||
603 | /* | ||
604 | * If low/full speed interrupt QHs are inactive (because of | ||
605 | * cpufreq changing processor speeds), start QH with I flag set-- | ||
606 | * it will automatically be cleared when cpufreq is done. | ||
607 | */ | ||
608 | if (ehci->cpufreq_changing) | ||
609 | if (!(qh->hw_info1 & (cpu_to_le32(1 << 13)))) | ||
610 | qh->hw_info1 |= INACTIVATE_BIT(ehci); | ||
611 | #endif | ||
612 | |||
613 | /* high bandwidth, or otherwise every microframe */ | 499 | /* high bandwidth, or otherwise every microframe */ |
614 | if (period == 0) | 500 | if (period == 0) |
615 | period = 1; | 501 | period = 1; |
@@ -658,12 +544,6 @@ static int qh_link_periodic (struct ehci_hcd *ehci, struct ehci_qh *qh) | |||
658 | ? ((qh->usecs + qh->c_usecs) / qh->period) | 544 | ? ((qh->usecs + qh->c_usecs) / qh->period) |
659 | : (qh->usecs * 8); | 545 | : (qh->usecs * 8); |
660 | 546 | ||
661 | #ifdef CONFIG_CPU_FREQ | ||
662 | /* add qh to list of low/full speed interrupt QHs, if applicable */ | ||
663 | if (!(qh->hw_info1 & (cpu_to_le32(1 << 13)))) { | ||
664 | list_add(&qh->split_intr_qhs, &ehci->split_intr_qhs); | ||
665 | } | ||
666 | #endif | ||
667 | /* maybe enable periodic schedule processing */ | 547 | /* maybe enable periodic schedule processing */ |
668 | if (!ehci->periodic_sched++) | 548 | if (!ehci->periodic_sched++) |
669 | return enable_periodic (ehci); | 549 | return enable_periodic (ehci); |
@@ -683,13 +563,6 @@ static void qh_unlink_periodic (struct ehci_hcd *ehci, struct ehci_qh *qh) | |||
683 | // THEN | 563 | // THEN |
684 | // qh->hw_info1 |= __constant_cpu_to_hc32(1 << 7 /* "ignore" */); | 564 | // qh->hw_info1 |= __constant_cpu_to_hc32(1 << 7 /* "ignore" */); |
685 | 565 | ||
686 | #ifdef CONFIG_CPU_FREQ | ||
687 | /* remove qh from list of low/full speed interrupt QHs */ | ||
688 | if (!(qh->hw_info1 & (cpu_to_le32(1 << 13)))) { | ||
689 | list_del_init(&qh->split_intr_qhs); | ||
690 | } | ||
691 | #endif | ||
692 | |||
693 | /* high bandwidth, or otherwise part of every microframe */ | 566 | /* high bandwidth, or otherwise part of every microframe */ |
694 | if ((period = qh->period) == 0) | 567 | if ((period = qh->period) == 0) |
695 | period = 1; | 568 | period = 1; |
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h index 2c68a04230c1..951d69fec513 100644 --- a/drivers/usb/host/ehci.h +++ b/drivers/usb/host/ehci.h | |||
@@ -71,12 +71,6 @@ struct ehci_hcd { /* one per controller */ | |||
71 | __u32 hcs_params; /* cached register copy */ | 71 | __u32 hcs_params; /* cached register copy */ |
72 | spinlock_t lock; | 72 | spinlock_t lock; |
73 | 73 | ||
74 | #ifdef CONFIG_CPU_FREQ | ||
75 | struct notifier_block cpufreq_transition; | ||
76 | int cpufreq_changing; | ||
77 | struct list_head split_intr_qhs; | ||
78 | #endif | ||
79 | |||
80 | /* async schedule support */ | 74 | /* async schedule support */ |
81 | struct ehci_qh *async; | 75 | struct ehci_qh *async; |
82 | struct ehci_qh *reclaim; | 76 | struct ehci_qh *reclaim; |
@@ -439,10 +433,6 @@ struct ehci_qh { | |||
439 | __hc32 hw_next; /* see EHCI 3.6.1 */ | 433 | __hc32 hw_next; /* see EHCI 3.6.1 */ |
440 | __hc32 hw_info1; /* see EHCI 3.6.2 */ | 434 | __hc32 hw_info1; /* see EHCI 3.6.2 */ |
441 | #define QH_HEAD 0x00008000 | 435 | #define QH_HEAD 0x00008000 |
442 | #define QH_INACTIVATE 0x00000080 | ||
443 | |||
444 | #define INACTIVATE_BIT(ehci) cpu_to_hc32(ehci, QH_INACTIVATE) | ||
445 | |||
446 | __hc32 hw_info2; /* see EHCI 3.6.2 */ | 436 | __hc32 hw_info2; /* see EHCI 3.6.2 */ |
447 | #define QH_SMASK 0x000000ff | 437 | #define QH_SMASK 0x000000ff |
448 | #define QH_CMASK 0x0000ff00 | 438 | #define QH_CMASK 0x0000ff00 |
@@ -492,10 +482,6 @@ struct ehci_qh { | |||
492 | unsigned short start; /* where polling starts */ | 482 | unsigned short start; /* where polling starts */ |
493 | #define NO_FRAME ((unsigned short)~0) /* pick new start */ | 483 | #define NO_FRAME ((unsigned short)~0) /* pick new start */ |
494 | struct usb_device *dev; /* access to TT */ | 484 | struct usb_device *dev; /* access to TT */ |
495 | #ifdef CONFIG_CPU_FREQ | ||
496 | struct list_head split_intr_qhs; /* list of split qhs */ | ||
497 | __le32 was_active; /* active bit before "i" set */ | ||
498 | #endif | ||
499 | } __attribute__ ((aligned (32))); | 485 | } __attribute__ ((aligned (32))); |
500 | 486 | ||
501 | /*-------------------------------------------------------------------------*/ | 487 | /*-------------------------------------------------------------------------*/ |
diff --git a/drivers/usb/host/ohci-dbg.c b/drivers/usb/host/ohci-dbg.c index 6f9e43e9a6ca..f61c6cdd06f2 100644 --- a/drivers/usb/host/ohci-dbg.c +++ b/drivers/usb/host/ohci-dbg.c | |||
@@ -74,7 +74,7 @@ urb_print (struct urb * urb, char * str, int small) | |||
74 | 74 | ||
75 | #define ohci_dbg_sw(ohci, next, size, format, arg...) \ | 75 | #define ohci_dbg_sw(ohci, next, size, format, arg...) \ |
76 | do { \ | 76 | do { \ |
77 | if (next) { \ | 77 | if (next != NULL) { \ |
78 | unsigned s_len; \ | 78 | unsigned s_len; \ |
79 | s_len = scnprintf (*next, *size, format, ## arg ); \ | 79 | s_len = scnprintf (*next, *size, format, ## arg ); \ |
80 | *size -= s_len; *next += s_len; \ | 80 | *size -= s_len; *next += s_len; \ |
diff --git a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c index d60f1985320c..40a1de4c256e 100644 --- a/drivers/usb/host/r8a66597-hcd.c +++ b/drivers/usb/host/r8a66597-hcd.c | |||
@@ -2208,8 +2208,6 @@ static int __init r8a66597_probe(struct platform_device *pdev) | |||
2208 | clean_up: | 2208 | clean_up: |
2209 | if (reg) | 2209 | if (reg) |
2210 | iounmap(reg); | 2210 | iounmap(reg); |
2211 | if (res) | ||
2212 | release_mem_region(res->start, 1); | ||
2213 | 2211 | ||
2214 | return ret; | 2212 | return ret; |
2215 | } | 2213 | } |
diff --git a/drivers/usb/host/u132-hcd.c b/drivers/usb/host/u132-hcd.c index 7f765ec038cd..b88eb3c62c02 100644 --- a/drivers/usb/host/u132-hcd.c +++ b/drivers/usb/host/u132-hcd.c | |||
@@ -1520,12 +1520,15 @@ static void u132_hcd_endp_work_scheduler(struct work_struct *work) | |||
1520 | } | 1520 | } |
1521 | } | 1521 | } |
1522 | } | 1522 | } |
1523 | #ifdef CONFIG_PM | ||
1523 | 1524 | ||
1524 | static void port_power(struct u132 *u132, int pn, int is_on) | 1525 | static void port_power(struct u132 *u132, int pn, int is_on) |
1525 | { | 1526 | { |
1526 | u132->port[pn].power = is_on; | 1527 | u132->port[pn].power = is_on; |
1527 | } | 1528 | } |
1528 | 1529 | ||
1530 | #endif | ||
1531 | |||
1529 | static void u132_power(struct u132 *u132, int is_on) | 1532 | static void u132_power(struct u132 *u132, int is_on) |
1530 | { | 1533 | { |
1531 | struct usb_hcd *hcd = u132_to_hcd(u132) | 1534 | struct usb_hcd *hcd = u132_to_hcd(u132) |
diff --git a/drivers/usb/serial/airprime.c b/drivers/usb/serial/airprime.c index cff6fd190a28..77bb893bf2e9 100644 --- a/drivers/usb/serial/airprime.c +++ b/drivers/usb/serial/airprime.c | |||
@@ -18,7 +18,6 @@ | |||
18 | 18 | ||
19 | static struct usb_device_id id_table [] = { | 19 | static struct usb_device_id id_table [] = { |
20 | { USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */ | 20 | { USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */ |
21 | { USB_DEVICE(0x413c, 0x8115) }, /* Dell Wireless HSDPA 5500 */ | ||
22 | { }, | 21 | { }, |
23 | }; | 22 | }; |
24 | MODULE_DEVICE_TABLE(usb, id_table); | 23 | MODULE_DEVICE_TABLE(usb, id_table); |
diff --git a/drivers/usb/serial/belkin_sa.c b/drivers/usb/serial/belkin_sa.c index e67ce25f7512..86724e885704 100644 --- a/drivers/usb/serial/belkin_sa.c +++ b/drivers/usb/serial/belkin_sa.c | |||
@@ -383,6 +383,10 @@ static void belkin_sa_set_termios (struct usb_serial_port *port, struct ktermios | |||
383 | } | 383 | } |
384 | 384 | ||
385 | baud = tty_get_baud_rate(port->tty); | 385 | baud = tty_get_baud_rate(port->tty); |
386 | if (baud == 0) { | ||
387 | dbg("%s - tty_get_baud_rate says 0 baud", __FUNCTION__); | ||
388 | return; | ||
389 | } | ||
386 | urb_value = BELKIN_SA_BAUD(baud); | 390 | urb_value = BELKIN_SA_BAUD(baud); |
387 | /* Clip to maximum speed */ | 391 | /* Clip to maximum speed */ |
388 | if (urb_value == 0) | 392 | if (urb_value == 0) |
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index 7b1673a44077..1370c423d7c2 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
@@ -538,6 +538,8 @@ static struct usb_device_id id_table_combined [] = { | |||
538 | { USB_DEVICE(FTDI_VID, FTDI_TERATRONIK_VCP_PID) }, | 538 | { USB_DEVICE(FTDI_VID, FTDI_TERATRONIK_VCP_PID) }, |
539 | { USB_DEVICE(FTDI_VID, FTDI_TERATRONIK_D2XX_PID) }, | 539 | { USB_DEVICE(FTDI_VID, FTDI_TERATRONIK_D2XX_PID) }, |
540 | { USB_DEVICE(EVOLUTION_VID, EVOLUTION_ER1_PID) }, | 540 | { USB_DEVICE(EVOLUTION_VID, EVOLUTION_ER1_PID) }, |
541 | { USB_DEVICE(EVOLUTION_VID, EVO_HYBRID_PID) }, | ||
542 | { USB_DEVICE(EVOLUTION_VID, EVO_RCM4_PID) }, | ||
541 | { USB_DEVICE(FTDI_VID, FTDI_ARTEMIS_PID) }, | 543 | { USB_DEVICE(FTDI_VID, FTDI_ARTEMIS_PID) }, |
542 | { USB_DEVICE(FTDI_VID, FTDI_ATIK_ATK16_PID) }, | 544 | { USB_DEVICE(FTDI_VID, FTDI_ATIK_ATK16_PID) }, |
543 | { USB_DEVICE(FTDI_VID, FTDI_ATIK_ATK16C_PID) }, | 545 | { USB_DEVICE(FTDI_VID, FTDI_ATIK_ATK16C_PID) }, |
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h index d9e49716db13..c70e1de6389e 100644 --- a/drivers/usb/serial/ftdi_sio.h +++ b/drivers/usb/serial/ftdi_sio.h | |||
@@ -430,6 +430,9 @@ | |||
430 | */ | 430 | */ |
431 | #define EVOLUTION_VID 0xDEEE /* Vendor ID */ | 431 | #define EVOLUTION_VID 0xDEEE /* Vendor ID */ |
432 | #define EVOLUTION_ER1_PID 0x0300 /* ER1 Control Module */ | 432 | #define EVOLUTION_ER1_PID 0x0300 /* ER1 Control Module */ |
433 | #define EVO_8U232AM_PID 0x02FF /* Evolution robotics RCM2 (FT232AM)*/ | ||
434 | #define EVO_HYBRID_PID 0x0302 /* Evolution robotics RCM4 PID (FT232BM)*/ | ||
435 | #define EVO_RCM4_PID 0x0303 /* Evolution robotics RCM4 PID */ | ||
433 | 436 | ||
434 | /* Pyramid Computer GmbH */ | 437 | /* Pyramid Computer GmbH */ |
435 | #define FTDI_PYRAMID_PID 0xE6C8 /* Pyramid Appliance Display */ | 438 | #define FTDI_PYRAMID_PID 0xE6C8 /* Pyramid Appliance Display */ |
diff --git a/drivers/usb/serial/garmin_gps.c b/drivers/usb/serial/garmin_gps.c index 04bd3b7a2985..f1c90cfe7251 100644 --- a/drivers/usb/serial/garmin_gps.c +++ b/drivers/usb/serial/garmin_gps.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Garmin GPS driver | 2 | * Garmin GPS driver |
3 | * | 3 | * |
4 | * Copyright (C) 2006 Hermann Kneissel herkne@users.sourceforge.net | 4 | * Copyright (C) 2006,2007 Hermann Kneissel herkne@users.sourceforge.net |
5 | * | 5 | * |
6 | * The latest version of the driver can be found at | 6 | * The latest version of the driver can be found at |
7 | * http://sourceforge.net/projects/garmin-gps/ | 7 | * http://sourceforge.net/projects/garmin-gps/ |
@@ -34,6 +34,7 @@ | |||
34 | #include <linux/module.h> | 34 | #include <linux/module.h> |
35 | #include <linux/spinlock.h> | 35 | #include <linux/spinlock.h> |
36 | #include <asm/uaccess.h> | 36 | #include <asm/uaccess.h> |
37 | #include <asm/atomic.h> | ||
37 | #include <linux/usb.h> | 38 | #include <linux/usb.h> |
38 | #include <linux/usb/serial.h> | 39 | #include <linux/usb/serial.h> |
39 | 40 | ||
@@ -52,7 +53,7 @@ static int debug = 0; | |||
52 | */ | 53 | */ |
53 | 54 | ||
54 | #define VERSION_MAJOR 0 | 55 | #define VERSION_MAJOR 0 |
55 | #define VERSION_MINOR 28 | 56 | #define VERSION_MINOR 31 |
56 | 57 | ||
57 | #define _STR(s) #s | 58 | #define _STR(s) #s |
58 | #define _DRIVER_VERSION(a,b) "v" _STR(a) "." _STR(b) | 59 | #define _DRIVER_VERSION(a,b) "v" _STR(a) "." _STR(b) |
@@ -141,6 +142,8 @@ struct garmin_data { | |||
141 | __u8 inbuffer [GPS_IN_BUFSIZ]; /* tty -> usb */ | 142 | __u8 inbuffer [GPS_IN_BUFSIZ]; /* tty -> usb */ |
142 | __u8 outbuffer[GPS_OUT_BUFSIZ]; /* usb -> tty */ | 143 | __u8 outbuffer[GPS_OUT_BUFSIZ]; /* usb -> tty */ |
143 | __u8 privpkt[4*6]; | 144 | __u8 privpkt[4*6]; |
145 | atomic_t req_count; | ||
146 | atomic_t resp_count; | ||
144 | spinlock_t lock; | 147 | spinlock_t lock; |
145 | struct list_head pktlist; | 148 | struct list_head pktlist; |
146 | }; | 149 | }; |
@@ -171,8 +174,6 @@ struct garmin_data { | |||
171 | #define CLEAR_HALT_REQUIRED 0x0001 | 174 | #define CLEAR_HALT_REQUIRED 0x0001 |
172 | 175 | ||
173 | #define FLAGS_QUEUING 0x0100 | 176 | #define FLAGS_QUEUING 0x0100 |
174 | #define FLAGS_APP_RESP_SEEN 0x0200 | ||
175 | #define FLAGS_APP_REQ_SEEN 0x0400 | ||
176 | #define FLAGS_DROP_DATA 0x0800 | 177 | #define FLAGS_DROP_DATA 0x0800 |
177 | 178 | ||
178 | #define FLAGS_GSP_SKIP 0x1000 | 179 | #define FLAGS_GSP_SKIP 0x1000 |
@@ -186,7 +187,8 @@ struct garmin_data { | |||
186 | /* function prototypes */ | 187 | /* function prototypes */ |
187 | static void gsp_next_packet(struct garmin_data * garmin_data_p); | 188 | static void gsp_next_packet(struct garmin_data * garmin_data_p); |
188 | static int garmin_write_bulk(struct usb_serial_port *port, | 189 | static int garmin_write_bulk(struct usb_serial_port *port, |
189 | const unsigned char *buf, int count); | 190 | const unsigned char *buf, int count, |
191 | int dismiss_ack); | ||
190 | 192 | ||
191 | /* some special packets to be send or received */ | 193 | /* some special packets to be send or received */ |
192 | static unsigned char const GARMIN_START_SESSION_REQ[] | 194 | static unsigned char const GARMIN_START_SESSION_REQ[] |
@@ -233,9 +235,7 @@ static struct usb_driver garmin_driver = { | |||
233 | 235 | ||
234 | static inline int noResponseFromAppLayer(struct garmin_data * garmin_data_p) | 236 | static inline int noResponseFromAppLayer(struct garmin_data * garmin_data_p) |
235 | { | 237 | { |
236 | return ((garmin_data_p->flags | 238 | return atomic_read(&garmin_data_p->req_count) == atomic_read(&garmin_data_p->resp_count); |
237 | & (FLAGS_APP_REQ_SEEN|FLAGS_APP_RESP_SEEN)) | ||
238 | == FLAGS_APP_REQ_SEEN); | ||
239 | } | 239 | } |
240 | 240 | ||
241 | 241 | ||
@@ -463,7 +463,7 @@ static int gsp_rec_packet(struct garmin_data * garmin_data_p, int count) | |||
463 | usbdata[2] = __cpu_to_le32(size); | 463 | usbdata[2] = __cpu_to_le32(size); |
464 | 464 | ||
465 | garmin_write_bulk (garmin_data_p->port, garmin_data_p->inbuffer, | 465 | garmin_write_bulk (garmin_data_p->port, garmin_data_p->inbuffer, |
466 | GARMIN_PKTHDR_LENGTH+size); | 466 | GARMIN_PKTHDR_LENGTH+size, 0); |
467 | 467 | ||
468 | /* if this was an abort-transfer command, flush all | 468 | /* if this was an abort-transfer command, flush all |
469 | queued data. */ | 469 | queued data. */ |
@@ -818,7 +818,7 @@ static int nat_receive(struct garmin_data * garmin_data_p, | |||
818 | if (garmin_data_p->insize >= len) { | 818 | if (garmin_data_p->insize >= len) { |
819 | garmin_write_bulk (garmin_data_p->port, | 819 | garmin_write_bulk (garmin_data_p->port, |
820 | garmin_data_p->inbuffer, | 820 | garmin_data_p->inbuffer, |
821 | len); | 821 | len, 0); |
822 | garmin_data_p->insize = 0; | 822 | garmin_data_p->insize = 0; |
823 | 823 | ||
824 | /* if this was an abort-transfer command, | 824 | /* if this was an abort-transfer command, |
@@ -893,10 +893,11 @@ static int garmin_clear(struct garmin_data * garmin_data_p) | |||
893 | 893 | ||
894 | struct usb_serial_port *port = garmin_data_p->port; | 894 | struct usb_serial_port *port = garmin_data_p->port; |
895 | 895 | ||
896 | if (port != NULL && garmin_data_p->flags & FLAGS_APP_RESP_SEEN) { | 896 | if (port != NULL && atomic_read(&garmin_data_p->resp_count)) { |
897 | /* send a terminate command */ | 897 | /* send a terminate command */ |
898 | status = garmin_write_bulk(port, GARMIN_STOP_TRANSFER_REQ, | 898 | status = garmin_write_bulk(port, GARMIN_STOP_TRANSFER_REQ, |
899 | sizeof(GARMIN_STOP_TRANSFER_REQ)); | 899 | sizeof(GARMIN_STOP_TRANSFER_REQ), |
900 | 1); | ||
900 | } | 901 | } |
901 | 902 | ||
902 | /* flush all queued data */ | 903 | /* flush all queued data */ |
@@ -939,7 +940,8 @@ static int garmin_init_session(struct usb_serial_port *port) | |||
939 | dbg("%s - starting session ...", __FUNCTION__); | 940 | dbg("%s - starting session ...", __FUNCTION__); |
940 | garmin_data_p->state = STATE_ACTIVE; | 941 | garmin_data_p->state = STATE_ACTIVE; |
941 | status = garmin_write_bulk(port, GARMIN_START_SESSION_REQ, | 942 | status = garmin_write_bulk(port, GARMIN_START_SESSION_REQ, |
942 | sizeof(GARMIN_START_SESSION_REQ)); | 943 | sizeof(GARMIN_START_SESSION_REQ), |
944 | 0); | ||
943 | 945 | ||
944 | if (status >= 0) { | 946 | if (status >= 0) { |
945 | 947 | ||
@@ -950,7 +952,8 @@ static int garmin_init_session(struct usb_serial_port *port) | |||
950 | /* not needed, but the win32 driver does it too ... */ | 952 | /* not needed, but the win32 driver does it too ... */ |
951 | status = garmin_write_bulk(port, | 953 | status = garmin_write_bulk(port, |
952 | GARMIN_START_SESSION_REQ2, | 954 | GARMIN_START_SESSION_REQ2, |
953 | sizeof(GARMIN_START_SESSION_REQ2)); | 955 | sizeof(GARMIN_START_SESSION_REQ2), |
956 | 0); | ||
954 | if (status >= 0) { | 957 | if (status >= 0) { |
955 | status = 0; | 958 | status = 0; |
956 | spin_lock_irqsave(&garmin_data_p->lock, flags); | 959 | spin_lock_irqsave(&garmin_data_p->lock, flags); |
@@ -987,6 +990,8 @@ static int garmin_open (struct usb_serial_port *port, struct file *filp) | |||
987 | garmin_data_p->mode = initial_mode; | 990 | garmin_data_p->mode = initial_mode; |
988 | garmin_data_p->count = 0; | 991 | garmin_data_p->count = 0; |
989 | garmin_data_p->flags = 0; | 992 | garmin_data_p->flags = 0; |
993 | atomic_set(&garmin_data_p->req_count, 0); | ||
994 | atomic_set(&garmin_data_p->resp_count, 0); | ||
990 | spin_unlock_irqrestore(&garmin_data_p->lock, flags); | 995 | spin_unlock_irqrestore(&garmin_data_p->lock, flags); |
991 | 996 | ||
992 | /* shutdown any bulk reads that might be going on */ | 997 | /* shutdown any bulk reads that might be going on */ |
@@ -1035,28 +1040,39 @@ static void garmin_write_bulk_callback (struct urb *urb) | |||
1035 | { | 1040 | { |
1036 | unsigned long flags; | 1041 | unsigned long flags; |
1037 | struct usb_serial_port *port = (struct usb_serial_port *)urb->context; | 1042 | struct usb_serial_port *port = (struct usb_serial_port *)urb->context; |
1038 | struct garmin_data * garmin_data_p = usb_get_serial_port_data(port); | ||
1039 | int status = urb->status; | 1043 | int status = urb->status; |
1040 | 1044 | ||
1041 | /* free up the transfer buffer, as usb_free_urb() does not do this */ | 1045 | if (port) { |
1042 | kfree (urb->transfer_buffer); | 1046 | struct garmin_data * garmin_data_p = usb_get_serial_port_data(port); |
1043 | 1047 | ||
1044 | dbg("%s - port %d", __FUNCTION__, port->number); | 1048 | dbg("%s - port %d", __FUNCTION__, port->number); |
1045 | 1049 | ||
1046 | if (status) { | 1050 | if (GARMIN_LAYERID_APPL == getLayerId(urb->transfer_buffer) |
1047 | dbg("%s - nonzero write bulk status received: %d", | 1051 | && (garmin_data_p->mode == MODE_GARMIN_SERIAL)) { |
1048 | __FUNCTION__, status); | 1052 | gsp_send_ack(garmin_data_p, ((__u8 *)urb->transfer_buffer)[4]); |
1049 | spin_lock_irqsave(&garmin_data_p->lock, flags); | 1053 | } |
1050 | garmin_data_p->flags |= CLEAR_HALT_REQUIRED; | 1054 | |
1051 | spin_unlock_irqrestore(&garmin_data_p->lock, flags); | 1055 | if (status) { |
1056 | dbg("%s - nonzero write bulk status received: %d", | ||
1057 | __FUNCTION__, urb->status); | ||
1058 | spin_lock_irqsave(&garmin_data_p->lock, flags); | ||
1059 | garmin_data_p->flags |= CLEAR_HALT_REQUIRED; | ||
1060 | spin_unlock_irqrestore(&garmin_data_p->lock, flags); | ||
1061 | } | ||
1062 | |||
1063 | usb_serial_port_softint(port); | ||
1052 | } | 1064 | } |
1053 | 1065 | ||
1054 | usb_serial_port_softint(port); | 1066 | /* Ignore errors that resulted from garmin_write_bulk with dismiss_ack=1 */ |
1067 | |||
1068 | /* free up the transfer buffer, as usb_free_urb() does not do this */ | ||
1069 | kfree (urb->transfer_buffer); | ||
1055 | } | 1070 | } |
1056 | 1071 | ||
1057 | 1072 | ||
1058 | static int garmin_write_bulk (struct usb_serial_port *port, | 1073 | static int garmin_write_bulk (struct usb_serial_port *port, |
1059 | const unsigned char *buf, int count) | 1074 | const unsigned char *buf, int count, |
1075 | int dismiss_ack) | ||
1060 | { | 1076 | { |
1061 | unsigned long flags; | 1077 | unsigned long flags; |
1062 | struct usb_serial *serial = port->serial; | 1078 | struct usb_serial *serial = port->serial; |
@@ -1093,13 +1109,12 @@ static int garmin_write_bulk (struct usb_serial_port *port, | |||
1093 | usb_sndbulkpipe (serial->dev, | 1109 | usb_sndbulkpipe (serial->dev, |
1094 | port->bulk_out_endpointAddress), | 1110 | port->bulk_out_endpointAddress), |
1095 | buffer, count, | 1111 | buffer, count, |
1096 | garmin_write_bulk_callback, port); | 1112 | garmin_write_bulk_callback, |
1113 | dismiss_ack ? NULL : port); | ||
1097 | urb->transfer_flags |= URB_ZERO_PACKET; | 1114 | urb->transfer_flags |= URB_ZERO_PACKET; |
1098 | 1115 | ||
1099 | if (GARMIN_LAYERID_APPL == getLayerId(buffer)) { | 1116 | if (GARMIN_LAYERID_APPL == getLayerId(buffer)) { |
1100 | spin_lock_irqsave(&garmin_data_p->lock, flags); | 1117 | atomic_inc(&garmin_data_p->req_count); |
1101 | garmin_data_p->flags |= FLAGS_APP_REQ_SEEN; | ||
1102 | spin_unlock_irqrestore(&garmin_data_p->lock, flags); | ||
1103 | if (garmin_data_p->mode == MODE_GARMIN_SERIAL) { | 1118 | if (garmin_data_p->mode == MODE_GARMIN_SERIAL) { |
1104 | pkt_clear(garmin_data_p); | 1119 | pkt_clear(garmin_data_p); |
1105 | garmin_data_p->state = STATE_GSP_WAIT_DATA; | 1120 | garmin_data_p->state = STATE_GSP_WAIT_DATA; |
@@ -1114,13 +1129,6 @@ static int garmin_write_bulk (struct usb_serial_port *port, | |||
1114 | "failed with status = %d\n", | 1129 | "failed with status = %d\n", |
1115 | __FUNCTION__, status); | 1130 | __FUNCTION__, status); |
1116 | count = status; | 1131 | count = status; |
1117 | } else { | ||
1118 | |||
1119 | if (GARMIN_LAYERID_APPL == getLayerId(buffer) | ||
1120 | && (garmin_data_p->mode == MODE_GARMIN_SERIAL)) { | ||
1121 | |||
1122 | gsp_send_ack(garmin_data_p, buffer[4]); | ||
1123 | } | ||
1124 | } | 1132 | } |
1125 | 1133 | ||
1126 | /* we are done with this urb, so let the host driver | 1134 | /* we are done with this urb, so let the host driver |
@@ -1135,7 +1143,6 @@ static int garmin_write_bulk (struct usb_serial_port *port, | |||
1135 | static int garmin_write (struct usb_serial_port *port, | 1143 | static int garmin_write (struct usb_serial_port *port, |
1136 | const unsigned char *buf, int count) | 1144 | const unsigned char *buf, int count) |
1137 | { | 1145 | { |
1138 | unsigned long flags; | ||
1139 | int pktid, pktsiz, len; | 1146 | int pktid, pktsiz, len; |
1140 | struct garmin_data * garmin_data_p = usb_get_serial_port_data(port); | 1147 | struct garmin_data * garmin_data_p = usb_get_serial_port_data(port); |
1141 | __le32 *privpkt = (__le32 *)garmin_data_p->privpkt; | 1148 | __le32 *privpkt = (__le32 *)garmin_data_p->privpkt; |
@@ -1186,9 +1193,7 @@ static int garmin_write (struct usb_serial_port *port, | |||
1186 | break; | 1193 | break; |
1187 | 1194 | ||
1188 | case PRIV_PKTID_RESET_REQ: | 1195 | case PRIV_PKTID_RESET_REQ: |
1189 | spin_lock_irqsave(&garmin_data_p->lock, flags); | 1196 | atomic_inc(&garmin_data_p->req_count); |
1190 | garmin_data_p->flags |= FLAGS_APP_REQ_SEEN; | ||
1191 | spin_unlock_irqrestore(&garmin_data_p->lock, flags); | ||
1192 | break; | 1197 | break; |
1193 | 1198 | ||
1194 | case PRIV_PKTID_SET_DEF_MODE: | 1199 | case PRIV_PKTID_SET_DEF_MODE: |
@@ -1241,8 +1246,6 @@ static int garmin_chars_in_buffer (struct usb_serial_port *port) | |||
1241 | static void garmin_read_process(struct garmin_data * garmin_data_p, | 1246 | static void garmin_read_process(struct garmin_data * garmin_data_p, |
1242 | unsigned char *data, unsigned data_length) | 1247 | unsigned char *data, unsigned data_length) |
1243 | { | 1248 | { |
1244 | unsigned long flags; | ||
1245 | |||
1246 | if (garmin_data_p->flags & FLAGS_DROP_DATA) { | 1249 | if (garmin_data_p->flags & FLAGS_DROP_DATA) { |
1247 | /* abort-transfer cmd is actice */ | 1250 | /* abort-transfer cmd is actice */ |
1248 | dbg("%s - pkt dropped", __FUNCTION__); | 1251 | dbg("%s - pkt dropped", __FUNCTION__); |
@@ -1254,9 +1257,7 @@ static void garmin_read_process(struct garmin_data * garmin_data_p, | |||
1254 | the device */ | 1257 | the device */ |
1255 | if (0 == memcmp(data, GARMIN_APP_LAYER_REPLY, | 1258 | if (0 == memcmp(data, GARMIN_APP_LAYER_REPLY, |
1256 | sizeof(GARMIN_APP_LAYER_REPLY))) { | 1259 | sizeof(GARMIN_APP_LAYER_REPLY))) { |
1257 | spin_lock_irqsave(&garmin_data_p->lock, flags); | 1260 | atomic_inc(&garmin_data_p->resp_count); |
1258 | garmin_data_p->flags |= FLAGS_APP_RESP_SEEN; | ||
1259 | spin_unlock_irqrestore(&garmin_data_p->lock, flags); | ||
1260 | } | 1261 | } |
1261 | 1262 | ||
1262 | /* if throttling is active or postprecessing is required | 1263 | /* if throttling is active or postprecessing is required |
diff --git a/drivers/usb/serial/ipaq.c b/drivers/usb/serial/ipaq.c index 0455c1552ae9..6a3a704b5849 100644 --- a/drivers/usb/serial/ipaq.c +++ b/drivers/usb/serial/ipaq.c | |||
@@ -545,6 +545,7 @@ static struct usb_device_id ipaq_id_table [] = { | |||
545 | { USB_DEVICE(0x413C, 0x4009) }, /* Dell Axim USB Sync */ | 545 | { USB_DEVICE(0x413C, 0x4009) }, /* Dell Axim USB Sync */ |
546 | { USB_DEVICE(0x4505, 0x0010) }, /* Smartphone */ | 546 | { USB_DEVICE(0x4505, 0x0010) }, /* Smartphone */ |
547 | { USB_DEVICE(0x5E04, 0xCE00) }, /* SAGEM Wireless Assistant */ | 547 | { USB_DEVICE(0x5E04, 0xCE00) }, /* SAGEM Wireless Assistant */ |
548 | { USB_DEVICE(0x0BB4, 0x00CF) }, /* HTC smartphone modems */ | ||
548 | { } /* Terminating entry */ | 549 | { } /* Terminating entry */ |
549 | }; | 550 | }; |
550 | 551 | ||
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 84c12b5f1271..4cb3c165742b 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c | |||
@@ -110,6 +110,7 @@ static int option_send_setup(struct usb_serial_port *port); | |||
110 | #define HUAWEI_PRODUCT_E220 0x1003 | 110 | #define HUAWEI_PRODUCT_E220 0x1003 |
111 | 111 | ||
112 | #define NOVATELWIRELESS_VENDOR_ID 0x1410 | 112 | #define NOVATELWIRELESS_VENDOR_ID 0x1410 |
113 | #define DELL_VENDOR_ID 0x413C | ||
113 | 114 | ||
114 | #define ANYDATA_VENDOR_ID 0x16d5 | 115 | #define ANYDATA_VENDOR_ID 0x16d5 |
115 | #define ANYDATA_PRODUCT_ADU_E100A 0x6501 | 116 | #define ANYDATA_PRODUCT_ADU_E100A 0x6501 |
@@ -119,8 +120,6 @@ static int option_send_setup(struct usb_serial_port *port); | |||
119 | #define BANDRICH_PRODUCT_C100_1 0x1002 | 120 | #define BANDRICH_PRODUCT_C100_1 0x1002 |
120 | #define BANDRICH_PRODUCT_C100_2 0x1003 | 121 | #define BANDRICH_PRODUCT_C100_2 0x1003 |
121 | 122 | ||
122 | #define DELL_VENDOR_ID 0x413C | ||
123 | |||
124 | static struct usb_device_id option_ids[] = { | 123 | static struct usb_device_id option_ids[] = { |
125 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, | 124 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, |
126 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, | 125 | { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, |
@@ -171,11 +170,16 @@ static struct usb_device_id option_ids[] = { | |||
171 | { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2110) }, /* Novatel Merlin ES620 / Merlin ES720 / Ovation U720 */ | 170 | { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2110) }, /* Novatel Merlin ES620 / Merlin ES720 / Ovation U720 */ |
172 | { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2130) }, /* Novatel Merlin ES620 SM Bus */ | 171 | { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2130) }, /* Novatel Merlin ES620 SM Bus */ |
173 | { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2410) }, /* Novatel EU740 */ | 172 | { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2410) }, /* Novatel EU740 */ |
173 | { USB_DEVICE(DELL_VENDOR_ID, 0x8114) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */ | ||
174 | { USB_DEVICE(DELL_VENDOR_ID, 0x8115) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ | ||
175 | { USB_DEVICE(DELL_VENDOR_ID, 0x8116) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ | ||
176 | { USB_DEVICE(DELL_VENDOR_ID, 0x8117) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO ExpressCard == Novatel Merlin XV620 CDMA/EV-DO */ | ||
177 | { USB_DEVICE(DELL_VENDOR_ID, 0x8118) }, /* Dell Wireless 5510 Mobile Broadband HSDPA ExpressCard == Novatel Merlin XU870 HSDPA/3G */ | ||
178 | { USB_DEVICE(DELL_VENDOR_ID, 0x8128) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite E720 CDMA/EV-DO */ | ||
174 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, | 179 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) }, |
175 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, | 180 | { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) }, |
176 | { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) }, | 181 | { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) }, |
177 | { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) }, | 182 | { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) }, |
178 | { USB_DEVICE(DELL_VENDOR_ID, 0x8118) }, /* Dell Wireless 5510 Mobile Broadband HSDPA ExpressCard */ | ||
179 | { } /* Terminating entry */ | 183 | { } /* Terminating entry */ |
180 | }; | 184 | }; |
181 | MODULE_DEVICE_TABLE(usb, option_ids); | 185 | MODULE_DEVICE_TABLE(usb, option_ids); |
diff --git a/drivers/usb/serial/oti6858.c b/drivers/usb/serial/oti6858.c index d7db71eca520..833ada47fc54 100644 --- a/drivers/usb/serial/oti6858.c +++ b/drivers/usb/serial/oti6858.c | |||
@@ -818,19 +818,17 @@ static int oti6858_ioctl(struct usb_serial_port *port, struct file *file, | |||
818 | 818 | ||
819 | switch (cmd) { | 819 | switch (cmd) { |
820 | case TCGETS: | 820 | case TCGETS: |
821 | if (copy_to_user(user_arg, port->tty->termios, | 821 | if (kernel_termios_to_user_termios((struct ktermios __user *)arg, |
822 | sizeof(struct ktermios))) { | 822 | port->tty->termios)) |
823 | return -EFAULT; | 823 | return -EFAULT; |
824 | } | ||
825 | return 0; | 824 | return 0; |
826 | 825 | ||
827 | case TCSETS: | 826 | case TCSETS: |
828 | case TCSETSW: /* FIXME: this is not the same! */ | 827 | case TCSETSW: /* FIXME: this is not the same! */ |
829 | case TCSETSF: /* FIXME: this is not the same! */ | 828 | case TCSETSF: /* FIXME: this is not the same! */ |
830 | if (copy_from_user(port->tty->termios, user_arg, | 829 | if (user_termios_to_kernel_termios(port->tty->termios, |
831 | sizeof(struct ktermios))) { | 830 | (struct ktermios __user *)arg)) |
832 | return -EFAULT; | 831 | return -EFAULT; |
833 | } | ||
834 | oti6858_set_termios(port, NULL); | 832 | oti6858_set_termios(port, NULL); |
835 | return 0; | 833 | return 0; |
836 | 834 | ||
diff --git a/drivers/usb/serial/safe_serial.c b/drivers/usb/serial/safe_serial.c index 86899d55d8d8..51669b7622bb 100644 --- a/drivers/usb/serial/safe_serial.c +++ b/drivers/usb/serial/safe_serial.c | |||
@@ -74,13 +74,13 @@ | |||
74 | #include <linux/usb/serial.h> | 74 | #include <linux/usb/serial.h> |
75 | 75 | ||
76 | 76 | ||
77 | #ifndef CONFIG_USB_SAFE_PADDED | 77 | #ifndef CONFIG_USB_SERIAL_SAFE_PADDED |
78 | #define CONFIG_USB_SAFE_PADDED 0 | 78 | #define CONFIG_USB_SERIAL_SAFE_PADDED 0 |
79 | #endif | 79 | #endif |
80 | 80 | ||
81 | static int debug; | 81 | static int debug; |
82 | static int safe = 1; | 82 | static int safe = 1; |
83 | static int padded = CONFIG_USB_SAFE_PADDED; | 83 | static int padded = CONFIG_USB_SERIAL_SAFE_PADDED; |
84 | 84 | ||
85 | #define DRIVER_VERSION "v0.0b" | 85 | #define DRIVER_VERSION "v0.0b" |
86 | #define DRIVER_AUTHOR "sl@lineo.com, tbr@lineo.com" | 86 | #define DRIVER_AUTHOR "sl@lineo.com, tbr@lineo.com" |
diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c index 7d84a7647e81..30e08c0bcdc2 100644 --- a/drivers/usb/serial/visor.c +++ b/drivers/usb/serial/visor.c | |||
@@ -104,6 +104,8 @@ static struct usb_device_id id_table [] = { | |||
104 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, | 104 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, |
105 | { USB_DEVICE(SONY_VENDOR_ID, SONY_CLIE_TJ25_ID), | 105 | { USB_DEVICE(SONY_VENDOR_ID, SONY_CLIE_TJ25_ID), |
106 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, | 106 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, |
107 | { USB_DEVICE(ACER_VENDOR_ID, ACER_S10_ID), | ||
108 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, | ||
107 | { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_SCH_I330_ID), | 109 | { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_SCH_I330_ID), |
108 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, | 110 | .driver_info = (kernel_ulong_t)&palm_os_4_probe }, |
109 | { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_SPH_I500_ID), | 111 | { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_SPH_I500_ID), |
diff --git a/drivers/usb/serial/visor.h b/drivers/usb/serial/visor.h index 4ce6f62a6f39..57229cf66477 100644 --- a/drivers/usb/serial/visor.h +++ b/drivers/usb/serial/visor.h | |||
@@ -48,6 +48,9 @@ | |||
48 | #define SONY_CLIE_UX50_ID 0x0144 | 48 | #define SONY_CLIE_UX50_ID 0x0144 |
49 | #define SONY_CLIE_TJ25_ID 0x0169 | 49 | #define SONY_CLIE_TJ25_ID 0x0169 |
50 | 50 | ||
51 | #define ACER_VENDOR_ID 0x0502 | ||
52 | #define ACER_S10_ID 0x0001 | ||
53 | |||
51 | #define SAMSUNG_VENDOR_ID 0x04E8 | 54 | #define SAMSUNG_VENDOR_ID 0x04E8 |
52 | #define SAMSUNG_SCH_I330_ID 0x8001 | 55 | #define SAMSUNG_SCH_I330_ID 0x8001 |
53 | #define SAMSUNG_SPH_I500_ID 0x6601 | 56 | #define SAMSUNG_SPH_I500_ID 0x6601 |
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h index d8d008d42946..2d92ce31018f 100644 --- a/drivers/usb/storage/unusual_devs.h +++ b/drivers/usb/storage/unusual_devs.h | |||
@@ -342,7 +342,7 @@ UNUSUAL_DEV( 0x04b0, 0x040d, 0x0100, 0x0100, | |||
342 | US_FL_FIX_CAPACITY), | 342 | US_FL_FIX_CAPACITY), |
343 | 343 | ||
344 | /* Reported by Emil Larsson <emil@swip.net> */ | 344 | /* Reported by Emil Larsson <emil@swip.net> */ |
345 | UNUSUAL_DEV( 0x04b0, 0x0411, 0x0100, 0x0100, | 345 | UNUSUAL_DEV( 0x04b0, 0x0411, 0x0100, 0x0101, |
346 | "NIKON", | 346 | "NIKON", |
347 | "NIKON DSC D80", | 347 | "NIKON DSC D80", |
348 | US_SC_DEVICE, US_PR_DEVICE, NULL, | 348 | US_SC_DEVICE, US_PR_DEVICE, NULL, |
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c index 28842d208bb0..25e557d4fe6b 100644 --- a/drivers/usb/storage/usb.c +++ b/drivers/usb/storage/usb.c | |||
@@ -112,13 +112,6 @@ module_param(delay_use, uint, S_IRUGO | S_IWUSR); | |||
112 | MODULE_PARM_DESC(delay_use, "seconds to delay before using a new device"); | 112 | MODULE_PARM_DESC(delay_use, "seconds to delay before using a new device"); |
113 | 113 | ||
114 | 114 | ||
115 | /* These are used to make sure the module doesn't unload before all the | ||
116 | * threads have exited. | ||
117 | */ | ||
118 | static atomic_t total_threads = ATOMIC_INIT(0); | ||
119 | static DECLARE_COMPLETION(threads_gone); | ||
120 | |||
121 | |||
122 | /* | 115 | /* |
123 | * The entries in this table correspond, line for line, | 116 | * The entries in this table correspond, line for line, |
124 | * with the entries of us_unusual_dev_list[]. | 117 | * with the entries of us_unusual_dev_list[]. |
@@ -879,9 +872,6 @@ static void quiesce_and_remove_host(struct us_data *us) | |||
879 | usb_stor_stop_transport(us); | 872 | usb_stor_stop_transport(us); |
880 | wake_up(&us->delay_wait); | 873 | wake_up(&us->delay_wait); |
881 | 874 | ||
882 | /* It doesn't matter if the SCSI-scanning thread is still running. | ||
883 | * The thread will exit when it sees the DISCONNECTING flag. */ | ||
884 | |||
885 | /* queuecommand won't accept any new commands and the control | 875 | /* queuecommand won't accept any new commands and the control |
886 | * thread won't execute a previously-queued command. If there | 876 | * thread won't execute a previously-queued command. If there |
887 | * is such a command pending, complete it with an error. */ | 877 | * is such a command pending, complete it with an error. */ |
@@ -891,12 +881,16 @@ static void quiesce_and_remove_host(struct us_data *us) | |||
891 | scsi_lock(host); | 881 | scsi_lock(host); |
892 | us->srb->scsi_done(us->srb); | 882 | us->srb->scsi_done(us->srb); |
893 | us->srb = NULL; | 883 | us->srb = NULL; |
884 | complete(&us->notify); /* in case of an abort */ | ||
894 | scsi_unlock(host); | 885 | scsi_unlock(host); |
895 | } | 886 | } |
896 | mutex_unlock(&us->dev_mutex); | 887 | mutex_unlock(&us->dev_mutex); |
897 | 888 | ||
898 | /* Now we own no commands so it's safe to remove the SCSI host */ | 889 | /* Now we own no commands so it's safe to remove the SCSI host */ |
899 | scsi_remove_host(host); | 890 | scsi_remove_host(host); |
891 | |||
892 | /* Wait for the SCSI-scanning thread to stop */ | ||
893 | wait_for_completion(&us->scanning_done); | ||
900 | } | 894 | } |
901 | 895 | ||
902 | /* Second stage of disconnect processing: deallocate all resources */ | 896 | /* Second stage of disconnect processing: deallocate all resources */ |
@@ -947,9 +941,8 @@ retry: | |||
947 | /* Should we unbind if no devices were detected? */ | 941 | /* Should we unbind if no devices were detected? */ |
948 | } | 942 | } |
949 | 943 | ||
950 | scsi_host_put(us_to_host(us)); | ||
951 | usb_autopm_put_interface(us->pusb_intf); | 944 | usb_autopm_put_interface(us->pusb_intf); |
952 | complete_and_exit(&threads_gone, 0); | 945 | complete_and_exit(&us->scanning_done, 0); |
953 | } | 946 | } |
954 | 947 | ||
955 | 948 | ||
@@ -984,6 +977,7 @@ static int storage_probe(struct usb_interface *intf, | |||
984 | init_MUTEX_LOCKED(&(us->sema)); | 977 | init_MUTEX_LOCKED(&(us->sema)); |
985 | init_completion(&(us->notify)); | 978 | init_completion(&(us->notify)); |
986 | init_waitqueue_head(&us->delay_wait); | 979 | init_waitqueue_head(&us->delay_wait); |
980 | init_completion(&us->scanning_done); | ||
987 | 981 | ||
988 | /* Associate the us_data structure with the USB device */ | 982 | /* Associate the us_data structure with the USB device */ |
989 | result = associate_dev(us, intf); | 983 | result = associate_dev(us, intf); |
@@ -1033,11 +1027,6 @@ static int storage_probe(struct usb_interface *intf, | |||
1033 | goto BadDevice; | 1027 | goto BadDevice; |
1034 | } | 1028 | } |
1035 | 1029 | ||
1036 | /* Take a reference to the host for the scanning thread and | ||
1037 | * count it among all the threads we have launched. Then | ||
1038 | * start it up. */ | ||
1039 | scsi_host_get(us_to_host(us)); | ||
1040 | atomic_inc(&total_threads); | ||
1041 | usb_autopm_get_interface(intf); /* dropped in the scanning thread */ | 1030 | usb_autopm_get_interface(intf); /* dropped in the scanning thread */ |
1042 | wake_up_process(th); | 1031 | wake_up_process(th); |
1043 | 1032 | ||
@@ -1104,16 +1093,6 @@ static void __exit usb_stor_exit(void) | |||
1104 | US_DEBUGP("-- calling usb_deregister()\n"); | 1093 | US_DEBUGP("-- calling usb_deregister()\n"); |
1105 | usb_deregister(&usb_storage_driver) ; | 1094 | usb_deregister(&usb_storage_driver) ; |
1106 | 1095 | ||
1107 | /* Don't return until all of our control and scanning threads | ||
1108 | * have exited. Since each thread signals threads_gone as its | ||
1109 | * last act, we have to call wait_for_completion the right number | ||
1110 | * of times. | ||
1111 | */ | ||
1112 | while (atomic_read(&total_threads) > 0) { | ||
1113 | wait_for_completion(&threads_gone); | ||
1114 | atomic_dec(&total_threads); | ||
1115 | } | ||
1116 | |||
1117 | usb_usual_clear_present(USB_US_TYPE_STOR); | 1096 | usb_usual_clear_present(USB_US_TYPE_STOR); |
1118 | } | 1097 | } |
1119 | 1098 | ||
diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h index 6445665b1577..8d87503e2560 100644 --- a/drivers/usb/storage/usb.h +++ b/drivers/usb/storage/usb.h | |||
@@ -150,6 +150,7 @@ struct us_data { | |||
150 | struct semaphore sema; /* to sleep thread on */ | 150 | struct semaphore sema; /* to sleep thread on */ |
151 | struct completion notify; /* thread begin/end */ | 151 | struct completion notify; /* thread begin/end */ |
152 | wait_queue_head_t delay_wait; /* wait during scan, reset */ | 152 | wait_queue_head_t delay_wait; /* wait during scan, reset */ |
153 | struct completion scanning_done; /* wait for scan thread */ | ||
153 | 154 | ||
154 | /* subdriver information */ | 155 | /* subdriver information */ |
155 | void *extra; /* Any extra data */ | 156 | void *extra; /* Any extra data */ |
diff --git a/drivers/video/au1100fb.c b/drivers/video/au1100fb.c index 80a81eccad36..832e4613673a 100644 --- a/drivers/video/au1100fb.c +++ b/drivers/video/au1100fb.c | |||
@@ -115,6 +115,52 @@ static int nocursor = 0; | |||
115 | module_param(nocursor, int, 0644); | 115 | module_param(nocursor, int, 0644); |
116 | MODULE_PARM_DESC(nocursor, "cursor enable/disable"); | 116 | MODULE_PARM_DESC(nocursor, "cursor enable/disable"); |
117 | 117 | ||
118 | /* fb_blank | ||
119 | * Blank the screen. Depending on the mode, the screen will be | ||
120 | * activated with the backlight color, or desactivated | ||
121 | */ | ||
122 | static int au1100fb_fb_blank(int blank_mode, struct fb_info *fbi) | ||
123 | { | ||
124 | struct au1100fb_device *fbdev = to_au1100fb_device(fbi); | ||
125 | |||
126 | print_dbg("fb_blank %d %p", blank_mode, fbi); | ||
127 | |||
128 | switch (blank_mode) { | ||
129 | |||
130 | case VESA_NO_BLANKING: | ||
131 | /* Turn on panel */ | ||
132 | fbdev->regs->lcd_control |= LCD_CONTROL_GO; | ||
133 | #ifdef CONFIG_MIPS_PB1100 | ||
134 | if (drv_info.panel_idx == 1) { | ||
135 | au_writew(au_readw(PB1100_G_CONTROL) | ||
136 | | (PB1100_G_CONTROL_BL | PB1100_G_CONTROL_VDD), | ||
137 | PB1100_G_CONTROL); | ||
138 | } | ||
139 | #endif | ||
140 | au_sync(); | ||
141 | break; | ||
142 | |||
143 | case VESA_VSYNC_SUSPEND: | ||
144 | case VESA_HSYNC_SUSPEND: | ||
145 | case VESA_POWERDOWN: | ||
146 | /* Turn off panel */ | ||
147 | fbdev->regs->lcd_control &= ~LCD_CONTROL_GO; | ||
148 | #ifdef CONFIG_MIPS_PB1100 | ||
149 | if (drv_info.panel_idx == 1) { | ||
150 | au_writew(au_readw(PB1100_G_CONTROL) | ||
151 | & ~(PB1100_G_CONTROL_BL | PB1100_G_CONTROL_VDD), | ||
152 | PB1100_G_CONTROL); | ||
153 | } | ||
154 | #endif | ||
155 | au_sync(); | ||
156 | break; | ||
157 | default: | ||
158 | break; | ||
159 | |||
160 | } | ||
161 | return 0; | ||
162 | } | ||
163 | |||
118 | /* | 164 | /* |
119 | * Set hardware with var settings. This will enable the controller with a specific | 165 | * Set hardware with var settings. This will enable the controller with a specific |
120 | * mode, normally validated with the fb_check_var method | 166 | * mode, normally validated with the fb_check_var method |
@@ -272,52 +318,6 @@ int au1100fb_fb_setcolreg(unsigned regno, unsigned red, unsigned green, unsigned | |||
272 | return 0; | 318 | return 0; |
273 | } | 319 | } |
274 | 320 | ||
275 | /* fb_blank | ||
276 | * Blank the screen. Depending on the mode, the screen will be | ||
277 | * activated with the backlight color, or desactivated | ||
278 | */ | ||
279 | int au1100fb_fb_blank(int blank_mode, struct fb_info *fbi) | ||
280 | { | ||
281 | struct au1100fb_device *fbdev = to_au1100fb_device(fbi); | ||
282 | |||
283 | print_dbg("fb_blank %d %p", blank_mode, fbi); | ||
284 | |||
285 | switch (blank_mode) { | ||
286 | |||
287 | case VESA_NO_BLANKING: | ||
288 | /* Turn on panel */ | ||
289 | fbdev->regs->lcd_control |= LCD_CONTROL_GO; | ||
290 | #ifdef CONFIG_MIPS_PB1100 | ||
291 | if (drv_info.panel_idx == 1) { | ||
292 | au_writew(au_readw(PB1100_G_CONTROL) | ||
293 | | (PB1100_G_CONTROL_BL | PB1100_G_CONTROL_VDD), | ||
294 | PB1100_G_CONTROL); | ||
295 | } | ||
296 | #endif | ||
297 | au_sync(); | ||
298 | break; | ||
299 | |||
300 | case VESA_VSYNC_SUSPEND: | ||
301 | case VESA_HSYNC_SUSPEND: | ||
302 | case VESA_POWERDOWN: | ||
303 | /* Turn off panel */ | ||
304 | fbdev->regs->lcd_control &= ~LCD_CONTROL_GO; | ||
305 | #ifdef CONFIG_MIPS_PB1100 | ||
306 | if (drv_info.panel_idx == 1) { | ||
307 | au_writew(au_readw(PB1100_G_CONTROL) | ||
308 | & ~(PB1100_G_CONTROL_BL | PB1100_G_CONTROL_VDD), | ||
309 | PB1100_G_CONTROL); | ||
310 | } | ||
311 | #endif | ||
312 | au_sync(); | ||
313 | break; | ||
314 | default: | ||
315 | break; | ||
316 | |||
317 | } | ||
318 | return 0; | ||
319 | } | ||
320 | |||
321 | /* fb_pan_display | 321 | /* fb_pan_display |
322 | * Pan display in x and/or y as specified | 322 | * Pan display in x and/or y as specified |
323 | */ | 323 | */ |
diff --git a/drivers/video/bw2.c b/drivers/video/bw2.c index 718b9f83736e..833b10c84064 100644 --- a/drivers/video/bw2.c +++ b/drivers/video/bw2.c | |||
@@ -233,9 +233,9 @@ static u8 bw2regs_66hz[] __devinitdata = { | |||
233 | 0x10, 0x20, 0 | 233 | 0x10, 0x20, 0 |
234 | }; | 234 | }; |
235 | 235 | ||
236 | static void __devinit bw2_do_default_mode(struct bw2_par *par, | 236 | static int __devinit bw2_do_default_mode(struct bw2_par *par, |
237 | struct fb_info *info, | 237 | struct fb_info *info, |
238 | int *linebytes) | 238 | int *linebytes) |
239 | { | 239 | { |
240 | u8 status, mon; | 240 | u8 status, mon; |
241 | u8 *p; | 241 | u8 *p; |
@@ -266,17 +266,18 @@ static void __devinit bw2_do_default_mode(struct bw2_par *par, | |||
266 | break; | 266 | break; |
267 | 267 | ||
268 | case BWTWO_SR_ID_NOCONN: | 268 | case BWTWO_SR_ID_NOCONN: |
269 | return; | 269 | return 0; |
270 | 270 | ||
271 | default: | 271 | default: |
272 | prom_printf("bw2: can't handle SR %02x\n", | 272 | printk(KERN_ERR "bw2: can't handle SR %02x\n", |
273 | status); | 273 | status); |
274 | prom_halt(); | 274 | return -EINVAL; |
275 | } | 275 | } |
276 | for ( ; *p; p += 2) { | 276 | for ( ; *p; p += 2) { |
277 | u8 __iomem *regp = &((u8 __iomem *)par->regs)[p[0]]; | 277 | u8 __iomem *regp = &((u8 __iomem *)par->regs)[p[0]]; |
278 | sbus_writeb(p[1], regp); | 278 | sbus_writeb(p[1], regp); |
279 | } | 279 | } |
280 | return 0; | ||
280 | } | 281 | } |
281 | 282 | ||
282 | static int __devinit bw2_probe(struct of_device *op, const struct of_device_id *match) | 283 | static int __devinit bw2_probe(struct of_device *op, const struct of_device_id *match) |
@@ -312,8 +313,11 @@ static int __devinit bw2_probe(struct of_device *op, const struct of_device_id * | |||
312 | if (!par->regs) | 313 | if (!par->regs) |
313 | goto out_release_fb; | 314 | goto out_release_fb; |
314 | 315 | ||
315 | if (!of_find_property(dp, "width", NULL)) | 316 | if (!of_find_property(dp, "width", NULL)) { |
316 | bw2_do_default_mode(par, info, &linebytes); | 317 | err = bw2_do_default_mode(par, info, &linebytes); |
318 | if (err) | ||
319 | goto out_unmap_regs; | ||
320 | } | ||
317 | 321 | ||
318 | par->fbsize = PAGE_ALIGN(linebytes * info->var.yres); | 322 | par->fbsize = PAGE_ALIGN(linebytes * info->var.yres); |
319 | 323 | ||
diff --git a/drivers/video/cg3.c b/drivers/video/cg3.c index 5741b46ade1b..a5c7fb331527 100644 --- a/drivers/video/cg3.c +++ b/drivers/video/cg3.c | |||
@@ -315,7 +315,7 @@ static u_char cg3_dacvals[] __devinitdata = { | |||
315 | 4, 0xff, 5, 0x00, 6, 0x70, 7, 0x00, 0 | 315 | 4, 0xff, 5, 0x00, 6, 0x70, 7, 0x00, 0 |
316 | }; | 316 | }; |
317 | 317 | ||
318 | static void __devinit cg3_do_default_mode(struct cg3_par *par) | 318 | static int __devinit cg3_do_default_mode(struct cg3_par *par) |
319 | { | 319 | { |
320 | enum cg3_type type; | 320 | enum cg3_type type; |
321 | u8 *p; | 321 | u8 *p; |
@@ -332,10 +332,9 @@ static void __devinit cg3_do_default_mode(struct cg3_par *par) | |||
332 | else | 332 | else |
333 | type = CG3_AT_66HZ; | 333 | type = CG3_AT_66HZ; |
334 | } else { | 334 | } else { |
335 | prom_printf("cgthree: can't handle SR %02x\n", | 335 | printk(KERN_ERR "cgthree: can't handle SR %02x\n", |
336 | status); | 336 | status); |
337 | prom_halt(); | 337 | return -EINVAL; |
338 | return; | ||
339 | } | 338 | } |
340 | } | 339 | } |
341 | 340 | ||
@@ -351,6 +350,7 @@ static void __devinit cg3_do_default_mode(struct cg3_par *par) | |||
351 | regp = (u8 __iomem *)&par->regs->cmap.control; | 350 | regp = (u8 __iomem *)&par->regs->cmap.control; |
352 | sbus_writeb(p[1], regp); | 351 | sbus_writeb(p[1], regp); |
353 | } | 352 | } |
353 | return 0; | ||
354 | } | 354 | } |
355 | 355 | ||
356 | static int __devinit cg3_probe(struct of_device *op, | 356 | static int __devinit cg3_probe(struct of_device *op, |
@@ -400,8 +400,11 @@ static int __devinit cg3_probe(struct of_device *op, | |||
400 | 400 | ||
401 | cg3_blank(0, info); | 401 | cg3_blank(0, info); |
402 | 402 | ||
403 | if (!of_find_property(dp, "width", NULL)) | 403 | if (!of_find_property(dp, "width", NULL)) { |
404 | cg3_do_default_mode(par); | 404 | err = cg3_do_default_mode(par); |
405 | if (err) | ||
406 | goto out_unmap_screen; | ||
407 | } | ||
405 | 408 | ||
406 | if (fb_alloc_cmap(&info->cmap, 256, 0)) | 409 | if (fb_alloc_cmap(&info->cmap, 256, 0)) |
407 | goto out_unmap_screen; | 410 | goto out_unmap_screen; |
diff --git a/drivers/video/console/Kconfig b/drivers/video/console/Kconfig index 49643969f9f8..5db6b1e489b0 100644 --- a/drivers/video/console/Kconfig +++ b/drivers/video/console/Kconfig | |||
@@ -145,7 +145,7 @@ config FRAMEBUFFER_CONSOLE_ROTATION | |||
145 | oriented. | 145 | oriented. |
146 | 146 | ||
147 | config STI_CONSOLE | 147 | config STI_CONSOLE |
148 | tristate "STI text console" | 148 | bool "STI text console" |
149 | depends on PARISC | 149 | depends on PARISC |
150 | default y | 150 | default y |
151 | help | 151 | help |
diff --git a/drivers/video/console/newport_con.c b/drivers/video/console/newport_con.c index 7fa1afeae8dc..dda0586ab3f3 100644 --- a/drivers/video/console/newport_con.c +++ b/drivers/video/console/newport_con.c | |||
@@ -738,9 +738,8 @@ const struct consw newport_con = { | |||
738 | #ifdef MODULE | 738 | #ifdef MODULE |
739 | static int __init newport_console_init(void) | 739 | static int __init newport_console_init(void) |
740 | { | 740 | { |
741 | |||
742 | if (!sgi_gfxaddr) | 741 | if (!sgi_gfxaddr) |
743 | return NULL; | 742 | return 0; |
744 | 743 | ||
745 | if (!npregs) | 744 | if (!npregs) |
746 | npregs = (struct newport_regs *)/* ioremap cannot fail */ | 745 | npregs = (struct newport_regs *)/* ioremap cannot fail */ |
diff --git a/drivers/video/console/sticore.c b/drivers/video/console/sticore.c index 870017d44970..e9ab657f0bb7 100644 --- a/drivers/video/console/sticore.c +++ b/drivers/video/console/sticore.c | |||
@@ -232,18 +232,14 @@ sti_bmove(struct sti_struct *sti, int src_y, int src_x, | |||
232 | } | 232 | } |
233 | 233 | ||
234 | 234 | ||
235 | /* FIXME: Do we have another solution for this ? */ | 235 | static void sti_flush(unsigned long start, unsigned long end) |
236 | static void sti_flush(unsigned long from, unsigned long len) | ||
237 | { | 236 | { |
238 | flush_data_cache(); | 237 | flush_icache_range(start, end); |
239 | flush_kernel_dcache_range(from, len); | ||
240 | flush_icache_range(from, from+len); | ||
241 | } | 238 | } |
242 | 239 | ||
243 | void __devinit | 240 | void __devinit |
244 | sti_rom_copy(unsigned long base, unsigned long count, void *dest) | 241 | sti_rom_copy(unsigned long base, unsigned long count, void *dest) |
245 | { | 242 | { |
246 | unsigned long dest_len = count; | ||
247 | unsigned long dest_start = (unsigned long) dest; | 243 | unsigned long dest_start = (unsigned long) dest; |
248 | 244 | ||
249 | /* this still needs to be revisited (see arch/parisc/mm/init.c:246) ! */ | 245 | /* this still needs to be revisited (see arch/parisc/mm/init.c:246) ! */ |
@@ -260,7 +256,7 @@ sti_rom_copy(unsigned long base, unsigned long count, void *dest) | |||
260 | dest++; | 256 | dest++; |
261 | } | 257 | } |
262 | 258 | ||
263 | sti_flush(dest_start, dest_len); | 259 | sti_flush(dest_start, (unsigned long)dest); |
264 | } | 260 | } |
265 | 261 | ||
266 | 262 | ||
@@ -663,7 +659,6 @@ sti_bmode_font_raw(struct sti_cooked_font *f) | |||
663 | static void __devinit | 659 | static void __devinit |
664 | sti_bmode_rom_copy(unsigned long base, unsigned long count, void *dest) | 660 | sti_bmode_rom_copy(unsigned long base, unsigned long count, void *dest) |
665 | { | 661 | { |
666 | unsigned long dest_len = count; | ||
667 | unsigned long dest_start = (unsigned long) dest; | 662 | unsigned long dest_start = (unsigned long) dest; |
668 | 663 | ||
669 | while (count) { | 664 | while (count) { |
@@ -672,7 +667,8 @@ sti_bmode_rom_copy(unsigned long base, unsigned long count, void *dest) | |||
672 | base += 4; | 667 | base += 4; |
673 | dest++; | 668 | dest++; |
674 | } | 669 | } |
675 | sti_flush(dest_start, dest_len); | 670 | |
671 | sti_flush(dest_start, (unsigned long)dest); | ||
676 | } | 672 | } |
677 | 673 | ||
678 | static struct sti_rom * __devinit | 674 | static struct sti_rom * __devinit |
diff --git a/drivers/video/imsttfb.c b/drivers/video/imsttfb.c index 5715b8ad0ddc..94f4511023d8 100644 --- a/drivers/video/imsttfb.c +++ b/drivers/video/imsttfb.c | |||
@@ -1391,7 +1391,7 @@ init_imstt(struct fb_info *info) | |||
1391 | } | 1391 | } |
1392 | } | 1392 | } |
1393 | 1393 | ||
1394 | #if USE_NV_MODES && defined(CONFIG_PPC) | 1394 | #if USE_NV_MODES && defined(CONFIG_PPC32) |
1395 | { | 1395 | { |
1396 | int vmode = init_vmode, cmode = init_cmode; | 1396 | int vmode = init_vmode, cmode = init_cmode; |
1397 | 1397 | ||
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c index 81e571d59b50..a280a52f8efe 100644 --- a/drivers/video/pxafb.c +++ b/drivers/video/pxafb.c | |||
@@ -66,7 +66,7 @@ static void set_ctrlr_state(struct pxafb_info *fbi, u_int state); | |||
66 | 66 | ||
67 | #ifdef CONFIG_FB_PXA_PARAMETERS | 67 | #ifdef CONFIG_FB_PXA_PARAMETERS |
68 | #define PXAFB_OPTIONS_SIZE 256 | 68 | #define PXAFB_OPTIONS_SIZE 256 |
69 | static char g_options[PXAFB_OPTIONS_SIZE] __initdata = ""; | 69 | static char g_options[PXAFB_OPTIONS_SIZE] __devinitdata = ""; |
70 | #endif | 70 | #endif |
71 | 71 | ||
72 | static inline void pxafb_schedule_work(struct pxafb_info *fbi, u_int state) | 72 | static inline void pxafb_schedule_work(struct pxafb_info *fbi, u_int state) |
diff --git a/drivers/w1/w1_int.c b/drivers/w1/w1_int.c index 2fbd8dd16df5..6840dfebe4d4 100644 --- a/drivers/w1/w1_int.c +++ b/drivers/w1/w1_int.c | |||
@@ -170,22 +170,24 @@ void __w1_remove_master_device(struct w1_master *dev) | |||
170 | 170 | ||
171 | void w1_remove_master_device(struct w1_bus_master *bm) | 171 | void w1_remove_master_device(struct w1_bus_master *bm) |
172 | { | 172 | { |
173 | struct w1_master *dev = NULL; | 173 | struct w1_master *dev, *found = NULL; |
174 | 174 | ||
175 | list_for_each_entry(dev, &w1_masters, w1_master_entry) { | 175 | list_for_each_entry(dev, &w1_masters, w1_master_entry) { |
176 | if (!dev->initialized) | 176 | if (!dev->initialized) |
177 | continue; | 177 | continue; |
178 | 178 | ||
179 | if (dev->bus_master->data == bm->data) | 179 | if (dev->bus_master->data == bm->data) { |
180 | found = dev; | ||
180 | break; | 181 | break; |
182 | } | ||
181 | } | 183 | } |
182 | 184 | ||
183 | if (!dev) { | 185 | if (!found) { |
184 | printk(KERN_ERR "Device doesn't exist.\n"); | 186 | printk(KERN_ERR "Device doesn't exist.\n"); |
185 | return; | 187 | return; |
186 | } | 188 | } |
187 | 189 | ||
188 | __w1_remove_master_device(dev); | 190 | __w1_remove_master_device(found); |
189 | } | 191 | } |
190 | 192 | ||
191 | EXPORT_SYMBOL(w1_add_master_device); | 193 | EXPORT_SYMBOL(w1_add_master_device); |
diff --git a/drivers/zorro/zorro-sysfs.c b/drivers/zorro/zorro-sysfs.c index 9130f1c12c26..808b4f8675c5 100644 --- a/drivers/zorro/zorro-sysfs.c +++ b/drivers/zorro/zorro-sysfs.c | |||
@@ -78,7 +78,7 @@ static ssize_t zorro_read_config(struct kobject *kobj, | |||
78 | static struct bin_attribute zorro_config_attr = { | 78 | static struct bin_attribute zorro_config_attr = { |
79 | .attr = { | 79 | .attr = { |
80 | .name = "config", | 80 | .name = "config", |
81 | .mode = S_IRUGO | S_IWUSR, | 81 | .mode = S_IRUGO, |
82 | }, | 82 | }, |
83 | .size = sizeof(struct ConfigDev), | 83 | .size = sizeof(struct ConfigDev), |
84 | .read = zorro_read_config, | 84 | .read = zorro_read_config, |
diff --git a/fs/9p/fid.c b/fs/9p/fid.c index 08fa320b7e6d..15e05a15b575 100644 --- a/fs/9p/fid.c +++ b/fs/9p/fid.c | |||
@@ -92,23 +92,6 @@ struct p9_fid *v9fs_fid_lookup(struct dentry *dentry) | |||
92 | return fid; | 92 | return fid; |
93 | } | 93 | } |
94 | 94 | ||
95 | struct p9_fid *v9fs_fid_lookup_remove(struct dentry *dentry) | ||
96 | { | ||
97 | struct p9_fid *fid; | ||
98 | struct v9fs_dentry *dent; | ||
99 | |||
100 | dent = dentry->d_fsdata; | ||
101 | fid = v9fs_fid_lookup(dentry); | ||
102 | if (!IS_ERR(fid)) { | ||
103 | spin_lock(&dent->lock); | ||
104 | list_del(&fid->dlist); | ||
105 | spin_unlock(&dent->lock); | ||
106 | } | ||
107 | |||
108 | return fid; | ||
109 | } | ||
110 | |||
111 | |||
112 | /** | 95 | /** |
113 | * v9fs_fid_clone - lookup the fid for a dentry, clone a private copy and | 96 | * v9fs_fid_clone - lookup the fid for a dentry, clone a private copy and |
114 | * release it | 97 | * release it |
diff --git a/fs/9p/fid.h b/fs/9p/fid.h index 47a0ba742872..26e07df783b9 100644 --- a/fs/9p/fid.h +++ b/fs/9p/fid.h | |||
@@ -28,6 +28,5 @@ struct v9fs_dentry { | |||
28 | }; | 28 | }; |
29 | 29 | ||
30 | struct p9_fid *v9fs_fid_lookup(struct dentry *dentry); | 30 | struct p9_fid *v9fs_fid_lookup(struct dentry *dentry); |
31 | struct p9_fid *v9fs_fid_lookup_remove(struct dentry *dentry); | ||
32 | struct p9_fid *v9fs_fid_clone(struct dentry *dentry); | 31 | struct p9_fid *v9fs_fid_clone(struct dentry *dentry); |
33 | int v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid); | 32 | int v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid); |
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c index 2d4c8a3e604e..45ff3d63b758 100644 --- a/fs/autofs4/root.c +++ b/fs/autofs4/root.c | |||
@@ -587,19 +587,20 @@ static struct dentry *autofs4_lookup(struct inode *dir, struct dentry *dentry, s | |||
587 | unhashed = autofs4_lookup_unhashed(sbi, dentry->d_parent, &dentry->d_name); | 587 | unhashed = autofs4_lookup_unhashed(sbi, dentry->d_parent, &dentry->d_name); |
588 | if (!unhashed) { | 588 | if (!unhashed) { |
589 | /* | 589 | /* |
590 | * Mark the dentry incomplete, but add it. This is needed so | 590 | * Mark the dentry incomplete but don't hash it. We do this |
591 | * that the VFS layer knows about the dentry, and we can count | 591 | * to serialize our inode creation operations (symlink and |
592 | * on catching any lookups through the revalidate. | 592 | * mkdir) which prevents deadlock during the callback to |
593 | * | 593 | * the daemon. Subsequent user space lookups for the same |
594 | * Let all the hard work be done by the revalidate function that | 594 | * dentry are placed on the wait queue while the daemon |
595 | * needs to be able to do this anyway.. | 595 | * itself is allowed passage unresticted so the create |
596 | * | 596 | * operation itself can then hash the dentry. Finally, |
597 | * We need to do this before we release the directory semaphore. | 597 | * we check for the hashed dentry and return the newly |
598 | * hashed dentry. | ||
598 | */ | 599 | */ |
599 | dentry->d_op = &autofs4_root_dentry_operations; | 600 | dentry->d_op = &autofs4_root_dentry_operations; |
600 | 601 | ||
601 | dentry->d_fsdata = NULL; | 602 | dentry->d_fsdata = NULL; |
602 | d_add(dentry, NULL); | 603 | d_instantiate(dentry, NULL); |
603 | } else { | 604 | } else { |
604 | struct autofs_info *ino = autofs4_dentry_ino(unhashed); | 605 | struct autofs_info *ino = autofs4_dentry_ino(unhashed); |
605 | DPRINTK("rehash %p with %p", dentry, unhashed); | 606 | DPRINTK("rehash %p with %p", dentry, unhashed); |
@@ -607,15 +608,17 @@ static struct dentry *autofs4_lookup(struct inode *dir, struct dentry *dentry, s | |||
607 | * If we are racing with expire the request might not | 608 | * If we are racing with expire the request might not |
608 | * be quite complete but the directory has been removed | 609 | * be quite complete but the directory has been removed |
609 | * so it must have been successful, so just wait for it. | 610 | * so it must have been successful, so just wait for it. |
611 | * We need to ensure the AUTOFS_INF_EXPIRING flag is clear | ||
612 | * before continuing as revalidate may fail when calling | ||
613 | * try_to_fill_dentry (returning EAGAIN) if we don't. | ||
610 | */ | 614 | */ |
611 | if (ino && (ino->flags & AUTOFS_INF_EXPIRING)) { | 615 | while (ino && (ino->flags & AUTOFS_INF_EXPIRING)) { |
612 | DPRINTK("wait for incomplete expire %p name=%.*s", | 616 | DPRINTK("wait for incomplete expire %p name=%.*s", |
613 | unhashed, unhashed->d_name.len, | 617 | unhashed, unhashed->d_name.len, |
614 | unhashed->d_name.name); | 618 | unhashed->d_name.name); |
615 | autofs4_wait(sbi, unhashed, NFY_NONE); | 619 | autofs4_wait(sbi, unhashed, NFY_NONE); |
616 | DPRINTK("request completed"); | 620 | DPRINTK("request completed"); |
617 | } | 621 | } |
618 | d_rehash(unhashed); | ||
619 | dentry = unhashed; | 622 | dentry = unhashed; |
620 | } | 623 | } |
621 | 624 | ||
@@ -658,7 +661,7 @@ static struct dentry *autofs4_lookup(struct inode *dir, struct dentry *dentry, s | |||
658 | * for all system calls, but it should be OK for the operations | 661 | * for all system calls, but it should be OK for the operations |
659 | * we permit from an autofs. | 662 | * we permit from an autofs. |
660 | */ | 663 | */ |
661 | if (dentry->d_inode && d_unhashed(dentry)) { | 664 | if (!oz_mode && d_unhashed(dentry)) { |
662 | /* | 665 | /* |
663 | * A user space application can (and has done in the past) | 666 | * A user space application can (and has done in the past) |
664 | * remove and re-create this directory during the callback. | 667 | * remove and re-create this directory during the callback. |
@@ -716,7 +719,7 @@ static int autofs4_dir_symlink(struct inode *dir, | |||
716 | strcpy(cp, symname); | 719 | strcpy(cp, symname); |
717 | 720 | ||
718 | inode = autofs4_get_inode(dir->i_sb, ino); | 721 | inode = autofs4_get_inode(dir->i_sb, ino); |
719 | d_instantiate(dentry, inode); | 722 | d_add(dentry, inode); |
720 | 723 | ||
721 | if (dir == dir->i_sb->s_root->d_inode) | 724 | if (dir == dir->i_sb->s_root->d_inode) |
722 | dentry->d_op = &autofs4_root_dentry_operations; | 725 | dentry->d_op = &autofs4_root_dentry_operations; |
@@ -844,7 +847,7 @@ static int autofs4_dir_mkdir(struct inode *dir, struct dentry *dentry, int mode) | |||
844 | return -ENOSPC; | 847 | return -ENOSPC; |
845 | 848 | ||
846 | inode = autofs4_get_inode(dir->i_sb, ino); | 849 | inode = autofs4_get_inode(dir->i_sb, ino); |
847 | d_instantiate(dentry, inode); | 850 | d_add(dentry, inode); |
848 | 851 | ||
849 | if (dir == dir->i_sb->s_root->d_inode) | 852 | if (dir == dir->i_sb->s_root->d_inode) |
850 | dentry->d_op = &autofs4_root_dentry_operations; | 853 | dentry->d_op = &autofs4_root_dentry_operations; |
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES index 6d84ca2beead..bed6215c0794 100644 --- a/fs/cifs/CHANGES +++ b/fs/cifs/CHANGES | |||
@@ -3,7 +3,10 @@ Version 1.50 | |||
3 | Fix NTLMv2 signing. NFS server mounted over cifs works (if cifs mount is | 3 | Fix NTLMv2 signing. NFS server mounted over cifs works (if cifs mount is |
4 | done with "serverino" mount option). Add support for POSIX Unlink | 4 | done with "serverino" mount option). Add support for POSIX Unlink |
5 | (helps with certain sharing violation cases when server such as | 5 | (helps with certain sharing violation cases when server such as |
6 | Samba supports newer POSIX CIFS Protocol Extensions). | 6 | Samba supports newer POSIX CIFS Protocol Extensions). Add "nounix" |
7 | mount option to allow disabling the CIFS Unix Extensions for just | ||
8 | that mount. Fix hang on spinlock in find_writable_file (race when | ||
9 | reopening file after session crash). | ||
7 | 10 | ||
8 | Version 1.49 | 11 | Version 1.49 |
9 | ------------ | 12 | ------------ |
diff --git a/fs/cifs/README b/fs/cifs/README index 85f1eb14083e..b806b11b5560 100644 --- a/fs/cifs/README +++ b/fs/cifs/README | |||
@@ -444,6 +444,13 @@ A partial list of the supported mount options follows: | |||
444 | noposixpaths If CIFS Unix extensions are supported, do not request | 444 | noposixpaths If CIFS Unix extensions are supported, do not request |
445 | posix path name support (this may cause servers to | 445 | posix path name support (this may cause servers to |
446 | reject creatingfile with certain reserved characters). | 446 | reject creatingfile with certain reserved characters). |
447 | nounix Disable the CIFS Unix Extensions for this mount (tree | ||
448 | connection). This is rarely needed, but it may be useful | ||
449 | in order to turn off multiple settings all at once (ie | ||
450 | posix acls, posix locks, posix paths, symlink support | ||
451 | and retrieving uids/gids/mode from the server) or to | ||
452 | work around a bug in server which implement the Unix | ||
453 | Extensions. | ||
447 | nobrl Do not send byte range lock requests to the server. | 454 | nobrl Do not send byte range lock requests to the server. |
448 | This is necessary for certain applications that break | 455 | This is necessary for certain applications that break |
449 | with cifs style mandatory byte range locks (and most | 456 | with cifs style mandatory byte range locks (and most |
@@ -451,6 +458,12 @@ A partial list of the supported mount options follows: | |||
451 | byte range locks). | 458 | byte range locks). |
452 | remount remount the share (often used to change from ro to rw mounts | 459 | remount remount the share (often used to change from ro to rw mounts |
453 | or vice versa) | 460 | or vice versa) |
461 | servern Specify the server 's netbios name (RFC1001 name) to use | ||
462 | when attempting to setup a session to the server. This is | ||
463 | This is needed for mounting to some older servers (such | ||
464 | as OS/2 or Windows 98 and Windows ME) since they do not | ||
465 | support a default server name. A server name can be up | ||
466 | to 15 characters long and is usually uppercased. | ||
454 | sfu When the CIFS Unix Extensions are not negotiated, attempt to | 467 | sfu When the CIFS Unix Extensions are not negotiated, attempt to |
455 | create device files and fifos in a format compatible with | 468 | create device files and fifos in a format compatible with |
456 | Services for Unix (SFU). In addition retrieve bits 10-12 | 469 | Services for Unix (SFU). In addition retrieve bits 10-12 |
diff --git a/fs/cifs/TODO b/fs/cifs/TODO index d7bd51575fd6..29d4b2715254 100644 --- a/fs/cifs/TODO +++ b/fs/cifs/TODO | |||
@@ -82,8 +82,7 @@ u) DOS attrs - returned as pseudo-xattr in Samba format (check VFAT and NTFS for | |||
82 | 82 | ||
83 | v) mount check for unmatched uids | 83 | v) mount check for unmatched uids |
84 | 84 | ||
85 | w) Add mount option for Linux extension disable per mount, and partial | 85 | w) Add support for new vfs entry points for setlease and fallocate |
86 | disable per mount (uid off, symlink/fifo/mknod on but what about posix acls?) | ||
87 | 86 | ||
88 | x) Fix Samba 3 server to handle Linux kernel aio so dbench with lots of | 87 | x) Fix Samba 3 server to handle Linux kernel aio so dbench with lots of |
89 | processes can proceed better in parallel (on the server) | 88 | processes can proceed better in parallel (on the server) |
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index e13592afca9c..894b1f7b299d 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c | |||
@@ -1904,6 +1904,25 @@ static int cifs_readpage(struct file *file, struct page *page) | |||
1904 | return rc; | 1904 | return rc; |
1905 | } | 1905 | } |
1906 | 1906 | ||
1907 | static int is_inode_writable(struct cifsInodeInfo *cifs_inode) | ||
1908 | { | ||
1909 | struct cifsFileInfo *open_file; | ||
1910 | |||
1911 | read_lock(&GlobalSMBSeslock); | ||
1912 | list_for_each_entry(open_file, &cifs_inode->openFileList, flist) { | ||
1913 | if (open_file->closePend) | ||
1914 | continue; | ||
1915 | if (open_file->pfile && | ||
1916 | ((open_file->pfile->f_flags & O_RDWR) || | ||
1917 | (open_file->pfile->f_flags & O_WRONLY))) { | ||
1918 | read_unlock(&GlobalSMBSeslock); | ||
1919 | return 1; | ||
1920 | } | ||
1921 | } | ||
1922 | read_unlock(&GlobalSMBSeslock); | ||
1923 | return 0; | ||
1924 | } | ||
1925 | |||
1907 | /* We do not want to update the file size from server for inodes | 1926 | /* We do not want to update the file size from server for inodes |
1908 | open for write - to avoid races with writepage extending | 1927 | open for write - to avoid races with writepage extending |
1909 | the file - in the future we could consider allowing | 1928 | the file - in the future we could consider allowing |
@@ -1912,19 +1931,13 @@ static int cifs_readpage(struct file *file, struct page *page) | |||
1912 | page caching in the current Linux kernel design */ | 1931 | page caching in the current Linux kernel design */ |
1913 | int is_size_safe_to_change(struct cifsInodeInfo *cifsInode, __u64 end_of_file) | 1932 | int is_size_safe_to_change(struct cifsInodeInfo *cifsInode, __u64 end_of_file) |
1914 | { | 1933 | { |
1915 | struct cifsFileInfo *open_file = NULL; | 1934 | if (!cifsInode) |
1916 | 1935 | return 1; | |
1917 | if (cifsInode) | ||
1918 | open_file = find_writable_file(cifsInode); | ||
1919 | 1936 | ||
1920 | if (open_file) { | 1937 | if (is_inode_writable(cifsInode)) { |
1938 | /* This inode is open for write at least once */ | ||
1921 | struct cifs_sb_info *cifs_sb; | 1939 | struct cifs_sb_info *cifs_sb; |
1922 | 1940 | ||
1923 | /* there is not actually a write pending so let | ||
1924 | this handle go free and allow it to | ||
1925 | be closable if needed */ | ||
1926 | atomic_dec(&open_file->wrtPending); | ||
1927 | |||
1928 | cifs_sb = CIFS_SB(cifsInode->vfs_inode.i_sb); | 1941 | cifs_sb = CIFS_SB(cifsInode->vfs_inode.i_sb); |
1929 | if ( cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DIRECT_IO ) { | 1942 | if ( cifs_sb->mnt_cifs_flags & CIFS_MOUNT_DIRECT_IO ) { |
1930 | /* since no page cache to corrupt on directio | 1943 | /* since no page cache to corrupt on directio |
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c index 2ea027dda215..892be9b4d1f3 100644 --- a/fs/cifs/sess.c +++ b/fs/cifs/sess.c | |||
@@ -372,6 +372,10 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time, | |||
372 | 372 | ||
373 | /* 2000 big enough to fit max user, domain, NOS name etc. */ | 373 | /* 2000 big enough to fit max user, domain, NOS name etc. */ |
374 | str_area = kmalloc(2000, GFP_KERNEL); | 374 | str_area = kmalloc(2000, GFP_KERNEL); |
375 | if (str_area == NULL) { | ||
376 | cifs_small_buf_release(smb_buf); | ||
377 | return -ENOMEM; | ||
378 | } | ||
375 | bcc_ptr = str_area; | 379 | bcc_ptr = str_area; |
376 | 380 | ||
377 | ses->flags &= ~CIFS_SES_LANMAN; | 381 | ses->flags &= ~CIFS_SES_LANMAN; |
diff --git a/fs/direct-io.c b/fs/direct-io.c index 6874785bb65a..901dc55e9f54 100644 --- a/fs/direct-io.c +++ b/fs/direct-io.c | |||
@@ -958,36 +958,22 @@ direct_io_worker(int rw, struct kiocb *iocb, struct inode *inode, | |||
958 | ssize_t ret2; | 958 | ssize_t ret2; |
959 | size_t bytes; | 959 | size_t bytes; |
960 | 960 | ||
961 | dio->bio = NULL; | ||
962 | dio->inode = inode; | 961 | dio->inode = inode; |
963 | dio->rw = rw; | 962 | dio->rw = rw; |
964 | dio->blkbits = blkbits; | 963 | dio->blkbits = blkbits; |
965 | dio->blkfactor = inode->i_blkbits - blkbits; | 964 | dio->blkfactor = inode->i_blkbits - blkbits; |
966 | dio->start_zero_done = 0; | ||
967 | dio->size = 0; | ||
968 | dio->block_in_file = offset >> blkbits; | 965 | dio->block_in_file = offset >> blkbits; |
969 | dio->blocks_available = 0; | ||
970 | dio->cur_page = NULL; | ||
971 | 966 | ||
972 | dio->boundary = 0; | ||
973 | dio->reap_counter = 0; | ||
974 | dio->get_block = get_block; | 967 | dio->get_block = get_block; |
975 | dio->end_io = end_io; | 968 | dio->end_io = end_io; |
976 | dio->map_bh.b_private = NULL; | ||
977 | dio->map_bh.b_state = 0; | ||
978 | dio->final_block_in_bio = -1; | 969 | dio->final_block_in_bio = -1; |
979 | dio->next_block_for_io = -1; | 970 | dio->next_block_for_io = -1; |
980 | 971 | ||
981 | dio->page_errors = 0; | ||
982 | dio->io_error = 0; | ||
983 | dio->result = 0; | ||
984 | dio->iocb = iocb; | 972 | dio->iocb = iocb; |
985 | dio->i_size = i_size_read(inode); | 973 | dio->i_size = i_size_read(inode); |
986 | 974 | ||
987 | spin_lock_init(&dio->bio_lock); | 975 | spin_lock_init(&dio->bio_lock); |
988 | dio->refcount = 1; | 976 | dio->refcount = 1; |
989 | dio->bio_list = NULL; | ||
990 | dio->waiter = NULL; | ||
991 | 977 | ||
992 | /* | 978 | /* |
993 | * In case of non-aligned buffers, we may need 2 more | 979 | * In case of non-aligned buffers, we may need 2 more |
@@ -995,8 +981,6 @@ direct_io_worker(int rw, struct kiocb *iocb, struct inode *inode, | |||
995 | */ | 981 | */ |
996 | if (unlikely(dio->blkfactor)) | 982 | if (unlikely(dio->blkfactor)) |
997 | dio->pages_in_io = 2; | 983 | dio->pages_in_io = 2; |
998 | else | ||
999 | dio->pages_in_io = 0; | ||
1000 | 984 | ||
1001 | for (seg = 0; seg < nr_segs; seg++) { | 985 | for (seg = 0; seg < nr_segs; seg++) { |
1002 | user_addr = (unsigned long)iov[seg].iov_base; | 986 | user_addr = (unsigned long)iov[seg].iov_base; |
@@ -1184,7 +1168,7 @@ __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, | |||
1184 | } | 1168 | } |
1185 | } | 1169 | } |
1186 | 1170 | ||
1187 | dio = kmalloc(sizeof(*dio), GFP_KERNEL); | 1171 | dio = kzalloc(sizeof(*dio), GFP_KERNEL); |
1188 | retval = -ENOMEM; | 1172 | retval = -ENOMEM; |
1189 | if (!dio) | 1173 | if (!dio) |
1190 | goto out; | 1174 | goto out; |
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c index 131954b3fb98..5d40ad13ab5c 100644 --- a/fs/ecryptfs/inode.c +++ b/fs/ecryptfs/inode.c | |||
@@ -357,6 +357,10 @@ static struct dentry *ecryptfs_lookup(struct inode *dir, struct dentry *dentry, | |||
357 | ecryptfs_printk(KERN_DEBUG, "Is a special file; returning\n"); | 357 | ecryptfs_printk(KERN_DEBUG, "Is a special file; returning\n"); |
358 | goto out; | 358 | goto out; |
359 | } | 359 | } |
360 | if (special_file(lower_inode->i_mode)) { | ||
361 | ecryptfs_printk(KERN_DEBUG, "Is a special file; returning\n"); | ||
362 | goto out; | ||
363 | } | ||
360 | if (!nd) { | 364 | if (!nd) { |
361 | ecryptfs_printk(KERN_DEBUG, "We have a NULL nd, just leave" | 365 | ecryptfs_printk(KERN_DEBUG, "We have a NULL nd, just leave" |
362 | "as we *think* we are about to unlink\n"); | 366 | "as we *think* we are about to unlink\n"); |
@@ -780,18 +780,11 @@ static int de_thread(struct task_struct *tsk) | |||
780 | int count; | 780 | int count; |
781 | 781 | ||
782 | /* | 782 | /* |
783 | * Tell all the sighand listeners that this sighand has | ||
784 | * been detached. The signalfd_detach() function grabs the | ||
785 | * sighand lock, if signal listeners are present on the sighand. | ||
786 | */ | ||
787 | signalfd_detach(tsk); | ||
788 | |||
789 | /* | ||
790 | * If we don't share sighandlers, then we aren't sharing anything | 783 | * If we don't share sighandlers, then we aren't sharing anything |
791 | * and we can just re-use it all. | 784 | * and we can just re-use it all. |
792 | */ | 785 | */ |
793 | if (atomic_read(&oldsighand->count) <= 1) { | 786 | if (atomic_read(&oldsighand->count) <= 1) { |
794 | BUG_ON(atomic_read(&sig->count) != 1); | 787 | signalfd_detach(tsk); |
795 | exit_itimers(sig); | 788 | exit_itimers(sig); |
796 | return 0; | 789 | return 0; |
797 | } | 790 | } |
@@ -930,12 +923,11 @@ static int de_thread(struct task_struct *tsk) | |||
930 | sig->flags = 0; | 923 | sig->flags = 0; |
931 | 924 | ||
932 | no_thread_group: | 925 | no_thread_group: |
926 | signalfd_detach(tsk); | ||
933 | exit_itimers(sig); | 927 | exit_itimers(sig); |
934 | if (leader) | 928 | if (leader) |
935 | release_task(leader); | 929 | release_task(leader); |
936 | 930 | ||
937 | BUG_ON(atomic_read(&sig->count) != 1); | ||
938 | |||
939 | if (atomic_read(&oldsighand->count) == 1) { | 931 | if (atomic_read(&oldsighand->count) == 1) { |
940 | /* | 932 | /* |
941 | * Now that we nuked the rest of the thread group, | 933 | * Now that we nuked the rest of the thread group, |
@@ -1084,9 +1076,12 @@ int flush_old_exec(struct linux_binprm * bprm) | |||
1084 | */ | 1076 | */ |
1085 | current->mm->task_size = TASK_SIZE; | 1077 | current->mm->task_size = TASK_SIZE; |
1086 | 1078 | ||
1087 | if (bprm->e_uid != current->euid || bprm->e_gid != current->egid || | 1079 | if (bprm->e_uid != current->euid || bprm->e_gid != current->egid) { |
1088 | file_permission(bprm->file, MAY_READ) || | 1080 | suid_keys(current); |
1089 | (bprm->interp_flags & BINPRM_FLAGS_ENFORCE_NONDUMP)) { | 1081 | set_dumpable(current->mm, suid_dumpable); |
1082 | current->pdeath_signal = 0; | ||
1083 | } else if (file_permission(bprm->file, MAY_READ) || | ||
1084 | (bprm->interp_flags & BINPRM_FLAGS_ENFORCE_NONDUMP)) { | ||
1090 | suid_keys(current); | 1085 | suid_keys(current); |
1091 | set_dumpable(current->mm, suid_dumpable); | 1086 | set_dumpable(current->mm, suid_dumpable); |
1092 | } | 1087 | } |
@@ -1177,8 +1172,10 @@ void compute_creds(struct linux_binprm *bprm) | |||
1177 | { | 1172 | { |
1178 | int unsafe; | 1173 | int unsafe; |
1179 | 1174 | ||
1180 | if (bprm->e_uid != current->uid) | 1175 | if (bprm->e_uid != current->uid) { |
1181 | suid_keys(current); | 1176 | suid_keys(current); |
1177 | current->pdeath_signal = 0; | ||
1178 | } | ||
1182 | exec_keys(current); | 1179 | exec_keys(current); |
1183 | 1180 | ||
1184 | task_lock(current); | 1181 | task_lock(current); |
diff --git a/fs/jffs2/write.c b/fs/jffs2/write.c index bc6185933664..664c164aa67c 100644 --- a/fs/jffs2/write.c +++ b/fs/jffs2/write.c | |||
@@ -566,6 +566,9 @@ int jffs2_do_unlink(struct jffs2_sb_info *c, struct jffs2_inode_info *dir_f, | |||
566 | struct jffs2_full_dirent **prev = &dir_f->dents; | 566 | struct jffs2_full_dirent **prev = &dir_f->dents; |
567 | uint32_t nhash = full_name_hash(name, namelen); | 567 | uint32_t nhash = full_name_hash(name, namelen); |
568 | 568 | ||
569 | /* We don't actually want to reserve any space, but we do | ||
570 | want to be holding the alloc_sem when we write to flash */ | ||
571 | down(&c->alloc_sem); | ||
569 | down(&dir_f->sem); | 572 | down(&dir_f->sem); |
570 | 573 | ||
571 | while ((*prev) && (*prev)->nhash <= nhash) { | 574 | while ((*prev) && (*prev)->nhash <= nhash) { |
diff --git a/fs/proc/array.c b/fs/proc/array.c index 965625a0977d..ee4814dd98f9 100644 --- a/fs/proc/array.c +++ b/fs/proc/array.c | |||
@@ -320,7 +320,21 @@ int proc_pid_status(struct task_struct *task, char *buffer) | |||
320 | return buffer - orig; | 320 | return buffer - orig; |
321 | } | 321 | } |
322 | 322 | ||
323 | static clock_t task_utime(struct task_struct *p) | 323 | /* |
324 | * Use precise platform statistics if available: | ||
325 | */ | ||
326 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | ||
327 | static cputime_t task_utime(struct task_struct *p) | ||
328 | { | ||
329 | return p->utime; | ||
330 | } | ||
331 | |||
332 | static cputime_t task_stime(struct task_struct *p) | ||
333 | { | ||
334 | return p->stime; | ||
335 | } | ||
336 | #else | ||
337 | static cputime_t task_utime(struct task_struct *p) | ||
324 | { | 338 | { |
325 | clock_t utime = cputime_to_clock_t(p->utime), | 339 | clock_t utime = cputime_to_clock_t(p->utime), |
326 | total = utime + cputime_to_clock_t(p->stime); | 340 | total = utime + cputime_to_clock_t(p->stime); |
@@ -337,10 +351,10 @@ static clock_t task_utime(struct task_struct *p) | |||
337 | } | 351 | } |
338 | utime = (clock_t)temp; | 352 | utime = (clock_t)temp; |
339 | 353 | ||
340 | return utime; | 354 | return clock_t_to_cputime(utime); |
341 | } | 355 | } |
342 | 356 | ||
343 | static clock_t task_stime(struct task_struct *p) | 357 | static cputime_t task_stime(struct task_struct *p) |
344 | { | 358 | { |
345 | clock_t stime; | 359 | clock_t stime; |
346 | 360 | ||
@@ -349,10 +363,12 @@ static clock_t task_stime(struct task_struct *p) | |||
349 | * the total, to make sure the total observed by userspace | 363 | * the total, to make sure the total observed by userspace |
350 | * grows monotonically - apps rely on that): | 364 | * grows monotonically - apps rely on that): |
351 | */ | 365 | */ |
352 | stime = nsec_to_clock_t(p->se.sum_exec_runtime) - task_utime(p); | 366 | stime = nsec_to_clock_t(p->se.sum_exec_runtime) - |
367 | cputime_to_clock_t(task_utime(p)); | ||
353 | 368 | ||
354 | return stime; | 369 | return clock_t_to_cputime(stime); |
355 | } | 370 | } |
371 | #endif | ||
356 | 372 | ||
357 | static int do_task_stat(struct task_struct *task, char *buffer, int whole) | 373 | static int do_task_stat(struct task_struct *task, char *buffer, int whole) |
358 | { | 374 | { |
@@ -368,8 +384,7 @@ static int do_task_stat(struct task_struct *task, char *buffer, int whole) | |||
368 | unsigned long long start_time; | 384 | unsigned long long start_time; |
369 | unsigned long cmin_flt = 0, cmaj_flt = 0; | 385 | unsigned long cmin_flt = 0, cmaj_flt = 0; |
370 | unsigned long min_flt = 0, maj_flt = 0; | 386 | unsigned long min_flt = 0, maj_flt = 0; |
371 | cputime_t cutime, cstime; | 387 | cputime_t cutime, cstime, utime, stime; |
372 | clock_t utime, stime; | ||
373 | unsigned long rsslim = 0; | 388 | unsigned long rsslim = 0; |
374 | char tcomm[sizeof(task->comm)]; | 389 | char tcomm[sizeof(task->comm)]; |
375 | unsigned long flags; | 390 | unsigned long flags; |
@@ -387,8 +402,7 @@ static int do_task_stat(struct task_struct *task, char *buffer, int whole) | |||
387 | 402 | ||
388 | sigemptyset(&sigign); | 403 | sigemptyset(&sigign); |
389 | sigemptyset(&sigcatch); | 404 | sigemptyset(&sigcatch); |
390 | cutime = cstime = cputime_zero; | 405 | cutime = cstime = utime = stime = cputime_zero; |
391 | utime = stime = 0; | ||
392 | 406 | ||
393 | rcu_read_lock(); | 407 | rcu_read_lock(); |
394 | if (lock_task_sighand(task, &flags)) { | 408 | if (lock_task_sighand(task, &flags)) { |
@@ -414,15 +428,15 @@ static int do_task_stat(struct task_struct *task, char *buffer, int whole) | |||
414 | do { | 428 | do { |
415 | min_flt += t->min_flt; | 429 | min_flt += t->min_flt; |
416 | maj_flt += t->maj_flt; | 430 | maj_flt += t->maj_flt; |
417 | utime += task_utime(t); | 431 | utime = cputime_add(utime, task_utime(t)); |
418 | stime += task_stime(t); | 432 | stime = cputime_add(stime, task_stime(t)); |
419 | t = next_thread(t); | 433 | t = next_thread(t); |
420 | } while (t != task); | 434 | } while (t != task); |
421 | 435 | ||
422 | min_flt += sig->min_flt; | 436 | min_flt += sig->min_flt; |
423 | maj_flt += sig->maj_flt; | 437 | maj_flt += sig->maj_flt; |
424 | utime += cputime_to_clock_t(sig->utime); | 438 | utime = cputime_add(utime, sig->utime); |
425 | stime += cputime_to_clock_t(sig->stime); | 439 | stime = cputime_add(stime, sig->stime); |
426 | } | 440 | } |
427 | 441 | ||
428 | sid = signal_session(sig); | 442 | sid = signal_session(sig); |
@@ -471,8 +485,8 @@ static int do_task_stat(struct task_struct *task, char *buffer, int whole) | |||
471 | cmin_flt, | 485 | cmin_flt, |
472 | maj_flt, | 486 | maj_flt, |
473 | cmaj_flt, | 487 | cmaj_flt, |
474 | utime, | 488 | cputime_to_clock_t(utime), |
475 | stime, | 489 | cputime_to_clock_t(stime), |
476 | cputime_to_clock_t(cutime), | 490 | cputime_to_clock_t(cutime), |
477 | cputime_to_clock_t(cstime), | 491 | cputime_to_clock_t(cstime), |
478 | priority, | 492 | priority, |
diff --git a/fs/signalfd.c b/fs/signalfd.c index 7b941abbcde0..a8e293d30034 100644 --- a/fs/signalfd.c +++ b/fs/signalfd.c | |||
@@ -56,12 +56,18 @@ static int signalfd_lock(struct signalfd_ctx *ctx, struct signalfd_lockctx *lk) | |||
56 | sighand = lock_task_sighand(lk->tsk, &lk->flags); | 56 | sighand = lock_task_sighand(lk->tsk, &lk->flags); |
57 | rcu_read_unlock(); | 57 | rcu_read_unlock(); |
58 | 58 | ||
59 | if (sighand && !ctx->tsk) { | 59 | if (!sighand) |
60 | return 0; | ||
61 | |||
62 | if (!ctx->tsk) { | ||
60 | unlock_task_sighand(lk->tsk, &lk->flags); | 63 | unlock_task_sighand(lk->tsk, &lk->flags); |
61 | sighand = NULL; | 64 | return 0; |
62 | } | 65 | } |
63 | 66 | ||
64 | return sighand != NULL; | 67 | if (lk->tsk->tgid == current->tgid) |
68 | lk->tsk = current; | ||
69 | |||
70 | return 1; | ||
65 | } | 71 | } |
66 | 72 | ||
67 | static void signalfd_unlock(struct signalfd_lockctx *lk) | 73 | static void signalfd_unlock(struct signalfd_lockctx *lk) |
@@ -331,7 +337,7 @@ asmlinkage long sys_signalfd(int ufd, sigset_t __user *user_mask, size_t sizemas | |||
331 | 337 | ||
332 | init_waitqueue_head(&ctx->wqh); | 338 | init_waitqueue_head(&ctx->wqh); |
333 | ctx->sigmask = sigmask; | 339 | ctx->sigmask = sigmask; |
334 | ctx->tsk = current; | 340 | ctx->tsk = current->group_leader; |
335 | 341 | ||
336 | sighand = current->sighand; | 342 | sighand = current->sighand; |
337 | /* | 343 | /* |
diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c index 135353f8a296..5afe2a26f5d8 100644 --- a/fs/sysfs/bin.c +++ b/fs/sysfs/bin.c | |||
@@ -248,12 +248,7 @@ int sysfs_create_bin_file(struct kobject * kobj, struct bin_attribute * attr) | |||
248 | 248 | ||
249 | void sysfs_remove_bin_file(struct kobject * kobj, struct bin_attribute * attr) | 249 | void sysfs_remove_bin_file(struct kobject * kobj, struct bin_attribute * attr) |
250 | { | 250 | { |
251 | if (sysfs_hash_and_remove(kobj->sd, attr->attr.name) < 0) { | 251 | sysfs_hash_and_remove(kobj->sd, attr->attr.name); |
252 | printk(KERN_ERR "%s: " | ||
253 | "bad dentry or inode or no such file: \"%s\"\n", | ||
254 | __FUNCTION__, attr->attr.name); | ||
255 | dump_stack(); | ||
256 | } | ||
257 | } | 252 | } |
258 | 253 | ||
259 | EXPORT_SYMBOL_GPL(sysfs_create_bin_file); | 254 | EXPORT_SYMBOL_GPL(sysfs_create_bin_file); |
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c index 048e6054c2fd..83e76b3813c9 100644 --- a/fs/sysfs/dir.c +++ b/fs/sysfs/dir.c | |||
@@ -762,12 +762,15 @@ static int sysfs_count_nlink(struct sysfs_dirent *sd) | |||
762 | static struct dentry * sysfs_lookup(struct inode *dir, struct dentry *dentry, | 762 | static struct dentry * sysfs_lookup(struct inode *dir, struct dentry *dentry, |
763 | struct nameidata *nd) | 763 | struct nameidata *nd) |
764 | { | 764 | { |
765 | struct dentry *ret = NULL; | ||
765 | struct sysfs_dirent * parent_sd = dentry->d_parent->d_fsdata; | 766 | struct sysfs_dirent * parent_sd = dentry->d_parent->d_fsdata; |
766 | struct sysfs_dirent * sd; | 767 | struct sysfs_dirent * sd; |
767 | struct bin_attribute *bin_attr; | 768 | struct bin_attribute *bin_attr; |
768 | struct inode *inode; | 769 | struct inode *inode; |
769 | int found = 0; | 770 | int found = 0; |
770 | 771 | ||
772 | mutex_lock(&sysfs_mutex); | ||
773 | |||
771 | for (sd = parent_sd->s_children; sd; sd = sd->s_sibling) { | 774 | for (sd = parent_sd->s_children; sd; sd = sd->s_sibling) { |
772 | if (sysfs_type(sd) && | 775 | if (sysfs_type(sd) && |
773 | !strcmp(sd->s_name, dentry->d_name.name)) { | 776 | !strcmp(sd->s_name, dentry->d_name.name)) { |
@@ -778,14 +781,14 @@ static struct dentry * sysfs_lookup(struct inode *dir, struct dentry *dentry, | |||
778 | 781 | ||
779 | /* no such entry */ | 782 | /* no such entry */ |
780 | if (!found) | 783 | if (!found) |
781 | return NULL; | 784 | goto out_unlock; |
782 | 785 | ||
783 | /* attach dentry and inode */ | 786 | /* attach dentry and inode */ |
784 | inode = sysfs_get_inode(sd); | 787 | inode = sysfs_get_inode(sd); |
785 | if (!inode) | 788 | if (!inode) { |
786 | return ERR_PTR(-ENOMEM); | 789 | ret = ERR_PTR(-ENOMEM); |
787 | 790 | goto out_unlock; | |
788 | mutex_lock(&sysfs_mutex); | 791 | } |
789 | 792 | ||
790 | if (inode->i_state & I_NEW) { | 793 | if (inode->i_state & I_NEW) { |
791 | /* initialize inode according to type */ | 794 | /* initialize inode according to type */ |
@@ -815,9 +818,9 @@ static struct dentry * sysfs_lookup(struct inode *dir, struct dentry *dentry, | |||
815 | sysfs_instantiate(dentry, inode); | 818 | sysfs_instantiate(dentry, inode); |
816 | sysfs_attach_dentry(sd, dentry); | 819 | sysfs_attach_dentry(sd, dentry); |
817 | 820 | ||
821 | out_unlock: | ||
818 | mutex_unlock(&sysfs_mutex); | 822 | mutex_unlock(&sysfs_mutex); |
819 | 823 | return ret; | |
820 | return NULL; | ||
821 | } | 824 | } |
822 | 825 | ||
823 | const struct inode_operations sysfs_dir_inode_operations = { | 826 | const struct inode_operations sysfs_dir_inode_operations = { |
@@ -942,6 +945,8 @@ int sysfs_rename_dir(struct kobject *kobj, struct sysfs_dirent *new_parent_sd, | |||
942 | if (error) | 945 | if (error) |
943 | goto out_drop; | 946 | goto out_drop; |
944 | 947 | ||
948 | mutex_lock(&sysfs_mutex); | ||
949 | |||
945 | dup_name = sd->s_name; | 950 | dup_name = sd->s_name; |
946 | sd->s_name = new_name; | 951 | sd->s_name = new_name; |
947 | 952 | ||
@@ -949,8 +954,6 @@ int sysfs_rename_dir(struct kobject *kobj, struct sysfs_dirent *new_parent_sd, | |||
949 | d_add(new_dentry, NULL); | 954 | d_add(new_dentry, NULL); |
950 | d_move(sd->s_dentry, new_dentry); | 955 | d_move(sd->s_dentry, new_dentry); |
951 | 956 | ||
952 | mutex_lock(&sysfs_mutex); | ||
953 | |||
954 | sysfs_unlink_sibling(sd); | 957 | sysfs_unlink_sibling(sd); |
955 | sysfs_get(new_parent_sd); | 958 | sysfs_get(new_parent_sd); |
956 | sysfs_put(sd->s_parent); | 959 | sysfs_put(sd->s_parent); |
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index 3d0fea235bf3..86aea44ce6d4 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h | |||
@@ -321,8 +321,7 @@ struct acpi_bus_event { | |||
321 | }; | 321 | }; |
322 | 322 | ||
323 | extern struct kset acpi_subsys; | 323 | extern struct kset acpi_subsys; |
324 | extern int acpi_bus_generate_genetlink_event(struct acpi_device *device, | 324 | extern int acpi_bus_generate_netlink_event(const char*, const char*, u8, int); |
325 | u8 type, int data); | ||
326 | /* | 325 | /* |
327 | * External Functions | 326 | * External Functions |
328 | */ | 327 | */ |
@@ -332,8 +331,13 @@ void acpi_bus_data_handler(acpi_handle handle, u32 function, void *context); | |||
332 | int acpi_bus_get_status(struct acpi_device *device); | 331 | int acpi_bus_get_status(struct acpi_device *device); |
333 | int acpi_bus_get_power(acpi_handle handle, int *state); | 332 | int acpi_bus_get_power(acpi_handle handle, int *state); |
334 | int acpi_bus_set_power(acpi_handle handle, int state); | 333 | int acpi_bus_set_power(acpi_handle handle, int state); |
335 | int acpi_bus_generate_event(struct acpi_device *device, u8 type, int data); | 334 | #ifdef CONFIG_ACPI_PROC_EVENT |
335 | int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data); | ||
336 | int acpi_bus_receive_event(struct acpi_bus_event *event); | 336 | int acpi_bus_receive_event(struct acpi_bus_event *event); |
337 | #else | ||
338 | static inline int acpi_bus_generate_proc_event(struct acpi_device *device, u8 type, int data) | ||
339 | { return 0; } | ||
340 | #endif | ||
337 | int acpi_bus_register_driver(struct acpi_driver *driver); | 341 | int acpi_bus_register_driver(struct acpi_driver *driver); |
338 | void acpi_bus_unregister_driver(struct acpi_driver *driver); | 342 | void acpi_bus_unregister_driver(struct acpi_driver *driver); |
339 | int acpi_bus_add(struct acpi_device **child, struct acpi_device *parent, | 343 | int acpi_bus_add(struct acpi_device **child, struct acpi_device *parent, |
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index b5cca5daa348..3d7ab9e0c9fe 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h | |||
@@ -130,7 +130,7 @@ acpi_walk_namespace(acpi_object_type type, | |||
130 | void *context, void **return_value); | 130 | void *context, void **return_value); |
131 | 131 | ||
132 | acpi_status | 132 | acpi_status |
133 | acpi_get_devices(char *HID, | 133 | acpi_get_devices(const char *HID, |
134 | acpi_walk_callback user_function, | 134 | acpi_walk_callback user_function, |
135 | void *context, void **return_value); | 135 | void *context, void **return_value); |
136 | 136 | ||
diff --git a/include/acpi/acstruct.h b/include/acpi/acstruct.h index aeb4498e5e06..88482655407f 100644 --- a/include/acpi/acstruct.h +++ b/include/acpi/acstruct.h | |||
@@ -146,7 +146,7 @@ struct acpi_init_walk_info { | |||
146 | struct acpi_get_devices_info { | 146 | struct acpi_get_devices_info { |
147 | acpi_walk_callback user_function; | 147 | acpi_walk_callback user_function; |
148 | void *context; | 148 | void *context; |
149 | char *hid; | 149 | const char *hid; |
150 | }; | 150 | }; |
151 | 151 | ||
152 | union acpi_aml_operands { | 152 | union acpi_aml_operands { |
diff --git a/include/asm-avr32/io.h b/include/asm-avr32/io.h index e30d4b3bd836..64bb92bb6773 100644 --- a/include/asm-avr32/io.h +++ b/include/asm-avr32/io.h | |||
@@ -255,6 +255,8 @@ static inline void memset_io(volatile void __iomem *addr, unsigned char val, | |||
255 | memset((void __force *)addr, val, count); | 255 | memset((void __force *)addr, val, count); |
256 | } | 256 | } |
257 | 257 | ||
258 | #define mmiowb() | ||
259 | |||
258 | #define IO_SPACE_LIMIT 0xffffffff | 260 | #define IO_SPACE_LIMIT 0xffffffff |
259 | 261 | ||
260 | extern void __iomem *__ioremap(unsigned long offset, size_t size, | 262 | extern void __iomem *__ioremap(unsigned long offset, size_t size, |
diff --git a/include/asm-avr32/pgalloc.h b/include/asm-avr32/pgalloc.h index bb82e70cde8d..0e680f47209f 100644 --- a/include/asm-avr32/pgalloc.h +++ b/include/asm-avr32/pgalloc.h | |||
@@ -27,13 +27,7 @@ static __inline__ void pmd_populate(struct mm_struct *mm, pmd_t *pmd, | |||
27 | */ | 27 | */ |
28 | static __inline__ pgd_t *pgd_alloc(struct mm_struct *mm) | 28 | static __inline__ pgd_t *pgd_alloc(struct mm_struct *mm) |
29 | { | 29 | { |
30 | unsigned int pgd_size = (USER_PTRS_PER_PGD * sizeof(pgd_t)); | 30 | return kcalloc(USER_PTRS_PER_PGD, sizeof(pgd_t), GFP_KERNEL); |
31 | pgd_t *pgd = kmalloc(pgd_size, GFP_KERNEL); | ||
32 | |||
33 | if (pgd) | ||
34 | memset(pgd, 0, pgd_size); | ||
35 | |||
36 | return pgd; | ||
37 | } | 31 | } |
38 | 32 | ||
39 | static inline void pgd_free(pgd_t *pgd) | 33 | static inline void pgd_free(pgd_t *pgd) |
@@ -44,18 +38,9 @@ static inline void pgd_free(pgd_t *pgd) | |||
44 | static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, | 38 | static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, |
45 | unsigned long address) | 39 | unsigned long address) |
46 | { | 40 | { |
47 | int count = 0; | ||
48 | pte_t *pte; | 41 | pte_t *pte; |
49 | 42 | ||
50 | do { | 43 | pte = (pte_t *)get_zeroed_page(GFP_KERNEL | __GFP_REPEAT); |
51 | pte = (pte_t *) __get_free_page(GFP_KERNEL | __GFP_REPEAT); | ||
52 | if (pte) | ||
53 | clear_page(pte); | ||
54 | else { | ||
55 | current->state = TASK_UNINTERRUPTIBLE; | ||
56 | schedule_timeout(HZ); | ||
57 | } | ||
58 | } while (!pte && (count++ < 10)); | ||
59 | 44 | ||
60 | return pte; | 45 | return pte; |
61 | } | 46 | } |
@@ -63,18 +48,9 @@ static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm, | |||
63 | static inline struct page *pte_alloc_one(struct mm_struct *mm, | 48 | static inline struct page *pte_alloc_one(struct mm_struct *mm, |
64 | unsigned long address) | 49 | unsigned long address) |
65 | { | 50 | { |
66 | int count = 0; | ||
67 | struct page *pte; | 51 | struct page *pte; |
68 | 52 | ||
69 | do { | 53 | pte = alloc_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO); |
70 | pte = alloc_pages(GFP_KERNEL, 0); | ||
71 | if (pte) | ||
72 | clear_page(page_address(pte)); | ||
73 | else { | ||
74 | current->state = TASK_UNINTERRUPTIBLE; | ||
75 | schedule_timeout(HZ); | ||
76 | } | ||
77 | } while (!pte && (count++ < 10)); | ||
78 | 54 | ||
79 | return pte; | 55 | return pte; |
80 | } | 56 | } |
diff --git a/include/asm-avr32/pgtable.h b/include/asm-avr32/pgtable.h index c07bdd10b891..018f6e2a0242 100644 --- a/include/asm-avr32/pgtable.h +++ b/include/asm-avr32/pgtable.h | |||
@@ -32,8 +32,6 @@ | |||
32 | #define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE) | 32 | #define USER_PTRS_PER_PGD (TASK_SIZE / PGDIR_SIZE) |
33 | #define FIRST_USER_ADDRESS 0 | 33 | #define FIRST_USER_ADDRESS 0 |
34 | 34 | ||
35 | #define PTE_PHYS_MASK 0x1ffff000 | ||
36 | |||
37 | #ifndef __ASSEMBLY__ | 35 | #ifndef __ASSEMBLY__ |
38 | extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; | 36 | extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; |
39 | extern void paging_init(void); | 37 | extern void paging_init(void); |
@@ -265,7 +263,7 @@ static inline pte_t pte_mkyoung(pte_t pte) | |||
265 | * trivial. | 263 | * trivial. |
266 | */ | 264 | */ |
267 | #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) | 265 | #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) |
268 | #define pte_page(x) phys_to_page(pte_val(x) & PTE_PHYS_MASK) | 266 | #define pte_page(x) (pfn_to_page(pte_pfn(x))) |
269 | 267 | ||
270 | /* | 268 | /* |
271 | * Mark the prot value as uncacheable and unbufferable | 269 | * Mark the prot value as uncacheable and unbufferable |
diff --git a/include/asm-i386/io.h b/include/asm-i386/io.h index 7b65b5b00034..e8e0bd641120 100644 --- a/include/asm-i386/io.h +++ b/include/asm-i386/io.h | |||
@@ -112,6 +112,9 @@ extern void __iomem * __ioremap(unsigned long offset, unsigned long size, unsign | |||
112 | * writew/writel functions and the other mmio helpers. The returned | 112 | * writew/writel functions and the other mmio helpers. The returned |
113 | * address is not guaranteed to be usable directly as a virtual | 113 | * address is not guaranteed to be usable directly as a virtual |
114 | * address. | 114 | * address. |
115 | * | ||
116 | * If the area you are trying to map is a PCI BAR you should have a | ||
117 | * look at pci_iomap(). | ||
115 | */ | 118 | */ |
116 | 119 | ||
117 | static inline void __iomem * ioremap(unsigned long offset, unsigned long size) | 120 | static inline void __iomem * ioremap(unsigned long offset, unsigned long size) |
diff --git a/include/asm-i386/io_apic.h b/include/asm-i386/io_apic.h index 340764076d5f..dbe734ddf2af 100644 --- a/include/asm-i386/io_apic.h +++ b/include/asm-i386/io_apic.h | |||
@@ -150,7 +150,6 @@ extern int (*ioapic_renumber_irq)(int ioapic, int irq); | |||
150 | 150 | ||
151 | #else /* !CONFIG_X86_IO_APIC */ | 151 | #else /* !CONFIG_X86_IO_APIC */ |
152 | #define io_apic_assign_pci_irqs 0 | 152 | #define io_apic_assign_pci_irqs 0 |
153 | static inline void disable_ioapic_setup(void) { } | ||
154 | #endif | 153 | #endif |
155 | 154 | ||
156 | #endif | 155 | #endif |
diff --git a/include/asm-i386/mach-default/mach_wakecpu.h b/include/asm-i386/mach-default/mach_wakecpu.h index 673b85c9b273..3ebb17893aa5 100644 --- a/include/asm-i386/mach-default/mach_wakecpu.h +++ b/include/asm-i386/mach-default/mach_wakecpu.h | |||
@@ -15,7 +15,8 @@ | |||
15 | 15 | ||
16 | static inline void wait_for_init_deassert(atomic_t *deassert) | 16 | static inline void wait_for_init_deassert(atomic_t *deassert) |
17 | { | 17 | { |
18 | while (!atomic_read(deassert)); | 18 | while (!atomic_read(deassert)) |
19 | cpu_relax(); | ||
19 | return; | 20 | return; |
20 | } | 21 | } |
21 | 22 | ||
diff --git a/include/asm-i386/mach-es7000/mach_wakecpu.h b/include/asm-i386/mach-es7000/mach_wakecpu.h index efc903b73486..84ff58314501 100644 --- a/include/asm-i386/mach-es7000/mach_wakecpu.h +++ b/include/asm-i386/mach-es7000/mach_wakecpu.h | |||
@@ -31,7 +31,8 @@ wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip) | |||
31 | static inline void wait_for_init_deassert(atomic_t *deassert) | 31 | static inline void wait_for_init_deassert(atomic_t *deassert) |
32 | { | 32 | { |
33 | #ifdef WAKE_SECONDARY_VIA_INIT | 33 | #ifdef WAKE_SECONDARY_VIA_INIT |
34 | while (!atomic_read(deassert)); | 34 | while (!atomic_read(deassert)) |
35 | cpu_relax(); | ||
35 | #endif | 36 | #endif |
36 | return; | 37 | return; |
37 | } | 38 | } |
diff --git a/include/asm-i386/nmi.h b/include/asm-i386/nmi.h index ff30c98f87b0..70a958a8e381 100644 --- a/include/asm-i386/nmi.h +++ b/include/asm-i386/nmi.h | |||
@@ -33,11 +33,12 @@ extern int nmi_watchdog_tick (struct pt_regs * regs, unsigned reason); | |||
33 | 33 | ||
34 | extern atomic_t nmi_active; | 34 | extern atomic_t nmi_active; |
35 | extern unsigned int nmi_watchdog; | 35 | extern unsigned int nmi_watchdog; |
36 | #define NMI_DEFAULT -1 | 36 | #define NMI_DISABLED -1 |
37 | #define NMI_NONE 0 | 37 | #define NMI_NONE 0 |
38 | #define NMI_IO_APIC 1 | 38 | #define NMI_IO_APIC 1 |
39 | #define NMI_LOCAL_APIC 2 | 39 | #define NMI_LOCAL_APIC 2 |
40 | #define NMI_INVALID 3 | 40 | #define NMI_INVALID 3 |
41 | #define NMI_DEFAULT NMI_DISABLED | ||
41 | 42 | ||
42 | struct ctl_table; | 43 | struct ctl_table; |
43 | struct file; | 44 | struct file; |
diff --git a/include/asm-ia64/atomic.h b/include/asm-ia64/atomic.h index 1fc3b83325da..50c2b83fd5a0 100644 --- a/include/asm-ia64/atomic.h +++ b/include/asm-ia64/atomic.h | |||
@@ -55,7 +55,7 @@ ia64_atomic64_add (__s64 i, atomic64_t *v) | |||
55 | 55 | ||
56 | do { | 56 | do { |
57 | CMPXCHG_BUGCHECK(v); | 57 | CMPXCHG_BUGCHECK(v); |
58 | old = atomic_read(v); | 58 | old = atomic64_read(v); |
59 | new = old + i; | 59 | new = old + i; |
60 | } while (ia64_cmpxchg(acq, v, old, new, sizeof(atomic64_t)) != old); | 60 | } while (ia64_cmpxchg(acq, v, old, new, sizeof(atomic64_t)) != old); |
61 | return new; | 61 | return new; |
@@ -83,7 +83,7 @@ ia64_atomic64_sub (__s64 i, atomic64_t *v) | |||
83 | 83 | ||
84 | do { | 84 | do { |
85 | CMPXCHG_BUGCHECK(v); | 85 | CMPXCHG_BUGCHECK(v); |
86 | old = atomic_read(v); | 86 | old = atomic64_read(v); |
87 | new = old - i; | 87 | new = old - i; |
88 | } while (ia64_cmpxchg(acq, v, old, new, sizeof(atomic64_t)) != old); | 88 | } while (ia64_cmpxchg(acq, v, old, new, sizeof(atomic64_t)) != old); |
89 | return new; | 89 | return new; |
diff --git a/include/asm-ia64/hw_irq.h b/include/asm-ia64/hw_irq.h index efa1b8f7251d..bba5baa3c7fc 100644 --- a/include/asm-ia64/hw_irq.h +++ b/include/asm-ia64/hw_irq.h | |||
@@ -124,6 +124,11 @@ static inline void ia64_resend_irq(unsigned int vector) | |||
124 | extern irq_desc_t irq_desc[NR_IRQS]; | 124 | extern irq_desc_t irq_desc[NR_IRQS]; |
125 | 125 | ||
126 | #ifndef CONFIG_IA64_GENERIC | 126 | #ifndef CONFIG_IA64_GENERIC |
127 | static inline ia64_vector __ia64_irq_to_vector(int irq) | ||
128 | { | ||
129 | return irq_cfg[irq].vector; | ||
130 | } | ||
131 | |||
127 | static inline unsigned int | 132 | static inline unsigned int |
128 | __ia64_local_vector_to_irq (ia64_vector vec) | 133 | __ia64_local_vector_to_irq (ia64_vector vec) |
129 | { | 134 | { |
@@ -145,7 +150,7 @@ __ia64_local_vector_to_irq (ia64_vector vec) | |||
145 | static inline ia64_vector | 150 | static inline ia64_vector |
146 | irq_to_vector (int irq) | 151 | irq_to_vector (int irq) |
147 | { | 152 | { |
148 | return irq_cfg[irq].vector; | 153 | return platform_irq_to_vector(irq); |
149 | } | 154 | } |
150 | 155 | ||
151 | /* | 156 | /* |
diff --git a/include/asm-ia64/machvec.h b/include/asm-ia64/machvec.h index 5cf8bf1e805e..c201a2020aa4 100644 --- a/include/asm-ia64/machvec.h +++ b/include/asm-ia64/machvec.h | |||
@@ -30,6 +30,7 @@ typedef void ia64_mv_send_ipi_t (int, int, int, int); | |||
30 | typedef void ia64_mv_timer_interrupt_t (int, void *); | 30 | typedef void ia64_mv_timer_interrupt_t (int, void *); |
31 | typedef void ia64_mv_global_tlb_purge_t (struct mm_struct *, unsigned long, unsigned long, unsigned long); | 31 | typedef void ia64_mv_global_tlb_purge_t (struct mm_struct *, unsigned long, unsigned long, unsigned long); |
32 | typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *); | 32 | typedef void ia64_mv_tlb_migrate_finish_t (struct mm_struct *); |
33 | typedef u8 ia64_mv_irq_to_vector (int); | ||
33 | typedef unsigned int ia64_mv_local_vector_to_irq (u8); | 34 | typedef unsigned int ia64_mv_local_vector_to_irq (u8); |
34 | typedef char *ia64_mv_pci_get_legacy_mem_t (struct pci_bus *); | 35 | typedef char *ia64_mv_pci_get_legacy_mem_t (struct pci_bus *); |
35 | typedef int ia64_mv_pci_legacy_read_t (struct pci_bus *, u16 port, u32 *val, | 36 | typedef int ia64_mv_pci_legacy_read_t (struct pci_bus *, u16 port, u32 *val, |
@@ -145,6 +146,7 @@ extern void machvec_tlb_migrate_finish (struct mm_struct *); | |||
145 | # define platform_dma_sync_sg_for_device ia64_mv.dma_sync_sg_for_device | 146 | # define platform_dma_sync_sg_for_device ia64_mv.dma_sync_sg_for_device |
146 | # define platform_dma_mapping_error ia64_mv.dma_mapping_error | 147 | # define platform_dma_mapping_error ia64_mv.dma_mapping_error |
147 | # define platform_dma_supported ia64_mv.dma_supported | 148 | # define platform_dma_supported ia64_mv.dma_supported |
149 | # define platform_irq_to_vector ia64_mv.irq_to_vector | ||
148 | # define platform_local_vector_to_irq ia64_mv.local_vector_to_irq | 150 | # define platform_local_vector_to_irq ia64_mv.local_vector_to_irq |
149 | # define platform_pci_get_legacy_mem ia64_mv.pci_get_legacy_mem | 151 | # define platform_pci_get_legacy_mem ia64_mv.pci_get_legacy_mem |
150 | # define platform_pci_legacy_read ia64_mv.pci_legacy_read | 152 | # define platform_pci_legacy_read ia64_mv.pci_legacy_read |
@@ -198,6 +200,7 @@ struct ia64_machine_vector { | |||
198 | ia64_mv_dma_sync_sg_for_device *dma_sync_sg_for_device; | 200 | ia64_mv_dma_sync_sg_for_device *dma_sync_sg_for_device; |
199 | ia64_mv_dma_mapping_error *dma_mapping_error; | 201 | ia64_mv_dma_mapping_error *dma_mapping_error; |
200 | ia64_mv_dma_supported *dma_supported; | 202 | ia64_mv_dma_supported *dma_supported; |
203 | ia64_mv_irq_to_vector *irq_to_vector; | ||
201 | ia64_mv_local_vector_to_irq *local_vector_to_irq; | 204 | ia64_mv_local_vector_to_irq *local_vector_to_irq; |
202 | ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem; | 205 | ia64_mv_pci_get_legacy_mem_t *pci_get_legacy_mem; |
203 | ia64_mv_pci_legacy_read_t *pci_legacy_read; | 206 | ia64_mv_pci_legacy_read_t *pci_legacy_read; |
@@ -247,6 +250,7 @@ struct ia64_machine_vector { | |||
247 | platform_dma_sync_sg_for_device, \ | 250 | platform_dma_sync_sg_for_device, \ |
248 | platform_dma_mapping_error, \ | 251 | platform_dma_mapping_error, \ |
249 | platform_dma_supported, \ | 252 | platform_dma_supported, \ |
253 | platform_irq_to_vector, \ | ||
250 | platform_local_vector_to_irq, \ | 254 | platform_local_vector_to_irq, \ |
251 | platform_pci_get_legacy_mem, \ | 255 | platform_pci_get_legacy_mem, \ |
252 | platform_pci_legacy_read, \ | 256 | platform_pci_legacy_read, \ |
@@ -366,6 +370,9 @@ extern ia64_mv_dma_supported swiotlb_dma_supported; | |||
366 | #ifndef platform_dma_supported | 370 | #ifndef platform_dma_supported |
367 | # define platform_dma_supported swiotlb_dma_supported | 371 | # define platform_dma_supported swiotlb_dma_supported |
368 | #endif | 372 | #endif |
373 | #ifndef platform_irq_to_vector | ||
374 | # define platform_irq_to_vector __ia64_irq_to_vector | ||
375 | #endif | ||
369 | #ifndef platform_local_vector_to_irq | 376 | #ifndef platform_local_vector_to_irq |
370 | # define platform_local_vector_to_irq __ia64_local_vector_to_irq | 377 | # define platform_local_vector_to_irq __ia64_local_vector_to_irq |
371 | #endif | 378 | #endif |
diff --git a/include/asm-ia64/machvec_init.h b/include/asm-ia64/machvec_init.h index 2d36f6840f0b..7f21249fba3f 100644 --- a/include/asm-ia64/machvec_init.h +++ b/include/asm-ia64/machvec_init.h | |||
@@ -2,6 +2,7 @@ | |||
2 | 2 | ||
3 | extern ia64_mv_send_ipi_t ia64_send_ipi; | 3 | extern ia64_mv_send_ipi_t ia64_send_ipi; |
4 | extern ia64_mv_global_tlb_purge_t ia64_global_tlb_purge; | 4 | extern ia64_mv_global_tlb_purge_t ia64_global_tlb_purge; |
5 | extern ia64_mv_irq_to_vector __ia64_irq_to_vector; | ||
5 | extern ia64_mv_local_vector_to_irq __ia64_local_vector_to_irq; | 6 | extern ia64_mv_local_vector_to_irq __ia64_local_vector_to_irq; |
6 | extern ia64_mv_pci_get_legacy_mem_t ia64_pci_get_legacy_mem; | 7 | extern ia64_mv_pci_get_legacy_mem_t ia64_pci_get_legacy_mem; |
7 | extern ia64_mv_pci_legacy_read_t ia64_pci_legacy_read; | 8 | extern ia64_mv_pci_legacy_read_t ia64_pci_legacy_read; |
diff --git a/include/asm-ia64/machvec_sn2.h b/include/asm-ia64/machvec_sn2.h index eaa2fce0fecd..61439a7f5b08 100644 --- a/include/asm-ia64/machvec_sn2.h +++ b/include/asm-ia64/machvec_sn2.h | |||
@@ -35,6 +35,7 @@ extern ia64_mv_send_ipi_t sn2_send_IPI; | |||
35 | extern ia64_mv_timer_interrupt_t sn_timer_interrupt; | 35 | extern ia64_mv_timer_interrupt_t sn_timer_interrupt; |
36 | extern ia64_mv_global_tlb_purge_t sn2_global_tlb_purge; | 36 | extern ia64_mv_global_tlb_purge_t sn2_global_tlb_purge; |
37 | extern ia64_mv_tlb_migrate_finish_t sn_tlb_migrate_finish; | 37 | extern ia64_mv_tlb_migrate_finish_t sn_tlb_migrate_finish; |
38 | extern ia64_mv_irq_to_vector sn_irq_to_vector; | ||
38 | extern ia64_mv_local_vector_to_irq sn_local_vector_to_irq; | 39 | extern ia64_mv_local_vector_to_irq sn_local_vector_to_irq; |
39 | extern ia64_mv_pci_get_legacy_mem_t sn_pci_get_legacy_mem; | 40 | extern ia64_mv_pci_get_legacy_mem_t sn_pci_get_legacy_mem; |
40 | extern ia64_mv_pci_legacy_read_t sn_pci_legacy_read; | 41 | extern ia64_mv_pci_legacy_read_t sn_pci_legacy_read; |
@@ -104,6 +105,7 @@ extern ia64_mv_pci_fixup_bus_t sn_pci_fixup_bus; | |||
104 | #define platform_readw_relaxed __sn_readw_relaxed | 105 | #define platform_readw_relaxed __sn_readw_relaxed |
105 | #define platform_readl_relaxed __sn_readl_relaxed | 106 | #define platform_readl_relaxed __sn_readl_relaxed |
106 | #define platform_readq_relaxed __sn_readq_relaxed | 107 | #define platform_readq_relaxed __sn_readq_relaxed |
108 | #define platform_irq_to_vector sn_irq_to_vector | ||
107 | #define platform_local_vector_to_irq sn_local_vector_to_irq | 109 | #define platform_local_vector_to_irq sn_local_vector_to_irq |
108 | #define platform_pci_get_legacy_mem sn_pci_get_legacy_mem | 110 | #define platform_pci_get_legacy_mem sn_pci_get_legacy_mem |
109 | #define platform_pci_legacy_read sn_pci_legacy_read | 111 | #define platform_pci_legacy_read sn_pci_legacy_read |
diff --git a/include/asm-m68k/ioctls.h b/include/asm-m68k/ioctls.h index 0c48929ab444..b8d2f4be7fd7 100644 --- a/include/asm-m68k/ioctls.h +++ b/include/asm-m68k/ioctls.h | |||
@@ -46,6 +46,10 @@ | |||
46 | #define TIOCSBRK 0x5427 /* BSD compatibility */ | 46 | #define TIOCSBRK 0x5427 /* BSD compatibility */ |
47 | #define TIOCCBRK 0x5428 /* BSD compatibility */ | 47 | #define TIOCCBRK 0x5428 /* BSD compatibility */ |
48 | #define TIOCGSID 0x5429 /* Return the session ID of FD */ | 48 | #define TIOCGSID 0x5429 /* Return the session ID of FD */ |
49 | #define TCGETS2 _IOR('T',0x2A, struct termios2) | ||
50 | #define TCSETS2 _IOW('T',0x2B, struct termios2) | ||
51 | #define TCSETSW2 _IOW('T',0x2C, struct termios2) | ||
52 | #define TCSETSF2 _IOW('T',0x2D, struct termios2) | ||
49 | #define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ | 53 | #define TIOCGPTN _IOR('T',0x30, unsigned int) /* Get Pty Number (of pty-mux device) */ |
50 | #define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */ | 54 | #define TIOCSPTLCK _IOW('T',0x31, int) /* Lock/unlock Pty */ |
51 | 55 | ||
diff --git a/include/asm-m68k/page.h b/include/asm-m68k/page.h index 9e6d0d6debdb..1431ea0b59e0 100644 --- a/include/asm-m68k/page.h +++ b/include/asm-m68k/page.h | |||
@@ -4,17 +4,15 @@ | |||
4 | 4 | ||
5 | #ifdef __KERNEL__ | 5 | #ifdef __KERNEL__ |
6 | 6 | ||
7 | #include <linux/const.h> | ||
8 | |||
7 | /* PAGE_SHIFT determines the page size */ | 9 | /* PAGE_SHIFT determines the page size */ |
8 | #ifndef CONFIG_SUN3 | 10 | #ifndef CONFIG_SUN3 |
9 | #define PAGE_SHIFT (12) | 11 | #define PAGE_SHIFT (12) |
10 | #else | 12 | #else |
11 | #define PAGE_SHIFT (13) | 13 | #define PAGE_SHIFT (13) |
12 | #endif | 14 | #endif |
13 | #ifdef __ASSEMBLY__ | 15 | #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT) |
14 | #define PAGE_SIZE (1 << PAGE_SHIFT) | ||
15 | #else | ||
16 | #define PAGE_SIZE (1UL << PAGE_SHIFT) | ||
17 | #endif | ||
18 | #define PAGE_MASK (~(PAGE_SIZE-1)) | 16 | #define PAGE_MASK (~(PAGE_SIZE-1)) |
19 | 17 | ||
20 | #include <asm/setup.h> | 18 | #include <asm/setup.h> |
@@ -27,6 +25,8 @@ | |||
27 | 25 | ||
28 | #ifndef __ASSEMBLY__ | 26 | #ifndef __ASSEMBLY__ |
29 | 27 | ||
28 | #include <linux/compiler.h> | ||
29 | |||
30 | #include <asm/module.h> | 30 | #include <asm/module.h> |
31 | 31 | ||
32 | #define get_user_page(vaddr) __get_free_page(GFP_KERNEL) | 32 | #define get_user_page(vaddr) __get_free_page(GFP_KERNEL) |
diff --git a/include/asm-m68k/processor.h b/include/asm-m68k/processor.h index 8455f778b601..4453ec379c5d 100644 --- a/include/asm-m68k/processor.h +++ b/include/asm-m68k/processor.h | |||
@@ -38,12 +38,8 @@ static inline void wrusp(unsigned long usp) | |||
38 | #ifndef CONFIG_SUN3 | 38 | #ifndef CONFIG_SUN3 |
39 | #define TASK_SIZE (0xF0000000UL) | 39 | #define TASK_SIZE (0xF0000000UL) |
40 | #else | 40 | #else |
41 | #ifdef __ASSEMBLY__ | ||
42 | #define TASK_SIZE (0x0E000000) | ||
43 | #else | ||
44 | #define TASK_SIZE (0x0E000000UL) | 41 | #define TASK_SIZE (0x0E000000UL) |
45 | #endif | 42 | #endif |
46 | #endif | ||
47 | 43 | ||
48 | /* This decides where the kernel will search for a free chunk of vm | 44 | /* This decides where the kernel will search for a free chunk of vm |
49 | * space during mmap's. | 45 | * space during mmap's. |
diff --git a/include/asm-m68k/termbits.h b/include/asm-m68k/termbits.h index 0e520f328f53..8c14170996bb 100644 --- a/include/asm-m68k/termbits.h +++ b/include/asm-m68k/termbits.h | |||
@@ -141,6 +141,7 @@ struct ktermios { | |||
141 | #define HUPCL 0002000 | 141 | #define HUPCL 0002000 |
142 | #define CLOCAL 0004000 | 142 | #define CLOCAL 0004000 |
143 | #define CBAUDEX 0010000 | 143 | #define CBAUDEX 0010000 |
144 | #define BOTHER 0010000 | ||
144 | #define B57600 0010001 | 145 | #define B57600 0010001 |
145 | #define B115200 0010002 | 146 | #define B115200 0010002 |
146 | #define B230400 0010003 | 147 | #define B230400 0010003 |
@@ -156,10 +157,12 @@ struct ktermios { | |||
156 | #define B3000000 0010015 | 157 | #define B3000000 0010015 |
157 | #define B3500000 0010016 | 158 | #define B3500000 0010016 |
158 | #define B4000000 0010017 | 159 | #define B4000000 0010017 |
159 | #define CIBAUD 002003600000 /* input baud rate (not used) */ | 160 | #define CIBAUD 002003600000 /* input baud rate */ |
160 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ | 161 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ |
161 | #define CRTSCTS 020000000000 /* flow control */ | 162 | #define CRTSCTS 020000000000 /* flow control */ |
162 | 163 | ||
164 | #define IBSHIFT 16 /* Shift from CBAUD to CIBAUD */ | ||
165 | |||
163 | /* c_lflag bits */ | 166 | /* c_lflag bits */ |
164 | #define ISIG 0000001 | 167 | #define ISIG 0000001 |
165 | #define ICANON 0000002 | 168 | #define ICANON 0000002 |
diff --git a/include/asm-m68k/termios.h b/include/asm-m68k/termios.h index 00edabd76168..0823032e4045 100644 --- a/include/asm-m68k/termios.h +++ b/include/asm-m68k/termios.h | |||
@@ -82,8 +82,10 @@ struct termio { | |||
82 | copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ | 82 | copy_to_user((termio)->c_cc, (termios)->c_cc, NCC); \ |
83 | }) | 83 | }) |
84 | 84 | ||
85 | #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios)) | 85 | #define user_termios_to_kernel_termios(k, u) copy_from_user(k, u, sizeof(struct termios2)) |
86 | #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios)) | 86 | #define kernel_termios_to_user_termios(u, k) copy_to_user(u, k, sizeof(struct termios2)) |
87 | #define user_termios_to_kernel_termios_1(k, u) copy_from_user(k, u, sizeof(struct termios)) | ||
88 | #define kernel_termios_to_user_termios_1(u, k) copy_to_user(u, k, sizeof(struct termios)) | ||
87 | 89 | ||
88 | #endif /* __KERNEL__ */ | 90 | #endif /* __KERNEL__ */ |
89 | 91 | ||
diff --git a/include/asm-m68knommu/pgtable.h b/include/asm-m68knommu/pgtable.h index e1e6a1d2333a..46251016e821 100644 --- a/include/asm-m68knommu/pgtable.h +++ b/include/asm-m68knommu/pgtable.h | |||
@@ -65,4 +65,6 @@ extern unsigned int kobjsize(const void *objp); | |||
65 | #define VMALLOC_START 0 | 65 | #define VMALLOC_START 0 |
66 | #define VMALLOC_END 0xffffffff | 66 | #define VMALLOC_END 0xffffffff |
67 | 67 | ||
68 | #include <asm-generic/pgtable.h> | ||
69 | |||
68 | #endif /* _M68KNOMMU_PGTABLE_H */ | 70 | #endif /* _M68KNOMMU_PGTABLE_H */ |
diff --git a/include/asm-mips/bcache.h b/include/asm-mips/bcache.h index 3646a3f2ed38..0ba9d6ef76a7 100644 --- a/include/asm-mips/bcache.h +++ b/include/asm-mips/bcache.h | |||
@@ -21,7 +21,6 @@ struct bcache_ops { | |||
21 | }; | 21 | }; |
22 | 22 | ||
23 | extern void indy_sc_init(void); | 23 | extern void indy_sc_init(void); |
24 | extern void sni_pcimt_sc_init(void); | ||
25 | 24 | ||
26 | #ifdef CONFIG_BOARD_SCACHE | 25 | #ifdef CONFIG_BOARD_SCACHE |
27 | 26 | ||
diff --git a/include/asm-mips/edac.h b/include/asm-mips/edac.h index 83719eee2d13..4da0c1fe30d9 100644 --- a/include/asm-mips/edac.h +++ b/include/asm-mips/edac.h | |||
@@ -9,8 +9,7 @@ static inline void atomic_scrub(void *va, u32 size) | |||
9 | unsigned long temp; | 9 | unsigned long temp; |
10 | u32 i; | 10 | u32 i; |
11 | 11 | ||
12 | for (i = 0; i < size / sizeof(unsigned long); i++, virt_addr++) { | 12 | for (i = 0; i < size / sizeof(unsigned long); i++) { |
13 | |||
14 | /* | 13 | /* |
15 | * Very carefully read and write to memory atomically | 14 | * Very carefully read and write to memory atomically |
16 | * so we are interrupt, DMA and SMP safe. | 15 | * so we are interrupt, DMA and SMP safe. |
@@ -19,16 +18,16 @@ static inline void atomic_scrub(void *va, u32 size) | |||
19 | */ | 18 | */ |
20 | 19 | ||
21 | __asm__ __volatile__ ( | 20 | __asm__ __volatile__ ( |
22 | " .set mips3 \n" | 21 | " .set mips2 \n" |
23 | "1: ll %0, %1 # atomic_add \n" | 22 | "1: ll %0, %1 # atomic_scrub \n" |
24 | " ll %0, %1 # atomic_add \n" | 23 | " addu %0, $0 \n" |
25 | " addu %0, $0 \n" | 24 | " sc %0, %1 \n" |
26 | " sc %0, %1 \n" | 25 | " beqz %0, 1b \n" |
27 | " beqz %0, 1b \n" | 26 | " .set mips0 \n" |
28 | " .set mips0 \n" | ||
29 | : "=&r" (temp), "=m" (*virt_addr) | 27 | : "=&r" (temp), "=m" (*virt_addr) |
30 | : "m" (*virt_addr)); | 28 | : "m" (*virt_addr)); |
31 | 29 | ||
30 | virt_addr++; | ||
32 | } | 31 | } |
33 | } | 32 | } |
34 | 33 | ||
diff --git a/include/asm-mips/gt64240.h b/include/asm-mips/gt64240.h deleted file mode 100644 index 8f9bd341ed49..000000000000 --- a/include/asm-mips/gt64240.h +++ /dev/null | |||
@@ -1,1235 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright - Galileo technology. | ||
7 | * Copyright (C) 2004 by Ralf Baechle | ||
8 | */ | ||
9 | #ifndef __ASM_MIPS_MV64240_H | ||
10 | #define __ASM_MIPS_MV64240_H | ||
11 | |||
12 | #include <asm/addrspace.h> | ||
13 | #include <asm/marvell.h> | ||
14 | |||
15 | /* | ||
16 | * CPU Control Registers | ||
17 | */ | ||
18 | |||
19 | #define CPU_CONFIGURATION 0x000 | ||
20 | #define CPU_MODE 0x120 | ||
21 | #define CPU_READ_RESPONSE_CROSSBAR_LOW 0x170 | ||
22 | #define CPU_READ_RESPONSE_CROSSBAR_HIGH 0x178 | ||
23 | |||
24 | /* | ||
25 | * Processor Address Space | ||
26 | */ | ||
27 | |||
28 | /* Sdram's BAR'S */ | ||
29 | #define SCS_0_LOW_DECODE_ADDRESS 0x008 | ||
30 | #define SCS_0_HIGH_DECODE_ADDRESS 0x010 | ||
31 | #define SCS_1_LOW_DECODE_ADDRESS 0x208 | ||
32 | #define SCS_1_HIGH_DECODE_ADDRESS 0x210 | ||
33 | #define SCS_2_LOW_DECODE_ADDRESS 0x018 | ||
34 | #define SCS_2_HIGH_DECODE_ADDRESS 0x020 | ||
35 | #define SCS_3_LOW_DECODE_ADDRESS 0x218 | ||
36 | #define SCS_3_HIGH_DECODE_ADDRESS 0x220 | ||
37 | /* Devices BAR'S */ | ||
38 | #define CS_0_LOW_DECODE_ADDRESS 0x028 | ||
39 | #define CS_0_HIGH_DECODE_ADDRESS 0x030 | ||
40 | #define CS_1_LOW_DECODE_ADDRESS 0x228 | ||
41 | #define CS_1_HIGH_DECODE_ADDRESS 0x230 | ||
42 | #define CS_2_LOW_DECODE_ADDRESS 0x248 | ||
43 | #define CS_2_HIGH_DECODE_ADDRESS 0x250 | ||
44 | #define CS_3_LOW_DECODE_ADDRESS 0x038 | ||
45 | #define CS_3_HIGH_DECODE_ADDRESS 0x040 | ||
46 | #define BOOTCS_LOW_DECODE_ADDRESS 0x238 | ||
47 | #define BOOTCS_HIGH_DECODE_ADDRESS 0x240 | ||
48 | |||
49 | #define PCI_0I_O_LOW_DECODE_ADDRESS 0x048 | ||
50 | #define PCI_0I_O_HIGH_DECODE_ADDRESS 0x050 | ||
51 | #define PCI_0MEMORY0_LOW_DECODE_ADDRESS 0x058 | ||
52 | #define PCI_0MEMORY0_HIGH_DECODE_ADDRESS 0x060 | ||
53 | #define PCI_0MEMORY1_LOW_DECODE_ADDRESS 0x080 | ||
54 | #define PCI_0MEMORY1_HIGH_DECODE_ADDRESS 0x088 | ||
55 | #define PCI_0MEMORY2_LOW_DECODE_ADDRESS 0x258 | ||
56 | #define PCI_0MEMORY2_HIGH_DECODE_ADDRESS 0x260 | ||
57 | #define PCI_0MEMORY3_LOW_DECODE_ADDRESS 0x280 | ||
58 | #define PCI_0MEMORY3_HIGH_DECODE_ADDRESS 0x288 | ||
59 | |||
60 | #define PCI_1I_O_LOW_DECODE_ADDRESS 0x090 | ||
61 | #define PCI_1I_O_HIGH_DECODE_ADDRESS 0x098 | ||
62 | #define PCI_1MEMORY0_LOW_DECODE_ADDRESS 0x0a0 | ||
63 | #define PCI_1MEMORY0_HIGH_DECODE_ADDRESS 0x0a8 | ||
64 | #define PCI_1MEMORY1_LOW_DECODE_ADDRESS 0x0b0 | ||
65 | #define PCI_1MEMORY1_HIGH_DECODE_ADDRESS 0x0b8 | ||
66 | #define PCI_1MEMORY2_LOW_DECODE_ADDRESS 0x2a0 | ||
67 | #define PCI_1MEMORY2_HIGH_DECODE_ADDRESS 0x2a8 | ||
68 | #define PCI_1MEMORY3_LOW_DECODE_ADDRESS 0x2b0 | ||
69 | #define PCI_1MEMORY3_HIGH_DECODE_ADDRESS 0x2b8 | ||
70 | |||
71 | #define INTERNAL_SPACE_DECODE 0x068 | ||
72 | |||
73 | #define CPU_0_LOW_DECODE_ADDRESS 0x290 | ||
74 | #define CPU_0_HIGH_DECODE_ADDRESS 0x298 | ||
75 | #define CPU_1_LOW_DECODE_ADDRESS 0x2c0 | ||
76 | #define CPU_1_HIGH_DECODE_ADDRESS 0x2c8 | ||
77 | |||
78 | #define PCI_0I_O_ADDRESS_REMAP 0x0f0 | ||
79 | #define PCI_0MEMORY0_ADDRESS_REMAP 0x0f8 | ||
80 | #define PCI_0MEMORY0_HIGH_ADDRESS_REMAP 0x320 | ||
81 | #define PCI_0MEMORY1_ADDRESS_REMAP 0x100 | ||
82 | #define PCI_0MEMORY1_HIGH_ADDRESS_REMAP 0x328 | ||
83 | #define PCI_0MEMORY2_ADDRESS_REMAP 0x2f8 | ||
84 | #define PCI_0MEMORY2_HIGH_ADDRESS_REMAP 0x330 | ||
85 | #define PCI_0MEMORY3_ADDRESS_REMAP 0x300 | ||
86 | #define PCI_0MEMORY3_HIGH_ADDRESS_REMAP 0x338 | ||
87 | |||
88 | #define PCI_1I_O_ADDRESS_REMAP 0x108 | ||
89 | #define PCI_1MEMORY0_ADDRESS_REMAP 0x110 | ||
90 | #define PCI_1MEMORY0_HIGH_ADDRESS_REMAP 0x340 | ||
91 | #define PCI_1MEMORY1_ADDRESS_REMAP 0x118 | ||
92 | #define PCI_1MEMORY1_HIGH_ADDRESS_REMAP 0x348 | ||
93 | #define PCI_1MEMORY2_ADDRESS_REMAP 0x310 | ||
94 | #define PCI_1MEMORY2_HIGH_ADDRESS_REMAP 0x350 | ||
95 | #define PCI_1MEMORY3_ADDRESS_REMAP 0x318 | ||
96 | #define PCI_1MEMORY3_HIGH_ADDRESS_REMAP 0x358 | ||
97 | |||
98 | /* | ||
99 | * CPU Sync Barrier | ||
100 | */ | ||
101 | |||
102 | #define PCI_0SYNC_BARIER_VIRTUAL_REGISTER 0x0c0 | ||
103 | #define PCI_1SYNC_BARIER_VIRTUAL_REGISTER 0x0c8 | ||
104 | |||
105 | |||
106 | /* | ||
107 | * CPU Access Protect | ||
108 | */ | ||
109 | |||
110 | #define CPU_LOW_PROTECT_ADDRESS_0 0X180 | ||
111 | #define CPU_HIGH_PROTECT_ADDRESS_0 0X188 | ||
112 | #define CPU_LOW_PROTECT_ADDRESS_1 0X190 | ||
113 | #define CPU_HIGH_PROTECT_ADDRESS_1 0X198 | ||
114 | #define CPU_LOW_PROTECT_ADDRESS_2 0X1a0 | ||
115 | #define CPU_HIGH_PROTECT_ADDRESS_2 0X1a8 | ||
116 | #define CPU_LOW_PROTECT_ADDRESS_3 0X1b0 | ||
117 | #define CPU_HIGH_PROTECT_ADDRESS_3 0X1b8 | ||
118 | #define CPU_LOW_PROTECT_ADDRESS_4 0X1c0 | ||
119 | #define CPU_HIGH_PROTECT_ADDRESS_4 0X1c8 | ||
120 | #define CPU_LOW_PROTECT_ADDRESS_5 0X1d0 | ||
121 | #define CPU_HIGH_PROTECT_ADDRESS_5 0X1d8 | ||
122 | #define CPU_LOW_PROTECT_ADDRESS_6 0X1e0 | ||
123 | #define CPU_HIGH_PROTECT_ADDRESS_6 0X1e8 | ||
124 | #define CPU_LOW_PROTECT_ADDRESS_7 0X1f0 | ||
125 | #define CPU_HIGH_PROTECT_ADDRESS_7 0X1f8 | ||
126 | |||
127 | |||
128 | /* | ||
129 | * Snoop Control | ||
130 | */ | ||
131 | |||
132 | #define SNOOP_BASE_ADDRESS_0 0x380 | ||
133 | #define SNOOP_TOP_ADDRESS_0 0x388 | ||
134 | #define SNOOP_BASE_ADDRESS_1 0x390 | ||
135 | #define SNOOP_TOP_ADDRESS_1 0x398 | ||
136 | #define SNOOP_BASE_ADDRESS_2 0x3a0 | ||
137 | #define SNOOP_TOP_ADDRESS_2 0x3a8 | ||
138 | #define SNOOP_BASE_ADDRESS_3 0x3b0 | ||
139 | #define SNOOP_TOP_ADDRESS_3 0x3b8 | ||
140 | |||
141 | /* | ||
142 | * CPU Error Report | ||
143 | */ | ||
144 | |||
145 | #define CPU_ERROR_ADDRESS_LOW 0x070 | ||
146 | #define CPU_ERROR_ADDRESS_HIGH 0x078 | ||
147 | #define CPU_ERROR_DATA_LOW 0x128 | ||
148 | #define CPU_ERROR_DATA_HIGH 0x130 | ||
149 | #define CPU_ERROR_PARITY 0x138 | ||
150 | #define CPU_ERROR_CAUSE 0x140 | ||
151 | #define CPU_ERROR_MASK 0x148 | ||
152 | |||
153 | /* | ||
154 | * Pslave Debug | ||
155 | */ | ||
156 | |||
157 | #define X_0_ADDRESS 0x360 | ||
158 | #define X_0_COMMAND_ID 0x368 | ||
159 | #define X_1_ADDRESS 0x370 | ||
160 | #define X_1_COMMAND_ID 0x378 | ||
161 | #define WRITE_DATA_LOW 0x3c0 | ||
162 | #define WRITE_DATA_HIGH 0x3c8 | ||
163 | #define WRITE_BYTE_ENABLE 0X3e0 | ||
164 | #define READ_DATA_LOW 0x3d0 | ||
165 | #define READ_DATA_HIGH 0x3d8 | ||
166 | #define READ_ID 0x3e8 | ||
167 | |||
168 | |||
169 | /* | ||
170 | * SDRAM and Device Address Space | ||
171 | */ | ||
172 | |||
173 | |||
174 | /* | ||
175 | * SDRAM Configuration | ||
176 | */ | ||
177 | |||
178 | #define SDRAM_CONFIGURATION 0x448 | ||
179 | #define SDRAM_OPERATION_MODE 0x474 | ||
180 | #define SDRAM_ADDRESS_DECODE 0x47C | ||
181 | #define SDRAM_TIMING_PARAMETERS 0x4b4 | ||
182 | #define SDRAM_UMA_CONTROL 0x4a4 | ||
183 | #define SDRAM_CROSS_BAR_CONTROL_LOW 0x4a8 | ||
184 | #define SDRAM_CROSS_BAR_CONTROL_HIGH 0x4ac | ||
185 | #define SDRAM_CROSS_BAR_TIMEOUT 0x4b0 | ||
186 | |||
187 | |||
188 | /* | ||
189 | * SDRAM Parameters | ||
190 | */ | ||
191 | |||
192 | #define SDRAM_BANK0PARAMETERS 0x44C | ||
193 | #define SDRAM_BANK1PARAMETERS 0x450 | ||
194 | #define SDRAM_BANK2PARAMETERS 0x454 | ||
195 | #define SDRAM_BANK3PARAMETERS 0x458 | ||
196 | |||
197 | |||
198 | /* | ||
199 | * SDRAM Error Report | ||
200 | */ | ||
201 | |||
202 | #define SDRAM_ERROR_DATA_LOW 0x484 | ||
203 | #define SDRAM_ERROR_DATA_HIGH 0x480 | ||
204 | #define SDRAM_AND_DEVICE_ERROR_ADDRESS 0x490 | ||
205 | #define SDRAM_RECEIVED_ECC 0x488 | ||
206 | #define SDRAM_CALCULATED_ECC 0x48c | ||
207 | #define SDRAM_ECC_CONTROL 0x494 | ||
208 | #define SDRAM_ECC_ERROR_COUNTER 0x498 | ||
209 | |||
210 | |||
211 | /* | ||
212 | * SDunit Debug (for internal use) | ||
213 | */ | ||
214 | |||
215 | #define X0_ADDRESS 0x500 | ||
216 | #define X0_COMMAND_AND_ID 0x504 | ||
217 | #define X0_WRITE_DATA_LOW 0x508 | ||
218 | #define X0_WRITE_DATA_HIGH 0x50c | ||
219 | #define X0_WRITE_BYTE_ENABLE 0x518 | ||
220 | #define X0_READ_DATA_LOW 0x510 | ||
221 | #define X0_READ_DATA_HIGH 0x514 | ||
222 | #define X0_READ_ID 0x51c | ||
223 | #define X1_ADDRESS 0x520 | ||
224 | #define X1_COMMAND_AND_ID 0x524 | ||
225 | #define X1_WRITE_DATA_LOW 0x528 | ||
226 | #define X1_WRITE_DATA_HIGH 0x52c | ||
227 | #define X1_WRITE_BYTE_ENABLE 0x538 | ||
228 | #define X1_READ_DATA_LOW 0x530 | ||
229 | #define X1_READ_DATA_HIGH 0x534 | ||
230 | #define X1_READ_ID 0x53c | ||
231 | #define X0_SNOOP_ADDRESS 0x540 | ||
232 | #define X0_SNOOP_COMMAND 0x544 | ||
233 | #define X1_SNOOP_ADDRESS 0x548 | ||
234 | #define X1_SNOOP_COMMAND 0x54c | ||
235 | |||
236 | |||
237 | /* | ||
238 | * Device Parameters | ||
239 | */ | ||
240 | |||
241 | #define DEVICE_BANK0PARAMETERS 0x45c | ||
242 | #define DEVICE_BANK1PARAMETERS 0x460 | ||
243 | #define DEVICE_BANK2PARAMETERS 0x464 | ||
244 | #define DEVICE_BANK3PARAMETERS 0x468 | ||
245 | #define DEVICE_BOOT_BANK_PARAMETERS 0x46c | ||
246 | #define DEVICE_CONTROL 0x4c0 | ||
247 | #define DEVICE_CROSS_BAR_CONTROL_LOW 0x4c8 | ||
248 | #define DEVICE_CROSS_BAR_CONTROL_HIGH 0x4cc | ||
249 | #define DEVICE_CROSS_BAR_TIMEOUT 0x4c4 | ||
250 | |||
251 | |||
252 | /* | ||
253 | * Device Interrupt | ||
254 | */ | ||
255 | |||
256 | #define DEVICE_INTERRUPT_CAUSE 0x4d0 | ||
257 | #define DEVICE_INTERRUPT_MASK 0x4d4 | ||
258 | #define DEVICE_ERROR_ADDRESS 0x4d8 | ||
259 | |||
260 | /* | ||
261 | * DMA Record | ||
262 | */ | ||
263 | |||
264 | #define CHANNEL0_DMA_BYTE_COUNT 0x800 | ||
265 | #define CHANNEL1_DMA_BYTE_COUNT 0x804 | ||
266 | #define CHANNEL2_DMA_BYTE_COUNT 0x808 | ||
267 | #define CHANNEL3_DMA_BYTE_COUNT 0x80C | ||
268 | #define CHANNEL4_DMA_BYTE_COUNT 0x900 | ||
269 | #define CHANNEL5_DMA_BYTE_COUNT 0x904 | ||
270 | #define CHANNEL6_DMA_BYTE_COUNT 0x908 | ||
271 | #define CHANNEL7_DMA_BYTE_COUNT 0x90C | ||
272 | #define CHANNEL0_DMA_SOURCE_ADDRESS 0x810 | ||
273 | #define CHANNEL1_DMA_SOURCE_ADDRESS 0x814 | ||
274 | #define CHANNEL2_DMA_SOURCE_ADDRESS 0x818 | ||
275 | #define CHANNEL3_DMA_SOURCE_ADDRESS 0x81C | ||
276 | #define CHANNEL4_DMA_SOURCE_ADDRESS 0x910 | ||
277 | #define CHANNEL5_DMA_SOURCE_ADDRESS 0x914 | ||
278 | #define CHANNEL6_DMA_SOURCE_ADDRESS 0x918 | ||
279 | #define CHANNEL7_DMA_SOURCE_ADDRESS 0x91C | ||
280 | #define CHANNEL0_DMA_DESTINATION_ADDRESS 0x820 | ||
281 | #define CHANNEL1_DMA_DESTINATION_ADDRESS 0x824 | ||
282 | #define CHANNEL2_DMA_DESTINATION_ADDRESS 0x828 | ||
283 | #define CHANNEL3_DMA_DESTINATION_ADDRESS 0x82C | ||
284 | #define CHANNEL4_DMA_DESTINATION_ADDRESS 0x920 | ||
285 | #define CHANNEL5_DMA_DESTINATION_ADDRESS 0x924 | ||
286 | #define CHANNEL6_DMA_DESTINATION_ADDRESS 0x928 | ||
287 | #define CHANNEL7_DMA_DESTINATION_ADDRESS 0x92C | ||
288 | #define CHANNEL0NEXT_RECORD_POINTER 0x830 | ||
289 | #define CHANNEL1NEXT_RECORD_POINTER 0x834 | ||
290 | #define CHANNEL2NEXT_RECORD_POINTER 0x838 | ||
291 | #define CHANNEL3NEXT_RECORD_POINTER 0x83C | ||
292 | #define CHANNEL4NEXT_RECORD_POINTER 0x930 | ||
293 | #define CHANNEL5NEXT_RECORD_POINTER 0x934 | ||
294 | #define CHANNEL6NEXT_RECORD_POINTER 0x938 | ||
295 | #define CHANNEL7NEXT_RECORD_POINTER 0x93C | ||
296 | #define CHANNEL0CURRENT_DESCRIPTOR_POINTER 0x870 | ||
297 | #define CHANNEL1CURRENT_DESCRIPTOR_POINTER 0x874 | ||
298 | #define CHANNEL2CURRENT_DESCRIPTOR_POINTER 0x878 | ||
299 | #define CHANNEL3CURRENT_DESCRIPTOR_POINTER 0x87C | ||
300 | #define CHANNEL4CURRENT_DESCRIPTOR_POINTER 0x970 | ||
301 | #define CHANNEL5CURRENT_DESCRIPTOR_POINTER 0x974 | ||
302 | #define CHANNEL6CURRENT_DESCRIPTOR_POINTER 0x978 | ||
303 | #define CHANNEL7CURRENT_DESCRIPTOR_POINTER 0x97C | ||
304 | #define CHANNEL0_DMA_SOURCE_HIGH_PCI_ADDRESS 0x890 | ||
305 | #define CHANNEL1_DMA_SOURCE_HIGH_PCI_ADDRESS 0x894 | ||
306 | #define CHANNEL2_DMA_SOURCE_HIGH_PCI_ADDRESS 0x898 | ||
307 | #define CHANNEL3_DMA_SOURCE_HIGH_PCI_ADDRESS 0x89c | ||
308 | #define CHANNEL4_DMA_SOURCE_HIGH_PCI_ADDRESS 0x990 | ||
309 | #define CHANNEL5_DMA_SOURCE_HIGH_PCI_ADDRESS 0x994 | ||
310 | #define CHANNEL6_DMA_SOURCE_HIGH_PCI_ADDRESS 0x998 | ||
311 | #define CHANNEL7_DMA_SOURCE_HIGH_PCI_ADDRESS 0x99c | ||
312 | #define CHANNEL0_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8a0 | ||
313 | #define CHANNEL1_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8a4 | ||
314 | #define CHANNEL2_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8a8 | ||
315 | #define CHANNEL3_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x8ac | ||
316 | #define CHANNEL4_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9a0 | ||
317 | #define CHANNEL5_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9a4 | ||
318 | #define CHANNEL6_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9a8 | ||
319 | #define CHANNEL7_DMA_DESTINATION_HIGH_PCI_ADDRESS 0x9ac | ||
320 | #define CHANNEL0_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8b0 | ||
321 | #define CHANNEL1_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8b4 | ||
322 | #define CHANNEL2_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8b8 | ||
323 | #define CHANNEL3_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x8bc | ||
324 | #define CHANNEL4_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9b0 | ||
325 | #define CHANNEL5_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9b4 | ||
326 | #define CHANNEL6_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9b8 | ||
327 | #define CHANNEL7_DMA_NEXT_RECORD_POINTER_HIGH_PCI_ADDRESS 0x9bc | ||
328 | |||
329 | /* | ||
330 | * DMA Channel Control | ||
331 | */ | ||
332 | |||
333 | #define CHANNEL0CONTROL 0x840 | ||
334 | #define CHANNEL0CONTROL_HIGH 0x880 | ||
335 | |||
336 | #define CHANNEL1CONTROL 0x844 | ||
337 | #define CHANNEL1CONTROL_HIGH 0x884 | ||
338 | |||
339 | #define CHANNEL2CONTROL 0x848 | ||
340 | #define CHANNEL2CONTROL_HIGH 0x888 | ||
341 | |||
342 | #define CHANNEL3CONTROL 0x84C | ||
343 | #define CHANNEL3CONTROL_HIGH 0x88C | ||
344 | |||
345 | #define CHANNEL4CONTROL 0x940 | ||
346 | #define CHANNEL4CONTROL_HIGH 0x980 | ||
347 | |||
348 | #define CHANNEL5CONTROL 0x944 | ||
349 | #define CHANNEL5CONTROL_HIGH 0x984 | ||
350 | |||
351 | #define CHANNEL6CONTROL 0x948 | ||
352 | #define CHANNEL6CONTROL_HIGH 0x988 | ||
353 | |||
354 | #define CHANNEL7CONTROL 0x94C | ||
355 | #define CHANNEL7CONTROL_HIGH 0x98C | ||
356 | |||
357 | |||
358 | /* | ||
359 | * DMA Arbiter | ||
360 | */ | ||
361 | |||
362 | #define ARBITER_CONTROL_0_3 0x860 | ||
363 | #define ARBITER_CONTROL_4_7 0x960 | ||
364 | |||
365 | |||
366 | /* | ||
367 | * DMA Interrupt | ||
368 | */ | ||
369 | |||
370 | #define CHANELS0_3_INTERRUPT_CAUSE 0x8c0 | ||
371 | #define CHANELS0_3_INTERRUPT_MASK 0x8c4 | ||
372 | #define CHANELS0_3_ERROR_ADDRESS 0x8c8 | ||
373 | #define CHANELS0_3_ERROR_SELECT 0x8cc | ||
374 | #define CHANELS4_7_INTERRUPT_CAUSE 0x9c0 | ||
375 | #define CHANELS4_7_INTERRUPT_MASK 0x9c4 | ||
376 | #define CHANELS4_7_ERROR_ADDRESS 0x9c8 | ||
377 | #define CHANELS4_7_ERROR_SELECT 0x9cc | ||
378 | |||
379 | |||
380 | /* | ||
381 | * DMA Debug (for internal use) | ||
382 | */ | ||
383 | |||
384 | #define DMA_X0_ADDRESS 0x8e0 | ||
385 | #define DMA_X0_COMMAND_AND_ID 0x8e4 | ||
386 | #define DMA_X0_WRITE_DATA_LOW 0x8e8 | ||
387 | #define DMA_X0_WRITE_DATA_HIGH 0x8ec | ||
388 | #define DMA_X0_WRITE_BYTE_ENABLE 0x8f8 | ||
389 | #define DMA_X0_READ_DATA_LOW 0x8f0 | ||
390 | #define DMA_X0_READ_DATA_HIGH 0x8f4 | ||
391 | #define DMA_X0_READ_ID 0x8fc | ||
392 | #define DMA_X1_ADDRESS 0x9e0 | ||
393 | #define DMA_X1_COMMAND_AND_ID 0x9e4 | ||
394 | #define DMA_X1_WRITE_DATA_LOW 0x9e8 | ||
395 | #define DMA_X1_WRITE_DATA_HIGH 0x9ec | ||
396 | #define DMA_X1_WRITE_BYTE_ENABLE 0x9f8 | ||
397 | #define DMA_X1_READ_DATA_LOW 0x9f0 | ||
398 | #define DMA_X1_READ_DATA_HIGH 0x9f4 | ||
399 | #define DMA_X1_READ_ID 0x9fc | ||
400 | |||
401 | /* | ||
402 | * Timer_Counter | ||
403 | */ | ||
404 | |||
405 | #define TIMER_COUNTER0 0x850 | ||
406 | #define TIMER_COUNTER1 0x854 | ||
407 | #define TIMER_COUNTER2 0x858 | ||
408 | #define TIMER_COUNTER3 0x85C | ||
409 | #define TIMER_COUNTER_0_3_CONTROL 0x864 | ||
410 | #define TIMER_COUNTER_0_3_INTERRUPT_CAUSE 0x868 | ||
411 | #define TIMER_COUNTER_0_3_INTERRUPT_MASK 0x86c | ||
412 | #define TIMER_COUNTER4 0x950 | ||
413 | #define TIMER_COUNTER5 0x954 | ||
414 | #define TIMER_COUNTER6 0x958 | ||
415 | #define TIMER_COUNTER7 0x95C | ||
416 | #define TIMER_COUNTER_4_7_CONTROL 0x964 | ||
417 | #define TIMER_COUNTER_4_7_INTERRUPT_CAUSE 0x968 | ||
418 | #define TIMER_COUNTER_4_7_INTERRUPT_MASK 0x96c | ||
419 | |||
420 | /* | ||
421 | * PCI Slave Address Decoding | ||
422 | */ | ||
423 | |||
424 | #define PCI_0SCS_0_BANK_SIZE 0xc08 | ||
425 | #define PCI_1SCS_0_BANK_SIZE 0xc88 | ||
426 | #define PCI_0SCS_1_BANK_SIZE 0xd08 | ||
427 | #define PCI_1SCS_1_BANK_SIZE 0xd88 | ||
428 | #define PCI_0SCS_2_BANK_SIZE 0xc0c | ||
429 | #define PCI_1SCS_2_BANK_SIZE 0xc8c | ||
430 | #define PCI_0SCS_3_BANK_SIZE 0xd0c | ||
431 | #define PCI_1SCS_3_BANK_SIZE 0xd8c | ||
432 | #define PCI_0CS_0_BANK_SIZE 0xc10 | ||
433 | #define PCI_1CS_0_BANK_SIZE 0xc90 | ||
434 | #define PCI_0CS_1_BANK_SIZE 0xd10 | ||
435 | #define PCI_1CS_1_BANK_SIZE 0xd90 | ||
436 | #define PCI_0CS_2_BANK_SIZE 0xd18 | ||
437 | #define PCI_1CS_2_BANK_SIZE 0xd98 | ||
438 | #define PCI_0CS_3_BANK_SIZE 0xc14 | ||
439 | #define PCI_1CS_3_BANK_SIZE 0xc94 | ||
440 | #define PCI_0CS_BOOT_BANK_SIZE 0xd14 | ||
441 | #define PCI_1CS_BOOT_BANK_SIZE 0xd94 | ||
442 | #define PCI_0P2P_MEM0_BAR_SIZE 0xd1c | ||
443 | #define PCI_1P2P_MEM0_BAR_SIZE 0xd9c | ||
444 | #define PCI_0P2P_MEM1_BAR_SIZE 0xd20 | ||
445 | #define PCI_1P2P_MEM1_BAR_SIZE 0xda0 | ||
446 | #define PCI_0P2P_I_O_BAR_SIZE 0xd24 | ||
447 | #define PCI_1P2P_I_O_BAR_SIZE 0xda4 | ||
448 | #define PCI_0CPU_BAR_SIZE 0xd28 | ||
449 | #define PCI_1CPU_BAR_SIZE 0xda8 | ||
450 | #define PCI_0DAC_SCS_0_BANK_SIZE 0xe00 | ||
451 | #define PCI_1DAC_SCS_0_BANK_SIZE 0xe80 | ||
452 | #define PCI_0DAC_SCS_1_BANK_SIZE 0xe04 | ||
453 | #define PCI_1DAC_SCS_1_BANK_SIZE 0xe84 | ||
454 | #define PCI_0DAC_SCS_2_BANK_SIZE 0xe08 | ||
455 | #define PCI_1DAC_SCS_2_BANK_SIZE 0xe88 | ||
456 | #define PCI_0DAC_SCS_3_BANK_SIZE 0xe0c | ||
457 | #define PCI_1DAC_SCS_3_BANK_SIZE 0xe8c | ||
458 | #define PCI_0DAC_CS_0_BANK_SIZE 0xe10 | ||
459 | #define PCI_1DAC_CS_0_BANK_SIZE 0xe90 | ||
460 | #define PCI_0DAC_CS_1_BANK_SIZE 0xe14 | ||
461 | #define PCI_1DAC_CS_1_BANK_SIZE 0xe94 | ||
462 | #define PCI_0DAC_CS_2_BANK_SIZE 0xe18 | ||
463 | #define PCI_1DAC_CS_2_BANK_SIZE 0xe98 | ||
464 | #define PCI_0DAC_CS_3_BANK_SIZE 0xe1c | ||
465 | #define PCI_1DAC_CS_3_BANK_SIZE 0xe9c | ||
466 | #define PCI_0DAC_BOOTCS_BANK_SIZE 0xe20 | ||
467 | #define PCI_1DAC_BOOTCS_BANK_SIZE 0xea0 | ||
468 | #define PCI_0DAC_P2P_MEM0_BAR_SIZE 0xe24 | ||
469 | #define PCI_1DAC_P2P_MEM0_BAR_SIZE 0xea4 | ||
470 | #define PCI_0DAC_P2P_MEM1_BAR_SIZE 0xe28 | ||
471 | #define PCI_1DAC_P2P_MEM1_BAR_SIZE 0xea8 | ||
472 | #define PCI_0DAC_CPU_BAR_SIZE 0xe2c | ||
473 | #define PCI_1DAC_CPU_BAR_SIZE 0xeac | ||
474 | #define PCI_0EXPANSION_ROM_BAR_SIZE 0xd2c | ||
475 | #define PCI_1EXPANSION_ROM_BAR_SIZE 0xdac | ||
476 | #define PCI_0BASE_ADDRESS_REGISTERS_ENABLE 0xc3c | ||
477 | #define PCI_1BASE_ADDRESS_REGISTERS_ENABLE 0xcbc | ||
478 | #define PCI_0SCS_0_BASE_ADDRESS_REMAP 0xc48 | ||
479 | #define PCI_1SCS_0_BASE_ADDRESS_REMAP 0xcc8 | ||
480 | #define PCI_0SCS_1_BASE_ADDRESS_REMAP 0xd48 | ||
481 | #define PCI_1SCS_1_BASE_ADDRESS_REMAP 0xdc8 | ||
482 | #define PCI_0SCS_2_BASE_ADDRESS_REMAP 0xc4c | ||
483 | #define PCI_1SCS_2_BASE_ADDRESS_REMAP 0xccc | ||
484 | #define PCI_0SCS_3_BASE_ADDRESS_REMAP 0xd4c | ||
485 | #define PCI_1SCS_3_BASE_ADDRESS_REMAP 0xdcc | ||
486 | #define PCI_0CS_0_BASE_ADDRESS_REMAP 0xc50 | ||
487 | #define PCI_1CS_0_BASE_ADDRESS_REMAP 0xcd0 | ||
488 | #define PCI_0CS_1_BASE_ADDRESS_REMAP 0xd50 | ||
489 | #define PCI_1CS_1_BASE_ADDRESS_REMAP 0xdd0 | ||
490 | #define PCI_0CS_2_BASE_ADDRESS_REMAP 0xd58 | ||
491 | #define PCI_1CS_2_BASE_ADDRESS_REMAP 0xdd8 | ||
492 | #define PCI_0CS_3_BASE_ADDRESS_REMAP 0xc54 | ||
493 | #define PCI_1CS_3_BASE_ADDRESS_REMAP 0xcd4 | ||
494 | #define PCI_0CS_BOOTCS_BASE_ADDRESS_REMAP 0xd54 | ||
495 | #define PCI_1CS_BOOTCS_BASE_ADDRESS_REMAP 0xdd4 | ||
496 | #define PCI_0P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xd5c | ||
497 | #define PCI_1P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xddc | ||
498 | #define PCI_0P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xd60 | ||
499 | #define PCI_1P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xde0 | ||
500 | #define PCI_0P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xd64 | ||
501 | #define PCI_1P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xde4 | ||
502 | #define PCI_0P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xd68 | ||
503 | #define PCI_1P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xde8 | ||
504 | #define PCI_0P2P_I_O_BASE_ADDRESS_REMAP 0xd6c | ||
505 | #define PCI_1P2P_I_O_BASE_ADDRESS_REMAP 0xdec | ||
506 | #define PCI_0CPU_BASE_ADDRESS_REMAP 0xd70 | ||
507 | #define PCI_1CPU_BASE_ADDRESS_REMAP 0xdf0 | ||
508 | #define PCI_0DAC_SCS_0_BASE_ADDRESS_REMAP 0xf00 | ||
509 | #define PCI_1DAC_SCS_0_BASE_ADDRESS_REMAP 0xff0 | ||
510 | #define PCI_0DAC_SCS_1_BASE_ADDRESS_REMAP 0xf04 | ||
511 | #define PCI_1DAC_SCS_1_BASE_ADDRESS_REMAP 0xf84 | ||
512 | #define PCI_0DAC_SCS_2_BASE_ADDRESS_REMAP 0xf08 | ||
513 | #define PCI_1DAC_SCS_2_BASE_ADDRESS_REMAP 0xf88 | ||
514 | #define PCI_0DAC_SCS_3_BASE_ADDRESS_REMAP 0xf0c | ||
515 | #define PCI_1DAC_SCS_3_BASE_ADDRESS_REMAP 0xf8c | ||
516 | #define PCI_0DAC_CS_0_BASE_ADDRESS_REMAP 0xf10 | ||
517 | #define PCI_1DAC_CS_0_BASE_ADDRESS_REMAP 0xf90 | ||
518 | #define PCI_0DAC_CS_1_BASE_ADDRESS_REMAP 0xf14 | ||
519 | #define PCI_1DAC_CS_1_BASE_ADDRESS_REMAP 0xf94 | ||
520 | #define PCI_0DAC_CS_2_BASE_ADDRESS_REMAP 0xf18 | ||
521 | #define PCI_1DAC_CS_2_BASE_ADDRESS_REMAP 0xf98 | ||
522 | #define PCI_0DAC_CS_3_BASE_ADDRESS_REMAP 0xf1c | ||
523 | #define PCI_1DAC_CS_3_BASE_ADDRESS_REMAP 0xf9c | ||
524 | #define PCI_0DAC_BOOTCS_BASE_ADDRESS_REMAP 0xf20 | ||
525 | #define PCI_1DAC_BOOTCS_BASE_ADDRESS_REMAP 0xfa0 | ||
526 | #define PCI_0DAC_P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xf24 | ||
527 | #define PCI_1DAC_P2P_MEM0_BASE_ADDRESS_REMAP_LOW 0xfa4 | ||
528 | #define PCI_0DAC_P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xf28 | ||
529 | #define PCI_1DAC_P2P_MEM0_BASE_ADDRESS_REMAP_HIGH 0xfa8 | ||
530 | #define PCI_0DAC_P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xf2c | ||
531 | #define PCI_1DAC_P2P_MEM1_BASE_ADDRESS_REMAP_LOW 0xfac | ||
532 | #define PCI_0DAC_P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xf30 | ||
533 | #define PCI_1DAC_P2P_MEM1_BASE_ADDRESS_REMAP_HIGH 0xfb0 | ||
534 | #define PCI_0DAC_CPU_BASE_ADDRESS_REMAP 0xf34 | ||
535 | #define PCI_1DAC_CPU_BASE_ADDRESS_REMAP 0xfb4 | ||
536 | #define PCI_0EXPANSION_ROM_BASE_ADDRESS_REMAP 0xf38 | ||
537 | #define PCI_1EXPANSION_ROM_BASE_ADDRESS_REMAP 0xfb8 | ||
538 | #define PCI_0ADDRESS_DECODE_CONTROL 0xd3c | ||
539 | #define PCI_1ADDRESS_DECODE_CONTROL 0xdbc | ||
540 | |||
541 | /* | ||
542 | * PCI Control | ||
543 | */ | ||
544 | |||
545 | #define PCI_0COMMAND 0xc00 | ||
546 | #define PCI_1COMMAND 0xc80 | ||
547 | #define PCI_0MODE 0xd00 | ||
548 | #define PCI_1MODE 0xd80 | ||
549 | #define PCI_0TIMEOUT_RETRY 0xc04 | ||
550 | #define PCI_1TIMEOUT_RETRY 0xc84 | ||
551 | #define PCI_0READ_BUFFER_DISCARD_TIMER 0xd04 | ||
552 | #define PCI_1READ_BUFFER_DISCARD_TIMER 0xd84 | ||
553 | #define MSI_0TRIGGER_TIMER 0xc38 | ||
554 | #define MSI_1TRIGGER_TIMER 0xcb8 | ||
555 | #define PCI_0ARBITER_CONTROL 0x1d00 | ||
556 | #define PCI_1ARBITER_CONTROL 0x1d80 | ||
557 | /* changing untill here */ | ||
558 | #define PCI_0CROSS_BAR_CONTROL_LOW 0x1d08 | ||
559 | #define PCI_0CROSS_BAR_CONTROL_HIGH 0x1d0c | ||
560 | #define PCI_0CROSS_BAR_TIMEOUT 0x1d04 | ||
561 | #define PCI_0READ_RESPONSE_CROSS_BAR_CONTROL_LOW 0x1d18 | ||
562 | #define PCI_0READ_RESPONSE_CROSS_BAR_CONTROL_HIGH 0x1d1c | ||
563 | #define PCI_0SYNC_BARRIER_VIRTUAL_REGISTER 0x1d10 | ||
564 | #define PCI_0P2P_CONFIGURATION 0x1d14 | ||
565 | #define PCI_0ACCESS_CONTROL_BASE_0_LOW 0x1e00 | ||
566 | #define PCI_0ACCESS_CONTROL_BASE_0_HIGH 0x1e04 | ||
567 | #define PCI_0ACCESS_CONTROL_TOP_0 0x1e08 | ||
568 | #define PCI_0ACCESS_CONTROL_BASE_1_LOW 0c1e10 | ||
569 | #define PCI_0ACCESS_CONTROL_BASE_1_HIGH 0x1e14 | ||
570 | #define PCI_0ACCESS_CONTROL_TOP_1 0x1e18 | ||
571 | #define PCI_0ACCESS_CONTROL_BASE_2_LOW 0c1e20 | ||
572 | #define PCI_0ACCESS_CONTROL_BASE_2_HIGH 0x1e24 | ||
573 | #define PCI_0ACCESS_CONTROL_TOP_2 0x1e28 | ||
574 | #define PCI_0ACCESS_CONTROL_BASE_3_LOW 0c1e30 | ||
575 | #define PCI_0ACCESS_CONTROL_BASE_3_HIGH 0x1e34 | ||
576 | #define PCI_0ACCESS_CONTROL_TOP_3 0x1e38 | ||
577 | #define PCI_0ACCESS_CONTROL_BASE_4_LOW 0c1e40 | ||
578 | #define PCI_0ACCESS_CONTROL_BASE_4_HIGH 0x1e44 | ||
579 | #define PCI_0ACCESS_CONTROL_TOP_4 0x1e48 | ||
580 | #define PCI_0ACCESS_CONTROL_BASE_5_LOW 0c1e50 | ||
581 | #define PCI_0ACCESS_CONTROL_BASE_5_HIGH 0x1e54 | ||
582 | #define PCI_0ACCESS_CONTROL_TOP_5 0x1e58 | ||
583 | #define PCI_0ACCESS_CONTROL_BASE_6_LOW 0c1e60 | ||
584 | #define PCI_0ACCESS_CONTROL_BASE_6_HIGH 0x1e64 | ||
585 | #define PCI_0ACCESS_CONTROL_TOP_6 0x1e68 | ||
586 | #define PCI_0ACCESS_CONTROL_BASE_7_LOW 0c1e70 | ||
587 | #define PCI_0ACCESS_CONTROL_BASE_7_HIGH 0x1e74 | ||
588 | #define PCI_0ACCESS_CONTROL_TOP_7 0x1e78 | ||
589 | #define PCI_1CROSS_BAR_CONTROL_LOW 0x1d88 | ||
590 | #define PCI_1CROSS_BAR_CONTROL_HIGH 0x1d8c | ||
591 | #define PCI_1CROSS_BAR_TIMEOUT 0x1d84 | ||
592 | #define PCI_1READ_RESPONSE_CROSS_BAR_CONTROL_LOW 0x1d98 | ||
593 | #define PCI_1READ_RESPONSE_CROSS_BAR_CONTROL_HIGH 0x1d9c | ||
594 | #define PCI_1SYNC_BARRIER_VIRTUAL_REGISTER 0x1d90 | ||
595 | #define PCI_1P2P_CONFIGURATION 0x1d94 | ||
596 | #define PCI_1ACCESS_CONTROL_BASE_0_LOW 0x1e80 | ||
597 | #define PCI_1ACCESS_CONTROL_BASE_0_HIGH 0x1e84 | ||
598 | #define PCI_1ACCESS_CONTROL_TOP_0 0x1e88 | ||
599 | #define PCI_1ACCESS_CONTROL_BASE_1_LOW 0c1e90 | ||
600 | #define PCI_1ACCESS_CONTROL_BASE_1_HIGH 0x1e94 | ||
601 | #define PCI_1ACCESS_CONTROL_TOP_1 0x1e98 | ||
602 | #define PCI_1ACCESS_CONTROL_BASE_2_LOW 0c1ea0 | ||
603 | #define PCI_1ACCESS_CONTROL_BASE_2_HIGH 0x1ea4 | ||
604 | #define PCI_1ACCESS_CONTROL_TOP_2 0x1ea8 | ||
605 | #define PCI_1ACCESS_CONTROL_BASE_3_LOW 0c1eb0 | ||
606 | #define PCI_1ACCESS_CONTROL_BASE_3_HIGH 0x1eb4 | ||
607 | #define PCI_1ACCESS_CONTROL_TOP_3 0x1eb8 | ||
608 | #define PCI_1ACCESS_CONTROL_BASE_4_LOW 0c1ec0 | ||
609 | #define PCI_1ACCESS_CONTROL_BASE_4_HIGH 0x1ec4 | ||
610 | #define PCI_1ACCESS_CONTROL_TOP_4 0x1ec8 | ||
611 | #define PCI_1ACCESS_CONTROL_BASE_5_LOW 0c1ed0 | ||
612 | #define PCI_1ACCESS_CONTROL_BASE_5_HIGH 0x1ed4 | ||
613 | #define PCI_1ACCESS_CONTROL_TOP_5 0x1ed8 | ||
614 | #define PCI_1ACCESS_CONTROL_BASE_6_LOW 0c1ee0 | ||
615 | #define PCI_1ACCESS_CONTROL_BASE_6_HIGH 0x1ee4 | ||
616 | #define PCI_1ACCESS_CONTROL_TOP_6 0x1ee8 | ||
617 | #define PCI_1ACCESS_CONTROL_BASE_7_LOW 0c1ef0 | ||
618 | #define PCI_1ACCESS_CONTROL_BASE_7_HIGH 0x1ef4 | ||
619 | #define PCI_1ACCESS_CONTROL_TOP_7 0x1ef8 | ||
620 | |||
621 | /* | ||
622 | * PCI Snoop Control | ||
623 | */ | ||
624 | |||
625 | #define PCI_0SNOOP_CONTROL_BASE_0_LOW 0x1f00 | ||
626 | #define PCI_0SNOOP_CONTROL_BASE_0_HIGH 0x1f04 | ||
627 | #define PCI_0SNOOP_CONTROL_TOP_0 0x1f08 | ||
628 | #define PCI_0SNOOP_CONTROL_BASE_1_0_LOW 0x1f10 | ||
629 | #define PCI_0SNOOP_CONTROL_BASE_1_0_HIGH 0x1f14 | ||
630 | #define PCI_0SNOOP_CONTROL_TOP_1 0x1f18 | ||
631 | #define PCI_0SNOOP_CONTROL_BASE_2_0_LOW 0x1f20 | ||
632 | #define PCI_0SNOOP_CONTROL_BASE_2_0_HIGH 0x1f24 | ||
633 | #define PCI_0SNOOP_CONTROL_TOP_2 0x1f28 | ||
634 | #define PCI_0SNOOP_CONTROL_BASE_3_0_LOW 0x1f30 | ||
635 | #define PCI_0SNOOP_CONTROL_BASE_3_0_HIGH 0x1f34 | ||
636 | #define PCI_0SNOOP_CONTROL_TOP_3 0x1f38 | ||
637 | #define PCI_1SNOOP_CONTROL_BASE_0_LOW 0x1f80 | ||
638 | #define PCI_1SNOOP_CONTROL_BASE_0_HIGH 0x1f84 | ||
639 | #define PCI_1SNOOP_CONTROL_TOP_0 0x1f88 | ||
640 | #define PCI_1SNOOP_CONTROL_BASE_1_0_LOW 0x1f90 | ||
641 | #define PCI_1SNOOP_CONTROL_BASE_1_0_HIGH 0x1f94 | ||
642 | #define PCI_1SNOOP_CONTROL_TOP_1 0x1f98 | ||
643 | #define PCI_1SNOOP_CONTROL_BASE_2_0_LOW 0x1fa0 | ||
644 | #define PCI_1SNOOP_CONTROL_BASE_2_0_HIGH 0x1fa4 | ||
645 | #define PCI_1SNOOP_CONTROL_TOP_2 0x1fa8 | ||
646 | #define PCI_1SNOOP_CONTROL_BASE_3_0_LOW 0x1fb0 | ||
647 | #define PCI_1SNOOP_CONTROL_BASE_3_0_HIGH 0x1fb4 | ||
648 | #define PCI_1SNOOP_CONTROL_TOP_3 0x1fb8 | ||
649 | |||
650 | /* | ||
651 | * PCI Configuration Address | ||
652 | */ | ||
653 | |||
654 | #define PCI_0CONFIGURATION_ADDRESS 0xcf8 | ||
655 | #define PCI_0CONFIGURATION_DATA_VIRTUAL_REGISTER 0xcfc | ||
656 | #define PCI_1CONFIGURATION_ADDRESS 0xc78 | ||
657 | #define PCI_1CONFIGURATION_DATA_VIRTUAL_REGISTER 0xc7c | ||
658 | #define PCI_0INTERRUPT_ACKNOWLEDGE_VIRTUAL_REGISTER 0xc34 | ||
659 | #define PCI_1INTERRUPT_ACKNOWLEDGE_VIRTUAL_REGISTER 0xcb4 | ||
660 | |||
661 | /* | ||
662 | * PCI Error Report | ||
663 | */ | ||
664 | |||
665 | #define PCI_0SERR_MASK 0xc28 | ||
666 | #define PCI_0ERROR_ADDRESS_LOW 0x1d40 | ||
667 | #define PCI_0ERROR_ADDRESS_HIGH 0x1d44 | ||
668 | #define PCI_0ERROR_DATA_LOW 0x1d48 | ||
669 | #define PCI_0ERROR_DATA_HIGH 0x1d4c | ||
670 | #define PCI_0ERROR_COMMAND 0x1d50 | ||
671 | #define PCI_0ERROR_CAUSE 0x1d58 | ||
672 | #define PCI_0ERROR_MASK 0x1d5c | ||
673 | |||
674 | #define PCI_1SERR_MASK 0xca8 | ||
675 | #define PCI_1ERROR_ADDRESS_LOW 0x1dc0 | ||
676 | #define PCI_1ERROR_ADDRESS_HIGH 0x1dc4 | ||
677 | #define PCI_1ERROR_DATA_LOW 0x1dc8 | ||
678 | #define PCI_1ERROR_DATA_HIGH 0x1dcc | ||
679 | #define PCI_1ERROR_COMMAND 0x1dd0 | ||
680 | #define PCI_1ERROR_CAUSE 0x1dd8 | ||
681 | #define PCI_1ERROR_MASK 0x1ddc | ||
682 | |||
683 | |||
684 | /* | ||
685 | * Lslave Debug (for internal use) | ||
686 | */ | ||
687 | |||
688 | #define L_SLAVE_X0_ADDRESS 0x1d20 | ||
689 | #define L_SLAVE_X0_COMMAND_AND_ID 0x1d24 | ||
690 | #define L_SLAVE_X1_ADDRESS 0x1d28 | ||
691 | #define L_SLAVE_X1_COMMAND_AND_ID 0x1d2c | ||
692 | #define L_SLAVE_WRITE_DATA_LOW 0x1d30 | ||
693 | #define L_SLAVE_WRITE_DATA_HIGH 0x1d34 | ||
694 | #define L_SLAVE_WRITE_BYTE_ENABLE 0x1d60 | ||
695 | #define L_SLAVE_READ_DATA_LOW 0x1d38 | ||
696 | #define L_SLAVE_READ_DATA_HIGH 0x1d3c | ||
697 | #define L_SLAVE_READ_ID 0x1d64 | ||
698 | |||
699 | #if 0 /* Disabled because PCI_* namespace belongs to PCI subsystem ... */ | ||
700 | |||
701 | /* | ||
702 | * PCI Configuration Function 0 | ||
703 | */ | ||
704 | |||
705 | #define PCI_DEVICE_AND_VENDOR_ID 0x000 | ||
706 | #define PCI_STATUS_AND_COMMAND 0x004 | ||
707 | #define PCI_CLASS_CODE_AND_REVISION_ID 0x008 | ||
708 | #define PCI_BIST_HEADER_TYPE_LATENCY_TIMER_CACHE_LINE 0x00C | ||
709 | #define PCI_SCS_0_BASE_ADDRESS 0x010 | ||
710 | #define PCI_SCS_1_BASE_ADDRESS 0x014 | ||
711 | #define PCI_SCS_2_BASE_ADDRESS 0x018 | ||
712 | #define PCI_SCS_3_BASE_ADDRESS 0x01C | ||
713 | #define PCI_INTERNAL_REGISTERS_MEMORY_MAPPED_BASE_ADDRESS 0x020 | ||
714 | #define PCI_INTERNAL_REGISTERS_I_OMAPPED_BASE_ADDRESS 0x024 | ||
715 | #define PCI_SUBSYSTEM_ID_AND_SUBSYSTEM_VENDOR_ID 0x02C | ||
716 | #define PCI_EXPANSION_ROM_BASE_ADDRESS_REGISTER 0x030 | ||
717 | #define PCI_CAPABILTY_LIST_POINTER 0x034 | ||
718 | #define PCI_INTERRUPT_PIN_AND_LINE 0x03C | ||
719 | #define PCI_POWER_MANAGEMENT_CAPABILITY 0x040 | ||
720 | #define PCI_POWER_MANAGEMENT_STATUS_AND_CONTROL 0x044 | ||
721 | #define PCI_VPD_ADDRESS 0x048 | ||
722 | #define PCI_VPD_DATA 0X04c | ||
723 | #define PCI_MSI_MESSAGE_CONTROL 0x050 | ||
724 | #define PCI_MSI_MESSAGE_ADDRESS 0x054 | ||
725 | #define PCI_MSI_MESSAGE_UPPER_ADDRESS 0x058 | ||
726 | #define PCI_MSI_MESSAGE_DATA 0x05c | ||
727 | #define PCI_COMPACT_PCI_HOT_SWAP_CAPABILITY 0x058 | ||
728 | |||
729 | /* | ||
730 | * PCI Configuration Function 1 | ||
731 | */ | ||
732 | |||
733 | #define PCI_CS_0_BASE_ADDRESS 0x110 | ||
734 | #define PCI_CS_1_BASE_ADDRESS 0x114 | ||
735 | #define PCI_CS_2_BASE_ADDRESS 0x118 | ||
736 | #define PCI_CS_3_BASE_ADDRESS 0x11c | ||
737 | #define PCI_BOOTCS_BASE_ADDRESS 0x120 | ||
738 | |||
739 | /* | ||
740 | * PCI Configuration Function 2 | ||
741 | */ | ||
742 | |||
743 | #define PCI_P2P_MEM0_BASE_ADDRESS 0x210 | ||
744 | #define PCI_P2P_MEM1_BASE_ADDRESS 0x214 | ||
745 | #define PCI_P2P_I_O_BASE_ADDRESS 0x218 | ||
746 | #define PCI_CPU_BASE_ADDRESS 0x21c | ||
747 | |||
748 | /* | ||
749 | * PCI Configuration Function 4 | ||
750 | */ | ||
751 | |||
752 | #define PCI_DAC_SCS_0_BASE_ADDRESS_LOW 0x410 | ||
753 | #define PCI_DAC_SCS_0_BASE_ADDRESS_HIGH 0x414 | ||
754 | #define PCI_DAC_SCS_1_BASE_ADDRESS_LOW 0x418 | ||
755 | #define PCI_DAC_SCS_1_BASE_ADDRESS_HIGH 0x41c | ||
756 | #define PCI_DAC_P2P_MEM0_BASE_ADDRESS_LOW 0x420 | ||
757 | #define PCI_DAC_P2P_MEM0_BASE_ADDRESS_HIGH 0x424 | ||
758 | |||
759 | |||
760 | /* | ||
761 | * PCI Configuration Function 5 | ||
762 | */ | ||
763 | |||
764 | #define PCI_DAC_SCS_2_BASE_ADDRESS_LOW 0x510 | ||
765 | #define PCI_DAC_SCS_2_BASE_ADDRESS_HIGH 0x514 | ||
766 | #define PCI_DAC_SCS_3_BASE_ADDRESS_LOW 0x518 | ||
767 | #define PCI_DAC_SCS_3_BASE_ADDRESS_HIGH 0x51c | ||
768 | #define PCI_DAC_P2P_MEM1_BASE_ADDRESS_LOW 0x520 | ||
769 | #define PCI_DAC_P2P_MEM1_BASE_ADDRESS_HIGH 0x524 | ||
770 | |||
771 | |||
772 | /* | ||
773 | * PCI Configuration Function 6 | ||
774 | */ | ||
775 | |||
776 | #define PCI_DAC_CS_0_BASE_ADDRESS_LOW 0x610 | ||
777 | #define PCI_DAC_CS_0_BASE_ADDRESS_HIGH 0x614 | ||
778 | #define PCI_DAC_CS_1_BASE_ADDRESS_LOW 0x618 | ||
779 | #define PCI_DAC_CS_1_BASE_ADDRESS_HIGH 0x61c | ||
780 | #define PCI_DAC_CS_2_BASE_ADDRESS_LOW 0x620 | ||
781 | #define PCI_DAC_CS_2_BASE_ADDRESS_HIGH 0x624 | ||
782 | |||
783 | /* | ||
784 | * PCI Configuration Function 7 | ||
785 | */ | ||
786 | |||
787 | #define PCI_DAC_CS_3_BASE_ADDRESS_LOW 0x710 | ||
788 | #define PCI_DAC_CS_3_BASE_ADDRESS_HIGH 0x714 | ||
789 | #define PCI_DAC_BOOTCS_BASE_ADDRESS_LOW 0x718 | ||
790 | #define PCI_DAC_BOOTCS_BASE_ADDRESS_HIGH 0x71c | ||
791 | #define PCI_DAC_CPU_BASE_ADDRESS_LOW 0x720 | ||
792 | #define PCI_DAC_CPU_BASE_ADDRESS_HIGH 0x724 | ||
793 | #endif | ||
794 | |||
795 | /* | ||
796 | * Interrupts | ||
797 | */ | ||
798 | |||
799 | #define LOW_INTERRUPT_CAUSE_REGISTER 0xc18 | ||
800 | #define HIGH_INTERRUPT_CAUSE_REGISTER 0xc68 | ||
801 | #define CPU_INTERRUPT_MASK_REGISTER_LOW 0xc1c | ||
802 | #define CPU_INTERRUPT_MASK_REGISTER_HIGH 0xc6c | ||
803 | #define CPU_SELECT_CAUSE_REGISTER 0xc70 | ||
804 | #define PCI_0INTERRUPT_CAUSE_MASK_REGISTER_LOW 0xc24 | ||
805 | #define PCI_0INTERRUPT_CAUSE_MASK_REGISTER_HIGH 0xc64 | ||
806 | #define PCI_0SELECT_CAUSE 0xc74 | ||
807 | #define PCI_1INTERRUPT_CAUSE_MASK_REGISTER_LOW 0xca4 | ||
808 | #define PCI_1INTERRUPT_CAUSE_MASK_REGISTER_HIGH 0xce4 | ||
809 | #define PCI_1SELECT_CAUSE 0xcf4 | ||
810 | #define CPU_INT_0_MASK 0xe60 | ||
811 | #define CPU_INT_1_MASK 0xe64 | ||
812 | #define CPU_INT_2_MASK 0xe68 | ||
813 | #define CPU_INT_3_MASK 0xe6c | ||
814 | |||
815 | /* | ||
816 | * I20 Support registers | ||
817 | */ | ||
818 | |||
819 | #define INBOUND_MESSAGE_REGISTER0_PCI0_SIDE 0x010 | ||
820 | #define INBOUND_MESSAGE_REGISTER1_PCI0_SIDE 0x014 | ||
821 | #define OUTBOUND_MESSAGE_REGISTER0_PCI0_SIDE 0x018 | ||
822 | #define OUTBOUND_MESSAGE_REGISTER1_PCI0_SIDE 0x01C | ||
823 | #define INBOUND_DOORBELL_REGISTER_PCI0_SIDE 0x020 | ||
824 | #define INBOUND_INTERRUPT_CAUSE_REGISTER_PCI0_SIDE 0x024 | ||
825 | #define INBOUND_INTERRUPT_MASK_REGISTER_PCI0_SIDE 0x028 | ||
826 | #define OUTBOUND_DOORBELL_REGISTER_PCI0_SIDE 0x02C | ||
827 | #define OUTBOUND_INTERRUPT_CAUSE_REGISTER_PCI0_SIDE 0x030 | ||
828 | #define OUTBOUND_INTERRUPT_MASK_REGISTER_PCI0_SIDE 0x034 | ||
829 | #define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI0_SIDE 0x040 | ||
830 | #define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI0_SIDE 0x044 | ||
831 | #define QUEUE_CONTROL_REGISTER_PCI0_SIDE 0x050 | ||
832 | #define QUEUE_BASE_ADDRESS_REGISTER_PCI0_SIDE 0x054 | ||
833 | #define INBOUND_FREE_HEAD_POINTER_REGISTER_PCI0_SIDE 0x060 | ||
834 | #define INBOUND_FREE_TAIL_POINTER_REGISTER_PCI0_SIDE 0x064 | ||
835 | #define INBOUND_POST_HEAD_POINTER_REGISTER_PCI0_SIDE 0x068 | ||
836 | #define INBOUND_POST_TAIL_POINTER_REGISTER_PCI0_SIDE 0x06C | ||
837 | #define OUTBOUND_FREE_HEAD_POINTER_REGISTER_PCI0_SIDE 0x070 | ||
838 | #define OUTBOUND_FREE_TAIL_POINTER_REGISTER_PCI0_SIDE 0x074 | ||
839 | #define OUTBOUND_POST_HEAD_POINTER_REGISTER_PCI0_SIDE 0x0F8 | ||
840 | #define OUTBOUND_POST_TAIL_POINTER_REGISTER_PCI0_SIDE 0x0FC | ||
841 | |||
842 | #define INBOUND_MESSAGE_REGISTER0_PCI1_SIDE 0x090 | ||
843 | #define INBOUND_MESSAGE_REGISTER1_PCI1_SIDE 0x094 | ||
844 | #define OUTBOUND_MESSAGE_REGISTER0_PCI1_SIDE 0x098 | ||
845 | #define OUTBOUND_MESSAGE_REGISTER1_PCI1_SIDE 0x09C | ||
846 | #define INBOUND_DOORBELL_REGISTER_PCI1_SIDE 0x0A0 | ||
847 | #define INBOUND_INTERRUPT_CAUSE_REGISTER_PCI1_SIDE 0x0A4 | ||
848 | #define INBOUND_INTERRUPT_MASK_REGISTER_PCI1_SIDE 0x0A8 | ||
849 | #define OUTBOUND_DOORBELL_REGISTER_PCI1_SIDE 0x0AC | ||
850 | #define OUTBOUND_INTERRUPT_CAUSE_REGISTER_PCI1_SIDE 0x0B0 | ||
851 | #define OUTBOUND_INTERRUPT_MASK_REGISTER_PCI1_SIDE 0x0B4 | ||
852 | #define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI1_SIDE 0x0C0 | ||
853 | #define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI1_SIDE 0x0C4 | ||
854 | #define QUEUE_CONTROL_REGISTER_PCI1_SIDE 0x0D0 | ||
855 | #define QUEUE_BASE_ADDRESS_REGISTER_PCI1_SIDE 0x0D4 | ||
856 | #define INBOUND_FREE_HEAD_POINTER_REGISTER_PCI1_SIDE 0x0E0 | ||
857 | #define INBOUND_FREE_TAIL_POINTER_REGISTER_PCI1_SIDE 0x0E4 | ||
858 | #define INBOUND_POST_HEAD_POINTER_REGISTER_PCI1_SIDE 0x0E8 | ||
859 | #define INBOUND_POST_TAIL_POINTER_REGISTER_PCI1_SIDE 0x0EC | ||
860 | #define OUTBOUND_FREE_HEAD_POINTER_REGISTER_PCI1_SIDE 0x0F0 | ||
861 | #define OUTBOUND_FREE_TAIL_POINTER_REGISTER_PCI1_SIDE 0x0F4 | ||
862 | #define OUTBOUND_POST_HEAD_POINTER_REGISTER_PCI1_SIDE 0x078 | ||
863 | #define OUTBOUND_POST_TAIL_POINTER_REGISTER_PCI1_SIDE 0x07C | ||
864 | |||
865 | #define INBOUND_MESSAGE_REGISTER0_CPU0_SIDE 0X1C10 | ||
866 | #define INBOUND_MESSAGE_REGISTER1_CPU0_SIDE 0X1C14 | ||
867 | #define OUTBOUND_MESSAGE_REGISTER0_CPU0_SIDE 0X1C18 | ||
868 | #define OUTBOUND_MESSAGE_REGISTER1_CPU0_SIDE 0X1C1C | ||
869 | #define INBOUND_DOORBELL_REGISTER_CPU0_SIDE 0X1C20 | ||
870 | #define INBOUND_INTERRUPT_CAUSE_REGISTER_CPU0_SIDE 0X1C24 | ||
871 | #define INBOUND_INTERRUPT_MASK_REGISTER_CPU0_SIDE 0X1C28 | ||
872 | #define OUTBOUND_DOORBELL_REGISTER_CPU0_SIDE 0X1C2C | ||
873 | #define OUTBOUND_INTERRUPT_CAUSE_REGISTER_CPU0_SIDE 0X1C30 | ||
874 | #define OUTBOUND_INTERRUPT_MASK_REGISTER_CPU0_SIDE 0X1C34 | ||
875 | #define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU0_SIDE 0X1C40 | ||
876 | #define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU0_SIDE 0X1C44 | ||
877 | #define QUEUE_CONTROL_REGISTER_CPU0_SIDE 0X1C50 | ||
878 | #define QUEUE_BASE_ADDRESS_REGISTER_CPU0_SIDE 0X1C54 | ||
879 | #define INBOUND_FREE_HEAD_POINTER_REGISTER_CPU0_SIDE 0X1C60 | ||
880 | #define INBOUND_FREE_TAIL_POINTER_REGISTER_CPU0_SIDE 0X1C64 | ||
881 | #define INBOUND_POST_HEAD_POINTER_REGISTER_CPU0_SIDE 0X1C68 | ||
882 | #define INBOUND_POST_TAIL_POINTER_REGISTER_CPU0_SIDE 0X1C6C | ||
883 | #define OUTBOUND_FREE_HEAD_POINTER_REGISTER_CPU0_SIDE 0X1C70 | ||
884 | #define OUTBOUND_FREE_TAIL_POINTER_REGISTER_CPU0_SIDE 0X1C74 | ||
885 | #define OUTBOUND_POST_HEAD_POINTER_REGISTER_CPU0_SIDE 0X1CF8 | ||
886 | #define OUTBOUND_POST_TAIL_POINTER_REGISTER_CPU0_SIDE 0X1CFC | ||
887 | |||
888 | #define INBOUND_MESSAGE_REGISTER0_CPU1_SIDE 0X1C90 | ||
889 | #define INBOUND_MESSAGE_REGISTER1_CPU1_SIDE 0X1C94 | ||
890 | #define OUTBOUND_MESSAGE_REGISTER0_CPU1_SIDE 0X1C98 | ||
891 | #define OUTBOUND_MESSAGE_REGISTER1_CPU1_SIDE 0X1C9C | ||
892 | #define INBOUND_DOORBELL_REGISTER_CPU1_SIDE 0X1CA0 | ||
893 | #define INBOUND_INTERRUPT_CAUSE_REGISTER_CPU1_SIDE 0X1CA4 | ||
894 | #define INBOUND_INTERRUPT_MASK_REGISTER_CPU1_SIDE 0X1CA8 | ||
895 | #define OUTBOUND_DOORBELL_REGISTER_CPU1_SIDE 0X1CAC | ||
896 | #define OUTBOUND_INTERRUPT_CAUSE_REGISTER_CPU1_SIDE 0X1CB0 | ||
897 | #define OUTBOUND_INTERRUPT_MASK_REGISTER_CPU1_SIDE 0X1CB4 | ||
898 | #define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU1_SIDE 0X1CC0 | ||
899 | #define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU1_SIDE 0X1CC4 | ||
900 | #define QUEUE_CONTROL_REGISTER_CPU1_SIDE 0X1CD0 | ||
901 | #define QUEUE_BASE_ADDRESS_REGISTER_CPU1_SIDE 0X1CD4 | ||
902 | #define INBOUND_FREE_HEAD_POINTER_REGISTER_CPU1_SIDE 0X1CE0 | ||
903 | #define INBOUND_FREE_TAIL_POINTER_REGISTER_CPU1_SIDE 0X1CE4 | ||
904 | #define INBOUND_POST_HEAD_POINTER_REGISTER_CPU1_SIDE 0X1CE8 | ||
905 | #define INBOUND_POST_TAIL_POINTER_REGISTER_CPU1_SIDE 0X1CEC | ||
906 | #define OUTBOUND_FREE_HEAD_POINTER_REGISTER_CPU1_SIDE 0X1CF0 | ||
907 | #define OUTBOUND_FREE_TAIL_POINTER_REGISTER_CPU1_SIDE 0X1CF4 | ||
908 | #define OUTBOUND_POST_HEAD_POINTER_REGISTER_CPU1_SIDE 0X1C78 | ||
909 | #define OUTBOUND_POST_TAIL_POINTER_REGISTER_CPU1_SIDE 0X1C7C | ||
910 | |||
911 | /* | ||
912 | * Communication Unit Registers | ||
913 | */ | ||
914 | |||
915 | #define ETHERNET_0_ADDRESS_CONTROL_LOW | ||
916 | #define ETHERNET_0_ADDRESS_CONTROL_HIGH 0xf204 | ||
917 | #define ETHERNET_0_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf208 | ||
918 | #define ETHERNET_0_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf20c | ||
919 | #define ETHERNET_0_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf210 | ||
920 | #define ETHERNET_0_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf214 | ||
921 | #define ETHERNET_0_HASH_TABLE_PCI_HIGH_ADDRESS 0xf218 | ||
922 | #define ETHERNET_1_ADDRESS_CONTROL_LOW 0xf220 | ||
923 | #define ETHERNET_1_ADDRESS_CONTROL_HIGH 0xf224 | ||
924 | #define ETHERNET_1_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf228 | ||
925 | #define ETHERNET_1_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf22c | ||
926 | #define ETHERNET_1_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf230 | ||
927 | #define ETHERNET_1_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf234 | ||
928 | #define ETHERNET_1_HASH_TABLE_PCI_HIGH_ADDRESS 0xf238 | ||
929 | #define ETHERNET_2_ADDRESS_CONTROL_LOW 0xf240 | ||
930 | #define ETHERNET_2_ADDRESS_CONTROL_HIGH 0xf244 | ||
931 | #define ETHERNET_2_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf248 | ||
932 | #define ETHERNET_2_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf24c | ||
933 | #define ETHERNET_2_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf250 | ||
934 | #define ETHERNET_2_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf254 | ||
935 | #define ETHERNET_2_HASH_TABLE_PCI_HIGH_ADDRESS 0xf258 | ||
936 | #define MPSC_0_ADDRESS_CONTROL_LOW 0xf280 | ||
937 | #define MPSC_0_ADDRESS_CONTROL_HIGH 0xf284 | ||
938 | #define MPSC_0_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf288 | ||
939 | #define MPSC_0_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf28c | ||
940 | #define MPSC_0_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf290 | ||
941 | #define MPSC_0_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf294 | ||
942 | #define MPSC_1_ADDRESS_CONTROL_LOW 0xf2a0 | ||
943 | #define MPSC_1_ADDRESS_CONTROL_HIGH 0xf2a4 | ||
944 | #define MPSC_1_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf2a8 | ||
945 | #define MPSC_1_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf2ac | ||
946 | #define MPSC_1_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf2b0 | ||
947 | #define MPSC_1_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf2b4 | ||
948 | #define MPSC_2_ADDRESS_CONTROL_LOW 0xf2c0 | ||
949 | #define MPSC_2_ADDRESS_CONTROL_HIGH 0xf2c4 | ||
950 | #define MPSC_2_RECEIVE_BUFFER_PCI_HIGH_ADDRESS 0xf2c8 | ||
951 | #define MPSC_2_TRANSMIT_BUFFER_PCI_HIGH_ADDRESS 0xf2cc | ||
952 | #define MPSC_2_RECEIVE_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf2d0 | ||
953 | #define MPSC_2_TRANSMIT_DESCRIPTOR_PCI_HIGH_ADDRESS 0xf2d4 | ||
954 | #define SERIAL_INIT_PCI_HIGH_ADDRESS 0xf320 | ||
955 | #define SERIAL_INIT_LAST_DATA 0xf324 | ||
956 | #define SERIAL_INIT_STATUS_AND_CONTROL 0xf328 | ||
957 | #define COMM_UNIT_ARBITER_CONTROL 0xf300 | ||
958 | #define COMM_UNIT_CROSS_BAR_TIMEOUT 0xf304 | ||
959 | #define COMM_UNIT_INTERRUPT_CAUSE 0xf310 | ||
960 | #define COMM_UNIT_INTERRUPT_MASK 0xf314 | ||
961 | #define COMM_UNIT_ERROR_ADDRESS 0xf314 | ||
962 | |||
963 | /* | ||
964 | * Cunit Debug (for internal use) | ||
965 | */ | ||
966 | |||
967 | #define CUNIT_ADDRESS 0xf340 | ||
968 | #define CUNIT_COMMAND_AND_ID 0xf344 | ||
969 | #define CUNIT_WRITE_DATA_LOW 0xf348 | ||
970 | #define CUNIT_WRITE_DATA_HIGH 0xf34c | ||
971 | #define CUNIT_WRITE_BYTE_ENABLE 0xf358 | ||
972 | #define CUNIT_READ_DATA_LOW 0xf350 | ||
973 | #define CUNIT_READ_DATA_HIGH 0xf354 | ||
974 | #define CUNIT_READ_ID 0xf35c | ||
975 | |||
976 | /* | ||
977 | * Fast Ethernet Unit Registers | ||
978 | */ | ||
979 | |||
980 | /* Ethernet */ | ||
981 | |||
982 | #define ETHERNET_PHY_ADDRESS_REGISTER 0x2000 | ||
983 | #define ETHERNET_SMI_REGISTER 0x2010 | ||
984 | |||
985 | /* Ethernet 0 */ | ||
986 | |||
987 | #define ETHERNET0_PORT_CONFIGURATION_REGISTER 0x2400 | ||
988 | #define ETHERNET0_PORT_CONFIGURATION_EXTEND_REGISTER 0x2408 | ||
989 | #define ETHERNET0_PORT_COMMAND_REGISTER 0x2410 | ||
990 | #define ETHERNET0_PORT_STATUS_REGISTER 0x2418 | ||
991 | #define ETHERNET0_SERIAL_PARAMETRS_REGISTER 0x2420 | ||
992 | #define ETHERNET0_HASH_TABLE_POINTER_REGISTER 0x2428 | ||
993 | #define ETHERNET0_FLOW_CONTROL_SOURCE_ADDRESS_LOW 0x2430 | ||
994 | #define ETHERNET0_FLOW_CONTROL_SOURCE_ADDRESS_HIGH 0x2438 | ||
995 | #define ETHERNET0_SDMA_CONFIGURATION_REGISTER 0x2440 | ||
996 | #define ETHERNET0_SDMA_COMMAND_REGISTER 0x2448 | ||
997 | #define ETHERNET0_INTERRUPT_CAUSE_REGISTER 0x2450 | ||
998 | #define ETHERNET0_INTERRUPT_MASK_REGISTER 0x2458 | ||
999 | #define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER0 0x2480 | ||
1000 | #define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER1 0x2484 | ||
1001 | #define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER2 0x2488 | ||
1002 | #define ETHERNET0_FIRST_RX_DESCRIPTOR_POINTER3 0x248c | ||
1003 | #define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER0 0x24a0 | ||
1004 | #define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER1 0x24a4 | ||
1005 | #define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER2 0x24a8 | ||
1006 | #define ETHERNET0_CURRENT_RX_DESCRIPTOR_POINTER3 0x24ac | ||
1007 | #define ETHERNET0_CURRENT_TX_DESCRIPTOR_POINTER0 0x24e0 | ||
1008 | #define ETHERNET0_CURRENT_TX_DESCRIPTOR_POINTER1 0x24e4 | ||
1009 | #define ETHERNET0_MIB_COUNTER_BASE 0x2500 | ||
1010 | |||
1011 | /* Ethernet 1 */ | ||
1012 | |||
1013 | #define ETHERNET1_PORT_CONFIGURATION_REGISTER 0x2800 | ||
1014 | #define ETHERNET1_PORT_CONFIGURATION_EXTEND_REGISTER 0x2808 | ||
1015 | #define ETHERNET1_PORT_COMMAND_REGISTER 0x2810 | ||
1016 | #define ETHERNET1_PORT_STATUS_REGISTER 0x2818 | ||
1017 | #define ETHERNET1_SERIAL_PARAMETRS_REGISTER 0x2820 | ||
1018 | #define ETHERNET1_HASH_TABLE_POINTER_REGISTER 0x2828 | ||
1019 | #define ETHERNET1_FLOW_CONTROL_SOURCE_ADDRESS_LOW 0x2830 | ||
1020 | #define ETHERNET1_FLOW_CONTROL_SOURCE_ADDRESS_HIGH 0x2838 | ||
1021 | #define ETHERNET1_SDMA_CONFIGURATION_REGISTER 0x2840 | ||
1022 | #define ETHERNET1_SDMA_COMMAND_REGISTER 0x2848 | ||
1023 | #define ETHERNET1_INTERRUPT_CAUSE_REGISTER 0x2850 | ||
1024 | #define ETHERNET1_INTERRUPT_MASK_REGISTER 0x2858 | ||
1025 | #define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER0 0x2880 | ||
1026 | #define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER1 0x2884 | ||
1027 | #define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER2 0x2888 | ||
1028 | #define ETHERNET1_FIRST_RX_DESCRIPTOR_POINTER3 0x288c | ||
1029 | #define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER0 0x28a0 | ||
1030 | #define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER1 0x28a4 | ||
1031 | #define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER2 0x28a8 | ||
1032 | #define ETHERNET1_CURRENT_RX_DESCRIPTOR_POINTER3 0x28ac | ||
1033 | #define ETHERNET1_CURRENT_TX_DESCRIPTOR_POINTER0 0x28e0 | ||
1034 | #define ETHERNET1_CURRENT_TX_DESCRIPTOR_POINTER1 0x28e4 | ||
1035 | #define ETHERNET1_MIB_COUNTER_BASE 0x2900 | ||
1036 | |||
1037 | /* Ethernet 2 */ | ||
1038 | |||
1039 | #define ETHERNET2_PORT_CONFIGURATION_REGISTER 0x2c00 | ||
1040 | #define ETHERNET2_PORT_CONFIGURATION_EXTEND_REGISTER 0x2c08 | ||
1041 | #define ETHERNET2_PORT_COMMAND_REGISTER 0x2c10 | ||
1042 | #define ETHERNET2_PORT_STATUS_REGISTER 0x2c18 | ||
1043 | #define ETHERNET2_SERIAL_PARAMETRS_REGISTER 0x2c20 | ||
1044 | #define ETHERNET2_HASH_TABLE_POINTER_REGISTER 0x2c28 | ||
1045 | #define ETHERNET2_FLOW_CONTROL_SOURCE_ADDRESS_LOW 0x2c30 | ||
1046 | #define ETHERNET2_FLOW_CONTROL_SOURCE_ADDRESS_HIGH 0x2c38 | ||
1047 | #define ETHERNET2_SDMA_CONFIGURATION_REGISTER 0x2c40 | ||
1048 | #define ETHERNET2_SDMA_COMMAND_REGISTER 0x2c48 | ||
1049 | #define ETHERNET2_INTERRUPT_CAUSE_REGISTER 0x2c50 | ||
1050 | #define ETHERNET2_INTERRUPT_MASK_REGISTER 0x2c58 | ||
1051 | #define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER0 0x2c80 | ||
1052 | #define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER1 0x2c84 | ||
1053 | #define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER2 0x2c88 | ||
1054 | #define ETHERNET2_FIRST_RX_DESCRIPTOR_POINTER3 0x2c8c | ||
1055 | #define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER0 0x2ca0 | ||
1056 | #define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER1 0x2ca4 | ||
1057 | #define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER2 0x2ca8 | ||
1058 | #define ETHERNET2_CURRENT_RX_DESCRIPTOR_POINTER3 0x2cac | ||
1059 | #define ETHERNET2_CURRENT_TX_DESCRIPTOR_POINTER0 0x2ce0 | ||
1060 | #define ETHERNET2_CURRENT_TX_DESCRIPTOR_POINTER1 0x2ce4 | ||
1061 | #define ETHERNET2_MIB_COUNTER_BASE 0x2d00 | ||
1062 | |||
1063 | /* | ||
1064 | * SDMA Registers | ||
1065 | */ | ||
1066 | |||
1067 | #define SDMA_GROUP_CONFIGURATION_REGISTER 0xb1f0 | ||
1068 | #define CHANNEL0_CONFIGURATION_REGISTER 0x4000 | ||
1069 | #define CHANNEL0_COMMAND_REGISTER 0x4008 | ||
1070 | #define CHANNEL0_RX_CMD_STATUS 0x4800 | ||
1071 | #define CHANNEL0_RX_PACKET_AND_BUFFER_SIZES 0x4804 | ||
1072 | #define CHANNEL0_RX_BUFFER_POINTER 0x4808 | ||
1073 | #define CHANNEL0_RX_NEXT_POINTER 0x480c | ||
1074 | #define CHANNEL0_CURRENT_RX_DESCRIPTOR_POINTER 0x4810 | ||
1075 | #define CHANNEL0_TX_CMD_STATUS 0x4C00 | ||
1076 | #define CHANNEL0_TX_PACKET_SIZE 0x4C04 | ||
1077 | #define CHANNEL0_TX_BUFFER_POINTER 0x4C08 | ||
1078 | #define CHANNEL0_TX_NEXT_POINTER 0x4C0c | ||
1079 | #define CHANNEL0_CURRENT_TX_DESCRIPTOR_POINTER 0x4c10 | ||
1080 | #define CHANNEL0_FIRST_TX_DESCRIPTOR_POINTER 0x4c14 | ||
1081 | #define CHANNEL1_CONFIGURATION_REGISTER 0x6000 | ||
1082 | #define CHANNEL1_COMMAND_REGISTER 0x6008 | ||
1083 | #define CHANNEL1_RX_CMD_STATUS 0x6800 | ||
1084 | #define CHANNEL1_RX_PACKET_AND_BUFFER_SIZES 0x6804 | ||
1085 | #define CHANNEL1_RX_BUFFER_POINTER 0x6808 | ||
1086 | #define CHANNEL1_RX_NEXT_POINTER 0x680c | ||
1087 | #define CHANNEL1_CURRENT_RX_DESCRIPTOR_POINTER 0x6810 | ||
1088 | #define CHANNEL1_TX_CMD_STATUS 0x6C00 | ||
1089 | #define CHANNEL1_TX_PACKET_SIZE 0x6C04 | ||
1090 | #define CHANNEL1_TX_BUFFER_POINTER 0x6C08 | ||
1091 | #define CHANNEL1_TX_NEXT_POINTER 0x6C0c | ||
1092 | #define CHANNEL1_CURRENT_RX_DESCRIPTOR_POINTER 0x6810 | ||
1093 | #define CHANNEL1_CURRENT_TX_DESCRIPTOR_POINTER 0x6c10 | ||
1094 | #define CHANNEL1_FIRST_TX_DESCRIPTOR_POINTER 0x6c14 | ||
1095 | |||
1096 | /* SDMA Interrupt */ | ||
1097 | |||
1098 | #define SDMA_CAUSE 0xb820 | ||
1099 | #define SDMA_MASK 0xb8a0 | ||
1100 | |||
1101 | |||
1102 | /* | ||
1103 | * Baude Rate Generators Registers | ||
1104 | */ | ||
1105 | |||
1106 | /* BRG 0 */ | ||
1107 | |||
1108 | #define BRG0_CONFIGURATION_REGISTER 0xb200 | ||
1109 | #define BRG0_BAUDE_TUNING_REGISTER 0xb204 | ||
1110 | |||
1111 | /* BRG 1 */ | ||
1112 | |||
1113 | #define BRG1_CONFIGURATION_REGISTER 0xb208 | ||
1114 | #define BRG1_BAUDE_TUNING_REGISTER 0xb20c | ||
1115 | |||
1116 | /* BRG 2 */ | ||
1117 | |||
1118 | #define BRG2_CONFIGURATION_REGISTER 0xb210 | ||
1119 | #define BRG2_BAUDE_TUNING_REGISTER 0xb214 | ||
1120 | |||
1121 | /* BRG Interrupts */ | ||
1122 | |||
1123 | #define BRG_CAUSE_REGISTER 0xb834 | ||
1124 | #define BRG_MASK_REGISTER 0xb8b4 | ||
1125 | |||
1126 | /* MISC */ | ||
1127 | |||
1128 | #define MAIN_ROUTING_REGISTER 0xb400 | ||
1129 | #define RECEIVE_CLOCK_ROUTING_REGISTER 0xb404 | ||
1130 | #define TRANSMIT_CLOCK_ROUTING_REGISTER 0xb408 | ||
1131 | #define COMM_UNIT_ARBITER_CONFIGURATION_REGISTER 0xb40c | ||
1132 | #define WATCHDOG_CONFIGURATION_REGISTER 0xb410 | ||
1133 | #define WATCHDOG_VALUE_REGISTER 0xb414 | ||
1134 | |||
1135 | |||
1136 | /* | ||
1137 | * Flex TDM Registers | ||
1138 | */ | ||
1139 | |||
1140 | /* FTDM Port */ | ||
1141 | |||
1142 | #define FLEXTDM_TRANSMIT_READ_POINTER 0xa800 | ||
1143 | #define FLEXTDM_RECEIVE_READ_POINTER 0xa804 | ||
1144 | #define FLEXTDM_CONFIGURATION_REGISTER 0xa808 | ||
1145 | #define FLEXTDM_AUX_CHANNELA_TX_REGISTER 0xa80c | ||
1146 | #define FLEXTDM_AUX_CHANNELA_RX_REGISTER 0xa810 | ||
1147 | #define FLEXTDM_AUX_CHANNELB_TX_REGISTER 0xa814 | ||
1148 | #define FLEXTDM_AUX_CHANNELB_RX_REGISTER 0xa818 | ||
1149 | |||
1150 | /* FTDM Interrupts */ | ||
1151 | |||
1152 | #define FTDM_CAUSE_REGISTER 0xb830 | ||
1153 | #define FTDM_MASK_REGISTER 0xb8b0 | ||
1154 | |||
1155 | |||
1156 | /* | ||
1157 | * GPP Interface Registers | ||
1158 | */ | ||
1159 | |||
1160 | #define GPP_IO_CONTROL 0xf100 | ||
1161 | #define GPP_LEVEL_CONTROL 0xf110 | ||
1162 | #define GPP_VALUE 0xf104 | ||
1163 | #define GPP_INTERRUPT_CAUSE 0xf108 | ||
1164 | #define GPP_INTERRUPT_MASK 0xf10c | ||
1165 | |||
1166 | #define MPP_CONTROL0 0xf000 | ||
1167 | #define MPP_CONTROL1 0xf004 | ||
1168 | #define MPP_CONTROL2 0xf008 | ||
1169 | #define MPP_CONTROL3 0xf00c | ||
1170 | #define DEBUG_PORT_MULTIPLEX 0xf014 | ||
1171 | #define SERIAL_PORT_MULTIPLEX 0xf010 | ||
1172 | |||
1173 | /* | ||
1174 | * I2C Registers | ||
1175 | */ | ||
1176 | |||
1177 | #define I2C_SLAVE_ADDRESS 0xc000 | ||
1178 | #define I2C_EXTENDED_SLAVE_ADDRESS 0xc040 | ||
1179 | #define I2C_DATA 0xc004 | ||
1180 | #define I2C_CONTROL 0xc008 | ||
1181 | #define I2C_STATUS_BAUDE_RATE 0xc00C | ||
1182 | #define I2C_SOFT_RESET 0xc01c | ||
1183 | |||
1184 | /* | ||
1185 | * MPSC Registers | ||
1186 | */ | ||
1187 | |||
1188 | /* | ||
1189 | * MPSC0 | ||
1190 | */ | ||
1191 | |||
1192 | #define MPSC0_MAIN_CONFIGURATION_LOW 0x8000 | ||
1193 | #define MPSC0_MAIN_CONFIGURATION_HIGH 0x8004 | ||
1194 | #define MPSC0_PROTOCOL_CONFIGURATION 0x8008 | ||
1195 | #define CHANNEL0_REGISTER1 0x800c | ||
1196 | #define CHANNEL0_REGISTER2 0x8010 | ||
1197 | #define CHANNEL0_REGISTER3 0x8014 | ||
1198 | #define CHANNEL0_REGISTER4 0x8018 | ||
1199 | #define CHANNEL0_REGISTER5 0x801c | ||
1200 | #define CHANNEL0_REGISTER6 0x8020 | ||
1201 | #define CHANNEL0_REGISTER7 0x8024 | ||
1202 | #define CHANNEL0_REGISTER8 0x8028 | ||
1203 | #define CHANNEL0_REGISTER9 0x802c | ||
1204 | #define CHANNEL0_REGISTER10 0x8030 | ||
1205 | #define CHANNEL0_REGISTER11 0x8034 | ||
1206 | |||
1207 | /* | ||
1208 | * MPSC1 | ||
1209 | */ | ||
1210 | |||
1211 | #define MPSC1_MAIN_CONFIGURATION_LOW 0x9000 | ||
1212 | #define MPSC1_MAIN_CONFIGURATION_HIGH 0x9004 | ||
1213 | #define MPSC1_PROTOCOL_CONFIGURATION 0x9008 | ||
1214 | #define CHANNEL1_REGISTER1 0x900c | ||
1215 | #define CHANNEL1_REGISTER2 0x9010 | ||
1216 | #define CHANNEL1_REGISTER3 0x9014 | ||
1217 | #define CHANNEL1_REGISTER4 0x9018 | ||
1218 | #define CHANNEL1_REGISTER5 0x901c | ||
1219 | #define CHANNEL1_REGISTER6 0x9020 | ||
1220 | #define CHANNEL1_REGISTER7 0x9024 | ||
1221 | #define CHANNEL1_REGISTER8 0x9028 | ||
1222 | #define CHANNEL1_REGISTER9 0x902c | ||
1223 | #define CHANNEL1_REGISTER10 0x9030 | ||
1224 | #define CHANNEL1_REGISTER11 0x9034 | ||
1225 | |||
1226 | /* | ||
1227 | * MPSCs Interupts | ||
1228 | */ | ||
1229 | |||
1230 | #define MPSC0_CAUSE 0xb804 | ||
1231 | #define MPSC0_MASK 0xb884 | ||
1232 | #define MPSC1_CAUSE 0xb80c | ||
1233 | #define MPSC1_MASK 0xb88c | ||
1234 | |||
1235 | #endif /* __ASM_MIPS_MV64240_H */ | ||
diff --git a/include/asm-mips/jmr3927/jmr3927.h b/include/asm-mips/jmr3927/jmr3927.h index 958e29706e2d..b2dc35f56181 100644 --- a/include/asm-mips/jmr3927/jmr3927.h +++ b/include/asm-mips/jmr3927/jmr3927.h | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <asm/jmr3927/tx3927.h> | 13 | #include <asm/jmr3927/tx3927.h> |
14 | #include <asm/addrspace.h> | 14 | #include <asm/addrspace.h> |
15 | #include <asm/system.h> | 15 | #include <asm/system.h> |
16 | #include <asm/txx9irq.h> | ||
16 | 17 | ||
17 | /* CS */ | 18 | /* CS */ |
18 | #define JMR3927_ROMCE0 0x1fc00000 /* 4M */ | 19 | #define JMR3927_ROMCE0 0x1fc00000 /* 4M */ |
@@ -115,7 +116,7 @@ | |||
115 | #define JMR3927_NR_IRQ_IRC 16 /* On-Chip IRC */ | 116 | #define JMR3927_NR_IRQ_IRC 16 /* On-Chip IRC */ |
116 | #define JMR3927_NR_IRQ_IOC 8 /* PCI/MODEM/INT[6:7] */ | 117 | #define JMR3927_NR_IRQ_IOC 8 /* PCI/MODEM/INT[6:7] */ |
117 | 118 | ||
118 | #define JMR3927_IRQ_IRC 16 | 119 | #define JMR3927_IRQ_IRC TXX9_IRQ_BASE |
119 | #define JMR3927_IRQ_IOC (JMR3927_IRQ_IRC + JMR3927_NR_IRQ_IRC) | 120 | #define JMR3927_IRQ_IOC (JMR3927_IRQ_IRC + JMR3927_NR_IRQ_IRC) |
120 | #define JMR3927_IRQ_END (JMR3927_IRQ_IOC + JMR3927_NR_IRQ_IOC) | 121 | #define JMR3927_IRQ_END (JMR3927_IRQ_IOC + JMR3927_NR_IRQ_IOC) |
121 | 122 | ||
diff --git a/include/asm-mips/jmr3927/tx3927.h b/include/asm-mips/jmr3927/tx3927.h index 0b9073bfb759..4be2f25f70dd 100644 --- a/include/asm-mips/jmr3927/tx3927.h +++ b/include/asm-mips/jmr3927/tx3927.h | |||
@@ -50,21 +50,6 @@ struct tx3927_dma_reg { | |||
50 | volatile unsigned long unused0; | 50 | volatile unsigned long unused0; |
51 | }; | 51 | }; |
52 | 52 | ||
53 | struct tx3927_irc_reg { | ||
54 | volatile unsigned long cer; | ||
55 | volatile unsigned long cr[2]; | ||
56 | volatile unsigned long unused0; | ||
57 | volatile unsigned long ilr[8]; | ||
58 | volatile unsigned long unused1[4]; | ||
59 | volatile unsigned long imr; | ||
60 | volatile unsigned long unused2[7]; | ||
61 | volatile unsigned long scr; | ||
62 | volatile unsigned long unused3[7]; | ||
63 | volatile unsigned long ssr; | ||
64 | volatile unsigned long unused4[7]; | ||
65 | volatile unsigned long csr; | ||
66 | }; | ||
67 | |||
68 | #include <asm/byteorder.h> | 53 | #include <asm/byteorder.h> |
69 | 54 | ||
70 | #ifdef __BIG_ENDIAN | 55 | #ifdef __BIG_ENDIAN |
@@ -225,26 +210,6 @@ struct tx3927_ccfg_reg { | |||
225 | /* | 210 | /* |
226 | * IRC | 211 | * IRC |
227 | */ | 212 | */ |
228 | #define TX3927_IR_MAX_LEVEL 7 | ||
229 | |||
230 | /* IRCER : Int. Control Enable */ | ||
231 | #define TX3927_IRCER_ICE 0x00000001 | ||
232 | |||
233 | /* IRCR : Int. Control */ | ||
234 | #define TX3927_IRCR_LOW 0x00000000 | ||
235 | #define TX3927_IRCR_HIGH 0x00000001 | ||
236 | #define TX3927_IRCR_DOWN 0x00000002 | ||
237 | #define TX3927_IRCR_UP 0x00000003 | ||
238 | |||
239 | /* IRSCR : Int. Status Control */ | ||
240 | #define TX3927_IRSCR_EIClrE 0x00000100 | ||
241 | #define TX3927_IRSCR_EIClr_MASK 0x0000000f | ||
242 | |||
243 | /* IRCSR : Int. Current Status */ | ||
244 | #define TX3927_IRCSR_IF 0x00010000 | ||
245 | #define TX3927_IRCSR_ILV_MASK 0x00000700 | ||
246 | #define TX3927_IRCSR_IVL_MASK 0x0000001f | ||
247 | |||
248 | #define TX3927_IR_INT0 0 | 213 | #define TX3927_IR_INT0 0 |
249 | #define TX3927_IR_INT1 1 | 214 | #define TX3927_IR_INT1 1 |
250 | #define TX3927_IR_INT2 2 | 215 | #define TX3927_IR_INT2 2 |
@@ -347,7 +312,6 @@ struct tx3927_ccfg_reg { | |||
347 | #define tx3927_sdramcptr ((struct tx3927_sdramc_reg *)TX3927_SDRAMC_REG) | 312 | #define tx3927_sdramcptr ((struct tx3927_sdramc_reg *)TX3927_SDRAMC_REG) |
348 | #define tx3927_romcptr ((struct tx3927_romc_reg *)TX3927_ROMC_REG) | 313 | #define tx3927_romcptr ((struct tx3927_romc_reg *)TX3927_ROMC_REG) |
349 | #define tx3927_dmaptr ((struct tx3927_dma_reg *)TX3927_DMA_REG) | 314 | #define tx3927_dmaptr ((struct tx3927_dma_reg *)TX3927_DMA_REG) |
350 | #define tx3927_ircptr ((struct tx3927_irc_reg *)TX3927_IRC_REG) | ||
351 | #define tx3927_pcicptr ((struct tx3927_pcic_reg *)TX3927_PCIC_REG) | 315 | #define tx3927_pcicptr ((struct tx3927_pcic_reg *)TX3927_PCIC_REG) |
352 | #define tx3927_ccfgptr ((struct tx3927_ccfg_reg *)TX3927_CCFG_REG) | 316 | #define tx3927_ccfgptr ((struct tx3927_ccfg_reg *)TX3927_CCFG_REG) |
353 | #define tx3927_tmrptr(ch) ((struct txx927_tmr_reg *)TX3927_TMR_REG(ch)) | 317 | #define tx3927_tmrptr(ch) ((struct txx927_tmr_reg *)TX3927_TMR_REG(ch)) |
diff --git a/include/asm-mips/mach-generic/ide.h b/include/asm-mips/mach-generic/ide.h index 6eba2e576aaa..2b928577be5d 100644 --- a/include/asm-mips/mach-generic/ide.h +++ b/include/asm-mips/mach-generic/ide.h | |||
@@ -29,68 +29,42 @@ | |||
29 | 29 | ||
30 | #define IDE_ARCH_OBSOLETE_DEFAULTS | 30 | #define IDE_ARCH_OBSOLETE_DEFAULTS |
31 | 31 | ||
32 | static __inline__ int ide_probe_legacy(void) | ||
33 | { | ||
34 | #ifdef CONFIG_PCI | ||
35 | struct pci_dev *dev; | ||
36 | if ((dev = pci_get_class(PCI_CLASS_BRIDGE_EISA << 8, NULL)) != NULL || | ||
37 | (dev = pci_get_class(PCI_CLASS_BRIDGE_ISA << 8, NULL)) != NULL) { | ||
38 | pci_dev_put(dev); | ||
39 | |||
40 | return 1; | ||
41 | } | ||
42 | return 0; | ||
43 | #elif defined(CONFIG_EISA) || defined(CONFIG_ISA) | ||
44 | return 1; | ||
45 | #else | ||
46 | return 0; | ||
47 | #endif | ||
48 | } | ||
49 | |||
50 | static __inline__ int ide_default_irq(unsigned long base) | 32 | static __inline__ int ide_default_irq(unsigned long base) |
51 | { | 33 | { |
52 | if (ide_probe_legacy()) | 34 | switch (base) { |
53 | switch (base) { | 35 | case 0x1f0: return 14; |
54 | case 0x1f0: | 36 | case 0x170: return 15; |
55 | return 14; | 37 | case 0x1e8: return 11; |
56 | case 0x170: | 38 | case 0x168: return 10; |
57 | return 15; | 39 | case 0x1e0: return 8; |
58 | case 0x1e8: | 40 | case 0x160: return 12; |
59 | return 11; | ||
60 | case 0x168: | ||
61 | return 10; | ||
62 | case 0x1e0: | ||
63 | return 8; | ||
64 | case 0x160: | ||
65 | return 12; | ||
66 | default: | 41 | default: |
67 | return 0; | 42 | return 0; |
68 | } | 43 | } |
69 | else | ||
70 | return 0; | ||
71 | } | 44 | } |
72 | 45 | ||
73 | static __inline__ unsigned long ide_default_io_base(int index) | 46 | static __inline__ unsigned long ide_default_io_base(int index) |
74 | { | 47 | { |
75 | if (ide_probe_legacy()) | 48 | /* |
49 | * If PCI is present then it is not safe to poke around | ||
50 | * the other legacy IDE ports. Only 0x1f0 and 0x170 are | ||
51 | * defined compatibility mode ports for PCI. A user can | ||
52 | * override this using ide= but we must default safe. | ||
53 | */ | ||
54 | if (no_pci_devices()) { | ||
76 | switch (index) { | 55 | switch (index) { |
77 | case 0: | 56 | case 2: return 0x1e8; |
78 | return 0x1f0; | 57 | case 3: return 0x168; |
79 | case 1: | 58 | case 4: return 0x1e0; |
80 | return 0x170; | 59 | case 5: return 0x160; |
81 | case 2: | ||
82 | return 0x1e8; | ||
83 | case 3: | ||
84 | return 0x168; | ||
85 | case 4: | ||
86 | return 0x1e0; | ||
87 | case 5: | ||
88 | return 0x160; | ||
89 | default: | ||
90 | return 0; | ||
91 | } | 60 | } |
92 | else | 61 | } |
62 | switch (index) { | ||
63 | case 0: return 0x1f0; | ||
64 | case 1: return 0x170; | ||
65 | default: | ||
93 | return 0; | 66 | return 0; |
67 | } | ||
94 | } | 68 | } |
95 | 69 | ||
96 | #define IDE_ARCH_OBSOLETE_INIT | 70 | #define IDE_ARCH_OBSOLETE_INIT |
diff --git a/include/asm-mips/marvell.h b/include/asm-mips/marvell.h deleted file mode 100644 index b6144bafc565..000000000000 --- a/include/asm-mips/marvell.h +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2004 by Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MIPS_MARVELL_H | ||
9 | #define __ASM_MIPS_MARVELL_H | ||
10 | |||
11 | #include <linux/pci.h> | ||
12 | |||
13 | #include <asm/byteorder.h> | ||
14 | |||
15 | extern unsigned long marvell_base; | ||
16 | |||
17 | /* | ||
18 | * Because of an error/peculiarity in the Galileo chip, we need to swap the | ||
19 | * bytes when running bigendian. | ||
20 | */ | ||
21 | #define __MV_READ(ofs) \ | ||
22 | (*(volatile u32 *)(marvell_base+(ofs))) | ||
23 | #define __MV_WRITE(ofs, data) \ | ||
24 | do { *(volatile u32 *)(marvell_base+(ofs)) = (data); } while (0) | ||
25 | |||
26 | #define MV_READ(ofs) le32_to_cpu(__MV_READ(ofs)) | ||
27 | #define MV_WRITE(ofs, data) __MV_WRITE(ofs, cpu_to_le32(data)) | ||
28 | |||
29 | #define MV_READ_16(ofs) \ | ||
30 | le16_to_cpu(*(volatile u16 *)(marvell_base+(ofs))) | ||
31 | #define MV_WRITE_16(ofs, data) \ | ||
32 | *(volatile u16 *)(marvell_base+(ofs)) = cpu_to_le16(data) | ||
33 | |||
34 | #define MV_READ_8(ofs) \ | ||
35 | *(volatile u8 *)(marvell_base+(ofs)) | ||
36 | #define MV_WRITE_8(ofs, data) \ | ||
37 | *(volatile u8 *)(marvell_base+(ofs)) = data | ||
38 | |||
39 | #define MV_SET_REG_BITS(ofs, bits) \ | ||
40 | (*((volatile u32 *)(marvell_base + (ofs)))) |= ((u32)cpu_to_le32(bits)) | ||
41 | #define MV_RESET_REG_BITS(ofs, bits) \ | ||
42 | (*((volatile u32 *)(marvell_base + (ofs)))) &= ~((u32)cpu_to_le32(bits)) | ||
43 | |||
44 | extern struct pci_ops mv_pci_ops; | ||
45 | |||
46 | struct mv_pci_controller { | ||
47 | struct pci_controller pcic; | ||
48 | |||
49 | /* | ||
50 | * GT-64240/MV-64340 specific, per host bus information | ||
51 | */ | ||
52 | unsigned long config_addr; | ||
53 | unsigned long config_vreg; | ||
54 | }; | ||
55 | |||
56 | extern void ll_mv64340_irq(void); | ||
57 | extern void mv64340_irq_init(unsigned int base); | ||
58 | |||
59 | #endif /* __ASM_MIPS_MARVELL_H */ | ||
diff --git a/include/asm-mips/pgtable-32.h b/include/asm-mips/pgtable-32.h index 2fbd47eba32d..59c865deb0c7 100644 --- a/include/asm-mips/pgtable-32.h +++ b/include/asm-mips/pgtable-32.h | |||
@@ -43,11 +43,7 @@ extern int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1, | |||
43 | */ | 43 | */ |
44 | 44 | ||
45 | /* PGDIR_SHIFT determines what a third-level page table entry can map */ | 45 | /* PGDIR_SHIFT determines what a third-level page table entry can map */ |
46 | #ifdef CONFIG_64BIT_PHYS_ADDR | 46 | #define PGDIR_SHIFT (2 * PAGE_SHIFT + PTE_ORDER - PTE_T_LOG2) |
47 | #define PGDIR_SHIFT 21 | ||
48 | #else | ||
49 | #define PGDIR_SHIFT 22 | ||
50 | #endif | ||
51 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) | 47 | #define PGDIR_SIZE (1UL << PGDIR_SHIFT) |
52 | #define PGDIR_MASK (~(PGDIR_SIZE-1)) | 48 | #define PGDIR_MASK (~(PGDIR_SIZE-1)) |
53 | 49 | ||
@@ -55,17 +51,11 @@ extern int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1, | |||
55 | * Entries per page directory level: we use two-level, so | 51 | * Entries per page directory level: we use two-level, so |
56 | * we don't really have any PUD/PMD directory physically. | 52 | * we don't really have any PUD/PMD directory physically. |
57 | */ | 53 | */ |
58 | #ifdef CONFIG_64BIT_PHYS_ADDR | 54 | #define __PGD_ORDER (32 - 3 * PAGE_SHIFT + PGD_T_LOG2 + PTE_T_LOG2) |
59 | #define PGD_ORDER 1 | 55 | #define PGD_ORDER (__PGD_ORDER >= 0 ? __PGD_ORDER : 0) |
60 | #define PUD_ORDER aieeee_attempt_to_allocate_pud | 56 | #define PUD_ORDER aieeee_attempt_to_allocate_pud |
61 | #define PMD_ORDER 1 | 57 | #define PMD_ORDER 1 |
62 | #define PTE_ORDER 0 | 58 | #define PTE_ORDER 0 |
63 | #else | ||
64 | #define PGD_ORDER 0 | ||
65 | #define PUD_ORDER aieeee_attempt_to_allocate_pud | ||
66 | #define PMD_ORDER 1 | ||
67 | #define PTE_ORDER 0 | ||
68 | #endif | ||
69 | 59 | ||
70 | #define PTRS_PER_PGD ((PAGE_SIZE << PGD_ORDER) / sizeof(pgd_t)) | 60 | #define PTRS_PER_PGD ((PAGE_SIZE << PGD_ORDER) / sizeof(pgd_t)) |
71 | #define PTRS_PER_PTE ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t)) | 61 | #define PTRS_PER_PTE ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t)) |
diff --git a/include/asm-mips/pgtable.h b/include/asm-mips/pgtable.h index 2e2d70d13ff6..d2ee28156743 100644 --- a/include/asm-mips/pgtable.h +++ b/include/asm-mips/pgtable.h | |||
@@ -168,11 +168,15 @@ static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *pt | |||
168 | #define set_pud(pudptr, pudval) do { *(pudptr) = (pudval); } while(0) | 168 | #define set_pud(pudptr, pudval) do { *(pudptr) = (pudval); } while(0) |
169 | #endif | 169 | #endif |
170 | 170 | ||
171 | #define PGD_T_LOG2 ffz(~sizeof(pgd_t)) | 171 | #define PGD_T_LOG2 (__builtin_ffs(sizeof(pgd_t)) - 1) |
172 | #define PMD_T_LOG2 ffz(~sizeof(pmd_t)) | 172 | #define PMD_T_LOG2 (__builtin_ffs(sizeof(pmd_t)) - 1) |
173 | #define PTE_T_LOG2 ffz(~sizeof(pte_t)) | 173 | #define PTE_T_LOG2 (__builtin_ffs(sizeof(pte_t)) - 1) |
174 | 174 | ||
175 | extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; | 175 | /* |
176 | * We used to declare this array with size but gcc 3.3 and older are not able | ||
177 | * to find that this expression is a constant, so the size is dropped. | ||
178 | */ | ||
179 | extern pgd_t swapper_pg_dir[]; | ||
176 | 180 | ||
177 | /* | 181 | /* |
178 | * The following only work if pte_present() is true. | 182 | * The following only work if pte_present() is true. |
diff --git a/include/asm-mips/smtc.h b/include/asm-mips/smtc.h index 44dfa4adecf3..ff3e8936b493 100644 --- a/include/asm-mips/smtc.h +++ b/include/asm-mips/smtc.h | |||
@@ -55,4 +55,14 @@ extern void smtc_boot_secondary(int cpu, struct task_struct *t); | |||
55 | 55 | ||
56 | #define PARKED_INDEX ((unsigned int)0x80000000) | 56 | #define PARKED_INDEX ((unsigned int)0x80000000) |
57 | 57 | ||
58 | /* | ||
59 | * Define low-level interrupt mask for IPIs, if necessary. | ||
60 | * By default, use SW interrupt 1, which requires no external | ||
61 | * hardware support, but which works only for single-core | ||
62 | * MIPS MT systems. | ||
63 | */ | ||
64 | #ifndef MIPS_CPU_IPI_IRQ | ||
65 | #define MIPS_CPU_IPI_IRQ 1 | ||
66 | #endif | ||
67 | |||
58 | #endif /* _ASM_SMTC_MT_H */ | 68 | #endif /* _ASM_SMTC_MT_H */ |
diff --git a/include/asm-mips/stacktrace.h b/include/asm-mips/stacktrace.h index 07f873351a86..0bf82818aa53 100644 --- a/include/asm-mips/stacktrace.h +++ b/include/asm-mips/stacktrace.h | |||
@@ -9,7 +9,11 @@ extern unsigned long unwind_stack(struct task_struct *task, unsigned long *sp, | |||
9 | unsigned long pc, unsigned long *ra); | 9 | unsigned long pc, unsigned long *ra); |
10 | #else | 10 | #else |
11 | #define raw_show_trace 1 | 11 | #define raw_show_trace 1 |
12 | #define unwind_stack(task, sp, pc, ra) 0 | 12 | static inline unsigned long unwind_stack(struct task_struct *task, |
13 | unsigned long *sp, unsigned long pc, unsigned long *ra) | ||
14 | { | ||
15 | return 0; | ||
16 | } | ||
13 | #endif | 17 | #endif |
14 | 18 | ||
15 | static __always_inline void prepare_frametrace(struct pt_regs *regs) | 19 | static __always_inline void prepare_frametrace(struct pt_regs *regs) |
diff --git a/include/asm-mips/tx4927/toshiba_rbtx4927.h b/include/asm-mips/tx4927/toshiba_rbtx4927.h index 5dc40a867774..a60649569c2c 100644 --- a/include/asm-mips/tx4927/toshiba_rbtx4927.h +++ b/include/asm-mips/tx4927/toshiba_rbtx4927.h | |||
@@ -50,7 +50,7 @@ | |||
50 | 50 | ||
51 | 51 | ||
52 | #define RBTX4927_RTL_8019_BASE (0x1c020280-TBTX4927_ISA_IO_OFFSET) | 52 | #define RBTX4927_RTL_8019_BASE (0x1c020280-TBTX4927_ISA_IO_OFFSET) |
53 | #define RBTX4927_RTL_8019_IRQ (29) | 53 | #define RBTX4927_RTL_8019_IRQ (TX4927_IRQ_PIC_BEG + 5) |
54 | 54 | ||
55 | int toshiba_rbtx4927_irq_nested(int sw_irq); | 55 | int toshiba_rbtx4927_irq_nested(int sw_irq); |
56 | 56 | ||
diff --git a/include/asm-mips/tx4927/tx4927.h b/include/asm-mips/tx4927/tx4927.h index de85bd2245f7..4bd4368e188c 100644 --- a/include/asm-mips/tx4927/tx4927.h +++ b/include/asm-mips/tx4927/tx4927.h | |||
@@ -28,6 +28,7 @@ | |||
28 | #define __ASM_TX4927_TX4927_H | 28 | #define __ASM_TX4927_TX4927_H |
29 | 29 | ||
30 | #include <asm/tx4927/tx4927_mips.h> | 30 | #include <asm/tx4927/tx4927_mips.h> |
31 | #include <asm/txx9irq.h> | ||
31 | 32 | ||
32 | /* | 33 | /* |
33 | This register naming came from the integrated CPU/controller name TX4927 | 34 | This register naming came from the integrated CPU/controller name TX4927 |
@@ -421,32 +422,6 @@ | |||
421 | #define TX4927_PIO_LIMIT 0xf50f | 422 | #define TX4927_PIO_LIMIT 0xf50f |
422 | 423 | ||
423 | 424 | ||
424 | /* TX4927 Interrupt Controller (32-bit registers) */ | ||
425 | #define TX4927_IRC_BASE 0xf510 | ||
426 | #define TX4927_IRC_IRFLAG0 0xf510 | ||
427 | #define TX4927_IRC_IRFLAG1 0xf514 | ||
428 | #define TX4927_IRC_IRPOL 0xf518 | ||
429 | #define TX4927_IRC_IRRCNT 0xf51c | ||
430 | #define TX4927_IRC_IRMASKINT 0xf520 | ||
431 | #define TX4927_IRC_IRMASKEXT 0xf524 | ||
432 | #define TX4927_IRC_IRDEN 0xf600 | ||
433 | #define TX4927_IRC_IRDM0 0xf604 | ||
434 | #define TX4927_IRC_IRDM1 0xf608 | ||
435 | #define TX4927_IRC_IRLVL0 0xf610 | ||
436 | #define TX4927_IRC_IRLVL1 0xf614 | ||
437 | #define TX4927_IRC_IRLVL2 0xf618 | ||
438 | #define TX4927_IRC_IRLVL3 0xf61c | ||
439 | #define TX4927_IRC_IRLVL4 0xf620 | ||
440 | #define TX4927_IRC_IRLVL5 0xf624 | ||
441 | #define TX4927_IRC_IRLVL6 0xf628 | ||
442 | #define TX4927_IRC_IRLVL7 0xf62c | ||
443 | #define TX4927_IRC_IRMSK 0xf640 | ||
444 | #define TX4927_IRC_IREDC 0xf660 | ||
445 | #define TX4927_IRC_IRPND 0xf680 | ||
446 | #define TX4927_IRC_IRCS 0xf6a0 | ||
447 | #define TX4927_IRC_LIMIT 0xf6ff | ||
448 | |||
449 | |||
450 | /* TX4927 AC-link controller (32-bit registers) */ | 425 | /* TX4927 AC-link controller (32-bit registers) */ |
451 | #define TX4927_ACLC_BASE 0xf700 | 426 | #define TX4927_ACLC_BASE 0xf700 |
452 | #define TX4927_ACLC_ACCTLEN 0xf700 | 427 | #define TX4927_ACLC_ACCTLEN 0xf700 |
@@ -493,25 +468,11 @@ | |||
493 | #define TX4927_WR( reg, val ) TX4927_WR32( reg, val ) | 468 | #define TX4927_WR( reg, val ) TX4927_WR32( reg, val ) |
494 | 469 | ||
495 | 470 | ||
471 | #define TX4927_IRQ_CP0_BEG MIPS_CPU_IRQ_BASE | ||
472 | #define TX4927_IRQ_CP0_END (MIPS_CPU_IRQ_BASE + 8 - 1) | ||
496 | 473 | ||
497 | 474 | #define TX4927_IRQ_PIC_BEG TXX9_IRQ_BASE | |
498 | 475 | #define TX4927_IRQ_PIC_END (TXX9_IRQ_BASE + TXx9_MAX_IR - 1) | |
499 | #define MI8259_IRQ_ISA_RAW_BEG 0 /* optional backplane i8259 */ | ||
500 | #define MI8259_IRQ_ISA_RAW_END 15 | ||
501 | #define TX4927_IRQ_CP0_RAW_BEG 0 /* tx4927 cpu built-in cp0 */ | ||
502 | #define TX4927_IRQ_CP0_RAW_END 7 | ||
503 | #define TX4927_IRQ_PIC_RAW_BEG 0 /* tx4927 cpu build-in pic */ | ||
504 | #define TX4927_IRQ_PIC_RAW_END 31 | ||
505 | |||
506 | |||
507 | #define MI8259_IRQ_ISA_BEG MI8259_IRQ_ISA_RAW_BEG /* 0 */ | ||
508 | #define MI8259_IRQ_ISA_END MI8259_IRQ_ISA_RAW_END /* 15 */ | ||
509 | |||
510 | #define TX4927_IRQ_CP0_BEG ((MI8259_IRQ_ISA_END+1)+TX4927_IRQ_CP0_RAW_BEG) /* 16 */ | ||
511 | #define TX4927_IRQ_CP0_END ((MI8259_IRQ_ISA_END+1)+TX4927_IRQ_CP0_RAW_END) /* 23 */ | ||
512 | |||
513 | #define TX4927_IRQ_PIC_BEG ((TX4927_IRQ_CP0_END+1)+TX4927_IRQ_PIC_RAW_BEG) /* 24 */ | ||
514 | #define TX4927_IRQ_PIC_END ((TX4927_IRQ_CP0_END+1)+TX4927_IRQ_PIC_RAW_END) /* 55 */ | ||
515 | 476 | ||
516 | 477 | ||
517 | #define TX4927_IRQ_USER0 (TX4927_IRQ_CP0_BEG+0) | 478 | #define TX4927_IRQ_USER0 (TX4927_IRQ_CP0_BEG+0) |
diff --git a/include/asm-mips/tx4927/tx4927_pci.h b/include/asm-mips/tx4927/tx4927_pci.h index 66c064690f41..f98b2bb719d5 100644 --- a/include/asm-mips/tx4927/tx4927_pci.h +++ b/include/asm-mips/tx4927/tx4927_pci.h | |||
@@ -48,7 +48,7 @@ | |||
48 | #define TX4927_PCI_CLK_ACK 0x04 | 48 | #define TX4927_PCI_CLK_ACK 0x04 |
49 | #define TX4927_PCI_CLK_ACE 0x02 | 49 | #define TX4927_PCI_CLK_ACE 0x02 |
50 | #define TX4927_PCI_CLK_ENDIAN 0x01 | 50 | #define TX4927_PCI_CLK_ENDIAN 0x01 |
51 | #define TX4927_NR_IRQ_LOCAL (8+16) | 51 | #define TX4927_NR_IRQ_LOCAL TX4927_IRQ_PIC_BEG |
52 | #define TX4927_NR_IRQ_IRC 32 /* On-Chip IRC */ | 52 | #define TX4927_NR_IRQ_IRC 32 /* On-Chip IRC */ |
53 | 53 | ||
54 | #define TX4927_IR_PCIC 16 | 54 | #define TX4927_IR_PCIC 16 |
@@ -99,21 +99,6 @@ struct tx4927_ccfg_reg { | |||
99 | volatile unsigned long long ramp; | 99 | volatile unsigned long long ramp; |
100 | }; | 100 | }; |
101 | 101 | ||
102 | struct tx4927_irc_reg { | ||
103 | volatile unsigned long cer; | ||
104 | volatile unsigned long cr[2]; | ||
105 | volatile unsigned long unused0; | ||
106 | volatile unsigned long ilr[8]; | ||
107 | volatile unsigned long unused1[4]; | ||
108 | volatile unsigned long imr; | ||
109 | volatile unsigned long unused2[7]; | ||
110 | volatile unsigned long scr; | ||
111 | volatile unsigned long unused3[7]; | ||
112 | volatile unsigned long ssr; | ||
113 | volatile unsigned long unused4[7]; | ||
114 | volatile unsigned long csr; | ||
115 | }; | ||
116 | |||
117 | struct tx4927_pcic_reg { | 102 | struct tx4927_pcic_reg { |
118 | volatile unsigned long pciid; | 103 | volatile unsigned long pciid; |
119 | volatile unsigned long pcistatus; | 104 | volatile unsigned long pcistatus; |
@@ -182,11 +167,6 @@ struct tx4927_pcic_reg { | |||
182 | 167 | ||
183 | #endif /* _LANGUAGE_ASSEMBLY */ | 168 | #endif /* _LANGUAGE_ASSEMBLY */ |
184 | 169 | ||
185 | /* IRCSR : Int. Current Status */ | ||
186 | #define TX4927_IRCSR_IF 0x00010000 | ||
187 | #define TX4927_IRCSR_ILV_MASK 0x00000700 | ||
188 | #define TX4927_IRCSR_IVL_MASK 0x0000001f | ||
189 | |||
190 | /* | 170 | /* |
191 | * PCIC | 171 | * PCIC |
192 | */ | 172 | */ |
@@ -278,7 +258,6 @@ struct tx4927_pcic_reg { | |||
278 | #define tx4927_pcicptr ((struct tx4927_pcic_reg *)TX4927_PCIC_REG) | 258 | #define tx4927_pcicptr ((struct tx4927_pcic_reg *)TX4927_PCIC_REG) |
279 | #define tx4927_ccfgptr ((struct tx4927_ccfg_reg *)TX4927_CCFG_REG) | 259 | #define tx4927_ccfgptr ((struct tx4927_ccfg_reg *)TX4927_CCFG_REG) |
280 | #define tx4927_ebuscptr ((struct tx4927_ebusc_reg *)TX4927_EBUSC_REG) | 260 | #define tx4927_ebuscptr ((struct tx4927_ebusc_reg *)TX4927_EBUSC_REG) |
281 | #define tx4927_ircptr ((struct tx4927_irc_reg *)TX4927_IRC_REG) | ||
282 | 261 | ||
283 | #endif /* _LANGUAGE_ASSEMBLY */ | 262 | #endif /* _LANGUAGE_ASSEMBLY */ |
284 | 263 | ||
diff --git a/include/asm-mips/tx4938/rbtx4938.h b/include/asm-mips/tx4938/rbtx4938.h index 74e7d8061e58..b14acb575be2 100644 --- a/include/asm-mips/tx4938/rbtx4938.h +++ b/include/asm-mips/tx4938/rbtx4938.h | |||
@@ -14,6 +14,7 @@ | |||
14 | 14 | ||
15 | #include <asm/addrspace.h> | 15 | #include <asm/addrspace.h> |
16 | #include <asm/tx4938/tx4938.h> | 16 | #include <asm/tx4938/tx4938.h> |
17 | #include <asm/txx9irq.h> | ||
17 | 18 | ||
18 | /* CS */ | 19 | /* CS */ |
19 | #define RBTX4938_CE0 0x1c000000 /* 64M */ | 20 | #define RBTX4938_CE0 0x1c000000 /* 64M */ |
@@ -123,21 +124,11 @@ | |||
123 | #define RBTX4938_NR_IRQ_IRC 32 /* On-Chip IRC */ | 124 | #define RBTX4938_NR_IRQ_IRC 32 /* On-Chip IRC */ |
124 | #define RBTX4938_NR_IRQ_IOC 8 | 125 | #define RBTX4938_NR_IRQ_IOC 8 |
125 | 126 | ||
126 | #define MI8259_IRQ_ISA_RAW_BEG 0 /* optional backplane i8259 */ | 127 | #define TX4938_IRQ_CP0_BEG MIPS_CPU_IRQ_BASE |
127 | #define MI8259_IRQ_ISA_RAW_END 15 | 128 | #define TX4938_IRQ_CP0_END (MIPS_CPU_IRQ_BASE + 8 - 1) |
128 | #define TX4938_IRQ_CP0_RAW_BEG 0 /* tx4938 cpu built-in cp0 */ | ||
129 | #define TX4938_IRQ_CP0_RAW_END 7 | ||
130 | #define TX4938_IRQ_PIC_RAW_BEG 0 /* tx4938 cpu build-in pic */ | ||
131 | #define TX4938_IRQ_PIC_RAW_END 31 | ||
132 | 129 | ||
133 | #define MI8259_IRQ_ISA_BEG MI8259_IRQ_ISA_RAW_BEG /* 0 */ | 130 | #define TX4938_IRQ_PIC_BEG TXX9_IRQ_BASE |
134 | #define MI8259_IRQ_ISA_END MI8259_IRQ_ISA_RAW_END /* 15 */ | 131 | #define TX4938_IRQ_PIC_END (TXX9_IRQ_BASE + TXx9_MAX_IR - 1) |
135 | |||
136 | #define TX4938_IRQ_CP0_BEG ((MI8259_IRQ_ISA_END+1)+TX4938_IRQ_CP0_RAW_BEG) /* 16 */ | ||
137 | #define TX4938_IRQ_CP0_END ((MI8259_IRQ_ISA_END+1)+TX4938_IRQ_CP0_RAW_END) /* 23 */ | ||
138 | |||
139 | #define TX4938_IRQ_PIC_BEG ((TX4938_IRQ_CP0_END+1)+TX4938_IRQ_PIC_RAW_BEG) /* 24 */ | ||
140 | #define TX4938_IRQ_PIC_END ((TX4938_IRQ_CP0_END+1)+TX4938_IRQ_PIC_RAW_END) /* 55 */ | ||
141 | #define TX4938_IRQ_NEST_EXT_ON_PIC (TX4938_IRQ_PIC_BEG+2) | 132 | #define TX4938_IRQ_NEST_EXT_ON_PIC (TX4938_IRQ_PIC_BEG+2) |
142 | #define TX4938_IRQ_NEST_PIC_ON_CP0 (TX4938_IRQ_CP0_BEG+2) | 133 | #define TX4938_IRQ_NEST_PIC_ON_CP0 (TX4938_IRQ_CP0_BEG+2) |
143 | #define TX4938_IRQ_USER0 (TX4938_IRQ_CP0_BEG+0) | 134 | #define TX4938_IRQ_USER0 (TX4938_IRQ_CP0_BEG+0) |
@@ -192,10 +183,4 @@ | |||
192 | #define RBTX4938_RTL_8019_BASE (RBTX4938_ETHER_ADDR - mips_io_port_base) | 183 | #define RBTX4938_RTL_8019_BASE (RBTX4938_ETHER_ADDR - mips_io_port_base) |
193 | #define RBTX4938_RTL_8019_IRQ (RBTX4938_IRQ_ETHER) | 184 | #define RBTX4938_RTL_8019_IRQ (RBTX4938_IRQ_ETHER) |
194 | 185 | ||
195 | /* IRCR : Int. Control */ | ||
196 | #define TX4938_IRCR_LOW 0x00000000 | ||
197 | #define TX4938_IRCR_HIGH 0x00000001 | ||
198 | #define TX4938_IRCR_DOWN 0x00000002 | ||
199 | #define TX4938_IRCR_UP 0x00000003 | ||
200 | |||
201 | #endif /* __ASM_TX_BOARDS_RBTX4938_H */ | 186 | #endif /* __ASM_TX_BOARDS_RBTX4938_H */ |
diff --git a/include/asm-mips/tx4938/tx4938.h b/include/asm-mips/tx4938/tx4938.h index e25b1a0975cb..afdb19813ca1 100644 --- a/include/asm-mips/tx4938/tx4938.h +++ b/include/asm-mips/tx4938/tx4938.h | |||
@@ -272,20 +272,6 @@ struct tx4938_pio_reg { | |||
272 | volatile unsigned long maskcpu; | 272 | volatile unsigned long maskcpu; |
273 | volatile unsigned long maskext; | 273 | volatile unsigned long maskext; |
274 | }; | 274 | }; |
275 | struct tx4938_irc_reg { | ||
276 | volatile unsigned long cer; | ||
277 | volatile unsigned long cr[2]; | ||
278 | volatile unsigned long unused0; | ||
279 | volatile unsigned long ilr[8]; | ||
280 | volatile unsigned long unused1[4]; | ||
281 | volatile unsigned long imr; | ||
282 | volatile unsigned long unused2[7]; | ||
283 | volatile unsigned long scr; | ||
284 | volatile unsigned long unused3[7]; | ||
285 | volatile unsigned long ssr; | ||
286 | volatile unsigned long unused4[7]; | ||
287 | volatile unsigned long csr; | ||
288 | }; | ||
289 | 275 | ||
290 | struct tx4938_ndfmc_reg { | 276 | struct tx4938_ndfmc_reg { |
291 | endian_def_l2(unused0, dtr); | 277 | endian_def_l2(unused0, dtr); |
@@ -646,39 +632,12 @@ struct tx4938_ccfg_reg { | |||
646 | #define TX4938_DMA_CSR_DESERR 0x00000002 | 632 | #define TX4938_DMA_CSR_DESERR 0x00000002 |
647 | #define TX4938_DMA_CSR_SORERR 0x00000001 | 633 | #define TX4938_DMA_CSR_SORERR 0x00000001 |
648 | 634 | ||
649 | /* TX4938 Interrupt Controller (32-bit registers) */ | ||
650 | #define TX4938_IRC_BASE 0xf510 | ||
651 | #define TX4938_IRC_IRFLAG0 0xf510 | ||
652 | #define TX4938_IRC_IRFLAG1 0xf514 | ||
653 | #define TX4938_IRC_IRPOL 0xf518 | ||
654 | #define TX4938_IRC_IRRCNT 0xf51c | ||
655 | #define TX4938_IRC_IRMASKINT 0xf520 | ||
656 | #define TX4938_IRC_IRMASKEXT 0xf524 | ||
657 | #define TX4938_IRC_IRDEN 0xf600 | ||
658 | #define TX4938_IRC_IRDM0 0xf604 | ||
659 | #define TX4938_IRC_IRDM1 0xf608 | ||
660 | #define TX4938_IRC_IRLVL0 0xf610 | ||
661 | #define TX4938_IRC_IRLVL1 0xf614 | ||
662 | #define TX4938_IRC_IRLVL2 0xf618 | ||
663 | #define TX4938_IRC_IRLVL3 0xf61c | ||
664 | #define TX4938_IRC_IRLVL4 0xf620 | ||
665 | #define TX4938_IRC_IRLVL5 0xf624 | ||
666 | #define TX4938_IRC_IRLVL6 0xf628 | ||
667 | #define TX4938_IRC_IRLVL7 0xf62c | ||
668 | #define TX4938_IRC_IRMSK 0xf640 | ||
669 | #define TX4938_IRC_IREDC 0xf660 | ||
670 | #define TX4938_IRC_IRPND 0xf680 | ||
671 | #define TX4938_IRC_IRCS 0xf6a0 | ||
672 | #define TX4938_IRC_LIMIT 0xf6ff | ||
673 | |||
674 | |||
675 | #ifndef __ASSEMBLY__ | 635 | #ifndef __ASSEMBLY__ |
676 | 636 | ||
677 | #define tx4938_sdramcptr ((struct tx4938_sdramc_reg *)TX4938_SDRAMC_REG) | 637 | #define tx4938_sdramcptr ((struct tx4938_sdramc_reg *)TX4938_SDRAMC_REG) |
678 | #define tx4938_ebuscptr ((struct tx4938_ebusc_reg *)TX4938_EBUSC_REG) | 638 | #define tx4938_ebuscptr ((struct tx4938_ebusc_reg *)TX4938_EBUSC_REG) |
679 | #define tx4938_dmaptr(ch) ((struct tx4938_dma_reg *)TX4938_DMA_REG(ch)) | 639 | #define tx4938_dmaptr(ch) ((struct tx4938_dma_reg *)TX4938_DMA_REG(ch)) |
680 | #define tx4938_ndfmcptr ((struct tx4938_ndfmc_reg *)TX4938_NDFMC_REG) | 640 | #define tx4938_ndfmcptr ((struct tx4938_ndfmc_reg *)TX4938_NDFMC_REG) |
681 | #define tx4938_ircptr ((struct tx4938_irc_reg *)TX4938_IRC_REG) | ||
682 | #define tx4938_pcicptr ((struct tx4938_pcic_reg *)TX4938_PCIC_REG) | 641 | #define tx4938_pcicptr ((struct tx4938_pcic_reg *)TX4938_PCIC_REG) |
683 | #define tx4938_pcic1ptr ((struct tx4938_pcic_reg *)TX4938_PCIC1_REG) | 642 | #define tx4938_pcic1ptr ((struct tx4938_pcic_reg *)TX4938_PCIC1_REG) |
684 | #define tx4938_ccfgptr ((struct tx4938_ccfg_reg *)TX4938_CCFG_REG) | 643 | #define tx4938_ccfgptr ((struct tx4938_ccfg_reg *)TX4938_CCFG_REG) |
diff --git a/include/asm-mips/txx9irq.h b/include/asm-mips/txx9irq.h new file mode 100644 index 000000000000..1c439e51b875 --- /dev/null +++ b/include/asm-mips/txx9irq.h | |||
@@ -0,0 +1,30 @@ | |||
1 | /* | ||
2 | * include/asm-mips/txx9irq.h | ||
3 | * TX39/TX49 interrupt controller definitions. | ||
4 | * | ||
5 | * This file is subject to the terms and conditions of the GNU General Public | ||
6 | * License. See the file "COPYING" in the main directory of this archive | ||
7 | * for more details. | ||
8 | */ | ||
9 | #ifndef __ASM_TXX9IRQ_H | ||
10 | #define __ASM_TXX9IRQ_H | ||
11 | |||
12 | #include <irq.h> | ||
13 | |||
14 | #ifdef CONFIG_IRQ_CPU | ||
15 | #define TXX9_IRQ_BASE (MIPS_CPU_IRQ_BASE + 8) | ||
16 | #else | ||
17 | #define TXX9_IRQ_BASE 0 | ||
18 | #endif | ||
19 | |||
20 | #ifdef CONFIG_CPU_TX39XX | ||
21 | #define TXx9_MAX_IR 16 | ||
22 | #else | ||
23 | #define TXx9_MAX_IR 32 | ||
24 | #endif | ||
25 | |||
26 | void txx9_irq_init(unsigned long baseaddr); | ||
27 | int txx9_irq(void); | ||
28 | int txx9_irq_set_pri(int irc_irq, int new_pri); | ||
29 | |||
30 | #endif /* __ASM_TXX9IRQ_H */ | ||
diff --git a/include/asm-parisc/io.h b/include/asm-parisc/io.h index c0fed91da3a2..4cc9bcec0564 100644 --- a/include/asm-parisc/io.h +++ b/include/asm-parisc/io.h | |||
@@ -15,6 +15,16 @@ extern unsigned long parisc_vmerge_max_size; | |||
15 | #define virt_to_bus virt_to_phys | 15 | #define virt_to_bus virt_to_phys |
16 | #define bus_to_virt phys_to_virt | 16 | #define bus_to_virt phys_to_virt |
17 | 17 | ||
18 | static inline unsigned long isa_bus_to_virt(unsigned long addr) { | ||
19 | BUG(); | ||
20 | return 0; | ||
21 | } | ||
22 | |||
23 | static inline unsigned long isa_virt_to_bus(void *addr) { | ||
24 | BUG(); | ||
25 | return 0; | ||
26 | } | ||
27 | |||
18 | /* | 28 | /* |
19 | * Memory mapped I/O | 29 | * Memory mapped I/O |
20 | * | 30 | * |
diff --git a/include/asm-parisc/vga.h b/include/asm-parisc/vga.h new file mode 100644 index 000000000000..154a84c843a7 --- /dev/null +++ b/include/asm-parisc/vga.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __ASM_PARISC_VGA_H__ | ||
2 | #define __ASM_PARISC_VGA_H__ | ||
3 | |||
4 | /* nothing */ | ||
5 | |||
6 | #endif __ASM_PARISC_VGA_H__ | ||
diff --git a/include/asm-powerpc/reg_booke.h b/include/asm-powerpc/reg_booke.h index 064405c207bf..8fdc2b47afb9 100644 --- a/include/asm-powerpc/reg_booke.h +++ b/include/asm-powerpc/reg_booke.h | |||
@@ -223,7 +223,6 @@ | |||
223 | #define MCSR_ICPERR 0x40000000UL /* I-Cache Parity Error */ | 223 | #define MCSR_ICPERR 0x40000000UL /* I-Cache Parity Error */ |
224 | #define MCSR_DCP_PERR 0x20000000UL /* D-Cache Push Parity Error */ | 224 | #define MCSR_DCP_PERR 0x20000000UL /* D-Cache Push Parity Error */ |
225 | #define MCSR_DCPERR 0x10000000UL /* D-Cache Parity Error */ | 225 | #define MCSR_DCPERR 0x10000000UL /* D-Cache Parity Error */ |
226 | #define MCSR_GL_CI 0x00010000UL /* Guarded Load or Cache-Inhibited stwcx. */ | ||
227 | #define MCSR_BUS_IAERR 0x00000080UL /* Instruction Address Error */ | 226 | #define MCSR_BUS_IAERR 0x00000080UL /* Instruction Address Error */ |
228 | #define MCSR_BUS_RAERR 0x00000040UL /* Read Address Error */ | 227 | #define MCSR_BUS_RAERR 0x00000040UL /* Read Address Error */ |
229 | #define MCSR_BUS_WAERR 0x00000020UL /* Write Address Error */ | 228 | #define MCSR_BUS_WAERR 0x00000020UL /* Write Address Error */ |
@@ -232,6 +231,12 @@ | |||
232 | #define MCSR_BUS_WBERR 0x00000004UL /* Write Data Bus Error */ | 231 | #define MCSR_BUS_WBERR 0x00000004UL /* Write Data Bus Error */ |
233 | #define MCSR_BUS_IPERR 0x00000002UL /* Instruction parity Error */ | 232 | #define MCSR_BUS_IPERR 0x00000002UL /* Instruction parity Error */ |
234 | #define MCSR_BUS_RPERR 0x00000001UL /* Read parity Error */ | 233 | #define MCSR_BUS_RPERR 0x00000001UL /* Read parity Error */ |
234 | |||
235 | /* e500 parts may set unused bits in MCSR; mask these off */ | ||
236 | #define MCSR_MASK (MCSR_MCP | MCSR_ICPERR | MCSR_DCP_PERR | \ | ||
237 | MCSR_DCPERR | MCSR_BUS_IAERR | MCSR_BUS_RAERR | \ | ||
238 | MCSR_BUS_WAERR | MCSR_BUS_IBERR | MCSR_BUS_RBERR | \ | ||
239 | MCSR_BUS_WBERR | MCSR_BUS_IPERR | MCSR_BUS_RPERR) | ||
235 | #endif | 240 | #endif |
236 | #ifdef CONFIG_E200 | 241 | #ifdef CONFIG_E200 |
237 | #define MCSR_MCP 0x80000000UL /* Machine Check Input Pin */ | 242 | #define MCSR_MCP 0x80000000UL /* Machine Check Input Pin */ |
@@ -243,6 +248,11 @@ | |||
243 | #define MCSR_BUS_DRERR 0x00000008UL /* Read Bus Error on data load */ | 248 | #define MCSR_BUS_DRERR 0x00000008UL /* Read Bus Error on data load */ |
244 | #define MCSR_BUS_WRERR 0x00000004UL /* Write Bus Error on buffered | 249 | #define MCSR_BUS_WRERR 0x00000004UL /* Write Bus Error on buffered |
245 | store or cache line push */ | 250 | store or cache line push */ |
251 | |||
252 | /* e200 parts may set unused bits in MCSR; mask these off */ | ||
253 | #define MCSR_MASK (MCSR_MCP | MCSR_CP_PERR | MCSR_CPERR | \ | ||
254 | MCSR_EXCP_ERR | MCSR_BUS_IRERR | MCSR_BUS_DRERR | \ | ||
255 | MCSR_BUS_WRERR) | ||
246 | #endif | 256 | #endif |
247 | 257 | ||
248 | /* Bit definitions for the DBSR. */ | 258 | /* Bit definitions for the DBSR. */ |
diff --git a/include/asm-s390/atomic.h b/include/asm-s390/atomic.h index ea486952f778..2d184655bc5d 100644 --- a/include/asm-s390/atomic.h +++ b/include/asm-s390/atomic.h | |||
@@ -67,8 +67,17 @@ typedef struct { | |||
67 | 67 | ||
68 | #endif /* __GNUC__ */ | 68 | #endif /* __GNUC__ */ |
69 | 69 | ||
70 | #define atomic_read(v) ((v)->counter) | 70 | static inline int atomic_read(const atomic_t *v) |
71 | #define atomic_set(v,i) (((v)->counter) = (i)) | 71 | { |
72 | barrier(); | ||
73 | return v->counter; | ||
74 | } | ||
75 | |||
76 | static inline void atomic_set(atomic_t *v, int i) | ||
77 | { | ||
78 | v->counter = i; | ||
79 | barrier(); | ||
80 | } | ||
72 | 81 | ||
73 | static __inline__ int atomic_add_return(int i, atomic_t * v) | 82 | static __inline__ int atomic_add_return(int i, atomic_t * v) |
74 | { | 83 | { |
@@ -182,8 +191,17 @@ typedef struct { | |||
182 | 191 | ||
183 | #endif /* __GNUC__ */ | 192 | #endif /* __GNUC__ */ |
184 | 193 | ||
185 | #define atomic64_read(v) ((v)->counter) | 194 | static inline long long atomic64_read(const atomic64_t *v) |
186 | #define atomic64_set(v,i) (((v)->counter) = (i)) | 195 | { |
196 | barrier(); | ||
197 | return v->counter; | ||
198 | } | ||
199 | |||
200 | static inline void atomic64_set(atomic64_t *v, long long i) | ||
201 | { | ||
202 | v->counter = i; | ||
203 | barrier(); | ||
204 | } | ||
187 | 205 | ||
188 | static __inline__ long long atomic64_add_return(long long i, atomic64_t * v) | 206 | static __inline__ long long atomic64_add_return(long long i, atomic64_t * v) |
189 | { | 207 | { |
diff --git a/include/asm-s390/cio.h b/include/asm-s390/cio.h index f738d2827582..1982fb344164 100644 --- a/include/asm-s390/cio.h +++ b/include/asm-s390/cio.h | |||
@@ -258,19 +258,6 @@ struct ciw { | |||
258 | /* Sick revalidation of device. */ | 258 | /* Sick revalidation of device. */ |
259 | #define CIO_REVALIDATE 0x0008 | 259 | #define CIO_REVALIDATE 0x0008 |
260 | 260 | ||
261 | struct diag210 { | ||
262 | __u16 vrdcdvno : 16; /* device number (input) */ | ||
263 | __u16 vrdclen : 16; /* data block length (input) */ | ||
264 | __u32 vrdcvcla : 8; /* virtual device class (output) */ | ||
265 | __u32 vrdcvtyp : 8; /* virtual device type (output) */ | ||
266 | __u32 vrdcvsta : 8; /* virtual device status (output) */ | ||
267 | __u32 vrdcvfla : 8; /* virtual device flags (output) */ | ||
268 | __u32 vrdcrccl : 8; /* real device class (output) */ | ||
269 | __u32 vrdccrty : 8; /* real device type (output) */ | ||
270 | __u32 vrdccrmd : 8; /* real device model (output) */ | ||
271 | __u32 vrdccrft : 8; /* real device feature (output) */ | ||
272 | } __attribute__ ((packed,aligned(4))); | ||
273 | |||
274 | struct ccw_dev_id { | 261 | struct ccw_dev_id { |
275 | u8 ssid; | 262 | u8 ssid; |
276 | u16 devno; | 263 | u16 devno; |
@@ -285,8 +272,6 @@ static inline int ccw_dev_id_is_equal(struct ccw_dev_id *dev_id1, | |||
285 | return 0; | 272 | return 0; |
286 | } | 273 | } |
287 | 274 | ||
288 | extern int diag210(struct diag210 *addr); | ||
289 | |||
290 | extern void wait_cons_dev(void); | 275 | extern void wait_cons_dev(void); |
291 | 276 | ||
292 | extern void css_schedule_reprobe(void); | 277 | extern void css_schedule_reprobe(void); |
diff --git a/include/asm-s390/diag.h b/include/asm-s390/diag.h new file mode 100644 index 000000000000..72b2e2f2d32d --- /dev/null +++ b/include/asm-s390/diag.h | |||
@@ -0,0 +1,39 @@ | |||
1 | /* | ||
2 | * s390 diagnose functions | ||
3 | * | ||
4 | * Copyright IBM Corp. 2007 | ||
5 | * Author(s): Michael Holzheu <holzheu@de.ibm.com> | ||
6 | */ | ||
7 | |||
8 | #ifndef _ASM_S390_DIAG_H | ||
9 | #define _ASM_S390_DIAG_H | ||
10 | |||
11 | /* | ||
12 | * Diagnose 10: Release pages | ||
13 | */ | ||
14 | extern void diag10(unsigned long addr); | ||
15 | |||
16 | /* | ||
17 | * Diagnose 14: Input spool file manipulation | ||
18 | */ | ||
19 | extern int diag14(unsigned long rx, unsigned long ry1, unsigned long subcode); | ||
20 | |||
21 | /* | ||
22 | * Diagnose 210: Get information about a virtual device | ||
23 | */ | ||
24 | struct diag210 { | ||
25 | u16 vrdcdvno; /* device number (input) */ | ||
26 | u16 vrdclen; /* data block length (input) */ | ||
27 | u8 vrdcvcla; /* virtual device class (output) */ | ||
28 | u8 vrdcvtyp; /* virtual device type (output) */ | ||
29 | u8 vrdcvsta; /* virtual device status (output) */ | ||
30 | u8 vrdcvfla; /* virtual device flags (output) */ | ||
31 | u8 vrdcrccl; /* real device class (output) */ | ||
32 | u8 vrdccrty; /* real device type (output) */ | ||
33 | u8 vrdccrmd; /* real device model (output) */ | ||
34 | u8 vrdccrft; /* real device feature (output) */ | ||
35 | } __attribute__((packed, aligned(4))); | ||
36 | |||
37 | extern int diag210(struct diag210 *addr); | ||
38 | |||
39 | #endif /* _ASM_S390_DIAG_H */ | ||
diff --git a/include/asm-s390/pgalloc.h b/include/asm-s390/pgalloc.h index 56c8a6c80e2e..e45d3c9a4b7e 100644 --- a/include/asm-s390/pgalloc.h +++ b/include/asm-s390/pgalloc.h | |||
@@ -19,8 +19,6 @@ | |||
19 | 19 | ||
20 | #define check_pgt_cache() do {} while (0) | 20 | #define check_pgt_cache() do {} while (0) |
21 | 21 | ||
22 | extern void diag10(unsigned long addr); | ||
23 | |||
24 | /* | 22 | /* |
25 | * Page allocation orders. | 23 | * Page allocation orders. |
26 | */ | 24 | */ |
diff --git a/include/asm-sh/dma-mapping.h b/include/asm-sh/dma-mapping.h index 6f492ac3fa13..84fefdaa01a5 100644 --- a/include/asm-sh/dma-mapping.h +++ b/include/asm-sh/dma-mapping.h | |||
@@ -160,6 +160,25 @@ static inline void dma_sync_single_for_device(struct device *dev, | |||
160 | dma_sync_single(dev, dma_handle, size, dir); | 160 | dma_sync_single(dev, dma_handle, size, dir); |
161 | } | 161 | } |
162 | 162 | ||
163 | static inline void dma_sync_single_range_for_cpu(struct device *dev, | ||
164 | dma_addr_t dma_handle, | ||
165 | unsigned long offset, | ||
166 | size_t size, | ||
167 | enum dma_data_direction direction) | ||
168 | { | ||
169 | dma_sync_single_for_cpu(dev, dma_handle+offset, size, direction); | ||
170 | } | ||
171 | |||
172 | static inline void dma_sync_single_range_for_device(struct device *dev, | ||
173 | dma_addr_t dma_handle, | ||
174 | unsigned long offset, | ||
175 | size_t size, | ||
176 | enum dma_data_direction direction) | ||
177 | { | ||
178 | dma_sync_single_for_device(dev, dma_handle+offset, size, direction); | ||
179 | } | ||
180 | |||
181 | |||
163 | static inline void dma_sync_sg_for_cpu(struct device *dev, | 182 | static inline void dma_sync_sg_for_cpu(struct device *dev, |
164 | struct scatterlist *sg, int nelems, | 183 | struct scatterlist *sg, int nelems, |
165 | enum dma_data_direction dir) | 184 | enum dma_data_direction dir) |
diff --git a/include/asm-sh64/dma-mapping.h b/include/asm-sh64/dma-mapping.h index d505f357f819..de4309960207 100644 --- a/include/asm-sh64/dma-mapping.h +++ b/include/asm-sh64/dma-mapping.h | |||
@@ -141,6 +141,24 @@ static inline void dma_sync_single_for_device(struct device *dev, | |||
141 | dma_sync_single(dev, dma_handle, size, dir); | 141 | dma_sync_single(dev, dma_handle, size, dir); |
142 | } | 142 | } |
143 | 143 | ||
144 | static inline void dma_sync_single_range_for_cpu(struct device *dev, | ||
145 | dma_addr_t dma_handle, | ||
146 | unsigned long offset, | ||
147 | size_t size, | ||
148 | enum dma_data_direction direction) | ||
149 | { | ||
150 | dma_sync_single_for_cpu(dev, dma_handle+offset, size, direction); | ||
151 | } | ||
152 | |||
153 | static inline void dma_sync_single_range_for_device(struct device *dev, | ||
154 | dma_addr_t dma_handle, | ||
155 | unsigned long offset, | ||
156 | size_t size, | ||
157 | enum dma_data_direction direction) | ||
158 | { | ||
159 | dma_sync_single_for_device(dev, dma_handle+offset, size, direction); | ||
160 | } | ||
161 | |||
144 | static inline void dma_sync_sg_for_cpu(struct device *dev, | 162 | static inline void dma_sync_sg_for_cpu(struct device *dev, |
145 | struct scatterlist *sg, int nelems, | 163 | struct scatterlist *sg, int nelems, |
146 | enum dma_data_direction dir) | 164 | enum dma_data_direction dir) |
diff --git a/include/asm-sparc/sbus.h b/include/asm-sparc/sbus.h index d036e4419d79..27d076c46964 100644 --- a/include/asm-sparc/sbus.h +++ b/include/asm-sparc/sbus.h | |||
@@ -68,7 +68,6 @@ struct sbus_dev { | |||
68 | /* This struct describes the SBus(s) found on this machine. */ | 68 | /* This struct describes the SBus(s) found on this machine. */ |
69 | struct sbus_bus { | 69 | struct sbus_bus { |
70 | struct of_device ofdev; | 70 | struct of_device ofdev; |
71 | void *iommu; /* Opaque IOMMU cookie */ | ||
72 | struct sbus_dev *devices; /* Link to devices on this SBus */ | 71 | struct sbus_dev *devices; /* Link to devices on this SBus */ |
73 | struct sbus_bus *next; /* next SBus, if more than one SBus */ | 72 | struct sbus_bus *next; /* next SBus, if more than one SBus */ |
74 | int prom_node; /* PROM device tree node for this SBus */ | 73 | int prom_node; /* PROM device tree node for this SBus */ |
diff --git a/include/asm-sparc/sfp-machine.h b/include/asm-sparc/sfp-machine.h index ecfc86a4a725..266a42b8f99f 100644 --- a/include/asm-sparc/sfp-machine.h +++ b/include/asm-sparc/sfp-machine.h | |||
@@ -203,4 +203,10 @@ extern struct task_struct *last_task_used_math; | |||
203 | #define FP_INHIBIT_RESULTS ((last_task_used_math->thread.fsr >> 23) & _fex) | 203 | #define FP_INHIBIT_RESULTS ((last_task_used_math->thread.fsr >> 23) & _fex) |
204 | #endif | 204 | #endif |
205 | 205 | ||
206 | #ifdef CONFIG_SMP | ||
207 | #define FP_TRAPPING_EXCEPTIONS ((current->thread.fsr >> 23) & 0x1f) | ||
208 | #else | ||
209 | #define FP_TRAPPING_EXCEPTIONS ((last_task_used_math->thread.fsr >> 23) & 0x1f) | ||
210 | #endif | ||
211 | |||
206 | #endif | 212 | #endif |
diff --git a/include/asm-sparc/tlbflush.h b/include/asm-sparc/tlbflush.h index 4a3b66618e75..a619da5cfaa9 100644 --- a/include/asm-sparc/tlbflush.h +++ b/include/asm-sparc/tlbflush.h | |||
@@ -57,6 +57,10 @@ BTFIXUPDEF_CALL(void, flush_tlb_page, struct vm_area_struct *, unsigned long) | |||
57 | /* | 57 | /* |
58 | * This is a kludge, until I know better. --zaitcev XXX | 58 | * This is a kludge, until I know better. --zaitcev XXX |
59 | */ | 59 | */ |
60 | #define flush_tlb_kernel_range(start, end) flush_tlb_all() | 60 | static inline void flush_tlb_kernel_range(unsigned long start, |
61 | unsigned long end) | ||
62 | { | ||
63 | flush_tlb_all(); | ||
64 | } | ||
61 | 65 | ||
62 | #endif /* _SPARC_TLBFLUSH_H */ | 66 | #endif /* _SPARC_TLBFLUSH_H */ |
diff --git a/include/asm-sparc64/elf.h b/include/asm-sparc64/elf.h index 303d85e2f82e..8653e8665009 100644 --- a/include/asm-sparc64/elf.h +++ b/include/asm-sparc64/elf.h | |||
@@ -70,6 +70,7 @@ | |||
70 | #define HWCAP_SPARC_V9 16 | 70 | #define HWCAP_SPARC_V9 16 |
71 | #define HWCAP_SPARC_ULTRA3 32 | 71 | #define HWCAP_SPARC_ULTRA3 32 |
72 | #define HWCAP_SPARC_BLKINIT 64 | 72 | #define HWCAP_SPARC_BLKINIT 64 |
73 | #define HWCAP_SPARC_N2 128 | ||
73 | 74 | ||
74 | /* | 75 | /* |
75 | * These are used to set parameters in the core dumps. | 76 | * These are used to set parameters in the core dumps. |
@@ -155,8 +156,13 @@ static inline unsigned int sparc64_elf_hwcap(void) | |||
155 | 156 | ||
156 | if (tlb_type == cheetah || tlb_type == cheetah_plus) | 157 | if (tlb_type == cheetah || tlb_type == cheetah_plus) |
157 | cap |= HWCAP_SPARC_ULTRA3; | 158 | cap |= HWCAP_SPARC_ULTRA3; |
158 | else if (tlb_type == hypervisor) | 159 | else if (tlb_type == hypervisor) { |
159 | cap |= HWCAP_SPARC_BLKINIT; | 160 | if (sun4v_chip_type == SUN4V_CHIP_NIAGARA1 || |
161 | sun4v_chip_type == SUN4V_CHIP_NIAGARA2) | ||
162 | cap |= HWCAP_SPARC_BLKINIT; | ||
163 | if (sun4v_chip_type == SUN4V_CHIP_NIAGARA2) | ||
164 | cap |= HWCAP_SPARC_N2; | ||
165 | } | ||
160 | 166 | ||
161 | return cap; | 167 | return cap; |
162 | } | 168 | } |
diff --git a/include/asm-sparc64/percpu.h b/include/asm-sparc64/percpu.h index caf8750792ff..a1f53a4da405 100644 --- a/include/asm-sparc64/percpu.h +++ b/include/asm-sparc64/percpu.h | |||
@@ -3,6 +3,8 @@ | |||
3 | 3 | ||
4 | #include <linux/compiler.h> | 4 | #include <linux/compiler.h> |
5 | 5 | ||
6 | register unsigned long __local_per_cpu_offset asm("g5"); | ||
7 | |||
6 | #ifdef CONFIG_SMP | 8 | #ifdef CONFIG_SMP |
7 | 9 | ||
8 | #define setup_per_cpu_areas() do { } while (0) | 10 | #define setup_per_cpu_areas() do { } while (0) |
@@ -23,8 +25,6 @@ extern unsigned long __per_cpu_shift; | |||
23 | __typeof__(type) per_cpu__##name \ | 25 | __typeof__(type) per_cpu__##name \ |
24 | ____cacheline_aligned_in_smp | 26 | ____cacheline_aligned_in_smp |
25 | 27 | ||
26 | register unsigned long __local_per_cpu_offset asm("g5"); | ||
27 | |||
28 | /* var is in discarded region: offset to particular copy we want */ | 28 | /* var is in discarded region: offset to particular copy we want */ |
29 | #define per_cpu(var, cpu) (*RELOC_HIDE(&per_cpu__##var, __per_cpu_offset(cpu))) | 29 | #define per_cpu(var, cpu) (*RELOC_HIDE(&per_cpu__##var, __per_cpu_offset(cpu))) |
30 | #define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __local_per_cpu_offset)) | 30 | #define __get_cpu_var(var) (*RELOC_HIDE(&per_cpu__##var, __local_per_cpu_offset)) |
diff --git a/include/asm-sparc64/sfp-machine.h b/include/asm-sparc64/sfp-machine.h index 89d42431efb5..c9331b02d9c8 100644 --- a/include/asm-sparc64/sfp-machine.h +++ b/include/asm-sparc64/sfp-machine.h | |||
@@ -88,4 +88,6 @@ | |||
88 | 88 | ||
89 | #define FP_INHIBIT_RESULTS ((current_thread_info()->xfsr[0] >> 23) & _fex) | 89 | #define FP_INHIBIT_RESULTS ((current_thread_info()->xfsr[0] >> 23) & _fex) |
90 | 90 | ||
91 | #define FP_TRAPPING_EXCEPTIONS ((current_thread_info()->xfsr[0] >> 23) & 0x1f) | ||
92 | |||
91 | #endif | 93 | #endif |
diff --git a/include/asm-sparc64/system.h b/include/asm-sparc64/system.h index 64891cb10f05..3f175fa7e6d2 100644 --- a/include/asm-sparc64/system.h +++ b/include/asm-sparc64/system.h | |||
@@ -141,7 +141,6 @@ do { \ | |||
141 | * not preserve it's value. Hairy, but it lets us remove 2 loads | 141 | * not preserve it's value. Hairy, but it lets us remove 2 loads |
142 | * and 2 stores in this critical code path. -DaveM | 142 | * and 2 stores in this critical code path. -DaveM |
143 | */ | 143 | */ |
144 | #define EXTRA_CLOBBER ,"%l1" | ||
145 | #define switch_to(prev, next, last) \ | 144 | #define switch_to(prev, next, last) \ |
146 | do { if (test_thread_flag(TIF_PERFCTR)) { \ | 145 | do { if (test_thread_flag(TIF_PERFCTR)) { \ |
147 | unsigned long __tmp; \ | 146 | unsigned long __tmp; \ |
@@ -164,33 +163,34 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \ | |||
164 | "stx %%i6, [%%sp + 2047 + 0x70]\n\t" \ | 163 | "stx %%i6, [%%sp + 2047 + 0x70]\n\t" \ |
165 | "stx %%i7, [%%sp + 2047 + 0x78]\n\t" \ | 164 | "stx %%i7, [%%sp + 2047 + 0x78]\n\t" \ |
166 | "rdpr %%wstate, %%o5\n\t" \ | 165 | "rdpr %%wstate, %%o5\n\t" \ |
167 | "stx %%o6, [%%g6 + %3]\n\t" \ | 166 | "stx %%o6, [%%g6 + %6]\n\t" \ |
168 | "stb %%o5, [%%g6 + %2]\n\t" \ | ||
169 | "rdpr %%cwp, %%o5\n\t" \ | ||
170 | "stb %%o5, [%%g6 + %5]\n\t" \ | 167 | "stb %%o5, [%%g6 + %5]\n\t" \ |
171 | "mov %1, %%g6\n\t" \ | 168 | "rdpr %%cwp, %%o5\n\t" \ |
172 | "ldub [%1 + %5], %%g1\n\t" \ | 169 | "stb %%o5, [%%g6 + %8]\n\t" \ |
170 | "mov %4, %%g6\n\t" \ | ||
171 | "ldub [%4 + %8], %%g1\n\t" \ | ||
173 | "wrpr %%g1, %%cwp\n\t" \ | 172 | "wrpr %%g1, %%cwp\n\t" \ |
174 | "ldx [%%g6 + %3], %%o6\n\t" \ | 173 | "ldx [%%g6 + %6], %%o6\n\t" \ |
175 | "ldub [%%g6 + %2], %%o5\n\t" \ | 174 | "ldub [%%g6 + %5], %%o5\n\t" \ |
176 | "ldub [%%g6 + %4], %%o7\n\t" \ | 175 | "ldub [%%g6 + %7], %%o7\n\t" \ |
177 | "wrpr %%o5, 0x0, %%wstate\n\t" \ | 176 | "wrpr %%o5, 0x0, %%wstate\n\t" \ |
178 | "ldx [%%sp + 2047 + 0x70], %%i6\n\t" \ | 177 | "ldx [%%sp + 2047 + 0x70], %%i6\n\t" \ |
179 | "ldx [%%sp + 2047 + 0x78], %%i7\n\t" \ | 178 | "ldx [%%sp + 2047 + 0x78], %%i7\n\t" \ |
180 | "ldx [%%g6 + %6], %%g4\n\t" \ | 179 | "ldx [%%g6 + %9], %%g4\n\t" \ |
181 | "brz,pt %%o7, 1f\n\t" \ | 180 | "brz,pt %%o7, 1f\n\t" \ |
182 | " mov %%g7, %0\n\t" \ | 181 | " mov %%g7, %0\n\t" \ |
183 | "b,a ret_from_syscall\n\t" \ | 182 | "b,a ret_from_syscall\n\t" \ |
184 | "1:\n\t" \ | 183 | "1:\n\t" \ |
185 | : "=&r" (last) \ | 184 | : "=&r" (last), "=r" (current), "=r" (current_thread_info_reg), \ |
185 | "=r" (__local_per_cpu_offset) \ | ||
186 | : "0" (task_thread_info(next)), \ | 186 | : "0" (task_thread_info(next)), \ |
187 | "i" (TI_WSTATE), "i" (TI_KSP), "i" (TI_NEW_CHILD), \ | 187 | "i" (TI_WSTATE), "i" (TI_KSP), "i" (TI_NEW_CHILD), \ |
188 | "i" (TI_CWP), "i" (TI_TASK) \ | 188 | "i" (TI_CWP), "i" (TI_TASK) \ |
189 | : "cc", \ | 189 | : "cc", \ |
190 | "g1", "g2", "g3", "g7", \ | 190 | "g1", "g2", "g3", "g7", \ |
191 | "l2", "l3", "l4", "l5", "l6", "l7", \ | 191 | "l1", "l2", "l3", "l4", "l5", "l6", "l7", \ |
192 | "i0", "i1", "i2", "i3", "i4", "i5", \ | 192 | "i0", "i1", "i2", "i3", "i4", "i5", \ |
193 | "o0", "o1", "o2", "o3", "o4", "o5", "o7" EXTRA_CLOBBER);\ | 193 | "o0", "o1", "o2", "o3", "o4", "o5", "o7"); \ |
194 | /* If you fuck with this, update ret_from_syscall code too. */ \ | 194 | /* If you fuck with this, update ret_from_syscall code too. */ \ |
195 | if (test_thread_flag(TIF_PERFCTR)) { \ | 195 | if (test_thread_flag(TIF_PERFCTR)) { \ |
196 | write_pcr(current_thread_info()->pcr_reg); \ | 196 | write_pcr(current_thread_info()->pcr_reg); \ |
diff --git a/include/asm-x86_64/io_apic.h b/include/asm-x86_64/io_apic.h index 969d225a9350..d9f2e54324d5 100644 --- a/include/asm-x86_64/io_apic.h +++ b/include/asm-x86_64/io_apic.h | |||
@@ -109,6 +109,12 @@ extern int mpc_default_type; | |||
109 | /* 1 if "noapic" boot option passed */ | 109 | /* 1 if "noapic" boot option passed */ |
110 | extern int skip_ioapic_setup; | 110 | extern int skip_ioapic_setup; |
111 | 111 | ||
112 | static inline void disable_ioapic_setup(void) | ||
113 | { | ||
114 | skip_ioapic_setup = 1; | ||
115 | } | ||
116 | |||
117 | |||
112 | /* | 118 | /* |
113 | * If we use the IO-APIC for IRQ routing, disable automatic | 119 | * If we use the IO-APIC for IRQ routing, disable automatic |
114 | * assignment of PCI IRQ's. | 120 | * assignment of PCI IRQ's. |
diff --git a/include/asm-x86_64/nmi.h b/include/asm-x86_64/nmi.h index 5fb3c0de5ccc..65b6acf3bb59 100644 --- a/include/asm-x86_64/nmi.h +++ b/include/asm-x86_64/nmi.h | |||
@@ -64,11 +64,12 @@ extern int setup_nmi_watchdog(char *); | |||
64 | 64 | ||
65 | extern atomic_t nmi_active; | 65 | extern atomic_t nmi_active; |
66 | extern unsigned int nmi_watchdog; | 66 | extern unsigned int nmi_watchdog; |
67 | #define NMI_DEFAULT -1 | 67 | #define NMI_DISABLED -1 |
68 | #define NMI_NONE 0 | 68 | #define NMI_NONE 0 |
69 | #define NMI_IO_APIC 1 | 69 | #define NMI_IO_APIC 1 |
70 | #define NMI_LOCAL_APIC 2 | 70 | #define NMI_LOCAL_APIC 2 |
71 | #define NMI_INVALID 3 | 71 | #define NMI_INVALID 3 |
72 | #define NMI_DEFAULT NMI_DISABLED | ||
72 | 73 | ||
73 | struct ctl_table; | 74 | struct ctl_table; |
74 | struct file; | 75 | struct file; |
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index ad7f71a81b0a..818cc3a50e6b 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
@@ -7,6 +7,7 @@ header-y += raid/ | |||
7 | header-y += spi/ | 7 | header-y += spi/ |
8 | header-y += sunrpc/ | 8 | header-y += sunrpc/ |
9 | header-y += tc_act/ | 9 | header-y += tc_act/ |
10 | header-y += tc_ematch/ | ||
10 | header-y += netfilter/ | 11 | header-y += netfilter/ |
11 | header-y += netfilter_arp/ | 12 | header-y += netfilter_arp/ |
12 | header-y += netfilter_bridge/ | 13 | header-y += netfilter_bridge/ |
diff --git a/include/linux/audit.h b/include/linux/audit.h index 4bbd8601b8f0..d6579df8dadf 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h | |||
@@ -63,8 +63,8 @@ | |||
63 | #define AUDIT_ADD_RULE 1011 /* Add syscall filtering rule */ | 63 | #define AUDIT_ADD_RULE 1011 /* Add syscall filtering rule */ |
64 | #define AUDIT_DEL_RULE 1012 /* Delete syscall filtering rule */ | 64 | #define AUDIT_DEL_RULE 1012 /* Delete syscall filtering rule */ |
65 | #define AUDIT_LIST_RULES 1013 /* List syscall filtering rules */ | 65 | #define AUDIT_LIST_RULES 1013 /* List syscall filtering rules */ |
66 | #define AUDIT_TTY_GET 1014 /* Get TTY auditing status */ | 66 | #define AUDIT_TTY_GET 1016 /* Get TTY auditing status */ |
67 | #define AUDIT_TTY_SET 1015 /* Set TTY auditing status */ | 67 | #define AUDIT_TTY_SET 1017 /* Set TTY auditing status */ |
68 | 68 | ||
69 | #define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages mostly uninteresting to kernel */ | 69 | #define AUDIT_FIRST_USER_MSG 1100 /* Userspace messages mostly uninteresting to kernel */ |
70 | #define AUDIT_USER_AVC 1107 /* We filter this differently */ | 70 | #define AUDIT_USER_AVC 1107 /* We filter this differently */ |
diff --git a/include/linux/ide.h b/include/linux/ide.h index d71d0121b7f9..c792b4fd1588 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -1285,13 +1285,14 @@ void ide_init_sg_cmd(ide_drive_t *, struct request *); | |||
1285 | #define BAD_DMA_DRIVE 0 | 1285 | #define BAD_DMA_DRIVE 0 |
1286 | #define GOOD_DMA_DRIVE 1 | 1286 | #define GOOD_DMA_DRIVE 1 |
1287 | 1287 | ||
1288 | #ifdef CONFIG_BLK_DEV_IDEDMA | ||
1289 | struct drive_list_entry { | 1288 | struct drive_list_entry { |
1290 | const char *id_model; | 1289 | const char *id_model; |
1291 | const char *id_firmware; | 1290 | const char *id_firmware; |
1292 | }; | 1291 | }; |
1293 | 1292 | ||
1294 | int ide_in_drive_list(struct hd_driveid *, const struct drive_list_entry *); | 1293 | int ide_in_drive_list(struct hd_driveid *, const struct drive_list_entry *); |
1294 | |||
1295 | #ifdef CONFIG_BLK_DEV_IDEDMA | ||
1295 | int __ide_dma_bad_drive(ide_drive_t *); | 1296 | int __ide_dma_bad_drive(ide_drive_t *); |
1296 | int __ide_dma_good_drive(ide_drive_t *); | 1297 | int __ide_dma_good_drive(ide_drive_t *); |
1297 | u8 ide_max_dma_mode(ide_drive_t *); | 1298 | u8 ide_max_dma_mode(ide_drive_t *); |
@@ -1312,7 +1313,6 @@ void ide_dma_host_off(ide_drive_t *); | |||
1312 | void ide_dma_off_quietly(ide_drive_t *); | 1313 | void ide_dma_off_quietly(ide_drive_t *); |
1313 | void ide_dma_host_on(ide_drive_t *); | 1314 | void ide_dma_host_on(ide_drive_t *); |
1314 | extern int __ide_dma_on(ide_drive_t *); | 1315 | extern int __ide_dma_on(ide_drive_t *); |
1315 | extern int __ide_dma_check(ide_drive_t *); | ||
1316 | extern int ide_dma_setup(ide_drive_t *); | 1316 | extern int ide_dma_setup(ide_drive_t *); |
1317 | extern void ide_dma_start(ide_drive_t *); | 1317 | extern void ide_dma_start(ide_drive_t *); |
1318 | extern int __ide_dma_end(ide_drive_t *); | 1318 | extern int __ide_dma_end(ide_drive_t *); |
diff --git a/include/linux/if_pppol2tp.h b/include/linux/if_pppol2tp.h index 516203b6fdeb..a7d6a2234b31 100644 --- a/include/linux/if_pppol2tp.h +++ b/include/linux/if_pppol2tp.h | |||
@@ -32,8 +32,8 @@ struct pppol2tp_addr | |||
32 | 32 | ||
33 | struct sockaddr_in addr; /* IP address and port to send to */ | 33 | struct sockaddr_in addr; /* IP address and port to send to */ |
34 | 34 | ||
35 | __be16 s_tunnel, s_session; /* For matching incoming packets */ | 35 | __u16 s_tunnel, s_session; /* For matching incoming packets */ |
36 | __be16 d_tunnel, d_session; /* For sending outgoing packets */ | 36 | __u16 d_tunnel, d_session; /* For sending outgoing packets */ |
37 | }; | 37 | }; |
38 | 38 | ||
39 | /* Socket options: | 39 | /* Socket options: |
diff --git a/include/linux/input.h b/include/linux/input.h index e02c6a66b2ba..cf2b5619aa13 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
@@ -363,6 +363,12 @@ struct input_absinfo { | |||
363 | 363 | ||
364 | #define KEY_UNKNOWN 240 | 364 | #define KEY_UNKNOWN 240 |
365 | 365 | ||
366 | #define KEY_VIDEO_NEXT 241 /* drive next video source */ | ||
367 | #define KEY_VIDEO_PREV 242 /* drive previous video source */ | ||
368 | #define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ | ||
369 | #define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */ | ||
370 | #define KEY_DISPLAY_OFF 245 /* display device to off state */ | ||
371 | |||
366 | #define BTN_MISC 0x100 | 372 | #define BTN_MISC 0x100 |
367 | #define BTN_0 0x100 | 373 | #define BTN_0 0x100 |
368 | #define BTN_1 0x101 | 374 | #define BTN_1 0x101 |
diff --git a/include/linux/kbd_kern.h b/include/linux/kbd_kern.h index 506ad20c18f8..8bdb16bfe5fb 100644 --- a/include/linux/kbd_kern.h +++ b/include/linux/kbd_kern.h | |||
@@ -161,4 +161,7 @@ static inline void con_schedule_flip(struct tty_struct *t) | |||
161 | schedule_delayed_work(&t->buf.work, 0); | 161 | schedule_delayed_work(&t->buf.work, 0); |
162 | } | 162 | } |
163 | 163 | ||
164 | /* mac_hid.c */ | ||
165 | extern int mac_hid_mouse_emulate_buttons(int, unsigned int, int); | ||
166 | |||
164 | #endif | 167 | #endif |
diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h index e147cf50529f..5bdd656e88cf 100644 --- a/include/linux/mempolicy.h +++ b/include/linux/mempolicy.h | |||
@@ -166,7 +166,7 @@ extern enum zone_type policy_zone; | |||
166 | 166 | ||
167 | static inline void check_highest_zone(enum zone_type k) | 167 | static inline void check_highest_zone(enum zone_type k) |
168 | { | 168 | { |
169 | if (k > policy_zone) | 169 | if (k > policy_zone && k != ZONE_MOVABLE) |
170 | policy_zone = k; | 170 | policy_zone = k; |
171 | } | 171 | } |
172 | 172 | ||
diff --git a/include/linux/mm.h b/include/linux/mm.h index 655094dc9440..1692dd6cb915 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -1042,7 +1042,7 @@ static inline void vma_nonlinear_insert(struct vm_area_struct *vma, | |||
1042 | } | 1042 | } |
1043 | 1043 | ||
1044 | /* mmap.c */ | 1044 | /* mmap.c */ |
1045 | extern int __vm_enough_memory(long pages, int cap_sys_admin); | 1045 | extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin); |
1046 | extern void vma_adjust(struct vm_area_struct *vma, unsigned long start, | 1046 | extern void vma_adjust(struct vm_area_struct *vma, unsigned long start, |
1047 | unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert); | 1047 | unsigned long end, pgoff_t pgoff, struct vm_area_struct *insert); |
1048 | extern struct vm_area_struct *vma_merge(struct mm_struct *, | 1048 | extern struct vm_area_struct *vma_merge(struct mm_struct *, |
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 3ea68cd3b61f..4e5627379b09 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
@@ -410,6 +410,24 @@ struct zonelist { | |||
410 | #endif | 410 | #endif |
411 | }; | 411 | }; |
412 | 412 | ||
413 | #ifdef CONFIG_NUMA | ||
414 | /* | ||
415 | * Only custom zonelists like MPOL_BIND need to be filtered as part of | ||
416 | * policies. As described in the comment for struct zonelist_cache, these | ||
417 | * zonelists will not have a zlcache so zlcache_ptr will not be set. Use | ||
418 | * that to determine if the zonelists needs to be filtered or not. | ||
419 | */ | ||
420 | static inline int alloc_should_filter_zonelist(struct zonelist *zonelist) | ||
421 | { | ||
422 | return !zonelist->zlcache_ptr; | ||
423 | } | ||
424 | #else | ||
425 | static inline int alloc_should_filter_zonelist(struct zonelist *zonelist) | ||
426 | { | ||
427 | return 0; | ||
428 | } | ||
429 | #endif /* CONFIG_NUMA */ | ||
430 | |||
413 | #ifdef CONFIG_ARCH_POPULATES_NODE_MAP | 431 | #ifdef CONFIG_ARCH_POPULATES_NODE_MAP |
414 | struct node_active_region { | 432 | struct node_active_region { |
415 | unsigned long start_pfn; | 433 | unsigned long start_pfn; |
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 2ada8ee316b3..4dc5fa8be781 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h | |||
@@ -159,7 +159,8 @@ struct ap_device_id { | |||
159 | 159 | ||
160 | #define AP_DEVICE_ID_MATCH_DEVICE_TYPE 0x01 | 160 | #define AP_DEVICE_ID_MATCH_DEVICE_TYPE 0x01 |
161 | 161 | ||
162 | #define ACPI_ID_LEN 9 | 162 | #define ACPI_ID_LEN 16 /* only 9 bytes needed here, 16 bytes are used */ |
163 | /* to workaround crosscompile issues */ | ||
163 | 164 | ||
164 | struct acpi_device_id { | 165 | struct acpi_device_id { |
165 | __u8 id[ACPI_ID_LEN]; | 166 | __u8 id[ACPI_ID_LEN]; |
diff --git a/include/linux/pci.h b/include/linux/pci.h index e7d8d4e19a53..038a0dc7273a 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -557,6 +557,7 @@ int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask); | |||
557 | int pcix_get_max_mmrbc(struct pci_dev *dev); | 557 | int pcix_get_max_mmrbc(struct pci_dev *dev); |
558 | int pcix_get_mmrbc(struct pci_dev *dev); | 558 | int pcix_get_mmrbc(struct pci_dev *dev); |
559 | int pcix_set_mmrbc(struct pci_dev *dev, int mmrbc); | 559 | int pcix_set_mmrbc(struct pci_dev *dev, int mmrbc); |
560 | int pcie_get_readrq(struct pci_dev *dev); | ||
560 | int pcie_set_readrq(struct pci_dev *dev, int rq); | 561 | int pcie_set_readrq(struct pci_dev *dev, int rq); |
561 | void pci_update_resource(struct pci_dev *dev, struct resource *res, int resno); | 562 | void pci_update_resource(struct pci_dev *dev, struct resource *res, int resno); |
562 | int __must_check pci_assign_resource(struct pci_dev *dev, int i); | 563 | int __must_check pci_assign_resource(struct pci_dev *dev, int i); |
@@ -578,6 +579,9 @@ int pci_set_power_state(struct pci_dev *dev, pci_power_t state); | |||
578 | pci_power_t pci_choose_state(struct pci_dev *dev, pm_message_t state); | 579 | pci_power_t pci_choose_state(struct pci_dev *dev, pm_message_t state); |
579 | int pci_enable_wake(struct pci_dev *dev, pci_power_t state, int enable); | 580 | int pci_enable_wake(struct pci_dev *dev, pci_power_t state, int enable); |
580 | 581 | ||
582 | /* Functions for PCI Hotplug drivers to use */ | ||
583 | int pci_bus_find_capability (struct pci_bus *bus, unsigned int devfn, int cap); | ||
584 | |||
581 | /* Helper functions for low-level code (drivers/pci/setup-[bus,res].c) */ | 585 | /* Helper functions for low-level code (drivers/pci/setup-[bus,res].c) */ |
582 | void pci_bus_assign_resources(struct pci_bus *bus); | 586 | void pci_bus_assign_resources(struct pci_bus *bus); |
583 | void pci_bus_size_bridges(struct pci_bus *bus); | 587 | void pci_bus_size_bridges(struct pci_bus *bus); |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 07fc57429b58..06d23e10a16d 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -360,6 +360,9 @@ | |||
360 | #define PCI_DEVICE_ID_ATI_RS400_166 0x5a32 | 360 | #define PCI_DEVICE_ID_ATI_RS400_166 0x5a32 |
361 | #define PCI_DEVICE_ID_ATI_RS400_200 0x5a33 | 361 | #define PCI_DEVICE_ID_ATI_RS400_200 0x5a33 |
362 | #define PCI_DEVICE_ID_ATI_RS480 0x5950 | 362 | #define PCI_DEVICE_ID_ATI_RS480 0x5950 |
363 | #define PCI_DEVICE_ID_ATI_RD580 0x5952 | ||
364 | #define PCI_DEVICE_ID_ATI_RX790 0x5957 | ||
365 | #define PCI_DEVICE_ID_ATI_RS690 0x7910 | ||
363 | /* ATI IXP Chipset */ | 366 | /* ATI IXP Chipset */ |
364 | #define PCI_DEVICE_ID_ATI_IXP200_IDE 0x4349 | 367 | #define PCI_DEVICE_ID_ATI_IXP200_IDE 0x4349 |
365 | #define PCI_DEVICE_ID_ATI_IXP200_SMBUS 0x4353 | 368 | #define PCI_DEVICE_ID_ATI_IXP200_SMBUS 0x4353 |
@@ -1287,6 +1290,7 @@ | |||
1287 | #define PCI_DEVICE_ID_VIA_VT3324 0x0324 | 1290 | #define PCI_DEVICE_ID_VIA_VT3324 0x0324 |
1288 | #define PCI_DEVICE_ID_VIA_VT3336 0x0336 | 1291 | #define PCI_DEVICE_ID_VIA_VT3336 0x0336 |
1289 | #define PCI_DEVICE_ID_VIA_VT3351 0x0351 | 1292 | #define PCI_DEVICE_ID_VIA_VT3351 0x0351 |
1293 | #define PCI_DEVICE_ID_VIA_VT3364 0x0364 | ||
1290 | #define PCI_DEVICE_ID_VIA_8371_0 0x0391 | 1294 | #define PCI_DEVICE_ID_VIA_8371_0 0x0391 |
1291 | #define PCI_DEVICE_ID_VIA_8501_0 0x0501 | 1295 | #define PCI_DEVICE_ID_VIA_8501_0 0x0501 |
1292 | #define PCI_DEVICE_ID_VIA_82C561 0x0561 | 1296 | #define PCI_DEVICE_ID_VIA_82C561 0x0561 |
@@ -2092,8 +2096,10 @@ | |||
2092 | #define PCI_DEVICE_ID_MPC8568 0x0021 | 2096 | #define PCI_DEVICE_ID_MPC8568 0x0021 |
2093 | #define PCI_DEVICE_ID_MPC8567E 0x0022 | 2097 | #define PCI_DEVICE_ID_MPC8567E 0x0022 |
2094 | #define PCI_DEVICE_ID_MPC8567 0x0023 | 2098 | #define PCI_DEVICE_ID_MPC8567 0x0023 |
2095 | #define PCI_DEVICE_ID_MPC8544E 0x0030 | 2099 | #define PCI_DEVICE_ID_MPC8533E 0x0030 |
2096 | #define PCI_DEVICE_ID_MPC8544 0x0031 | 2100 | #define PCI_DEVICE_ID_MPC8533 0x0031 |
2101 | #define PCI_DEVICE_ID_MPC8544E 0x0032 | ||
2102 | #define PCI_DEVICE_ID_MPC8544 0x0033 | ||
2097 | #define PCI_DEVICE_ID_MPC8641 0x7010 | 2103 | #define PCI_DEVICE_ID_MPC8641 0x7010 |
2098 | #define PCI_DEVICE_ID_MPC8641D 0x7011 | 2104 | #define PCI_DEVICE_ID_MPC8641D 0x7011 |
2099 | 2105 | ||
diff --git a/include/linux/pmu.h b/include/linux/pmu.h index 5ad913ff02b2..b7824c215354 100644 --- a/include/linux/pmu.h +++ b/include/linux/pmu.h | |||
@@ -226,7 +226,7 @@ extern unsigned int pmu_power_flags; | |||
226 | extern void pmu_backlight_init(void); | 226 | extern void pmu_backlight_init(void); |
227 | 227 | ||
228 | /* some code needs to know if the PMU was suspended for hibernation */ | 228 | /* some code needs to know if the PMU was suspended for hibernation */ |
229 | #if defined(CONFIG_PM) && defined(CONFIG_PPC32) | 229 | #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) |
230 | extern int pmu_sys_suspended; | 230 | extern int pmu_sys_suspended; |
231 | #else | 231 | #else |
232 | /* if power management is not configured it can't be suspended */ | 232 | /* if power management is not configured it can't be suspended */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 682ef87da6eb..bd6a0320a770 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -681,7 +681,7 @@ enum cpu_idle_type { | |||
681 | #define SCHED_LOAD_SHIFT 10 | 681 | #define SCHED_LOAD_SHIFT 10 |
682 | #define SCHED_LOAD_SCALE (1L << SCHED_LOAD_SHIFT) | 682 | #define SCHED_LOAD_SCALE (1L << SCHED_LOAD_SHIFT) |
683 | 683 | ||
684 | #define SCHED_LOAD_SCALE_FUZZ (SCHED_LOAD_SCALE >> 1) | 684 | #define SCHED_LOAD_SCALE_FUZZ SCHED_LOAD_SCALE |
685 | 685 | ||
686 | #ifdef CONFIG_SMP | 686 | #ifdef CONFIG_SMP |
687 | #define SD_LOAD_BALANCE 1 /* Do load balancing on this domain. */ | 687 | #define SD_LOAD_BALANCE 1 /* Do load balancing on this domain. */ |
@@ -1388,7 +1388,8 @@ extern void sched_exec(void); | |||
1388 | #define sched_exec() {} | 1388 | #define sched_exec() {} |
1389 | #endif | 1389 | #endif |
1390 | 1390 | ||
1391 | extern void sched_clock_unstable_event(void); | 1391 | extern void sched_clock_idle_sleep_event(void); |
1392 | extern void sched_clock_idle_wakeup_event(u64 delta_ns); | ||
1392 | 1393 | ||
1393 | #ifdef CONFIG_HOTPLUG_CPU | 1394 | #ifdef CONFIG_HOTPLUG_CPU |
1394 | extern void idle_task_exit(void); | 1395 | extern void idle_task_exit(void); |
@@ -1398,7 +1399,8 @@ static inline void idle_task_exit(void) {} | |||
1398 | 1399 | ||
1399 | extern void sched_idle_next(void); | 1400 | extern void sched_idle_next(void); |
1400 | 1401 | ||
1401 | extern unsigned int sysctl_sched_granularity; | 1402 | extern unsigned int sysctl_sched_latency; |
1403 | extern unsigned int sysctl_sched_min_granularity; | ||
1402 | extern unsigned int sysctl_sched_wakeup_granularity; | 1404 | extern unsigned int sysctl_sched_wakeup_granularity; |
1403 | extern unsigned int sysctl_sched_batch_wakeup_granularity; | 1405 | extern unsigned int sysctl_sched_batch_wakeup_granularity; |
1404 | extern unsigned int sysctl_sched_stat_granularity; | 1406 | extern unsigned int sysctl_sched_stat_granularity; |
diff --git a/include/linux/security.h b/include/linux/security.h index c11dc8aa0351..1a15526e9f67 100644 --- a/include/linux/security.h +++ b/include/linux/security.h | |||
@@ -54,7 +54,7 @@ extern int cap_inode_removexattr(struct dentry *dentry, char *name); | |||
54 | extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags); | 54 | extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags); |
55 | extern void cap_task_reparent_to_init (struct task_struct *p); | 55 | extern void cap_task_reparent_to_init (struct task_struct *p); |
56 | extern int cap_syslog (int type); | 56 | extern int cap_syslog (int type); |
57 | extern int cap_vm_enough_memory (long pages); | 57 | extern int cap_vm_enough_memory (struct mm_struct *mm, long pages); |
58 | 58 | ||
59 | struct msghdr; | 59 | struct msghdr; |
60 | struct sk_buff; | 60 | struct sk_buff; |
@@ -1125,6 +1125,7 @@ struct request_sock; | |||
1125 | * Return 0 if permission is granted. | 1125 | * Return 0 if permission is granted. |
1126 | * @vm_enough_memory: | 1126 | * @vm_enough_memory: |
1127 | * Check permissions for allocating a new virtual mapping. | 1127 | * Check permissions for allocating a new virtual mapping. |
1128 | * @mm contains the mm struct it is being added to. | ||
1128 | * @pages contains the number of pages. | 1129 | * @pages contains the number of pages. |
1129 | * Return 0 if permission is granted. | 1130 | * Return 0 if permission is granted. |
1130 | * | 1131 | * |
@@ -1169,7 +1170,7 @@ struct security_operations { | |||
1169 | int (*quota_on) (struct dentry * dentry); | 1170 | int (*quota_on) (struct dentry * dentry); |
1170 | int (*syslog) (int type); | 1171 | int (*syslog) (int type); |
1171 | int (*settime) (struct timespec *ts, struct timezone *tz); | 1172 | int (*settime) (struct timespec *ts, struct timezone *tz); |
1172 | int (*vm_enough_memory) (long pages); | 1173 | int (*vm_enough_memory) (struct mm_struct *mm, long pages); |
1173 | 1174 | ||
1174 | int (*bprm_alloc_security) (struct linux_binprm * bprm); | 1175 | int (*bprm_alloc_security) (struct linux_binprm * bprm); |
1175 | void (*bprm_free_security) (struct linux_binprm * bprm); | 1176 | void (*bprm_free_security) (struct linux_binprm * bprm); |
@@ -1469,10 +1470,14 @@ static inline int security_settime(struct timespec *ts, struct timezone *tz) | |||
1469 | return security_ops->settime(ts, tz); | 1470 | return security_ops->settime(ts, tz); |
1470 | } | 1471 | } |
1471 | 1472 | ||
1472 | |||
1473 | static inline int security_vm_enough_memory(long pages) | 1473 | static inline int security_vm_enough_memory(long pages) |
1474 | { | 1474 | { |
1475 | return security_ops->vm_enough_memory(pages); | 1475 | return security_ops->vm_enough_memory(current->mm, pages); |
1476 | } | ||
1477 | |||
1478 | static inline int security_vm_enough_memory_mm(struct mm_struct *mm, long pages) | ||
1479 | { | ||
1480 | return security_ops->vm_enough_memory(mm, pages); | ||
1476 | } | 1481 | } |
1477 | 1482 | ||
1478 | static inline int security_bprm_alloc (struct linux_binprm *bprm) | 1483 | static inline int security_bprm_alloc (struct linux_binprm *bprm) |
@@ -2219,7 +2224,12 @@ static inline int security_settime(struct timespec *ts, struct timezone *tz) | |||
2219 | 2224 | ||
2220 | static inline int security_vm_enough_memory(long pages) | 2225 | static inline int security_vm_enough_memory(long pages) |
2221 | { | 2226 | { |
2222 | return cap_vm_enough_memory(pages); | 2227 | return cap_vm_enough_memory(current->mm, pages); |
2228 | } | ||
2229 | |||
2230 | static inline int security_vm_enough_memory_mm(struct mm_struct *mm, long pages) | ||
2231 | { | ||
2232 | return cap_vm_enough_memory(mm, pages); | ||
2223 | } | 2233 | } |
2224 | 2234 | ||
2225 | static inline int security_bprm_alloc (struct linux_binprm *bprm) | 2235 | static inline int security_bprm_alloc (struct linux_binprm *bprm) |
diff --git a/include/linux/selection.h b/include/linux/selection.h index ed3408b400f1..f9457861937c 100644 --- a/include/linux/selection.h +++ b/include/linux/selection.h | |||
@@ -10,6 +10,8 @@ | |||
10 | #include <linux/tiocl.h> | 10 | #include <linux/tiocl.h> |
11 | #include <linux/vt_buffer.h> | 11 | #include <linux/vt_buffer.h> |
12 | 12 | ||
13 | struct tty_struct; | ||
14 | |||
13 | extern struct vc_data *sel_cons; | 15 | extern struct vc_data *sel_cons; |
14 | 16 | ||
15 | extern void clear_selection(void); | 17 | extern void clear_selection(void); |
diff --git a/include/linux/serial_reg.h b/include/linux/serial_reg.h index 1c5ed7d92b0f..96c0d93fc2ca 100644 --- a/include/linux/serial_reg.h +++ b/include/linux/serial_reg.h | |||
@@ -118,6 +118,7 @@ | |||
118 | #define UART_LSR_PE 0x04 /* Parity error indicator */ | 118 | #define UART_LSR_PE 0x04 /* Parity error indicator */ |
119 | #define UART_LSR_OE 0x02 /* Overrun error indicator */ | 119 | #define UART_LSR_OE 0x02 /* Overrun error indicator */ |
120 | #define UART_LSR_DR 0x01 /* Receiver data ready */ | 120 | #define UART_LSR_DR 0x01 /* Receiver data ready */ |
121 | #define UART_LSR_BRK_ERROR_BITS 0x1E /* BI, FE, PE, OE bits */ | ||
121 | 122 | ||
122 | #define UART_MSR 6 /* In: Modem Status Register */ | 123 | #define UART_MSR 6 /* In: Modem Status Register */ |
123 | #define UART_MSR_DCD 0x80 /* Data Carrier Detect */ | 124 | #define UART_MSR_DCD 0x80 /* Data Carrier Detect */ |
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index c66c8a3410b9..ae9b24c12f6a 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h | |||
@@ -617,7 +617,6 @@ struct v4l2_framebuffer | |||
617 | #define V4L2_FBUF_CAP_LOCAL_ALPHA 0x0010 | 617 | #define V4L2_FBUF_CAP_LOCAL_ALPHA 0x0010 |
618 | #define V4L2_FBUF_CAP_GLOBAL_ALPHA 0x0020 | 618 | #define V4L2_FBUF_CAP_GLOBAL_ALPHA 0x0020 |
619 | #define V4L2_FBUF_CAP_LOCAL_INV_ALPHA 0x0040 | 619 | #define V4L2_FBUF_CAP_LOCAL_INV_ALPHA 0x0040 |
620 | #define V4L2_FBUF_CAP_GLOBAL_INV_ALPHA 0x0080 | ||
621 | /* Flags for the 'flags' field. */ | 620 | /* Flags for the 'flags' field. */ |
622 | #define V4L2_FBUF_FLAG_PRIMARY 0x0001 | 621 | #define V4L2_FBUF_FLAG_PRIMARY 0x0001 |
623 | #define V4L2_FBUF_FLAG_OVERLAY 0x0002 | 622 | #define V4L2_FBUF_FLAG_OVERLAY 0x0002 |
@@ -625,7 +624,6 @@ struct v4l2_framebuffer | |||
625 | #define V4L2_FBUF_FLAG_LOCAL_ALPHA 0x0008 | 624 | #define V4L2_FBUF_FLAG_LOCAL_ALPHA 0x0008 |
626 | #define V4L2_FBUF_FLAG_GLOBAL_ALPHA 0x0010 | 625 | #define V4L2_FBUF_FLAG_GLOBAL_ALPHA 0x0010 |
627 | #define V4L2_FBUF_FLAG_LOCAL_INV_ALPHA 0x0020 | 626 | #define V4L2_FBUF_FLAG_LOCAL_INV_ALPHA 0x0020 |
628 | #define V4L2_FBUF_FLAG_GLOBAL_INV_ALPHA 0x0040 | ||
629 | 627 | ||
630 | struct v4l2_clip | 628 | struct v4l2_clip |
631 | { | 629 | { |
diff --git a/include/math-emu/op-common.h b/include/math-emu/op-common.h index 93780abd01bc..bb46e7645d53 100644 --- a/include/math-emu/op-common.h +++ b/include/math-emu/op-common.h | |||
@@ -145,13 +145,16 @@ do { \ | |||
145 | { \ | 145 | { \ |
146 | X##_e = 1; \ | 146 | X##_e = 1; \ |
147 | _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \ | 147 | _FP_FRAC_SET_##wc(X, _FP_ZEROFRAC_##wc); \ |
148 | FP_SET_EXCEPTION(FP_EX_INEXACT); \ | ||
148 | } \ | 149 | } \ |
149 | else \ | 150 | else \ |
150 | { \ | 151 | { \ |
151 | X##_e = 0; \ | 152 | X##_e = 0; \ |
152 | _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \ | 153 | _FP_FRAC_SRL_##wc(X, _FP_WORKBITS); \ |
153 | FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \ | ||
154 | } \ | 154 | } \ |
155 | if ((FP_CUR_EXCEPTIONS & FP_EX_INEXACT) || \ | ||
156 | (FP_TRAPPING_EXCEPTIONS & FP_EX_UNDERFLOW)) \ | ||
157 | FP_SET_EXCEPTION(FP_EX_UNDERFLOW); \ | ||
155 | } \ | 158 | } \ |
156 | else \ | 159 | else \ |
157 | { \ | 160 | { \ |
diff --git a/include/math-emu/soft-fp.h b/include/math-emu/soft-fp.h index d02eb64a865b..a6f873b45f98 100644 --- a/include/math-emu/soft-fp.h +++ b/include/math-emu/soft-fp.h | |||
@@ -97,12 +97,19 @@ | |||
97 | #define FP_INHIBIT_RESULTS 0 | 97 | #define FP_INHIBIT_RESULTS 0 |
98 | #endif | 98 | #endif |
99 | 99 | ||
100 | #ifndef FP_TRAPPING_EXCEPTIONS | ||
101 | #define FP_TRAPPING_EXCEPTIONS 0 | ||
102 | #endif | ||
103 | |||
100 | #define FP_SET_EXCEPTION(ex) \ | 104 | #define FP_SET_EXCEPTION(ex) \ |
101 | _fex |= (ex) | 105 | _fex |= (ex) |
102 | 106 | ||
103 | #define FP_UNSET_EXCEPTION(ex) \ | 107 | #define FP_UNSET_EXCEPTION(ex) \ |
104 | _fex &= ~(ex) | 108 | _fex &= ~(ex) |
105 | 109 | ||
110 | #define FP_CUR_EXCEPTIONS \ | ||
111 | (_fex) | ||
112 | |||
106 | #define FP_CLEAR_EXCEPTIONS \ | 113 | #define FP_CLEAR_EXCEPTIONS \ |
107 | _fex = 0 | 114 | _fex = 0 |
108 | 115 | ||
diff --git a/include/rdma/ib_mad.h b/include/rdma/ib_mad.h index 30712ddd8a5e..8ec3799e42e1 100644 --- a/include/rdma/ib_mad.h +++ b/include/rdma/ib_mad.h | |||
@@ -39,6 +39,8 @@ | |||
39 | #if !defined( IB_MAD_H ) | 39 | #if !defined( IB_MAD_H ) |
40 | #define IB_MAD_H | 40 | #define IB_MAD_H |
41 | 41 | ||
42 | #include <linux/list.h> | ||
43 | |||
42 | #include <rdma/ib_verbs.h> | 44 | #include <rdma/ib_verbs.h> |
43 | 45 | ||
44 | /* Management base version */ | 46 | /* Management base version */ |
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 0627a6aa282a..4bea182d7116 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h | |||
@@ -46,6 +46,8 @@ | |||
46 | #include <linux/mm.h> | 46 | #include <linux/mm.h> |
47 | #include <linux/dma-mapping.h> | 47 | #include <linux/dma-mapping.h> |
48 | #include <linux/kref.h> | 48 | #include <linux/kref.h> |
49 | #include <linux/list.h> | ||
50 | #include <linux/rwsem.h> | ||
49 | 51 | ||
50 | #include <asm/atomic.h> | 52 | #include <asm/atomic.h> |
51 | #include <asm/scatterlist.h> | 53 | #include <asm/scatterlist.h> |
@@ -731,11 +733,6 @@ struct ib_udata { | |||
731 | size_t outlen; | 733 | size_t outlen; |
732 | }; | 734 | }; |
733 | 735 | ||
734 | #define IB_UMEM_MAX_PAGE_CHUNK \ | ||
735 | ((PAGE_SIZE - offsetof(struct ib_umem_chunk, page_list)) / \ | ||
736 | ((void *) &((struct ib_umem_chunk *) 0)->page_list[1] - \ | ||
737 | (void *) &((struct ib_umem_chunk *) 0)->page_list[0])) | ||
738 | |||
739 | struct ib_pd { | 736 | struct ib_pd { |
740 | struct ib_device *device; | 737 | struct ib_device *device; |
741 | struct ib_uobject *uobject; | 738 | struct ib_uobject *uobject; |
diff --git a/init/main.c b/init/main.c index d3bcb3b11620..450e6ee52ab6 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -146,9 +146,14 @@ static unsigned int __initdata max_cpus = NR_CPUS; | |||
146 | * greater than 0, limits the maximum number of CPUs activated in | 146 | * greater than 0, limits the maximum number of CPUs activated in |
147 | * SMP mode to <NUM>. | 147 | * SMP mode to <NUM>. |
148 | */ | 148 | */ |
149 | #ifndef CONFIG_X86_IO_APIC | ||
150 | static inline void disable_ioapic_setup(void) {}; | ||
151 | #endif | ||
152 | |||
149 | static int __init nosmp(char *str) | 153 | static int __init nosmp(char *str) |
150 | { | 154 | { |
151 | max_cpus = 0; | 155 | max_cpus = 0; |
156 | disable_ioapic_setup(); | ||
152 | return 0; | 157 | return 0; |
153 | } | 158 | } |
154 | 159 | ||
@@ -157,10 +162,13 @@ early_param("nosmp", nosmp); | |||
157 | static int __init maxcpus(char *str) | 162 | static int __init maxcpus(char *str) |
158 | { | 163 | { |
159 | get_option(&str, &max_cpus); | 164 | get_option(&str, &max_cpus); |
160 | return 1; | 165 | if (max_cpus == 0) |
166 | disable_ioapic_setup(); | ||
167 | |||
168 | return 0; | ||
161 | } | 169 | } |
162 | 170 | ||
163 | __setup("maxcpus=", maxcpus); | 171 | early_param("maxcpus", maxcpus); |
164 | #else | 172 | #else |
165 | #define max_cpus NR_CPUS | 173 | #define max_cpus NR_CPUS |
166 | #endif | 174 | #endif |
diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 3401293359e8..04f3ffb8d9d4 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c | |||
@@ -2023,7 +2023,7 @@ int __audit_signal_info(int sig, struct task_struct *t) | |||
2023 | axp->d.next = ctx->aux_pids; | 2023 | axp->d.next = ctx->aux_pids; |
2024 | ctx->aux_pids = (void *)axp; | 2024 | ctx->aux_pids = (void *)axp; |
2025 | } | 2025 | } |
2026 | BUG_ON(axp->pid_count > AUDIT_AUX_PIDS); | 2026 | BUG_ON(axp->pid_count >= AUDIT_AUX_PIDS); |
2027 | 2027 | ||
2028 | axp->target_pid[axp->pid_count] = t->tgid; | 2028 | axp->target_pid[axp->pid_count] = t->tgid; |
2029 | selinux_get_task_sid(t, &axp->target_sid[axp->pid_count]); | 2029 | selinux_get_task_sid(t, &axp->target_sid[axp->pid_count]); |
diff --git a/kernel/futex.c b/kernel/futex.c index 3415e9ad1391..e8935b195e88 100644 --- a/kernel/futex.c +++ b/kernel/futex.c | |||
@@ -1670,6 +1670,7 @@ pi_faulted: | |||
1670 | attempt); | 1670 | attempt); |
1671 | if (ret) | 1671 | if (ret) |
1672 | goto out; | 1672 | goto out; |
1673 | uval = 0; | ||
1673 | goto retry_unlocked; | 1674 | goto retry_unlocked; |
1674 | } | 1675 | } |
1675 | 1676 | ||
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 203a518b6f14..853aefbd184b 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -462,7 +462,9 @@ void free_irq(unsigned int irq, void *dev_id) | |||
462 | * We do this after actually deregistering it, to make sure that | 462 | * We do this after actually deregistering it, to make sure that |
463 | * a 'real' IRQ doesn't run in parallel with our fake | 463 | * a 'real' IRQ doesn't run in parallel with our fake |
464 | */ | 464 | */ |
465 | local_irq_save(flags); | ||
465 | handler(irq, dev_id); | 466 | handler(irq, dev_id); |
467 | local_irq_restore(flags); | ||
466 | } | 468 | } |
467 | #endif | 469 | #endif |
468 | } | 470 | } |
diff --git a/kernel/module.c b/kernel/module.c index 33c04ad51175..db0ead0363e2 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -784,8 +784,7 @@ EXPORT_SYMBOL_GPL(symbol_put_addr); | |||
784 | static ssize_t show_refcnt(struct module_attribute *mattr, | 784 | static ssize_t show_refcnt(struct module_attribute *mattr, |
785 | struct module *mod, char *buffer) | 785 | struct module *mod, char *buffer) |
786 | { | 786 | { |
787 | /* sysfs holds a reference */ | 787 | return sprintf(buffer, "%u\n", module_refcount(mod)); |
788 | return sprintf(buffer, "%u\n", module_refcount(mod)-1); | ||
789 | } | 788 | } |
790 | 789 | ||
791 | static struct module_attribute refcnt = { | 790 | static struct module_attribute refcnt = { |
diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c index 55b3761edaa9..7a15afb73ed0 100644 --- a/kernel/posix-timers.c +++ b/kernel/posix-timers.c | |||
@@ -547,9 +547,9 @@ sys_timer_create(const clockid_t which_clock, | |||
547 | new_timer->it_process = process; | 547 | new_timer->it_process = process; |
548 | list_add(&new_timer->list, | 548 | list_add(&new_timer->list, |
549 | &process->signal->posix_timers); | 549 | &process->signal->posix_timers); |
550 | spin_unlock_irqrestore(&process->sighand->siglock, flags); | ||
551 | if (new_timer->it_sigev_notify == (SIGEV_SIGNAL|SIGEV_THREAD_ID)) | 550 | if (new_timer->it_sigev_notify == (SIGEV_SIGNAL|SIGEV_THREAD_ID)) |
552 | get_task_struct(process); | 551 | get_task_struct(process); |
552 | spin_unlock_irqrestore(&process->sighand->siglock, flags); | ||
553 | } else { | 553 | } else { |
554 | spin_unlock_irqrestore(&process->sighand->siglock, flags); | 554 | spin_unlock_irqrestore(&process->sighand->siglock, flags); |
555 | process = NULL; | 555 | process = NULL; |
@@ -605,13 +605,14 @@ static struct k_itimer * lock_timer(timer_t timer_id, unsigned long *flags) | |||
605 | timr = (struct k_itimer *) idr_find(&posix_timers_id, (int) timer_id); | 605 | timr = (struct k_itimer *) idr_find(&posix_timers_id, (int) timer_id); |
606 | if (timr) { | 606 | if (timr) { |
607 | spin_lock(&timr->it_lock); | 607 | spin_lock(&timr->it_lock); |
608 | spin_unlock(&idr_lock); | ||
609 | 608 | ||
610 | if ((timr->it_id != timer_id) || !(timr->it_process) || | 609 | if ((timr->it_id != timer_id) || !(timr->it_process) || |
611 | timr->it_process->tgid != current->tgid) { | 610 | timr->it_process->tgid != current->tgid) { |
612 | unlock_timer(timr, *flags); | 611 | spin_unlock(&timr->it_lock); |
612 | spin_unlock_irqrestore(&idr_lock, *flags); | ||
613 | timr = NULL; | 613 | timr = NULL; |
614 | } | 614 | } else |
615 | spin_unlock(&idr_lock); | ||
615 | } else | 616 | } else |
616 | spin_unlock_irqrestore(&idr_lock, *flags); | 617 | spin_unlock_irqrestore(&idr_lock, *flags); |
617 | 618 | ||
diff --git a/kernel/printk.c b/kernel/printk.c index bd2cd062878d..8451dfc31d25 100644 --- a/kernel/printk.c +++ b/kernel/printk.c | |||
@@ -1083,6 +1083,19 @@ int unregister_console(struct console *console) | |||
1083 | } | 1083 | } |
1084 | EXPORT_SYMBOL(unregister_console); | 1084 | EXPORT_SYMBOL(unregister_console); |
1085 | 1085 | ||
1086 | static int __init disable_boot_consoles(void) | ||
1087 | { | ||
1088 | if (console_drivers != NULL) { | ||
1089 | if (console_drivers->flags & CON_BOOT) { | ||
1090 | printk(KERN_INFO "turn off boot console %s%d\n", | ||
1091 | console_drivers->name, console_drivers->index); | ||
1092 | return unregister_console(console_drivers); | ||
1093 | } | ||
1094 | } | ||
1095 | return 0; | ||
1096 | } | ||
1097 | late_initcall(disable_boot_consoles); | ||
1098 | |||
1086 | /** | 1099 | /** |
1087 | * tty_write_message - write a message to a certain tty, not just the console. | 1100 | * tty_write_message - write a message to a certain tty, not just the console. |
1088 | * @tty: the destination tty_struct | 1101 | * @tty: the destination tty_struct |
diff --git a/kernel/sched.c b/kernel/sched.c index 45e17b83b7f1..9fe473a190de 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -262,7 +262,8 @@ struct rq { | |||
262 | s64 clock_max_delta; | 262 | s64 clock_max_delta; |
263 | 263 | ||
264 | unsigned int clock_warps, clock_overflows; | 264 | unsigned int clock_warps, clock_overflows; |
265 | unsigned int clock_unstable_events; | 265 | u64 idle_clock; |
266 | unsigned int clock_deep_idle_events; | ||
266 | u64 tick_timestamp; | 267 | u64 tick_timestamp; |
267 | 268 | ||
268 | atomic_t nr_iowait; | 269 | atomic_t nr_iowait; |
@@ -556,18 +557,40 @@ static inline struct rq *this_rq_lock(void) | |||
556 | } | 557 | } |
557 | 558 | ||
558 | /* | 559 | /* |
559 | * CPU frequency is/was unstable - start new by setting prev_clock_raw: | 560 | * We are going deep-idle (irqs are disabled): |
560 | */ | 561 | */ |
561 | void sched_clock_unstable_event(void) | 562 | void sched_clock_idle_sleep_event(void) |
562 | { | 563 | { |
563 | unsigned long flags; | 564 | struct rq *rq = cpu_rq(smp_processor_id()); |
564 | struct rq *rq; | ||
565 | 565 | ||
566 | rq = task_rq_lock(current, &flags); | 566 | spin_lock(&rq->lock); |
567 | rq->prev_clock_raw = sched_clock(); | 567 | __update_rq_clock(rq); |
568 | rq->clock_unstable_events++; | 568 | spin_unlock(&rq->lock); |
569 | task_rq_unlock(rq, &flags); | 569 | rq->clock_deep_idle_events++; |
570 | } | ||
571 | EXPORT_SYMBOL_GPL(sched_clock_idle_sleep_event); | ||
572 | |||
573 | /* | ||
574 | * We just idled delta nanoseconds (called with irqs disabled): | ||
575 | */ | ||
576 | void sched_clock_idle_wakeup_event(u64 delta_ns) | ||
577 | { | ||
578 | struct rq *rq = cpu_rq(smp_processor_id()); | ||
579 | u64 now = sched_clock(); | ||
580 | |||
581 | rq->idle_clock += delta_ns; | ||
582 | /* | ||
583 | * Override the previous timestamp and ignore all | ||
584 | * sched_clock() deltas that occured while we idled, | ||
585 | * and use the PM-provided delta_ns to advance the | ||
586 | * rq clock: | ||
587 | */ | ||
588 | spin_lock(&rq->lock); | ||
589 | rq->prev_clock_raw = now; | ||
590 | rq->clock += delta_ns; | ||
591 | spin_unlock(&rq->lock); | ||
570 | } | 592 | } |
593 | EXPORT_SYMBOL_GPL(sched_clock_idle_wakeup_event); | ||
571 | 594 | ||
572 | /* | 595 | /* |
573 | * resched_task - mark a task 'to be rescheduled now'. | 596 | * resched_task - mark a task 'to be rescheduled now'. |
@@ -2157,12 +2180,6 @@ int can_migrate_task(struct task_struct *p, struct rq *rq, int this_cpu, | |||
2157 | if (task_running(rq, p)) | 2180 | if (task_running(rq, p)) |
2158 | return 0; | 2181 | return 0; |
2159 | 2182 | ||
2160 | /* | ||
2161 | * Aggressive migration if too many balance attempts have failed: | ||
2162 | */ | ||
2163 | if (sd->nr_balance_failed > sd->cache_nice_tries) | ||
2164 | return 1; | ||
2165 | |||
2166 | return 1; | 2183 | return 1; |
2167 | } | 2184 | } |
2168 | 2185 | ||
@@ -2494,7 +2511,7 @@ group_next: | |||
2494 | * a think about bumping its value to force at least one task to be | 2511 | * a think about bumping its value to force at least one task to be |
2495 | * moved | 2512 | * moved |
2496 | */ | 2513 | */ |
2497 | if (*imbalance + SCHED_LOAD_SCALE_FUZZ < busiest_load_per_task/2) { | 2514 | if (*imbalance + SCHED_LOAD_SCALE_FUZZ < busiest_load_per_task) { |
2498 | unsigned long tmp, pwr_now, pwr_move; | 2515 | unsigned long tmp, pwr_now, pwr_move; |
2499 | unsigned int imbn; | 2516 | unsigned int imbn; |
2500 | 2517 | ||
@@ -3020,6 +3037,7 @@ static inline void rebalance_domains(int cpu, enum cpu_idle_type idle) | |||
3020 | struct sched_domain *sd; | 3037 | struct sched_domain *sd; |
3021 | /* Earliest time when we have to do rebalance again */ | 3038 | /* Earliest time when we have to do rebalance again */ |
3022 | unsigned long next_balance = jiffies + 60*HZ; | 3039 | unsigned long next_balance = jiffies + 60*HZ; |
3040 | int update_next_balance = 0; | ||
3023 | 3041 | ||
3024 | for_each_domain(cpu, sd) { | 3042 | for_each_domain(cpu, sd) { |
3025 | if (!(sd->flags & SD_LOAD_BALANCE)) | 3043 | if (!(sd->flags & SD_LOAD_BALANCE)) |
@@ -3056,8 +3074,10 @@ static inline void rebalance_domains(int cpu, enum cpu_idle_type idle) | |||
3056 | if (sd->flags & SD_SERIALIZE) | 3074 | if (sd->flags & SD_SERIALIZE) |
3057 | spin_unlock(&balancing); | 3075 | spin_unlock(&balancing); |
3058 | out: | 3076 | out: |
3059 | if (time_after(next_balance, sd->last_balance + interval)) | 3077 | if (time_after(next_balance, sd->last_balance + interval)) { |
3060 | next_balance = sd->last_balance + interval; | 3078 | next_balance = sd->last_balance + interval; |
3079 | update_next_balance = 1; | ||
3080 | } | ||
3061 | 3081 | ||
3062 | /* | 3082 | /* |
3063 | * Stop the load balance at this level. There is another | 3083 | * Stop the load balance at this level. There is another |
@@ -3067,7 +3087,14 @@ out: | |||
3067 | if (!balance) | 3087 | if (!balance) |
3068 | break; | 3088 | break; |
3069 | } | 3089 | } |
3070 | rq->next_balance = next_balance; | 3090 | |
3091 | /* | ||
3092 | * next_balance will be updated only when there is a need. | ||
3093 | * When the cpu is attached to null domain for ex, it will not be | ||
3094 | * updated. | ||
3095 | */ | ||
3096 | if (likely(update_next_balance)) | ||
3097 | rq->next_balance = next_balance; | ||
3071 | } | 3098 | } |
3072 | 3099 | ||
3073 | /* | 3100 | /* |
@@ -4884,14 +4911,18 @@ cpumask_t nohz_cpu_mask = CPU_MASK_NONE; | |||
4884 | static inline void sched_init_granularity(void) | 4911 | static inline void sched_init_granularity(void) |
4885 | { | 4912 | { |
4886 | unsigned int factor = 1 + ilog2(num_online_cpus()); | 4913 | unsigned int factor = 1 + ilog2(num_online_cpus()); |
4887 | const unsigned long gran_limit = 100000000; | 4914 | const unsigned long limit = 100000000; |
4915 | |||
4916 | sysctl_sched_min_granularity *= factor; | ||
4917 | if (sysctl_sched_min_granularity > limit) | ||
4918 | sysctl_sched_min_granularity = limit; | ||
4888 | 4919 | ||
4889 | sysctl_sched_granularity *= factor; | 4920 | sysctl_sched_latency *= factor; |
4890 | if (sysctl_sched_granularity > gran_limit) | 4921 | if (sysctl_sched_latency > limit) |
4891 | sysctl_sched_granularity = gran_limit; | 4922 | sysctl_sched_latency = limit; |
4892 | 4923 | ||
4893 | sysctl_sched_runtime_limit = sysctl_sched_granularity * 4; | 4924 | sysctl_sched_runtime_limit = sysctl_sched_latency; |
4894 | sysctl_sched_wakeup_granularity = sysctl_sched_granularity / 2; | 4925 | sysctl_sched_wakeup_granularity = sysctl_sched_min_granularity / 2; |
4895 | } | 4926 | } |
4896 | 4927 | ||
4897 | #ifdef CONFIG_SMP | 4928 | #ifdef CONFIG_SMP |
@@ -5234,15 +5265,16 @@ static void migrate_dead_tasks(unsigned int dead_cpu) | |||
5234 | static struct ctl_table sd_ctl_dir[] = { | 5265 | static struct ctl_table sd_ctl_dir[] = { |
5235 | { | 5266 | { |
5236 | .procname = "sched_domain", | 5267 | .procname = "sched_domain", |
5237 | .mode = 0755, | 5268 | .mode = 0555, |
5238 | }, | 5269 | }, |
5239 | {0,}, | 5270 | {0,}, |
5240 | }; | 5271 | }; |
5241 | 5272 | ||
5242 | static struct ctl_table sd_ctl_root[] = { | 5273 | static struct ctl_table sd_ctl_root[] = { |
5243 | { | 5274 | { |
5275 | .ctl_name = CTL_KERN, | ||
5244 | .procname = "kernel", | 5276 | .procname = "kernel", |
5245 | .mode = 0755, | 5277 | .mode = 0555, |
5246 | .child = sd_ctl_dir, | 5278 | .child = sd_ctl_dir, |
5247 | }, | 5279 | }, |
5248 | {0,}, | 5280 | {0,}, |
@@ -5318,7 +5350,7 @@ static ctl_table *sd_alloc_ctl_cpu_table(int cpu) | |||
5318 | for_each_domain(cpu, sd) { | 5350 | for_each_domain(cpu, sd) { |
5319 | snprintf(buf, 32, "domain%d", i); | 5351 | snprintf(buf, 32, "domain%d", i); |
5320 | entry->procname = kstrdup(buf, GFP_KERNEL); | 5352 | entry->procname = kstrdup(buf, GFP_KERNEL); |
5321 | entry->mode = 0755; | 5353 | entry->mode = 0555; |
5322 | entry->child = sd_alloc_ctl_domain_table(sd); | 5354 | entry->child = sd_alloc_ctl_domain_table(sd); |
5323 | entry++; | 5355 | entry++; |
5324 | i++; | 5356 | i++; |
@@ -5338,7 +5370,7 @@ static void init_sched_domain_sysctl(void) | |||
5338 | for (i = 0; i < cpu_num; i++, entry++) { | 5370 | for (i = 0; i < cpu_num; i++, entry++) { |
5339 | snprintf(buf, 32, "cpu%d", i); | 5371 | snprintf(buf, 32, "cpu%d", i); |
5340 | entry->procname = kstrdup(buf, GFP_KERNEL); | 5372 | entry->procname = kstrdup(buf, GFP_KERNEL); |
5341 | entry->mode = 0755; | 5373 | entry->mode = 0555; |
5342 | entry->child = sd_alloc_ctl_cpu_table(i); | 5374 | entry->child = sd_alloc_ctl_cpu_table(i); |
5343 | } | 5375 | } |
5344 | sd_sysctl_header = register_sysctl_table(sd_ctl_root); | 5376 | sd_sysctl_header = register_sysctl_table(sd_ctl_root); |
diff --git a/kernel/sched_debug.c b/kernel/sched_debug.c index 87e524762b85..ab18f45f2ab2 100644 --- a/kernel/sched_debug.c +++ b/kernel/sched_debug.c | |||
@@ -154,10 +154,11 @@ static void print_cpu(struct seq_file *m, int cpu) | |||
154 | P(next_balance); | 154 | P(next_balance); |
155 | P(curr->pid); | 155 | P(curr->pid); |
156 | P(clock); | 156 | P(clock); |
157 | P(idle_clock); | ||
157 | P(prev_clock_raw); | 158 | P(prev_clock_raw); |
158 | P(clock_warps); | 159 | P(clock_warps); |
159 | P(clock_overflows); | 160 | P(clock_overflows); |
160 | P(clock_unstable_events); | 161 | P(clock_deep_idle_events); |
161 | P(clock_max_delta); | 162 | P(clock_max_delta); |
162 | P(cpu_load[0]); | 163 | P(cpu_load[0]); |
163 | P(cpu_load[1]); | 164 | P(cpu_load[1]); |
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index fedbb51bba96..ee3771850aaf 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
@@ -15,34 +15,42 @@ | |||
15 | * | 15 | * |
16 | * Scaled math optimizations by Thomas Gleixner | 16 | * Scaled math optimizations by Thomas Gleixner |
17 | * Copyright (C) 2007, Thomas Gleixner <tglx@linutronix.de> | 17 | * Copyright (C) 2007, Thomas Gleixner <tglx@linutronix.de> |
18 | * | ||
19 | * Adaptive scheduling granularity, math enhancements by Peter Zijlstra | ||
20 | * Copyright (C) 2007 Red Hat, Inc., Peter Zijlstra <pzijlstr@redhat.com> | ||
18 | */ | 21 | */ |
19 | 22 | ||
20 | /* | 23 | /* |
21 | * Preemption granularity: | 24 | * Targeted preemption latency for CPU-bound tasks: |
22 | * (default: 2 msec, units: nanoseconds) | 25 | * (default: 20ms, units: nanoseconds) |
23 | * | 26 | * |
24 | * NOTE: this granularity value is not the same as the concept of | 27 | * NOTE: this latency value is not the same as the concept of |
25 | * 'timeslice length' - timeslices in CFS will typically be somewhat | 28 | * 'timeslice length' - timeslices in CFS are of variable length. |
26 | * larger than this value. (to see the precise effective timeslice | 29 | * (to see the precise effective timeslice length of your workload, |
27 | * length of your workload, run vmstat and monitor the context-switches | 30 | * run vmstat and monitor the context-switches field) |
28 | * field) | ||
29 | * | 31 | * |
30 | * On SMP systems the value of this is multiplied by the log2 of the | 32 | * On SMP systems the value of this is multiplied by the log2 of the |
31 | * number of CPUs. (i.e. factor 2x on 2-way systems, 3x on 4-way | 33 | * number of CPUs. (i.e. factor 2x on 2-way systems, 3x on 4-way |
32 | * systems, 4x on 8-way systems, 5x on 16-way systems, etc.) | 34 | * systems, 4x on 8-way systems, 5x on 16-way systems, etc.) |
35 | * Targeted preemption latency for CPU-bound tasks: | ||
36 | */ | ||
37 | unsigned int sysctl_sched_latency __read_mostly = 20000000ULL; | ||
38 | |||
39 | /* | ||
40 | * Minimal preemption granularity for CPU-bound tasks: | ||
41 | * (default: 2 msec, units: nanoseconds) | ||
33 | */ | 42 | */ |
34 | unsigned int sysctl_sched_granularity __read_mostly = 2000000000ULL/HZ; | 43 | unsigned int sysctl_sched_min_granularity __read_mostly = 2000000ULL; |
35 | 44 | ||
36 | /* | 45 | /* |
37 | * SCHED_BATCH wake-up granularity. | 46 | * SCHED_BATCH wake-up granularity. |
38 | * (default: 10 msec, units: nanoseconds) | 47 | * (default: 25 msec, units: nanoseconds) |
39 | * | 48 | * |
40 | * This option delays the preemption effects of decoupled workloads | 49 | * This option delays the preemption effects of decoupled workloads |
41 | * and reduces their over-scheduling. Synchronous workloads will still | 50 | * and reduces their over-scheduling. Synchronous workloads will still |
42 | * have immediate wakeup/sleep latencies. | 51 | * have immediate wakeup/sleep latencies. |
43 | */ | 52 | */ |
44 | unsigned int sysctl_sched_batch_wakeup_granularity __read_mostly = | 53 | unsigned int sysctl_sched_batch_wakeup_granularity __read_mostly = 25000000UL; |
45 | 10000000000ULL/HZ; | ||
46 | 54 | ||
47 | /* | 55 | /* |
48 | * SCHED_OTHER wake-up granularity. | 56 | * SCHED_OTHER wake-up granularity. |
@@ -52,12 +60,12 @@ unsigned int sysctl_sched_batch_wakeup_granularity __read_mostly = | |||
52 | * and reduces their over-scheduling. Synchronous workloads will still | 60 | * and reduces their over-scheduling. Synchronous workloads will still |
53 | * have immediate wakeup/sleep latencies. | 61 | * have immediate wakeup/sleep latencies. |
54 | */ | 62 | */ |
55 | unsigned int sysctl_sched_wakeup_granularity __read_mostly = 1000000000ULL/HZ; | 63 | unsigned int sysctl_sched_wakeup_granularity __read_mostly = 1000000UL; |
56 | 64 | ||
57 | unsigned int sysctl_sched_stat_granularity __read_mostly; | 65 | unsigned int sysctl_sched_stat_granularity __read_mostly; |
58 | 66 | ||
59 | /* | 67 | /* |
60 | * Initialized in sched_init_granularity(): | 68 | * Initialized in sched_init_granularity() [to 5 times the base granularity]: |
61 | */ | 69 | */ |
62 | unsigned int sysctl_sched_runtime_limit __read_mostly; | 70 | unsigned int sysctl_sched_runtime_limit __read_mostly; |
63 | 71 | ||
@@ -214,6 +222,49 @@ static struct sched_entity *__pick_next_entity(struct cfs_rq *cfs_rq) | |||
214 | */ | 222 | */ |
215 | 223 | ||
216 | /* | 224 | /* |
225 | * Calculate the preemption granularity needed to schedule every | ||
226 | * runnable task once per sysctl_sched_latency amount of time. | ||
227 | * (down to a sensible low limit on granularity) | ||
228 | * | ||
229 | * For example, if there are 2 tasks running and latency is 10 msecs, | ||
230 | * we switch tasks every 5 msecs. If we have 3 tasks running, we have | ||
231 | * to switch tasks every 3.33 msecs to get a 10 msecs observed latency | ||
232 | * for each task. We do finer and finer scheduling up to until we | ||
233 | * reach the minimum granularity value. | ||
234 | * | ||
235 | * To achieve this we use the following dynamic-granularity rule: | ||
236 | * | ||
237 | * gran = lat/nr - lat/nr/nr | ||
238 | * | ||
239 | * This comes out of the following equations: | ||
240 | * | ||
241 | * kA1 + gran = kB1 | ||
242 | * kB2 + gran = kA2 | ||
243 | * kA2 = kA1 | ||
244 | * kB2 = kB1 - d + d/nr | ||
245 | * lat = d * nr | ||
246 | * | ||
247 | * Where 'k' is key, 'A' is task A (waiting), 'B' is task B (running), | ||
248 | * '1' is start of time, '2' is end of time, 'd' is delay between | ||
249 | * 1 and 2 (during which task B was running), 'nr' is number of tasks | ||
250 | * running, 'lat' is the the period of each task. ('lat' is the | ||
251 | * sched_latency that we aim for.) | ||
252 | */ | ||
253 | static long | ||
254 | sched_granularity(struct cfs_rq *cfs_rq) | ||
255 | { | ||
256 | unsigned int gran = sysctl_sched_latency; | ||
257 | unsigned int nr = cfs_rq->nr_running; | ||
258 | |||
259 | if (nr > 1) { | ||
260 | gran = gran/nr - gran/nr/nr; | ||
261 | gran = max(gran, sysctl_sched_min_granularity); | ||
262 | } | ||
263 | |||
264 | return gran; | ||
265 | } | ||
266 | |||
267 | /* | ||
217 | * We rescale the rescheduling granularity of tasks according to their | 268 | * We rescale the rescheduling granularity of tasks according to their |
218 | * nice level, but only linearly, not exponentially: | 269 | * nice level, but only linearly, not exponentially: |
219 | */ | 270 | */ |
@@ -303,10 +354,10 @@ __update_curr(struct cfs_rq *cfs_rq, struct sched_entity *curr) | |||
303 | delta_fair = calc_delta_fair(delta_exec, lw); | 354 | delta_fair = calc_delta_fair(delta_exec, lw); |
304 | delta_mine = calc_delta_mine(delta_exec, curr->load.weight, lw); | 355 | delta_mine = calc_delta_mine(delta_exec, curr->load.weight, lw); |
305 | 356 | ||
306 | if (cfs_rq->sleeper_bonus > sysctl_sched_granularity) { | 357 | if (cfs_rq->sleeper_bonus > sysctl_sched_latency) { |
307 | delta = min(cfs_rq->sleeper_bonus, (u64)delta_exec); | 358 | delta = min((u64)delta_mine, cfs_rq->sleeper_bonus); |
308 | delta = calc_delta_mine(delta, curr->load.weight, lw); | 359 | delta = min(delta, (unsigned long)( |
309 | delta = min((u64)delta, cfs_rq->sleeper_bonus); | 360 | (long)sysctl_sched_runtime_limit - curr->wait_runtime)); |
310 | cfs_rq->sleeper_bonus -= delta; | 361 | cfs_rq->sleeper_bonus -= delta; |
311 | delta_mine -= delta; | 362 | delta_mine -= delta; |
312 | } | 363 | } |
@@ -494,6 +545,13 @@ static void __enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se) | |||
494 | unsigned long load = cfs_rq->load.weight, delta_fair; | 545 | unsigned long load = cfs_rq->load.weight, delta_fair; |
495 | long prev_runtime; | 546 | long prev_runtime; |
496 | 547 | ||
548 | /* | ||
549 | * Do not boost sleepers if there's too much bonus 'in flight' | ||
550 | * already: | ||
551 | */ | ||
552 | if (unlikely(cfs_rq->sleeper_bonus > sysctl_sched_runtime_limit)) | ||
553 | return; | ||
554 | |||
497 | if (sysctl_sched_features & SCHED_FEAT_SLEEPER_LOAD_AVG) | 555 | if (sysctl_sched_features & SCHED_FEAT_SLEEPER_LOAD_AVG) |
498 | load = rq_of(cfs_rq)->cpu_load[2]; | 556 | load = rq_of(cfs_rq)->cpu_load[2]; |
499 | 557 | ||
@@ -513,16 +571,13 @@ static void __enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se) | |||
513 | 571 | ||
514 | prev_runtime = se->wait_runtime; | 572 | prev_runtime = se->wait_runtime; |
515 | __add_wait_runtime(cfs_rq, se, delta_fair); | 573 | __add_wait_runtime(cfs_rq, se, delta_fair); |
574 | schedstat_add(cfs_rq, wait_runtime, se->wait_runtime); | ||
516 | delta_fair = se->wait_runtime - prev_runtime; | 575 | delta_fair = se->wait_runtime - prev_runtime; |
517 | 576 | ||
518 | /* | 577 | /* |
519 | * Track the amount of bonus we've given to sleepers: | 578 | * Track the amount of bonus we've given to sleepers: |
520 | */ | 579 | */ |
521 | cfs_rq->sleeper_bonus += delta_fair; | 580 | cfs_rq->sleeper_bonus += delta_fair; |
522 | if (unlikely(cfs_rq->sleeper_bonus > sysctl_sched_runtime_limit)) | ||
523 | cfs_rq->sleeper_bonus = sysctl_sched_runtime_limit; | ||
524 | |||
525 | schedstat_add(cfs_rq, wait_runtime, se->wait_runtime); | ||
526 | } | 581 | } |
527 | 582 | ||
528 | static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se) | 583 | static void enqueue_sleeper(struct cfs_rq *cfs_rq, struct sched_entity *se) |
@@ -686,7 +741,8 @@ static void entity_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr) | |||
686 | if (next == curr) | 741 | if (next == curr) |
687 | return; | 742 | return; |
688 | 743 | ||
689 | __check_preempt_curr_fair(cfs_rq, next, curr, sysctl_sched_granularity); | 744 | __check_preempt_curr_fair(cfs_rq, next, curr, |
745 | sched_granularity(cfs_rq)); | ||
690 | } | 746 | } |
691 | 747 | ||
692 | /************************************************** | 748 | /************************************************** |
@@ -1031,7 +1087,7 @@ static void task_new_fair(struct rq *rq, struct task_struct *p) | |||
1031 | * it will preempt the parent: | 1087 | * it will preempt the parent: |
1032 | */ | 1088 | */ |
1033 | p->se.fair_key = current->se.fair_key - | 1089 | p->se.fair_key = current->se.fair_key - |
1034 | niced_granularity(&rq->curr->se, sysctl_sched_granularity) - 1; | 1090 | niced_granularity(&rq->curr->se, sched_granularity(cfs_rq)) - 1; |
1035 | /* | 1091 | /* |
1036 | * The first wait is dominated by the child-runs-first logic, | 1092 | * The first wait is dominated by the child-runs-first logic, |
1037 | * so do not credit it with that waiting time yet: | 1093 | * so do not credit it with that waiting time yet: |
@@ -1044,7 +1100,7 @@ static void task_new_fair(struct rq *rq, struct task_struct *p) | |||
1044 | * -granularity/2, so initialize the task with that: | 1100 | * -granularity/2, so initialize the task with that: |
1045 | */ | 1101 | */ |
1046 | if (sysctl_sched_features & SCHED_FEAT_START_DEBIT) | 1102 | if (sysctl_sched_features & SCHED_FEAT_START_DEBIT) |
1047 | p->se.wait_runtime = -(sysctl_sched_granularity / 2); | 1103 | p->se.wait_runtime = -(sched_granularity(cfs_rq) / 2); |
1048 | 1104 | ||
1049 | __enqueue_entity(cfs_rq, se); | 1105 | __enqueue_entity(cfs_rq, se); |
1050 | } | 1106 | } |
@@ -1057,7 +1113,7 @@ static void task_new_fair(struct rq *rq, struct task_struct *p) | |||
1057 | */ | 1113 | */ |
1058 | static void set_curr_task_fair(struct rq *rq) | 1114 | static void set_curr_task_fair(struct rq *rq) |
1059 | { | 1115 | { |
1060 | struct sched_entity *se = &rq->curr.se; | 1116 | struct sched_entity *se = &rq->curr->se; |
1061 | 1117 | ||
1062 | for_each_sched_entity(se) | 1118 | for_each_sched_entity(se) |
1063 | set_next_entity(cfs_rq_of(se), se); | 1119 | set_next_entity(cfs_rq_of(se), se); |
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index dcdcad632fd9..4b87476a02d0 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c | |||
@@ -207,10 +207,15 @@ static void task_tick_rt(struct rq *rq, struct task_struct *p) | |||
207 | return; | 207 | return; |
208 | 208 | ||
209 | p->time_slice = static_prio_timeslice(p->static_prio); | 209 | p->time_slice = static_prio_timeslice(p->static_prio); |
210 | set_tsk_need_resched(p); | ||
211 | 210 | ||
212 | /* put it at the end of the queue: */ | 211 | /* |
213 | requeue_task_rt(rq, p); | 212 | * Requeue to the end of queue if we are not the only element |
213 | * on the queue: | ||
214 | */ | ||
215 | if (p->run_list.prev != p->run_list.next) { | ||
216 | requeue_task_rt(rq, p); | ||
217 | set_tsk_need_resched(p); | ||
218 | } | ||
214 | } | 219 | } |
215 | 220 | ||
216 | static struct sched_class rt_sched_class __read_mostly = { | 221 | static struct sched_class rt_sched_class __read_mostly = { |
diff --git a/kernel/signal.c b/kernel/signal.c index b27c01a66448..ad63109e413c 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -378,7 +378,7 @@ int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) | |||
378 | /* We only dequeue private signals from ourselves, we don't let | 378 | /* We only dequeue private signals from ourselves, we don't let |
379 | * signalfd steal them | 379 | * signalfd steal them |
380 | */ | 380 | */ |
381 | if (tsk == current) | 381 | if (likely(tsk == current)) |
382 | signr = __dequeue_signal(&tsk->pending, mask, info); | 382 | signr = __dequeue_signal(&tsk->pending, mask, info); |
383 | if (!signr) { | 383 | if (!signr) { |
384 | signr = __dequeue_signal(&tsk->signal->shared_pending, | 384 | signr = __dequeue_signal(&tsk->signal->shared_pending, |
@@ -425,7 +425,7 @@ int dequeue_signal(struct task_struct *tsk, sigset_t *mask, siginfo_t *info) | |||
425 | if (!(tsk->signal->flags & SIGNAL_GROUP_EXIT)) | 425 | if (!(tsk->signal->flags & SIGNAL_GROUP_EXIT)) |
426 | tsk->signal->flags |= SIGNAL_STOP_DEQUEUED; | 426 | tsk->signal->flags |= SIGNAL_STOP_DEQUEUED; |
427 | } | 427 | } |
428 | if ( signr && | 428 | if (signr && likely(tsk == current) && |
429 | ((info->si_code & __SI_MASK) == __SI_TIMER) && | 429 | ((info->si_code & __SI_MASK) == __SI_TIMER) && |
430 | info->si_sys_private){ | 430 | info->si_sys_private){ |
431 | /* | 431 | /* |
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 8bdb8c07e04f..6ace893c17c9 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <linux/capability.h> | 27 | #include <linux/capability.h> |
28 | #include <linux/ctype.h> | 28 | #include <linux/ctype.h> |
29 | #include <linux/utsname.h> | 29 | #include <linux/utsname.h> |
30 | #include <linux/capability.h> | ||
31 | #include <linux/smp_lock.h> | 30 | #include <linux/smp_lock.h> |
32 | #include <linux/fs.h> | 31 | #include <linux/fs.h> |
33 | #include <linux/init.h> | 32 | #include <linux/init.h> |
@@ -223,8 +222,19 @@ static ctl_table kern_table[] = { | |||
223 | #ifdef CONFIG_SCHED_DEBUG | 222 | #ifdef CONFIG_SCHED_DEBUG |
224 | { | 223 | { |
225 | .ctl_name = CTL_UNNUMBERED, | 224 | .ctl_name = CTL_UNNUMBERED, |
226 | .procname = "sched_granularity_ns", | 225 | .procname = "sched_min_granularity_ns", |
227 | .data = &sysctl_sched_granularity, | 226 | .data = &sysctl_sched_min_granularity, |
227 | .maxlen = sizeof(unsigned int), | ||
228 | .mode = 0644, | ||
229 | .proc_handler = &proc_dointvec_minmax, | ||
230 | .strategy = &sysctl_intvec, | ||
231 | .extra1 = &min_sched_granularity_ns, | ||
232 | .extra2 = &max_sched_granularity_ns, | ||
233 | }, | ||
234 | { | ||
235 | .ctl_name = CTL_UNNUMBERED, | ||
236 | .procname = "sched_latency_ns", | ||
237 | .data = &sysctl_sched_latency, | ||
228 | .maxlen = sizeof(unsigned int), | 238 | .maxlen = sizeof(unsigned int), |
229 | .mode = 0644, | 239 | .mode = 0644, |
230 | .proc_handler = &proc_dointvec_minmax, | 240 | .proc_handler = &proc_dointvec_minmax, |
@@ -284,6 +294,15 @@ static ctl_table kern_table[] = { | |||
284 | .mode = 0644, | 294 | .mode = 0644, |
285 | .proc_handler = &proc_dointvec, | 295 | .proc_handler = &proc_dointvec, |
286 | }, | 296 | }, |
297 | { | ||
298 | .ctl_name = CTL_UNNUMBERED, | ||
299 | .procname = "sched_features", | ||
300 | .data = &sysctl_sched_features, | ||
301 | .maxlen = sizeof(unsigned int), | ||
302 | .mode = 0644, | ||
303 | .proc_handler = &proc_dointvec, | ||
304 | }, | ||
305 | #endif | ||
287 | #ifdef CONFIG_PROVE_LOCKING | 306 | #ifdef CONFIG_PROVE_LOCKING |
288 | { | 307 | { |
289 | .ctl_name = CTL_UNNUMBERED, | 308 | .ctl_name = CTL_UNNUMBERED, |
@@ -305,15 +324,6 @@ static ctl_table kern_table[] = { | |||
305 | }, | 324 | }, |
306 | #endif | 325 | #endif |
307 | { | 326 | { |
308 | .ctl_name = CTL_UNNUMBERED, | ||
309 | .procname = "sched_features", | ||
310 | .data = &sysctl_sched_features, | ||
311 | .maxlen = sizeof(unsigned int), | ||
312 | .mode = 0644, | ||
313 | .proc_handler = &proc_dointvec, | ||
314 | }, | ||
315 | #endif | ||
316 | { | ||
317 | .ctl_name = KERN_PANIC, | 327 | .ctl_name = KERN_PANIC, |
318 | .procname = "panic", | 328 | .procname = "panic", |
319 | .data = &panic_timeout, | 329 | .data = &panic_timeout, |
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 58e5c152a6bb..e080d1d744cc 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
@@ -635,7 +635,7 @@ int keventd_up(void) | |||
635 | int current_is_keventd(void) | 635 | int current_is_keventd(void) |
636 | { | 636 | { |
637 | struct cpu_workqueue_struct *cwq; | 637 | struct cpu_workqueue_struct *cwq; |
638 | int cpu = smp_processor_id(); /* preempt-safe: keventd is per-cpu */ | 638 | int cpu = raw_smp_processor_id(); /* preempt-safe: keventd is per-cpu */ |
639 | int ret = 0; | 639 | int ret = 0; |
640 | 640 | ||
641 | BUG_ON(!keventd_wq); | 641 | BUG_ON(!keventd_wq); |
diff --git a/lib/Kconfig b/lib/Kconfig index e5c2c514174a..ba3d104994d9 100644 --- a/lib/Kconfig +++ b/lib/Kconfig | |||
@@ -138,4 +138,7 @@ config HAS_DMA | |||
138 | depends on !NO_DMA | 138 | depends on !NO_DMA |
139 | default y | 139 | default y |
140 | 140 | ||
141 | config CHECK_SIGNATURE | ||
142 | bool | ||
143 | |||
141 | endmenu | 144 | endmenu |
diff --git a/lib/Makefile b/lib/Makefile index d9e5f1cd0bfb..6b0ba8cf4e5f 100644 --- a/lib/Makefile +++ b/lib/Makefile | |||
@@ -21,7 +21,8 @@ CFLAGS_kobject_uevent.o += -DDEBUG | |||
21 | endif | 21 | endif |
22 | 22 | ||
23 | obj-$(CONFIG_GENERIC_IOMAP) += iomap.o | 23 | obj-$(CONFIG_GENERIC_IOMAP) += iomap.o |
24 | obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o check_signature.o | 24 | obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o |
25 | obj-$(CONFIG_CHECK_SIGNATURE) += check_signature.o | ||
25 | obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o | 26 | obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o |
26 | obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o | 27 | obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o |
27 | lib-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o | 28 | lib-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o |
diff --git a/lib/iomap.c b/lib/iomap.c index a57d262a5ed9..864f2ec1966e 100644 --- a/lib/iomap.c +++ b/lib/iomap.c | |||
@@ -240,7 +240,20 @@ void ioport_unmap(void __iomem *addr) | |||
240 | EXPORT_SYMBOL(ioport_map); | 240 | EXPORT_SYMBOL(ioport_map); |
241 | EXPORT_SYMBOL(ioport_unmap); | 241 | EXPORT_SYMBOL(ioport_unmap); |
242 | 242 | ||
243 | /* Create a virtual mapping cookie for a PCI BAR (memory or IO) */ | 243 | /** |
244 | * pci_iomap - create a virtual mapping cookie for a PCI BAR | ||
245 | * @dev: PCI device that owns the BAR | ||
246 | * @bar: BAR number | ||
247 | * @maxlen: length of the memory to map | ||
248 | * | ||
249 | * Using this function you will get a __iomem address to your device BAR. | ||
250 | * You can access it using ioread*() and iowrite*(). These functions hide | ||
251 | * the details if this is a MMIO or PIO address space and will just do what | ||
252 | * you expect from them in the correct way. | ||
253 | * | ||
254 | * @maxlen specifies the maximum length to map. If you want to get access to | ||
255 | * the complete BAR without checking for its length first, pass %0 here. | ||
256 | * */ | ||
244 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) | 257 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) |
245 | { | 258 | { |
246 | unsigned long start = pci_resource_start(dev, bar); | 259 | unsigned long start = pci_resource_start(dev, bar); |
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index d7ca59d66c59..de4cf458d6e1 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -643,7 +643,7 @@ int follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma, | |||
643 | spin_unlock(&mm->page_table_lock); | 643 | spin_unlock(&mm->page_table_lock); |
644 | ret = hugetlb_fault(mm, vma, vaddr, 0); | 644 | ret = hugetlb_fault(mm, vma, vaddr, 0); |
645 | spin_lock(&mm->page_table_lock); | 645 | spin_lock(&mm->page_table_lock); |
646 | if (!(ret & VM_FAULT_MAJOR)) | 646 | if (!(ret & VM_FAULT_ERROR)) |
647 | continue; | 647 | continue; |
648 | 648 | ||
649 | remainder = 0; | 649 | remainder = 0; |
diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 71b84b45154a..172abffeb2e3 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c | |||
@@ -149,7 +149,7 @@ static struct zonelist *bind_zonelist(nodemask_t *nodes) | |||
149 | lower zones etc. Avoid empty zones because the memory allocator | 149 | lower zones etc. Avoid empty zones because the memory allocator |
150 | doesn't like them. If you implement node hot removal you | 150 | doesn't like them. If you implement node hot removal you |
151 | have to fix that. */ | 151 | have to fix that. */ |
152 | k = policy_zone; | 152 | k = MAX_NR_ZONES - 1; |
153 | while (1) { | 153 | while (1) { |
154 | for_each_node_mask(nd, *nodes) { | 154 | for_each_node_mask(nd, *nodes) { |
155 | struct zone *z = &NODE_DATA(nd)->node_zones[k]; | 155 | struct zone *z = &NODE_DATA(nd)->node_zones[k]; |
@@ -93,7 +93,7 @@ atomic_t vm_committed_space = ATOMIC_INIT(0); | |||
93 | * Note this is a helper function intended to be used by LSMs which | 93 | * Note this is a helper function intended to be used by LSMs which |
94 | * wish to use this logic. | 94 | * wish to use this logic. |
95 | */ | 95 | */ |
96 | int __vm_enough_memory(long pages, int cap_sys_admin) | 96 | int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin) |
97 | { | 97 | { |
98 | unsigned long free, allowed; | 98 | unsigned long free, allowed; |
99 | 99 | ||
@@ -166,7 +166,7 @@ int __vm_enough_memory(long pages, int cap_sys_admin) | |||
166 | 166 | ||
167 | /* Don't let a single process grow too big: | 167 | /* Don't let a single process grow too big: |
168 | leave 3% of the size of this process for other processes */ | 168 | leave 3% of the size of this process for other processes */ |
169 | allowed -= current->mm->total_vm / 32; | 169 | allowed -= mm->total_vm / 32; |
170 | 170 | ||
171 | /* | 171 | /* |
172 | * cast `allowed' as a signed long because vm_committed_space | 172 | * cast `allowed' as a signed long because vm_committed_space |
@@ -2077,7 +2077,7 @@ int insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma) | |||
2077 | if (__vma && __vma->vm_start < vma->vm_end) | 2077 | if (__vma && __vma->vm_start < vma->vm_end) |
2078 | return -ENOMEM; | 2078 | return -ENOMEM; |
2079 | if ((vma->vm_flags & VM_ACCOUNT) && | 2079 | if ((vma->vm_flags & VM_ACCOUNT) && |
2080 | security_vm_enough_memory(vma_pages(vma))) | 2080 | security_vm_enough_memory_mm(mm, vma_pages(vma))) |
2081 | return -ENOMEM; | 2081 | return -ENOMEM; |
2082 | vma_link(mm, vma, prev, rb_link, rb_parent); | 2082 | vma_link(mm, vma, prev, rb_link, rb_parent); |
2083 | return 0; | 2083 | return 0; |
diff --git a/mm/nommu.c b/mm/nommu.c index 9eef6a398555..8ed0cb43118a 100644 --- a/mm/nommu.c +++ b/mm/nommu.c | |||
@@ -1270,7 +1270,7 @@ EXPORT_SYMBOL(get_unmapped_area); | |||
1270 | * Note this is a helper function intended to be used by LSMs which | 1270 | * Note this is a helper function intended to be used by LSMs which |
1271 | * wish to use this logic. | 1271 | * wish to use this logic. |
1272 | */ | 1272 | */ |
1273 | int __vm_enough_memory(long pages, int cap_sys_admin) | 1273 | int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin) |
1274 | { | 1274 | { |
1275 | unsigned long free, allowed; | 1275 | unsigned long free, allowed; |
1276 | 1276 | ||
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 3da85b81dabb..6427653023aa 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -1157,6 +1157,7 @@ get_page_from_freelist(gfp_t gfp_mask, unsigned int order, | |||
1157 | nodemask_t *allowednodes = NULL;/* zonelist_cache approximation */ | 1157 | nodemask_t *allowednodes = NULL;/* zonelist_cache approximation */ |
1158 | int zlc_active = 0; /* set if using zonelist_cache */ | 1158 | int zlc_active = 0; /* set if using zonelist_cache */ |
1159 | int did_zlc_setup = 0; /* just call zlc_setup() one time */ | 1159 | int did_zlc_setup = 0; /* just call zlc_setup() one time */ |
1160 | enum zone_type highest_zoneidx = -1; /* Gets set for policy zonelists */ | ||
1160 | 1161 | ||
1161 | zonelist_scan: | 1162 | zonelist_scan: |
1162 | /* | 1163 | /* |
@@ -1166,6 +1167,18 @@ zonelist_scan: | |||
1166 | z = zonelist->zones; | 1167 | z = zonelist->zones; |
1167 | 1168 | ||
1168 | do { | 1169 | do { |
1170 | /* | ||
1171 | * In NUMA, this could be a policy zonelist which contains | ||
1172 | * zones that may not be allowed by the current gfp_mask. | ||
1173 | * Check the zone is allowed by the current flags | ||
1174 | */ | ||
1175 | if (unlikely(alloc_should_filter_zonelist(zonelist))) { | ||
1176 | if (highest_zoneidx == -1) | ||
1177 | highest_zoneidx = gfp_zone(gfp_mask); | ||
1178 | if (zone_idx(*z) > highest_zoneidx) | ||
1179 | continue; | ||
1180 | } | ||
1181 | |||
1169 | if (NUMA_BUILD && zlc_active && | 1182 | if (NUMA_BUILD && zlc_active && |
1170 | !zlc_zone_worth_trying(zonelist, z, allowednodes)) | 1183 | !zlc_zone_worth_trying(zonelist, z, allowednodes)) |
1171 | continue; | 1184 | continue; |
@@ -883,6 +883,7 @@ static void __slab_error(const char *function, struct kmem_cache *cachep, | |||
883 | */ | 883 | */ |
884 | 884 | ||
885 | static int use_alien_caches __read_mostly = 1; | 885 | static int use_alien_caches __read_mostly = 1; |
886 | static int numa_platform __read_mostly = 1; | ||
886 | static int __init noaliencache_setup(char *s) | 887 | static int __init noaliencache_setup(char *s) |
887 | { | 888 | { |
888 | use_alien_caches = 0; | 889 | use_alien_caches = 0; |
@@ -1399,8 +1400,10 @@ void __init kmem_cache_init(void) | |||
1399 | int order; | 1400 | int order; |
1400 | int node; | 1401 | int node; |
1401 | 1402 | ||
1402 | if (num_possible_nodes() == 1) | 1403 | if (num_possible_nodes() == 1) { |
1403 | use_alien_caches = 0; | 1404 | use_alien_caches = 0; |
1405 | numa_platform = 0; | ||
1406 | } | ||
1404 | 1407 | ||
1405 | for (i = 0; i < NUM_INIT_LISTS; i++) { | 1408 | for (i = 0; i < NUM_INIT_LISTS; i++) { |
1406 | kmem_list3_init(&initkmem_list3[i]); | 1409 | kmem_list3_init(&initkmem_list3[i]); |
@@ -3558,7 +3561,14 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp) | |||
3558 | check_irq_off(); | 3561 | check_irq_off(); |
3559 | objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0)); | 3562 | objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0)); |
3560 | 3563 | ||
3561 | if (cache_free_alien(cachep, objp)) | 3564 | /* |
3565 | * Skip calling cache_free_alien() when the platform is not numa. | ||
3566 | * This will avoid cache misses that happen while accessing slabp (which | ||
3567 | * is per page memory reference) to get nodeid. Instead use a global | ||
3568 | * variable to skip the call, which is mostly likely to be present in | ||
3569 | * the cache. | ||
3570 | */ | ||
3571 | if (numa_platform && cache_free_alien(cachep, objp)) | ||
3562 | return; | 3572 | return; |
3563 | 3573 | ||
3564 | if (likely(ac->avail < ac->limit)) { | 3574 | if (likely(ac->avail < ac->limit)) { |
@@ -1877,9 +1877,16 @@ static struct kmem_cache_node * __init early_kmem_cache_node_alloc(gfp_t gfpflag | |||
1877 | 1877 | ||
1878 | BUG_ON(kmalloc_caches->size < sizeof(struct kmem_cache_node)); | 1878 | BUG_ON(kmalloc_caches->size < sizeof(struct kmem_cache_node)); |
1879 | 1879 | ||
1880 | page = new_slab(kmalloc_caches, gfpflags | GFP_THISNODE, node); | 1880 | page = new_slab(kmalloc_caches, gfpflags, node); |
1881 | 1881 | ||
1882 | BUG_ON(!page); | 1882 | BUG_ON(!page); |
1883 | if (page_to_nid(page) != node) { | ||
1884 | printk(KERN_ERR "SLUB: Unable to allocate memory from " | ||
1885 | "node %d\n", node); | ||
1886 | printk(KERN_ERR "SLUB: Allocating a useless per node structure " | ||
1887 | "in order to be able to continue\n"); | ||
1888 | } | ||
1889 | |||
1883 | n = page->freelist; | 1890 | n = page->freelist; |
1884 | BUG_ON(!n); | 1891 | BUG_ON(!n); |
1885 | page->freelist = get_freepointer(kmalloc_caches, n); | 1892 | page->freelist = get_freepointer(kmalloc_caches, n); |
@@ -3112,7 +3119,7 @@ static int list_locations(struct kmem_cache *s, char *buf, | |||
3112 | unsigned long flags; | 3119 | unsigned long flags; |
3113 | struct page *page; | 3120 | struct page *page; |
3114 | 3121 | ||
3115 | if (!atomic_read(&n->nr_slabs)) | 3122 | if (!atomic_long_read(&n->nr_slabs)) |
3116 | continue; | 3123 | continue; |
3117 | 3124 | ||
3118 | spin_lock_irqsave(&n->list_lock, flags); | 3125 | spin_lock_irqsave(&n->list_lock, flags); |
@@ -3247,7 +3254,7 @@ static unsigned long slab_objects(struct kmem_cache *s, | |||
3247 | } | 3254 | } |
3248 | 3255 | ||
3249 | if (flags & SO_FULL) { | 3256 | if (flags & SO_FULL) { |
3250 | int full_slabs = atomic_read(&n->nr_slabs) | 3257 | int full_slabs = atomic_long_read(&n->nr_slabs) |
3251 | - per_cpu[node] | 3258 | - per_cpu[node] |
3252 | - n->nr_partial; | 3259 | - n->nr_partial; |
3253 | 3260 | ||
@@ -3283,7 +3290,7 @@ static int any_slab_objects(struct kmem_cache *s) | |||
3283 | for_each_node(node) { | 3290 | for_each_node(node) { |
3284 | struct kmem_cache_node *n = get_node(s, node); | 3291 | struct kmem_cache_node *n = get_node(s, node); |
3285 | 3292 | ||
3286 | if (n->nr_partial || atomic_read(&n->nr_slabs)) | 3293 | if (n->nr_partial || atomic_long_read(&n->nr_slabs)) |
3287 | return 1; | 3294 | return 1; |
3288 | } | 3295 | } |
3289 | return 0; | 3296 | return 0; |
diff --git a/mm/sparse.c b/mm/sparse.c index 3047bf06c1f3..239f5a720d38 100644 --- a/mm/sparse.c +++ b/mm/sparse.c | |||
@@ -41,6 +41,15 @@ int page_to_nid(struct page *page) | |||
41 | return section_to_node_table[page_to_section(page)]; | 41 | return section_to_node_table[page_to_section(page)]; |
42 | } | 42 | } |
43 | EXPORT_SYMBOL(page_to_nid); | 43 | EXPORT_SYMBOL(page_to_nid); |
44 | |||
45 | static void set_section_nid(unsigned long section_nr, int nid) | ||
46 | { | ||
47 | section_to_node_table[section_nr] = nid; | ||
48 | } | ||
49 | #else /* !NODE_NOT_IN_PAGE_FLAGS */ | ||
50 | static inline void set_section_nid(unsigned long section_nr, int nid) | ||
51 | { | ||
52 | } | ||
44 | #endif | 53 | #endif |
45 | 54 | ||
46 | #ifdef CONFIG_SPARSEMEM_EXTREME | 55 | #ifdef CONFIG_SPARSEMEM_EXTREME |
@@ -68,10 +77,6 @@ static int __meminit sparse_index_init(unsigned long section_nr, int nid) | |||
68 | struct mem_section *section; | 77 | struct mem_section *section; |
69 | int ret = 0; | 78 | int ret = 0; |
70 | 79 | ||
71 | #ifdef NODE_NOT_IN_PAGE_FLAGS | ||
72 | section_to_node_table[section_nr] = nid; | ||
73 | #endif | ||
74 | |||
75 | if (mem_section[root]) | 80 | if (mem_section[root]) |
76 | return -EEXIST; | 81 | return -EEXIST; |
77 | 82 | ||
@@ -148,6 +153,7 @@ void __init memory_present(int nid, unsigned long start, unsigned long end) | |||
148 | struct mem_section *ms; | 153 | struct mem_section *ms; |
149 | 154 | ||
150 | sparse_index_init(section, nid); | 155 | sparse_index_init(section, nid); |
156 | set_section_nid(section, nid); | ||
151 | 157 | ||
152 | ms = __nr_to_section(section); | 158 | ms = __nr_to_section(section); |
153 | if (!ms->section_mem_map) | 159 | if (!ms->section_mem_map) |
diff --git a/mm/vmscan.c b/mm/vmscan.c index d419e10e3daa..a6e65d024995 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -271,6 +271,12 @@ static void handle_write_error(struct address_space *mapping, | |||
271 | unlock_page(page); | 271 | unlock_page(page); |
272 | } | 272 | } |
273 | 273 | ||
274 | /* Request for sync pageout. */ | ||
275 | enum pageout_io { | ||
276 | PAGEOUT_IO_ASYNC, | ||
277 | PAGEOUT_IO_SYNC, | ||
278 | }; | ||
279 | |||
274 | /* possible outcome of pageout() */ | 280 | /* possible outcome of pageout() */ |
275 | typedef enum { | 281 | typedef enum { |
276 | /* failed to write page out, page is locked */ | 282 | /* failed to write page out, page is locked */ |
@@ -287,7 +293,8 @@ typedef enum { | |||
287 | * pageout is called by shrink_page_list() for each dirty page. | 293 | * pageout is called by shrink_page_list() for each dirty page. |
288 | * Calls ->writepage(). | 294 | * Calls ->writepage(). |
289 | */ | 295 | */ |
290 | static pageout_t pageout(struct page *page, struct address_space *mapping) | 296 | static pageout_t pageout(struct page *page, struct address_space *mapping, |
297 | enum pageout_io sync_writeback) | ||
291 | { | 298 | { |
292 | /* | 299 | /* |
293 | * If the page is dirty, only perform writeback if that write | 300 | * If the page is dirty, only perform writeback if that write |
@@ -346,6 +353,15 @@ static pageout_t pageout(struct page *page, struct address_space *mapping) | |||
346 | ClearPageReclaim(page); | 353 | ClearPageReclaim(page); |
347 | return PAGE_ACTIVATE; | 354 | return PAGE_ACTIVATE; |
348 | } | 355 | } |
356 | |||
357 | /* | ||
358 | * Wait on writeback if requested to. This happens when | ||
359 | * direct reclaiming a large contiguous area and the | ||
360 | * first attempt to free a range of pages fails. | ||
361 | */ | ||
362 | if (PageWriteback(page) && sync_writeback == PAGEOUT_IO_SYNC) | ||
363 | wait_on_page_writeback(page); | ||
364 | |||
349 | if (!PageWriteback(page)) { | 365 | if (!PageWriteback(page)) { |
350 | /* synchronous write or broken a_ops? */ | 366 | /* synchronous write or broken a_ops? */ |
351 | ClearPageReclaim(page); | 367 | ClearPageReclaim(page); |
@@ -423,7 +439,8 @@ cannot_free: | |||
423 | * shrink_page_list() returns the number of reclaimed pages | 439 | * shrink_page_list() returns the number of reclaimed pages |
424 | */ | 440 | */ |
425 | static unsigned long shrink_page_list(struct list_head *page_list, | 441 | static unsigned long shrink_page_list(struct list_head *page_list, |
426 | struct scan_control *sc) | 442 | struct scan_control *sc, |
443 | enum pageout_io sync_writeback) | ||
427 | { | 444 | { |
428 | LIST_HEAD(ret_pages); | 445 | LIST_HEAD(ret_pages); |
429 | struct pagevec freed_pvec; | 446 | struct pagevec freed_pvec; |
@@ -458,8 +475,23 @@ static unsigned long shrink_page_list(struct list_head *page_list, | |||
458 | if (page_mapped(page) || PageSwapCache(page)) | 475 | if (page_mapped(page) || PageSwapCache(page)) |
459 | sc->nr_scanned++; | 476 | sc->nr_scanned++; |
460 | 477 | ||
461 | if (PageWriteback(page)) | 478 | may_enter_fs = (sc->gfp_mask & __GFP_FS) || |
462 | goto keep_locked; | 479 | (PageSwapCache(page) && (sc->gfp_mask & __GFP_IO)); |
480 | |||
481 | if (PageWriteback(page)) { | ||
482 | /* | ||
483 | * Synchronous reclaim is performed in two passes, | ||
484 | * first an asynchronous pass over the list to | ||
485 | * start parallel writeback, and a second synchronous | ||
486 | * pass to wait for the IO to complete. Wait here | ||
487 | * for any page for which writeback has already | ||
488 | * started. | ||
489 | */ | ||
490 | if (sync_writeback == PAGEOUT_IO_SYNC && may_enter_fs) | ||
491 | wait_on_page_writeback(page); | ||
492 | else | ||
493 | goto keep_locked; | ||
494 | } | ||
463 | 495 | ||
464 | referenced = page_referenced(page, 1); | 496 | referenced = page_referenced(page, 1); |
465 | /* In active use or really unfreeable? Activate it. */ | 497 | /* In active use or really unfreeable? Activate it. */ |
@@ -478,8 +510,6 @@ static unsigned long shrink_page_list(struct list_head *page_list, | |||
478 | #endif /* CONFIG_SWAP */ | 510 | #endif /* CONFIG_SWAP */ |
479 | 511 | ||
480 | mapping = page_mapping(page); | 512 | mapping = page_mapping(page); |
481 | may_enter_fs = (sc->gfp_mask & __GFP_FS) || | ||
482 | (PageSwapCache(page) && (sc->gfp_mask & __GFP_IO)); | ||
483 | 513 | ||
484 | /* | 514 | /* |
485 | * The page is mapped into the page tables of one or more | 515 | * The page is mapped into the page tables of one or more |
@@ -505,7 +535,7 @@ static unsigned long shrink_page_list(struct list_head *page_list, | |||
505 | goto keep_locked; | 535 | goto keep_locked; |
506 | 536 | ||
507 | /* Page is dirty, try to write it out here */ | 537 | /* Page is dirty, try to write it out here */ |
508 | switch(pageout(page, mapping)) { | 538 | switch (pageout(page, mapping, sync_writeback)) { |
509 | case PAGE_KEEP: | 539 | case PAGE_KEEP: |
510 | goto keep_locked; | 540 | goto keep_locked; |
511 | case PAGE_ACTIVATE: | 541 | case PAGE_ACTIVATE: |
@@ -777,6 +807,7 @@ static unsigned long shrink_inactive_list(unsigned long max_scan, | |||
777 | (sc->order > PAGE_ALLOC_COSTLY_ORDER)? | 807 | (sc->order > PAGE_ALLOC_COSTLY_ORDER)? |
778 | ISOLATE_BOTH : ISOLATE_INACTIVE); | 808 | ISOLATE_BOTH : ISOLATE_INACTIVE); |
779 | nr_active = clear_active_flags(&page_list); | 809 | nr_active = clear_active_flags(&page_list); |
810 | __count_vm_events(PGDEACTIVATE, nr_active); | ||
780 | 811 | ||
781 | __mod_zone_page_state(zone, NR_ACTIVE, -nr_active); | 812 | __mod_zone_page_state(zone, NR_ACTIVE, -nr_active); |
782 | __mod_zone_page_state(zone, NR_INACTIVE, | 813 | __mod_zone_page_state(zone, NR_INACTIVE, |
@@ -785,7 +816,29 @@ static unsigned long shrink_inactive_list(unsigned long max_scan, | |||
785 | spin_unlock_irq(&zone->lru_lock); | 816 | spin_unlock_irq(&zone->lru_lock); |
786 | 817 | ||
787 | nr_scanned += nr_scan; | 818 | nr_scanned += nr_scan; |
788 | nr_freed = shrink_page_list(&page_list, sc); | 819 | nr_freed = shrink_page_list(&page_list, sc, PAGEOUT_IO_ASYNC); |
820 | |||
821 | /* | ||
822 | * If we are direct reclaiming for contiguous pages and we do | ||
823 | * not reclaim everything in the list, try again and wait | ||
824 | * for IO to complete. This will stall high-order allocations | ||
825 | * but that should be acceptable to the caller | ||
826 | */ | ||
827 | if (nr_freed < nr_taken && !current_is_kswapd() && | ||
828 | sc->order > PAGE_ALLOC_COSTLY_ORDER) { | ||
829 | congestion_wait(WRITE, HZ/10); | ||
830 | |||
831 | /* | ||
832 | * The attempt at page out may have made some | ||
833 | * of the pages active, mark them inactive again. | ||
834 | */ | ||
835 | nr_active = clear_active_flags(&page_list); | ||
836 | count_vm_events(PGDEACTIVATE, nr_active); | ||
837 | |||
838 | nr_freed += shrink_page_list(&page_list, sc, | ||
839 | PAGEOUT_IO_SYNC); | ||
840 | } | ||
841 | |||
789 | nr_reclaimed += nr_freed; | 842 | nr_reclaimed += nr_freed; |
790 | local_irq_disable(); | 843 | local_irq_disable(); |
791 | if (current_is_kswapd()) { | 844 | if (current_is_kswapd()) { |
diff --git a/net/802/psnap.c b/net/802/psnap.c index 04ee43e7538f..31128cb92a23 100644 --- a/net/802/psnap.c +++ b/net/802/psnap.c | |||
@@ -55,6 +55,9 @@ static int snap_rcv(struct sk_buff *skb, struct net_device *dev, | |||
55 | .type = __constant_htons(ETH_P_SNAP), | 55 | .type = __constant_htons(ETH_P_SNAP), |
56 | }; | 56 | }; |
57 | 57 | ||
58 | if (unlikely(!pskb_may_pull(skb, 5))) | ||
59 | goto drop; | ||
60 | |||
58 | rcu_read_lock(); | 61 | rcu_read_lock(); |
59 | proto = find_snap_client(skb_transport_header(skb)); | 62 | proto = find_snap_client(skb_transport_header(skb)); |
60 | if (proto) { | 63 | if (proto) { |
@@ -62,14 +65,18 @@ static int snap_rcv(struct sk_buff *skb, struct net_device *dev, | |||
62 | skb->transport_header += 5; | 65 | skb->transport_header += 5; |
63 | skb_pull_rcsum(skb, 5); | 66 | skb_pull_rcsum(skb, 5); |
64 | rc = proto->rcvfunc(skb, dev, &snap_packet_type, orig_dev); | 67 | rc = proto->rcvfunc(skb, dev, &snap_packet_type, orig_dev); |
65 | } else { | ||
66 | skb->sk = NULL; | ||
67 | kfree_skb(skb); | ||
68 | rc = 1; | ||
69 | } | 68 | } |
70 | |||
71 | rcu_read_unlock(); | 69 | rcu_read_unlock(); |
70 | |||
71 | if (unlikely(!proto)) | ||
72 | goto drop; | ||
73 | |||
74 | out: | ||
72 | return rc; | 75 | return rc; |
76 | |||
77 | drop: | ||
78 | kfree_skb(skb); | ||
79 | goto out; | ||
73 | } | 80 | } |
74 | 81 | ||
75 | /* | 82 | /* |
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index 4bab322c9f8f..328759c32d61 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c | |||
@@ -116,12 +116,22 @@ int vlan_skb_recv(struct sk_buff *skb, struct net_device *dev, | |||
116 | struct packet_type* ptype, struct net_device *orig_dev) | 116 | struct packet_type* ptype, struct net_device *orig_dev) |
117 | { | 117 | { |
118 | unsigned char *rawp = NULL; | 118 | unsigned char *rawp = NULL; |
119 | struct vlan_hdr *vhdr = (struct vlan_hdr *)(skb->data); | 119 | struct vlan_hdr *vhdr; |
120 | unsigned short vid; | 120 | unsigned short vid; |
121 | struct net_device_stats *stats; | 121 | struct net_device_stats *stats; |
122 | unsigned short vlan_TCI; | 122 | unsigned short vlan_TCI; |
123 | __be16 proto; | 123 | __be16 proto; |
124 | 124 | ||
125 | if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) | ||
126 | return -1; | ||
127 | |||
128 | if (unlikely(!pskb_may_pull(skb, VLAN_HLEN))) { | ||
129 | kfree_skb(skb); | ||
130 | return -1; | ||
131 | } | ||
132 | |||
133 | vhdr = (struct vlan_hdr *)(skb->data); | ||
134 | |||
125 | /* vlan_TCI = ntohs(get_unaligned(&vhdr->h_vlan_TCI)); */ | 135 | /* vlan_TCI = ntohs(get_unaligned(&vhdr->h_vlan_TCI)); */ |
126 | vlan_TCI = ntohs(vhdr->h_vlan_TCI); | 136 | vlan_TCI = ntohs(vhdr->h_vlan_TCI); |
127 | 137 | ||
diff --git a/net/8021q/vlanproc.c b/net/8021q/vlanproc.c index c0040c9064a1..bd08aa090763 100644 --- a/net/8021q/vlanproc.c +++ b/net/8021q/vlanproc.c | |||
@@ -319,7 +319,7 @@ static int vlandev_seq_show(struct seq_file *seq, void *offset) | |||
319 | static const char fmt[] = "%30s %12lu\n"; | 319 | static const char fmt[] = "%30s %12lu\n"; |
320 | int i; | 320 | int i; |
321 | 321 | ||
322 | if ((vlandev == NULL) || (!(vlandev->priv_flags & IFF_802_1Q_VLAN))) | 322 | if (!(vlandev->priv_flags & IFF_802_1Q_VLAN)) |
323 | return 0; | 323 | return 0; |
324 | 324 | ||
325 | seq_printf(seq, "%s VID: %d REORDER_HDR: %i dev->priv_flags: %hx\n", | 325 | seq_printf(seq, "%s VID: %d REORDER_HDR: %i dev->priv_flags: %hx\n", |
diff --git a/net/9p/conv.c b/net/9p/conv.c index f2a041cb508a..d979d958ea19 100644 --- a/net/9p/conv.c +++ b/net/9p/conv.c | |||
@@ -796,6 +796,7 @@ struct p9_fcall *p9_create_twrite_u(u32 fid, u64 offset, u32 count, | |||
796 | if (err) { | 796 | if (err) { |
797 | kfree(fc); | 797 | kfree(fc); |
798 | fc = ERR_PTR(err); | 798 | fc = ERR_PTR(err); |
799 | goto error; | ||
799 | } | 800 | } |
800 | 801 | ||
801 | if (buf_check_overflow(bufp)) { | 802 | if (buf_check_overflow(bufp)) { |
diff --git a/net/9p/mux.c b/net/9p/mux.c index acb038810f39..5d70558c4c61 100644 --- a/net/9p/mux.c +++ b/net/9p/mux.c | |||
@@ -288,9 +288,10 @@ struct p9_conn *p9_conn_create(struct p9_transport *trans, int msize, | |||
288 | m->extended = extended; | 288 | m->extended = extended; |
289 | m->trans = trans; | 289 | m->trans = trans; |
290 | m->tagpool = p9_idpool_create(); | 290 | m->tagpool = p9_idpool_create(); |
291 | if (!m->tagpool) { | 291 | if (IS_ERR(m->tagpool)) { |
292 | mtmp = ERR_PTR(-ENOMEM); | ||
292 | kfree(m); | 293 | kfree(m); |
293 | return ERR_PTR(PTR_ERR(m->tagpool)); | 294 | return mtmp; |
294 | } | 295 | } |
295 | 296 | ||
296 | m->err = 0; | 297 | m->err = 0; |
@@ -308,8 +309,10 @@ struct p9_conn *p9_conn_create(struct p9_transport *trans, int msize, | |||
308 | memset(&m->poll_waddr, 0, sizeof(m->poll_waddr)); | 309 | memset(&m->poll_waddr, 0, sizeof(m->poll_waddr)); |
309 | m->poll_task = NULL; | 310 | m->poll_task = NULL; |
310 | n = p9_mux_poll_start(m); | 311 | n = p9_mux_poll_start(m); |
311 | if (n) | 312 | if (n) { |
313 | kfree(m); | ||
312 | return ERR_PTR(n); | 314 | return ERR_PTR(n); |
315 | } | ||
313 | 316 | ||
314 | n = trans->poll(trans, &m->pt); | 317 | n = trans->poll(trans, &m->pt); |
315 | if (n & POLLIN) { | 318 | if (n & POLLIN) { |
diff --git a/net/ax25/ax25_iface.c b/net/ax25/ax25_iface.c index 16be0c14780a..8443af57a374 100644 --- a/net/ax25/ax25_iface.c +++ b/net/ax25/ax25_iface.c | |||
@@ -69,7 +69,6 @@ void ax25_protocol_release(unsigned int pid) | |||
69 | if (protocol->pid == pid) { | 69 | if (protocol->pid == pid) { |
70 | protocol_list = protocol->next; | 70 | protocol_list = protocol->next; |
71 | write_unlock_bh(&protocol_list_lock); | 71 | write_unlock_bh(&protocol_list_lock); |
72 | kfree(protocol); | ||
73 | return; | 72 | return; |
74 | } | 73 | } |
75 | 74 | ||
@@ -78,7 +77,6 @@ void ax25_protocol_release(unsigned int pid) | |||
78 | s = protocol->next; | 77 | s = protocol->next; |
79 | protocol->next = protocol->next->next; | 78 | protocol->next = protocol->next->next; |
80 | write_unlock_bh(&protocol_list_lock); | 79 | write_unlock_bh(&protocol_list_lock); |
81 | kfree(s); | ||
82 | return; | 80 | return; |
83 | } | 81 | } |
84 | 82 | ||
diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c index fa779874b9dd..3ee2022928e3 100644 --- a/net/bridge/br_netfilter.c +++ b/net/bridge/br_netfilter.c | |||
@@ -509,8 +509,14 @@ static unsigned int br_nf_pre_routing(unsigned int hook, struct sk_buff **pskb, | |||
509 | int (*okfn)(struct sk_buff *)) | 509 | int (*okfn)(struct sk_buff *)) |
510 | { | 510 | { |
511 | struct iphdr *iph; | 511 | struct iphdr *iph; |
512 | __u32 len; | ||
513 | struct sk_buff *skb = *pskb; | 512 | struct sk_buff *skb = *pskb; |
513 | __u32 len = nf_bridge_encap_header_len(skb); | ||
514 | |||
515 | if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL) | ||
516 | return NF_STOLEN; | ||
517 | |||
518 | if (unlikely(!pskb_may_pull(skb, len))) | ||
519 | goto out; | ||
514 | 520 | ||
515 | if (skb->protocol == htons(ETH_P_IPV6) || IS_VLAN_IPV6(skb) || | 521 | if (skb->protocol == htons(ETH_P_IPV6) || IS_VLAN_IPV6(skb) || |
516 | IS_PPPOE_IPV6(skb)) { | 522 | IS_PPPOE_IPV6(skb)) { |
@@ -518,8 +524,6 @@ static unsigned int br_nf_pre_routing(unsigned int hook, struct sk_buff **pskb, | |||
518 | if (!brnf_call_ip6tables) | 524 | if (!brnf_call_ip6tables) |
519 | return NF_ACCEPT; | 525 | return NF_ACCEPT; |
520 | #endif | 526 | #endif |
521 | if ((skb = skb_share_check(*pskb, GFP_ATOMIC)) == NULL) | ||
522 | goto out; | ||
523 | nf_bridge_pull_encap_header_rcsum(skb); | 527 | nf_bridge_pull_encap_header_rcsum(skb); |
524 | return br_nf_pre_routing_ipv6(hook, skb, in, out, okfn); | 528 | return br_nf_pre_routing_ipv6(hook, skb, in, out, okfn); |
525 | } | 529 | } |
@@ -532,8 +536,6 @@ static unsigned int br_nf_pre_routing(unsigned int hook, struct sk_buff **pskb, | |||
532 | !IS_PPPOE_IP(skb)) | 536 | !IS_PPPOE_IP(skb)) |
533 | return NF_ACCEPT; | 537 | return NF_ACCEPT; |
534 | 538 | ||
535 | if ((skb = skb_share_check(*pskb, GFP_ATOMIC)) == NULL) | ||
536 | goto out; | ||
537 | nf_bridge_pull_encap_header_rcsum(skb); | 539 | nf_bridge_pull_encap_header_rcsum(skb); |
538 | 540 | ||
539 | if (!pskb_may_pull(skb, sizeof(struct iphdr))) | 541 | if (!pskb_may_pull(skb, sizeof(struct iphdr))) |
diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c index 1ea2f86f7683..1a430eccec9b 100644 --- a/net/bridge/br_stp_if.c +++ b/net/bridge/br_stp_if.c | |||
@@ -132,7 +132,7 @@ static void br_stp_start(struct net_bridge *br) | |||
132 | } else { | 132 | } else { |
133 | br->stp_enabled = BR_KERNEL_STP; | 133 | br->stp_enabled = BR_KERNEL_STP; |
134 | printk(KERN_INFO "%s: starting userspace STP failed, " | 134 | printk(KERN_INFO "%s: starting userspace STP failed, " |
135 | "staring kernel STP\n", br->dev->name); | 135 | "starting kernel STP\n", br->dev->name); |
136 | 136 | ||
137 | /* To start timers on any ports left in blocking */ | 137 | /* To start timers on any ports left in blocking */ |
138 | spin_lock_bh(&br->lock); | 138 | spin_lock_bh(&br->lock); |
diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c index 4f42263e0a8a..c65f54e0e27f 100644 --- a/net/bridge/br_sysfs_br.c +++ b/net/bridge/br_sysfs_br.c | |||
@@ -147,20 +147,27 @@ static ssize_t show_stp_state(struct device *d, | |||
147 | return sprintf(buf, "%d\n", br->stp_enabled); | 147 | return sprintf(buf, "%d\n", br->stp_enabled); |
148 | } | 148 | } |
149 | 149 | ||
150 | static void set_stp_state(struct net_bridge *br, unsigned long val) | ||
151 | { | ||
152 | rtnl_lock(); | ||
153 | spin_unlock_bh(&br->lock); | ||
154 | br_stp_set_enabled(br, val); | ||
155 | spin_lock_bh(&br->lock); | ||
156 | rtnl_unlock(); | ||
157 | } | ||
158 | 150 | ||
159 | static ssize_t store_stp_state(struct device *d, | 151 | static ssize_t store_stp_state(struct device *d, |
160 | struct device_attribute *attr, const char *buf, | 152 | struct device_attribute *attr, const char *buf, |
161 | size_t len) | 153 | size_t len) |
162 | { | 154 | { |
163 | return store_bridge_parm(d, buf, len, set_stp_state); | 155 | struct net_bridge *br = to_bridge(d); |
156 | char *endp; | ||
157 | unsigned long val; | ||
158 | |||
159 | if (!capable(CAP_NET_ADMIN)) | ||
160 | return -EPERM; | ||
161 | |||
162 | val = simple_strtoul(buf, &endp, 0); | ||
163 | if (endp == buf) | ||
164 | return -EINVAL; | ||
165 | |||
166 | rtnl_lock(); | ||
167 | br_stp_set_enabled(br, val); | ||
168 | rtnl_unlock(); | ||
169 | |||
170 | return len; | ||
164 | } | 171 | } |
165 | static DEVICE_ATTR(stp_state, S_IRUGO | S_IWUSR, show_stp_state, | 172 | static DEVICE_ATTR(stp_state, S_IRUGO | S_IWUSR, show_stp_state, |
166 | store_stp_state); | 173 | store_stp_state); |
diff --git a/net/core/dev_mcast.c b/net/core/dev_mcast.c index 99aece1aeccf..20330c572610 100644 --- a/net/core/dev_mcast.c +++ b/net/core/dev_mcast.c | |||
@@ -116,11 +116,13 @@ int dev_mc_add(struct net_device *dev, void *addr, int alen, int glbl) | |||
116 | */ | 116 | */ |
117 | int dev_mc_sync(struct net_device *to, struct net_device *from) | 117 | int dev_mc_sync(struct net_device *to, struct net_device *from) |
118 | { | 118 | { |
119 | struct dev_addr_list *da; | 119 | struct dev_addr_list *da, *next; |
120 | int err = 0; | 120 | int err = 0; |
121 | 121 | ||
122 | netif_tx_lock_bh(to); | 122 | netif_tx_lock_bh(to); |
123 | for (da = from->mc_list; da != NULL; da = da->next) { | 123 | da = from->mc_list; |
124 | while (da != NULL) { | ||
125 | next = da->next; | ||
124 | if (!da->da_synced) { | 126 | if (!da->da_synced) { |
125 | err = __dev_addr_add(&to->mc_list, &to->mc_count, | 127 | err = __dev_addr_add(&to->mc_list, &to->mc_count, |
126 | da->da_addr, da->da_addrlen, 0); | 128 | da->da_addr, da->da_addrlen, 0); |
@@ -134,6 +136,7 @@ int dev_mc_sync(struct net_device *to, struct net_device *from) | |||
134 | __dev_addr_delete(&from->mc_list, &from->mc_count, | 136 | __dev_addr_delete(&from->mc_list, &from->mc_count, |
135 | da->da_addr, da->da_addrlen, 0); | 137 | da->da_addr, da->da_addrlen, 0); |
136 | } | 138 | } |
139 | da = next; | ||
137 | } | 140 | } |
138 | if (!err) | 141 | if (!err) |
139 | __dev_set_rx_mode(to); | 142 | __dev_set_rx_mode(to); |
@@ -156,12 +159,14 @@ EXPORT_SYMBOL(dev_mc_sync); | |||
156 | */ | 159 | */ |
157 | void dev_mc_unsync(struct net_device *to, struct net_device *from) | 160 | void dev_mc_unsync(struct net_device *to, struct net_device *from) |
158 | { | 161 | { |
159 | struct dev_addr_list *da; | 162 | struct dev_addr_list *da, *next; |
160 | 163 | ||
161 | netif_tx_lock_bh(from); | 164 | netif_tx_lock_bh(from); |
162 | netif_tx_lock_bh(to); | 165 | netif_tx_lock_bh(to); |
163 | 166 | ||
164 | for (da = from->mc_list; da != NULL; da = da->next) { | 167 | da = from->mc_list; |
168 | while (da != NULL) { | ||
169 | next = da->next; | ||
165 | if (!da->da_synced) | 170 | if (!da->da_synced) |
166 | continue; | 171 | continue; |
167 | __dev_addr_delete(&to->mc_list, &to->mc_count, | 172 | __dev_addr_delete(&to->mc_list, &to->mc_count, |
@@ -169,6 +174,7 @@ void dev_mc_unsync(struct net_device *to, struct net_device *from) | |||
169 | da->da_synced = 0; | 174 | da->da_synced = 0; |
170 | __dev_addr_delete(&from->mc_list, &from->mc_count, | 175 | __dev_addr_delete(&from->mc_list, &from->mc_count, |
171 | da->da_addr, da->da_addrlen, 0); | 176 | da->da_addr, da->da_addrlen, 0); |
177 | da = next; | ||
172 | } | 178 | } |
173 | __dev_set_rx_mode(to); | 179 | __dev_set_rx_mode(to); |
174 | 180 | ||
diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 2ab0a60046a5..c5e059352d43 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c | |||
@@ -948,7 +948,6 @@ int dev_ethtool(struct ifreq *ifr) | |||
948 | return rc; | 948 | return rc; |
949 | } | 949 | } |
950 | 950 | ||
951 | EXPORT_SYMBOL(dev_ethtool); | ||
952 | EXPORT_SYMBOL(ethtool_op_get_link); | 951 | EXPORT_SYMBOL(ethtool_op_get_link); |
953 | EXPORT_SYMBOL(ethtool_op_get_sg); | 952 | EXPORT_SYMBOL(ethtool_op_get_sg); |
954 | EXPORT_SYMBOL(ethtool_op_get_tso); | 953 | EXPORT_SYMBOL(ethtool_op_get_tso); |
diff --git a/net/core/neighbour.c b/net/core/neighbour.c index ca2a1533138a..f7de8f24d8dd 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include <linux/rtnetlink.h> | 33 | #include <linux/rtnetlink.h> |
34 | #include <linux/random.h> | 34 | #include <linux/random.h> |
35 | #include <linux/string.h> | 35 | #include <linux/string.h> |
36 | #include <linux/log2.h> | ||
36 | 37 | ||
37 | #define NEIGH_DEBUG 1 | 38 | #define NEIGH_DEBUG 1 |
38 | 39 | ||
@@ -311,7 +312,7 @@ static void neigh_hash_grow(struct neigh_table *tbl, unsigned long new_entries) | |||
311 | 312 | ||
312 | NEIGH_CACHE_STAT_INC(tbl, hash_grows); | 313 | NEIGH_CACHE_STAT_INC(tbl, hash_grows); |
313 | 314 | ||
314 | BUG_ON(new_entries & (new_entries - 1)); | 315 | BUG_ON(!is_power_of_2(new_entries)); |
315 | new_hash = neigh_hash_alloc(new_entries); | 316 | new_hash = neigh_hash_alloc(new_entries); |
316 | if (!new_hash) | 317 | if (!new_hash) |
317 | return; | 318 | return; |
diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c index 248d20f4c7c4..d29b88fe723c 100644 --- a/net/dccp/ccids/ccid2.c +++ b/net/dccp/ccids/ccid2.c | |||
@@ -298,7 +298,7 @@ static void ccid2_hc_tx_packet_sent(struct sock *sk, int more, unsigned int len) | |||
298 | int rc; | 298 | int rc; |
299 | 299 | ||
300 | ccid2_pr_debug("allocating more space in history\n"); | 300 | ccid2_pr_debug("allocating more space in history\n"); |
301 | rc = ccid2_hc_tx_alloc_seq(hctx, CCID2_SEQBUF_LEN, GFP_KERNEL); | 301 | rc = ccid2_hc_tx_alloc_seq(hctx, CCID2_SEQBUF_LEN, gfp_any()); |
302 | BUG_ON(rc); /* XXX what do we do? */ | 302 | BUG_ON(rc); /* XXX what do we do? */ |
303 | 303 | ||
304 | next = hctx->ccid2hctx_seqh->ccid2s_next; | 304 | next = hctx->ccid2hctx_seqh->ccid2s_next; |
diff --git a/net/econet/af_econet.c b/net/econet/af_econet.c index b5524f32ac2d..35c96bcc0f32 100644 --- a/net/econet/af_econet.c +++ b/net/econet/af_econet.c | |||
@@ -1146,6 +1146,9 @@ static void __exit econet_proto_exit(void) | |||
1146 | sock_release(udpsock); | 1146 | sock_release(udpsock); |
1147 | #endif | 1147 | #endif |
1148 | unregister_netdevice_notifier(&econet_netdev_notifier); | 1148 | unregister_netdevice_notifier(&econet_netdev_notifier); |
1149 | #ifdef CONFIG_ECONET_NATIVE | ||
1150 | dev_remove_pack(&econet_packet_type); | ||
1151 | #endif | ||
1149 | sock_unregister(econet_family_ops.family); | 1152 | sock_unregister(econet_family_ops.family); |
1150 | proto_unregister(&econet_proto); | 1153 | proto_unregister(&econet_proto); |
1151 | } | 1154 | } |
diff --git a/net/ipv4/ah4.c b/net/ipv4/ah4.c index 7a23e59c374a..39f6211f1496 100644 --- a/net/ipv4/ah4.c +++ b/net/ipv4/ah4.c | |||
@@ -46,7 +46,7 @@ static int ip_clear_mutable_options(struct iphdr *iph, __be32 *daddr) | |||
46 | memcpy(daddr, optptr+optlen-4, 4); | 46 | memcpy(daddr, optptr+optlen-4, 4); |
47 | /* Fall through */ | 47 | /* Fall through */ |
48 | default: | 48 | default: |
49 | memset(optptr+2, 0, optlen-2); | 49 | memset(optptr, 0, optlen); |
50 | } | 50 | } |
51 | l -= optlen; | 51 | l -= optlen; |
52 | optptr += optlen; | 52 | optptr += optlen; |
diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c index 4d544573f48a..6b420aedcdcf 100644 --- a/net/ipv4/ip_sockglue.c +++ b/net/ipv4/ip_sockglue.c | |||
@@ -625,6 +625,10 @@ static int do_ip_setsockopt(struct sock *sk, int level, | |||
625 | { | 625 | { |
626 | struct ip_mreqn mreq; | 626 | struct ip_mreqn mreq; |
627 | 627 | ||
628 | err = -EPROTO; | ||
629 | if (inet_sk(sk)->is_icsk) | ||
630 | break; | ||
631 | |||
628 | if (optlen < sizeof(struct ip_mreq)) | 632 | if (optlen < sizeof(struct ip_mreq)) |
629 | goto e_inval; | 633 | goto e_inval; |
630 | err = -EFAULT; | 634 | err = -EFAULT; |
diff --git a/net/ipv4/netfilter/nf_nat_sip.c b/net/ipv4/netfilter/nf_nat_sip.c index a889ec3ec83a..e14d41976c27 100644 --- a/net/ipv4/netfilter/nf_nat_sip.c +++ b/net/ipv4/netfilter/nf_nat_sip.c | |||
@@ -104,7 +104,7 @@ static unsigned int ip_nat_sip(struct sk_buff **pskb, | |||
104 | dataoff = ip_hdrlen(*pskb) + sizeof(struct udphdr); | 104 | dataoff = ip_hdrlen(*pskb) + sizeof(struct udphdr); |
105 | datalen = (*pskb)->len - dataoff; | 105 | datalen = (*pskb)->len - dataoff; |
106 | if (datalen < sizeof("SIP/2.0") - 1) | 106 | if (datalen < sizeof("SIP/2.0") - 1) |
107 | return NF_DROP; | 107 | return NF_ACCEPT; |
108 | 108 | ||
109 | addr_map_init(ct, &map); | 109 | addr_map_init(ct, &map); |
110 | 110 | ||
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index f030435e0eb4..9785df37a65f 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -755,7 +755,15 @@ void tcp_update_metrics(struct sock *sk) | |||
755 | } | 755 | } |
756 | } | 756 | } |
757 | 757 | ||
758 | /* Numbers are taken from RFC2414. */ | 758 | /* Numbers are taken from RFC3390. |
759 | * | ||
760 | * John Heffner states: | ||
761 | * | ||
762 | * The RFC specifies a window of no more than 4380 bytes | ||
763 | * unless 2*MSS > 4380. Reading the pseudocode in the RFC | ||
764 | * is a bit misleading because they use a clamp at 4380 bytes | ||
765 | * rather than use a multiplier in the relevant range. | ||
766 | */ | ||
759 | __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst) | 767 | __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst) |
760 | { | 768 | { |
761 | __u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0); | 769 | __u32 cwnd = (dst ? dst_metric(dst, RTAX_INITCWND) : 0); |
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 50d86e94d9ed..5dead399fe64 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
@@ -794,7 +794,7 @@ slow_path: | |||
794 | /* | 794 | /* |
795 | * Copy a block of the IP datagram. | 795 | * Copy a block of the IP datagram. |
796 | */ | 796 | */ |
797 | if (skb_copy_bits(skb, ptr, skb_transport_header(skb), len)) | 797 | if (skb_copy_bits(skb, ptr, skb_transport_header(frag), len)) |
798 | BUG(); | 798 | BUG(); |
799 | left -= len; | 799 | left -= len; |
800 | 800 | ||
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c index d6846393182d..6b038aa72e88 100644 --- a/net/ipv6/ipv6_sockglue.c +++ b/net/ipv6/ipv6_sockglue.c | |||
@@ -554,6 +554,10 @@ done: | |||
554 | { | 554 | { |
555 | struct ipv6_mreq mreq; | 555 | struct ipv6_mreq mreq; |
556 | 556 | ||
557 | retv = -EPROTO; | ||
558 | if (inet_sk(sk)->is_icsk) | ||
559 | break; | ||
560 | |||
557 | retv = -EFAULT; | 561 | retv = -EFAULT; |
558 | if (copy_from_user(&mreq, optval, sizeof(struct ipv6_mreq))) | 562 | if (copy_from_user(&mreq, optval, sizeof(struct ipv6_mreq))) |
559 | break; | 563 | break; |
@@ -820,7 +824,7 @@ static int ipv6_getsockopt_sticky(struct sock *sk, struct ipv6_txoptions *opt, | |||
820 | return 0; | 824 | return 0; |
821 | 825 | ||
822 | len = min_t(unsigned int, len, ipv6_optlen(hdr)); | 826 | len = min_t(unsigned int, len, ipv6_optlen(hdr)); |
823 | if (copy_to_user(optval, hdr, len)); | 827 | if (copy_to_user(optval, hdr, len)) |
824 | return -EFAULT; | 828 | return -EFAULT; |
825 | return ipv6_optlen(hdr); | 829 | return ipv6_optlen(hdr); |
826 | } | 830 | } |
diff --git a/net/irda/irmod.c b/net/irda/irmod.c index 1900937b3328..8ba703da2797 100644 --- a/net/irda/irmod.c +++ b/net/irda/irmod.c | |||
@@ -128,8 +128,8 @@ static int __init irda_init(void) | |||
128 | out_err_3: | 128 | out_err_3: |
129 | #ifdef CONFIG_SYSCTL | 129 | #ifdef CONFIG_SYSCTL |
130 | irda_sysctl_unregister(); | 130 | irda_sysctl_unregister(); |
131 | #endif | ||
132 | out_err_2: | 131 | out_err_2: |
132 | #endif | ||
133 | #ifdef CONFIG_PROC_FS | 133 | #ifdef CONFIG_PROC_FS |
134 | irda_proc_unregister(); | 134 | irda_proc_unregister(); |
135 | #endif | 135 | #endif |
diff --git a/net/irda/irnetlink.c b/net/irda/irnetlink.c index 694ea4d92fa8..1e429c929739 100644 --- a/net/irda/irnetlink.c +++ b/net/irda/irnetlink.c | |||
@@ -106,7 +106,7 @@ static int irda_nl_get_mode(struct sk_buff *skb, struct genl_info *info) | |||
106 | } | 106 | } |
107 | 107 | ||
108 | if(nla_put_string(msg, IRDA_NL_ATTR_IFNAME, | 108 | if(nla_put_string(msg, IRDA_NL_ATTR_IFNAME, |
109 | dev->name)); | 109 | dev->name)) |
110 | goto err_out; | 110 | goto err_out; |
111 | 111 | ||
112 | if(nla_put_u32(msg, IRDA_NL_ATTR_MODE, irlap->mode)) | 112 | if(nla_put_u32(msg, IRDA_NL_ATTR_MODE, irlap->mode)) |
diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c index 8ec5ed192b5d..7286c389a4d0 100644 --- a/net/mac80211/ieee80211.c +++ b/net/mac80211/ieee80211.c | |||
@@ -4678,7 +4678,6 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb, | |||
4678 | memset(skb->cb, 0, sizeof(skb->cb)); | 4678 | memset(skb->cb, 0, sizeof(skb->cb)); |
4679 | netif_rx(skb); | 4679 | netif_rx(skb); |
4680 | skb = skb2; | 4680 | skb = skb2; |
4681 | break; | ||
4682 | } | 4681 | } |
4683 | } | 4682 | } |
4684 | out: | 4683 | out: |
diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c index 7ba352e3ffe0..0d99b685df5f 100644 --- a/net/mac80211/ieee80211_sta.c +++ b/net/mac80211/ieee80211_sta.c | |||
@@ -2154,7 +2154,11 @@ static int ieee80211_sta_config_auth(struct net_device *dev, | |||
2154 | return 0; | 2154 | return 0; |
2155 | } else { | 2155 | } else { |
2156 | if (ifsta->state != IEEE80211_AUTHENTICATE) { | 2156 | if (ifsta->state != IEEE80211_AUTHENTICATE) { |
2157 | ieee80211_sta_start_scan(dev, NULL, 0); | 2157 | if (ifsta->auto_ssid_sel) |
2158 | ieee80211_sta_start_scan(dev, NULL, 0); | ||
2159 | else | ||
2160 | ieee80211_sta_start_scan(dev, ifsta->ssid, | ||
2161 | ifsta->ssid_len); | ||
2158 | ifsta->state = IEEE80211_AUTHENTICATE; | 2162 | ifsta->state = IEEE80211_AUTHENTICATE; |
2159 | set_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request); | 2163 | set_bit(IEEE80211_STA_REQ_AUTH, &ifsta->request); |
2160 | } else | 2164 | } else |
diff --git a/net/netfilter/nf_conntrack_sip.c b/net/netfilter/nf_conntrack_sip.c index 1276a442f10c..d449fa47491c 100644 --- a/net/netfilter/nf_conntrack_sip.c +++ b/net/netfilter/nf_conntrack_sip.c | |||
@@ -295,6 +295,7 @@ static int epaddr_len(struct nf_conn *ct, const char *dptr, | |||
295 | static int skp_epaddr_len(struct nf_conn *ct, const char *dptr, | 295 | static int skp_epaddr_len(struct nf_conn *ct, const char *dptr, |
296 | const char *limit, int *shift) | 296 | const char *limit, int *shift) |
297 | { | 297 | { |
298 | const char *start = dptr; | ||
298 | int s = *shift; | 299 | int s = *shift; |
299 | 300 | ||
300 | /* Search for @, but stop at the end of the line. | 301 | /* Search for @, but stop at the end of the line. |
@@ -309,8 +310,10 @@ static int skp_epaddr_len(struct nf_conn *ct, const char *dptr, | |||
309 | if (dptr <= limit && *dptr == '@') { | 310 | if (dptr <= limit && *dptr == '@') { |
310 | dptr++; | 311 | dptr++; |
311 | (*shift)++; | 312 | (*shift)++; |
312 | } else | 313 | } else { |
314 | dptr = start; | ||
313 | *shift = s; | 315 | *shift = s; |
316 | } | ||
314 | 317 | ||
315 | return epaddr_len(ct, dptr, limit, shift); | 318 | return epaddr_len(ct, dptr, limit, shift); |
316 | } | 319 | } |
@@ -330,7 +333,8 @@ int ct_sip_get_info(struct nf_conn *ct, | |||
330 | 333 | ||
331 | while (dptr <= limit) { | 334 | while (dptr <= limit) { |
332 | if ((strncmp(dptr, hnfo->lname, hnfo->lnlen) != 0) && | 335 | if ((strncmp(dptr, hnfo->lname, hnfo->lnlen) != 0) && |
333 | (strncmp(dptr, hnfo->sname, hnfo->snlen) != 0)) { | 336 | (hnfo->sname == NULL || |
337 | strncmp(dptr, hnfo->sname, hnfo->snlen) != 0)) { | ||
334 | dptr++; | 338 | dptr++; |
335 | continue; | 339 | continue; |
336 | } | 340 | } |
diff --git a/net/netfilter/xt_u32.c b/net/netfilter/xt_u32.c index 74f9b14c012f..bec427915b30 100644 --- a/net/netfilter/xt_u32.c +++ b/net/netfilter/xt_u32.c | |||
@@ -36,7 +36,7 @@ static bool u32_match_it(const struct xt_u32 *data, | |||
36 | at = 0; | 36 | at = 0; |
37 | pos = ct->location[0].number; | 37 | pos = ct->location[0].number; |
38 | 38 | ||
39 | if (skb->len < 4 || pos > skb->len - 4); | 39 | if (skb->len < 4 || pos > skb->len - 4) |
40 | return false; | 40 | return false; |
41 | 41 | ||
42 | ret = skb_copy_bits(skb, pos, &n, sizeof(n)); | 42 | ret = skb_copy_bits(skb, pos, &n, sizeof(n)); |
diff --git a/net/socket.c b/net/socket.c index ec077037f534..7d44453dfae1 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -1168,7 +1168,7 @@ static int __sock_create(int family, int type, int protocol, | |||
1168 | module_put(pf->owner); | 1168 | module_put(pf->owner); |
1169 | err = security_socket_post_create(sock, family, type, protocol, kern); | 1169 | err = security_socket_post_create(sock, family, type, protocol, kern); |
1170 | if (err) | 1170 | if (err) |
1171 | goto out_release; | 1171 | goto out_sock_release; |
1172 | *res = sock; | 1172 | *res = sock; |
1173 | 1173 | ||
1174 | return 0; | 1174 | return 0; |
diff --git a/security/commoncap.c b/security/commoncap.c index 338606eb7238..7520361663e8 100644 --- a/security/commoncap.c +++ b/security/commoncap.c | |||
@@ -315,13 +315,13 @@ int cap_syslog (int type) | |||
315 | return 0; | 315 | return 0; |
316 | } | 316 | } |
317 | 317 | ||
318 | int cap_vm_enough_memory(long pages) | 318 | int cap_vm_enough_memory(struct mm_struct *mm, long pages) |
319 | { | 319 | { |
320 | int cap_sys_admin = 0; | 320 | int cap_sys_admin = 0; |
321 | 321 | ||
322 | if (cap_capable(current, CAP_SYS_ADMIN) == 0) | 322 | if (cap_capable(current, CAP_SYS_ADMIN) == 0) |
323 | cap_sys_admin = 1; | 323 | cap_sys_admin = 1; |
324 | return __vm_enough_memory(pages, cap_sys_admin); | 324 | return __vm_enough_memory(mm, pages, cap_sys_admin); |
325 | } | 325 | } |
326 | 326 | ||
327 | EXPORT_SYMBOL(cap_capable); | 327 | EXPORT_SYMBOL(cap_capable); |
diff --git a/security/dummy.c b/security/dummy.c index 19d813d5e083..853ec2292798 100644 --- a/security/dummy.c +++ b/security/dummy.c | |||
@@ -108,13 +108,13 @@ static int dummy_settime(struct timespec *ts, struct timezone *tz) | |||
108 | return 0; | 108 | return 0; |
109 | } | 109 | } |
110 | 110 | ||
111 | static int dummy_vm_enough_memory(long pages) | 111 | static int dummy_vm_enough_memory(struct mm_struct *mm, long pages) |
112 | { | 112 | { |
113 | int cap_sys_admin = 0; | 113 | int cap_sys_admin = 0; |
114 | 114 | ||
115 | if (dummy_capable(current, CAP_SYS_ADMIN) == 0) | 115 | if (dummy_capable(current, CAP_SYS_ADMIN) == 0) |
116 | cap_sys_admin = 1; | 116 | cap_sys_admin = 1; |
117 | return __vm_enough_memory(pages, cap_sys_admin); | 117 | return __vm_enough_memory(mm, pages, cap_sys_admin); |
118 | } | 118 | } |
119 | 119 | ||
120 | static int dummy_bprm_alloc_security (struct linux_binprm *bprm) | 120 | static int dummy_bprm_alloc_security (struct linux_binprm *bprm) |
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 6237933f7d82..d8bc4172819c 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
@@ -1584,7 +1584,7 @@ static int selinux_syslog(int type) | |||
1584 | * Do not audit the selinux permission check, as this is applied to all | 1584 | * Do not audit the selinux permission check, as this is applied to all |
1585 | * processes that allocate mappings. | 1585 | * processes that allocate mappings. |
1586 | */ | 1586 | */ |
1587 | static int selinux_vm_enough_memory(long pages) | 1587 | static int selinux_vm_enough_memory(struct mm_struct *mm, long pages) |
1588 | { | 1588 | { |
1589 | int rc, cap_sys_admin = 0; | 1589 | int rc, cap_sys_admin = 0; |
1590 | struct task_security_struct *tsec = current->security; | 1590 | struct task_security_struct *tsec = current->security; |
@@ -1600,7 +1600,7 @@ static int selinux_vm_enough_memory(long pages) | |||
1600 | if (rc == 0) | 1600 | if (rc == 0) |
1601 | cap_sys_admin = 1; | 1601 | cap_sys_admin = 1; |
1602 | 1602 | ||
1603 | return __vm_enough_memory(pages, cap_sys_admin); | 1603 | return __vm_enough_memory(mm, pages, cap_sys_admin); |
1604 | } | 1604 | } |
1605 | 1605 | ||
1606 | /* binprm security operations */ | 1606 | /* binprm security operations */ |
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index f00161ef99ed..6100fc023055 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c | |||
@@ -2127,7 +2127,7 @@ int selinux_audit_rule_init(u32 field, u32 op, char *rulestr, | |||
2127 | *rule = NULL; | 2127 | *rule = NULL; |
2128 | 2128 | ||
2129 | if (!ss_initialized) | 2129 | if (!ss_initialized) |
2130 | return -ENOTSUPP; | 2130 | return -EOPNOTSUPP; |
2131 | 2131 | ||
2132 | switch (field) { | 2132 | switch (field) { |
2133 | case AUDIT_SUBJ_USER: | 2133 | case AUDIT_SUBJ_USER: |