diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-01-06 03:53:05 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-06 03:53:05 -0500 |
commit | 3d7a96f5a485b7d06c2379f343d7312af89ec9e2 (patch) | |
tree | 5f097f68eb0f9fd3fa4a10f38672e300e9127b10 /Documentation | |
parent | 723cbe0775514853c22dc45005af59c360916af1 (diff) | |
parent | 238c6d54830c624f34ac9cf123ac04aebfca5013 (diff) |
Merge branch 'linus' into tracing/kmemtrace2
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/ABI/testing/sysfs-class-uwb_rc | 14 | ||||
-rw-r--r-- | Documentation/cpu-hotplug.txt | 17 | ||||
-rw-r--r-- | Documentation/cputopology.txt | 48 | ||||
-rw-r--r-- | Documentation/feature-removal-schedule.txt | 9 | ||||
-rw-r--r-- | Documentation/filesystems/Locking | 2 | ||||
-rw-r--r-- | Documentation/filesystems/devpts.txt | 132 | ||||
-rw-r--r-- | Documentation/filesystems/files.txt | 6 | ||||
-rw-r--r-- | Documentation/filesystems/ocfs2.txt | 3 | ||||
-rw-r--r-- | Documentation/filesystems/ubifs.txt | 3 | ||||
-rw-r--r-- | Documentation/filesystems/vfs.txt | 5 | ||||
-rw-r--r-- | Documentation/ioctl/ioctl-number.txt | 4 | ||||
-rw-r--r-- | Documentation/kbuild/00-INDEX | 6 | ||||
-rw-r--r-- | Documentation/kbuild/kbuild.txt | 126 | ||||
-rw-r--r-- | Documentation/kbuild/kconfig.txt | 188 | ||||
-rw-r--r-- | Documentation/usb/wusb-cbaf | 9 | ||||
-rw-r--r-- | Documentation/video4linux/CARDLIST.saa7134 | 1 | ||||
-rw-r--r-- | Documentation/video4linux/si470x.txt | 1 | ||||
-rw-r--r-- | Documentation/video4linux/v4l2-framework.txt | 19 |
18 files changed, 541 insertions, 52 deletions
diff --git a/Documentation/ABI/testing/sysfs-class-uwb_rc b/Documentation/ABI/testing/sysfs-class-uwb_rc index a0d18dbeb7a9..6a5fd072849d 100644 --- a/Documentation/ABI/testing/sysfs-class-uwb_rc +++ b/Documentation/ABI/testing/sysfs-class-uwb_rc | |||
@@ -32,14 +32,16 @@ Contact: linux-usb@vger.kernel.org | |||
32 | Description: | 32 | Description: |
33 | Write: | 33 | Write: |
34 | 34 | ||
35 | <channel> [<bpst offset>] | 35 | <channel> |
36 | 36 | ||
37 | to start beaconing on a specific channel, or stop | 37 | to force a specific channel to be used when beaconing, |
38 | beaconing if <channel> is -1. Valid channels depends | 38 | or, if <channel> is -1, to prohibit beaconing. If |
39 | on the radio controller's supported band groups. | 39 | <channel> is 0, then the default channel selection |
40 | algorithm will be used. Valid channels depends on the | ||
41 | radio controller's supported band groups. | ||
40 | 42 | ||
41 | <bpst offset> may be used to try and join a specific | 43 | Reading returns the currently active channel, or -1 if |
42 | beacon group if more than one was found during a scan. | 44 | the radio controller is not beaconing. |
43 | 45 | ||
44 | What: /sys/class/uwb_rc/uwbN/scan | 46 | What: /sys/class/uwb_rc/uwbN/scan |
45 | Date: July 2008 | 47 | Date: July 2008 |
diff --git a/Documentation/cpu-hotplug.txt b/Documentation/cpu-hotplug.txt index 94bbc27ddd4f..9d620c153b04 100644 --- a/Documentation/cpu-hotplug.txt +++ b/Documentation/cpu-hotplug.txt | |||
@@ -50,16 +50,17 @@ additional_cpus=n (*) Use this to limit hotpluggable cpus. This option sets | |||
50 | cpu_possible_map = cpu_present_map + additional_cpus | 50 | cpu_possible_map = cpu_present_map + additional_cpus |
51 | 51 | ||
52 | (*) Option valid only for following architectures | 52 | (*) Option valid only for following architectures |
53 | - x86_64, ia64 | 53 | - ia64 |
54 | 54 | ||
55 | ia64 and x86_64 use the number of disabled local apics in ACPI tables MADT | 55 | ia64 uses the number of disabled local apics in ACPI tables MADT to |
56 | to determine the number of potentially hot-pluggable cpus. The implementation | 56 | determine the number of potentially hot-pluggable cpus. The implementation |
57 | should only rely on this to count the # of cpus, but *MUST* not rely on the | 57 | should only rely on this to count the # of cpus, but *MUST* not rely |
58 | apicid values in those tables for disabled apics. In the event BIOS doesn't | 58 | on the apicid values in those tables for disabled apics. In the event |
59 | mark such hot-pluggable cpus as disabled entries, one could use this | 59 | BIOS doesn't mark such hot-pluggable cpus as disabled entries, one could |
60 | parameter "additional_cpus=x" to represent those cpus in the cpu_possible_map. | 60 | use this parameter "additional_cpus=x" to represent those cpus in the |
61 | cpu_possible_map. | ||
61 | 62 | ||
62 | possible_cpus=n [s390 only] use this to set hotpluggable cpus. | 63 | possible_cpus=n [s390,x86_64] use this to set hotpluggable cpus. |
63 | This option sets possible_cpus bits in | 64 | This option sets possible_cpus bits in |
64 | cpu_possible_map. Thus keeping the numbers of bits set | 65 | cpu_possible_map. Thus keeping the numbers of bits set |
65 | constant even if the machine gets rebooted. | 66 | constant even if the machine gets rebooted. |
diff --git a/Documentation/cputopology.txt b/Documentation/cputopology.txt index bd699da24666..45932ec21cee 100644 --- a/Documentation/cputopology.txt +++ b/Documentation/cputopology.txt | |||
@@ -31,3 +31,51 @@ not defined by include/asm-XXX/topology.h: | |||
31 | 2) core_id: 0 | 31 | 2) core_id: 0 |
32 | 3) thread_siblings: just the given CPU | 32 | 3) thread_siblings: just the given CPU |
33 | 4) core_siblings: just the given CPU | 33 | 4) core_siblings: just the given CPU |
34 | |||
35 | Additionally, cpu topology information is provided under | ||
36 | /sys/devices/system/cpu and includes these files. The internal | ||
37 | source for the output is in brackets ("[]"). | ||
38 | |||
39 | kernel_max: the maximum cpu index allowed by the kernel configuration. | ||
40 | [NR_CPUS-1] | ||
41 | |||
42 | offline: cpus that are not online because they have been | ||
43 | HOTPLUGGED off (see cpu-hotplug.txt) or exceed the limit | ||
44 | of cpus allowed by the kernel configuration (kernel_max | ||
45 | above). [~cpu_online_mask + cpus >= NR_CPUS] | ||
46 | |||
47 | online: cpus that are online and being scheduled [cpu_online_mask] | ||
48 | |||
49 | possible: cpus that have been allocated resources and can be | ||
50 | brought online if they are present. [cpu_possible_mask] | ||
51 | |||
52 | present: cpus that have been identified as being present in the | ||
53 | system. [cpu_present_mask] | ||
54 | |||
55 | The format for the above output is compatible with cpulist_parse() | ||
56 | [see <linux/cpumask.h>]. Some examples follow. | ||
57 | |||
58 | In this example, there are 64 cpus in the system but cpus 32-63 exceed | ||
59 | the kernel max which is limited to 0..31 by the NR_CPUS config option | ||
60 | being 32. Note also that cpus 2 and 4-31 are not online but could be | ||
61 | brought online as they are both present and possible. | ||
62 | |||
63 | kernel_max: 31 | ||
64 | offline: 2,4-31,32-63 | ||
65 | online: 0-1,3 | ||
66 | possible: 0-31 | ||
67 | present: 0-31 | ||
68 | |||
69 | In this example, the NR_CPUS config option is 128, but the kernel was | ||
70 | started with possible_cpus=144. There are 4 cpus in the system and cpu2 | ||
71 | was manually taken offline (and is the only cpu that can be brought | ||
72 | online.) | ||
73 | |||
74 | kernel_max: 127 | ||
75 | offline: 2,4-127,128-143 | ||
76 | online: 0-1,3 | ||
77 | possible: 0-127 | ||
78 | present: 0-3 | ||
79 | |||
80 | See cpu-hotplug.txt for the possible_cpus=NUM kernel start parameter | ||
81 | as well as more information on the various cpumask's. | ||
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index dc7c681e532c..df18d87c4837 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -310,15 +310,6 @@ Who: Krzysztof Piotr Oledzki <ole@ans.pl> | |||
310 | 310 | ||
311 | --------------------------- | 311 | --------------------------- |
312 | 312 | ||
313 | What: ide-scsi (BLK_DEV_IDESCSI) | ||
314 | When: 2.6.29 | ||
315 | Why: The 2.6 kernel supports direct writing to ide CD drives, which | ||
316 | eliminates the need for ide-scsi. The new method is more | ||
317 | efficient in every way. | ||
318 | Who: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | ||
319 | |||
320 | --------------------------- | ||
321 | |||
322 | What: i2c_attach_client(), i2c_detach_client(), i2c_driver->detach_client() | 313 | What: i2c_attach_client(), i2c_detach_client(), i2c_driver->detach_client() |
323 | When: 2.6.29 (ideally) or 2.6.30 (more likely) | 314 | When: 2.6.29 (ideally) or 2.6.30 (more likely) |
324 | Why: Deprecated by the new (standard) device driver binding model. Use | 315 | Why: Deprecated by the new (standard) device driver binding model. Use |
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 23d2f4460deb..ccec55394380 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -394,7 +394,6 @@ prototypes: | |||
394 | unsigned long (*get_unmapped_area)(struct file *, unsigned long, | 394 | unsigned long (*get_unmapped_area)(struct file *, unsigned long, |
395 | unsigned long, unsigned long, unsigned long); | 395 | unsigned long, unsigned long, unsigned long); |
396 | int (*check_flags)(int); | 396 | int (*check_flags)(int); |
397 | int (*dir_notify)(struct file *, unsigned long); | ||
398 | }; | 397 | }; |
399 | 398 | ||
400 | locking rules: | 399 | locking rules: |
@@ -424,7 +423,6 @@ sendfile: no | |||
424 | sendpage: no | 423 | sendpage: no |
425 | get_unmapped_area: no | 424 | get_unmapped_area: no |
426 | check_flags: no | 425 | check_flags: no |
427 | dir_notify: no | ||
428 | 426 | ||
429 | ->llseek() locking has moved from llseek to the individual llseek | 427 | ->llseek() locking has moved from llseek to the individual llseek |
430 | implementations. If your fs is not using generic_file_llseek, you | 428 | implementations. If your fs is not using generic_file_llseek, you |
diff --git a/Documentation/filesystems/devpts.txt b/Documentation/filesystems/devpts.txt new file mode 100644 index 000000000000..68dffd87f9b7 --- /dev/null +++ b/Documentation/filesystems/devpts.txt | |||
@@ -0,0 +1,132 @@ | |||
1 | |||
2 | To support containers, we now allow multiple instances of devpts filesystem, | ||
3 | such that indices of ptys allocated in one instance are independent of indices | ||
4 | allocated in other instances of devpts. | ||
5 | |||
6 | To preserve backward compatibility, this support for multiple instances is | ||
7 | enabled only if: | ||
8 | |||
9 | - CONFIG_DEVPTS_MULTIPLE_INSTANCES=y, and | ||
10 | - '-o newinstance' mount option is specified while mounting devpts | ||
11 | |||
12 | IOW, devpts now supports both single-instance and multi-instance semantics. | ||
13 | |||
14 | If CONFIG_DEVPTS_MULTIPLE_INSTANCES=n, there is no change in behavior and | ||
15 | this referred to as the "legacy" mode. In this mode, the new mount options | ||
16 | (-o newinstance and -o ptmxmode) will be ignored with a 'bogus option' message | ||
17 | on console. | ||
18 | |||
19 | If CONFIG_DEVPTS_MULTIPLE_INSTANCES=y and devpts is mounted without the | ||
20 | 'newinstance' option (as in current start-up scripts) the new mount binds | ||
21 | to the initial kernel mount of devpts. This mode is referred to as the | ||
22 | 'single-instance' mode and the current, single-instance semantics are | ||
23 | preserved, i.e PTYs are common across the system. | ||
24 | |||
25 | The only difference between this single-instance mode and the legacy mode | ||
26 | is the presence of new, '/dev/pts/ptmx' node with permissions 0000, which | ||
27 | can safely be ignored. | ||
28 | |||
29 | If CONFIG_DEVPTS_MULTIPLE_INSTANCES=y and 'newinstance' option is specified, | ||
30 | the mount is considered to be in the multi-instance mode and a new instance | ||
31 | of the devpts fs is created. Any ptys created in this instance are independent | ||
32 | of ptys in other instances of devpts. Like in the single-instance mode, the | ||
33 | /dev/pts/ptmx node is present. To effectively use the multi-instance mode, | ||
34 | open of /dev/ptmx must be a redirected to '/dev/pts/ptmx' using a symlink or | ||
35 | bind-mount. | ||
36 | |||
37 | Eg: A container startup script could do the following: | ||
38 | |||
39 | $ chmod 0666 /dev/pts/ptmx | ||
40 | $ rm /dev/ptmx | ||
41 | $ ln -s pts/ptmx /dev/ptmx | ||
42 | $ ns_exec -cm /bin/bash | ||
43 | |||
44 | # We are now in new container | ||
45 | |||
46 | $ umount /dev/pts | ||
47 | $ mount -t devpts -o newinstance lxcpts /dev/pts | ||
48 | $ sshd -p 1234 | ||
49 | |||
50 | where 'ns_exec -cm /bin/bash' calls clone() with CLONE_NEWNS flag and execs | ||
51 | /bin/bash in the child process. A pty created by the sshd is not visible in | ||
52 | the original mount of /dev/pts. | ||
53 | |||
54 | User-space changes | ||
55 | ------------------ | ||
56 | |||
57 | In multi-instance mode (i.e '-o newinstance' mount option is specified at least | ||
58 | once), following user-space issues should be noted. | ||
59 | |||
60 | 1. If -o newinstance mount option is never used, /dev/pts/ptmx can be ignored | ||
61 | and no change is needed to system-startup scripts. | ||
62 | |||
63 | 2. To effectively use multi-instance mode (i.e -o newinstance is specified) | ||
64 | administrators or startup scripts should "redirect" open of /dev/ptmx to | ||
65 | /dev/pts/ptmx using either a bind mount or symlink. | ||
66 | |||
67 | $ mount -t devpts -o newinstance devpts /dev/pts | ||
68 | |||
69 | followed by either | ||
70 | |||
71 | $ rm /dev/ptmx | ||
72 | $ ln -s pts/ptmx /dev/ptmx | ||
73 | $ chmod 666 /dev/pts/ptmx | ||
74 | or | ||
75 | $ mount -o bind /dev/pts/ptmx /dev/ptmx | ||
76 | |||
77 | 3. The '/dev/ptmx -> pts/ptmx' symlink is the preferred method since it | ||
78 | enables better error-reporting and treats both single-instance and | ||
79 | multi-instance mounts similarly. | ||
80 | |||
81 | But this method requires that system-startup scripts set the mode of | ||
82 | /dev/pts/ptmx correctly (default mode is 0000). The scripts can set the | ||
83 | mode by, either | ||
84 | |||
85 | - adding ptmxmode mount option to devpts entry in /etc/fstab, or | ||
86 | - using 'chmod 0666 /dev/pts/ptmx' | ||
87 | |||
88 | 4. If multi-instance mode mount is needed for containers, but the system | ||
89 | startup scripts have not yet been updated, container-startup scripts | ||
90 | should bind mount /dev/ptmx to /dev/pts/ptmx to avoid breaking single- | ||
91 | instance mounts. | ||
92 | |||
93 | Or, in general, container-startup scripts should use: | ||
94 | |||
95 | mount -t devpts -o newinstance -o ptmxmode=0666 devpts /dev/pts | ||
96 | if [ ! -L /dev/ptmx ]; then | ||
97 | mount -o bind /dev/pts/ptmx /dev/ptmx | ||
98 | fi | ||
99 | |||
100 | When all devpts mounts are multi-instance, /dev/ptmx can permanently be | ||
101 | a symlink to pts/ptmx and the bind mount can be ignored. | ||
102 | |||
103 | 5. A multi-instance mount that is not accompanied by the /dev/ptmx to | ||
104 | /dev/pts/ptmx redirection would result in an unusable/unreachable pty. | ||
105 | |||
106 | mount -t devpts -o newinstance lxcpts /dev/pts | ||
107 | |||
108 | immediately followed by: | ||
109 | |||
110 | open("/dev/ptmx") | ||
111 | |||
112 | would create a pty, say /dev/pts/7, in the initial kernel mount. | ||
113 | But /dev/pts/7 would be invisible in the new mount. | ||
114 | |||
115 | 6. The permissions for /dev/pts/ptmx node should be specified when mounting | ||
116 | /dev/pts, using the '-o ptmxmode=%o' mount option (default is 0000). | ||
117 | |||
118 | mount -t devpts -o newinstance -o ptmxmode=0644 devpts /dev/pts | ||
119 | |||
120 | The permissions can be later be changed as usual with 'chmod'. | ||
121 | |||
122 | chmod 666 /dev/pts/ptmx | ||
123 | |||
124 | 7. A mount of devpts without the 'newinstance' option results in binding to | ||
125 | initial kernel mount. This behavior while preserving legacy semantics, | ||
126 | does not provide strict isolation in a container environment. i.e by | ||
127 | mounting devpts without the 'newinstance' option, a container could | ||
128 | get visibility into the 'host' or root container's devpts. | ||
129 | |||
130 | To workaround this and have strict isolation, all mounts of devpts, | ||
131 | including the mount in the root container, should use the newinstance | ||
132 | option. | ||
diff --git a/Documentation/filesystems/files.txt b/Documentation/filesystems/files.txt index bb0142f61084..ac2facc50d2a 100644 --- a/Documentation/filesystems/files.txt +++ b/Documentation/filesystems/files.txt | |||
@@ -76,13 +76,13 @@ the fdtable structure - | |||
76 | 5. Handling of the file structures is special. Since the look-up | 76 | 5. Handling of the file structures is special. Since the look-up |
77 | of the fd (fget()/fget_light()) are lock-free, it is possible | 77 | of the fd (fget()/fget_light()) are lock-free, it is possible |
78 | that look-up may race with the last put() operation on the | 78 | that look-up may race with the last put() operation on the |
79 | file structure. This is avoided using atomic_inc_not_zero() | 79 | file structure. This is avoided using atomic_long_inc_not_zero() |
80 | on ->f_count : | 80 | on ->f_count : |
81 | 81 | ||
82 | rcu_read_lock(); | 82 | rcu_read_lock(); |
83 | file = fcheck_files(files, fd); | 83 | file = fcheck_files(files, fd); |
84 | if (file) { | 84 | if (file) { |
85 | if (atomic_inc_not_zero(&file->f_count)) | 85 | if (atomic_long_inc_not_zero(&file->f_count)) |
86 | *fput_needed = 1; | 86 | *fput_needed = 1; |
87 | else | 87 | else |
88 | /* Didn't get the reference, someone's freed */ | 88 | /* Didn't get the reference, someone's freed */ |
@@ -92,7 +92,7 @@ the fdtable structure - | |||
92 | .... | 92 | .... |
93 | return file; | 93 | return file; |
94 | 94 | ||
95 | atomic_inc_not_zero() detects if refcounts is already zero or | 95 | atomic_long_inc_not_zero() detects if refcounts is already zero or |
96 | goes to zero during increment. If it does, we fail | 96 | goes to zero during increment. If it does, we fail |
97 | fget()/fget_light(). | 97 | fget()/fget_light(). |
98 | 98 | ||
diff --git a/Documentation/filesystems/ocfs2.txt b/Documentation/filesystems/ocfs2.txt index 67310fbbb7df..c2a0871280a0 100644 --- a/Documentation/filesystems/ocfs2.txt +++ b/Documentation/filesystems/ocfs2.txt | |||
@@ -31,7 +31,6 @@ Features which OCFS2 does not support yet: | |||
31 | - quotas | 31 | - quotas |
32 | - Directory change notification (F_NOTIFY) | 32 | - Directory change notification (F_NOTIFY) |
33 | - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) | 33 | - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) |
34 | - POSIX ACLs | ||
35 | 34 | ||
36 | Mount options | 35 | Mount options |
37 | ============= | 36 | ============= |
@@ -79,3 +78,5 @@ inode64 Indicates that Ocfs2 is allowed to create inodes at | |||
79 | bits of significance. | 78 | bits of significance. |
80 | user_xattr (*) Enables Extended User Attributes. | 79 | user_xattr (*) Enables Extended User Attributes. |
81 | nouser_xattr Disables Extended User Attributes. | 80 | nouser_xattr Disables Extended User Attributes. |
81 | acl Enables POSIX Access Control Lists support. | ||
82 | noacl (*) Disables POSIX Access Control Lists support. | ||
diff --git a/Documentation/filesystems/ubifs.txt b/Documentation/filesystems/ubifs.txt index dd84ea3c10da..84da2a4ba25a 100644 --- a/Documentation/filesystems/ubifs.txt +++ b/Documentation/filesystems/ubifs.txt | |||
@@ -95,6 +95,9 @@ no_chk_data_crc skip checking of CRCs on data nodes in order to | |||
95 | of this option is that corruption of the contents | 95 | of this option is that corruption of the contents |
96 | of a file can go unnoticed. | 96 | of a file can go unnoticed. |
97 | chk_data_crc (*) do not skip checking CRCs on data nodes | 97 | chk_data_crc (*) do not skip checking CRCs on data nodes |
98 | compr=none override default compressor and set it to "none" | ||
99 | compr=lzo override default compressor and set it to "lzo" | ||
100 | compr=zlib override default compressor and set it to "zlib" | ||
98 | 101 | ||
99 | 102 | ||
100 | Quick usage instructions | 103 | Quick usage instructions |
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 5579bda58a6d..ef19afa186a9 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
@@ -733,7 +733,6 @@ struct file_operations { | |||
733 | ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); | 733 | ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); |
734 | unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); | 734 | unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); |
735 | int (*check_flags)(int); | 735 | int (*check_flags)(int); |
736 | int (*dir_notify)(struct file *filp, unsigned long arg); | ||
737 | int (*flock) (struct file *, int, struct file_lock *); | 736 | int (*flock) (struct file *, int, struct file_lock *); |
738 | ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, size_t, unsigned int); | 737 | ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, size_t, unsigned int); |
739 | ssize_t (*splice_read)(struct file *, struct pipe_inode_info *, size_t, unsigned int); | 738 | ssize_t (*splice_read)(struct file *, struct pipe_inode_info *, size_t, unsigned int); |
@@ -800,8 +799,6 @@ otherwise noted. | |||
800 | 799 | ||
801 | check_flags: called by the fcntl(2) system call for F_SETFL command | 800 | check_flags: called by the fcntl(2) system call for F_SETFL command |
802 | 801 | ||
803 | dir_notify: called by the fcntl(2) system call for F_NOTIFY command | ||
804 | |||
805 | flock: called by the flock(2) system call | 802 | flock: called by the flock(2) system call |
806 | 803 | ||
807 | splice_write: called by the VFS to splice data from a pipe to a file. This | 804 | splice_write: called by the VFS to splice data from a pipe to a file. This |
@@ -931,7 +928,7 @@ manipulate dentries: | |||
931 | d_lookup: look up a dentry given its parent and path name component | 928 | d_lookup: look up a dentry given its parent and path name component |
932 | It looks up the child of that given name from the dcache | 929 | It looks up the child of that given name from the dcache |
933 | hash table. If it is found, the reference count is incremented | 930 | hash table. If it is found, the reference count is incremented |
934 | and the dentry is returned. The caller must use d_put() | 931 | and the dentry is returned. The caller must use dput() |
935 | to free the dentry when it finishes using it. | 932 | to free the dentry when it finishes using it. |
936 | 933 | ||
937 | For further information on dentry locking, please refer to the document | 934 | For further information on dentry locking, please refer to the document |
diff --git a/Documentation/ioctl/ioctl-number.txt b/Documentation/ioctl/ioctl-number.txt index b880ce5dbd33..824699174436 100644 --- a/Documentation/ioctl/ioctl-number.txt +++ b/Documentation/ioctl/ioctl-number.txt | |||
@@ -97,6 +97,7 @@ Code Seq# Include File Comments | |||
97 | <http://linux01.gwdg.de/~alatham/ppdd.html> | 97 | <http://linux01.gwdg.de/~alatham/ppdd.html> |
98 | 'M' all linux/soundcard.h | 98 | 'M' all linux/soundcard.h |
99 | 'N' 00-1F drivers/usb/scanner.h | 99 | 'N' 00-1F drivers/usb/scanner.h |
100 | 'O' 00-02 include/mtd/ubi-user.h UBI | ||
100 | 'P' all linux/soundcard.h | 101 | 'P' all linux/soundcard.h |
101 | 'Q' all linux/soundcard.h | 102 | 'Q' all linux/soundcard.h |
102 | 'R' 00-1F linux/random.h | 103 | 'R' 00-1F linux/random.h |
@@ -142,6 +143,9 @@ Code Seq# Include File Comments | |||
142 | 'n' 00-7F linux/ncp_fs.h | 143 | 'n' 00-7F linux/ncp_fs.h |
143 | 'n' E0-FF video/matrox.h matroxfb | 144 | 'n' E0-FF video/matrox.h matroxfb |
144 | 'o' 00-1F fs/ocfs2/ocfs2_fs.h OCFS2 | 145 | 'o' 00-1F fs/ocfs2/ocfs2_fs.h OCFS2 |
146 | 'o' 00-03 include/mtd/ubi-user.h conflict! (OCFS2 and UBI overlaps) | ||
147 | 'o' 40-41 include/mtd/ubi-user.h UBI | ||
148 | 'o' 01-A1 include/linux/dvb/*.h DVB | ||
145 | 'p' 00-0F linux/phantom.h conflict! (OpenHaptics needs this) | 149 | 'p' 00-0F linux/phantom.h conflict! (OpenHaptics needs this) |
146 | 'p' 00-3F linux/mc146818rtc.h conflict! | 150 | 'p' 00-3F linux/mc146818rtc.h conflict! |
147 | 'p' 40-7F linux/nvram.h | 151 | 'p' 40-7F linux/nvram.h |
diff --git a/Documentation/kbuild/00-INDEX b/Documentation/kbuild/00-INDEX index 114644285454..e8d2b6d83a3d 100644 --- a/Documentation/kbuild/00-INDEX +++ b/Documentation/kbuild/00-INDEX | |||
@@ -1,5 +1,9 @@ | |||
1 | 00-INDEX | 1 | 00-INDEX |
2 | - this file: info on the kernel build process | 2 | - this file: info on the kernel build process |
3 | kbuild.txt | ||
4 | - developer information on kbuild | ||
5 | kconfig.txt | ||
6 | - usage help for make *config | ||
3 | kconfig-language.txt | 7 | kconfig-language.txt |
4 | - specification of Config Language, the language in Kconfig files | 8 | - specification of Config Language, the language in Kconfig files |
5 | makefiles.txt | 9 | makefiles.txt |
diff --git a/Documentation/kbuild/kbuild.txt b/Documentation/kbuild/kbuild.txt new file mode 100644 index 000000000000..51771847e816 --- /dev/null +++ b/Documentation/kbuild/kbuild.txt | |||
@@ -0,0 +1,126 @@ | |||
1 | Environment variables | ||
2 | |||
3 | KCPPFLAGS | ||
4 | -------------------------------------------------- | ||
5 | Additional options to pass when preprocessing. The preprocessing options | ||
6 | will be used in all cases where kbuild do preprocessing including | ||
7 | building C files and assembler files. | ||
8 | |||
9 | KAFLAGS | ||
10 | -------------------------------------------------- | ||
11 | Additional options to the assembler. | ||
12 | |||
13 | KCFLAGS | ||
14 | -------------------------------------------------- | ||
15 | Additional options to the C compiler. | ||
16 | |||
17 | KBUILD_VERBOSE | ||
18 | -------------------------------------------------- | ||
19 | Set the kbuild verbosity. Can be assinged same values as "V=...". | ||
20 | See make help for the full list. | ||
21 | Setting "V=..." takes precedence over KBUILD_VERBOSE. | ||
22 | |||
23 | KBUILD_EXTMOD | ||
24 | -------------------------------------------------- | ||
25 | Set the directory to look for the kernel source when building external | ||
26 | modules. | ||
27 | The directory can be specified in several ways: | ||
28 | 1) Use "M=..." on the command line | ||
29 | 2) Environmnet variable KBUILD_EXTMOD | ||
30 | 3) Environmnet variable SUBDIRS | ||
31 | The possibilities are listed in the order they take precedence. | ||
32 | Using "M=..." will always override the others. | ||
33 | |||
34 | KBUILD_OUTPUT | ||
35 | -------------------------------------------------- | ||
36 | Specify the output directory when building the kernel. | ||
37 | The output directory can also be specificed using "O=...". | ||
38 | Setting "O=..." takes precedence over KBUILD_OUTPUT | ||
39 | |||
40 | ARCH | ||
41 | -------------------------------------------------- | ||
42 | Set ARCH to the architecture to be built. | ||
43 | In most cases the name of the architecture is the same as the | ||
44 | directory name found in the arch/ directory. | ||
45 | But some architectures suach as x86 and sparc has aliases. | ||
46 | x86: i386 for 32 bit, x86_64 for 64 bit | ||
47 | sparc: sparc for 32 bit, sparc64 for 64 bit | ||
48 | |||
49 | CROSS_COMPILE | ||
50 | -------------------------------------------------- | ||
51 | Specify an optional fixed part of the binutils filename. | ||
52 | CROSS_COMPILE can be a part of the filename or the full path. | ||
53 | |||
54 | CROSS_COMPILE is also used for ccache is some setups. | ||
55 | |||
56 | CF | ||
57 | -------------------------------------------------- | ||
58 | Additional options for sparse. | ||
59 | CF is often used on the command-line like this: | ||
60 | |||
61 | make CF=-Wbitwise C=2 | ||
62 | |||
63 | INSTALL_PATH | ||
64 | -------------------------------------------------- | ||
65 | INSTALL_PATH specifies where to place the updated kernel and system map | ||
66 | images. Default is /boot, but you can set it to other values | ||
67 | |||
68 | |||
69 | MODLIB | ||
70 | -------------------------------------------------- | ||
71 | Specify where to install modules. | ||
72 | The default value is: | ||
73 | |||
74 | $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) | ||
75 | |||
76 | The value can be overridden in which case the default value is ignored. | ||
77 | |||
78 | INSTALL_MOD_PATH | ||
79 | -------------------------------------------------- | ||
80 | INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory | ||
81 | relocations required by build roots. This is not defined in the | ||
82 | makefile but the argument can be passed to make if needed. | ||
83 | |||
84 | INSTALL_MOD_STRIP | ||
85 | -------------------------------------------------- | ||
86 | INSTALL_MOD_STRIP, if defined, will cause modules to be | ||
87 | stripped after they are installed. If INSTALL_MOD_STRIP is '1', then | ||
88 | the default option --strip-debug will be used. Otherwise, | ||
89 | INSTALL_MOD_STRIP will used as the options to the strip command. | ||
90 | |||
91 | INSTALL_FW_PATH | ||
92 | -------------------------------------------------- | ||
93 | INSTALL_FW_PATH specify where to install the firmware blobs. | ||
94 | The default value is: | ||
95 | |||
96 | $(INSTALL_MOD_PATH)/lib/firmware | ||
97 | |||
98 | The value can be overridden in which case the default value is ignored. | ||
99 | |||
100 | INSTALL_HDR_PATH | ||
101 | -------------------------------------------------- | ||
102 | INSTALL_HDR_PATH specify where to install user space headers when | ||
103 | executing "make headers_*". | ||
104 | The default value is: | ||
105 | |||
106 | $(objtree)/usr | ||
107 | |||
108 | $(objtree) is the directory where output files are saved. | ||
109 | The output directory is often set using "O=..." on the commandline. | ||
110 | |||
111 | The value can be overridden in which case the default value is ignored. | ||
112 | |||
113 | KBUILD_MODPOST_WARN | ||
114 | -------------------------------------------------- | ||
115 | KBUILD_MODPOST_WARN can be set to avoid error out in case of undefined | ||
116 | symbols in the final module linking stage. | ||
117 | |||
118 | KBUILD_MODPOST_FINAL | ||
119 | -------------------------------------------------- | ||
120 | KBUILD_MODPOST_NOFINAL can be set to skip the final link of modules. | ||
121 | This is solely usefull to speed up test compiles. | ||
122 | |||
123 | KBUILD_EXTRA_SYMBOLS | ||
124 | -------------------------------------------------- | ||
125 | For modules use symbols from another modules. | ||
126 | See more details in modules.txt. | ||
diff --git a/Documentation/kbuild/kconfig.txt b/Documentation/kbuild/kconfig.txt new file mode 100644 index 000000000000..26a7c0a93193 --- /dev/null +++ b/Documentation/kbuild/kconfig.txt | |||
@@ -0,0 +1,188 @@ | |||
1 | This file contains some assistance for using "make *config". | ||
2 | |||
3 | Use "make help" to list all of the possible configuration targets. | ||
4 | |||
5 | The xconfig ('qconf') and menuconfig ('mconf') programs also | ||
6 | have embedded help text. Be sure to check it for navigation, | ||
7 | search, and other general help text. | ||
8 | |||
9 | ====================================================================== | ||
10 | General | ||
11 | -------------------------------------------------- | ||
12 | |||
13 | New kernel releases often introduce new config symbols. Often more | ||
14 | important, new kernel releases may rename config symbols. When | ||
15 | this happens, using a previously working .config file and running | ||
16 | "make oldconfig" won't necessarily produce a working new kernel | ||
17 | for you, so you may find that you need to see what NEW kernel | ||
18 | symbols have been introduced. | ||
19 | |||
20 | To see a list of new config symbols when using "make oldconfig", use | ||
21 | |||
22 | cp user/some/old.config .config | ||
23 | yes "" | make oldconfig >conf.new | ||
24 | |||
25 | and the config program will list as (NEW) any new symbols that have | ||
26 | unknown values. Of course, the .config file is also updated with | ||
27 | new (default) values, so you can use: | ||
28 | |||
29 | grep "(NEW)" conf.new | ||
30 | |||
31 | to see the new config symbols or you can 'diff' the previous and | ||
32 | new .config files to see the differences: | ||
33 | |||
34 | diff .config.old .config | less | ||
35 | |||
36 | (Yes, we need something better here.) | ||
37 | |||
38 | |||
39 | ====================================================================== | ||
40 | menuconfig | ||
41 | -------------------------------------------------- | ||
42 | |||
43 | SEARCHING for CONFIG symbols | ||
44 | |||
45 | Searching in menuconfig: | ||
46 | |||
47 | The Search function searches for kernel configuration symbol | ||
48 | names, so you have to know something close to what you are | ||
49 | looking for. | ||
50 | |||
51 | Example: | ||
52 | /hotplug | ||
53 | This lists all config symbols that contain "hotplug", | ||
54 | e.g., HOTPLUG, HOTPLUG_CPU, MEMORY_HOTPLUG. | ||
55 | |||
56 | For search help, enter / followed TAB-TAB-TAB (to highlight | ||
57 | <Help>) and Enter. This will tell you that you can also use | ||
58 | regular expressions (regexes) in the search string, so if you | ||
59 | are not interested in MEMORY_HOTPLUG, you could try | ||
60 | |||
61 | /^hotplug | ||
62 | |||
63 | |||
64 | ______________________________________________________________________ | ||
65 | Color Themes for 'menuconfig' | ||
66 | |||
67 | It is possible to select different color themes using the variable | ||
68 | MENUCONFIG_COLOR. To select a theme use: | ||
69 | |||
70 | make MENUCONFIG_COLOR=<theme> menuconfig | ||
71 | |||
72 | Available themes are: | ||
73 | mono => selects colors suitable for monochrome displays | ||
74 | blackbg => selects a color scheme with black background | ||
75 | classic => theme with blue background. The classic look | ||
76 | bluetitle => a LCD friendly version of classic. (default) | ||
77 | |||
78 | ______________________________________________________________________ | ||
79 | Environment variables in 'menuconfig' | ||
80 | |||
81 | KCONFIG_ALLCONFIG | ||
82 | -------------------------------------------------- | ||
83 | (partially based on lkml email from/by Rob Landley, re: miniconfig) | ||
84 | -------------------------------------------------- | ||
85 | The allyesconfig/allmodconfig/allnoconfig/randconfig variants can | ||
86 | also use the environment variable KCONFIG_ALLCONFIG as a flag or a | ||
87 | filename that contains config symbols that the user requires to be | ||
88 | set to a specific value. If KCONFIG_ALLCONFIG is used without a | ||
89 | filename, "make *config" checks for a file named | ||
90 | "all{yes/mod/no/random}.config" (corresponding to the *config command | ||
91 | that was used) for symbol values that are to be forced. If this file | ||
92 | is not found, it checks for a file named "all.config" to contain forced | ||
93 | values. | ||
94 | |||
95 | This enables you to create "miniature" config (miniconfig) or custom | ||
96 | config files containing just the config symbols that you are interested | ||
97 | in. Then the kernel config system generates the full .config file, | ||
98 | including dependencies of your miniconfig file, based on the miniconfig | ||
99 | file. | ||
100 | |||
101 | This 'KCONFIG_ALLCONFIG' file is a config file which contains | ||
102 | (usually a subset of all) preset config symbols. These variable | ||
103 | settings are still subject to normal dependency checks. | ||
104 | |||
105 | Examples: | ||
106 | KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig | ||
107 | or | ||
108 | KCONFIG_ALLCONFIG=mini.config make allnoconfig | ||
109 | or | ||
110 | make KCONFIG_ALLCONFIG=mini.config allnoconfig | ||
111 | |||
112 | These examples will disable most options (allnoconfig) but enable or | ||
113 | disable the options that are explicitly listed in the specified | ||
114 | mini-config files. | ||
115 | |||
116 | KCONFIG_NOSILENTUPDATE | ||
117 | -------------------------------------------------- | ||
118 | If this variable has a non-blank value, it prevents silent kernel | ||
119 | config udpates (requires explicit updates). | ||
120 | |||
121 | KCONFIG_CONFIG | ||
122 | -------------------------------------------------- | ||
123 | This environment variable can be used to specify a default kernel config | ||
124 | file name to override the default name of ".config". | ||
125 | |||
126 | KCONFIG_OVERWRITECONFIG | ||
127 | -------------------------------------------------- | ||
128 | If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not | ||
129 | break symlinks when .config is a symlink to somewhere else. | ||
130 | |||
131 | KCONFIG_NOTIMESTAMP | ||
132 | -------------------------------------------------- | ||
133 | If this environment variable exists and is non-null, the timestamp line | ||
134 | in generated .config files is omitted. | ||
135 | |||
136 | KCONFIG_AUTOCONFIG | ||
137 | -------------------------------------------------- | ||
138 | This environment variable can be set to specify the path & name of the | ||
139 | "auto.conf" file. Its default value is "include/config/auto.conf". | ||
140 | |||
141 | KCONFIG_AUTOHEADER | ||
142 | -------------------------------------------------- | ||
143 | This environment variable can be set to specify the path & name of the | ||
144 | "autoconf.h" (header) file. Its default value is "include/linux/autoconf.h". | ||
145 | |||
146 | ______________________________________________________________________ | ||
147 | menuconfig User Interface Options | ||
148 | ---------------------------------------------------------------------- | ||
149 | MENUCONFIG_MODE | ||
150 | -------------------------------------------------- | ||
151 | This mode shows all sub-menus in one large tree. | ||
152 | |||
153 | Example: | ||
154 | MENUCONFIG_MODE=single_menu make menuconfig | ||
155 | |||
156 | ====================================================================== | ||
157 | xconfig | ||
158 | -------------------------------------------------- | ||
159 | |||
160 | Searching in xconfig: | ||
161 | |||
162 | The Search function searches for kernel configuration symbol | ||
163 | names, so you have to know something close to what you are | ||
164 | looking for. | ||
165 | |||
166 | Example: | ||
167 | Ctrl-F hotplug | ||
168 | or | ||
169 | Menu: File, Search, hotplug | ||
170 | |||
171 | lists all config symbol entries that contain "hotplug" in | ||
172 | the symbol name. In this Search dialog, you may change the | ||
173 | config setting for any of the entries that are not grayed out. | ||
174 | You can also enter a different search string without having | ||
175 | to return to the main menu. | ||
176 | |||
177 | |||
178 | ====================================================================== | ||
179 | gconfig | ||
180 | -------------------------------------------------- | ||
181 | |||
182 | Searching in gconfig: | ||
183 | |||
184 | None (gconfig isn't maintained as well as xconfig or menuconfig); | ||
185 | however, gconfig does have a few more viewing choices than | ||
186 | xconfig does. | ||
187 | |||
188 | ### | ||
diff --git a/Documentation/usb/wusb-cbaf b/Documentation/usb/wusb-cbaf index 2e78b70f3adc..426ddaaef96f 100644 --- a/Documentation/usb/wusb-cbaf +++ b/Documentation/usb/wusb-cbaf | |||
@@ -80,12 +80,6 @@ case $1 in | |||
80 | start) | 80 | start) |
81 | for dev in ${2:-$hdevs} | 81 | for dev in ${2:-$hdevs} |
82 | do | 82 | do |
83 | uwb_rc=$(readlink -f $dev/uwb_rc) | ||
84 | if cat $uwb_rc/beacon | grep -q -- "-1" | ||
85 | then | ||
86 | echo 13 0 > $uwb_rc/beacon | ||
87 | echo I: started beaconing on ch 13 on $(basename $uwb_rc) >&2 | ||
88 | fi | ||
89 | echo $host_CHID > $dev/wusb_chid | 83 | echo $host_CHID > $dev/wusb_chid |
90 | echo I: started host $(basename $dev) >&2 | 84 | echo I: started host $(basename $dev) >&2 |
91 | done | 85 | done |
@@ -95,9 +89,6 @@ case $1 in | |||
95 | do | 89 | do |
96 | echo 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > $dev/wusb_chid | 90 | echo 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > $dev/wusb_chid |
97 | echo I: stopped host $(basename $dev) >&2 | 91 | echo I: stopped host $(basename $dev) >&2 |
98 | uwb_rc=$(readlink -f $dev/uwb_rc) | ||
99 | echo -1 | cat > $uwb_rc/beacon | ||
100 | echo I: stopped beaconing on $(basename $uwb_rc) >&2 | ||
101 | done | 92 | done |
102 | ;; | 93 | ;; |
103 | set-chid) | 94 | set-chid) |
diff --git a/Documentation/video4linux/CARDLIST.saa7134 b/Documentation/video4linux/CARDLIST.saa7134 index 335aef4dcaeb..b8d470596b0c 100644 --- a/Documentation/video4linux/CARDLIST.saa7134 +++ b/Documentation/video4linux/CARDLIST.saa7134 | |||
@@ -152,3 +152,4 @@ | |||
152 | 151 -> ADS Tech Instant HDTV [1421:0380] | 152 | 151 -> ADS Tech Instant HDTV [1421:0380] |
153 | 152 -> Asus Tiger Rev:1.00 [1043:4857] | 153 | 152 -> Asus Tiger Rev:1.00 [1043:4857] |
154 | 153 -> Kworld Plus TV Analog Lite PCI [17de:7128] | 154 | 153 -> Kworld Plus TV Analog Lite PCI [17de:7128] |
155 | 154 -> Avermedia AVerTV GO 007 FM Plus [1461:f31d] | ||
diff --git a/Documentation/video4linux/si470x.txt b/Documentation/video4linux/si470x.txt index 11c5fd22a332..49679e6aaa76 100644 --- a/Documentation/video4linux/si470x.txt +++ b/Documentation/video4linux/si470x.txt | |||
@@ -41,6 +41,7 @@ chips are known to work: | |||
41 | - 10c4:818a: Silicon Labs USB FM Radio Reference Design | 41 | - 10c4:818a: Silicon Labs USB FM Radio Reference Design |
42 | - 06e1:a155: ADS/Tech FM Radio Receiver (formerly Instant FM Music) (RDX-155-EF) | 42 | - 06e1:a155: ADS/Tech FM Radio Receiver (formerly Instant FM Music) (RDX-155-EF) |
43 | - 1b80:d700: KWorld USB FM Radio SnapMusic Mobile 700 (FM700) | 43 | - 1b80:d700: KWorld USB FM Radio SnapMusic Mobile 700 (FM700) |
44 | - 10c5:819a: DealExtreme USB Radio | ||
44 | 45 | ||
45 | 46 | ||
46 | Software | 47 | Software |
diff --git a/Documentation/video4linux/v4l2-framework.txt b/Documentation/video4linux/v4l2-framework.txt index eeae76c22a93..ff124374e9ba 100644 --- a/Documentation/video4linux/v4l2-framework.txt +++ b/Documentation/video4linux/v4l2-framework.txt | |||
@@ -184,7 +184,7 @@ may be NULL if the subdev driver does not support anything from that category. | |||
184 | It looks like this: | 184 | It looks like this: |
185 | 185 | ||
186 | struct v4l2_subdev_core_ops { | 186 | struct v4l2_subdev_core_ops { |
187 | int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_chip_ident *chip); | 187 | int (*g_chip_ident)(struct v4l2_subdev *sd, struct v4l2_dbg_chip_ident *chip); |
188 | int (*log_status)(struct v4l2_subdev *sd); | 188 | int (*log_status)(struct v4l2_subdev *sd); |
189 | int (*init)(struct v4l2_subdev *sd, u32 val); | 189 | int (*init)(struct v4l2_subdev *sd, u32 val); |
190 | ... | 190 | ... |
@@ -390,16 +390,18 @@ allocated memory. | |||
390 | 390 | ||
391 | You should also set these fields: | 391 | You should also set these fields: |
392 | 392 | ||
393 | - parent: set to the parent device (same device as was used to register | 393 | - v4l2_dev: set to the v4l2_device parent device. |
394 | v4l2_device). | ||
395 | - name: set to something descriptive and unique. | 394 | - name: set to something descriptive and unique. |
396 | - fops: set to the file_operations struct. | 395 | - fops: set to the v4l2_file_operations struct. |
397 | - ioctl_ops: if you use the v4l2_ioctl_ops to simplify ioctl maintenance | 396 | - ioctl_ops: if you use the v4l2_ioctl_ops to simplify ioctl maintenance |
398 | (highly recommended to use this and it might become compulsory in the | 397 | (highly recommended to use this and it might become compulsory in the |
399 | future!), then set this to your v4l2_ioctl_ops struct. | 398 | future!), then set this to your v4l2_ioctl_ops struct. |
400 | 399 | ||
401 | If you use v4l2_ioctl_ops, then you should set .unlocked_ioctl to | 400 | If you use v4l2_ioctl_ops, then you should set either .unlocked_ioctl or |
402 | __video_ioctl2 or .ioctl to video_ioctl2 in your file_operations struct. | 401 | .ioctl to video_ioctl2 in your v4l2_file_operations struct. |
402 | |||
403 | The v4l2_file_operations struct is a subset of file_operations. The main | ||
404 | difference is that the inode argument is omitted since it is never used. | ||
403 | 405 | ||
404 | 406 | ||
405 | video_device registration | 407 | video_device registration |
@@ -410,7 +412,7 @@ for you. | |||
410 | 412 | ||
411 | err = video_register_device(vdev, VFL_TYPE_GRABBER, -1); | 413 | err = video_register_device(vdev, VFL_TYPE_GRABBER, -1); |
412 | if (err) { | 414 | if (err) { |
413 | video_device_release(vdev); // or kfree(my_vdev); | 415 | video_device_release(vdev); /* or kfree(my_vdev); */ |
414 | return err; | 416 | return err; |
415 | } | 417 | } |
416 | 418 | ||
@@ -516,5 +518,4 @@ void *video_drvdata(struct file *file); | |||
516 | 518 | ||
517 | You can go from a video_device struct to the v4l2_device struct using: | 519 | You can go from a video_device struct to the v4l2_device struct using: |
518 | 520 | ||
519 | struct v4l2_device *v4l2_dev = dev_get_drvdata(vdev->parent); | 521 | struct v4l2_device *v4l2_dev = vdev->v4l2_dev; |
520 | |||