Loading CREDITS +31 −31 Original line number Diff line number Diff line Loading @@ -380,7 +380,7 @@ S: FutureTV Labs Ltd S: Brunswick House, 61-69 Newmarket Rd, Cambridge CB5 8EG S: United Kingdom N: Thomas Bogendrfer N: Thomas Bogendörfer E: tsbogend@alpha.franken.de D: PCnet32 driver, SONIC driver, JAZZ_ESP driver D: newport abscon driver, g364 framebuffer driver Loading @@ -400,7 +400,7 @@ W: http://math-www.uni-paderborn.de/~axel/ D: Configuration help text support D: Linux CD and Support Giveaway List N: Erik Inge Bols N: Erik Inge Bolsø E: knan@mo.himolde.no D: Misc kernel hacks Loading Loading @@ -428,7 +428,7 @@ D: Various fixes (mostly networking) S: Montreal, Quebec S: Canada N: Zoltn Bszrmnyi N: Zoltán Böszörményi E: zboszor@mail.externet.hu D: MTRR emulation with Cyrix style ARR registers, Athlon MTRR support Loading Loading @@ -661,7 +661,7 @@ N: Kees Cook E: kees@outflux.net W: http://outflux.net/ P: 1024D/17063E6D 9FA3 C49C 23C9 D1BC 2E30 1975 1FFF 4BA9 1706 3E6D D: Minor updates to SCSI code for the Communications type D: Minor updates to SCSI types, added /proc/pid/maps protection S: (ask for current address) S: USA Loading Loading @@ -1029,11 +1029,11 @@ D: Future Domain TMC-16x0 SCSI driver (author) D: APM driver (early port) D: DRM drivers (author of several) N: Jnos Farkas N: János Farkas E: chexum@shadow.banki.hu D: romfs, various (mostly networking) fixes P: 1024/F81FB2E1 41 B7 E4 E6 3E D4 A6 71 6D 9C F3 9F F2 BF DF 6E S: Madarsz Viktor utca 25 S: Madarász Viktor utca 25 S: 1131 Budapest S: Hungary Loading @@ -1044,10 +1044,10 @@ D: UDF filesystem S: (ask for current address) S: USA N: Jrgen Fischer E: fischer@norbit.de (=?iso-8859-1?q?J=FCrgen?= Fischer) N: Jürgen Fischer E: fischer@norbit.de D: Author of Adaptec AHA-152x SCSI driver S: Schulstrae 18 S: Schulstraße 18 S: 26506 Norden S: Germany Loading Loading @@ -1113,7 +1113,7 @@ E: fuganti@netbank.com.br D: random kernel hacker, ZF MachZ Watchdog driver S: Conectiva S.A. S: R. Tocantins, 89 - Cristo Rei S: 80050-430 - Curitiba - Paran S: 80050-430 - Curitiba - Paraná S: Brazil N: Kumar Gala Loading Loading @@ -1258,12 +1258,12 @@ S: 44 St. Joseph Street, Suite 506 S: Toronto, Ontario, M4Y 2W4 S: Canada N: Richard Gnther N: Richard Günther E: rguenth@tat.physik.uni-tuebingen.de W: http://www.tat.physik.uni-tuebingen.de/~rguenth P: 2048/2E829319 2F 83 FC 93 E9 E4 19 E2 93 7A 32 42 45 37 23 57 D: binfmt_misc S: 72074 Tbingen S: 72074 Tübingen S: Germany N: Justin Guyett Loading @@ -1287,7 +1287,7 @@ N: Bruno Haible E: haible@ma2s2.mathematik.uni-karlsruhe.de D: SysV FS, shm swapping, memory management fixes S: 17 rue Danton S: F - 94270 Le Kremlin-Bictre S: F - 94270 Le Kremlin-Bicêtre S: France N: Greg Hankins Loading Loading @@ -1701,7 +1701,7 @@ S: Czech Republic N: Jakob Kemi E: jakob.kemi@telia.com D: V4L W9966 Webcam driver S: Forsbyvgen 33 S: Forsbyvägen 33 S: 74143 Knivsta S: Sweden Loading Loading @@ -1745,8 +1745,9 @@ S: D-64295 S: Germany N: Andi Kleen E: ak@muc.de D: network hacker, syncookies E: andi@firstfloor.org U: http://www.halobates.de D: network, x86, NUMA, various hacks S: Schwalbenstr. 96 S: 85551 Ottobrunn S: Germany Loading Loading @@ -2064,7 +2065,7 @@ D: misc. kernel hacking and debugging S: Cambridge, MA 02139 S: USA N: Martin von Lwis N: Martin von Löwis E: loewis@informatik.hu-berlin.de D: script binary format D: NTFS driver Loading Loading @@ -2141,7 +2142,7 @@ S: PO BOX 220, HFX. CENTRAL S: Halifax, Nova Scotia S: Canada B3J 3C8 N: Kai Mkisara N: Kai Mäkisara E: Kai.Makisara@kolumbus.fi D: SCSI Tape Driver Loading Loading @@ -2298,8 +2299,8 @@ E: acme@redhat.com W: http://oops.ghostprotocols.net:81/blog/ P: 1024D/9224DF01 D5DF E3BB E3C8 BCBB F8AD 841A B6AB 4681 9224 DF01 D: IPX, LLC, DCCP, cyc2x, wl3501_cs, net/ hacks S: R. Braslio Itiber, 4270/1010 - gua Verde S: 80240-060 - Curitiba - Paran S: R. Brasílio Itiberê, 4270/1010 - Água Verde S: 80240-060 - Curitiba - Paraná S: Brazil N: Karsten Merker Loading Loading @@ -2579,10 +2580,9 @@ S: Australia N: Miguel Ojeda Sandonis E: maxextreme@gmail.com D: Author: Auxiliary LCD Controller driver (ks0108) D: Author: Auxiliary LCD driver (cfag12864b) D: Author: Auxiliary LCD framebuffer driver (cfag12864bfb) D: Maintainer: Auxiliary display drivers tree (drivers/auxdisplay/*) W: http://maxextreme.googlepages.com/ D: Author of the ks0108, cfag12864b and cfag12864bfb auxiliary display drivers. D: Maintainer of the auxiliary display drivers tree (drivers/auxdisplay/*) S: C/ Mieses 20, 9-B S: Valladolid 47009 S: Spain Loading Loading @@ -2785,10 +2785,10 @@ N: Juan Quintela E: quintela@fi.udc.es D: Memory Management hacking S: LFCIA S: Departamento de Computacin S: Universidade da Corua S: Departamento de Computación S: Universidade da Coruña S: E-15071 S: A Corua S: A Coruña S: Spain N: Augusto Cesar Radtke Loading Loading @@ -2939,7 +2939,7 @@ E: aris@cathedrallabs.org D: Support for EtherExpress 10 ISA (i82595) in eepro driver D: User level driver support for input S: R. Jose Serrato, 130 - Santa Candida S: 82640-320 - Curitiba - Paran S: 82640-320 - Curitiba - Paraná S: Brazil N: Alessandro Rubini Loading Loading @@ -3345,15 +3345,15 @@ P: 1024D/D0FE7AFB B24A 65C9 1D71 2AC2 DE87 CA26 189B 9946 D0FE 7AFB D: rcutorture maintainer D: lock annotations, finding and fixing lock bugs N: Winfried Trmper N: Winfried Trümper E: winni@xpilot.org W: http://www.shop.de/~winni/ D: German HOWTO, Crash-Kurs Linux (German, 100 comprehensive pages) D: CD-Writing HOWTO, various mini-HOWTOs D: One-week tutorials on Linux twice a year (free of charge) D: Linux-Workshop Kln (aka LUG Cologne, Germany), Installfests D: Linux-Workshop Köln (aka LUG Cologne, Germany), Installfests S: Tacitusstr. 6 S: D-50968 Kln S: D-50968 Köln N: Tsu-Sheng Tsao E: tsusheng@scf.usc.edu Loading Documentation/ABI/removed/devfs +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ Description: races, contains a naming policy within the kernel that is against the LSB, and can be replaced by using udev. The files fs/devfs/*, include/linux/devfs_fs*.h were removed, along with the the assorted devfs function calls throughout the along with the assorted devfs function calls throughout the kernel tree. Users: Documentation/CodingStyle +16 −1 Original line number Diff line number Diff line Loading @@ -160,6 +160,21 @@ supply of new-lines on your screen is not a renewable resource (think 25-line terminal screens here), you have more empty lines to put comments on. Do not unnecessarily use braces where a single statement will do. if (condition) action(); This does not apply if one branch of a conditional statement is a single statement. Use braces in both branches. if (condition) { do_this(); do_that(); } else { otherwise(); } 3.1: Spaces Linux kernel style for use of spaces depends (mostly) on Loading Loading @@ -625,7 +640,7 @@ language. There appears to be a common misperception that gcc has a magic "make me faster" speedup option called "inline". While the use of inlines can be appropriate (for example as a means of replacing macros, see Chapter 11), it appropriate (for example as a means of replacing macros, see Chapter 12), it very often is not. Abundant use of the inline keyword leads to a much bigger kernel, which in turn slows the system as a whole down, due to a bigger icache footprint for the CPU and simply because there is less memory Loading Documentation/DocBook/Makefile +12 −7 Original line number Diff line number Diff line Loading @@ -41,8 +41,9 @@ psdocs: $(PS) PDF := $(patsubst %.xml, %.pdf, $(BOOKS)) pdfdocs: $(PDF) HTML := $(patsubst %.xml, %.html, $(BOOKS)) HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS))) htmldocs: $(HTML) $(call build_main_index) MAN := $(patsubst %.xml, %.9, $(BOOKS)) mandocs: $(MAN) Loading Loading @@ -132,10 +133,17 @@ quiet_cmd_db2pdf = PDF $@ %.pdf : %.xml $(call cmd,db2pdf) main_idx = Documentation/DocBook/index.html build_main_index = rm -rf $(main_idx) && \ echo '<h1>Linux Kernel HTML Documentation</h1>' >> $(main_idx) && \ echo '<h2>Kernel Version: $(KERNELVERSION)</h2>' >> $(main_idx) && \ cat $(HTML) >> $(main_idx) quiet_cmd_db2html = HTML $@ cmd_db2html = xmlto xhtml $(XMLTOFLAGS) -o $(patsubst %.html,%,$@) $< && \ echo '<a HREF="$(patsubst %.html,%,$(notdir $@))/index.html"> \ Goto $(patsubst %.html,%,$(notdir $@))</a><p>' > $@ $(patsubst %.html,%,$(notdir $@))</a><p>' > $@ %.html: %.xml @(which xmlto > /dev/null 2>&1) || \ Loading @@ -152,6 +160,7 @@ quiet_cmd_db2man = MAN $@ @(which xmlto > /dev/null 2>&1) || \ (echo "*** You need to install xmlto ***"; \ exit 1) $(Q)mkdir -p $(obj)/man $(call cmd,db2man) @touch $@ Loading Loading @@ -212,11 +221,7 @@ clean-files := $(DOCBOOKS) \ $(patsubst %.xml, %.9, $(DOCBOOKS)) \ $(C-procfs-example) clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) #man put files in man subdir - traverse down subdir- := man/ clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man # Declare the contents of the .PHONY variable as phony. We keep that # information in a variable se we can use it in if_changed and friends. Loading Documentation/DocBook/kernel-api.tmpl +67 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,10 @@ X!Iinclude/linux/kobject.h !Ekernel/rcupdate.c </sect1> <sect1><title>Device Resource Management</title> !Edrivers/base/devres.c </sect1> </chapter> <chapter id="adt"> Loading Loading @@ -576,4 +580,67 @@ X!Idrivers/video/console/fonts.c !Edrivers/input/ff-core.c !Edrivers/input/ff-memless.c </chapter> <chapter id="spi"> <title>Serial Peripheral Interface (SPI)</title> <para> SPI is the "Serial Peripheral Interface", widely used with embedded systems because it is a simple and efficient interface: basically a multiplexed shift register. Its three signal wires hold a clock (SCK, often in the range of 1-20 MHz), a "Master Out, Slave In" (MOSI) data line, and a "Master In, Slave Out" (MISO) data line. SPI is a full duplex protocol; for each bit shifted out the MOSI line (one per clock) another is shifted in on the MISO line. Those bits are assembled into words of various sizes on the way to and from system memory. An additional chipselect line is usually active-low (nCS); four signals are normally used for each peripheral, plus sometimes an interrupt. </para> <para> The SPI bus facilities listed here provide a generalized interface to declare SPI busses and devices, manage them according to the standard Linux driver model, and perform input/output operations. At this time, only "master" side interfaces are supported, where Linux talks to SPI peripherals and does not implement such a peripheral itself. (Interfaces to support implementing SPI slaves would necessarily look different.) </para> <para> The programming interface is structured around two kinds of driver, and two kinds of device. A "Controller Driver" abstracts the controller hardware, which may be as simple as a set of GPIO pins or as complex as a pair of FIFOs connected to dual DMA engines on the other side of the SPI shift register (maximizing throughput). Such drivers bridge between whatever bus they sit on (often the platform bus) and SPI, and expose the SPI side of their device as a <structname>struct spi_master</structname>. SPI devices are children of that master, represented as a <structname>struct spi_device</structname> and manufactured from <structname>struct spi_board_info</structname> descriptors which are usually provided by board-specific initialization code. A <structname>struct spi_driver</structname> is called a "Protocol Driver", and is bound to a spi_device using normal driver model calls. </para> <para> The I/O model is a set of queued messages. Protocol drivers submit one or more <structname>struct spi_message</structname> objects, which are processed and completed asynchronously. (There are synchronous wrappers, however.) Messages are built from one or more <structname>struct spi_transfer</structname> objects, each of which wraps a full duplex SPI transfer. A variety of protocol tweaking options are needed, because different chips adopt very different policies for how they use the bits transferred with SPI. </para> !Iinclude/linux/spi/spi.h !Fdrivers/spi/spi.c spi_register_board_info !Edrivers/spi/spi.c </chapter> </book> Loading
CREDITS +31 −31 Original line number Diff line number Diff line Loading @@ -380,7 +380,7 @@ S: FutureTV Labs Ltd S: Brunswick House, 61-69 Newmarket Rd, Cambridge CB5 8EG S: United Kingdom N: Thomas Bogendrfer N: Thomas Bogendörfer E: tsbogend@alpha.franken.de D: PCnet32 driver, SONIC driver, JAZZ_ESP driver D: newport abscon driver, g364 framebuffer driver Loading @@ -400,7 +400,7 @@ W: http://math-www.uni-paderborn.de/~axel/ D: Configuration help text support D: Linux CD and Support Giveaway List N: Erik Inge Bols N: Erik Inge Bolsø E: knan@mo.himolde.no D: Misc kernel hacks Loading Loading @@ -428,7 +428,7 @@ D: Various fixes (mostly networking) S: Montreal, Quebec S: Canada N: Zoltn Bszrmnyi N: Zoltán Böszörményi E: zboszor@mail.externet.hu D: MTRR emulation with Cyrix style ARR registers, Athlon MTRR support Loading Loading @@ -661,7 +661,7 @@ N: Kees Cook E: kees@outflux.net W: http://outflux.net/ P: 1024D/17063E6D 9FA3 C49C 23C9 D1BC 2E30 1975 1FFF 4BA9 1706 3E6D D: Minor updates to SCSI code for the Communications type D: Minor updates to SCSI types, added /proc/pid/maps protection S: (ask for current address) S: USA Loading Loading @@ -1029,11 +1029,11 @@ D: Future Domain TMC-16x0 SCSI driver (author) D: APM driver (early port) D: DRM drivers (author of several) N: Jnos Farkas N: János Farkas E: chexum@shadow.banki.hu D: romfs, various (mostly networking) fixes P: 1024/F81FB2E1 41 B7 E4 E6 3E D4 A6 71 6D 9C F3 9F F2 BF DF 6E S: Madarsz Viktor utca 25 S: Madarász Viktor utca 25 S: 1131 Budapest S: Hungary Loading @@ -1044,10 +1044,10 @@ D: UDF filesystem S: (ask for current address) S: USA N: Jrgen Fischer E: fischer@norbit.de (=?iso-8859-1?q?J=FCrgen?= Fischer) N: Jürgen Fischer E: fischer@norbit.de D: Author of Adaptec AHA-152x SCSI driver S: Schulstrae 18 S: Schulstraße 18 S: 26506 Norden S: Germany Loading Loading @@ -1113,7 +1113,7 @@ E: fuganti@netbank.com.br D: random kernel hacker, ZF MachZ Watchdog driver S: Conectiva S.A. S: R. Tocantins, 89 - Cristo Rei S: 80050-430 - Curitiba - Paran S: 80050-430 - Curitiba - Paraná S: Brazil N: Kumar Gala Loading Loading @@ -1258,12 +1258,12 @@ S: 44 St. Joseph Street, Suite 506 S: Toronto, Ontario, M4Y 2W4 S: Canada N: Richard Gnther N: Richard Günther E: rguenth@tat.physik.uni-tuebingen.de W: http://www.tat.physik.uni-tuebingen.de/~rguenth P: 2048/2E829319 2F 83 FC 93 E9 E4 19 E2 93 7A 32 42 45 37 23 57 D: binfmt_misc S: 72074 Tbingen S: 72074 Tübingen S: Germany N: Justin Guyett Loading @@ -1287,7 +1287,7 @@ N: Bruno Haible E: haible@ma2s2.mathematik.uni-karlsruhe.de D: SysV FS, shm swapping, memory management fixes S: 17 rue Danton S: F - 94270 Le Kremlin-Bictre S: F - 94270 Le Kremlin-Bicêtre S: France N: Greg Hankins Loading Loading @@ -1701,7 +1701,7 @@ S: Czech Republic N: Jakob Kemi E: jakob.kemi@telia.com D: V4L W9966 Webcam driver S: Forsbyvgen 33 S: Forsbyvägen 33 S: 74143 Knivsta S: Sweden Loading Loading @@ -1745,8 +1745,9 @@ S: D-64295 S: Germany N: Andi Kleen E: ak@muc.de D: network hacker, syncookies E: andi@firstfloor.org U: http://www.halobates.de D: network, x86, NUMA, various hacks S: Schwalbenstr. 96 S: 85551 Ottobrunn S: Germany Loading Loading @@ -2064,7 +2065,7 @@ D: misc. kernel hacking and debugging S: Cambridge, MA 02139 S: USA N: Martin von Lwis N: Martin von Löwis E: loewis@informatik.hu-berlin.de D: script binary format D: NTFS driver Loading Loading @@ -2141,7 +2142,7 @@ S: PO BOX 220, HFX. CENTRAL S: Halifax, Nova Scotia S: Canada B3J 3C8 N: Kai Mkisara N: Kai Mäkisara E: Kai.Makisara@kolumbus.fi D: SCSI Tape Driver Loading Loading @@ -2298,8 +2299,8 @@ E: acme@redhat.com W: http://oops.ghostprotocols.net:81/blog/ P: 1024D/9224DF01 D5DF E3BB E3C8 BCBB F8AD 841A B6AB 4681 9224 DF01 D: IPX, LLC, DCCP, cyc2x, wl3501_cs, net/ hacks S: R. Braslio Itiber, 4270/1010 - gua Verde S: 80240-060 - Curitiba - Paran S: R. Brasílio Itiberê, 4270/1010 - Água Verde S: 80240-060 - Curitiba - Paraná S: Brazil N: Karsten Merker Loading Loading @@ -2579,10 +2580,9 @@ S: Australia N: Miguel Ojeda Sandonis E: maxextreme@gmail.com D: Author: Auxiliary LCD Controller driver (ks0108) D: Author: Auxiliary LCD driver (cfag12864b) D: Author: Auxiliary LCD framebuffer driver (cfag12864bfb) D: Maintainer: Auxiliary display drivers tree (drivers/auxdisplay/*) W: http://maxextreme.googlepages.com/ D: Author of the ks0108, cfag12864b and cfag12864bfb auxiliary display drivers. D: Maintainer of the auxiliary display drivers tree (drivers/auxdisplay/*) S: C/ Mieses 20, 9-B S: Valladolid 47009 S: Spain Loading Loading @@ -2785,10 +2785,10 @@ N: Juan Quintela E: quintela@fi.udc.es D: Memory Management hacking S: LFCIA S: Departamento de Computacin S: Universidade da Corua S: Departamento de Computación S: Universidade da Coruña S: E-15071 S: A Corua S: A Coruña S: Spain N: Augusto Cesar Radtke Loading Loading @@ -2939,7 +2939,7 @@ E: aris@cathedrallabs.org D: Support for EtherExpress 10 ISA (i82595) in eepro driver D: User level driver support for input S: R. Jose Serrato, 130 - Santa Candida S: 82640-320 - Curitiba - Paran S: 82640-320 - Curitiba - Paraná S: Brazil N: Alessandro Rubini Loading Loading @@ -3345,15 +3345,15 @@ P: 1024D/D0FE7AFB B24A 65C9 1D71 2AC2 DE87 CA26 189B 9946 D0FE 7AFB D: rcutorture maintainer D: lock annotations, finding and fixing lock bugs N: Winfried Trmper N: Winfried Trümper E: winni@xpilot.org W: http://www.shop.de/~winni/ D: German HOWTO, Crash-Kurs Linux (German, 100 comprehensive pages) D: CD-Writing HOWTO, various mini-HOWTOs D: One-week tutorials on Linux twice a year (free of charge) D: Linux-Workshop Kln (aka LUG Cologne, Germany), Installfests D: Linux-Workshop Köln (aka LUG Cologne, Germany), Installfests S: Tacitusstr. 6 S: D-50968 Kln S: D-50968 Köln N: Tsu-Sheng Tsao E: tsusheng@scf.usc.edu Loading
Documentation/ABI/removed/devfs +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ Description: races, contains a naming policy within the kernel that is against the LSB, and can be replaced by using udev. The files fs/devfs/*, include/linux/devfs_fs*.h were removed, along with the the assorted devfs function calls throughout the along with the assorted devfs function calls throughout the kernel tree. Users:
Documentation/CodingStyle +16 −1 Original line number Diff line number Diff line Loading @@ -160,6 +160,21 @@ supply of new-lines on your screen is not a renewable resource (think 25-line terminal screens here), you have more empty lines to put comments on. Do not unnecessarily use braces where a single statement will do. if (condition) action(); This does not apply if one branch of a conditional statement is a single statement. Use braces in both branches. if (condition) { do_this(); do_that(); } else { otherwise(); } 3.1: Spaces Linux kernel style for use of spaces depends (mostly) on Loading Loading @@ -625,7 +640,7 @@ language. There appears to be a common misperception that gcc has a magic "make me faster" speedup option called "inline". While the use of inlines can be appropriate (for example as a means of replacing macros, see Chapter 11), it appropriate (for example as a means of replacing macros, see Chapter 12), it very often is not. Abundant use of the inline keyword leads to a much bigger kernel, which in turn slows the system as a whole down, due to a bigger icache footprint for the CPU and simply because there is less memory Loading
Documentation/DocBook/Makefile +12 −7 Original line number Diff line number Diff line Loading @@ -41,8 +41,9 @@ psdocs: $(PS) PDF := $(patsubst %.xml, %.pdf, $(BOOKS)) pdfdocs: $(PDF) HTML := $(patsubst %.xml, %.html, $(BOOKS)) HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS))) htmldocs: $(HTML) $(call build_main_index) MAN := $(patsubst %.xml, %.9, $(BOOKS)) mandocs: $(MAN) Loading Loading @@ -132,10 +133,17 @@ quiet_cmd_db2pdf = PDF $@ %.pdf : %.xml $(call cmd,db2pdf) main_idx = Documentation/DocBook/index.html build_main_index = rm -rf $(main_idx) && \ echo '<h1>Linux Kernel HTML Documentation</h1>' >> $(main_idx) && \ echo '<h2>Kernel Version: $(KERNELVERSION)</h2>' >> $(main_idx) && \ cat $(HTML) >> $(main_idx) quiet_cmd_db2html = HTML $@ cmd_db2html = xmlto xhtml $(XMLTOFLAGS) -o $(patsubst %.html,%,$@) $< && \ echo '<a HREF="$(patsubst %.html,%,$(notdir $@))/index.html"> \ Goto $(patsubst %.html,%,$(notdir $@))</a><p>' > $@ $(patsubst %.html,%,$(notdir $@))</a><p>' > $@ %.html: %.xml @(which xmlto > /dev/null 2>&1) || \ Loading @@ -152,6 +160,7 @@ quiet_cmd_db2man = MAN $@ @(which xmlto > /dev/null 2>&1) || \ (echo "*** You need to install xmlto ***"; \ exit 1) $(Q)mkdir -p $(obj)/man $(call cmd,db2man) @touch $@ Loading Loading @@ -212,11 +221,7 @@ clean-files := $(DOCBOOKS) \ $(patsubst %.xml, %.9, $(DOCBOOKS)) \ $(C-procfs-example) clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) #man put files in man subdir - traverse down subdir- := man/ clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man # Declare the contents of the .PHONY variable as phony. We keep that # information in a variable se we can use it in if_changed and friends. Loading
Documentation/DocBook/kernel-api.tmpl +67 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,10 @@ X!Iinclude/linux/kobject.h !Ekernel/rcupdate.c </sect1> <sect1><title>Device Resource Management</title> !Edrivers/base/devres.c </sect1> </chapter> <chapter id="adt"> Loading Loading @@ -576,4 +580,67 @@ X!Idrivers/video/console/fonts.c !Edrivers/input/ff-core.c !Edrivers/input/ff-memless.c </chapter> <chapter id="spi"> <title>Serial Peripheral Interface (SPI)</title> <para> SPI is the "Serial Peripheral Interface", widely used with embedded systems because it is a simple and efficient interface: basically a multiplexed shift register. Its three signal wires hold a clock (SCK, often in the range of 1-20 MHz), a "Master Out, Slave In" (MOSI) data line, and a "Master In, Slave Out" (MISO) data line. SPI is a full duplex protocol; for each bit shifted out the MOSI line (one per clock) another is shifted in on the MISO line. Those bits are assembled into words of various sizes on the way to and from system memory. An additional chipselect line is usually active-low (nCS); four signals are normally used for each peripheral, plus sometimes an interrupt. </para> <para> The SPI bus facilities listed here provide a generalized interface to declare SPI busses and devices, manage them according to the standard Linux driver model, and perform input/output operations. At this time, only "master" side interfaces are supported, where Linux talks to SPI peripherals and does not implement such a peripheral itself. (Interfaces to support implementing SPI slaves would necessarily look different.) </para> <para> The programming interface is structured around two kinds of driver, and two kinds of device. A "Controller Driver" abstracts the controller hardware, which may be as simple as a set of GPIO pins or as complex as a pair of FIFOs connected to dual DMA engines on the other side of the SPI shift register (maximizing throughput). Such drivers bridge between whatever bus they sit on (often the platform bus) and SPI, and expose the SPI side of their device as a <structname>struct spi_master</structname>. SPI devices are children of that master, represented as a <structname>struct spi_device</structname> and manufactured from <structname>struct spi_board_info</structname> descriptors which are usually provided by board-specific initialization code. A <structname>struct spi_driver</structname> is called a "Protocol Driver", and is bound to a spi_device using normal driver model calls. </para> <para> The I/O model is a set of queued messages. Protocol drivers submit one or more <structname>struct spi_message</structname> objects, which are processed and completed asynchronously. (There are synchronous wrappers, however.) Messages are built from one or more <structname>struct spi_transfer</structname> objects, each of which wraps a full duplex SPI transfer. A variety of protocol tweaking options are needed, because different chips adopt very different policies for how they use the bits transferred with SPI. </para> !Iinclude/linux/spi/spi.h !Fdrivers/spi/spi.c spi_register_board_info !Edrivers/spi/spi.c </chapter> </book>