Loading Documentation/DocBook/libata.tmpl +16 −33 Original line number Original line Diff line number Diff line Loading @@ -107,10 +107,6 @@ void (*dev_config) (struct ata_port *, struct ata_device *); issue of SET FEATURES - XFER MODE, and prior to operation. issue of SET FEATURES - XFER MODE, and prior to operation. </para> </para> <para> <para> Called by ata_device_add() after ata_dev_identify() determines a device is present. </para> <para> This entry may be specified as NULL in ata_port_operations. This entry may be specified as NULL in ata_port_operations. </para> </para> Loading Loading @@ -154,8 +150,8 @@ unsigned int (*mode_filter) (struct ata_port *, struct ata_device *, unsigned in <sect2><title>Taskfile read/write</title> <sect2><title>Taskfile read/write</title> <programlisting> <programlisting> void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf); void (*sff_tf_load) (struct ata_port *ap, struct ata_taskfile *tf); void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); void (*sff_tf_read) (struct ata_port *ap, struct ata_taskfile *tf); </programlisting> </programlisting> <para> <para> Loading @@ -164,36 +160,35 @@ void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); hardware registers / DMA buffers, to obtain the current set of hardware registers / DMA buffers, to obtain the current set of taskfile register values. taskfile register values. Most drivers for taskfile-based hardware (PIO or MMIO) use Most drivers for taskfile-based hardware (PIO or MMIO) use ata_tf_load() and ata_tf_read() for these hooks. ata_sff_tf_load() and ata_sff_tf_read() for these hooks. </para> </para> </sect2> </sect2> <sect2><title>PIO data read/write</title> <sect2><title>PIO data read/write</title> <programlisting> <programlisting> void (*data_xfer) (struct ata_device *, unsigned char *, unsigned int, int); void (*sff_data_xfer) (struct ata_device *, unsigned char *, unsigned int, int); </programlisting> </programlisting> <para> <para> All bmdma-style drivers must implement this hook. This is the low-level All bmdma-style drivers must implement this hook. This is the low-level operation that actually copies the data bytes during a PIO data operation that actually copies the data bytes during a PIO data transfer. transfer. Typically the driver Typically the driver will choose one of ata_sff_data_xfer_noirq(), will choose one of ata_pio_data_xfer_noirq(), ata_pio_data_xfer(), or ata_sff_data_xfer(), or ata_sff_data_xfer32(). ata_mmio_data_xfer(). </para> </para> </sect2> </sect2> <sect2><title>ATA command execute</title> <sect2><title>ATA command execute</title> <programlisting> <programlisting> void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf); void (*sff_exec_command)(struct ata_port *ap, struct ata_taskfile *tf); </programlisting> </programlisting> <para> <para> causes an ATA command, previously loaded with causes an ATA command, previously loaded with ->tf_load(), to be initiated in hardware. ->tf_load(), to be initiated in hardware. Most drivers for taskfile-based hardware use ata_exec_command() Most drivers for taskfile-based hardware use ata_sff_exec_command() for this hook. for this hook. </para> </para> Loading @@ -218,8 +213,8 @@ command. <sect2><title>Read specific ATA shadow registers</title> <sect2><title>Read specific ATA shadow registers</title> <programlisting> <programlisting> u8 (*check_status)(struct ata_port *ap); u8 (*sff_check_status)(struct ata_port *ap); u8 (*check_altstatus)(struct ata_port *ap); u8 (*sff_check_altstatus)(struct ata_port *ap); </programlisting> </programlisting> <para> <para> Loading @@ -227,20 +222,14 @@ u8 (*check_altstatus)(struct ata_port *ap); hardware. On some hardware, reading the Status register has hardware. On some hardware, reading the Status register has the side effect of clearing the interrupt condition. the side effect of clearing the interrupt condition. Most drivers for taskfile-based hardware use Most drivers for taskfile-based hardware use ata_check_status() for this hook. ata_sff_check_status() for this hook. </para> <para> Note that because this is called from ata_device_add(), at least a dummy function that clears device interrupts must be provided for all drivers, even if the controller doesn't actually have a taskfile status register. </para> </para> </sect2> </sect2> <sect2><title>Select ATA device on bus</title> <sect2><title>Select ATA device on bus</title> <programlisting> <programlisting> void (*dev_select)(struct ata_port *ap, unsigned int device); void (*sff_dev_select)(struct ata_port *ap, unsigned int device); </programlisting> </programlisting> <para> <para> Loading @@ -251,9 +240,7 @@ void (*dev_select)(struct ata_port *ap, unsigned int device); </para> </para> <para> <para> Most drivers for taskfile-based hardware use Most drivers for taskfile-based hardware use ata_std_dev_select() for this hook. Controllers which do not ata_sff_dev_select() for this hook. support second drives on a port (such as SATA contollers) will use ata_noop_dev_select(). </para> </para> </sect2> </sect2> Loading Loading @@ -441,13 +428,13 @@ void (*irq_clear) (struct ata_port *); to struct ata_host_set. to struct ata_host_set. </para> </para> <para> <para> Most legacy IDE drivers use ata_interrupt() for the Most legacy IDE drivers use ata_sff_interrupt() for the irq_handler hook, which scans all ports in the host_set, irq_handler hook, which scans all ports in the host_set, determines which queued command was active (if any), and calls determines which queued command was active (if any), and calls ata_host_intr(ap,qc). ata_sff_host_intr(ap,qc). </para> </para> <para> <para> Most legacy IDE drivers use ata_bmdma_irq_clear() for the Most legacy IDE drivers use ata_sff_irq_clear() for the irq_clear() hook, which simply clears the interrupt and error irq_clear() hook, which simply clears the interrupt and error flags in the DMA status register. flags in the DMA status register. </para> </para> Loading Loading @@ -496,10 +483,6 @@ void (*host_stop) (struct ata_host_set *host_set); data from port at this time. data from port at this time. </para> </para> <para> <para> Many drivers use ata_port_stop() as this hook, which frees the PRD table. </para> <para> ->host_stop() is called after all ->port_stop() calls ->host_stop() is called after all ->port_stop() calls have completed. The hook must finalize hardware shutdown, release DMA have completed. The hook must finalize hardware shutdown, release DMA and other resources, etc. and other resources, etc. Loading Documentation/HOWTO +1 −1 Original line number Original line Diff line number Diff line Loading @@ -234,7 +234,7 @@ process is as follows: Linus, usually the patches that have already been included in the Linus, usually the patches that have already been included in the -next kernel for a few weeks. The preferred way to submit big changes -next kernel for a few weeks. The preferred way to submit big changes is using git (the kernel's source management tool, more information is using git (the kernel's source management tool, more information can be found at http://git.or.cz/) but plain patches are also just can be found at http://git-scm.com/) but plain patches are also just fine. fine. - After two weeks a -rc1 kernel is released it is now possible to push - After two weeks a -rc1 kernel is released it is now possible to push only patches that do not include new features that could affect the only patches that do not include new features that could affect the Loading Documentation/cgroups/cgroups.txt +1 −2 Original line number Original line Diff line number Diff line Loading @@ -235,8 +235,7 @@ containing the following files describing that cgroup: - cgroup.procs: list of tgids in the cgroup. This list is not - cgroup.procs: list of tgids in the cgroup. This list is not guaranteed to be sorted or free of duplicate tgids, and userspace guaranteed to be sorted or free of duplicate tgids, and userspace should sort/uniquify the list if this property is required. should sort/uniquify the list if this property is required. Writing a tgid into this file moves all threads with that tgid into This is a read-only file, for now. this cgroup. - notify_on_release flag: run the release agent on exit? - notify_on_release flag: run the release agent on exit? - release_agent: the path to use for release notifications (this file - release_agent: the path to use for release notifications (this file exists in the top cgroup only) exists in the top cgroup only) Loading Documentation/feature-removal-schedule.txt +23 −0 Original line number Original line Diff line number Diff line Loading @@ -589,3 +589,26 @@ Why: Useful in 2003, implementation is a hack. Generally invoked by accident today. Generally invoked by accident today. Seen as doing more harm than good. Seen as doing more harm than good. Who: Len Brown <len.brown@intel.com> Who: Len Brown <len.brown@intel.com> ---------------------------- What: video4linux /dev/vtx teletext API support When: 2.6.35 Files: drivers/media/video/saa5246a.c drivers/media/video/saa5249.c include/linux/videotext.h Why: The vtx device nodes have been superseded by vbi device nodes for many years. No applications exist that use the vtx support. Of the two i2c drivers that actually support this API the saa5249 has been impossible to use for a year now and no known hardware that supports this device exists. The saa5246a is theoretically supported by the old mxb boards, but it never actually worked. In summary: there is no hardware that can use this API and there are no applications actually implementing this API. The vtx support still reserves minors 192-223 and we would really like to reuse those for upcoming new functionality. In the unlikely event that new hardware appears that wants to use the functionality provided by the vtx API, then that functionality should be build around the sliced VBI API instead. Who: Hans Verkuil <hverkuil@xs4all.nl> Documentation/i2c/writing-clients +5 −0 Original line number Original line Diff line number Diff line Loading @@ -74,6 +74,11 @@ structure at all. You should use this to keep device-specific data. /* retrieve the value */ /* retrieve the value */ void *i2c_get_clientdata(const struct i2c_client *client); void *i2c_get_clientdata(const struct i2c_client *client); Note that starting with kernel 2.6.34, you don't have to set the `data' field to NULL in remove() or if probe() failed anymore. The i2c-core does this automatically on these occasions. Those are also the only times the core will touch this field. Accessing the client Accessing the client ==================== ==================== Loading Loading
Documentation/DocBook/libata.tmpl +16 −33 Original line number Original line Diff line number Diff line Loading @@ -107,10 +107,6 @@ void (*dev_config) (struct ata_port *, struct ata_device *); issue of SET FEATURES - XFER MODE, and prior to operation. issue of SET FEATURES - XFER MODE, and prior to operation. </para> </para> <para> <para> Called by ata_device_add() after ata_dev_identify() determines a device is present. </para> <para> This entry may be specified as NULL in ata_port_operations. This entry may be specified as NULL in ata_port_operations. </para> </para> Loading Loading @@ -154,8 +150,8 @@ unsigned int (*mode_filter) (struct ata_port *, struct ata_device *, unsigned in <sect2><title>Taskfile read/write</title> <sect2><title>Taskfile read/write</title> <programlisting> <programlisting> void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf); void (*sff_tf_load) (struct ata_port *ap, struct ata_taskfile *tf); void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); void (*sff_tf_read) (struct ata_port *ap, struct ata_taskfile *tf); </programlisting> </programlisting> <para> <para> Loading @@ -164,36 +160,35 @@ void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); hardware registers / DMA buffers, to obtain the current set of hardware registers / DMA buffers, to obtain the current set of taskfile register values. taskfile register values. Most drivers for taskfile-based hardware (PIO or MMIO) use Most drivers for taskfile-based hardware (PIO or MMIO) use ata_tf_load() and ata_tf_read() for these hooks. ata_sff_tf_load() and ata_sff_tf_read() for these hooks. </para> </para> </sect2> </sect2> <sect2><title>PIO data read/write</title> <sect2><title>PIO data read/write</title> <programlisting> <programlisting> void (*data_xfer) (struct ata_device *, unsigned char *, unsigned int, int); void (*sff_data_xfer) (struct ata_device *, unsigned char *, unsigned int, int); </programlisting> </programlisting> <para> <para> All bmdma-style drivers must implement this hook. This is the low-level All bmdma-style drivers must implement this hook. This is the low-level operation that actually copies the data bytes during a PIO data operation that actually copies the data bytes during a PIO data transfer. transfer. Typically the driver Typically the driver will choose one of ata_sff_data_xfer_noirq(), will choose one of ata_pio_data_xfer_noirq(), ata_pio_data_xfer(), or ata_sff_data_xfer(), or ata_sff_data_xfer32(). ata_mmio_data_xfer(). </para> </para> </sect2> </sect2> <sect2><title>ATA command execute</title> <sect2><title>ATA command execute</title> <programlisting> <programlisting> void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf); void (*sff_exec_command)(struct ata_port *ap, struct ata_taskfile *tf); </programlisting> </programlisting> <para> <para> causes an ATA command, previously loaded with causes an ATA command, previously loaded with ->tf_load(), to be initiated in hardware. ->tf_load(), to be initiated in hardware. Most drivers for taskfile-based hardware use ata_exec_command() Most drivers for taskfile-based hardware use ata_sff_exec_command() for this hook. for this hook. </para> </para> Loading @@ -218,8 +213,8 @@ command. <sect2><title>Read specific ATA shadow registers</title> <sect2><title>Read specific ATA shadow registers</title> <programlisting> <programlisting> u8 (*check_status)(struct ata_port *ap); u8 (*sff_check_status)(struct ata_port *ap); u8 (*check_altstatus)(struct ata_port *ap); u8 (*sff_check_altstatus)(struct ata_port *ap); </programlisting> </programlisting> <para> <para> Loading @@ -227,20 +222,14 @@ u8 (*check_altstatus)(struct ata_port *ap); hardware. On some hardware, reading the Status register has hardware. On some hardware, reading the Status register has the side effect of clearing the interrupt condition. the side effect of clearing the interrupt condition. Most drivers for taskfile-based hardware use Most drivers for taskfile-based hardware use ata_check_status() for this hook. ata_sff_check_status() for this hook. </para> <para> Note that because this is called from ata_device_add(), at least a dummy function that clears device interrupts must be provided for all drivers, even if the controller doesn't actually have a taskfile status register. </para> </para> </sect2> </sect2> <sect2><title>Select ATA device on bus</title> <sect2><title>Select ATA device on bus</title> <programlisting> <programlisting> void (*dev_select)(struct ata_port *ap, unsigned int device); void (*sff_dev_select)(struct ata_port *ap, unsigned int device); </programlisting> </programlisting> <para> <para> Loading @@ -251,9 +240,7 @@ void (*dev_select)(struct ata_port *ap, unsigned int device); </para> </para> <para> <para> Most drivers for taskfile-based hardware use Most drivers for taskfile-based hardware use ata_std_dev_select() for this hook. Controllers which do not ata_sff_dev_select() for this hook. support second drives on a port (such as SATA contollers) will use ata_noop_dev_select(). </para> </para> </sect2> </sect2> Loading Loading @@ -441,13 +428,13 @@ void (*irq_clear) (struct ata_port *); to struct ata_host_set. to struct ata_host_set. </para> </para> <para> <para> Most legacy IDE drivers use ata_interrupt() for the Most legacy IDE drivers use ata_sff_interrupt() for the irq_handler hook, which scans all ports in the host_set, irq_handler hook, which scans all ports in the host_set, determines which queued command was active (if any), and calls determines which queued command was active (if any), and calls ata_host_intr(ap,qc). ata_sff_host_intr(ap,qc). </para> </para> <para> <para> Most legacy IDE drivers use ata_bmdma_irq_clear() for the Most legacy IDE drivers use ata_sff_irq_clear() for the irq_clear() hook, which simply clears the interrupt and error irq_clear() hook, which simply clears the interrupt and error flags in the DMA status register. flags in the DMA status register. </para> </para> Loading Loading @@ -496,10 +483,6 @@ void (*host_stop) (struct ata_host_set *host_set); data from port at this time. data from port at this time. </para> </para> <para> <para> Many drivers use ata_port_stop() as this hook, which frees the PRD table. </para> <para> ->host_stop() is called after all ->port_stop() calls ->host_stop() is called after all ->port_stop() calls have completed. The hook must finalize hardware shutdown, release DMA have completed. The hook must finalize hardware shutdown, release DMA and other resources, etc. and other resources, etc. Loading
Documentation/HOWTO +1 −1 Original line number Original line Diff line number Diff line Loading @@ -234,7 +234,7 @@ process is as follows: Linus, usually the patches that have already been included in the Linus, usually the patches that have already been included in the -next kernel for a few weeks. The preferred way to submit big changes -next kernel for a few weeks. The preferred way to submit big changes is using git (the kernel's source management tool, more information is using git (the kernel's source management tool, more information can be found at http://git.or.cz/) but plain patches are also just can be found at http://git-scm.com/) but plain patches are also just fine. fine. - After two weeks a -rc1 kernel is released it is now possible to push - After two weeks a -rc1 kernel is released it is now possible to push only patches that do not include new features that could affect the only patches that do not include new features that could affect the Loading
Documentation/cgroups/cgroups.txt +1 −2 Original line number Original line Diff line number Diff line Loading @@ -235,8 +235,7 @@ containing the following files describing that cgroup: - cgroup.procs: list of tgids in the cgroup. This list is not - cgroup.procs: list of tgids in the cgroup. This list is not guaranteed to be sorted or free of duplicate tgids, and userspace guaranteed to be sorted or free of duplicate tgids, and userspace should sort/uniquify the list if this property is required. should sort/uniquify the list if this property is required. Writing a tgid into this file moves all threads with that tgid into This is a read-only file, for now. this cgroup. - notify_on_release flag: run the release agent on exit? - notify_on_release flag: run the release agent on exit? - release_agent: the path to use for release notifications (this file - release_agent: the path to use for release notifications (this file exists in the top cgroup only) exists in the top cgroup only) Loading
Documentation/feature-removal-schedule.txt +23 −0 Original line number Original line Diff line number Diff line Loading @@ -589,3 +589,26 @@ Why: Useful in 2003, implementation is a hack. Generally invoked by accident today. Generally invoked by accident today. Seen as doing more harm than good. Seen as doing more harm than good. Who: Len Brown <len.brown@intel.com> Who: Len Brown <len.brown@intel.com> ---------------------------- What: video4linux /dev/vtx teletext API support When: 2.6.35 Files: drivers/media/video/saa5246a.c drivers/media/video/saa5249.c include/linux/videotext.h Why: The vtx device nodes have been superseded by vbi device nodes for many years. No applications exist that use the vtx support. Of the two i2c drivers that actually support this API the saa5249 has been impossible to use for a year now and no known hardware that supports this device exists. The saa5246a is theoretically supported by the old mxb boards, but it never actually worked. In summary: there is no hardware that can use this API and there are no applications actually implementing this API. The vtx support still reserves minors 192-223 and we would really like to reuse those for upcoming new functionality. In the unlikely event that new hardware appears that wants to use the functionality provided by the vtx API, then that functionality should be build around the sliced VBI API instead. Who: Hans Verkuil <hverkuil@xs4all.nl>
Documentation/i2c/writing-clients +5 −0 Original line number Original line Diff line number Diff line Loading @@ -74,6 +74,11 @@ structure at all. You should use this to keep device-specific data. /* retrieve the value */ /* retrieve the value */ void *i2c_get_clientdata(const struct i2c_client *client); void *i2c_get_clientdata(const struct i2c_client *client); Note that starting with kernel 2.6.34, you don't have to set the `data' field to NULL in remove() or if probe() failed anymore. The i2c-core does this automatically on these occasions. Those are also the only times the core will touch this field. Accessing the client Accessing the client ==================== ==================== Loading