mirror of
https://github.com/armbian/linux.git
synced 2026-01-06 10:13:00 -08:00
Merge branch 'master' into next
This commit is contained in:
@@ -55,4 +55,4 @@ Maintainers
|
||||
This board is maintained by Simtec Electronics.
|
||||
|
||||
|
||||
(c) 2004 Ben Dooks, Simtec Electronics
|
||||
Copyright 2004 Ben Dooks, Simtec Electronics
|
||||
|
||||
@@ -134,4 +134,4 @@ Authour
|
||||
|
||||
|
||||
Ben Dooks, 03 October 2004
|
||||
(c) 2004 Ben Dooks, Simtec Electronics
|
||||
Copyright 2004 Ben Dooks, Simtec Electronics
|
||||
|
||||
@@ -299,4 +299,4 @@ Port Contributors
|
||||
Document Author
|
||||
---------------
|
||||
|
||||
Ben Dooks, (c) 2004-2005,2006 Simtec Electronics
|
||||
Ben Dooks, Copyright 2004-2006 Simtec Electronics
|
||||
|
||||
@@ -117,4 +117,4 @@ ATA
|
||||
Document Author
|
||||
---------------
|
||||
|
||||
Ben Dooks, (c) 2006 Simtec Electronics
|
||||
Ben Dooks, Copyright 2006 Simtec Electronics
|
||||
|
||||
@@ -18,4 +18,4 @@ Camera Interface
|
||||
Document Author
|
||||
---------------
|
||||
|
||||
Ben Dooks, (c) 2006 Simtec Electronics
|
||||
Ben Dooks, Copyright 2006 Simtec Electronics
|
||||
|
||||
@@ -133,5 +133,5 @@ Configuration
|
||||
Document Author
|
||||
---------------
|
||||
|
||||
Ben Dooks, (c) 2004 Simtec Electronics
|
||||
Ben Dooks, Copyright 2004 Simtec Electronics
|
||||
|
||||
|
||||
@@ -90,4 +90,4 @@ Platform Data
|
||||
Document Author
|
||||
---------------
|
||||
|
||||
Ben Dooks, (c) 2005 Simtec Electronics
|
||||
Ben Dooks, Copyright 2005 Simtec Electronics
|
||||
|
||||
588
Documentation/blockdev/drbd/DRBD-8.3-data-packets.svg
Normal file
588
Documentation/blockdev/drbd/DRBD-8.3-data-packets.svg
Normal file
File diff suppressed because it is too large
Load Diff
|
After Width: | Height: | Size: 22 KiB |
459
Documentation/blockdev/drbd/DRBD-data-packets.svg
Normal file
459
Documentation/blockdev/drbd/DRBD-data-packets.svg
Normal file
@@ -0,0 +1,459 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
version="1.0"
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
viewBox="0 0 21000 29700"
|
||||
id="svg2"
|
||||
style="fill-rule:evenodd">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<g
|
||||
id="Default"
|
||||
style="visibility:visible">
|
||||
<desc
|
||||
id="desc176">Master slide</desc>
|
||||
</g>
|
||||
<path
|
||||
d="M 11999,19601 L 11899,19301 L 12099,19301 L 11999,19601 z"
|
||||
id="path189"
|
||||
style="fill:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 11999,18801 L 11999,19361"
|
||||
id="path193"
|
||||
style="fill:none;stroke:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 7999,21401 L 7899,21101 L 8099,21101 L 7999,21401 z"
|
||||
id="path205"
|
||||
style="fill:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 7999,20601 L 7999,21161"
|
||||
id="path209"
|
||||
style="fill:none;stroke:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 11999,18801 L 11685,18840 L 11724,18644 L 11999,18801 z"
|
||||
id="path221"
|
||||
style="fill:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 7999,18001 L 11764,18754"
|
||||
id="path225"
|
||||
style="fill:none;stroke:#008000;visibility:visible" />
|
||||
<text
|
||||
x="-3023.845"
|
||||
y="1106.8124"
|
||||
transform="matrix(0.9895258,-0.1443562,0.1443562,0.9895258,0,0)"
|
||||
id="text243"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="6115.1553 6344.1553 6555.1553 6784.1553 6962.1553 7051.1553 7228.1553 7457.1553 7635.1553 7813.1553 7885.1553"
|
||||
y="21390.812"
|
||||
id="tspan245">RSDataReply</tspan>
|
||||
</text>
|
||||
<path
|
||||
d="M 7999,20601 L 8281,20458 L 8311,20655 L 7999,20601 z"
|
||||
id="path255"
|
||||
style="fill:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 11999,20001 L 8236,20565"
|
||||
id="path259"
|
||||
style="fill:none;stroke:#008000;visibility:visible" />
|
||||
<text
|
||||
x="3502.5356"
|
||||
y="-2184.6621"
|
||||
transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
|
||||
id="text277"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="12321.536 12550.536 12761.536 12990.536 13168.536 13257.536 13434.536 13663.536 13841.536 14019.536 14196.536 14374.536 14535.536"
|
||||
y="15854.338"
|
||||
id="tspan279">RSDataRequest</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text293"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="4034 4263 4440 4703 4881 5042 5219 5397 5503 5681 5842 6003 6180 6341 6519 6625 6803 6980 7158 7336 7497 7586 7692"
|
||||
y="17807"
|
||||
id="tspan295">w_make_resync_request()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text309"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="12199 12305 12483 12644 12821 12893 13054 13232 13410 13638 13816 13905 14083 14311 14489 14667 14845 15023 15184 15272 15378"
|
||||
y="18806"
|
||||
id="tspan311">receive_DataRequest()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text325"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="12199 12377 12483 12660 12838 13016 13194 13372 13549 13621 13799 13977 14083 14261 14438 14616 14794 14955 15133 15294 15399"
|
||||
y="19606"
|
||||
id="tspan327">drbd_endio_read_sec()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text341"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="12191 12420 12597 12775 12953 13131 13309 13486 13664 13770 13931 14109 14287 14375 14553 14731 14837 15015 15192 15298"
|
||||
y="20007"
|
||||
id="tspan343">w_e_end_rsdata_req()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text357"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="4444 4550 4728 4889 5066 5138 5299 5477 5655 5883 6095 6324 6501 6590 6768 6997 7175 7352 7424 7585 7691"
|
||||
y="20507"
|
||||
id="tspan359">receive_RSDataReply()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text373"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="4457 4635 4741 4918 5096 5274 5452 5630 5807 5879 6057 6235 6464 6569 6641 6730 6908 7086 7247 7425 7585 7691"
|
||||
y="21407"
|
||||
id="tspan375">drbd_endio_write_sec()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text389"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="4647 4825 5003 5180 5358 5536 5714 5820 5997 6158 6319 6497 6658 6836 7013 7085 7263 7424 7585 7691"
|
||||
y="21907"
|
||||
id="tspan391">e_end_resync_block()</tspan>
|
||||
</text>
|
||||
<path
|
||||
d="M 11999,22601 L 11685,22640 L 11724,22444 L 11999,22601 z"
|
||||
id="path401"
|
||||
style="fill:#000080;visibility:visible" />
|
||||
<path
|
||||
d="M 7999,21801 L 11764,22554"
|
||||
id="path405"
|
||||
style="fill:none;stroke:#000080;visibility:visible" />
|
||||
<text
|
||||
x="4290.3008"
|
||||
y="-2369.6162"
|
||||
transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
|
||||
id="text423"
|
||||
style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="13610.301 13911.301 14016.301 14088.301 14177.301 14355.301 14567.301 14728.301"
|
||||
y="19573.385"
|
||||
id="tspan425">WriteAck</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text439"
|
||||
style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="12199 12377 12555 12644 12821 13033 13105 13283 13444 13604 13816 13977 14138 14244"
|
||||
y="22559"
|
||||
id="tspan441">got_BlockAck()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text455"
|
||||
style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="7999 8304 8541 8753 8964 9201 9413 9531 9769 9862 10099 10310 10522 10734 10852 10971 11208 11348 11585 11822"
|
||||
y="16877"
|
||||
id="tspan457">Resync blocks, 4-32K</tspan>
|
||||
</text>
|
||||
<path
|
||||
d="M 12000,7601 L 11900,7301 L 12100,7301 L 12000,7601 z"
|
||||
id="path467"
|
||||
style="fill:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 12000,6801 L 12000,7361"
|
||||
id="path471"
|
||||
style="fill:none;stroke:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 12000,6801 L 11686,6840 L 11725,6644 L 12000,6801 z"
|
||||
id="path483"
|
||||
style="fill:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 8000,6001 L 11765,6754"
|
||||
id="path487"
|
||||
style="fill:none;stroke:#008000;visibility:visible" />
|
||||
<text
|
||||
x="-1288.1796"
|
||||
y="1279.7666"
|
||||
transform="matrix(0.9895258,-0.1443562,0.1443562,0.9895258,0,0)"
|
||||
id="text505"
|
||||
style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="8174.8208 8475.8203 8580.8203 8652.8203 8741.8203 8919.8203 9131.8203 9292.8203"
|
||||
y="9516.7666"
|
||||
id="tspan507">WriteAck</tspan>
|
||||
</text>
|
||||
<path
|
||||
d="M 8000,8601 L 8282,8458 L 8312,8655 L 8000,8601 z"
|
||||
id="path517"
|
||||
style="fill:#000080;visibility:visible" />
|
||||
<path
|
||||
d="M 12000,8001 L 8237,8565"
|
||||
id="path521"
|
||||
style="fill:none;stroke:#000080;visibility:visible" />
|
||||
<text
|
||||
x="1065.6655"
|
||||
y="-2097.7664"
|
||||
transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
|
||||
id="text539"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="10682.666 10911.666 11088.666 11177.666"
|
||||
y="4107.2339"
|
||||
id="tspan541">Data</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text555"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="4746 4924 5030 5207 5385 5563 5826 6003 6164 6342 6520 6626 6803 6981 7159 7337 7498 7587 7692"
|
||||
y="5505"
|
||||
id="tspan557">drbd_make_request()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text571"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="12200 12306 12484 12645 12822 12894 13055 13233 13411 13639 13817 13906 14084 14190"
|
||||
y="6806"
|
||||
id="tspan573">receive_Data()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text587"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="12200 12378 12484 12661 12839 13017 13195 13373 13550 13622 13800 13978 14207 14312 14384 14473 14651 14829 14990 15168 15328 15434"
|
||||
y="7606"
|
||||
id="tspan589">drbd_endio_write_sec()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text603"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="12192 12370 12548 12725 12903 13081 13259 13437 13509 13686 13847 14008 14114"
|
||||
y="8007"
|
||||
id="tspan605">e_end_block()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text619"
|
||||
style="font-size:318px;font-weight:400;fill:#000080;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="5647 5825 6003 6092 6269 6481 6553 6731 6892 7052 7264 7425 7586 7692"
|
||||
y="8606"
|
||||
id="tspan621">got_BlockAck()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text635"
|
||||
style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="8000 8305 8542 8779 9016 9109 9346 9486 9604 9956 10049 10189 10328 10565 10705 10942 11179 11298 11603 11742 11835 11954 12191 12310 12428 12665 12902 13139 13279 13516 13753"
|
||||
y="4877"
|
||||
id="tspan637">Regular mirrored write, 512-32K</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text651"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="5381 5610 5787 5948 6126 6304 6482 6659 6837 7015 7087 7265 7426 7587 7692"
|
||||
y="6003"
|
||||
id="tspan653">w_send_dblock()</tspan>
|
||||
</text>
|
||||
<path
|
||||
d="M 8000,6800 L 7900,6500 L 8100,6500 L 8000,6800 z"
|
||||
id="path663"
|
||||
style="fill:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 8000,6000 L 8000,6560"
|
||||
id="path667"
|
||||
style="fill:none;stroke:#008000;visibility:visible" />
|
||||
<text
|
||||
id="text683"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="4602 4780 4886 5063 5241 5419 5597 5775 5952 6024 6202 6380 6609 6714 6786 6875 7053 7231 7409 7515 7587 7692"
|
||||
y="6905"
|
||||
id="tspan685">drbd_endio_write_pri()</tspan>
|
||||
</text>
|
||||
<path
|
||||
d="M 12000,13602 L 11900,13302 L 12100,13302 L 12000,13602 z"
|
||||
id="path695"
|
||||
style="fill:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 12000,12802 L 12000,13362"
|
||||
id="path699"
|
||||
style="fill:none;stroke:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 12000,12802 L 11686,12841 L 11725,12645 L 12000,12802 z"
|
||||
id="path711"
|
||||
style="fill:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 8000,12002 L 11765,12755"
|
||||
id="path715"
|
||||
style="fill:none;stroke:#008000;visibility:visible" />
|
||||
<text
|
||||
x="-2155.5266"
|
||||
y="1201.5964"
|
||||
transform="matrix(0.9895258,-0.1443562,0.1443562,0.9895258,0,0)"
|
||||
id="text733"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="7202.4736 7431.4736 7608.4736 7697.4736 7875.4736 8104.4736 8282.4736 8459.4736 8531.4736"
|
||||
y="15454.597"
|
||||
id="tspan735">DataReply</tspan>
|
||||
</text>
|
||||
<path
|
||||
d="M 8000,14602 L 8282,14459 L 8312,14656 L 8000,14602 z"
|
||||
id="path745"
|
||||
style="fill:#008000;visibility:visible" />
|
||||
<path
|
||||
d="M 12000,14002 L 8237,14566"
|
||||
id="path749"
|
||||
style="fill:none;stroke:#008000;visibility:visible" />
|
||||
<text
|
||||
x="2280.3804"
|
||||
y="-2103.2141"
|
||||
transform="matrix(0.9788674,0.2044961,-0.2044961,0.9788674,0,0)"
|
||||
id="text767"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="11316.381 11545.381 11722.381 11811.381 11989.381 12218.381 12396.381 12573.381 12751.381 12929.381 13090.381"
|
||||
y="9981.7861"
|
||||
id="tspan769">DataRequest</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text783"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="4746 4924 5030 5207 5385 5563 5826 6003 6164 6342 6520 6626 6803 6981 7159 7337 7498 7587 7692"
|
||||
y="11506"
|
||||
id="tspan785">drbd_make_request()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text799"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="12200 12306 12484 12645 12822 12894 13055 13233 13411 13639 13817 13906 14084 14312 14490 14668 14846 15024 15185 15273 15379"
|
||||
y="12807"
|
||||
id="tspan801">receive_DataRequest()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text815"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="12200 12378 12484 12661 12839 13017 13195 13373 13550 13622 13800 13978 14084 14262 14439 14617 14795 14956 15134 15295 15400"
|
||||
y="13607"
|
||||
id="tspan817">drbd_endio_read_sec()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text831"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="12192 12421 12598 12776 12954 13132 13310 13487 13665 13843 14021 14110 14288 14465 14571 14749 14927 15033"
|
||||
y="14008"
|
||||
id="tspan833">w_e_end_data_req()</tspan>
|
||||
</text>
|
||||
<g
|
||||
id="g835"
|
||||
style="visibility:visible">
|
||||
<desc
|
||||
id="desc837">Drawing</desc>
|
||||
<text
|
||||
id="text847"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="4885 4991 5169 5330 5507 5579 5740 5918 6096 6324 6502 6591 6769 6997 7175 7353 7425 7586 7692"
|
||||
y="14607"
|
||||
id="tspan849">receive_DataReply()</tspan>
|
||||
</text>
|
||||
</g>
|
||||
<text
|
||||
id="text863"
|
||||
style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="8000 8305 8398 8610 8821 8914 9151 9363 9575 9693 9833 10070 10307 10544 10663 10781 11018 11255 11493 11632 11869 12106"
|
||||
y="10878"
|
||||
id="tspan865">Diskless read, 512-32K</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text879"
|
||||
style="font-size:318px;font-weight:400;fill:#008000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="5029 5258 5435 5596 5774 5952 6130 6307 6413 6591 6769 6947 7125 7230 7408 7586 7692"
|
||||
y="12004"
|
||||
id="tspan881">w_send_read_req()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text895"
|
||||
style="font-size:423px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="6961 7266 7571 7854 8159 8278 8515 8633 8870 9107 9226 9463 9581 9700 9793 10030"
|
||||
y="2806"
|
||||
id="tspan897">DRBD 8 data flow</tspan>
|
||||
</text>
|
||||
<path
|
||||
d="M 3900,5300 L 3700,5300 L 3700,7000 L 3900,7000"
|
||||
id="path907"
|
||||
style="fill:none;stroke:#000000;visibility:visible" />
|
||||
<path
|
||||
d="M 3900,17600 L 3700,17600 L 3700,22000 L 3900,22000"
|
||||
id="path919"
|
||||
style="fill:none;stroke:#000000;visibility:visible" />
|
||||
<path
|
||||
d="M 16100,20000 L 16300,20000 L 16300,18500 L 16100,18500"
|
||||
id="path931"
|
||||
style="fill:none;stroke:#000000;visibility:visible" />
|
||||
<text
|
||||
id="text947"
|
||||
style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="2126 2304 2376 2554 2731 2909 3087 3159 3337 3515 3587 3764 3870"
|
||||
y="5202"
|
||||
id="tspan949">al_begin_io()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text963"
|
||||
style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="1632 1810 1882 2060 2220 2398 2661 2839 2910 3088 3177 3355 3533 3605 3783 3888"
|
||||
y="7331"
|
||||
id="tspan965">al_complete_io()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text979"
|
||||
style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="2126 2232 2393 2571 2748 2926 3104 3176 3354 3531 3603 3781 3887"
|
||||
y="17431"
|
||||
id="tspan981">rs_begin_io()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text995"
|
||||
style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="1626 1732 1893 2071 2231 2409 2672 2849 2921 3099 3188 3366 3544 3616 3793 3899"
|
||||
y="22331"
|
||||
id="tspan997">rs_complete_io()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text1011"
|
||||
style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="16027 16133 16294 16472 16649 16827 17005 17077 17255 17432 17504 17682 17788"
|
||||
y="18402"
|
||||
id="tspan1013">rs_begin_io()</tspan>
|
||||
</text>
|
||||
<text
|
||||
id="text1027"
|
||||
style="font-size:318px;font-weight:400;fill:#000000;visibility:visible;font-family:Helvetica embedded">
|
||||
<tspan
|
||||
x="16115 16221 16382 16560 16720 16898 17161 17338 17410 17588 17677 17855 18033 18105 18282 18388"
|
||||
y="20331"
|
||||
id="tspan1029">rs_complete_io()</tspan>
|
||||
</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 17 KiB |
16
Documentation/blockdev/drbd/README.txt
Normal file
16
Documentation/blockdev/drbd/README.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
Description
|
||||
|
||||
DRBD is a shared-nothing, synchronously replicated block device. It
|
||||
is designed to serve as a building block for high availability
|
||||
clusters and in this context, is a "drop-in" replacement for shared
|
||||
storage. Simplistically, you could see it as a network RAID 1.
|
||||
|
||||
Please visit http://www.drbd.org to find out more.
|
||||
|
||||
The here included files are intended to help understand the implementation
|
||||
|
||||
DRBD-8.3-data-packets.svg, DRBD-data-packets.svg
|
||||
relates some functions, and write packets.
|
||||
|
||||
conn-states-8.dot, disk-states-8.dot, node-states-8.dot
|
||||
The sub graphs of DRBD's state transitions
|
||||
18
Documentation/blockdev/drbd/conn-states-8.dot
Normal file
18
Documentation/blockdev/drbd/conn-states-8.dot
Normal file
@@ -0,0 +1,18 @@
|
||||
digraph conn_states {
|
||||
StandAllone -> WFConnection [ label = "ioctl_set_net()" ]
|
||||
WFConnection -> Unconnected [ label = "unable to bind()" ]
|
||||
WFConnection -> WFReportParams [ label = "in connect() after accept" ]
|
||||
WFReportParams -> StandAllone [ label = "checks in receive_param()" ]
|
||||
WFReportParams -> Connected [ label = "in receive_param()" ]
|
||||
WFReportParams -> WFBitMapS [ label = "sync_handshake()" ]
|
||||
WFReportParams -> WFBitMapT [ label = "sync_handshake()" ]
|
||||
WFBitMapS -> SyncSource [ label = "receive_bitmap()" ]
|
||||
WFBitMapT -> SyncTarget [ label = "receive_bitmap()" ]
|
||||
SyncSource -> Connected
|
||||
SyncTarget -> Connected
|
||||
SyncSource -> PausedSyncS
|
||||
SyncTarget -> PausedSyncT
|
||||
PausedSyncS -> SyncSource
|
||||
PausedSyncT -> SyncTarget
|
||||
Connected -> WFConnection [ label = "* on network error" ]
|
||||
}
|
||||
16
Documentation/blockdev/drbd/disk-states-8.dot
Normal file
16
Documentation/blockdev/drbd/disk-states-8.dot
Normal file
@@ -0,0 +1,16 @@
|
||||
digraph disk_states {
|
||||
Diskless -> Inconsistent [ label = "ioctl_set_disk()" ]
|
||||
Diskless -> Consistent [ label = "ioctl_set_disk()" ]
|
||||
Diskless -> Outdated [ label = "ioctl_set_disk()" ]
|
||||
Consistent -> Outdated [ label = "receive_param()" ]
|
||||
Consistent -> UpToDate [ label = "receive_param()" ]
|
||||
Consistent -> Inconsistent [ label = "start resync" ]
|
||||
Outdated -> Inconsistent [ label = "start resync" ]
|
||||
UpToDate -> Inconsistent [ label = "ioctl_replicate" ]
|
||||
Inconsistent -> UpToDate [ label = "resync completed" ]
|
||||
Consistent -> Failed [ label = "io completion error" ]
|
||||
Outdated -> Failed [ label = "io completion error" ]
|
||||
UpToDate -> Failed [ label = "io completion error" ]
|
||||
Inconsistent -> Failed [ label = "io completion error" ]
|
||||
Failed -> Diskless [ label = "sending notify to peer" ]
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
// vim: set sw=2 sts=2 :
|
||||
digraph {
|
||||
rankdir=BT
|
||||
bgcolor=white
|
||||
|
||||
node [shape=plaintext]
|
||||
node [fontcolor=black]
|
||||
|
||||
StandAlone [ style=filled,fillcolor=gray,label=StandAlone ]
|
||||
|
||||
node [fontcolor=lightgray]
|
||||
|
||||
Unconnected [ label=Unconnected ]
|
||||
|
||||
CommTrouble [ shape=record,
|
||||
label="{communication loss|{Timeout|BrokenPipe|NetworkFailure}}" ]
|
||||
|
||||
node [fontcolor=gray]
|
||||
|
||||
subgraph cluster_try_connect {
|
||||
label="try to connect, handshake"
|
||||
rank=max
|
||||
WFConnection [ label=WFConnection ]
|
||||
WFReportParams [ label=WFReportParams ]
|
||||
}
|
||||
|
||||
TearDown [ label=TearDown ]
|
||||
|
||||
Connected [ label=Connected,style=filled,fillcolor=green,fontcolor=black ]
|
||||
|
||||
node [fontcolor=lightblue]
|
||||
|
||||
StartingSyncS [ label=StartingSyncS ]
|
||||
StartingSyncT [ label=StartingSyncT ]
|
||||
|
||||
subgraph cluster_bitmap_exchange {
|
||||
node [fontcolor=red]
|
||||
fontcolor=red
|
||||
label="new application (WRITE?) requests blocked\lwhile bitmap is exchanged"
|
||||
|
||||
WFBitMapT [ label=WFBitMapT ]
|
||||
WFSyncUUID [ label=WFSyncUUID ]
|
||||
WFBitMapS [ label=WFBitMapS ]
|
||||
}
|
||||
|
||||
node [fontcolor=blue]
|
||||
|
||||
cluster_resync [ shape=record,label="{<any>resynchronisation process running\l'concurrent' application requests allowed|{{<T>PausedSyncT\nSyncTarget}|{<S>PausedSyncS\nSyncSource}}}" ]
|
||||
|
||||
node [shape=box,fontcolor=black]
|
||||
|
||||
// drbdadm [label="drbdadm connect"]
|
||||
// handshake [label="drbd_connect()\ndrbd_do_handshake\ndrbd_sync_handshake() etc."]
|
||||
// comm_error [label="communication trouble"]
|
||||
|
||||
//
|
||||
// edges
|
||||
// --------------------------------------
|
||||
|
||||
StandAlone -> Unconnected [ label="drbdadm connect" ]
|
||||
Unconnected -> StandAlone [ label="drbdadm disconnect\lor serious communication trouble" ]
|
||||
Unconnected -> WFConnection [ label="receiver thread is started" ]
|
||||
WFConnection -> WFReportParams [ headlabel="accept()\land/or \lconnect()\l" ]
|
||||
|
||||
WFReportParams -> StandAlone [ label="during handshake\lpeers do not agree\labout something essential" ]
|
||||
WFReportParams -> Connected [ label="data identical\lno sync needed",color=green,fontcolor=green ]
|
||||
|
||||
WFReportParams -> WFBitMapS
|
||||
WFReportParams -> WFBitMapT
|
||||
WFBitMapT -> WFSyncUUID [minlen=0.1,constraint=false]
|
||||
|
||||
WFBitMapS -> cluster_resync:S
|
||||
WFSyncUUID -> cluster_resync:T
|
||||
|
||||
edge [color=green]
|
||||
cluster_resync:any -> Connected [ label="resnyc done",fontcolor=green ]
|
||||
|
||||
edge [color=red]
|
||||
WFReportParams -> CommTrouble
|
||||
Connected -> CommTrouble
|
||||
cluster_resync:any -> CommTrouble
|
||||
edge [color=black]
|
||||
CommTrouble -> Unconnected [label="receiver thread is stopped" ]
|
||||
|
||||
}
|
||||
14
Documentation/blockdev/drbd/node-states-8.dot
Normal file
14
Documentation/blockdev/drbd/node-states-8.dot
Normal file
@@ -0,0 +1,14 @@
|
||||
digraph node_states {
|
||||
Secondary -> Primary [ label = "ioctl_set_state()" ]
|
||||
Primary -> Secondary [ label = "ioctl_set_state()" ]
|
||||
}
|
||||
|
||||
digraph peer_states {
|
||||
Secondary -> Primary [ label = "recv state packet" ]
|
||||
Primary -> Secondary [ label = "recv state packet" ]
|
||||
Primary -> Unknown [ label = "connection lost" ]
|
||||
Secondary -> Unknown [ label = "connection lost" ]
|
||||
Unknown -> Primary [ label = "connected" ]
|
||||
Unknown -> Secondary [ label = "connected" ]
|
||||
}
|
||||
|
||||
135
Documentation/cgroups/blkio-controller.txt
Normal file
135
Documentation/cgroups/blkio-controller.txt
Normal file
@@ -0,0 +1,135 @@
|
||||
Block IO Controller
|
||||
===================
|
||||
Overview
|
||||
========
|
||||
cgroup subsys "blkio" implements the block io controller. There seems to be
|
||||
a need of various kinds of IO control policies (like proportional BW, max BW)
|
||||
both at leaf nodes as well as at intermediate nodes in a storage hierarchy.
|
||||
Plan is to use the same cgroup based management interface for blkio controller
|
||||
and based on user options switch IO policies in the background.
|
||||
|
||||
In the first phase, this patchset implements proportional weight time based
|
||||
division of disk policy. It is implemented in CFQ. Hence this policy takes
|
||||
effect only on leaf nodes when CFQ is being used.
|
||||
|
||||
HOWTO
|
||||
=====
|
||||
You can do a very simple testing of running two dd threads in two different
|
||||
cgroups. Here is what you can do.
|
||||
|
||||
- Enable group scheduling in CFQ
|
||||
CONFIG_CFQ_GROUP_IOSCHED=y
|
||||
|
||||
- Compile and boot into kernel and mount IO controller (blkio).
|
||||
|
||||
mount -t cgroup -o blkio none /cgroup
|
||||
|
||||
- Create two cgroups
|
||||
mkdir -p /cgroup/test1/ /cgroup/test2
|
||||
|
||||
- Set weights of group test1 and test2
|
||||
echo 1000 > /cgroup/test1/blkio.weight
|
||||
echo 500 > /cgroup/test2/blkio.weight
|
||||
|
||||
- Create two same size files (say 512MB each) on same disk (file1, file2) and
|
||||
launch two dd threads in different cgroup to read those files.
|
||||
|
||||
sync
|
||||
echo 3 > /proc/sys/vm/drop_caches
|
||||
|
||||
dd if=/mnt/sdb/zerofile1 of=/dev/null &
|
||||
echo $! > /cgroup/test1/tasks
|
||||
cat /cgroup/test1/tasks
|
||||
|
||||
dd if=/mnt/sdb/zerofile2 of=/dev/null &
|
||||
echo $! > /cgroup/test2/tasks
|
||||
cat /cgroup/test2/tasks
|
||||
|
||||
- At macro level, first dd should finish first. To get more precise data, keep
|
||||
on looking at (with the help of script), at blkio.disk_time and
|
||||
blkio.disk_sectors files of both test1 and test2 groups. This will tell how
|
||||
much disk time (in milli seconds), each group got and how many secotors each
|
||||
group dispatched to the disk. We provide fairness in terms of disk time, so
|
||||
ideally io.disk_time of cgroups should be in proportion to the weight.
|
||||
|
||||
Various user visible config options
|
||||
===================================
|
||||
CONFIG_CFQ_GROUP_IOSCHED
|
||||
- Enables group scheduling in CFQ. Currently only 1 level of group
|
||||
creation is allowed.
|
||||
|
||||
CONFIG_DEBUG_CFQ_IOSCHED
|
||||
- Enables some debugging messages in blktrace. Also creates extra
|
||||
cgroup file blkio.dequeue.
|
||||
|
||||
Config options selected automatically
|
||||
=====================================
|
||||
These config options are not user visible and are selected/deselected
|
||||
automatically based on IO scheduler configuration.
|
||||
|
||||
CONFIG_BLK_CGROUP
|
||||
- Block IO controller. Selected by CONFIG_CFQ_GROUP_IOSCHED.
|
||||
|
||||
CONFIG_DEBUG_BLK_CGROUP
|
||||
- Debug help. Selected by CONFIG_DEBUG_CFQ_IOSCHED.
|
||||
|
||||
Details of cgroup files
|
||||
=======================
|
||||
- blkio.weight
|
||||
- Specifies per cgroup weight.
|
||||
|
||||
Currently allowed range of weights is from 100 to 1000.
|
||||
|
||||
- blkio.time
|
||||
- disk time allocated to cgroup per device in milliseconds. First
|
||||
two fields specify the major and minor number of the device and
|
||||
third field specifies the disk time allocated to group in
|
||||
milliseconds.
|
||||
|
||||
- blkio.sectors
|
||||
- number of sectors transferred to/from disk by the group. First
|
||||
two fields specify the major and minor number of the device and
|
||||
third field specifies the number of sectors transferred by the
|
||||
group to/from the device.
|
||||
|
||||
- blkio.dequeue
|
||||
- Debugging aid only enabled if CONFIG_DEBUG_CFQ_IOSCHED=y. This
|
||||
gives the statistics about how many a times a group was dequeued
|
||||
from service tree of the device. First two fields specify the major
|
||||
and minor number of the device and third field specifies the number
|
||||
of times a group was dequeued from a particular device.
|
||||
|
||||
CFQ sysfs tunable
|
||||
=================
|
||||
/sys/block/<disk>/queue/iosched/group_isolation
|
||||
|
||||
If group_isolation=1, it provides stronger isolation between groups at the
|
||||
expense of throughput. By default group_isolation is 0. In general that
|
||||
means that if group_isolation=0, expect fairness for sequential workload
|
||||
only. Set group_isolation=1 to see fairness for random IO workload also.
|
||||
|
||||
Generally CFQ will put random seeky workload in sync-noidle category. CFQ
|
||||
will disable idling on these queues and it does a collective idling on group
|
||||
of such queues. Generally these are slow moving queues and if there is a
|
||||
sync-noidle service tree in each group, that group gets exclusive access to
|
||||
disk for certain period. That means it will bring the throughput down if
|
||||
group does not have enough IO to drive deeper queue depths and utilize disk
|
||||
capacity to the fullest in the slice allocated to it. But the flip side is
|
||||
that even a random reader should get better latencies and overall throughput
|
||||
if there are lots of sequential readers/sync-idle workload running in the
|
||||
system.
|
||||
|
||||
If group_isolation=0, then CFQ automatically moves all the random seeky queues
|
||||
in the root group. That means there will be no service differentiation for
|
||||
that kind of workload. This leads to better throughput as we do collective
|
||||
idling on root sync-noidle tree.
|
||||
|
||||
By default one should run with group_isolation=0. If that is not sufficient
|
||||
and one wants stronger isolation between groups, then set group_isolation=1
|
||||
but this will come at cost of reduced throughput.
|
||||
|
||||
What works
|
||||
==========
|
||||
- Currently only sync IO queues are support. All the buffered writes are
|
||||
still system wide and not per group. Hence we will not see service
|
||||
differentiation between buffered writes between groups.
|
||||
@@ -317,18 +317,6 @@ Who: ocfs2-devel@oss.oracle.com
|
||||
|
||||
---------------------------
|
||||
|
||||
What: SCTP_GET_PEER_ADDRS_NUM_OLD, SCTP_GET_PEER_ADDRS_OLD,
|
||||
SCTP_GET_LOCAL_ADDRS_NUM_OLD, SCTP_GET_LOCAL_ADDRS_OLD
|
||||
When: June 2009
|
||||
Why: A newer version of the options have been introduced in 2005 that
|
||||
removes the limitions of the old API. The sctp library has been
|
||||
converted to use these new options at the same time. Any user
|
||||
space app that directly uses the old options should convert to using
|
||||
the new options.
|
||||
Who: Vlad Yasevich <vladislav.yasevich@hp.com>
|
||||
|
||||
---------------------------
|
||||
|
||||
What: Ability for non root users to shm_get hugetlb pages based on mlock
|
||||
resource limits
|
||||
When: 2.6.31
|
||||
@@ -419,15 +407,6 @@ Who: Alex Chiang <achiang@hp.com>
|
||||
|
||||
---------------------------
|
||||
|
||||
What: i2c-voodoo3 driver
|
||||
When: October 2009
|
||||
Why: Superseded by tdfxfb. I2C/DDC support used to live in a separate
|
||||
driver but this caused driver conflicts.
|
||||
Who: Jean Delvare <khali@linux-fr.org>
|
||||
Krzysztof Helt <krzysztof.h1@wp.pl>
|
||||
|
||||
---------------------------
|
||||
|
||||
What: CONFIG_RFKILL_INPUT
|
||||
When: 2.6.33
|
||||
Why: Should be implemented in userspace, policy daemon.
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
Kernel driver i2c-voodoo3
|
||||
|
||||
Supported adapters:
|
||||
* 3dfx Voodoo3 based cards
|
||||
* Voodoo Banshee based cards
|
||||
|
||||
Authors:
|
||||
Frodo Looijaard <frodol@dds.nl>,
|
||||
Philip Edelbrock <phil@netroedge.com>,
|
||||
Ralph Metzler <rjkm@thp.uni-koeln.de>,
|
||||
Mark D. Studebaker <mdsxyz123@yahoo.com>
|
||||
|
||||
Main contact: Philip Edelbrock <phil@netroedge.com>
|
||||
|
||||
The code is based upon Ralph's test code (he did the hard stuff ;')
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The 3dfx Voodoo3 chip contains two I2C interfaces (aka a I2C 'master' or
|
||||
'host').
|
||||
|
||||
The first interface is used for DDC (Data Display Channel) which is a
|
||||
serial channel through the VGA monitor connector to a DDC-compliant
|
||||
monitor. This interface is defined by the Video Electronics Standards
|
||||
Association (VESA). The standards are available for purchase at
|
||||
http://www.vesa.org .
|
||||
|
||||
The second interface is a general-purpose I2C bus. The intent by 3dfx was
|
||||
to allow manufacturers to add extra chips to the video card such as a
|
||||
TV-out chip such as the BT869 or possibly even I2C based temperature
|
||||
sensors like the ADM1021 or LM75.
|
||||
|
||||
Stability
|
||||
---------
|
||||
|
||||
Seems to be stable on the test machine, but needs more testing on other
|
||||
machines. Simultaneous accesses of the DDC and I2C busses may cause errors.
|
||||
|
||||
Supported Devices
|
||||
-----------------
|
||||
|
||||
Specifically, this driver was written and tested on the '3dfx Voodoo3 AGP
|
||||
3000' which has a tv-out feature (s-video or composite). According to the
|
||||
docs and discussions, this code should work for any Voodoo3 based cards as
|
||||
well as Voodoo Banshee based cards. The DDC interface has been tested on a
|
||||
Voodoo Banshee card.
|
||||
|
||||
Issues
|
||||
------
|
||||
|
||||
Probably many, but it seems to work OK on my system. :')
|
||||
|
||||
|
||||
External Device Connection
|
||||
--------------------------
|
||||
|
||||
The digital video input jumpers give availability to the I2C bus.
|
||||
Specifically, pins 13 and 25 (bottom row middle, and bottom right-end) are
|
||||
the I2C clock and I2C data lines, respectively. +5V and GND are probably
|
||||
also easily available making the addition of extra I2C/SMBus devices easy
|
||||
to implement.
|
||||
@@ -2,9 +2,9 @@ MODULE: i2c-stub
|
||||
|
||||
DESCRIPTION:
|
||||
|
||||
This module is a very simple fake I2C/SMBus driver. It implements four
|
||||
types of SMBus commands: write quick, (r/w) byte, (r/w) byte data, and
|
||||
(r/w) word data.
|
||||
This module is a very simple fake I2C/SMBus driver. It implements five
|
||||
types of SMBus commands: write quick, (r/w) byte, (r/w) byte data, (r/w)
|
||||
word data, and (r/w) I2C block data.
|
||||
|
||||
You need to provide chip addresses as a module parameter when loading this
|
||||
driver, which will then only react to SMBus commands to these addresses.
|
||||
@@ -21,8 +21,8 @@ EEPROMs, among others.
|
||||
|
||||
The typical use-case is like this:
|
||||
1. load this module
|
||||
2. use i2cset (from lm_sensors project) to pre-load some data
|
||||
3. load the target sensors chip driver module
|
||||
2. use i2cset (from the i2c-tools project) to pre-load some data
|
||||
3. load the target chip driver module
|
||||
4. observe its behavior in the kernel log
|
||||
|
||||
There's a script named i2c-stub-from-dump in the i2c-tools package which
|
||||
@@ -33,6 +33,12 @@ PARAMETERS:
|
||||
int chip_addr[10]:
|
||||
The SMBus addresses to emulate chips at.
|
||||
|
||||
unsigned long functionality:
|
||||
Functionality override, to disable some commands. See I2C_FUNC_*
|
||||
constants in <linux/i2c.h> for the suitable values. For example,
|
||||
value 0x1f0000 would only enable the quick, byte and byte data
|
||||
commands.
|
||||
|
||||
CAVEATS:
|
||||
|
||||
If your target driver polls some byte or word waiting for it to change, the
|
||||
|
||||
44
Documentation/i2c/old-module-parameters
Normal file
44
Documentation/i2c/old-module-parameters
Normal file
@@ -0,0 +1,44 @@
|
||||
I2C device driver binding control from user-space
|
||||
=================================================
|
||||
|
||||
Up to kernel 2.6.32, many i2c drivers used helper macros provided by
|
||||
<linux/i2c.h> which created standard module parameters to let the user
|
||||
control how the driver would probe i2c buses and attach to devices. These
|
||||
parameters were known as "probe" (to let the driver probe for an extra
|
||||
address), "force" (to forcibly attach the driver to a given device) and
|
||||
"ignore" (to prevent a driver from probing a given address).
|
||||
|
||||
With the conversion of the i2c subsystem to the standard device driver
|
||||
binding model, it became clear that these per-module parameters were no
|
||||
longer needed, and that a centralized implementation was possible. The new,
|
||||
sysfs-based interface is described in the documentation file
|
||||
"instantiating-devices", section "Method 4: Instantiate from user-space".
|
||||
|
||||
Below is a mapping from the old module parameters to the new interface.
|
||||
|
||||
Attaching a driver to an I2C device
|
||||
-----------------------------------
|
||||
|
||||
Old method (module parameters):
|
||||
# modprobe <driver> probe=1,0x2d
|
||||
# modprobe <driver> force=1,0x2d
|
||||
# modprobe <driver> force_<device>=1,0x2d
|
||||
|
||||
New method (sysfs interface):
|
||||
# echo <device> 0x2d > /sys/bus/i2c/devices/i2c-1/new_device
|
||||
|
||||
Preventing a driver from attaching to an I2C device
|
||||
---------------------------------------------------
|
||||
|
||||
Old method (module parameters):
|
||||
# modprobe <driver> ignore=1,0x2f
|
||||
|
||||
New method (sysfs interface):
|
||||
# echo dummy 0x2f > /sys/bus/i2c/devices/i2c-1/new_device
|
||||
# modprobe <driver>
|
||||
|
||||
Of course, it is important to instantiate the "dummy" device before loading
|
||||
the driver. The dummy device will be handled by i2c-core itself, preventing
|
||||
other drivers from binding to it later on. If there is a real device at the
|
||||
problematic address, and you want another driver to bind to it, then simply
|
||||
pass the name of the device in question instead of "dummy".
|
||||
@@ -5,7 +5,7 @@ GigaSet 307x Device Driver
|
||||
------------
|
||||
1.1. Hardware
|
||||
--------
|
||||
This release supports the connection of the Gigaset 307x/417x family of
|
||||
This driver supports the connection of the Gigaset 307x/417x family of
|
||||
ISDN DECT bases via Gigaset M101 Data, Gigaset M105 Data or direct USB
|
||||
connection. The following devices are reported to be compatible:
|
||||
|
||||
@@ -33,7 +33,7 @@ GigaSet 307x Device Driver
|
||||
http://gigaset307x.sourceforge.net/
|
||||
|
||||
We had also reports from users of Gigaset M105 who could use the drivers
|
||||
with SX 100 and CX 100 ISDN bases (only in unimodem mode, see section 2.4.)
|
||||
with SX 100 and CX 100 ISDN bases (only in unimodem mode, see section 2.5.)
|
||||
If you have another device that works with our driver, please let us know.
|
||||
|
||||
Chances of getting an USB device to work are good if the output of
|
||||
@@ -49,7 +49,7 @@ GigaSet 307x Device Driver
|
||||
--------
|
||||
The driver works with ISDN4linux and so can be used with any software
|
||||
which is able to use ISDN4linux for ISDN connections (voice or data).
|
||||
CAPI4Linux support is planned but not yet available.
|
||||
Experimental Kernel CAPI support is available as a compilation option.
|
||||
|
||||
There are some user space tools available at
|
||||
http://sourceforge.net/projects/gigaset307x/
|
||||
@@ -102,20 +102,28 @@ GigaSet 307x Device Driver
|
||||
2.3. ISDN4linux
|
||||
----------
|
||||
This is the "normal" mode of operation. After loading the module you can
|
||||
set up the ISDN system just as you'd do with any ISDN card.
|
||||
Your distribution should provide some configuration utility.
|
||||
If not, you can use some HOWTOs like
|
||||
set up the ISDN system just as you'd do with any ISDN card supported by
|
||||
the ISDN4Linux subsystem. Most distributions provide some configuration
|
||||
utility. If not, you can use some HOWTOs like
|
||||
http://www.linuxhaven.de/dlhp/HOWTO/DE-ISDN-HOWTO-5.html
|
||||
If this doesn't work, because you have some recent device like SX100 where
|
||||
If this doesn't work, because you have some device like SX100 where
|
||||
debug output (see section 3.2.) shows something like this when dialing
|
||||
CMD Received: ERROR
|
||||
Available Params: 0
|
||||
Connection State: 0, Response: -1
|
||||
gigaset_process_response: resp_code -1 in ConState 0 !
|
||||
Timeout occurred
|
||||
you might need to use unimodem mode:
|
||||
you might need to use unimodem mode. (see section 2.5.)
|
||||
|
||||
2.4. Unimodem mode
|
||||
2.4. CAPI
|
||||
----
|
||||
If the driver is compiled with CAPI support (kernel configuration option
|
||||
GIGASET_CAPI, experimental) it can also be used with CAPI 2.0 kernel and
|
||||
user space applications. ISDN4Linux is supported in this configuration
|
||||
via the capidrv compatibility driver. The kernel module capidrv.ko must
|
||||
be loaded explicitly ("modprobe capidrv") if needed.
|
||||
|
||||
2.5. Unimodem mode
|
||||
-------------
|
||||
This is needed for some devices [e.g. SX100] as they have problems with
|
||||
the "normal" commands.
|
||||
@@ -160,7 +168,7 @@ GigaSet 307x Device Driver
|
||||
configuration file like /etc/modprobe.conf.local,
|
||||
using that should be preferred.
|
||||
|
||||
2.5. Call-ID (CID) mode
|
||||
2.6. Call-ID (CID) mode
|
||||
------------------
|
||||
Call-IDs are numbers used to tag commands to, and responses from, the
|
||||
Gigaset base in order to support the simultaneous handling of multiple
|
||||
@@ -188,7 +196,7 @@ GigaSet 307x Device Driver
|
||||
You can also use /sys/class/tty/ttyGxy/cidmode for changing the CID mode
|
||||
setting (ttyGxy is ttyGU0 or ttyGB0).
|
||||
|
||||
2.6. Unregistered Wireless Devices (M101/M105)
|
||||
2.7. Unregistered Wireless Devices (M101/M105)
|
||||
-----------------------------------------
|
||||
The main purpose of the ser_gigaset and usb_gigaset drivers is to allow
|
||||
the M101 and M105 wireless devices to be used as ISDN devices for ISDN
|
||||
@@ -228,7 +236,7 @@ GigaSet 307x Device Driver
|
||||
You have two or more DECT data adapters (M101/M105) and only the
|
||||
first one you turn on works.
|
||||
Solution:
|
||||
Select Unimodem mode for all DECT data adapters. (see section 2.4.)
|
||||
Select Unimodem mode for all DECT data adapters. (see section 2.5.)
|
||||
|
||||
Problem:
|
||||
Messages like this:
|
||||
@@ -236,7 +244,7 @@ GigaSet 307x Device Driver
|
||||
appear in your syslog.
|
||||
Solution:
|
||||
Check whether your M10x wireless device is correctly registered to the
|
||||
Gigaset base. (see section 2.6.)
|
||||
Gigaset base. (see section 2.7.)
|
||||
|
||||
3.2. Telling the driver to provide more information
|
||||
----------------------------------------------
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user