Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
e3e25fc
Apply Linux patch 3.10.33 - 3.10.34
Stane1983 Aug 3, 2015
0e283d0
Apply Linux patch 3.10.34 - 3.10.35
Stane1983 Aug 3, 2015
b1295cf
Apply Linux patch 3.10.35 - 3.10.36
Stane1983 Aug 3, 2015
c3192d0
Apply Linux patch 3.10.36 - 3.10.37
Stane1983 Aug 3, 2015
1b9ac66
Apply Linux patch 3.10.37 - 3.10.38
Stane1983 Aug 3, 2015
cd6536c
Apply Linux patch 3.10.38 - 3.10.39
Stane1983 Aug 3, 2015
5332864
Apply Linux patch 3.10.39 - 3.10.40
Stane1983 Aug 3, 2015
4180f3b
Apply Linux patch 3.10.40 - 3.10.41
Stane1983 Aug 3, 2015
69c9072
Apply Linux patch 3.10.41 - 3.10.42
Stane1983 Aug 3, 2015
c024ed0
Apply Linux patch 3.10.42 - 3.10.43
Stane1983 Aug 3, 2015
59b8f92
Apply Linux patch 3.10.43 - 3.10.44
Stane1983 Aug 3, 2015
b3f7edc
Apply Linux patch 3.10.44 - 3.10.45
Stane1983 Aug 3, 2015
96129de
Apply Linux patch 3.10.45 - 3.10.46
Stane1983 Aug 3, 2015
c42504f
Apply Linux patch 3.10.46 - 3.10.47
Stane1983 Aug 3, 2015
5ba824f
Apply Linux patch 3.10.47 - 3.10.48
Stane1983 Aug 3, 2015
6f35a47
Apply Linux patch 3.10.48 - 3.10.49
Stane1983 Aug 3, 2015
9977c93
Apply Linux patch 3.10.49 - 3.10.50
Stane1983 Aug 3, 2015
25f795f
Apply Linux patch 3.10.50 - 3.10.51
Stane1983 Aug 3, 2015
89fffc4
Apply Linux patch 3.10.51 - 3.10.52
Stane1983 Aug 3, 2015
e0b9329
Apply Linux patch 3.10.52 - 3.10.53
Stane1983 Aug 3, 2015
f70dcab
Apply Linux patch 3.10.53 - 3.10.54
Stane1983 Aug 3, 2015
989ed95
Apply Linux patch 3.10.54 - 3.10.55
Stane1983 Aug 3, 2015
2e1a81f
Apply Linux patch 3.10.55 - 3.10.56
Stane1983 Aug 3, 2015
21bd39e
Apply Linux patch 3.10.56 - 3.10.57
Stane1983 Aug 3, 2015
5e81b98
Apply Linux patch 3.10.57 - 3.10.58
Stane1983 Aug 3, 2015
903b15e
Apply Linux patch 3.10.58 - 3.10.59
Stane1983 Aug 3, 2015
f9f2bd8
Apply Linux patch 3.10.59 - 3.10.60
Stane1983 Aug 3, 2015
2afd64b
Apply Linux patch 3.10.60 - 3.10.61
Stane1983 Aug 3, 2015
058c3b7
Apply Linux patch 3.10.61 - 3.10.62
Stane1983 Aug 3, 2015
a4e1311
Apply Linux patch 3.10.62 - 3.10.63
Stane1983 Aug 3, 2015
051666a
Fix compile: kernel/power/main.c - we don't have valid_state function
Stane1983 Aug 3, 2015
8c214f2
Apply Linux patch 3.10.63 - 3.10.64
Stane1983 Aug 3, 2015
3400e38
Apply Linux patch 3.10.64 - 3.10.65
Stane1983 Aug 3, 2015
8e2dd13
Apply Linux patch 3.10.65 - 3.10.66
Stane1983 Aug 3, 2015
d31a314
Apply Linux patch 3.10.66 - 3.10.67
Stane1983 Aug 3, 2015
fdd4c3a
Apply Linux patch 3.10.67 - 3.10.68
Stane1983 Aug 3, 2015
ee98242
Apply Linux patch 3.10.68 - 3.10.69
Stane1983 Aug 3, 2015
18a0dbb
Apply Linux patch 3.10.69 - 3.10.70
Stane1983 Aug 3, 2015
931fde7
Apply Linux patch 3.10.70 - 3.10.71
Stane1983 Aug 3, 2015
8c09d4b
Apply Linux patch 3.10.71 - 3.10.72
Stane1983 Aug 3, 2015
d90587b
Apply Linux patch 3.10.72 - 3.10.73
Stane1983 Aug 3, 2015
78638e8
Apply Linux patch 3.10.73 - 3.10.74
Stane1983 Aug 3, 2015
c6cdeaf
Apply Linux patch 3.10.74 - 3.10.75
Stane1983 Aug 3, 2015
3869818
Apply Linux patch 3.10.75 - 3.10.76
Stane1983 Aug 3, 2015
6c63c39
Apply Linux patch 3.10.76 - 3.10.77
Stane1983 Aug 3, 2015
bdbcd23
Apply Linux patch 3.10.77 - 3.10.78
Stane1983 Aug 3, 2015
ba13873
Apply Linux patch 3.10.78 - 3.10.79
Stane1983 Aug 3, 2015
efe3060
amlogic-pinctrl: Fix driver for 3.10.79 kernel
Stane1983 Aug 3, 2015
2be1d25
Apply Linux patch 3.10.79 - 3.10.80
Stane1983 Aug 3, 2015
3c7c6cc
gpio: Fix compile
Stane1983 Aug 3, 2015
7884067
Apply Linux patch 3.10.80 - 3.10.81
Stane1983 Aug 3, 2015
3546613
Apply Linux patch 3.10.81 - 3.10.82
Stane1983 Aug 3, 2015
2597172
Apply Linux patch 3.10.82 - 3.10.83
Stane1983 Aug 3, 2015
fd5e4f2
Apply Linux patch 3.10.83 - 3.10.84
Stane1983 Aug 3, 2015
7fd89bc
FIX: arm: define PHYS_OFFSET only if it's not already defined
Stane1983 Aug 3, 2015
cf612d7
Fix pinctrl driver
Stane1983 Aug 3, 2015
871da13
Apply Linux patch 3.10.84 - 3.10.85
Stane1983 Aug 3, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion Documentation/DocBook/media/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ DVB_DOCUMENTED = \
#

install_media_images = \
$(Q)cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api
$(Q)-cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api

$(MEDIA_OBJ_DIR)/%: $(MEDIA_SRC_DIR)/%.b64
$(Q)base64 -d $< >$@
Expand Down
22 changes: 21 additions & 1 deletion Documentation/SubmittingPatches
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,20 @@ If you cannot condense your patch set into a smaller set of patches,
then only post say 15 or so at a time and wait for review and integration.


If your patch fixes a bug in a specific commit, e.g. you found an issue using
git-bisect, please use the 'Fixes:' tag with the first 12 characters of the
SHA-1 ID, and the one line summary.
Example:

Fixes: e21d2170f366 ("video: remove unnecessary platform_set_drvdata()")

The following git-config settings can be used to add a pretty format for
outputting the above style in the git log or git show commands

[core]
abbrev = 12
[pretty]
fixes = Fixes: %h (\"%s\")

4) Style check your changes.

Expand Down Expand Up @@ -420,7 +434,7 @@ person it names. This tag documents that potentially interested parties
have been included in the discussion


14) Using Reported-by:, Tested-by:, Reviewed-by: and Suggested-by:
14) Using Reported-by:, Tested-by:, Reviewed-by:, Suggested-by: and Fixes:

If this patch fixes a problem reported by somebody else, consider adding a
Reported-by: tag to credit the reporter for their contribution. Please
Expand Down Expand Up @@ -475,6 +489,12 @@ idea was not posted in a public forum. That said, if we diligently credit our
idea reporters, they will, hopefully, be inspired to help us again in the
future.

A Fixes: tag indicates that the patch fixes an issue in a previous commit. It
is used to make it easy to determine where a bug originated, which can help
review a bug fix. This tag also assists the stable kernel team in determining
which stable kernel versions should receive your fix. This is the preferred
method for indicating a bug fixed by the patch. See #2 above for more details.


15) The canonical patch format

Expand Down
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/dma/fsl-mxs-dma.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ dma_apbx: dma-apbx@80024000 {
80 81 68 69
70 71 72 73
74 75 76 77>;
interrupt-names = "auart4-rx", "aurat4-tx", "spdif-tx", "empty",
interrupt-names = "auart4-rx", "auart4-tx", "spdif-tx", "empty",
"saif0", "saif1", "i2c0", "i2c1",
"auart0-rx", "auart0-tx", "auart1-rx", "auart1-tx",
"auart2-rx", "auart2-tx", "auart3-rx", "auart3-tx";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,5 +91,5 @@ mpp61 61 gpo, dev(wen1), uart1(txd), audio(rclk)
mpp62 62 gpio, dev(a2), uart1(cts), tdm(drx), pcie(clkreq0),
audio(mclk), uart0(cts)
mpp63 63 gpo, spi0(sck), tclk
mpp64 64 gpio, spi0(miso), spi0-1(cs1)
mpp65 65 gpio, spi0(mosi), spi0-1(cs2)
mpp64 64 gpio, spi0(miso), spi0(cs1)
mpp65 65 gpio, spi0(mosi), spi0(cs2)
Original file line number Diff line number Diff line change
Expand Up @@ -41,37 +41,34 @@ mpp20 20 gpio, ge0(rxd4), ge1(rxd2), lcd(d20), ptp(clk)
mpp21 21 gpio, ge0(rxd5), ge1(rxd3), lcd(d21), mem(bat)
mpp22 22 gpio, ge0(rxd6), ge1(rxctl), lcd(d22), sata0(prsnt)
mpp23 23 gpio, ge0(rxd7), ge1(rxclk), lcd(d23), sata1(prsnt)
mpp24 24 gpio, lcd(hsync), sata1(prsnt), nf(bootcs-re), tdm(rst)
mpp25 25 gpio, lcd(vsync), sata0(prsnt), nf(bootcs-we), tdm(pclk)
mpp26 26 gpio, lcd(clk), tdm(fsync), vdd(cpu1-pd)
mpp24 24 gpio, lcd(hsync), sata1(prsnt), tdm(rst)
mpp25 25 gpio, lcd(vsync), sata0(prsnt), tdm(pclk)
mpp26 26 gpio, lcd(clk), tdm(fsync)
mpp27 27 gpio, lcd(e), tdm(dtx), ptp(trig)
mpp28 28 gpio, lcd(pwm), tdm(drx), ptp(evreq)
mpp29 29 gpio, lcd(ref-clk), tdm(int0), ptp(clk), vdd(cpu0-pd)
mpp29 29 gpio, lcd(ref-clk), tdm(int0), ptp(clk)
mpp30 30 gpio, tdm(int1), sd0(clk)
mpp31 31 gpio, tdm(int2), sd0(cmd), vdd(cpu0-pd)
mpp32 32 gpio, tdm(int3), sd0(d0), vdd(cpu1-pd)
mpp31 31 gpio, tdm(int2), sd0(cmd)
mpp32 32 gpio, tdm(int3), sd0(d0)
mpp33 33 gpio, tdm(int4), sd0(d1), mem(bat)
mpp34 34 gpio, tdm(int5), sd0(d2), sata0(prsnt)
mpp35 35 gpio, tdm(int6), sd0(d3), sata1(prsnt)
mpp36 36 gpio, spi(mosi)
mpp37 37 gpio, spi(miso)
mpp38 38 gpio, spi(sck)
mpp39 39 gpio, spi(cs0)
mpp40 40 gpio, spi(cs1), uart2(cts), lcd(vga-hsync), vdd(cpu1-pd),
pcie(clkreq0)
mpp40 40 gpio, spi(cs1), uart2(cts), lcd(vga-hsync), pcie(clkreq0)
mpp41 41 gpio, spi(cs2), uart2(rts), lcd(vga-vsync), sata1(prsnt),
pcie(clkreq1)
mpp42 42 gpio, uart2(rxd), uart0(cts), tdm(int7), tdm-1(timer),
vdd(cpu0-pd)
mpp43 43 gpio, uart2(txd), uart0(rts), spi(cs3), pcie(rstout),
vdd(cpu2-3-pd){1}
mpp42 42 gpio, uart2(rxd), uart0(cts), tdm(int7), tdm-1(timer)
mpp43 43 gpio, uart2(txd), uart0(rts), spi(cs3), pcie(rstout)
mpp44 44 gpio, uart2(cts), uart3(rxd), spi(cs4), pcie(clkreq2),
mem(bat)
mpp45 45 gpio, uart2(rts), uart3(txd), spi(cs5), sata1(prsnt)
mpp46 46 gpio, uart3(rts), uart1(rts), spi(cs6), sata0(prsnt)
mpp47 47 gpio, uart3(cts), uart1(cts), spi(cs7), pcie(clkreq3),
ref(clkout)
mpp48 48 gpio, tclk, dev(burst/last)
mpp48 48 gpio, dev(clkout), dev(burst/last)

* Marvell Armada XP (mv78260 and mv78460 only)

Expand All @@ -83,9 +80,9 @@ mpp51 51 gpio, dev(ad16)
mpp52 52 gpio, dev(ad17)
mpp53 53 gpio, dev(ad18)
mpp54 54 gpio, dev(ad19)
mpp55 55 gpio, dev(ad20), vdd(cpu0-pd)
mpp56 56 gpio, dev(ad21), vdd(cpu1-pd)
mpp57 57 gpio, dev(ad22), vdd(cpu2-3-pd){1}
mpp55 55 gpio, dev(ad20)
mpp56 56 gpio, dev(ad21)
mpp57 57 gpio, dev(ad22)
mpp58 58 gpio, dev(ad23)
mpp59 59 gpio, dev(ad24)
mpp60 60 gpio, dev(ad25)
Expand All @@ -95,6 +92,3 @@ mpp63 63 gpio, dev(ad28)
mpp64 64 gpio, dev(ad29)
mpp65 65 gpio, dev(ad30)
mpp66 66 gpio, dev(ad31)

Notes:
* {1} vdd(cpu2-3-pd) only available on mv78460.
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/spi/spi_pl022.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ Required properties:
- compatible : "arm,pl022", "arm,primecell"
- reg : Offset and length of the register set for the device
- interrupts : Should contain SPI controller interrupt
- num-cs : total number of chipselects

Optional properties:
- num-cs : total number of chipselects
- cs-gpios : should specify GPIOs used for chipselects.
The gpios will be referred to as reg = <index> in the SPI child nodes.
If unspecified, a single SPI device without a chip select can be used.
Expand Down
2 changes: 2 additions & 0 deletions Documentation/i2c/busses/i2c-i801
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ Supported adapters:
* Intel Avoton (SOC)
* Intel Wellsburg (PCH)
* Intel Coleto Creek (PCH)
* Intel Wildcat Point-LP (PCH)
* Intel BayTrail (SOC)
Datasheets: Publicly available at the Intel website

On Intel Patsburg and later chipsets, both the normal host SMBus controller
Expand Down
5 changes: 4 additions & 1 deletion Documentation/input/elantech.txt
Original file line number Diff line number Diff line change
Expand Up @@ -504,9 +504,12 @@ byte 5:
* reg_10

bit 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 A
0 0 0 0 R F T A

A: 1 = enable absolute tracking
T: 1 = enable two finger mode auto correct
F: 1 = disable ABS Position Filter
R: 1 = enable real hardware resolution

6.2 Native absolute mode 6 byte packet format
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
2 changes: 1 addition & 1 deletion Documentation/ja_JP/HOWTO
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ Andrew Morton が Linux-kernel メーリングリストにカーネルリリー
もし、2.6.x.y カーネルが存在しない場合には、番号が一番大きい 2.6.x が
最新の安定版カーネルです。

2.6.x.y は "stable" チーム <stable@kernel.org> でメンテされており、必
2.6.x.y は "stable" チーム <stable@vger.kernel.org> でメンテされており、必
要に応じてリリースされます。通常のリリース期間は 2週間毎ですが、差し迫っ
た問題がなければもう少し長くなることもあります。セキュリティ関連の問題
の場合はこれに対してだいたいの場合、すぐにリリースがされます。
Expand Down
6 changes: 3 additions & 3 deletions Documentation/ja_JP/stable_kernel_rules.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,16 +50,16 @@ linux-2.6.29/Documentation/stable_kernel_rules.txt

-stable ツリーにパッチを送付する手続き-

- 上記の規則に従っているかを確認した後に、stable@kernel.org にパッチ
- 上記の規則に従っているかを確認した後に、stable@vger.kernel.org にパッチ
を送る。
- 送信者はパッチがキューに受け付けられた際には ACK を、却下された場合
には NAK を受け取る。この反応は開発者たちのスケジュールによって、数
日かかる場合がある。
- もし受け取られたら、パッチは他の開発者たちと関連するサブシステムの
メンテナーによるレビューのために -stable キューに追加される。
- パッチに stable@kernel.org のアドレスが付加されているときには、それ
- パッチに stable@vger.kernel.org のアドレスが付加されているときには、それ
が Linus のツリーに入る時に自動的に stable チームに email される。
- セキュリティパッチはこのエイリアス (stable@kernel.org) に送られるべ
- セキュリティパッチはこのエイリアス (stable@vger.kernel.org) に送られるべ
きではなく、代わりに security@kernel.org のアドレスに送られる。

レビューサイクル-
Expand Down
1 change: 1 addition & 0 deletions Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1061,6 +1061,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
i8042.notimeout [HW] Ignore timeout condition signalled by controller
i8042.reset [HW] Reset the controller during init and cleanup
i8042.unlock [HW] Unlock (ignore) the keylock
i8042.kbdreset [HW] Reset device connected to KBD port

i810= [HW,DRM]

Expand Down
164 changes: 164 additions & 0 deletions Documentation/lzo.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@

LZO stream format as understood by Linux's LZO decompressor
===========================================================

Introduction

This is not a specification. No specification seems to be publicly available
for the LZO stream format. This document describes what input format the LZO
decompressor as implemented in the Linux kernel understands. The file subject
of this analysis is lib/lzo/lzo1x_decompress_safe.c. No analysis was made on
the compressor nor on any other implementations though it seems likely that
the format matches the standard one. The purpose of this document is to
better understand what the code does in order to propose more efficient fixes
for future bug reports.

Description

The stream is composed of a series of instructions, operands, and data. The
instructions consist in a few bits representing an opcode, and bits forming
the operands for the instruction, whose size and position depend on the
opcode and on the number of literals copied by previous instruction. The
operands are used to indicate :

- a distance when copying data from the dictionary (past output buffer)
- a length (number of bytes to copy from dictionary)
- the number of literals to copy, which is retained in variable "state"
as a piece of information for next instructions.

Optionally depending on the opcode and operands, extra data may follow. These
extra data can be a complement for the operand (eg: a length or a distance
encoded on larger values), or a literal to be copied to the output buffer.

The first byte of the block follows a different encoding from other bytes, it
seems to be optimized for literal use only, since there is no dictionary yet
prior to that byte.

Lengths are always encoded on a variable size starting with a small number
of bits in the operand. If the number of bits isn't enough to represent the
length, up to 255 may be added in increments by consuming more bytes with a
rate of at most 255 per extra byte (thus the compression ratio cannot exceed
around 255:1). The variable length encoding using #bits is always the same :

length = byte & ((1 << #bits) - 1)
if (!length) {
length = ((1 << #bits) - 1)
length += 255*(number of zero bytes)
length += first-non-zero-byte
}
length += constant (generally 2 or 3)

For references to the dictionary, distances are relative to the output
pointer. Distances are encoded using very few bits belonging to certain
ranges, resulting in multiple copy instructions using different encodings.
Certain encodings involve one extra byte, others involve two extra bytes
forming a little-endian 16-bit quantity (marked LE16 below).

After any instruction except the large literal copy, 0, 1, 2 or 3 literals
are copied before starting the next instruction. The number of literals that
were copied may change the meaning and behaviour of the next instruction. In
practice, only one instruction needs to know whether 0, less than 4, or more
literals were copied. This is the information stored in the <state> variable
in this implementation. This number of immediate literals to be copied is
generally encoded in the last two bits of the instruction but may also be
taken from the last two bits of an extra operand (eg: distance).

End of stream is declared when a block copy of distance 0 is seen. Only one
instruction may encode this distance (0001HLLL), it takes one LE16 operand
for the distance, thus requiring 3 bytes.

IMPORTANT NOTE : in the code some length checks are missing because certain
instructions are called under the assumption that a certain number of bytes
follow because it has already been garanteed before parsing the instructions.
They just have to "refill" this credit if they consume extra bytes. This is
an implementation design choice independant on the algorithm or encoding.

Byte sequences

First byte encoding :

0..17 : follow regular instruction encoding, see below. It is worth
noting that codes 16 and 17 will represent a block copy from
the dictionary which is empty, and that they will always be
invalid at this place.

18..21 : copy 0..3 literals
state = (byte - 17) = 0..3 [ copy <state> literals ]
skip byte

22..255 : copy literal string
length = (byte - 17) = 4..238
state = 4 [ don't copy extra literals ]
skip byte

Instruction encoding :

0 0 0 0 X X X X (0..15)
Depends on the number of literals copied by the last instruction.
If last instruction did not copy any literal (state == 0), this
encoding will be a copy of 4 or more literal, and must be interpreted
like this :

0 0 0 0 L L L L (0..15) : copy long literal string
length = 3 + (L ?: 15 + (zero_bytes * 255) + non_zero_byte)
state = 4 (no extra literals are copied)

If last instruction used to copy between 1 to 3 literals (encoded in
the instruction's opcode or distance), the instruction is a copy of a
2-byte block from the dictionary within a 1kB distance. It is worth
noting that this instruction provides little savings since it uses 2
bytes to encode a copy of 2 other bytes but it encodes the number of
following literals for free. It must be interpreted like this :

0 0 0 0 D D S S (0..15) : copy 2 bytes from <= 1kB distance
length = 2
state = S (copy S literals after this block)
Always followed by exactly one byte : H H H H H H H H
distance = (H << 2) + D + 1

If last instruction used to copy 4 or more literals (as detected by
state == 4), the instruction becomes a copy of a 3-byte block from the
dictionary from a 2..3kB distance, and must be interpreted like this :

0 0 0 0 D D S S (0..15) : copy 3 bytes from 2..3 kB distance
length = 3
state = S (copy S literals after this block)
Always followed by exactly one byte : H H H H H H H H
distance = (H << 2) + D + 2049

0 0 0 1 H L L L (16..31)
Copy of a block within 16..48kB distance (preferably less than 10B)
length = 2 + (L ?: 7 + (zero_bytes * 255) + non_zero_byte)
Always followed by exactly one LE16 : D D D D D D D D : D D D D D D S S
distance = 16384 + (H << 14) + D
state = S (copy S literals after this block)
End of stream is reached if distance == 16384

0 0 1 L L L L L (32..63)
Copy of small block within 16kB distance (preferably less than 34B)
length = 2 + (L ?: 31 + (zero_bytes * 255) + non_zero_byte)
Always followed by exactly one LE16 : D D D D D D D D : D D D D D D S S
distance = D + 1
state = S (copy S literals after this block)

0 1 L D D D S S (64..127)
Copy 3-4 bytes from block within 2kB distance
state = S (copy S literals after this block)
length = 3 + L
Always followed by exactly one byte : H H H H H H H H
distance = (H << 3) + D + 1

1 L L D D D S S (128..255)
Copy 5-8 bytes from block within 2kB distance
state = S (copy S literals after this block)
length = 5 + L
Always followed by exactly one byte : H H H H H H H H
distance = (H << 3) + D + 1

Authors

This document was written by Willy Tarreau <w@1wt.eu> on 2014/07/19 during an
analysis of the decompression code available in Linux 3.16-rc5. The code is
tricky, it is possible that this document contains mistakes or that a few
corner cases were overlooked. In any case, please report any doubt, fix, or
proposed updates to the author(s) so that the document can be updated.
Loading